@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
@@ -162,6 +162,5 @@ export const clearKbPropertiesFromTree = (actualTreeState) => {
162
162
  updatedTreeData.splice(i, 1);
163
163
  }
164
164
  }
165
- console.log("updatedTreeData", updatedTreeData);
166
165
  return updatedTreeData;
167
166
  };
@@ -176,11 +176,14 @@ gxg-tabs {
176
176
  gap: var(--gx-ide-grid-column-gap);
177
177
  border-bottom: 1px solid var(--gx-ide-container-border-color);
178
178
  }
179
+ .checkboxes-wrapper .add-checkbox {
180
+ display: flex;
181
+ }
179
182
 
180
183
  .tree-container {
181
184
  display: flex;
182
- min-height: 100px;
183
- max-height: 200px;
185
+ min-height: 150px;
186
+ max-height: 350px;
184
187
  padding-left: var(--gx-ide-grid-column-gap);
185
188
  width: 100%;
186
189
  box-sizing: border-box;
@@ -11,6 +11,10 @@ export class GxIdeKbManagerExport {
11
11
  // 7.LISTENERS //
12
12
  // 8.PUBLIC METHODS API //
13
13
  // 9.LOCAL METHODS //
14
+ this.evaluateObjects = () => {
15
+ var _a;
16
+ this.noObjects = !!(((_a = this.objectsTreeState) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.objectsTreeState);
17
+ };
14
18
  this.optionsCallbackHandler = () => {
15
19
  if (this.optionsCallback) {
16
20
  this.optionsCallback();
@@ -61,7 +65,7 @@ export class GxIdeKbManagerExport {
61
65
  /*
62
66
  * Update checked objects 'checkedObjectsArray' array. Used for the 'addReferencesCallback'
63
67
  */
64
- this.treeObjectsCheckedItemsChangedHandler = (event) => {
68
+ this.objectsTreeCheckedItemsChangedHandler = (event) => {
65
69
  const allItemsWithCheckbox = [...event.detail.values()];
66
70
  const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);
67
71
  // objects checked
@@ -102,13 +106,13 @@ export class GxIdeKbManagerExport {
102
106
  }
103
107
  };
104
108
  this.clearButtonHandler = () => {
105
- console.log(this.objectsTreeEl);
109
+ /* revisar*/
106
110
  this.objectsTreeEl.updateAllItemsProperties({ checked: false });
107
111
  };
108
112
  this.fileName = "";
109
113
  this.exportFilePathName = undefined;
110
- this.objectsTreeState = [];
111
114
  this.noObjects = undefined;
115
+ this.objectsTreeState = [];
112
116
  this.dummyInitialTree = undefined;
113
117
  this.kbPropertiesTypes = undefined;
114
118
  this.objectTypes = undefined;
@@ -128,20 +132,19 @@ export class GxIdeKbManagerExport {
128
132
  }
129
133
  // 6.COMPONENT LIFECYCLE EVENTS //
130
134
  async componentWillLoad() {
131
- var _a;
132
135
  this._componentLocale = await Locale.getComponentStrings(this.el);
133
136
  this.componentDidLoadEvent.emit(true);
134
- this.noObjects = !!(((_a = this.objectsTreeState) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.objectsTreeState);
137
+ this.evaluateObjects();
135
138
  }
136
139
  // 10.RENDER() FUNCTION //
137
140
  render() {
138
- return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true }, h("header", { slot: "header", class: "header" }, h("gx-ide-directory-selector", { class: { "select-file-input": true }, value: this.exportFilePathName, part: "xpz-file", label: this._componentLocale.header.exportFileName, ref: el => (this.fileNameEl = el), selectDirectoryCallback: this.exportFileDirectoryCallback }), h("gxg-button-group", { class: "export-cancel-buttons-group", "default-selected-btn-id": "responsive-tablet-btn", onClick: this.cancelCallbackHandler }, h("button", { id: "export-kb-btn", part: "export-btn", onClick: this.exportCallbackHandler }, this._componentLocale.header.exportButton), h("button", { id: "cancel-kb-export-btn", part: "cancel-button" }, this._componentLocale.header.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", part: "select-kb-btn", class: { "options-btn": true }, onClick: this.optionsCallbackHandler }, this._componentLocale.header.optionsButton)), h("main", { class: { main: true } }, h("div", { class: { "checkboxes-wrapper": true } }, h("gxg-form-checkbox", { label: this._componentLocale.main.addKnowledgeBaseDescription, onChange: this.addKBPropertiesCallbackHandler, part: "add-kb-checkbox" }), h("gxg-form-checkbox", { label: this._componentLocale.main.exportAll, part: "export-all-checkbox", ref: el => (this.exportAllCheckboxEl =
141
+ return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true }, h("header", { slot: "header", class: "header" }, h("gx-ide-directory-selector", { class: { "select-file-input": true }, value: this.exportFilePathName, part: "xpz-file", label: this._componentLocale.header.exportFileName, ref: el => (this.fileNameEl = el), selectDirectoryCallback: this.exportFileDirectoryCallback }), h("gxg-button-group", { class: "export-cancel-buttons-group", "default-selected-btn-id": "responsive-tablet-btn" }, h("button", { id: "export-kb-btn", part: "export-btn", onClick: this.exportCallbackHandler }, this._componentLocale.header.exportButton), h("button", { id: "cancel-kb-export-btn", part: "cancel-button", onClick: this.cancelCallbackHandler }, this._componentLocale.header.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", part: "select-kb-btn", class: { "options-btn": true }, onClick: this.optionsCallbackHandler }, this._componentLocale.header.optionsButton)), h("main", { class: { main: true } }, h("div", { class: { "checkboxes-wrapper": true } }, h("gxg-form-checkbox", { label: this._componentLocale.main.addKnowledgeBaseDescription, onChange: this.addKBPropertiesCallbackHandler, part: "add-kb-checkbox" }), h("gxg-form-checkbox", { label: this._componentLocale.main.exportAll, part: "export-all-checkbox", ref: el => (this.exportAllCheckboxEl =
139
142
  el) })), h("div", { class: {
140
143
  "tree-container": true,
141
144
  "tree-container--empty": this.noObjects
142
145
  } }, !this.noObjects ? (
143
146
  /* objects tree */
144
- h("gxg-tree-view", { positionRelative: true, treeModel: this.objectsTreeState, toggleCheckboxes: true, onCheckedItemsChange: this.treeObjectsCheckedItemsChangedHandler, 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: "referenced-by-text" }, "There are no Objects to display. ", h("br", null), "Begin by adding some.")))), h("gxg-button", { type: "secondary-text-only", part: "export-button", class: { "cancel-btn": true }, slot: "footer-start", onClick: this.clearButtonHandler }, this._componentLocale.footer.clearButton), h("div", { class: { "footer-right-wrapper": true }, slot: "footer-end" }, h("gxg-button", { onClick: this.addReferencesCallbackHandler, type: "outlined-text-icon", icon: "general/references", part: "export-button", class: { "cancel-btn": true } }, this._componentLocale.footer.referencesButton), h("gxg-button", { type: "primary-text-icon", icon: "menus/new-object", part: "export-button", class: { "cancel-btn": true }, onClick: this.addObjectsCallbackHandler, grabAttention: this.noObjects }, this._componentLocale.footer.addButton))))));
147
+ 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: "referenced-by-empty-status-message" }, "There are no Objects to display. ", h("br", null), h("gxg-text", { type: "text-link-no-line", textAlign: "center", onClick: this.addObjectsCallbackHandler }, "Begin by adding some."))))), h("gxg-button", { type: "secondary-text-only", part: "export-button", class: { "cancel-btn": true }, slot: "footer-start", onClick: this.clearButtonHandler }, this._componentLocale.footer.clearButton), h("div", { class: { "footer-right-wrapper": true }, slot: "footer-end" }, h("gxg-button", { onClick: this.addReferencesCallbackHandler, type: "outlined-text-icon", icon: "general/references", part: "export-button", class: { "cancel-btn": true } }, this._componentLocale.footer.referencesButton), h("gxg-button", { type: "primary-text-icon", icon: "menus/new-object", part: "export-button", class: { "cancel-btn": true }, onClick: this.addObjectsCallbackHandler, grabAttention: this.noObjects }, this._componentLocale.footer.addButton))))));
145
148
  }
146
149
  static get is() { return "gx-ide-kb-manager-export"; }
147
150
  static get encapsulation() { return "shadow"; }
@@ -373,8 +376,8 @@ export class GxIdeKbManagerExport {
373
376
  return {
374
377
  "fileName": {},
375
378
  "exportFilePathName": {},
376
- "objectsTreeState": {},
377
- "noObjects": {}
379
+ "noObjects": {},
380
+ "objectsTreeState": {}
378
381
  };
379
382
  }
380
383
  static get events() {
@@ -0,0 +1,31 @@
1
+ {
2
+ "header": {
3
+ "fileNameLabel": "Select a file:",
4
+ "fileNamePlaceholder": "Allowed files extensions: .xpz/.xml",
5
+ "selectFileButton": "Select File",
6
+ "loadButton": "Load"
7
+ },
8
+ "main": {
9
+ "objectsInFile": {
10
+ "title": "Objects in File",
11
+ "selectAll": "Click to select all",
12
+ "deselectAll": "Click to deselect all",
13
+ "importButton": "Import",
14
+ "cancelButton": "Cancel",
15
+ "optionsButton": "Options"
16
+ },
17
+ "importStatus": {
18
+ "title": "Import Status",
19
+ "clearButton": "Clear Status",
20
+ "noImportedFiles": "There are no imported files yet",
21
+ "importedButHidden": "There are imported files, but all are hidden. Try by activating errors, warnings or success"
22
+ }
23
+ },
24
+ "footer": {
25
+ "selectDeselectAll": "Select All | Deselect All",
26
+ "errorsButton": "Errors",
27
+ "warningsButton": "Warnings",
28
+ "successButton": "Success",
29
+ "clearStatusButton": "Clear Status"
30
+ }
31
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "「こんにちは、私の名前は {0} です。オレゴンに住んでいます。」"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "你好,我的名字是 {0},我住在俄勒冈州。"
3
+ }
@@ -0,0 +1,128 @@
1
+ const convertImportItemToTreeItem = (importCatIcon, importItems) => {
2
+ const importTreeItems = [];
3
+ importItems.forEach(importItem => {
4
+ importTreeItems.push({
5
+ id: importItem.id,
6
+ caption: importItem.name,
7
+ leftImgSrc: importCatIcon,
8
+ checkbox: true,
9
+ expanded: true,
10
+ leaf: true,
11
+ class: "object"
12
+ });
13
+ });
14
+ return importTreeItems;
15
+ };
16
+ /**
17
+ * @description This function converts ReferenceData[] data to TreeItemData[]
18
+ */
19
+ export const convertImportCategoryToTreeView = (importCategoryData) => {
20
+ const treeData = [];
21
+ if (!importCategoryData) {
22
+ return treeData;
23
+ }
24
+ importCategoryData.forEach(importCat => {
25
+ const importCategoryTreeItem = {
26
+ id: importCat.id,
27
+ caption: `${importCat.name} (${importCat.items.length})`,
28
+ leftImgSrc: importCat.icon,
29
+ checkbox: true,
30
+ expanded: true,
31
+ leaf: false,
32
+ class: "category",
33
+ items: convertImportItemToTreeItem(importCat.icon, importCat.items)
34
+ };
35
+ treeData.push(importCategoryTreeItem);
36
+ });
37
+ return treeData;
38
+ };
39
+ const createImportResultDataMessages = (importItemId, messagesArray) => {
40
+ const messages = [];
41
+ messagesArray.forEach((message, i) => {
42
+ messages.push({
43
+ id: `${importItemId}-message-${i}}]`,
44
+ caption: message,
45
+ leftImgSrc: "gx-test/test-results",
46
+ leaf: true
47
+ });
48
+ });
49
+ return messages;
50
+ };
51
+ const updateImportStatusTree = (importItemResultFullData, importTreeActualState) => {
52
+ var _a;
53
+ const objectCategoryIndex = importTreeActualState.findIndex(objectCategoryItem => {
54
+ return objectCategoryItem.id === importItemResultFullData.categoryId;
55
+ });
56
+ if (objectCategoryIndex === -1) {
57
+ // object category node does not exists. We have to create it, and insert the import result tree node inside.
58
+ const importTreeItem = {
59
+ id: importItemResultFullData.categoryId,
60
+ // the count is (1), because this is the first item for this category
61
+ caption: `${importItemResultFullData.categoryName} (1)`,
62
+ leftImgSrc: importItemResultFullData.categoryIcon,
63
+ class: `tree-view-item tree-view-item--${importItemResultFullData.status}`,
64
+ expanded: true,
65
+ items: [
66
+ {
67
+ id: importItemResultFullData.id,
68
+ caption: importItemResultFullData.name,
69
+ items: createImportResultDataMessages(importItemResultFullData.id, importItemResultFullData.messages),
70
+ class: `tree-view-item tree-view-item--${importItemResultFullData.status}`,
71
+ expanded: true,
72
+ leaf: importItemResultFullData.messages.length === 0
73
+ }
74
+ ]
75
+ };
76
+ importTreeActualState.push(importTreeItem);
77
+ }
78
+ else {
79
+ // Object category node already exists. Just create the import result node, and insert into the parent category node (if it doesn't exists already).
80
+ // first search for the importItemResult node...
81
+ const importItemIndex = (_a = importTreeActualState[objectCategoryIndex].items) === null || _a === void 0 ? void 0 : _a.findIndex(importItem => {
82
+ return importItem.id === importItemResultFullData.id;
83
+ });
84
+ if (importItemIndex === -1) {
85
+ // ImportItem does not exists already
86
+ const importTreeItem = {
87
+ id: importItemResultFullData.id,
88
+ caption: importItemResultFullData.name,
89
+ expanded: true,
90
+ items: createImportResultDataMessages(importItemResultFullData.id, importItemResultFullData.messages),
91
+ class: `tree-view-item tree-view-item--${importItemResultFullData.status}`
92
+ };
93
+ // Insert the import node into the category node
94
+ importTreeActualState[objectCategoryIndex].items.push(importTreeItem);
95
+ // 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. )
96
+ importTreeActualState[objectCategoryIndex].caption = `${importItemResultFullData.categoryName} (${importTreeActualState[objectCategoryIndex].items.length})`;
97
+ }
98
+ }
99
+ return importTreeActualState;
100
+ };
101
+ /**
102
+ * 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.
103
+ */
104
+ const createImportResultFullData = (importItemResultData, importCategoryData) => {
105
+ const importCategoryFullData = Object.assign({ categoryId: undefined, categoryName: undefined, categoryIcon: undefined }, importItemResultData);
106
+ importCategoryDataFor: for (let i = 0; i < importCategoryData.length; i++) {
107
+ const categoryNode = importCategoryData[i];
108
+ for (let j = 0; j < categoryNode.items.length; j++) {
109
+ if (categoryNode.items[j].id === importItemResultData.id) {
110
+ importCategoryFullData.categoryId = categoryNode.id;
111
+ importCategoryFullData.categoryName = categoryNode.name;
112
+ importCategoryFullData.categoryIcon = categoryNode.icon;
113
+ break importCategoryDataFor;
114
+ }
115
+ }
116
+ }
117
+ return importCategoryFullData;
118
+ };
119
+ /**
120
+ * @description This function adds an ImportItemResultData item to the "importTreeState", and returns the updated tree with the new item added.
121
+ */
122
+ export const addImportItemResultDataItem = (importItemResultData, importCategoryData, importTreeActualState) => {
123
+ let updatedImportStatusTree = [...importTreeActualState];
124
+ // first, update importItemResultData with the category data. It will be needed later.
125
+ const importItemResultFullData = createImportResultFullData(importItemResultData, importCategoryData);
126
+ updatedImportStatusTree = updateImportStatusTree(importItemResultFullData, updatedImportStatusTree);
127
+ return updatedImportStatusTree;
128
+ };
@@ -0,0 +1,233 @@
1
+ /*Gemini*/
2
+ /*Gx Ide*/
3
+ /* Helper Classes */
4
+ .gxi-hidden {
5
+ display: none !important;
6
+ }
7
+
8
+ .gxi-full-height {
9
+ height: 100%;
10
+ }
11
+
12
+ .gxi-overflow-auto {
13
+ overflow: auto;
14
+ }
15
+
16
+ .gxi-display-flex {
17
+ display: flex;
18
+ }
19
+
20
+ .align-start {
21
+ display: flex;
22
+ align-items: start;
23
+ }
24
+
25
+ .align-center {
26
+ display: flex;
27
+ align-items: center;
28
+ }
29
+
30
+ .align-end {
31
+ display: flex;
32
+ align-items: end;
33
+ }
34
+
35
+ /* Grids */
36
+ .grid {
37
+ display: grid;
38
+ grid-row-gap: var(--gx-ide-grid-row-gap);
39
+ grid-column-gap: var(--gx-ide-grid-column-gap);
40
+ grid-template-rows: auto;
41
+ }
42
+
43
+ ch-grid-cell {
44
+ display: flex;
45
+ }
46
+
47
+ ch-grid {
48
+ overflow: auto;
49
+ height: 100%;
50
+ }
51
+
52
+ ch-grid-column {
53
+ /*to be removed when this works inside a component with shadow: true*/
54
+ z-index: 99;
55
+ border-bottom: 1px solid var(--gray-01);
56
+ }
57
+
58
+ /*Gxg Tabs*/
59
+ gxg-tabs {
60
+ box-shadow: none;
61
+ }
62
+
63
+ /*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/
64
+ :host(.gx-ide-component) {
65
+ box-shadow: var(--box-shadow-01) !important;
66
+ height: 100% !important;
67
+ display: flex !important;
68
+ flex-direction: column !important;
69
+ }
70
+
71
+ /*stylize the top bar*/
72
+ :host(:focus-within) gx-ide-top-bar::part(wrapper) {
73
+ background-color: var(--color-secondary-enabled);
74
+ }
75
+
76
+ /* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */
77
+ .gx-ide-main-wrapper {
78
+ color: var(--gx-ide-component-text-color);
79
+ font-weight: var(--font-weight-regular);
80
+ font-size: var(--font-size-lg);
81
+ line-height: 1.6em;
82
+ height: 100%;
83
+ background-color: var(--gx-ide-component-background-color);
84
+ display: flex;
85
+ flex-direction: column;
86
+ flex-grow: 1;
87
+ }
88
+
89
+ /*This is the main element. This is the one that take the remaining vertical space*/
90
+ .gx-ide-main {
91
+ flex-grow: 1;
92
+ overflow-y: auto;
93
+ /* Track */
94
+ /* Handle */
95
+ /* Handle on hover */
96
+ }
97
+ .gx-ide-main::-webkit-scrollbar {
98
+ width: 6px;
99
+ height: 6px;
100
+ }
101
+ .gx-ide-main::-webkit-scrollbar-track {
102
+ background-color: var(--gray-02);
103
+ border-radius: 10px;
104
+ }
105
+ .gx-ide-main::-webkit-scrollbar-thumb {
106
+ background: var(--gray-05);
107
+ border-radius: 10px;
108
+ }
109
+ .gx-ide-main::-webkit-scrollbar-thumb:hover {
110
+ background: var(--gray-04);
111
+ cursor: pointer;
112
+ }
113
+ .gx-ide-main .gxg-scroll {
114
+ display: block;
115
+ overflow-y: auto;
116
+ padding-inline-end: 2px;
117
+ }
118
+
119
+ .gx-ide-overflow {
120
+ overflow-y: auto;
121
+ /* Track */
122
+ /* Handle */
123
+ /* Handle on hover */
124
+ }
125
+ .gx-ide-overflow::-webkit-scrollbar {
126
+ width: 6px;
127
+ height: 6px;
128
+ }
129
+ .gx-ide-overflow::-webkit-scrollbar-track {
130
+ background-color: var(--gray-02);
131
+ border-radius: 10px;
132
+ }
133
+ .gx-ide-overflow::-webkit-scrollbar-thumb {
134
+ background: var(--gray-05);
135
+ border-radius: 10px;
136
+ }
137
+ .gx-ide-overflow::-webkit-scrollbar-thumb:hover {
138
+ background: var(--gray-04);
139
+ cursor: pointer;
140
+ }
141
+ .gx-ide-overflow .gxg-scroll {
142
+ display: block;
143
+ overflow-y: auto;
144
+ padding-inline-end: 2px;
145
+ }
146
+
147
+ /*Gemini*/
148
+ /*Gx Ide*/
149
+ :host {
150
+ display: block;
151
+ }
152
+
153
+ /*Header*/
154
+ .header {
155
+ display: flex;
156
+ flex-direction: row;
157
+ gap: var(--gx-ide-grid-column-gap);
158
+ }
159
+ .header .select-file {
160
+ flex: 1;
161
+ }
162
+
163
+ /*Main*/
164
+ .main {
165
+ min-height: 250px;
166
+ display: grid;
167
+ grid-template-columns: 1fr 1fr;
168
+ }
169
+ .main .left-grid-item {
170
+ border-right: 1px solid var(--gx-ide-container-border-color);
171
+ }
172
+ .main .tree-container {
173
+ height: 100%;
174
+ max-height: 300px;
175
+ display: flex;
176
+ /*import status display/hide status (warning, error, success)*/
177
+ }
178
+ .main .tree-container--empty {
179
+ align-items: center;
180
+ justify-content: center;
181
+ }
182
+ .main .tree-container--import-status .tree-view-item--success::part(action) {
183
+ grid-template: "first-img left-img text right-img"/max-content max-content 1fr max-content;
184
+ }
185
+ .main .tree-container--import-status .tree-view-item--success::part(action)::before {
186
+ grid-area: first-img;
187
+ content: "";
188
+ width: var(--spacing-comp-02);
189
+ height: var(--spacing-comp-02);
190
+ border-radius: 50%;
191
+ background-color: var(--gray-03);
192
+ background-color: var(--color-success-dark);
193
+ }
194
+ .main .tree-container--import-status .tree-view-item--warning::part(action) {
195
+ grid-template: "first-img left-img text right-img"/max-content max-content 1fr max-content;
196
+ }
197
+ .main .tree-container--import-status .tree-view-item--warning::part(action)::before {
198
+ grid-area: first-img;
199
+ content: "";
200
+ width: var(--spacing-comp-02);
201
+ height: var(--spacing-comp-02);
202
+ border-radius: 50%;
203
+ background-color: var(--gray-03);
204
+ background-color: var(--color-warning-dark);
205
+ }
206
+ .main .tree-container--import-status .tree-view-item--error::part(action) {
207
+ grid-template: "first-img left-img text right-img"/max-content max-content 1fr max-content;
208
+ }
209
+ .main .tree-container--import-status .tree-view-item--error::part(action)::before {
210
+ grid-area: first-img;
211
+ content: "";
212
+ width: var(--spacing-comp-02);
213
+ height: var(--spacing-comp-02);
214
+ border-radius: 50%;
215
+ background-color: var(--gray-03);
216
+ background-color: var(--color-error-dark);
217
+ }
218
+ .main .tree-container--no-warnings .tree-view-item--warning {
219
+ display: none;
220
+ }
221
+ .main .tree-container--no-errors .tree-view-item--error {
222
+ display: none;
223
+ }
224
+ .main .tree-container--no-successes .tree-view-item--success {
225
+ display: none;
226
+ }
227
+
228
+ .ghost-element {
229
+ display: block;
230
+ width: 0;
231
+ height: 24px;
232
+ /*this is the taller element on the "objects in file container footer (which is the button group, at the time of writing)"*/
233
+ }