@genexus/genexus-ide-ui 0.0.22 → 0.0.24

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 (144) hide show
  1. package/dist/cjs/ch-action-group_2.cjs.entry.js +211 -0
  2. package/dist/cjs/ch-dropdown-item.cjs.entry.js +36 -5
  3. package/dist/cjs/ch-dropdown.cjs.entry.js +50 -52
  4. package/dist/cjs/{ch-grid_4.cjs.entry.js → ch-grid_8.cjs.entry.js} +143 -0
  5. package/dist/cjs/{ch-suggest_5.cjs.entry.js → ch-suggest_4.cjs.entry.js} +0 -65
  6. package/dist/cjs/ch-test-action-group.cjs.entry.js +79 -0
  7. package/dist/cjs/ch-test-dropdown.cjs.entry.js +54 -0
  8. package/dist/cjs/ch-window_2.cjs.entry.js +25 -6
  9. package/dist/cjs/format-date-f2c49d1a.js +28 -0
  10. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  11. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +15 -35
  12. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +5 -15
  13. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +102 -0
  14. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +53 -0
  15. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +278 -0
  16. package/dist/cjs/gx-ide-top-bar.cjs.entry.js +37 -0
  17. package/dist/cjs/{gxg-combo-box_8.cjs.entry.js → gxg-combo-box_6.cjs.entry.js} +0 -132
  18. package/dist/cjs/gxg-form-checkbox-group_2.cjs.entry.js +140 -0
  19. package/dist/cjs/{gx-ide-top-bar_2.cjs.entry.js → gxg-form-radio-group.cjs.entry.js} +0 -31
  20. package/dist/cjs/gxg-text.cjs.entry.js +72 -0
  21. package/dist/cjs/loader.cjs.js +1 -1
  22. package/dist/collection/collection-manifest.json +7 -0
  23. package/dist/collection/common/format-date.js +11 -0
  24. package/dist/collection/components/team-dev-commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +1 -1
  25. package/dist/collection/components/team-dev-commit/team-dev-commit.js +35 -26
  26. package/dist/collection/components/team-dev-select-recent-comment/team-dev-select-recent-comment.js +6 -16
  27. package/dist/collection/components/team-dev-update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.en.json +45 -0
  28. package/dist/collection/components/team-dev-update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +3 -0
  29. package/dist/collection/components/team-dev-update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +3 -0
  30. package/dist/collection/components/team-dev-update/team-dev-update.css +216 -0
  31. package/dist/collection/components/team-dev-update/team-dev-update.js +524 -0
  32. package/dist/collection/components/team-dev-update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.en.json +15 -0
  33. package/dist/collection/components/team-dev-update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.ja.json +3 -0
  34. package/dist/collection/components/team-dev-update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json +3 -0
  35. package/dist/collection/components/team-dev-update-partial-selection/team-dev-update-partial-selection.css +149 -0
  36. package/dist/collection/components/team-dev-update-partial-selection/team-dev-update-partial-selection.js +238 -0
  37. package/dist/collection/components/team-dev-update-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +11 -0
  38. package/dist/collection/components/team-dev-update-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.ja.json +3 -0
  39. package/dist/collection/components/team-dev-update-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json +3 -0
  40. package/dist/collection/components/team-dev-update-to-revision/team-dev-update-to-revision.css +147 -0
  41. package/dist/collection/components/team-dev-update-to-revision/team-dev-update-to-revision.js +136 -0
  42. package/dist/components/action-group-item.js +54 -0
  43. package/dist/components/action-group.js +214 -0
  44. package/dist/components/ch-action-group-item.js +6 -0
  45. package/dist/components/ch-action-group.js +6 -0
  46. package/dist/components/ch-dropdown-item-separator.js +1 -28
  47. package/dist/components/ch-dropdown-item.js +1 -53
  48. package/dist/components/ch-dropdown.js +1 -284
  49. package/dist/components/ch-grid-rowset-empty.js +1 -24
  50. package/dist/components/ch-grid-rowset-empty2.js +26 -0
  51. package/dist/components/ch-test-action-group.js +137 -0
  52. package/dist/components/ch-test-dropdown.js +104 -0
  53. package/dist/components/ch-window2.js +25 -6
  54. package/dist/components/dropdown-item-separator.js +30 -0
  55. package/dist/components/dropdown-item.js +109 -0
  56. package/dist/components/dropdown.js +294 -0
  57. package/dist/components/format-date.js +25 -0
  58. package/dist/components/gx-ide-team-dev-commit.js +16 -35
  59. package/dist/components/gx-ide-team-dev-select-recent-comment.js +5 -15
  60. package/dist/components/gx-ide-team-dev-update-partial-selection.d.ts +11 -0
  61. package/dist/components/gx-ide-team-dev-update-partial-selection.js +213 -0
  62. package/dist/components/gx-ide-team-dev-update-to-revision.d.ts +11 -0
  63. package/dist/components/gx-ide-team-dev-update-to-revision.js +131 -0
  64. package/dist/components/gx-ide-team-dev-update.d.ts +11 -0
  65. package/dist/components/gx-ide-team-dev-update.js +473 -0
  66. package/dist/components/index.d.ts +3 -0
  67. package/dist/components/index.js +7 -0
  68. package/dist/esm/ch-action-group_2.entry.js +206 -0
  69. package/dist/esm/ch-dropdown-item.entry.js +36 -5
  70. package/dist/esm/ch-dropdown.entry.js +50 -52
  71. package/dist/esm/{ch-grid_4.entry.js → ch-grid_8.entry.js} +140 -1
  72. package/dist/esm/{ch-suggest_5.entry.js → ch-suggest_4.entry.js} +1 -65
  73. package/dist/esm/ch-test-action-group.entry.js +75 -0
  74. package/dist/esm/ch-test-dropdown.entry.js +50 -0
  75. package/dist/esm/ch-window_2.entry.js +25 -6
  76. package/dist/esm/format-date-e9ca0786.js +25 -0
  77. package/dist/esm/genexus-ide-ui.js +1 -1
  78. package/dist/esm/gx-ide-team-dev-commit.entry.js +15 -35
  79. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +5 -15
  80. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +98 -0
  81. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +49 -0
  82. package/dist/esm/gx-ide-team-dev-update.entry.js +274 -0
  83. package/dist/esm/gx-ide-top-bar.entry.js +33 -0
  84. package/dist/esm/{gxg-combo-box_8.entry.js → gxg-combo-box_6.entry.js} +2 -132
  85. package/dist/esm/gxg-form-checkbox-group_2.entry.js +135 -0
  86. package/dist/esm/{gx-ide-top-bar_2.entry.js → gxg-form-radio-group.entry.js} +2 -32
  87. package/dist/esm/gxg-text.entry.js +68 -0
  88. package/dist/esm/loader.js +1 -1
  89. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  90. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +1 -1
  91. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.en.json +45 -0
  92. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +3 -0
  93. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +3 -0
  94. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.en.json +15 -0
  95. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.ja.json +3 -0
  96. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json +3 -0
  97. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +11 -0
  98. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.ja.json +3 -0
  99. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json +3 -0
  100. package/dist/genexus-ide-ui/p-097a3eeb.entry.js +1 -0
  101. package/dist/genexus-ide-ui/p-16bd5578.entry.js +1 -0
  102. package/dist/genexus-ide-ui/p-32b8abf6.entry.js +1 -0
  103. package/dist/genexus-ide-ui/p-3bdcb73b.entry.js +1 -0
  104. package/dist/genexus-ide-ui/p-4bbe1c18.entry.js +1 -0
  105. package/dist/genexus-ide-ui/p-53d36ef7.entry.js +1 -0
  106. package/dist/genexus-ide-ui/p-5884a014.entry.js +1 -0
  107. package/dist/genexus-ide-ui/p-5c64c57f.entry.js +1 -0
  108. package/dist/genexus-ide-ui/p-5ff04ebe.entry.js +1 -0
  109. package/dist/genexus-ide-ui/p-6e80380b.entry.js +1 -0
  110. package/dist/genexus-ide-ui/p-718759e7.entry.js +1 -0
  111. package/dist/genexus-ide-ui/p-72303355.js +1 -0
  112. package/dist/genexus-ide-ui/p-757f8567.entry.js +1 -0
  113. package/dist/genexus-ide-ui/p-9c82381c.entry.js +1 -0
  114. package/dist/genexus-ide-ui/p-a0e85c2a.entry.js +1 -0
  115. package/dist/genexus-ide-ui/p-afe9515e.entry.js +1 -0
  116. package/dist/genexus-ide-ui/p-dbebb1a0.entry.js +1 -0
  117. package/dist/genexus-ide-ui/p-f8561da6.entry.js +1 -0
  118. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/action-group/action-group.css +48 -0
  119. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/action-group-item/action-group-item.css +4 -0
  120. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown/dropdown.css +32 -88
  121. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown-item/dropdown-item.css +9 -22
  122. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-action-group/test-action-group.css +52 -0
  123. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-dropdown/test-dropdown.css +36 -0
  124. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/window/ch-window.css +3 -1
  125. package/dist/types/common/format-date.d.ts +1 -0
  126. package/dist/types/common/types.d.ts +1 -0
  127. package/dist/types/components/team-dev-commit/team-dev-commit.d.ts +13 -7
  128. package/dist/types/components/team-dev-select-recent-comment/team-dev-select-recent-comment.d.ts +1 -31
  129. package/dist/types/components/team-dev-update/team-dev-update.d.ts +173 -0
  130. package/dist/types/components/team-dev-update-partial-selection/team-dev-update-partial-selection.d.ts +61 -0
  131. package/dist/types/components/team-dev-update-to-revision/team-dev-update-to-revision.d.ts +41 -0
  132. package/dist/types/components.d.ts +216 -2
  133. package/package.json +3 -3
  134. package/dist/cjs/ch-grid-column-resize_4.cjs.entry.js +0 -150
  135. package/dist/esm/ch-grid-column-resize_4.entry.js +0 -143
  136. package/dist/genexus-ide-ui/p-04f094d1.entry.js +0 -1
  137. package/dist/genexus-ide-ui/p-192f1342.entry.js +0 -1
  138. package/dist/genexus-ide-ui/p-54cef7ae.entry.js +0 -1
  139. package/dist/genexus-ide-ui/p-554ed73a.entry.js +0 -1
  140. package/dist/genexus-ide-ui/p-6d378d61.entry.js +0 -1
  141. package/dist/genexus-ide-ui/p-b26b5d74.entry.js +0 -1
  142. package/dist/genexus-ide-ui/p-c10d5f34.entry.js +0 -1
  143. package/dist/genexus-ide-ui/p-d5c29251.entry.js +0 -1
  144. package/dist/genexus-ide-ui/p-f1a3397d.entry.js +0 -1
@@ -2658,6 +2658,91 @@ const ChGridColumn = class {
2658
2658
  };
2659
2659
  ChGridColumn.style = chGridColumnCss;
2660
2660
 
2661
+ const chGridColumnResizeCss = ":host{display:block;min-width:1px;height:100%;cursor:ew-resize}.resize-mask{position:fixed;inset:0}";
2662
+
2663
+ const ChGridColumnResize = class {
2664
+ constructor(hostRef) {
2665
+ registerInstance(this, hostRef);
2666
+ this.columnResizeStarted = createEvent(this, "columnResizeStarted", 7);
2667
+ this.columnResizeFinished = createEvent(this, "columnResizeFinished", 7);
2668
+ this.mousemoveFn = this.mousemoveHandler.bind(this);
2669
+ /**
2670
+ * Whether the component is currently resizing the column.
2671
+ */
2672
+ this.resizing = false;
2673
+ }
2674
+ componentDidLoad() {
2675
+ this.el.addEventListener("mousedown", this.mousedownHandler.bind(this));
2676
+ }
2677
+ clickHandler(eventInfo) {
2678
+ eventInfo.stopPropagation();
2679
+ }
2680
+ dblclickHandler(eventInfo) {
2681
+ eventInfo.stopPropagation();
2682
+ if (mouseEventModifierKey(eventInfo)) {
2683
+ this.column.size = "auto";
2684
+ }
2685
+ else {
2686
+ this.column.size = "max-content";
2687
+ }
2688
+ }
2689
+ columnResizeStartedHandler() {
2690
+ this.resizing = true;
2691
+ }
2692
+ columnResizeFinishedHandler() {
2693
+ this.resizing = false;
2694
+ }
2695
+ mousedownHandler(eventInfo) {
2696
+ eventInfo.stopPropagation();
2697
+ eventInfo.preventDefault();
2698
+ this.startPageX = eventInfo.pageX;
2699
+ this.startColumnWidth = this.column.getBoundingClientRect().width;
2700
+ document.addEventListener("mousemove", this.mousemoveFn, { passive: true });
2701
+ document.addEventListener("mouseup", this.mouseupHandler.bind(this), {
2702
+ once: true
2703
+ });
2704
+ this.columnResizeStarted.emit();
2705
+ }
2706
+ mousemoveHandler(eventInfo) {
2707
+ const columnSize = this.startColumnWidth - (this.startPageX - eventInfo.pageX);
2708
+ if (columnSize >= 0) {
2709
+ this.column.size = `minmax(min-content, ${columnSize}px)`;
2710
+ }
2711
+ }
2712
+ mouseupHandler() {
2713
+ document.removeEventListener("mousemove", this.mousemoveFn);
2714
+ this.columnResizeFinished.emit();
2715
+ }
2716
+ render() {
2717
+ return h("div", { class: "resize-mask", hidden: !this.resizing });
2718
+ }
2719
+ get el() { return getElement(this); }
2720
+ };
2721
+ ChGridColumnResize.style = chGridColumnResizeCss;
2722
+
2723
+ const chGridColumnSettingsCss = ":host{display:contents}";
2724
+
2725
+ const ChGridColumnSettings = class {
2726
+ constructor(hostRef) {
2727
+ registerInstance(this, hostRef);
2728
+ /**
2729
+ * Indicates whether the settings window is currently shown or not.
2730
+ */
2731
+ this.show = false;
2732
+ }
2733
+ windowClosedHandler(eventInfo) {
2734
+ eventInfo.stopPropagation();
2735
+ this.column.showSettings = false;
2736
+ }
2737
+ columnSettingsChangedHandler() {
2738
+ this.column.showSettings = false;
2739
+ }
2740
+ render() {
2741
+ return (h(Host, null, h("ch-window", { modal: true, container: this.column, xAlign: "inside-start", yAlign: "outside-end", caption: this.column.columnName, closeText: "Close", closeOnOutsideClick: true, closeOnEscape: true, allowDrag: "header", hidden: !this.show, exportparts: "mask,window,header,caption,close,main,footer" }, h("slot", null))));
2742
+ }
2743
+ };
2744
+ ChGridColumnSettings.style = chGridColumnSettingsCss;
2745
+
2661
2746
  const chGridColumnsetCss = "@layer ch-grid {\n ch-grid-columnset {\n display: contents;\n }\n}\n@layer ch-grid {\n ch-grid-row {\n display: contents;\n }\n\n ch-grid-row[collapsed] > ch-grid-rowset {\n display: none;\n }\n\n ch-grid-row:is([leaf=\"false\"], :has(> ch-grid-rowset)) > ch-grid-cell::part(caret) {\n visibility: visible;\n }\n\n ch-grid-row[dragging] {\n display: flex;\n position: fixed;\n pointer-events: none;\n box-shadow: rgba(0, 0, 0, 0.7) 0px 5px 15px;\n z-index: 1000;\n transition: top var(--row-drag-transition-duration, 0.1s);\n }\n}\n@layer ch-grid {\n ch-grid-rowset {\n display: contents;\n }\n\n ch-grid-rowset[collapsed] > :not(ch-grid-rowset-legend) {\n display: none;\n }\n}\n@layer ch-grid {\n ch-grid-cell {\n position: sticky;\n grid-column: var(--grid-column);\n transition: transform var(--column-drag-transition-duration, 0.2s);\n }\n\n ch-grid-cell[selected] {\n --ch-grid-cell-z-index-active: var(--ch-grid-cell-active-layer);\n }\n\n ch-grid-cell,\nch-grid-row[selected] > ch-grid-cell,\nch-grid-row[highlighted] > ch-grid-cell {\n background-color: inherit;\n margin-block-start: inherit;\n margin-block-end: inherit;\n border-block-start: inherit;\n border-block-end: inherit;\n padding-block-start: inherit;\n padding-block-end: inherit;\n }\n\n ch-grid-cell:before {\n margin-inline-start: calc(var(--indent) * var(--level));\n }\n\n ch-grid-cell::part(indent) {\n width: calc(var(--indent) * var(--level));\n }\n\n ch-grid-cell::part(caret) {\n visibility: hidden;\n }\n}";
2662
2747
 
2663
2748
  const ChGridColumnset = class {
@@ -2676,6 +2761,60 @@ const ChGridColumnset = class {
2676
2761
  };
2677
2762
  ChGridColumnset.style = chGridColumnsetCss;
2678
2763
 
2764
+ const chGridSettingsCss = ":host{display:contents;--ch-window-mask-z-index:var(--ch-grid-settings-layer)}";
2765
+
2766
+ const ChGridSettings = class {
2767
+ constructor(hostRef) {
2768
+ registerInstance(this, hostRef);
2769
+ this.settingsCloseClicked = createEvent(this, "settingsCloseClicked", 7);
2770
+ /**
2771
+ * Indicates whether the settings window is currently shown or not.
2772
+ */
2773
+ this.show = false;
2774
+ }
2775
+ windowClosedHandler(eventInfo) {
2776
+ eventInfo.stopPropagation();
2777
+ this.show = false;
2778
+ this.settingsCloseClicked.emit();
2779
+ }
2780
+ render() {
2781
+ return (h(Host, null, h("ch-window", { modal: true, container: this.grid, caption: "Options", closeText: "Close", closeOnOutsideClick: true, closeOnEscape: true, allowDrag: "header", hidden: !this.show, exportparts: "mask,window,header,caption,close,main,footer" }, h("slot", null))));
2782
+ }
2783
+ };
2784
+ ChGridSettings.style = chGridSettingsCss;
2785
+
2786
+ const chGridSettingsColumnsCss = ":host{display:flex;flex-direction:column}ul{display:contents;list-style-type:none}";
2787
+
2788
+ const ChGridSettingsColumns = class {
2789
+ constructor(hostRef) {
2790
+ registerInstance(this, hostRef);
2791
+ this.handleClick = (eventInfo) => {
2792
+ const checkbox = eventInfo.target;
2793
+ const column = this.columns.find(column => column.columnId === checkbox.name);
2794
+ column.hidden = !checkbox.checked;
2795
+ eventInfo.stopPropagation();
2796
+ };
2797
+ }
2798
+ getColumnsSorted() {
2799
+ return [...this.columns].sort((a, b) => {
2800
+ if (a.order < b.order) {
2801
+ return -1;
2802
+ }
2803
+ if (a.order > b.order) {
2804
+ return 1;
2805
+ }
2806
+ return 0;
2807
+ });
2808
+ }
2809
+ render() {
2810
+ const columnsSorted = this.getColumnsSorted();
2811
+ return (h("ul", null, columnsSorted.map(column => (h("li", { part: "column" }, h("label", { part: "column-label" }, h("input", { part: !column.hidden
2812
+ ? "column-visible column-visible-checked"
2813
+ : "column-visible", type: "checkbox", checked: !column.hidden, disabled: !column.hideable, name: column.columnId, onClick: this.handleClick }), column.columnName))))));
2814
+ }
2815
+ };
2816
+ ChGridSettingsColumns.style = chGridSettingsColumnsCss;
2817
+
2679
2818
  const gxgGridCss = ":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}:root{--indent:var(--spacing-comp-02)}:host{display:block}ch-grid{border:1px solid var(--gray-02);--focus-style:2px solid var(--color-primary-active)}ch-grid::part(main){}ch-grid::part(main)::-webkit-scrollbar{width:6px;height:6px}ch-grid::part(main)::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-grid::part(main)::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-grid::part(main)::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}gxg-grid.no-border ch-grid{border:0}gxg-grid:focus-visible,ch-grid:focus-visible{outline:none}ch-grid::part(header),ch-grid::part(footer){padding:var(--spacing-comp-01);background-color:var(--color-background)}ch-grid-actionbar ch-grid-action-refresh,ch-grid-actionbar ch-grid-action-settings,ch-grid-column::part(bar-sort-ascending),ch-grid-column::part(bar-sort-descending),ch-grid-column::part(bar-settings-button),ch-grid-column::part(settings-close),ch-grid::part(settings-close),ch-grid-cell::part(drag-icon),ch-grid-cell::part(caret),ch-grid-rowset-legend::part(caret){display:inline-flex;align-items:center;justify-content:center}ch-grid-actionbar ch-grid-action-refresh:before,ch-grid-actionbar ch-grid-action-settings:before,ch-grid-column::part(bar-sort-ascending):before,ch-grid-column::part(bar-sort-descending):before,ch-grid-column::part(bar-settings-button):before,ch-grid-column::part(settings-close):before,ch-grid::part(settings-close):before,ch-grid-cell::part(drag-icon):before,ch-grid-cell::part(caret):before,ch-grid-rowset-legend::part(caret):before{content:\"\";display:block;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;-webkit-mask-position:center;width:70%;height:70%;background-color:var(--color-on-secondary)}ch-grid-action-refresh,ch-grid-action-settings{width:var(--spacing-comp-05);height:var(--spacing-comp-05);cursor:pointer;background-color:var(--color-secondary-enabled);display:inline-block}ch-grid-action-refresh:hover,ch-grid-action-settings:hover{background-color:var(--color-secondary-hover)}ch-grid-action-refresh:focus-visible,ch-grid-action-settings:focus-visible{outline:var(--focus-style)}ch-grid-action-refresh:before{-webkit-mask-image:var(--refreshIconUrl)}ch-grid-action-settings:before{-webkit-mask-image:var(--settingshIconUrl)}ch-grid{font-family:var(--font-family-primary);font-size:var(--font-size-sm);color:var(--gray-06)}ch-grid-column{background-color:var(--color-background);font-weight:var(--font-weight-bold);padding:var(--spacing-comp-02) !important;cursor:pointer}ch-grid-column::part(bar){gap:var(--spacing-comp-02);width:100%}ch-grid-column:not([sort-direction])::part(bar-sort){display:none}ch-grid-column::part(bar-settings){line-height:0}ch-grid-column::part(bar-sort-ascending),ch-grid-column::part(bar-sort-descending){width:var(--spacing-comp-03);height:var(--spacing-comp-03);margin-left:var(--spacing-comp-02);margin-right:var(--spacing-comp-01)}ch-grid-column::part(bar-sort-ascending):before,ch-grid-column::part(bar-sort-descending):before{width:100%;height:100%;-webkit-mask-size:200%}ch-grid-column::part(bar-sort-descending):before{-webkit-mask-image:var(--barSortDescendingIconUrl)}ch-grid-column::part(bar-sort-ascending):before{-webkit-mask-image:var(--barSortAscendingIconUrl)}ch-grid-column::part(bar-resize-split){width:3px;background-color:var(--gray-02)}ch-grid-column:last-child::part(bar-resize-split){display:none}ch-grid-column::part(bar-settings-button){padding:0;width:var(--spacing-comp-05);height:var(--spacing-comp-05);border:none;background-color:transparent;cursor:pointer}ch-grid-column::part(bar-settings-button):hover{background-color:var(--gray-02)}ch-grid-column::part(bar-settings-button):focus-visible{outline:var(--focus-style)}ch-grid-column::part(bar-settings-button):before{-webkit-mask-image:var(--barSettingsButtonIconUrl)}ch-grid-row{background-color:var(--color-background);color:var(--gray-04);border:2px solid transparent}ch-grid-row:nth-of-type(odd){background-color:var(--gray-00)}ch-grid-row[highlighted]{background-color:var(--color-hover)}ch-grid-row[dragging]{box-shadow:var(--box-shadow-03)}ch-grid-row[selected]>ch-grid-cell:not([selected]){background-color:var(--color-secondary-enabled)}ch-grid-cell[selected]{z-index:1;background-color:var(--color-secondary-enabled) !important}ch-grid-row[selected]>ch-grid-cell{color:var(--color-on-secondary)}ch-grid-row[selected]+ch-grid-row[selected] ch-grid-cell{border-top-color:var(--color-secondary-hover)}ch-grid-cell{box-sizing:border-box;padding-inline-start:var(--spacing-comp-02) !important;padding-inline-end:var(--spacing-comp-02) !important;padding-block-start:var(--spacing-comp-01);padding-block-end:var(--spacing-comp-01);align-items:center}ch-grid-column::part(settings-mask){cursor:default}ch-grid-column::part(settings-mask),ch-grid::part(settings-mask){background-color:rgba(0, 0, 0, 0.3);cursor:arrow;color:var(--color-on-secondary)}ch-grid-column::part(settings-window),ch-grid::part(settings-window){background-color:var(--color-background);width:100%;max-width:600px;padding:var(--spacing-comp-03);border-radius:var(--border-width-lg);box-shadow:var(--box-shadow-04)}ch-grid::part(settings-window){margin:0 var(--spacing-comp-05)}ch-grid-column::part(settings-header),ch-grid::part(settings-header){display:flex;align-items:center;gap:var(--spacing-comp-04);justify-content:space-between;border-bottom:var(--border-width-sm) solid var(--gray-02);padding-bottom:var(--spacing-comp-02);margin-bottom:var(--spacing-comp-03);font-weight:var(--font-weight-bold)}ch-grid-column::part(settings-close),ch-grid::part(settings-close){padding:0;width:var(--spacing-comp-05);height:var(--spacing-comp-05);cursor:pointer;background-color:var(--color-secondary-enabled);font-size:0;border:0}ch-grid-column::part(settings-close):hover,ch-grid::part(settings-close):hover{background-color:var(--color-secondary-hover)}ch-grid-column::part(settings-close):before,ch-grid::part(settings-close):before{-webkit-mask-image:var(--settingsCloseIconUrl)}ch-grid-column::part(settings-close):focus-visible,ch-grid::part(settings-close):focus-visible{outline:var(--focus-style)}ch-grid::part(settings-columns){gap:var(--spacing-comp-03)}ch-grid::part(settings-columns-label){display:inline-flex;align-items:center;gap:var(--spacing-comp-03);cursor:pointer;height:var(--spacing-comp-04)}ch-grid::part(settings-columns-visible),ch-grid-cell::part(selector),ch-grid-column::part(selector){position:relative;margin:0;height:var(--spacing-comp-04);width:var(--spacing-comp-04)}ch-grid::part(settings-columns-visible):focus-visible,ch-grid-cell::part(selector):focus-visible,ch-grid-column::part(selector):focus-visible{outline:var(--focus-style)}ch-grid::part(settings-columns-visible):before,ch-grid-cell::part(selector):before,ch-grid-column::part(selector):before{cursor:pointer;content:\"\";display:inline-block;position:relative;height:var(--spacing-comp-04);width:var(--spacing-comp-04);border-width:var(--border-width-sm);border-style:var(--border-style-regular);border-radius:var(--border-radius-md);border-color:var(--gray-04);box-sizing:border-box;flex-shrink:0;background:var(--color-background)}ch-grid::part(settings-columns-visible):after,ch-grid-cell::part(selector):after,ch-grid-column::part(selector):after{opacity:0;display:block;position:absolute;content:\"\";left:6px;top:3px;width:3px;height:7px;border:solid;border-color:var(--color-primary-hover);border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);transition-property:opacity;transition-duration:var(--ui-animaton-speed);transition-timing-function:ease;cursor:pointer}ch-grid-column::part(indeterminate):after{opacity:1;display:block;position:absolute;content:\"\";left:50%;top:50%;width:8px;height:1.5px;border:0;background-color:var(--color-primary-hover);-webkit-transform:rotate(0) translateY(-50%) translateX(-50%);-ms-transform:rotate(0) translateY(-50%) translateX(-50%);transform:rotate(0) translateY(-50%) translateX(-50%)}ch-grid::part(settings-columns-visible-checked):before,ch-grid-cell::part(checked):before,ch-grid-column::part(checked):before{border-color:var(--color-primary-hover)}ch-grid::part(settings-columns-visible-checked):after,ch-grid-cell::part(checked):after,ch-grid-column::part(checked):after{opacity:1}ch-grid-cell::part(drag-icon):before{width:var(--spacing-comp-04);height:var(--spacing-comp-04);cursor:grab}ch-grid-cell::part(drag-icon):before{-webkit-mask-image:var(--dragIconUrl)}ch-grid::part(row-actions){padding-top:2px;right:var(--spacing-comp-02)}ch-grid-column::part(selector){margin-right:8px}ch-grid-rowset-legend{background-color:var(--gray-01);padding-inline-start:var(--spacing-comp-02);padding-inline-end:var(--spacing-comp-02);padding-block-start:var(--spacing-comp-01);padding-block-end:var(--spacing-comp-01)}ch-grid>ch-grid-rowset:first-of-type ch-grid-rowset-legend{border-top:1px solid var(--color-background)}ch-grid-rowset-legend{margin-inline-start:calc(var(--indent) * (var(--level) - 1));display:flex;align-items:center;gap:var(--spacing-comp-01);cursor:pointer}ch-grid-rowset-legend::part(caret),ch-grid-cell::part(caret){width:var(--spacing-comp-04);height:var(--spacing-comp-04)}ch-grid-cell::part(caret){cursor:pointer;margin-right:var(--spacing-comp-01)}ch-grid-rowset>ch-grid-rowset-legend::part(caret):before,ch-grid-row>ch-grid-cell::part(caret):before{-webkit-mask-image:var(--caretCollapseIconUrl)}ch-grid-rowset[collapsed]>ch-grid-rowset-legend::part(caret):before,ch-grid-row[collapsed]>ch-grid-cell::part(caret):before{-webkit-mask-image:var(--caretExpandIconUrl)}ch-grid-rowset[collapsed] ch-grid-rowset-legend{border-bottom:1px solid var(--color-background)}ch-grid gxg-paginator{padding-top:0;padding-bottom:0}gxg-grid.large ch-grid{font-size:var(--font-size-lg)}";
2680
2819
 
2681
2820
  const GxgGrid = class {
@@ -2702,4 +2841,4 @@ const GxgGrid = class {
2702
2841
  };
2703
2842
  GxgGrid.style = gxgGridCss;
2704
2843
 
2705
- export { ChGrid as ch_grid, ChGridColumn as ch_grid_column, ChGridColumnset as ch_grid_columnset, GxgGrid as gxg_grid };
2844
+ export { ChGrid as ch_grid, ChGridColumn as ch_grid_column, ChGridColumnResize as ch_grid_column_resize, ChGridColumnSettings as ch_grid_column_settings, ChGridColumnset as ch_grid_columnset, ChGridSettings as ch_grid_settings, ChGridSettingsColumns as ch_grid_settings_columns, GxgGrid as gxg_grid };
@@ -307,68 +307,4 @@ const GxgSuggest = class {
307
307
  };
308
308
  GxgSuggest.style = stylesCss;
309
309
 
310
- const textCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}:host{display:block;font-size:14px}:host p,:host q,:host a{display:block;margin:0;padding:0;margin:0 auto}:host([text-align=start]){text-align:start}:host([text-align=start]) *{text-align:start}:host([text-align=center]){text-align:center}:host([text-align=center]) *{text-align:center}:host([text-align=end]){text-align:end}:host([text-align=end]) *{text-align:end}:host([padding=s]){padding:var(--spacing-comp-01)}:host([padding=m]){padding:var(--spacing-comp-02)}:host(.large) .gxg-text,:host(.large) .gxg-text--gray,:host(.large) .gxg-quote,:host(.large) .gxg-link,:host(.large) .gxg-link-gray,:host(.large) .gxg-alert-error,:host(.large) .gxg-alert-warning,:host(.large) .gxg-alert-success{font-size:var(--font-size-lg)}";
311
-
312
- const GxgText = class {
313
- constructor(hostRef) {
314
- registerInstance(this, hostRef);
315
- /**
316
- * The target (for "link" or "link-gray" types
317
- * */
318
- this.target = "_self";
319
- /**
320
- * Text type
321
- */
322
- this.type = "text-regular";
323
- /**
324
- * Text alignment
325
- */
326
- this.textAlign = "start";
327
- /**
328
- * Text padding
329
- */
330
- this.padding = "none";
331
- /**
332
- * Max. width
333
- */
334
- this.maxWidth = "100%";
335
- }
336
- textType() {
337
- let text;
338
- switch (this.type) {
339
- case "text-regular":
340
- text = (h("p", { style: { maxWidth: this.maxWidth }, class: "gxg-text" }, h("slot", null)));
341
- break;
342
- case "text-gray":
343
- text = (h("p", { style: { maxWidth: this.maxWidth }, class: "gxg-text--gray" }, h("slot", null)));
344
- break;
345
- case "text-quote":
346
- text = (h("q", { style: { maxWidth: this.maxWidth }, class: "gxg-quote" }, h("slot", null)));
347
- break;
348
- case "text-link":
349
- text = (h("a", { style: { maxWidth: this.maxWidth }, href: this.href, target: this.target, class: "gxg-link" }, h("slot", null)));
350
- break;
351
- case "text-link-gray":
352
- text = (h("a", { style: { maxWidth: this.maxWidth }, href: this.href, target: this.target, class: "gxg-link-gray" }, h("slot", null)));
353
- break;
354
- case "text-alert-error":
355
- text = (h("p", { style: { maxWidth: this.maxWidth }, class: "gxg-alert-error" }, h("slot", null)));
356
- break;
357
- case "text-alert-warning":
358
- text = (h("p", { style: { maxWidth: this.maxWidth }, class: "gxg-alert-warning" }, h("slot", null)));
359
- break;
360
- case "text-alert-success":
361
- text = (h("p", { style: { maxWidth: this.maxWidth }, class: "gxg-alert-success" }, h("slot", null)));
362
- break;
363
- default:
364
- text = (h("p", { style: { maxWidth: this.maxWidth }, class: "gxg-text" }, h("slot", null)));
365
- }
366
- return text;
367
- }
368
- render() {
369
- return h(Host, { class: { large: state.large } }, this.textType(), " ");
370
- }
371
- };
372
- GxgText.style = textCss;
373
-
374
- export { ChSuggest as ch_suggest, ChSuggestList as ch_suggest_list, ChSuggestListItem as ch_suggest_list_item, GxgSuggest as gxg_suggest, GxgText as gxg_text };
310
+ export { ChSuggest as ch_suggest, ChSuggestList as ch_suggest_list, ChSuggestListItem as ch_suggest_list_item, GxgSuggest as gxg_suggest };
@@ -0,0 +1,75 @@
1
+ import { r as registerInstance, h, H as Host } from './index-0da01575.js';
2
+
3
+ const testActionGroupCss = "ch-test-action-group{display:flex;border:2px dashed #00000080;resize:both;overflow:auto;width:500px}.action-group{padding:20px;margin:20px;background-color:#ffffff;border:1px solid}.action-group::part(actions){gap:12px}.action-group::part(more-actions-button){border-radius:50%;width:fit-content;height:fit-content;color:#313aa1;align-self:center;margin-inline-end:8px}.dropdown-item::part(action){--separation:8px;background-color:#f3d0c3;border-radius:4px;padding-inline:16px;padding-block:8px}.dropdown-item::part(action):focus-within{outline:1px solid}.dropdown-item::part(action):hover{background-color:#d3b1a4}.action-group::part(more-actions-list),.dropdown-item::part(list){row-gap:8px;margin-block:8px}.action-group::part(more-actions-section),.dropdown-item::part(section){background-color:#edeaff;padding:8px;box-shadow:0 4px 8px 1px #22222220}";
4
+
5
+ const ChTestActionGroup = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.displayedItemsCount = -1;
9
+ /**
10
+ * This attribute lets you specify the label for the expandable button.
11
+ * Important for accessibility.
12
+ */
13
+ this.buttonLabel = "Show options";
14
+ /**
15
+ * Determine which actions on the expandable button display the dropdown
16
+ * section.
17
+ */
18
+ this.expandBehavior = "ClickOrHover";
19
+ /**
20
+ * This attribute determines how items behave when the content of the ActionGroup overflows horizontal. This property is needed
21
+ * to make the control responsive to changes in the Width of the container of ActionGroup.
22
+ *
23
+ * | Value | Details |
24
+ * | --------------------- | ------------------------------------------------------------------------------------------------ |
25
+ * | `Add Scroll` | The items of the ActionGroup that overflow horizontally are shown by means of a scroll. |
26
+ * | `Multiline` | The ActionGroup items that overflow horizontally are shown in a second line of the control. |
27
+ * | `Responsive Collapse` | The Action Group items, when they start to overflow the control, are placed in the More Actions. |
28
+ */
29
+ this.itemsOverflowBehavior = "ResponsiveCollapse";
30
+ /**
31
+ * Determine if the dropdown section should be opened when the expandable
32
+ * button of the control is focused.
33
+ */
34
+ this.openOnFocus = false;
35
+ /**
36
+ * Specifies the position of the dropdown section that is placed relative to
37
+ * the more actions button.
38
+ */
39
+ this.moreActionsDropdownPosition = "InsideStart_OutsideEnd";
40
+ /**
41
+ * Specifies the separation (in pixels) between the expandable button and the
42
+ * dropdown section of the control.
43
+ */
44
+ this.separation = 0;
45
+ // /**
46
+ // * Fired when the visibility of the dropdown section is changed
47
+ // */
48
+ // @Event() expandedChange: EventEmitter<boolean>;
49
+ this.renderItem = (item) => (h("ch-dropdown-item", { slot: "items", id: item.id, class: item.class, expandBehavior: this.expandBehavior, href: item.target, leftImgSrc: item.leftIcon, openOnFocus: this.openOnFocus, position: item.position || "OutsideEnd_InsideStart", rightImgSrc: item.rightIcon }, item.title, item.items != null && item.items.map(this.renderItem)));
50
+ this.firstLevelRenderItem = (item, index) => (h("ch-dropdown-item", { id: item.id, class: item.class, expandBehavior: this.expandBehavior, forceContainingBlock: false, href: item.target, leftImgSrc: item.leftIcon, openOnFocus: this.openOnFocus, position: item.position || "Center_OutsideEnd", rightImgSrc: item.rightIcon }, item.title, this.itemsOverflowBehavior === "ResponsiveCollapse" &&
51
+ (this.displayedItemsCount === -1 || index < this.displayedItemsCount) &&
52
+ item.items != null &&
53
+ item.items.map(this.renderItem)));
54
+ this.firstLevelRenderCollapsedItem = (item) => (h("ch-dropdown-item", { id: item.id, class: item.class, expandBehavior: this.expandBehavior, href: item.target, leftImgSrc: item.leftIcon, openOnFocus: this.openOnFocus, position: item.responsiveCollapsePosition || "OutsideEnd_InsideStart", rightImgSrc: item.rightIcon }, item.title, item.items != null && item.items.map(this.renderItem)));
55
+ this.handleDisplayedItemsCountChange = (event) => {
56
+ this.displayedItemsCount = event.detail;
57
+ };
58
+ }
59
+ render() {
60
+ return (h(Host, null, h("ch-action-group", { buttonLabel: this.buttonLabel, class: "action-group", expandBehavior: this.expandBehavior, itemsOverflowBehavior: this.itemsOverflowBehavior, openOnFocus: this.openOnFocus, moreActionsDropdownPosition: this.moreActionsDropdownPosition,
61
+ // style={{
62
+ // "--separation": `${this.separation}px`
63
+ // }}
64
+ onDisplayedItemsCountChange: this.handleDisplayedItemsCountChange }, this.itemsModel != null &&
65
+ this.itemsModel.map((item, index) => (h("ch-action-group-item", { slot: "items" }, this.firstLevelRenderItem(item, index)))), this.itemsOverflowBehavior === "ResponsiveCollapse" &&
66
+ this.itemsModel != null &&
67
+ this.itemsModel
68
+ .filter((_, index) => this.displayedItemsCount !== -1 &&
69
+ index >= this.displayedItemsCount)
70
+ .map(item => (h("ch-action-group-item", { slot: "more-items", avoidFloating: true }, this.firstLevelRenderCollapsedItem(item)))))));
71
+ }
72
+ };
73
+ ChTestActionGroup.style = testActionGroupCss;
74
+
75
+ export { ChTestActionGroup as ch_test_action_group };
@@ -0,0 +1,50 @@
1
+ import { r as registerInstance, h, H as Host } from './index-0da01575.js';
2
+
3
+ const testDropdownCss = ".dropdown::part(expandable-button){background-color:aliceblue;border:1px solid;border-radius:4px;padding-block:4px;padding-inline:16px}.dropdown::part(expandable-button):focus{box-shadow:0 0 0 1px black}.dropdown-item::part(action){--separation:8px;background-color:#f3d0c3;border-radius:4px;padding-inline:16px;padding-block:8px}.dropdown-item::part(action):focus-within{outline:1px solid}.dropdown-item::part(action):hover{background-color:#d3b1a4}.dropdown::part(section),.dropdown-item::part(section){background-color:#edeaff;padding:8px;box-shadow:0 4px 8px 1px #22222220}.dropdown::part(list),.dropdown-item::part(list){row-gap:8px;margin-block:8px}";
4
+
5
+ const ChTestDropdownX = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ /**
9
+ * This attribute lets you specify the label for the expandable button.
10
+ * Important for accessibility.
11
+ */
12
+ this.buttonLabel = "Show options";
13
+ /**
14
+ * Determine which actions on the expandable button display the dropdown
15
+ * section.
16
+ */
17
+ this.expandBehavior = "ClickOrHover";
18
+ /**
19
+ * Determine if the dropdown section should be opened when the expandable
20
+ * button of the control is focused.
21
+ */
22
+ this.openOnFocus = false;
23
+ /**
24
+ * Specifies the position of the dropdown section that is placed relative to
25
+ * the expandable button.
26
+ */
27
+ this.position = "Center_OutsideEnd";
28
+ /**
29
+ * Specifies the separation (in pixels) between the expandable button and the
30
+ * dropdown section of the control.
31
+ */
32
+ this.separation = 0;
33
+ // /**
34
+ // * Fired when the visibility of the dropdown section is changed
35
+ // */
36
+ // @Event() expandedChange: EventEmitter<boolean>;
37
+ this.renderItem = (item) => [
38
+ h("ch-dropdown-item", { slot: "items", id: item.id, class: item.class, expandBehavior: this.expandBehavior, href: item.target, leftImgSrc: item.leftIcon, openOnFocus: this.openOnFocus, position: "OutsideEnd_InsideStart", rightImgSrc: item.rightIcon }, item.title, item.items != null && item.items.map(this.renderItem)),
39
+ item.showSeparator && (h("ch-dropdown-item-separator", { class: item.separatorClass }))
40
+ ];
41
+ }
42
+ render() {
43
+ return (h(Host, null, h("ch-dropdown", { buttonLabel: this.buttonLabel, class: "dropdown", expandBehavior: this.expandBehavior, openOnFocus: this.openOnFocus, position: this.position, style: {
44
+ "--separation": `${this.separation}px`
45
+ } }, h("span", { slot: "action" }, "User info"), h("div", { slot: "header" }, h("h1", null, "John Doe"), h("span", null, "johndoe@example.com")), this.itemsModel != null && this.itemsModel.map(this.renderItem), h("div", { slot: "footer" }, "Footer"))));
46
+ }
47
+ };
48
+ ChTestDropdownX.style = testDropdownCss;
49
+
50
+ export { ChTestDropdownX as ch_test_dropdown };
@@ -1,14 +1,16 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-0da01575.js';
2
2
  import { C as CH_GLOBAL_STYLESHEET } from './ch-global-stylesheet-f8bbf095.js';
3
3
 
4
- const chWindowCss = ":host{--ch-window-offset-x:0px;--ch-window-offset-y:0px}:host(:not([hidden])){display:contents}:host(:is(:not([modal]),[modal=\"false\"])) .mask{pointer-events:none}.window{pointer-events:all}.mask{display:flex;position:fixed;inset:0;inset-inline-start:calc( var(--ch-window-inset-inline-start) + var(--ch-window-offset-x) );inset-block-start:calc( var(--ch-window-inset-block-start) + var(--ch-window-offset-y) );z-index:var(--ch-window-mask-z-index, 1000)}:host(:is([x-align=\"outside-start\"],[x-align=\"inside-start\"])) .mask{justify-content:flex-start}:host([x-align=center]) .mask{justify-content:center}:host(:is([x-align=\"outside-end\"],[x-align=\"inside-end\"])) .mask{justify-content:flex-end}:host(:is([y-align=\"outside-start\"],[y-align=\"inside-start\"])) .mask{align-items:flex-start}:host([y-align=center]) .mask{align-items:center}:host(:is([y-align=\"outside-end\"],[y-align=\"inside-end\"])) .mask{align-items:flex-end}.window{display:flex;flex-direction:column;transform:translate(var(--ch-window-x-outside, 0px), var(--ch-window-y-outside, 0px)) translate(var(--ch-window-x-drag, 0px), var(--ch-window-y-drag, 0px))}:host([x-align=outside-start]) .window{--ch-window-x-outside:-100%}:host([x-align=outside-end]) .window{--ch-window-x-outside:100%}:host([y-align=outside-start]) .window{--ch-window-y-outside:-100%}:host([y-align=outside-end]) .window{--ch-window-y-outside:100%}";
4
+ const chWindowCss = ":host{--ch-window-offset-x:0px;--ch-window-offset-y:0px;--ch-window-x-outside:0px;--ch-window-y-outside:0px}:host(:not([hidden])){display:contents}:host(:is(:not([modal]),[modal=\"false\"])) .mask{pointer-events:none}.window{pointer-events:all}.mask{display:flex;position:fixed;inset:0;inset-inline-start:calc( var(--ch-window-inset-inline-start) + var(--ch-window-offset-x) );inset-block-start:calc( var(--ch-window-inset-block-start) + var(--ch-window-offset-y) );z-index:var(--ch-window-mask-z-index, 1000)}:host(:is([x-align=\"outside-start\"],[x-align=\"inside-start\"])) .mask{justify-content:flex-start}:host([x-align=center]) .mask{justify-content:center}:host(:is([x-align=\"outside-end\"],[x-align=\"inside-end\"])) .mask{justify-content:flex-end}:host(:is([y-align=\"outside-start\"],[y-align=\"inside-start\"])) .mask{align-items:flex-start}:host([y-align=center]) .mask{align-items:center}:host(:is([y-align=\"outside-end\"],[y-align=\"inside-end\"])) .mask{align-items:flex-end}.window{display:flex;flex-direction:column;transform:translate(var(--ch-window-x-outside), var(--ch-window-y-outside)) translate(var(--ch-window-x-drag, 0px), var(--ch-window-y-drag, 0px))}:host([x-align=outside-start]) .window{--ch-window-x-outside:-100%}:host([x-align=outside-end]) .window{--ch-window-x-outside:100%}:host([y-align=outside-start]) .window{--ch-window-y-outside:-100%}:host([y-align=outside-end]) .window{--ch-window-y-outside:100%}";
5
5
 
6
+ const CONTAINING_BLOCK_RESET_CUSTOM_VAR = "--ch-window-relative-position";
6
7
  const ChWindow = class {
7
8
  constructor(hostRef) {
8
9
  registerInstance(this, hostRef);
9
10
  this.windowOpened = createEvent(this, "windowOpened", 7);
10
11
  this.windowClosed = createEvent(this, "windowClosed", 7);
11
12
  this.isContainerCssOverride = false;
13
+ this.relativeWindow = false;
12
14
  this.validCssAligns = [
13
15
  "outside-start",
14
16
  "inside-start",
@@ -56,17 +58,25 @@ const ChWindow = class {
56
58
  this.updatePosition = () => {
57
59
  if (!this.isContainerCssOverride && this.container && this.mask) {
58
60
  const rect = this.container.getBoundingClientRect();
61
+ this.mask.style.width = `${rect.width}px`;
62
+ this.mask.style.height = `${rect.height}px`;
63
+ // Nested windows are positioned relative to its initial containing block,
64
+ // so there is no need to align them relative to the document
65
+ if (this.relativeWindow) {
66
+ return;
67
+ }
59
68
  // TODO: RTL positioning bug
60
69
  this.mask.style.setProperty("--ch-window-inset-inline-start", `${rect.left}px`);
61
70
  this.mask.style.setProperty("--ch-window-inset-block-start", `${rect.top}px`);
62
- this.mask.style.width = `${rect.width}px`;
63
- this.mask.style.height = `${rect.height}px`;
64
71
  }
65
72
  else if (this.isContainerCssOverride || !this.container) {
66
- this.mask.style.removeProperty("--ch-window-inset-inline-start");
67
- this.mask.style.removeProperty("--ch-window-inset-block-start");
68
73
  this.mask.style.removeProperty("width");
69
74
  this.mask.style.removeProperty("height");
75
+ if (this.relativeWindow) {
76
+ return;
77
+ }
78
+ this.mask.style.removeProperty("--ch-window-inset-inline-start");
79
+ this.mask.style.removeProperty("--ch-window-inset-block-start");
70
80
  }
71
81
  };
72
82
  this.windowResizeHandler = () => {
@@ -88,6 +98,7 @@ const ChWindow = class {
88
98
  };
89
99
  }
90
100
  containerHandler(value, oldValue) {
101
+ this.checkRelativePosition();
91
102
  this.containerResizeObserverHandler(value, oldValue);
92
103
  this.updatePosition();
93
104
  }
@@ -98,6 +109,7 @@ const ChWindow = class {
98
109
  this.windowClosed.emit();
99
110
  }
100
111
  else {
112
+ this.checkRelativePosition();
101
113
  this.updatePosition();
102
114
  this.watchCSSAlign();
103
115
  this.addListeners();
@@ -125,6 +137,10 @@ const ChWindow = class {
125
137
  windowCloseClickedHandler() {
126
138
  this.hidden = true;
127
139
  }
140
+ checkRelativePosition() {
141
+ const computed = getComputedStyle(this.el);
142
+ this.relativeWindow = !!computed.getPropertyValue(CONTAINING_BLOCK_RESET_CUSTOM_VAR);
143
+ }
128
144
  resetDrag() {
129
145
  this.dragStartX = undefined;
130
146
  this.dragStartY = undefined;
@@ -200,7 +216,10 @@ const ChWindow = class {
200
216
  this.el.shadowRoot.adoptedStyleSheets.push(CH_GLOBAL_STYLESHEET);
201
217
  }
202
218
  render() {
203
- return (h(Host, null, h("div", { class: "mask", part: "mask", ref: el => (this.mask = el), onClick: this.maskClickHandler }, h("section", { class: "window", part: "window", ref: el => (this.window = el) }, this.showHeader && (h("header", { part: "header", ref: el => (this.header = el) }, h("slot", { name: "header" }, h("span", { part: "caption" }, this.caption), h("ch-window-close", { part: "close", title: this.closeTooltip }, this.closeText)))), h("div", { part: "main" }, h("slot", null)), this.showFooter && (h("footer", { part: "footer" }, h("slot", { name: "footer" })))))));
219
+ return (h(Host, null, h("div", { class: "mask", part: "mask", style: this.relativeWindow && {
220
+ "--ch-window-inset-inline-start": "0px",
221
+ "--ch-window-inset-block-start": "0px"
222
+ }, ref: el => (this.mask = el), onClick: this.maskClickHandler }, h("section", { class: "window", part: "window", ref: el => (this.window = el) }, this.showHeader && (h("header", { part: "header", ref: el => (this.header = el) }, h("slot", { name: "header" }, h("span", { part: "caption" }, this.caption), h("ch-window-close", { part: "close", title: this.closeTooltip }, this.closeText)))), h("div", { part: "main" }, h("slot", null)), this.showFooter && (h("footer", { part: "footer" }, h("slot", { name: "footer" })))))));
204
223
  }
205
224
  get el() { return getElement(this); }
206
225
  static get watchers() { return {
@@ -0,0 +1,25 @@
1
+ import { h } from './index-0da01575.js';
2
+
3
+ /* STENCIL IMPORTS */
4
+ const renderComboItems = (gxOptions) => {
5
+ const comboItemsArray = [];
6
+ gxOptions.forEach((gxOption) => {
7
+ const iconName = gxOption.iconName || gxOption.icon;
8
+ comboItemsArray.push(h("gxg-combo-box-item", { value: gxOption.value, icon: iconName }, gxOption.label || gxOption.name));
9
+ });
10
+ return comboItemsArray;
11
+ };
12
+
13
+ const formatDate = (dateObject) => {
14
+ const date = dateObject.toISOString().slice(0, 10);
15
+ const hours = dateObject.getHours();
16
+ const minutes = dateObject.getMinutes();
17
+ const time = `${hours}:${minutes}`;
18
+ let period = "AM"; // Assume it's AM by default
19
+ if (hours >= 12) {
20
+ period = "PM";
21
+ }
22
+ return `${date} ${time}${period} `;
23
+ };
24
+
25
+ export { formatDate as f, renderComboItems as r };