@revolist/revogrid 4.17.2 → 4.18.0

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 (91) hide show
  1. package/dist/cjs/{cell-renderer-DHSqT1hc.js → cell-renderer-ChTDsUI9.js} +3 -3
  2. package/dist/cjs/{cell-renderer-DHSqT1hc.js.map → cell-renderer-ChTDsUI9.js.map} +1 -1
  3. package/dist/cjs/{column.drag.plugin-Bz_MVClL.js → column.drag.plugin-C79X0yTw.js} +84 -4
  4. package/dist/cjs/column.drag.plugin-C79X0yTw.js.map +1 -0
  5. package/dist/cjs/{column.service-Cq2d9W4R.js → column.service-D9RDDMpb.js} +2 -391
  6. package/dist/cjs/column.service-D9RDDMpb.js.map +1 -0
  7. package/dist/cjs/{header-cell-renderer-BbmGu-fy.js → header-cell-renderer-CbdtxSW8.js} +3 -3
  8. package/dist/cjs/{header-cell-renderer-BbmGu-fy.js.map → header-cell-renderer-CbdtxSW8.js.map} +1 -1
  9. package/dist/cjs/index.cjs.js +5 -6
  10. package/dist/cjs/index.cjs.js.map +1 -1
  11. package/dist/cjs/revo-grid.cjs.entry.js +286 -20
  12. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  13. package/dist/cjs/revo-grid.entry.cjs.js.map +1 -1
  14. package/dist/cjs/revogr-attribution_7.cjs.entry.js +2 -2
  15. package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -1
  16. package/dist/cjs/revogr-data_4.cjs.entry.js +5 -5
  17. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  18. package/dist/cjs/{viewport.helpers-DWmWzj7C.js → viewport.helpers-BAovztDd.js} +5 -3
  19. package/dist/cjs/viewport.helpers-BAovztDd.js.map +1 -0
  20. package/dist/collection/components/header/revogr-header-style.css +15 -17
  21. package/dist/collection/components/revoGrid/viewport.helpers.js +3 -1
  22. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -1
  23. package/dist/collection/components/revoGrid/viewport.service.js +11 -16
  24. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  25. package/dist/collection/services/selection.store.connector.js +13 -46
  26. package/dist/collection/services/selection.store.connector.js.map +1 -1
  27. package/dist/collection/store/selection/selection.helpers.js +0 -4
  28. package/dist/collection/store/selection/selection.helpers.js.map +1 -1
  29. package/dist/collection/types/selection.js.map +1 -1
  30. package/dist/esm/{cell-renderer-BjdtMiBM.js → cell-renderer-ePazz-Zt.js} +3 -3
  31. package/dist/esm/{cell-renderer-BjdtMiBM.js.map → cell-renderer-ePazz-Zt.js.map} +1 -1
  32. package/dist/{revo-grid/column.drag.plugin-CIivVS-c.js → esm/column.drag.plugin-CS8ilBtr.js} +84 -5
  33. package/dist/esm/column.drag.plugin-CS8ilBtr.js.map +1 -0
  34. package/dist/esm/{column.service-CspjVf-q.js → column.service-DT_CqxqZ.js} +4 -389
  35. package/dist/esm/column.service-DT_CqxqZ.js.map +1 -0
  36. package/dist/esm/{header-cell-renderer-bvKLyRcy.js → header-cell-renderer-DNIoql0s.js} +3 -3
  37. package/dist/{revo-grid/header-cell-renderer-bvKLyRcy.js.map → esm/header-cell-renderer-DNIoql0s.js.map} +1 -1
  38. package/dist/esm/index.js +5 -5
  39. package/dist/esm/revo-grid.entry.js +285 -19
  40. package/dist/esm/revo-grid.entry.js.map +1 -1
  41. package/dist/esm/revogr-attribution_7.entry.js +2 -2
  42. package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -1
  43. package/dist/esm/revogr-data_4.entry.js +5 -5
  44. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  45. package/dist/esm/{viewport.helpers-B3EYGhqf.js → viewport.helpers-VXhsJZtn.js} +5 -3
  46. package/dist/esm/viewport.helpers-VXhsJZtn.js.map +1 -0
  47. package/dist/revo-grid/{cell-renderer-BjdtMiBM.js → cell-renderer-ePazz-Zt.js} +3 -3
  48. package/dist/revo-grid/{cell-renderer-BjdtMiBM.js.map → cell-renderer-ePazz-Zt.js.map} +1 -1
  49. package/dist/{esm/column.drag.plugin-CIivVS-c.js → revo-grid/column.drag.plugin-CS8ilBtr.js} +84 -5
  50. package/dist/revo-grid/column.drag.plugin-CS8ilBtr.js.map +1 -0
  51. package/dist/revo-grid/{column.service-CspjVf-q.js → column.service-DT_CqxqZ.js} +4 -389
  52. package/dist/revo-grid/column.service-DT_CqxqZ.js.map +1 -0
  53. package/dist/revo-grid/{header-cell-renderer-bvKLyRcy.js → header-cell-renderer-DNIoql0s.js} +3 -3
  54. package/dist/{esm/header-cell-renderer-bvKLyRcy.js.map → revo-grid/header-cell-renderer-DNIoql0s.js.map} +1 -1
  55. package/dist/revo-grid/index.esm.js +5 -5
  56. package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -1
  57. package/dist/revo-grid/revo-grid.entry.js +285 -19
  58. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  59. package/dist/revo-grid/revogr-attribution_7.entry.js +2 -2
  60. package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -1
  61. package/dist/revo-grid/revogr-data_4.entry.js +5 -5
  62. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  63. package/dist/revo-grid/{viewport.helpers-B3EYGhqf.js → viewport.helpers-VXhsJZtn.js} +5 -3
  64. package/dist/revo-grid/viewport.helpers-VXhsJZtn.js.map +1 -0
  65. package/dist/types/components/revoGrid/viewport.helpers.d.ts +3 -0
  66. package/dist/types/services/selection.store.connector.d.ts +0 -5
  67. package/dist/types/store/selection/selection.helpers.d.ts +0 -1
  68. package/dist/types/types/selection.d.ts +1 -0
  69. package/hydrate/index.js +638 -676
  70. package/hydrate/index.mjs +638 -676
  71. package/package.json +6 -6
  72. package/standalone/column.service.js +2 -387
  73. package/standalone/column.service.js.map +1 -1
  74. package/standalone/index.js +2 -2
  75. package/standalone/revo-grid.js +362 -17
  76. package/standalone/revo-grid.js.map +1 -1
  77. package/standalone/revogr-data2.js +1 -1
  78. package/standalone/revogr-header2.js +2 -2
  79. package/standalone/revogr-header2.js.map +1 -1
  80. package/standalone/revogr-overlay-selection2.js +1 -1
  81. package/standalone/revogr-viewport-scroll2.js +3 -1
  82. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  83. package/dist/cjs/column.drag.plugin-Bz_MVClL.js.map +0 -1
  84. package/dist/cjs/column.service-Cq2d9W4R.js.map +0 -1
  85. package/dist/cjs/viewport.helpers-DWmWzj7C.js.map +0 -1
  86. package/dist/esm/column.drag.plugin-CIivVS-c.js.map +0 -1
  87. package/dist/esm/column.service-CspjVf-q.js.map +0 -1
  88. package/dist/esm/viewport.helpers-B3EYGhqf.js.map +0 -1
  89. package/dist/revo-grid/column.drag.plugin-CIivVS-c.js.map +0 -1
  90. package/dist/revo-grid/column.service-CspjVf-q.js.map +0 -1
  91. package/dist/revo-grid/viewport.helpers-B3EYGhqf.js.map +0 -1
@@ -5,7 +5,7 @@
5
5
 
6
6
  var index = require('./index-BF1c1pO3.js');
7
7
  var dimension_helpers = require('./dimension.helpers-C5PvAWJW.js');
8
- var column_service = require('./column.service-Cq2d9W4R.js');
8
+ var column_service = require('./column.service-D9RDDMpb.js');
9
9
 
10
10
  const SortingSign = ({ column }) => {
11
11
  var _a;
@@ -101,6 +101,6 @@ exports.RowRenderer = RowRenderer;
101
101
  exports.SortingSign = SortingSign;
102
102
  exports.expandEvent = expandEvent;
103
103
  exports.expandSvgIconVNode = expandSvgIconVNode;
104
- //# sourceMappingURL=cell-renderer-DHSqT1hc.js.map
104
+ //# sourceMappingURL=cell-renderer-ChTDsUI9.js.map
105
105
 
106
- //# sourceMappingURL=cell-renderer-DHSqT1hc.js.map
106
+ //# sourceMappingURL=cell-renderer-ChTDsUI9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cell-renderer-DHSqT1hc.js","sources":["src/plugins/sorting/sorting.sign.tsx","src/components/data/row-renderer.tsx","src/plugins/groupingRow/grouping.row.renderer.tsx","src/components/data/cell-renderer.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { ColumnRegular } from '@type';\n\ntype Props = {\n column: ColumnRegular;\n};\nexport const SortingSign = ({ column }: Props) => {\n return <i class={column?.order ?? 'sort-off'} />;\n};\n","import { h, type VNode } from '@stencil/core';\nimport { JSXBase } from '@stencil/core/internal';\nimport { DATA_ROW } from '../../utils/consts';\n\nexport interface RowProps extends JSXBase.HTMLAttributes {\n size: number;\n start: number;\n index: number;\n rowClass?: string;\n depth?: number;\n}\n\nexport const PADDING_DEPTH = 10;\n\nconst RowRenderer = ({ rowClass, index, size, start, depth }: RowProps, cells: VNode[]) => {\n const props = {\n ...{ [DATA_ROW]: index },\n };\n return (\n <div\n {...props}\n class={`rgRow ${rowClass || ''}`}\n style={{\n height: `${size}px`,\n transform: `translateY(${start}px)`,\n paddingLeft: depth ? `${PADDING_DEPTH * depth}px` : undefined,\n }}\n >\n {cells}\n </div>\n );\n};\n\nexport default RowRenderer;\n","import { h } from '@stencil/core';\nimport RowRenderer from '../../components/data/row-renderer';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n GROUP_EXPAND_BTN,\n PSEUDO_GROUP_ITEM,\n GROUP_EXPAND_EVENT,\n} from './grouping.const';\nimport type { RowGroupingProps } from './grouping.row.types';\nimport type { DataType } from '@type';\n\nexport function expandEvent(\n e: MouseEvent,\n model: DataType,\n virtualIndex: number,\n) {\n const event = new CustomEvent(GROUP_EXPAND_EVENT, {\n detail: {\n model,\n virtualIndex,\n },\n cancelable: true,\n bubbles: true,\n }) as CustomEvent<HTMLRevoGridElementEventMap['groupexpandclick']>;\n e.target?.dispatchEvent(event);\n}\n\nexport const GroupingRowRenderer = (props: RowGroupingProps) => {\n const { model, itemIndex, hasExpand, groupingCustomRenderer } = props;\n const name = model[PSEUDO_GROUP_ITEM];\n const expanded = model[GROUP_EXPANDED];\n const depth = parseInt(model[GROUP_DEPTH], 10) || 0;\n\n if (groupingCustomRenderer) {\n return (\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\n <div onClick={e => expandEvent(e, model, itemIndex)}>\n {groupingCustomRenderer(h, {\n ...props,\n colType: props.providers.colType,\n name,\n expanded,\n depth,\n })}\n </div>\n </RowRenderer>\n );\n }\n\n return (\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\n {hasExpand && [\n <button\n class={{ [GROUP_EXPAND_BTN]: true }}\n onClick={e => expandEvent(e, model, itemIndex)}\n >\n {expandSvgIconVNode(expanded)}\n </button>,\n name,\n ]}\n </RowRenderer>\n );\n};\n\nexport const expandSvgIconVNode = (expanded = false) => {\n return (\n <svg\n aria-hidden=\"true\"\n style={{ transform: `rotate(${!expanded ? -90 : 0}deg)` }}\n focusable=\"false\"\n viewBox=\"0 0 448 512\"\n >\n <path\n fill=\"currentColor\"\n d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"\n ></path>\n </svg>\n );\n};\n\nexport default GroupingRowRenderer;\n","import { h, type VNode, Build, EventEmitter } from '@stencil/core';\nimport {\n DragStartEvent,\n CellTemplateProp,\n} from '@type';\n\nimport {\n DRAGGABLE_CLASS,\n DRAG_ICON_CLASS,\n getCellDataParsed,\n} from '../../utils';\n\nimport { isRowDragService } from './column.service';\n\ninterface RenderProps {\n schemaModel: CellTemplateProp;\n additionalData?: any;\n dragStartCell?: EventEmitter<DragStartEvent>;\n}\n\n\nfunction renderCell(v: RenderProps) {\n const els: (VNode | string)[] = [];\n\n // #region Custom cell\n const template = v.schemaModel.column?.cellTemplate;\n if (template) {\n els.push(template(h, v.schemaModel, v.additionalData));\n }\n // #endregion\n\n // #region Regular cell\n else {\n if (!v.schemaModel.column) {\n // something is wrong with data\n if (Build?.isDev) {\n console.error('Investigate column problem.', v.schemaModel);\n }\n return '';\n }\n\n // Row drag\n if (\n v.schemaModel.column.rowDrag &&\n isRowDragService(v.schemaModel.column.rowDrag, v.schemaModel)\n ) {\n els.push(\n <span\n class={DRAGGABLE_CLASS}\n onMouseDown={originalEvent =>\n v.dragStartCell?.emit({\n originalEvent,\n model: v.schemaModel,\n })\n }\n >\n <span class={DRAG_ICON_CLASS} />\n </span>,\n );\n }\n \n els.push(`${\n getCellDataParsed(v.schemaModel.model, v.schemaModel.column)\n }`);\n }\n return els;\n}\n\nexport const CellRenderer = ({\n renderProps,\n cellProps,\n}: {\n renderProps: RenderProps;\n cellProps: any;\n}): VNode => {\n const render = renderCell.bind(null, renderProps);\n return (\n <div {...cellProps} redraw={render}>\n {render()}\n </div>\n );\n};\n"],"names":["h","index","DATA_ROW","GROUP_EXPAND_EVENT","PSEUDO_GROUP_ITEM","GROUP_EXPANDED","GROUP_DEPTH","GROUP_EXPAND_BTN","Build","isRowDragService","DRAGGABLE_CLASS","DRAG_ICON_CLASS","getCellDataParsed"],"mappings":"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"}
1
+ {"version":3,"file":"cell-renderer-ChTDsUI9.js","sources":["src/plugins/sorting/sorting.sign.tsx","src/components/data/row-renderer.tsx","src/plugins/groupingRow/grouping.row.renderer.tsx","src/components/data/cell-renderer.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { ColumnRegular } from '@type';\n\ntype Props = {\n column: ColumnRegular;\n};\nexport const SortingSign = ({ column }: Props) => {\n return <i class={column?.order ?? 'sort-off'} />;\n};\n","import { h, type VNode } from '@stencil/core';\nimport { JSXBase } from '@stencil/core/internal';\nimport { DATA_ROW } from '../../utils/consts';\n\nexport interface RowProps extends JSXBase.HTMLAttributes {\n size: number;\n start: number;\n index: number;\n rowClass?: string;\n depth?: number;\n}\n\nexport const PADDING_DEPTH = 10;\n\nconst RowRenderer = ({ rowClass, index, size, start, depth }: RowProps, cells: VNode[]) => {\n const props = {\n ...{ [DATA_ROW]: index },\n };\n return (\n <div\n {...props}\n class={`rgRow ${rowClass || ''}`}\n style={{\n height: `${size}px`,\n transform: `translateY(${start}px)`,\n paddingLeft: depth ? `${PADDING_DEPTH * depth}px` : undefined,\n }}\n >\n {cells}\n </div>\n );\n};\n\nexport default RowRenderer;\n","import { h } from '@stencil/core';\nimport RowRenderer from '../../components/data/row-renderer';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n GROUP_EXPAND_BTN,\n PSEUDO_GROUP_ITEM,\n GROUP_EXPAND_EVENT,\n} from './grouping.const';\nimport type { RowGroupingProps } from './grouping.row.types';\nimport type { DataType } from '@type';\n\nexport function expandEvent(\n e: MouseEvent,\n model: DataType,\n virtualIndex: number,\n) {\n const event = new CustomEvent(GROUP_EXPAND_EVENT, {\n detail: {\n model,\n virtualIndex,\n },\n cancelable: true,\n bubbles: true,\n }) as CustomEvent<HTMLRevoGridElementEventMap['groupexpandclick']>;\n e.target?.dispatchEvent(event);\n}\n\nexport const GroupingRowRenderer = (props: RowGroupingProps) => {\n const { model, itemIndex, hasExpand, groupingCustomRenderer } = props;\n const name = model[PSEUDO_GROUP_ITEM];\n const expanded = model[GROUP_EXPANDED];\n const depth = parseInt(model[GROUP_DEPTH], 10) || 0;\n\n if (groupingCustomRenderer) {\n return (\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\n <div onClick={e => expandEvent(e, model, itemIndex)}>\n {groupingCustomRenderer(h, {\n ...props,\n colType: props.providers.colType,\n name,\n expanded,\n depth,\n })}\n </div>\n </RowRenderer>\n );\n }\n\n return (\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\n {hasExpand && [\n <button\n class={{ [GROUP_EXPAND_BTN]: true }}\n onClick={e => expandEvent(e, model, itemIndex)}\n >\n {expandSvgIconVNode(expanded)}\n </button>,\n name,\n ]}\n </RowRenderer>\n );\n};\n\nexport const expandSvgIconVNode = (expanded = false) => {\n return (\n <svg\n aria-hidden=\"true\"\n style={{ transform: `rotate(${!expanded ? -90 : 0}deg)` }}\n focusable=\"false\"\n viewBox=\"0 0 448 512\"\n >\n <path\n fill=\"currentColor\"\n d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"\n ></path>\n </svg>\n );\n};\n\nexport default GroupingRowRenderer;\n","import { h, type VNode, Build, EventEmitter } from '@stencil/core';\nimport {\n DragStartEvent,\n CellTemplateProp,\n} from '@type';\n\nimport {\n DRAGGABLE_CLASS,\n DRAG_ICON_CLASS,\n getCellDataParsed,\n} from '../../utils';\n\nimport { isRowDragService } from './column.service';\n\ninterface RenderProps {\n schemaModel: CellTemplateProp;\n additionalData?: any;\n dragStartCell?: EventEmitter<DragStartEvent>;\n}\n\n\nfunction renderCell(v: RenderProps) {\n const els: (VNode | string)[] = [];\n\n // #region Custom cell\n const template = v.schemaModel.column?.cellTemplate;\n if (template) {\n els.push(template(h, v.schemaModel, v.additionalData));\n }\n // #endregion\n\n // #region Regular cell\n else {\n if (!v.schemaModel.column) {\n // something is wrong with data\n if (Build?.isDev) {\n console.error('Investigate column problem.', v.schemaModel);\n }\n return '';\n }\n\n // Row drag\n if (\n v.schemaModel.column.rowDrag &&\n isRowDragService(v.schemaModel.column.rowDrag, v.schemaModel)\n ) {\n els.push(\n <span\n class={DRAGGABLE_CLASS}\n onMouseDown={originalEvent =>\n v.dragStartCell?.emit({\n originalEvent,\n model: v.schemaModel,\n })\n }\n >\n <span class={DRAG_ICON_CLASS} />\n </span>,\n );\n }\n \n els.push(`${\n getCellDataParsed(v.schemaModel.model, v.schemaModel.column)\n }`);\n }\n return els;\n}\n\nexport const CellRenderer = ({\n renderProps,\n cellProps,\n}: {\n renderProps: RenderProps;\n cellProps: any;\n}): VNode => {\n const render = renderCell.bind(null, renderProps);\n return (\n <div {...cellProps} redraw={render}>\n {render()}\n </div>\n );\n};\n"],"names":["h","index","DATA_ROW","GROUP_EXPAND_EVENT","PSEUDO_GROUP_ITEM","GROUP_EXPANDED","GROUP_DEPTH","GROUP_EXPAND_BTN","Build","isRowDragService","DRAGGABLE_CLASS","DRAG_ICON_CLASS","getCellDataParsed"],"mappings":"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"}
@@ -3,13 +3,13 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var column_service = require('./column.service-Cq2d9W4R.js');
6
+ var column_service = require('./column.service-D9RDDMpb.js');
7
7
  var dimension_helpers = require('./dimension.helpers-C5PvAWJW.js');
8
8
  var viewport_store = require('./viewport.store-BQqAGkuJ.js');
9
9
  var index = require('./index-BF1c1pO3.js');
10
10
  var filter_button = require('./filter.button-DSsWNs23.js');
11
11
  var debounce = require('./debounce-CcpHiH2p.js');
12
- var headerCellRenderer = require('./header-cell-renderer-BbmGu-fy.js');
12
+ var headerCellRenderer = require('./header-cell-renderer-CbdtxSW8.js');
13
13
 
14
14
  /**
15
15
  * Plugin which recalculates realSize on changes of sizes, originItemSize and count
@@ -200,6 +200,85 @@ class DimensionStore {
200
200
  }
201
201
  }
202
202
 
203
+ /**
204
+ * Selection store
205
+ */
206
+ function defaultState() {
207
+ return {
208
+ range: null,
209
+ tempRange: null,
210
+ tempRangeType: null,
211
+ focus: null,
212
+ edit: null,
213
+ lastCell: null,
214
+ nextFocus: null,
215
+ };
216
+ }
217
+ class SelectionStore {
218
+ constructor() {
219
+ this.unsubscribe = [];
220
+ this.store = dimension_helpers.createStore(defaultState());
221
+ this.store.on('set', (key, newVal) => {
222
+ if (key === 'tempRange' && !newVal) {
223
+ this.store.set('tempRangeType', null);
224
+ }
225
+ });
226
+ }
227
+ onChange(propName, cb) {
228
+ this.unsubscribe.push(this.store.onChange(propName, cb));
229
+ }
230
+ clearFocus() {
231
+ dimension_helpers.setStore(this.store, { focus: null, range: null, edit: null, tempRange: null });
232
+ }
233
+ setFocus(focus, end) {
234
+ if (!end) {
235
+ dimension_helpers.setStore(this.store, { focus });
236
+ }
237
+ else {
238
+ dimension_helpers.setStore(this.store, {
239
+ focus,
240
+ range: column_service.getRange(focus, end),
241
+ edit: null,
242
+ tempRange: null,
243
+ });
244
+ }
245
+ }
246
+ setNextFocus(focus) {
247
+ dimension_helpers.setStore(this.store, { nextFocus: focus });
248
+ }
249
+ setTempArea(range) {
250
+ dimension_helpers.setStore(this.store, { tempRange: range === null || range === void 0 ? void 0 : range.area, tempRangeType: range === null || range === void 0 ? void 0 : range.type, edit: null });
251
+ }
252
+ clearTemp() {
253
+ dimension_helpers.setStore(this.store, { tempRange: null });
254
+ }
255
+ /** Can be applied from selection change or from simple keyboard change clicks */
256
+ setRangeArea(range) {
257
+ dimension_helpers.setStore(this.store, { range, edit: null, tempRange: null });
258
+ }
259
+ setRange(start, end) {
260
+ const range = column_service.getRange(start, end);
261
+ this.setRangeArea(range);
262
+ }
263
+ setLastCell(lastCell) {
264
+ dimension_helpers.setStore(this.store, { lastCell });
265
+ }
266
+ setEdit(val) {
267
+ const focus = this.store.get('focus');
268
+ if (focus && typeof val === 'string') {
269
+ dimension_helpers.setStore(this.store, {
270
+ edit: { x: focus.x, y: focus.y, val },
271
+ });
272
+ return;
273
+ }
274
+ dimension_helpers.setStore(this.store, { edit: null });
275
+ }
276
+ dispose() {
277
+ this.unsubscribe.forEach(f => f());
278
+ this.store.dispose();
279
+ }
280
+ }
281
+
203
282
  /**
204
283
  * Base layer for plugins
205
284
  * Provide minimal starting core for plugins to work
@@ -2531,6 +2610,7 @@ exports.FILTER_TRIMMED_TYPE = FILTER_TRIMMED_TYPE;
2531
2610
  exports.FILTE_PANEL = FILTE_PANEL;
2532
2611
  exports.FilterPlugin = FilterPlugin;
2533
2612
  exports.GroupingRowPlugin = GroupingRowPlugin;
2613
+ exports.SelectionStore = SelectionStore;
2534
2614
  exports.SortingPlugin = SortingPlugin;
2535
2615
  exports.StretchColumn = StretchColumn;
2536
2616
  exports.defaultCellCompare = defaultCellCompare;
@@ -2545,6 +2625,6 @@ exports.getLeftRelative = getLeftRelative;
2545
2625
  exports.getNextOrder = getNextOrder;
2546
2626
  exports.isStretchPlugin = isStretchPlugin;
2547
2627
  exports.sortIndexByItems = sortIndexByItems;
2548
- //# sourceMappingURL=column.drag.plugin-Bz_MVClL.js.map
2628
+ //# sourceMappingURL=column.drag.plugin-C79X0yTw.js.map
2549
2629
 
2550
- //# sourceMappingURL=column.drag.plugin-Bz_MVClL.js.map
2630
+ //# sourceMappingURL=column.drag.plugin-C79X0yTw.js.map