@genexus/genexus-ide-ui 0.0.55 → 0.0.57

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 (140) hide show
  1. package/dist/cjs/ch-checkbox_4.cjs.entry.js +41 -27
  2. package/dist/cjs/{ch-grid-action-refresh_6.cjs.entry.js → ch-grid-action-refresh_7.cjs.entry.js} +168 -4
  3. package/dist/cjs/ch-icon_2.cjs.entry.js +1 -0
  4. package/dist/cjs/ch-suggest_4.cjs.entry.js +6 -2
  5. package/dist/cjs/ch-test-tree-x.cjs.entry.js +57 -32
  6. package/dist/cjs/config-082c7c76.js +9 -0
  7. package/dist/cjs/{form-a22de8f3.js → form-a2de5b1c.js} +14 -0
  8. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  9. package/dist/cjs/gx-grid-chameleon.cjs.entry.js +21 -3
  10. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +10 -9
  11. package/dist/cjs/gx-ide-new-object.cjs.entry.js +2 -1
  12. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +3 -2
  13. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +0 -14
  14. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +9 -4
  15. package/dist/cjs/gxg-form-checkbox-group.cjs.entry.js +1 -1
  16. package/dist/cjs/gxg-form-checkbox.cjs.entry.js +2 -2
  17. package/dist/cjs/gxg-form-radio-group.cjs.entry.js +1 -1
  18. package/dist/cjs/gxg-form-text.cjs.entry.js +19 -4
  19. package/dist/cjs/gxg-form-textarea.cjs.entry.js +8 -4
  20. package/dist/cjs/gxg-label_2.cjs.entry.js +27 -2
  21. package/dist/cjs/gxg-list-box_2.cjs.entry.js +2 -2
  22. package/dist/cjs/gxg-select.cjs.entry.js +1 -1
  23. package/dist/cjs/gxg-test.cjs.entry.js +1 -16
  24. package/dist/cjs/gxg-tree-view.cjs.entry.js +81 -40
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/collection/common/config.js +5 -0
  27. package/dist/collection/components/new-kb/new-kb.js +10 -9
  28. package/dist/collection/components/new-object/new-object.js +2 -1
  29. package/dist/collection/components/share-kb/share-kb.js +3 -2
  30. package/dist/collection/components/ww-images/ww-images.js +0 -14
  31. package/dist/components/ch-paginator-pages.js +1 -171
  32. package/dist/{esm/ch-paginator-pages.entry.js → components/ch-paginator-pages2.js} +29 -8
  33. package/dist/components/ch-paginator2.js +18 -4
  34. package/dist/components/ch-suggest2.js +5 -1
  35. package/dist/components/ch-test-tree-x.js +63 -35
  36. package/dist/components/checkbox.js +1 -1
  37. package/dist/components/combo-box.js +10 -4
  38. package/dist/components/config.js +7 -0
  39. package/dist/components/form-checkbox.js +1 -1
  40. package/dist/components/form-text.js +20 -4
  41. package/dist/components/form-textarea.js +9 -4
  42. package/dist/components/form.js +14 -1
  43. package/dist/components/gx-grid-chameleon.js +52 -28
  44. package/dist/components/gx-ide-new-kb.js +10 -9
  45. package/dist/components/gx-ide-new-object.js +2 -1
  46. package/dist/components/gx-ide-share-kb.js +3 -2
  47. package/dist/components/gx-ide-ww-images.js +0 -14
  48. package/dist/components/gxg-test.js +25 -22
  49. package/dist/components/gxg-tree-view.js +90 -44
  50. package/dist/components/icon2.js +1 -0
  51. package/dist/components/list-box.js +1 -1
  52. package/dist/components/suggest.js +1 -1
  53. package/dist/components/tooltip.js +30 -2
  54. package/dist/components/tree-x-list-item.js +25 -10
  55. package/dist/components/tree-x-list.js +2 -8
  56. package/dist/components/tree-x.js +16 -13
  57. package/dist/esm/ch-checkbox_4.entry.js +42 -28
  58. package/dist/esm/{ch-grid-action-refresh_6.entry.js → ch-grid-action-refresh_7.entry.js} +168 -5
  59. package/dist/esm/ch-icon_2.entry.js +1 -0
  60. package/dist/esm/ch-suggest_4.entry.js +6 -2
  61. package/dist/esm/ch-test-tree-x.entry.js +57 -32
  62. package/dist/esm/config-94445cc2.js +7 -0
  63. package/dist/esm/{form-5e68671c.js → form-9c41f579.js} +14 -1
  64. package/dist/esm/genexus-ide-ui.js +1 -1
  65. package/dist/esm/gx-grid-chameleon.entry.js +21 -3
  66. package/dist/esm/gx-ide-new-kb.entry.js +10 -9
  67. package/dist/esm/gx-ide-new-object.entry.js +2 -1
  68. package/dist/esm/gx-ide-share-kb.entry.js +3 -2
  69. package/dist/esm/gx-ide-ww-images.entry.js +0 -14
  70. package/dist/esm/gxg-combo-box_2.entry.js +9 -4
  71. package/dist/esm/gxg-form-checkbox-group.entry.js +1 -1
  72. package/dist/esm/gxg-form-checkbox.entry.js +2 -2
  73. package/dist/esm/gxg-form-radio-group.entry.js +1 -1
  74. package/dist/esm/gxg-form-text.entry.js +19 -4
  75. package/dist/esm/gxg-form-textarea.entry.js +8 -4
  76. package/dist/esm/gxg-label_2.entry.js +28 -3
  77. package/dist/esm/gxg-list-box_2.entry.js +2 -2
  78. package/dist/esm/gxg-select.entry.js +1 -1
  79. package/dist/esm/gxg-test.entry.js +1 -16
  80. package/dist/esm/gxg-tree-view.entry.js +81 -40
  81. package/dist/esm/loader.js +1 -1
  82. package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -2
  83. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  84. package/dist/genexus-ide-ui/icon-assets/gemini-tools/error.svg +1 -1
  85. package/dist/genexus-ide-ui/icon-assets/gemini-tools/success.svg +1 -1
  86. package/dist/genexus-ide-ui/icon-assets/gemini-tools/warning.svg +1 -1
  87. package/dist/genexus-ide-ui/{p-afe9515e.entry.js → p-0268cc45.entry.js} +1 -1
  88. package/dist/genexus-ide-ui/p-0aa11d6f.entry.js +1 -0
  89. package/dist/genexus-ide-ui/p-0f4fe7ad.js +1 -0
  90. package/dist/genexus-ide-ui/{p-a440a73f.entry.js → p-1294d220.entry.js} +1 -1
  91. package/dist/genexus-ide-ui/p-1f3a81e3.entry.js +1 -0
  92. package/dist/genexus-ide-ui/{p-4eaffd02.entry.js → p-2096031c.entry.js} +1 -1
  93. package/dist/genexus-ide-ui/{p-f3a1dc7c.entry.js → p-2537b4d6.entry.js} +1 -1
  94. package/dist/genexus-ide-ui/p-3657924a.entry.js +1 -0
  95. package/dist/genexus-ide-ui/p-3ec2f036.entry.js +1 -0
  96. package/dist/genexus-ide-ui/p-4923cffa.entry.js +1 -0
  97. package/dist/genexus-ide-ui/p-4e81926d.entry.js +1 -0
  98. package/dist/genexus-ide-ui/p-5669baf5.entry.js +1 -0
  99. package/dist/genexus-ide-ui/p-60b2bd2f.entry.js +1 -0
  100. package/dist/genexus-ide-ui/{p-522ebadf.entry.js → p-750c726a.entry.js} +1 -1
  101. package/dist/genexus-ide-ui/{p-e586d05e.entry.js → p-875e5979.entry.js} +1 -1
  102. package/dist/genexus-ide-ui/p-9e428123.entry.js +1 -0
  103. package/dist/genexus-ide-ui/p-a8b8baf9.entry.js +1 -0
  104. package/dist/genexus-ide-ui/p-dd2e0590.entry.js +1 -0
  105. package/dist/genexus-ide-ui/{p-5cb871e3.entry.js → p-ebcdef37.entry.js} +1 -1
  106. package/dist/genexus-ide-ui/p-ed5cf480.entry.js +1 -0
  107. package/dist/genexus-ide-ui/p-f1ff6b48.entry.js +1 -0
  108. package/dist/genexus-ide-ui/p-f82f25e2.js +1 -0
  109. package/dist/genexus-ide-ui/p-f9f1d95d.entry.js +1 -0
  110. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +3 -3
  111. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +1 -47
  112. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x/tree-x.css +2 -2
  113. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list-item/tree-x-list-item.css +5 -3
  114. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.css +5 -0
  115. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-checkbox/form-checkbox.css +18 -0
  116. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-text/form-text.css +37 -0
  117. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +22 -0
  118. package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box/list-box.css +18 -0
  119. package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +18 -0
  120. package/dist/node_modules/@genexus/gemini/dist/collection/components/tooltip/tooltip.css +47 -3
  121. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +10 -1
  122. package/dist/types/common/config.d.ts +3 -0
  123. package/package.json +3 -3
  124. package/dist/cjs/ch-paginator-pages.cjs.entry.js +0 -156
  125. package/dist/genexus-ide-ui/p-01406cbc.js +0 -1
  126. package/dist/genexus-ide-ui/p-03efca69.entry.js +0 -1
  127. package/dist/genexus-ide-ui/p-1d7c22d5.entry.js +0 -1
  128. package/dist/genexus-ide-ui/p-395a65de.entry.js +0 -1
  129. package/dist/genexus-ide-ui/p-3b4fca51.entry.js +0 -1
  130. package/dist/genexus-ide-ui/p-447c3a31.entry.js +0 -1
  131. package/dist/genexus-ide-ui/p-58f882c6.entry.js +0 -1
  132. package/dist/genexus-ide-ui/p-60bea19c.entry.js +0 -1
  133. package/dist/genexus-ide-ui/p-64cbe277.entry.js +0 -1
  134. package/dist/genexus-ide-ui/p-9a6cb543.entry.js +0 -1
  135. package/dist/genexus-ide-ui/p-a2fa3132.entry.js +0 -1
  136. package/dist/genexus-ide-ui/p-a708db45.entry.js +0 -1
  137. package/dist/genexus-ide-ui/p-c0edbeb5.entry.js +0 -1
  138. package/dist/genexus-ide-ui/p-cd5482fa.entry.js +0 -1
  139. package/dist/genexus-ide-ui/p-d312fe25.entry.js +0 -1
  140. package/dist/genexus-ide-ui/p-e6ae0460.entry.js +0 -1
@@ -149,10 +149,24 @@ const ChPaginator = class {
149
149
  }
150
150
  loadElements() {
151
151
  this.elPages = this.el.querySelector("ch-paginator-pages");
152
- this.elFirst = this.el.querySelector("ch-paginator-navigate[type='first']");
153
- this.elPrevious = this.el.querySelector("ch-paginator-navigate[type='previous']");
154
- this.elNext = this.el.querySelector("ch-paginator-navigate[type='next']");
155
- this.elLast = this.el.querySelector("ch-paginator-navigate[type='last']");
152
+ this.el
153
+ .querySelectorAll("ch-paginator-navigate")
154
+ .forEach((el) => {
155
+ switch (el.type) {
156
+ case "first":
157
+ this.elFirst = el;
158
+ break;
159
+ case "previous":
160
+ this.elPrevious = el;
161
+ break;
162
+ case "next":
163
+ this.elNext = el;
164
+ break;
165
+ case "last":
166
+ this.elLast = el;
167
+ break;
168
+ }
169
+ });
156
170
  }
157
171
  render() {
158
172
  if (this.elPages) {
@@ -202,6 +216,155 @@ const ChPaginatorNavigate = class {
202
216
  };
203
217
  ChPaginatorNavigate.style = chPaginatorNavigateCss;
204
218
 
219
+ const chPaginatorPagesCss = "button{all:unset}.pages{display:flex;align-items:center;list-style-type:none;margin:0;padding:0}";
220
+
221
+ const ChPaginatorPages = class {
222
+ constructor(hostRef) {
223
+ registerInstance(this, hostRef);
224
+ this.pageChanged = createEvent(this, "pageChanged", 7);
225
+ /**
226
+ * The active page number.
227
+ */
228
+ this.page = 1;
229
+ /**
230
+ * The total number of pages.
231
+ */
232
+ this.totalPages = 1;
233
+ /**
234
+ * The maximum number of items to display in the pagination.
235
+ */
236
+ this.maxSize = 9;
237
+ /**
238
+ * Flag to render the first and last pages.
239
+ */
240
+ this.renderFirstLastPages = true;
241
+ /**
242
+ * The text to display for the dots.
243
+ */
244
+ this.textDots = "...";
245
+ this.clickHandler = (eventInfo) => {
246
+ const button = eventInfo.target;
247
+ this.page = parseInt(button.value);
248
+ };
249
+ }
250
+ pageHandler() {
251
+ this.pageChanged.emit({ page: this.page });
252
+ }
253
+ maxSizeHandler() {
254
+ this.validateMaxSize();
255
+ }
256
+ renderFirstLastPagesHandler() {
257
+ this.validateMaxSize();
258
+ }
259
+ componentDidUpdate() {
260
+ if (document.activeElement === this.el) {
261
+ this.buttonActive.focus();
262
+ }
263
+ }
264
+ keyDownHandler(eventInfo) {
265
+ switch (eventInfo.key) {
266
+ case "ArrowLeft":
267
+ this.page = Math.max(this.page - 1, 1);
268
+ break;
269
+ case "ArrowRight":
270
+ this.page = Math.min(this.page + 1, this.totalPages);
271
+ break;
272
+ }
273
+ }
274
+ focusHandler() {
275
+ this.buttonActive.focus();
276
+ }
277
+ getItems() {
278
+ const padLeft = Math.ceil((this.maxSize - 1) / 2);
279
+ const padRight = Math.floor((this.maxSize - 1) / 2);
280
+ let fillLeft, fillStart;
281
+ let fillRight, fillEnd;
282
+ if (this.maxSize === 0 || this.maxSize >= this.totalPages) {
283
+ fillStart = this.fillStart(false);
284
+ fillLeft = this.page - 1;
285
+ fillRight = this.totalPages - this.page;
286
+ fillEnd = this.fillEnd(false);
287
+ }
288
+ else if (this.page <= padLeft && this.page < this.totalPages - padRight) {
289
+ fillStart = this.fillStart(false);
290
+ fillLeft = this.page - 1;
291
+ fillEnd = this.fillEnd(true);
292
+ fillRight = padRight - fillEnd.length + (padLeft - fillLeft);
293
+ }
294
+ else if (this.page > padLeft && this.page < this.totalPages - padRight) {
295
+ fillStart = this.fillStart(true);
296
+ fillLeft = padLeft - fillStart.length;
297
+ fillEnd = this.fillEnd(true);
298
+ fillRight = padRight - fillEnd.length;
299
+ }
300
+ else if (this.page > padLeft && this.page >= this.totalPages - padRight) {
301
+ fillEnd = this.fillEnd(false);
302
+ fillRight = this.totalPages - this.page;
303
+ fillStart = this.fillStart(true);
304
+ fillLeft = padLeft - fillStart.length + padRight - fillRight;
305
+ }
306
+ const items = fillStart
307
+ .concat(this.getRangeItems(this.page - fillLeft, this.page - 1))
308
+ .concat([this.page])
309
+ .concat(this.getRangeItems(this.page + 1, this.page + fillRight))
310
+ .concat(fillEnd);
311
+ return {
312
+ items,
313
+ activeIndex: fillStart.length + fillLeft
314
+ };
315
+ }
316
+ fillStart(render) {
317
+ if (render) {
318
+ return this.renderFirstLastPages ? [1, this.textDots] : [this.textDots];
319
+ }
320
+ else {
321
+ return [];
322
+ }
323
+ }
324
+ fillEnd(render) {
325
+ if (render) {
326
+ return this.renderFirstLastPages
327
+ ? [this.textDots, this.totalPages]
328
+ : [this.textDots];
329
+ }
330
+ else {
331
+ return [];
332
+ }
333
+ }
334
+ getRangeItems(start, end) {
335
+ return Array.from({ length: end - start + 1 }, (_, i) => start + i);
336
+ }
337
+ validateMaxSize() {
338
+ if (this.maxSize > 0) {
339
+ if (!this.renderFirstLastPages && this.maxSize < 3) {
340
+ this.maxSize = 3;
341
+ }
342
+ else if (this.renderFirstLastPages && this.maxSize < 5) {
343
+ this.maxSize = 5;
344
+ }
345
+ }
346
+ }
347
+ render() {
348
+ const { items, activeIndex } = this.getItems();
349
+ return (h("ol", { part: "pages", class: "pages" }, items.map((item, i) => {
350
+ if (typeof item === "number") {
351
+ return (h("li", null, h("button", { part: `page button ${i === activeIndex ? "active" : ""}`, value: item, onClick: this.clickHandler, ref: el => (this.buttonActive =
352
+ i === activeIndex ? el : this.buttonActive) }, item)));
353
+ }
354
+ else {
355
+ return (h("li", null, h("button", { part: "page button dots", disabled: true }, item)));
356
+ }
357
+ })));
358
+ }
359
+ get el() { return getElement(this); }
360
+ static get watchers() { return {
361
+ "page": ["pageHandler"],
362
+ "maxSize": ["maxSizeHandler"],
363
+ "renderFirstLastPages": ["renderFirstLastPagesHandler"]
364
+ }; }
365
+ };
366
+ ChPaginatorPages.style = chPaginatorPagesCss;
367
+
205
368
  var GxControlType;
206
369
  (function (GxControlType) {
207
370
  GxControlType[GxControlType["EDIT"] = 1] = "EDIT";
@@ -353,4 +516,4 @@ const GridChameleonColumnFilter = class {
353
516
  };
354
517
  GridChameleonColumnFilter.style = gxGridChameleonColumnFilterCss;
355
518
 
356
- export { ChGridActionRefresh as ch_grid_action_refresh, ChGridActionSettings as ch_grid_action_settings, ChGridActionbar as ch_grid_actionbar, ChPaginator as ch_paginator, ChPaginatorNavigate as ch_paginator_navigate, GridChameleonColumnFilter as gx_grid_chameleon_column_filter };
519
+ export { ChGridActionRefresh as ch_grid_action_refresh, ChGridActionSettings as ch_grid_action_settings, ChGridActionbar as ch_grid_actionbar, ChPaginator as ch_paginator, ChPaginatorNavigate as ch_paginator_navigate, ChPaginatorPages as ch_paginator_pages, GridChameleonColumnFilter as gx_grid_chameleon_column_filter };
@@ -121,6 +121,7 @@ const COLOR_MAPPINGS = {
121
121
  error: "color-error-dark",
122
122
  negative: "color-on-primary",
123
123
  onbackground: "color-on-background",
124
+ indeterminate: "color-primary-active",
124
125
  "primary-enabled": "color-primary-enabled",
125
126
  "primary-active": "color-primary-active",
126
127
  "primary-hover": "color-primary-hover",
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-0da01575.js';
2
2
  import { s as state } from './store-c2650ca5.js';
3
- import { a as formMessageLogic } from './form-5e68671c.js';
3
+ import { a as formMessageLogic } from './form-9c41f579.js';
4
4
  import { f as formClasses, c as commonClassesNames } from './classesNames-6cd8fadb.js';
5
5
 
6
6
  const chSuggestCss = "*,::after,::before{box-sizing:border-box}:host{--window-max-height:none;--window-gap:50px}.main-wrapper{display:block}.label-input-wrapper{display:flex}.label-input-wrapper .input{flex:1}:host([label-position=start]) .label-input-wrapper{flex-direction:row}:host([label-position=above]) .label-input-wrapper{flex-direction:column}.input{background-color:unset;border:none;color:inherit;font:inherit;margin:0;padding:0;outline:0}.ch-window-container{position:relative}ch-window::part(window){width:100%;max-height:calc(var(--window-max-height) - var(--window-gap));overflow-y:auto}";
@@ -11,6 +11,7 @@ const ChSuggest = class {
11
11
  constructor(hostRef) {
12
12
  registerInstance(this, hostRef);
13
13
  this.valueChanged = createEvent(this, "valueChanged", 7);
14
+ this.selectionChanged = createEvent(this, "selectionChanged", 7);
14
15
  this.keyEventsDictionary = {
15
16
  ArrowDown: (e) => {
16
17
  const newFocusedItem = this.getNewFocusedItem(e.currentFocusedItem, ARROW_DOWN$1);
@@ -171,8 +172,10 @@ const ChSuggest = class {
171
172
  // 6.COMPONENT LIFECYCLE EVENTS //
172
173
  // 7.LISTENERS //
173
174
  itemSelectedHandler(event) {
175
+ event.stopPropagation();
174
176
  this.value = event.detail.value;
175
177
  this.closeWindow();
178
+ this.selectionChanged.emit(event.detail);
176
179
  }
177
180
  focusChangeAttemptHandler(event) {
178
181
  const keyEventHandler = this.keyEventsDictionary[event.detail.code];
@@ -195,6 +198,7 @@ const ChSuggest = class {
195
198
  windowClosedHandler() {
196
199
  this.textInput.focus();
197
200
  this.windowHidden = true;
201
+ this.el.innerHTML = "";
198
202
  }
199
203
  // 9.PUBLIC METHODS API //
200
204
  /**
@@ -311,7 +315,7 @@ const ChSuggestListItem = class {
311
315
  };
312
316
  ChSuggestListItem.style = chSuggestListItemCss;
313
317
 
314
- 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)}";
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)}.tooltip-outer-wrapper{display:grid;grid-template-columns:0fr;transition:grid-template-columns var(--timing-02)}:host(.tooltip--visible) .tooltip-outer-wrapper{grid-template-columns:1fr}.tooltip-inner-wrapper gxg-icon{display:flex;position:relative !important;top:0 !important;transform:none !important}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)}";
315
319
 
316
320
  const GxgSuggest = class {
317
321
  constructor(hostRef) {
@@ -1,9 +1,10 @@
1
1
  import { r as registerInstance, h, f as forceUpdate, H as Host } from './index-0da01575.js';
2
2
 
3
- 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}";
3
+ const testTreeXCss = "ch-test-tree-x{display:contents}";
4
4
 
5
5
  const DEFAULT_DRAG_DISABLED_VALUE = false;
6
6
  const DEFAULT_DROP_DISABLED_VALUE = false;
7
+ const DEFAULT_CLASS_VALUE = "tree-view-item";
7
8
  const DEFAULT_EXPANDED_VALUE = false;
8
9
  const DEFAULT_INDETERMINATE_VALUE = false;
9
10
  const DEFAULT_LAZY_VALUE = false;
@@ -33,7 +34,7 @@ const ChTestTreeX = class {
33
34
  /**
34
35
  * This property lets you define the model of the ch-tree-x control.
35
36
  */
36
- this.treeModel = { items: [] };
37
+ this.treeModel = [];
37
38
  /**
38
39
  * Set this attribute if you want to allow multi selection of the items.
39
40
  */
@@ -44,14 +45,16 @@ const ChTestTreeX = class {
44
45
  */
45
46
  this.showLines = "none";
46
47
  this.handleDroppableZoneEnter = (event) => {
47
- const dropInformation = event.detail;
48
48
  if (!this.checkDroppableZoneCallback) {
49
49
  return;
50
50
  }
51
+ event.stopPropagation();
52
+ // Suppose the request is made immediately by executing the callback
51
53
  const requestTimestamp = new Date().getTime();
54
+ const dropInformation = event.detail;
52
55
  const promise = this.checkDroppableZoneCallback(dropInformation);
53
56
  promise.then(validDrop => {
54
- this.treeRef.updateValidDroppableZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
57
+ this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
55
58
  });
56
59
  };
57
60
  this.handleSelectedItemsChange = (event) => {
@@ -85,6 +88,10 @@ const ChTestTreeX = class {
85
88
  itemInfo.expanded = detail.expanded;
86
89
  };
87
90
  this.handleItemsDropped = (event) => {
91
+ if (!this.dropItemsCallback) {
92
+ return;
93
+ }
94
+ event.stopPropagation();
88
95
  const dataTransferInfo = event.detail;
89
96
  const newContainer = dataTransferInfo.newContainer;
90
97
  const newParentId = newContainer.id;
@@ -93,7 +100,7 @@ const ChTestTreeX = class {
93
100
  return;
94
101
  }
95
102
  const draggedItems = dataTransferInfo.draggedItems;
96
- if (draggedItems.length === 0 || !this.dropItemsCallback) {
103
+ if (draggedItems.length === 0) {
97
104
  return;
98
105
  }
99
106
  const promise = this.dropItemsCallback(dataTransferInfo);
@@ -145,9 +152,9 @@ const ChTestTreeX = class {
145
152
  };
146
153
  this.renderSubModel = (treeSubModel, lastItem, level) => {
147
154
  var _a, _b;
148
- return (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 &&
155
+ return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, downloading: treeSubModel.downloading, 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 &&
149
156
  treeSubModel.items != null &&
150
- treeSubModel.items.length !== 0 && (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))))));
157
+ treeSubModel.items.length !== 0 && (h("ch-tree-x-list", { slot: "tree" }, treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))))));
151
158
  };
152
159
  this.flattenItemUIModel = (parentModel) => (item) => {
153
160
  var _a, _b, _c, _d;
@@ -157,6 +164,7 @@ const ChTestTreeX = class {
157
164
  });
158
165
  // Make sure the properties are with their default values to avoid issues
159
166
  // when reusing DOM nodes
167
+ item.class || (item.class = DEFAULT_CLASS_VALUE);
160
168
  (_a = item.expanded) !== null && _a !== void 0 ? _a : (item.expanded = DEFAULT_EXPANDED_VALUE);
161
169
  (_b = item.indeterminate) !== null && _b !== void 0 ? _b : (item.indeterminate = DEFAULT_INDETERMINATE_VALUE);
162
170
  (_c = item.lazy) !== null && _c !== void 0 ? _c : (item.lazy = DEFAULT_LAZY_VALUE);
@@ -173,6 +181,27 @@ const ChTestTreeX = class {
173
181
  handleTreeModelChange() {
174
182
  this.flattenModel();
175
183
  }
184
+ /**
185
+ * Given an item id, an array of items to add, the download status and the
186
+ * lazy state, updates the item's UI Model.
187
+ */
188
+ async loadLazyContent(itemId, items, downloading = false, lazy = false) {
189
+ const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(itemId);
190
+ // Establish that the content was lazy loaded
191
+ this.flattenedLazyTreeModel.delete(itemId);
192
+ itemToLazyLoadContent.downloading = downloading;
193
+ itemToLazyLoadContent.lazy = lazy;
194
+ // Check if there is items to add
195
+ if (items == null) {
196
+ return;
197
+ }
198
+ // @todo What happens in the server when dropping items on a lazy node?
199
+ itemToLazyLoadContent.items = items;
200
+ this.sortItems(itemToLazyLoadContent.items);
201
+ this.flattenSubModel(itemToLazyLoadContent);
202
+ // Force re-render
203
+ forceUpdate(this);
204
+ }
176
205
  /**
177
206
  * Given an item id, it displays and scrolls into the item view.
178
207
  */
@@ -248,6 +277,16 @@ const ChTestTreeX = class {
248
277
  });
249
278
  forceUpdate(this);
250
279
  }
280
+ /**
281
+ * Update the information about the valid droppable zones.
282
+ * @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
283
+ * @param newContainerId ID of the container where the drag is trying to be made.
284
+ * @param draggedItems Information about the dragged items.
285
+ * @param validDrop Current state of the droppable zone.
286
+ */
287
+ async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
288
+ this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
289
+ }
251
290
  updateItemProperty(itemUIModel, properties) {
252
291
  if (!itemUIModel) {
253
292
  return;
@@ -258,36 +297,22 @@ const ChTestTreeX = class {
258
297
  });
259
298
  }
260
299
  loadLazyChildrenHandler(event) {
300
+ if (!this.lazyLoadTreeItemsCallback) {
301
+ return;
302
+ }
261
303
  event.stopPropagation();
262
304
  const treeItemId = event.detail;
263
- if (this.lazyLoadTreeItemsCallback) {
264
- const promise = this.lazyLoadTreeItemsCallback(treeItemId);
265
- const itemRef = event.target;
266
- itemRef.downloading = true;
267
- promise.then(result => {
268
- const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(treeItemId);
269
- // Establish that the content was lazy loaded
270
- this.flattenedLazyTreeModel.delete(treeItemId);
271
- itemToLazyLoadContent.lazy = false;
272
- itemRef.downloading = false;
273
- // Check if there is items to add
274
- if (result == null) {
275
- return;
276
- }
277
- // @todo What happens in the server when dropping items on a lazy node?
278
- itemToLazyLoadContent.items = result;
279
- this.sortItems(itemToLazyLoadContent.items);
280
- this.flattenSubModel(itemToLazyLoadContent);
281
- // Force re-render
282
- forceUpdate(this);
283
- });
284
- }
305
+ const promise = this.lazyLoadTreeItemsCallback(treeItemId);
306
+ event.target.downloading = true;
307
+ promise.then(result => {
308
+ this.loadLazyContent(treeItemId, result);
309
+ });
285
310
  }
286
311
  handleCaptionModification(event) {
287
- event.stopPropagation();
288
312
  if (!this.modifyItemCaptionCallback) {
289
313
  return;
290
314
  }
315
+ event.stopPropagation();
291
316
  const itemRef = event.target;
292
317
  const itemId = event.detail.id;
293
318
  const itemUIModel = this.flattenedTreeModel.get(itemId);
@@ -335,13 +360,13 @@ const ChTestTreeX = class {
335
360
  flattenModel() {
336
361
  this.flattenedTreeModel.clear();
337
362
  this.flattenedLazyTreeModel.clear();
338
- this.flattenSubModel(this.treeModel);
363
+ this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
339
364
  }
340
365
  componentWillLoad() {
341
366
  this.flattenModel();
342
367
  }
343
368
  render() {
344
- return (h(Host, null, 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) }, 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)))), h("div", { class: "tree-buttons" })));
369
+ return (h(Host, null, h("ch-tree-x", { class: this.cssClass || null, multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: el => (this.treeRef = el) }, this.treeModel.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.length - 1, 0)))));
345
370
  }
346
371
  static get watchers() { return {
347
372
  "treeModel": ["handleTreeModelChange"]
@@ -0,0 +1,7 @@
1
+ /* The purpose of config is to provide a simple way to change options/settings that are generally applied on all the components*/
2
+ const config = {
3
+ // tooltip is a property that exists on some gemini controls. When set to true, it will display the error/warning/success message (if any) by using a tooltip, instead of displaying the message under the control. The tooltip prevents changes on the component total height, which is desired.
4
+ tooltip: true
5
+ };
6
+
7
+ export { config as c };
@@ -34,5 +34,18 @@ function formMessageLogic(comp) {
34
34
  : null;
35
35
  }
36
36
  }
37
+ function formTooltipLogic(comp) {
38
+ {
39
+ const color = comp.validationStatus;
40
+ return (
41
+ // <div class="tooltip-outer-wrapper">
42
+ comp.validationStatus !== "indeterminate" &&
43
+ comp.validationMessage.length > 0 ? (h("div", { class: "tooltip-inner-wrapper" },
44
+ h("gxg-tooltip", { label: comp.validationMessage, noBorder: true, alignEnd: true, flex: true, fixed: true },
45
+ h("gxg-icon", { color: color, type: `gemini-tools/${comp.validationStatus}` })))) : null
46
+ // </div>
47
+ );
48
+ }
49
+ }
37
50
 
38
- export { formMessageLogic as a, formMessage as f, requiredLabel as r };
51
+ export { formMessageLogic as a, formTooltipLogic as b, formMessage as f, requiredLabel as r };