k-vtable 1.0.5 → 1.0.7

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 (69) hide show
  1. package/cjs/body-helper/style.js +1 -2
  2. package/cjs/core/BaseTable.js +3 -2
  3. package/cjs/core/BaseTable.js.map +1 -1
  4. package/cjs/data/DataSource.js +2 -3
  5. package/cjs/data/DataSource.js.map +1 -1
  6. package/cjs/dataset/dataset-pivot-table.js +1 -2
  7. package/cjs/dataset/flatDataToObject.js +2 -1
  8. package/cjs/index.d.ts +1 -1
  9. package/cjs/index.js +1 -1
  10. package/cjs/index.js.map +1 -1
  11. package/cjs/layout/index.js +1 -2
  12. package/cjs/layout/layout-helper.js +1 -1
  13. package/cjs/layout/pivot-header-layout.js +1 -1
  14. package/cjs/layout/pivot-layout.js +0 -2
  15. package/cjs/layout/row-height-map.js +1 -1
  16. package/cjs/layout/simple-header-layout.js +1 -1
  17. package/cjs/layout/tree-helper.js +1 -1
  18. package/cjs/plugins/index.js +1 -1
  19. package/cjs/plugins/interface.js +2 -1
  20. package/cjs/plugins/invert-highlight.js +1 -1
  21. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  22. package/cjs/plugins/plugin-manager.js +1 -1
  23. package/cjs/scenegraph/debug-tool/debug-tool.js +2 -1
  24. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  25. package/cjs/scenegraph/layout/frozen-react.js +13 -8
  26. package/cjs/scenegraph/layout/frozen-react.js.map +1 -1
  27. package/cjs/scenegraph/scenegraph.js +1 -1
  28. package/cjs/state/select/update-position.js +2 -5
  29. package/cjs/state/select/update-position.js.map +1 -1
  30. package/cjs/state/state.js +1 -1
  31. package/cjs/ts-types/base-table.d.ts +2 -0
  32. package/cjs/ts-types/base-table.js.map +1 -1
  33. package/cjs/vrender.js.map +1 -1
  34. package/dist/vtable.js +14 -7
  35. package/dist/vtable.min.js +2 -2
  36. package/es/body-helper/style.js +1 -2
  37. package/es/core/BaseTable.js +3 -2
  38. package/es/core/BaseTable.js.map +1 -1
  39. package/es/data/DataSource.js +2 -3
  40. package/es/data/DataSource.js.map +1 -1
  41. package/es/dataset/dataset-pivot-table.js +1 -2
  42. package/es/dataset/flatDataToObject.js +2 -1
  43. package/es/index.d.ts +1 -1
  44. package/es/index.js +1 -1
  45. package/es/index.js.map +1 -1
  46. package/es/layout/index.js +1 -2
  47. package/es/layout/layout-helper.js +1 -1
  48. package/es/layout/pivot-header-layout.js +1 -1
  49. package/es/layout/pivot-layout.js +0 -2
  50. package/es/layout/row-height-map.js +1 -1
  51. package/es/layout/simple-header-layout.js +1 -1
  52. package/es/layout/tree-helper.js +1 -1
  53. package/es/plugins/index.js +1 -1
  54. package/es/plugins/interface.js +2 -1
  55. package/es/plugins/invert-highlight.js +1 -1
  56. package/es/plugins/list-tree-stick-cell.js +1 -1
  57. package/es/plugins/plugin-manager.js +1 -1
  58. package/es/scenegraph/debug-tool/debug-tool.js +2 -1
  59. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  60. package/es/scenegraph/layout/frozen-react.js +13 -8
  61. package/es/scenegraph/layout/frozen-react.js.map +1 -1
  62. package/es/scenegraph/scenegraph.js +1 -1
  63. package/es/state/select/update-position.js +2 -5
  64. package/es/state/select/update-position.js.map +1 -1
  65. package/es/state/state.js +1 -1
  66. package/es/ts-types/base-table.d.ts +2 -0
  67. package/es/ts-types/base-table.js.map +1 -1
  68. package/es/vrender.js.map +1 -1
  69. package/package.json +1 -1
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA4D;AA6G1D,4FA7GO,qBAAW,OA6GP;AA5Gb,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AAgElC,sBAAK;AA/DP,6CAA+B;AAgE7B,oBAAI;AA/DN,6CAA+B;AA2F7B,oBAAI;AA1FN,+CAAiC;AACjC,qDAAuC;AA8FrC,4BAAQ;AA7FV,iDAAmC;AAuFjC,wBAAM;AAtFR,yEAA2D;AAgGzD,wCAAc;AA/FhB,mDAAqC;AAsGnC,0BAAO;AAhFT,mDAA4D;AAqC1D,0FArCuB,4BAAS,OAqCvB;AApCX,yDAAqD;AAqCnD,gGArCO,kCAAe,OAqCP;AAnCjB,qDAA+D;AAsC7D,2FAtCwB,8BAAU,OAsCxB;AArCZ,2DAAuD;AAsCrD,iGAtCO,oCAAgB,OAsCP;AArClB,6CAA0C;AAwCxC,2FAxCO,uBAAU,OAwCP;AAtCZ,8DAAgD;AAmE9C,oCAAY;AAjEd,wEAAoE;AAkElE,2FAlEO,wBAAU,OAkEP;AAjEZ,gGAAqF;AAkEnF,4FAlEO,iCAAW,OAkEP;AAjEb,kEAA4G;AAoE1G,mGApEO,iCAAkB,OAoEP;AADlB,yGAnE2B,uCAAwB,OAmE3B;AAhBxB,4FAnDqD,0BAAW,OAmDrD;AA7Cb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AAKA,QAAA,OAAO,GAAG,OAAO,CAAC;AA2D/B,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAvBC,4BAAQ;AAyBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA5BC,kCAAW;AA6Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil, registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as plugins from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.0.5\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n BaseTableAPI,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n textMeasure,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n graphicUtil,\n setCustomAlphabetCharSet,\n restoreMeasureText,\n plugins\n // VRender // should use import {xxx} from '@visactor/vtable/es/vrender'\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA4D;AA6G1D,4FA7GO,qBAAW,OA6GP;AA5Gb,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AAgElC,sBAAK;AA/DP,6CAA+B;AAgE7B,oBAAI;AA/DN,6CAA+B;AA2F7B,oBAAI;AA1FN,+CAAiC;AACjC,qDAAuC;AA8FrC,4BAAQ;AA7FV,iDAAmC;AAuFjC,wBAAM;AAtFR,yEAA2D;AAgGzD,wCAAc;AA/FhB,mDAAqC;AAsGnC,0BAAO;AAhFT,mDAA4D;AAqC1D,0FArCuB,4BAAS,OAqCvB;AApCX,yDAAqD;AAqCnD,gGArCO,kCAAe,OAqCP;AAnCjB,qDAA+D;AAsC7D,2FAtCwB,8BAAU,OAsCxB;AArCZ,2DAAuD;AAsCrD,iGAtCO,oCAAgB,OAsCP;AArClB,6CAA0C;AAwCxC,2FAxCO,uBAAU,OAwCP;AAtCZ,8DAAgD;AAmE9C,oCAAY;AAjEd,wEAAoE;AAkElE,2FAlEO,wBAAU,OAkEP;AAjEZ,gGAAqF;AAkEnF,4FAlEO,iCAAW,OAkEP;AAjEb,kEAA4G;AAoE1G,mGApEO,iCAAkB,OAoEP;AADlB,yGAnE2B,uCAAwB,OAmE3B;AAhBxB,4FAnDqD,0BAAW,OAmDrD;AA7Cb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AAKA,QAAA,OAAO,GAAG,OAAO,CAAC;AA2D/B,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAvBC,4BAAQ;AAyBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA5BC,kCAAW;AA6Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil, registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as plugins from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.0.7\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n BaseTableAPI,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n textMeasure,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n graphicUtil,\n setCustomAlphabetCharSet,\n restoreMeasureText,\n plugins\n // VRender // should use import {xxx} from '@visactor/vtable/es/vrender'\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
@@ -11,5 +11,4 @@ Object.defineProperty(exports, "SimpleHeaderLayoutMap", {
11
11
  get: function() {
12
12
  return simple_header_layout_1.SimpleHeaderLayoutMap;
13
13
  }
14
- });
15
- //# sourceMappingURL=index.js.map
14
+ });
@@ -151,4 +151,4 @@ exports.checkHasAggregationOnBottom = checkHasAggregationOnBottom, exports.check
151
151
  exports.hasAutoImageColumn = hasAutoImageColumn, exports.parseColKeyRowKeyForPivotTable = parseColKeyRowKeyForPivotTable,
152
152
  exports.supplementIndicatorNodesForCustomTree = supplementIndicatorNodesForCustomTree,
153
153
  exports.deleteHideIndicatorNode = deleteHideIndicatorNode;
154
- //# sourceMappingURL=layout-helper.js.map
154
+ //# sourceMappingURL=layout-helper.js.map
@@ -1929,5 +1929,5 @@ function bandSpace(count, paddingInner, paddingOuter) {
1929
1929
  count ? space > 0 ? space : 1 : 0;
1930
1930
  }
1931
1931
 
1932
- exports.PivotHeaderLayoutMap = PivotHeaderLayoutMap;
1933
1932
  //# sourceMappingURL=pivot-header-layout.js.map
1933
+ exports.PivotHeaderLayoutMap = PivotHeaderLayoutMap;
@@ -1,3 +1 @@
1
-
2
-
3
1
  //# sourceMappingURL=pivot-layout.js.map
@@ -179,5 +179,5 @@ function indexFirst(arr, elm) {
179
179
  return high < 0 ? 0 : high;
180
180
  }
181
181
 
182
- exports.NumberRangeMap = NumberRangeMap;
183
182
  //# sourceMappingURL=row-height-map.js.map
183
+ exports.NumberRangeMap = NumberRangeMap;
@@ -798,4 +798,4 @@ class SimpleHeaderLayoutMap {
798
798
  }
799
799
 
800
800
  exports.SimpleHeaderLayoutMap = SimpleHeaderLayoutMap;
801
- //# sourceMappingURL=simple-header-layout.js.map
801
+ //# sourceMappingURL=simple-header-layout.js.map
@@ -411,4 +411,4 @@ function deleteTreeHideNode(tree_children, dimensionPath, indicators, hasHideNod
411
411
  exports.DimensionTree = DimensionTree, exports.generateLayoutTree = generateLayoutTree,
412
412
  exports.countLayoutTree = countLayoutTree, exports.dealHeader = dealHeader, exports.dealHeaderForGridTreeMode = dealHeaderForGridTreeMode,
413
413
  exports.dealHeaderForTreeMode = dealHeaderForTreeMode, exports.deleteTreeHideNode = deleteTreeHideNode;
414
- //# sourceMappingURL=tree-helper.js.map
414
+ //# sourceMappingURL=tree-helper.js.map
@@ -21,4 +21,4 @@ Object.defineProperty(exports, "CustomCellStylePlugin", {
21
21
  return custom_cell_style_1.CustomCellStylePlugin;
22
22
  }
23
23
  });
24
- //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.js.map
@@ -2,4 +2,5 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- });
5
+ });
6
+ //# sourceMappingURL=interface.js.map
@@ -20,4 +20,4 @@ function onBeforeAttributeUpdateForInvertHighlight(val, attribute) {
20
20
  }
21
21
 
22
22
  exports.onBeforeAttributeUpdateForInvertHighlight = onBeforeAttributeUpdateForInvertHighlight;
23
- //# sourceMappingURL=invert-highlight.js.map
23
+ //# sourceMappingURL=invert-highlight.js.map
@@ -177,4 +177,4 @@ const registerListTreeStickCellPlugin = () => {
177
177
  };
178
178
 
179
179
  exports.registerListTreeStickCellPlugin = registerListTreeStickCellPlugin;
180
- //# sourceMappingURL=list-tree-stick-cell.js.map
180
+ //# sourceMappingURL=list-tree-stick-cell.js.map
@@ -52,4 +52,4 @@ class PluginManager {
52
52
  }
53
53
 
54
54
  exports.PluginManager = PluginManager;
55
- //# sourceMappingURL=plugin-manager.js.map
55
+ //# sourceMappingURL=plugin-manager.js.map
@@ -23,7 +23,8 @@ class DebugTool {
23
23
  switch (this._infoContainer = document.createElement("div"), this._infoContainer.style.position = "fixed",
24
24
  this._infoContainer.style.width = `${width}px`, this._infoContainer.style.height = `${height}px`,
25
25
  this._infoContainer.style.backgroundColor = "rgba(210, 210, 210, 0.3)", this._infoContainer.style.overflow = "auto",
26
- this._infoContainer.style.display = "none", position) {
26
+ this._infoContainer.style.display = "none", this._infoContainer.style.fontSize = "14px",
27
+ position) {
27
28
  case "tl":
28
29
  this._infoContainer.style.top = "0px", this._infoContainer.style.left = "0px";
29
30
  break;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/debug-tool/debug-tool.ts"],"names":[],"mappings":"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","file":"debug-tool.js","sourcesContent":["import type { FederatedPointerEvent, IStage, IRect, IGraphic } from './../../vrender';\nimport { createRect, getTheme } from './../../vrender';\nimport JSONFormatter from 'json-formatter-js';\n\nexport interface DebugToolOptions {\n container?: HTMLElement;\n infoPosition?: 'tl' | 'tr' | 'bl' | 'br';\n infoWidth?: number;\n infoHeight?: number;\n mode?: 'hover' | 'click';\n customGrapicKeys?: string[];\n}\n\nexport class DebugTool {\n _stage: IStage;\n _infoContainer: HTMLElement;\n _highlightRect: HTMLElement;\n _target: IGraphic;\n // _rect: IRect;\n _mode: 'hover' | 'click' = 'hover';\n _customGrapicKeys?: string[];\n _modeTip: HTMLElement;\n _callback: {\n pointermove: (e: FederatedPointerEvent) => void;\n pointerup: (e: FederatedPointerEvent) => void;\n pointerleave: (e: FederatedPointerEvent) => void;\n keydown: (e: KeyboardEvent) => void;\n };\n\n constructor(stage: IStage, options?: DebugToolOptions) {\n this._stage = stage;\n this._callback = {} as any;\n\n if (options?.customGrapicKeys) {\n this._customGrapicKeys = options.customGrapicKeys;\n }\n\n // 创建信息框\n if (options?.container) {\n this._infoContainer = options.container;\n } else {\n this.createInfoContainer(options);\n }\n\n // 创建高亮矩形\n this.createHighlightRect();\n\n // 绑定stage事件\n this.bindStageEvent();\n\n // 绑定键盘事件\n this.bindKeyEvent();\n }\n\n createInfoContainer(options?: DebugToolOptions) {\n const position = options?.infoPosition || 'tr';\n const width = options?.infoWidth || 300;\n const height = options?.infoPosition || 400;\n this._infoContainer = document.createElement('div');\n this._infoContainer.style.position = 'fixed';\n this._infoContainer.style.width = `${width}px`;\n this._infoContainer.style.height = `${height}px`;\n this._infoContainer.style.backgroundColor = 'rgba(210, 210, 210, 0.3)';\n this._infoContainer.style.overflow = 'auto';\n this._infoContainer.style.display = 'none';\n switch (position) {\n case 'tl':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.left = '0px';\n break;\n case 'tr':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.right = `0px`;\n break;\n case 'bl':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.left = '0px';\n break;\n case 'br':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.right = `0px`;\n break;\n }\n\n // Tip\n // debug 模式:hover(shift + s改变模式;shift + d控制台输出target graphic)\n const tip = document.createElement('div');\n const tipSpan1 = document.createElement('span');\n tipSpan1.innerText = 'debug 模式:';\n tip.appendChild(tipSpan1);\n this._modeTip = document.createElement('span');\n this._modeTip.innerText = this._mode;\n tip.appendChild(this._modeTip);\n const tipSpan2 = document.createElement('span');\n tipSpan2.innerText = '(shift + s改变模式;shift + d控制台输出target graphic)';\n tip.appendChild(tipSpan2);\n this._infoContainer.appendChild(tip);\n\n // document.body.append(this._infoContainer);\n this._stage.window.getContainer().append(this._infoContainer);\n }\n\n createHighlightRect() {\n const container = this._stage.window.getContainer();\n this._highlightRect = document.createElement('div');\n this._highlightRect.style.display = 'absolute';\n this._highlightRect.style.border = '1px solid red';\n this._highlightRect.style.pointerEvents = 'none';\n this._highlightRect.style.position = 'absolute';\n container.appendChild(this._highlightRect);\n }\n\n bindStageEvent() {\n this._callback.pointermove = (e: FederatedPointerEvent) => {\n if (this._mode !== 'hover') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointermove', this._callback.pointermove);\n\n this._callback.pointerup = (e: FederatedPointerEvent) => {\n if (this._mode !== 'click') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerup', this._callback.pointerup);\n\n this._callback.pointerleave = (e: FederatedPointerEvent) => {\n if (this._mode === 'hover') {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerleave', this._callback.pointerleave);\n }\n\n addHighlightBounds(bounds: any) {\n // 使用VRender绘制高亮框会导致触发多余渲染,因此使用dom\n // this._rect.setAttributes({\n // x: bounds.x1,\n // y: bounds.y1,\n // width: bounds.width(),\n // height: bounds.height(),\n // visible: true,\n // });\n\n // // 保证rect在最上层\n // this._stage.defaultLayer.appendChild(this._rect);\n // this._stage.renderNextFrame();\n\n const table = (this._stage as any).table;\n const stage = table.scenegraph.stage;\n const stageMatrix = stage.window.getViewBoxTransform();\n\n this._highlightRect.style.left = `${bounds.x1 + (stageMatrix.e ?? 0) + (table.options.viewBox?.x1 ?? 0)}px`;\n this._highlightRect.style.top = `${bounds.y1 + (stageMatrix.f ?? 0) + (table.options.viewBox?.y1 ?? 0)}px`;\n this._highlightRect.style.width = `${bounds.width()}px`;\n this._highlightRect.style.height = `${bounds.height()}px`;\n\n // console.log(this._highlightRect.style.left);\n }\n\n // removeHighlightBounds() {\n // this._rect.setAttribute('visible', false);\n // this._stage.renderNextFrame();\n // }\n\n updateInfo() {\n if (!this._target) {\n return;\n }\n // this._infoContainer.innerHTML = '';\n if (this._infoContainer.children.length > 1) {\n this._infoContainer.removeChild(this._infoContainer.children[1]);\n }\n this._infoContainer.style.display = 'block';\n\n const info = {\n customKeys: {},\n type: this._target.type,\n // role: (this._target as any).role,\n globalX: this._target.globalTransMatrix.e,\n globalY: this._target.globalTransMatrix.f,\n attribute: this._target.attribute,\n theme: getTheme(this._target)[this._target.type],\n target: this._target\n };\n\n if (this._customGrapicKeys) {\n this._customGrapicKeys.forEach(key => {\n info.customKeys[key] = this._target[key];\n });\n } else {\n delete info.customKeys;\n }\n\n const formatter = new JSONFormatter(info, 2);\n this._infoContainer.appendChild(formatter.render());\n }\n\n clearInfo() {\n this._infoContainer.style.display = 'none';\n }\n\n updateMode() {\n this._modeTip.innerText = this._mode;\n }\n\n bindKeyEvent() {\n this._callback.keydown = (e: KeyboardEvent) => {\n if (e.key === 'D') {\n console.log(this._target);\n } else if (e.key === 'S') {\n switch (this._mode) {\n case 'click':\n this._mode = 'hover';\n break;\n case 'hover':\n this._mode = 'click';\n break;\n }\n this.updateMode();\n }\n };\n window.addEventListener('keydown', this._callback.keydown);\n }\n\n release() {\n // 移除信息框\n document.body.removeChild(this._infoContainer);\n\n // 移除高亮框\n this._highlightRect.parentElement.removeChild(this._highlightRect);\n\n // 解绑stage事件\n // this._stage.defaultLayer.removeChild(this._rect);\n this._stage.removeEventListener('pointermove', this._callback.pointermove);\n this._stage.removeEventListener('pointerup', this._callback.pointerup);\n this._stage.removeEventListener('pointerleave', this._callback.pointerleave);\n\n // 解绑键盘事件\n window.removeEventListener('keydown', this._callback.keydown);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/debug-tool/debug-tool.ts"],"names":[],"mappings":"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","file":"debug-tool.js","sourcesContent":["import type { FederatedPointerEvent, IStage, IRect, IGraphic } from './../../vrender';\nimport { createRect, getTheme } from './../../vrender';\nimport JSONFormatter from 'json-formatter-js';\n\nexport interface DebugToolOptions {\n container?: HTMLElement;\n infoPosition?: 'tl' | 'tr' | 'bl' | 'br';\n infoWidth?: number;\n infoHeight?: number;\n mode?: 'hover' | 'click';\n customGrapicKeys?: string[];\n}\n\nexport class DebugTool {\n _stage: IStage;\n _infoContainer: HTMLElement;\n _highlightRect: HTMLElement;\n _target: IGraphic;\n // _rect: IRect;\n _mode: 'hover' | 'click' = 'hover';\n _customGrapicKeys?: string[];\n _modeTip: HTMLElement;\n _callback: {\n pointermove: (e: FederatedPointerEvent) => void;\n pointerup: (e: FederatedPointerEvent) => void;\n pointerleave: (e: FederatedPointerEvent) => void;\n keydown: (e: KeyboardEvent) => void;\n };\n\n constructor(stage: IStage, options?: DebugToolOptions) {\n this._stage = stage;\n this._callback = {} as any;\n\n if (options?.customGrapicKeys) {\n this._customGrapicKeys = options.customGrapicKeys;\n }\n\n // 创建信息框\n if (options?.container) {\n this._infoContainer = options.container;\n } else {\n this.createInfoContainer(options);\n }\n\n // 创建高亮矩形\n this.createHighlightRect();\n\n // 绑定stage事件\n this.bindStageEvent();\n\n // 绑定键盘事件\n this.bindKeyEvent();\n }\n\n createInfoContainer(options?: DebugToolOptions) {\n const position = options?.infoPosition || 'tr';\n const width = options?.infoWidth || 300;\n const height = options?.infoPosition || 400;\n this._infoContainer = document.createElement('div');\n this._infoContainer.style.position = 'fixed';\n this._infoContainer.style.width = `${width}px`;\n this._infoContainer.style.height = `${height}px`;\n this._infoContainer.style.backgroundColor = 'rgba(210, 210, 210, 0.3)';\n this._infoContainer.style.overflow = 'auto';\n this._infoContainer.style.display = 'none';\n this._infoContainer.style.fontSize = '14px';\n switch (position) {\n case 'tl':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.left = '0px';\n break;\n case 'tr':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.right = `0px`;\n break;\n case 'bl':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.left = '0px';\n break;\n case 'br':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.right = `0px`;\n break;\n }\n\n // Tip\n // debug 模式:hover(shift + s改变模式;shift + d控制台输出target graphic)\n const tip = document.createElement('div');\n const tipSpan1 = document.createElement('span');\n tipSpan1.innerText = 'debug 模式:';\n tip.appendChild(tipSpan1);\n this._modeTip = document.createElement('span');\n this._modeTip.innerText = this._mode;\n tip.appendChild(this._modeTip);\n const tipSpan2 = document.createElement('span');\n tipSpan2.innerText = '(shift + s改变模式;shift + d控制台输出target graphic)';\n tip.appendChild(tipSpan2);\n this._infoContainer.appendChild(tip);\n\n // document.body.append(this._infoContainer);\n this._stage.window.getContainer().append(this._infoContainer);\n }\n\n createHighlightRect() {\n const container = this._stage.window.getContainer();\n this._highlightRect = document.createElement('div');\n this._highlightRect.style.display = 'absolute';\n this._highlightRect.style.border = '1px solid red';\n this._highlightRect.style.pointerEvents = 'none';\n this._highlightRect.style.position = 'absolute';\n container.appendChild(this._highlightRect);\n }\n\n bindStageEvent() {\n this._callback.pointermove = (e: FederatedPointerEvent) => {\n if (this._mode !== 'hover') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointermove', this._callback.pointermove);\n\n this._callback.pointerup = (e: FederatedPointerEvent) => {\n if (this._mode !== 'click') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerup', this._callback.pointerup);\n\n this._callback.pointerleave = (e: FederatedPointerEvent) => {\n if (this._mode === 'hover') {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerleave', this._callback.pointerleave);\n }\n\n addHighlightBounds(bounds: any) {\n // 使用VRender绘制高亮框会导致触发多余渲染,因此使用dom\n // this._rect.setAttributes({\n // x: bounds.x1,\n // y: bounds.y1,\n // width: bounds.width(),\n // height: bounds.height(),\n // visible: true,\n // });\n\n // // 保证rect在最上层\n // this._stage.defaultLayer.appendChild(this._rect);\n // this._stage.renderNextFrame();\n\n const table = (this._stage as any).table;\n const stage = table.scenegraph.stage;\n const stageMatrix = stage.window.getViewBoxTransform();\n\n this._highlightRect.style.left = `${bounds.x1 + (stageMatrix.e ?? 0) + (table.options.viewBox?.x1 ?? 0)}px`;\n this._highlightRect.style.top = `${bounds.y1 + (stageMatrix.f ?? 0) + (table.options.viewBox?.y1 ?? 0)}px`;\n this._highlightRect.style.width = `${bounds.width()}px`;\n this._highlightRect.style.height = `${bounds.height()}px`;\n\n // console.log(this._highlightRect.style.left);\n }\n\n // removeHighlightBounds() {\n // this._rect.setAttribute('visible', false);\n // this._stage.renderNextFrame();\n // }\n\n updateInfo() {\n if (!this._target) {\n return;\n }\n // this._infoContainer.innerHTML = '';\n if (this._infoContainer.children.length > 1) {\n this._infoContainer.removeChild(this._infoContainer.children[1]);\n }\n this._infoContainer.style.display = 'block';\n\n const info = {\n customKeys: {},\n type: this._target.type,\n // role: (this._target as any).role,\n globalX: this._target.globalTransMatrix.e,\n globalY: this._target.globalTransMatrix.f,\n attribute: this._target.attribute,\n theme: getTheme(this._target)[this._target.type],\n target: this._target\n };\n\n if (this._customGrapicKeys) {\n this._customGrapicKeys.forEach(key => {\n info.customKeys[key] = this._target[key];\n });\n } else {\n delete info.customKeys;\n }\n\n const formatter = new JSONFormatter(info, 2);\n this._infoContainer.appendChild(formatter.render());\n }\n\n clearInfo() {\n this._infoContainer.style.display = 'none';\n }\n\n updateMode() {\n this._modeTip.innerText = this._mode;\n }\n\n bindKeyEvent() {\n this._callback.keydown = (e: KeyboardEvent) => {\n if (e.key === 'D') {\n console.log(this._target);\n } else if (e.key === 'S') {\n switch (this._mode) {\n case 'click':\n this._mode = 'hover';\n break;\n case 'hover':\n this._mode = 'click';\n break;\n }\n this.updateMode();\n }\n };\n window.addEventListener('keydown', this._callback.keydown);\n }\n\n release() {\n // 移除信息框\n document.body.removeChild(this._infoContainer);\n\n // 移除高亮框\n this._highlightRect.parentElement.removeChild(this._highlightRect);\n\n // 解绑stage事件\n // this._stage.defaultLayer.removeChild(this._rect);\n this._stage.removeEventListener('pointermove', this._callback.pointermove);\n this._stage.removeEventListener('pointerup', this._callback.pointerup);\n this._stage.removeEventListener('pointerleave', this._callback.pointerleave);\n\n // 解绑键盘事件\n window.removeEventListener('keydown', this._callback.keydown);\n }\n}\n"]}
@@ -8,12 +8,14 @@ const util_1 = require("../../event/util");
8
8
 
9
9
  function createReactContainer(table) {
10
10
  const {internalProps: internalProps} = table;
11
- internalProps.bodyDomContainer = document.createElement("div"), internalProps.bodyDomContainer.id = "vtable-body-dom-container",
12
- internalProps.bodyDomContainer.classList.add("table-component-container"), internalProps.element.appendChild(internalProps.bodyDomContainer),
13
- internalProps.headerDomContainer = document.createElement("div"), internalProps.headerDomContainer.id = "vtable-header-dom-container",
14
- internalProps.headerDomContainer.classList.add("table-component-container"), internalProps.element.appendChild(internalProps.headerDomContainer),
15
- internalProps.frozenBodyDomContainer = document.createElement("div"), internalProps.frozenBodyDomContainer.id = "vtable-frozen-body-dom-container",
16
- internalProps.frozenBodyDomContainer.classList.add("table-component-container"),
11
+ internalProps.tableBodyDomContainer = document.createElement("div"), internalProps.tableBodyDomContainer.id = "vtable-table-body-dom-container",
12
+ internalProps.tableBodyDomContainer.classList.add("table-component-container"),
13
+ internalProps.element.appendChild(internalProps.tableBodyDomContainer), internalProps.bodyDomContainer = document.createElement("div"),
14
+ internalProps.bodyDomContainer.id = "vtable-body-dom-container", internalProps.bodyDomContainer.classList.add("table-component-container"),
15
+ internalProps.element.appendChild(internalProps.bodyDomContainer), internalProps.headerDomContainer = document.createElement("div"),
16
+ internalProps.headerDomContainer.id = "vtable-header-dom-container", internalProps.headerDomContainer.classList.add("table-component-container"),
17
+ internalProps.element.appendChild(internalProps.headerDomContainer), internalProps.frozenBodyDomContainer = document.createElement("div"),
18
+ internalProps.frozenBodyDomContainer.id = "vtable-frozen-body-dom-container", internalProps.frozenBodyDomContainer.classList.add("table-component-container"),
17
19
  internalProps.element.appendChild(internalProps.frozenBodyDomContainer), internalProps.frozenHeaderDomContainer = document.createElement("div"),
18
20
  internalProps.frozenHeaderDomContainer.id = "vtable-frozen-header-dom-container",
19
21
  internalProps.frozenHeaderDomContainer.classList.add("table-component-container"),
@@ -35,9 +37,12 @@ function createReactContainer(table) {
35
37
  }
36
38
 
37
39
  function updateReactContainer(table) {
38
- const {headerDomContainer: headerDomContainer, bodyDomContainer: bodyDomContainer, frozenBodyDomContainer: frozenBodyDomContainer, frozenHeaderDomContainer: frozenHeaderDomContainer, rightFrozenBodyDomContainer: rightFrozenBodyDomContainer, rightFrozenHeaderDomContainer: rightFrozenHeaderDomContainer, bottomDomContainer: bottomDomContainer, frozenBottomDomContainer: frozenBottomDomContainer, rightFrozenBottomDomContainer: rightFrozenBottomDomContainer} = table.internalProps;
39
- if (!(headerDomContainer || bodyDomContainer || frozenBodyDomContainer || frozenHeaderDomContainer || rightFrozenBodyDomContainer || rightFrozenHeaderDomContainer || bottomDomContainer || frozenBottomDomContainer || rightFrozenBottomDomContainer)) return;
40
+ const {headerDomContainer: headerDomContainer, tableBodyDomContainer: tableBodyDomContainer, bodyDomContainer: bodyDomContainer, frozenBodyDomContainer: frozenBodyDomContainer, frozenHeaderDomContainer: frozenHeaderDomContainer, rightFrozenBodyDomContainer: rightFrozenBodyDomContainer, rightFrozenHeaderDomContainer: rightFrozenHeaderDomContainer, bottomDomContainer: bottomDomContainer, frozenBottomDomContainer: frozenBottomDomContainer, rightFrozenBottomDomContainer: rightFrozenBottomDomContainer} = table.internalProps;
41
+ if (!(headerDomContainer || bodyDomContainer || frozenBodyDomContainer || frozenHeaderDomContainer || rightFrozenBodyDomContainer || rightFrozenHeaderDomContainer || bottomDomContainer || frozenBottomDomContainer || rightFrozenBottomDomContainer || tableBodyDomContainer)) return;
40
42
  const allColsWidth = table.getAllColsWidth(), tableNoFrameWidth = Math.min(allColsWidth, table.tableNoFrameWidth), frozenColsWidth = table.getFrozenColsWidth(), rightFrozenColsWidth = table.getRightFrozenColsWidth(), totalFrozenColsWidth = frozenColsWidth + rightFrozenColsWidth, bodyWidth = Math.min(allColsWidth - totalFrozenColsWidth, tableNoFrameWidth - totalFrozenColsWidth), allRowsHeight = table.getAllRowsHeight(), tableNoFrameHeight = Math.min(allRowsHeight, table.tableNoFrameHeight), frozenRowsHeight = table.getFrozenRowsHeight(), bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight(), totalFrozenRowsHeight = frozenRowsHeight + bottomFrozenRowsHeight, bodyHeight = Math.min(allRowsHeight - totalFrozenRowsHeight, tableNoFrameHeight - totalFrozenRowsHeight);
43
+ tableBodyDomContainer.style.width = `${tableNoFrameWidth}px`;
44
+ const tableHeight = Math.min(allRowsHeight - frozenRowsHeight, tableNoFrameHeight - frozenRowsHeight);
45
+ tableBodyDomContainer.style.height = `${tableHeight}px`, tableBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`,
41
46
  table.frozenColCount > 0 ? (headerDomContainer.style.left = `${table.tableX + frozenColsWidth}px`,
42
47
  bodyDomContainer.style.left = `${table.tableX + frozenColsWidth}px`, bottomDomContainer.style.left = `${table.tableX + frozenColsWidth}px`) : 0 === table.frozenColCount && (headerDomContainer.style.left = `${table.tableX}px`,
43
48
  bodyDomContainer.style.left = `${table.tableX}px`, bottomDomContainer.style.left = `${table.tableX}px`),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/layout/frozen-react.ts"],"names":[],"mappings":"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","file":"frozen-react.js","sourcesContent":["import type { IGraphic, ReactAttributePlugin } from './../../vrender';\nimport { getTargetCell } from '../../event/util';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Scenegraph } from '../scenegraph';\n\nexport function createReactContainer(table: BaseTableAPI) {\n const { internalProps } = table;\n internalProps.bodyDomContainer = document.createElement('div');\n internalProps.bodyDomContainer.id = 'vtable-body-dom-container';\n internalProps.bodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bodyDomContainer);\n\n internalProps.headerDomContainer = document.createElement('div');\n internalProps.headerDomContainer.id = 'vtable-header-dom-container';\n internalProps.headerDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.headerDomContainer);\n\n internalProps.frozenBodyDomContainer = document.createElement('div');\n internalProps.frozenBodyDomContainer.id = 'vtable-frozen-body-dom-container';\n internalProps.frozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBodyDomContainer);\n\n internalProps.frozenHeaderDomContainer = document.createElement('div');\n internalProps.frozenHeaderDomContainer.id = 'vtable-frozen-header-dom-container';\n internalProps.frozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenHeaderDomContainer);\n\n internalProps.rightFrozenBodyDomContainer = document.createElement('div');\n internalProps.rightFrozenBodyDomContainer.id = 'vtable-right-frozen-body-dom-container';\n internalProps.rightFrozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBodyDomContainer);\n\n internalProps.rightFrozenHeaderDomContainer = document.createElement('div');\n internalProps.rightFrozenHeaderDomContainer.id = 'vtable-right-frozen-header-dom-container';\n internalProps.rightFrozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenHeaderDomContainer);\n\n internalProps.frozenBottomDomContainer = document.createElement('div');\n internalProps.frozenBottomDomContainer.id = 'vtable-frozen-bottom-dom-container';\n internalProps.frozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBottomDomContainer);\n\n internalProps.bottomDomContainer = document.createElement('div');\n internalProps.bottomDomContainer.id = 'vtable-bottom-dom-container';\n internalProps.bottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bottomDomContainer);\n\n internalProps.rightFrozenBottomDomContainer = document.createElement('div');\n internalProps.rightFrozenBottomDomContainer.id = 'vtable-right-frozen-bottom-dom-container';\n internalProps.rightFrozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBottomDomContainer);\n}\n\nexport function updateReactContainer(table: BaseTableAPI) {\n const {\n headerDomContainer,\n bodyDomContainer,\n frozenBodyDomContainer,\n frozenHeaderDomContainer,\n rightFrozenBodyDomContainer,\n rightFrozenHeaderDomContainer,\n bottomDomContainer,\n frozenBottomDomContainer,\n rightFrozenBottomDomContainer\n } = table.internalProps;\n if (\n !headerDomContainer &&\n !bodyDomContainer &&\n !frozenBodyDomContainer &&\n !frozenHeaderDomContainer &&\n !rightFrozenBodyDomContainer &&\n !rightFrozenHeaderDomContainer &&\n !bottomDomContainer &&\n !frozenBottomDomContainer &&\n !rightFrozenBottomDomContainer\n ) {\n return;\n }\n const allColsWidth = table.getAllColsWidth();\n const tableNoFrameWidth = Math.min(allColsWidth, table.tableNoFrameWidth);\n const frozenColsWidth = table.getFrozenColsWidth();\n const rightFrozenColsWidth = table.getRightFrozenColsWidth();\n const totalFrozenColsWidth = frozenColsWidth + rightFrozenColsWidth;\n const bodyWidth = Math.min(allColsWidth - totalFrozenColsWidth, tableNoFrameWidth - totalFrozenColsWidth);\n\n const allRowsHeight = table.getAllRowsHeight();\n const tableNoFrameHeight = Math.min(allRowsHeight, table.tableNoFrameHeight);\n const frozenRowsHeight = table.getFrozenRowsHeight();\n const bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n const totalFrozenRowsHeight = frozenRowsHeight + bottomFrozenRowsHeight;\n const bodyHeight = Math.min(allRowsHeight - totalFrozenRowsHeight, tableNoFrameHeight - totalFrozenRowsHeight);\n\n if (table.frozenColCount > 0) {\n headerDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bodyDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bottomDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n } else if (table.frozenColCount === 0) {\n headerDomContainer.style.left = `${table.tableX}px`;\n bodyDomContainer.style.left = `${table.tableX}px`;\n bottomDomContainer.style.left = `${table.tableX}px`;\n }\n frozenBodyDomContainer.style.left = `${table.tableX}px`;\n frozenHeaderDomContainer.style.left = `${table.tableX}px`;\n\n // headerDomContainer.style.width = `${(headerDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n headerDomContainer.style.width = `${bodyWidth}px`;\n headerDomContainer.style.height = `${frozenRowsHeight}px`;\n bodyDomContainer.style.top = `${table.tableY}px`;\n\n // bodyDomContainer.style.width = `${(bodyDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n bodyDomContainer.style.width = `${bodyWidth}px`;\n bodyDomContainer.style.height = `${bodyHeight}px`;\n bodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenBodyDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBodyDomContainer.style.height = `${bodyHeight}px`;\n frozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenHeaderDomContainer.style.width = `${frozenColsWidth}px`;\n frozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n frozenHeaderDomContainer.style.top = `${table.tableY}px`;\n\n rightFrozenBodyDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBodyDomContainer.style.height = `${bodyHeight}px`;\n rightFrozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n rightFrozenBodyDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n rightFrozenHeaderDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n rightFrozenHeaderDomContainer.style.top = `${table.tableY}px`;\n rightFrozenHeaderDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n bottomDomContainer.style.width = `${bodyWidth}px`;\n bottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n bottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n frozenBottomDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n frozenBottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n rightFrozenBottomDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n}\n\nexport function updateReactComponentContainer(scene: Scenegraph) {\n if (!scene.table.reactCustomLayout) {\n return;\n }\n const { table, stage } = scene;\n const plugin = stage.pluginService.findPluginsByName('ReactAttributePlugin')[0] as ReactAttributePlugin;\n const { htmlMap, renderId: stageRenderId } = plugin;\n\n for (const key in htmlMap) {\n const item = htmlMap[key];\n const { graphic, wrapContainer, renderId } = item as typeof item & { graphic: IGraphic };\n if (renderId !== stageRenderId) {\n continue;\n }\n let targetContainer: HTMLElement;\n if (scene.frozenColCount > table.frozenColCount) {\n // move columnGroup from rowHeaderGroup into bodyGroup(from cornerHeaderGroup into colHeaderGroup)\n const targetCell = getTargetCell(graphic);\n if (!targetCell) {\n continue;\n }\n const { col, row } = targetCell;\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBottomDomContainer\n ) {\n targetContainer = table.bottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBodyDomContainer\n ) {\n targetContainer = table.bodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenHeaderDomContainer\n ) {\n targetContainer = table.headerDomContainer;\n }\n } else if (scene.frozenColCount < table.frozenColCount) {\n // move columnGroup from bodyGroup into rowHeaderGroup(from colHeaderGroup into cornerHeaderGroup)\n const targetCell = getTargetCell(graphic);\n if (!targetCell) {\n continue;\n }\n const { col, row } = targetCell;\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bottomDomContainer\n ) {\n targetContainer = table.frozenBottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bodyDomContainer\n ) {\n targetContainer = table.frozenBodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.headerDomContainer\n ) {\n targetContainer = table.frozenHeaderDomContainer;\n }\n }\n\n if (targetContainer) {\n targetContainer.appendChild(wrapContainer);\n item.nativeContainer = targetContainer;\n item.container = targetContainer;\n graphic.attribute.react.container = targetContainer;\n plugin.updateStyleOfWrapContainer(graphic, stage, wrapContainer, targetContainer, graphic.attribute.react);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/layout/frozen-react.ts"],"names":[],"mappings":";;;AACA,2CAAiD;AAIjD,SAAgB,oBAAoB,CAAC,KAAmB;IACtD,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEhC,aAAa,CAAC,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpE,aAAa,CAAC,qBAAqB,CAAC,EAAE,GAAG,iCAAiC,CAAC;IAC3E,aAAa,CAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC/E,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAEvE,aAAa,CAAC,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/D,aAAa,CAAC,gBAAgB,CAAC,EAAE,GAAG,2BAA2B,CAAC;IAChE,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC1E,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAElE,aAAa,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACjE,aAAa,CAAC,kBAAkB,CAAC,EAAE,GAAG,6BAA6B,CAAC;IACpE,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC5E,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAEpE,aAAa,CAAC,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrE,aAAa,CAAC,sBAAsB,CAAC,EAAE,GAAG,kCAAkC,CAAC;IAC7E,aAAa,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAChF,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAExE,aAAa,CAAC,wBAAwB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACvE,aAAa,CAAC,wBAAwB,CAAC,EAAE,GAAG,oCAAoC,CAAC;IACjF,aAAa,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAClF,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAE1E,aAAa,CAAC,2BAA2B,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1E,aAAa,CAAC,2BAA2B,CAAC,EAAE,GAAG,wCAAwC,CAAC;IACxF,aAAa,CAAC,2BAA2B,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACrF,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAE7E,aAAa,CAAC,6BAA6B,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5E,aAAa,CAAC,6BAA6B,CAAC,EAAE,GAAG,0CAA0C,CAAC;IAC5F,aAAa,CAAC,6BAA6B,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACvF,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAE/E,aAAa,CAAC,wBAAwB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACvE,aAAa,CAAC,wBAAwB,CAAC,EAAE,GAAG,oCAAoC,CAAC;IACjF,aAAa,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAClF,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAE1E,aAAa,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACjE,aAAa,CAAC,kBAAkB,CAAC,EAAE,GAAG,6BAA6B,CAAC;IACpE,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC5E,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAEpE,aAAa,CAAC,6BAA6B,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5E,aAAa,CAAC,6BAA6B,CAAC,EAAE,GAAG,0CAA0C,CAAC;IAC5F,aAAa,CAAC,6BAA6B,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACvF,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;AACjF,CAAC;AApDD,oDAoDC;AAED,SAAgB,oBAAoB,CAAC,KAAmB;IACtD,MAAM,EACJ,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,EAC7B,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,EAC9B,GAAG,KAAK,CAAC,aAAa,CAAC;IACxB,IACE,CAAC,kBAAkB;QACnB,CAAC,gBAAgB;QACjB,CAAC,sBAAsB;QACvB,CAAC,wBAAwB;QACzB,CAAC,2BAA2B;QAC5B,CAAC,6BAA6B;QAC9B,CAAC,kBAAkB;QACnB,CAAC,wBAAwB;QACzB,CAAC,6BAA6B;QAC9B,CAAC,qBAAqB,EACtB;QACA,OAAO;KACR;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;IAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;IACnD,MAAM,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC;IAC7D,MAAM,oBAAoB,GAAG,eAAe,GAAG,oBAAoB,CAAC;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,oBAAoB,EAAE,iBAAiB,GAAG,oBAAoB,CAAC,CAAC;IAE1G,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,KAAK,CAAC,yBAAyB,EAAE,CAAC;IACjE,MAAM,qBAAqB,GAAG,gBAAgB,GAAG,sBAAsB,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,qBAAqB,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,CAAC;IAE/G,qBAAqB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,iBAAiB,IAAI,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,gBAAgB,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,CAAC;IACtG,qBAAqB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC;IACxD,qBAAqB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC;IAEzE,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE;QAC5B,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,eAAe,IAAI,CAAC;QACtE,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,eAAe,IAAI,CAAC;QACpE,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,eAAe,IAAI,CAAC;KACvE;SAAM,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE;QACrC,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;QACpD,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;QAClD,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;KACrD;IACD,sBAAsB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;IACxD,wBAAwB,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;IAG1D,kBAAkB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,SAAS,IAAI,CAAC;IAClD,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC;IAC1D,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;IAGjD,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,SAAS,IAAI,CAAC;IAChD,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC;IAClD,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC;IAEpE,sBAAsB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,eAAe,IAAI,CAAC;IAC5D,sBAAsB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC;IACxD,sBAAsB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC;IAE1E,wBAAwB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,eAAe,IAAI,CAAC;IAC9D,wBAAwB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC;IAChE,wBAAwB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;IAEzD,2BAA2B,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,oBAAoB,IAAI,CAAC;IACtE,2BAA2B,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC;IAC7D,2BAA2B,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC;IAC/E,2BAA2B,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,iBAAiB,GAAG,oBAAoB,IAAI,CAAC;IAExG,6BAA6B,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,oBAAoB,IAAI,CAAC;IACxE,6BAA6B,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC;IACrE,6BAA6B,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC;IAC9D,6BAA6B,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,iBAAiB,GAAG,oBAAoB,IAAI,CAAC;IAE1G,kBAAkB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,SAAS,IAAI,CAAC;IAClD,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,sBAAsB,IAAI,CAAC;IAChE,kBAAkB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,kBAAkB,GAAG,sBAAsB,IAAI,CAAC;IAEjG,wBAAwB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,eAAe,IAAI,CAAC;IAC9D,wBAAwB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,sBAAsB,IAAI,CAAC;IACtE,wBAAwB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,kBAAkB,GAAG,sBAAsB,IAAI,CAAC;IAEvG,6BAA6B,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,oBAAoB,IAAI,CAAC;IACxE,6BAA6B,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,sBAAsB,IAAI,CAAC;IAC3E,6BAA6B,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,kBAAkB,GAAG,sBAAsB,IAAI,CAAC;IAC5G,6BAA6B,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,iBAAiB,GAAG,oBAAoB,IAAI,CAAC;AAC5G,CAAC;AAlGD,oDAkGC;AAED,SAAgB,6BAA6B,CAAC,KAAiB;IAC7D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE;QAClC,OAAO;KACR;IACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAyB,CAAC;IACxG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAA2C,CAAC;QACzF,IAAI,QAAQ,KAAK,aAAa,EAAE;YAC9B,SAAS;SACV;QACD,IAAI,eAA4B,CAAC;QACjC,IAAI,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE;YAE/C,MAAM,UAAU,GAAG,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,EAAE;gBACf,SAAS;aACV;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;YAChC,IACE,GAAG,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,oBAAoB;gBAClD,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,wBAAwB,EACpE;gBACA,eAAe,GAAG,KAAK,CAAC,kBAAkB,CAAC;aAC5C;iBAAM,IACL,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,sBAAsB,EAClE;gBACA,eAAe,GAAG,KAAK,CAAC,gBAAgB,CAAC;aAC1C;iBAAM,IACL,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,wBAAwB,EACpE;gBACA,eAAe,GAAG,KAAK,CAAC,kBAAkB,CAAC;aAC5C;SACF;aAAM,IAAI,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE;YAEtD,MAAM,UAAU,GAAG,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,EAAE;gBACf,SAAS;aACV;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;YAChC,IACE,GAAG,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,oBAAoB;gBAClD,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,kBAAkB,EAC9D;gBACA,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC;aAClD;iBAAM,IACL,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,gBAAgB,EAC5D;gBACA,eAAe,GAAG,KAAK,CAAC,sBAAsB,CAAC;aAChD;iBAAM,IACL,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,GAAG,KAAK,CAAC,cAAc;gBAC1B,GAAG,IAAI,KAAK,CAAC,cAAc;gBAC3B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,kBAAkB,EAC9D;gBACA,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC;aAClD;SACF;QAED,IAAI,eAAe,EAAE;YACnB,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;YACjC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;YACpD,MAAM,CAAC,0BAA0B,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5G;KACF;AACH,CAAC;AAnFD,sEAmFC","file":"frozen-react.js","sourcesContent":["import type { IGraphic, ReactAttributePlugin } from './../../vrender';\nimport { getTargetCell } from '../../event/util';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Scenegraph } from '../scenegraph';\n\nexport function createReactContainer(table: BaseTableAPI) {\n const { internalProps } = table;\n\n internalProps.tableBodyDomContainer = document.createElement('div');\n internalProps.tableBodyDomContainer.id = 'vtable-table-body-dom-container';\n internalProps.tableBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.tableBodyDomContainer);\n\n internalProps.bodyDomContainer = document.createElement('div');\n internalProps.bodyDomContainer.id = 'vtable-body-dom-container';\n internalProps.bodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bodyDomContainer);\n\n internalProps.headerDomContainer = document.createElement('div');\n internalProps.headerDomContainer.id = 'vtable-header-dom-container';\n internalProps.headerDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.headerDomContainer);\n\n internalProps.frozenBodyDomContainer = document.createElement('div');\n internalProps.frozenBodyDomContainer.id = 'vtable-frozen-body-dom-container';\n internalProps.frozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBodyDomContainer);\n\n internalProps.frozenHeaderDomContainer = document.createElement('div');\n internalProps.frozenHeaderDomContainer.id = 'vtable-frozen-header-dom-container';\n internalProps.frozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenHeaderDomContainer);\n\n internalProps.rightFrozenBodyDomContainer = document.createElement('div');\n internalProps.rightFrozenBodyDomContainer.id = 'vtable-right-frozen-body-dom-container';\n internalProps.rightFrozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBodyDomContainer);\n\n internalProps.rightFrozenHeaderDomContainer = document.createElement('div');\n internalProps.rightFrozenHeaderDomContainer.id = 'vtable-right-frozen-header-dom-container';\n internalProps.rightFrozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenHeaderDomContainer);\n\n internalProps.frozenBottomDomContainer = document.createElement('div');\n internalProps.frozenBottomDomContainer.id = 'vtable-frozen-bottom-dom-container';\n internalProps.frozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBottomDomContainer);\n\n internalProps.bottomDomContainer = document.createElement('div');\n internalProps.bottomDomContainer.id = 'vtable-bottom-dom-container';\n internalProps.bottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bottomDomContainer);\n\n internalProps.rightFrozenBottomDomContainer = document.createElement('div');\n internalProps.rightFrozenBottomDomContainer.id = 'vtable-right-frozen-bottom-dom-container';\n internalProps.rightFrozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBottomDomContainer);\n}\n\nexport function updateReactContainer(table: BaseTableAPI) {\n const {\n headerDomContainer,\n tableBodyDomContainer,\n bodyDomContainer,\n frozenBodyDomContainer,\n frozenHeaderDomContainer,\n rightFrozenBodyDomContainer,\n rightFrozenHeaderDomContainer,\n bottomDomContainer,\n frozenBottomDomContainer,\n rightFrozenBottomDomContainer\n } = table.internalProps;\n if (\n !headerDomContainer &&\n !bodyDomContainer &&\n !frozenBodyDomContainer &&\n !frozenHeaderDomContainer &&\n !rightFrozenBodyDomContainer &&\n !rightFrozenHeaderDomContainer &&\n !bottomDomContainer &&\n !frozenBottomDomContainer &&\n !rightFrozenBottomDomContainer &&\n !tableBodyDomContainer\n ) {\n return;\n }\n const allColsWidth = table.getAllColsWidth();\n const tableNoFrameWidth = Math.min(allColsWidth, table.tableNoFrameWidth);\n const frozenColsWidth = table.getFrozenColsWidth();\n const rightFrozenColsWidth = table.getRightFrozenColsWidth();\n const totalFrozenColsWidth = frozenColsWidth + rightFrozenColsWidth;\n const bodyWidth = Math.min(allColsWidth - totalFrozenColsWidth, tableNoFrameWidth - totalFrozenColsWidth);\n\n const allRowsHeight = table.getAllRowsHeight();\n const tableNoFrameHeight = Math.min(allRowsHeight, table.tableNoFrameHeight);\n const frozenRowsHeight = table.getFrozenRowsHeight();\n const bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n const totalFrozenRowsHeight = frozenRowsHeight + bottomFrozenRowsHeight;\n const bodyHeight = Math.min(allRowsHeight - totalFrozenRowsHeight, tableNoFrameHeight - totalFrozenRowsHeight);\n\n tableBodyDomContainer.style.width = `${tableNoFrameWidth}px`;\n const tableHeight = Math.min(allRowsHeight - frozenRowsHeight, tableNoFrameHeight - frozenRowsHeight);\n tableBodyDomContainer.style.height = `${tableHeight}px`;\n tableBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n if (table.frozenColCount > 0) {\n headerDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bodyDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bottomDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n } else if (table.frozenColCount === 0) {\n headerDomContainer.style.left = `${table.tableX}px`;\n bodyDomContainer.style.left = `${table.tableX}px`;\n bottomDomContainer.style.left = `${table.tableX}px`;\n }\n frozenBodyDomContainer.style.left = `${table.tableX}px`;\n frozenHeaderDomContainer.style.left = `${table.tableX}px`;\n\n // headerDomContainer.style.width = `${(headerDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n headerDomContainer.style.width = `${bodyWidth}px`;\n headerDomContainer.style.height = `${frozenRowsHeight}px`;\n bodyDomContainer.style.top = `${table.tableY}px`;\n\n // bodyDomContainer.style.width = `${(bodyDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n bodyDomContainer.style.width = `${bodyWidth}px`;\n bodyDomContainer.style.height = `${bodyHeight}px`;\n bodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenBodyDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBodyDomContainer.style.height = `${bodyHeight}px`;\n frozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenHeaderDomContainer.style.width = `${frozenColsWidth}px`;\n frozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n frozenHeaderDomContainer.style.top = `${table.tableY}px`;\n\n rightFrozenBodyDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBodyDomContainer.style.height = `${bodyHeight}px`;\n rightFrozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n rightFrozenBodyDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n rightFrozenHeaderDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n rightFrozenHeaderDomContainer.style.top = `${table.tableY}px`;\n rightFrozenHeaderDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n bottomDomContainer.style.width = `${bodyWidth}px`;\n bottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n bottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n frozenBottomDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n frozenBottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n rightFrozenBottomDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n}\n\nexport function updateReactComponentContainer(scene: Scenegraph) {\n if (!scene.table.reactCustomLayout) {\n return;\n }\n const { table, stage } = scene;\n const plugin = stage.pluginService.findPluginsByName('ReactAttributePlugin')[0] as ReactAttributePlugin;\n const { htmlMap, renderId: stageRenderId } = plugin;\n\n for (const key in htmlMap) {\n const item = htmlMap[key];\n const { graphic, wrapContainer, renderId } = item as typeof item & { graphic: IGraphic };\n if (renderId !== stageRenderId) {\n continue;\n }\n let targetContainer: HTMLElement;\n if (scene.frozenColCount > table.frozenColCount) {\n // move columnGroup from rowHeaderGroup into bodyGroup(from cornerHeaderGroup into colHeaderGroup)\n const targetCell = getTargetCell(graphic);\n if (!targetCell) {\n continue;\n }\n const { col, row } = targetCell;\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBottomDomContainer\n ) {\n targetContainer = table.bottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBodyDomContainer\n ) {\n targetContainer = table.bodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenHeaderDomContainer\n ) {\n targetContainer = table.headerDomContainer;\n }\n } else if (scene.frozenColCount < table.frozenColCount) {\n // move columnGroup from bodyGroup into rowHeaderGroup(from colHeaderGroup into cornerHeaderGroup)\n const targetCell = getTargetCell(graphic);\n if (!targetCell) {\n continue;\n }\n const { col, row } = targetCell;\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bottomDomContainer\n ) {\n targetContainer = table.frozenBottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bodyDomContainer\n ) {\n targetContainer = table.frozenBodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.headerDomContainer\n ) {\n targetContainer = table.frozenHeaderDomContainer;\n }\n }\n\n if (targetContainer) {\n targetContainer.appendChild(wrapContainer);\n item.nativeContainer = targetContainer;\n item.container = targetContainer;\n graphic.attribute.react.container = targetContainer;\n plugin.updateStyleOfWrapContainer(graphic, stage, wrapContainer, targetContainer, graphic.attribute.react);\n }\n }\n}\n"]}
@@ -910,4 +910,4 @@ class Scenegraph {
910
910
  }
911
911
 
912
912
  exports.Scenegraph = Scenegraph;
913
- //# sourceMappingURL=scenegraph.js.map
913
+ //# sourceMappingURL=scenegraph.js.map
@@ -9,11 +9,8 @@ const ts_types_1 = require("../../ts-types");
9
9
  function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectAll, makeSelectCellVisible = !0, skipBodyMerge = !1) {
10
10
  var _a, _b;
11
11
  const {table: table, interactionState: interactionState} = state, {scenegraph: scenegraph} = table, {highlightScope: highlightScope, disableHeader: disableHeader, cellPos: cellPos, disableCtrlMultiSelect: disableCtrlMultiSelect} = state.select;
12
- if (-1 !== col && -1 !== row && makeSelectCellVisible) {
13
- const cellRange = table.getCellRange(col, row);
14
- table._makeVisibleCell(cellRange.start.col, cellRange.end.row);
15
- }
16
- if (-1 !== col && -1 !== row && makeSelectCellVisible) if (interactionState === ts_types_1.InteractionState.grabing && state.select.ranges.length > 0) {
12
+ if (-1 !== col && -1 !== row && makeSelectCellVisible && table._makeVisibleCell(col, row),
13
+ -1 !== col && -1 !== row && makeSelectCellVisible) if (interactionState === ts_types_1.InteractionState.grabing && state.select.ranges.length > 0) {
17
14
  const currentRange = state.select.ranges[state.select.ranges.length - 1];
18
15
  col > currentRange.start.col && col > currentRange.end.col && table._makeVisibleCell(col + 1, row),
19
16
  row > currentRange.start.row && row > currentRange.end.row && table._makeVisibleCell(col, row + 1),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state/select/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { ListTable } from '../..';\nimport type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { Scenegraph } from '../../scenegraph/scenegraph';\nimport type { SelectAllOnCtrlAOption } from '../../ts-types';\nimport { InteractionState } from '../../ts-types';\nimport type { StateManager } from '../state';\n/**\n * @description: 更新select位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateSelectPosition(\n state: StateManager,\n col: number,\n row: number,\n isShift: boolean,\n isCtrl: boolean,\n isSelectAll: boolean,\n makeSelectCellVisible: boolean = true,\n skipBodyMerge: boolean = false\n // forceSelect: boolean = false\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { highlightScope, disableHeader, cellPos, disableCtrlMultiSelect } = state.select;\n // const disableSelect = table.options?.select?.disableSelect;\n // const cellDisable = typeof disableSelect === 'function' ? disableSelect(col, row, table) : disableSelect;\n // const { highlightScope, disableHeader, cellPos } = state.select;\n // const disableSelect = table.options?.select?.disableSelect;\n // const cellDisable = typeof disableSelect === 'function' ? disableSelect(col, row, table) : disableSelect;\n\n // if (\n // ((disableHeader && table.isHeader(col, row)) || highlightScope === 'none' || cellDisable) &&\n // forceSelect === false\n // ) {\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\n const cellRange = table.getCellRange(col, row);\n table._makeVisibleCell(cellRange.start.col, cellRange.end.row);\n }\n // col = -1;\n // row = -1;\n // }\n\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\n if (interactionState === InteractionState.grabing && state.select.ranges.length > 0) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (col > currentRange.start.col && col > currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col + 1, row);\n }\n if (row > currentRange.start.row && row > currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row + 1);\n }\n if (col < currentRange.start.col && col < currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col - 1, row);\n }\n if (row < currentRange.start.row && row < currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row - 1);\n }\n } else {\n table._makeVisibleCell(col, row);\n }\n }\n if (isSelectAll) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n let _startCol = 0;\n let _startRow = 0;\n const { disableHeaderSelect, disableRowSeriesNumberSelect } =\n (table.options.keyboardOptions?.selectAllOnCtrlA as SelectAllOnCtrlAOption) || {};\n\n // 表头选中\n if (disableHeaderSelect) {\n _startCol = table.rowHeaderLevelCount;\n _startRow = table.columnHeaderLevelCount;\n }\n // 行号列选中\n if (\n (disableRowSeriesNumberSelect || (disableHeaderSelect && (table as ListTable).transpose)) &&\n table.options.rowSeriesNumber\n ) {\n _startCol += 1;\n }\n\n state.select.ranges.push({\n start: { col: _startCol, row: _startRow },\n end: { col: table.colCount - 1, row: table.rowCount - 1 }\n });\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(currentRange, false);\n } else if (cellPos.col !== -1 && cellPos.row !== -1 && (col === -1 || row === -1)) {\n // 输入-1清空选中状态\n // clearMultiSelect(scenegraph, ranges, highlightScope, singleStyle);\n cellPos.col = -1;\n cellPos.row = -1;\n state.select.ranges = [];\n // 隐藏select border\n scenegraph.deleteAllSelectBorder();\n } else if (\n interactionState === InteractionState.default &&\n !table.eventManager.isDraging &&\n !table.stateManager.isResizeCol()\n ) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (isShift && currentRange) {\n if (!isCtrl || disableCtrlMultiSelect) {\n cellPos.col = col;\n cellPos.row = row;\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = Math.max(currentRange.start.col, currentRange.end.col, col);\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = table.rowCount - 1;\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: startCol, row: table.columnHeaderLevelCount };\n currentRange.end = { col: endCol, row: table.rowCount - 1 };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: table.leftRowSeriesNumberCount + table.rowHeaderLevelCount, row: startRow };\n currentRange.end = { col: table.colCount - 1, row: endRow };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isSeriesNumberInBody(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: table.leftRowSeriesNumberCount, row: startRow };\n currentRange.end = { col: table.colCount - 1, row: endRow };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else {\n currentRange.end = { col, row };\n }\n scenegraph.deleteLastSelectedRangeComponents();\n scenegraph.updateCellSelectBorder(currentRange);\n // } else if (isCtrl) {\n // cellPos.col = col;\n // cellPos.row = row;\n // state.select.ranges.push({\n // start: { col: cellPos.col, row: cellPos.row },\n // end: { col: cellPos.col, row: cellPos.row },\n // });\n // // 单选或多选的开始,只选中第一个单元格\n // // updateCellSelect(scenegraph, col, row, ranges, highlightScope, singleStyle);\n // scenegraph.setCellNormalStyle(col, row);\n // // 更新select border\n // // calculateAndUpdateMultiSelectBorder(scenegraph, col, row, col, row, state.select.ranges);\n // // 更新select border\n // scenegraph.updateCellSelectBorder(cellPos);\n } else {\n let extendSelectRange = true;\n // 单选或多选开始\n if (cellPos.col !== -1 && cellPos.row !== -1 && (!isCtrl || disableCtrlMultiSelect)) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\n\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n // 选中行表头\n const cellRange = table.getCellRange(col, row);\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: table.columnHeaderLevelCount },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n // 选中列表头\n const cellRange = table.getCellRange(col, row);\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: { col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row },\n skipBodyMerge: true\n });\n }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInHeader(col, row)) {\n // 选中表头行号单元格\n extendSelectRange = false;\n\n const { cornerHeaderSelectMode } = state.select;\n if (cornerHeaderSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: table.columnHeaderLevelCount\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'inline') {\n // inline 选中行号所在单元格下所有列\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'cell') {\n // 选中行号单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n } else {\n state.select.ranges.push({\n start: { col: 0, row: 0 },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n // 旧逻辑\n // if (state.select.headerSelectMode === 'body') {\n // state.select.ranges.push({\n // start: {\n // col: table.leftRowSeriesNumberCount,\n // row: table.columnHeaderLevelCount\n // },\n // end: { col: table.colCount - 1, row: table.rowCount - 1 },\n // skipBodyMerge: true\n // });\n // } else {\n // state.select.ranges.push({\n // start: { col: 0, row: 0 },\n // end: { col: table.colCount - 1, row: table.rowCount - 1 },\n // skipBodyMerge: true\n // });\n // }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(col, row)) {\n // 选中内容行号单元格\n extendSelectRange = false;\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row\n },\n end: { col: table.colCount - 1, row: row },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col, row },\n end: { col: table.colCount - 1, row: row },\n skipBodyMerge: true\n });\n }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isCornerHeader(col, row)) {\n // 选中表头行号单元格\n extendSelectRange = false;\n const { cornerHeaderSelectMode } = state.select;\n\n if (cornerHeaderSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,\n row: table.columnHeaderLevelCount\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'cell') {\n // 选中普通单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n } else if (cornerHeaderSelectMode === 'inline') {\n // inline\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'all') {\n // all 或者用户传的其他的什么值 :'' | 'test',虽然类型会提示用户不能为其他的值,\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n } else if (col >= 0 && row >= 0) {\n // 选中普通单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n }\n cellPos.col = col;\n cellPos.row = row;\n // scenegraph.setCellNormalStyle(col, row);\n const currentRange = state.select.ranges?.[state.select.ranges.length - 1];\n if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n }\n } else if (\n (interactionState === InteractionState.grabing || table.eventManager.isDraging) &&\n !table.stateManager.isResizeCol()\n ) {\n let extendSelectRange = true;\n // 可能有cellPosStart从-1开始grabing的情况\n if (cellPos.col === -1) {\n cellPos.col = col;\n }\n if (cellPos.row === -1) {\n cellPos.row = row;\n }\n cellPos.col = col;\n cellPos.row = row;\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (currentRange) {\n if (\n (table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(\n currentRange.start.col,\n currentRange.start.row\n )\n ) {\n // 如果选中起始位置是序号 那么选中范围都是整行整行的选中\n extendSelectRange = false;\n currentRange.end = {\n col: table.colCount - 1,\n row\n };\n } else {\n if (state.fillHandle.isFilling) {\n // 修正拖拽填充柄选中范围 和 不拖填充柄是有区别的 解决选中区域缩小问题\n if (state.fillHandle.direction === 'top') {\n if (row === state.fillHandle.beforeFillMinRow && row === state.fillHandle.beforeFillMaxRow) {\n currentRange.start.row = currentRange.end.row = row;\n } else if (row <= state.fillHandle.beforeFillMinRow) {\n if (currentRange.start.row < currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n } else if (row === state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n currentRange.start.row = row;\n } else {\n currentRange.end.row = row;\n }\n }\n } else if (state.fillHandle.direction === 'bottom') {\n if (row >= state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n }\n } else if (state.fillHandle.direction === 'left') {\n if (col === state.fillHandle.beforeFillMinCol && col === state.fillHandle.beforeFillMaxCol) {\n currentRange.start.col = currentRange.end.col = col;\n } else if (col <= state.fillHandle.beforeFillMinCol) {\n if (currentRange.start.col < currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n } else if (col === state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n currentRange.start.col = col;\n } else {\n currentRange.end.col = col;\n }\n }\n } else if (state.fillHandle.direction === 'right') {\n if (col >= state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n }\n }\n } else {\n currentRange.end = {\n col,\n row\n };\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n if (currentRange.start.col < cellRange.end.col) {\n currentRange.end.col = cellRange.end.col;\n } else if (currentRange.start.col > cellRange.start.col) {\n currentRange.end.col = cellRange.start.col;\n }\n\n if (currentRange.start.row < cellRange.end.row) {\n currentRange.end.row = cellRange.end.row;\n } else if (currentRange.start.row > cellRange.start.row) {\n currentRange.end.row = cellRange.start.row;\n }\n\n if (state.select.headerSelectMode === 'body') {\n if (table.isRowHeader(col, row)) {\n currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount;\n currentRange.end.col = table.colCount - 1;\n } else if (table.isColumnHeader(col, row)) {\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.row = table.rowCount - 1;\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(col, row)) {\n currentRange.start.col = table.leftRowSeriesNumberCount;\n currentRange.end.col = table.colCount - 1;\n } else if (table.isCornerHeader(col, row)) {\n currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount;\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.col = table.colCount - 1;\n currentRange.end.row = table.rowCount - 1;\n } else if (table.isSeriesNumber(col, row)) {\n currentRange.start.col = table.leftRowSeriesNumberCount;\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.col = table.colCount - 1;\n currentRange.end.row = table.rowCount - 1;\n }\n }\n if (skipBodyMerge) {\n currentRange.skipBodyMerge = true;\n }\n }\n }\n if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n }\n }\n scenegraph.updateNextFrame();\n}\nexport function selectEnd(scenegraph: Scenegraph) {\n scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();\n}\n"]}
1
+ {"version":3,"sources":["../src/state/select/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { ListTable } from '../..';\nimport type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { Scenegraph } from '../../scenegraph/scenegraph';\nimport type { SelectAllOnCtrlAOption } from '../../ts-types';\nimport { InteractionState } from '../../ts-types';\nimport type { StateManager } from '../state';\n/**\n * @description: 更新select位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateSelectPosition(\n state: StateManager,\n col: number,\n row: number,\n isShift: boolean,\n isCtrl: boolean,\n isSelectAll: boolean,\n makeSelectCellVisible: boolean = true,\n skipBodyMerge: boolean = false\n // forceSelect: boolean = false\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { highlightScope, disableHeader, cellPos, disableCtrlMultiSelect } = state.select;\n // const disableSelect = table.options?.select?.disableSelect;\n // const cellDisable = typeof disableSelect === 'function' ? disableSelect(col, row, table) : disableSelect;\n // const { highlightScope, disableHeader, cellPos } = state.select;\n // const disableSelect = table.options?.select?.disableSelect;\n // const cellDisable = typeof disableSelect === 'function' ? disableSelect(col, row, table) : disableSelect;\n\n // if (\n // ((disableHeader && table.isHeader(col, row)) || highlightScope === 'none' || cellDisable) &&\n // forceSelect === false\n // ) {\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\n table._makeVisibleCell(col, row);\n }\n // col = -1;\n // row = -1;\n // }\n\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\n if (interactionState === InteractionState.grabing && state.select.ranges.length > 0) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (col > currentRange.start.col && col > currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col + 1, row);\n }\n if (row > currentRange.start.row && row > currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row + 1);\n }\n if (col < currentRange.start.col && col < currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col - 1, row);\n }\n if (row < currentRange.start.row && row < currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row - 1);\n }\n } else {\n table._makeVisibleCell(col, row);\n }\n }\n if (isSelectAll) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n let _startCol = 0;\n let _startRow = 0;\n const { disableHeaderSelect, disableRowSeriesNumberSelect } =\n (table.options.keyboardOptions?.selectAllOnCtrlA as SelectAllOnCtrlAOption) || {};\n\n // 表头选中\n if (disableHeaderSelect) {\n _startCol = table.rowHeaderLevelCount;\n _startRow = table.columnHeaderLevelCount;\n }\n // 行号列选中\n if (\n (disableRowSeriesNumberSelect || (disableHeaderSelect && (table as ListTable).transpose)) &&\n table.options.rowSeriesNumber\n ) {\n _startCol += 1;\n }\n\n state.select.ranges.push({\n start: { col: _startCol, row: _startRow },\n end: { col: table.colCount - 1, row: table.rowCount - 1 }\n });\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(currentRange, false);\n } else if (cellPos.col !== -1 && cellPos.row !== -1 && (col === -1 || row === -1)) {\n // 输入-1清空选中状态\n // clearMultiSelect(scenegraph, ranges, highlightScope, singleStyle);\n cellPos.col = -1;\n cellPos.row = -1;\n state.select.ranges = [];\n // 隐藏select border\n scenegraph.deleteAllSelectBorder();\n } else if (\n interactionState === InteractionState.default &&\n !table.eventManager.isDraging &&\n !table.stateManager.isResizeCol()\n ) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (isShift && currentRange) {\n if (!isCtrl || disableCtrlMultiSelect) {\n cellPos.col = col;\n cellPos.row = row;\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = Math.max(currentRange.start.col, currentRange.end.col, col);\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = table.rowCount - 1;\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: startCol, row: table.columnHeaderLevelCount };\n currentRange.end = { col: endCol, row: table.rowCount - 1 };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: table.leftRowSeriesNumberCount + table.rowHeaderLevelCount, row: startRow };\n currentRange.end = { col: table.colCount - 1, row: endRow };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isSeriesNumberInBody(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: table.leftRowSeriesNumberCount, row: startRow };\n currentRange.end = { col: table.colCount - 1, row: endRow };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else {\n currentRange.end = { col, row };\n }\n scenegraph.deleteLastSelectedRangeComponents();\n scenegraph.updateCellSelectBorder(currentRange);\n // } else if (isCtrl) {\n // cellPos.col = col;\n // cellPos.row = row;\n // state.select.ranges.push({\n // start: { col: cellPos.col, row: cellPos.row },\n // end: { col: cellPos.col, row: cellPos.row },\n // });\n // // 单选或多选的开始,只选中第一个单元格\n // // updateCellSelect(scenegraph, col, row, ranges, highlightScope, singleStyle);\n // scenegraph.setCellNormalStyle(col, row);\n // // 更新select border\n // // calculateAndUpdateMultiSelectBorder(scenegraph, col, row, col, row, state.select.ranges);\n // // 更新select border\n // scenegraph.updateCellSelectBorder(cellPos);\n } else {\n let extendSelectRange = true;\n // 单选或多选开始\n if (cellPos.col !== -1 && cellPos.row !== -1 && (!isCtrl || disableCtrlMultiSelect)) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\n\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n // 选中行表头\n const cellRange = table.getCellRange(col, row);\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: table.columnHeaderLevelCount },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n // 选中列表头\n const cellRange = table.getCellRange(col, row);\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: { col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row },\n skipBodyMerge: true\n });\n }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInHeader(col, row)) {\n // 选中表头行号单元格\n extendSelectRange = false;\n\n const { cornerHeaderSelectMode } = state.select;\n if (cornerHeaderSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: table.columnHeaderLevelCount\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'inline') {\n // inline 选中行号所在单元格下所有列\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'cell') {\n // 选中行号单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n } else {\n state.select.ranges.push({\n start: { col: 0, row: 0 },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n // 旧逻辑\n // if (state.select.headerSelectMode === 'body') {\n // state.select.ranges.push({\n // start: {\n // col: table.leftRowSeriesNumberCount,\n // row: table.columnHeaderLevelCount\n // },\n // end: { col: table.colCount - 1, row: table.rowCount - 1 },\n // skipBodyMerge: true\n // });\n // } else {\n // state.select.ranges.push({\n // start: { col: 0, row: 0 },\n // end: { col: table.colCount - 1, row: table.rowCount - 1 },\n // skipBodyMerge: true\n // });\n // }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(col, row)) {\n // 选中内容行号单元格\n extendSelectRange = false;\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row\n },\n end: { col: table.colCount - 1, row: row },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col, row },\n end: { col: table.colCount - 1, row: row },\n skipBodyMerge: true\n });\n }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isCornerHeader(col, row)) {\n // 选中表头行号单元格\n extendSelectRange = false;\n const { cornerHeaderSelectMode } = state.select;\n\n if (cornerHeaderSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,\n row: table.columnHeaderLevelCount\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'cell') {\n // 选中普通单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n } else if (cornerHeaderSelectMode === 'inline') {\n // inline\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'all') {\n // all 或者用户传的其他的什么值 :'' | 'test',虽然类型会提示用户不能为其他的值,\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n } else if (col >= 0 && row >= 0) {\n // 选中普通单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n }\n cellPos.col = col;\n cellPos.row = row;\n // scenegraph.setCellNormalStyle(col, row);\n const currentRange = state.select.ranges?.[state.select.ranges.length - 1];\n if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n }\n } else if (\n (interactionState === InteractionState.grabing || table.eventManager.isDraging) &&\n !table.stateManager.isResizeCol()\n ) {\n let extendSelectRange = true;\n // 可能有cellPosStart从-1开始grabing的情况\n if (cellPos.col === -1) {\n cellPos.col = col;\n }\n if (cellPos.row === -1) {\n cellPos.row = row;\n }\n cellPos.col = col;\n cellPos.row = row;\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (currentRange) {\n if (\n (table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(\n currentRange.start.col,\n currentRange.start.row\n )\n ) {\n // 如果选中起始位置是序号 那么选中范围都是整行整行的选中\n extendSelectRange = false;\n currentRange.end = {\n col: table.colCount - 1,\n row\n };\n } else {\n if (state.fillHandle.isFilling) {\n // 修正拖拽填充柄选中范围 和 不拖填充柄是有区别的 解决选中区域缩小问题\n if (state.fillHandle.direction === 'top') {\n if (row === state.fillHandle.beforeFillMinRow && row === state.fillHandle.beforeFillMaxRow) {\n currentRange.start.row = currentRange.end.row = row;\n } else if (row <= state.fillHandle.beforeFillMinRow) {\n if (currentRange.start.row < currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n } else if (row === state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n currentRange.start.row = row;\n } else {\n currentRange.end.row = row;\n }\n }\n } else if (state.fillHandle.direction === 'bottom') {\n if (row >= state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n }\n } else if (state.fillHandle.direction === 'left') {\n if (col === state.fillHandle.beforeFillMinCol && col === state.fillHandle.beforeFillMaxCol) {\n currentRange.start.col = currentRange.end.col = col;\n } else if (col <= state.fillHandle.beforeFillMinCol) {\n if (currentRange.start.col < currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n } else if (col === state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n currentRange.start.col = col;\n } else {\n currentRange.end.col = col;\n }\n }\n } else if (state.fillHandle.direction === 'right') {\n if (col >= state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n }\n }\n } else {\n currentRange.end = {\n col,\n row\n };\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n if (currentRange.start.col < cellRange.end.col) {\n currentRange.end.col = cellRange.end.col;\n } else if (currentRange.start.col > cellRange.start.col) {\n currentRange.end.col = cellRange.start.col;\n }\n\n if (currentRange.start.row < cellRange.end.row) {\n currentRange.end.row = cellRange.end.row;\n } else if (currentRange.start.row > cellRange.start.row) {\n currentRange.end.row = cellRange.start.row;\n }\n\n if (state.select.headerSelectMode === 'body') {\n if (table.isRowHeader(col, row)) {\n currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount;\n currentRange.end.col = table.colCount - 1;\n } else if (table.isColumnHeader(col, row)) {\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.row = table.rowCount - 1;\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(col, row)) {\n currentRange.start.col = table.leftRowSeriesNumberCount;\n currentRange.end.col = table.colCount - 1;\n } else if (table.isCornerHeader(col, row)) {\n currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount;\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.col = table.colCount - 1;\n currentRange.end.row = table.rowCount - 1;\n } else if (table.isSeriesNumber(col, row)) {\n currentRange.start.col = table.leftRowSeriesNumberCount;\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.col = table.colCount - 1;\n currentRange.end.row = table.rowCount - 1;\n }\n }\n if (skipBodyMerge) {\n currentRange.skipBodyMerge = true;\n }\n }\n }\n if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n }\n }\n scenegraph.updateNextFrame();\n}\nexport function selectEnd(scenegraph: Scenegraph) {\n scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();\n}\n"]}
@@ -807,4 +807,4 @@ class StateManager {
807
807
  }
808
808
 
809
809
  exports.StateManager = StateManager;
810
- //# sourceMappingURL=state.js.map
810
+ //# sourceMappingURL=state.js.map