@revolist/revogrid 4.8.1 → 4.8.2

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 (156) hide show
  1. package/dist/cjs/base.plugin-75fc9e81.js.map +1 -1
  2. package/dist/cjs/{column.service-b3b5a4ee.js → column.service-43f8c476.js} +2 -2
  3. package/dist/cjs/{column.service-b3b5a4ee.js.map → column.service-43f8c476.js.map} +1 -1
  4. package/dist/cjs/{filter.button-147884a8.js → filter.button-35f508a0.js} +3 -3
  5. package/dist/cjs/filter.button-35f508a0.js.map +1 -0
  6. package/dist/cjs/{header-cell-renderer-96a37624.js → header-cell-renderer-a3b43bca.js} +2 -2
  7. package/dist/cjs/{header-cell-renderer-96a37624.js.map → header-cell-renderer-a3b43bca.js.map} +1 -1
  8. package/dist/cjs/index.cjs.js +1 -1
  9. package/dist/cjs/{key.utils-be4d0b46.js → key.utils-4a384064.js} +17 -12
  10. package/dist/cjs/key.utils-4a384064.js.map +1 -0
  11. package/dist/cjs/revo-grid.cjs.entry.js +14 -9
  12. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  13. package/dist/cjs/revogr-attribution_6.cjs.entry.js +41 -12
  14. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
  15. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -3
  16. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/revogr-data_4.cjs.entry.js +10 -9
  18. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  19. package/dist/cjs/revogr-filter-panel.cjs.entry.js +13 -8
  20. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  21. package/dist/cjs/{selection.helpers-032d7192.js → selection.helpers-26d856ba.js} +67 -20
  22. package/dist/cjs/selection.helpers-26d856ba.js.map +1 -0
  23. package/dist/collection/components/clipboard/revogr-clipboard.js +1 -0
  24. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  25. package/dist/collection/components/data/revogr-data.js +1 -1
  26. package/dist/collection/components/data/revogr-data.js.map +1 -1
  27. package/dist/collection/components/editors/text-editor.js +4 -3
  28. package/dist/collection/components/editors/text-editor.js.map +1 -1
  29. package/dist/collection/components/header/header-renderer.js +2 -2
  30. package/dist/collection/components/header/header-renderer.js.map +1 -1
  31. package/dist/collection/components/overlay/keyboard.service.js +15 -5
  32. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  33. package/dist/collection/components/overlay/revogr-overlay-selection.js +44 -5
  34. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  35. package/dist/collection/components/revoGrid/revo-grid.js +3 -3
  36. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  37. package/dist/collection/plugins/base.plugin.js.map +1 -1
  38. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
  39. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -1
  40. package/dist/collection/plugins/filter/filter.button.js +2 -2
  41. package/dist/collection/plugins/filter/filter.button.js.map +1 -1
  42. package/dist/collection/plugins/filter/filter.plugin.js +7 -2
  43. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  44. package/dist/collection/plugins/filter/filter.pop.js +13 -8
  45. package/dist/collection/plugins/filter/filter.pop.js.map +1 -1
  46. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  47. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  48. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  49. package/dist/collection/plugins/sorting/sorting.sign.js +2 -1
  50. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -1
  51. package/dist/collection/services/selection.store.connector.js +62 -19
  52. package/dist/collection/services/selection.store.connector.js.map +1 -1
  53. package/dist/collection/store/selection/selection.store.js +4 -0
  54. package/dist/collection/store/selection/selection.store.js.map +1 -1
  55. package/dist/collection/types/interfaces.js.map +1 -1
  56. package/dist/collection/types/plugin.js.map +1 -1
  57. package/dist/collection/types/plugin.types.js.map +1 -1
  58. package/dist/collection/types/selection.js.map +1 -1
  59. package/dist/collection/utils/key.codes.js +6 -2
  60. package/dist/collection/utils/key.codes.js.map +1 -1
  61. package/dist/collection/utils/key.utils.js +25 -13
  62. package/dist/collection/utils/key.utils.js.map +1 -1
  63. package/dist/esm/base.plugin-e6e2bac2.js.map +1 -1
  64. package/dist/esm/{column.service-ffe99cfc.js → column.service-6aab6fac.js} +2 -2
  65. package/dist/esm/{column.service-ffe99cfc.js.map → column.service-6aab6fac.js.map} +1 -1
  66. package/dist/esm/{filter.button-f132c10a.js → filter.button-f9883a78.js} +3 -3
  67. package/dist/esm/filter.button-f9883a78.js.map +1 -0
  68. package/dist/esm/{header-cell-renderer-cac333a3.js → header-cell-renderer-b8663a21.js} +2 -2
  69. package/dist/esm/{header-cell-renderer-cac333a3.js.map → header-cell-renderer-b8663a21.js.map} +1 -1
  70. package/dist/esm/index.js +1 -1
  71. package/dist/esm/{key.utils-9120fde7.js → key.utils-c4a27968.js} +17 -12
  72. package/dist/esm/key.utils-c4a27968.js.map +1 -0
  73. package/dist/esm/revo-grid.entry.js +14 -9
  74. package/dist/esm/revo-grid.entry.js.map +1 -1
  75. package/dist/esm/revogr-attribution_6.entry.js +41 -12
  76. package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
  77. package/dist/esm/revogr-clipboard_3.entry.js +5 -3
  78. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  79. package/dist/esm/revogr-data_4.entry.js +10 -9
  80. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  81. package/dist/esm/revogr-filter-panel.entry.js +13 -8
  82. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  83. package/dist/esm/{selection.helpers-0f3ed629.js → selection.helpers-dbf69cc1.js} +67 -20
  84. package/dist/esm/selection.helpers-dbf69cc1.js.map +1 -0
  85. package/dist/revo-grid/base.plugin-e6e2bac2.js.map +1 -1
  86. package/dist/revo-grid/{column.service-ffe99cfc.js → column.service-6aab6fac.js} +2 -2
  87. package/dist/revo-grid/{filter.button-f132c10a.js → filter.button-f9883a78.js} +2 -2
  88. package/dist/revo-grid/filter.button-f9883a78.js.map +1 -0
  89. package/dist/revo-grid/{header-cell-renderer-cac333a3.js → header-cell-renderer-b8663a21.js} +2 -2
  90. package/dist/revo-grid/index.esm.js +1 -1
  91. package/dist/revo-grid/{key.utils-9120fde7.js → key.utils-c4a27968.js} +2 -2
  92. package/dist/revo-grid/key.utils-c4a27968.js.map +1 -0
  93. package/dist/revo-grid/revo-grid.entry.js +1 -1
  94. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  95. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  96. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
  97. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  98. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  99. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  100. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  101. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
  102. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  103. package/dist/revo-grid/selection.helpers-dbf69cc1.js +5 -0
  104. package/dist/revo-grid/selection.helpers-dbf69cc1.js.map +1 -0
  105. package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
  106. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +9 -1
  107. package/dist/types/components.d.ts +5 -0
  108. package/dist/types/plugins/base.plugin.d.ts +8 -8
  109. package/dist/types/plugins/column.auto-size.plugin.d.ts +26 -16
  110. package/dist/types/plugins/column.stretch.plugin.d.ts +1 -1
  111. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  112. package/dist/types/plugins/filter/filter.plugin.d.ts +24 -16
  113. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +2 -2
  114. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +3 -3
  115. package/dist/types/plugins/sorting/sorting.plugin.d.ts +8 -8
  116. package/dist/types/services/selection.store.connector.d.ts +20 -0
  117. package/dist/types/store/selection/selection.store.d.ts +1 -0
  118. package/dist/types/types/interfaces.d.ts +2 -2
  119. package/dist/types/types/plugin.d.ts +23 -0
  120. package/dist/types/types/plugin.types.d.ts +20 -0
  121. package/dist/types/types/selection.d.ts +24 -0
  122. package/dist/types/utils/key.codes.d.ts +5 -2
  123. package/dist/types/utils/key.utils.d.ts +2 -1
  124. package/hydrate/index.js +153 -59
  125. package/hydrate/index.mjs +153 -59
  126. package/package.json +1 -1
  127. package/standalone/column.service.js +66 -19
  128. package/standalone/column.service.js.map +1 -1
  129. package/standalone/filter.button.js +2 -2
  130. package/standalone/filter.button.js.map +1 -1
  131. package/standalone/revo-grid.js +10 -5
  132. package/standalone/revo-grid.js.map +1 -1
  133. package/standalone/revogr-clipboard2.js +1 -0
  134. package/standalone/revogr-clipboard2.js.map +1 -1
  135. package/standalone/revogr-data2.js +1 -1
  136. package/standalone/revogr-data2.js.map +1 -1
  137. package/standalone/revogr-edit2.js +19 -13
  138. package/standalone/revogr-edit2.js.map +1 -1
  139. package/standalone/revogr-filter-panel.js +12 -7
  140. package/standalone/revogr-filter-panel.js.map +1 -1
  141. package/standalone/revogr-header2.js +5 -4
  142. package/standalone/revogr-header2.js.map +1 -1
  143. package/standalone/revogr-overlay-selection2.js +39 -10
  144. package/standalone/revogr-overlay-selection2.js.map +1 -1
  145. package/dist/cjs/filter.button-147884a8.js.map +0 -1
  146. package/dist/cjs/key.utils-be4d0b46.js.map +0 -1
  147. package/dist/cjs/selection.helpers-032d7192.js.map +0 -1
  148. package/dist/esm/filter.button-f132c10a.js.map +0 -1
  149. package/dist/esm/key.utils-9120fde7.js.map +0 -1
  150. package/dist/esm/selection.helpers-0f3ed629.js.map +0 -1
  151. package/dist/revo-grid/filter.button-f132c10a.js.map +0 -1
  152. package/dist/revo-grid/key.utils-9120fde7.js.map +0 -1
  153. package/dist/revo-grid/selection.helpers-0f3ed629.js +0 -5
  154. package/dist/revo-grid/selection.helpers-0f3ed629.js.map +0 -1
  155. /package/dist/revo-grid/{column.service-ffe99cfc.js.map → column.service-6aab6fac.js.map} +0 -0
  156. /package/dist/revo-grid/{header-cell-renderer-cac333a3.js.map → header-cell-renderer-b8663a21.js.map} +0 -0
@@ -6,9 +6,9 @@ import { F as FOCUS_CLASS, t as timeout, R as RESIZE_INTERVAL, a as CELL_HANDLER
6
6
  import { i as getItemByPosition, j as getItemByIndex, b as getSourceItem, D as DataStore } from './dimension.helpers-c0c2888f.js';
7
7
  import './toNumber-8de324a7.js';
8
8
  import { g as getPropertyFromEvent, v as verifyTouchTarget, c as calculateRowHeaderSize } from './events-77b43b40.js';
9
- import { n as ColumnService, H as HEADER_SLOT } from './column.service-ffe99cfc.js';
10
- import { c as codesLetter, i as isClear, a as isEnterKey, b as isCopy, d as isCut, e as isPaste, f as isAll, g as isLetterKey, h as isEditInput } from './key.utils-9120fde7.js';
11
- import { g as getRange, a as isRangeSingleCell } from './selection.helpers-0f3ed629.js';
9
+ import { n as ColumnService, H as HEADER_SLOT } from './column.service-6aab6fac.js';
10
+ import { c as codesLetter, i as isClear, a as isEnterKeyValue, b as isCopy, d as isCut, e as isPaste, f as isAll, g as isLetterKey, h as isEditInput } from './key.utils-c4a27968.js';
11
+ import { g as getRange, a as isRangeSingleCell } from './selection.helpers-dbf69cc1.js';
12
12
  import { d as debounce_1 } from './debounce-7781346d.js';
13
13
  import { V as ViewportStore } from './viewport.store-2dc172be.js';
14
14
  import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle_1 } from './throttle-eeca0062.js';
@@ -255,11 +255,11 @@ class KeyboardService {
255
255
  }
256
256
  // tab key means same as arrow right
257
257
  if (codesLetter.TAB === e.code) {
258
- this.keyChangeSelection(e, canRange);
258
+ await this.keyChangeSelection(e, canRange);
259
259
  return;
260
260
  }
261
261
  // pressed enter
262
- if (isEnterKey(e.code)) {
262
+ if (isEnterKeyValue(e.key)) {
263
263
  this.sv.change();
264
264
  return;
265
265
  }
@@ -324,15 +324,19 @@ class KeyboardService {
324
324
  if (!data) {
325
325
  return false;
326
326
  }
327
+ const eData = this.sv.getData();
327
328
  if (isMulti) {
328
- const eData = this.sv.getData();
329
329
  if (isAfterLast(data.end, eData.lastCell) || isBeforeFirst(data.start)) {
330
330
  return false;
331
331
  }
332
332
  const range = getRange(data.start, data.end);
333
333
  return this.sv.range(range);
334
334
  }
335
- return this.sv.focusNext(data.start, changes);
335
+ return this.sv.focus(data.start, changes, isAfterLast(data.start, eData.lastCell)
336
+ ? 1
337
+ : isBeforeFirst(data.start)
338
+ ? -1
339
+ : 0);
336
340
  }
337
341
  /** Monitor key direction changes */
338
342
  changeDirectionKey(e, canRange) {
@@ -340,6 +344,12 @@ class KeyboardService {
340
344
  if (DIRECTION_CODES.includes(e.code)) {
341
345
  e.preventDefault();
342
346
  }
347
+ if (e.shiftKey) {
348
+ switch (e.code) {
349
+ case codesLetter.TAB:
350
+ return { changes: { x: -1 }, isMulti: false };
351
+ }
352
+ }
343
353
  switch (e.code) {
344
354
  case codesLetter.ARROW_UP:
345
355
  return { changes: { y: -1 }, isMulti };
@@ -575,6 +585,7 @@ const OverlaySelection = class {
575
585
  this.beforeRegionPaste = createEvent(this, "beforepasteregion", 7);
576
586
  this.cellEditApply = createEvent(this, "celleditapply", 7);
577
587
  this.beforeFocusCell = createEvent(this, "beforecellfocusinit", 7);
588
+ this.beforeNextViewportFocus = createEvent(this, "beforenextvpfocus", 7);
578
589
  this.setEdit = createEvent(this, "setedit", 7);
579
590
  this.beforeApplyRange = createEvent(this, "beforeapplyrange", 7);
580
591
  this.beforeSetRange = createEvent(this, "beforesetrange", 7);
@@ -597,6 +608,7 @@ const OverlaySelection = class {
597
608
  this.keyboardService = null;
598
609
  this.autoFillService = null;
599
610
  this.revogrEdit = null;
611
+ this.unsubscribeSelectionStore = [];
600
612
  this.readonly = undefined;
601
613
  this.range = undefined;
602
614
  this.canDrag = undefined;
@@ -664,12 +676,26 @@ const OverlaySelection = class {
664
676
  });
665
677
  }
666
678
  // #endregion
667
- /** Selection & Keyboard */
679
+ /**
680
+ * Selection & Keyboard
681
+ */
668
682
  selectionServiceSet(s) {
683
+ // clear subscriptions
684
+ this.unsubscribeSelectionStore.forEach(v => v());
685
+ this.unsubscribeSelectionStore.length = 0;
686
+ this.unsubscribeSelectionStore.push(s.onChange('nextFocus', (v) => this.doFocus(v, v)));
669
687
  this.keyboardService = new KeyboardService({
670
688
  selectionStore: s,
671
689
  range: r => this.triggerRangeEvent(r),
672
- focusNext: (f, next) => this.doFocus(f, f, next),
690
+ focus: (f, changes, focusNextViewport) => {
691
+ if (focusNextViewport) {
692
+ this.beforeNextViewportFocus.emit(f);
693
+ return false;
694
+ }
695
+ else {
696
+ return this.doFocus(f, f, changes);
697
+ }
698
+ },
673
699
  change: val => {
674
700
  if (this.readonly) {
675
701
  return;
@@ -716,6 +742,9 @@ const OverlaySelection = class {
716
742
  }
717
743
  disconnectedCallback() {
718
744
  var _a;
745
+ // clear subscriptions
746
+ this.unsubscribeSelectionStore.forEach(v => v());
747
+ this.unsubscribeSelectionStore.length = 0;
719
748
  (_a = this.columnService) === null || _a === void 0 ? void 0 : _a.destroy();
720
749
  }
721
750
  async componentWillRender() {
@@ -784,17 +813,17 @@ const OverlaySelection = class {
784
813
  nodes.push(h("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, onRowdragstartinit: e => this.rowDragStart(e) }));
785
814
  }
786
815
  }
787
- return (h(Host, { key: '676c1ac41a3658f7c2cb93ada69fbf141a51c660', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true) }, nodes, h("slot", { key: '42f4e051d6f531bd92e22106ca0eb1808068e8d0', name: "data" })));
816
+ return (h(Host, { key: '81dee4cfcce410cefb2bd9ff2661261472fc3a75', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true) }, nodes, h("slot", { key: '6ac75c388ae3fbc5539a27c3acd58178dd53d1af', name: "data" })));
788
817
  }
789
818
  /**
790
819
  * Executes the focus operation on the specified range of cells.
791
820
  */
792
- doFocus(focus, end, next) {
821
+ doFocus(focus, end, changes) {
793
822
  const { defaultPrevented } = this.beforeFocusCell.emit(this.columnService.getSaveData(focus.y, focus.x));
794
823
  if (defaultPrevented) {
795
824
  return false;
796
825
  }
797
- const evData = Object.assign({ range: Object.assign(Object.assign({}, focus), { x1: end.x, y1: end.y }), next }, this.types);
826
+ const evData = Object.assign({ range: Object.assign(Object.assign({}, focus), { x1: end.x, y1: end.y }), next: changes }, this.types);
798
827
  const applyEvent = this.applyFocus.emit(evData);
799
828
  if (applyEvent.defaultPrevented) {
800
829
  return false;