@genexus/genexus-ide-ui 1.1.6 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
  3. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-new-version.cjs.entry.js +58 -14
  5. package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +16 -9
  7. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
  9. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +270 -0
  11. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -0
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/collection/collection-manifest.json +1 -0
  14. package/dist/collection/components/design-import/design-import.js +1 -1
  15. package/dist/collection/components/design-import/design-import.js.map +1 -1
  16. package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.en.json +3 -1
  17. package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.ja.json +3 -1
  18. package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.zh.json +3 -1
  19. package/dist/collection/components/new-version/new-version.css +4 -0
  20. package/dist/collection/components/new-version/new-version.js +124 -18
  21. package/dist/collection/components/new-version/new-version.js.map +1 -1
  22. package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.en.json +2 -1
  23. package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.ja.json +1 -0
  24. package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.zh.json +1 -0
  25. package/dist/collection/components/select-kb-items/select-kb-items.css +22 -27
  26. package/dist/collection/components/select-kb-items/select-kb-items.js +34 -8
  27. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  28. package/dist/collection/components/team-dev/commit/commit.js +2 -2
  29. package/dist/collection/components/team-dev/commit/commit.js.map +1 -1
  30. package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.en.json +42 -0
  31. package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.ja.json +42 -0
  32. package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.zh.json +42 -0
  33. package/dist/collection/components/team-dev/history/helpers.js +22 -0
  34. package/dist/collection/components/team-dev/history/helpers.js.map +1 -0
  35. package/dist/collection/components/team-dev/history/history.css +124 -0
  36. package/dist/collection/components/team-dev/history/history.js +448 -0
  37. package/dist/collection/components/team-dev/history/history.js.map +1 -0
  38. package/dist/collection/testing/locale.e2e.js +1 -0
  39. package/dist/collection/testing/locale.e2e.js.map +1 -1
  40. package/dist/components/gx-ide-design-import.js +1 -1
  41. package/dist/components/gx-ide-design-import.js.map +1 -1
  42. package/dist/components/gx-ide-new-version.js +65 -15
  43. package/dist/components/gx-ide-new-version.js.map +1 -1
  44. package/dist/components/gx-ide-select-kb-items.js +1 -507
  45. package/dist/components/gx-ide-select-kb-items.js.map +1 -1
  46. package/dist/components/gx-ide-team-dev-commit.js +2 -2
  47. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  48. package/dist/components/gx-ide-team-dev-history.d.ts +11 -0
  49. package/dist/components/gx-ide-team-dev-history.js +322 -0
  50. package/dist/components/gx-ide-team-dev-history.js.map +1 -0
  51. package/dist/components/select-kb-items.js +520 -0
  52. package/dist/components/select-kb-items.js.map +1 -0
  53. package/dist/esm/genexus-ide-ui.js +1 -1
  54. package/dist/esm/gx-ide-design-import.entry.js +1 -1
  55. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  56. package/dist/esm/gx-ide-new-version.entry.js +58 -14
  57. package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
  58. package/dist/esm/gx-ide-select-kb-items.entry.js +16 -9
  59. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  60. package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
  61. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  62. package/dist/esm/gx-ide-team-dev-history.entry.js +266 -0
  63. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -0
  64. package/dist/esm/loader.js +1 -1
  65. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  66. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  67. package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.en.json +3 -1
  68. package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.ja.json +3 -1
  69. package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.zh.json +3 -1
  70. package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.en.json +2 -1
  71. package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.ja.json +1 -0
  72. package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.zh.json +1 -0
  73. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.en.json +42 -0
  74. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.ja.json +42 -0
  75. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.zh.json +42 -0
  76. package/dist/genexus-ide-ui/{p-48062d23.entry.js → p-0acf517c.entry.js} +2 -2
  77. package/dist/genexus-ide-ui/{p-48062d23.entry.js.map → p-0acf517c.entry.js.map} +1 -1
  78. package/dist/genexus-ide-ui/{p-d2107cb2.entry.js → p-34fd4875.entry.js} +3 -18
  79. package/dist/genexus-ide-ui/p-34fd4875.entry.js.map +1 -0
  80. package/dist/genexus-ide-ui/p-74715731.entry.js +541 -0
  81. package/dist/genexus-ide-ui/p-74715731.entry.js.map +1 -0
  82. package/dist/genexus-ide-ui/p-80c1ddc3.entry.js +218 -0
  83. package/dist/genexus-ide-ui/p-80c1ddc3.entry.js.map +1 -0
  84. package/dist/genexus-ide-ui/{p-9fa1200f.entry.js → p-a8d0b62e.entry.js} +139 -125
  85. package/dist/genexus-ide-ui/p-a8d0b62e.entry.js.map +1 -0
  86. package/dist/types/components/new-version/new-version.d.ts +27 -1
  87. package/dist/types/components/select-kb-items/select-kb-items.d.ts +8 -0
  88. package/dist/types/components/team-dev/history/helpers.d.ts +7 -0
  89. package/dist/types/components/team-dev/history/history.d.ts +109 -0
  90. package/dist/types/components.d.ts +141 -18
  91. package/package.json +1 -1
  92. package/dist/genexus-ide-ui/p-9fa1200f.entry.js.map +0 -1
  93. package/dist/genexus-ide-ui/p-c91af626.entry.js +0 -149
  94. package/dist/genexus-ide-ui/p-c91af626.entry.js.map +0 -1
  95. package/dist/genexus-ide-ui/p-d2107cb2.entry.js.map +0 -1
@@ -1,3 +1,5 @@
1
+ import { FormSubmitResult } from "../../components";
2
+ import { ControlValidation } from "../../common/form-validation";
1
3
  export declare class GxIdeNewVersion {
2
4
  #private;
3
5
  el: HTMLGxIdeNewVersionElement;
@@ -13,6 +15,27 @@ export declare class GxIdeNewVersion {
13
15
  * Checkbox value to set the new version as active
14
16
  */
15
17
  setNewVersionAsActive: boolean;
18
+ /**
19
+ * Checkbox value to create new remote version linked to the local version
20
+ */
21
+ createLinkedLocalVersion: boolean;
22
+ /**
23
+ * Checkbox value to create new remote version as protected version
24
+ */
25
+ createAsProtectedVersion: boolean;
26
+ validatableControls: Map<string, ControlValidation>;
27
+ /**
28
+ * Indicates if the component is going to be used to create a new remote version
29
+ */
30
+ readonly isRemoteOperation: boolean;
31
+ /**
32
+ * Indicates if the component is going to be used to create a new remote frozen version
33
+ */
34
+ readonly isFreezeOperation: boolean;
35
+ /**
36
+ * Indicates if the component must show the checkbox to create a linked local version
37
+ */
38
+ readonly showLinkedLocalVersionCheckbox: boolean;
16
39
  /**
17
40
  * Callback that must be invoked when the 'Cancel' button is pressed.
18
41
  */
@@ -20,17 +43,20 @@ export declare class GxIdeNewVersion {
20
43
  /**
21
44
  * Callback that must be invoked when the 'Create' button is pressed.
22
45
  */
23
- readonly createCallback: (newVersionData: NewVersionData) => Promise<void>;
46
+ readonly createCallback: (newVersionData: NewVersionData) => Promise<FormSubmitResult>;
24
47
  /**
25
48
  * This property is used to set the initial values of the input fields when the component is loaded.
26
49
  */
27
50
  readonly defaultInputValues: NewVersionData;
28
51
  defaultInputValuesChanged(newDefaultInputValues: NewVersionData): void;
29
52
  componentWillLoad(): Promise<void>;
53
+ componentDidLoad(): void;
30
54
  render(): any;
31
55
  }
32
56
  export type NewVersionData = {
33
57
  versionName: string;
34
58
  versionDescription: string;
35
59
  setNewVersionAsActive?: boolean;
60
+ createLocalLinkedVersion?: boolean;
61
+ createProtectedVersion?: boolean;
36
62
  };
@@ -7,6 +7,10 @@ export declare class GxIdeSelectKbItems {
7
7
  * Represents the active version node caption and icon (if any)
8
8
  */
9
9
  activeItemNode: ActiveNode;
10
+ /**
11
+ * If true, the footer will be rendered
12
+ */
13
+ renderFooter: boolean;
10
14
  /**
11
15
  * Represents the nodes list model
12
16
  */
@@ -72,6 +76,10 @@ export declare class GxIdeSelectKbItems {
72
76
  * This define if the selection is unique or not
73
77
  */
74
78
  readonly multiSelection?: boolean;
79
+ /**
80
+ * Used to define if the component must show the "Active item" link or not
81
+ */
82
+ readonly showActiveItemLink?: boolean;
75
83
  /**
76
84
  * Callback emitted when the items selection change
77
85
  */
@@ -0,0 +1,7 @@
1
+ import { ComboBoxModel } from "@genexus/chameleon-controls-library";
2
+ import { ObjectType, GxOption } from "../../../common/types";
3
+ import { ComboBoxItemModel } from "@genexus/chameleon-controls-library/dist/types/components/combo-box/types";
4
+ import { ItemNode } from "../../select-kb-items/select-kb-items";
5
+ export declare const mapObjectTypeToComboBoxItemModel: (objectTypeModel: ObjectType[]) => ComboBoxItemModel[];
6
+ export declare const mapCategoryToComboBoxItemModel: (categoryModel: GxOption[]) => ComboBoxModel;
7
+ export declare const hasActiveVersionInList: (versionsList: ItemNode[]) => boolean;
@@ -0,0 +1,109 @@
1
+ import { ContextMenuInfo } from "../../../components";
2
+ import { ItemNode } from "../../select-kb-items/select-kb-items";
3
+ export declare class GxIdeTeamDevHistory {
4
+ #private;
5
+ el: HTMLGxIdeTeamDevHistoryElement;
6
+ historyDetail: RevisionDetailData;
7
+ /**
8
+ * The files rendered in the table
9
+ */
10
+ objects: RevisionData[];
11
+ /**
12
+ * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.
13
+ */
14
+ isFirstLoad: boolean;
15
+ /**
16
+ * Used to hide the select-kb-items when collapsed
17
+ */
18
+ sidebarExpanded: boolean;
19
+ /**
20
+ * Used to show or hide the filters section
21
+ */
22
+ filtersHidden: boolean;
23
+ /**
24
+ * To show a loader when the component is loading
25
+ */
26
+ loading: boolean;
27
+ /**
28
+ * The Id of the selected revision in the revisions grid
29
+ */
30
+ selectedRevisionId: string;
31
+ /**
32
+ * Used to customize the select-kb-items "header" part grid layout
33
+ */
34
+ hasActiveVersion: boolean;
35
+ /**
36
+ * Possible values of type filter
37
+ */
38
+ readonly types: ObjectType[];
39
+ /**
40
+ * Callback emitted when the user right click on an item
41
+ */
42
+ readonly itemContextMenuCallback: (info: ContextMenuInfo) => Promise<void>;
43
+ /**
44
+ * Callback invoked when user right-clicks on the grid
45
+ */
46
+ readonly gridContextMenuCallback: (info: ContextMenuInfo) => Promise<void>;
47
+ /**
48
+ * The Id of the selected version in the select-kb-items component
49
+ */
50
+ selectedVersionId: string;
51
+ selectedVersionIdChanged(newSelectedVersionId: string): Promise<void>;
52
+ /**
53
+ * List of versions to show in the versions tree
54
+ */
55
+ versions: ItemNode[];
56
+ versionsListChanged(newVersionsList: ItemNode[]): Promise<void>;
57
+ /**
58
+ * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.
59
+
60
+ */
61
+ readonly loadCallback: LoadCallback;
62
+ /**
63
+ * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id
64
+ */
65
+ readonly loadDetailCallback: LoadDetailCallback;
66
+ /**
67
+ * Callback invoked when the selected version changes. As parameter receive the selected version id
68
+ */
69
+ readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;
70
+ componentWillLoad(): Promise<void>;
71
+ componentDidLoad(): Promise<void>;
72
+ render(): any;
73
+ }
74
+ export type ObjectType = {
75
+ id: string;
76
+ name: string;
77
+ icon?: string;
78
+ };
79
+ export type FiltersData = {
80
+ search: string;
81
+ from?: Date;
82
+ to?: Date;
83
+ user?: string;
84
+ revision?: string;
85
+ type?: string;
86
+ };
87
+ export type RevisionData = {
88
+ id: string;
89
+ comment: string;
90
+ user: string;
91
+ commitDate: Date;
92
+ };
93
+ export type RevisionDetailData = {
94
+ title: string;
95
+ comment: string;
96
+ objects: ObjectData[];
97
+ };
98
+ export type ObjectData = {
99
+ typeIcon: string;
100
+ state: ObjectState;
101
+ name: string;
102
+ type: string;
103
+ description: string;
104
+ action: string;
105
+ };
106
+ export type ObjectState = "Inserted" | "Modified" | "Deleted";
107
+ export type LoadCallback = (filters: FiltersData, versionId: string) => Promise<RevisionData[]>;
108
+ export type LoadDetailCallback = (revision: string) => Promise<RevisionDetailData>;
109
+ export type SelectedVersionChangeCallback = (selectedVersion: string[]) => Promise<void>;
@@ -49,6 +49,7 @@ import { CancelCallback as CancelCallback11, CreateCallback, GetDataSourcesCallb
49
49
  import { CancelCallback as CancelCallback12, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
50
50
  import { CancelCallback as CancelCallback13, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback1, SuggestDescriptionCallback, SuggestNameCallback, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
51
51
  import { NewVersionData } from "./components/new-version/new-version";
52
+ import { ContextMenuInfo as ContextMenuInfo1, FormSubmitResult as FormSubmitResult1 } from "./components";
52
53
  import { CancelCallback as CancelCallback14, LoadCallback as LoadCallback2, NewObjectCallback, OpenSelectionCallback, SelectModuleCallback as SelectModuleCallback2 } from "./components/object-selector/object-selector";
53
54
  import { CancelCallback as CancelCallback15, ImportCallback as ImportCallback1, LoadCallback as LoadCallback3, SelectParentCallback } from "./components/open-api-import/open-api-import";
54
55
  import { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
@@ -60,16 +61,18 @@ import { MessageType as MessageType1 } from "./components/splash/splash";
60
61
  import { RecentKBData, SecondarySection } from "./components/start-page/start-page";
61
62
  import { CheckedItemsInfo as CheckedItemsInfo1 } from "./components/_helpers/list-selector/list-selector";
62
63
  import { CommitCallback, CommitSelectCallback, GetRecentComment, LoadCallback as LoadCallback4, ObjectsContextMenuCallback, PendingItemsCheckedCallback } from "./components/team-dev/commit/commit";
64
+ import { LoadCallback as LoadCallback5, LoadDetailCallback, ObjectType as ObjectType1, SelectedVersionChangeCallback } from "./components/team-dev/history/history";
65
+ import { ItemNode as ItemNode1 } from "./components/select-kb-items/select-kb-items";
63
66
  import { cancelCallback, confirmCallback } from "./components/team-dev/select-recent-comment/select-recent-comment";
64
- import { ConfirmCallback as ConfirmCallback7, GridContextMenuCallback, LoadCallback as LoadCallback5, ObjectsContextMenuCallback as ObjectsContextMenuCallback1, PendingItemsCheckedCallback as PendingItemsCheckedCallback1, UpdateCallback, UpdateFromData, UpdateSelectCallback } from "./components/team-dev/update/update";
67
+ import { ConfirmCallback as ConfirmCallback7, GridContextMenuCallback, LoadCallback as LoadCallback6, ObjectsContextMenuCallback as ObjectsContextMenuCallback1, PendingItemsCheckedCallback as PendingItemsCheckedCallback1, UpdateCallback, UpdateFromData, UpdateSelectCallback } from "./components/team-dev/update/update";
65
68
  import { AddCallback, CancelCallback as CancelCallback16, ConfirmCallback as ConfirmCallback8, ObjectData as ObjectData2 } from "./components/team-dev/update-partial-selection/update-partial-selection";
66
69
  import { cancelCallbackFn, confirmCallbackFn } from "./components/team-dev/update-to-revision/update-to-revision";
67
70
  import { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./components/_helpers/title/title";
68
71
  import { CloseCallback as CloseCallback1, SlideInfo, TransitionType } from "./components/welcome-page/welcome-page";
69
72
  import { WFConfigData } from "./components/wf-settings/wf-settings";
70
- import { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback6, ObjectActionCallback, OpenSelectionCallback as OpenSelectionCallback1, SelectionChangeCallback } from "./components/ww-attributes/ww-attributes";
71
- import { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback7, NewFileCallback, OpenSelectionCallback as OpenSelectionCallback2, SelectionChangeCallback as SelectionChangeCallback1, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-files/ww-files";
72
- import { ContextMenuCallback as ContextMenuCallback2, DeleteSelectionCallback as DeleteSelectionCallback2, LoadCallback as LoadCallback8, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback3, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback4 } from "./components/ww-images/ww-images";
73
+ import { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback7, ObjectActionCallback, OpenSelectionCallback as OpenSelectionCallback1, SelectionChangeCallback } from "./components/ww-attributes/ww-attributes";
74
+ import { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback8, NewFileCallback, OpenSelectionCallback as OpenSelectionCallback2, SelectionChangeCallback as SelectionChangeCallback1, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-files/ww-files";
75
+ import { ContextMenuCallback as ContextMenuCallback2, DeleteSelectionCallback as DeleteSelectionCallback2, LoadCallback as LoadCallback9, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback3, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback4 } from "./components/ww-images/ww-images";
73
76
  export { DetailsCallback, PrivacyPolicyCallback, TermsAndConditionsCallback } from "./components/_branding/about/about";
74
77
  export { AiStatus, Message, UserMessageCallback } from "./components/ai-assistant/ai-assistant";
75
78
  export { MessageType } from "./components/ai-assistant/ai-assistant";
@@ -114,6 +117,7 @@ export { CancelCallback as CancelCallback11, CreateCallback, GetDataSourcesCallb
114
117
  export { CancelCallback as CancelCallback12, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
115
118
  export { CancelCallback as CancelCallback13, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback1, SuggestDescriptionCallback, SuggestNameCallback, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
116
119
  export { NewVersionData } from "./components/new-version/new-version";
120
+ export { ContextMenuInfo as ContextMenuInfo1, FormSubmitResult as FormSubmitResult1 } from "./components";
117
121
  export { CancelCallback as CancelCallback14, LoadCallback as LoadCallback2, NewObjectCallback, OpenSelectionCallback, SelectModuleCallback as SelectModuleCallback2 } from "./components/object-selector/object-selector";
118
122
  export { CancelCallback as CancelCallback15, ImportCallback as ImportCallback1, LoadCallback as LoadCallback3, SelectParentCallback } from "./components/open-api-import/open-api-import";
119
123
  export { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
@@ -125,16 +129,18 @@ export { MessageType as MessageType1 } from "./components/splash/splash";
125
129
  export { RecentKBData, SecondarySection } from "./components/start-page/start-page";
126
130
  export { CheckedItemsInfo as CheckedItemsInfo1 } from "./components/_helpers/list-selector/list-selector";
127
131
  export { CommitCallback, CommitSelectCallback, GetRecentComment, LoadCallback as LoadCallback4, ObjectsContextMenuCallback, PendingItemsCheckedCallback } from "./components/team-dev/commit/commit";
132
+ export { LoadCallback as LoadCallback5, LoadDetailCallback, ObjectType as ObjectType1, SelectedVersionChangeCallback } from "./components/team-dev/history/history";
133
+ export { ItemNode as ItemNode1 } from "./components/select-kb-items/select-kb-items";
128
134
  export { cancelCallback, confirmCallback } from "./components/team-dev/select-recent-comment/select-recent-comment";
129
- export { ConfirmCallback as ConfirmCallback7, GridContextMenuCallback, LoadCallback as LoadCallback5, ObjectsContextMenuCallback as ObjectsContextMenuCallback1, PendingItemsCheckedCallback as PendingItemsCheckedCallback1, UpdateCallback, UpdateFromData, UpdateSelectCallback } from "./components/team-dev/update/update";
135
+ export { ConfirmCallback as ConfirmCallback7, GridContextMenuCallback, LoadCallback as LoadCallback6, ObjectsContextMenuCallback as ObjectsContextMenuCallback1, PendingItemsCheckedCallback as PendingItemsCheckedCallback1, UpdateCallback, UpdateFromData, UpdateSelectCallback } from "./components/team-dev/update/update";
130
136
  export { AddCallback, CancelCallback as CancelCallback16, ConfirmCallback as ConfirmCallback8, ObjectData as ObjectData2 } from "./components/team-dev/update-partial-selection/update-partial-selection";
131
137
  export { cancelCallbackFn, confirmCallbackFn } from "./components/team-dev/update-to-revision/update-to-revision";
132
138
  export { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./components/_helpers/title/title";
133
139
  export { CloseCallback as CloseCallback1, SlideInfo, TransitionType } from "./components/welcome-page/welcome-page";
134
140
  export { WFConfigData } from "./components/wf-settings/wf-settings";
135
- export { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback6, ObjectActionCallback, OpenSelectionCallback as OpenSelectionCallback1, SelectionChangeCallback } from "./components/ww-attributes/ww-attributes";
136
- export { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback7, NewFileCallback, OpenSelectionCallback as OpenSelectionCallback2, SelectionChangeCallback as SelectionChangeCallback1, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-files/ww-files";
137
- export { ContextMenuCallback as ContextMenuCallback2, DeleteSelectionCallback as DeleteSelectionCallback2, LoadCallback as LoadCallback8, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback3, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback4 } from "./components/ww-images/ww-images";
141
+ export { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback7, ObjectActionCallback, OpenSelectionCallback as OpenSelectionCallback1, SelectionChangeCallback } from "./components/ww-attributes/ww-attributes";
142
+ export { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback8, NewFileCallback, OpenSelectionCallback as OpenSelectionCallback2, SelectionChangeCallback as SelectionChangeCallback1, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-files/ww-files";
143
+ export { ContextMenuCallback as ContextMenuCallback2, DeleteSelectionCallback as DeleteSelectionCallback2, LoadCallback as LoadCallback9, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback3, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback4 } from "./components/ww-images/ww-images";
138
144
  export namespace Components {
139
145
  interface GxIdeAbout {
140
146
  /**
@@ -1651,11 +1657,23 @@ export namespace Components {
1651
1657
  */
1652
1658
  "createCallback": (
1653
1659
  newVersionData: NewVersionData
1654
- ) => Promise<void>;
1660
+ ) => Promise<FormSubmitResult1>;
1655
1661
  /**
1656
1662
  * This property is used to set the initial values of the input fields when the component is loaded.
1657
1663
  */
1658
1664
  "defaultInputValues": NewVersionData;
1665
+ /**
1666
+ * Indicates if the component is going to be used to create a new remote frozen version
1667
+ */
1668
+ "isFreezeOperation": boolean;
1669
+ /**
1670
+ * Indicates if the component is going to be used to create a new remote version
1671
+ */
1672
+ "isRemoteOperation": boolean;
1673
+ /**
1674
+ * Indicates if the component must show the checkbox to create a linked local version
1675
+ */
1676
+ "showLinkedLocalVersionCheckbox": boolean;
1659
1677
  }
1660
1678
  interface GxIdeObjectSelector {
1661
1679
  /**
@@ -1832,6 +1850,10 @@ export namespace Components {
1832
1850
  * Callback emitted when the items selection change
1833
1851
  */
1834
1852
  "selectionChanged"?: (selectedItem: string[]) => Promise<void>;
1853
+ /**
1854
+ * Used to define if the component must show the "Active item" link or not
1855
+ */
1856
+ "showActiveItemLink"?: boolean;
1835
1857
  /**
1836
1858
  * Suspends or reactivates the shortcuts
1837
1859
  */
@@ -2083,6 +2105,44 @@ export namespace Components {
2083
2105
  */
2084
2106
  "types": ObjectType[];
2085
2107
  }
2108
+ interface GxIdeTeamDevHistory {
2109
+ /**
2110
+ * Callback invoked when user right-clicks on the grid
2111
+ */
2112
+ "gridContextMenuCallback": (
2113
+ info: ContextMenuInfo1
2114
+ ) => Promise<void>;
2115
+ /**
2116
+ * Callback emitted when the user right click on an item
2117
+ */
2118
+ "itemContextMenuCallback": (
2119
+ info: ContextMenuInfo1
2120
+ ) => Promise<void>;
2121
+ /**
2122
+ * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.
2123
+ */
2124
+ "loadCallback": LoadCallback5;
2125
+ /**
2126
+ * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id
2127
+ */
2128
+ "loadDetailCallback": LoadDetailCallback;
2129
+ /**
2130
+ * Callback invoked when the selected version changes. As parameter receive the selected version id
2131
+ */
2132
+ "selectedVersionChangeCallback": SelectedVersionChangeCallback;
2133
+ /**
2134
+ * The Id of the selected version in the select-kb-items component
2135
+ */
2136
+ "selectedVersionId": string;
2137
+ /**
2138
+ * Possible values of type filter
2139
+ */
2140
+ "types": ObjectType1[];
2141
+ /**
2142
+ * List of versions to show in the versions tree
2143
+ */
2144
+ "versions": ItemNode1[];
2145
+ }
2086
2146
  interface GxIdeTeamDevSelectRecentComment {
2087
2147
  /**
2088
2148
  * Callback invoked when user cancel selection
@@ -2117,7 +2177,7 @@ export namespace Components {
2117
2177
  /**
2118
2178
  * This is a function provided by the developer that return the list of types of data loaded from file or url.
2119
2179
  */
2120
- "loadCallback": LoadCallback5;
2180
+ "loadCallback": LoadCallback6;
2121
2181
  /**
2122
2182
  * Callback that should be invoked when the user activates the context menu on any of the grids. It receives the internal IDs of the selected elements and in which grid the event occurred. It should prevent the default browser context menu from appearing
2123
2183
  */
@@ -2303,7 +2363,7 @@ export namespace Components {
2303
2363
  /**
2304
2364
  * Callback invoked when user filters the objects
2305
2365
  */
2306
- "loadCallback": LoadCallback6;
2366
+ "loadCallback": LoadCallback7;
2307
2367
  /**
2308
2368
  * Callback invoked when user executes filter action
2309
2369
  */
@@ -2361,7 +2421,7 @@ export namespace Components {
2361
2421
  /**
2362
2422
  * This is a function provided by the developer that return a list of files to populate the table of files.
2363
2423
  */
2364
- "loadCallback": LoadCallback7;
2424
+ "loadCallback": LoadCallback8;
2365
2425
  "newFileCallback": NewFileCallback;
2366
2426
  /**
2367
2427
  * This is a function provided by the developer to expand the data of files that is double-clicked or entered.
@@ -2464,7 +2524,7 @@ export namespace Components {
2464
2524
  /**
2465
2525
  * This is a function provided by the developer that return a list of images to populate the table of images.
2466
2526
  */
2467
- "loadCallback": LoadCallback8;
2527
+ "loadCallback": LoadCallback9;
2468
2528
  /**
2469
2529
  * This is a function provided by the developer that return a list of items of the image selected.
2470
2530
  */
@@ -3291,6 +3351,12 @@ declare global {
3291
3351
  prototype: HTMLGxIdeTeamDevCommitElement;
3292
3352
  new (): HTMLGxIdeTeamDevCommitElement;
3293
3353
  };
3354
+ interface HTMLGxIdeTeamDevHistoryElement extends Components.GxIdeTeamDevHistory, HTMLStencilElement {
3355
+ }
3356
+ var HTMLGxIdeTeamDevHistoryElement: {
3357
+ prototype: HTMLGxIdeTeamDevHistoryElement;
3358
+ new (): HTMLGxIdeTeamDevHistoryElement;
3359
+ };
3294
3360
  interface HTMLGxIdeTeamDevSelectRecentCommentElementEventMap {
3295
3361
  "componentDidLoadEvent": boolean;
3296
3362
  "componentDidRenderFirstTime": string;
@@ -3521,6 +3587,7 @@ declare global {
3521
3587
  "gx-ide-switch-panel": HTMLGxIdeSwitchPanelElement;
3522
3588
  "gx-ide-switcher": HTMLGxIdeSwitcherElement;
3523
3589
  "gx-ide-team-dev-commit": HTMLGxIdeTeamDevCommitElement;
3590
+ "gx-ide-team-dev-history": HTMLGxIdeTeamDevHistoryElement;
3524
3591
  "gx-ide-team-dev-select-recent-comment": HTMLGxIdeTeamDevSelectRecentCommentElement;
3525
3592
  "gx-ide-team-dev-update": HTMLGxIdeTeamDevUpdateElement;
3526
3593
  "gx-ide-team-dev-update-partial-selection": HTMLGxIdeTeamDevUpdatePartialSelectionElement;
@@ -5108,11 +5175,23 @@ declare namespace LocalJSX {
5108
5175
  */
5109
5176
  "createCallback"?: (
5110
5177
  newVersionData: NewVersionData
5111
- ) => Promise<void>;
5178
+ ) => Promise<FormSubmitResult1>;
5112
5179
  /**
5113
5180
  * This property is used to set the initial values of the input fields when the component is loaded.
5114
5181
  */
5115
5182
  "defaultInputValues"?: NewVersionData;
5183
+ /**
5184
+ * Indicates if the component is going to be used to create a new remote frozen version
5185
+ */
5186
+ "isFreezeOperation"?: boolean;
5187
+ /**
5188
+ * Indicates if the component is going to be used to create a new remote version
5189
+ */
5190
+ "isRemoteOperation"?: boolean;
5191
+ /**
5192
+ * Indicates if the component must show the checkbox to create a linked local version
5193
+ */
5194
+ "showLinkedLocalVersionCheckbox"?: boolean;
5116
5195
  }
5117
5196
  interface GxIdeObjectSelector {
5118
5197
  /**
@@ -5277,6 +5356,10 @@ declare namespace LocalJSX {
5277
5356
  * Callback emitted when the items selection change
5278
5357
  */
5279
5358
  "selectionChanged"?: (selectedItem: string[]) => Promise<void>;
5359
+ /**
5360
+ * Used to define if the component must show the "Active item" link or not
5361
+ */
5362
+ "showActiveItemLink"?: boolean;
5280
5363
  }
5281
5364
  interface GxIdeSelectUserTeam {
5282
5365
  /**
@@ -5532,6 +5615,44 @@ declare namespace LocalJSX {
5532
5615
  */
5533
5616
  "types"?: ObjectType[];
5534
5617
  }
5618
+ interface GxIdeTeamDevHistory {
5619
+ /**
5620
+ * Callback invoked when user right-clicks on the grid
5621
+ */
5622
+ "gridContextMenuCallback"?: (
5623
+ info: ContextMenuInfo1
5624
+ ) => Promise<void>;
5625
+ /**
5626
+ * Callback emitted when the user right click on an item
5627
+ */
5628
+ "itemContextMenuCallback"?: (
5629
+ info: ContextMenuInfo1
5630
+ ) => Promise<void>;
5631
+ /**
5632
+ * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.
5633
+ */
5634
+ "loadCallback"?: LoadCallback5;
5635
+ /**
5636
+ * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id
5637
+ */
5638
+ "loadDetailCallback"?: LoadDetailCallback;
5639
+ /**
5640
+ * Callback invoked when the selected version changes. As parameter receive the selected version id
5641
+ */
5642
+ "selectedVersionChangeCallback"?: SelectedVersionChangeCallback;
5643
+ /**
5644
+ * The Id of the selected version in the select-kb-items component
5645
+ */
5646
+ "selectedVersionId"?: string;
5647
+ /**
5648
+ * Possible values of type filter
5649
+ */
5650
+ "types"?: ObjectType1[];
5651
+ /**
5652
+ * List of versions to show in the versions tree
5653
+ */
5654
+ "versions"?: ItemNode1[];
5655
+ }
5535
5656
  interface GxIdeTeamDevSelectRecentComment {
5536
5657
  /**
5537
5658
  * Callback invoked when user cancel selection
@@ -5574,7 +5695,7 @@ declare namespace LocalJSX {
5574
5695
  /**
5575
5696
  * This is a function provided by the developer that return the list of types of data loaded from file or url.
5576
5697
  */
5577
- "loadCallback": LoadCallback5;
5698
+ "loadCallback": LoadCallback6;
5578
5699
  /**
5579
5700
  * Callback that should be invoked when the user activates the context menu on any of the grids. It receives the internal IDs of the selected elements and in which grid the event occurred. It should prevent the default browser context menu from appearing
5580
5701
  */
@@ -5780,7 +5901,7 @@ declare namespace LocalJSX {
5780
5901
  /**
5781
5902
  * Callback invoked when user filters the objects
5782
5903
  */
5783
- "loadCallback": LoadCallback6;
5904
+ "loadCallback": LoadCallback7;
5784
5905
  /**
5785
5906
  * Callback invoked when user executes filter action
5786
5907
  */
@@ -5830,7 +5951,7 @@ declare namespace LocalJSX {
5830
5951
  /**
5831
5952
  * This is a function provided by the developer that return a list of files to populate the table of files.
5832
5953
  */
5833
- "loadCallback": LoadCallback7;
5954
+ "loadCallback": LoadCallback8;
5834
5955
  "newFileCallback": NewFileCallback;
5835
5956
  /**
5836
5957
  * This event is emitted once just after the component is fully loaded and the first render() occurs.
@@ -5929,7 +6050,7 @@ declare namespace LocalJSX {
5929
6050
  /**
5930
6051
  * This is a function provided by the developer that return a list of images to populate the table of images.
5931
6052
  */
5932
- "loadCallback": LoadCallback8;
6053
+ "loadCallback": LoadCallback9;
5933
6054
  /**
5934
6055
  * This is a function provided by the developer that return a list of items of the image selected.
5935
6056
  */
@@ -6034,6 +6155,7 @@ declare namespace LocalJSX {
6034
6155
  "gx-ide-switch-panel": GxIdeSwitchPanel;
6035
6156
  "gx-ide-switcher": GxIdeSwitcher;
6036
6157
  "gx-ide-team-dev-commit": GxIdeTeamDevCommit;
6158
+ "gx-ide-team-dev-history": GxIdeTeamDevHistory;
6037
6159
  "gx-ide-team-dev-select-recent-comment": GxIdeTeamDevSelectRecentComment;
6038
6160
  "gx-ide-team-dev-update": GxIdeTeamDevUpdate;
6039
6161
  "gx-ide-team-dev-update-partial-selection": GxIdeTeamDevUpdatePartialSelection;
@@ -6111,6 +6233,7 @@ declare module "@stencil/core" {
6111
6233
  "gx-ide-switch-panel": LocalJSX.GxIdeSwitchPanel & JSXBase.HTMLAttributes<HTMLGxIdeSwitchPanelElement>;
6112
6234
  "gx-ide-switcher": LocalJSX.GxIdeSwitcher & JSXBase.HTMLAttributes<HTMLGxIdeSwitcherElement>;
6113
6235
  "gx-ide-team-dev-commit": LocalJSX.GxIdeTeamDevCommit & JSXBase.HTMLAttributes<HTMLGxIdeTeamDevCommitElement>;
6236
+ "gx-ide-team-dev-history": LocalJSX.GxIdeTeamDevHistory & JSXBase.HTMLAttributes<HTMLGxIdeTeamDevHistoryElement>;
6114
6237
  "gx-ide-team-dev-select-recent-comment": LocalJSX.GxIdeTeamDevSelectRecentComment & JSXBase.HTMLAttributes<HTMLGxIdeTeamDevSelectRecentCommentElement>;
6115
6238
  "gx-ide-team-dev-update": LocalJSX.GxIdeTeamDevUpdate & JSXBase.HTMLAttributes<HTMLGxIdeTeamDevUpdateElement>;
6116
6239
  "gx-ide-team-dev-update-partial-selection": LocalJSX.GxIdeTeamDevUpdatePartialSelection & JSXBase.HTMLAttributes<HTMLGxIdeTeamDevUpdatePartialSelectionElement>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genexus/genexus-ide-ui",
3
3
  "license": "Apache-2.0",
4
- "version": "1.1.6",
4
+ "version": "1.1.7",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",
@@ -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","forEach","childNode","convertItemsListToTreeViewModel","itemsListTreeViewModel","order","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_checkedNodesIds","_GxIdeSelectKbItems_chShortcutsEl","_GxIdeSelectKbItems_selectedNodesIds","_GxIdeSelectKbItems_shortcutsSrc","getAssetPath","_GxIdeSelectKbItems_updatedModelList","_GxIdeSelectKbItems_viewItemsAsModel","_GxIdeSelectKbItems_treeViewRenderEl","_GxIdeSelectKbItems_cancelHandler","cancelCallback","_GxIdeSelectKbItems_checkedItemsChangeHandler","async","e","checkedNodesIds","detail","__classPrivateFieldSet","__classPrivateFieldGet","checkedChanged","_GxIdeSelectKbItems_confirmHandler","confirmCallback","_GxIdeSelectKbItems_contextMenuHandler","itemContextMenuCallback","info","isSelected","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","value","main","tree","suspendShortcuts","suspend","updateSelection","render","Host","model","src","ref","htmlFor","onChange","checkedValue","onInput","placeholder","header","searchPatternPlaceholder","containerRef","activeItem","loaderTitle","loader","title","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 });\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 display: grid;\n block-size: 100%;\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 grid-template-areas:\n \"view-mode view-mode\"\n \"pattern-filter active-item\";\n grid-template-columns: minmax(150px, 350px) max-content;\n --field-group__column-gap: var(\n --mer-spacing--md\n ); // WA: OVerriding this variable is not a good approeach to reduce the gap.TODO: Think about the right solution.\n}\n.view-mode__toggle-checkboxes {\n grid-area: view-mode;\n}\n.pattern-filter {\n grid-area: pattern-filter;\n max-inline-size: 350px;\n}\n\n.active-item {\n grid-area: 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.view-mode__toggle-checkboxes {\n grid-template-columns: max-content max-content;\n}\n.field__items-view-type {\n align-items: center;\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\n}\n.field__toggle-checkboxes {\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\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 #checkedNodesIds: string[] = [];\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 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 = true;\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 @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n if (newItemsList.length > 0) {\n this.loading = false;\n }\n this.#updateViews(newItemsList);\n\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: 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.#_componentLocale = await Locale.getComponentStrings(this.el);\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.watchNodeListHandler(this.itemsList);\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 #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}\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\">\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 class=\"header control-header field-group spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group view-mode__toggle-checkboxes\">\n <div class=\"field field-inline field__items-view-type\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\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\" && (\n <div class=\"field field-inline field__toggle-checkboxes\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox\"\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 <ch-edit\n class=\"input pattern-filter\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n ></ch-edit>\n {this.activeItemNode && (\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 || 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 </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\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.dialogActions.length > 0 ||\n this.cancelCallback ||\n this.confirmCallback) &&\n 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};\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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"}