@toolbox-web/grid 1.29.0 → 1.30.1

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 (43) hide show
  1. package/all.js +2 -2
  2. package/all.js.map +1 -1
  3. package/index.js +1 -1
  4. package/index.js.map +1 -1
  5. package/lib/core/grid.d.ts +7 -0
  6. package/lib/core/types.d.ts +2 -0
  7. package/lib/plugins/clipboard/index.js.map +1 -1
  8. package/lib/plugins/column-virtualization/index.js.map +1 -1
  9. package/lib/plugins/context-menu/index.js.map +1 -1
  10. package/lib/plugins/editing/index.js.map +1 -1
  11. package/lib/plugins/export/index.js.map +1 -1
  12. package/lib/plugins/filtering/index.js +1 -1
  13. package/lib/plugins/filtering/index.js.map +1 -1
  14. package/lib/plugins/grouping-columns/index.js.map +1 -1
  15. package/lib/plugins/grouping-rows/index.js.map +1 -1
  16. package/lib/plugins/master-detail/index.js.map +1 -1
  17. package/lib/plugins/multi-sort/index.js.map +1 -1
  18. package/lib/plugins/pinned-columns/PinnedColumnsPlugin.d.ts +18 -4
  19. package/lib/plugins/pinned-columns/index.js +1 -1
  20. package/lib/plugins/pinned-columns/index.js.map +1 -1
  21. package/lib/plugins/pinned-columns/pinned-columns.d.ts +38 -2
  22. package/lib/plugins/pinned-rows/index.js.map +1 -1
  23. package/lib/plugins/pivot/index.js.map +1 -1
  24. package/lib/plugins/print/index.js.map +1 -1
  25. package/lib/plugins/reorder-columns/index.js.map +1 -1
  26. package/lib/plugins/reorder-rows/index.js.map +1 -1
  27. package/lib/plugins/responsive/index.js.map +1 -1
  28. package/lib/plugins/selection/index.js.map +1 -1
  29. package/lib/plugins/server-side/index.js.map +1 -1
  30. package/lib/plugins/tooltip/index.js.map +1 -1
  31. package/lib/plugins/tree/index.js.map +1 -1
  32. package/lib/plugins/undo-redo/index.js.map +1 -1
  33. package/lib/plugins/visibility/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/umd/grid.all.umd.js +1 -1
  36. package/umd/grid.all.umd.js.map +1 -1
  37. package/umd/grid.umd.js +1 -1
  38. package/umd/grid.umd.js.map +1 -1
  39. package/umd/plugins/filtering.umd.js +1 -1
  40. package/umd/plugins/filtering.umd.js.map +1 -1
  41. package/umd/plugins/pinned-columns.umd.js +1 -1
  42. package/umd/plugins/pinned-columns.umd.js.map +1 -1
  43. package/umd/plugins/reorder-columns.umd.js.map +1 -1
@@ -80,15 +80,51 @@ export interface GroupEndAdjustments {
80
80
  addGroupEnd: Set<string>;
81
81
  removeGroupEnd: Set<string>;
82
82
  }
83
+ /**
84
+ * Result of applying sticky offsets — includes both the group-end adjustments
85
+ * and the measured left/right offset maps for use in per-cell rendering hooks.
86
+ */
87
+ export interface StickyOffsetsResult {
88
+ groupEndAdjustments: GroupEndAdjustments;
89
+ leftOffsets: Map<string, number>;
90
+ rightOffsets: Map<string, number>;
91
+ splitGroups: SplitGroupState[];
92
+ }
93
+ /**
94
+ * State for an explicit group header that was split at a pin boundary.
95
+ *
96
+ * The pinned fragment is sticky and initially empty. The non-pinned fragment
97
+ * holds the label in a CSS-sticky span that floats toward the pinned area on
98
+ * horizontal scroll. When the non-pinned fragment scrolls far enough, the
99
+ * plugin's `onScroll` handler transfers the label into the pinned fragment.
100
+ */
101
+ export interface SplitGroupState {
102
+ /** Group identifier (data-group attribute value). */
103
+ groupId: string;
104
+ /** Original group label text. */
105
+ label: string;
106
+ /** The sticky (pinned) fragment element. */
107
+ pinnedFragment: HTMLElement;
108
+ /** The scrollable (non-pinned) fragment element. */
109
+ scrollableFragment: HTMLElement;
110
+ /** The floating <span> inside the scrollable fragment. */
111
+ floatLabel: HTMLElement;
112
+ /** Field of the last pinned column — used to toggle `.group-end`. */
113
+ pinnedField: string;
114
+ /** Whether the label is currently shown inside the pinned fragment. */
115
+ isTransferred: boolean;
116
+ /** Current translateX offset applied to the floating label (px). */
117
+ floatOffset: number;
118
+ }
83
119
  /**
84
120
  * Apply sticky offsets to header and body cells.
85
121
  * This modifies the DOM elements in place.
86
122
  *
87
123
  * @param host - The grid host element (render root for DOM queries)
88
124
  * @param columns - Array of column configurations
89
- * @returns Group-end adjustments for `afterCellRender` hooks to maintain during scroll
125
+ * @returns Sticky offsets result with group-end adjustments and measured offset maps
90
126
  */
91
- export declare function applyStickyOffsets(host: HTMLElement, columns: any[]): GroupEndAdjustments;
127
+ export declare function applyStickyOffsets(host: HTMLElement, columns: any[]): StickyOffsetsResult;
92
128
  /**
93
129
  * Reorder columns so that pinned-left columns come first and pinned-right columns come last.
94
130
  * Maintains the relative order within each group (left-pinned, unpinned, right-pinned).