@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
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ const CH_GLOBAL_STYLESHEET = new CSSStyleSheet({ disabled: true });
4
+ function adoptGlobalStyleSheet(adoptedStyleSheets) {
5
+ adoptedStyleSheets.push(CH_GLOBAL_STYLESHEET);
6
+ }
7
+ function appendStyle(text) {
8
+ const styleSheetParser = new CSSStyleSheet({ disabled: true });
9
+ styleSheetParser.replace(text);
10
+ for (let i = 0; i < styleSheetParser.cssRules.length; i++) {
11
+ CH_GLOBAL_STYLESHEET.insertRule(styleSheetParser.cssRules.item(i).cssText);
12
+ }
13
+ }
14
+ function enableStyleSheet() {
15
+ CH_GLOBAL_STYLESHEET.disabled = false;
16
+ }
17
+
18
+ exports.adoptGlobalStyleSheet = adoptGlobalStyleSheet;
19
+ exports.appendStyle = appendStyle;
20
+ exports.enableStyleSheet = enableStyleSheet;
@@ -83,59 +83,55 @@ const ChPaginator = class {
83
83
  }
84
84
  navigateClickedHandler(eventInfo) {
85
85
  eventInfo.stopPropagation();
86
- switch (eventInfo.detail.type) {
87
- case "first":
88
- this.first();
89
- break;
90
- case "previous":
91
- this.previous();
92
- break;
93
- case "next":
94
- this.next();
95
- break;
96
- case "last":
97
- this.last();
98
- break;
99
- }
100
- this.pageNavigationRequested.emit({ type: eventInfo.detail.type });
86
+ this.navigate(eventInfo.detail.type);
101
87
  }
102
88
  pageChangedHandler(eventInfo) {
103
89
  eventInfo.stopPropagation();
104
- const emitPageNavigationRequested = this.activePage !== eventInfo.detail.page;
105
- this.activePage = eventInfo.detail.page;
106
- if (emitPageNavigationRequested) {
107
- this.pageNavigationRequested.emit({
108
- type: "goto",
109
- page: eventInfo.detail.page
110
- });
111
- }
112
- }
113
- loadElements() {
114
- this.elPages = this.el.querySelector("ch-paginator-pages");
115
- this.elFirst = this.el.querySelector("ch-paginator-navigate[type='first']");
116
- this.elPrevious = this.el.querySelector("ch-paginator-navigate[type='previous']");
117
- this.elNext = this.el.querySelector("ch-paginator-navigate[type='next']");
118
- this.elLast = this.el.querySelector("ch-paginator-navigate[type='last']");
90
+ this.navigate("goto", eventInfo.detail.page);
119
91
  }
120
92
  keyDownHandler(eventInfo) {
121
93
  switch (eventInfo.key) {
122
94
  case "Home":
123
- this.first();
124
- this.elFirst.focus();
95
+ this.navigate("first");
125
96
  break;
126
97
  case "PageUp":
127
- this.previous();
128
- this.elPrevious.focus();
98
+ this.navigate("previous");
129
99
  break;
130
100
  case "PageDown":
131
- this.next();
132
- this.elNext.focus();
101
+ this.navigate("next");
133
102
  break;
134
103
  case "End":
104
+ this.navigate("last");
105
+ break;
106
+ }
107
+ }
108
+ navigate(type, page) {
109
+ var _a, _b, _c, _d;
110
+ const emitPageNavigationRequested = !page || page !== this.activePage;
111
+ switch (type) {
112
+ case "first":
113
+ this.first();
114
+ (_a = this.elFirst) === null || _a === void 0 ? void 0 : _a.focus();
115
+ break;
116
+ case "previous":
117
+ this.previous();
118
+ (_b = this.elPrevious) === null || _b === void 0 ? void 0 : _b.focus();
119
+ break;
120
+ case "next":
121
+ this.next();
122
+ (_c = this.elNext) === null || _c === void 0 ? void 0 : _c.focus();
123
+ break;
124
+ case "last":
135
125
  this.last();
136
- this.elLast.focus();
126
+ (_d = this.elLast) === null || _d === void 0 ? void 0 : _d.focus();
127
+ break;
128
+ case "goto":
129
+ this.goto(page);
137
130
  break;
138
131
  }
132
+ if (emitPageNavigationRequested) {
133
+ this.pageNavigationRequested.emit({ type, page });
134
+ }
139
135
  }
140
136
  first() {
141
137
  this.activePage = 1;
@@ -152,6 +148,16 @@ const ChPaginator = class {
152
148
  last() {
153
149
  this.activePage = this.totalPages;
154
150
  }
151
+ goto(page) {
152
+ this.activePage = Math.max(Math.min(page, this.totalPages), 1);
153
+ }
154
+ loadElements() {
155
+ this.elPages = this.el.querySelector("ch-paginator-pages");
156
+ this.elFirst = this.el.querySelector("ch-paginator-navigate[type='first']");
157
+ this.elPrevious = this.el.querySelector("ch-paginator-navigate[type='previous']");
158
+ this.elNext = this.el.querySelector("ch-paginator-navigate[type='next']");
159
+ this.elLast = this.el.querySelector("ch-paginator-navigate[type='last']");
160
+ }
155
161
  render() {
156
162
  if (this.elPages) {
157
163
  this.elPages.totalPages = this.totalPages;
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-5a32426a.js');
6
+
7
+ const chGridInfiniteScrollCss = ":host{display:flex;grid-column-start:1;grid-column-end:-1}.loading:not([hidden]){display:contents}";
8
+
9
+ const ChGridInfiniteScroll = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ this.infinite = index.createEvent(this, "infinite", 7);
13
+ /**
14
+ * Indicates whether the grid is loading or already loaded.
15
+ */
16
+ this.status = "loaded";
17
+ this.intersectionObserverHandler = (entries, observer) => {
18
+ const hasGridScroll = this.gridLayoutElement.scrollHeight !==
19
+ this.gridLayoutElement.clientHeight;
20
+ const emitInfinite = observer.root ? hasGridScroll : !hasGridScroll;
21
+ if (emitInfinite && entries[0].isIntersecting && this.status === "loaded") {
22
+ this.status = "loading";
23
+ this.infinite.emit();
24
+ }
25
+ };
26
+ }
27
+ componentWillLoad() {
28
+ this.gridLayoutElement = this.el.assignedSlot.closest("section.main");
29
+ this.intersectionGridLayoutObserver = new IntersectionObserver(this.intersectionObserverHandler, {
30
+ root: this.gridLayoutElement,
31
+ rootMargin: "1px"
32
+ });
33
+ this.intersectionGridLayoutObserver.observe(this.el);
34
+ this.intersectionDocumentObserver = new IntersectionObserver(this.intersectionObserverHandler, {
35
+ rootMargin: "1px"
36
+ });
37
+ this.intersectionDocumentObserver.observe(this.el);
38
+ }
39
+ disconnectedCallback() {
40
+ if (this.intersectionGridLayoutObserver) {
41
+ this.intersectionGridLayoutObserver.disconnect();
42
+ }
43
+ }
44
+ /**
45
+ * Indicates that the grid is already loaded.
46
+ */
47
+ async complete() {
48
+ this.status = "loaded";
49
+ }
50
+ render() {
51
+ return (index.h("div", { class: "loading", hidden: !(this.status === "loading") }, index.h("slot", null)));
52
+ }
53
+ get el() { return index.getElement(this); }
54
+ };
55
+ ChGridInfiniteScroll.style = chGridInfiniteScrollCss;
56
+
57
+ exports.ch_grid_infinite_scroll = ChGridInfiniteScroll;
@@ -10,6 +10,7 @@ const ChGridVirtualScrollerLegend = class {
10
10
  constructor(hostRef) {
11
11
  index.registerInstance(this, hostRef);
12
12
  this.viewPortItemsChanged = index.createEvent(this, "viewPortItemsChanged", 7);
13
+ this.resizeObserver = new ResizeObserver(this.resizeHandler.bind(this));
13
14
  /**
14
15
  * Height of each row in pixels.
15
16
  */
@@ -30,34 +31,12 @@ const ChGridVirtualScrollerLegend = class {
30
31
  * The maximum number of items that can fit on the screen at any given time.
31
32
  */
32
33
  this.maxViewPortItems = 1;
33
- this.resizeObserver = new ResizeObserver(this.resizeHandler.bind(this));
34
- }
35
- componentWillLoad() {
36
- this.gridMainEl = this.el.assignedSlot.parentElement;
37
- this.resizeObserver.observe(this.gridMainEl);
38
- this.resizeObserver.observe(document.documentElement);
39
- }
40
- componentDidLoad() {
41
- this.updateViewPortItems();
42
- }
43
- disconnectedCallback() {
44
- this.resizeObserver.disconnect();
45
- }
46
- itemsHandler() {
47
- if (this.gridMainEl) {
48
- this.updateViewPortItems();
49
- }
50
34
  }
51
35
  rowHeightHandler() {
52
36
  if (this.gridMainEl) {
53
37
  this.updateViewPortItems();
54
38
  }
55
39
  }
56
- maxViewPortItemsHandler() {
57
- if (this.gridMainEl) {
58
- this.updateViewPortItems();
59
- }
60
- }
61
40
  hasScrollHandler() {
62
41
  if (this.hasGridScroll) {
63
42
  this.gridMainEl.addEventListener("scroll", this.updateViewPortItems.bind(this), { passive: true });
@@ -78,6 +57,32 @@ const ChGridVirtualScrollerLegend = class {
78
57
  }
79
58
  this.updateViewPortItems();
80
59
  }
60
+ maxViewPortItemsHandler() {
61
+ if (this.gridMainEl) {
62
+ this.updateViewPortItems();
63
+ }
64
+ }
65
+ itemsHandler() {
66
+ if (this.gridMainEl) {
67
+ this.updateViewPortItems();
68
+ }
69
+ }
70
+ itemsCountHandler() {
71
+ if (this.gridMainEl) {
72
+ this.updateViewPortItems();
73
+ }
74
+ }
75
+ componentWillLoad() {
76
+ this.gridMainEl = this.el.assignedSlot.parentElement;
77
+ this.resizeObserver.observe(this.gridMainEl);
78
+ this.resizeObserver.observe(document.documentElement);
79
+ }
80
+ componentDidLoad() {
81
+ this.updateViewPortItems();
82
+ }
83
+ disconnectedCallback() {
84
+ this.resizeObserver.disconnect();
85
+ }
81
86
  resizeHandler() {
82
87
  const rowHeights = getComputedStyle(this.gridMainEl).gridTemplateRows.split(" ");
83
88
  this.browserHeight = document.documentElement.clientHeight;
@@ -133,11 +138,12 @@ const ChGridVirtualScrollerLegend = class {
133
138
  }
134
139
  get el() { return index.getElement(this); }
135
140
  static get watchers() { return {
136
- "items": ["itemsHandler"],
137
141
  "rowHeight": ["rowHeightHandler"],
138
- "maxViewPortItems": ["maxViewPortItemsHandler"],
139
142
  "hasGridScroll": ["hasScrollHandler"],
140
- "hasWindowScroll": ["hasWindowScrollHandler"]
143
+ "hasWindowScroll": ["hasWindowScrollHandler"],
144
+ "maxViewPortItems": ["maxViewPortItemsHandler"],
145
+ "items": ["itemsHandler"],
146
+ "itemsCount": ["itemsCountHandler"]
141
147
  }; }
142
148
  };
143
149
  ChGridVirtualScrollerLegend.style = chGridVirtualScrollerCss;
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5a32426a.js');
6
- const chGlobalStylesheet = require('./ch-global-stylesheet-145c4b20.js');
7
- const helpers = require('./helpers-8845f008.js');
6
+ const chGlobalStylesheet = require('./ch-global-stylesheet-0e78f960.js');
7
+ const helpers = require('./helpers-291cb1cb.js');
8
8
  const store = require('./store-0866de9f.js');
9
9
 
10
10
  /**
@@ -1508,7 +1508,7 @@ class ChGridManager {
1508
1508
  this.styleSheet.insertRule(`:host {}`, StyleRule.BASE_LAYER);
1509
1509
  this.styleSheet.insertRule(".main {}", StyleRule.COLUMNS_WIDTH);
1510
1510
  this.grid.shadowRoot.adoptedStyleSheets.push(this.styleSheet);
1511
- this.grid.shadowRoot.adoptedStyleSheets.push(chGlobalStylesheet.CH_GLOBAL_STYLESHEET);
1511
+ chGlobalStylesheet.adoptGlobalStyleSheet(this.grid.shadowRoot.adoptedStyleSheets);
1512
1512
  this.columns = new ChGridManagerColumns(this);
1513
1513
  this.selection = new ChGridManagerSelection(this);
1514
1514
  this.rowActions = new ChGridManagerRowActions(this);
@@ -1975,7 +1975,7 @@ const ChGrid = class {
1975
1975
  }
1976
1976
  }
1977
1977
  windowKeyDownHandler(eventInfo) {
1978
- if (document.activeElement === this.el &&
1978
+ if (helpers.focusComposedPath()[0] === this.el &&
1979
1979
  [
1980
1980
  " ",
1981
1981
  "+",
@@ -1993,7 +1993,7 @@ const ChGrid = class {
1993
1993
  }
1994
1994
  }
1995
1995
  keyDownHandler(eventInfo) {
1996
- if (document.activeElement === this.el) {
1996
+ if (helpers.focusComposedPath()[0] === this.el) {
1997
1997
  switch (eventInfo.key) {
1998
1998
  case " ":
1999
1999
  this.toggleRowsMarked();
@@ -2044,17 +2044,23 @@ const ChGrid = class {
2044
2044
  ? this.rowHighlighted
2045
2045
  : null);
2046
2046
  }
2047
- if (this.manager.selection.selecting) {
2048
- const row = this.manager.getRowEventTarget(eventInfo);
2049
- const cell = this.manager.getCellEventTarget(eventInfo);
2050
- if (row &&
2051
- (this.manager.selection.selectingRow !== row ||
2052
- this.manager.selection.selectingCell !== cell)) {
2053
- const isKeyModifierPressed = helpers.mouseEventModifierKey(eventInfo);
2054
- const isMouseButtonRightPressed = helpers.mouseEventHasButtonPressed(eventInfo, helpers.MouseEventButtons.RIGHT);
2055
- this.selectByPointerEvent(row, cell, isKeyModifierPressed && !isMouseButtonRightPressed, !isMouseButtonRightPressed, isMouseButtonRightPressed);
2056
- this.manager.selection.selectingRow = row;
2057
- this.manager.selection.selectingCell = cell;
2047
+ selectingBlock: {
2048
+ if (this.manager.selection.selecting) {
2049
+ if (helpers.focusComposedPath()[0] !== this.el) {
2050
+ this.stopSelecting();
2051
+ break selectingBlock;
2052
+ }
2053
+ const row = this.manager.getRowEventTarget(eventInfo);
2054
+ const cell = this.manager.getCellEventTarget(eventInfo);
2055
+ if (row &&
2056
+ (this.manager.selection.selectingRow !== row ||
2057
+ this.manager.selection.selectingCell !== cell)) {
2058
+ const isKeyModifierPressed = helpers.mouseEventModifierKey(eventInfo);
2059
+ const isMouseButtonRightPressed = helpers.mouseEventHasButtonPressed(eventInfo, helpers.MouseEventButtons.RIGHT);
2060
+ this.selectByPointerEvent(row, cell, isKeyModifierPressed && !isMouseButtonRightPressed, !isMouseButtonRightPressed, isMouseButtonRightPressed);
2061
+ this.manager.selection.selectingRow = row;
2062
+ this.manager.selection.selectingCell = cell;
2063
+ }
2058
2064
  }
2059
2065
  }
2060
2066
  }
@@ -2077,9 +2083,7 @@ const ChGrid = class {
2077
2083
  }
2078
2084
  }
2079
2085
  mouseUpHandler() {
2080
- this.manager.selection.selecting = false;
2081
- this.manager.selection.selectingRow = null;
2082
- this.manager.selection.selectingCell = null;
2086
+ this.stopSelecting();
2083
2087
  }
2084
2088
  dblclickHandler(eventInfo) {
2085
2089
  const row = this.manager.getRowEventTarget(eventInfo);
@@ -2105,8 +2109,8 @@ const ChGrid = class {
2105
2109
  const cellFocused = ((_a = this.cellSelected) === null || _a === void 0 ? void 0 : _a.row) === targetRow ? this.cellSelected : null;
2106
2110
  const rowContextMenuEventInfo = this.rowContextMenu.emit({
2107
2111
  rowId: targetRow.rowId,
2108
- cellId: cellFocused.cellId,
2109
- columnId: cellFocused.column.columnId,
2112
+ cellId: cellFocused === null || cellFocused === void 0 ? void 0 : cellFocused.cellId,
2113
+ columnId: cellFocused === null || cellFocused === void 0 ? void 0 : cellFocused.column.columnId,
2110
2114
  selectedRowsId: this.rowsSelected.map(row => row.rowId),
2111
2115
  clientX: eventInfo.clientX,
2112
2116
  clientY: eventInfo.clientY
@@ -2443,6 +2447,11 @@ const ChGrid = class {
2443
2447
  this.cellSelected = cellSelected;
2444
2448
  rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
2445
2449
  }
2450
+ stopSelecting() {
2451
+ this.manager.selection.selecting = false;
2452
+ this.manager.selection.selectingRow = null;
2453
+ this.manager.selection.selectingCell = null;
2454
+ }
2446
2455
  renderSettings() {
2447
2456
  return (index.h("ch-grid-settings", { grid: this.el, ref: el => (this.settingsUI = el), exportparts: "\n mask:settings-mask,\n window:settings-window,\n header:settings-header,\n caption:settings-caption,\n close:settings-close,\n main:settings-main,\n footer:settings-footer\n " }, index.h("slot", { name: "settings" }, index.h("ch-grid-settings-columns", { part: "settings-columns", columns: [...this.manager.getColumns()], exportparts: "\n column:settings-columns-item,\n column-label:settings-columns-label,\n column-visible:settings-columns-visible,\n column-visible-checked:settings-columns-visible-checked\n " }))));
2448
2457
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5a32426a.js');
6
- const chGlobalStylesheet = require('./ch-global-stylesheet-145c4b20.js');
6
+ const chGlobalStylesheet = require('./ch-global-stylesheet-0e78f960.js');
7
7
 
8
8
  const chStyleCss = ":host{display:none}";
9
9
 
@@ -16,15 +16,15 @@ const ChStyle = class {
16
16
  fetch(this.href).then(response => {
17
17
  if (response.ok) {
18
18
  response.text().then(style => {
19
- chGlobalStylesheet.CH_GLOBAL_STYLESHEET.replace(style);
20
- chGlobalStylesheet.CH_GLOBAL_STYLESHEET.disabled = false;
19
+ chGlobalStylesheet.appendStyle(style);
20
+ chGlobalStylesheet.enableStyleSheet();
21
21
  });
22
22
  }
23
23
  });
24
24
  }
25
25
  else {
26
- chGlobalStylesheet.CH_GLOBAL_STYLESHEET.replace(this.el.innerText);
27
- chGlobalStylesheet.CH_GLOBAL_STYLESHEET.disabled = false;
26
+ chGlobalStylesheet.appendStyle(this.el.innerText);
27
+ chGlobalStylesheet.enableStyleSheet();
28
28
  }
29
29
  }
30
30
  get el() { return index.getElement(this); }
@@ -315,7 +315,7 @@ const ChSuggestListItem = class {
315
315
  };
316
316
  ChSuggestListItem.style = chSuggestListItemCss;
317
317
 
318
- const stylesCss = "@charset \"UTF-8\";: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(.gxg-validation--warning) .form-element{border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus{outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-warning-dark)}:host(.gxg-validation--error) .form-element{border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus{outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-error-dark)}:host(.gxg-validation--success) .form-element{border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus{outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-success-dark)}ch-suggest{font-family:var(--font-family-primary);font-size:var(--font-size-lg);color:var(--color-on-background);}ch-suggest::-webkit-scrollbar{width:6px;height:6px}ch-suggest::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest ::-webkit-scrollbar{width:6px;height:6px}ch-suggest ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(label){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;display:flex;align-items:center;cursor:default;font-size:inherit}ch-suggest[label-position=start]::part(label){margin-inline-end:var(--gxg-label-margin-horizontal)}ch-suggest[label-position=above]::part(label){margin-block-end:var(--gxg-label-margin-vertical)}ch-suggest::part(input){height:var(--spacing-comp-05);border:var(--border-width-sm) solid var(--gxg-border-color--regular);padding:var(--spacing-comp-01) var(--spacing-comp-02);box-sizing:border-box;background-color:var(--color-background)}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--color-primary-active);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--color-primary-active);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(header){display:block;padding-block-end:var(--spacing-comp-02);display:flex;justify-content:flex-end}ch-suggest::part(close-button){height:var(--spacing-comp-05);width:var(--spacing-comp-05);background-color:var(--color-background);color:var(--color-primary-hover);border:1px solid var(--color-primary-hover);box-sizing:border-box;cursor:pointer;display:block}ch-suggest::part(close-button):hover{background-color:var(--color-primary-hover-opacity-01)}ch-suggest::part(close-button)::after{content:\"✖\";width:100%;display:block;line-height:24px;text-align:center}ch-suggest::part(close-button):focus{outline-style:solid;outline-color:var(--color-primary-active);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(dropdown){background-color:var(--color-background);margin-top:var(--spacing-comp-01);padding:var(--spacing-comp-02);box-shadow:var(--box-shadow-02);}ch-suggest::part(dropdown)::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown)::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(dropdown) ::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown) ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.messages-wrapper{margin-top:var(--spacing-comp-02);display:flex;gap:var(--spacing-comp-01);flex-direction:column}gxg-suggest.gxg-validation--success ch-suggest::part(input){outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--success ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input){outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input){outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-error-dark)}gxg-suggest.gxg--disabled ch-suggest{pointer-events:none}gxg-suggest.gxg--disabled ch-suggest::part(input){background-color:var(--gray-01);color:var(--color-on-disabled)}gxg-suggest[ellipsis]:not([ellipsis=false]) ch-suggest-list-item::part(content-wrapper){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}ch-suggest-list{margin-block-start:var(--spacing-comp-02);font-family:inherit;border:var(--border-width-sm) solid var(--gxg-border-color--regular)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list:last-child{margin-block-end:0}ch-suggest-list::part(title){text-transform:uppercase;font-weight:var(--font-weight-semibold);margin:var(--spacing-comp-01) 0 0 0;padding:var(--spacing-comp-01) var(--spacing-comp-02)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list+ch-suggest-list{margin-block-start:0;border-block-start:0}ch-suggest-list+ch-suggest-list::part(title){margin-block-start:0}ch-suggest-list-item{}ch-suggest-list-item::part(button){padding:var(--spacing-comp-01) var(--spacing-comp-02);align-items:center;gap:var(--spacing-comp-01);box-sizing:border-box}ch-suggest-list-item::part(button):focus{outline-style:solid;outline-color:var(--color-primary-active);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest-list-item::part(description)::before{content:\" - \"}ch-suggest-list-item gxg-icon::part(ch-icon){--icon-size:16px;margin-right:2px}ch-suggest-list-item:hover{background-color:var(--gxg-background-color-item-hover)}";
318
+ const stylesCss = "@charset \"UTF-8\";: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(.gxg-validation--warning) .form-element{border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus{outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}:host(.gxg-validation--warning) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-warning-dark)}:host(.gxg-validation--error) .form-element{border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus{outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}:host(.gxg-validation--error) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-error-dark)}:host(.gxg-validation--success) .form-element{border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus{outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}:host(.gxg-validation--success) .form-element:focus+.checkmark{--checkmark-border-color:var(--color-success-dark)}ch-suggest{font-family:var(--font-family-primary);font-size:var(--font-size-lg);color:var(--color-on-background);}ch-suggest::-webkit-scrollbar{width:6px;height:6px}ch-suggest::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest ::-webkit-scrollbar{width:6px;height:6px}ch-suggest ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(label){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;display:flex;align-items:center;cursor:default;font-size:inherit}ch-suggest[label-position=start]::part(label){margin-inline-end:var(--gxg-label-margin-horizontal)}ch-suggest[label-position=above]::part(label){margin-block-end:var(--gxg-label-margin-vertical)}ch-suggest::part(input){height:var(--spacing-comp-05);border:var(--border-width-sm) solid var(--gxg-border-color--regular);padding:var(--spacing-comp-01) var(--spacing-comp-02);box-sizing:border-box;background-color:var(--color-background)}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(input):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(header){display:block;padding-block-end:var(--spacing-comp-02);display:flex;justify-content:flex-end}ch-suggest::part(close-button){height:var(--spacing-comp-05);width:var(--spacing-comp-05);background-color:var(--color-background);color:var(--color-primary-hover);border:1px solid var(--color-primary-hover);box-sizing:border-box;cursor:pointer;display:block}ch-suggest::part(close-button):hover{background-color:var(--color-primary-hover-opacity-01)}ch-suggest::part(close-button)::after{content:\"✖\";width:100%;display:block;line-height:24px;text-align:center}ch-suggest::part(close-button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest::part(dropdown){background-color:var(--color-background);margin-top:var(--spacing-comp-01);padding:var(--spacing-comp-02);box-shadow:var(--box-shadow-02);}ch-suggest::part(dropdown)::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown)::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown)::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-suggest::part(dropdown) ::-webkit-scrollbar{width:6px;height:6px}ch-suggest::part(dropdown) ::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-suggest::part(dropdown) ::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.messages-wrapper{margin-top:var(--spacing-comp-02);display:flex;gap:var(--spacing-comp-01);flex-direction:column}gxg-suggest.gxg-validation--success ch-suggest::part(input){outline-color:var(--color-success-dark);border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--success ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-success-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input){outline-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--warning ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-warning-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input){outline-color:var(--color-error-dark);border-color:var(--color-error-dark)}gxg-suggest.gxg-validation--error ch-suggest::part(input)+.checkmark{--checkmark-border-color:var(--color-error-dark)}gxg-suggest.gxg--disabled ch-suggest{pointer-events:none}gxg-suggest.gxg--disabled ch-suggest::part(input){background-color:var(--gray-01);color:var(--color-on-disabled)}gxg-suggest[ellipsis]:not([ellipsis=false]) ch-suggest-list-item::part(content-wrapper){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}ch-suggest-list{margin-block-start:var(--spacing-comp-02);font-family:inherit;border:var(--border-width-sm) solid var(--gxg-border-color--regular)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list:last-child{margin-block-end:0}ch-suggest-list::part(title){text-transform:uppercase;font-weight:var(--font-weight-semibold);margin:var(--spacing-comp-01) 0 0 0;padding:var(--spacing-comp-01) var(--spacing-comp-02)}ch-suggest-list:first-child{margin-block-start:0}ch-suggest-list+ch-suggest-list{margin-block-start:0;border-block-start:0}ch-suggest-list+ch-suggest-list::part(title){margin-block-start:0}ch-suggest-list-item{}ch-suggest-list-item::part(button){padding:var(--spacing-comp-01) var(--spacing-comp-02);align-items:center;gap:var(--spacing-comp-01);box-sizing:border-box}ch-suggest-list-item::part(button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-suggest-list-item::part(description)::before{content:\" - \"}ch-suggest-list-item gxg-icon::part(ch-icon){--icon-size:16px;margin-right:2px}ch-suggest-list-item:hover{background-color:var(--gxg-background-color--hover)}";
319
319
 
320
320
  const GxgSuggest = class {
321
321
  constructor(hostRef) {
@@ -4,8 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5a32426a.js');
6
6
 
7
- const testTreeXCss = "ch-test-tree-x{display:grid;grid-template-columns:350px max-content;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}";
7
+ const testTreeXCss = "ch-test-tree-x{display:grid;grid-template-columns:500px max-content;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
8
 
9
+ const DEFAULT_DRAG_DISABLED_VALUE = false;
10
+ const DEFAULT_DROP_DISABLED_VALUE = false;
9
11
  const DEFAULT_EXPANDED_VALUE = false;
10
12
  const DEFAULT_INDETERMINATE_VALUE = false;
11
13
  const DEFAULT_LAZY_VALUE = false;
@@ -22,6 +24,16 @@ const ChTestTreeX = class {
22
24
  * of items.
23
25
  */
24
26
  this.waitDropProcessing = false;
27
+ /**
28
+ * This attribute lets you specify if the drag operation is disabled in all
29
+ * items by default. If `true`, the control can't be dragged.
30
+ */
31
+ this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
32
+ /**
33
+ * This attribute lets you specify if the drop operation is disabled in all
34
+ * items by default. If `true`, the control won't accept any drops.
35
+ */
36
+ this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
25
37
  /**
26
38
  * This property lets you define the model of the ch-tree-x control.
27
39
  */
@@ -90,7 +102,7 @@ const ChTestTreeX = class {
90
102
  }
91
103
  const promise = this.dropItemsCallback(dataTransferInfo);
92
104
  this.waitDropProcessing = true;
93
- promise.then(response => {
105
+ promise.then(async (response) => {
94
106
  this.waitDropProcessing = false;
95
107
  if (!response.acceptDrop) {
96
108
  return;
@@ -101,6 +113,11 @@ const ChTestTreeX = class {
101
113
  // Add the UI models to the new container and remove the UI models from
102
114
  // the old containers
103
115
  draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
116
+ // When the selected items are moved, the tree must remove its internal
117
+ // state to not have undefined references
118
+ if (dataTransferInfo.draggingSelectedItems) {
119
+ await this.treeRef.clearSelectedItemsInfo();
120
+ }
104
121
  }
105
122
  // Add the new items
106
123
  else {
@@ -130,9 +147,12 @@ const ChTestTreeX = class {
130
147
  // Reference the new parent in the item
131
148
  itemUIModelExtended.parentItem = newParentUIModel;
132
149
  };
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)))));
150
+ this.renderSubModel = (treeSubModel, lastItem, level) => {
151
+ var _a, _b;
152
+ return (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, dragDisabled: (_a = treeSubModel.dragDisabled) !== null && _a !== void 0 ? _a : this.dragDisabled, dropDisabled: (_b = treeSubModel.dropDisabled) !== null && _b !== void 0 ? _b : this.dropDisabled, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
153
+ treeSubModel.items != null &&
154
+ treeSubModel.items.length !== 0 && (index.h("ch-tree-x-list", { slot: "tree", level: level + 1 }, treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))))));
155
+ };
136
156
  this.flattenItemUIModel = (parentModel) => (item) => {
137
157
  var _a, _b, _c, _d;
138
158
  this.flattenedTreeModel.set(item.id, {
@@ -325,7 +345,7 @@ const ChTestTreeX = class {
325
345
  this.flattenModel();
326
346
  }
327
347
  render() {
328
- return (index.h(index.Host, null, index.h("ch-tree-x", { multiSelection: this.multiSelection, showLines: this.showLines, 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" })));
348
+ return (index.h(index.Host, null, index.h("ch-tree-x", { multiSelection: this.multiSelection, 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", { level: 0 }, this.treeModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.items.length - 1, 0)))), index.h("div", { class: "tree-buttons" })));
329
349
  }
330
350
  static get watchers() { return {
331
351
  "treeModel": ["handleTreeModelChange"]
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5a32426a.js');
6
- const chGlobalStylesheet = require('./ch-global-stylesheet-145c4b20.js');
6
+ const chGlobalStylesheet = require('./ch-global-stylesheet-0e78f960.js');
7
7
 
8
8
  const chWindowCss = ":host{--ch-window-offset-x:0px;--ch-window-offset-y:0px;--ch-window-separation-x:0px;--ch-window-separation-y:0px;--ch-window-x-outside:0px;--ch-window-y-outside:0px}:host(:not([hidden])){display:contents}:host(:is(:not([modal]),[modal=\"false\"])) .mask{pointer-events:none}.window{pointer-events:all}.mask{display:flex;position:fixed;inset:0;left:calc( var(--ch-window-inset-inline-start) + var(--ch-window-offset-x) + var(--ch-window-separation-x) );inset-block-start:calc( var(--ch-window-inset-block-start) + var(--ch-window-offset-y) + var(--ch-window-separation-y) );width:var(--ch-window-mask-width);height:var(--ch-window-mask-height);z-index:var(--ch-window-mask-z-index, 1000)}:host(:is([x-align=\"outside-start\"],[x-align=\"inside-start\"])) .mask{justify-content:flex-start}:host([x-align=center]) .mask{justify-content:center}:host(:is([x-align=\"outside-end\"],[x-align=\"inside-end\"])) .mask{justify-content:flex-end}:host(:is([y-align=\"outside-start\"],[y-align=\"inside-start\"])) .mask{align-items:flex-start}:host([y-align=center]) .mask{align-items:center}:host(:is([y-align=\"outside-end\"],[y-align=\"inside-end\"])) .mask{align-items:flex-end}.window{display:flex;flex-direction:column;transform:translate(var(--ch-window-x-outside), var(--ch-window-y-outside)) translate(var(--ch-window-x-drag, 0px), var(--ch-window-y-drag, 0px));z-index:inherit}:host([x-align=outside-start]) .window{--ch-window-x-outside:-100%}:host([x-align=outside-end]) .window{--ch-window-x-outside:100%}:host([y-align=outside-start]) .window{--ch-window-y-outside:-100%}:host([y-align=outside-end]) .window{--ch-window-y-outside:100%}.separation{position:fixed;inset:0;pointer-events:all}.separation--x{top:var(--ch-window-inset-block-start);width:var(--ch-window-separation);height:var(--ch-window-mask-height)}.separation--y{left:var(--ch-window-inset-inline-start);width:var(--ch-window-mask-width);height:var(--ch-window-separation)}.separation--both{width:calc(var(--ch-window-separation) * 4);height:calc(var(--ch-window-separation) * 4)}:host([x-align=outside-start]) .separation{left:calc( var(--ch-window-inset-inline-start) - var(--ch-window-separation) )}:host([x-align=outside-start]) .separation--both{left:calc( var(--ch-window-inset-inline-start) - var(--ch-window-separation) * 3 )}:host([x-align=outside-end]) .separation{left:calc( var(--ch-window-inset-inline-start) + var(--ch-window-mask-width) )}:host([x-align=outside-end]) .separation--both{left:calc( var(--ch-window-inset-inline-start) + var(--ch-window-mask-width) - var(--ch-window-separation) )}:host([y-align=outside-start]) .separation{top:calc(var(--ch-window-inset-block-start) - var(--ch-window-separation))}:host([y-align=outside-start]) .separation--both{top:calc( var(--ch-window-inset-block-start) - var(--ch-window-separation) * 3 )}:host([y-align=outside-end]) .separation{top:calc( var(--ch-window-inset-block-start) + var(--ch-window-mask-height) )}:host([y-align=outside-end]) .separation--both{top:calc( var(--ch-window-inset-block-start) + var(--ch-window-mask-height) - var(--ch-window-separation) )}";
9
9
 
@@ -226,7 +226,7 @@ const ChWindow = class {
226
226
  });
227
227
  }
228
228
  loadGlobalStyleSheet() {
229
- this.el.shadowRoot.adoptedStyleSheets.push(chGlobalStylesheet.CH_GLOBAL_STYLESHEET);
229
+ chGlobalStylesheet.adoptGlobalStyleSheet(this.el.shadowRoot.adoptedStyleSheets);
230
230
  }
231
231
  render() {
232
232
  const separationY = this.yAlign === "outside-start" || this.yAlign === "outside-end";
@@ -32,17 +32,23 @@ const renderFormItems = (componentType = "gxg-combo-box-item", options, group =
32
32
  * @param gxOptions An array of GxOptions's
33
33
  * @returns The first option in the array that is 'selected'. If no one found it returns null.
34
34
  */
35
- const getSelectedGxOption = (gxOptions) => {
36
- let found;
37
- if (gxOptions === null || gxOptions === void 0 ? void 0 : gxOptions.length) {
35
+ const getSelectedGxOption = (gxOptions, onlyId = true) => {
36
+ if ((gxOptions === null || gxOptions === void 0 ? void 0 : gxOptions.length) > 0) {
37
+ let found = null;
38
38
  for (let i = 0; i < gxOptions.length; i++) {
39
39
  if (gxOptions[i].selected) {
40
40
  found = gxOptions[i];
41
41
  break;
42
42
  }
43
43
  }
44
+ if (found && onlyId) {
45
+ return found.id;
46
+ }
47
+ else if (!found && onlyId) {
48
+ return gxOptions[0].id;
49
+ }
50
+ return found;
44
51
  }
45
- return found;
46
52
  };
47
53
 
48
54
  exports.getSelectedGxOption = getSelectedGxOption;