@revolist/revogrid 4.21.2 → 4.21.4

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 (77) hide show
  1. package/dist/cjs/{cell-renderer-EyG5RkCf.js → cell-renderer-BLcxDHzP.js} +2 -2
  2. package/dist/cjs/{column.drag.plugin-DuMzh_Cm.js → column.drag.plugin-DfTAC5Qc.js} +4 -4
  3. package/dist/cjs/{column.service-BNgb1GSr.js → column.service-BmT2HOnj.js} +1 -1
  4. package/dist/cjs/{dimension.helpers-DLLC6uO6.js → dimension.helpers-BOxHtX5T.js} +13 -3
  5. package/dist/cjs/{edit.utils-BWpSdGmj.js → edit.utils-DnvQVP4H.js} +1 -1
  6. package/dist/cjs/{header-cell-renderer-BReLylCk.js → header-cell-renderer-7DgGThjq.js} +1 -1
  7. package/dist/cjs/index.cjs.js +9 -8
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/revo-grid.cjs.entry.js +45 -12
  10. package/dist/cjs/revo-grid.cjs.js +1 -1
  11. package/dist/cjs/revogr-attribution_7.cjs.entry.js +5 -5
  12. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -3
  13. package/dist/cjs/revogr-data_4.cjs.entry.js +8 -7
  14. package/dist/cjs/{text-editor-tI8PMl7r.js → text-editor-B9ibcdrl.js} +2 -2
  15. package/dist/cjs/{throttle-Rub9czPz.js → throttle-DkuCcmB0.js} +1 -1
  16. package/dist/cjs/{viewport.store-Bkhj0ZmO.js → viewport.store-DG-4bWqg.js} +1 -1
  17. package/dist/collection/components/clipboard/revogr-clipboard.js +6 -4
  18. package/dist/collection/components/revoGrid/revo-grid.js +64 -3
  19. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +4 -3
  20. package/dist/collection/components/revoGrid/viewport.service.js +2 -0
  21. package/dist/collection/components/rowHeaders/revogr-row-headers.js +1 -1
  22. package/dist/collection/components/scroll/revogr-viewport-scroll.js +25 -4
  23. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +1 -1
  24. package/dist/collection/services/data.provider.js +18 -2
  25. package/dist/collection/store/dataSource/data.store.js +14 -4
  26. package/dist/collection/types/events.js +1 -0
  27. package/dist/{revo-grid/cell-renderer-BDmepZJO.js → esm/cell-renderer-BNeaYjy6.js} +2 -2
  28. package/dist/esm/{column.drag.plugin-B98azH0j.js → column.drag.plugin-C9lvlTfl.js} +4 -4
  29. package/dist/esm/{column.service-BghHOZP8.js → column.service-8pPNyrKn.js} +1 -1
  30. package/dist/{revo-grid/dimension.helpers-C2F2Cuh8.js → esm/dimension.helpers-B-5OBYes.js} +13 -3
  31. package/dist/esm/{edit.utils-Cdhf8P7e.js → edit.utils-CQjRmx5n.js} +1 -1
  32. package/dist/{revo-grid/header-cell-renderer-DO0jvvbw.js → esm/header-cell-renderer-WkTbrmr7.js} +1 -1
  33. package/dist/esm/index.js +10 -9
  34. package/dist/esm/loader.js +1 -1
  35. package/dist/esm/revo-grid.entry.js +45 -12
  36. package/dist/esm/revo-grid.js +1 -1
  37. package/dist/esm/revogr-attribution_7.entry.js +5 -5
  38. package/dist/esm/revogr-clipboard_3.entry.js +5 -3
  39. package/dist/esm/revogr-data_4.entry.js +8 -7
  40. package/dist/{revo-grid/text-editor-BylR9oxh.js → esm/text-editor-DZSx2pWr.js} +2 -2
  41. package/dist/esm/{throttle-BEccmfmt.js → throttle-CYM0qC3v.js} +1 -1
  42. package/dist/{revo-grid/viewport.store-C3ajQgRm.js → esm/viewport.store-BGWR3XfI.js} +1 -1
  43. package/dist/{esm/cell-renderer-BDmepZJO.js → revo-grid/cell-renderer-BNeaYjy6.js} +2 -2
  44. package/dist/revo-grid/{column.drag.plugin-B98azH0j.js → column.drag.plugin-C9lvlTfl.js} +4 -4
  45. package/dist/revo-grid/{column.service-BghHOZP8.js → column.service-8pPNyrKn.js} +1 -1
  46. package/dist/{esm/dimension.helpers-C2F2Cuh8.js → revo-grid/dimension.helpers-B-5OBYes.js} +13 -3
  47. package/dist/revo-grid/{edit.utils-Cdhf8P7e.js → edit.utils-CQjRmx5n.js} +1 -1
  48. package/dist/{esm/header-cell-renderer-DO0jvvbw.js → revo-grid/header-cell-renderer-WkTbrmr7.js} +1 -1
  49. package/dist/revo-grid/index.esm.js +10 -9
  50. package/dist/revo-grid/revo-grid.entry.js +45 -12
  51. package/dist/revo-grid/revo-grid.esm.js +1 -1
  52. package/dist/revo-grid/revogr-attribution_7.entry.js +5 -5
  53. package/dist/revo-grid/revogr-clipboard_3.entry.js +5 -3
  54. package/dist/revo-grid/revogr-data_4.entry.js +8 -7
  55. package/dist/{esm/text-editor-BylR9oxh.js → revo-grid/text-editor-DZSx2pWr.js} +2 -2
  56. package/dist/revo-grid/{throttle-BEccmfmt.js → throttle-CYM0qC3v.js} +1 -1
  57. package/dist/{esm/viewport.store-C3ajQgRm.js → revo-grid/viewport.store-BGWR3XfI.js} +1 -1
  58. package/dist/types/components/clipboard/revogr-clipboard.d.ts +2 -0
  59. package/dist/types/components/revoGrid/revo-grid.d.ts +11 -0
  60. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +3 -3
  61. package/dist/types/components/revoGrid/viewport.service.d.ts +1 -0
  62. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +1 -0
  63. package/dist/types/components.d.ts +33 -0
  64. package/dist/types/services/data.provider.d.ts +15 -1
  65. package/dist/types/store/dataSource/data.store.d.ts +3 -1
  66. package/dist/types/types/events.d.ts +1 -1
  67. package/dist/types/types/interfaces.d.ts +2 -2
  68. package/dist/types/types/viewport.interfaces.d.ts +7 -2
  69. package/hydrate/index.js +60 -12
  70. package/hydrate/index.mjs +60 -12
  71. package/package.json +1 -1
  72. package/readme.md +2 -0
  73. package/standalone/data.store.js +1 -1
  74. package/standalone/index.js +1 -1
  75. package/standalone/revo-grid.js +1 -1
  76. package/standalone/revogr-clipboard2.js +1 -1
  77. package/standalone/revogr-viewport-scroll2.js +1 -1
@@ -2,16 +2,16 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h, r as registerInstance, d as createEvent, e as Host, g as getElement } from './index-Chp_81rd.js';
5
- import { c as columnTypes, J as reduce, C as getColumnType, r as rowTypes, i as isRowType, D as getColumnSizes, a as cropCellToMax, n as nextCell, I as getColumnByProp, F as getColumns } from './column.service-BghHOZP8.js';
6
- import { D as DataStore, b as getSourceItem, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, a as getVisibleSourceItem, h as gatherTrimmedItems, k as getItemByIndex, R as RESIZE_INTERVAL, u as timeout } from './dimension.helpers-C2F2Cuh8.js';
5
+ import { c as columnTypes, J as reduce, C as getColumnType, r as rowTypes, i as isRowType, D as getColumnSizes, a as cropCellToMax, n as nextCell, I as getColumnByProp, F as getColumns } from './column.service-8pPNyrKn.js';
6
+ import { D as DataStore, b as getSourceItem, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, a as getVisibleSourceItem, h as gatherTrimmedItems, k as getItemByIndex, R as RESIZE_INTERVAL, u as timeout } from './dimension.helpers-B-5OBYes.js';
7
7
  import { d as debounce } from './debounce-BfO9dz9v.js';
8
- import { D as DimensionStore, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, e as FilterPlugin, E as ExportFilePlugin, m as SortingPlugin, C as ColumnMovePlugin } from './column.drag.plugin-B98azH0j.js';
9
- import { V as ViewportStore } from './viewport.store-C3ajQgRm.js';
8
+ import { D as DimensionStore, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, e as FilterPlugin, E as ExportFilePlugin, m as SortingPlugin, C as ColumnMovePlugin } from './column.drag.plugin-C9lvlTfl.js';
9
+ import { V as ViewportStore } from './viewport.store-BGWR3XfI.js';
10
10
  import { T as ThemeService } from './theme.service-BmnDvr6P.js';
11
11
  import { v as viewportDataPartition, F as FOOTER_SLOT, C as CONTENT_SLOT, H as HEADER_SLOT, D as DATA_SLOT } from './viewport.helpers-VXhsJZtn.js';
12
12
  import { g as getPropertyFromEvent } from './events-BvSmBueA.js';
13
13
  import './filter.button-C8XTWPU2.js';
14
- import './header-cell-renderer-DO0jvvbw.js';
14
+ import './header-cell-renderer-WkTbrmr7.js';
15
15
 
16
16
  class ColumnDataProvider {
17
17
  get stores() {
@@ -139,9 +139,25 @@ class DataProvider {
139
139
  return sources;
140
140
  }, {});
141
141
  }
142
- setData(data, type = 'rgRow', disableVirtualRows = false, grouping, silent = false) {
142
+ /**
143
+ * Replaces the data source for a row type and synchronizes the related dimension metadata.
144
+ *
145
+ * `rgRow` updates also refresh the virtual row model unless `disableVirtualRows` is set.
146
+ * Pinned row types skip virtual row recalculation because they are rendered directly.
147
+ *
148
+ * @param data Full source data assigned to the target row store.
149
+ * @param type Row collection to update. Defaults to the main body rows.
150
+ * @param disableVirtualRows Prevents recalculating virtual rows for the main row store.
151
+ * @param grouping Optional grouping metadata applied together with the new data set.
152
+ * @param silent Preserves the current trimmed state instead of resetting it during the update.
153
+ * @param preserveTrimmed Re-applies current trimmed indexes after a silent update.
154
+ * @returns The same `data` array that was provided to the method.
155
+ */
156
+ setData(data, type = 'rgRow', disableVirtualRows = false, grouping,
157
+ // if true, store will be updated without resetting trimmed state
158
+ silent = false, preserveTrimmed = false) {
143
159
  // set rgRow data
144
- this.stores[type].updateData([...data], grouping, silent);
160
+ this.stores[type].updateData([...data], grouping, silent, preserveTrimmed);
145
161
  // for pinned row no need virtual data
146
162
  const noVirtual = type !== 'rgRow' || disableVirtualRows;
147
163
  this.dimensionProvider.setData(data.length, type, noVirtual);
@@ -400,6 +416,7 @@ function gatherColumnData(data) {
400
416
  contentHeight: data.contentHeight,
401
417
  key: data.colType,
402
418
  colType: data.colType,
419
+ noHorizontalScrollTransfer: data.noHorizontalScrollTransfer,
403
420
  onResizeviewport: data.onResizeviewport,
404
421
  // set viewport size to real size
405
422
  style: data.fixWidth ? { minWidth: `${realWidth}px` } : undefined,
@@ -444,6 +461,7 @@ class ViewportService {
444
461
  viewports: config.viewportProvider.stores,
445
462
  dimensions: config.dimensionProvider.stores,
446
463
  rowStores: config.dataProvider.stores,
464
+ noHorizontalScrollTransfer: config.noHorizontalScrollTransfer,
447
465
  colStore,
448
466
  onHeaderresize: e => this.onColumnResize(val, e, colStore),
449
467
  };
@@ -622,11 +640,11 @@ class GridScrollingService {
622
640
  this.setViewport = setViewport;
623
641
  this.elements = {};
624
642
  }
625
- async proxyScroll(e, key) {
643
+ async proxyScroll(e, key, skipEvent) {
626
644
  var _a;
627
645
  let newEventPromise;
628
646
  let event = e;
629
- for (let elKey in this.elements) {
647
+ for (let elKey in (skipEvent ? {} : this.elements)) {
630
648
  // skip
631
649
  if (e.dimension === 'rgCol' && elKey === 'headerRow') {
632
650
  continue;
@@ -652,7 +670,8 @@ class GridScrollingService {
652
670
  if (newEvent) {
653
671
  event = newEvent;
654
672
  }
655
- this.setViewport(event);
673
+ this.setViewport(skipEvent && this.isPinnedColumn(key)
674
+ ? Object.assign(Object.assign({}, event), { dimension: key }) : event);
656
675
  }
657
676
  /**
658
677
  * Silent scroll update for mobile devices when we have negative scroll top
@@ -1340,6 +1359,7 @@ const RevoGridComponent = class {
1340
1359
  this.beforeanysource = createEvent(this, "beforeanysource", 7);
1341
1360
  this.aftersourceset = createEvent(this, "aftersourceset", 7);
1342
1361
  this.afteranysource = createEvent(this, "afteranysource", 7);
1362
+ this.beforecolumnsgather = createEvent(this, "beforecolumnsgather", 7);
1343
1363
  this.beforecolumnsset = createEvent(this, "beforecolumnsset", 7);
1344
1364
  this.beforecolumnapplied = createEvent(this, "beforecolumnapplied", 7);
1345
1365
  this.aftercolumnsset = createEvent(this, "aftercolumnsset", 7);
@@ -1380,6 +1400,10 @@ const RevoGridComponent = class {
1380
1400
  this.readonly = false;
1381
1401
  /** When true, columns are resizable. */
1382
1402
  this.resize = false;
1403
+ /**
1404
+ * Prevents horizontal scroll state from being mirrored across viewport sections.
1405
+ */
1406
+ this.noHorizontalScrollTransfer = false;
1383
1407
  /** When true cell focus appear. */
1384
1408
  this.canFocus = true;
1385
1409
  /** When true enable clipboard. */
@@ -1915,7 +1939,13 @@ const RevoGridComponent = class {
1915
1939
  if (!this.dimensionProvider || !this.columnProvider) {
1916
1940
  return;
1917
1941
  }
1918
- const columnGather = getColumns(newVal, 0, this.columnTypes);
1942
+ const beforeGatherEvent = this.beforecolumnsgather.emit({
1943
+ columns: [...newVal],
1944
+ });
1945
+ if (beforeGatherEvent.defaultPrevented) {
1946
+ return;
1947
+ }
1948
+ const columnGather = getColumns(beforeGatherEvent.detail.columns, 0, this.columnTypes);
1919
1949
  const beforeSetEvent = this.beforecolumnsset.emit(columnGather);
1920
1950
  if (beforeSetEvent.defaultPrevented) {
1921
1951
  return;
@@ -2262,6 +2292,7 @@ const RevoGridComponent = class {
2262
2292
  scrollingService: this.scrollingService,
2263
2293
  orderService: this.orderService,
2264
2294
  selectionStoreConnector: this.selectionStoreConnector,
2295
+ noHorizontalScrollTransfer: this.noHorizontalScrollTransfer,
2265
2296
  disableVirtualX: this.disableVirtualX,
2266
2297
  disableVirtualY: this.disableVirtualY,
2267
2298
  resize: c => this.aftercolumnresize.emit(c),
@@ -2302,7 +2333,9 @@ const RevoGridComponent = class {
2302
2333
  dataViews.push(dataView);
2303
2334
  });
2304
2335
  // Add viewport scroll in the end
2305
- viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => this.scrollingService.registerElement(el, `${view.prop.key}`), onScrollviewport: e => this.scrollingService.proxyScroll(e.detail, `${view.prop.key}`), onScrollviewportsilent: e => this.scrollingService.scrollSilentService(e.detail, `${view.prop.key}`) }), dataViews));
2336
+ viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => this.scrollingService.registerElement(el, `${view.prop.key}`), onScrollviewport: e => {
2337
+ this.scrollingService.proxyScroll(e.detail, `${view.prop.key}`, this.noHorizontalScrollTransfer && e.detail.dimension === 'rgCol');
2338
+ }, onScrollviewportsilent: e => this.scrollingService.scrollSilentService(e.detail, `${view.prop.key}`) }), dataViews));
2306
2339
  }
2307
2340
  viewportSections.push(viewPortHtml);
2308
2341
  // #endregion
@@ -48,5 +48,5 @@ var patchCloneNodeFix = (HTMLElementPrototype) => {
48
48
 
49
49
  patchBrowser().then(async (options) => {
50
50
  await globalScripts();
51
- return bootstrapLazy([["revo-grid",[[260,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyOnClose":[4,"apply-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"sorting":[16],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"additionalData":[16],"disableVirtualX":[4,"disable-virtual-x"],"disableVirtualY":[4,"disable-virtual-y"],"hideAttribution":[4,"hide-attribution"],"jobsBeforeRender":[16],"registerVNode":[16],"accessible":[4],"rtl":[4],"canDrag":[4,"can-drag"],"refresh":[64],"setDataAt":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64],"refreshExtraElements":[64],"getProviders":[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{"columnTypes":[{"columnTypesChanged":0}],"columns":[{"columnChanged":0}],"disableVirtualX":[{"disableVirtualXChanged":0}],"rowSize":[{"rowSizeChanged":0}],"theme":[{"themeChanged":0}],"source":[{"dataSourceChanged":0}],"pinnedBottomSource":[{"dataSourceChanged":0}],"pinnedTopSource":[{"dataSourceChanged":0}],"disableVirtualY":[{"disableVirtualYChanged":0}],"rowDefinitions":[{"rowDefChanged":0}],"trimmedRows":[{"trimmedRowsChanged":0}],"grouping":[{"groupingChanged":0}],"stretch":[{"applyStretch":0}],"filter":[{"applyFilter":0}],"sorting":[{"applySorting":0}],"rowHeaders":[{"rowHeadersChange":0}],"registerVNode":[{"registerOutsideVNodes":0}],"additionalData":[{"additionalDataChanged":0}],"rtl":[{"rtlChanged":0}],"plugins":[{"pluginsChanged":0}]}]]],["revogr-filter-panel",[[260,"revogr-filter-panel",{"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"closeOnOutsideClick":[4,"close-on-outside-click"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"filterItems":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revogr-clipboard_3",[[0,"revogr-clipboard",{"readonly":[4],"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"],[4,"cut","cutStarted"]]],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"additionalData":[8,"additional-data"],"cancelChanges":[64],"beforeDisconnect":[64]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"rowType":[1,"row-type"],"dragStart":[64],"endOrder":[64],"clearOrder":[64]}]]],["revogr-data_4",[[260,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"additionalData":[8,"additional-data"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[513],"colType":[513,"col-type"],"jobsBeforeRender":[16],"providers":[32],"updateCell":[64]},null,{"dataStore":[{"onDataStoreChange":0}],"colData":[{"onColDataChange":0}]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"groups":[16],"groupingDepth":[2,"grouping-depth"],"readonly":[4],"canResize":[4,"can-resize"],"resizeHandler":[16],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1],"additionalData":[8,"additional-data"]}],[260,"revogr-viewport-scroll",{"rowHeader":[4,"row-header"],"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"colType":[1,"col-type"],"setScroll":[64],"changeScroll":[64],"applyScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]],[0,"vnode-html",{"redraw":[16]}]]],["revogr-attribution_7",[[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16],"additionalData":[8,"additional-data"],"jobsBeforeRender":[16]}],[260,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"],"additionalData":[8,"additional-data"],"isMobileDevice":[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{"selectionStore":[{"selectionServiceSet":0}],"dimensionRow":[{"createAutoFillService":0}],"dimensionCol":[{"createAutoFillService":0}],"dataStore":[{"columnServiceSet":0}],"colData":[{"columnServiceSet":0}]}],[0,"revogr-attribution"],[260,"revogr-focus",{"colType":[1,"col-type"],"rowType":[1,"row-type"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"realSize":[2,"real-size"],"virtualSize":[2,"virtual-size"],"clientSize":[2,"client-size"],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-extra",{"nodes":[16],"update":[32],"refresh":[64]}]]]], options);
51
+ return bootstrapLazy([["revo-grid",[[260,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyOnClose":[4,"apply-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"sorting":[16],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"additionalData":[16],"disableVirtualX":[4,"disable-virtual-x"],"disableVirtualY":[4,"disable-virtual-y"],"hideAttribution":[4,"hide-attribution"],"jobsBeforeRender":[16],"registerVNode":[16],"accessible":[4],"rtl":[4],"canDrag":[4,"can-drag"],"refresh":[64],"setDataAt":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64],"refreshExtraElements":[64],"getProviders":[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{"columnTypes":[{"columnTypesChanged":0}],"columns":[{"columnChanged":0}],"disableVirtualX":[{"disableVirtualXChanged":0}],"rowSize":[{"rowSizeChanged":0}],"theme":[{"themeChanged":0}],"source":[{"dataSourceChanged":0}],"pinnedBottomSource":[{"dataSourceChanged":0}],"pinnedTopSource":[{"dataSourceChanged":0}],"disableVirtualY":[{"disableVirtualYChanged":0}],"rowDefinitions":[{"rowDefChanged":0}],"trimmedRows":[{"trimmedRowsChanged":0}],"grouping":[{"groupingChanged":0}],"stretch":[{"applyStretch":0}],"filter":[{"applyFilter":0}],"sorting":[{"applySorting":0}],"rowHeaders":[{"rowHeadersChange":0}],"registerVNode":[{"registerOutsideVNodes":0}],"additionalData":[{"additionalDataChanged":0}],"rtl":[{"rtlChanged":0}],"plugins":[{"pluginsChanged":0}]}]]],["revogr-filter-panel",[[260,"revogr-filter-panel",{"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"closeOnOutsideClick":[4,"close-on-outside-click"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"filterItems":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revogr-clipboard_3",[[0,"revogr-clipboard",{"readonly":[4],"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"],[4,"cut","cutStarted"]]],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"additionalData":[8,"additional-data"],"cancelChanges":[64],"beforeDisconnect":[64]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"rowType":[1,"row-type"],"dragStart":[64],"endOrder":[64],"clearOrder":[64]}]]],["revogr-data_4",[[260,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"additionalData":[8,"additional-data"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[513],"colType":[513,"col-type"],"jobsBeforeRender":[16],"providers":[32],"updateCell":[64]},null,{"dataStore":[{"onDataStoreChange":0}],"colData":[{"onColDataChange":0}]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"groups":[16],"groupingDepth":[2,"grouping-depth"],"readonly":[4],"canResize":[4,"can-resize"],"resizeHandler":[16],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1],"additionalData":[8,"additional-data"]}],[260,"revogr-viewport-scroll",{"rowHeader":[4,"row-header"],"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"colType":[1,"col-type"],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"setScroll":[64],"changeScroll":[64],"applyScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]],[0,"vnode-html",{"redraw":[16]}]]],["revogr-attribution_7",[[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16],"additionalData":[8,"additional-data"],"jobsBeforeRender":[16]}],[260,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"],"additionalData":[8,"additional-data"],"isMobileDevice":[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{"selectionStore":[{"selectionServiceSet":0}],"dimensionRow":[{"createAutoFillService":0}],"dimensionCol":[{"createAutoFillService":0}],"dataStore":[{"columnServiceSet":0}],"colData":[{"columnServiceSet":0}]}],[0,"revogr-attribution"],[260,"revogr-focus",{"colType":[1,"col-type"],"rowType":[1,"row-type"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"realSize":[2,"real-size"],"virtualSize":[2,"virtual-size"],"clientSize":[2,"client-size"],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-extra",{"nodes":[16],"update":[32],"refresh":[64]}]]]], options);
52
52
  });
@@ -2,14 +2,14 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { r as registerInstance, h, e as Host, d as createEvent, g as getElement } from './index-Chp_81rd.js';
5
- import { k as getItemByIndex, b as getSourceItem, j as getItemByPosition, J as FOCUS_CLASS, U as codesLetter, u as timeout, R as RESIZE_INTERVAL, K as MOBILE_CLASS, L as CELL_HANDLER_CLASS, S as SELECTION_BORDER_CLASS, D as DataStore, A as ROW_HEADER_TYPE, o as getScrollbarSize, T as TMP_SELECTION_BG_CLASS } from './dimension.helpers-C2F2Cuh8.js';
5
+ import { k as getItemByIndex, b as getSourceItem, j as getItemByPosition, J as FOCUS_CLASS, U as codesLetter, u as timeout, R as RESIZE_INTERVAL, K as MOBILE_CLASS, L as CELL_HANDLER_CLASS, S as SELECTION_BORDER_CLASS, D as DataStore, A as ROW_HEADER_TYPE, o as getScrollbarSize, T as TMP_SELECTION_BG_CLASS } from './dimension.helpers-B-5OBYes.js';
6
6
  import { g as getPropertyFromEvent, v as verifyTouchTarget } from './events-BvSmBueA.js';
7
- import { g as getRange, M as ColumnService, z as getCellData, N as getCellEditor, b as isRangeSingleCell } from './column.service-BghHOZP8.js';
8
- import { c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll, l as isEditInput } from './edit.utils-Cdhf8P7e.js';
7
+ import { g as getRange, M as ColumnService, z as getCellData, N as getCellEditor, b as isRangeSingleCell } from './column.service-8pPNyrKn.js';
8
+ import { c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll, l as isEditInput } from './edit.utils-CQjRmx5n.js';
9
9
  import { d as debounce } from './debounce-BfO9dz9v.js';
10
- import { V as ViewportStore, f as calculateRowHeaderSize } from './viewport.store-C3ajQgRm.js';
10
+ import { V as ViewportStore, f as calculateRowHeaderSize } from './viewport.store-BGWR3XfI.js';
11
11
  import { H as HEADER_SLOT } from './viewport.helpers-VXhsJZtn.js';
12
- import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle } from './throttle-BEccmfmt.js';
12
+ import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle } from './throttle-CYM0qC3v.js';
13
13
 
14
14
  const Attribution = class {
15
15
  constructor(hostRef) {
@@ -2,9 +2,9 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, h, e as Host, g as getElement } from './index-Chp_81rd.js';
5
- import { N as EDIT_INPUT_WR, j as getItemByPosition, b as getSourceItem, O as DRAGG_TEXT } from './dimension.helpers-C2F2Cuh8.js';
6
- import { T as TextEditor } from './text-editor-BylR9oxh.js';
7
- import { m as isEditorCtrConstructible } from './edit.utils-Cdhf8P7e.js';
5
+ import { N as EDIT_INPUT_WR, j as getItemByPosition, b as getSourceItem, O as DRAGG_TEXT } from './dimension.helpers-B-5OBYes.js';
6
+ import { T as TextEditor } from './text-editor-DZSx2pWr.js';
7
+ import { m as isEditorCtrConstructible } from './edit.utils-CQjRmx5n.js';
8
8
  import { d as debounce } from './debounce-BfO9dz9v.js';
9
9
 
10
10
  const Clipboard = class {
@@ -53,6 +53,7 @@ const Clipboard = class {
53
53
  const beforePasteApply = this.beforePasteApply.emit({
54
54
  raw: data,
55
55
  parsed: parsedData,
56
+ dataText,
56
57
  event: e,
57
58
  });
58
59
  if (beforePasteApply.defaultPrevented) {
@@ -63,6 +64,7 @@ const Clipboard = class {
63
64
  const afterPasteApply = this.afterPasteApply.emit({
64
65
  raw: data,
65
66
  parsed: parsedData,
67
+ dataText,
66
68
  event: e,
67
69
  });
68
70
  // keep default behavior if needed
@@ -2,12 +2,12 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, h, e as Host, g as getElement } from './index-Chp_81rd.js';
5
- import { M as ColumnService, u as isGrouping, K as baseEach } from './column.service-BghHOZP8.js';
6
- import { Q as ROW_FOCUSED_CLASS, b as getSourceItem, y as DATA_ROW, x as DATA_COL, a3 as getNative, a4 as baseIteratee, Y as isArray, M as MIN_COL_SIZE, B as HEADER_SORTABLE_CLASS, H as HEADER_CLASS, J as FOCUS_CLASS, E as HEADER_ROW_CLASS, F as HEADER_ACTUAL_ROW_CLASS, k as getItemByIndex } from './dimension.helpers-C2F2Cuh8.js';
7
- import { G as GroupingRowRenderer, C as CellRenderer, R as RowRenderer, P as PADDING_DEPTH, S as SortingSign } from './cell-renderer-BDmepZJO.js';
5
+ import { M as ColumnService, u as isGrouping, K as baseEach } from './column.service-8pPNyrKn.js';
6
+ import { Q as ROW_FOCUSED_CLASS, b as getSourceItem, y as DATA_ROW, x as DATA_COL, a3 as getNative, a4 as baseIteratee, Y as isArray, M as MIN_COL_SIZE, B as HEADER_SORTABLE_CLASS, H as HEADER_CLASS, J as FOCUS_CLASS, E as HEADER_ROW_CLASS, F as HEADER_ACTUAL_ROW_CLASS, k as getItemByIndex } from './dimension.helpers-B-5OBYes.js';
7
+ import { G as GroupingRowRenderer, C as CellRenderer, R as RowRenderer, P as PADDING_DEPTH, S as SortingSign } from './cell-renderer-BNeaYjy6.js';
8
8
  import { c as FilterButton } from './filter.button-C8XTWPU2.js';
9
- import { H as HeaderCellRenderer } from './header-cell-renderer-DO0jvvbw.js';
10
- import { t as throttle, L as LocalScrollTimer, a as LocalScrollService } from './throttle-BEccmfmt.js';
9
+ import { H as HeaderCellRenderer } from './header-cell-renderer-WkTbrmr7.js';
10
+ import { t as throttle, L as LocalScrollTimer, a as LocalScrollService } from './throttle-CYM0qC3v.js';
11
11
  import { H as HEADER_SLOT, C as CONTENT_SLOT, F as FOOTER_SLOT } from './viewport.helpers-VXhsJZtn.js';
12
12
  import './debounce-BfO9dz9v.js';
13
13
 
@@ -644,6 +644,7 @@ const RevogrViewportScroll = class {
644
644
  * Height of inner content
645
645
  */
646
646
  this.contentHeight = 0;
647
+ this.noHorizontalScrollTransfer = false;
647
648
  }
648
649
  async setScroll(e) {
649
650
  var _a;
@@ -828,7 +829,7 @@ const RevogrViewportScroll = class {
828
829
  this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
829
830
  }
830
831
  render() {
831
- return (h(Host, { key: '2be96df29e23c7a681a45675567b5f168786cf92', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: '49152054dc9c8bdbffc430aa4ee2cf8c2732e05c', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, h("div", { key: '6a2124ed6345021fbbfbd78607dc280918ef9bc5', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: '0a25f0620be889d87fbf81325ffb596919105f4d', name: HEADER_SLOT })), h("div", { key: '7c986664c70ebc6f6d996864e591e484d709c3a5', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'bf810ecbb62b35334b24ab72292ae37866002cb9', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, h("slot", { key: '7d0bf53549eb60d9e6942b05fe1037131562ca2e', name: CONTENT_SLOT }))), h("div", { key: '78d8bdc545e220b324665b5331d902d887ea5e2b', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: '76d5b39a94ba27411ca0b58e49714b21e0e837bf', name: FOOTER_SLOT })))));
832
+ return (h(Host, { key: 'adc7378dba1794ca2ec263d52b09abefe50bcbfd', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: '7b57a8a0ea44629fefcfe4d2cd77bf0f048d8e06', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, h("div", { key: 'cca3de158bc2a7f0651f578a281819be5698b257', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: '1d170147dabe034f2c35481a8e2fedd6de2b6aed', name: HEADER_SLOT })), h("div", { key: 'b6dd29a91bb1f380a83a035dfdb749ca669936f2', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: '9bce27bf8ec4d3b679aa9a34eb6379a8c2d46cac', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, h("slot", { key: 'b44a082c9fbb948fd87bd235b4cd4356fd4a3536', name: CONTENT_SLOT }))), h("div", { key: '28c305ff6bc664f1d1bbb117e8b8565c8d4bb6b2', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: '96312fb7f18198fd1feb9dcc00c79cde74ba9c9f', name: FOOTER_SLOT })))));
832
833
  }
833
834
  /**
834
835
  * Extra layer for scroll event monitoring, where MouseWheel event is not passing
@@ -907,7 +908,7 @@ const RevogrViewportScroll = class {
907
908
  const atRight = scrollLeft + clientWidth >= scrollWidth && e.deltaX > 0;
908
909
  // Detect if the user has reached the left end
909
910
  const atLeft = scrollLeft === 0 && e.deltaX < 0;
910
- if (!atRight && !atLeft) {
911
+ if (!atRight && !atLeft && !this.noHorizontalScrollTransfer) {
911
912
  (_a = e.preventDefault) === null || _a === void 0 ? void 0 : _a.call(e);
912
913
  }
913
914
  const pos = scrollLeft + e[delta];
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { d as isTab, f as isEnterKeyValue } from './edit.utils-Cdhf8P7e.js';
5
- import { u as timeout } from './dimension.helpers-C2F2Cuh8.js';
4
+ import { d as isTab, f as isEnterKeyValue } from './edit.utils-CQjRmx5n.js';
5
+ import { u as timeout } from './dimension.helpers-B-5OBYes.js';
6
6
 
7
7
  class TextEditor {
8
8
  constructor(data, saveCallback) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { q as scaleValue } from './dimension.helpers-C2F2Cuh8.js';
4
+ import { q as scaleValue } from './dimension.helpers-B-5OBYes.js';
5
5
  import { d as debounce, a as isObject } from './debounce-BfO9dz9v.js';
6
6
 
7
7
  const initialParams = {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { j as getItemByPosition, W as createStore, w as setStore } from './dimension.helpers-C2F2Cuh8.js';
4
+ import { j as getItemByPosition, W as createStore, w as setStore } from './dimension.helpers-B-5OBYes.js';
5
5
 
6
6
  const LETTER_BLOCK_SIZE = 10;
7
7
  const calculateRowHeaderSize = (itemsLength, rowHeaderColumn, minWidth = 50) => {
@@ -2,8 +2,8 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h, f as Build } from './index-Chp_81rd.js';
5
- import { y as DATA_ROW, G as DRAG_ICON_CLASS, I as DRAGGABLE_CLASS } from './dimension.helpers-C2F2Cuh8.js';
6
- import { l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, h as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, O as isRowDragService, B as getCellDataParsed } from './column.service-BghHOZP8.js';
5
+ import { y as DATA_ROW, G as DRAG_ICON_CLASS, I as DRAGGABLE_CLASS } from './dimension.helpers-B-5OBYes.js';
6
+ import { l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, h as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, O as isRowDragService, B as getCellDataParsed } from './column.service-8pPNyrKn.js';
7
7
 
8
8
  const SortingSign = ({ column }) => {
9
9
  var _a;
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { J as reduce, g as getRange, K as baseEach, C as getColumnType, c as columnTypes, L as toInteger, u as isGrouping, t as getGroupingName, r as rowTypes, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, h as GROUP_EXPANDED, x as getParsedGroup, y as isSameGroup, G as GROUP_DEPTH, e as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, o as GROUPING_ROW_TYPE, p as getSource, f as PSEUDO_GROUP_COLUMN, s as gatherGrouping, m as GROUP_EXPAND_EVENT, v as isGroupingColumn, q as getExpanded, E as isColGrouping } from './column.service-BghHOZP8.js';
5
- import { W as createStore, w as setStore, i as calculateDimensionData, X as identity, Y as isArray, b as getSourceItem, o as getScrollbarSize, u as timeout, Z as baseProperty, _ as isArrayLike, $ as getTag, a0 as baseKeys, g as getPhysical, e as setItems, j as getItemByPosition } from './dimension.helpers-C2F2Cuh8.js';
6
- import { f as calculateRowHeaderSize } from './viewport.store-C3ajQgRm.js';
4
+ import { J as reduce, g as getRange, K as baseEach, C as getColumnType, c as columnTypes, L as toInteger, u as isGrouping, t as getGroupingName, r as rowTypes, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, h as GROUP_EXPANDED, x as getParsedGroup, y as isSameGroup, G as GROUP_DEPTH, e as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, o as GROUPING_ROW_TYPE, p as getSource, f as PSEUDO_GROUP_COLUMN, s as gatherGrouping, m as GROUP_EXPAND_EVENT, v as isGroupingColumn, q as getExpanded, E as isColGrouping } from './column.service-8pPNyrKn.js';
5
+ import { W as createStore, w as setStore, i as calculateDimensionData, X as identity, Y as isArray, b as getSourceItem, o as getScrollbarSize, u as timeout, Z as baseProperty, _ as isArrayLike, $ as getTag, a0 as baseKeys, g as getPhysical, e as setItems, j as getItemByPosition } from './dimension.helpers-B-5OBYes.js';
6
+ import { f as calculateRowHeaderSize } from './viewport.store-BGWR3XfI.js';
7
7
  import { h } from './index-Chp_81rd.js';
8
8
  import { b as FILTER_PROP, i as isFilterBtn } from './filter.button-C8XTWPU2.js';
9
9
  import { i as isObjectLike, b as baseGetTag, d as debounce } from './debounce-BfO9dz9v.js';
10
- import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-DO0jvvbw.js';
10
+ import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-WkTbrmr7.js';
11
11
 
12
12
  /**
13
13
  * Plugin which recalculates realSize on changes of sizes, originItemSize and count
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { a5 as toFinite, a6 as keys, _ as isArrayLike, a4 as baseIteratee, Y as isArray, P as GRID_INTERNALS, a7 as isIterateeCall, a as getVisibleSourceItem, z as DISABLED_CLASS, C as CELL_CLASS, b as getSourceItem } from './dimension.helpers-C2F2Cuh8.js';
4
+ import { a5 as toFinite, a6 as keys, _ as isArrayLike, a4 as baseIteratee, Y as isArray, P as GRID_INTERNALS, a7 as isIterateeCall, a as getVisibleSourceItem, z as DISABLED_CLASS, C as CELL_CLASS, b as getSourceItem } from './dimension.helpers-B-5OBYes.js';
5
5
 
6
6
  /**
7
7
  * Converts `value` to an integer.
@@ -3270,8 +3270,16 @@ class DataStore {
3270
3270
  * full data source update
3271
3271
  * @param source - data column/rgRow source
3272
3272
  * @param grouping - grouping information if present
3273
+ * @param silent - if true, store will be updated without resetting trimmed state
3274
+ * @param preserveTrimmed - if true, current trimmed indexes will be re-applied to the new source, use with caution because physical indexes may change across full data refreshes
3273
3275
  */
3274
- updateData(source, grouping, silent = false) {
3276
+ updateData(source, grouping,
3277
+ // if true, store will be updated without resetting trimmed state
3278
+ silent = false,
3279
+ // if true, current trimmed indexes will be re-applied to the new source
3280
+ preserveTrimmed = false) {
3281
+ const trimmed = this.store.get('trimmed');
3282
+ const trimmedItems = silent && preserveTrimmed ? gatherTrimmedItems(trimmed) : null;
3275
3283
  // during full update we do drop trim
3276
3284
  if (!silent) {
3277
3285
  this.store.set('trimmed', {});
@@ -3284,12 +3292,14 @@ class DataStore {
3284
3292
  source,
3285
3293
  proxyItems: [...items],
3286
3294
  });
3287
- // update data items
3288
- this.store.set('items', items);
3295
+ // Explicit trim preservation is opt-in because physical indexes may change
3296
+ // across full data refreshes.
3297
+ this.store.set('items', trimmedItems ? items.filter(i => !trimmedItems[i]) : items);
3289
3298
  // apply grouping if present
3290
3299
  if (grouping) {
3291
3300
  setStore(this.store, {
3292
3301
  groupingDepth: grouping.depth,
3302
+ // if groups are not provided, we will consider that there is only one group with all items
3293
3303
  groups: grouping.groups,
3294
3304
  groupingCustomRenderer: grouping.customRenderer,
3295
3305
  });
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { a1 as KeyCodesEnum, a2 as OsPlatform, U as codesLetter, V as keyValues, N as EDIT_INPUT_WR } from './dimension.helpers-C2F2Cuh8.js';
4
+ import { a1 as KeyCodesEnum, a2 as OsPlatform, U as codesLetter, V as keyValues, N as EDIT_INPUT_WR } from './dimension.helpers-B-5OBYes.js';
5
5
 
6
6
  function isMetaKey(code) {
7
7
  const keys = [
@@ -2,7 +2,7 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h } from './index-Chp_81rd.js';
5
- import { Q as doPropMerge } from './column.service-BghHOZP8.js';
5
+ import { Q as doPropMerge } from './column.service-8pPNyrKn.js';
6
6
 
7
7
  /**
8
8
  * Dispatches a custom event to a specified target element.
@@ -1,16 +1,16 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- export { o as GROUPING_ROW_TYPE, j as GROUP_COLUMN_PROP, G as GROUP_DEPTH, h as GROUP_EXPANDED, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, k as GROUP_ORIGINAL_INDEX, f as PSEUDO_GROUP_COLUMN, P as PSEUDO_GROUP_ITEM, d as PSEUDO_GROUP_ITEM_ID, e as PSEUDO_GROUP_ITEM_VALUE, c as columnTypes, a as cropCellToMax, H as gatherGroup, s as gatherGrouping, z as getCellData, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, D as getColumnSizes, C as getColumnType, F as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, E as isColGrouping, u as isGrouping, v as isGroupingColumn, b as isRangeSingleCell, i as isRowType, y as isSameGroup, w as measureEqualDepth, n as nextCell, r as rowTypes } from './column.service-BghHOZP8.js';
5
- import { B as BasePlugin } from './column.drag.plugin-B98azH0j.js';
6
- export { A as AutoSizeColumnPlugin, C as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, d as FILTE_PANEL, e as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, m as SortingPlugin, a as StretchColumn, n as defaultCellCompare, o as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, q as getComparer, l as getLeftRelative, p as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-B98azH0j.js';
7
- export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-DO0jvvbw.js';
8
- export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode } from './cell-renderer-BDmepZJO.js';
9
- export { C as CELL_CLASS, L as CELL_HANDLER_CLASS, x as DATA_COL, y as DATA_ROW, z as DISABLED_CLASS, I as DRAGGABLE_CLASS, O as DRAGG_TEXT, G as DRAG_ICON_CLASS, D as DataStore, N as EDIT_INPUT_WR, J as FOCUS_CLASS, P as GRID_INTERNALS, F as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, E as HEADER_ROW_CLASS, B as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, K as MOBILE_CLASS, R as RESIZE_INTERVAL, Q as ROW_FOCUSED_CLASS, A as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, v as applyMixins, i as calculateDimensionData, U as codesLetter, l as findPositionInArray, h as gatherTrimmedItems, k as getItemByIndex, j as getItemByPosition, g as getPhysical, o as getScrollbarSize, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, a as getVisibleSourceItem, V as keyValues, n as mergeSortedArray, p as proxyPlugin, m as pushSorted, r as range, q as scaleValue, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, w as setStore, u as timeout, t as trimmedPlugin } from './dimension.helpers-C2F2Cuh8.js';
10
- export { T as TextEditor } from './text-editor-BylR9oxh.js';
11
- export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, l as isEditInput, m as isEditorCtrConstructible, f as isEnterKeyValue, i as isMetaKey, j as isPaste, d as isTab, e as isTabKeyValue } from './edit.utils-Cdhf8P7e.js';
4
+ export { o as GROUPING_ROW_TYPE, j as GROUP_COLUMN_PROP, G as GROUP_DEPTH, h as GROUP_EXPANDED, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, k as GROUP_ORIGINAL_INDEX, f as PSEUDO_GROUP_COLUMN, P as PSEUDO_GROUP_ITEM, d as PSEUDO_GROUP_ITEM_ID, e as PSEUDO_GROUP_ITEM_VALUE, c as columnTypes, a as cropCellToMax, H as gatherGroup, s as gatherGrouping, z as getCellData, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, D as getColumnSizes, C as getColumnType, F as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, E as isColGrouping, u as isGrouping, v as isGroupingColumn, b as isRangeSingleCell, i as isRowType, y as isSameGroup, w as measureEqualDepth, n as nextCell, r as rowTypes } from './column.service-8pPNyrKn.js';
5
+ import { B as BasePlugin } from './column.drag.plugin-C9lvlTfl.js';
6
+ export { A as AutoSizeColumnPlugin, C as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, d as FILTE_PANEL, e as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, m as SortingPlugin, a as StretchColumn, n as defaultCellCompare, o as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, q as getComparer, l as getLeftRelative, p as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-C9lvlTfl.js';
7
+ export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-WkTbrmr7.js';
8
+ export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode } from './cell-renderer-BNeaYjy6.js';
9
+ export { C as CELL_CLASS, L as CELL_HANDLER_CLASS, x as DATA_COL, y as DATA_ROW, z as DISABLED_CLASS, I as DRAGGABLE_CLASS, O as DRAGG_TEXT, G as DRAG_ICON_CLASS, D as DataStore, N as EDIT_INPUT_WR, J as FOCUS_CLASS, P as GRID_INTERNALS, F as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, E as HEADER_ROW_CLASS, B as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, K as MOBILE_CLASS, R as RESIZE_INTERVAL, Q as ROW_FOCUSED_CLASS, A as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, v as applyMixins, i as calculateDimensionData, U as codesLetter, l as findPositionInArray, h as gatherTrimmedItems, k as getItemByIndex, j as getItemByPosition, g as getPhysical, o as getScrollbarSize, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, a as getVisibleSourceItem, V as keyValues, n as mergeSortedArray, p as proxyPlugin, m as pushSorted, r as range, q as scaleValue, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, w as setStore, u as timeout, t as trimmedPlugin } from './dimension.helpers-B-5OBYes.js';
10
+ export { T as TextEditor } from './text-editor-DZSx2pWr.js';
11
+ export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, l as isEditInput, m as isEditorCtrConstructible, f as isEnterKeyValue, i as isMetaKey, j as isPaste, d as isTab, e as isTabKeyValue } from './edit.utils-CQjRmx5n.js';
12
12
  export { h } from './index-Chp_81rd.js';
13
- export { V as ViewportStore, a as addMissingItems, f as calculateRowHeaderSize, d as getFirstItem, b as getItems, e as getLastItem, g as getUpdatedItemsByPosition, i as isActiveRange, c as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './viewport.store-C3ajQgRm.js';
13
+ export { V as ViewportStore, a as addMissingItems, f as calculateRowHeaderSize, d as getFirstItem, b as getItems, e as getLastItem, g as getUpdatedItemsByPosition, i as isActiveRange, c as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './viewport.store-BGWR3XfI.js';
14
14
  export { A as AND_OR_BUTTON, e as AndOrButton, a as FILTER_BUTTON_ACTIVE, F as FILTER_BUTTON_CLASS, b as FILTER_PROP, c as FilterButton, T as TRASH_BUTTON, d as TrashButton, i as isFilterBtn } from './filter.button-C8XTWPU2.js';
15
15
  import './debounce-BfO9dz9v.js';
16
16
 
@@ -34,6 +34,7 @@ const REVOGRID_EVENTS = new Map([
34
34
  ['beforeanysource', 'beforeanysource'],
35
35
  ['aftersourceset', 'aftersourceset'],
36
36
  ['afteranysource', 'afteranysource'],
37
+ ['beforecolumnsgather', 'beforecolumnsgather'],
37
38
  ['beforecolumnsset', 'beforecolumnsset'],
38
39
  ['beforecolumnapplied', 'beforecolumnapplied'],
39
40
  ['aftercolumnsset', 'aftercolumnsset'],
@@ -2,16 +2,16 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h, r as registerInstance, d as createEvent, e as Host, g as getElement } from './index-Chp_81rd.js';
5
- import { c as columnTypes, J as reduce, C as getColumnType, r as rowTypes, i as isRowType, D as getColumnSizes, a as cropCellToMax, n as nextCell, I as getColumnByProp, F as getColumns } from './column.service-BghHOZP8.js';
6
- import { D as DataStore, b as getSourceItem, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, a as getVisibleSourceItem, h as gatherTrimmedItems, k as getItemByIndex, R as RESIZE_INTERVAL, u as timeout } from './dimension.helpers-C2F2Cuh8.js';
5
+ import { c as columnTypes, J as reduce, C as getColumnType, r as rowTypes, i as isRowType, D as getColumnSizes, a as cropCellToMax, n as nextCell, I as getColumnByProp, F as getColumns } from './column.service-8pPNyrKn.js';
6
+ import { D as DataStore, b as getSourceItem, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, a as getVisibleSourceItem, h as gatherTrimmedItems, k as getItemByIndex, R as RESIZE_INTERVAL, u as timeout } from './dimension.helpers-B-5OBYes.js';
7
7
  import { d as debounce } from './debounce-BfO9dz9v.js';
8
- import { D as DimensionStore, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, e as FilterPlugin, E as ExportFilePlugin, m as SortingPlugin, C as ColumnMovePlugin } from './column.drag.plugin-B98azH0j.js';
9
- import { V as ViewportStore } from './viewport.store-C3ajQgRm.js';
8
+ import { D as DimensionStore, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, e as FilterPlugin, E as ExportFilePlugin, m as SortingPlugin, C as ColumnMovePlugin } from './column.drag.plugin-C9lvlTfl.js';
9
+ import { V as ViewportStore } from './viewport.store-BGWR3XfI.js';
10
10
  import { T as ThemeService } from './theme.service-BmnDvr6P.js';
11
11
  import { v as viewportDataPartition, F as FOOTER_SLOT, C as CONTENT_SLOT, H as HEADER_SLOT, D as DATA_SLOT } from './viewport.helpers-VXhsJZtn.js';
12
12
  import { g as getPropertyFromEvent } from './events-BvSmBueA.js';
13
13
  import './filter.button-C8XTWPU2.js';
14
- import './header-cell-renderer-DO0jvvbw.js';
14
+ import './header-cell-renderer-WkTbrmr7.js';
15
15
 
16
16
  class ColumnDataProvider {
17
17
  get stores() {
@@ -139,9 +139,25 @@ class DataProvider {
139
139
  return sources;
140
140
  }, {});
141
141
  }
142
- setData(data, type = 'rgRow', disableVirtualRows = false, grouping, silent = false) {
142
+ /**
143
+ * Replaces the data source for a row type and synchronizes the related dimension metadata.
144
+ *
145
+ * `rgRow` updates also refresh the virtual row model unless `disableVirtualRows` is set.
146
+ * Pinned row types skip virtual row recalculation because they are rendered directly.
147
+ *
148
+ * @param data Full source data assigned to the target row store.
149
+ * @param type Row collection to update. Defaults to the main body rows.
150
+ * @param disableVirtualRows Prevents recalculating virtual rows for the main row store.
151
+ * @param grouping Optional grouping metadata applied together with the new data set.
152
+ * @param silent Preserves the current trimmed state instead of resetting it during the update.
153
+ * @param preserveTrimmed Re-applies current trimmed indexes after a silent update.
154
+ * @returns The same `data` array that was provided to the method.
155
+ */
156
+ setData(data, type = 'rgRow', disableVirtualRows = false, grouping,
157
+ // if true, store will be updated without resetting trimmed state
158
+ silent = false, preserveTrimmed = false) {
143
159
  // set rgRow data
144
- this.stores[type].updateData([...data], grouping, silent);
160
+ this.stores[type].updateData([...data], grouping, silent, preserveTrimmed);
145
161
  // for pinned row no need virtual data
146
162
  const noVirtual = type !== 'rgRow' || disableVirtualRows;
147
163
  this.dimensionProvider.setData(data.length, type, noVirtual);
@@ -400,6 +416,7 @@ function gatherColumnData(data) {
400
416
  contentHeight: data.contentHeight,
401
417
  key: data.colType,
402
418
  colType: data.colType,
419
+ noHorizontalScrollTransfer: data.noHorizontalScrollTransfer,
403
420
  onResizeviewport: data.onResizeviewport,
404
421
  // set viewport size to real size
405
422
  style: data.fixWidth ? { minWidth: `${realWidth}px` } : undefined,
@@ -444,6 +461,7 @@ class ViewportService {
444
461
  viewports: config.viewportProvider.stores,
445
462
  dimensions: config.dimensionProvider.stores,
446
463
  rowStores: config.dataProvider.stores,
464
+ noHorizontalScrollTransfer: config.noHorizontalScrollTransfer,
447
465
  colStore,
448
466
  onHeaderresize: e => this.onColumnResize(val, e, colStore),
449
467
  };
@@ -622,11 +640,11 @@ class GridScrollingService {
622
640
  this.setViewport = setViewport;
623
641
  this.elements = {};
624
642
  }
625
- async proxyScroll(e, key) {
643
+ async proxyScroll(e, key, skipEvent) {
626
644
  var _a;
627
645
  let newEventPromise;
628
646
  let event = e;
629
- for (let elKey in this.elements) {
647
+ for (let elKey in (skipEvent ? {} : this.elements)) {
630
648
  // skip
631
649
  if (e.dimension === 'rgCol' && elKey === 'headerRow') {
632
650
  continue;
@@ -652,7 +670,8 @@ class GridScrollingService {
652
670
  if (newEvent) {
653
671
  event = newEvent;
654
672
  }
655
- this.setViewport(event);
673
+ this.setViewport(skipEvent && this.isPinnedColumn(key)
674
+ ? Object.assign(Object.assign({}, event), { dimension: key }) : event);
656
675
  }
657
676
  /**
658
677
  * Silent scroll update for mobile devices when we have negative scroll top
@@ -1340,6 +1359,7 @@ const RevoGridComponent = class {
1340
1359
  this.beforeanysource = createEvent(this, "beforeanysource", 7);
1341
1360
  this.aftersourceset = createEvent(this, "aftersourceset", 7);
1342
1361
  this.afteranysource = createEvent(this, "afteranysource", 7);
1362
+ this.beforecolumnsgather = createEvent(this, "beforecolumnsgather", 7);
1343
1363
  this.beforecolumnsset = createEvent(this, "beforecolumnsset", 7);
1344
1364
  this.beforecolumnapplied = createEvent(this, "beforecolumnapplied", 7);
1345
1365
  this.aftercolumnsset = createEvent(this, "aftercolumnsset", 7);
@@ -1380,6 +1400,10 @@ const RevoGridComponent = class {
1380
1400
  this.readonly = false;
1381
1401
  /** When true, columns are resizable. */
1382
1402
  this.resize = false;
1403
+ /**
1404
+ * Prevents horizontal scroll state from being mirrored across viewport sections.
1405
+ */
1406
+ this.noHorizontalScrollTransfer = false;
1383
1407
  /** When true cell focus appear. */
1384
1408
  this.canFocus = true;
1385
1409
  /** When true enable clipboard. */
@@ -1915,7 +1939,13 @@ const RevoGridComponent = class {
1915
1939
  if (!this.dimensionProvider || !this.columnProvider) {
1916
1940
  return;
1917
1941
  }
1918
- const columnGather = getColumns(newVal, 0, this.columnTypes);
1942
+ const beforeGatherEvent = this.beforecolumnsgather.emit({
1943
+ columns: [...newVal],
1944
+ });
1945
+ if (beforeGatherEvent.defaultPrevented) {
1946
+ return;
1947
+ }
1948
+ const columnGather = getColumns(beforeGatherEvent.detail.columns, 0, this.columnTypes);
1919
1949
  const beforeSetEvent = this.beforecolumnsset.emit(columnGather);
1920
1950
  if (beforeSetEvent.defaultPrevented) {
1921
1951
  return;
@@ -2262,6 +2292,7 @@ const RevoGridComponent = class {
2262
2292
  scrollingService: this.scrollingService,
2263
2293
  orderService: this.orderService,
2264
2294
  selectionStoreConnector: this.selectionStoreConnector,
2295
+ noHorizontalScrollTransfer: this.noHorizontalScrollTransfer,
2265
2296
  disableVirtualX: this.disableVirtualX,
2266
2297
  disableVirtualY: this.disableVirtualY,
2267
2298
  resize: c => this.aftercolumnresize.emit(c),
@@ -2302,7 +2333,9 @@ const RevoGridComponent = class {
2302
2333
  dataViews.push(dataView);
2303
2334
  });
2304
2335
  // Add viewport scroll in the end
2305
- viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => this.scrollingService.registerElement(el, `${view.prop.key}`), onScrollviewport: e => this.scrollingService.proxyScroll(e.detail, `${view.prop.key}`), onScrollviewportsilent: e => this.scrollingService.scrollSilentService(e.detail, `${view.prop.key}`) }), dataViews));
2336
+ viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => this.scrollingService.registerElement(el, `${view.prop.key}`), onScrollviewport: e => {
2337
+ this.scrollingService.proxyScroll(e.detail, `${view.prop.key}`, this.noHorizontalScrollTransfer && e.detail.dimension === 'rgCol');
2338
+ }, onScrollviewportsilent: e => this.scrollingService.scrollSilentService(e.detail, `${view.prop.key}`) }), dataViews));
2306
2339
  }
2307
2340
  viewportSections.push(viewPortHtml);
2308
2341
  // #endregion