@genexus/genexus-ide-ui 1.1.14 → 1.1.16
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-data-type-selector.cjs.entry.js +121 -40
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/data-type-selector/data-type-selector.css +6 -0
- package/dist/collection/components/data-type-selector/data-type-selector.js +165 -43
- package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
- package/dist/collection/components/data-type-selector/gx-ide-assets/data-type-selector/langs/data-type-selector.lang.en.json +1 -1
- package/dist/collection/components/data-type-selector/helpers.js +2 -0
- package/dist/collection/components/data-type-selector/helpers.js.map +1 -1
- package/dist/components/gx-ide-data-type-selector.js +126 -42
- package/dist/components/gx-ide-data-type-selector.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js +121 -40
- package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/data-type-selector/langs/data-type-selector.lang.en.json +1 -1
- package/dist/genexus-ide-ui/p-7cece7a8.entry.js +344 -0
- package/dist/genexus-ide-ui/p-7cece7a8.entry.js.map +1 -0
- package/dist/types/components/data-type-selector/data-type-selector.d.ts +16 -12
- package/dist/types/components.d.ts +20 -4
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-ca6eb9fd.entry.js +0 -255
- package/dist/genexus-ide-ui/p-ca6eb9fd.entry.js.map +0 -1
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
import { r as t, h as e, H as s, a as i } from "./p-25a9f1d7.js";
|
|
2
|
-
|
|
3
|
-
import { g as o } from "./p-2987a259.js";
|
|
4
|
-
|
|
5
|
-
import { L as n } from "./p-311eedf3.js";
|
|
6
|
-
|
|
7
|
-
const mapCategoryToListItemGroup = t => {
|
|
8
|
-
const e = {
|
|
9
|
-
caption: t.name,
|
|
10
|
-
id: t.name,
|
|
11
|
-
type: "group",
|
|
12
|
-
expanded: true,
|
|
13
|
-
expandable: true,
|
|
14
|
-
items: t.types.map((t => ({
|
|
15
|
-
caption: t.name,
|
|
16
|
-
id: t.name,
|
|
17
|
-
additionalInformation: {
|
|
18
|
-
"stretch-start": {
|
|
19
|
-
center: [ {
|
|
20
|
-
imgSrc: t.icon
|
|
21
|
-
} ]
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
type: "actionable"
|
|
25
|
-
})))
|
|
26
|
-
};
|
|
27
|
-
return e;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const mapDataTypesToList = t => t.map(((t, e) => ({
|
|
31
|
-
caption: t.name,
|
|
32
|
-
id: t.name,
|
|
33
|
-
additionalInformation: {
|
|
34
|
-
"stretch-start": {
|
|
35
|
-
center: [ {
|
|
36
|
-
imgSrc: t.icon || undefined
|
|
37
|
-
} ]
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
type: "actionable",
|
|
41
|
-
order: e
|
|
42
|
-
})));
|
|
43
|
-
|
|
44
|
-
const a = ":host{position:relative;display:grid;block-size:100%;overflow:auto;grid-template-rows:1fr max-content;--control__border-width:var(--mer-border__width--sm);--control__border-radius:var(--mer-border__radius--sm)}.main{display:contents}.selected-category{margin:0;text-transform:capitalize;margin-inline-start:var(--mer-spacing--md);white-space:nowrap}.footer{overflow:auto}";
|
|
45
|
-
|
|
46
|
-
var r = undefined && undefined.__classPrivateFieldGet || function(t, e, s, i) {
|
|
47
|
-
if (s === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
|
|
48
|
-
if (typeof e === "function" ? t !== e || !i : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
49
|
-
return s === "m" ? i : s === "a" ? i.call(t) : i ? i.value : e.get(t);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
var c = undefined && undefined.__classPrivateFieldSet || function(t, e, s, i, o) {
|
|
53
|
-
if (i === "m") throw new TypeError("Private method is not writable");
|
|
54
|
-
if (i === "a" && !o) throw new TypeError("Private accessor was defined without a setter");
|
|
55
|
-
if (typeof e === "function" ? t !== e || !o : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
56
|
-
return i === "a" ? o.call(t, s) : o ? o.value = s : e.set(t, s), s;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
var h, l, d, f, p, u, m, b;
|
|
60
|
-
|
|
61
|
-
const y = [ "resets/box-sizing", "components/tab", "components/tooltip", "components/list-box", "components/tree-view", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "chameleon/scrollbar" ];
|
|
62
|
-
|
|
63
|
-
const g = "all";
|
|
64
|
-
|
|
65
|
-
const w = "recenttly-used";
|
|
66
|
-
|
|
67
|
-
const v = o({
|
|
68
|
-
category: "system",
|
|
69
|
-
name: "time",
|
|
70
|
-
colorType: "primary"
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
const k = class {
|
|
74
|
-
constructor(s) {
|
|
75
|
-
t(this, s);
|
|
76
|
-
h.set(this, void 0);
|
|
77
|
-
l.set(this, false);
|
|
78
|
-
d.set(this, new Map);
|
|
79
|
-
f.set(this, (t => {
|
|
80
|
-
var e;
|
|
81
|
-
const s = (e = t.detail[0]) === null || e === void 0 ? void 0 : e.item.type;
|
|
82
|
-
if (s === "actionable") {
|
|
83
|
-
const e = t.detail[0].item.caption;
|
|
84
|
-
const s = t.detail[0].item.additionalInformation["stretch-start"].center[0];
|
|
85
|
-
const i = s.imgSrc;
|
|
86
|
-
this.dataTypeSelectedCallback({
|
|
87
|
-
name: e,
|
|
88
|
-
icon: i
|
|
89
|
-
});
|
|
90
|
-
r(this, p, "f").call(this, t.detail[0].item.caption, "actionable");
|
|
91
|
-
} else if (s === "group") {
|
|
92
|
-
r(this, p, "f").call(this, t.detail[0].item.caption, "group");
|
|
93
|
-
}
|
|
94
|
-
}));
|
|
95
|
-
p.set(this, ((t, e) => {
|
|
96
|
-
if (this.selectedCategory === w) {
|
|
97
|
-
this.recentlyUsedActionListModel.forEach((t => {
|
|
98
|
-
// clear selected
|
|
99
|
-
t.selected = false;
|
|
100
|
-
}));
|
|
101
|
-
const e = this.recentlyUsed.findIndex((e => e.name === t));
|
|
102
|
-
if (e !== -1) {
|
|
103
|
-
this.recentlyUsedActionListModel[e].selected = true;
|
|
104
|
-
}
|
|
105
|
-
} else if (e === "group" && r(this, d, "f").has(t)) {
|
|
106
|
-
const e = r(this, d, "f").get(t);
|
|
107
|
-
const s = Object.assign(Object.assign({}, e), {
|
|
108
|
-
expanded: e.expanded
|
|
109
|
-
});
|
|
110
|
-
r(this, d, "f").set(t, s);
|
|
111
|
-
}
|
|
112
|
-
}));
|
|
113
|
-
u.set(this, (() => {
|
|
114
|
-
if (!r(this, l, "f")) {
|
|
115
|
-
const t = [];
|
|
116
|
-
let e = 1;
|
|
117
|
-
const s = r(this, d, "f").size;
|
|
118
|
-
for (const i of r(this, d, "f").keys()) {
|
|
119
|
-
t.push(r(this, d, "f").get(i));
|
|
120
|
-
if (e !== s) {
|
|
121
|
-
t.push({
|
|
122
|
-
type: "separator"
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
e++;
|
|
126
|
-
}
|
|
127
|
-
this.categoriesListBoxModel = t;
|
|
128
|
-
c(this, l, true, "f");
|
|
129
|
-
this.selectedCategory = g;
|
|
130
|
-
}
|
|
131
|
-
}));
|
|
132
|
-
m.set(this, (() => {
|
|
133
|
-
c(this, l, false, "f");
|
|
134
|
-
this.categoriesListBoxModel = this.recentlyUsedActionListModel;
|
|
135
|
-
this.selectedCategory = w;
|
|
136
|
-
}));
|
|
137
|
-
this.selectedCategoryHandler = t => {
|
|
138
|
-
this.selectedCategory = t.currentTarget.dataset.name;
|
|
139
|
-
const e = [ r(this, d, "f").get(this.selectedCategory) ];
|
|
140
|
-
this.categoriesListBoxModel = e;
|
|
141
|
-
c(this, l, false, "f");
|
|
142
|
-
};
|
|
143
|
-
b.set(this, (() => {
|
|
144
|
-
const t = this.selectedCategory === w ? "button-secondary" : "button-tertiary";
|
|
145
|
-
const s = this.selectedCategory === g ? "button-secondary" : "button-tertiary";
|
|
146
|
-
let i = this.selectedCategory;
|
|
147
|
-
if (this.selectedCategory === w) {
|
|
148
|
-
i = r(this, h, "f").fixedTypes.recentlyUsed;
|
|
149
|
-
} else if (this.selectedCategory === g) {
|
|
150
|
-
i = r(this, h, "f").fixedTypes.all;
|
|
151
|
-
} else {
|
|
152
|
-
i = this.selectedCategory;
|
|
153
|
-
}
|
|
154
|
-
return e("footer", {
|
|
155
|
-
class: "footer control-footer control-footer-start spacing-body-inline spacing-body-block scrollable\n "
|
|
156
|
-
}, e("div", {
|
|
157
|
-
class: "buttons-spacer"
|
|
158
|
-
}, this.recentlyUsed && this.recentlyUsed.length > 0 && e("button", {
|
|
159
|
-
class: `button-icon-only ${t}`,
|
|
160
|
-
"aria-label": `${r(this, h, "f").select} ${r(this, h, "f").fixedTypes.recentlyUsed}`,
|
|
161
|
-
title: `${r(this, h, "f").select} ${r(this, h, "f").fixedTypes.recentlyUsed}`,
|
|
162
|
-
onClick: r(this, m, "f")
|
|
163
|
-
}, e("ch-image", {
|
|
164
|
-
class: "icon-md",
|
|
165
|
-
src: v
|
|
166
|
-
})), e("button", {
|
|
167
|
-
class: `button-icon-only ${s}`,
|
|
168
|
-
onClick: r(this, u, "f"),
|
|
169
|
-
"aria-label": `${r(this, h, "f").select} ${r(this, h, "f").fixedTypes.all}`,
|
|
170
|
-
title: `${r(this, h, "f").select} ${r(this, h, "f").fixedTypes.all}`
|
|
171
|
-
}, "[*]"), this.categories.map((t => {
|
|
172
|
-
const s = t.name === this.selectedCategory ? "button-secondary" : "button-tertiary";
|
|
173
|
-
return e("button", {
|
|
174
|
-
class: `button-icon-only ${s}`,
|
|
175
|
-
"aria-label": t.name,
|
|
176
|
-
title: t.name,
|
|
177
|
-
onClick: this.selectedCategoryHandler,
|
|
178
|
-
"data-name": t.name
|
|
179
|
-
}, e("ch-image", {
|
|
180
|
-
class: "icon-md",
|
|
181
|
-
src: t.icon
|
|
182
|
-
}));
|
|
183
|
-
}))), e("p", {
|
|
184
|
-
class: "body-regular-s selected-category"
|
|
185
|
-
}, i));
|
|
186
|
-
}));
|
|
187
|
-
this.categoriesListBoxModel = [];
|
|
188
|
-
this.selectedCategory = undefined;
|
|
189
|
-
this.statusInfo = [];
|
|
190
|
-
this.recentlyUsedActionListModel = [];
|
|
191
|
-
this.loading = true;
|
|
192
|
-
this.categories = undefined;
|
|
193
|
-
this.dataTypeSelectedCallback = undefined;
|
|
194
|
-
this.recentlyUsed = [];
|
|
195
|
-
}
|
|
196
|
-
categoriesChanged(t) {
|
|
197
|
-
if (!(t === null || t === void 0 ? void 0 : t.length)) {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
r(this, d, "f").clear();
|
|
201
|
-
t.forEach((t => {
|
|
202
|
-
const e = mapCategoryToListItemGroup(t);
|
|
203
|
-
r(this, d, "f").set(t.name, e);
|
|
204
|
-
}));
|
|
205
|
-
this.loading = false;
|
|
206
|
-
r(this, u, "f").call(this);
|
|
207
|
-
}
|
|
208
|
-
recentlyUsedChanged(t) {
|
|
209
|
-
this.recentlyUsedActionListModel = null;
|
|
210
|
-
this.recentlyUsedActionListModel = mapDataTypesToList(t);
|
|
211
|
-
}
|
|
212
|
-
async componentWillLoad() {
|
|
213
|
-
c(this, h, await n.getComponentStrings(this.el), "f");
|
|
214
|
-
// initialize models
|
|
215
|
-
this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);
|
|
216
|
-
}
|
|
217
|
-
render() {
|
|
218
|
-
return e(s, {
|
|
219
|
-
class: "widget"
|
|
220
|
-
}, e("ch-theme", {
|
|
221
|
-
model: y
|
|
222
|
-
}), this.loading ? e("gx-ide-loader", {
|
|
223
|
-
loaderTitle: r(this, h, "f").loader.title,
|
|
224
|
-
description: r(this, h, "f").loader.description,
|
|
225
|
-
show: true
|
|
226
|
-
}) : e("section", {
|
|
227
|
-
class: "main"
|
|
228
|
-
}, e("ch-action-list-render", {
|
|
229
|
-
class: "list-box",
|
|
230
|
-
model: this.categoriesListBoxModel,
|
|
231
|
-
selection: "single",
|
|
232
|
-
onSelectedItemsChange: r(this, f, "f")
|
|
233
|
-
}), r(this, b, "f").call(this)));
|
|
234
|
-
}
|
|
235
|
-
static get assetsDirs() {
|
|
236
|
-
return [ "gx-ide-assets/data-type-selector" ];
|
|
237
|
-
}
|
|
238
|
-
get el() {
|
|
239
|
-
return i(this);
|
|
240
|
-
}
|
|
241
|
-
static get watchers() {
|
|
242
|
-
return {
|
|
243
|
-
categories: [ "categoriesChanged" ],
|
|
244
|
-
recentlyUsed: [ "recentlyUsedChanged" ]
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
h = new WeakMap, l = new WeakMap, d = new WeakMap, f = new WeakMap, p = new WeakMap,
|
|
250
|
-
u = new WeakMap, m = new WeakMap, b = new WeakMap;
|
|
251
|
-
|
|
252
|
-
k.style = a;
|
|
253
|
-
|
|
254
|
-
export { k as gx_ide_data_type_selector };
|
|
255
|
-
//# sourceMappingURL=p-ca6eb9fd.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mapCategoryToListItemGroup","category","categoryGroup","caption","name","id","type","expanded","expandable","items","types","map","additionalInformation","center","imgSrc","icon","mapDataTypesToList","dataTypes","dataType","index","undefined","order","dataTypeSelectorCss","CSS_BUNDLES","ALL_CATEGORY_ID","RECENTLY_USED_CATEGORY_ID","CLOCK_ICON","getIconPath","colorType","GxIdeKbManagerImport","_GxIdeKbManagerImport__componentLocale","set","this","_GxIdeKbManagerImport_showAll","_GxIdeKbManagerImport_categoriesActionListItemGroupMap","Map","_GxIdeKbManagerImport_handleSelectionChange","event","eventType","_a","detail","item","itemAdditionalBase","dataTypeSelectedCallback","__classPrivateFieldGet","_GxIdeKbManagerImport_updateListBoxModelState","call","selectedCategory","recentlyUsedActionListModel","forEach","selected","selectedItemIndex","recentlyUsed","findIndex","has","group","get","groupUpdated","Object","assign","_GxIdeKbManagerImport_showAllObjects","allCategoriesActionListModel","counter","mapLength","size","key","keys","push","categoriesListBoxModel","__classPrivateFieldSet","_GxIdeKbManagerImport_showRecentlyObjects","selectedCategoryHandler","e","currentTarget","dataset","newSelectedCategory","_GxIdeKbManagerImport_renderFooter","recentlyUsedBtnClass","allBtnClass","selectedCategoryDescription","fixedTypes","all","h","class","length","select","title","onClick","src","categories","buttonClass","categoriesChanged","newCategories","clear","categoryListBoxModel","loading","recentlyUsedChanged","newRecentlyUsed","componentWillLoad","Locale","getComponentStrings","el","render","Host","model","loaderTitle","loader","description","show","selection","onSelectedItemsChange"],"sources":["src/components/data-type-selector/helpers.ts","src/components/data-type-selector/data-type-selector.scss?tag=gx-ide-data-type-selector&encapsulation=shadow","src/components/data-type-selector/data-type-selector.tsx"],"sourcesContent":["import { DataTypeCategoryData, DataTypeData } from \"./data-type-selector\";\nimport {\n ActionListItemGroup,\n ActionListModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\nexport const mapCategoryToListItemGroup = (\n category: DataTypeCategoryData\n): ActionListItemGroup => {\n const categoryGroup: ActionListItemGroup = {\n caption: category.name,\n id: category.name,\n type: \"group\",\n expanded: true,\n expandable: true,\n items: category.types.map(type => {\n return {\n caption: type.name,\n id: type.name,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n type: \"actionable\"\n };\n })\n };\n return categoryGroup;\n};\n\nexport const mapDataTypesToList = (\n dataTypes: DataTypeData[]\n): ActionListModel => {\n return dataTypes.map((dataType, index) => {\n return {\n caption: dataType.name,\n id: dataType.name,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: dataType.icon || undefined }]\n }\n },\n type: \"actionable\",\n order: index\n };\n });\n};\n",":host {\n position: relative;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n // WA: Prevent a custom css rule on genexus-web from overriding --control__border-width value.\n // TDOO: remove this when the custom style is removed from genexus-web.\n // custom stlye is: .gx-struct-editor .tabular-grid-cell {\n // --control__border-width: 0;\n // }\n\n --control__border-width: var(--mer-border__width--sm);\n --control__border-radius: var(--mer-border__radius--sm);\n}\n\n.main {\n display: contents;\n}\n\n.selected-category {\n margin: 0;\n text-transform: capitalize;\n margin-inline-start: var(\n --mer-spacing--md\n ); // TODO: Create a semantic class in Mercury for this case.\n white-space: nowrap;\n}\n\n.footer {\n overflow: auto;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n ActionListItemActionable,\n ActionListItemModel,\n ActionListItemModelExtended,\n ActionListItemType,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport {\n ActionListItemAdditionalBase,\n ActionListItemGroup\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n// Gx Ide Ui\nimport { Locale } from \"../../common/locale\";\nimport { mapCategoryToListItemGroup, mapDataTypesToList } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"components/list-box\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ALL_CATEGORY_ID = \"all\";\nconst RECENTLY_USED_CATEGORY_ID = \"recenttly-used\";\n\nconst CLOCK_ICON = getIconPath({\n category: \"system\",\n name: \"time\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-data-type-selector\",\n styleUrl: \"data-type-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/data-type-selector\"]\n})\nexport class GxIdeKbManagerImport {\n #_componentLocale: any;\n #showAll: boolean = false;\n #categoriesActionListItemGroupMap: Map<string, ActionListItemGroup> = new Map<\n string,\n ActionListItemGroup\n >();\n\n @Element() el: HTMLGxIdeDataTypeSelectorElement;\n\n @State() categoriesListBoxModel: ActionListItemModel[] = [];\n @State() selectedCategory: string;\n @State() statusInfo: StatusInfo[] = [];\n @State() recentlyUsedActionListModel: ActionListModel = [];\n @State() loading: boolean = true;\n\n /**\n * All possible types and its category\n */\n @Prop() readonly categories: DataTypeCategoryData[] = undefined;\n @Watch(\"categories\")\n categoriesChanged(newCategories: DataTypeCategoryData[]) {\n if (!newCategories?.length) {\n return;\n }\n this.#categoriesActionListItemGroupMap.clear();\n newCategories.forEach(category => {\n const categoryListBoxModel = mapCategoryToListItemGroup(category);\n this.#categoriesActionListItemGroupMap.set(\n category.name,\n categoryListBoxModel\n );\n });\n this.loading = false;\n this.#showAllObjects();\n }\n\n /**\n * Callback invoked when user select an item type\n */\n @Prop() readonly dataTypeSelectedCallback: DataTypeSelectedCallback;\n\n /**\n * All recently used types list\n */\n @Prop() readonly recentlyUsed: DataTypeData[] = [];\n @Watch(\"recentlyUsed\")\n recentlyUsedChanged(newRecentlyUsed: DataTypeData[]) {\n this.recentlyUsedActionListModel = null;\n this.recentlyUsedActionListModel = mapDataTypesToList(newRecentlyUsed);\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n // initialize models\n this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);\n }\n\n #handleSelectionChange = (\n event: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n const eventType = event.detail[0]?.item.type;\n if (eventType === \"actionable\") {\n const name = event.detail[0].item.caption;\n\n const itemAdditionalBase = event.detail[0].item.additionalInformation[\n \"stretch-start\"\n ].center[0] as ActionListItemAdditionalBase;\n const icon = itemAdditionalBase.imgSrc;\n\n this.dataTypeSelectedCallback({\n name: name,\n icon: icon\n });\n\n this.#updateListBoxModelState(event.detail[0].item.caption, \"actionable\");\n } else if (eventType === \"group\") {\n this.#updateListBoxModelState(event.detail[0].item.caption, \"group\");\n }\n };\n\n #updateListBoxModelState = (name: string, type: ActionListItemType) => {\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n this.recentlyUsedActionListModel.forEach(item => {\n // clear selected\n (item as ActionListItemActionable).selected = false;\n });\n const selectedItemIndex = this.recentlyUsed.findIndex(\n item => item.name === name\n );\n if (selectedItemIndex !== -1) {\n (\n this.recentlyUsedActionListModel[\n selectedItemIndex\n ] as ActionListItemActionable\n ).selected = true;\n }\n } else if (\n type === \"group\" &&\n this.#categoriesActionListItemGroupMap.has(name)\n ) {\n const group = this.#categoriesActionListItemGroupMap.get(\n name\n ) as ActionListItemGroup;\n const groupUpdated = { ...group, expanded: group.expanded };\n this.#categoriesActionListItemGroupMap.set(name, groupUpdated);\n }\n };\n\n #showAllObjects = () => {\n if (!this.#showAll) {\n const allCategoriesActionListModel: ActionListItemModel[] = [];\n let counter = 1;\n const mapLength = this.#categoriesActionListItemGroupMap.size;\n for (const key of this.#categoriesActionListItemGroupMap.keys()) {\n allCategoriesActionListModel.push(\n this.#categoriesActionListItemGroupMap.get(key)\n );\n if (counter !== mapLength) {\n allCategoriesActionListModel.push({ type: \"separator\" });\n }\n counter++;\n }\n this.categoriesListBoxModel = allCategoriesActionListModel;\n this.#showAll = true;\n this.selectedCategory = ALL_CATEGORY_ID;\n }\n };\n\n #showRecentlyObjects = () => {\n this.#showAll = false;\n this.categoriesListBoxModel = this.recentlyUsedActionListModel;\n this.selectedCategory = RECENTLY_USED_CATEGORY_ID;\n };\n\n private selectedCategoryHandler = (e: MouseEvent) => {\n this.selectedCategory = (e.currentTarget as HTMLButtonElement).dataset.name;\n const newSelectedCategory = [\n this.#categoriesActionListItemGroupMap.get(this.selectedCategory)\n ];\n this.categoriesListBoxModel = newSelectedCategory;\n this.#showAll = false;\n };\n\n #renderFooter = () => {\n const recentlyUsedBtnClass =\n this.selectedCategory === RECENTLY_USED_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n const allBtnClass =\n this.selectedCategory === ALL_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n let selectedCategoryDescription = this.selectedCategory;\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n selectedCategoryDescription =\n this.#_componentLocale.fixedTypes.recentlyUsed;\n } else if (this.selectedCategory === ALL_CATEGORY_ID) {\n selectedCategoryDescription = this.#_componentLocale.fixedTypes.all;\n } else {\n selectedCategoryDescription = this.selectedCategory;\n }\n\n return (\n <footer\n class=\"footer control-footer control-footer-start spacing-body-inline spacing-body-block scrollable\n \"\n >\n <div class=\"buttons-spacer\">\n {this.recentlyUsed && this.recentlyUsed.length > 0 && (\n <button\n class={`button-icon-only ${recentlyUsedBtnClass}`}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n onClick={this.#showRecentlyObjects}\n >\n <ch-image class=\"icon-md\" src={CLOCK_ICON}></ch-image>\n </button>\n )}\n <button\n class={`button-icon-only ${allBtnClass}`}\n onClick={this.#showAllObjects}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n >\n [*]\n </button>\n {this.categories.map(category => {\n const buttonClass =\n category.name === this.selectedCategory\n ? \"button-secondary\"\n : \"button-tertiary\";\n\n return (\n <button\n class={`button-icon-only ${buttonClass}`}\n aria-label={category.name}\n title={category.name}\n onClick={this.selectedCategoryHandler}\n data-name={category.name}\n >\n <ch-image class=\"icon-md\" src={category.icon}></ch-image>\n </button>\n );\n })}\n </div>\n <p class=\"body-regular-s selected-category\">\n {selectedCategoryDescription}\n </p>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <section class=\"main\">\n <ch-action-list-render\n class=\"list-box\"\n model={this.categoriesListBoxModel}\n selection=\"single\"\n onSelectedItemsChange={this.#handleSelectionChange}\n ></ch-action-list-render>\n {this.#renderFooter()}\n </section>\n )}\n </Host>\n );\n }\n}\n\ntype StatusInfo = {\n [key: string]: {\n display: boolean;\n };\n};\n\nexport type DataTypeCategoryData = {\n name: string;\n icon: string;\n types: DataTypeData[];\n};\nexport type DataTypeData = {\n name: string;\n icon: string;\n};\n\nexport type DataTypeSelectedCallback = (data: {\n name: string;\n icon: string;\n}) => Promise<void>;\n"],"mappings":"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"}
|