@deephaven/grid 0.22.3-beta.18 → 0.22.3-beta.21
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.
- package/dist/CellInputField.d.ts +5 -5
- package/dist/CellInputField.d.ts.map +1 -1
- package/dist/CellInputField.js +6 -23
- package/dist/CellInputField.js.map +1 -1
- package/dist/EditableGridModel.js +1 -0
- package/dist/EditableGridModel.js.map +1 -1
- package/dist/ExpandableGridModel.js +1 -0
- package/dist/ExpandableGridModel.js.map +1 -1
- package/dist/Grid.js +77 -315
- package/dist/Grid.js.map +1 -1
- package/dist/GridAxisRange.js.map +1 -1
- package/dist/GridColorUtils.js +1 -2
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js +83 -240
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridModel.js +13 -31
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.js +2 -15
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.js +46 -160
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.js +126 -407
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridTestUtils.js +0 -5
- package/dist/GridTestUtils.js.map +1 -1
- package/dist/GridTheme.js.map +1 -1
- package/dist/GridUtils.js +68 -217
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.js +2 -8
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.js +0 -42
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js +6 -55
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/StaticDataGridModel.js +0 -15
- package/dist/StaticDataGridModel.js.map +1 -1
- package/dist/ThemeContext.js.map +1 -1
- package/dist/ViewportDataGridModel.js +0 -14
- package/dist/ViewportDataGridModel.js.map +1 -1
- package/dist/errors/AssertionError.js +0 -3
- package/dist/errors/AssertionError.js.map +1 -1
- package/dist/errors/PasteError.js +0 -3
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +0 -12
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +15 -33
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +6 -53
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +0 -11
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/memoizeClear.js +1 -4
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +0 -5
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +35 -123
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -27
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +0 -28
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +0 -27
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +0 -23
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +0 -10
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +0 -6
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +8 -38
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +5 -54
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +0 -28
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeKeyHandler.js","names":["isExpandableGridModel","KeyHandler","TreeKeyHandler","onDown","event","grid","key","handleExpandKey","selectedRanges","state","length","range","startRow","endRow","startColumn","endColumn","metrics","Error","model","props","row","column","modelRow","getModelRow","isRowExpandable","toggleRowExpanded"],"sources":["../../src/key-handlers/TreeKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isExpandableGridModel } from '../ExpandableGridModel';\nimport Grid from '../Grid';\nimport GridRange from '../GridRange';\nimport KeyHandler from '../KeyHandler';\n\nclass TreeKeyHandler extends KeyHandler {\n onDown(event: KeyboardEvent, grid: Grid): boolean {\n switch (event.key) {\n case 'Enter':\n case ' ': {\n return this.handleExpandKey(event, grid);\n }\n default:\n break;\n }\n return false;\n }\n\n handleExpandKey(event: KeyboardEvent, grid: Grid): boolean {\n const { selectedRanges } = grid.state;\n if (selectedRanges.length === 1) {\n const range = selectedRanges[0] as GridRange;\n if (\n range.startRow === range.endRow &&\n range.startColumn === range.endColumn\n ) {\n if (!grid.metrics) throw new Error('grid.metrics not set');\n\n const { model } = grid.props;\n const { startRow: row, startColumn: column } = range;\n if (row != null) {\n const modelRow = grid.getModelRow(row);\n if (\n (column === 0 || column == null) &&\n isExpandableGridModel(model) &&\n model.isRowExpandable(modelRow)\n ) {\n grid.toggleRowExpanded(row);\n return true;\n }\n }\n }\n }\n return false;\n }\n}\n\nexport default TreeKeyHandler;\n"],"mappings":"AAAA;SACSA,
|
|
1
|
+
{"version":3,"file":"TreeKeyHandler.js","names":["isExpandableGridModel","KeyHandler","TreeKeyHandler","onDown","event","grid","key","handleExpandKey","selectedRanges","state","length","range","startRow","endRow","startColumn","endColumn","metrics","Error","model","props","row","column","modelRow","getModelRow","isRowExpandable","toggleRowExpanded"],"sources":["../../src/key-handlers/TreeKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isExpandableGridModel } from '../ExpandableGridModel';\nimport Grid from '../Grid';\nimport GridRange from '../GridRange';\nimport KeyHandler from '../KeyHandler';\n\nclass TreeKeyHandler extends KeyHandler {\n onDown(event: KeyboardEvent, grid: Grid): boolean {\n switch (event.key) {\n case 'Enter':\n case ' ': {\n return this.handleExpandKey(event, grid);\n }\n default:\n break;\n }\n return false;\n }\n\n handleExpandKey(event: KeyboardEvent, grid: Grid): boolean {\n const { selectedRanges } = grid.state;\n if (selectedRanges.length === 1) {\n const range = selectedRanges[0] as GridRange;\n if (\n range.startRow === range.endRow &&\n range.startColumn === range.endColumn\n ) {\n if (!grid.metrics) throw new Error('grid.metrics not set');\n\n const { model } = grid.props;\n const { startRow: row, startColumn: column } = range;\n if (row != null) {\n const modelRow = grid.getModelRow(row);\n if (\n (column === 0 || column == null) &&\n isExpandableGridModel(model) &&\n model.isRowExpandable(modelRow)\n ) {\n grid.toggleRowExpanded(row);\n return true;\n }\n }\n }\n }\n return false;\n }\n}\n\nexport default TreeKeyHandler;\n"],"mappings":"AAAA;AAAA,SACSA,qBAAqB;AAAA,OAGvBC,UAAU;AAEjB,MAAMC,cAAc,SAASD,UAAU,CAAC;EACtCE,MAAM,CAACC,KAAoB,EAAEC,IAAU,EAAW;IAChD,QAAQD,KAAK,CAACE,GAAG;MACf,KAAK,OAAO;MACZ,KAAK,GAAG;QAAE;UACR,OAAO,IAAI,CAACC,eAAe,CAACH,KAAK,EAAEC,IAAI,CAAC;QAC1C;MACA;QACE;IAAM;IAEV,OAAO,KAAK;EACd;EAEAE,eAAe,CAACH,KAAoB,EAAEC,IAAU,EAAW;IACzD,IAAM;MAAEG;IAAe,CAAC,GAAGH,IAAI,CAACI,KAAK;IACrC,IAAID,cAAc,CAACE,MAAM,KAAK,CAAC,EAAE;MAC/B,IAAMC,KAAK,GAAGH,cAAc,CAAC,CAAC,CAAc;MAC5C,IACEG,KAAK,CAACC,QAAQ,KAAKD,KAAK,CAACE,MAAM,IAC/BF,KAAK,CAACG,WAAW,KAAKH,KAAK,CAACI,SAAS,EACrC;QACA,IAAI,CAACV,IAAI,CAACW,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;QAE1D,IAAM;UAAEC;QAAM,CAAC,GAAGb,IAAI,CAACc,KAAK;QAC5B,IAAM;UAAEP,QAAQ,EAAEQ,GAAG;UAAEN,WAAW,EAAEO;QAAO,CAAC,GAAGV,KAAK;QACpD,IAAIS,GAAG,IAAI,IAAI,EAAE;UACf,IAAME,QAAQ,GAAGjB,IAAI,CAACkB,WAAW,CAACH,GAAG,CAAC;UACtC,IACE,CAACC,MAAM,KAAK,CAAC,IAAIA,MAAM,IAAI,IAAI,KAC/BrB,qBAAqB,CAACkB,KAAK,CAAC,IAC5BA,KAAK,CAACM,eAAe,CAACF,QAAQ,CAAC,EAC/B;YACAjB,IAAI,CAACoB,iBAAiB,CAACL,GAAG,CAAC;YAC3B,OAAO,IAAI;UACb;QACF;MACF;IACF;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAelB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","SelectionKeyHandler","TreeKeyHandler","EditKeyHandler","PasteKeyHandler"],"sources":["../../src/key-handlers/index.ts"],"sourcesContent":["export { default as SelectionKeyHandler } from './SelectionKeyHandler';\nexport { default as TreeKeyHandler } from './TreeKeyHandler';\nexport { default as EditKeyHandler } from './EditKeyHandler';\nexport { default as PasteKeyHandler } from './PasteKeyHandler';\n"],"mappings":"SAASA,OAAO,IAAIC,
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","SelectionKeyHandler","TreeKeyHandler","EditKeyHandler","PasteKeyHandler"],"sources":["../../src/key-handlers/index.ts"],"sourcesContent":["export { default as SelectionKeyHandler } from './SelectionKeyHandler';\nexport { default as TreeKeyHandler } from './TreeKeyHandler';\nexport { default as EditKeyHandler } from './EditKeyHandler';\nexport { default as PasteKeyHandler } from './PasteKeyHandler';\n"],"mappings":"SAASA,OAAO,IAAIC,mBAAmB;AAAA,SAC9BD,OAAO,IAAIE,cAAc;AAAA,SACzBF,OAAO,IAAIG,cAAc;AAAA,SACzBH,OAAO,IAAII,eAAe"}
|
package/dist/memoizeClear.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
-
|
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
5
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
/**
|
|
8
5
|
* Extension of memoizee that clears the entire cache when it's full.
|
|
9
6
|
* This avoids the situation where LRU cache starts thrashing when it fills up.
|
|
@@ -11,11 +8,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
11
8
|
* LRU queue, but this should be sufficient for now.
|
|
12
9
|
*/
|
|
13
10
|
import memoizee from 'memoizee';
|
|
11
|
+
|
|
14
12
|
/**
|
|
15
13
|
* @param fn The function to memoize
|
|
16
14
|
* @param options The options to set for memoization
|
|
17
15
|
*/
|
|
18
|
-
|
|
19
16
|
export var memoizeClear = (fn, options) => {
|
|
20
17
|
var isClearingCache = false;
|
|
21
18
|
var memoizedFn = memoizee(fn, _objectSpread(_objectSpread({}, options), {}, {
|
package/dist/memoizeClear.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoizeClear.js","names":["memoizee","memoizeClear","fn","options","isClearingCache","memoizedFn","dispose","clear"],"sources":["../src/memoizeClear.ts"],"sourcesContent":["/**\n * Extension of memoizee that clears the entire cache when it's full.\n * This avoids the situation where LRU cache starts thrashing when it fills up.\n * Could look at writing our own memoize with a smarter cache to avoid overhead of\n * LRU queue, but this should be sufficient for now.\n */\nimport memoizee from 'memoizee';\n\n/**\n * @param fn The function to memoize\n * @param options The options to set for memoization\n */\nexport const memoizeClear: typeof memoizee = (fn, options) => {\n let isClearingCache = false;\n const memoizedFn = memoizee(fn, {\n ...options,\n dispose: () => {\n // Need to track when we're clearing because dispose gets called for all items removed\n if (!isClearingCache) {\n isClearingCache = true;\n memoizedFn.clear();\n isClearingCache = false;\n }\n },\n });\n\n return memoizedFn;\n};\n\nexport default memoizeClear;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"memoizeClear.js","names":["memoizee","memoizeClear","fn","options","isClearingCache","memoizedFn","dispose","clear"],"sources":["../src/memoizeClear.ts"],"sourcesContent":["/**\n * Extension of memoizee that clears the entire cache when it's full.\n * This avoids the situation where LRU cache starts thrashing when it fills up.\n * Could look at writing our own memoize with a smarter cache to avoid overhead of\n * LRU queue, but this should be sufficient for now.\n */\nimport memoizee from 'memoizee';\n\n/**\n * @param fn The function to memoize\n * @param options The options to set for memoization\n */\nexport const memoizeClear: typeof memoizee = (fn, options) => {\n let isClearingCache = false;\n const memoizedFn = memoizee(fn, {\n ...options,\n dispose: () => {\n // Need to track when we're clearing because dispose gets called for all items removed\n if (!isClearingCache) {\n isClearingCache = true;\n memoizedFn.clear();\n isClearingCache = false;\n }\n },\n });\n\n return memoizedFn;\n};\n\nexport default memoizeClear;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,UAAU;;AAE/B;AACA;AACA;AACA;AACA,OAAO,IAAMC,YAA6B,GAAG,CAACC,EAAE,EAAEC,OAAO,KAAK;EAC5D,IAAIC,eAAe,GAAG,KAAK;EAC3B,IAAMC,UAAU,GAAGL,QAAQ,CAACE,EAAE,kCACzBC,OAAO;IACVG,OAAO,EAAE,MAAM;MACb;MACA,IAAI,CAACF,eAAe,EAAE;QACpBA,eAAe,GAAG,IAAI;QACtBC,UAAU,CAACE,KAAK,EAAE;QAClBH,eAAe,GAAG,KAAK;MACzB;IACF;EAAC,GACD;EAEF,OAAOC,UAAU;AACnB,CAAC;AAED,eAAeJ,YAAY"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { isEditableGridModel } from "../EditableGridModel.js";
|
|
3
3
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
4
4
|
import GridRange from "../GridRange.js";
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* Handles clicking on a cell to edit it in an editable grid
|
|
8
7
|
*/
|
|
@@ -15,16 +14,12 @@ class EditMouseHandler extends GridMouseHandler {
|
|
|
15
14
|
var {
|
|
16
15
|
model
|
|
17
16
|
} = grid.props;
|
|
18
|
-
|
|
19
17
|
if (isEditableGridModel(model) && column != null && row != null && model.isEditableRange(GridRange.makeCell(column, row))) {
|
|
20
18
|
grid.startEditing(column, row);
|
|
21
19
|
return true;
|
|
22
20
|
}
|
|
23
|
-
|
|
24
21
|
return false;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
export default EditMouseHandler;
|
|
30
25
|
//# sourceMappingURL=EditMouseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditMouseHandler.js","names":["isEditableGridModel","GridMouseHandler","GridRange","EditMouseHandler","onDoubleClick","grid","column","row","model","props","isEditableRange","makeCell","startEditing"],"sources":["../../src/mouse-handlers/EditMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isEditableGridModel } from '../EditableGridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridRange from '../GridRange';\nimport { GridPoint } from '../GridUtils';\n\n/**\n * Handles clicking on a cell to edit it in an editable grid\n */\nclass EditMouseHandler extends GridMouseHandler {\n onDoubleClick({ column, row }: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n if (\n isEditableGridModel(model) &&\n column != null &&\n row != null &&\n model.isEditableRange(GridRange.makeCell(column, row))\n ) {\n grid.startEditing(column, row);\n return true;\n }\n return false;\n }\n}\n\nexport default EditMouseHandler;\n"],"mappings":"AAAA;SACSA,
|
|
1
|
+
{"version":3,"file":"EditMouseHandler.js","names":["isEditableGridModel","GridMouseHandler","GridRange","EditMouseHandler","onDoubleClick","grid","column","row","model","props","isEditableRange","makeCell","startEditing"],"sources":["../../src/mouse-handlers/EditMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isEditableGridModel } from '../EditableGridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridRange from '../GridRange';\nimport { GridPoint } from '../GridUtils';\n\n/**\n * Handles clicking on a cell to edit it in an editable grid\n */\nclass EditMouseHandler extends GridMouseHandler {\n onDoubleClick({ column, row }: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n if (\n isEditableGridModel(model) &&\n column != null &&\n row != null &&\n model.isEditableRange(GridRange.makeCell(column, row))\n ) {\n grid.startEditing(column, row);\n return true;\n }\n return false;\n }\n}\n\nexport default EditMouseHandler;\n"],"mappings":"AAAA;AAAA,SACSA,mBAAmB;AAAA,OAGrBC,gBAAgB;AAAA,OAChBC,SAAS;AAGhB;AACA;AACA;AACA,MAAMC,gBAAgB,SAASF,gBAAgB,CAAC;EAC9CG,aAAa,OAA6BC,IAAU,EAAsB;IAAA,IAA5D;MAAEC,MAAM;MAAEC;IAAe,CAAC;IACtC,IAAM;MAAEC;IAAM,CAAC,GAAGH,IAAI,CAACI,KAAK;IAC5B,IACET,mBAAmB,CAACQ,KAAK,CAAC,IAC1BF,MAAM,IAAI,IAAI,IACdC,GAAG,IAAI,IAAI,IACXC,KAAK,CAACE,eAAe,CAACR,SAAS,CAACS,QAAQ,CAACL,MAAM,EAAEC,GAAG,CAAC,CAAC,EACtD;MACAF,IAAI,CAACO,YAAY,CAACN,MAAM,EAAEC,GAAG,CAAC;MAC9B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAeJ,gBAAgB"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
-
|
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
5
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
import clamp from 'lodash.clamp';
|
|
8
5
|
import GridUtils from "../GridUtils.js";
|
|
9
6
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
10
7
|
var SLOPPY_CLICK_DISTANCE = 5;
|
|
11
8
|
var SCROLL_INTERVAL = 1000 / 60;
|
|
12
9
|
var SCROLL_DELTA = 10;
|
|
13
|
-
|
|
14
10
|
/**
|
|
15
11
|
* Gets info about a visible column
|
|
16
12
|
* @param visibleIndex The visible index to get info for
|
|
@@ -23,7 +19,6 @@ var SCROLL_DELTA = 10;
|
|
|
23
19
|
*/
|
|
24
20
|
function getColumnInfo(visibleIndex, depth, metrics, model) {
|
|
25
21
|
var _modelColumns$get;
|
|
26
|
-
|
|
27
22
|
var {
|
|
28
23
|
modelColumns,
|
|
29
24
|
movedColumns,
|
|
@@ -35,39 +30,31 @@ function getColumnInfo(visibleIndex, depth, metrics, model) {
|
|
|
35
30
|
floatingLeftWidth,
|
|
36
31
|
maxX
|
|
37
32
|
} = metrics;
|
|
38
|
-
|
|
39
33
|
if (depth == null || visibleIndex == null || visibleIndex > columnCount || visibleIndex < 0) {
|
|
40
34
|
return null;
|
|
41
35
|
}
|
|
42
|
-
|
|
43
36
|
var modelIndex = (_modelColumns$get = modelColumns.get(visibleIndex)) !== null && _modelColumns$get !== void 0 ? _modelColumns$get : GridUtils.getModelIndex(visibleIndex, movedColumns);
|
|
44
37
|
var group = model.getColumnHeaderGroup(modelIndex, depth);
|
|
45
38
|
var isColumnGroup = group != null;
|
|
46
39
|
var left;
|
|
47
40
|
var right;
|
|
48
41
|
var range;
|
|
49
|
-
|
|
50
42
|
if (group != null) {
|
|
51
43
|
var _visibleColumnXs$get, _visibleColumnXs$get2, _visibleColumnWidths$;
|
|
52
|
-
|
|
53
44
|
var [startVisibleIndex, endVisibleIndex] = group.getVisibleRange(movedColumns);
|
|
54
45
|
left = (_visibleColumnXs$get = visibleColumnXs.get(startVisibleIndex)) !== null && _visibleColumnXs$get !== void 0 ? _visibleColumnXs$get : floatingLeftWidth;
|
|
55
46
|
right = ((_visibleColumnXs$get2 = visibleColumnXs.get(endVisibleIndex)) !== null && _visibleColumnXs$get2 !== void 0 ? _visibleColumnXs$get2 : maxX) + ((_visibleColumnWidths$ = visibleColumnWidths.get(endVisibleIndex)) !== null && _visibleColumnWidths$ !== void 0 ? _visibleColumnWidths$ : 0);
|
|
56
47
|
range = [startVisibleIndex, endVisibleIndex];
|
|
57
48
|
} else {
|
|
58
49
|
var _ref, _ref2, _visibleColumnWidths$2;
|
|
59
|
-
|
|
60
50
|
var possibleLeft = visibleColumnXs.get(visibleIndex);
|
|
61
|
-
|
|
62
51
|
if (possibleLeft == null) {
|
|
63
52
|
return null;
|
|
64
53
|
}
|
|
65
|
-
|
|
66
54
|
left = possibleLeft;
|
|
67
55
|
right = left + ((_ref = (_ref2 = (_visibleColumnWidths$2 = visibleColumnWidths.get(visibleIndex)) !== null && _visibleColumnWidths$2 !== void 0 ? _visibleColumnWidths$2 : userColumnWidths.get(modelIndex)) !== null && _ref2 !== void 0 ? _ref2 : calculatedColumnWidths.get(modelIndex)) !== null && _ref !== void 0 ? _ref : 0);
|
|
68
56
|
range = [visibleIndex, visibleIndex];
|
|
69
57
|
}
|
|
70
|
-
|
|
71
58
|
return {
|
|
72
59
|
visibleIndex,
|
|
73
60
|
modelIndex,
|
|
@@ -79,41 +66,29 @@ function getColumnInfo(visibleIndex, depth, metrics, model) {
|
|
|
79
66
|
depth
|
|
80
67
|
};
|
|
81
68
|
}
|
|
82
|
-
|
|
83
69
|
class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
84
70
|
constructor() {
|
|
85
71
|
super(...arguments);
|
|
86
|
-
|
|
87
72
|
_defineProperty(this, "cursor", null);
|
|
88
|
-
|
|
89
73
|
_defineProperty(this, "draggingOffset", void 0);
|
|
90
|
-
|
|
91
74
|
_defineProperty(this, "initialOffset", void 0);
|
|
92
|
-
|
|
93
75
|
_defineProperty(this, "initialGridPoint", void 0);
|
|
94
|
-
|
|
95
76
|
_defineProperty(this, "scrollingInterval", void 0);
|
|
96
|
-
|
|
97
77
|
_defineProperty(this, "scrollingDirection", void 0);
|
|
98
|
-
|
|
99
78
|
_defineProperty(this, "draggingColumn", null);
|
|
100
79
|
}
|
|
101
|
-
|
|
102
80
|
setScrollInterval(grid, direction) {
|
|
103
81
|
if (this.scrollingInterval != null && direction === this.scrollingDirection) {
|
|
104
82
|
return;
|
|
105
83
|
}
|
|
106
|
-
|
|
107
84
|
this.scrollingDirection = direction;
|
|
108
85
|
this.scrollingInterval = window.setInterval(() => {
|
|
109
86
|
var {
|
|
110
87
|
metrics
|
|
111
88
|
} = grid;
|
|
112
|
-
|
|
113
89
|
if (!metrics) {
|
|
114
90
|
return;
|
|
115
91
|
}
|
|
116
|
-
|
|
117
92
|
var {
|
|
118
93
|
left,
|
|
119
94
|
lastLeft,
|
|
@@ -125,23 +100,18 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
125
100
|
} = metrics;
|
|
126
101
|
var nextLeft = left;
|
|
127
102
|
var nextOffset = leftOffset;
|
|
128
|
-
|
|
129
103
|
if (direction === 'left') {
|
|
130
104
|
nextOffset -= SCROLL_DELTA;
|
|
131
|
-
|
|
132
105
|
while (nextOffset < 0) {
|
|
133
106
|
var _userColumnWidths$get;
|
|
134
|
-
|
|
135
107
|
nextLeft -= 1;
|
|
136
108
|
var modelIndex = GridUtils.getModelIndex(left - 1, movedColumns);
|
|
137
109
|
var prevColumnWidth = (_userColumnWidths$get = userColumnWidths.get(modelIndex)) !== null && _userColumnWidths$get !== void 0 ? _userColumnWidths$get : calculatedColumnWidths.get(modelIndex);
|
|
138
|
-
|
|
139
110
|
if (prevColumnWidth === undefined) {
|
|
140
111
|
nextOffset = 0;
|
|
141
112
|
} else {
|
|
142
113
|
nextOffset += prevColumnWidth;
|
|
143
114
|
}
|
|
144
|
-
|
|
145
115
|
if (nextLeft < 0) {
|
|
146
116
|
nextOffset = 0;
|
|
147
117
|
nextLeft = 0;
|
|
@@ -150,56 +120,44 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
150
120
|
} else {
|
|
151
121
|
nextOffset += SCROLL_DELTA;
|
|
152
122
|
var leftColumnWidth = visibleColumnWidths.get(left);
|
|
153
|
-
|
|
154
123
|
while (leftColumnWidth !== undefined && nextOffset > leftColumnWidth) {
|
|
155
124
|
var _userColumnWidths$get2;
|
|
156
|
-
|
|
157
125
|
nextLeft += 1;
|
|
158
126
|
nextOffset -= leftColumnWidth;
|
|
159
|
-
|
|
160
127
|
var _modelIndex = GridUtils.getModelIndex(left + 1, movedColumns);
|
|
161
|
-
|
|
162
128
|
leftColumnWidth = (_userColumnWidths$get2 = userColumnWidths.get(_modelIndex)) !== null && _userColumnWidths$get2 !== void 0 ? _userColumnWidths$get2 : calculatedColumnWidths.get(_modelIndex);
|
|
163
|
-
|
|
164
129
|
if (nextLeft > lastLeft) {
|
|
165
130
|
nextOffset = 0;
|
|
166
131
|
nextLeft = lastLeft;
|
|
167
132
|
}
|
|
168
133
|
}
|
|
169
134
|
}
|
|
170
|
-
|
|
171
135
|
var {
|
|
172
136
|
mouseX,
|
|
173
137
|
mouseY
|
|
174
138
|
} = grid.state;
|
|
175
|
-
|
|
176
139
|
if (metrics == null || mouseX == null || mouseY == null) {
|
|
177
140
|
return;
|
|
178
141
|
}
|
|
179
|
-
|
|
180
142
|
this.moveDraggingColumn(mouseX, grid, direction === 'left' ? -SCROLL_DELTA : SCROLL_DELTA);
|
|
181
143
|
grid.setState({
|
|
182
144
|
left: nextLeft,
|
|
183
145
|
leftOffset: nextOffset
|
|
184
146
|
});
|
|
185
|
-
|
|
186
147
|
if (direction === 'left' && nextLeft === 0 && leftOffset === 0 || direction === 'right' && nextLeft === lastLeft) {
|
|
187
148
|
this.clearScrollInterval();
|
|
188
149
|
}
|
|
189
150
|
}, SCROLL_INTERVAL);
|
|
190
151
|
}
|
|
191
|
-
|
|
192
152
|
clearScrollInterval() {
|
|
193
153
|
this.scrollingDirection = undefined;
|
|
194
154
|
window.clearInterval(this.scrollingInterval);
|
|
195
155
|
this.scrollingInterval = undefined;
|
|
196
156
|
}
|
|
197
|
-
|
|
198
157
|
onLeave() {
|
|
199
158
|
this.clearScrollInterval();
|
|
200
159
|
return false;
|
|
201
160
|
}
|
|
202
|
-
|
|
203
161
|
onDown(gridPoint, grid) {
|
|
204
162
|
var {
|
|
205
163
|
model
|
|
@@ -214,36 +172,30 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
214
172
|
} = grid;
|
|
215
173
|
if (!metrics) throw new Error('Metrics not set');
|
|
216
174
|
var columnInfo = getColumnInfo(column, columnHeaderDepth, metrics, model);
|
|
217
|
-
|
|
218
175
|
if (column == null || columnInfo == null || columnHeaderDepth == null) {
|
|
219
176
|
return false;
|
|
220
|
-
}
|
|
221
|
-
|
|
177
|
+
}
|
|
222
178
|
|
|
179
|
+
// Can't drag a base column from the empty group area
|
|
223
180
|
if (columnHeaderDepth > 0 && !columnInfo.isColumnGroup) {
|
|
224
181
|
return false;
|
|
225
182
|
}
|
|
226
|
-
|
|
227
183
|
var {
|
|
228
184
|
rowHeaderWidth
|
|
229
185
|
} = metrics;
|
|
230
186
|
this.initialGridPoint = gridPoint;
|
|
231
187
|
this.draggingColumn = null;
|
|
232
188
|
this.cursor = null;
|
|
233
|
-
|
|
234
189
|
if (columnInfo.modelIndex != null && columnHeaderDepth != null && model.isColumnMovable(columnInfo.modelIndex, columnHeaderDepth)) {
|
|
235
190
|
this.draggingOffset = x - columnInfo.left - rowHeaderWidth;
|
|
236
191
|
this.initialOffset = this.draggingOffset;
|
|
237
192
|
}
|
|
238
|
-
|
|
239
193
|
return false;
|
|
240
194
|
}
|
|
241
|
-
|
|
242
195
|
onDrag(gridPoint, grid, event) {
|
|
243
196
|
if (this.draggingOffset === undefined || this.initialGridPoint === undefined || this.initialOffset === undefined) {
|
|
244
197
|
return false;
|
|
245
198
|
}
|
|
246
|
-
|
|
247
199
|
var {
|
|
248
200
|
x: mouseX,
|
|
249
201
|
y: mouseY
|
|
@@ -260,34 +212,31 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
260
212
|
var {
|
|
261
213
|
metrics
|
|
262
214
|
} = grid;
|
|
263
|
-
if (!metrics) throw new Error('Metrics not set');
|
|
264
|
-
// this prevents click actions from triggering a drag state
|
|
215
|
+
if (!metrics) throw new Error('Metrics not set');
|
|
265
216
|
|
|
217
|
+
// before considering it a drag, the mouse must have moved a minimum distance
|
|
218
|
+
// this prevents click actions from triggering a drag state
|
|
266
219
|
if (!draggingColumn && Math.abs(this.initialGridPoint.x - mouseX) < SLOPPY_CLICK_DISTANCE && Math.abs(this.initialGridPoint.y - mouseY) < SLOPPY_CLICK_DISTANCE) {
|
|
267
220
|
return false;
|
|
268
|
-
}
|
|
269
|
-
|
|
221
|
+
}
|
|
270
222
|
|
|
223
|
+
// Get the initial dragging column info
|
|
271
224
|
if (draggingColumn == null) {
|
|
272
225
|
var initialColumnInfo = getColumnInfo(this.initialGridPoint.column, columnHeaderDepth, metrics, model);
|
|
273
|
-
|
|
274
226
|
if (!initialColumnInfo || columnHeaderDepth == null) {
|
|
275
227
|
return false;
|
|
276
228
|
}
|
|
277
|
-
|
|
278
229
|
if (!model.isColumnMovable(initialColumnInfo.modelIndex)) {
|
|
279
230
|
return false;
|
|
280
|
-
}
|
|
281
|
-
|
|
231
|
+
}
|
|
282
232
|
|
|
233
|
+
// Disallow dragging from the blank space in column header groups
|
|
283
234
|
if (columnHeaderDepth > 0 && !initialColumnInfo.isColumnGroup) {
|
|
284
235
|
return false;
|
|
285
236
|
}
|
|
286
|
-
|
|
287
237
|
if (initialColumnInfo.range[0] == null) {
|
|
288
238
|
return false;
|
|
289
239
|
}
|
|
290
|
-
|
|
291
240
|
draggingColumn = {
|
|
292
241
|
range: initialColumnInfo.range,
|
|
293
242
|
depth: columnHeaderDepth,
|
|
@@ -295,45 +244,42 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
295
244
|
width: initialColumnInfo.width
|
|
296
245
|
};
|
|
297
246
|
var startColumn = getColumnInfo(draggingColumn.range[0], 0, metrics, model);
|
|
298
|
-
var endColumn = getColumnInfo(draggingColumn.range[1], 0, metrics, model);
|
|
247
|
+
var endColumn = getColumnInfo(draggingColumn.range[1], 0, metrics, model);
|
|
248
|
+
|
|
249
|
+
// Group goes off the table. Drag and drop could be wonky here
|
|
299
250
|
// Column draws only use columns that are partially visible too
|
|
300
251
|
// So this could cause rendering errors if we tried dragging it
|
|
301
|
-
|
|
302
252
|
if (!startColumn || !endColumn) {
|
|
303
253
|
return false;
|
|
304
254
|
}
|
|
305
|
-
|
|
306
255
|
this.draggingColumn = draggingColumn;
|
|
307
256
|
grid.setState({
|
|
308
257
|
draggingColumn,
|
|
309
258
|
isDragging: true
|
|
310
259
|
});
|
|
311
260
|
}
|
|
261
|
+
|
|
312
262
|
/**
|
|
313
263
|
* At this point, we have determined we are actually dragging a column
|
|
314
264
|
*/
|
|
315
|
-
|
|
316
|
-
|
|
317
265
|
this.cursor = 'move';
|
|
318
266
|
this.moveDraggingColumn(gridPoint.x, grid, event.movementX);
|
|
319
267
|
return true;
|
|
320
268
|
}
|
|
269
|
+
|
|
321
270
|
/**
|
|
322
271
|
* Moves a dragging column, if possible, the specified distance
|
|
323
272
|
* @param mouseX The point the move was initiated from
|
|
324
273
|
* @param grid The Grid component
|
|
325
274
|
* @param deltaX The distance of the move
|
|
326
275
|
*/
|
|
327
|
-
|
|
328
|
-
|
|
329
276
|
moveDraggingColumn(mouseX, grid, deltaX) {
|
|
330
277
|
var _draggingParentGroup$;
|
|
331
|
-
|
|
332
278
|
if (this.draggingOffset === undefined || this.initialGridPoint === undefined || this.initialOffset === undefined || this.draggingColumn == null || deltaX === 0) {
|
|
333
279
|
return;
|
|
334
|
-
}
|
|
335
|
-
|
|
280
|
+
}
|
|
336
281
|
|
|
282
|
+
// Cursor has moved past the column drag bounds, don't move the column until we hit the initial offset point again
|
|
337
283
|
if (this.initialOffset !== this.draggingOffset) {
|
|
338
284
|
// Pre move < Initial < Post move or vice-versa
|
|
339
285
|
// User crossed back past the iniital offset point, so we can start moving again
|
|
@@ -343,7 +289,6 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
343
289
|
// Column can't move since we aren't back at the initial offset yet
|
|
344
290
|
this.draggingOffset += deltaX;
|
|
345
291
|
}
|
|
346
|
-
|
|
347
292
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
348
293
|
left: mouseX - this.draggingOffset
|
|
349
294
|
});
|
|
@@ -352,7 +297,6 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
352
297
|
});
|
|
353
298
|
return;
|
|
354
299
|
}
|
|
355
|
-
|
|
356
300
|
var {
|
|
357
301
|
depth: draggingColumnDepth
|
|
358
302
|
} = this.draggingColumn;
|
|
@@ -374,13 +318,12 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
374
318
|
} = metrics;
|
|
375
319
|
var isDraggingLeft = deltaX < 0;
|
|
376
320
|
var draggingColumn = getColumnInfo(this.draggingColumn.range[0], draggingColumnDepth, metrics, model);
|
|
377
|
-
|
|
378
321
|
if (!draggingColumn) {
|
|
379
322
|
return;
|
|
380
|
-
}
|
|
381
|
-
// This is where the dragging column's floating position accounting for dragged distance
|
|
382
|
-
|
|
323
|
+
}
|
|
383
324
|
|
|
325
|
+
// The returned left/right are the original position, not dragged position
|
|
326
|
+
// This is where the dragging column's floating position accounting for dragged distance
|
|
384
327
|
var floatingDraggingLeft = mouseX - this.draggingOffset;
|
|
385
328
|
var floatingDraggingRight = floatingDraggingLeft + draggingColumn.width;
|
|
386
329
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
@@ -391,20 +334,17 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
391
334
|
});
|
|
392
335
|
var swapColumn = getColumnInfo(GridUtils.getColumnAtX(clamp(isDraggingLeft ? floatingDraggingLeft : floatingDraggingRight, floatingLeftWidth, width), metrics, true), draggingColumnDepth, metrics, model);
|
|
393
336
|
var parentGroup = model.getColumnHeaderParentGroup(draggingColumn.modelIndex, draggingColumn.depth);
|
|
394
|
-
|
|
395
337
|
if (!swapColumn) {
|
|
396
338
|
return;
|
|
397
|
-
}
|
|
398
|
-
|
|
339
|
+
}
|
|
399
340
|
|
|
341
|
+
// Check if we should pin to the edge of the parent
|
|
400
342
|
if (parentGroup !== undefined) {
|
|
401
|
-
var parentVisibleRange = parentGroup.getVisibleRange(movedColumns);
|
|
402
|
-
|
|
343
|
+
var parentVisibleRange = parentGroup.getVisibleRange(movedColumns);
|
|
344
|
+
// Cannot move to this left position, pin to left of parent
|
|
403
345
|
if (swapColumn.visibleIndex < parentVisibleRange[0]) {
|
|
404
346
|
var _visibleColumnXs$get3;
|
|
405
|
-
|
|
406
347
|
var _newMovedColumns = this.moveColumn(draggingColumn, parentVisibleRange[0], movedColumns);
|
|
407
|
-
|
|
408
348
|
this.draggingOffset = mouseX - ((_visibleColumnXs$get3 = visibleColumnXs.get(parentVisibleRange[0])) !== null && _visibleColumnXs$get3 !== void 0 ? _visibleColumnXs$get3 : 0);
|
|
409
349
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
410
350
|
left: mouseX - this.draggingOffset
|
|
@@ -415,14 +355,12 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
415
355
|
movedColumns: _newMovedColumns
|
|
416
356
|
});
|
|
417
357
|
return;
|
|
418
|
-
}
|
|
419
|
-
|
|
358
|
+
}
|
|
420
359
|
|
|
360
|
+
// Pin to the right of parent
|
|
421
361
|
if (swapColumn.visibleIndex > parentVisibleRange[1]) {
|
|
422
362
|
var _getColumnInfo;
|
|
423
|
-
|
|
424
363
|
var _newMovedColumns2 = this.moveColumn(draggingColumn, parentVisibleRange[1] - (draggingColumn.range[1] - draggingColumn.range[0]), movedColumns);
|
|
425
|
-
|
|
426
364
|
var {
|
|
427
365
|
right: parentRight = 0
|
|
428
366
|
} = (_getColumnInfo = getColumnInfo(parentVisibleRange[1], 0, metrics, model)) !== null && _getColumnInfo !== void 0 ? _getColumnInfo : {};
|
|
@@ -437,52 +375,41 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
437
375
|
});
|
|
438
376
|
return;
|
|
439
377
|
}
|
|
440
|
-
}
|
|
441
|
-
|
|
378
|
+
}
|
|
442
379
|
|
|
380
|
+
// Hit an unmovable column, move to the first available position next to it
|
|
443
381
|
if (!model.isColumnMovable(swapColumn.modelIndex)) {
|
|
444
382
|
var toVisibleIndex = swapColumn.visibleIndex;
|
|
445
|
-
|
|
446
383
|
if (isDraggingLeft) {
|
|
447
384
|
toVisibleIndex += 1;
|
|
448
|
-
|
|
449
385
|
while (toVisibleIndex < draggingColumn.visibleIndex && !model.isColumnMovable(GridUtils.getModelIndex(toVisibleIndex, movedColumns))) {
|
|
450
386
|
toVisibleIndex += 1;
|
|
451
387
|
}
|
|
452
388
|
} else {
|
|
453
389
|
toVisibleIndex -= 1;
|
|
454
|
-
|
|
455
390
|
while (toVisibleIndex > draggingColumn.visibleIndex && !model.isColumnMovable(GridUtils.getModelIndex(toVisibleIndex, movedColumns))) {
|
|
456
391
|
toVisibleIndex -= 1;
|
|
457
392
|
}
|
|
458
393
|
}
|
|
459
|
-
|
|
460
394
|
if (toVisibleIndex !== draggingColumn.visibleIndex) {
|
|
461
395
|
if (!isDraggingLeft) {
|
|
462
396
|
// Offset for range if dragging right
|
|
463
397
|
toVisibleIndex -= draggingColumn.range[1] - draggingColumn.range[0];
|
|
464
398
|
}
|
|
465
|
-
|
|
466
399
|
var _newMovedColumns3 = this.moveColumn(draggingColumn, toVisibleIndex, movedColumns);
|
|
467
|
-
|
|
468
400
|
grid.setState({
|
|
469
401
|
movedColumns: _newMovedColumns3,
|
|
470
402
|
draggingColumn: this.draggingColumn
|
|
471
403
|
});
|
|
472
404
|
}
|
|
473
|
-
|
|
474
405
|
var toColumnInfo = getColumnInfo(toVisibleIndex, 0, metrics, model);
|
|
475
|
-
|
|
476
406
|
if (isDraggingLeft) {
|
|
477
407
|
var _toColumnInfo$left;
|
|
478
|
-
|
|
479
408
|
this.draggingOffset = mouseX - ((_toColumnInfo$left = toColumnInfo === null || toColumnInfo === void 0 ? void 0 : toColumnInfo.left) !== null && _toColumnInfo$left !== void 0 ? _toColumnInfo$left : 0);
|
|
480
409
|
} else {
|
|
481
410
|
var _toColumnInfo$right;
|
|
482
|
-
|
|
483
411
|
this.draggingOffset = mouseX - (((_toColumnInfo$right = toColumnInfo === null || toColumnInfo === void 0 ? void 0 : toColumnInfo.right) !== null && _toColumnInfo$right !== void 0 ? _toColumnInfo$right : 0) - draggingColumn.width);
|
|
484
412
|
}
|
|
485
|
-
|
|
486
413
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
487
414
|
left: mouseX - this.draggingOffset
|
|
488
415
|
});
|
|
@@ -491,51 +418,44 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
491
418
|
});
|
|
492
419
|
return;
|
|
493
420
|
}
|
|
494
|
-
|
|
495
421
|
if (floatingDraggingLeft <= floatingLeftWidth) {
|
|
496
422
|
this.setScrollInterval(grid, 'left');
|
|
497
423
|
} else if (floatingDraggingRight > width) {
|
|
498
424
|
this.setScrollInterval(grid, 'right');
|
|
499
425
|
} else {
|
|
500
426
|
this.clearScrollInterval();
|
|
501
|
-
}
|
|
502
|
-
|
|
427
|
+
}
|
|
503
428
|
|
|
429
|
+
// Can't swap a column with itself
|
|
504
430
|
if (swapColumn.visibleIndex === draggingColumn.visibleIndex) {
|
|
505
431
|
return;
|
|
506
|
-
}
|
|
507
|
-
|
|
432
|
+
}
|
|
508
433
|
|
|
434
|
+
// Can't swap a column to the left when dragging right or vice versa
|
|
509
435
|
if (isDraggingLeft && draggingColumn.visibleIndex < swapColumn.visibleIndex || !isDraggingLeft && draggingColumn.visibleIndex > swapColumn.visibleIndex) {
|
|
510
436
|
return;
|
|
511
437
|
}
|
|
512
|
-
|
|
513
438
|
var switchPoint = swapColumn.left + swapColumn.width * 0.5;
|
|
514
|
-
var draggingParentGroup = model.getColumnHeaderParentGroup(draggingColumn.modelIndex, draggingColumn.depth);
|
|
515
|
-
// This group is what we need to drag past
|
|
439
|
+
var draggingParentGroup = model.getColumnHeaderParentGroup(draggingColumn.modelIndex, draggingColumn.depth);
|
|
516
440
|
|
|
441
|
+
// Get the highest level group that is not the common base group
|
|
442
|
+
// This group is what we need to drag past
|
|
517
443
|
var maxDepthSwapGroup;
|
|
518
444
|
var maxSwapDepth = ((_draggingParentGroup$ = draggingParentGroup === null || draggingParentGroup === void 0 ? void 0 : draggingParentGroup.depth) !== null && _draggingParentGroup$ !== void 0 ? _draggingParentGroup$ : columnHeaderMaxDepth) - 1;
|
|
519
|
-
|
|
520
445
|
while (maxSwapDepth >= 0 && maxDepthSwapGroup === undefined) {
|
|
521
446
|
maxDepthSwapGroup = model.getColumnHeaderGroup(swapColumn.modelIndex, maxSwapDepth);
|
|
522
447
|
maxSwapDepth -= 1;
|
|
523
448
|
}
|
|
524
|
-
|
|
525
449
|
var newMovedColumns;
|
|
526
|
-
|
|
527
450
|
if (isDraggingLeft && floatingDraggingLeft < switchPoint && (!maxDepthSwapGroup || swapColumn.visibleIndex === maxDepthSwapGroup.getVisibleRange(movedColumns)[0])) {
|
|
528
451
|
newMovedColumns = this.moveColumn(draggingColumn, swapColumn.range[0], movedColumns);
|
|
529
452
|
}
|
|
530
|
-
|
|
531
453
|
if (!isDraggingLeft && floatingDraggingRight > switchPoint && (!maxDepthSwapGroup || swapColumn.visibleIndex === maxDepthSwapGroup.getVisibleRange(movedColumns)[1])) {
|
|
532
454
|
newMovedColumns = this.moveColumn(draggingColumn, swapColumn.range[1] - (draggingColumn.range[1] - draggingColumn.range[0]), movedColumns);
|
|
533
455
|
}
|
|
534
|
-
|
|
535
456
|
if (!newMovedColumns) {
|
|
536
457
|
return;
|
|
537
458
|
}
|
|
538
|
-
|
|
539
459
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
540
460
|
left: floatingDraggingLeft
|
|
541
461
|
});
|
|
@@ -544,6 +464,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
544
464
|
draggingColumn: this.draggingColumn
|
|
545
465
|
});
|
|
546
466
|
}
|
|
467
|
+
|
|
547
468
|
/**
|
|
548
469
|
* Applies the column move and updates draggingColumn in the mouse handler
|
|
549
470
|
* Does not check if the move is valid
|
|
@@ -552,26 +473,20 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
552
473
|
* @param movedColumns The array of column moves
|
|
553
474
|
* @returns A new array of column moves
|
|
554
475
|
*/
|
|
555
|
-
|
|
556
|
-
|
|
557
476
|
moveColumn(draggingColumn, to, movedColumns) {
|
|
558
477
|
var newMovedColumns = draggingColumn.isColumnGroup ? GridUtils.moveRange(draggingColumn.range, to, movedColumns) : GridUtils.moveItem(draggingColumn.visibleIndex, to, movedColumns);
|
|
559
478
|
var moveDistance = to - draggingColumn.range[0];
|
|
560
479
|
var newDraggingRange = [draggingColumn.range[0] + moveDistance, draggingColumn.range[1] + moveDistance];
|
|
561
|
-
|
|
562
480
|
if (this.draggingColumn) {
|
|
563
481
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
564
482
|
range: newDraggingRange
|
|
565
483
|
});
|
|
566
484
|
}
|
|
567
|
-
|
|
568
485
|
return newMovedColumns;
|
|
569
486
|
}
|
|
570
|
-
|
|
571
487
|
onUp(gridPoint, grid) {
|
|
572
488
|
this.cursor = null;
|
|
573
489
|
this.clearScrollInterval();
|
|
574
|
-
|
|
575
490
|
if (this.draggingOffset != null) {
|
|
576
491
|
this.draggingOffset = undefined;
|
|
577
492
|
grid.setState({
|
|
@@ -580,11 +495,8 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
580
495
|
});
|
|
581
496
|
return true;
|
|
582
497
|
}
|
|
583
|
-
|
|
584
498
|
return false;
|
|
585
499
|
}
|
|
586
|
-
|
|
587
500
|
}
|
|
588
|
-
|
|
589
501
|
export default GridColumnMoveMouseHandler;
|
|
590
502
|
//# sourceMappingURL=GridColumnMoveMouseHandler.js.map
|