@genexus/genexus-ide-ui 0.0.45 → 0.0.47

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 (208) hide show
  1. package/dist/cjs/{ch-tree-x_3.cjs.entry.js → ch-checkbox_4.cjs.entry.js} +249 -184
  2. package/dist/cjs/ch-global-stylesheet-0e78f960.js +20 -0
  3. package/dist/cjs/ch-grid-action-refresh_6.cjs.entry.js +43 -37
  4. package/dist/cjs/ch-grid-infinite-scroll.cjs.entry.js +57 -0
  5. package/dist/cjs/ch-grid-virtual-scroller.cjs.entry.js +31 -25
  6. package/dist/cjs/ch-grid_8.cjs.entry.js +30 -21
  7. package/dist/cjs/ch-style.cjs.entry.js +5 -5
  8. package/dist/cjs/ch-suggest_4.cjs.entry.js +1 -1
  9. package/dist/cjs/ch-test-tree-x.cjs.entry.js +26 -6
  10. package/dist/cjs/ch-window_2.cjs.entry.js +2 -2
  11. package/dist/cjs/{common-facb7f18.js → common-5d08e273.js} +10 -4
  12. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  13. package/dist/cjs/gx-ide-container_5.cjs.entry.js +2 -2
  14. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
  15. package/dist/cjs/gx-ide-entity-selector_2.cjs.entry.js +2 -2
  16. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +40 -55
  18. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -4
  19. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  21. package/dist/cjs/gxg-button.cjs.entry.js +1 -1
  22. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +39 -42
  23. package/dist/cjs/gxg-drop-down.cjs.entry.js +1 -1
  24. package/dist/cjs/gxg-form-checkbox.cjs.entry.js +1 -1
  25. package/dist/cjs/gxg-form-text.cjs.entry.js +3 -2
  26. package/dist/cjs/gxg-form-textarea.cjs.entry.js +1 -1
  27. package/dist/cjs/gxg-label_2.cjs.entry.js +1 -1
  28. package/dist/cjs/gxg-list-box_2.cjs.entry.js +71 -60
  29. package/dist/cjs/gxg-menu-slim-item.cjs.entry.js +1 -1
  30. package/dist/cjs/gxg-option.cjs.entry.js +1 -1
  31. package/dist/cjs/gxg-select.cjs.entry.js +1 -1
  32. package/dist/cjs/gxg-test.cjs.entry.js +86 -79
  33. package/dist/cjs/gxg-tree-view.cjs.entry.js +342 -0
  34. package/dist/cjs/gxg-tree_2.cjs.entry.js +1 -1
  35. package/dist/cjs/{helpers-8845f008.js → helpers-291cb1cb.js} +10 -0
  36. package/dist/cjs/loader.cjs.js +1 -1
  37. package/dist/collection/collection-manifest.json +2 -0
  38. package/dist/collection/common/common.js +10 -4
  39. package/dist/collection/components/container/container.css +5 -0
  40. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
  41. package/dist/collection/components/entity-selector/entity-selector.css +1 -1
  42. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.en.json +50 -10
  43. package/dist/collection/components/new-kb/new-kb.js +39 -54
  44. package/dist/collection/components/new-object/new-object.js +1 -4
  45. package/dist/collection/components/team-dev-select-recent-comment/team-dev-select-recent-comment.js +1 -1
  46. package/dist/components/button.js +1 -1
  47. package/dist/components/ch-global-stylesheet.js +14 -1
  48. package/dist/components/ch-grid-infinite-scroll.js +75 -0
  49. package/dist/components/ch-grid-rowset-legend.js +32 -1
  50. package/dist/components/ch-grid-virtual-scroller.js +32 -25
  51. package/dist/components/ch-grid2.js +30 -21
  52. package/dist/components/ch-paginator2.js +43 -37
  53. package/dist/components/ch-style.js +5 -5
  54. package/dist/components/ch-test-tree-x.js +29 -7
  55. package/dist/components/ch-window2.js +2 -2
  56. package/dist/components/combo-box-item.js +2 -2
  57. package/dist/components/combo-box.js +37 -41
  58. package/dist/components/common.js +10 -4
  59. package/dist/components/container.js +1 -1
  60. package/dist/components/date-picker.js +1 -1
  61. package/dist/components/entity-selector.js +1 -1
  62. package/dist/components/form-checkbox.js +1 -1
  63. package/dist/components/form-text.js +3 -2
  64. package/dist/components/form-textarea.js +1 -1
  65. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  66. package/dist/components/gx-ide-new-kb.js +40 -55
  67. package/dist/components/gx-ide-new-object.js +1 -4
  68. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  69. package/dist/components/gxg-drop-down.js +1 -1
  70. package/dist/components/gxg-label2.js +1 -1
  71. package/dist/components/gxg-menu-slim-item.js +1 -1
  72. package/dist/components/gxg-option.js +1 -1
  73. package/dist/components/gxg-select.js +1 -1
  74. package/dist/components/gxg-test.js +106 -145
  75. package/dist/components/gxg-tree-item2.js +1 -1
  76. package/dist/components/gxg-tree-view.js +393 -0
  77. package/dist/components/helpers.js +10 -1
  78. package/dist/components/index.js +2 -0
  79. package/dist/components/list-box-item.js +15 -18
  80. package/dist/components/list-box.js +58 -46
  81. package/dist/components/suggest.js +1 -1
  82. package/dist/components/tab-button.js +1 -1
  83. package/dist/components/tree-x-list-item.js +42 -48
  84. package/dist/components/tree-x-list.js +2 -51
  85. package/dist/components/tree-x.js +124 -91
  86. package/dist/esm/{ch-tree-x_3.entry.js → ch-checkbox_4.entry.js} +249 -185
  87. package/dist/esm/ch-global-stylesheet-4638bea5.js +16 -0
  88. package/dist/esm/ch-grid-action-refresh_6.entry.js +43 -37
  89. package/dist/esm/ch-grid-infinite-scroll.entry.js +53 -0
  90. package/dist/esm/ch-grid-virtual-scroller.entry.js +31 -25
  91. package/dist/esm/ch-grid_8.entry.js +30 -21
  92. package/dist/esm/ch-style.entry.js +5 -5
  93. package/dist/esm/ch-suggest_4.entry.js +1 -1
  94. package/dist/esm/ch-test-tree-x.entry.js +26 -6
  95. package/dist/esm/ch-window_2.entry.js +2 -2
  96. package/dist/esm/{common-a3df0966.js → common-ec35ec2f.js} +10 -4
  97. package/dist/esm/genexus-ide-ui.js +1 -1
  98. package/dist/esm/gx-ide-container_5.entry.js +2 -2
  99. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  100. package/dist/esm/gx-ide-entity-selector_2.entry.js +2 -2
  101. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  102. package/dist/esm/gx-ide-new-kb.entry.js +40 -55
  103. package/dist/esm/gx-ide-new-object.entry.js +1 -4
  104. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  105. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  106. package/dist/esm/gxg-button.entry.js +1 -1
  107. package/dist/esm/gxg-combo-box_2.entry.js +39 -42
  108. package/dist/esm/gxg-drop-down.entry.js +1 -1
  109. package/dist/esm/gxg-form-checkbox.entry.js +1 -1
  110. package/dist/esm/gxg-form-text.entry.js +3 -2
  111. package/dist/esm/gxg-form-textarea.entry.js +1 -1
  112. package/dist/esm/gxg-label_2.entry.js +1 -1
  113. package/dist/esm/gxg-list-box_2.entry.js +71 -60
  114. package/dist/esm/gxg-menu-slim-item.entry.js +1 -1
  115. package/dist/esm/gxg-option.entry.js +1 -1
  116. package/dist/esm/gxg-select.entry.js +1 -1
  117. package/dist/esm/gxg-test.entry.js +87 -80
  118. package/dist/esm/gxg-tree-view.entry.js +338 -0
  119. package/dist/esm/gxg-tree_2.entry.js +1 -1
  120. package/dist/esm/{helpers-56190205.js → helpers-1ecd5e26.js} +10 -1
  121. package/dist/esm/loader.js +1 -1
  122. package/dist/genexus-ide-ui/genexus-ide-ui.css +2 -2
  123. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  124. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.en.json +50 -10
  125. package/dist/genexus-ide-ui/p-052744b8.entry.js +1 -0
  126. package/dist/genexus-ide-ui/{p-9014609e.entry.js → p-059830b9.entry.js} +1 -1
  127. package/dist/genexus-ide-ui/{p-e5a3e3b9.entry.js → p-282b73f8.entry.js} +1 -1
  128. package/dist/genexus-ide-ui/{p-6da13f78.entry.js → p-2aeae374.entry.js} +1 -1
  129. package/dist/genexus-ide-ui/p-437069b0.entry.js +1 -0
  130. package/dist/genexus-ide-ui/p-447c3a31.entry.js +1 -0
  131. package/dist/genexus-ide-ui/p-4ff84cb2.entry.js +1 -0
  132. package/dist/genexus-ide-ui/{p-c38c6957.entry.js → p-54d15f4d.entry.js} +1 -1
  133. package/dist/genexus-ide-ui/p-5c0cb73d.entry.js +1 -0
  134. package/dist/genexus-ide-ui/{p-0141cbce.entry.js → p-5cb871e3.entry.js} +1 -1
  135. package/dist/genexus-ide-ui/{p-a82042ee.entry.js → p-64cbe277.entry.js} +1 -1
  136. package/dist/genexus-ide-ui/{p-50c603e6.entry.js → p-7c88194a.entry.js} +1 -1
  137. package/dist/genexus-ide-ui/p-7dbe195c.entry.js +1 -0
  138. package/dist/genexus-ide-ui/p-8c4b08ea.entry.js +1 -0
  139. package/dist/genexus-ide-ui/p-93b1e1e9.entry.js +1 -0
  140. package/dist/genexus-ide-ui/p-98c6b820.entry.js +1 -0
  141. package/dist/genexus-ide-ui/p-9aa2dd17.entry.js +1 -0
  142. package/dist/genexus-ide-ui/p-9ba292a0.entry.js +1 -0
  143. package/dist/genexus-ide-ui/p-a2fa3132.entry.js +1 -0
  144. package/dist/genexus-ide-ui/p-b374d112.js +1 -0
  145. package/dist/genexus-ide-ui/p-b5dc509f.entry.js +1 -0
  146. package/dist/genexus-ide-ui/p-b8d5c561.js +1 -0
  147. package/dist/genexus-ide-ui/p-c0edbeb5.entry.js +1 -0
  148. package/dist/genexus-ide-ui/{p-f1116ac5.entry.js → p-cbeac1ab.entry.js} +1 -1
  149. package/dist/genexus-ide-ui/p-cd5482fa.entry.js +1 -0
  150. package/dist/genexus-ide-ui/{p-6c825ffc.entry.js → p-ce7a7b5f.entry.js} +1 -1
  151. package/dist/genexus-ide-ui/p-d02f6ce4.entry.js +1 -0
  152. package/dist/genexus-ide-ui/p-d30c5a8e.entry.js +1 -0
  153. package/dist/genexus-ide-ui/p-d312fe25.entry.js +1 -0
  154. package/dist/genexus-ide-ui/p-d557b2fe.entry.js +1 -0
  155. package/dist/genexus-ide-ui/{p-72e1b9d5.entry.js → p-e586d05e.entry.js} +1 -1
  156. package/dist/genexus-ide-ui/p-e6ae0460.entry.js +1 -0
  157. package/dist/genexus-ide-ui/p-eb8f4ad5.js +1 -0
  158. package/dist/genexus-ide-ui/p-eddf8a1e.entry.js +1 -0
  159. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-infinite-scroll/ch-grid-infinite-scroll.css +9 -0
  160. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +1 -1
  161. package/dist/node_modules/@genexus/gemini/dist/collection/components/button/button.css +1 -1
  162. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box-item/combo-box-item.css +9 -5
  163. package/dist/node_modules/@genexus/gemini/dist/collection/components/date-picker/date-picker.css +1 -1
  164. package/dist/node_modules/@genexus/gemini/dist/collection/components/drop-down/drop-down.css +1 -1
  165. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-checkbox/form-checkbox.css +3 -3
  166. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-option/option.css +1 -1
  167. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-select/select.css +1 -1
  168. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-text/form-text.css +7 -7
  169. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +3 -3
  170. package/dist/node_modules/@genexus/gemini/dist/collection/components/label/gxg-label.css +1 -1
  171. package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box/list-box.css +16 -9
  172. package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box-item/list-box-item.css +27 -9
  173. package/dist/node_modules/@genexus/gemini/dist/collection/components/menu-slim/item/item.css +6 -6
  174. package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +5 -5
  175. package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css +1 -1
  176. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-item/gxg-tree-item.css +4 -4
  177. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +49 -0
  178. package/dist/types/common/common.d.ts +1 -1
  179. package/dist/types/components/new-kb/new-kb.d.ts +0 -9
  180. package/package.json +3 -3
  181. package/dist/cjs/ch-checkbox.cjs.entry.js +0 -93
  182. package/dist/cjs/ch-global-stylesheet-145c4b20.js +0 -5
  183. package/dist/components/ch-grid-rowset-legend2.js +0 -34
  184. package/dist/esm/ch-checkbox.entry.js +0 -89
  185. package/dist/esm/ch-global-stylesheet-f8bbf095.js +0 -3
  186. package/dist/genexus-ide-ui/p-04f69ecc.entry.js +0 -1
  187. package/dist/genexus-ide-ui/p-080f6c41.js +0 -1
  188. package/dist/genexus-ide-ui/p-1ccf523f.entry.js +0 -1
  189. package/dist/genexus-ide-ui/p-24f47ee2.entry.js +0 -1
  190. package/dist/genexus-ide-ui/p-28d0afda.entry.js +0 -1
  191. package/dist/genexus-ide-ui/p-44964acf.js +0 -1
  192. package/dist/genexus-ide-ui/p-4b7f7425.entry.js +0 -1
  193. package/dist/genexus-ide-ui/p-597a1d43.entry.js +0 -1
  194. package/dist/genexus-ide-ui/p-6afc6187.entry.js +0 -1
  195. package/dist/genexus-ide-ui/p-70489f0c.entry.js +0 -1
  196. package/dist/genexus-ide-ui/p-84e91b37.entry.js +0 -1
  197. package/dist/genexus-ide-ui/p-87e8eb72.js +0 -1
  198. package/dist/genexus-ide-ui/p-8bf7f0e1.entry.js +0 -1
  199. package/dist/genexus-ide-ui/p-8c2ab053.entry.js +0 -1
  200. package/dist/genexus-ide-ui/p-917c5696.entry.js +0 -1
  201. package/dist/genexus-ide-ui/p-92e84fcc.entry.js +0 -1
  202. package/dist/genexus-ide-ui/p-9dc36eb3.entry.js +0 -1
  203. package/dist/genexus-ide-ui/p-ad9fdfdf.entry.js +0 -1
  204. package/dist/genexus-ide-ui/p-bb1809cb.entry.js +0 -1
  205. package/dist/genexus-ide-ui/p-c056d050.entry.js +0 -1
  206. package/dist/genexus-ide-ui/p-c6ad49cc.entry.js +0 -1
  207. package/dist/genexus-ide-ui/p-e1cd9135.entry.js +0 -1
  208. package/dist/genexus-ide-ui/p-f28601c2.entry.js +0 -1
@@ -4,96 +4,103 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5a32426a.js');
6
6
 
7
- /* eslint-disable @typescript-eslint/no-use-before-define */
8
- const renderTreeItems = (treeItemsModel, firstCall = true) => {
9
- if (treeItemsModel === null || treeItemsModel === void 0 ? void 0 : treeItemsModel.length) {
10
- if (firstCall) {
11
- return treeItemsModel.map((item) => {
12
- return renderTreeItem(item);
13
- });
14
- }
15
- else {
16
- return (index.h("gxg-tree", { slot: "tree" }, treeItemsModel.map((item) => {
17
- return renderTreeItem(item);
18
- })));
19
- }
20
- }
21
- };
22
- const renderTreeItem = (item) => {
23
- var _a;
24
- const childrenLength = item.items ? item.items.length : 0;
25
- const isLeaf = childrenLength === 0 || item.leaf ? true : false;
26
- const lazy = !item.lazy ? false : true;
27
- return (index.h("gxg-tree-item", { checkbox: item.checkbox, checked: item.checked, description: item.description, disabled: item.disabled, icon: item.icon, indeterminate: item.indeterminate, id: item.id, label: item.label, leaf: isLeaf && !lazy, numberOfChildren: childrenLength, opened: item.opened, selected: item.selected }, [item.label, ((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) && renderTreeItems(item.items, false)]));
28
- };
29
-
30
7
  const testCss = ".tree-buttons{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}";
31
8
 
32
9
  const GxgTest = class {
33
10
  constructor(hostRef) {
34
11
  index.registerInstance(this, hostRef);
35
- //Do not delete buttonTestExportParts property as this is for a specific purpose
36
- this.buttonTestExportParts = false;
37
- //Grid tests
38
- this.showGrid = false;
39
- this.showGridData = false;
40
- /*Gxg-Tree Methods*/
41
- this.closeTreeNodeHandler = () => {
42
- this.tree.toggleItems(["number-1-1-2"], false);
12
+ /**
13
+ * The presence of this attribute makes the input disabled
14
+ */
15
+ this.comboValues = [
16
+ {
17
+ id: "web-net",
18
+ label: "Web (.NET)",
19
+ iconName: null,
20
+ },
21
+ {
22
+ id: "android",
23
+ label: "Android",
24
+ iconName: "general/android",
25
+ selected: true,
26
+ },
27
+ {
28
+ id: "apple",
29
+ label: "Apple",
30
+ iconName: "general/apple",
31
+ },
32
+ {
33
+ id: "web-angular",
34
+ label: "Web (Angular)",
35
+ iconName: "general/angular",
36
+ },
37
+ {
38
+ id: "we-chat-mini-program",
39
+ label: "We Chat Mini Program",
40
+ iconName: null,
41
+ },
42
+ ];
43
+ this.updatedComboValues = [
44
+ {
45
+ id: "1",
46
+ label: "1",
47
+ iconName: null,
48
+ },
49
+ {
50
+ id: "2",
51
+ label: "2",
52
+ iconName: "general/android",
53
+ },
54
+ {
55
+ id: "3",
56
+ label: "3",
57
+ iconName: "general/apple",
58
+ selected: true,
59
+ },
60
+ {
61
+ id: "4",
62
+ label: "4",
63
+ iconName: "general/angular",
64
+ },
65
+ ];
66
+ this.renderComboBoxItems = (itemsArray) => {
67
+ const comboItemsArray = [];
68
+ itemsArray.forEach((comboBoxItem) => {
69
+ const iconName = comboBoxItem.iconName || comboBoxItem.icon;
70
+ const value = comboBoxItem.value || comboBoxItem.id;
71
+ comboItemsArray.push(index.h("gxg-combo-box-item", { value: value, icon: iconName, key: comboBoxItem.id }, comboBoxItem.label || comboBoxItem.name));
72
+ });
73
+ return comboItemsArray;
43
74
  };
44
- this.openTreeNodeHandler = () => {
45
- this.tree.toggleItems(["number-1-1-2"], true);
46
- };
47
- this.toggleTreeNodeHandler = () => {
48
- this.tree.toggleItems(["number-1-1-2"]);
49
- };
50
- this.getSelectedItemsHandler = () => {
51
- (async () => {
52
- const selected = await this.tree.getSelectedItems();
53
- console.log(selected);
54
- })();
75
+ this.getSelectedGxOption = (options) => {
76
+ let found;
77
+ if (options === null || options === void 0 ? void 0 : options.length) {
78
+ for (let i = 0; i < options.length; i++) {
79
+ if (options[i].selected) {
80
+ found = options[i];
81
+ break;
82
+ }
83
+ }
84
+ }
85
+ if (found) {
86
+ return found.id;
87
+ }
88
+ else {
89
+ return options[0].id;
90
+ }
55
91
  };
56
- this.getCheckedItemsHandler = () => {
57
- (async () => {
58
- const checked = await this.tree.getCheckedItems();
59
- console.log(checked);
60
- })();
92
+ this.updateFrontEnds = () => {
93
+ this.comboValues = this.updatedComboValues;
61
94
  };
62
- this.deleteNodeHandler = () => {
63
- this.treeItemsModel = [];
95
+ this.valueChangedHandler = (e) => {
96
+ console.log("value updated", e.detail);
64
97
  };
65
98
  }
66
- toggleIconClickedHandler(e) {
67
- const treeItemId = e.detail.id;
68
- const isLazy = e.detail.lazy;
69
- if (this.lazyLoadTreeItemsCallback && isLazy) {
70
- const promise = this.lazyLoadTreeItemsCallback(treeItemId);
71
- setTimeout(() => {
72
- promise.then((result) => {
73
- this.treeItemsModel = result;
74
- });
75
- }, 1000);
76
- }
77
- }
78
99
  render() {
79
- if (this.buttonTestExportParts) {
80
- return index.h("gxg-button", { part: "exterior-part" }, "Export parts tests");
81
- }
82
- else if (this.treeItemsModel) {
83
- return [
84
- index.h("gxg-tree", { checkbox: true, checked: true }, renderTreeItems(this.treeItemsModel)),
85
- index.h("div", { class: "tree-buttons" }, index.h("gxg-button", { type: "outlined", onClick: this.closeTreeNodeHandler }, "Close 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.openTreeNodeHandler }, "Open 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.toggleTreeNodeHandler }, "Toggle 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.getSelectedItemsHandler }, "Get Selected Items"), index.h("gxg-button", { type: "outlined", onClick: this.getCheckedItemsHandler }, "Get Checked Items"), index.h("gxg-button", { type: "outlined", onClick: this.deleteNodeHandler }, "Delete Tree")),
86
- ];
87
- }
88
- else if (this.showGrid) {
89
- return (index.h("gxg-grid", null, index.h("ch-grid", { "row-selection-mode": "multiple", part: "ch-grid-pending-for-updates", class: "no-border" }, index.h("ch-grid-columnset", null, index.h("ch-grid-column", { settingable: false, sortable: false, "column-type": "rich", "rich-row-selector": true, "rich-row-selector-mode": "mark" }), index.h("ch-grid-column", { "column-name": "name", "column-name-position": "text", settingable: false }), index.h("ch-grid-column", { "column-name": "productos", "column-name-position": "text", settingable: false })), this.showGridData && [
90
- index.h("ch-grid-row", { rowid: "123" }, index.h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), index.h("ch-grid-cell", null, "Nombre"), index.h("ch-grid-cell", null, "Productos")),
91
- index.h("ch-grid-rowset", null, index.h("ch-grid-rowset-legend", null, "Identidad"), index.h("ch-grid-row", null, index.h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), index.h("ch-grid-cell", null, "Nombre"), index.h("ch-grid-cell", null, "Productos")), index.h("ch-grid-row", null, index.h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), index.h("ch-grid-cell", null, "English"), index.h("ch-grid-cell", null, "Products")), index.h("ch-grid-row", null, index.h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), index.h("ch-grid-cell", null, "Portugu\u00EAs"), index.h("ch-grid-cell", null, "Produtos"))),
92
- ])));
93
- }
94
- else {
95
- return index.h("slot", null);
96
- }
100
+ return [
101
+ index.h("gxg-combo-box", { id: "combo-fruits", placeholder: "Select item", "max-width": "100%", "label-position": "start", "center-label": true, "cursor-end": true, value: this.getSelectedGxOption(this.comboValues), onValueChanged: this.valueChangedHandler }, this.renderComboBoxItems(this.comboValues)),
102
+ index.h("button", { onClick: this.updateFrontEnds }, "update"),
103
+ ];
97
104
  }
98
105
  get el() { return index.getElement(this); }
99
106
  };
@@ -0,0 +1,342 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-5a32426a.js');
6
+
7
+ const treeViewCss = "gxg-tree-view{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;height:100%}.tree-buttons{display:grid;grid-auto-rows:max-content;row-gap:8px}:not(.ch-tree-x-dragging-item) ch-tree-x-list-item:not([selected])::part(header):hover{background-color:#e8e8e9}.ch-tree-x-list-item--drag-enter{background-color:#eee;box-shadow:inset 0 0 1px 0px black}.ch-tree-x-list-item--drag-enter[selected]::part(header){background-color:#eee}ch-tree-x-list-item::part(header){border:1px solid transparent}ch-tree-x-list-item[selected]::part(header){background-color:#cfdee6;border-color:#0266a0}ch-tree-x-list-item.ch-tree-x-list-item--editing::part(header){background-color:rgba(207, 222, 230, 0.5);border-color:transparent}ch-tree-x-list-item:not(.ch-tree-x-list-item--editing)::part(header):focus-visible{border-color:black;z-index:1}.ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
8
+
9
+ const DEFAULT_EXPANDED_VALUE = false;
10
+ const DEFAULT_INDETERMINATE_VALUE = false;
11
+ const DEFAULT_LAZY_VALUE = false;
12
+ const DEFAULT_SELECTED_VALUE = false;
13
+ const ChTestTreeX = class {
14
+ constructor(hostRef) {
15
+ index.registerInstance(this, hostRef);
16
+ // UI Models
17
+ this.flattenedTreeModel = new Map();
18
+ this.selectedItems = new Set();
19
+ this.flattenedLazyTreeModel = new Map();
20
+ /**
21
+ * This property lets you specify if the tree is waiting to process the drop
22
+ * of items.
23
+ */
24
+ this.waitDropProcessing = false;
25
+ /**
26
+ * This property lets you define the model of the ch-tree-x control.
27
+ */
28
+ this.treeModel = { items: [] };
29
+ /**
30
+ * Set this attribute if you want to allow multi selection of the items.
31
+ */
32
+ this.multiSelection = false;
33
+ /**
34
+ * `true` to display the relation between tree items and tree lists using
35
+ * lines.
36
+ */
37
+ this.showLines = "none";
38
+ this.handleDroppableZoneEnter = (event) => {
39
+ const dropInformation = event.detail;
40
+ if (!this.checkDroppableZoneCallback) {
41
+ return;
42
+ }
43
+ const requestTimestamp = new Date().getTime();
44
+ const promise = this.checkDroppableZoneCallback(dropInformation);
45
+ promise.then((validDrop) => {
46
+ this.treeRef.updateValidDroppableZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
47
+ });
48
+ };
49
+ this.handleSelectedItemsChange = (event) => {
50
+ const itemsToProcess = new Map(event.detail);
51
+ // Remove no longer selected items
52
+ this.selectedItems.forEach((selectedItemId) => {
53
+ const itemUIModel = this.flattenedTreeModel.get(selectedItemId).item;
54
+ const itemIsStillSelected = itemsToProcess.get(selectedItemId);
55
+ // The item does not need to be added. Remove it from the processed list
56
+ if (itemIsStillSelected) {
57
+ itemUIModel.expanded = itemIsStillSelected.expanded; // Update expanded state
58
+ itemsToProcess.delete(selectedItemId);
59
+ }
60
+ // The item must be un-selected in the UI Model
61
+ else {
62
+ itemUIModel.selected = false;
63
+ this.selectedItems.delete(selectedItemId);
64
+ }
65
+ });
66
+ // Add new selected items
67
+ itemsToProcess.forEach((newSelectedItemInfo, itemId) => {
68
+ const newSelectedItem = this.flattenedTreeModel.get(itemId).item;
69
+ newSelectedItem.selected = true;
70
+ newSelectedItem.expanded = newSelectedItemInfo.expanded;
71
+ this.selectedItems.add(itemId);
72
+ });
73
+ };
74
+ this.handleExpandedItemChange = (event) => {
75
+ const detail = event.detail;
76
+ const itemInfo = this.flattenedTreeModel.get(detail.id).item;
77
+ itemInfo.expanded = detail.expanded;
78
+ };
79
+ this.handleItemsDropped = (event) => {
80
+ const dataTransferInfo = event.detail;
81
+ const newContainer = dataTransferInfo.newContainer;
82
+ const newParentId = newContainer.id;
83
+ // Check if the parent exists in the UI Model
84
+ if (!this.flattenedTreeModel.get(newParentId)) {
85
+ return;
86
+ }
87
+ const draggedItems = dataTransferInfo.draggedItems;
88
+ if (draggedItems.length === 0 || !this.dropItemsCallback) {
89
+ return;
90
+ }
91
+ const promise = this.dropItemsCallback(dataTransferInfo);
92
+ this.waitDropProcessing = true;
93
+ promise.then((response) => {
94
+ this.waitDropProcessing = false;
95
+ if (!response.acceptDrop) {
96
+ return;
97
+ }
98
+ const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
99
+ // Only move the items to the new parent, keeping the state
100
+ if (dataTransferInfo.dropInTheSameTree) {
101
+ // Add the UI models to the new container and remove the UI models from
102
+ // the old containers
103
+ draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
104
+ }
105
+ // Add the new items
106
+ else {
107
+ if (response.items == null) {
108
+ return;
109
+ }
110
+ // Add new items to the parent
111
+ newParentUIModel.items.push(...response.items);
112
+ // Flatten the new UI models
113
+ response.items.forEach(this.flattenItemUIModel(newParentUIModel));
114
+ }
115
+ this.sortItems(newParentUIModel.items);
116
+ // Open the item to visualize the new subitems
117
+ newParentUIModel.expanded = true;
118
+ // There is no need to force and update, since the waitDropProcessing
119
+ // prop was modified
120
+ });
121
+ };
122
+ this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
123
+ const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
124
+ const item = itemUIModelExtended.item;
125
+ const oldParentItem = itemUIModelExtended.parentItem;
126
+ // Remove the UI model from the previous parent
127
+ oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
128
+ // Add the UI Model to the new parent
129
+ newParentUIModel.items.push(item);
130
+ // Reference the new parent in the item
131
+ itemUIModelExtended.parentItem = newParentUIModel;
132
+ };
133
+ this.renderSubModel = (treeSubModel) => (index.h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
134
+ treeSubModel.items != null &&
135
+ treeSubModel.items.length !== 0 && (index.h("ch-tree-x-list", { slot: "tree" }, treeSubModel.items.map(this.renderSubModel)))));
136
+ this.flattenItemUIModel = (parentModel) => (item) => {
137
+ this.flattenedTreeModel.set(item.id, {
138
+ parentItem: parentModel,
139
+ item: item,
140
+ });
141
+ // Make sure the properties are with their default values to avoid issues
142
+ // when reusing DOM nodes
143
+ item.expanded =
144
+ item.expanded == null ? DEFAULT_EXPANDED_VALUE : item.expanded;
145
+ item.indeterminate =
146
+ item.indeterminate == null
147
+ ? DEFAULT_INDETERMINATE_VALUE
148
+ : item.indeterminate;
149
+ item.lazy = item.lazy == null ? DEFAULT_LAZY_VALUE : item.lazy;
150
+ item.selected =
151
+ item.selected == null ? DEFAULT_SELECTED_VALUE : item.selected;
152
+ if (item.lazy) {
153
+ this.flattenedLazyTreeModel.set(item.id, item);
154
+ }
155
+ if (item.selected) {
156
+ this.selectedItems.add(item.id);
157
+ }
158
+ this.flattenSubModel(item);
159
+ };
160
+ }
161
+ handleTreeModelChange() {
162
+ this.flattenModel();
163
+ }
164
+ /**
165
+ * Given an item id, it displays and scrolls into the item view.
166
+ */
167
+ async scrollIntoVisible(treeItemId) {
168
+ const itemUIModel = this.flattenedTreeModel.get(treeItemId);
169
+ if (!itemUIModel) {
170
+ // @todo Check if the item is on the server?
171
+ return;
172
+ }
173
+ let visitedNode = itemUIModel.parentItem;
174
+ // While the parent is not the root, update the UI Models
175
+ while (visitedNode && visitedNode.id != null) {
176
+ // Expand the item
177
+ visitedNode.expanded = true;
178
+ const visitedNodeUIModel = this.flattenedTreeModel.get(visitedNode.id);
179
+ visitedNode = visitedNodeUIModel.parentItem;
180
+ }
181
+ index.forceUpdate(this);
182
+ // @todo For some reason, when the model is created using the "big model" option,
183
+ // this implementation does not work when only the UI Model is updated. So, to
184
+ // expand the items, we have to delegate the responsibility to the tree-x
185
+ this.treeRef.scrollIntoVisible(treeItemId);
186
+ }
187
+ /**
188
+ * This method is used to toggle a tree item by the tree item id/ids.
189
+ *
190
+ * @param treeItemIds An array id the tree items to be toggled.
191
+ * @param expand A boolean indicating that the tree item should be expanded or collapsed. (optional)
192
+ * @returns The modified items after the method was called.
193
+ */
194
+ async toggleItems(treeItemIds, expand) {
195
+ if (!treeItemIds) {
196
+ return [];
197
+ }
198
+ const modifiedTreeItems = [];
199
+ treeItemIds.forEach((treeItemId) => {
200
+ const itemInfo = this.flattenedTreeModel.get(treeItemId).item;
201
+ if (itemInfo) {
202
+ itemInfo.expanded = expand !== null && expand !== void 0 ? expand : !itemInfo.expanded;
203
+ modifiedTreeItems.push({
204
+ id: itemInfo.id,
205
+ expanded: itemInfo.expanded,
206
+ });
207
+ }
208
+ });
209
+ // Force re-render
210
+ index.forceUpdate(this);
211
+ return modifiedTreeItems;
212
+ }
213
+ /**
214
+ * Given a subset of item's properties, it updates all item UI models.
215
+ */
216
+ async updateAllItemsProperties(properties) {
217
+ [...this.flattenedTreeModel.values()].forEach((itemUIModel) => {
218
+ if (properties.expanded != null) {
219
+ itemUIModel.item.expanded = properties.expanded;
220
+ }
221
+ if (properties.checked != null) {
222
+ itemUIModel.item.checked = properties.checked;
223
+ itemUIModel.item.indeterminate = false;
224
+ }
225
+ });
226
+ index.forceUpdate(this);
227
+ }
228
+ /**
229
+ * Given a item list and the properties to update, it updates the properties
230
+ * of the items in the list.
231
+ */
232
+ async updateItemsProperties(items, properties) {
233
+ items.forEach((item) => {
234
+ const itemUIModel = this.flattenedTreeModel.get(item);
235
+ this.updateItemProperty(itemUIModel, properties);
236
+ });
237
+ index.forceUpdate(this);
238
+ }
239
+ updateItemProperty(itemUIModel, properties) {
240
+ if (!itemUIModel) {
241
+ return;
242
+ }
243
+ const itemInfo = itemUIModel.item;
244
+ Object.keys(properties).forEach((propertyName) => {
245
+ itemInfo[propertyName] = properties[propertyName];
246
+ });
247
+ }
248
+ loadLazyChildrenHandler(event) {
249
+ event.stopPropagation();
250
+ const treeItemId = event.detail;
251
+ if (this.lazyLoadTreeItemsCallback) {
252
+ const promise = this.lazyLoadTreeItemsCallback(treeItemId);
253
+ const itemRef = event.target;
254
+ itemRef.downloading = true;
255
+ promise.then((result) => {
256
+ const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(treeItemId);
257
+ // Establish that the content was lazy loaded
258
+ this.flattenedLazyTreeModel.delete(treeItemId);
259
+ itemToLazyLoadContent.lazy = false;
260
+ itemRef.downloading = false;
261
+ // Check if there is items to add
262
+ if (result == null) {
263
+ return;
264
+ }
265
+ // @todo What happens in the server when dropping items on a lazy node?
266
+ itemToLazyLoadContent.items = result;
267
+ this.sortItems(itemToLazyLoadContent.items);
268
+ this.flattenSubModel(itemToLazyLoadContent);
269
+ // Force re-render
270
+ index.forceUpdate(this);
271
+ });
272
+ }
273
+ }
274
+ handleCaptionModification(event) {
275
+ event.stopPropagation();
276
+ if (!this.modifyItemCaptionCallback) {
277
+ return;
278
+ }
279
+ const itemRef = event.target;
280
+ const itemId = event.detail.id;
281
+ const itemUIModel = this.flattenedTreeModel.get(itemId);
282
+ const itemInfo = itemUIModel.item;
283
+ const newCaption = event.detail.caption;
284
+ const oldCaption = itemInfo.caption;
285
+ // Optimistic UI: Update the caption in the UI Model before the change is
286
+ // completed in the server
287
+ itemInfo.caption = newCaption;
288
+ // Due to performance reasons, we don't make a shallow copy of the
289
+ // treeModel to force a re-render
290
+ itemRef.caption = newCaption;
291
+ const promise = this.modifyItemCaptionCallback(itemId, newCaption);
292
+ promise.then((status) => {
293
+ if (status.success) {
294
+ this.sortItems(itemUIModel.parentItem.items);
295
+ // Force re-render
296
+ index.forceUpdate(this);
297
+ }
298
+ else {
299
+ itemRef.caption = oldCaption;
300
+ itemInfo.caption = oldCaption;
301
+ // Do something with the error message
302
+ }
303
+ });
304
+ }
305
+ flattenSubModel(model) {
306
+ const items = model.items;
307
+ if (!items) {
308
+ // Make sure that subtrees don't have an undefined array
309
+ if (model.leaf === false) {
310
+ model.items = [];
311
+ }
312
+ return;
313
+ }
314
+ this.sortItems(items);
315
+ items.forEach(this.flattenItemUIModel(model));
316
+ }
317
+ sortItems(items) {
318
+ // Ensure that items are sorted
319
+ if (this.sortItemsCallback) {
320
+ this.sortItemsCallback(items);
321
+ }
322
+ }
323
+ flattenModel() {
324
+ this.flattenedTreeModel.clear();
325
+ this.flattenedLazyTreeModel.clear();
326
+ this.flattenSubModel(this.treeModel);
327
+ }
328
+ componentWillLoad() {
329
+ this.flattenModel();
330
+ }
331
+ render() {
332
+ return (index.h(index.Host, null, index.h("ch-tree-x", { multiSelection: this.multiSelection,
333
+ // showLines={this.showLines}
334
+ waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: (el) => (this.treeRef = el) }, index.h("ch-tree-x-list", null, this.treeModel.items.map(this.renderSubModel))), index.h("div", { class: "tree-buttons" })));
335
+ }
336
+ static get watchers() { return {
337
+ "treeModel": ["handleTreeModelChange"]
338
+ }; }
339
+ };
340
+ ChTestTreeX.style = treeViewCss;
341
+
342
+ exports.gxg_tree_view = ChTestTreeX;
@@ -216,7 +216,7 @@ const GxgTree = class {
216
216
  };
217
217
  GxgTree.style = gxgTreeCss;
218
218
 
219
- const gxgTreeItemCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}:host{--text-color:var(--color-on-background);--font-family:\"Source Sans Pro\", sans-serif;--font-weight:normal;--font-size:12px;--guide-color:var(--gray-06);--item-hover-color:var(--gray-01);--item-active-color:var(--silverGray);color:var(--color-on-background);width:100%;display:block}:host li{list-style:none;font-family:var(--font-family);font-size:var(--font-size);font-weight:var(--font-weight);color:var(--text-color);overflow:hidden}:host li>::slotted(gxg-tree){display:none}:host li.tree-open>::slotted(gxg-tree){display:block}:host li.tree-closed .vertical-line{display:none}:host li .li-text{min-height:24px;cursor:pointer;display:flex;align-items:center;position:relative;padding-inline-end:var(--spacing-comp-01)}:host li .li-text:hover{background-color:var(--item-hover-color)}:host li .li-text:active{background-color:var(--gxg-background-color-item-selected)}:host li .li-text:focus{outline-style:solid;outline-color:var(--color-primary-active);outline-width:var(--border-width-md);outline-offset:-2px}:host li .li-text--selected{background-color:var(--gxg-background-color-item-selected)}:host li .li-text>*{flex-shrink:0}:host li .vertical-line{position:absolute;width:1px;height:0;top:23px;left:15px;z-index:1;background-image:linear-gradient(var(--guide-color) 28%, rgba(255, 255, 255, 0) 0%);background-position:right;background-size:1px 4px;background-repeat:repeat-y}:host li .horizontal-line{position:absolute;height:1px;top:11px;z-index:1;background-image:linear-gradient(to right, var(--guide-color) 33%, rgba(255, 255, 255, 0) 0%);background-position:bottom;background-size:3px 1px;background-repeat:repeat-x}:host li .horizontal-line.display-none{display:none}:host li .closed-opened-icons{position:relative;display:flex;margin-left:-2px}:host li .toggle-icon{position:relative;z-index:2;transform:scale(0.75, 0.75);margin-inline-end:var(--spacing-comp-00);transition-property:opacity;transition-duration:0.5s;transition-timing-function:ease;background-color:var(--color-hover)}:host li .toggle-icon:hover{background-color:var(--color-background)}:host .checkbox{margin-inline-end:var(--spacing-comp-01)}:host .icon--left{margin:0 var(--spacing-comp-01) 0 var(--spacing-comp-00)}:host .right-icon{margin-inline-start:auto;position:relative;top:0;transition-property:top;transition-duration:0.5s;transition-timing-function:ease}:host .loading{opacity:1;display:inline;z-index:1;margin-inline-end:var(--spacing-comp-01);border-radius:50%;width:8px;height:8px;border:0.18rem solid var(--gray-04);border-top-color:var(--gray-01);animation:spin 1s infinite linear}:host .loading--double{border-style:double;border-width:0.5rem}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host([disabled]) li .text{color:var(--darkGray)}:host([disabled]) .toggle-icon{pointer-events:none}";
219
+ const gxgTreeItemCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}:host{--text-color:var(--color-on-background);--font-family:\"Source Sans Pro\", sans-serif;--font-weight:normal;--font-size:12px;--guide-color:var(--gray-06);--item-hover-color:var(--gxg-background-color--hover);--item-active-color:var(--silverGray);color:var(--color-on-background);width:100%;display:block}:host li{list-style:none;font-family:var(--font-family);font-size:var(--font-size);font-weight:var(--font-weight);color:var(--text-color);overflow:hidden}:host li>::slotted(gxg-tree){display:none}:host li.tree-open>::slotted(gxg-tree){display:block}:host li.tree-closed .vertical-line{display:none}:host li .li-text{min-height:24px;cursor:pointer;display:flex;align-items:center;position:relative;padding-inline-end:var(--spacing-comp-01)}:host li .li-text:hover{background-color:var(--item-hover-color)}:host li .li-text:active{background-color:var(--gxg-background-color--selected)}:host li .li-text:focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}:host li .li-text--selected{background-color:var(--gxg-background-color--selected)}:host li .li-text>*{flex-shrink:0}:host li .vertical-line{position:absolute;width:1px;height:0;top:23px;left:15px;z-index:1;background-image:linear-gradient(var(--guide-color) 28%, rgba(255, 255, 255, 0) 0%);background-position:right;background-size:1px 4px;background-repeat:repeat-y}:host li .horizontal-line{position:absolute;height:1px;top:11px;z-index:1;background-image:linear-gradient(to right, var(--guide-color) 33%, rgba(255, 255, 255, 0) 0%);background-position:bottom;background-size:3px 1px;background-repeat:repeat-x}:host li .horizontal-line.display-none{display:none}:host li .closed-opened-icons{position:relative;display:flex;margin-left:-2px}:host li .toggle-icon{position:relative;z-index:2;transform:scale(0.75, 0.75);margin-inline-end:var(--spacing-comp-00);transition-property:opacity;transition-duration:0.5s;transition-timing-function:ease;background-color:var(--color-hover)}:host li .toggle-icon:hover{background-color:var(--color-background)}:host .checkbox{margin-inline-end:var(--spacing-comp-01)}:host .icon--left{margin:0 var(--spacing-comp-01) 0 var(--spacing-comp-00)}:host .right-icon{margin-inline-start:auto;position:relative;top:0;transition-property:top;transition-duration:0.5s;transition-timing-function:ease}:host .loading{opacity:1;display:inline;z-index:1;margin-inline-end:var(--spacing-comp-01);border-radius:50%;width:8px;height:8px;border:0.18rem solid var(--gray-04);border-top-color:var(--gray-01);animation:spin 1s infinite linear}:host .loading--double{border-style:double;border-width:0.5rem}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host([disabled]) li .text{color:var(--darkGray)}:host([disabled]) .toggle-icon{pointer-events:none}";
220
220
 
221
221
  const GxgTreeItem = class {
222
222
  constructor(hostRef) {
@@ -20,6 +20,16 @@ exports.MouseEventButtons = void 0;
20
20
  MouseEventButtons[MouseEventButtons["BACK"] = 8] = "BACK";
21
21
  MouseEventButtons[MouseEventButtons["FORWARD"] = 16] = "FORWARD";
22
22
  })(exports.MouseEventButtons || (exports.MouseEventButtons = {}));
23
+ function focusComposedPath() {
24
+ const composedPath = [];
25
+ let root = document;
26
+ while (root && root.activeElement) {
27
+ composedPath.push(root.activeElement);
28
+ root = root.activeElement.shadowRoot;
29
+ }
30
+ return composedPath.reverse();
31
+ }
23
32
 
33
+ exports.focusComposedPath = focusComposedPath;
24
34
  exports.mouseEventHasButtonPressed = mouseEventHasButtonPressed;
25
35
  exports.mouseEventModifierKey = mouseEventModifierKey;