@genexus/genexus-ide-ui 1.0.7 → 1.0.9
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/{config-7499aff7.js → config-cefda28a.js} +2 -2
- package/dist/cjs/{config-7499aff7.js.map → config-cefda28a.js.map} +1 -1
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +155 -133
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
- package/dist/cjs/{gx-ide-empty-state.cjs.entry.js → gx-ide-empty-state_2.cjs.entry.js} +56 -3
- package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +4 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -2
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/common/config.js +1 -1
- package/dist/collection/common/config.js.map +1 -1
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js +23 -3
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
- package/dist/collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.en.json +1 -0
- package/dist/collection/components/data-selector/data-selector.css +19 -624
- package/dist/collection/components/data-selector/data-selector.js +251 -244
- package/dist/collection/components/data-selector/data-selector.js.map +1 -1
- package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.en.json +4 -1
- package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.ja.json +5 -2
- package/dist/collection/components/data-selector/gx-ide-assets/data-selector/shortcuts.json +2 -2
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +1 -2
- package/dist/collection/components/kb-manager-export/kb-manager-export.js.map +1 -1
- package/dist/collection/components/object-selector/object-selector.js +1 -1
- package/dist/collection/components/object-selector/object-selector.js.map +1 -1
- package/dist/components/config.js +1 -1
- package/dist/components/config.js.map +1 -1
- package/dist/components/entity-selector.js +5 -1
- package/dist/components/entity-selector.js.map +1 -1
- package/dist/components/gx-ide-data-selector.js +167 -146
- package/dist/components/gx-ide-data-selector.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-export.js +1 -2
- package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
- package/dist/components/gx-ide-object-selector.js +1 -1
- package/dist/components/gx-ide-object-selector.js.map +1 -1
- package/dist/esm/{config-6cfbb06f.js → config-084ee328.js} +2 -2
- package/dist/esm/{config-6cfbb06f.js.map → config-084ee328.js.map} +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +156 -134
- package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -1
- package/dist/esm/{gx-ide-empty-state.entry.js → gx-ide-empty-state_2.entry.js} +57 -5
- package/dist/esm/gx-ide-empty-state_2.entry.js.map +1 -0
- package/dist/esm/gx-ide-entity-selector.entry.js +4 -1
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -2
- package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-new-object.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +2 -2
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-recent-news.entry.js +1 -1
- package/dist/esm/gx-ide-references.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
- package/dist/esm/gx-ide-template.entry.js +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.en.json +4 -1
- package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.ja.json +5 -2
- package/dist/genexus-ide-ui/gx-ide-assets/data-selector/shortcuts.json +2 -2
- package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.en.json +1 -0
- package/dist/genexus-ide-ui/{p-3824978b.entry.js → p-05eb7c04.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-3824978b.entry.js.map → p-05eb7c04.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-27fcaad7.entry.js → p-1a1042c2.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a3daa189.entry.js → p-1f8445eb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-885302c2.entry.js → p-241f3d69.entry.js} +87 -18
- package/dist/genexus-ide-ui/p-241f3d69.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-04421676.entry.js → p-2b200d34.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0ac125fc.entry.js → p-41e5e8e0.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-980f96c5.entry.js → p-4ade9a67.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-8cf892b5.js → p-55a30661.js} +2 -2
- package/dist/genexus-ide-ui/{p-8cf892b5.js.map → p-55a30661.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-0be068bf.entry.js → p-5620c188.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a587e7ca.entry.js → p-58e33dda.entry.js} +36 -31
- package/dist/genexus-ide-ui/p-58e33dda.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-33c1ddd9.entry.js → p-593981a8.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-38f61bea.entry.js → p-5d8817cb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-2fd83e6c.entry.js → p-62be51c2.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-6da8bf60.entry.js → p-794ac8e6.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3e48e2f6.entry.js → p-88ab3f67.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7b8e41dd.entry.js → p-8beec8d4.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-64101478.entry.js → p-8f294d2e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d541640a.entry.js → p-9d02318b.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-19789aa2.entry.js → p-9d640444.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-68810397.entry.js → p-a4370f5d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-69e879be.entry.js → p-aa38604e.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-aa38604e.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-d178da38.entry.js → p-aea82479.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a04d556d.entry.js → p-afb531b3.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d9f7d2c3.entry.js → p-b5bb18d9.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-8ff5da93.entry.js → p-b7dfdf6d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-cd7100fa.entry.js → p-c0ee7647.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0bb18689.entry.js → p-d5c2b4cc.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-dcbf5cd9.entry.js +332 -0
- package/dist/genexus-ide-ui/p-dcbf5cd9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-69edc29c.entry.js → p-e0072adb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-638befbe.entry.js → p-e557aa5e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c64a4398.entry.js → p-eb6ef221.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-f5c02654.entry.js → p-f512bbca.entry.js} +2 -2
- package/dist/types/components/_helpers/entity-selector/entity-selector.d.ts +6 -2
- package/dist/types/components/data-selector/data-selector.d.ts +26 -51
- package/dist/types/components.d.ts +21 -29
- package/package.json +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +0 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js +0 -61
- package/dist/cjs/gx-ide-loader.cjs.entry.js.map +0 -1
- package/dist/esm/gx-ide-empty-state.entry.js.map +0 -1
- package/dist/esm/gx-ide-loader.entry.js +0 -57
- package/dist/esm/gx-ide-loader.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-69e879be.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-885302c2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a587e7ca.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a6b76120.entry.js +0 -73
- package/dist/genexus-ide-ui/p-a6b76120.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-e4db9c34.entry.js +0 -309
- package/dist/genexus-ide-ui/p-e4db9c34.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-27fcaad7.entry.js.map → p-1a1042c2.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a3daa189.entry.js.map → p-1f8445eb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-04421676.entry.js.map → p-2b200d34.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0ac125fc.entry.js.map → p-41e5e8e0.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-980f96c5.entry.js.map → p-4ade9a67.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0be068bf.entry.js.map → p-5620c188.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-33c1ddd9.entry.js.map → p-593981a8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-38f61bea.entry.js.map → p-5d8817cb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2fd83e6c.entry.js.map → p-62be51c2.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6da8bf60.entry.js.map → p-794ac8e6.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3e48e2f6.entry.js.map → p-88ab3f67.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7b8e41dd.entry.js.map → p-8beec8d4.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-64101478.entry.js.map → p-8f294d2e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d541640a.entry.js.map → p-9d02318b.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-19789aa2.entry.js.map → p-9d640444.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-68810397.entry.js.map → p-a4370f5d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d178da38.entry.js.map → p-aea82479.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a04d556d.entry.js.map → p-afb531b3.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d9f7d2c3.entry.js.map → p-b5bb18d9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-8ff5da93.entry.js.map → p-b7dfdf6d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cd7100fa.entry.js.map → p-c0ee7647.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0bb18689.entry.js.map → p-d5c2b4cc.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-69edc29c.entry.js.map → p-e0072adb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-638befbe.entry.js.map → p-e557aa5e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c64a4398.entry.js.map → p-eb6ef221.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f5c02654.entry.js.map → p-f512bbca.entry.js.map} +0 -0
|
@@ -595,12 +595,16 @@ export namespace Components {
|
|
|
595
595
|
* Callback invoked when the user presses the 'OK' button
|
|
596
596
|
*/
|
|
597
597
|
"confirmCallback": ConfirmCallback2;
|
|
598
|
+
/**
|
|
599
|
+
* The default value for the module/folder filter
|
|
600
|
+
*/
|
|
601
|
+
"defaultModule": EntityData;
|
|
598
602
|
/**
|
|
599
603
|
* If true it displays the component title on the header
|
|
600
604
|
*/
|
|
601
605
|
"displayTitle": false;
|
|
602
606
|
/**
|
|
603
|
-
* Callback invoked when user
|
|
607
|
+
* Callback invoked when user presses the edit button. Receives the first selected element id as a parameter.
|
|
604
608
|
*/
|
|
605
609
|
"editCallback": EditCallback;
|
|
606
610
|
/**
|
|
@@ -784,11 +788,15 @@ export namespace Components {
|
|
|
784
788
|
/**
|
|
785
789
|
* The label caption. Only visible if "labelPosition" is not "none". I no "labelCaption" is provided, a generic caption "Select Entity" will be provided
|
|
786
790
|
*/
|
|
787
|
-
"labelCaption"
|
|
791
|
+
"labelCaption"?: string;
|
|
788
792
|
/**
|
|
789
793
|
* The label position
|
|
790
794
|
*/
|
|
791
|
-
"labelPosition"
|
|
795
|
+
"labelPosition"?: LabelPosition1;
|
|
796
|
+
/**
|
|
797
|
+
* This property specifies the `name` of the control when used in a form.
|
|
798
|
+
*/
|
|
799
|
+
"name"?: string;
|
|
792
800
|
/**
|
|
793
801
|
* Callback invoked when the action button is pressed. Returns the new value.
|
|
794
802
|
*/
|
|
@@ -1903,10 +1911,6 @@ export interface GxIdeDashboardHomeCustomEvent<T> extends CustomEvent<T> {
|
|
|
1903
1911
|
detail: T;
|
|
1904
1912
|
target: HTMLGxIdeDashboardHomeElement;
|
|
1905
1913
|
}
|
|
1906
|
-
export interface GxIdeDataSelectorCustomEvent<T> extends CustomEvent<T> {
|
|
1907
|
-
detail: T;
|
|
1908
|
-
target: HTMLGxIdeDataSelectorElement;
|
|
1909
|
-
}
|
|
1910
1914
|
export interface GxIdeDesignImportCustomEvent<T> extends CustomEvent<T> {
|
|
1911
1915
|
detail: T;
|
|
1912
1916
|
target: HTMLGxIdeDesignImportElement;
|
|
@@ -2222,19 +2226,7 @@ declare global {
|
|
|
2222
2226
|
prototype: HTMLGxIdeDashboardHomeElement;
|
|
2223
2227
|
new (): HTMLGxIdeDashboardHomeElement;
|
|
2224
2228
|
};
|
|
2225
|
-
interface HTMLGxIdeDataSelectorElementEventMap {
|
|
2226
|
-
"componentDidRenderFirstTime": boolean;
|
|
2227
|
-
"componentDidLoadEvent": boolean;
|
|
2228
|
-
}
|
|
2229
2229
|
interface HTMLGxIdeDataSelectorElement extends Components.GxIdeDataSelector, HTMLStencilElement {
|
|
2230
|
-
addEventListener<K extends keyof HTMLGxIdeDataSelectorElementEventMap>(type: K, listener: (this: HTMLGxIdeDataSelectorElement, ev: GxIdeDataSelectorCustomEvent<HTMLGxIdeDataSelectorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2231
|
-
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2232
|
-
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2233
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2234
|
-
removeEventListener<K extends keyof HTMLGxIdeDataSelectorElementEventMap>(type: K, listener: (this: HTMLGxIdeDataSelectorElement, ev: GxIdeDataSelectorCustomEvent<HTMLGxIdeDataSelectorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2235
|
-
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2236
|
-
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2237
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2238
2230
|
}
|
|
2239
2231
|
var HTMLGxIdeDataSelectorElement: {
|
|
2240
2232
|
prototype: HTMLGxIdeDataSelectorElement;
|
|
@@ -3318,14 +3310,18 @@ declare namespace LocalJSX {
|
|
|
3318
3310
|
* Callback invoked when the user presses the 'OK' button
|
|
3319
3311
|
*/
|
|
3320
3312
|
"confirmCallback": ConfirmCallback2;
|
|
3313
|
+
/**
|
|
3314
|
+
* The default value for the module/folder filter
|
|
3315
|
+
*/
|
|
3316
|
+
"defaultModule"?: EntityData;
|
|
3321
3317
|
/**
|
|
3322
3318
|
* If true it displays the component title on the header
|
|
3323
3319
|
*/
|
|
3324
3320
|
"displayTitle"?: false;
|
|
3325
3321
|
/**
|
|
3326
|
-
* Callback invoked when user
|
|
3322
|
+
* Callback invoked when user presses the edit button. Receives the first selected element id as a parameter.
|
|
3327
3323
|
*/
|
|
3328
|
-
"editCallback"
|
|
3324
|
+
"editCallback": EditCallback;
|
|
3329
3325
|
/**
|
|
3330
3326
|
* Callback invoked when the component needs to reload the list of attributes.
|
|
3331
3327
|
*/
|
|
@@ -3338,14 +3334,6 @@ declare namespace LocalJSX {
|
|
|
3338
3334
|
* Callback invoked when the user presses the 'New' button.
|
|
3339
3335
|
*/
|
|
3340
3336
|
"newVariableCallback": NewVariableCallback;
|
|
3341
|
-
/**
|
|
3342
|
-
* This event is emitted once just after the component is fully loaded and the first render() occurs.
|
|
3343
|
-
*/
|
|
3344
|
-
"onComponentDidLoadEvent"?: (event: GxIdeDataSelectorCustomEvent<boolean>) => void;
|
|
3345
|
-
/**
|
|
3346
|
-
* This event is emitted once just after the component is fully loaded and the first render() occurs
|
|
3347
|
-
*/
|
|
3348
|
-
"onComponentDidRenderFirstTime"?: (event: GxIdeDataSelectorCustomEvent<boolean>) => void;
|
|
3349
3337
|
/**
|
|
3350
3338
|
* Callback invoked when the action is executed in the Object filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.
|
|
3351
3339
|
*/
|
|
@@ -3516,6 +3504,10 @@ declare namespace LocalJSX {
|
|
|
3516
3504
|
* The label position
|
|
3517
3505
|
*/
|
|
3518
3506
|
"labelPosition"?: LabelPosition1;
|
|
3507
|
+
/**
|
|
3508
|
+
* This property specifies the `name` of the control when used in a form.
|
|
3509
|
+
*/
|
|
3510
|
+
"name"?: string;
|
|
3519
3511
|
/**
|
|
3520
3512
|
* Emits the input value every time it changes
|
|
3521
3513
|
*/
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-empty-state.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,kBAAkB,GAAG,utZAAutZ;;ACGlvZ,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;MAOW,eAAe;;;0BAOa,KAAK;;;;;IAiB5C,MAAM;QACJ,QACEA,QAACC,UAAI,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IACvCD,sBAAU,KAAK,EAAE,WAAW,GAAa,EACzCA,qBAAS,KAAK,EAAC,gBAAgB,IAC5B,IAAI,CAAC,YAAY,KAChBA,kBAAM,KAAK,EAAC,8BAA8B,IACxCA,sBAAU,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAC,SAAS,GAAY,CACxD,CACR,EACDA,iBAAK,KAAK,EAAC,yBAAyB,IACjC,IAAI,CAAC,UAAU,KACdA,gBAAI,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,UAAU,CAAM,CACvD,EACA,IAAI,CAAC,gBAAgB,KACpBA,eAAG,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,gBAAgB,CAAK,CAC3D,CACG,EACNA,qBAAa,CACL,CACL,EACP;KACH;;;;;;;","names":["h","Host"],"sources":["src/components/_helpers/empty-state/gx-ide-empty-state.scss?tag=gx-ide-empty-state&encapsulation=shadow","src/components/_helpers/empty-state/gx-ide-empty-state.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n\n:host {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n inline-size: 100%;\n position: relative;\n}\n:host(.animate) {\n animation: fadeIn var(--mer-timing--fast) forwards;\n inset-block-start: 0;\n}\n.main-container {\n max-width: 320px;\n margin: 0 auto;\n gap: var(--mer-spacing--md);\n padding: var(--mer-spacing--md);\n\n &__icon-wrapper {\n border: var(--mer-border__width--sm) dashed var(--mer-accent__primary);\n border-radius: 50%;\n min-width: 40px;\n min-height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n }\n\n &__content {\n gap: var(--mer-spacing--sm);\n }\n}\n.main-container,\n.main-container__content {\n display: flex;\n align-items: center;\n flex-direction: column;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n inset-block-start: 5px;\n }\n}\n","import { Component, Host, h, Prop, Element } from \"@stencil/core\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/icon\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-empty-state\",\n styleUrl: \"gx-ide-empty-state.scss\",\n shadow: true\n})\nexport class GxIdeEmptyState {\n @Element() el: HTMLGxIdeEmptyStateElement;\n\n /**\n * Includes a subtle entry animation\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() readonly isAnimated: boolean = false;\n\n /**\n * The state description\n */\n @Prop() readonly stateDescription?: string;\n\n /**\n * The state icon\n */\n @Prop() readonly stateIconSrc?: string;\n\n /**\n * The state title\n */\n @Prop() readonly stateTitle!: string;\n\n render() {\n return (\n <Host class={{ animate: this.isAnimated }}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <article class=\"main-container\">\n {this.stateIconSrc && (\n <span class=\"main-container__icon-wrapper\">\n <ch-image src={this.stateIconSrc} class=\"icon-md\"></ch-image>\n </span>\n )}\n <div class=\"main-container__content\">\n {this.stateTitle && (\n <h2 class=\"text-body-regular-m\">{this.stateTitle}</h2>\n )}\n {this.stateDescription && (\n <p class=\"text-body-regular-s\">{this.stateDescription}</p>\n )}\n </div>\n <slot></slot>\n </article>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const index = require('./index-b87e3ee0.js');
|
|
6
|
-
|
|
7
|
-
const ideLoaderCss = ".loader__wrapper{position:absolute;border:none;opacity:0;transition:var(--show-transition) opacity;inline-size:100%;block-size:100%;display:flex;background-color:var(--gxg-ide-loader-wrapper__background-color--from);backdrop-filter:var(--gxg-ide-loader-wrapper__backdrop-filter);padding:var(--gxg-ide-loader-wrapper__padding);flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;color:var(--gxg-ide-loader-wrapper__color);z-index:99;animation:fadeIn var(--mer-timing--fast) forwards}.loader__wrapper--visible{opacity:1}.loader__spinner{border:var(--gxg-ide-loader-spinner__border);border-block-start:var(--gxg-ide-loader-spinner__border-top);border-radius:50%;animation:spinner 0.6s infinite linear;inline-size:var(--gxg-ide-loader-spinner__width);block-size:var(--gxg-ide-loader-spinner__width);flex-shrink:0;opacity:1}.loader__content-wrapper{display:flex;text-align:center;flex-direction:column;margin-block-start:var(--gxg-ide-loader-content-wrapper__mbs);gap:var(--mer-spacing--md);max-block-size:var(--gxg-ide-loader-content-wrapper__max-width);opacity:1}.loader__content-wrapper--hidden{display:none}@keyframes wrapper{0%{background-color:var(--gxg-ide-loader-wrapper__background-color--from)}100%{background-color:var(--gxg-ide-loader-wrapper__background-color--to)}}@keyframes spinner{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}:host([display-border]) .loader__wrapper{border:1px solid var(--mer-color__elevation--02)}@keyframes fadeIn{0%{opacity:0}}";
|
|
8
|
-
|
|
9
|
-
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
10
|
-
if (kind === "a" && !f)
|
|
11
|
-
throw new TypeError("Private accessor was defined without a getter");
|
|
12
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
13
|
-
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
-
};
|
|
16
|
-
var _IdeLoader_timeoutReference, _IdeLoader_cancelProcess, _IdeLoader_renderCancelButton, _IdeLoader_renderDescription, _IdeLoader_renderTitle;
|
|
17
|
-
const CSS_BUNDLES = [
|
|
18
|
-
"resets/box-sizing",
|
|
19
|
-
"components/button",
|
|
20
|
-
"utils/typography"
|
|
21
|
-
];
|
|
22
|
-
const IdeLoader = class {
|
|
23
|
-
constructor(hostRef) {
|
|
24
|
-
index.registerInstance(this, hostRef);
|
|
25
|
-
this.loaderFinished = index.createEvent(this, "loaderFinished", 7);
|
|
26
|
-
_IdeLoader_timeoutReference.set(this, void 0);
|
|
27
|
-
_IdeLoader_cancelProcess.set(this, () => {
|
|
28
|
-
if (this.cancelCallback) {
|
|
29
|
-
this.cancelCallback();
|
|
30
|
-
}
|
|
31
|
-
clearTimeout(__classPrivateFieldGet(this, _IdeLoader_timeoutReference, "f"));
|
|
32
|
-
this.show = false;
|
|
33
|
-
});
|
|
34
|
-
_IdeLoader_renderCancelButton.set(this, () => this.cancelLabel && (index.h("div", null, index.h("button", { class: "button-secondary", type: "button", onClick: __classPrivateFieldGet(this, _IdeLoader_cancelProcess, "f") }, this.cancelLabel))));
|
|
35
|
-
_IdeLoader_renderDescription.set(this, () => this.description && index.h("p", { class: "text-body-italic-s" }, this.description));
|
|
36
|
-
_IdeLoader_renderTitle.set(this, () => this.loaderTitle && index.h("p", { class: "text-body-regular-m" }, this.loaderTitle));
|
|
37
|
-
this.showWrapper = true;
|
|
38
|
-
this.abortTime = 5 * 60 * 1000;
|
|
39
|
-
this.cancelCallback = undefined;
|
|
40
|
-
this.cancelLabel = undefined;
|
|
41
|
-
this.description = undefined;
|
|
42
|
-
this.displayBorder = false;
|
|
43
|
-
this.loaderTitle = undefined;
|
|
44
|
-
this.show = false;
|
|
45
|
-
}
|
|
46
|
-
render() {
|
|
47
|
-
return (index.h(index.Host, null, index.h("ch-theme", { model: CSS_BUNDLES }), this.show && (index.h("div", { class: {
|
|
48
|
-
[`loader__wrapper`]: true,
|
|
49
|
-
"loader__wrapper--visible": this.showWrapper
|
|
50
|
-
}, part: "loader-wrapper", popover: "" }, index.h("div", { class: "loader__spinner" }), index.h("div", { class: {
|
|
51
|
-
"loader__content-wrapper": true,
|
|
52
|
-
"loader__content-wrapper--hidden": !this.description && !this.loaderTitle && !this.cancelLabel
|
|
53
|
-
} }, __classPrivateFieldGet(this, _IdeLoader_renderTitle, "f").call(this), __classPrivateFieldGet(this, _IdeLoader_renderDescription, "f").call(this), __classPrivateFieldGet(this, _IdeLoader_renderCancelButton, "f").call(this))))));
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
_IdeLoader_timeoutReference = new WeakMap(), _IdeLoader_cancelProcess = new WeakMap(), _IdeLoader_renderCancelButton = new WeakMap(), _IdeLoader_renderDescription = new WeakMap(), _IdeLoader_renderTitle = new WeakMap();
|
|
57
|
-
IdeLoader.style = ideLoaderCss;
|
|
58
|
-
|
|
59
|
-
exports.gx_ide_loader = IdeLoader;
|
|
60
|
-
|
|
61
|
-
//# sourceMappingURL=gx-ide-loader.cjs.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-loader.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,YAAY,GAAG,o+CAAo+C;;;;;;;;;;ACYz/C,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;MAMW,SAAS;;;;QACpB,8CAAiD;QA+CjD,mCAAiB;YACf,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;YACD,YAAY,CAAC,uBAAA,IAAI,mCAAkB,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACnB,EAAC;QAEF,wCAAsB,MACpB,IAAI,CAAC,WAAW,KACdA,qBACEA,oBACE,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,uBAAA,IAAI,gCAAe,IAE3B,IAAI,CAAC,WAAW,CACV,CACL,CACP,EAAC;QAEJ,uCAAqB,MACnB,IAAI,CAAC,WAAW,IAAIA,eAAG,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,WAAW,CAAK,EAAC;QAE3E,iCAAe,MACb,IAAI,CAAC,WAAW,IAAIA,eAAG,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,WAAW,CAAK,EAAC;2BAnErD,IAAI;yBAKU,CAAC,GAAG,EAAE,GAAG,IAAI;;;;6BAoBS,KAAK;;oBAUhC,KAAK;;IAkCrC,MAAM;QACJ,QACEA,QAACC,UAAI,QACHD,sBAAU,KAAK,EAAE,WAAW,GAAa,EACxC,IAAI,CAAC,IAAI,KACRA,iBACE,KAAK,EAAE;gBACL,CAAC,iBAAiB,GAAG,IAAI;gBACzB,0BAA0B,EAAE,IAAI,CAAC,WAAW;aAC7C,EACD,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAC,EAAE,IAEVA,iBAAK,KAAK,EAAC,iBAAiB,GAAO,EACnCA,iBACE,KAAK,EAAE;gBACL,yBAAyB,EAAE,IAAI;gBAC/B,iCAAiC,EAC/B,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW;aAC9D,IAEA,uBAAA,IAAI,8BAAa,MAAjB,IAAI,CAAe,EACnB,uBAAA,IAAI,oCAAmB,MAAvB,IAAI,CAAqB,EACzB,uBAAA,IAAI,qCAAoB,MAAxB,IAAI,CAAsB,CACvB,CACF,CACP,CACI,EACP;KACH;;;;;;;","names":["h","Host"],"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(--gxg-ide-loader-wrapper__background-color--from);\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--md);\n max-block-size: var(--gxg-ide-loader-content-wrapper__max-width);\n &--hidden {\n display: none;\n }\n opacity: 1;\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\"\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=\"text-body-italic-s\">{this.description}</p>;\n\n #renderTitle = (): HTMLParagraphElement | null =>\n this.loaderTitle && <p class=\"text-body-regular-m\">{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"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-empty-state.entry.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,utZAAutZ;;ACGlvZ,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;MAOW,eAAe;;;0BAOa,KAAK;;;;;IAiB5C,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IACvC,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,eAAS,KAAK,EAAC,gBAAgB,IAC5B,IAAI,CAAC,YAAY,KAChB,YAAM,KAAK,EAAC,8BAA8B,IACxC,gBAAU,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAC,SAAS,GAAY,CACxD,CACR,EACD,WAAK,KAAK,EAAC,yBAAyB,IACjC,IAAI,CAAC,UAAU,KACd,UAAI,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,UAAU,CAAM,CACvD,EACA,IAAI,CAAC,gBAAgB,KACpB,SAAG,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,gBAAgB,CAAK,CAC3D,CACG,EACN,eAAa,CACL,CACL,EACP;KACH;;;;;;;","names":[],"sources":["src/components/_helpers/empty-state/gx-ide-empty-state.scss?tag=gx-ide-empty-state&encapsulation=shadow","src/components/_helpers/empty-state/gx-ide-empty-state.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n\n:host {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n inline-size: 100%;\n position: relative;\n}\n:host(.animate) {\n animation: fadeIn var(--mer-timing--fast) forwards;\n inset-block-start: 0;\n}\n.main-container {\n max-width: 320px;\n margin: 0 auto;\n gap: var(--mer-spacing--md);\n padding: var(--mer-spacing--md);\n\n &__icon-wrapper {\n border: var(--mer-border__width--sm) dashed var(--mer-accent__primary);\n border-radius: 50%;\n min-width: 40px;\n min-height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n }\n\n &__content {\n gap: var(--mer-spacing--sm);\n }\n}\n.main-container,\n.main-container__content {\n display: flex;\n align-items: center;\n flex-direction: column;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n inset-block-start: 5px;\n }\n}\n","import { Component, Host, h, Prop, Element } from \"@stencil/core\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/icon\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-empty-state\",\n styleUrl: \"gx-ide-empty-state.scss\",\n shadow: true\n})\nexport class GxIdeEmptyState {\n @Element() el: HTMLGxIdeEmptyStateElement;\n\n /**\n * Includes a subtle entry animation\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() readonly isAnimated: boolean = false;\n\n /**\n * The state description\n */\n @Prop() readonly stateDescription?: string;\n\n /**\n * The state icon\n */\n @Prop() readonly stateIconSrc?: string;\n\n /**\n * The state title\n */\n @Prop() readonly stateTitle!: string;\n\n render() {\n return (\n <Host class={{ animate: this.isAnimated }}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <article class=\"main-container\">\n {this.stateIconSrc && (\n <span class=\"main-container__icon-wrapper\">\n <ch-image src={this.stateIconSrc} class=\"icon-md\"></ch-image>\n </span>\n )}\n <div class=\"main-container__content\">\n {this.stateTitle && (\n <h2 class=\"text-body-regular-m\">{this.stateTitle}</h2>\n )}\n {this.stateDescription && (\n <p class=\"text-body-regular-s\">{this.stateDescription}</p>\n )}\n </div>\n <slot></slot>\n </article>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, H as Host } from './index-27c691bc.js';
|
|
2
|
-
|
|
3
|
-
const ideLoaderCss = ".loader__wrapper{position:absolute;border:none;opacity:0;transition:var(--show-transition) opacity;inline-size:100%;block-size:100%;display:flex;background-color:var(--gxg-ide-loader-wrapper__background-color--from);backdrop-filter:var(--gxg-ide-loader-wrapper__backdrop-filter);padding:var(--gxg-ide-loader-wrapper__padding);flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;color:var(--gxg-ide-loader-wrapper__color);z-index:99;animation:fadeIn var(--mer-timing--fast) forwards}.loader__wrapper--visible{opacity:1}.loader__spinner{border:var(--gxg-ide-loader-spinner__border);border-block-start:var(--gxg-ide-loader-spinner__border-top);border-radius:50%;animation:spinner 0.6s infinite linear;inline-size:var(--gxg-ide-loader-spinner__width);block-size:var(--gxg-ide-loader-spinner__width);flex-shrink:0;opacity:1}.loader__content-wrapper{display:flex;text-align:center;flex-direction:column;margin-block-start:var(--gxg-ide-loader-content-wrapper__mbs);gap:var(--mer-spacing--md);max-block-size:var(--gxg-ide-loader-content-wrapper__max-width);opacity:1}.loader__content-wrapper--hidden{display:none}@keyframes wrapper{0%{background-color:var(--gxg-ide-loader-wrapper__background-color--from)}100%{background-color:var(--gxg-ide-loader-wrapper__background-color--to)}}@keyframes spinner{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}:host([display-border]) .loader__wrapper{border:1px solid var(--mer-color__elevation--02)}@keyframes fadeIn{0%{opacity:0}}";
|
|
4
|
-
|
|
5
|
-
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
6
|
-
if (kind === "a" && !f)
|
|
7
|
-
throw new TypeError("Private accessor was defined without a getter");
|
|
8
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
9
|
-
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _IdeLoader_timeoutReference, _IdeLoader_cancelProcess, _IdeLoader_renderCancelButton, _IdeLoader_renderDescription, _IdeLoader_renderTitle;
|
|
13
|
-
const CSS_BUNDLES = [
|
|
14
|
-
"resets/box-sizing",
|
|
15
|
-
"components/button",
|
|
16
|
-
"utils/typography"
|
|
17
|
-
];
|
|
18
|
-
const IdeLoader = class {
|
|
19
|
-
constructor(hostRef) {
|
|
20
|
-
registerInstance(this, hostRef);
|
|
21
|
-
this.loaderFinished = createEvent(this, "loaderFinished", 7);
|
|
22
|
-
_IdeLoader_timeoutReference.set(this, void 0);
|
|
23
|
-
_IdeLoader_cancelProcess.set(this, () => {
|
|
24
|
-
if (this.cancelCallback) {
|
|
25
|
-
this.cancelCallback();
|
|
26
|
-
}
|
|
27
|
-
clearTimeout(__classPrivateFieldGet(this, _IdeLoader_timeoutReference, "f"));
|
|
28
|
-
this.show = false;
|
|
29
|
-
});
|
|
30
|
-
_IdeLoader_renderCancelButton.set(this, () => this.cancelLabel && (h("div", null, h("button", { class: "button-secondary", type: "button", onClick: __classPrivateFieldGet(this, _IdeLoader_cancelProcess, "f") }, this.cancelLabel))));
|
|
31
|
-
_IdeLoader_renderDescription.set(this, () => this.description && h("p", { class: "text-body-italic-s" }, this.description));
|
|
32
|
-
_IdeLoader_renderTitle.set(this, () => this.loaderTitle && h("p", { class: "text-body-regular-m" }, this.loaderTitle));
|
|
33
|
-
this.showWrapper = true;
|
|
34
|
-
this.abortTime = 5 * 60 * 1000;
|
|
35
|
-
this.cancelCallback = undefined;
|
|
36
|
-
this.cancelLabel = undefined;
|
|
37
|
-
this.description = undefined;
|
|
38
|
-
this.displayBorder = false;
|
|
39
|
-
this.loaderTitle = undefined;
|
|
40
|
-
this.show = false;
|
|
41
|
-
}
|
|
42
|
-
render() {
|
|
43
|
-
return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), this.show && (h("div", { class: {
|
|
44
|
-
[`loader__wrapper`]: true,
|
|
45
|
-
"loader__wrapper--visible": this.showWrapper
|
|
46
|
-
}, part: "loader-wrapper", popover: "" }, h("div", { class: "loader__spinner" }), h("div", { class: {
|
|
47
|
-
"loader__content-wrapper": true,
|
|
48
|
-
"loader__content-wrapper--hidden": !this.description && !this.loaderTitle && !this.cancelLabel
|
|
49
|
-
} }, __classPrivateFieldGet(this, _IdeLoader_renderTitle, "f").call(this), __classPrivateFieldGet(this, _IdeLoader_renderDescription, "f").call(this), __classPrivateFieldGet(this, _IdeLoader_renderCancelButton, "f").call(this))))));
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
_IdeLoader_timeoutReference = new WeakMap(), _IdeLoader_cancelProcess = new WeakMap(), _IdeLoader_renderCancelButton = new WeakMap(), _IdeLoader_renderDescription = new WeakMap(), _IdeLoader_renderTitle = new WeakMap();
|
|
53
|
-
IdeLoader.style = ideLoaderCss;
|
|
54
|
-
|
|
55
|
-
export { IdeLoader as gx_ide_loader };
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=gx-ide-loader.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-loader.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,o+CAAo+C;;;;;;;;;;ACYz/C,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;MAMW,SAAS;;;;QACpB,8CAAiD;QA+CjD,mCAAiB;YACf,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;YACD,YAAY,CAAC,uBAAA,IAAI,mCAAkB,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACnB,EAAC;QAEF,wCAAsB,MACpB,IAAI,CAAC,WAAW,KACd,eACE,cACE,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,uBAAA,IAAI,gCAAe,IAE3B,IAAI,CAAC,WAAW,CACV,CACL,CACP,EAAC;QAEJ,uCAAqB,MACnB,IAAI,CAAC,WAAW,IAAI,SAAG,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,WAAW,CAAK,EAAC;QAE3E,iCAAe,MACb,IAAI,CAAC,WAAW,IAAI,SAAG,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,WAAW,CAAK,EAAC;2BAnErD,IAAI;yBAKU,CAAC,GAAG,EAAE,GAAG,IAAI;;;;6BAoBS,KAAK;;oBAUhC,KAAK;;IAkCrC,MAAM;QACJ,QACE,EAAC,IAAI,QACH,gBAAU,KAAK,EAAE,WAAW,GAAa,EACxC,IAAI,CAAC,IAAI,KACR,WACE,KAAK,EAAE;gBACL,CAAC,iBAAiB,GAAG,IAAI;gBACzB,0BAA0B,EAAE,IAAI,CAAC,WAAW;aAC7C,EACD,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAC,EAAE,IAEV,WAAK,KAAK,EAAC,iBAAiB,GAAO,EACnC,WACE,KAAK,EAAE;gBACL,yBAAyB,EAAE,IAAI;gBAC/B,iCAAiC,EAC/B,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW;aAC9D,IAEA,uBAAA,IAAI,8BAAa,MAAjB,IAAI,CAAe,EACnB,uBAAA,IAAI,oCAAmB,MAAvB,IAAI,CAAqB,EACzB,uBAAA,IAAI,qCAAoB,MAAxB,IAAI,CAAsB,CACvB,CACF,CACP,CACI,EACP;KACH;;;;;;;","names":[],"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(--gxg-ide-loader-wrapper__background-color--from);\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--md);\n max-block-size: var(--gxg-ide-loader-content-wrapper__max-width);\n &--hidden {\n display: none;\n }\n opacity: 1;\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\"\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=\"text-body-italic-s\">{this.description}</p>;\n\n #renderTitle = (): HTMLParagraphElement | null =>\n this.loaderTitle && <p class=\"text-body-regular-m\">{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"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["KB_PROPERTY","KB_OBJECT","getPropertyIcon","typeId","kbPropertiesTypes","find","propertyType","id","icon","convertObjectTypeToTreeItem","objectType","caption","name","startImgSrc","leaf","parts","expanded","items","convertObjectToTreeItem","object","objectTypes","get","metadata","convertPropertyToTreeItem","property","updateObjectsTreeModel","objects","objectTypesMap","objectsSet","actualTreeState","updatedTreeData","forEach","has","objectTreeItem","objectTypeTreeItemIndex","findIndex","treeItem","objectTypeTreeItem","push","add","convertKbPropertiesDataToTreeItemData","properties","propertyAlreadyExists","node","undefined","propertyTreeItem","unshift","clearKbPropertiesFromTree","filter","item","kbManagerExportCss","FILE_ICON","getIconPath","category","colorType","SETTINGS_ICON","GENERAL_REFERENCES_ICON","MENUS_NEW_OBJECT_ICON","TREE_VIEW_ICON","CHECKBOX_CHECKED_VALUE","CSS_BUNDLES","GxIdeKbManagerExport","_GxIdeKbManagerExport_addKbDescriptionEl","set","this","_GxIdeKbManagerExport_componentLocale","_GxIdeKbManagerExport_animateEmptyState","_GxIdeKbManagerExport_exportAllEl","_GxIdeKbManagerExport_fileNameEl","_GxIdeKbManagerExport_kBPropertiesData","_GxIdeKbManagerExport_objectTypesMap","Map","_GxIdeKbManagerExport_objectsSet","Set","_GxIdeKbManagerExport_addKBPropertiesCallbackHandler","async","e","addKbPropertiesIsChecked","detail","target","value","__classPrivateFieldSet","addKBPropertiesCallback","__classPrivateFieldGet","length","objectsTreeViewModel","_GxIdeKbManagerExport_addObjectsCallbackHandler","exportAllIsChecked","addedObjects","addObjectsCallback","_GxIdeKbManagerExport_updateObjects","call","_GxIdeKbManagerExport_addReferencesCallbackHandler","addReferencesCallback","checkedObjectsIds","_GxIdeKbManagerExport_cancelCallbackHandler","cancelled","cancelCallback","exportingIsInProcess","_GxIdeKbManagerExport_clearButtonHandler","clear","_GxIdeKbManagerExport_evaluateContentToDisplay","hasObjects","h","isAnimated","stateTitle","main","noObjectsToDisplay","key","class","onClick","beginByADdingSomeObjects","stateIconSrc","exportAllMessage","checkbox","checked","dragDisabled","dropDisabled","_GxIdeKbManagerExport_evaluateTreeViewFilters","filterType","model","showLines","toggleCheckboxes","sortItemsCallback","_GxIdeKbManagerExport_sortTreeItems","onCheckedItemsChange","_GxIdeKbManagerExport_objectsTreeCheckedItemsChangedHandler","_GxIdeKbManagerExport_evaluateObjects","_GxIdeKbManagerExport_exportAllChangedHandler","event","_GxIdeKbManagerExport_exportCallbackHandler","fileName","checkedKbPropertiesIds","checkedPropertiesIds","checkedObjectIds","exportCallback","then","allItemsWithCheckbox","values","atLeastOnePropertyItemIsChecked","atLeastOneObjectItemIsChecked","subModel","sort","a","b","localeCompare","_GxIdeKbManagerExport_renderFooter","referencesButtonEnabled","clearButtonEnabled","disabled","part","footer","clearButton","src","addReferencesButton","addButton","objectsDataArray","newObjectsTreeModel","objectsTreeViewModelChanged","newObjectsTreeViewModel","objectTypesChanged","newObjectTypesArray","_GxIdeKbManagerExport_instances","_GxIdeKbManagerExport_objectsTypesArrayToMap","componentWillLoad","Locale","getComponentStrings","el","render","exportButtonEnabled","cancelButtonEnabled","Host","htmlFor","header","exportFileName","autoFocus","ref","exportButton","cancelButton","optionsButton","title","optionsCallback","addKnowledgeBaseDescription","checkedValue","onInput","exportAll","loader","cancelLabel","loaderTitle","show","objectTypesArray"],"sources":["src/components/kb-manager-export/helpers.ts","src/components/kb-manager-export/kb-manager-export.scss?tag=gx-ide-kb-manager-export&encapsulation=shadow","src/components/kb-manager-export/kb-manager-export.tsx"],"sourcesContent":["// /* Tree View */\nimport {\n TreeViewItemModel,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { ObjectData, KBPropertyData, KBPropertyType } from \"./types\";\nimport { ObjectType } from \"../../common/types\";\nexport const KB_PROPERTY = \"property\";\nexport const KB_OBJECT = \"object\";\n\nconst getPropertyIcon = (\n typeId: string,\n kbPropertiesTypes: KBPropertyType[]\n): string =>\n // The object icon has to be retrieved from the ObjectTypes array, by\n // matching the ObjectData typeId with the ObjectType id\n kbPropertiesTypes.find(propertyType => propertyType.id === typeId).icon;\n\nconst convertObjectTypeToTreeItem = (\n objectType: ObjectType\n): TreeViewItemModel => ({\n caption: objectType.name,\n id: objectType.id,\n startImgSrc: objectType.icon,\n leaf: false,\n parts: \"object-type tree-view-item\",\n expanded: true,\n items: []\n});\n\nconst convertObjectToTreeItem = (\n object: ObjectData,\n objectTypes: Map<string, ObjectType>\n): TreeViewItemModel => ({\n caption: object.name,\n id: object.id,\n startImgSrc: objectTypes.get(object.typeId).icon,\n parts: \"object tree-view-item\",\n metadata: KB_OBJECT,\n leaf: true\n});\n\nconst convertPropertyToTreeItem = (\n property: KBPropertyData,\n kbPropertiesTypes: KBPropertyType[]\n): TreeViewItemModel => ({\n caption: property.name,\n id: property.id,\n startImgSrc: getPropertyIcon(property.typeId, kbPropertiesTypes),\n parts: \"property tree-view-item\",\n metadata: KB_PROPERTY,\n leaf: true\n});\n\n/**\n * Updates the tree model with the provided objects.\n * Objects may already exist and are placed under their parent node.\n * If the parent node doesn't exist (identified by typeId on ObjectTypes),\n * it is created and added at the bottom.\n *\n * @param {ObjectData[] | undefined} objects - The array of objects to update.\n * @param {Map<string, ObjectType>} objectTypesMap - A map of object types by ID.\n * @param {Set<string>} objectsSet - A set of existing object IDs.\n * @param {TreeViewModel} actualTreeState - The current tree state to be updated.\n * @returns {TreeViewModel} - The updated tree view model.\n */\nexport const updateObjectsTreeModel = (\n objects: ObjectData[] | undefined,\n objectTypesMap: Map<string, ObjectType>,\n objectsSet: Set<string>,\n actualTreeState: TreeViewModel\n): TreeViewModel => {\n if (!objects) {\n return [...actualTreeState];\n }\n\n const updatedTreeData: TreeViewModel = [...actualTreeState];\n objects.forEach(object => {\n // objects that already exists in the actual actualTreeState should not be added.\n\n if (objectsSet.has(object.id)) {\n // object already exists\n return;\n }\n\n const objectTreeItem = convertObjectToTreeItem(object, objectTypesMap);\n\n // TODO: Improve the algorithm efficiency. This check visits potentially all nodes\n // from the TreeViewModel on each iteration. Using a Map to pre-store the TreeView\n // nodes would improve efficiency.\n const objectTypeTreeItemIndex = updatedTreeData.findIndex(\n treeItem => treeItem.id === object.typeId\n );\n\n if (objectTypeTreeItemIndex === -1) {\n // Create and add new object type tree item\n const objectType = objectTypesMap.get(object.typeId);\n if (objectType) {\n const objectTypeTreeItem = convertObjectTypeToTreeItem(objectType);\n objectTypeTreeItem.items.push(objectTreeItem);\n updatedTreeData.push(objectTypeTreeItem);\n }\n } else {\n // objectType exists already. insert object as children of the object type tree item.\n updatedTreeData[objectTypeTreeItemIndex].items.push(objectTreeItem);\n }\n\n objectsSet.add(object.id);\n });\n\n return updatedTreeData;\n};\n\n/**\n * Converts an array of KB properties data into tree item data for a tree view.\n *\n * @param {KBPropertyData[]} properties - The array of KB property data.\n * @param {KBPropertyType[]} kbPropertiesTypes - The array of KB property types.\n * @param {TreeViewModel} actualTreeState - The current state of the tree.\n * @returns {TreeViewModel} - The updated tree view item models.\n */\nexport const convertKbPropertiesDataToTreeItemData = (\n properties: KBPropertyData[],\n kbPropertiesTypes: KBPropertyType[],\n actualTreeState: TreeViewModel\n): TreeViewModel => {\n if (!properties) {\n return [...actualTreeState];\n }\n\n const updatedTreeData: TreeViewModel = [...actualTreeState];\n properties.forEach(property => {\n // properties have no parent node, and they should be added at the beginning of the tree\n const propertyAlreadyExists =\n updatedTreeData.find(node => node.id === property.id) !== undefined;\n if (propertyAlreadyExists) {\n return;\n }\n const propertyTreeItem = convertPropertyToTreeItem(\n property,\n kbPropertiesTypes\n );\n updatedTreeData.unshift(propertyTreeItem);\n });\n return updatedTreeData;\n};\n\n/**\n * Removes properties from the tree model.\n *\n * @param {TreeViewModel} actualTreeState - The current state of the tree,\n * containing various tree view items.\n * @returns {TreeViewModel} - A new array of tree view items that excludes\n * any items with metadata of type `KB_PROPERTY`.\n */\nexport const clearKbPropertiesFromTree = (\n actualTreeState: TreeViewModel\n): TreeViewModel =>\n actualTreeState.filter(item => item.metadata !== KB_PROPERTY);\n","section {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.header__field-group {\n grid-template:\n \"export-file-name buttons-container\" max-content\n \"checkboxes checkboxes\" max-content\n / 1fr max-content;\n}\n.export-file-name {\n grid-area: export-file-name;\n}\n.header__buttons-container {\n grid-area: buttons-container;\n}\n.header__checkboxes {\n grid-area: checkboxes;\n grid-template-columns: max-content 1fr;\n}\n\n.main {\n position: relative;\n padding-block: var(--content-block-spacing);\n}\n","import { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\nimport { ChCheckboxCustomEvent } from \"@genexus/chameleon-controls-library\";\nimport {\n TreeViewItemModelExtended,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport {\n updateObjectsTreeModel,\n convertKbPropertiesDataToTreeItemData,\n clearKbPropertiesFromTree\n} from \"./helpers\";\nimport { ObjectType } from \"../../common/types\";\n\nimport { KB_PROPERTY, KB_OBJECT } from \"./helpers\";\nimport {\n KBPropertiesCallback,\n KBPropertyData,\n KBPropertyType,\n ObjectData,\n ExportFileDirectoryCallback,\n OptionsCallback,\n AddObjectsCallback,\n ExportCallback,\n AddReferencesCallback,\n CancelCallback\n} from \"./types\";\n\nimport { getIconPath } from \"@genexus/mercury\";\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"on-elevation\"\n});\nconst SETTINGS_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"settings\",\n colorType: \"primary\"\n});\nconst GENERAL_REFERENCES_ICON = getIconPath({\n category: \"window-tools\",\n name: \"references\",\n colorType: \"neutral\"\n});\nconst MENUS_NEW_OBJECT_ICON = getIconPath({\n category: \"menus\",\n name: \"new-object\",\n colorType: \"on-primary\"\n});\nconst TREE_VIEW_ICON = getIconPath({\n category: \"controls\",\n name: \"treeview\"\n});\nconst CHECKBOX_CHECKED_VALUE = \"true\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/icon\",\n \"components/tree-view\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\"\n];\n@Component({\n tag: \"gx-ide-kb-manager-export\",\n styleUrl: \"kb-manager-export.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-export\"]\n})\nexport class GxIdeKbManagerExport {\n #addKbDescriptionEl!: HTMLChCheckboxElement;\n #componentLocale: any;\n #animateEmptyState: boolean = false;\n #exportAllEl!: HTMLChCheckboxElement;\n #fileNameEl!: HTMLChEditElement;\n #kBPropertiesData!: KBPropertyData[];\n /**\n * Stores the object types information (name, and icon)\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #objectTypesMap: Map<string, ObjectType> = new Map();\n /**\n * Stores the object's id that have been added.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #objectsSet: Set<string> = new Set();\n\n @Element() el: HTMLGxIdeKbManagerExportElement;\n\n @State() addKbPropertiesIsChecked = false;\n @State() atLeastOnePropertyItemIsChecked = false;\n @State() atLeastOneObjectItemIsChecked = false;\n @State() checkedObjectsIds: string[] = [];\n @State() checkedPropertiesIds: string[] = [];\n @State() exportAllIsChecked = false;\n @State() exportingIsInProcess = false;\n @State() hasObjects: boolean;\n @State() objectsTreeViewModel: TreeViewModel = [];\n @Watch(\"objectsTreeViewModel\")\n objectsTreeViewModelChanged(newObjectsTreeViewModel: TreeViewModel) {\n this.hasObjects =\n newObjectsTreeViewModel && newObjectsTreeViewModel.length > 0;\n if (!this.hasObjects) {\n this.atLeastOnePropertyItemIsChecked = false;\n this.atLeastOneObjectItemIsChecked = false;\n }\n }\n\n /**\n * Callback invoked when the user wants to include KB properties.\n */\n @Prop() readonly addKBPropertiesCallback!: KBPropertiesCallback;\n\n /**\n * Callback invoked when the user wants to add objects.\n */\n @Prop() readonly addObjectsCallback!: AddObjectsCallback;\n\n /**\n *Callback invoked when the user wants to add all the references for the selected objects.\n *@param itemIds:string[] The selected item ids\n *@returns : Returns an object with the items and its references\n */\n @Prop() readonly addReferencesCallback!: AddReferencesCallback;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n * @returns It returns a boolean indicating whether the process could be canceled or not.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n *Callback invoked when the user wants to initiate the export process.\n *@param fileName:string\n *@param itemIds:string[] The selected item ids\n *@returns : It returns a boolean indicating whether the process was successful\n */\n @Prop() readonly exportCallback!: ExportCallback;\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly exportFileDirectoryCallback!: ExportFileDirectoryCallback;\n\n /**\n * It allows defining the default Export File Name\n */\n @Prop() readonly fileName: string;\n\n /**\n * Array with the possible types of KB properties\n */\n @Prop() readonly kbPropertiesTypes: KBPropertyType[];\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Array of possible object types\n */\n @Prop() readonly objectTypes: ObjectType[];\n @Watch(\"objectTypes\")\n objectTypesChanged(newObjectTypesArray: ObjectType[]) {\n this.#objectsTypesArrayToMap(newObjectTypesArray);\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#evaluateObjects();\n this.#objectsTypesArrayToMap(this.objectTypes);\n }\n\n #addKBPropertiesCallbackHandler = async (\n e: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.addKbPropertiesIsChecked =\n e.detail.target.value === CHECKBOX_CHECKED_VALUE;\n if (this.addKbPropertiesIsChecked) {\n this.#kBPropertiesData = await this.addKBPropertiesCallback();\n if (this.#kBPropertiesData.length) {\n this.objectsTreeViewModel = convertKbPropertiesDataToTreeItemData(\n this.#kBPropertiesData,\n this.kbPropertiesTypes,\n this.objectsTreeViewModel\n );\n }\n } else {\n // previous properties (if any) should be removed\n this.objectsTreeViewModel = clearKbPropertiesFromTree(\n this.objectsTreeViewModel\n );\n }\n };\n\n #addObjectsCallbackHandler = async () => {\n this.#exportAllEl.value = undefined;\n this.exportAllIsChecked = false;\n const addedObjects = await this.addObjectsCallback();\n this.#updateObjects(addedObjects);\n };\n\n #addReferencesCallbackHandler = async () => {\n const objects: ObjectData[] = await this.addReferencesCallback(\n this.checkedObjectsIds\n );\n this.#updateObjects(objects);\n };\n\n #cancelCallbackHandler = async () => {\n const cancelled = await this.cancelCallback();\n if (cancelled) {\n this.exportingIsInProcess = false;\n }\n };\n\n #clearButtonHandler = () => {\n this.objectsTreeViewModel = [];\n this.#objectsSet.clear();\n this.#addKbDescriptionEl.value = undefined;\n this.#exportAllEl.value = undefined;\n };\n\n #evaluateContentToDisplay = () => {\n // Nothing to display on the tree-view\n if (!this.hasObjects && !this.exportAllIsChecked) {\n return (\n <gx-ide-empty-state\n isAnimated={this.#animateEmptyState}\n stateTitle={this.#componentLocale.main.noObjectsToDisplay}\n key=\"no-objects-empty-state\"\n >\n <button\n class=\"button-primary\"\n onClick={this.#addObjectsCallbackHandler}\n >\n {this.#componentLocale.main.beginByADdingSomeObjects}\n </button>\n </gx-ide-empty-state>\n );\n } else {\n this.#animateEmptyState = true; // improve performance if is first render\n }\n\n if (this.exportAllIsChecked) {\n return (\n <gx-ide-empty-state\n isAnimated={this.#animateEmptyState}\n stateIconSrc={TREE_VIEW_ICON}\n stateTitle={this.#componentLocale.main.exportAllMessage}\n key=\"exporting-all-empty-state\"\n ></gx-ide-empty-state>\n );\n } else {\n this.#animateEmptyState = true; // improve performance if is first render\n }\n\n return (\n <ch-tree-view-render\n class=\"tree-view\"\n checkbox\n checked\n dragDisabled\n dropDisabled\n filter={this.#evaluateTreeViewFilters()}\n filterType={\n this.addKbPropertiesIsChecked && !this.exportAllIsChecked\n ? \"none\"\n : \"metadata\"\n }\n model={this.objectsTreeViewModel}\n showLines=\"last\"\n toggleCheckboxes\n sortItemsCallback={this.#sortTreeItems}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n ></ch-tree-view-render>\n );\n };\n\n #evaluateObjects = () => {\n this.hasObjects =\n this.objectsTreeViewModel && this.objectsTreeViewModel.length > 0;\n };\n\n #evaluateTreeViewFilters = (): string => {\n if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {\n return KB_PROPERTY; // only show properties\n }\n if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {\n return KB_OBJECT; // only show objects\n }\n return \"none\";\n };\n\n #exportAllChangedHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.exportAllIsChecked = event.detail;\n };\n\n #exportCallbackHandler = async () => {\n this.exportingIsInProcess = true;\n const fileName: string = this.#fileNameEl.value;\n const checkedKbPropertiesIds = this.addKbPropertiesIsChecked\n ? this.checkedPropertiesIds\n : [];\n const checkedObjectIds = this.exportAllIsChecked\n ? undefined\n : this.checkedObjectsIds;\n this.exportCallback(\n fileName,\n checkedKbPropertiesIds,\n checkedObjectIds\n ).then(() => {\n this.exportingIsInProcess = false;\n });\n // returns Promise<boolean> but no procedure was detailed on the spec.\n };\n\n #objectsTypesArrayToMap(objectTypesArray: ObjectType[]) {\n objectTypesArray.forEach(objectType => {\n this.#objectTypesMap.set(objectType.id, objectType);\n });\n }\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n // filter 'checked objects' and 'checked properties' ids\n const checkedObjectsIds: string[] = [];\n const checkedPropertiesIds: string[] = [];\n const allItemsWithCheckbox = [...event.detail.values()];\n allItemsWithCheckbox.forEach(node => {\n if (node.item.checked && node.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(node.item.id);\n } else if (node.item.checked && node.item.metadata === KB_PROPERTY) {\n checkedPropertiesIds.push(node.item.id);\n }\n });\n this.checkedObjectsIds = checkedObjectsIds;\n this.checkedPropertiesIds = checkedPropertiesIds;\n\n this.atLeastOnePropertyItemIsChecked = this.checkedPropertiesIds.length > 0;\n this.atLeastOneObjectItemIsChecked = this.checkedObjectsIds.length > 0;\n };\n\n #sortTreeItems = (subModel: TreeViewModel) => {\n // \"property\" items should be added on top.\n // else sort alphabetically by \"caption\" value.\n return subModel.sort((a, b) => {\n if (a.metadata === \"property\" && b.metadata !== \"property\") {\n return -1;\n }\n if (b.metadata === \"property\" && a.metadata !== \"property\") {\n return 1;\n }\n\n return a.caption.localeCompare(b.caption);\n });\n };\n\n #renderFooter = (): HTMLElement => {\n const referencesButtonEnabled = this.atLeastOneObjectItemIsChecked;\n const clearButtonEnabled = this.objectsTreeViewModel.length > 0;\n return (\n <footer class=\"footer control-footer-with-border control-footer-space-between space-body spacing-body-inline spacing-body-block-end\">\n <button\n class=\"button-tertiary clear-btn\"\n disabled={!clearButtonEnabled}\n part=\"clear-button\"\n onClick={clearButtonEnabled && this.#clearButtonHandler}\n >\n {this.#componentLocale.footer.clearButton}\n </button>\n\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary button-icon-and-text\"\n part=\"references-button\"\n disabled={!referencesButtonEnabled}\n onClick={\n referencesButtonEnabled && this.#addReferencesCallbackHandler\n }\n >\n <ch-image\n class=\"icon-sm\"\n disabled={!referencesButtonEnabled}\n src={GENERAL_REFERENCES_ICON}\n ></ch-image>\n {this.#componentLocale.footer.addReferencesButton}\n </button>\n\n <button\n // Add button\n class=\"button-primary button-icon-and-text\"\n disabled={this.exportAllIsChecked}\n part=\"add-button\"\n onClick={\n !this.exportAllIsChecked && this.#addObjectsCallbackHandler\n }\n >\n <ch-image\n class=\"icon-sm\"\n disabled={this.exportAllIsChecked}\n src={MENUS_NEW_OBJECT_ICON}\n ></ch-image>\n {this.#componentLocale.footer.addButton}\n </button>\n </div>\n </footer>\n );\n };\n\n #updateObjects = (objectsDataArray: ObjectData[]) => {\n if (objectsDataArray.length) {\n const newObjectsTreeModel = updateObjectsTreeModel(\n objectsDataArray,\n this.#objectTypesMap,\n this.#objectsSet,\n this.objectsTreeViewModel\n );\n this.objectsTreeViewModel = newObjectsTreeModel;\n }\n };\n\n render(): void {\n const exportButtonEnabled =\n this.atLeastOnePropertyItemIsChecked ||\n this.atLeastOneObjectItemIsChecked ||\n this.exportAllIsChecked;\n\n const cancelButtonEnabled = this.exportingIsInProcess;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section>\n <header class=\"header control-header-with-border space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field-group header__field-group\">\n <div class=\"field field-inline export-file-name\">\n <label class=\"label\" htmlFor=\"xpz-file\">\n {this.#componentLocale.header.exportFileName}\n </label>\n <ch-edit\n autoFocus\n id=\"xpz-file\"\n class=\"form-input\"\n part=\"xpz-file\"\n value={this.fileName}\n startImgSrc={FILE_ICON}\n ref={(el: HTMLChEditElement) =>\n (this.#fileNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"header__buttons-container buttons-spacer\">\n <button\n id=\"export-kb-btn\"\n class=\"button-primary export-btn\"\n part=\"export-btn\"\n disabled={!exportButtonEnabled}\n onClick={exportButtonEnabled && this.#exportCallbackHandler}\n >\n {this.#componentLocale.header.exportButton}\n </button>\n <button\n id=\"cancel-kb-export-btn\"\n class=\"button-secondary cancel-btn\"\n part=\"cancel-button\"\n disabled={!cancelButtonEnabled}\n onClick={cancelButtonEnabled && this.#cancelCallbackHandler}\n >\n {this.#componentLocale.header.cancelButton}\n </button>\n\n <button\n aria-label={this.#componentLocale.header.optionsButton}\n title={this.#componentLocale.header.optionsButton}\n class=\"button-tertiary button-icon-only options-btn\"\n part=\"select-kb-btn\"\n onClick={this.optionsCallback}\n >\n <ch-image class=\"icon-md\" src={SETTINGS_ICON}></ch-image>\n </button>\n </div>\n\n <div class=\"header__checkboxes field-group\">\n <ch-checkbox\n class=\"checkbox add-kb-description\"\n part=\"add-kb-description\"\n caption={\n this.#componentLocale.main.addKnowledgeBaseDescription\n }\n checkedValue={CHECKBOX_CHECKED_VALUE}\n onInput={this.#addKBPropertiesCallbackHandler}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#addKbDescriptionEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n\n <ch-checkbox\n class=\"checkbox export-all\"\n part=\"export-all-checkbox\"\n checkedValue={CHECKBOX_CHECKED_VALUE}\n caption={this.#componentLocale.main.exportAll}\n onInput={this.#exportAllChangedHandler}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#exportAllEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n </div>\n </div>\n </header>\n\n <div class=\"main spacing-body-inline\">\n {this.#evaluateContentToDisplay()}\n {this.loader && this.exportingIsInProcess && (\n <gx-ide-loader\n cancelLabel={this.#componentLocale.loader.cancelLabel}\n loaderTitle={this.#componentLocale.loader.title}\n cancelCallback={this.#cancelCallbackHandler}\n show\n class=\"loader\"\n ></gx-ide-loader>\n )}\n </div>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["gxIdeEmptyStateCss","CSS_BUNDLES","GxIdeEmptyState","render","h","Host","class","animate","this","isAnimated","model","stateIconSrc","src","stateTitle","stateDescription"],"sources":["src/components/_helpers/empty-state/gx-ide-empty-state.scss?tag=gx-ide-empty-state&encapsulation=shadow","src/components/_helpers/empty-state/gx-ide-empty-state.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n\n:host {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n inline-size: 100%;\n position: relative;\n}\n:host(.animate) {\n animation: fadeIn var(--mer-timing--fast) forwards;\n inset-block-start: 0;\n}\n.main-container {\n max-width: 320px;\n margin: 0 auto;\n gap: var(--mer-spacing--md);\n padding: var(--mer-spacing--md);\n\n &__icon-wrapper {\n border: var(--mer-border__width--sm) dashed var(--mer-accent__primary);\n border-radius: 50%;\n min-width: 40px;\n min-height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n }\n\n &__content {\n gap: var(--mer-spacing--sm);\n }\n}\n.main-container,\n.main-container__content {\n display: flex;\n align-items: center;\n flex-direction: column;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n inset-block-start: 5px;\n }\n}\n","import { Component, Host, h, Prop, Element } from \"@stencil/core\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/icon\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-empty-state\",\n styleUrl: \"gx-ide-empty-state.scss\",\n shadow: true\n})\nexport class GxIdeEmptyState {\n @Element() el: HTMLGxIdeEmptyStateElement;\n\n /**\n * Includes a subtle entry animation\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() readonly isAnimated: boolean = false;\n\n /**\n * The state description\n */\n @Prop() readonly stateDescription?: string;\n\n /**\n * The state icon\n */\n @Prop() readonly stateIconSrc?: string;\n\n /**\n * The state title\n */\n @Prop() readonly stateTitle!: string;\n\n render() {\n return (\n <Host class={{ animate: this.isAnimated }}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <article class=\"main-container\">\n {this.stateIconSrc && (\n <span class=\"main-container__icon-wrapper\">\n <ch-image src={this.stateIconSrc} class=\"icon-md\"></ch-image>\n </span>\n )}\n <div class=\"main-container__content\">\n {this.stateTitle && (\n <h2 class=\"text-body-regular-m\">{this.stateTitle}</h2>\n )}\n {this.stateDescription && (\n <p class=\"text-body-regular-s\">{this.stateDescription}</p>\n )}\n </div>\n <slot></slot>\n </article>\n </Host>\n );\n }\n}\n"],"mappings":";;AAAA,MAAMA,IAAqB;;ACG3B,MAAMC,IAA8B,EAClC,qBACA,qBACA,mBACA;;MAQWC,IAAe;;;sBAOa;;;;;EAiBvC,MAAAC;IACE,OACEC,EAACC,GAAI;MAACC,OAAO;QAAEC,SAASC,KAAKC;;OAC3BL,EAAA;MAAUM,OAAOT;QACjBG,EAAA;MAASE,OAAM;OACZE,KAAKG,gBACJP,EAAA;MAAME,OAAM;OACVF,EAAA;MAAUQ,KAAKJ,KAAKG;MAAcL,OAAM;SAG5CF,EAAA;MAAKE,OAAM;OACRE,KAAKK,cACJT,EAAA;MAAIE,OAAM;OAAuBE,KAAKK,aAEvCL,KAAKM,oBACJV,EAAA;MAAGE,OAAM;OAAuBE,KAAKM,oBAGzCV,EAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["entitySelectorCss","CSS_BUNDLES","SELECT_DEFAULT_ICON","getIconPath","category","name","colorType","CLEAR_ICON","GxIdeEntitySelector","_GxIdeEntitySelector_componentLocale","set","this","_GxIdeEntitySelector_btnClearClickHandler","value","defaultValue","_GxIdeEntitySelector_btnSelectClickHandler","selectEntityCallback","then","result","_GxIdeEntitySelector_buttonFocusHandler","e","type","buttonHasFocus","_GxIdeEntitySelector_renderControl","h","part","class","accessibleName","labelPosition","__classPrivateFieldGet","entitySelectorInputAccessibleName","startImgSrc","iconSrc","_a","_b","id","clearButtonLabel","title","onClick","onFocus","undefined","onBlur","src","selectButtonLabel","disabled","_GxIdeEntitySelector_updateIconSrc","valueChangedHandler","valueChanged","emit","call","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","connectedCallback","render","Host","model","field","htmlFor","labelCaption"],"sources":["src/components/_helpers/entity-selector/entity-selector.scss?tag=gx-ide-entity-selector&encapsulation=shadow","src/components/_helpers/entity-selector/entity-selector.tsx"],"sourcesContent":["/*wrapper*/\n.wrapper {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--mer-spacing--xs);\n border-radius: var(--control__border-radius);\n border: var(--control__border-width) var(--control__border-style)\n var(--control__border-color);\n padding: var(--control__padding-block) var(--control__padding-inline);\n\n &:hover {\n --control__border-color: var(--control__border-color--hover);\n }\n &:focus {\n }\n}\n/*form-input*/\n.form-input {\n --control__padding-block: 0;\n --control__padding-inline: 0;\n // Remove control border. We want to simulate a form-input that includes two buttons at the end.\n --control__border-width: 0;\n --focus__outline-width: 0;\n}\n:host(:focus-within) {\n .wrapper {\n --control__border-color: var(--focus__outline-color);\n }\n}\n:host(.entity-selector--button-has-focus) {\n .wrapper {\n outline: none;\n }\n}\n/*custom button icon*/\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../../common/locale\";\nimport { LabelPosition } from \"../../../common/types\";\nimport { EntityData } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/edit\",\n \"components/button\",\n \"components/icon\",\n \"utils/form\"\n];\nconst SELECT_DEFAULT_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"primary\"\n});\nconst CLEAR_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-entity-selector\",\n styleUrl: \"entity-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/entity-selector\"]\n})\nexport class GxIdeEntitySelector {\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeEntitySelectorElement;\n\n /**\n * Adds/removes a CSS class on the host. It removes focus-within styles when\n * focus is on a button.\n */\n @State() buttonHasFocus = false;\n\n @State() iconSrc: string = null;\n\n /**\n * Default value for the component. Used when the 'X' button is pressed.\n */\n @Prop() readonly defaultValue?: EntityData | null | undefined;\n\n /**\n * The label caption. Only visible if \"labelPosition\" is not \"none\".\n * I no \"labelCaption\" is provided, a generic caption \"Select Entity\" will be provided\n */\n @Prop() readonly labelCaption: string;\n\n /**\n * The label position\n */\n @Prop({ reflect: true }) readonly labelPosition: LabelPosition =\n \"block-start\";\n\n /**\n * Callback invoked when the action button is pressed. Returns the new value.\n */\n @Prop() readonly selectEntityCallback!: () => Promise<EntityData>;\n\n /**\n * Value currently assigned.\n */\n @Prop({ mutable: true }) value: EntityData | null | undefined;\n @Watch(\"value\")\n valueChangedHandler() {\n this.valueChanged.emit(this.value);\n this.#updateIconSrc();\n }\n\n /**\n * Emits the input value every time it changes\n */\n @Event() valueChanged: EventEmitter<EntityData>;\n\n // 6.Component Lifecycle Events\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n connectedCallback() {\n this.#updateIconSrc();\n }\n\n #btnClearClickHandler = () => {\n this.value = this.defaultValue;\n };\n\n #btnSelectClickHandler = () => {\n this.selectEntityCallback().then(result => {\n this.value = result;\n });\n };\n\n #buttonFocusHandler = (e: FocusEvent) => {\n if (e.type === \"focus\") {\n this.buttonHasFocus = true;\n } else if (e.type === \"blur\") {\n this.buttonHasFocus = false;\n }\n };\n\n #renderControl = (): HTMLDivElement => {\n return (\n <div part=\"wrapper\" class=\"wrapper\">\n <ch-edit\n accessibleName={\n this.labelPosition === \"none\" &&\n this.#componentLocale.entitySelectorInputAccessibleName\n }\n class=\"form-input\"\n name=\"entitySelector\"\n startImgSrc={this.iconSrc}\n value={this.value?.name || this.defaultValue?.name}\n id=\"entity-input\"\n ></ch-edit>\n\n <button\n part=\"button-clear\"\n class=\"icon-button\"\n aria-label={this.#componentLocale.clearButtonLabel}\n title={this.#componentLocale.clearButtonLabel}\n onClick={this.#btnClearClickHandler}\n onFocus={this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n onBlur={!this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n >\n <ch-image class=\"icon-md\" src={CLEAR_ICON}></ch-image>\n </button>\n\n <button\n class=\"icon-button\"\n aria-label={this.#componentLocale.selectButtonLabel}\n title={this.#componentLocale.selectButtonLabel}\n disabled={!this.selectEntityCallback}\n onClick={this.#btnSelectClickHandler}\n onBlur={!this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n onFocus={this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n >\n <ch-image class=\"icon-md\" src={SELECT_DEFAULT_ICON}></ch-image>\n </button>\n </div>\n );\n };\n\n #updateIconSrc = () => {\n if (this.value && this.value.iconSrc) {\n this.iconSrc = this.value.iconSrc;\n }\n };\n\n render() {\n return (\n <Host\n class={{\n \"entity-selector--button-has-focus\": this.buttonHasFocus\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.labelPosition !== \"none\" ? (\n <div\n class={{\n \"field\": true,\n \"field-block\": this.labelPosition === \"block-start\",\n \"field-inline\": this.labelPosition === \"inline-start\"\n }}\n >\n <label class=\"label\" htmlFor=\"entity-input\">\n {this.labelCaption ||\n this.#componentLocale.entitySelectorInputAccessibleName}\n </label>\n {this.#renderControl()}\n </div>\n ) : (\n this.#renderControl()\n )}\n </Host>\n );\n }\n}\n\nexport type EntitySelectorLabels = {\n buttonClearLabel: string;\n buttonSelectLabel: string;\n};\n"],"mappings":";;;;;;AAAA,MAAMA,IAAoB;;;;;;;;;;;;;;;;;ACkB1B,MAAMC,IAA8B,EAClC,qBACA,mBACA,qBACA,mBACA;;AAEF,MAAMC,IAAsBC,EAAY;EACtCC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAEb,MAAMC,IAAaJ,EAAY;EAC7BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;MASAE,IAAmB;;;;IAC9BC,EAAAC,IAAAC,WAAA;IA2DAC,EAAAF,IAAAC,OAAwB;MACtBA,KAAKE,QAAQF,KAAKG;AAAY;IAGhCC,EAAAL,IAAAC,OAAyB;MACvBA,KAAKK,uBAAuBC,MAAKC;QAC/BP,KAAKE,QAAQK;AAAM;AACnB;IAGJC,EAAAT,IAAAC,OAAuBS;MACrB,IAAIA,EAAEC,SAAS,SAAS;QACtBV,KAAKW,iBAAiB;aACjB,IAAIF,EAAEC,SAAS,QAAQ;QAC5BV,KAAKW,iBAAiB;;;IAI1BC,EAAAb,IAAAC,OAAiB;;MACf,OACEa,EAAA;QAAKC,MAAK;QAAUC,OAAM;SACxBF,EAAA;QACEG,gBACEhB,KAAKiB,kBAAkB,UACvBC,EAAAlB,MAAIF,GAAA,KAAkBqB;QAExBJ,OAAM;QACNrB,MAAK;QACL0B,aAAapB,KAAKqB;QAClBnB,SAAOoB,IAAAtB,KAAKE,WAAK,QAAAoB,WAAA,aAAAA,EAAE5B,WAAQ6B,IAAAvB,KAAKG,kBAAY,QAAAoB,WAAA,aAAAA,EAAE7B;QAC9C8B,IAAG;UAGLX,EAAA;QACEC,MAAK;QACLC,OAAM;QAAa,cACPG,EAAAlB,MAAIF,GAAA,KAAkB2B;QAClCC,OAAOR,EAAAlB,MAAIF,GAAA,KAAkB2B;QAC7BE,SAAST,EAAAlB,MAAIC,GAAA;QACb2B,SAAS5B,KAAKW,iBAAiBO,EAAAlB,MAAIQ,GAAA,OAAuBqB;QAC1DC,SAAS9B,KAAKW,iBAAiBO,EAAAlB,MAAIQ,GAAA,OAAuBqB;SAE1DhB,EAAA;QAAUE,OAAM;QAAUgB,KAAKnC;WAGjCiB,EAAA;QACEE,OAAM;QAAa,cACPG,EAAAlB,MAAIF,GAAA,KAAkBkC;QAClCN,OAAOR,EAAAlB,MAAIF,GAAA,KAAkBkC;QAC7BC,WAAWjC,KAAKK;QAChBsB,SAAST,EAAAlB,MAAII,GAAA;QACb0B,SAAS9B,KAAKW,iBAAiBO,EAAAlB,MAAIQ,GAAA,OAAuBqB;QAC1DD,SAAS5B,KAAKW,iBAAiBO,EAAAlB,MAAIQ,GAAA,OAAuBqB;SAE1DhB,EAAA;QAAUE,OAAM;QAAUgB,KAAKxC;;AAE7B;IAIV2C,EAAAnC,IAAAC,OAAiB;MACf,IAAIA,KAAKE,SAASF,KAAKE,MAAMmB,SAAS;QACpCrB,KAAKqB,UAAUrB,KAAKE,MAAMmB;;;0BAjHJ;mBAEC;;;yBAiBzB;;;;EAYF,mBAAAc;IACEnC,KAAKoC,aAAaC,KAAKrC,KAAKE;IAC5BgB,EAAAlB,MAAIkC,GAAA,KAAeI,KAAnBtC;;;EAUF,uBAAMuC;IACJC,EAAAxC,MAAIF,SAA0B2C,EAAOC,oBAAoB1C,KAAK2C,KAAG;;EAGnE,iBAAAC;IACE1B,EAAAlB,MAAIkC,GAAA,KAAeI,KAAnBtC;;EAqEF,MAAA6C;IACE,OACEhC,EAACiC,GAAI;MACH/B,OAAO;QACL,qCAAqCf,KAAKW;;OAG5CE,EAAA;MAAUkC,OAAOzD;QAChBU,KAAKiB,kBAAkB,SACtBJ,EAAA;MACEE,OAAO;QACLiC,OAAS;QACT,eAAehD,KAAKiB,kBAAkB;QACtC,gBAAgBjB,KAAKiB,kBAAkB;;OAGzCJ,EAAA;MAAOE,OAAM;MAAQkC,SAAQ;OAC1BjD,KAAKkD,gBACJhC,EAAAlB,MAAIF,GAAA,KAAkBqB,oCAEzBD,EAAAlB,MAAIY,GAAA,KAAe0B,KAAnBtC,SAGHkB,EAAAlB,MAAIY,GAAA,KAAe0B,KAAnBtC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { r as e, c as r, h as a, H as i } from "./p-aaed592c.js";
|
|
2
|
-
|
|
3
|
-
const o = ".loader__wrapper{position:absolute;border:none;opacity:0;transition:var(--show-transition) opacity;inline-size:100%;block-size:100%;display:flex;background-color:var(--gxg-ide-loader-wrapper__background-color--from);backdrop-filter:var(--gxg-ide-loader-wrapper__backdrop-filter);padding:var(--gxg-ide-loader-wrapper__padding);flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;color:var(--gxg-ide-loader-wrapper__color);z-index:99;animation:fadeIn var(--mer-timing--fast) forwards}.loader__wrapper--visible{opacity:1}.loader__spinner{border:var(--gxg-ide-loader-spinner__border);border-block-start:var(--gxg-ide-loader-spinner__border-top);border-radius:50%;animation:spinner 0.6s infinite linear;inline-size:var(--gxg-ide-loader-spinner__width);block-size:var(--gxg-ide-loader-spinner__width);flex-shrink:0;opacity:1}.loader__content-wrapper{display:flex;text-align:center;flex-direction:column;margin-block-start:var(--gxg-ide-loader-content-wrapper__mbs);gap:var(--mer-spacing--md);max-block-size:var(--gxg-ide-loader-content-wrapper__max-width);opacity:1}.loader__content-wrapper--hidden{display:none}@keyframes wrapper{0%{background-color:var(--gxg-ide-loader-wrapper__background-color--from)}100%{background-color:var(--gxg-ide-loader-wrapper__background-color--to)}}@keyframes spinner{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}:host([display-border]) .loader__wrapper{border:1px solid var(--mer-color__elevation--02)}@keyframes fadeIn{0%{opacity:0}}";
|
|
4
|
-
|
|
5
|
-
var t = undefined && undefined.__classPrivateFieldGet || function(e, r, a, i) {
|
|
6
|
-
if (a === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
|
|
7
|
-
if (typeof r === "function" ? e !== r || !i : !r.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
8
|
-
return a === "m" ? i : a === "a" ? i.call(e) : i ? i.value : r.get(e);
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
var n, s, d, p, l;
|
|
12
|
-
|
|
13
|
-
const c = [ "resets/box-sizing", "components/button", "utils/typography" ];
|
|
14
|
-
|
|
15
|
-
const h = class {
|
|
16
|
-
constructor(i) {
|
|
17
|
-
e(this, i);
|
|
18
|
-
this.loaderFinished = r(this, "loaderFinished", 7);
|
|
19
|
-
n.set(this, void 0);
|
|
20
|
-
s.set(this, (() => {
|
|
21
|
-
if (this.cancelCallback) {
|
|
22
|
-
this.cancelCallback();
|
|
23
|
-
}
|
|
24
|
-
clearTimeout(t(this, n, "f"));
|
|
25
|
-
this.show = false;
|
|
26
|
-
}));
|
|
27
|
-
d.set(this, (() => this.cancelLabel && a("div", null, a("button", {
|
|
28
|
-
class: "button-secondary",
|
|
29
|
-
type: "button",
|
|
30
|
-
onClick: t(this, s, "f")
|
|
31
|
-
}, this.cancelLabel))));
|
|
32
|
-
p.set(this, (() => this.description && a("p", {
|
|
33
|
-
class: "text-body-italic-s"
|
|
34
|
-
}, this.description)));
|
|
35
|
-
l.set(this, (() => this.loaderTitle && a("p", {
|
|
36
|
-
class: "text-body-regular-m"
|
|
37
|
-
}, this.loaderTitle)));
|
|
38
|
-
this.showWrapper = true;
|
|
39
|
-
this.abortTime = 5 * 60 * 1e3;
|
|
40
|
-
this.cancelCallback = undefined;
|
|
41
|
-
this.cancelLabel = undefined;
|
|
42
|
-
this.description = undefined;
|
|
43
|
-
this.displayBorder = false;
|
|
44
|
-
this.loaderTitle = undefined;
|
|
45
|
-
this.show = false;
|
|
46
|
-
}
|
|
47
|
-
render() {
|
|
48
|
-
return a(i, null, a("ch-theme", {
|
|
49
|
-
model: c
|
|
50
|
-
}), this.show && a("div", {
|
|
51
|
-
class: {
|
|
52
|
-
[`loader__wrapper`]: true,
|
|
53
|
-
"loader__wrapper--visible": this.showWrapper
|
|
54
|
-
},
|
|
55
|
-
part: "loader-wrapper",
|
|
56
|
-
popover: ""
|
|
57
|
-
}, a("div", {
|
|
58
|
-
class: "loader__spinner"
|
|
59
|
-
}), a("div", {
|
|
60
|
-
class: {
|
|
61
|
-
"loader__content-wrapper": true,
|
|
62
|
-
"loader__content-wrapper--hidden": !this.description && !this.loaderTitle && !this.cancelLabel
|
|
63
|
-
}
|
|
64
|
-
}, t(this, l, "f").call(this), t(this, p, "f").call(this), t(this, d, "f").call(this))));
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
n = new WeakMap, s = new WeakMap, d = new WeakMap, p = new WeakMap, l = new WeakMap;
|
|
69
|
-
|
|
70
|
-
h.style = o;
|
|
71
|
-
|
|
72
|
-
export { h as gx_ide_loader };
|
|
73
|
-
//# sourceMappingURL=p-a6b76120.entry.js.map
|
|
@@ -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(--gxg-ide-loader-wrapper__background-color--from);\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--md);\n max-block-size: var(--gxg-ide-loader-content-wrapper__max-width);\n &--hidden {\n display: none;\n }\n opacity: 1;\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\"\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=\"text-body-italic-s\">{this.description}</p>;\n\n #renderTitle = (): HTMLParagraphElement | null =>\n this.loaderTitle && <p class=\"text-body-regular-m\">{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;OAAsBT,KAAKa;IAE1DC,EAAAf,IAAAC,OAAe,MACbA,KAAKe,eAAeP,EAAA;MAAGC,OAAM;OAAuBT,KAAKe;uBAnEpC;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"}
|