@genexus/genexus-ide-ui 0.0.56 → 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 (135) 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/gxg-combo-box_2.cjs.entry.js +9 -4
  14. package/dist/cjs/gxg-form-checkbox-group.cjs.entry.js +1 -1
  15. package/dist/cjs/gxg-form-checkbox.cjs.entry.js +2 -2
  16. package/dist/cjs/gxg-form-radio-group.cjs.entry.js +1 -1
  17. package/dist/cjs/gxg-form-text.cjs.entry.js +19 -4
  18. package/dist/cjs/gxg-form-textarea.cjs.entry.js +8 -4
  19. package/dist/cjs/gxg-label_2.cjs.entry.js +27 -2
  20. package/dist/cjs/gxg-list-box_2.cjs.entry.js +2 -2
  21. package/dist/cjs/gxg-select.cjs.entry.js +1 -1
  22. package/dist/cjs/gxg-test.cjs.entry.js +1 -16
  23. package/dist/cjs/gxg-tree-view.cjs.entry.js +81 -40
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/common/config.js +5 -0
  26. package/dist/collection/components/new-kb/new-kb.js +10 -9
  27. package/dist/collection/components/new-object/new-object.js +2 -1
  28. package/dist/collection/components/share-kb/share-kb.js +3 -2
  29. package/dist/components/ch-paginator-pages.js +1 -171
  30. package/dist/{esm/ch-paginator-pages.entry.js → components/ch-paginator-pages2.js} +29 -8
  31. package/dist/components/ch-paginator2.js +18 -4
  32. package/dist/components/ch-suggest2.js +5 -1
  33. package/dist/components/ch-test-tree-x.js +63 -35
  34. package/dist/components/checkbox.js +1 -1
  35. package/dist/components/combo-box.js +10 -4
  36. package/dist/components/config.js +7 -0
  37. package/dist/components/form-checkbox.js +1 -1
  38. package/dist/components/form-text.js +20 -4
  39. package/dist/components/form-textarea.js +9 -4
  40. package/dist/components/form.js +14 -1
  41. package/dist/components/gx-grid-chameleon.js +52 -28
  42. package/dist/components/gx-ide-new-kb.js +10 -9
  43. package/dist/components/gx-ide-new-object.js +2 -1
  44. package/dist/components/gx-ide-share-kb.js +3 -2
  45. package/dist/components/gxg-test.js +25 -22
  46. package/dist/components/gxg-tree-view.js +90 -44
  47. package/dist/components/icon2.js +1 -0
  48. package/dist/components/list-box.js +1 -1
  49. package/dist/components/suggest.js +1 -1
  50. package/dist/components/tooltip.js +30 -2
  51. package/dist/components/tree-x-list-item.js +25 -10
  52. package/dist/components/tree-x-list.js +2 -8
  53. package/dist/components/tree-x.js +16 -13
  54. package/dist/esm/ch-checkbox_4.entry.js +42 -28
  55. package/dist/esm/{ch-grid-action-refresh_6.entry.js → ch-grid-action-refresh_7.entry.js} +168 -5
  56. package/dist/esm/ch-icon_2.entry.js +1 -0
  57. package/dist/esm/ch-suggest_4.entry.js +6 -2
  58. package/dist/esm/ch-test-tree-x.entry.js +57 -32
  59. package/dist/esm/config-94445cc2.js +7 -0
  60. package/dist/esm/{form-5e68671c.js → form-9c41f579.js} +14 -1
  61. package/dist/esm/genexus-ide-ui.js +1 -1
  62. package/dist/esm/gx-grid-chameleon.entry.js +21 -3
  63. package/dist/esm/gx-ide-new-kb.entry.js +10 -9
  64. package/dist/esm/gx-ide-new-object.entry.js +2 -1
  65. package/dist/esm/gx-ide-share-kb.entry.js +3 -2
  66. package/dist/esm/gxg-combo-box_2.entry.js +9 -4
  67. package/dist/esm/gxg-form-checkbox-group.entry.js +1 -1
  68. package/dist/esm/gxg-form-checkbox.entry.js +2 -2
  69. package/dist/esm/gxg-form-radio-group.entry.js +1 -1
  70. package/dist/esm/gxg-form-text.entry.js +19 -4
  71. package/dist/esm/gxg-form-textarea.entry.js +8 -4
  72. package/dist/esm/gxg-label_2.entry.js +28 -3
  73. package/dist/esm/gxg-list-box_2.entry.js +2 -2
  74. package/dist/esm/gxg-select.entry.js +1 -1
  75. package/dist/esm/gxg-test.entry.js +1 -16
  76. package/dist/esm/gxg-tree-view.entry.js +81 -40
  77. package/dist/esm/loader.js +1 -1
  78. package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -2
  79. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  80. package/dist/genexus-ide-ui/icon-assets/gemini-tools/error.svg +1 -1
  81. package/dist/genexus-ide-ui/icon-assets/gemini-tools/success.svg +1 -1
  82. package/dist/genexus-ide-ui/icon-assets/gemini-tools/warning.svg +1 -1
  83. package/dist/genexus-ide-ui/{p-afe9515e.entry.js → p-0268cc45.entry.js} +1 -1
  84. package/dist/genexus-ide-ui/p-0aa11d6f.entry.js +1 -0
  85. package/dist/genexus-ide-ui/p-0f4fe7ad.js +1 -0
  86. package/dist/genexus-ide-ui/{p-a440a73f.entry.js → p-1294d220.entry.js} +1 -1
  87. package/dist/genexus-ide-ui/p-1f3a81e3.entry.js +1 -0
  88. package/dist/genexus-ide-ui/{p-4eaffd02.entry.js → p-2096031c.entry.js} +1 -1
  89. package/dist/genexus-ide-ui/{p-f3a1dc7c.entry.js → p-2537b4d6.entry.js} +1 -1
  90. package/dist/genexus-ide-ui/p-3657924a.entry.js +1 -0
  91. package/dist/genexus-ide-ui/p-3ec2f036.entry.js +1 -0
  92. package/dist/genexus-ide-ui/p-4923cffa.entry.js +1 -0
  93. package/dist/genexus-ide-ui/p-4e81926d.entry.js +1 -0
  94. package/dist/genexus-ide-ui/p-5669baf5.entry.js +1 -0
  95. package/dist/genexus-ide-ui/p-60b2bd2f.entry.js +1 -0
  96. package/dist/genexus-ide-ui/{p-e586d05e.entry.js → p-875e5979.entry.js} +1 -1
  97. package/dist/genexus-ide-ui/p-9e428123.entry.js +1 -0
  98. package/dist/genexus-ide-ui/p-a8b8baf9.entry.js +1 -0
  99. package/dist/genexus-ide-ui/p-dd2e0590.entry.js +1 -0
  100. package/dist/genexus-ide-ui/{p-5cb871e3.entry.js → p-ebcdef37.entry.js} +1 -1
  101. package/dist/genexus-ide-ui/p-ed5cf480.entry.js +1 -0
  102. package/dist/genexus-ide-ui/p-f1ff6b48.entry.js +1 -0
  103. package/dist/genexus-ide-ui/p-f82f25e2.js +1 -0
  104. package/dist/genexus-ide-ui/p-f9f1d95d.entry.js +1 -0
  105. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +3 -3
  106. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +1 -47
  107. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x/tree-x.css +2 -2
  108. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list-item/tree-x-list-item.css +5 -3
  109. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.css +5 -0
  110. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-checkbox/form-checkbox.css +18 -0
  111. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-text/form-text.css +37 -0
  112. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +22 -0
  113. package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box/list-box.css +18 -0
  114. package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +18 -0
  115. package/dist/node_modules/@genexus/gemini/dist/collection/components/tooltip/tooltip.css +47 -3
  116. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +10 -1
  117. package/dist/types/common/config.d.ts +3 -0
  118. package/package.json +3 -3
  119. package/dist/cjs/ch-paginator-pages.cjs.entry.js +0 -156
  120. package/dist/genexus-ide-ui/p-01406cbc.js +0 -1
  121. package/dist/genexus-ide-ui/p-03efca69.entry.js +0 -1
  122. package/dist/genexus-ide-ui/p-1d7c22d5.entry.js +0 -1
  123. package/dist/genexus-ide-ui/p-395a65de.entry.js +0 -1
  124. package/dist/genexus-ide-ui/p-3b4fca51.entry.js +0 -1
  125. package/dist/genexus-ide-ui/p-447c3a31.entry.js +0 -1
  126. package/dist/genexus-ide-ui/p-58f882c6.entry.js +0 -1
  127. package/dist/genexus-ide-ui/p-60bea19c.entry.js +0 -1
  128. package/dist/genexus-ide-ui/p-64cbe277.entry.js +0 -1
  129. package/dist/genexus-ide-ui/p-9a6cb543.entry.js +0 -1
  130. package/dist/genexus-ide-ui/p-a2fa3132.entry.js +0 -1
  131. package/dist/genexus-ide-ui/p-a708db45.entry.js +0 -1
  132. package/dist/genexus-ide-ui/p-c0edbeb5.entry.js +0 -1
  133. package/dist/genexus-ide-ui/p-cd5482fa.entry.js +0 -1
  134. package/dist/genexus-ide-ui/p-d312fe25.entry.js +0 -1
  135. package/dist/genexus-ide-ui/p-e6ae0460.entry.js +0 -1
@@ -6,7 +6,7 @@ const index = require('./index-5a32426a.js');
6
6
  const reserverdNames = require('./reserverd-names-1b00889a.js');
7
7
  const helpers = require('./helpers-291cb1cb.js');
8
8
 
9
- const checkboxCss = "*,::before,::after{box-sizing:border-box}:host{display:flex;align-items:center;align-self:stretch;outline:unset;touch-action:manipulation;user-select:none}:host(.ch-checkbox--actionable) :is(.input,.label){cursor:pointer}.container{position:relative;width:min(1em, 20px);height:min(1em, 20px);border:1px solid var(--option-border-color, #000);border-radius:18.75%}.container--checked{background-color:var(--option-checked-color, #ffffff00)}.container:focus-within{box-shadow:0 0 1px 1px #00000040}.input{display:flex;width:100%;height:100%;opacity:0;margin:0;padding:0}.option{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);width:50%;height:50%;background-color:#000;opacity:0;pointer-events:none}.option--checked{opacity:1;-webkit-mask:url(\"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' %3E%3Cpath fill='currentColor' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z' /%3E%3C/svg%3E\")}.option--indeterminate{opacity:1}.label{margin-inline-start:min(0.35em, 7px)}";
9
+ const checkboxCss = "*,::before,::after{box-sizing:border-box}:host{display:flex;align-items:center;align-self:stretch;outline:unset;touch-action:manipulation;user-select:none}:host(.ch-checkbox--actionable) :is(.input,.label){cursor:pointer}.container{position:relative;width:min(1em, 20px);height:min(1em, 20px);border:1px solid var(--option-border-color, currentColor);border-radius:18.75%}.container--checked{background-color:var(--option-checked-color, #ffffff00)}.container:focus-within{box-shadow:0 0 1px 1px color-mix(in srgb, currentColor 25%, transparent)}.input{display:flex;width:100%;height:100%;opacity:0;margin:0;padding:0}.option{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);width:50%;height:50%;background-color:currentColor;opacity:0;pointer-events:none}.option--checked{opacity:1;-webkit-mask:url(\"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' %3E%3Cpath fill='currentColor' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z' /%3E%3C/svg%3E\")}.option--indeterminate{opacity:1}.label{margin-inline-start:min(0.35em, 7px)}";
10
10
 
11
11
  const CHECKBOX_ID = "checkbox";
12
12
  const PARTS = (checked, indeterminate) => `${checked ? " checked" : ""}${indeterminate ? " indeterminate" : ""}`;
@@ -105,7 +105,7 @@ const scrollToEdge = (event, container, scrollSpeed, scrollThreshold) => {
105
105
  }
106
106
  };
107
107
 
108
- const treeXCss = "ch-tree-x{display:flex;position:relative;overflow:auto}ch-tree-x>ch-tree-x-list{position:absolute;inset:0;min-width:max-content}ch-tree-x.ch-tree-x-dragging-item ch-tree-x-list-item{pointer-events:var(--ch-tree-x-pointer-events, all)}ch-tree-x.ch-tree-x-dragging-item .ch-tree-x-list-item--deny-drop,ch-tree-x.ch-tree-x-dragging-item ch-tree-x-list{pointer-events:none}ch-tree-x.ch-tree-x--dragging-selected-items ch-tree-x-list-item[selected]{--ch-tree-x-pointer-events:none}ch-tree-x.ch-tree-x-waiting-drop-processing{cursor:wait}ch-tree-x.ch-tree-x-waiting-drop-processing>ch-tree-x-list{pointer-events:none}.ch-tree-x-drag-info{--rtl-offset:16px;position:fixed;left:0;top:0;transform:translate(calc(var(--ch-tree-x-dragging-item-x) + var(--rtl-offset)), calc(var(--ch-tree-x-dragging-item-y) + 8px));pointer-events:none;z-index:1;animation:ch-tree-x-drag-info-fade-in 10ms}@keyframes ch-tree-x-drag-info-fade-in{0%,100%{opacity:0}}html[dir=rtl] .ch-tree-x-drag-info{--rtl-offset:-100%}";
108
+ const treeXCss = "ch-tree-x{display:flex;position:relative;width:100%;overflow:auto}ch-tree-x>.ch-tree-x-container{position:absolute;inset:0}ch-tree-x.ch-tree-x-dragging-item ch-tree-x-list-item{pointer-events:var(--ch-tree-x-pointer-events, all)}ch-tree-x.ch-tree-x-dragging-item .ch-tree-x-list-item--deny-drop,ch-tree-x.ch-tree-x-dragging-item ch-tree-x-list{pointer-events:none}ch-tree-x.ch-tree-x--dragging-selected-items ch-tree-x-list-item[selected]{--ch-tree-x-pointer-events:none}ch-tree-x.ch-tree-x-waiting-drop-processing{cursor:wait}ch-tree-x.ch-tree-x-waiting-drop-processing>ch-tree-x-list{pointer-events:none}.ch-tree-x-drag-info{--rtl-offset:16px;position:fixed;left:0;top:0;transform:translate(calc(var(--ch-tree-x-dragging-item-x) + var(--rtl-offset)), calc(var(--ch-tree-x-dragging-item-y) + 8px));pointer-events:none;z-index:1;animation:ch-tree-x-drag-info-fade-in 10ms}@keyframes ch-tree-x-drag-info-fade-in{0%,100%{opacity:0}}html[dir=rtl] .ch-tree-x-drag-info{--rtl-offset:-100%}";
109
109
 
110
110
  const TREE_ITEM_TAG_NAME$1 = "ch-tree-x-list-item";
111
111
  const TREE_TAG_NAME = "ch-tree-x";
@@ -115,8 +115,9 @@ const TEXT_FORMAT = "text/plain";
115
115
  const ARROW_DOWN_KEY = "ArrowDown";
116
116
  const ARROW_UP_KEY = "ArrowUp";
117
117
  const EDIT_KEY = "F2";
118
- const isExecutedInTree = (event, el) => event.composedPath().includes(el);
119
- const treeItemIsInEditMode = () => document.activeElement.editing;
118
+ const isTreeItem = (element) => element.tagName.toLowerCase() === TREE_ITEM_TAG_NAME$1;
119
+ const getFocusedTreeItem = () => helpers.focusComposedPath().find(isTreeItem);
120
+ const canMoveTreeItemFocus = (treeItem) => treeItem && !treeItem.editing;
120
121
  const getDroppableZoneKey = (newContainerId, draggedItems) => `"newContainerId":"${newContainerId}","metadata":"${JSON.stringify(draggedItems)}"`;
121
122
  const POSITION_X_DRAG_CUSTOM_VAR = "--ch-tree-x-dragging-item-x";
122
123
  const POSITION_Y_DRAG_CUSTOM_VAR = "--ch-tree-x-dragging-item-y";
@@ -130,27 +131,28 @@ const ChTreeX = class {
130
131
  // @todo TODO: Check if key codes works in Safari
131
132
  this.keyDownEvents = {
132
133
  [ARROW_DOWN_KEY]: event => {
133
- if (!isExecutedInTree(event, this.el) || treeItemIsInEditMode()) {
134
+ const treeItem = getFocusedTreeItem();
135
+ if (!canMoveTreeItemFocus(treeItem)) {
134
136
  return;
135
137
  }
136
138
  event.preventDefault();
137
- const treeItem = document.activeElement;
138
139
  treeItem.focusNextItem(helpers.mouseEventModifierKey(event));
139
140
  },
140
141
  [ARROW_UP_KEY]: event => {
141
- if (!isExecutedInTree(event, this.el) || treeItemIsInEditMode()) {
142
+ const treeItem = getFocusedTreeItem();
143
+ if (!canMoveTreeItemFocus(treeItem)) {
142
144
  return;
143
145
  }
144
146
  event.preventDefault();
145
- const treeItem = document.activeElement;
146
147
  treeItem.focusPreviousItem(helpers.mouseEventModifierKey(event));
147
148
  },
148
149
  [EDIT_KEY]: event => {
149
- if (document.activeElement.tagName.toLowerCase() !== TREE_ITEM_TAG_NAME$1) {
150
+ const treeItem = getFocusedTreeItem();
151
+ if (!treeItem) {
150
152
  return;
151
153
  }
152
154
  event.preventDefault();
153
- document.activeElement.editing = true;
155
+ treeItem.editing = true;
154
156
  }
155
157
  };
156
158
  this.draggingSelectedItems = false;
@@ -369,7 +371,7 @@ const ChTreeX = class {
369
371
  * @param draggedItems Information about the dragged items.
370
372
  * @param validDrop Current state of the droppable zone.
371
373
  */
372
- async updateValidDroppableZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
374
+ async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
373
375
  var _a;
374
376
  if (!this.draggingInTheDocument ||
375
377
  requestTimestamp <= this.dragStartTimestamp) {
@@ -531,9 +533,10 @@ const ChTreeX = class {
531
533
  render() {
532
534
  return (index.h(index.Host, { class: {
533
535
  "ch-tree-x-dragging-item": this.draggingInTheDocument,
536
+ "ch-tree-x-not-dragging-item": !this.draggingInTheDocument,
534
537
  "ch-tree-x--dragging-selected-items": this.draggingInTree && this.draggingSelectedItems,
535
538
  "ch-tree-x-waiting-drop-processing": this.waitDropProcessing
536
- } }, index.h("slot", null), this.draggingInTree && (index.h("span", { "aria-hidden": "true", class: "ch-tree-x-drag-info" }, this.dragInfo))));
539
+ } }, index.h("div", { role: "tree", "aria-multiselectable": this.multiSelection.toString(), class: "ch-tree-x-container" }, index.h("slot", null)), this.draggingInTree && (index.h("span", { "aria-hidden": "true", class: "ch-tree-x-drag-info" }, this.dragInfo))));
537
540
  }
538
541
  get el() { return index.getElement(this); }
539
542
  };
@@ -544,21 +547,18 @@ const treeXListCss = ":host{display:grid;grid-auto-rows:min-content;position:rel
544
547
  const ChTreeListX = class {
545
548
  constructor(hostRef) {
546
549
  index.registerInstance(this, hostRef);
547
- /**
548
- * Level in the tree at which the control is placed.
549
- */
550
- this.level = 0;
551
550
  }
552
551
  render() {
553
- return (index.h(index.Host, { role: this.level === 0 ? "tree" : "group" }, index.h("slot", null)));
552
+ return (index.h(index.Host, { role: "group" }, index.h("slot", null)));
554
553
  }
555
554
  get el() { return index.getElement(this); }
556
555
  };
557
556
  ChTreeListX.style = treeXListCss;
558
557
 
559
- const treeXListItemCss = ":where(button){all:unset;display:flex;cursor:pointer;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--checkbox-size:1em;--expandable-button-width:0.75em;--ch-tree-x-list-item-dashed-line--offset:0px;--tab-width:calc(\n var(--checkbox-size) + var(--expandable-button-width) +\n (5px * 2)\n );display:grid;grid-template-rows:min-content;overflow:hidden}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:var(--padding-inline-start)}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--expandable-button-width) + 5px\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(var(--expandable-button-width) / 2)}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(var(--checkbox-size) / 2);--parent-negative-checkbox-offset:calc(var(--checkbox-size) / 2)}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-x-list-item-dashed-line--offset) );height:1px;width:calc( var(--tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-x-list-item-dashed-line--offset) - 4px );border:0 dashed #a9a9a9;border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--expandable-button-width);height:var(--expandable-button-width);margin-inline-end:5px;z-index:1;content-visibility:auto;contain-intrinsic-size:auto var(--expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc(var(--expandable-button-width) - 2px)}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{margin-inline-end:5px}.checkbox::part(container){width:var(--checkbox-size);height:var(--checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:5px}.right-img{grid-area:right-img;margin-inline-start:5px}.edit-name{grid-area:text;width:100%;height:100%;background-color:unset;padding:0;margin:0;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-template-rows:0fr;content-visibility:auto;contain-intrinsic-size:auto 100px}.expanded{grid-template-rows:1fr}:not(.expanded) ::slotted([slot=tree]){display:none;overflow:hidden;content-visibility:hidden}";
558
+ const treeXListItemCss = ":where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--checkbox-size:1em;--expandable-button-width:0.75em;--ch-tree-x-list-item-dashed-line--offset:0px;--tab-width:calc(\n var(--checkbox-size) + var(--expandable-button-width) +\n (5px * 2)\n );display:grid;grid-template-rows:min-content;overflow:hidden}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:var(--padding-inline-start)}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--expandable-button-width) + 5px\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(var(--expandable-button-width) / 2)}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(var(--checkbox-size) / 2);--parent-negative-checkbox-offset:calc(var(--checkbox-size) / 2)}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-x-list-item-dashed-line--offset) );height:1px;width:calc( var(--tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-x-list-item-dashed-line--offset) - 4px );border:0 dashed color-mix(in srgb, currentColor 65%, transparent);border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--expandable-button-width);height:var(--expandable-button-width);margin-inline-end:5px;z-index:1;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto var(--expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc(var(--expandable-button-width) - 2px)}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{margin-inline-end:5px}.checkbox::part(container){width:var(--checkbox-size);height:var(--checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1;cursor:pointer}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:5px}.right-img{grid-area:right-img;margin-inline-start:5px}.edit-name{grid-area:text;width:100%;height:100%;padding:0;margin:0;background-color:unset;color:unset;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-template-rows:0fr;content-visibility:auto;contain-intrinsic-size:auto 100px}.expanded{grid-template-rows:1fr}:not(.expanded) ::slotted([slot=tree]){display:none;overflow:hidden;content-visibility:hidden}";
560
559
 
561
560
  const resetDragImage = new Image();
561
+ const INITIAL_LEVEL = 0;
562
562
  // Selectors
563
563
  const TREE_ITEM_TAG_NAME = "ch-tree-x-list-item";
564
564
  const DIRECT_TREE_ITEM_CHILDREN = `:scope>*>${TREE_ITEM_TAG_NAME}`;
@@ -568,6 +568,17 @@ const LAST_SUB_ITEM = `:scope>*>${TREE_ITEM_TAG_NAME}:last-child`;
568
568
  const EXPANDABLE_ID = "expandable";
569
569
  const ENTER_KEY = "Enter";
570
570
  const ESCAPE_KEY = "Escape";
571
+ // Export Parts
572
+ const getCheckboxExportPart = (part) => `${part}:checkbox__${part}`;
573
+ const CHECKBOX_EXPORT_PARTS = [
574
+ "container",
575
+ "input",
576
+ "option",
577
+ "checked",
578
+ "indeterminate"
579
+ ]
580
+ .map(getCheckboxExportPart)
581
+ .join(",");
571
582
  const ChTreeXListItem = class {
572
583
  constructor(hostRef) {
573
584
  index.registerInstance(this, hostRef);
@@ -648,7 +659,7 @@ const ChTreeXListItem = class {
648
659
  /**
649
660
  * Level in the tree at which the item is placed.
650
661
  */
651
- this.level = 0;
662
+ this.level = INITIAL_LEVEL;
652
663
  /**
653
664
  * `true` if the checkbox's value is indeterminate.
654
665
  */
@@ -906,7 +917,7 @@ const ChTreeXListItem = class {
906
917
  return;
907
918
  }
908
919
  // The item is the last one of the tree at the first level
909
- if (this.level === 0) {
920
+ if (this.level === INITIAL_LEVEL) {
910
921
  return;
911
922
  }
912
923
  // Otherwise, ask the parent to focus the next sibling
@@ -927,7 +938,7 @@ const ChTreeXListItem = class {
927
938
  return;
928
939
  }
929
940
  // The item is the first one of the tree at the first level
930
- if (this.level === 0) {
941
+ if (this.level === INITIAL_LEVEL) {
931
942
  return;
932
943
  }
933
944
  // Otherwise, set focus in the parent element
@@ -1026,7 +1037,7 @@ const ChTreeXListItem = class {
1026
1037
  this.selectedItemChange.emit(this.getSelectedInfo(true, false, true));
1027
1038
  }
1028
1039
  // No need to update more the status
1029
- if (this.level === 0) {
1040
+ if (this.level === INITIAL_LEVEL) {
1030
1041
  return;
1031
1042
  }
1032
1043
  // Update checkbox status
@@ -1053,11 +1064,14 @@ const ChTreeXListItem = class {
1053
1064
  const expandableButtonNotVisible = !this.leaf && !this.showExpandableButton;
1054
1065
  const acceptDrop = !this.dropDisabled && !this.leaf && this.dragState !== "start";
1055
1066
  const hasContent = !this.leaf && !this.lazyLoad;
1056
- const showAllLines = this.showLines === "all" && this.level !== 0;
1057
- const showLastLine = this.showLines === "last" && this.level !== 0 && this.lastItem;
1058
- return (index.h(index.Host, { role: "treeitem", "aria-selected": this.selected ? "true" : null, class: {
1067
+ const showAllLines = this.showLines === "all" && this.level !== INITIAL_LEVEL;
1068
+ const showLastLine = this.showLines === "last" &&
1069
+ this.level !== INITIAL_LEVEL &&
1070
+ this.lastItem;
1071
+ return (index.h(index.Host, { role: "treeitem", "aria-level": this.level + 1, "aria-selected": this.selected ? "true" : null, class: {
1059
1072
  [TREE_ITEM_TAG_NAME + "--downloading"]: this.downloading,
1060
1073
  [TREE_ITEM_TAG_NAME + "--editing"]: this.editing,
1074
+ [TREE_ITEM_TAG_NAME + "--not-editing"]: !this.editing,
1061
1075
  [TREE_ITEM_TAG_NAME + "--drag-" + this.dragState]: this.dragState !== "none" && this.dragState !== "start",
1062
1076
  [TREE_ITEM_TAG_NAME + "--deny-drop"]: this.leaf
1063
1077
  }, style: { "--level": `${this.level}` },
@@ -1072,14 +1086,14 @@ const ChTreeXListItem = class {
1072
1086
  "header--odd": !evenLevel,
1073
1087
  "header--even-expandable": evenLevel && expandableButtonVisible,
1074
1088
  "header--odd-expandable": !evenLevel && expandableButtonVisible,
1075
- "header--level-0": this.level === 0
1089
+ "header--level-0": this.level === INITIAL_LEVEL
1076
1090
  }, part: `header${this.disabled ? " disabled" : ""}${this.selected ? " selected" : ""}`, type: "button", disabled: this.disabled, onClick: this.handleActionClick, onKeyDown: !this.editing ? this.handleActionKeyDown : null,
1077
1091
  // Drag and drop
1078
1092
  draggable: !this.dragDisabled, onDragStart: this.handleDragStart, onDragEnd: !this.dragDisabled ? this.handleDragEnd : null, ref: el => (this.headerRef = el) }, !this.leaf && this.showExpandableButton && (index.h("button", { type: "button", class: {
1079
1093
  "expandable-button": true,
1080
1094
  "expandable-button--expanded": this.expanded,
1081
1095
  "expandable-button--collapsed": !this.expanded
1082
- }, part: `expandable-button${this.disabled ? " disabled" : ""}${this.expanded ? " expanded" : " collapsed"}`, disabled: this.disabled, onClick: this.toggleExpand })), this.checkbox && (index.h("ch-checkbox", { accessibleName: this.caption, class: "checkbox", part: `checkbox${this.disabled ? " disabled" : ""}${this.checked ? " checked" : ""}${this.indeterminate ? " indeterminate" : ""}`, checkedValue: "true", disabled: this.disabled, indeterminate: this.indeterminate, unCheckedValue: "false", value: `${this.checked}`, onInput: this.handleCheckedChange })), this.customRender ? (index.h("slot", { name: "custom-content" })) : ([
1096
+ }, part: `expandable-button${this.disabled ? " disabled" : ""}${this.expanded ? " expanded" : " collapsed"}`, disabled: this.disabled, onClick: this.toggleExpand })), this.checkbox && (index.h("ch-checkbox", { accessibleName: this.caption, class: "checkbox", exportparts: CHECKBOX_EXPORT_PARTS, part: `checkbox${this.disabled ? " disabled" : ""}${this.checked ? " checked" : ""}${this.indeterminate ? " indeterminate" : ""}`, checkedValue: "true", disabled: this.disabled, indeterminate: this.indeterminate, unCheckedValue: "false", value: `${this.checked}`, onInput: this.handleCheckedChange })), this.customRender ? (index.h("slot", { name: "custom-content" })) : ([
1083
1097
  index.h("div", { class: {
1084
1098
  action: true,
1085
1099
  "readonly-mode": !this.editing
@@ -153,10 +153,24 @@ const ChPaginator = class {
153
153
  }
154
154
  loadElements() {
155
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']");
156
+ this.el
157
+ .querySelectorAll("ch-paginator-navigate")
158
+ .forEach((el) => {
159
+ switch (el.type) {
160
+ case "first":
161
+ this.elFirst = el;
162
+ break;
163
+ case "previous":
164
+ this.elPrevious = el;
165
+ break;
166
+ case "next":
167
+ this.elNext = el;
168
+ break;
169
+ case "last":
170
+ this.elLast = el;
171
+ break;
172
+ }
173
+ });
160
174
  }
161
175
  render() {
162
176
  if (this.elPages) {
@@ -206,6 +220,155 @@ const ChPaginatorNavigate = class {
206
220
  };
207
221
  ChPaginatorNavigate.style = chPaginatorNavigateCss;
208
222
 
223
+ const chPaginatorPagesCss = "button{all:unset}.pages{display:flex;align-items:center;list-style-type:none;margin:0;padding:0}";
224
+
225
+ const ChPaginatorPages = class {
226
+ constructor(hostRef) {
227
+ index.registerInstance(this, hostRef);
228
+ this.pageChanged = index.createEvent(this, "pageChanged", 7);
229
+ /**
230
+ * The active page number.
231
+ */
232
+ this.page = 1;
233
+ /**
234
+ * The total number of pages.
235
+ */
236
+ this.totalPages = 1;
237
+ /**
238
+ * The maximum number of items to display in the pagination.
239
+ */
240
+ this.maxSize = 9;
241
+ /**
242
+ * Flag to render the first and last pages.
243
+ */
244
+ this.renderFirstLastPages = true;
245
+ /**
246
+ * The text to display for the dots.
247
+ */
248
+ this.textDots = "...";
249
+ this.clickHandler = (eventInfo) => {
250
+ const button = eventInfo.target;
251
+ this.page = parseInt(button.value);
252
+ };
253
+ }
254
+ pageHandler() {
255
+ this.pageChanged.emit({ page: this.page });
256
+ }
257
+ maxSizeHandler() {
258
+ this.validateMaxSize();
259
+ }
260
+ renderFirstLastPagesHandler() {
261
+ this.validateMaxSize();
262
+ }
263
+ componentDidUpdate() {
264
+ if (document.activeElement === this.el) {
265
+ this.buttonActive.focus();
266
+ }
267
+ }
268
+ keyDownHandler(eventInfo) {
269
+ switch (eventInfo.key) {
270
+ case "ArrowLeft":
271
+ this.page = Math.max(this.page - 1, 1);
272
+ break;
273
+ case "ArrowRight":
274
+ this.page = Math.min(this.page + 1, this.totalPages);
275
+ break;
276
+ }
277
+ }
278
+ focusHandler() {
279
+ this.buttonActive.focus();
280
+ }
281
+ getItems() {
282
+ const padLeft = Math.ceil((this.maxSize - 1) / 2);
283
+ const padRight = Math.floor((this.maxSize - 1) / 2);
284
+ let fillLeft, fillStart;
285
+ let fillRight, fillEnd;
286
+ if (this.maxSize === 0 || this.maxSize >= this.totalPages) {
287
+ fillStart = this.fillStart(false);
288
+ fillLeft = this.page - 1;
289
+ fillRight = this.totalPages - this.page;
290
+ fillEnd = this.fillEnd(false);
291
+ }
292
+ else if (this.page <= padLeft && this.page < this.totalPages - padRight) {
293
+ fillStart = this.fillStart(false);
294
+ fillLeft = this.page - 1;
295
+ fillEnd = this.fillEnd(true);
296
+ fillRight = padRight - fillEnd.length + (padLeft - fillLeft);
297
+ }
298
+ else if (this.page > padLeft && this.page < this.totalPages - padRight) {
299
+ fillStart = this.fillStart(true);
300
+ fillLeft = padLeft - fillStart.length;
301
+ fillEnd = this.fillEnd(true);
302
+ fillRight = padRight - fillEnd.length;
303
+ }
304
+ else if (this.page > padLeft && this.page >= this.totalPages - padRight) {
305
+ fillEnd = this.fillEnd(false);
306
+ fillRight = this.totalPages - this.page;
307
+ fillStart = this.fillStart(true);
308
+ fillLeft = padLeft - fillStart.length + padRight - fillRight;
309
+ }
310
+ const items = fillStart
311
+ .concat(this.getRangeItems(this.page - fillLeft, this.page - 1))
312
+ .concat([this.page])
313
+ .concat(this.getRangeItems(this.page + 1, this.page + fillRight))
314
+ .concat(fillEnd);
315
+ return {
316
+ items,
317
+ activeIndex: fillStart.length + fillLeft
318
+ };
319
+ }
320
+ fillStart(render) {
321
+ if (render) {
322
+ return this.renderFirstLastPages ? [1, this.textDots] : [this.textDots];
323
+ }
324
+ else {
325
+ return [];
326
+ }
327
+ }
328
+ fillEnd(render) {
329
+ if (render) {
330
+ return this.renderFirstLastPages
331
+ ? [this.textDots, this.totalPages]
332
+ : [this.textDots];
333
+ }
334
+ else {
335
+ return [];
336
+ }
337
+ }
338
+ getRangeItems(start, end) {
339
+ return Array.from({ length: end - start + 1 }, (_, i) => start + i);
340
+ }
341
+ validateMaxSize() {
342
+ if (this.maxSize > 0) {
343
+ if (!this.renderFirstLastPages && this.maxSize < 3) {
344
+ this.maxSize = 3;
345
+ }
346
+ else if (this.renderFirstLastPages && this.maxSize < 5) {
347
+ this.maxSize = 5;
348
+ }
349
+ }
350
+ }
351
+ render() {
352
+ const { items, activeIndex } = this.getItems();
353
+ return (index.h("ol", { part: "pages", class: "pages" }, items.map((item, i) => {
354
+ if (typeof item === "number") {
355
+ return (index.h("li", null, index.h("button", { part: `page button ${i === activeIndex ? "active" : ""}`, value: item, onClick: this.clickHandler, ref: el => (this.buttonActive =
356
+ i === activeIndex ? el : this.buttonActive) }, item)));
357
+ }
358
+ else {
359
+ return (index.h("li", null, index.h("button", { part: "page button dots", disabled: true }, item)));
360
+ }
361
+ })));
362
+ }
363
+ get el() { return index.getElement(this); }
364
+ static get watchers() { return {
365
+ "page": ["pageHandler"],
366
+ "maxSize": ["maxSizeHandler"],
367
+ "renderFirstLastPages": ["renderFirstLastPagesHandler"]
368
+ }; }
369
+ };
370
+ ChPaginatorPages.style = chPaginatorPagesCss;
371
+
209
372
  var GxControlType;
210
373
  (function (GxControlType) {
211
374
  GxControlType[GxControlType["EDIT"] = 1] = "EDIT";
@@ -362,4 +525,5 @@ exports.ch_grid_action_settings = ChGridActionSettings;
362
525
  exports.ch_grid_actionbar = ChGridActionbar;
363
526
  exports.ch_paginator = ChPaginator;
364
527
  exports.ch_paginator_navigate = ChPaginatorNavigate;
528
+ exports.ch_paginator_pages = ChPaginatorPages;
365
529
  exports.gx_grid_chameleon_column_filter = GridChameleonColumnFilter;
@@ -125,6 +125,7 @@ const COLOR_MAPPINGS = {
125
125
  error: "color-error-dark",
126
126
  negative: "color-on-primary",
127
127
  onbackground: "color-on-background",
128
+ indeterminate: "color-primary-active",
128
129
  "primary-enabled": "color-primary-enabled",
129
130
  "primary-active": "color-primary-active",
130
131
  "primary-hover": "color-primary-hover",
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5a32426a.js');
6
6
  const store = require('./store-0866de9f.js');
7
- const form = require('./form-a22de8f3.js');
7
+ const form = require('./form-a2de5b1c.js');
8
8
  const classesNames = require('./classesNames-5b7c6ad4.js');
9
9
 
10
10
  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}";
@@ -15,6 +15,7 @@ const ChSuggest = class {
15
15
  constructor(hostRef) {
16
16
  index.registerInstance(this, hostRef);
17
17
  this.valueChanged = index.createEvent(this, "valueChanged", 7);
18
+ this.selectionChanged = index.createEvent(this, "selectionChanged", 7);
18
19
  this.keyEventsDictionary = {
19
20
  ArrowDown: (e) => {
20
21
  const newFocusedItem = this.getNewFocusedItem(e.currentFocusedItem, ARROW_DOWN$1);
@@ -175,8 +176,10 @@ const ChSuggest = class {
175
176
  // 6.COMPONENT LIFECYCLE EVENTS //
176
177
  // 7.LISTENERS //
177
178
  itemSelectedHandler(event) {
179
+ event.stopPropagation();
178
180
  this.value = event.detail.value;
179
181
  this.closeWindow();
182
+ this.selectionChanged.emit(event.detail);
180
183
  }
181
184
  focusChangeAttemptHandler(event) {
182
185
  const keyEventHandler = this.keyEventsDictionary[event.detail.code];
@@ -199,6 +202,7 @@ const ChSuggest = class {
199
202
  windowClosedHandler() {
200
203
  this.textInput.focus();
201
204
  this.windowHidden = true;
205
+ this.el.innerHTML = "";
202
206
  }
203
207
  // 9.PUBLIC METHODS API //
204
208
  /**
@@ -315,7 +319,7 @@ const ChSuggestListItem = class {
315
319
  };
316
320
  ChSuggestListItem.style = chSuggestListItemCss;
317
321
 
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)}";
322
+ 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)}";
319
323
 
320
324
  const GxgSuggest = class {
321
325
  constructor(hostRef) {