@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.
Files changed (57) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +22 -2
  3. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-references.cjs.entry.js +171 -146
  7. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/components/_helpers/ide-loader/ide-loader.css +1 -1
  10. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.en.json +8 -3
  11. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.ja.json +7 -2
  12. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.zh.json +7 -2
  13. package/dist/collection/components/references/helpers.js +26 -24
  14. package/dist/collection/components/references/helpers.js.map +1 -1
  15. package/dist/collection/components/references/references.css +32 -44
  16. package/dist/collection/components/references/references.js +197 -198
  17. package/dist/collection/components/references/references.js.map +1 -1
  18. package/dist/components/gx-ide-bpm-app-declaration.js +22 -2
  19. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  20. package/dist/components/gx-ide-references.js +181 -163
  21. package/dist/components/gx-ide-references.js.map +1 -1
  22. package/dist/components/ide-loader.js +1 -1
  23. package/dist/components/ide-loader.js.map +1 -1
  24. package/dist/esm/genexus-ide-ui.js +1 -1
  25. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +22 -2
  26. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  27. package/dist/esm/gx-ide-loader.entry.js +1 -1
  28. package/dist/esm/gx-ide-loader.entry.js.map +1 -1
  29. package/dist/esm/gx-ide-references.entry.js +172 -147
  30. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  33. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  34. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.en.json +8 -3
  35. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.ja.json +7 -2
  36. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.zh.json +7 -2
  37. package/dist/genexus-ide-ui/{p-e3f234a8.entry.js → p-3d2bdcb9.entry.js} +249 -226
  38. package/dist/genexus-ide-ui/p-3d2bdcb9.entry.js.map +1 -0
  39. package/dist/genexus-ide-ui/{p-fce76974.entry.js → p-4fcde4d0.entry.js} +74 -57
  40. package/dist/genexus-ide-ui/p-4fcde4d0.entry.js.map +1 -0
  41. package/dist/genexus-ide-ui/{p-57354473.entry.js → p-5246559c.entry.js} +7 -7
  42. package/dist/genexus-ide-ui/p-5246559c.entry.js.map +1 -0
  43. package/dist/types/components/references/helpers.d.ts +4 -7
  44. package/dist/types/components/references/references.d.ts +23 -71
  45. package/dist/types/components.d.ts +4 -31
  46. package/package.json +1 -1
  47. package/dist/cjs/render-suggest-4a569cbe.js +0 -28
  48. package/dist/cjs/render-suggest-4a569cbe.js.map +0 -1
  49. package/dist/components/render-suggest.js +0 -26
  50. package/dist/components/render-suggest.js.map +0 -1
  51. package/dist/esm/render-suggest-dac35d72.js +0 -26
  52. package/dist/esm/render-suggest-dac35d72.js.map +0 -1
  53. package/dist/genexus-ide-ui/p-5545d58d.js +0 -23
  54. package/dist/genexus-ide-ui/p-5545d58d.js.map +0 -1
  55. package/dist/genexus-ide-ui/p-57354473.entry.js.map +0 -1
  56. package/dist/genexus-ide-ui/p-e3f234a8.entry.js.map +0 -1
  57. package/dist/genexus-ide-ui/p-fce76974.entry.js.map +0 -1
@@ -1,44 +1,19 @@
1
- import { EventEmitter } from "../../stencil-public-runtime";
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
- * The objects suggestions that will appear on the suggest
10
+ * Objects suggestions that will appear on the suggest
25
11
  */
26
- objectsSuggestions: SuggestData;
27
- /**
28
- * If true it displays the component title on the header
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 of the references panels
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
- * Gets fired when the component has rendered for the first time.
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
- private openSelectorDialogCallbackHandler;
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
- * It hides/show the bar (The header bottom section).
36
+ * Currently selected object
86
37
  */
87
- private hideBarButtonClickedHandler;
88
- private referencesLazyLoadCallbackHandler;
89
- private referenceSelectedHandler;
90
- private referencesItemOpenReferenceCallback;
38
+ selectedObject?: ObjectData;
39
+ selectedObjectChanged(newSelectedObject: ObjectData): void;
40
+ componentDidLoad(): void;
41
+ componentWillLoad(): Promise<void>;
91
42
  render(): any;
92
43
  }
93
- export type SelectorCategoryData = {
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
- * If true it displays the component title on the header
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, return possible options to show in autocomplete list
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
- * If true it displays the component title on the header
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, return possible options to show in autocomplete list
4354
+ * Callback invoked when user writes on object selector input
4382
4355
  */
4383
4356
  "selectorSourceCallback"?: SelectorSourceCallback;
4384
4357
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genexus/genexus-ide-ui",
3
3
  "license": "Apache-2.0",
4
- "version": "1.0.59",
4
+ "version": "1.0.61",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",
@@ -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":";;;;;;;;;;GAeO,OAAMA,iCACXC;EAEA,MAAMC,IAA2B;IAC/BC,cAAc;IACdC,cAAc;;EAEhB,IAAIH,EAAuBI,QAAQ;IACjCJ,EAAuBK,SAAQC;MAC7B,MAAMC,IAA+B;QACnCC,OAAOF,EAAiBG;QACxBC,OAAO;;MAETJ,EAAiBI,MAAML,SAASM;QAC9B,MAAMC,IAA+B;UACnCC,OAAOF,EAAWG;UAClBC,aAAaJ,EAAWI;UACxBC,MAAML,EAAWK;;QAEnBT,EAAYG,MAAMO,KAAKL;AAAY;MAErCX,EAAYE,aAAac,KAAKV;AAAY;;EAG9C,OAAON;AAAW;;AAGpB,MAAMiB,oBAAqBC;;EAA2C;IACpEC,SAASD,EAAKV;IACdK,IAAIK,EAAKL;IACTJ,SAAQW,IAAAF,EAAKT,WAAK,QAAAW,WAAA,IAAAA,IAAI,IAAIC,IAAIJ;IAC9BK,MAAMJ,EAAKK,gBAAgBL,EAAKT,SAAS,QAAQS,EAAKT,MAAMN,WAAW;IACvEqB,MAAMN,EAAKK,gBAAgB;IAC3BE,aAAaP,EAAKH;;AACnB;;;;GAKM,OAAMW,qCACXC;EAEA,MAAMC,IAAgC;EACtC,KAAKD,GAAe;IAClB,OAAOC;;EAGTD,EAAcvB,SAAQc;IACpBU,EAASZ,KAAKC,kBAAkBC;AAAM;EAExC,OAAOU;AAAQ;;ACjEjB,MAAMC,IAAgB;;ACiCtB,MAAMC,IAA8B,EAClC,qBACA,cACA,gBACA,oBACA,qBACA,uBACA,mBACA;;MASWC,IAAe;;;;IAOlBC,KAAAC,oBAAoB;IACpBD,KAAAE,eAAeC,EACrB;;;eAMMH,KAAAI,uBAA+C;;;;;;eAwG/CJ,KAAAK,+BACNC;MAEA,MAAMC,IAAgBD,EAAEE,OAAOC,QAAQC;MACvC,MAAMC,IAAYL,EAAEE,OAAOC,QAAQE;MACnCX,KAAKY,iBACHZ,KAAKI,qBAAqBG,GAAe9B,MAAMkC;AAAU;;;eAMrDX,KAAAa,kCAAkCC,MAAOR;MAC/C,MAAM1B,IAAQ0B,EAAEE;MAChBR,KAAKe,uBAAuBnC,GACzBoC,MAAKC;QACJjB,KAAKI,uBAAuBa;qCAE5BjB,KAAKkB,qBAAqBpD,+BAA+BmD;AAAO,UAEjEE,OAAM;AAEL;IAGEnB,KAAAoB,4BAA4BN;MAClCd,KAAKqB,mBAAmBrB,KAAKY,eAAe/B;mCAAG;;;eAOzCmB,KAAAsB,oCAAoCR;MAC1Cd,KAAKuB,6BACFP,MAAKC;QACJjB,KAAKY,iBAAiBK;AAAM,UAE7BE,OAAM;AAEL;;;eAMEnB,KAAAwB,+BAA+B;MACrC,IAAIxB,KAAKY,gBAAgB;QACvBZ,KAAKyB,sBAAsBzB,KAAKY;;;;;eAO5BZ,KAAA0B,wBAAwBZ,OAAOjC,GAAY8C,IAAK;MACtD,IAAI3B,KAAK4B,wBAAwB;QAC/B5B,KAAK4B,uBAAuB/C,GAAI8C,GAAIX,MAAKC;UACvC,IAAIU,GAAI;YACN3B,KAAK6B,uBACHnC,mCAAmCuB;iBAChC;YACLjB,KAAK8B,uBACHpC,mCAAmCuB;;;;;;;eASrCjB,KAAA+B,8BAA8B;MACpC/B,KAAKgC,aAAahC,KAAKgC;AAAS;IAG1BhC,KAAAiC,oCACLC,KACDpB,MAAOqB;MACL,IAAInC,KAAK4B,wBAAwB;QAC/B,MAAMD,IAAKO,MAAQ;QACnB,MAAME,UAA+BpC,KAAK4B,uBACxCO,GACAR;QAEF,MAAMU,IAAmB3C,mCACvB0C;QAEF,OAAO,IAAIE,SAAQC;UACjBA,EAAQF;AAAiB;;MAG7B,OAAO,IAAIC,SAAQC;QACjBA,EAAQ;AAAG;AACX;IAGEvC,KAAAwC,2BACNC;MAEA,IAAIzC,KAAK0C,yBAAyB;QAChC,MAAMC,IAA0BF,EAAMjC,OAAOnB,KAAIH,KAAQA,EAAKA,KAAKL;QACnEmB,KAAK0C,wBAAwBC,EAAc;;;;IAKvC3C,KAAA4C,sCACNC;MAEA,MAAMC,IAASD,EAAWrC,OAAO3B;MACjC,IAAImB,KAAKqB,oBAAoB;QAC3BrB,KAAKqB,mBAAmByB;;;;;;qBAzMP;;wBAYW;;;;;;;;EAOhC,qBAAArB,CAAsBsB;IACpB,IAAIA,EAAkBlE,IAAI;;MAExBmB,KAAK0B,sBAAsBqB,EAAkBlE,IAAI;0CAEjDmB,KAAK0B,sBAAsBqB,EAAkBlE,IAAI;;;;EAsCrD,uBAAMmE;IACJhD,KAAKiD,yBAAyBC,EAAOC,oBAAoBnD,KAAKoD;IAC9DpD,KAAKwB;;EAGP,gBAAA6B;IACErD,KAAKsD,sBAAsBC;;EAG7B,kBAAAC;IACE,KAAKxD,KAAKC,mBAAmB;MAC3BD,KAAKyD,4BAA4BC,KAC/B1D,KAAKiD,iBAAiBU;MAExB3D,KAAKC,oBAAoB;;;;EAoI7B,MAAA2D;;IACE,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOlE;QACjB+D,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEI,qBAAmB;MACnBC,kBAAgB;MAChBC,gBACEnE,KAAKoE,eAAepE,KAAKiD,iBAAiBU,gBAAgB;OAG5DE,EAAA;MAAQE,OAAM;MAASM,MAAK;OAC1BR,EAAA;MAAKE,OAAM;OAETF,EAAA;MACE9E,MAAK;MACLuF,MAAK;MACLP,OAAM;MACNQ,SAASvE,KAAK+B;MACdyC,MAAK;QAEPX,EAAA;MACEY,eAAc;MACdV,OAAM;MACNS,MAAK;OAEJxE,KAAKiD,iBAAiByB,OAAOC,eAEhCd,EAAA,qBACEA,EAAA;MACEjF,OAAOoB,KAAKY,eAAepC;MAC3BoG,gBAAgB5E,KAAKa;MACrBgE,oBAAoB7E,KAAKK;MACzBmE,MAAK;MACLM,aAAY;MACZ5C,KAAKkB,KACFpD,KAAKsD,wBAAwBF;OAG/B2B,EAAmB/E,KAAKkB,uBAG7B2C,EAAA;MACES,MAAK;MACLvF,MAAK;MACLwF,SAASvE,KAAKsB;MACdyC,OAAM;MACNS,MAAK;SAGTX,EAAA;MACEE,OAAO;QACLiB,gBAAkB;QAClB,0BAA0BhF,KAAKgC;;OAGjC6B,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACES,MAAMtE,KAAKY,eAAe7B;MAC1BkG,OAAM;QAERpB,EAAA;MACEqB,SAAQ;MACRZ,MAAK;MACLE,MAAK;MACLD,SAASvE,KAAKoB;OAEb,GAAGpB,KAAKY,eAAepC,UAAUwB,KAAKY,eAAe9B,iBAG1D+E,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEhF,IAAG;MACHN,OAAM;MACN4G,UAAQ;MAAA;MAERX,MAAK;aAQjBX,EAAA;MAAME,OAAM;OACVF,EAAA;MACEM,gBAAgBnE,KAAKiD,iBAAiBmC,KAAKC;MAC3CnB,kBAAgB;MAChBM,MAAK;MACLc,kBAAgB;MAChBC,WAAU;OAGV1B,EAAA;MACEE,OAAO;QACL,uBAAuB;QACvB,yCACG3E,IAAAY,KAAK8B,0BAAoB,QAAA1C,WAAA,aAAAA,EAAEjB;;OAGhC0F,EAAA;MACEE,OAAO;QACL,iBAAeyB,IAAAxF,KAAK8B,0BAAoB,QAAA0D,WAAA,aAAAA,EAAErH;QAC1C,aAAa;;MAEfqG,MAAK;MACLR,OAAOhE,KAAK8B;MACZ2D,2BAA2BzF,KAAKiC,kCAC9B;MAEFyD,uBAAuB1F,KAAKwC;MAC5BmD,cAAc;MACdC,cAAc;MACdC,qBACE7F,KAAK4C;MAEPkD,WAAU;WAEVC,IAAA/F,KAAK8B,0BAAoB,QAAAiE,WAAA,aAAAA,EAAE5H,WAC3B0F,EAAA;MACEmC,WACEC,EAAOC,WAAWC,OAAOH;MAE3Bd,SACEe,EAAOC,WAAWC,OAAOH;MAE3B1B,MAAM2B,EAAOC,WAAWC,OAAO7B;MAC/B8B,UAAUH,EAAOC,WAAWC,OAAOC;MACnC5B,MAAK;MACLT,OAAM;SAELsC,IAAArG,KAAK8B,0BAAoB,QAAAuE,WAAA,aAAAA,EAAElI,YAAW,IACnC6B,KAAKiD,iBAAiBmC,KAAKkB,sBAC3BtG,KAAKiD,iBAAiBmC,KAAKmB,wBAKvC1C,EAAA;MACEK,kBAAgB;MAChBC,gBAAgBnE,KAAKiD,iBAAiBmC,KAAKoB;MAC3ChC,MAAK;MACLe,WAAU;OAGV1B,EAAA;MACEE,OAAO;QACL,uBAAuB;QACvB,yCACG0C,IAAAzG,KAAK6B,0BAAoB,QAAA4E,WAAA,aAAAA,EAAEtI;;OAGhC0F,EAAA;MACEE,OAAO;QACL,iBAAe2C,IAAA1G,KAAK6B,0BAAoB,QAAA6E,WAAA,aAAAA,EAAEvI;QAC1C,aAAa;;MAEfqG,MAAK;MACLR,OAAOhE,KAAK6B;MACZ4D,2BAA2BzF,KAAKiC,kCAC9B;MAEFyD,uBAAuB1F,KAAKwC;MAC5BmD,cAAc;MACdC,cAAc;MACdC,qBACE7F,KAAK4C;MAEPkD,WAAU;WAEVa,IAAA3G,KAAK6B,0BAAoB,QAAA8E,WAAA,aAAAA,EAAExI,WAC3B0F,EAAA;MACEmC,WACEC,EAAOC,WAAWC,OAAOH;MAE3Bd,SACEe,EAAOC,WAAWC,OAAOH;MAE3B1B,MAAM2B,EAAOC,WAAWC,OAAO7B;MAC/B8B,UAAUH,EAAOC,WAAWC,OAAOC;MACnC5B,MAAK;MACLT,OAAM;SAEL6C,IAAA5G,KAAK6B,0BAAoB,QAAA+E,WAAA,aAAAA,EAAEzI,YAAW,IACnC6B,KAAKiD,iBAAiBmC,KAAKyB,qBAC3B7G,KAAKiD,iBAAiBmC,KAAK0B,4BAQ7CjD,EAAA;MAAekD,KAAK/G,KAAKE"}
@@ -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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"}