@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
@@ -1,95 +1,102 @@
1
- import { h, r as registerInstance, g as getElement } from './index-0da01575.js';
2
-
3
- /* eslint-disable @typescript-eslint/no-use-before-define */
4
- const renderTreeItems = (treeItemsModel, firstCall = true) => {
5
- if (treeItemsModel === null || treeItemsModel === void 0 ? void 0 : treeItemsModel.length) {
6
- if (firstCall) {
7
- return treeItemsModel.map((item) => {
8
- return renderTreeItem(item);
9
- });
10
- }
11
- else {
12
- return (h("gxg-tree", { slot: "tree" }, treeItemsModel.map((item) => {
13
- return renderTreeItem(item);
14
- })));
15
- }
16
- }
17
- };
18
- const renderTreeItem = (item) => {
19
- var _a;
20
- const childrenLength = item.items ? item.items.length : 0;
21
- const isLeaf = childrenLength === 0 || item.leaf ? true : false;
22
- const lazy = !item.lazy ? false : true;
23
- return (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)]));
24
- };
1
+ import { r as registerInstance, h, g as getElement } from './index-0da01575.js';
25
2
 
26
3
  const testCss = ".tree-buttons{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}";
27
4
 
28
5
  const GxgTest = class {
29
6
  constructor(hostRef) {
30
7
  registerInstance(this, hostRef);
31
- //Do not delete buttonTestExportParts property as this is for a specific purpose
32
- this.buttonTestExportParts = false;
33
- //Grid tests
34
- this.showGrid = false;
35
- this.showGridData = false;
36
- /*Gxg-Tree Methods*/
37
- this.closeTreeNodeHandler = () => {
38
- this.tree.toggleItems(["number-1-1-2"], false);
8
+ /**
9
+ * The presence of this attribute makes the input disabled
10
+ */
11
+ this.comboValues = [
12
+ {
13
+ id: "web-net",
14
+ label: "Web (.NET)",
15
+ iconName: null,
16
+ },
17
+ {
18
+ id: "android",
19
+ label: "Android",
20
+ iconName: "general/android",
21
+ selected: true,
22
+ },
23
+ {
24
+ id: "apple",
25
+ label: "Apple",
26
+ iconName: "general/apple",
27
+ },
28
+ {
29
+ id: "web-angular",
30
+ label: "Web (Angular)",
31
+ iconName: "general/angular",
32
+ },
33
+ {
34
+ id: "we-chat-mini-program",
35
+ label: "We Chat Mini Program",
36
+ iconName: null,
37
+ },
38
+ ];
39
+ this.updatedComboValues = [
40
+ {
41
+ id: "1",
42
+ label: "1",
43
+ iconName: null,
44
+ },
45
+ {
46
+ id: "2",
47
+ label: "2",
48
+ iconName: "general/android",
49
+ },
50
+ {
51
+ id: "3",
52
+ label: "3",
53
+ iconName: "general/apple",
54
+ selected: true,
55
+ },
56
+ {
57
+ id: "4",
58
+ label: "4",
59
+ iconName: "general/angular",
60
+ },
61
+ ];
62
+ this.renderComboBoxItems = (itemsArray) => {
63
+ const comboItemsArray = [];
64
+ itemsArray.forEach((comboBoxItem) => {
65
+ const iconName = comboBoxItem.iconName || comboBoxItem.icon;
66
+ const value = comboBoxItem.value || comboBoxItem.id;
67
+ comboItemsArray.push(h("gxg-combo-box-item", { value: value, icon: iconName, key: comboBoxItem.id }, comboBoxItem.label || comboBoxItem.name));
68
+ });
69
+ return comboItemsArray;
39
70
  };
40
- this.openTreeNodeHandler = () => {
41
- this.tree.toggleItems(["number-1-1-2"], true);
42
- };
43
- this.toggleTreeNodeHandler = () => {
44
- this.tree.toggleItems(["number-1-1-2"]);
45
- };
46
- this.getSelectedItemsHandler = () => {
47
- (async () => {
48
- const selected = await this.tree.getSelectedItems();
49
- console.log(selected);
50
- })();
71
+ this.getSelectedGxOption = (options) => {
72
+ let found;
73
+ if (options === null || options === void 0 ? void 0 : options.length) {
74
+ for (let i = 0; i < options.length; i++) {
75
+ if (options[i].selected) {
76
+ found = options[i];
77
+ break;
78
+ }
79
+ }
80
+ }
81
+ if (found) {
82
+ return found.id;
83
+ }
84
+ else {
85
+ return options[0].id;
86
+ }
51
87
  };
52
- this.getCheckedItemsHandler = () => {
53
- (async () => {
54
- const checked = await this.tree.getCheckedItems();
55
- console.log(checked);
56
- })();
88
+ this.updateFrontEnds = () => {
89
+ this.comboValues = this.updatedComboValues;
57
90
  };
58
- this.deleteNodeHandler = () => {
59
- this.treeItemsModel = [];
91
+ this.valueChangedHandler = (e) => {
92
+ console.log("value updated", e.detail);
60
93
  };
61
94
  }
62
- toggleIconClickedHandler(e) {
63
- const treeItemId = e.detail.id;
64
- const isLazy = e.detail.lazy;
65
- if (this.lazyLoadTreeItemsCallback && isLazy) {
66
- const promise = this.lazyLoadTreeItemsCallback(treeItemId);
67
- setTimeout(() => {
68
- promise.then((result) => {
69
- this.treeItemsModel = result;
70
- });
71
- }, 1000);
72
- }
73
- }
74
95
  render() {
75
- if (this.buttonTestExportParts) {
76
- return h("gxg-button", { part: "exterior-part" }, "Export parts tests");
77
- }
78
- else if (this.treeItemsModel) {
79
- return [
80
- h("gxg-tree", { checkbox: true, checked: true }, renderTreeItems(this.treeItemsModel)),
81
- h("div", { class: "tree-buttons" }, h("gxg-button", { type: "outlined", onClick: this.closeTreeNodeHandler }, "Close 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.openTreeNodeHandler }, "Open 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.toggleTreeNodeHandler }, "Toggle 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.getSelectedItemsHandler }, "Get Selected Items"), h("gxg-button", { type: "outlined", onClick: this.getCheckedItemsHandler }, "Get Checked Items"), h("gxg-button", { type: "outlined", onClick: this.deleteNodeHandler }, "Delete Tree")),
82
- ];
83
- }
84
- else if (this.showGrid) {
85
- return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", part: "ch-grid-pending-for-updates", class: "no-border" }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, sortable: false, "column-type": "rich", "rich-row-selector": true, "rich-row-selector-mode": "mark" }), h("ch-grid-column", { "column-name": "name", "column-name-position": "text", settingable: false }), h("ch-grid-column", { "column-name": "productos", "column-name-position": "text", settingable: false })), this.showGridData && [
86
- h("ch-grid-row", { rowid: "123" }, h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), h("ch-grid-cell", null, "Nombre"), h("ch-grid-cell", null, "Productos")),
87
- h("ch-grid-rowset", null, h("ch-grid-rowset-legend", null, "Identidad"), h("ch-grid-row", null, h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), h("ch-grid-cell", null, "Nombre"), h("ch-grid-cell", null, "Productos")), h("ch-grid-row", null, h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), h("ch-grid-cell", null, "English"), h("ch-grid-cell", null, "Products")), h("ch-grid-row", null, h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), h("ch-grid-cell", null, "Portugu\u00EAs"), h("ch-grid-cell", null, "Produtos"))),
88
- ])));
89
- }
90
- else {
91
- return h("slot", null);
92
- }
96
+ return [
97
+ 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)),
98
+ h("button", { onClick: this.updateFrontEnds }, "update"),
99
+ ];
93
100
  }
94
101
  get el() { return getElement(this); }
95
102
  };
@@ -0,0 +1,338 @@
1
+ import { r as registerInstance, h, f as forceUpdate, H as Host } from './index-0da01575.js';
2
+
3
+ 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}";
4
+
5
+ const DEFAULT_EXPANDED_VALUE = false;
6
+ const DEFAULT_INDETERMINATE_VALUE = false;
7
+ const DEFAULT_LAZY_VALUE = false;
8
+ const DEFAULT_SELECTED_VALUE = false;
9
+ const ChTestTreeX = class {
10
+ constructor(hostRef) {
11
+ registerInstance(this, hostRef);
12
+ // UI Models
13
+ this.flattenedTreeModel = new Map();
14
+ this.selectedItems = new Set();
15
+ this.flattenedLazyTreeModel = new Map();
16
+ /**
17
+ * This property lets you specify if the tree is waiting to process the drop
18
+ * of items.
19
+ */
20
+ this.waitDropProcessing = false;
21
+ /**
22
+ * This property lets you define the model of the ch-tree-x control.
23
+ */
24
+ this.treeModel = { items: [] };
25
+ /**
26
+ * Set this attribute if you want to allow multi selection of the items.
27
+ */
28
+ this.multiSelection = false;
29
+ /**
30
+ * `true` to display the relation between tree items and tree lists using
31
+ * lines.
32
+ */
33
+ this.showLines = "none";
34
+ this.handleDroppableZoneEnter = (event) => {
35
+ const dropInformation = event.detail;
36
+ if (!this.checkDroppableZoneCallback) {
37
+ return;
38
+ }
39
+ const requestTimestamp = new Date().getTime();
40
+ const promise = this.checkDroppableZoneCallback(dropInformation);
41
+ promise.then((validDrop) => {
42
+ this.treeRef.updateValidDroppableZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
43
+ });
44
+ };
45
+ this.handleSelectedItemsChange = (event) => {
46
+ const itemsToProcess = new Map(event.detail);
47
+ // Remove no longer selected items
48
+ this.selectedItems.forEach((selectedItemId) => {
49
+ const itemUIModel = this.flattenedTreeModel.get(selectedItemId).item;
50
+ const itemIsStillSelected = itemsToProcess.get(selectedItemId);
51
+ // The item does not need to be added. Remove it from the processed list
52
+ if (itemIsStillSelected) {
53
+ itemUIModel.expanded = itemIsStillSelected.expanded; // Update expanded state
54
+ itemsToProcess.delete(selectedItemId);
55
+ }
56
+ // The item must be un-selected in the UI Model
57
+ else {
58
+ itemUIModel.selected = false;
59
+ this.selectedItems.delete(selectedItemId);
60
+ }
61
+ });
62
+ // Add new selected items
63
+ itemsToProcess.forEach((newSelectedItemInfo, itemId) => {
64
+ const newSelectedItem = this.flattenedTreeModel.get(itemId).item;
65
+ newSelectedItem.selected = true;
66
+ newSelectedItem.expanded = newSelectedItemInfo.expanded;
67
+ this.selectedItems.add(itemId);
68
+ });
69
+ };
70
+ this.handleExpandedItemChange = (event) => {
71
+ const detail = event.detail;
72
+ const itemInfo = this.flattenedTreeModel.get(detail.id).item;
73
+ itemInfo.expanded = detail.expanded;
74
+ };
75
+ this.handleItemsDropped = (event) => {
76
+ const dataTransferInfo = event.detail;
77
+ const newContainer = dataTransferInfo.newContainer;
78
+ const newParentId = newContainer.id;
79
+ // Check if the parent exists in the UI Model
80
+ if (!this.flattenedTreeModel.get(newParentId)) {
81
+ return;
82
+ }
83
+ const draggedItems = dataTransferInfo.draggedItems;
84
+ if (draggedItems.length === 0 || !this.dropItemsCallback) {
85
+ return;
86
+ }
87
+ const promise = this.dropItemsCallback(dataTransferInfo);
88
+ this.waitDropProcessing = true;
89
+ promise.then((response) => {
90
+ this.waitDropProcessing = false;
91
+ if (!response.acceptDrop) {
92
+ return;
93
+ }
94
+ const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
95
+ // Only move the items to the new parent, keeping the state
96
+ if (dataTransferInfo.dropInTheSameTree) {
97
+ // Add the UI models to the new container and remove the UI models from
98
+ // the old containers
99
+ draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
100
+ }
101
+ // Add the new items
102
+ else {
103
+ if (response.items == null) {
104
+ return;
105
+ }
106
+ // Add new items to the parent
107
+ newParentUIModel.items.push(...response.items);
108
+ // Flatten the new UI models
109
+ response.items.forEach(this.flattenItemUIModel(newParentUIModel));
110
+ }
111
+ this.sortItems(newParentUIModel.items);
112
+ // Open the item to visualize the new subitems
113
+ newParentUIModel.expanded = true;
114
+ // There is no need to force and update, since the waitDropProcessing
115
+ // prop was modified
116
+ });
117
+ };
118
+ this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
119
+ const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
120
+ const item = itemUIModelExtended.item;
121
+ const oldParentItem = itemUIModelExtended.parentItem;
122
+ // Remove the UI model from the previous parent
123
+ oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
124
+ // Add the UI Model to the new parent
125
+ newParentUIModel.items.push(item);
126
+ // Reference the new parent in the item
127
+ itemUIModelExtended.parentItem = newParentUIModel;
128
+ };
129
+ this.renderSubModel = (treeSubModel) => (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 &&
130
+ treeSubModel.items != null &&
131
+ treeSubModel.items.length !== 0 && (h("ch-tree-x-list", { slot: "tree" }, treeSubModel.items.map(this.renderSubModel)))));
132
+ this.flattenItemUIModel = (parentModel) => (item) => {
133
+ this.flattenedTreeModel.set(item.id, {
134
+ parentItem: parentModel,
135
+ item: item,
136
+ });
137
+ // Make sure the properties are with their default values to avoid issues
138
+ // when reusing DOM nodes
139
+ item.expanded =
140
+ item.expanded == null ? DEFAULT_EXPANDED_VALUE : item.expanded;
141
+ item.indeterminate =
142
+ item.indeterminate == null
143
+ ? DEFAULT_INDETERMINATE_VALUE
144
+ : item.indeterminate;
145
+ item.lazy = item.lazy == null ? DEFAULT_LAZY_VALUE : item.lazy;
146
+ item.selected =
147
+ item.selected == null ? DEFAULT_SELECTED_VALUE : item.selected;
148
+ if (item.lazy) {
149
+ this.flattenedLazyTreeModel.set(item.id, item);
150
+ }
151
+ if (item.selected) {
152
+ this.selectedItems.add(item.id);
153
+ }
154
+ this.flattenSubModel(item);
155
+ };
156
+ }
157
+ handleTreeModelChange() {
158
+ this.flattenModel();
159
+ }
160
+ /**
161
+ * Given an item id, it displays and scrolls into the item view.
162
+ */
163
+ async scrollIntoVisible(treeItemId) {
164
+ const itemUIModel = this.flattenedTreeModel.get(treeItemId);
165
+ if (!itemUIModel) {
166
+ // @todo Check if the item is on the server?
167
+ return;
168
+ }
169
+ let visitedNode = itemUIModel.parentItem;
170
+ // While the parent is not the root, update the UI Models
171
+ while (visitedNode && visitedNode.id != null) {
172
+ // Expand the item
173
+ visitedNode.expanded = true;
174
+ const visitedNodeUIModel = this.flattenedTreeModel.get(visitedNode.id);
175
+ visitedNode = visitedNodeUIModel.parentItem;
176
+ }
177
+ forceUpdate(this);
178
+ // @todo For some reason, when the model is created using the "big model" option,
179
+ // this implementation does not work when only the UI Model is updated. So, to
180
+ // expand the items, we have to delegate the responsibility to the tree-x
181
+ this.treeRef.scrollIntoVisible(treeItemId);
182
+ }
183
+ /**
184
+ * This method is used to toggle a tree item by the tree item id/ids.
185
+ *
186
+ * @param treeItemIds An array id the tree items to be toggled.
187
+ * @param expand A boolean indicating that the tree item should be expanded or collapsed. (optional)
188
+ * @returns The modified items after the method was called.
189
+ */
190
+ async toggleItems(treeItemIds, expand) {
191
+ if (!treeItemIds) {
192
+ return [];
193
+ }
194
+ const modifiedTreeItems = [];
195
+ treeItemIds.forEach((treeItemId) => {
196
+ const itemInfo = this.flattenedTreeModel.get(treeItemId).item;
197
+ if (itemInfo) {
198
+ itemInfo.expanded = expand !== null && expand !== void 0 ? expand : !itemInfo.expanded;
199
+ modifiedTreeItems.push({
200
+ id: itemInfo.id,
201
+ expanded: itemInfo.expanded,
202
+ });
203
+ }
204
+ });
205
+ // Force re-render
206
+ forceUpdate(this);
207
+ return modifiedTreeItems;
208
+ }
209
+ /**
210
+ * Given a subset of item's properties, it updates all item UI models.
211
+ */
212
+ async updateAllItemsProperties(properties) {
213
+ [...this.flattenedTreeModel.values()].forEach((itemUIModel) => {
214
+ if (properties.expanded != null) {
215
+ itemUIModel.item.expanded = properties.expanded;
216
+ }
217
+ if (properties.checked != null) {
218
+ itemUIModel.item.checked = properties.checked;
219
+ itemUIModel.item.indeterminate = false;
220
+ }
221
+ });
222
+ forceUpdate(this);
223
+ }
224
+ /**
225
+ * Given a item list and the properties to update, it updates the properties
226
+ * of the items in the list.
227
+ */
228
+ async updateItemsProperties(items, properties) {
229
+ items.forEach((item) => {
230
+ const itemUIModel = this.flattenedTreeModel.get(item);
231
+ this.updateItemProperty(itemUIModel, properties);
232
+ });
233
+ forceUpdate(this);
234
+ }
235
+ updateItemProperty(itemUIModel, properties) {
236
+ if (!itemUIModel) {
237
+ return;
238
+ }
239
+ const itemInfo = itemUIModel.item;
240
+ Object.keys(properties).forEach((propertyName) => {
241
+ itemInfo[propertyName] = properties[propertyName];
242
+ });
243
+ }
244
+ loadLazyChildrenHandler(event) {
245
+ event.stopPropagation();
246
+ const treeItemId = event.detail;
247
+ if (this.lazyLoadTreeItemsCallback) {
248
+ const promise = this.lazyLoadTreeItemsCallback(treeItemId);
249
+ const itemRef = event.target;
250
+ itemRef.downloading = true;
251
+ promise.then((result) => {
252
+ const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(treeItemId);
253
+ // Establish that the content was lazy loaded
254
+ this.flattenedLazyTreeModel.delete(treeItemId);
255
+ itemToLazyLoadContent.lazy = false;
256
+ itemRef.downloading = false;
257
+ // Check if there is items to add
258
+ if (result == null) {
259
+ return;
260
+ }
261
+ // @todo What happens in the server when dropping items on a lazy node?
262
+ itemToLazyLoadContent.items = result;
263
+ this.sortItems(itemToLazyLoadContent.items);
264
+ this.flattenSubModel(itemToLazyLoadContent);
265
+ // Force re-render
266
+ forceUpdate(this);
267
+ });
268
+ }
269
+ }
270
+ handleCaptionModification(event) {
271
+ event.stopPropagation();
272
+ if (!this.modifyItemCaptionCallback) {
273
+ return;
274
+ }
275
+ const itemRef = event.target;
276
+ const itemId = event.detail.id;
277
+ const itemUIModel = this.flattenedTreeModel.get(itemId);
278
+ const itemInfo = itemUIModel.item;
279
+ const newCaption = event.detail.caption;
280
+ const oldCaption = itemInfo.caption;
281
+ // Optimistic UI: Update the caption in the UI Model before the change is
282
+ // completed in the server
283
+ itemInfo.caption = newCaption;
284
+ // Due to performance reasons, we don't make a shallow copy of the
285
+ // treeModel to force a re-render
286
+ itemRef.caption = newCaption;
287
+ const promise = this.modifyItemCaptionCallback(itemId, newCaption);
288
+ promise.then((status) => {
289
+ if (status.success) {
290
+ this.sortItems(itemUIModel.parentItem.items);
291
+ // Force re-render
292
+ forceUpdate(this);
293
+ }
294
+ else {
295
+ itemRef.caption = oldCaption;
296
+ itemInfo.caption = oldCaption;
297
+ // Do something with the error message
298
+ }
299
+ });
300
+ }
301
+ flattenSubModel(model) {
302
+ const items = model.items;
303
+ if (!items) {
304
+ // Make sure that subtrees don't have an undefined array
305
+ if (model.leaf === false) {
306
+ model.items = [];
307
+ }
308
+ return;
309
+ }
310
+ this.sortItems(items);
311
+ items.forEach(this.flattenItemUIModel(model));
312
+ }
313
+ sortItems(items) {
314
+ // Ensure that items are sorted
315
+ if (this.sortItemsCallback) {
316
+ this.sortItemsCallback(items);
317
+ }
318
+ }
319
+ flattenModel() {
320
+ this.flattenedTreeModel.clear();
321
+ this.flattenedLazyTreeModel.clear();
322
+ this.flattenSubModel(this.treeModel);
323
+ }
324
+ componentWillLoad() {
325
+ this.flattenModel();
326
+ }
327
+ render() {
328
+ return (h(Host, null, h("ch-tree-x", { multiSelection: this.multiSelection,
329
+ // showLines={this.showLines}
330
+ waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: (el) => (this.treeRef = el) }, h("ch-tree-x-list", null, this.treeModel.items.map(this.renderSubModel))), h("div", { class: "tree-buttons" })));
331
+ }
332
+ static get watchers() { return {
333
+ "treeModel": ["handleTreeModelChange"]
334
+ }; }
335
+ };
336
+ ChTestTreeX.style = treeViewCss;
337
+
338
+ export { ChTestTreeX as gxg_tree_view };
@@ -212,7 +212,7 @@ const GxgTree = class {
212
212
  };
213
213
  GxgTree.style = gxgTreeCss;
214
214
 
215
- 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}";
215
+ 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}";
216
216
 
217
217
  const GxgTreeItem = class {
218
218
  constructor(hostRef) {
@@ -18,5 +18,14 @@ var MouseEventButtons;
18
18
  MouseEventButtons[MouseEventButtons["BACK"] = 8] = "BACK";
19
19
  MouseEventButtons[MouseEventButtons["FORWARD"] = 16] = "FORWARD";
20
20
  })(MouseEventButtons || (MouseEventButtons = {}));
21
+ function focusComposedPath() {
22
+ const composedPath = [];
23
+ let root = document;
24
+ while (root && root.activeElement) {
25
+ composedPath.push(root.activeElement);
26
+ root = root.activeElement.shadowRoot;
27
+ }
28
+ return composedPath.reverse();
29
+ }
21
30
 
22
- export { MouseEventButton as M, mouseEventHasButtonPressed as a, MouseEventButtons as b, mouseEventModifierKey as m };
31
+ export { MouseEventButton as M, mouseEventHasButtonPressed as a, MouseEventButtons as b, focusComposedPath as f, mouseEventModifierKey as m };