@genexus/genexus-ide-ui 1.0.59 → 1.0.61
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-bpm-app-declaration.cjs.entry.js +22 -2
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +171 -146
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/_helpers/ide-loader/ide-loader.css +1 -1
- package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.en.json +8 -3
- package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.ja.json +7 -2
- package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.zh.json +7 -2
- package/dist/collection/components/references/helpers.js +26 -24
- package/dist/collection/components/references/helpers.js.map +1 -1
- package/dist/collection/components/references/references.css +32 -44
- package/dist/collection/components/references/references.js +197 -198
- package/dist/collection/components/references/references.js.map +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js +22 -2
- package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
- package/dist/components/gx-ide-references.js +181 -163
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/components/ide-loader.js +1 -1
- package/dist/components/ide-loader.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +22 -2
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-loader.entry.js +1 -1
- package/dist/esm/gx-ide-loader.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +172 -147
- package/dist/esm/gx-ide-references.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/references/langs/references.lang.en.json +8 -3
- package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.ja.json +7 -2
- package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.zh.json +7 -2
- package/dist/genexus-ide-ui/{p-e3f234a8.entry.js → p-3d2bdcb9.entry.js} +249 -226
- package/dist/genexus-ide-ui/p-3d2bdcb9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-fce76974.entry.js → p-4fcde4d0.entry.js} +74 -57
- package/dist/genexus-ide-ui/p-4fcde4d0.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-57354473.entry.js → p-5246559c.entry.js} +7 -7
- package/dist/genexus-ide-ui/p-5246559c.entry.js.map +1 -0
- package/dist/types/components/references/helpers.d.ts +4 -7
- package/dist/types/components/references/references.d.ts +23 -71
- package/dist/types/components.d.ts +4 -31
- package/package.json +1 -1
- package/dist/cjs/render-suggest-4a569cbe.js +0 -28
- package/dist/cjs/render-suggest-4a569cbe.js.map +0 -1
- package/dist/components/render-suggest.js +0 -26
- package/dist/components/render-suggest.js.map +0 -1
- package/dist/esm/render-suggest-dac35d72.js +0 -26
- package/dist/esm/render-suggest-dac35d72.js.map +0 -1
- package/dist/genexus-ide-ui/p-5545d58d.js +0 -23
- package/dist/genexus-ide-ui/p-5545d58d.js.map +0 -1
- package/dist/genexus-ide-ui/p-57354473.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-e3f234a8.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fce76974.entry.js.map +0 -1
|
@@ -1,44 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TreeViewItemModel } from "@genexus/chameleon-controls-library";
|
|
3
|
-
import { SuggestData } from "@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest";
|
|
1
|
+
import { ComboBoxModel, TreeViewItemModel } from "@genexus/chameleon-controls-library";
|
|
4
2
|
export declare class GxIdeReferences {
|
|
5
|
-
|
|
6
|
-
* The component hard-coded strings translations.
|
|
7
|
-
*/
|
|
8
|
-
private _componentLocale;
|
|
9
|
-
private renderedFirstTime;
|
|
10
|
-
private shortcutsSrc;
|
|
11
|
-
/**
|
|
12
|
-
* The last SelectorCategoryData[] returned by selectorSourceCallback
|
|
13
|
-
*/
|
|
14
|
-
private selectorCategoryData;
|
|
3
|
+
#private;
|
|
15
4
|
el: HTMLGxIdeReferencesElement;
|
|
16
|
-
private selectObjectSuggestEl;
|
|
17
|
-
referencedByTreeData: TreeViewItemModel[];
|
|
18
|
-
referencesToTreeData: TreeViewItemModel[];
|
|
19
5
|
/**
|
|
20
6
|
* Displays or hides the header-bottom section
|
|
21
7
|
*/
|
|
22
8
|
barHidden: boolean;
|
|
23
9
|
/**
|
|
24
|
-
*
|
|
10
|
+
* Objects suggestions that will appear on the suggest
|
|
25
11
|
*/
|
|
26
|
-
objectsSuggestions:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
*/
|
|
30
|
-
readonly displayTitle = false;
|
|
31
|
-
/**
|
|
32
|
-
* Currently selected object
|
|
33
|
-
*/
|
|
34
|
-
selectedObject?: ObjectData;
|
|
35
|
-
selectedObjectHandler(newSelectedObject: ObjectData): void;
|
|
36
|
-
/**
|
|
37
|
-
* Callback invoked when user writes on object selector input, return possible options to show in autocomplete list
|
|
38
|
-
*/
|
|
39
|
-
readonly selectorSourceCallback?: SelectorSourceCallback;
|
|
12
|
+
objectsSuggestions: ComboBoxModel;
|
|
13
|
+
referencedByTreeData: TreeViewItemModel[];
|
|
14
|
+
referencesToTreeData: TreeViewItemModel[];
|
|
40
15
|
/**
|
|
41
|
-
* Callback invoked when a node is expanded in any
|
|
16
|
+
* Callback invoked when a node is expanded in any references panels
|
|
42
17
|
*/
|
|
43
18
|
readonly loadReferencesCallback?: LoadReferencesCallback;
|
|
44
19
|
/**
|
|
@@ -54,46 +29,19 @@ export declare class GxIdeReferences {
|
|
|
54
29
|
*/
|
|
55
30
|
readonly selectReferenceCallback?: SelectReferenceCallback;
|
|
56
31
|
/**
|
|
57
|
-
*
|
|
58
|
-
*/
|
|
59
|
-
componentDidRenderFirstTime: EventEmitter<string>;
|
|
60
|
-
componentWillLoad(): Promise<void>;
|
|
61
|
-
componentDidLoad(): void;
|
|
62
|
-
componentDidRender(): void;
|
|
63
|
-
/**
|
|
64
|
-
* It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
|
|
65
|
-
*/
|
|
66
|
-
private selectObjectSelectionChanged;
|
|
67
|
-
/**
|
|
68
|
-
* This handler gets fired every time the value of the 'Select Object' ch-suggest changes.
|
|
69
|
-
*/
|
|
70
|
-
private selectObjectValueChangedHandler;
|
|
71
|
-
private openObjectCallbackHandler;
|
|
72
|
-
/**
|
|
73
|
-
* handler that gets fired when the use clicks on the ch-suggest button (...)
|
|
32
|
+
* Callback invoked when user writes on object selector input
|
|
74
33
|
*/
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.
|
|
78
|
-
*/
|
|
79
|
-
private evaluateInitialReferenceData;
|
|
80
|
-
/**
|
|
81
|
-
* This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels. The second parameter "to" indicates if loadReferencesCallback callback should be called for "has references to" or "is references by"
|
|
82
|
-
*/
|
|
83
|
-
private loadReferencesHandler;
|
|
34
|
+
readonly selectorSourceCallback?: SelectorSourceCallback;
|
|
84
35
|
/**
|
|
85
|
-
*
|
|
36
|
+
* Currently selected object
|
|
86
37
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
38
|
+
selectedObject?: ObjectData;
|
|
39
|
+
selectedObjectChanged(newSelectedObject: ObjectData): void;
|
|
40
|
+
componentDidLoad(): void;
|
|
41
|
+
componentWillLoad(): Promise<void>;
|
|
91
42
|
render(): any;
|
|
92
43
|
}
|
|
93
|
-
export type
|
|
94
|
-
name: string;
|
|
95
|
-
items: ObjectData[];
|
|
96
|
-
};
|
|
44
|
+
export type LoadReferencesCallback = (id: string, to: boolean) => Promise<ReferenceData[]>;
|
|
97
45
|
export type ObjectData = {
|
|
98
46
|
id: string;
|
|
99
47
|
typeName: string;
|
|
@@ -101,12 +49,16 @@ export type ObjectData = {
|
|
|
101
49
|
name: string;
|
|
102
50
|
description?: string;
|
|
103
51
|
};
|
|
52
|
+
export type OpenObjectCallback = (id: string) => Promise<void>;
|
|
53
|
+
export type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;
|
|
104
54
|
export type ReferenceData = ObjectData & {
|
|
105
55
|
hasChildren: boolean;
|
|
106
56
|
items?: ReferenceData[];
|
|
107
57
|
};
|
|
108
|
-
export type SelectorSourceCallback = (prefix: string) => Promise<SelectorCategoryData[]>;
|
|
109
|
-
export type LoadReferencesCallback = (id: string, to: boolean) => Promise<ReferenceData[]>;
|
|
110
|
-
export type OpenObjectCallback = (id: string) => Promise<void>;
|
|
111
|
-
export type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;
|
|
112
58
|
export type SelectReferenceCallback = (id: string) => Promise<void>;
|
|
59
|
+
export type SelectorCategoryData = {
|
|
60
|
+
name: string;
|
|
61
|
+
items: ObjectData[];
|
|
62
|
+
};
|
|
63
|
+
export type SelectorSourceCallback = (prefix: string) => Promise<SelectorCategoryData[]>;
|
|
64
|
+
export type objectDataMap = Map<string, ObjectData>;
|
|
@@ -1445,11 +1445,7 @@ export namespace Components {
|
|
|
1445
1445
|
}
|
|
1446
1446
|
interface GxIdeReferences {
|
|
1447
1447
|
/**
|
|
1448
|
-
*
|
|
1449
|
-
*/
|
|
1450
|
-
"displayTitle": false;
|
|
1451
|
-
/**
|
|
1452
|
-
* Callback invoked when a node is expanded in any of the references panels
|
|
1448
|
+
* Callback invoked when a node is expanded in any references panels
|
|
1453
1449
|
*/
|
|
1454
1450
|
"loadReferencesCallback"?: LoadReferencesCallback;
|
|
1455
1451
|
/**
|
|
@@ -1469,7 +1465,7 @@ export namespace Components {
|
|
|
1469
1465
|
*/
|
|
1470
1466
|
"selectedObject"?: ObjectData1;
|
|
1471
1467
|
/**
|
|
1472
|
-
* Callback invoked when user writes on object selector input
|
|
1468
|
+
* Callback invoked when user writes on object selector input
|
|
1473
1469
|
*/
|
|
1474
1470
|
"selectorSourceCallback"?: SelectorSourceCallback;
|
|
1475
1471
|
}
|
|
@@ -2166,10 +2162,6 @@ export interface GxIdeNewObjectCustomEvent<T> extends CustomEvent<T> {
|
|
|
2166
2162
|
detail: T;
|
|
2167
2163
|
target: HTMLGxIdeNewObjectElement;
|
|
2168
2164
|
}
|
|
2169
|
-
export interface GxIdeReferencesCustomEvent<T> extends CustomEvent<T> {
|
|
2170
|
-
detail: T;
|
|
2171
|
-
target: HTMLGxIdeReferencesElement;
|
|
2172
|
-
}
|
|
2173
2165
|
export interface GxIdeShareKbCustomEvent<T> extends CustomEvent<T> {
|
|
2174
2166
|
detail: T;
|
|
2175
2167
|
target: HTMLGxIdeShareKbElement;
|
|
@@ -2641,18 +2633,7 @@ declare global {
|
|
|
2641
2633
|
prototype: HTMLGxIdeObjectSelectorElement;
|
|
2642
2634
|
new (): HTMLGxIdeObjectSelectorElement;
|
|
2643
2635
|
};
|
|
2644
|
-
interface HTMLGxIdeReferencesElementEventMap {
|
|
2645
|
-
"componentDidRenderFirstTime": string;
|
|
2646
|
-
}
|
|
2647
2636
|
interface HTMLGxIdeReferencesElement extends Components.GxIdeReferences, HTMLStencilElement {
|
|
2648
|
-
addEventListener<K extends keyof HTMLGxIdeReferencesElementEventMap>(type: K, listener: (this: HTMLGxIdeReferencesElement, ev: GxIdeReferencesCustomEvent<HTMLGxIdeReferencesElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2649
|
-
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2650
|
-
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2651
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2652
|
-
removeEventListener<K extends keyof HTMLGxIdeReferencesElementEventMap>(type: K, listener: (this: HTMLGxIdeReferencesElement, ev: GxIdeReferencesCustomEvent<HTMLGxIdeReferencesElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2653
|
-
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2654
|
-
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2655
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2656
2637
|
}
|
|
2657
2638
|
var HTMLGxIdeReferencesElement: {
|
|
2658
2639
|
prototype: HTMLGxIdeReferencesElement;
|
|
@@ -4350,17 +4331,9 @@ declare namespace LocalJSX {
|
|
|
4350
4331
|
}
|
|
4351
4332
|
interface GxIdeReferences {
|
|
4352
4333
|
/**
|
|
4353
|
-
*
|
|
4354
|
-
*/
|
|
4355
|
-
"displayTitle"?: false;
|
|
4356
|
-
/**
|
|
4357
|
-
* Callback invoked when a node is expanded in any of the references panels
|
|
4334
|
+
* Callback invoked when a node is expanded in any references panels
|
|
4358
4335
|
*/
|
|
4359
4336
|
"loadReferencesCallback"?: LoadReferencesCallback;
|
|
4360
|
-
/**
|
|
4361
|
-
* Gets fired when the component has rendered for the first time.
|
|
4362
|
-
*/
|
|
4363
|
-
"onComponentDidRenderFirstTime"?: (event: GxIdeReferencesCustomEvent<string>) => void;
|
|
4364
4337
|
/**
|
|
4365
4338
|
* Callback invoked when user wants to open an object
|
|
4366
4339
|
*/
|
|
@@ -4378,7 +4351,7 @@ declare namespace LocalJSX {
|
|
|
4378
4351
|
*/
|
|
4379
4352
|
"selectedObject"?: ObjectData1;
|
|
4380
4353
|
/**
|
|
4381
|
-
* Callback invoked when user writes on object selector input
|
|
4354
|
+
* Callback invoked when user writes on object selector input
|
|
4382
4355
|
*/
|
|
4383
4356
|
"selectorSourceCallback"?: SelectorSourceCallback;
|
|
4384
4357
|
}
|
package/package.json
CHANGED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const index = require('./index-e227aefb.js');
|
|
4
|
-
|
|
5
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
6
|
-
const renderSuggestLists = (suggestData) => {
|
|
7
|
-
if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
|
|
8
|
-
return suggestData.suggestLists.map((list) => {
|
|
9
|
-
return (index.h("ch-suggest-list", { label: list.label }, list.items.map((item) => {
|
|
10
|
-
return renderSuggestListsItem(item);
|
|
11
|
-
})));
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
return [];
|
|
15
|
-
};
|
|
16
|
-
const renderSuggestListsItem = (suggestItem) => {
|
|
17
|
-
return (index.h("ch-suggest-list-item", { value: suggestItem.value }, [
|
|
18
|
-
suggestItem.description || suggestItem.value,
|
|
19
|
-
suggestItem.icon && renderIcon(suggestItem.icon)
|
|
20
|
-
]));
|
|
21
|
-
};
|
|
22
|
-
const renderIcon = (iconName) => {
|
|
23
|
-
return index.h("gxg-icon", { color: "auto", type: iconName, slot: "icon" });
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
exports.renderSuggestLists = renderSuggestLists;
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=render-suggest-4a569cbe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"render-suggest-4a569cbe.js","mappings":";;;;AAAA;MAMa,kBAAkB,GAAG,CAChC,WAAwB;IAExB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,CAAC,MAAM,EAAE;QACpC,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,CACjC,CAAC,IAAqB;YACpB,QACEA,6BAAiB,KAAK,EAAE,IAAI,CAAC,KAAK,IAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAqB;gBACpC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;aACrC,CAAC,CACc,EAClB;SACH,CACF,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAC7B,WAA4B;IAE5B,QACEA,kCAAsB,KAAK,EAAE,WAAW,CAAC,KAAK,IAC3C;QACC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK;QAC5C,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;KACjD,CACoB,EACvB;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAgB;IAClC,OAAOA,sBAAU,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,GAAY,CAAC;AACxE,CAAC;;;;","names":["h"],"sources":["src/common/render-suggest.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { h } from \"@stencil/core\";\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\nexport const renderSuggestLists = (\n suggestData: SuggestData\n): HTMLChSuggestListElement[] => {\n if (suggestData?.suggestLists.length) {\n return suggestData.suggestLists.map(\n (list: SuggestListData): HTMLChSuggestListElement => {\n return (\n <ch-suggest-list label={list.label}>\n {list.items.map((item: SuggestItemData) => {\n return renderSuggestListsItem(item);\n })}\n </ch-suggest-list>\n );\n }\n );\n }\n return [];\n};\n\nconst renderSuggestListsItem = (\n suggestItem: SuggestItemData\n): HTMLChSuggestListItemElement => {\n return (\n <ch-suggest-list-item value={suggestItem.value}>\n {[\n suggestItem.description || suggestItem.value,\n suggestItem.icon && renderIcon(suggestItem.icon)\n ]}\n </ch-suggest-list-item>\n );\n};\n\nconst renderIcon = (iconName: string): HTMLGxgIconElement => {\n return <gxg-icon color=\"auto\" type={iconName} slot=\"icon\"></gxg-icon>;\n};\n"],"version":3}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { h } from '@stencil/core/internal/client';
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
4
|
-
const renderSuggestLists = (suggestData) => {
|
|
5
|
-
if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
|
|
6
|
-
return suggestData.suggestLists.map((list) => {
|
|
7
|
-
return (h("ch-suggest-list", { label: list.label }, list.items.map((item) => {
|
|
8
|
-
return renderSuggestListsItem(item);
|
|
9
|
-
})));
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
return [];
|
|
13
|
-
};
|
|
14
|
-
const renderSuggestListsItem = (suggestItem) => {
|
|
15
|
-
return (h("ch-suggest-list-item", { value: suggestItem.value }, [
|
|
16
|
-
suggestItem.description || suggestItem.value,
|
|
17
|
-
suggestItem.icon && renderIcon(suggestItem.icon)
|
|
18
|
-
]));
|
|
19
|
-
};
|
|
20
|
-
const renderIcon = (iconName) => {
|
|
21
|
-
return h("gxg-icon", { color: "auto", type: iconName, slot: "icon" });
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export { renderSuggestLists as r };
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=render-suggest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"render-suggest.js","mappings":";;AAAA;MAMa,kBAAkB,GAAG,CAChC,WAAwB;IAExB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,CAAC,MAAM,EAAE;QACpC,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,CACjC,CAAC,IAAqB;YACpB,QACE,uBAAiB,KAAK,EAAE,IAAI,CAAC,KAAK,IAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAqB;gBACpC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;aACrC,CAAC,CACc,EAClB;SACH,CACF,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAC7B,WAA4B;IAE5B,QACE,4BAAsB,KAAK,EAAE,WAAW,CAAC,KAAK,IAC3C;QACC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK;QAC5C,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;KACjD,CACoB,EACvB;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAgB;IAClC,OAAO,gBAAU,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,GAAY,CAAC;AACxE,CAAC;;;;","names":[],"sources":["src/common/render-suggest.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { h } from \"@stencil/core\";\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\nexport const renderSuggestLists = (\n suggestData: SuggestData\n): HTMLChSuggestListElement[] => {\n if (suggestData?.suggestLists.length) {\n return suggestData.suggestLists.map(\n (list: SuggestListData): HTMLChSuggestListElement => {\n return (\n <ch-suggest-list label={list.label}>\n {list.items.map((item: SuggestItemData) => {\n return renderSuggestListsItem(item);\n })}\n </ch-suggest-list>\n );\n }\n );\n }\n return [];\n};\n\nconst renderSuggestListsItem = (\n suggestItem: SuggestItemData\n): HTMLChSuggestListItemElement => {\n return (\n <ch-suggest-list-item value={suggestItem.value}>\n {[\n suggestItem.description || suggestItem.value,\n suggestItem.icon && renderIcon(suggestItem.icon)\n ]}\n </ch-suggest-list-item>\n );\n};\n\nconst renderIcon = (iconName: string): HTMLGxgIconElement => {\n return <gxg-icon color=\"auto\" type={iconName} slot=\"icon\"></gxg-icon>;\n};\n"],"version":3}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { h } from './index-6a0d98df.js';
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
4
|
-
const renderSuggestLists = (suggestData) => {
|
|
5
|
-
if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
|
|
6
|
-
return suggestData.suggestLists.map((list) => {
|
|
7
|
-
return (h("ch-suggest-list", { label: list.label }, list.items.map((item) => {
|
|
8
|
-
return renderSuggestListsItem(item);
|
|
9
|
-
})));
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
return [];
|
|
13
|
-
};
|
|
14
|
-
const renderSuggestListsItem = (suggestItem) => {
|
|
15
|
-
return (h("ch-suggest-list-item", { value: suggestItem.value }, [
|
|
16
|
-
suggestItem.description || suggestItem.value,
|
|
17
|
-
suggestItem.icon && renderIcon(suggestItem.icon)
|
|
18
|
-
]));
|
|
19
|
-
};
|
|
20
|
-
const renderIcon = (iconName) => {
|
|
21
|
-
return h("gxg-icon", { color: "auto", type: iconName, slot: "icon" });
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export { renderSuggestLists as r };
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=render-suggest-dac35d72.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"render-suggest-dac35d72.js","mappings":";;AAAA;MAMa,kBAAkB,GAAG,CAChC,WAAwB;IAExB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,CAAC,MAAM,EAAE;QACpC,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,CACjC,CAAC,IAAqB;YACpB,QACE,uBAAiB,KAAK,EAAE,IAAI,CAAC,KAAK,IAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAqB;gBACpC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;aACrC,CAAC,CACc,EAClB;SACH,CACF,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAC7B,WAA4B;IAE5B,QACE,4BAAsB,KAAK,EAAE,WAAW,CAAC,KAAK,IAC3C;QACC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK;QAC5C,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;KACjD,CACoB,EACvB;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAgB;IAClC,OAAO,gBAAU,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,GAAY,CAAC;AACxE,CAAC;;;;","names":[],"sources":["src/common/render-suggest.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { h } from \"@stencil/core\";\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\nexport const renderSuggestLists = (\n suggestData: SuggestData\n): HTMLChSuggestListElement[] => {\n if (suggestData?.suggestLists.length) {\n return suggestData.suggestLists.map(\n (list: SuggestListData): HTMLChSuggestListElement => {\n return (\n <ch-suggest-list label={list.label}>\n {list.items.map((item: SuggestItemData) => {\n return renderSuggestListsItem(item);\n })}\n </ch-suggest-list>\n );\n }\n );\n }\n return [];\n};\n\nconst renderSuggestListsItem = (\n suggestItem: SuggestItemData\n): HTMLChSuggestListItemElement => {\n return (\n <ch-suggest-list-item value={suggestItem.value}>\n {[\n suggestItem.description || suggestItem.value,\n suggestItem.icon && renderIcon(suggestItem.icon)\n ]}\n </ch-suggest-list-item>\n );\n};\n\nconst renderIcon = (iconName: string): HTMLGxgIconElement => {\n return <gxg-icon color=\"auto\" type={iconName} slot=\"icon\"></gxg-icon>;\n};\n"],"version":3}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { h as t } from "./p-2cf37639.js";
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */ const renderSuggestLists = o => {
|
|
4
|
-
if (o === null || o === void 0 ? void 0 : o.suggestLists.length) {
|
|
5
|
-
return o.suggestLists.map((o => t("ch-suggest-list", {
|
|
6
|
-
label: o.label
|
|
7
|
-
}, o.items.map((t => renderSuggestListsItem(t))))));
|
|
8
|
-
}
|
|
9
|
-
return [];
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const renderSuggestListsItem = o => t("ch-suggest-list-item", {
|
|
13
|
-
value: o.value
|
|
14
|
-
}, [ o.description || o.value, o.icon && renderIcon(o.icon) ]);
|
|
15
|
-
|
|
16
|
-
const renderIcon = o => t("gxg-icon", {
|
|
17
|
-
color: "auto",
|
|
18
|
-
type: o,
|
|
19
|
-
slot: "icon"
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
export { renderSuggestLists as r };
|
|
23
|
-
//# sourceMappingURL=p-5545d58d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["renderSuggestLists","suggestData","suggestLists","length","map","list","h","label","items","item","renderSuggestListsItem","suggestItem","value","description","icon","renderIcon","iconName","color","type","slot"],"sources":["src/common/render-suggest.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { h } from \"@stencil/core\";\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\nexport const renderSuggestLists = (\n suggestData: SuggestData\n): HTMLChSuggestListElement[] => {\n if (suggestData?.suggestLists.length) {\n return suggestData.suggestLists.map(\n (list: SuggestListData): HTMLChSuggestListElement => {\n return (\n <ch-suggest-list label={list.label}>\n {list.items.map((item: SuggestItemData) => {\n return renderSuggestListsItem(item);\n })}\n </ch-suggest-list>\n );\n }\n );\n }\n return [];\n};\n\nconst renderSuggestListsItem = (\n suggestItem: SuggestItemData\n): HTMLChSuggestListItemElement => {\n return (\n <ch-suggest-list-item value={suggestItem.value}>\n {[\n suggestItem.description || suggestItem.value,\n suggestItem.icon && renderIcon(suggestItem.icon)\n ]}\n </ch-suggest-list-item>\n );\n};\n\nconst renderIcon = (iconName: string): HTMLGxgIconElement => {\n return <gxg-icon color=\"auto\" type={iconName} slot=\"icon\"></gxg-icon>;\n};\n"],"mappings":";;mEAMaA,qBACXC;EAEA,IAAIA,MAAW,QAAXA,WAAW,aAAXA,EAAaC,aAAaC,QAAQ;IACpC,OAAOF,EAAYC,aAAaE,KAC7BC,KAEGC,EAAA;MAAiBC,OAAOF,EAAKE;OAC1BF,EAAKG,MAAMJ,KAAKK,KACRC,uBAAuBD;;EAO1C,OAAO;AAAE;;AAGX,MAAMC,yBACJC,KAGEL,EAAA;EAAsBM,OAAOD,EAAYC;GACtC,EACCD,EAAYE,eAAeF,EAAYC,OACvCD,EAAYG,QAAQC,WAAWJ,EAAYG;;AAMnD,MAAMC,aAAcC,KACXV,EAAA;EAAUW,OAAM;EAAOC,MAAMF;EAAUG,MAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ideLoaderCss","CSS_BUNDLES","IdeLoader","_IdeLoader_timeoutReference","set","this","_IdeLoader_cancelProcess","cancelCallback","clearTimeout","__classPrivateFieldGet","show","_IdeLoader_renderCancelButton","cancelLabel","h","class","type","onClick","_IdeLoader_renderDescription","description","_IdeLoader_renderTitle","loaderTitle","render","Host","model","showWrapper","part","popover","call"],"sources":["src/components/_helpers/ide-loader/ide-loader.scss?tag=gx-ide-loader&encapsulation=shadow","src/components/_helpers/ide-loader/ide-loader.tsx"],"sourcesContent":[".loader {\n &__wrapper {\n position: absolute;\n border: none;\n opacity: 0;\n transition: var(--show-transition) opacity;\n inline-size: 100%;\n block-size: 100%;\n display: flex;\n background-color: var(--mer-surface__elevation--01);\n backdrop-filter: var(--gxg-ide-loader-wrapper__backdrop-filter);\n padding: var(--gxg-ide-loader-wrapper__padding);\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n color: var(--gxg-ide-loader-wrapper__color);\n z-index: 99; // WA to prevent tree-view chevron arrow to appear above.\n animation: fadeIn var(--mer-timing--fast) forwards;\n\n &--visible {\n opacity: 1;\n }\n }\n &__spinner {\n border: var(--gxg-ide-loader-spinner__border);\n border-block-start: var(--gxg-ide-loader-spinner__border-top);\n border-radius: 50%;\n animation: spinner 0.6s infinite linear;\n inline-size: var(--gxg-ide-loader-spinner__width);\n block-size: var(--gxg-ide-loader-spinner__width);\n flex-shrink: 0;\n opacity: 1;\n }\n\n &__content-wrapper {\n display: flex;\n text-align: center;\n flex-direction: column;\n margin-block-start: var(--gxg-ide-loader-content-wrapper__mbs);\n gap: var(--mer-spacing--xs);\n max-block-size: var(--gxg-ide-loader-content-wrapper__max-width);\n &--hidden {\n display: none;\n }\n opacity: 1;\n }\n\n &__cancel-button {\n margin-block-start: var(--mer-spacing--xs);\n }\n}\n\n/*background color animation*/\n@keyframes wrapper {\n 0% {\n background-color: var(--gxg-ide-loader-wrapper__background-color--from);\n }\n 100% {\n background-color: var(--gxg-ide-loader-wrapper__background-color--to);\n }\n}\n@keyframes spinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(359deg);\n }\n}\n\n:host([display-border]) {\n .loader {\n &__wrapper {\n border: 1px solid var(--mer-color__elevation--02);\n }\n }\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"utils/typography\"\n];\n@Component({\n tag: \"gx-ide-loader\",\n styleUrl: \"ide-loader.scss\",\n shadow: true\n})\nexport class IdeLoader {\n #timeoutReference: ReturnType<typeof setTimeout>;\n\n /**\n * shows the '.loader-wrapper'\n */\n @State() showWrapper = true;\n\n /**\n * The time the loader will await before abort.\n */\n @Prop() readonly abortTime: number = 5 * 60 * 1000; // 5 minutes\n\n /**\n * The cancel callback\n */\n @Prop() readonly cancelCallback: IdeLoaderCancelCallback;\n\n /**\n * The cancel button label (optional)\n */\n @Prop() readonly cancelLabel: string;\n\n /**\n * The loader description (optional)\n */\n @Prop() readonly description: string;\n\n /**\n * Displays a border all around\n */\n @Prop({ reflect: true }) readonly displayBorder: boolean = false;\n\n /**\n * The loader title (optional)\n */\n @Prop() readonly loaderTitle: string;\n\n /**\n * It shows the loader\n */\n @Prop({ mutable: true }) show = false;\n\n /**\n * This event is emitted when \"show\" is false.\n */\n @Event() loaderFinished: EventEmitter<void>;\n\n #cancelProcess = (): void => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n clearTimeout(this.#timeoutReference);\n this.show = false;\n };\n\n #renderCancelButton = (): HTMLButtonElement | null =>\n this.cancelLabel && (\n <div>\n <button\n class=\"button-secondary loader__cancel-button\"\n type=\"button\"\n onClick={this.#cancelProcess}\n >\n {this.cancelLabel}\n </button>\n </div>\n );\n\n #renderDescription = (): HTMLParagraphElement | null =>\n this.description && <p class=\"body-regular-italic-s\">{this.description}</p>;\n\n #renderTitle = (): HTMLParagraphElement | null =>\n this.loaderTitle && <p class=\"body-regular-l\">{this.loaderTitle}</p>;\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.show && (\n <div\n class={{\n [`loader__wrapper`]: true,\n \"loader__wrapper--visible\": this.showWrapper\n }}\n part=\"loader-wrapper\"\n popover=\"\"\n >\n <div class=\"loader__spinner\"></div>\n <div\n class={{\n \"loader__content-wrapper\": true,\n \"loader__content-wrapper--hidden\":\n !this.description && !this.loaderTitle && !this.cancelLabel\n }}\n >\n {this.#renderTitle()}\n {this.#renderDescription()}\n {this.#renderCancelButton()}\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n\nexport type IdeLoaderCancelCallback = () => void;\n"],"mappings":";;AAAA,MAAMA,IAAe;;;;;;;;;;ACYrB,MAAMC,IAA8B,EAClC,qBACA,qBACA;;MAOWC,IAAS;;;;IACpBC,EAAAC,IAAAC,WAAA;IA+CAC,EAAAF,IAAAC,OAAiB;MACf,IAAIA,KAAKE,gBAAgB;QACvBF,KAAKE;;MAEPC,aAAaC,EAAAJ,MAAIF,GAAA;MACjBE,KAAKK,OAAO;AAAK;IAGnBC,EAAAP,IAAAC,OAAsB,MACpBA,KAAKO,eACHC,EAAA,aACEA,EAAA;MACEC,OAAM;MACNC,MAAK;MACLC,SAASP,EAAAJ,MAAIC,GAAA;OAEZD,KAAKO;IAKdK,EAAAb,IAAAC,OAAqB,MACnBA,KAAKa,eAAeL,EAAA;MAAGC,OAAM;OAAyBT,KAAKa;IAE7DC,EAAAf,IAAAC,OAAe,MACbA,KAAKe,eAAeP,EAAA;MAAGC,OAAM;OAAkBT,KAAKe;uBAnE/B;qBAKc,IAAI,KAAK;;;;yBAoBa;;gBAU3B;;EAkChC,MAAAC;IACE,OACER,EAACS,GAAI,MACHT,EAAA;MAAUU,OAAOtB;QAChBI,KAAKK,QACJG,EAAA;MACEC,OAAO;QACL,CAAC,oBAAoB;QACrB,4BAA4BT,KAAKmB;;MAEnCC,MAAK;MACLC,SAAQ;OAERb,EAAA;MAAKC,OAAM;QACXD,EAAA;MACEC,OAAO;QACL,2BAA2B;QAC3B,oCACGT,KAAKa,gBAAgBb,KAAKe,gBAAgBf,KAAKO;;OAGnDH,EAAAJ,MAAIc,GAAA,KAAaQ,KAAjBtB,OACAI,EAAAJ,MAAIY,GAAA,KAAmBU,KAAvBtB,OACAI,EAAAJ,MAAIM,GAAA,KAAoBgB,KAAxBtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["convertObjectDataToSuggestData","selectorCategoriesData","suggestData","suggestItems","suggestLists","length","forEach","selectorCategory","suggestList","label","name","items","objectData","suggestItem","value","id","description","icon","push","convertToTreeItem","item","caption","_a","map","lazy","hasChildren","leaf","startImgSrc","convertReferenceDataToTreeViewData","referenceData","treeData","referencesCss","CSS_BUNDLES","GxIdeReferences","this","renderedFirstTime","shortcutsSrc","getAssetPath","selectorCategoryData","selectObjectSelectionChanged","e","categoryIndex","detail","indexes","listIndex","itemIndex","selectedObject","selectObjectValueChangedHandler","async","selectorSourceCallback","then","result","objectsSuggestions","catch","openObjectCallbackHandler","openObjectCallback","openSelectorDialogCallbackHandler","openSelectorDialogCallback","evaluateInitialReferenceData","selectedObjectHandler","loadReferencesHandler","to","loadReferencesCallback","referencesToTreeData","referencedByTreeData","hideBarButtonClickedHandler","barHidden","referencesLazyLoadCallbackHandler","ref","treeItemId","referencesLazyChildren","treeLazyChildren","Promise","resolve","referenceSelectedHandler","event","selectReferenceCallback","selectedItems","referencesItemOpenReferenceCallback","itemOpened","itemId","newSelectedObject","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidLoad","selectObjectSuggestEl","focus","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","h","Host","class","model","displayBorderBottom","noContentPadding","containerTitle","displayTitle","slot","type","onClick","part","labelPosition","header","selectObject","onValueChanged","onSelectionChanged","exportparts","renderSuggestLists","header__bottom","color","padding","required","main","isReferencedBy","contentBorderEnd","titleType","_b","lazyLoadTreeItemsCallback","onSelectedItemsChange","dragDisabled","dropDisabled","onItemOpenReference","showLines","_c","textAlign","config","gxgMessage","common","maxWidth","_d","isReferencedByEmpty","isReferencedByError","hasReferencesTo","_e","_f","_g","_h","hasReferencesEmpty","hasReferencesToError","src"],"sources":["src/components/references/helpers.ts","src/components/references/references.scss?tag=gx-ide-references&encapsulation=shadow","src/components/references/references.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\n\n/* References Types*/\nimport { SelectorCategoryData } from \"./references\";\nimport { ObjectData } from \"./references\";\nimport { ReferenceData } from \"./references\";\n\n/**\n * @description This function converts SelectorCategoryData[] SuggestData\n */\nexport const convertObjectDataToSuggestData = (\n selectorCategoriesData: SelectorCategoryData[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (selectorCategoriesData.length) {\n selectorCategoriesData.forEach(selectorCategory => {\n const suggestList: SuggestListData = {\n label: selectorCategory.name,\n items: []\n };\n selectorCategory.items.forEach((objectData: ObjectData) => {\n const suggestItem: SuggestItemData = {\n value: objectData.id,\n description: objectData.description,\n icon: objectData.icon\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n });\n }\n return suggestData;\n};\n\nconst convertToTreeItem = (item: ReferenceData): TreeViewItemModel => ({\n caption: item.name,\n id: item.id,\n items: (item.items ?? []).map(convertToTreeItem),\n lazy: item.hasChildren && (item.items == null || item.items.length === 0),\n leaf: item.hasChildren === false,\n startImgSrc: item.icon\n});\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertReferenceDataToTreeViewData = (\n referenceData: ReferenceData[] | undefined\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!referenceData) {\n return treeData;\n }\n\n referenceData.forEach(item => {\n treeData.push(convertToTreeItem(item));\n });\n return treeData;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n/*HEADER*/\n.header {\n /*Top*/\n &__top {\n grid-template-columns: min-content auto 1fr min-content;\n grid-template-rows: 1fr;\n grid-template-areas: \"hide-bar-button suggest-label gxg-suggest selector-dialog-button\";\n\n .hide-bar-button {\n grid-area: hide-bar-button;\n }\n .suggest-label {\n grid-area: suggest-label;\n }\n gxg-suggest {\n grid-area: gxg-suggest;\n }\n .selector-dialog-button {\n grid-area: selector-dialog-button;\n }\n }\n /*Bottom*/\n &__bottom {\n display: grid;\n grid-template-rows: 1fr;\n transition: var(--mer-timing--super-fast-ms) grid-template-rows;\n &--hidden {\n grid-template-rows: 0fr;\n }\n .outer-wrapper {\n overflow: hidden;\n }\n .inner-wrapper {\n padding-top: var(--gx-ide-grid-row-gap);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &__left {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-row-gap);\n }\n }\n }\n}\n/*Header hidable*/\n.header-hidden {\n .first-row {\n grid-template-columns: auto 1fr auto;\n > :nth-child(3) {\n align-self: end;\n }\n }\n\n .second-row {\n display: none;\n }\n}\n/*MAIN*/\n.main {\n display: flex;\n height: 100%;\n > * {\n flex: 1;\n }\n .reference-container {\n padding: var(--tree-container-padding);\n display: grid;\n height: 100%;\n &--no-references {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n @include gx-ide-message(\"short\");\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { SuggestItemSelectedEvent } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../common/render-suggest\";\nimport {\n convertObjectDataToSuggestData,\n convertReferenceDataToTreeViewData\n} from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\"\n];\n\n@Component({\n tag: \"gx-ide-references\",\n styleUrl: \"references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/references\"]\n})\nexport class GxIdeReferences {\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/references/shortcuts.json`\n );\n\n /**\n * The last SelectorCategoryData[] returned by selectorSourceCallback\n */\n private selectorCategoryData: SelectorCategoryData[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeReferencesElement;\n private selectObjectSuggestEl!: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n @State() referencedByTreeData: TreeViewItemModel[];\n @State() referencesToTreeData: TreeViewItemModel[];\n\n /**\n * Displays or hides the header-bottom section\n */\n @State() barHidden = false;\n\n /**\n * The objects suggestions that will appear on the suggest\n */\n @State() objectsSuggestions: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Currently selected object\n */\n @Prop({ mutable: true }) selectedObject?: ObjectData;\n @Watch(\"selectedObject\")\n selectedObjectHandler(newSelectedObject: ObjectData) {\n if (newSelectedObject.id) {\n /* update \"is referenced by*/\n this.loadReferencesHandler(newSelectedObject.id, false);\n /* update \"has references to*/\n this.loadReferencesHandler(newSelectedObject.id, true);\n }\n }\n\n /**\n * Callback invoked when user writes on object selector input, return possible options to show in autocomplete list\n */\n @Prop() readonly selectorSourceCallback?: SelectorSourceCallback;\n\n /**\n * Callback invoked when a node is expanded in any of the references panels\n */\n @Prop() readonly loadReferencesCallback?: LoadReferencesCallback;\n\n /**\n * Callback invoked when user wants to open an object\n */\n @Prop() readonly openObjectCallback?: OpenObjectCallback;\n\n /**\n * Callback invoked when user wants to show object selection dialog\n */\n @Prop() readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;\n\n /**\n * Callback invoked when any item from the references panels is selected\n */\n @Prop() readonly selectReferenceCallback?: SelectReferenceCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateInitialReferenceData();\n }\n\n componentDidLoad() {\n this.selectObjectSuggestEl.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 // 9.LOCAL METHODS //\n\n /**\n * It attaches on the ch-suggest, the \"itemSelected\" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.\n */\n private selectObjectSelectionChanged = (\n e: CustomEvent<SuggestItemSelectedEvent>\n ) => {\n const categoryIndex = e.detail.indexes.listIndex;\n const itemIndex = e.detail.indexes.itemIndex;\n this.selectedObject =\n this.selectorCategoryData[categoryIndex].items[itemIndex];\n };\n\n /**\n * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.\n */\n private selectObjectValueChangedHandler = async (e: CustomEvent<string>) => {\n const value = e.detail;\n this.selectorSourceCallback(value)\n .then(result => {\n this.selectorCategoryData = result;\n /* show suggestions*/\n this.objectsSuggestions = convertObjectDataToSuggestData(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private openObjectCallbackHandler = async () => {\n this.openObjectCallback(this.selectedObject.id);\n /* Returns an empty Promise*/\n };\n\n /**\n * handler that gets fired when the use clicks on the ch-suggest button (...)\n */\n private openSelectorDialogCallbackHandler = async () => {\n this.openSelectorDialogCallback()\n .then(result => {\n this.selectedObject = result;\n })\n .catch(() => {\n /* to do */\n });\n };\n\n /**\n * It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.\n */\n private evaluateInitialReferenceData = () => {\n if (this.selectedObject) {\n this.selectedObjectHandler(this.selectedObject);\n }\n };\n\n /**\n * This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels. The second parameter \"to\" indicates if loadReferencesCallback callback should be called for \"has references to\" or \"is references by\"\n */\n private loadReferencesHandler = async (id: string, to = false) => {\n if (this.loadReferencesCallback) {\n this.loadReferencesCallback(id, to).then(result => {\n if (to) {\n this.referencesToTreeData =\n convertReferenceDataToTreeViewData(result);\n } else {\n this.referencedByTreeData =\n convertReferenceDataToTreeViewData(result);\n }\n });\n }\n };\n\n /**\n * It hides/show the bar (The header bottom section).\n */\n private hideBarButtonClickedHandler = () => {\n this.barHidden = !this.barHidden;\n };\n\n private referencesLazyLoadCallbackHandler =\n (ref: \"references-to\" | \"referenced-by\") =>\n async (treeItemId: string): Promise<TreeViewItemModel[]> => {\n if (this.loadReferencesCallback) {\n const to = ref === \"references-to\";\n const referencesLazyChildren = await this.loadReferencesCallback(\n treeItemId,\n to\n );\n const treeLazyChildren = convertReferenceDataToTreeViewData(\n referencesLazyChildren\n );\n return new Promise(resolve => {\n resolve(treeLazyChildren);\n });\n }\n return new Promise(resolve => {\n resolve([]);\n });\n };\n\n private referenceSelectedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (this.selectReferenceCallback) {\n const selectedItems: string[] = event.detail.map(item => item.item.id);\n this.selectReferenceCallback(selectedItems[0]);\n // returns void\n }\n };\n\n private referencesItemOpenReferenceCallback = (\n itemOpened: CustomEvent<{ id: string; leaf: boolean; metadata: string }>\n ) => {\n const itemId = itemOpened.detail.id;\n if (this.openObjectCallback) {\n this.openObjectCallback(itemId);\n // returns void\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n displayBorderBottom\n noContentPadding\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header class=\"header\" slot=\"header\">\n <div class=\"header__top grid\">\n {/* select object */}\n <gxg-button\n icon=\"navigation/arrow-down\"\n type=\"secondary-icon-only\"\n class=\"hide-bar-button\"\n onClick={this.hideBarButtonClickedHandler}\n part=\"toggle-bar-button\"\n ></gxg-button>\n <gxg-label\n labelPosition=\"start\"\n class=\"suggest-label\"\n part=\"select-object-label\"\n >\n {this._componentLocale.header.selectObject}\n </gxg-label>\n <gxg-suggest>\n <ch-suggest\n value={this.selectedObject.name}\n onValueChanged={this.selectObjectValueChangedHandler}\n onSelectionChanged={this.selectObjectSelectionChanged}\n part=\"object-selector-suggest\"\n exportparts=\"dropdown:select-object-dropdown\"\n ref={el =>\n (this.selectObjectSuggestEl = el as HTMLChSuggestElement)\n }\n >\n {renderSuggestLists(this.objectsSuggestions)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.openSelectorDialogCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n </div>\n <div\n class={{\n \"header__bottom\": true,\n \"header__bottom--hidden\": this.barHidden\n }}\n >\n <div class=\"outer-wrapper\">\n <div class=\"inner-wrapper\">\n <div class=\"inner-wrapper__left\">\n <gxg-icon\n type={this.selectedObject.icon}\n color=\"auto\"\n ></gxg-icon>\n <gxg-text\n padding=\"s\"\n type=\"text-link\"\n part=\"open-object-text-link\"\n onClick={this.openObjectCallbackHandler}\n >\n {`${this.selectedObject.name} : ${this.selectedObject.description}`}\n </gxg-text>\n </div>\n <div class=\"inner-wrapper__right gxi-hidden\">\n <gxg-form-checkbox\n id=\"references-by-type\"\n label=\"Group references by type\"\n required\n display-validation-styles\n part=\"references-type-checkbox\"\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n </div>\n </header>\n\n <main class=\"main\">\n <gx-ide-container\n containerTitle={this._componentLocale.main.isReferencedBy}\n noContentPadding\n part=\"referenced-by-container\"\n contentBorderEnd\n titleType=\"secondary\"\n >\n {/* is referenced by*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencedByTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencedByTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-by-tree\"\n model={this.referencedByTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"referenced-by\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencedByTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"referenced-by-text\"\n class=\"gx-ide-message\"\n >\n {this.referencedByTreeData?.length === 0\n ? this._componentLocale.main.isReferencedByEmpty\n : this._componentLocale.main.isReferencedByError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n <gx-ide-container\n noContentPadding\n containerTitle={this._componentLocale.main.hasReferencesTo}\n part=\"references-to-container\"\n titleType=\"secondary\"\n >\n {/* has references to*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencesToTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencesToTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-to-tree\"\n model={this.referencesToTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"references-to\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencesToTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"references-to-text\"\n class=\"gx-ide-message\"\n >\n {this.referencesToTreeData?.length === 0\n ? this._componentLocale.main.hasReferencesEmpty\n : this._componentLocale.main.hasReferencesToError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n </main>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type SelectorCategoryData = {\n name: string;\n items: ObjectData[];\n};\n\nexport type ObjectData = {\n id: string;\n typeName: string;\n icon: string;\n name: string;\n description?: string;\n};\n\nexport type ReferenceData = ObjectData & {\n hasChildren: boolean;\n items?: ReferenceData[];\n};\n\nexport type SelectorSourceCallback = (\n prefix: string\n) => Promise<SelectorCategoryData[]>;\n\nexport type LoadReferencesCallback = (\n id: string,\n to: boolean\n) => Promise<ReferenceData[]>;\n\nexport type OpenObjectCallback = (id: string) => Promise<void>;\nexport type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;\nexport type SelectReferenceCallback = (id: string) => Promise<void>;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["convertSuggestedApplicationsToSuggestItems","suggestedApplications","suggestData","suggestItems","suggestLists","length","suggestList","label","items","forEach","suggestedApplication","suggestItem","value","description","icon","push","bpmAppDeclarationCss","CSS_BUNDLES","GxIdeBpmAppDeclaration","this","renderedFirstTime","shortcutsSrc","getAssetPath","listenApplicationSelected","async","applicationSuggestEl","addEventListener","e","getDataMappingCallbackHandler","detail","applicationSuggestValueChangedHandler","suggestApplicationsCallback","then","result","catch","applicationName","application","getDataMappingCallback","selectApplicationCallbackHandler","callbackResult","selectApplicationCallback","confirmCallbackHandler","confirmCallback","cancelCallbackHandler","cancelCallback","selectMappingCallbackHandler","parameter","selectMappingCallback","newRelevantData","dataIndex","applicationState","mappings","findIndex","mapping","found","relevantDataOptions","find","option","relevantData","Object","assign","dataOptionsToComboItems","gxOptions","id","_componentLocale","dataMappings","emptyOption","relevantOption","gxOption","clearApplicationHandler","undefined","renderDataMappingsGrid","h","class","part","columnName","_a","typeIcon","firstColName","firstColNameParameter","settingable","size","config","tabularGrid","colSize","common","secondColName","sortable","auto","map","obj","index","rowId","access","disableFilter","renderComboItems","type","onClick","watchApplicationHandler","newApplication","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","model","noContentPadding","noAboveFooterPadding","noHeadingBorder","slimmerFooter","gxIdeContainer","containerTitle","displayTitle","slot","name","onValueChanged","ref","renderSuggestLists","title","buttons","cancelButton","confirmButton","src"],"sources":["src/components/bpm/application-declaration/helpers.ts","src/components/bpm/application-declaration/bpm-app-declaration.scss?tag=gx-ide-bpm-app-declaration&encapsulation=shadow","src/components/bpm/application-declaration/bpm-app-declaration.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\n/* References Types*/\n\n/**\n * @description This function converts string[] to SuggestItemData[]\n */\nexport const convertSuggestedApplicationsToSuggestItems = (\n suggestedApplications: string[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (suggestedApplications.length) {\n const suggestList: SuggestListData = {\n label: \"Applications\",\n items: []\n };\n suggestedApplications.forEach((suggestedApplication: string) => {\n const suggestItem: SuggestItemData = {\n value: suggestedApplication,\n description: null,\n icon: null\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n }\n return suggestData;\n};\n","@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: block;\n .header {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-grid-row-gap);\n &__first-row {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n .application-suggest {\n flex: 1;\n }\n }\n }\n /*data mappings*/\n .data-mappings {\n display: grid;\n }\n .row-button {\n display: flex;\n align-items: center;\n }\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-application-declaration\",\n $tabular-grid-cell-node-type: \"element\",\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// temporary styles until que update controls with chameleon + mercury:\n\ngx-ide-container::part(content) {\n display: grid;\n}\n\ngxg-combo-box::part(input-input) {\n border: none;\n background-color: transparent;\n top: 2px;\n}\n\n// WA\n.tabular-grid-cell:nth-child(2) {\n padding: 0 !important;\n display: grid;\n align-items: stretch;\n justify-content: stretch;\n --ds-focus-border-width: none;\n}\n.tabular-grid-cell:nth-child(3) {\n padding: 0 !important;\n align-items: center !important;\n justify-content: center !important;\n}\n.tabular-grid {\n overflow: auto;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../../common/render-suggest\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { convertSuggestedApplicationsToSuggestItems } from \"./helpers\";\nimport { GxOption } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-bpm-app-declaration\",\n styleUrl: \"bpm-app-declaration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-app-declaration\"]\n})\nexport class GxIdeBpmAppDeclaration {\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/bpm-app-declaration/shortcuts.json`\n );\n\n /**\n * The state of the actual application. Used to add a new 'Relevant data' option on 'selectMappingCallback', and update the application with the new option\n */\n private applicationState: ApplicationDeclarationData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmAppDeclarationElement;\n private applicationSuggestEl: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Possible suggestions for the applications\n */\n @State() suggestedApplications: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Current application value\n */\n @Prop({ mutable: true }) application: ApplicationDeclarationData;\n\n @Watch(\"application\")\n watchApplicationHandler(newApplication: ApplicationDeclarationData) {\n this.applicationState = newApplication;\n }\n\n /**\n * Callback invoked to get options for application input suggest\n */\n @Prop() readonly suggestApplicationsCallback: SuggestApplicationsCallback;\n\n /**\n * Callback invoked to get access to selection application dialog\n */\n @Prop() readonly selectApplicationCallback: SelectApplicationCallback;\n\n /**\n * Callback invoked when user press mapping auto-def button\n */\n @Prop() readonly selectMappingCallback: SelectMappingCallback;\n\n /**\n * Callback invoked when user confirms application declaration\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels application declaration\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user select one of the options provided by the suggest\n */\n @Prop() readonly getDataMappingCallback: GetDataMappingCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.applicationState = this.application;\n }\n\n async componentDidLoad() {\n /* this.applicationSuggestValueChangedHandler(this.applicationText); */\n this.listenApplicationSelected();\n this.applicationSuggestEl.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 // 9.LOCAL METHODS //\n\n private listenApplicationSelected = async () => {\n this.applicationSuggestEl.addEventListener(\"itemSelected\", (e: any) => {\n this.getDataMappingCallbackHandler(e.detail.value);\n });\n };\n\n private applicationSuggestValueChangedHandler = async (\n e: CustomEvent<string>\n ) => {\n const value = e.detail;\n this.suggestApplicationsCallback(value)\n .then(result => {\n this.suggestedApplications =\n convertSuggestedApplicationsToSuggestItems(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private getDataMappingCallbackHandler = async (applicationName: string) => {\n this.application = await this.getDataMappingCallback(applicationName);\n };\n\n private selectApplicationCallbackHandler = async () => {\n const callbackResult = await this.selectApplicationCallback();\n if (callbackResult) {\n this.application = callbackResult;\n }\n };\n\n private confirmCallbackHandler = async () => {\n await this.confirmCallback(this.application);\n };\n\n private cancelCallbackHandler = async () => {\n await this.cancelCallback();\n };\n\n private selectMappingCallbackHandler = (parameter: string) => async () => {\n if (this.selectMappingCallback) {\n const newRelevantData = await this.selectMappingCallback(parameter);\n if (newRelevantData) {\n // update actual application with new relevant data option\n // first find mapping index\n const dataIndex: number = this.applicationState.mappings.findIndex(\n mapping => {\n return mapping.parameter === parameter;\n }\n );\n if (dataIndex !== -1) {\n // new relevant data could be new, or already existent.\n const found = this.applicationState.mappings[\n dataIndex\n ].relevantDataOptions.find(option => {\n return option === newRelevantData;\n });\n if (!found) {\n // new. add.\n this.applicationState.mappings[dataIndex].relevantDataOptions.push(\n newRelevantData\n );\n }\n // always set this data as selected\n this.applicationState.mappings[dataIndex].relevantData =\n newRelevantData;\n // update\n this.application = { ...this.applicationState };\n }\n }\n }\n };\n\n private dataOptionsToComboItems = (\n relevantDataOptions: string[]\n ): GxOption[] => {\n const gxOptions: GxOption[] = [\n { id: this._componentLocale.dataMappings.emptyOption }\n ];\n relevantDataOptions.forEach(relevantOption => {\n const gxOption: GxOption = { id: relevantOption };\n gxOptions.push(gxOption);\n });\n return gxOptions;\n };\n\n private clearApplicationHandler = () => {\n this.application = {\n application: undefined,\n mappings: []\n };\n };\n\n private renderDataMappingsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-application-declaration\"\n part=\"ch-grid-data-mappings\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={\n this.application.application?.typeIcon === \"objects/transaction\"\n ? this._componentLocale.dataMappings.firstColName\n : this._componentLocale.dataMappings.firstColNameParameter\n }\n settingable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={this._componentLocale.dataMappings.secondColName}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.application.mappings.map((obj: DataMappingData, index) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowId={index + obj.parameter}\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${obj.access}: ${obj.parameter}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-combo-box disableFilter value={obj.relevantData}>\n {renderComboItems(\n this.dataOptionsToComboItems(obj.relevantDataOptions) ?? []\n )}\n </gxg-combo-box>\n {/* <div class=\"row-button\">{obj.relevantData}</div> */}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-button\n data-index={index}\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/add\"\n onClick={this.selectMappingCallbackHandler(obj.parameter)}\n class=\"select-mapping-callback-button\"\n ></gxg-button>\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header slot=\"header\" class=\"header\">\n <div class=\"header__first-row\">\n <gxg-suggest class=\"application-suggest\">\n <ch-suggest\n value={this.application.application?.name || null}\n onValueChanged={this.applicationSuggestValueChangedHandler}\n ref={el =>\n (this.applicationSuggestEl = el as HTMLChSuggestElement)\n }\n part=\"application-suggest\"\n >\n {renderSuggestLists(this.suggestedApplications)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.selectApplicationCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n <gxg-button\n type=\"outlined\"\n part=\"clear-application-button\"\n onClick={this.clearApplicationHandler}\n >\n Clear\n </gxg-button>\n </div>\n <div class=\"header__second-row\">\n <gx-ide-title type=\"secondary\">\n {this._componentLocale.dataMappings.title}\n </gx-ide-title>\n </div>\n </header>\n\n {this.renderDataMappingsGrid()}\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n onClick={this.cancelCallbackHandler}\n part=\"cancel-button\"\n >\n {this._componentLocale.buttons.cancelButton}\n </gxg-button>\n <gxg-button\n type=\"primary-text-only\"\n slot=\"footer-end\"\n icon=\"general/datastore\"\n onClick={this.confirmCallbackHandler}\n part=\"confirm-button\"\n >\n {this._componentLocale.buttons.confirmButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type ApplicationDeclarationData = {\n application?: ApplicationData;\n mappings: DataMappingData[];\n};\nexport type ApplicationData = {\n name: string;\n typeIcon: string;\n};\n\nexport type DataMappingData = {\n parameter: string;\n access: \"in\" | \"out\" | \"in-out\";\n relevantDataOptions: string[];\n relevantData?: string;\n};\n\nexport type SuggestApplicationsCallback = (\n prefix: string\n) => Promise<string[] | undefined>;\n\nexport type SelectApplicationCallback = () => Promise<\n ApplicationDeclarationData | undefined\n>;\n\nexport type SelectMappingCallback = (parameter: string) => Promise<string>;\n\nexport type ConfirmCallback = (\n data: ApplicationDeclarationData\n) => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataMappingCallback = (\n applicationName: string\n) => Promise<ApplicationDeclarationData>;\n"],"mappings":"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"}
|