@genexus/genexus-ide-ui 0.0.60 → 0.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/cjs/ch-checkbox.cjs.entry.js +93 -0
  2. package/dist/cjs/{ch-checkbox_3.cjs.entry.js → ch-tree-x_3.cjs.entry.js} +475 -87
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-container.cjs.entry.js +13 -5
  5. package/dist/cjs/gx-ide-file-selector.cjs.entry.js +47 -0
  6. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +11 -9
  7. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +343 -0
  8. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +236 -0
  9. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +8 -9
  10. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-references.cjs.entry.js +2 -2
  12. package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +148 -0
  13. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
  14. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +2 -2
  15. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  17. package/dist/cjs/{helpers-9523495a.js → helpers-b62ea39c.js} +12 -0
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/collection/collection-manifest.json +4 -1
  20. package/dist/collection/common/helpers.js +11 -0
  21. package/dist/collection/components/_template/template.js +1 -1
  22. package/dist/collection/components/container/container.css +24 -16
  23. package/dist/collection/components/container/container.js +66 -22
  24. package/dist/collection/components/file-selector/file-selector.css +366 -0
  25. package/dist/collection/components/file-selector/file-selector.js +185 -0
  26. package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +1 -0
  27. package/dist/collection/components/kb-manager-export/helpers.js +0 -1
  28. package/dist/collection/components/kb-manager-export/kb-manager-export.css +5 -2
  29. package/dist/collection/components/kb-manager-export/kb-manager-export.js +12 -9
  30. package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +31 -0
  31. package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.ja.json +3 -0
  32. package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json +3 -0
  33. package/dist/collection/components/kb-manager-import/helpers.js +128 -0
  34. package/dist/collection/components/kb-manager-import/kb-manager-import.css +233 -0
  35. package/dist/collection/components/kb-manager-import/kb-manager-import.js +415 -0
  36. package/dist/collection/components/list-selector/list-selector-item/list-selector-item.css +51 -14
  37. package/dist/collection/components/list-selector/list-selector-item/list-selector-item.js +160 -24
  38. package/dist/collection/components/list-selector/list-selector.css +6 -0
  39. package/dist/collection/components/list-selector/list-selector.js +234 -33
  40. package/dist/collection/components/new-kb/new-kb.css +13 -0
  41. package/dist/collection/components/new-kb/new-kb.js +7 -8
  42. package/dist/collection/components/references/references.js +2 -2
  43. package/dist/collection/components/status-buttons/gx-ide-status-buttons.css +93 -0
  44. package/dist/collection/components/status-buttons/gx-ide-status-buttons.js +325 -0
  45. package/dist/collection/components/team-dev-commit/team-dev-commit.js +1 -1
  46. package/dist/collection/components/team-dev-update/team-dev-update.js +1 -1
  47. package/dist/components/container.js +16 -6
  48. package/dist/components/form-text.js +1 -1
  49. package/dist/components/gx-ide-file-selector.d.ts +11 -0
  50. package/dist/components/gx-ide-file-selector.js +105 -0
  51. package/dist/components/gx-ide-kb-manager-export.js +13 -11
  52. package/dist/components/gx-ide-kb-manager-import.d.ts +11 -0
  53. package/dist/components/gx-ide-kb-manager-import.js +499 -0
  54. package/dist/components/gx-ide-list-selector-item.js +1 -102
  55. package/dist/components/gx-ide-list-selector.js +1 -73
  56. package/dist/components/gx-ide-new-kb.js +8 -9
  57. package/dist/components/gx-ide-references.js +2 -2
  58. package/dist/components/gx-ide-status-buttons.d.ts +11 -0
  59. package/dist/components/gx-ide-status-buttons.js +6 -0
  60. package/dist/components/gx-ide-status-buttons2.js +131 -0
  61. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  62. package/dist/components/gx-ide-team-dev-update.js +1 -1
  63. package/dist/components/gx-ide-template.js +1 -1
  64. package/dist/components/gxg-ide-loader.js +1 -111
  65. package/dist/components/helpers2.js +12 -1
  66. package/dist/{esm/gxg-ide-loader.entry.js → components/ide-loader.js} +46 -7
  67. package/dist/components/index.d.ts +3 -0
  68. package/dist/components/index.js +3 -0
  69. package/dist/components/list-selector-item.js +158 -0
  70. package/dist/components/list-selector.js +146 -0
  71. package/dist/esm/ch-checkbox.entry.js +89 -0
  72. package/dist/esm/{ch-checkbox_3.entry.js → ch-tree-x_3.entry.js} +476 -88
  73. package/dist/esm/genexus-ide-ui.js +1 -1
  74. package/dist/esm/gx-ide-container.entry.js +13 -5
  75. package/dist/esm/gx-ide-file-selector.entry.js +43 -0
  76. package/dist/esm/gx-ide-kb-manager-export.entry.js +11 -9
  77. package/dist/esm/gx-ide-kb-manager-import.entry.js +339 -0
  78. package/dist/esm/gx-ide-list-selector_2.entry.js +231 -0
  79. package/dist/esm/gx-ide-new-kb.entry.js +8 -9
  80. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  81. package/dist/esm/gx-ide-references.entry.js +2 -2
  82. package/dist/esm/gx-ide-status-buttons_2.entry.js +143 -0
  83. package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
  84. package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
  85. package/dist/esm/gx-ide-template.entry.js +1 -1
  86. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  87. package/dist/esm/{helpers-b99024f5.js → helpers-c29a9591.js} +12 -1
  88. package/dist/esm/loader.js +1 -1
  89. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  90. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +1 -0
  91. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +31 -0
  92. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.ja.json +3 -0
  93. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json +3 -0
  94. package/dist/genexus-ide-ui/p-163a93a4.entry.js +1 -0
  95. package/dist/genexus-ide-ui/p-1ff3cf87.entry.js +1 -0
  96. package/dist/genexus-ide-ui/p-2142874f.entry.js +1 -0
  97. package/dist/genexus-ide-ui/p-2b7d4cca.entry.js +1 -0
  98. package/dist/genexus-ide-ui/p-481312bc.entry.js +1 -0
  99. package/dist/genexus-ide-ui/p-8738b63b.entry.js +1 -0
  100. package/dist/genexus-ide-ui/p-9e530c7d.entry.js +1 -0
  101. package/dist/genexus-ide-ui/{p-c63d5b08.js → p-9ee8b615.js} +1 -1
  102. package/dist/genexus-ide-ui/{p-cef1a182.entry.js → p-a3171fdf.entry.js} +1 -1
  103. package/dist/genexus-ide-ui/p-ac3b8e90.entry.js +1 -0
  104. package/dist/genexus-ide-ui/{p-750c726a.entry.js → p-b2ea372b.entry.js} +1 -1
  105. package/dist/genexus-ide-ui/p-b685ffba.entry.js +1 -0
  106. package/dist/genexus-ide-ui/p-c7e11c6b.entry.js +1 -0
  107. package/dist/genexus-ide-ui/p-d04d634e.entry.js +1 -0
  108. package/dist/genexus-ide-ui/{p-462a8f83.entry.js → p-d8096d40.entry.js} +1 -1
  109. package/dist/genexus-ide-ui/p-f83093aa.entry.js +1 -0
  110. package/dist/types/common/helpers.d.ts +2 -0
  111. package/dist/types/common/types.d.ts +16 -0
  112. package/dist/types/components/container/container.d.ts +12 -4
  113. package/dist/types/components/file-selector/file-selector.d.ts +38 -0
  114. package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +3 -2
  115. package/dist/types/components/kb-manager-import/helpers.d.ts +10 -0
  116. package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +110 -0
  117. package/dist/types/components/list-selector/list-selector-item/list-selector-item.d.ts +38 -7
  118. package/dist/types/components/list-selector/list-selector.d.ts +47 -8
  119. package/dist/types/components/status-buttons/gx-ide-status-buttons.d.ts +63 -0
  120. package/dist/types/components.d.ts +410 -28
  121. package/package.json +3 -3
  122. package/dist/cjs/gx-ide-list-selector-item.cjs.entry.js +0 -89
  123. package/dist/cjs/gx-ide-list-selector.cjs.entry.js +0 -51
  124. package/dist/cjs/gxg-ide-loader.cjs.entry.js +0 -78
  125. package/dist/cjs/gxg-tree-view.cjs.entry.js +0 -481
  126. package/dist/esm/gx-ide-list-selector-item.entry.js +0 -85
  127. package/dist/esm/gx-ide-list-selector.entry.js +0 -47
  128. package/dist/esm/gxg-tree-view.entry.js +0 -477
  129. package/dist/genexus-ide-ui/p-00ee4c20.entry.js +0 -1
  130. package/dist/genexus-ide-ui/p-16d35368.entry.js +0 -1
  131. package/dist/genexus-ide-ui/p-3e16a46a.entry.js +0 -1
  132. package/dist/genexus-ide-ui/p-83f6db54.entry.js +0 -1
  133. package/dist/genexus-ide-ui/p-845f47ff.entry.js +0 -1
  134. package/dist/genexus-ide-ui/p-85164984.entry.js +0 -1
  135. package/dist/genexus-ide-ui/p-a4b359b1.entry.js +0 -1
  136. package/dist/genexus-ide-ui/p-a5833100.entry.js +0 -1
  137. package/dist/genexus-ide-ui/p-cddb793a.entry.js +0 -1
  138. package/dist/genexus-ide-ui/p-dd676f91.entry.js +0 -1
  139. package/dist/genexus-ide-ui/p-ffddd3ad.entry.js +0 -1
@@ -0,0 +1,499 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { L as Locale } from './locale.js';
3
+ import { c as config } from './config.js';
4
+ import { c as countTreeItems } from './helpers2.js';
5
+ import { d as defineCustomElement$m } from './checkbox.js';
6
+ import { d as defineCustomElement$l } from './icon.js';
7
+ import { d as defineCustomElement$k } from './tree-x.js';
8
+ import { d as defineCustomElement$j } from './tree-x-list-item.js';
9
+ import { d as defineCustomElement$i } from './ch-window2.js';
10
+ import { d as defineCustomElement$h } from './ch-window-close2.js';
11
+ import { d as defineCustomElement$g } from './container.js';
12
+ import { d as defineCustomElement$f } from './list-selector.js';
13
+ import { d as defineCustomElement$e } from './list-selector-item.js';
14
+ import { d as defineCustomElement$d } from './gx-ide-status-buttons2.js';
15
+ import { d as defineCustomElement$c } from './button.js';
16
+ import { d as defineCustomElement$b } from './button-group.js';
17
+ import { d as defineCustomElement$a } from './form-checkbox.js';
18
+ import { d as defineCustomElement$9 } from './form-text.js';
19
+ import { d as defineCustomElement$8 } from './icon2.js';
20
+ import { d as defineCustomElement$7 } from './ide-loader.js';
21
+ import { d as defineCustomElement$6 } from './gxg-label2.js';
22
+ import { d as defineCustomElement$5 } from './text.js';
23
+ import { d as defineCustomElement$4 } from './title.js';
24
+ import { d as defineCustomElement$3 } from './tooltip.js';
25
+ import { d as defineCustomElement$2 } from './tree-view.js';
26
+
27
+ const convertImportItemToTreeItem = (importCatIcon, importItems) => {
28
+ const importTreeItems = [];
29
+ importItems.forEach(importItem => {
30
+ importTreeItems.push({
31
+ id: importItem.id,
32
+ caption: importItem.name,
33
+ leftImgSrc: importCatIcon,
34
+ checkbox: true,
35
+ expanded: true,
36
+ leaf: true,
37
+ class: "object"
38
+ });
39
+ });
40
+ return importTreeItems;
41
+ };
42
+ /**
43
+ * @description This function converts ReferenceData[] data to TreeItemData[]
44
+ */
45
+ const convertImportCategoryToTreeView = (importCategoryData) => {
46
+ const treeData = [];
47
+ if (!importCategoryData) {
48
+ return treeData;
49
+ }
50
+ importCategoryData.forEach(importCat => {
51
+ const importCategoryTreeItem = {
52
+ id: importCat.id,
53
+ caption: `${importCat.name} (${importCat.items.length})`,
54
+ leftImgSrc: importCat.icon,
55
+ checkbox: true,
56
+ expanded: true,
57
+ leaf: false,
58
+ class: "category",
59
+ items: convertImportItemToTreeItem(importCat.icon, importCat.items)
60
+ };
61
+ treeData.push(importCategoryTreeItem);
62
+ });
63
+ return treeData;
64
+ };
65
+ const createImportResultDataMessages = (importItemId, messagesArray) => {
66
+ const messages = [];
67
+ messagesArray.forEach((message, i) => {
68
+ messages.push({
69
+ id: `${importItemId}-message-${i}}]`,
70
+ caption: message,
71
+ leftImgSrc: "gx-test/test-results",
72
+ leaf: true
73
+ });
74
+ });
75
+ return messages;
76
+ };
77
+ const updateImportStatusTree = (importItemResultFullData, importTreeActualState) => {
78
+ var _a;
79
+ const objectCategoryIndex = importTreeActualState.findIndex(objectCategoryItem => {
80
+ return objectCategoryItem.id === importItemResultFullData.categoryId;
81
+ });
82
+ if (objectCategoryIndex === -1) {
83
+ // object category node does not exists. We have to create it, and insert the import result tree node inside.
84
+ const importTreeItem = {
85
+ id: importItemResultFullData.categoryId,
86
+ // the count is (1), because this is the first item for this category
87
+ caption: `${importItemResultFullData.categoryName} (1)`,
88
+ leftImgSrc: importItemResultFullData.categoryIcon,
89
+ class: `tree-view-item tree-view-item--${importItemResultFullData.status}`,
90
+ expanded: true,
91
+ items: [
92
+ {
93
+ id: importItemResultFullData.id,
94
+ caption: importItemResultFullData.name,
95
+ items: createImportResultDataMessages(importItemResultFullData.id, importItemResultFullData.messages),
96
+ class: `tree-view-item tree-view-item--${importItemResultFullData.status}`,
97
+ expanded: true,
98
+ leaf: importItemResultFullData.messages.length === 0
99
+ }
100
+ ]
101
+ };
102
+ importTreeActualState.push(importTreeItem);
103
+ }
104
+ else {
105
+ // Object category node already exists. Just create the import result node, and insert into the parent category node (if it doesn't exists already).
106
+ // first search for the importItemResult node...
107
+ const importItemIndex = (_a = importTreeActualState[objectCategoryIndex].items) === null || _a === void 0 ? void 0 : _a.findIndex(importItem => {
108
+ return importItem.id === importItemResultFullData.id;
109
+ });
110
+ if (importItemIndex === -1) {
111
+ // ImportItem does not exists already
112
+ const importTreeItem = {
113
+ id: importItemResultFullData.id,
114
+ caption: importItemResultFullData.name,
115
+ expanded: true,
116
+ items: createImportResultDataMessages(importItemResultFullData.id, importItemResultFullData.messages),
117
+ class: `tree-view-item tree-view-item--${importItemResultFullData.status}`
118
+ };
119
+ // Insert the import node into the category node
120
+ importTreeActualState[objectCategoryIndex].items.push(importTreeItem);
121
+ // Then, update the category node caption (the name is the same, but the (count) should be the actual items.length, because we have just added a new child import node. )
122
+ importTreeActualState[objectCategoryIndex].caption = `${importItemResultFullData.categoryName} (${importTreeActualState[objectCategoryIndex].items.length})`;
123
+ }
124
+ }
125
+ return importTreeActualState;
126
+ };
127
+ /**
128
+ * This function takes an ImportItemResultData item, and updates it to a ImportCategoryFullData, which has the same information, plus the category parent needed information, that will be used for creating the "virtual" parent category node on the "Import Status" section.
129
+ */
130
+ const createImportResultFullData = (importItemResultData, importCategoryData) => {
131
+ const importCategoryFullData = Object.assign({ categoryId: undefined, categoryName: undefined, categoryIcon: undefined }, importItemResultData);
132
+ importCategoryDataFor: for (let i = 0; i < importCategoryData.length; i++) {
133
+ const categoryNode = importCategoryData[i];
134
+ for (let j = 0; j < categoryNode.items.length; j++) {
135
+ if (categoryNode.items[j].id === importItemResultData.id) {
136
+ importCategoryFullData.categoryId = categoryNode.id;
137
+ importCategoryFullData.categoryName = categoryNode.name;
138
+ importCategoryFullData.categoryIcon = categoryNode.icon;
139
+ break importCategoryDataFor;
140
+ }
141
+ }
142
+ }
143
+ return importCategoryFullData;
144
+ };
145
+ /**
146
+ * @description This function adds an ImportItemResultData item to the "importTreeState", and returns the updated tree with the new item added.
147
+ */
148
+ const addImportItemResultDataItem = (importItemResultData, importCategoryData, importTreeActualState) => {
149
+ let updatedImportStatusTree = [...importTreeActualState];
150
+ // first, update importItemResultData with the category data. It will be needed later.
151
+ const importItemResultFullData = createImportResultFullData(importItemResultData, importCategoryData);
152
+ updatedImportStatusTree = updateImportStatusTree(importItemResultFullData, updatedImportStatusTree);
153
+ return updatedImportStatusTree;
154
+ };
155
+
156
+ const kbManagerImportCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--gray-01)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}:host{display:block}.header{display:flex;flex-direction:row;gap:var(--gx-ide-grid-column-gap)}.header .select-file{flex:1}.main{min-height:250px;display:grid;grid-template-columns:1fr 1fr}.main .left-grid-item{border-right:1px solid var(--gx-ide-container-border-color)}.main .tree-container{height:100%;max-height:300px;display:flex;}.main .tree-container--empty{align-items:center;justify-content:center}.main .tree-container--import-status .tree-view-item--success::part(action){grid-template:\"first-img left-img text right-img\"/max-content max-content 1fr max-content}.main .tree-container--import-status .tree-view-item--success::part(action)::before{grid-area:first-img;content:\"\";width:var(--spacing-comp-02);height:var(--spacing-comp-02);border-radius:50%;background-color:var(--gray-03);background-color:var(--color-success-dark)}.main .tree-container--import-status .tree-view-item--warning::part(action){grid-template:\"first-img left-img text right-img\"/max-content max-content 1fr max-content}.main .tree-container--import-status .tree-view-item--warning::part(action)::before{grid-area:first-img;content:\"\";width:var(--spacing-comp-02);height:var(--spacing-comp-02);border-radius:50%;background-color:var(--gray-03);background-color:var(--color-warning-dark)}.main .tree-container--import-status .tree-view-item--error::part(action){grid-template:\"first-img left-img text right-img\"/max-content max-content 1fr max-content}.main .tree-container--import-status .tree-view-item--error::part(action)::before{grid-area:first-img;content:\"\";width:var(--spacing-comp-02);height:var(--spacing-comp-02);border-radius:50%;background-color:var(--gray-03);background-color:var(--color-error-dark)}.main .tree-container--no-warnings .tree-view-item--warning{display:none}.main .tree-container--no-errors .tree-view-item--error{display:none}.main .tree-container--no-successes .tree-view-item--success{display:none}.ghost-element{display:block;width:0;height:24px;}";
157
+
158
+ const GxIdeKbManagerImport$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
159
+ constructor() {
160
+ super();
161
+ this.__registerHost();
162
+ this.__attachShadow();
163
+ this.componentDidRenderFirstTime = createEvent(this, "componentDidRenderFirstTime", 7);
164
+ this.componentDidLoadEvent = createEvent(this, "componentDidLoadEvent", 7);
165
+ this.renderedFirstTime = false;
166
+ /* ImportCategoryBasicData Holds the original name of category data, and its id. Used to create parent nodes on the imported tree*/
167
+ this.importCategoryData = [];
168
+ this.objectsInFileTotalNodes = 0;
169
+ // 9.LOCAL METHODS //
170
+ this.evaluateObjects = () => {
171
+ var _a;
172
+ this.noObjects = !!(((_a = this.objectsTreeState) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.objectsTreeState);
173
+ };
174
+ this.evaluateImport = () => {
175
+ var _a;
176
+ this.noImport = !!(((_a = this.importTreeState) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.importTreeState);
177
+ };
178
+ this.selectFileHandler = () => {
179
+ this.fileInputEl.openFile();
180
+ };
181
+ this.loadFileHandler = async () => {
182
+ if (this.loadCallback && this.selectedFile) {
183
+ this.importCategoryData = await this.loadCallback(this.selectedFile);
184
+ const importCategoryTreeData = convertImportCategoryToTreeView(this.importCategoryData);
185
+ this.objectsTreeState = importCategoryTreeData;
186
+ if (this.importCategoryData.length > 0) {
187
+ // clear input
188
+ this.selectedFile = null;
189
+ }
190
+ }
191
+ };
192
+ this.fileSelectedHandler = (fileEvent) => {
193
+ this.selectedFile = fileEvent.detail[0];
194
+ };
195
+ this.evaluateHeaderActiveButton = () => {
196
+ if (!this.selectedFile) {
197
+ this.headerButtonsGroup.activeButtonId = "select-file-btn";
198
+ this.fileInputEl.value = undefined;
199
+ }
200
+ else {
201
+ this.headerButtonsGroup.activeButtonId = "load-file-btn";
202
+ }
203
+ };
204
+ this.importObjectsHandler = async () => {
205
+ if (this.importCallback) {
206
+ this.importingObjects = true;
207
+ this.objectsButtonsGroup.activeButtonId = "cancel-import-btn";
208
+ const result = await this.importCallback(this.checkedObjectsIds);
209
+ if (result || result === false) {
210
+ this.importingObjects = false;
211
+ this.objectsButtonsGroup.activeButtonId = "import-btn";
212
+ }
213
+ }
214
+ };
215
+ this.objectsTreeCheckedItemsChangedHandler = (event) => {
216
+ const allItemsWithCheckbox = [...event.detail.values()];
217
+ const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);
218
+ // objects checked
219
+ const checkedObjects = checkedItems.filter(node => node.item.class === "object");
220
+ const checkedObjectsIds = [];
221
+ if (checkedObjects.length > 0) {
222
+ checkedObjects.forEach(objectChecked => {
223
+ checkedObjectsIds.push(objectChecked.item.id);
224
+ });
225
+ }
226
+ this.checkedObjectsIds = checkedObjectsIds;
227
+ };
228
+ this.cancelImportHandler = () => {
229
+ if (this.cancelCallback) {
230
+ this.cancelCallback();
231
+ // returns boolean
232
+ }
233
+ };
234
+ this.optionsHandler = () => {
235
+ if (this.optionsCallback) {
236
+ this.optionsCallback();
237
+ // returns boolean
238
+ }
239
+ };
240
+ this.clearStatusHandler = () => {
241
+ this.importTreeState = [];
242
+ this.statusInfo.error.number = 0;
243
+ this.statusInfo.warning.number = 0;
244
+ this.statusInfo.success.number = 0;
245
+ };
246
+ this.selectAllClickedHandler = () => {
247
+ const checked = this.checkAllCheckboxEl.checked;
248
+ if (checked && this.objectsTreeEl) {
249
+ console.log("check");
250
+ this.objectsTreeEl.updateAllItemsProperties({ checked: true });
251
+ }
252
+ };
253
+ this.statusButtonsSelectionChangedHandler = (e) => {
254
+ const activeStates = e.detail;
255
+ const newStatusInfo = Object.assign({}, this.statusInfo);
256
+ newStatusInfo.warning.display = false;
257
+ newStatusInfo.error.display = false;
258
+ newStatusInfo.success.display = false;
259
+ activeStates.forEach(activeState => {
260
+ const status = activeState.itemId;
261
+ newStatusInfo[status].display = true;
262
+ this.statusInfo = newStatusInfo;
263
+ });
264
+ this.evaluateHiddenImportsMessage();
265
+ };
266
+ this.evaluateHiddenImportsMessage = () => {
267
+ /* to do*/
268
+ };
269
+ this.checkedObjectsIds = [];
270
+ this.noObjects = undefined;
271
+ this.showHiddenImportsMessage = false;
272
+ this.statusInfo = {
273
+ error: {
274
+ display: true,
275
+ number: 0
276
+ },
277
+ warning: {
278
+ display: true,
279
+ number: 0
280
+ },
281
+ success: {
282
+ display: true,
283
+ number: 0
284
+ }
285
+ };
286
+ this.objectsTreeState = [];
287
+ this.noImport = undefined;
288
+ this.importTreeState = [];
289
+ this.importingObjects = false;
290
+ this.selectedFile = undefined;
291
+ this.optionsCallback = undefined;
292
+ this.importCallback = undefined;
293
+ this.loadCallback = undefined;
294
+ this.cancelCallback = undefined;
295
+ this.statusMinimal = false;
296
+ }
297
+ watchObjectsTreeStateHandler(newState) {
298
+ this.noObjects = !!(newState.length === 0 || !newState);
299
+ this.objectsInFileTotalNodes = countTreeItems(newState);
300
+ }
301
+ watchImportTreeStateHandler(newState) {
302
+ this.noImport = !!(newState.length === 0 || !newState);
303
+ }
304
+ watchSelectedFileHandler() {
305
+ this.evaluateHeaderActiveButton();
306
+ }
307
+ // 6.COMPONENT LIFECYCLE EVENTS //
308
+ async componentWillLoad() {
309
+ this._componentLocale = await Locale.getComponentStrings(this.el);
310
+ this.componentDidLoadEvent.emit(true);
311
+ this.evaluateObjects();
312
+ this.evaluateImport();
313
+ }
314
+ componentDidRender() {
315
+ if (!this.renderedFirstTime) {
316
+ this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
317
+ this.renderedFirstTime = true;
318
+ }
319
+ }
320
+ // 7.LISTENERS //
321
+ // 8.PUBLIC METHODS API //
322
+ /**
323
+ * Add the result of importing an item
324
+ */
325
+ async addResultItem(item) {
326
+ this.importTreeState = addImportItemResultDataItem(item, this.importCategoryData, this.importTreeState);
327
+ this.statusInfo[`${item.status}`].number += item.messages.length;
328
+ }
329
+ // 10.RENDER() FUNCTION //
330
+ render() {
331
+ return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noFooterPadding: true }, h("header", { class: "header", slot: "header" }, h("gxg-form-text", { type: "file", class: "select-file", label: this._componentLocale.header.fileNameLabel, placeholder: this._componentLocale.header.fileNamePlaceholder, part: "file-name", acceptFile: ".xpz, .xml", clearButton: true, iconPosition: "start", onFileSelected: this.fileSelectedHandler, ref: (el) => (this.fileInputEl = el) }), h("gxg-button-group", {
332
+ // default-selected-btn-id="select-file-btn"
333
+ ref: (el) => (this.headerButtonsGroup = el)
334
+ }, h("button", { id: "select-file-btn", part: "select-file-button", onClick: this.selectFileHandler }, this._componentLocale.header.selectFileButton), h("button", { id: "load-file-btn", part: "load-file-button", disabled: !this.selectedFile, onClick: this.loadFileHandler }, this._componentLocale.header.loadButton))), h("main", { class: "main" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.objectsInFile.title, noContentPadding: true, noBorderFooter: true, class: "left-grid-item", slimmerFooter: true, inactiveTitle: this.noObjects, footerSubtleShadow: !this.noObjects }, h("div", { class: {
335
+ "tree-container": true,
336
+ "tree-container--objects-in-file": true,
337
+ "tree-container--empty": this.noObjects
338
+ } }, !this.noObjects ? (h("gxg-tree-view", { positionRelative: true, treeModel: this.objectsTreeState, toggleCheckboxes: true, onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, ref: el => (this.objectsTreeEl = el) })) : (h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message" }, "There are no Objects. ", h("br", null), h("gxg-text", { type: "text-link-no-line", onClick: this.selectFileHandler }, "Begin by selecting a file.")))), h("gxg-form-checkbox", { label: this.objectsTreeState.length > 0 &&
339
+ this.objectsInFileTotalNodes ===
340
+ this.checkedObjectsIds.length
341
+ ? this._componentLocale.main.objectsInFile.deselectAll
342
+ : this._componentLocale.main.objectsInFile.selectAll, part: "select-all-checkbox", slot: "footer-start", disabled: this.importingObjects || this.objectsTreeState.length === 0, ref: el => (this.checkAllCheckboxEl = el), onClick: this.selectAllClickedHandler }), h("gxg-button-group", { slot: "footer-end", ref: (el) => (this.objectsButtonsGroup = el) }, h("button", { id: "import-btn", part: "import-button", disabled: this.importingObjects ||
343
+ this.checkedObjectsIds.length === 0, onClick: this.importObjectsHandler }, this._componentLocale.main.objectsInFile.importButton), h("button", { id: "cancel-import-btn", part: "cancel-import-button", disabled: !this.importingObjects, onClick: this.cancelImportHandler }, this._componentLocale.main.objectsInFile.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", slot: "footer-end", part: "select-kb-btn", onClick: this.optionsHandler }, this._componentLocale.header.optionsButton)), h("gx-ide-container", { containerTitle: this._componentLocale.main.importStatus.title, noContentPadding: true, noBorderFooter: true, slimmerFooter: true, inactiveTitle: this.noImport, footerSubtleShadow: !this.noImport, class: "right-grid-item" }, h("div", { class: {
344
+ "tree-container": true,
345
+ "tree-container--import-status": true,
346
+ "tree-container--empty": this.noImport,
347
+ "tree-container--no-warnings": !this.statusInfo.warning.display,
348
+ "tree-container--no-errors": !this.statusInfo.error.display,
349
+ "tree-container--no-successes": this.statusInfo.success.display === false
350
+ } }, !this.noImport ? (h("gxg-tree-view", { positionRelative: true, treeModel: this.importTreeState, toggleCheckboxes: true, ref: el => (this.objectsTreeEl = el) })) : (h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message" }, "There are no Imported files."))), h("gxg-text", { type: "button-like", slot: "footer-end", part: "select-kb-btn", onClick: this.clearStatusHandler, disabled: this.noImport }, this._componentLocale.main.importStatus.clearButton), h("span", { class: "ghost-element", slot: "footer-start" }))), h("footer", { slot: "footer-start" }, h("gx-ide-status-buttons", { errors: this.statusInfo.error.number, warnings: this.statusInfo.warning.number, successes: this.statusInfo.success.number, compact: true, noBorderTop: true, noBorderBottom: true, noBorderStart: true, minimal: this.statusMinimal, onSelectionChanged: this.statusButtonsSelectionChangedHandler }))), h("gxg-ide-loader", { description: "Importing objects..." }))));
351
+ }
352
+ static get assetsDirs() { return ["gx-ide-assets/kb-manager-import"]; }
353
+ get el() { return this; }
354
+ static get watchers() { return {
355
+ "objectsTreeState": ["watchObjectsTreeStateHandler"],
356
+ "importTreeState": ["watchImportTreeStateHandler"],
357
+ "selectedFile": ["watchSelectedFileHandler"]
358
+ }; }
359
+ static get style() { return kbManagerImportCss; }
360
+ }, [1, "gx-ide-kb-manager-import", {
361
+ "selectedFile": [1040],
362
+ "optionsCallback": [16],
363
+ "importCallback": [16],
364
+ "loadCallback": [16],
365
+ "cancelCallback": [16],
366
+ "statusMinimal": [4, "status-minimal"],
367
+ "checkedObjectsIds": [32],
368
+ "noObjects": [32],
369
+ "showHiddenImportsMessage": [32],
370
+ "statusInfo": [32],
371
+ "objectsTreeState": [32],
372
+ "noImport": [32],
373
+ "importTreeState": [32],
374
+ "importingObjects": [32],
375
+ "addResultItem": [64]
376
+ }]);
377
+ function defineCustomElement$1() {
378
+ if (typeof customElements === "undefined") {
379
+ return;
380
+ }
381
+ const components = ["gx-ide-kb-manager-import", "ch-checkbox", "ch-icon", "ch-tree-x", "ch-tree-x-list-item", "ch-window", "ch-window-close", "gx-ide-container", "gx-ide-list-selector", "gx-ide-list-selector-item", "gx-ide-status-buttons", "gxg-button", "gxg-button-group", "gxg-form-checkbox", "gxg-form-text", "gxg-icon", "gxg-ide-loader", "gxg-label", "gxg-text", "gxg-title", "gxg-tooltip", "gxg-tree-view"];
382
+ components.forEach(tagName => { switch (tagName) {
383
+ case "gx-ide-kb-manager-import":
384
+ if (!customElements.get(tagName)) {
385
+ customElements.define(tagName, GxIdeKbManagerImport$1);
386
+ }
387
+ break;
388
+ case "ch-checkbox":
389
+ if (!customElements.get(tagName)) {
390
+ defineCustomElement$m();
391
+ }
392
+ break;
393
+ case "ch-icon":
394
+ if (!customElements.get(tagName)) {
395
+ defineCustomElement$l();
396
+ }
397
+ break;
398
+ case "ch-tree-x":
399
+ if (!customElements.get(tagName)) {
400
+ defineCustomElement$k();
401
+ }
402
+ break;
403
+ case "ch-tree-x-list-item":
404
+ if (!customElements.get(tagName)) {
405
+ defineCustomElement$j();
406
+ }
407
+ break;
408
+ case "ch-window":
409
+ if (!customElements.get(tagName)) {
410
+ defineCustomElement$i();
411
+ }
412
+ break;
413
+ case "ch-window-close":
414
+ if (!customElements.get(tagName)) {
415
+ defineCustomElement$h();
416
+ }
417
+ break;
418
+ case "gx-ide-container":
419
+ if (!customElements.get(tagName)) {
420
+ defineCustomElement$g();
421
+ }
422
+ break;
423
+ case "gx-ide-list-selector":
424
+ if (!customElements.get(tagName)) {
425
+ defineCustomElement$f();
426
+ }
427
+ break;
428
+ case "gx-ide-list-selector-item":
429
+ if (!customElements.get(tagName)) {
430
+ defineCustomElement$e();
431
+ }
432
+ break;
433
+ case "gx-ide-status-buttons":
434
+ if (!customElements.get(tagName)) {
435
+ defineCustomElement$d();
436
+ }
437
+ break;
438
+ case "gxg-button":
439
+ if (!customElements.get(tagName)) {
440
+ defineCustomElement$c();
441
+ }
442
+ break;
443
+ case "gxg-button-group":
444
+ if (!customElements.get(tagName)) {
445
+ defineCustomElement$b();
446
+ }
447
+ break;
448
+ case "gxg-form-checkbox":
449
+ if (!customElements.get(tagName)) {
450
+ defineCustomElement$a();
451
+ }
452
+ break;
453
+ case "gxg-form-text":
454
+ if (!customElements.get(tagName)) {
455
+ defineCustomElement$9();
456
+ }
457
+ break;
458
+ case "gxg-icon":
459
+ if (!customElements.get(tagName)) {
460
+ defineCustomElement$8();
461
+ }
462
+ break;
463
+ case "gxg-ide-loader":
464
+ if (!customElements.get(tagName)) {
465
+ defineCustomElement$7();
466
+ }
467
+ break;
468
+ case "gxg-label":
469
+ if (!customElements.get(tagName)) {
470
+ defineCustomElement$6();
471
+ }
472
+ break;
473
+ case "gxg-text":
474
+ if (!customElements.get(tagName)) {
475
+ defineCustomElement$5();
476
+ }
477
+ break;
478
+ case "gxg-title":
479
+ if (!customElements.get(tagName)) {
480
+ defineCustomElement$4();
481
+ }
482
+ break;
483
+ case "gxg-tooltip":
484
+ if (!customElements.get(tagName)) {
485
+ defineCustomElement$3();
486
+ }
487
+ break;
488
+ case "gxg-tree-view":
489
+ if (!customElements.get(tagName)) {
490
+ defineCustomElement$2();
491
+ }
492
+ break;
493
+ } });
494
+ }
495
+
496
+ const GxIdeKbManagerImport = GxIdeKbManagerImport$1;
497
+ const defineCustomElement = defineCustomElement$1;
498
+
499
+ export { GxIdeKbManagerImport, defineCustomElement };
@@ -1,105 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
-
3
- const listSelectorItemCss = "*,::after,::before{box-sizing:border-box}gx-ide-list-selector-item{display:block;max-width:100%;display:flex}gx-ide-list-selector-item:not(:last-child){border-block-end:1px solid var(--gx-ide-container-border-color)}gx-ide-list-selector-item[selectable]:not([selectable=false]):hover label{cursor:pointer;background-color:var(--gxg-background-color-item-hover)}gx-ide-list-selector-item[ellipsis]:not([ellipsis=false]) label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}input{width:0;height:0;opacity:0;margin:0}input:focus+label{outline:var(--border-width-md) solid var(--color-primary-active);outline-offset:-2px}input:checked+label{background-color:var(--gxg-background-color-item-selected)}label{flex-shrink:0;display:block;padding:var(--spacing-comp-01);width:100%}";
4
-
5
- const GxIdeListSelectorItem$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
- constructor() {
7
- super();
8
- this.__registerHost();
9
- this.itemSelected = createEvent(this, "itemSelected", 7);
10
- // 6.COMPONENT LIFECYCLE METHODS //
11
- // 7.LISTENERS //
12
- // 8.PUBLIC METHODS API //
13
- // 9.LOCAL METHODS //
14
- /**
15
- * Evaluates if is selectable, considering the parent list-selector 'selectable' property value, only if it is undefined on this item
16
- */
17
- this.evaluateSelectable = () => {
18
- if (this.selectable === undefined && this.parentIsListSelector) {
19
- this.selectable = this.parentList.selectable;
20
- }
21
- };
22
- /**
23
- * Evaluates if text should truncate with ellipsis, considering the parent list-selector 'ellipsis' property value, only if it is undefined on this item
24
- */
25
- this.evaluateEllipsis = () => {
26
- if (this.ellipsis === undefined && this.parentIsListSelector) {
27
- this.ellipsis = this.parentList.ellipsis;
28
- }
29
- };
30
- /**
31
- * Evaluates if this item should be initially checked, only if the parent list-selector listValue equals this item value.
32
- */
33
- this.evaluateChecked = () => {
34
- if (this.checked === undefined &&
35
- this.parentIsListSelector &&
36
- this.parentList.value !== undefined &&
37
- this.parentList.value === this.itemValue) {
38
- this.checked = true;
39
- }
40
- };
41
- /**
42
- * Checks if this item parentElement is a gx-ide-list-selector, and assigns a reference
43
- */
44
- this.evaluateParentIsListSelector = () => {
45
- const parentList = this.el.parentElement;
46
- this.parentIsListSelector = (parentList === null || parentList === void 0 ? void 0 : parentList.nodeName) === "GX-IDE-LIST-SELECTOR";
47
- this.parentIsListSelector && (this.parentList = parentList);
48
- };
49
- /**
50
- * Gets the listName required value, that is needed for the list selection to properly work
51
- */
52
- this.assignName = () => {
53
- this.parentIsListSelector &&
54
- this.parentList.listName &&
55
- (this.name = this.parentList.listName);
56
- };
57
- this.onChangeHandler = () => {
58
- if (this.selectable) {
59
- this.itemSelected.emit({
60
- itemId: this.itemId,
61
- itemValue: this.itemValue
62
- });
63
- }
64
- };
65
- this.itemId = undefined;
66
- this.itemValue = undefined;
67
- this.selectable = undefined;
68
- this.ellipsis = undefined;
69
- }
70
- // 5.EVENTS (EMIT) //
71
- componentWillLoad() {
72
- this.evaluateParentIsListSelector();
73
- this.evaluateSelectable();
74
- this.evaluateEllipsis();
75
- this.evaluateChecked();
76
- this.assignName();
77
- }
78
- // 10.RENDER() FUNCTION //
79
- render() {
80
- return (h(Host, { role: "listitem" }, h("input", { type: "radio", id: this.itemId, name: this.name, value: this.itemValue, checked: this.checked, onChange: this.onChangeHandler, disabled: !this.selectable }), h("label", { htmlFor: this.itemId }, this.itemValue)));
81
- }
82
- get el() { return this; }
83
- static get style() { return listSelectorItemCss; }
84
- }, [0, "gx-ide-list-selector-item", {
85
- "itemId": [1, "item-id"],
86
- "itemValue": [1, "item-value"],
87
- "selectable": [1540],
88
- "ellipsis": [1540]
89
- }]);
90
- function defineCustomElement$1() {
91
- if (typeof customElements === "undefined") {
92
- return;
93
- }
94
- const components = ["gx-ide-list-selector-item"];
95
- components.forEach(tagName => { switch (tagName) {
96
- case "gx-ide-list-selector-item":
97
- if (!customElements.get(tagName)) {
98
- customElements.define(tagName, GxIdeListSelectorItem$1);
99
- }
100
- break;
101
- } });
102
- }
1
+ import { G as GxIdeListSelectorItem$1, d as defineCustomElement$1 } from './list-selector-item.js';
103
2
 
104
3
  const GxIdeListSelectorItem = GxIdeListSelectorItem$1;
105
4
  const defineCustomElement = defineCustomElement$1;