@genexus/genexus-ide-ui 1.1.68 → 1.1.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-restore-version.cjs.entry.js +133 -0
- package/dist/cjs/gx-ide-restore-version.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +38 -9
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/restore-version/gx-ide-assets/restore-version/langs/restore-version.lang.en.json +19 -0
- package/dist/collection/components/restore-version/gx-ide-assets/restore-version/langs/restore-version.lang.ja.json +19 -0
- package/dist/collection/components/restore-version/gx-ide-assets/restore-version/langs/restore-version.lang.zh.json +19 -0
- package/dist/collection/components/restore-version/restore-version.css +651 -0
- package/dist/collection/components/restore-version/restore-version.js +258 -0
- package/dist/collection/components/restore-version/restore-version.js.map +1 -0
- package/dist/collection/components/select-kb-items/select-kb-items.js +56 -9
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +4 -5
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/team-dev/share-kb/share-kb.js +4 -5
- package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
- package/dist/collection/components/team-dev/version-control/common/types.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +2 -1
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-restore-version.d.ts +11 -0
- package/dist/components/gx-ide-restore-version.js +158 -0
- package/dist/components/gx-ide-restore-version.js.map +1 -0
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/select-kb-items.js +39 -9
- package/dist/components/select-kb-items.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-restore-version.entry.js +129 -0
- package/dist/esm/gx-ide-restore-version.entry.js.map +1 -0
- package/dist/esm/gx-ide-select-kb-items.entry.js +38 -9
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/restore-version/langs/restore-version.lang.en.json +19 -0
- package/dist/genexus-ide-ui/gx-ide-assets/restore-version/langs/restore-version.lang.ja.json +19 -0
- package/dist/genexus-ide-ui/gx-ide-assets/restore-version/langs/restore-version.lang.zh.json +19 -0
- package/dist/genexus-ide-ui/{p-f83c415c.entry.js → p-8897c6de.entry.js} +88 -64
- package/dist/genexus-ide-ui/p-8897c6de.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-93e79d19.entry.js.map +1 -1
- package/dist/genexus-ide-ui/p-9ffa7afd.entry.js.map +1 -1
- package/dist/genexus-ide-ui/p-c3cc759d.entry.js +182 -0
- package/dist/genexus-ide-ui/p-c3cc759d.entry.js.map +1 -0
- package/dist/types/components/restore-version/restore-version.d.ts +52 -0
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +4 -0
- package/dist/types/components/team-dev/create-kb-from-server/create-kb-from-server.d.ts +4 -9
- package/dist/types/components/team-dev/share-kb/share-kb.d.ts +3 -8
- package/dist/types/components/team-dev/version-control/common/types.d.ts +6 -0
- package/dist/types/components.d.ts +75 -8
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-f83c415c.entry.js.map +0 -1
|
@@ -24,7 +24,8 @@ import { TitleType } from "./components/_helpers/title/title";
|
|
|
24
24
|
import { AlignItems, FooterJustify, HeadingJustify, JustifyContent, SectionsPadding } from "./components/_helpers/container/container";
|
|
25
25
|
import { TitleAlignment } from "@genexus/gemini/dist/types/common/types";
|
|
26
26
|
import { GXServerConnectionData as GXServerConnectionData1 } from "./components/team-dev/connect-gx-server/connect-gx-server";
|
|
27
|
-
import { KBData,
|
|
27
|
+
import { KBData, KnowledgeBaseInfo } from "./components/team-dev/create-kb-from-server/create-kb-from-server";
|
|
28
|
+
import { CommitCallback, ContextMenuCallback as ContextMenuCallback1, KBVersion, LoadLocalChangesCallback, LoadRemoteChangesCallback, PendingItemsCheckedCallback, SelectCallback, ServerDetails, UpdateCallback } from "./components/team-dev/version-control/common/types";
|
|
28
29
|
import { CurlImportData, EntityData, SelectModuleCallback } from "./components/curl-inspector/curl-inspector";
|
|
29
30
|
import { MenuAlign, Mode, UserInfo } from "./components/current-user-info/current-user-info";
|
|
30
31
|
import { CancelCallback as CancelCallback4, ConfirmCallback as ConfirmCallback3, EditCallback, LoadItemsCallback, NewVariableCallback, SelectObjectCallback } from "./components/data-selector/data-selector";
|
|
@@ -56,10 +57,11 @@ import { PluginDetailsData } from "./components/plugin-details/plugin-details";
|
|
|
56
57
|
import { PluginAction, PluginData } from "./components/plugin-explorer/plugin-explorer";
|
|
57
58
|
import { TopStateBarType } from "./components/_helpers/progress-bar/progress-bar";
|
|
58
59
|
import { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
|
|
60
|
+
import { RestoreVersionData } from "./components/restore-version/restore-version";
|
|
59
61
|
import { CheckboxType, DialogAction, ItemNode } from "./components/select-kb-items/select-kb-items";
|
|
60
62
|
import { TeamData } from "./components/select-user-team/select-user-team";
|
|
61
63
|
import { AuthenticationSessionOrigin, ConnectionOption, ServerData } from "./components/team-dev/server-selector/server-selector";
|
|
62
|
-
import {
|
|
64
|
+
import { ShareKBData } from "./components/team-dev/share-kb/share-kb";
|
|
63
65
|
import { AuthStep, TeamData as TeamData1 } from "./components/sign-in-team/sign-in-team";
|
|
64
66
|
import { MessageType } from "./components/splash/splash";
|
|
65
67
|
import { RecentKBData, SampleData, SecondarySection } from "./components/start-page/start-page";
|
|
@@ -67,7 +69,6 @@ import { CancelCallback as CancelCallback16, SaveCallback as SaveCallback1 } fro
|
|
|
67
69
|
import { CheckedItemsInfo as CheckedItemsInfo1 } from "./components/_helpers/list-selector/list-selector";
|
|
68
70
|
import { SelectedMergeActionData } from "./components/team-dev/bring-all-changes-selector/bring-all-changes-selector";
|
|
69
71
|
import { CommitDetail, CommitInformation, CommitObject, MergeObjectsCallback, ObjectState, OperationType } from "./components/team-dev/bring-changes/bring-changes";
|
|
70
|
-
import { CommitCallback, ContextMenuCallback as ContextMenuCallback1, LoadLocalChangesCallback, LoadRemoteChangesCallback, PendingItemsCheckedCallback, SelectCallback, ServerDetails, UpdateCallback } from "./components/team-dev/version-control/common/types";
|
|
71
72
|
import { LoadCallback as LoadCallback4, LoadDetailCallback, ObjectType as ObjectType1, SelectedVersionChangeCallback } from "./components/team-dev/history/history";
|
|
72
73
|
import { ItemNode as ItemNode1 } from "./components/select-kb-items/select-kb-items";
|
|
73
74
|
import { TeamDevPreviewData, TeamDevPreviewMode } from "./components/team-dev/preview/team-dev-preview";
|
|
@@ -100,7 +101,8 @@ export { TitleType } from "./components/_helpers/title/title";
|
|
|
100
101
|
export { AlignItems, FooterJustify, HeadingJustify, JustifyContent, SectionsPadding } from "./components/_helpers/container/container";
|
|
101
102
|
export { TitleAlignment } from "@genexus/gemini/dist/types/common/types";
|
|
102
103
|
export { GXServerConnectionData as GXServerConnectionData1 } from "./components/team-dev/connect-gx-server/connect-gx-server";
|
|
103
|
-
export { KBData,
|
|
104
|
+
export { KBData, KnowledgeBaseInfo } from "./components/team-dev/create-kb-from-server/create-kb-from-server";
|
|
105
|
+
export { CommitCallback, ContextMenuCallback as ContextMenuCallback1, KBVersion, LoadLocalChangesCallback, LoadRemoteChangesCallback, PendingItemsCheckedCallback, SelectCallback, ServerDetails, UpdateCallback } from "./components/team-dev/version-control/common/types";
|
|
104
106
|
export { CurlImportData, EntityData, SelectModuleCallback } from "./components/curl-inspector/curl-inspector";
|
|
105
107
|
export { MenuAlign, Mode, UserInfo } from "./components/current-user-info/current-user-info";
|
|
106
108
|
export { CancelCallback as CancelCallback4, ConfirmCallback as ConfirmCallback3, EditCallback, LoadItemsCallback, NewVariableCallback, SelectObjectCallback } from "./components/data-selector/data-selector";
|
|
@@ -132,10 +134,11 @@ export { PluginDetailsData } from "./components/plugin-details/plugin-details";
|
|
|
132
134
|
export { PluginAction, PluginData } from "./components/plugin-explorer/plugin-explorer";
|
|
133
135
|
export { TopStateBarType } from "./components/_helpers/progress-bar/progress-bar";
|
|
134
136
|
export { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
|
|
137
|
+
export { RestoreVersionData } from "./components/restore-version/restore-version";
|
|
135
138
|
export { CheckboxType, DialogAction, ItemNode } from "./components/select-kb-items/select-kb-items";
|
|
136
139
|
export { TeamData } from "./components/select-user-team/select-user-team";
|
|
137
140
|
export { AuthenticationSessionOrigin, ConnectionOption, ServerData } from "./components/team-dev/server-selector/server-selector";
|
|
138
|
-
export {
|
|
141
|
+
export { ShareKBData } from "./components/team-dev/share-kb/share-kb";
|
|
139
142
|
export { AuthStep, TeamData as TeamData1 } from "./components/sign-in-team/sign-in-team";
|
|
140
143
|
export { MessageType } from "./components/splash/splash";
|
|
141
144
|
export { RecentKBData, SampleData, SecondarySection } from "./components/start-page/start-page";
|
|
@@ -143,7 +146,6 @@ export { CancelCallback as CancelCallback16, SaveCallback as SaveCallback1 } fro
|
|
|
143
146
|
export { CheckedItemsInfo as CheckedItemsInfo1 } from "./components/_helpers/list-selector/list-selector";
|
|
144
147
|
export { SelectedMergeActionData } from "./components/team-dev/bring-all-changes-selector/bring-all-changes-selector";
|
|
145
148
|
export { CommitDetail, CommitInformation, CommitObject, MergeObjectsCallback, ObjectState, OperationType } from "./components/team-dev/bring-changes/bring-changes";
|
|
146
|
-
export { CommitCallback, ContextMenuCallback as ContextMenuCallback1, LoadLocalChangesCallback, LoadRemoteChangesCallback, PendingItemsCheckedCallback, SelectCallback, ServerDetails, UpdateCallback } from "./components/team-dev/version-control/common/types";
|
|
147
149
|
export { LoadCallback as LoadCallback4, LoadDetailCallback, ObjectType as ObjectType1, SelectedVersionChangeCallback } from "./components/team-dev/history/history";
|
|
148
150
|
export { ItemNode as ItemNode1 } from "./components/select-kb-items/select-kb-items";
|
|
149
151
|
export { TeamDevPreviewData, TeamDevPreviewMode } from "./components/team-dev/preview/team-dev-preview";
|
|
@@ -1929,6 +1931,30 @@ export namespace Components {
|
|
|
1929
1931
|
*/
|
|
1930
1932
|
"selectorSourceCallback"?: SelectorSourceCallback;
|
|
1931
1933
|
}
|
|
1934
|
+
interface GxIdeRestoreVersion {
|
|
1935
|
+
/**
|
|
1936
|
+
* Callback invoked by pressing the Cancel button.
|
|
1937
|
+
*/
|
|
1938
|
+
"cancelCallback": () => Promise<void>;
|
|
1939
|
+
/**
|
|
1940
|
+
* Callback invoked by pressing the Confirm button.
|
|
1941
|
+
*/
|
|
1942
|
+
"confirmCallback": (
|
|
1943
|
+
restoreVersionData: RestoreVersionData
|
|
1944
|
+
) => Promise<void>;
|
|
1945
|
+
/**
|
|
1946
|
+
* Callback invoked by pressing the ellipsis in the version selector.
|
|
1947
|
+
*/
|
|
1948
|
+
"selectSourceVersionCallback": () => Promise<KBVersion[]>;
|
|
1949
|
+
/**
|
|
1950
|
+
* The target version to which the restore will be made.
|
|
1951
|
+
*/
|
|
1952
|
+
"toVersionInfo": KBVersion;
|
|
1953
|
+
/**
|
|
1954
|
+
* List of versions to show in the versions combo box.
|
|
1955
|
+
*/
|
|
1956
|
+
"versions": KBVersion[];
|
|
1957
|
+
}
|
|
1932
1958
|
interface GxIdeScChatContainer {
|
|
1933
1959
|
/**
|
|
1934
1960
|
* It will exit the wellcome screen and remove it from the dom.
|
|
@@ -1994,6 +2020,10 @@ export namespace Components {
|
|
|
1994
2020
|
* Used to define if the component must show the "Toggle Checkboxes" option or not
|
|
1995
2021
|
*/
|
|
1996
2022
|
"showToggleCheckboxes": boolean;
|
|
2023
|
+
/**
|
|
2024
|
+
* This define if the checks are unique or not
|
|
2025
|
+
*/
|
|
2026
|
+
"singleChecks"?: boolean;
|
|
1997
2027
|
/**
|
|
1998
2028
|
* Suspends or reactivates the shortcuts
|
|
1999
2029
|
*/
|
|
@@ -2078,7 +2108,7 @@ export namespace Components {
|
|
|
2078
2108
|
*/
|
|
2079
2109
|
"selectKBVersionsCallback": (
|
|
2080
2110
|
selectedKB: string
|
|
2081
|
-
) => Promise<
|
|
2111
|
+
) => Promise<KBVersion[]>;
|
|
2082
2112
|
/**
|
|
2083
2113
|
* Callback that must be invoked when the Share button is pressed.
|
|
2084
2114
|
*/
|
|
@@ -3604,6 +3634,12 @@ declare global {
|
|
|
3604
3634
|
prototype: HTMLGxIdeReferencesElement;
|
|
3605
3635
|
new (): HTMLGxIdeReferencesElement;
|
|
3606
3636
|
};
|
|
3637
|
+
interface HTMLGxIdeRestoreVersionElement extends Components.GxIdeRestoreVersion, HTMLStencilElement {
|
|
3638
|
+
}
|
|
3639
|
+
var HTMLGxIdeRestoreVersionElement: {
|
|
3640
|
+
prototype: HTMLGxIdeRestoreVersionElement;
|
|
3641
|
+
new (): HTMLGxIdeRestoreVersionElement;
|
|
3642
|
+
};
|
|
3607
3643
|
interface HTMLGxIdeScChatContainerElement extends Components.GxIdeScChatContainer, HTMLStencilElement {
|
|
3608
3644
|
}
|
|
3609
3645
|
var HTMLGxIdeScChatContainerElement: {
|
|
@@ -3927,6 +3963,7 @@ declare global {
|
|
|
3927
3963
|
"gx-ide-plugin-explorer": HTMLGxIdePluginExplorerElement;
|
|
3928
3964
|
"gx-ide-progress-bar": HTMLGxIdeProgressBarElement;
|
|
3929
3965
|
"gx-ide-references": HTMLGxIdeReferencesElement;
|
|
3966
|
+
"gx-ide-restore-version": HTMLGxIdeRestoreVersionElement;
|
|
3930
3967
|
"gx-ide-sc-chat-container": HTMLGxIdeScChatContainerElement;
|
|
3931
3968
|
"gx-ide-select-kb-items": HTMLGxIdeSelectKbItemsElement;
|
|
3932
3969
|
"gx-ide-select-user-team": HTMLGxIdeSelectUserTeamElement;
|
|
@@ -5798,6 +5835,30 @@ declare namespace LocalJSX {
|
|
|
5798
5835
|
*/
|
|
5799
5836
|
"selectorSourceCallback"?: SelectorSourceCallback;
|
|
5800
5837
|
}
|
|
5838
|
+
interface GxIdeRestoreVersion {
|
|
5839
|
+
/**
|
|
5840
|
+
* Callback invoked by pressing the Cancel button.
|
|
5841
|
+
*/
|
|
5842
|
+
"cancelCallback": () => Promise<void>;
|
|
5843
|
+
/**
|
|
5844
|
+
* Callback invoked by pressing the Confirm button.
|
|
5845
|
+
*/
|
|
5846
|
+
"confirmCallback": (
|
|
5847
|
+
restoreVersionData: RestoreVersionData
|
|
5848
|
+
) => Promise<void>;
|
|
5849
|
+
/**
|
|
5850
|
+
* Callback invoked by pressing the ellipsis in the version selector.
|
|
5851
|
+
*/
|
|
5852
|
+
"selectSourceVersionCallback": () => Promise<KBVersion[]>;
|
|
5853
|
+
/**
|
|
5854
|
+
* The target version to which the restore will be made.
|
|
5855
|
+
*/
|
|
5856
|
+
"toVersionInfo": KBVersion;
|
|
5857
|
+
/**
|
|
5858
|
+
* List of versions to show in the versions combo box.
|
|
5859
|
+
*/
|
|
5860
|
+
"versions": KBVersion[];
|
|
5861
|
+
}
|
|
5801
5862
|
interface GxIdeScChatContainer {
|
|
5802
5863
|
/**
|
|
5803
5864
|
* If true, the chat items length will be 0, since this is a requirement for dipslaying the ch-chat "empty-chat" slot that welcome screen uses to display.
|
|
@@ -5859,6 +5920,10 @@ declare namespace LocalJSX {
|
|
|
5859
5920
|
* Used to define if the component must show the "Toggle Checkboxes" option or not
|
|
5860
5921
|
*/
|
|
5861
5922
|
"showToggleCheckboxes"?: boolean;
|
|
5923
|
+
/**
|
|
5924
|
+
* This define if the checks are unique or not
|
|
5925
|
+
*/
|
|
5926
|
+
"singleChecks"?: boolean;
|
|
5862
5927
|
}
|
|
5863
5928
|
interface GxIdeSelectUserTeam {
|
|
5864
5929
|
/**
|
|
@@ -5935,7 +6000,7 @@ declare namespace LocalJSX {
|
|
|
5935
6000
|
*/
|
|
5936
6001
|
"selectKBVersionsCallback"?: (
|
|
5937
6002
|
selectedKB: string
|
|
5938
|
-
) => Promise<
|
|
6003
|
+
) => Promise<KBVersion[]>;
|
|
5939
6004
|
/**
|
|
5940
6005
|
* Callback that must be invoked when the Share button is pressed.
|
|
5941
6006
|
*/
|
|
@@ -6726,6 +6791,7 @@ declare namespace LocalJSX {
|
|
|
6726
6791
|
"gx-ide-plugin-explorer": GxIdePluginExplorer;
|
|
6727
6792
|
"gx-ide-progress-bar": GxIdeProgressBar;
|
|
6728
6793
|
"gx-ide-references": GxIdeReferences;
|
|
6794
|
+
"gx-ide-restore-version": GxIdeRestoreVersion;
|
|
6729
6795
|
"gx-ide-sc-chat-container": GxIdeScChatContainer;
|
|
6730
6796
|
"gx-ide-select-kb-items": GxIdeSelectKbItems;
|
|
6731
6797
|
"gx-ide-select-user-team": GxIdeSelectUserTeam;
|
|
@@ -6818,6 +6884,7 @@ declare module "@stencil/core" {
|
|
|
6818
6884
|
"gx-ide-plugin-explorer": LocalJSX.GxIdePluginExplorer & JSXBase.HTMLAttributes<HTMLGxIdePluginExplorerElement>;
|
|
6819
6885
|
"gx-ide-progress-bar": LocalJSX.GxIdeProgressBar & JSXBase.HTMLAttributes<HTMLGxIdeProgressBarElement>;
|
|
6820
6886
|
"gx-ide-references": LocalJSX.GxIdeReferences & JSXBase.HTMLAttributes<HTMLGxIdeReferencesElement>;
|
|
6887
|
+
"gx-ide-restore-version": LocalJSX.GxIdeRestoreVersion & JSXBase.HTMLAttributes<HTMLGxIdeRestoreVersionElement>;
|
|
6821
6888
|
"gx-ide-sc-chat-container": LocalJSX.GxIdeScChatContainer & JSXBase.HTMLAttributes<HTMLGxIdeScChatContainerElement>;
|
|
6822
6889
|
"gx-ide-select-kb-items": LocalJSX.GxIdeSelectKbItems & JSXBase.HTMLAttributes<HTMLGxIdeSelectKbItemsElement>;
|
|
6823
6890
|
"gx-ide-select-user-team": LocalJSX.GxIdeSelectUserTeam & JSXBase.HTMLAttributes<HTMLGxIdeSelectUserTeamElement>;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ACTIVE_ITEM_DEFAULT_ICON","getIconPath","category","name","colorType","convertItemsNodeListToFlattenedTreeViewModel","itemsList","checkboxType","itemsListFlattenedTreeViewModel","processNode","item","startImgSrc","active","iconStart","leaf","_a","nodes","length","checkbox","metaData","JSON","stringify","versionType","type","push","caption","checked","endImgSrc","iconEnd","expanded","id","toString","items","metadata","parts","selected","order","forEach","childNode","convertItemsListToTreeViewModel","itemsListTreeViewModel","parseInt","findItemNode","itemNode","result","findItemInArray","itemsNodes","setAllLeafsCheckedFalse","uncheck","unselectAllNodes","unselect","checkItems","idsChecked","itemFind","expandItems","selectItems","idsSelected","searchInNode","node","parents","searchParentsItems","ids","rootItem","results","findFirstActiveNode","findActiveWithPath","nodeList","currentPath","nodePath","path","selectKbItemsCss","CSS_BUNDLES","SYSTEM_SEARCH_ICON","VIEW_AS_TREE_ID","VIEW_AS_LIST_ID","TOGGLE_CHECKBOXES_CHECKED_VALUE","GxIdeSelectKbItems","_GxIdeSelectKbItems__componentLocale","set","this","_GxIdeSelectKbItems_chShortcutsEl","_GxIdeSelectKbItems_selectedNodesIds","_GxIdeSelectKbItems_shortcutsSrc","getAssetPath","_GxIdeSelectKbItems_updatedModelList","_GxIdeSelectKbItems_viewItemsAsModel","_GxIdeSelectKbItems_treeViewRenderEl","_GxIdeSelectKbItems_cancelHandler","cancelCallback","_GxIdeSelectKbItems_checkedItemsChangeHandler","async","e","checkedNodesIds","detail","__classPrivateFieldSet","checkedChanged","_GxIdeSelectKbItems_confirmHandler","confirmCallback","_GxIdeSelectKbItems_contextMenuHandler","itemContextMenuCallback","info","isSelected","__classPrivateFieldGet","find","updateItemsProperties","clientX","contextmenuEvent","clientY","selection","_GxIdeSelectKbItems_executeDialogAction","callback","_GxIdeSelectKbItems_patternSearchValueChangedHandler","event","searchPatternValue","_GxIdeSelectKbItems_renderActionButtons","h","dialogActions","map","action","class","part","onClick","call","disabled","loading","_GxIdeSelectKbItems_renderFooter","footer","cancel","select","_GxIdeSelectKbItems_selectedItemsChangeHandler","selectedNodesIds","selectionChanged","_GxIdeSelectKbItems_toggleAndSelectNodesInModelItems","selectedItemsIds","nodesToToggle","newItemsSelected","newItemsExpanded","_GxIdeSelectKbItems_updateViews","_GxIdeSelectKbItems_toggleCheckedNodesInModelItems","newItemsList","nodeVersionsListTreeModel","nodeListFlattenedTreeModel","_GxIdeSelectKbItems_viewItemsAsChangedHandler","selectedViewType","nodesVersionsViewType","_GxIdeSelectKbItems_toggleCheckboxesChangedHandler","toggleCheckboxes","_GxIdeSelectKbItems_scrollIntoActiveVersionNode","doScrollIntoView","activeItemNode","scrollIntoVisible","activeItemCallback","watchNodeListHandler","componentWillLoad","Locale","getComponentStrings","el","showToggleCheckboxes","value","main","tree","renderFooter","suspendShortcuts","suspend","updateSelection","updateCheckedItems","checkedItemsIds","render","Host","widget","model","src","ref","htmlFor","onChange","checkedValue","onInput","showActiveItemLink","placeholder","header","searchPatternPlaceholder","accessibleName","containerRef","activeItem","loaderTitle","loader","title","description","show","expandableButton","onItemContextmenu","onCheckedItemsChange","onSelectedItemsChange","expandOnClick","multiSelection","filter","filterType"],"sources":["src/components/select-kb-items/helpers.tsx","src/components/select-kb-items/select-kb-items.scss?tag=gx-ide-select-kb-items&encapsulation=shadow","src/components/select-kb-items/select-kb-items.tsx"],"sourcesContent":["import { ItemNode, CheckboxType, ActiveNode } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath } from \"@genexus/mercury\";\n\nexport const ACTIVE_ITEM_DEFAULT_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"primary\"\n});\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: startImgSrc,\n endImgSrc: item.iconEnd,\n expanded: item.expanded,\n id: item.id.toString(),\n items: null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n selected: item.selected,\n order: item.order\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const expanded = item.expanded;\n const iconStart = startImgSrc;\n const iconEnd = item.iconEnd;\n const metaData = JSON.stringify({\n versionType: item.type\n });\n const order = parseInt(item.id);\n itemsListTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: iconStart,\n endImgSrc: iconEnd,\n expanded: expanded,\n id: item.id.toString(),\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n order: order,\n selected: item.selected\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n\n/**\n * Recursively searches for the first node with the active=true property\n * @param nodes Array of nodes to search through\n * @returns An object with caption, iconStart, and path to the first active node found, or null if none is found\n */\nexport const findFirstActiveNode = (nodes: ItemNode[]): ActiveNode | null => {\n // Helper function that keeps track of the path during recursion\n const findActiveWithPath = (\n nodeList: ItemNode[],\n currentPath: string[] = []\n ): ActiveNode | null => {\n // Base case: if nodes is undefined or empty\n if (!nodeList || nodeList.length === 0) {\n return null;\n }\n\n // Iterate through each node in the array\n for (const node of nodeList) {\n // Create a new path that includes the current node\n const nodePath = [...currentPath, node.id];\n\n // Check if the current node is active\n if (node.active === true) {\n return {\n caption: node.name,\n iconStart: node.iconStart,\n path: nodePath\n };\n }\n\n // If the node has children, search through them with the updated path\n if (node.nodes && node.nodes.length > 0) {\n const result = findActiveWithPath(node.nodes, nodePath);\n // If we find an active node in this subtree, return it immediately\n if (result !== null) {\n return result;\n }\n }\n }\n\n // No active node found in any of the nodes\n return null;\n };\n\n // Start the search with an empty path\n return findActiveWithPath(nodes);\n};\n",":host {\n --search-input-max-inline-size: 400px;\n display: grid;\n block-size: 100%;\n}\n:host(:not(.has-footer)) {\n grid-template-rows: max-content 1fr;\n}\n:host(.has-footer) {\n grid-template-rows: max-content 1fr max-content;\n}\n\n.header.has-active-item {\n grid-area: header;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n &__first-row,\n &__second-row {\n display: grid;\n grid-auto-flow: column;\n }\n &__first-row {\n column-gap: var(--field-group__column-gap);\n grid-auto-columns: max-content;\n }\n &__second-row {\n column-gap: 12px;\n grid-template-columns: minmax(150px, var(--search-input-max-inline-size)) max-content;\n\n &--one-row {\n grid-template-columns: minmax(150px, var(--search-input-max-inline-size));\n }\n }\n}\n\n.active-item {\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n}\n.active-item {\n &__icon-container {\n display: contents;\n }\n &__icon {\n pointer-events: none; // We do not want the icon to change the colors, since the clickable area is the caption only\n }\n &__link {\n text-decoration: underline;\n // TODO: There should be a class in Merucry to apply link styles\n color: var(--mer-text__primary);\n cursor: pointer;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n }\n}\n\n.dummy-control-block-size {\n // WA: Make as tall as a regular contorl (ie.: a input, a combo-box) in order to\n // make the label vertically aligned with this control.\n block-size: 32px;\n}\n\n.trees {\n position: relative;\n}\n","import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * Represents the selected nodes ids\n */\n @State() checkedNodesIds: string[] = [];\n\n /**\n * If true, the footer will be rendered\n */\n @State() renderFooter: boolean = false;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean;\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n /**\n * Used to define if the component must show the \"Toggle Checkboxes\" option or not\n */\n @Prop() readonly showToggleCheckboxes: boolean = true;\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n this.#updateViews(newItemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n\n this.loading = false;\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Used to define if the component must show the \"Active item\" link or not\n */\n @Prop() readonly showActiveItemLink?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.loading = true;\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.toggleCheckboxes = this.showToggleCheckboxes;\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n /**\n * Allow to update the checked items\n */\n @Method()\n async updateCheckedItems(checkedItemsIds: string[]) {\n // first clear checks\n this.#treeViewRenderEl.updateItemsProperties(this.checkedNodesIds, {\n checked: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(checkedItemsIds, {\n checked: true\n });\n this.checkedNodesIds = checkedItemsIds;\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading || this.checkedNodesIds?.length === 0}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class={{ \"widget\": true, \"has-footer\": this.renderFooter }}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header\n part=\"header\"\n class=\"header control-header field-group spacing-body-block-start spacing-body-inline\"\n >\n <div class=\"header__first-row\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group dummy-control-block-size\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && this.showToggleCheckboxes && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox dummy-control-block-size\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <div\n class={{\n \"header__second-row\": true,\n \"header__second-row--one-row\": !this.showActiveItemLink\n }}\n >\n <ch-edit\n class=\"input\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n accessibleName=\"search pattern\"\n ></ch-edit>\n {this.activeItemNode && this.showActiveItemLink && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart ||\n ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </div>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {this.renderFooter && this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type?: ItemType;\n order?: number;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"],"mappings":"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"}
|