@revolist/revogrid 4.22.0 → 4.22.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 (66) hide show
  1. package/dist/cjs/{cell-renderer-uZmDBXz7.js → cell-renderer-BQdEGQXP.js} +2 -2
  2. package/dist/cjs/{column.drag.plugin-CM_5mKV3.js → column.drag.plugin-RDjQhKCH.js} +22 -15
  3. package/dist/cjs/{column.service-DvQDqxxx.js → column.service-DXYMehqK.js} +1 -1
  4. package/dist/cjs/{dimension.helpers-CaIsYC99.js → dimension.helpers-CiiNnlLa.js} +0 -1
  5. package/dist/cjs/{edit.utils-CwMzSIVF.js → edit.utils-CecCfA4E.js} +22 -1
  6. package/dist/cjs/{header-cell-renderer-B1dJwgTO.js → header-cell-renderer-DGyBrK8I.js} +1 -1
  7. package/dist/cjs/index.cjs.js +17 -8
  8. package/dist/cjs/revo-grid.cjs.entry.js +5 -5
  9. package/dist/cjs/revogr-attribution_7.cjs.entry.js +6 -6
  10. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +4 -4
  11. package/dist/cjs/revogr-data_4.cjs.entry.js +111 -166
  12. package/dist/cjs/{text-editor-BTnGaIl3.js → text-editor-DnLZW1a-.js} +2 -2
  13. package/dist/cjs/{throttle-CI4MsAqs.js → throttle-CfgQFkfR.js} +1 -1
  14. package/dist/cjs/{viewport.store-Dcjud-a-.js → viewport.store-q6YdR9mg.js} +1 -1
  15. package/dist/collection/components/clipboard/revogr-clipboard.js +1 -1
  16. package/dist/collection/components/header/header-group-renderer.js +1 -0
  17. package/dist/collection/components/header/header-renderer.js +5 -4
  18. package/dist/collection/components/header/revogr-header.js +100 -40
  19. package/dist/collection/components/overlay/keyboard.service.js +2 -2
  20. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +14 -11
  21. package/dist/collection/types/events.js +4 -0
  22. package/dist/collection/utils/key.utils.js +20 -0
  23. package/dist/{revo-grid/cell-renderer-K_BKH7Kx.js → esm/cell-renderer-CALsEsnh.js} +2 -2
  24. package/dist/esm/{column.drag.plugin-DEqZ2qXJ.js → column.drag.plugin-Dy5ztusn.js} +19 -16
  25. package/dist/esm/{column.service-Cdz3dYqZ.js → column.service-CCvAi5l4.js} +1 -1
  26. package/dist/{revo-grid/dimension.helpers-DzxqJQqN.js → esm/dimension.helpers-DmIvjIa7.js} +1 -1
  27. package/dist/esm/{edit.utils-CzfeG98N.js → edit.utils-DYN6XZh8.js} +22 -2
  28. package/dist/{revo-grid/header-cell-renderer-DXhxZMly.js → esm/header-cell-renderer-DU8wKAbg.js} +1 -1
  29. package/dist/esm/index.js +13 -9
  30. package/dist/esm/revo-grid.entry.js +5 -5
  31. package/dist/esm/revogr-attribution_7.entry.js +6 -6
  32. package/dist/esm/revogr-clipboard_3.entry.js +4 -4
  33. package/dist/esm/revogr-data_4.entry.js +111 -166
  34. package/dist/{revo-grid/text-editor-C1ks5eQ4.js → esm/text-editor-DpCnd6Fq.js} +2 -2
  35. package/dist/esm/{throttle-BEjFQa2l.js → throttle-ERvyruXb.js} +1 -1
  36. package/dist/{revo-grid/viewport.store-saAZJHRo.js → esm/viewport.store-CFjDW-3l.js} +1 -1
  37. package/dist/{esm/cell-renderer-K_BKH7Kx.js → revo-grid/cell-renderer-CALsEsnh.js} +2 -2
  38. package/dist/revo-grid/{column.drag.plugin-DEqZ2qXJ.js → column.drag.plugin-Dy5ztusn.js} +19 -16
  39. package/dist/revo-grid/{column.service-Cdz3dYqZ.js → column.service-CCvAi5l4.js} +1 -1
  40. package/dist/{esm/dimension.helpers-DzxqJQqN.js → revo-grid/dimension.helpers-DmIvjIa7.js} +1 -1
  41. package/dist/revo-grid/{edit.utils-CzfeG98N.js → edit.utils-DYN6XZh8.js} +22 -2
  42. package/dist/{esm/header-cell-renderer-DXhxZMly.js → revo-grid/header-cell-renderer-DU8wKAbg.js} +1 -1
  43. package/dist/revo-grid/index.esm.js +13 -9
  44. package/dist/revo-grid/revo-grid.entry.js +5 -5
  45. package/dist/revo-grid/revogr-attribution_7.entry.js +6 -6
  46. package/dist/revo-grid/revogr-clipboard_3.entry.js +4 -4
  47. package/dist/revo-grid/revogr-data_4.entry.js +111 -166
  48. package/dist/{esm/text-editor-C1ks5eQ4.js → revo-grid/text-editor-DpCnd6Fq.js} +2 -2
  49. package/dist/revo-grid/{throttle-BEjFQa2l.js → throttle-ERvyruXb.js} +1 -1
  50. package/dist/{esm/viewport.store-saAZJHRo.js → revo-grid/viewport.store-CFjDW-3l.js} +1 -1
  51. package/dist/types/components/header/revogr-header.d.ts +6 -0
  52. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +29 -3
  53. package/dist/types/types/events.d.ts +1 -1
  54. package/dist/types/utils/key.utils.d.ts +8 -0
  55. package/hydrate/index.js +142 -174
  56. package/hydrate/index.mjs +142 -174
  57. package/package.json +1 -1
  58. package/standalone/column.service.js +1 -1
  59. package/standalone/data.store.js +1 -1
  60. package/standalone/index.js +1 -1
  61. package/standalone/revo-grid.js +1 -1
  62. package/standalone/revogr-clipboard2.js +1 -1
  63. package/standalone/revogr-edit.js +1 -1
  64. package/standalone/revogr-edit2.js +1 -1
  65. package/standalone/revogr-header2.js +1 -1
  66. package/standalone/revogr-overlay-selection2.js +1 -1
@@ -13,11 +13,11 @@ import { dispatch } from "../dispatcher";
13
13
  import { ON_COLUMN_CLICK } from "../../components/header/header-cell-renderer";
14
14
  import { isColGrouping } from "../../utils/column.utils";
15
15
  const COLUMN_CLICK = ON_COLUMN_CLICK;
16
- const MOVE = 'columndragmousemove';
17
- const DRAG_END = 'columndragend';
18
- const BEFORE_DRAG_END = 'beforecolumndragend';
16
+ export const COLUMN_DRAG_MOVE_EVENT = 'columndragmousemove';
17
+ export const COLUMN_DRAG_END_EVENT = 'columndragend';
18
+ export const BEFORE_COLUMN_DRAG_END_EVENT = 'beforecolumndragend';
19
19
  // use this event subscription to drop D&D for particular columns
20
- const DRAG_START = 'columndragstart';
20
+ export const COLUMN_DRAG_START_EVENT = 'columndragstart';
21
21
  export class ColumnMovePlugin extends BasePlugin {
22
22
  constructor(revogrid, providers) {
23
23
  super(revogrid, providers);
@@ -47,7 +47,7 @@ export class ColumnMovePlugin extends BasePlugin {
47
47
  if (event.defaultPrevented) {
48
48
  return;
49
49
  }
50
- const { defaultPrevented } = dispatch(this.revogrid, DRAG_START, data);
50
+ const { defaultPrevented } = dispatch(this.revogrid, COLUMN_DRAG_START_EVENT, data);
51
51
  // check if allowed to drag particulat column
52
52
  if (defaultPrevented) {
53
53
  return;
@@ -78,7 +78,7 @@ export class ColumnMovePlugin extends BasePlugin {
78
78
  gridEl: this.revogrid,
79
79
  cols,
80
80
  };
81
- this.dragData = this.getData(this.staticDragData);
81
+ this.dragData = this.getData(this.staticDragData, []);
82
82
  mousemove.target.addEventListener('mousemove', mousemove.callback);
83
83
  this.orderUi.start(event, Object.assign(Object.assign({}, this.dragData), this.staticDragData));
84
84
  }
@@ -86,7 +86,7 @@ export class ColumnMovePlugin extends BasePlugin {
86
86
  if (!this.staticDragData) {
87
87
  return;
88
88
  }
89
- const dragData = (this.dragData = this.getData(this.staticDragData));
89
+ const dragData = (this.dragData = this.getData(this.staticDragData, []));
90
90
  if (!dragData) {
91
91
  return;
92
92
  }
@@ -103,7 +103,7 @@ export class ColumnMovePlugin extends BasePlugin {
103
103
  }
104
104
  }
105
105
  move(e) {
106
- dispatch(this.revogrid, MOVE, e);
106
+ dispatch(this.revogrid, COLUMN_DRAG_MOVE_EVENT, e);
107
107
  // then do move
108
108
  this.moveFunc(e);
109
109
  }
@@ -119,9 +119,10 @@ export class ColumnMovePlugin extends BasePlugin {
119
119
  }
120
120
  const newPosition = getItemByPosition(this.staticDragData.cols, relativePos);
121
121
  const store = this.providers.column.stores[this.dragData.type].store;
122
+ const source = store.get('source');
122
123
  const newItems = [...store.get('items')];
123
124
  // prevent position change if needed
124
- const { defaultPrevented: stopDrag } = dispatch(this.revogrid, BEFORE_DRAG_END, Object.assign(Object.assign({}, this.staticDragData), { startPosition: this.staticDragData.startItem, newPosition, newItem: store.get('source')[newItems[this.staticDragData.startItem.itemIndex]] }));
125
+ const { defaultPrevented: stopDrag } = dispatch(this.revogrid, BEFORE_COLUMN_DRAG_END_EVENT, Object.assign(Object.assign({}, this.staticDragData), { startPosition: this.staticDragData.startItem, newPosition, newItem: source[newItems[this.staticDragData.startItem.itemIndex]] }));
125
126
  if (!stopDrag) {
126
127
  const prevItems = [...newItems];
127
128
  // todo: if move item out of group remove item from group
@@ -130,7 +131,7 @@ export class ColumnMovePlugin extends BasePlugin {
130
131
  store.set('items', newItems);
131
132
  this.providers.dimension.updateSizesPositionByNewDataIndexes(this.dragData.type, newItems, prevItems);
132
133
  }
133
- dispatch(this.revogrid, DRAG_END, this.dragData);
134
+ dispatch(this.revogrid, COLUMN_DRAG_END_EVENT, this.getData(this.staticDragData, newItems, source));
134
135
  }
135
136
  this.clearOrder();
136
137
  }
@@ -150,13 +151,15 @@ export class ColumnMovePlugin extends BasePlugin {
150
151
  super.clearSubscriptions();
151
152
  this.clearLocalSubscriptions();
152
153
  }
153
- getData({ gridEl, dataEl, pin, }) {
154
+ getData({ gridEl, dataEl, pin }, order, source = []) {
154
155
  const gridRect = gridEl.getBoundingClientRect();
155
156
  const elRect = dataEl.getBoundingClientRect();
156
157
  const scrollOffset = elRect.left - gridRect.left;
157
158
  return {
159
+ columns: order.map(index => source[index]).filter(Boolean),
158
160
  elRect,
159
161
  gridRect,
162
+ order,
160
163
  type: pin || 'rgCol',
161
164
  scrollOffset,
162
165
  };
@@ -71,6 +71,10 @@ export const REVOGRID_EVENTS = new Map([
71
71
  ['beforeheaderrender', 'beforeheaderrender'],
72
72
  ['beforegroupheaderrender', 'beforegroupheaderrender'],
73
73
  ['afterheaderrender', 'afterheaderrender'],
74
+ ['columndragstart', 'columndragstart'],
75
+ ['columndragmousemove', 'columndragmousemove'],
76
+ ['beforecolumndragend', 'beforecolumndragend'],
77
+ ['columndragend', 'columndragend'],
74
78
  ['rowdragstartinit', 'rowdragstartinit'],
75
79
  ['rowdragendinit', 'rowdragendinit'],
76
80
  ['rowdragmoveinit', 'rowdragmoveinit'],
@@ -83,3 +83,23 @@ export function isAll(event) {
83
83
  return ((event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows
84
84
  (event.metaKey && event.code === 'KeyA')); // Cmd + A on Mac
85
85
  }
86
+ /**
87
+ * Returns true when a keyboard event represents a shortcut modifier that
88
+ * should not start cell editing from printable `event.key` input.
89
+ *
90
+ * AltGr is intentionally excluded because many Windows/Linux layouts expose
91
+ * printable AltGr characters as Ctrl+Alt key events.
92
+ */
93
+ export function isShortcutModifier(event) {
94
+ var _a;
95
+ if ((_a = event.getModifierState) === null || _a === void 0 ? void 0 : _a.call(event, 'AltGraph')) {
96
+ return false;
97
+ }
98
+ if (event.ctrlKey &&
99
+ event.altKey &&
100
+ !event.metaKey &&
101
+ event.key.length === 1) {
102
+ return false;
103
+ }
104
+ return event.ctrlKey || event.metaKey;
105
+ }
@@ -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-DzxqJQqN.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-Cdz3dYqZ.js';
5
+ import { y as DATA_ROW, G as DRAG_ICON_CLASS, I as DRAGGABLE_CLASS } from './dimension.helpers-DmIvjIa7.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-CCvAi5l4.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-Cdz3dYqZ.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-DzxqJQqN.js';
6
- import { f as calculateRowHeaderSize } from './viewport.store-saAZJHRo.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-CCvAi5l4.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-DmIvjIa7.js';
6
+ import { f as calculateRowHeaderSize } from './viewport.store-CFjDW-3l.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-DXhxZMly.js';
10
+ import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-DU8wKAbg.js';
11
11
 
12
12
  /**
13
13
  * Plugin which recalculates realSize on changes of sizes, originItemSize and count
@@ -2528,11 +2528,11 @@ class ColumnOrderHandler {
2528
2528
  * Plugin for column manual move
2529
2529
  */
2530
2530
  const COLUMN_CLICK = ON_COLUMN_CLICK;
2531
- const MOVE = 'columndragmousemove';
2532
- const DRAG_END = 'columndragend';
2533
- const BEFORE_DRAG_END = 'beforecolumndragend';
2531
+ const COLUMN_DRAG_MOVE_EVENT = 'columndragmousemove';
2532
+ const COLUMN_DRAG_END_EVENT = 'columndragend';
2533
+ const BEFORE_COLUMN_DRAG_END_EVENT = 'beforecolumndragend';
2534
2534
  // use this event subscription to drop D&D for particular columns
2535
- const DRAG_START = 'columndragstart';
2535
+ const COLUMN_DRAG_START_EVENT = 'columndragstart';
2536
2536
  class ColumnMovePlugin extends BasePlugin {
2537
2537
  constructor(revogrid, providers) {
2538
2538
  super(revogrid, providers);
@@ -2562,7 +2562,7 @@ class ColumnMovePlugin extends BasePlugin {
2562
2562
  if (event.defaultPrevented) {
2563
2563
  return;
2564
2564
  }
2565
- const { defaultPrevented } = dispatch(this.revogrid, DRAG_START, data);
2565
+ const { defaultPrevented } = dispatch(this.revogrid, COLUMN_DRAG_START_EVENT, data);
2566
2566
  // check if allowed to drag particulat column
2567
2567
  if (defaultPrevented) {
2568
2568
  return;
@@ -2593,7 +2593,7 @@ class ColumnMovePlugin extends BasePlugin {
2593
2593
  gridEl: this.revogrid,
2594
2594
  cols,
2595
2595
  };
2596
- this.dragData = this.getData(this.staticDragData);
2596
+ this.dragData = this.getData(this.staticDragData, []);
2597
2597
  mousemove.target.addEventListener('mousemove', mousemove.callback);
2598
2598
  this.orderUi.start(event, Object.assign(Object.assign({}, this.dragData), this.staticDragData));
2599
2599
  }
@@ -2601,7 +2601,7 @@ class ColumnMovePlugin extends BasePlugin {
2601
2601
  if (!this.staticDragData) {
2602
2602
  return;
2603
2603
  }
2604
- const dragData = (this.dragData = this.getData(this.staticDragData));
2604
+ const dragData = (this.dragData = this.getData(this.staticDragData, []));
2605
2605
  if (!dragData) {
2606
2606
  return;
2607
2607
  }
@@ -2618,7 +2618,7 @@ class ColumnMovePlugin extends BasePlugin {
2618
2618
  }
2619
2619
  }
2620
2620
  move(e) {
2621
- dispatch(this.revogrid, MOVE, e);
2621
+ dispatch(this.revogrid, COLUMN_DRAG_MOVE_EVENT, e);
2622
2622
  // then do move
2623
2623
  this.moveFunc(e);
2624
2624
  }
@@ -2634,9 +2634,10 @@ class ColumnMovePlugin extends BasePlugin {
2634
2634
  }
2635
2635
  const newPosition = getItemByPosition(this.staticDragData.cols, relativePos);
2636
2636
  const store = this.providers.column.stores[this.dragData.type].store;
2637
+ const source = store.get('source');
2637
2638
  const newItems = [...store.get('items')];
2638
2639
  // prevent position change if needed
2639
- const { defaultPrevented: stopDrag } = dispatch(this.revogrid, BEFORE_DRAG_END, Object.assign(Object.assign({}, this.staticDragData), { startPosition: this.staticDragData.startItem, newPosition, newItem: store.get('source')[newItems[this.staticDragData.startItem.itemIndex]] }));
2640
+ const { defaultPrevented: stopDrag } = dispatch(this.revogrid, BEFORE_COLUMN_DRAG_END_EVENT, Object.assign(Object.assign({}, this.staticDragData), { startPosition: this.staticDragData.startItem, newPosition, newItem: source[newItems[this.staticDragData.startItem.itemIndex]] }));
2640
2641
  if (!stopDrag) {
2641
2642
  const prevItems = [...newItems];
2642
2643
  // todo: if move item out of group remove item from group
@@ -2645,7 +2646,7 @@ class ColumnMovePlugin extends BasePlugin {
2645
2646
  store.set('items', newItems);
2646
2647
  this.providers.dimension.updateSizesPositionByNewDataIndexes(this.dragData.type, newItems, prevItems);
2647
2648
  }
2648
- dispatch(this.revogrid, DRAG_END, this.dragData);
2649
+ dispatch(this.revogrid, COLUMN_DRAG_END_EVENT, this.getData(this.staticDragData, newItems, source));
2649
2650
  }
2650
2651
  this.clearOrder();
2651
2652
  }
@@ -2665,13 +2666,15 @@ class ColumnMovePlugin extends BasePlugin {
2665
2666
  super.clearSubscriptions();
2666
2667
  this.clearLocalSubscriptions();
2667
2668
  }
2668
- getData({ gridEl, dataEl, pin, }) {
2669
+ getData({ gridEl, dataEl, pin }, order, source = []) {
2669
2670
  const gridRect = gridEl.getBoundingClientRect();
2670
2671
  const elRect = dataEl.getBoundingClientRect();
2671
2672
  const scrollOffset = elRect.left - gridRect.left;
2672
2673
  return {
2674
+ columns: order.map(index => source[index]).filter(Boolean),
2673
2675
  elRect,
2674
2676
  gridRect,
2677
+ order,
2675
2678
  type: pin || 'rgCol',
2676
2679
  scrollOffset,
2677
2680
  };
@@ -2684,4 +2687,4 @@ function getLeftRelative(absoluteX, gridPos, offset) {
2684
2687
  return absoluteX - gridPos - offset;
2685
2688
  }
2686
2689
 
2687
- export { AutoSizeColumnPlugin as A, BasePlugin as B, ColumnAutoSizeMode as C, DimensionStore as D, ExportFilePlugin as E, FILTER_TRIMMED_TYPE as F, GroupingRowPlugin as G, SelectionStore as S, StretchColumn as a, ExportCsv as b, FILTER_CONFIG_CHANGED_EVENT as c, FILTE_PANEL as d, FilterPlugin as e, filterCoreFunctionsIndexedByType as f, filterTypes as g, filterNames as h, isStretchPlugin as i, doCollapse as j, doExpand as k, ColumnMovePlugin as l, getLeftRelative as m, SortingPlugin as n, defaultCellCompare as o, descCellCompare as p, getNextOrder as q, getComparer as r, sortIndexByItems as s };
2690
+ export { AutoSizeColumnPlugin as A, BasePlugin as B, ColumnAutoSizeMode as C, DimensionStore as D, ExportFilePlugin as E, FILTER_TRIMMED_TYPE as F, GroupingRowPlugin as G, SelectionStore as S, StretchColumn as a, ExportCsv as b, FILTER_CONFIG_CHANGED_EVENT as c, FILTE_PANEL as d, FilterPlugin as e, filterCoreFunctionsIndexedByType as f, filterTypes as g, filterNames as h, isStretchPlugin as i, doCollapse as j, doExpand as k, COLUMN_DRAG_MOVE_EVENT as l, COLUMN_DRAG_END_EVENT as m, BEFORE_COLUMN_DRAG_END_EVENT as n, COLUMN_DRAG_START_EVENT as o, ColumnMovePlugin as p, getLeftRelative as q, SortingPlugin as r, sortIndexByItems as s, defaultCellCompare as t, descCellCompare as u, getNextOrder as v, getComparer as w };
@@ -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-DzxqJQqN.js';
4
+ import { a3 as toFinite, a4 as keys, _ as isArrayLike, a5 as baseIteratee, Y as isArray, P as GRID_INTERNALS, a6 as isIterateeCall, a as getVisibleSourceItem, z as DISABLED_CLASS, C as CELL_CLASS, b as getSourceItem } from './dimension.helpers-DmIvjIa7.js';
5
5
 
6
6
  /**
7
7
  * Converts `value` to an integer.
@@ -3617,4 +3617,4 @@ function getItemByIndex(dimension, index) {
3617
3617
  return item;
3618
3618
  }
3619
3619
 
3620
- export { getTag as $, ROW_HEADER_TYPE as A, HEADER_SORTABLE_CLASS as B, CELL_CLASS as C, DataStore as D, HEADER_ROW_CLASS as E, HEADER_ACTUAL_ROW_CLASS as F, DRAG_ICON_CLASS as G, HEADER_CLASS as H, DRAGGABLE_CLASS as I, FOCUS_CLASS as J, MOBILE_CLASS as K, CELL_HANDLER_CLASS as L, MIN_COL_SIZE as M, EDIT_INPUT_WR as N, DRAGG_TEXT as O, GRID_INTERNALS as P, ROW_FOCUSED_CLASS as Q, RESIZE_INTERVAL as R, SELECTION_BORDER_CLASS as S, TMP_SELECTION_BG_CLASS as T, codesLetter as U, keyValues as V, createStore as W, identity as X, isArray as Y, baseProperty as Z, isArrayLike as _, getVisibleSourceItem as a, baseKeys as a0, KeyCodesEnum as a1, OsPlatform as a2, getNative as a3, baseIteratee as a4, toFinite as a5, keys as a6, isIterateeCall as a7, getSourceItem as b, getSourcePhysicalIndex as c, setSourceByPhysicalIndex as d, setItems as e, getSourceItemVirtualIndexByProp as f, getPhysical as g, gatherTrimmedItems as h, calculateDimensionData as i, getItemByPosition as j, getItemByIndex as k, findPositionInArray as l, pushSorted as m, mergeSortedArray as n, getScrollbarSize as o, proxyPlugin as p, scaleValue as q, range as r, setSourceByVirtualIndex as s, trimmedPlugin as t, timeout as u, applyMixins as v, setStore as w, DATA_COL as x, DATA_ROW as y, DISABLED_CLASS as z };
3620
+ export { getTag as $, ROW_HEADER_TYPE as A, HEADER_SORTABLE_CLASS as B, CELL_CLASS as C, DataStore as D, HEADER_ROW_CLASS as E, HEADER_ACTUAL_ROW_CLASS as F, DRAG_ICON_CLASS as G, HEADER_CLASS as H, DRAGGABLE_CLASS as I, FOCUS_CLASS as J, MOBILE_CLASS as K, CELL_HANDLER_CLASS as L, MIN_COL_SIZE as M, EDIT_INPUT_WR as N, DRAGG_TEXT as O, GRID_INTERNALS as P, ROW_FOCUSED_CLASS as Q, RESIZE_INTERVAL as R, SELECTION_BORDER_CLASS as S, TMP_SELECTION_BG_CLASS as T, codesLetter as U, keyValues as V, createStore as W, identity as X, isArray as Y, baseProperty as Z, isArrayLike as _, getVisibleSourceItem as a, baseKeys as a0, KeyCodesEnum as a1, OsPlatform as a2, toFinite as a3, keys as a4, baseIteratee as a5, isIterateeCall as a6, getSourceItem as b, getSourcePhysicalIndex as c, setSourceByPhysicalIndex as d, setItems as e, getSourceItemVirtualIndexByProp as f, getPhysical as g, gatherTrimmedItems as h, calculateDimensionData as i, getItemByPosition as j, getItemByIndex as k, findPositionInArray as l, pushSorted as m, mergeSortedArray as n, getScrollbarSize as o, proxyPlugin as p, scaleValue as q, range as r, setSourceByVirtualIndex as s, trimmedPlugin as t, timeout as u, applyMixins as v, setStore as w, DATA_COL as x, DATA_ROW as y, DISABLED_CLASS as z };
@@ -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-DzxqJQqN.js';
4
+ import { a1 as KeyCodesEnum, a2 as OsPlatform, U as codesLetter, V as keyValues, N as EDIT_INPUT_WR } from './dimension.helpers-DmIvjIa7.js';
5
5
 
6
6
  function isMetaKey(code) {
7
7
  const keys = [
@@ -83,6 +83,26 @@ function isAll(event) {
83
83
  return ((event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows
84
84
  (event.metaKey && event.code === 'KeyA')); // Cmd + A on Mac
85
85
  }
86
+ /**
87
+ * Returns true when a keyboard event represents a shortcut modifier that
88
+ * should not start cell editing from printable `event.key` input.
89
+ *
90
+ * AltGr is intentionally excluded because many Windows/Linux layouts expose
91
+ * printable AltGr characters as Ctrl+Alt key events.
92
+ */
93
+ function isShortcutModifier(event) {
94
+ var _a;
95
+ if ((_a = event.getModifierState) === null || _a === void 0 ? void 0 : _a.call(event, 'AltGraph')) {
96
+ return false;
97
+ }
98
+ if (event.ctrlKey &&
99
+ event.altKey &&
100
+ !event.metaKey &&
101
+ event.key.length === 1) {
102
+ return false;
103
+ }
104
+ return event.ctrlKey || event.metaKey;
105
+ }
86
106
 
87
107
  // is edit input
88
108
  function isEditInput(el) {
@@ -93,4 +113,4 @@ function isEditorCtrConstructible(editor) {
93
113
  return typeof editor === 'function' && typeof editor.prototype === 'object';
94
114
  }
95
115
 
96
- export { isCtrlKey as a, isCtrlMetaKey as b, isClear as c, isTab as d, isTabKeyValue as e, isEnterKeyValue as f, isCut as g, isCopy as h, isMetaKey as i, isPaste as j, isAll as k, isEditInput as l, isEditorCtrConstructible as m };
116
+ export { isCtrlKey as a, isCtrlMetaKey as b, isClear as c, isTab as d, isTabKeyValue as e, isEnterKeyValue as f, isCut as g, isCopy as h, isMetaKey as i, isPaste as j, isAll as k, isShortcutModifier as l, isEditInput as m, isEditorCtrConstructible as n };
@@ -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-Cdz3dYqZ.js';
5
+ import { Q as doPropMerge } from './column.service-CCvAi5l4.js';
6
6
 
7
7
  /**
8
8
  * Dispatches a custom event to a specified target element.
package/dist/esm/index.js CHANGED
@@ -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-Cdz3dYqZ.js';
5
- import { B as BasePlugin } from './column.drag.plugin-DEqZ2qXJ.js';
6
- export { A as AutoSizeColumnPlugin, C as ColumnAutoSizeMode, l 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, n as SortingPlugin, a as StretchColumn, o as defaultCellCompare, p as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, r as getComparer, m as getLeftRelative, q as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-DEqZ2qXJ.js';
7
- export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-DXhxZMly.js';
8
- export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode } from './cell-renderer-K_BKH7Kx.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-DzxqJQqN.js';
10
- export { T as TextEditor } from './text-editor-C1ks5eQ4.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-CzfeG98N.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-CCvAi5l4.js';
5
+ import { B as BasePlugin } from './column.drag.plugin-Dy5ztusn.js';
6
+ export { A as AutoSizeColumnPlugin, n as BEFORE_COLUMN_DRAG_END_EVENT, m as COLUMN_DRAG_END_EVENT, l as COLUMN_DRAG_MOVE_EVENT, o as COLUMN_DRAG_START_EVENT, C as ColumnAutoSizeMode, p 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, r as SortingPlugin, a as StretchColumn, t as defaultCellCompare, u as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, w as getComparer, q as getLeftRelative, v as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-Dy5ztusn.js';
7
+ export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-DU8wKAbg.js';
8
+ export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode } from './cell-renderer-CALsEsnh.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-DmIvjIa7.js';
10
+ export { T as TextEditor } from './text-editor-DpCnd6Fq.js';
11
+ export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, m as isEditInput, n as isEditorCtrConstructible, f as isEnterKeyValue, i as isMetaKey, j as isPaste, l as isShortcutModifier, d as isTab, e as isTabKeyValue } from './edit.utils-DYN6XZh8.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-saAZJHRo.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-CFjDW-3l.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
 
@@ -84,6 +84,10 @@ const REVOGRID_EVENTS = new Map([
84
84
  ['beforeheaderrender', 'beforeheaderrender'],
85
85
  ['beforegroupheaderrender', 'beforegroupheaderrender'],
86
86
  ['afterheaderrender', 'afterheaderrender'],
87
+ ['columndragstart', 'columndragstart'],
88
+ ['columndragmousemove', 'columndragmousemove'],
89
+ ['beforecolumndragend', 'beforecolumndragend'],
90
+ ['columndragend', 'columndragend'],
87
91
  ['rowdragstartinit', 'rowdragstartinit'],
88
92
  ['rowdragendinit', 'rowdragendinit'],
89
93
  ['rowdragmoveinit', 'rowdragmoveinit'],
@@ -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-Cdz3dYqZ.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-DzxqJQqN.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-CCvAi5l4.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-DmIvjIa7.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, n as SortingPlugin, l as ColumnMovePlugin } from './column.drag.plugin-DEqZ2qXJ.js';
9
- import { V as ViewportStore } from './viewport.store-saAZJHRo.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, r as SortingPlugin, p as ColumnMovePlugin } from './column.drag.plugin-Dy5ztusn.js';
9
+ import { V as ViewportStore } from './viewport.store-CFjDW-3l.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-DXhxZMly.js';
14
+ import './header-cell-renderer-DU8wKAbg.js';
15
15
 
16
16
  class ColumnDataProvider {
17
17
  get stores() {
@@ -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-DzxqJQqN.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-DmIvjIa7.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-Cdz3dYqZ.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-CzfeG98N.js';
7
+ import { g as getRange, M as ColumnService, z as getCellData, N as getCellEditor, b as isRangeSingleCell } from './column.service-CCvAi5l4.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 isShortcutModifier, m as isEditInput } from './edit.utils-DYN6XZh8.js';
9
9
  import { d as debounce } from './debounce-BfO9dz9v.js';
10
- import { V as ViewportStore, f as calculateRowHeaderSize } from './viewport.store-saAZJHRo.js';
10
+ import { V as ViewportStore, f as calculateRowHeaderSize } from './viewport.store-CFjDW-3l.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-BEjFQa2l.js';
12
+ import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle } from './throttle-ERvyruXb.js';
13
13
 
14
14
  const Attribution = class {
15
15
  constructor(hostRef) {
@@ -333,7 +333,7 @@ class KeyboardService {
333
333
  return;
334
334
  }
335
335
  // pressed letter key
336
- if (e.key.length === 1) {
336
+ if (!isShortcutModifier(e) && e.key.length === 1) {
337
337
  this.sv.change(e.key);
338
338
  return;
339
339
  }
@@ -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-DzxqJQqN.js';
6
- import { T as TextEditor } from './text-editor-C1ks5eQ4.js';
7
- import { m as isEditorCtrConstructible } from './edit.utils-CzfeG98N.js';
5
+ import { N as EDIT_INPUT_WR, j as getItemByPosition, b as getSourceItem, O as DRAGG_TEXT } from './dimension.helpers-DmIvjIa7.js';
6
+ import { T as TextEditor } from './text-editor-DpCnd6Fq.js';
7
+ import { n as isEditorCtrConstructible } from './edit.utils-DYN6XZh8.js';
8
8
  import { d as debounce } from './debounce-BfO9dz9v.js';
9
9
 
10
10
  const Clipboard = class {
@@ -84,8 +84,8 @@ const Clipboard = class {
84
84
  return;
85
85
  }
86
86
  const data = this.getData(beforeCopy.detail.event);
87
- this.copyRegion.emit(data || undefined);
88
87
  e.preventDefault();
88
+ this.copyRegion.emit(data || undefined);
89
89
  }
90
90
  /**
91
91
  * Listen to copy event and emit copy region event