@visactor/vtable-plugins 1.20.1 → 1.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/cjs/add-row-column.d.ts +7 -6
  2. package/cjs/add-row-column.js +4 -29
  3. package/cjs/add-row-column.js.map +1 -1
  4. package/cjs/auto-fill/auto-fill-manager.js +7 -34
  5. package/cjs/auto-fill/auto-fill-manager.js.map +1 -1
  6. package/cjs/auto-fill/index.d.ts +6 -10
  7. package/cjs/auto-fill/index.js +5 -30
  8. package/cjs/auto-fill/index.js.map +1 -1
  9. package/cjs/auto-fill/rules.js +26 -11
  10. package/cjs/auto-fill/rules.js.map +1 -1
  11. package/cjs/auto-fill/utils/fill.d.ts +1 -1
  12. package/cjs/auto-fill/utils/fill.js +9 -9
  13. package/cjs/auto-fill/utils/fill.js.map +1 -1
  14. package/cjs/column-series.d.ts +4 -3
  15. package/cjs/column-series.js +4 -29
  16. package/cjs/column-series.js.map +1 -1
  17. package/cjs/context-menu.d.ts +6 -5
  18. package/cjs/context-menu.js +3 -28
  19. package/cjs/context-menu.js.map +1 -1
  20. package/cjs/contextmenu/handle-menu-helper.d.ts +19 -19
  21. package/cjs/contextmenu/handle-menu-helper.js.map +1 -1
  22. package/cjs/contextmenu/menu-manager.js.map +1 -1
  23. package/cjs/contextmenu/types.d.ts +1 -1
  24. package/cjs/contextmenu/types.js +2 -2
  25. package/cjs/contextmenu/types.js.map +1 -1
  26. package/cjs/excel-edit-cell-keyboard.d.ts +4 -4
  27. package/cjs/excel-edit-cell-keyboard.js +3 -28
  28. package/cjs/excel-edit-cell-keyboard.js.map +1 -1
  29. package/cjs/excel-import.d.ts +5 -5
  30. package/cjs/excel-import.js +3 -26
  31. package/cjs/excel-import.js.map +1 -1
  32. package/cjs/fillHandleUtils/autoFillHandle.d.ts +2 -2
  33. package/cjs/fillHandleUtils/autoFillHandle.js.map +1 -1
  34. package/cjs/fillHandleUtils/translateRowObj.d.ts +3 -3
  35. package/cjs/fillHandleUtils/translateRowObj.js.map +1 -1
  36. package/cjs/filter/condition-filter.d.ts +2 -2
  37. package/cjs/filter/condition-filter.js.map +1 -1
  38. package/cjs/filter/filter-engine.d.ts +6 -6
  39. package/cjs/filter/filter-engine.js.map +1 -1
  40. package/cjs/filter/filter-state-manager.d.ts +2 -2
  41. package/cjs/filter/filter-state-manager.js.map +1 -1
  42. package/cjs/filter/filter-toolbar.d.ts +4 -4
  43. package/cjs/filter/filter-toolbar.js.map +1 -1
  44. package/cjs/filter/filter.d.ts +4 -4
  45. package/cjs/filter/filter.js +7 -32
  46. package/cjs/filter/filter.js.map +1 -1
  47. package/cjs/filter/types.d.ts +4 -4
  48. package/cjs/filter/types.js.map +1 -1
  49. package/cjs/filter/value-filter.d.ts +2 -2
  50. package/cjs/filter/value-filter.js.map +1 -1
  51. package/cjs/focus-highlight.d.ts +2 -2
  52. package/cjs/focus-highlight.js.map +1 -1
  53. package/cjs/gantt-export-image.js +1 -1
  54. package/cjs/gantt-export-image.js.map +1 -1
  55. package/cjs/header-highlight.js +2 -2
  56. package/cjs/header-highlight.js.map +1 -1
  57. package/cjs/highlight-header-when-select-cell.d.ts +2 -2
  58. package/cjs/highlight-header-when-select-cell.js.map +1 -1
  59. package/cjs/paste-add-row-column.d.ts +5 -5
  60. package/cjs/paste-add-row-column.js +3 -28
  61. package/cjs/paste-add-row-column.js.map +1 -1
  62. package/cjs/rotate-table.d.ts +13 -5
  63. package/cjs/rotate-table.js +3 -28
  64. package/cjs/rotate-table.js.map +1 -1
  65. package/cjs/row-series.d.ts +2 -2
  66. package/cjs/row-series.js.map +1 -1
  67. package/cjs/table-carousel-animation.d.ts +2 -2
  68. package/cjs/table-carousel-animation.js.map +1 -1
  69. package/cjs/table-export/csv/index.d.ts +2 -4
  70. package/cjs/table-export/csv/index.js +0 -1
  71. package/cjs/table-export/csv/index.js.map +1 -1
  72. package/cjs/table-export/excel/index.js +1 -0
  73. package/cjs/table-export/util/type.d.ts +6 -6
  74. package/cjs/table-export/util/type.js.map +1 -1
  75. package/cjs/table-export.d.ts +2 -2
  76. package/cjs/table-export.js +4 -27
  77. package/cjs/table-export.js.map +1 -1
  78. package/cjs/table-series-number.d.ts +2 -2
  79. package/cjs/table-series-number.js +2 -3
  80. package/cjs/table-series-number.js.map +1 -1
  81. package/cjs/wps-fill-handle.d.ts +4 -4
  82. package/cjs/wps-fill-handle.js +4 -29
  83. package/cjs/wps-fill-handle.js.map +1 -1
  84. package/dist/vtable-plugins.js +5168 -93717
  85. package/dist/vtable-plugins.min.js +36 -90
  86. package/es/add-row-column.d.ts +7 -6
  87. package/es/add-row-column.js +4 -4
  88. package/es/add-row-column.js.map +1 -1
  89. package/es/auto-fill/auto-fill-manager.js +7 -9
  90. package/es/auto-fill/auto-fill-manager.js.map +1 -1
  91. package/es/auto-fill/index.d.ts +6 -10
  92. package/es/auto-fill/index.js +5 -5
  93. package/es/auto-fill/index.js.map +1 -1
  94. package/es/auto-fill/rules.js +24 -9
  95. package/es/auto-fill/rules.js.map +1 -1
  96. package/es/auto-fill/utils/fill.d.ts +1 -1
  97. package/es/auto-fill/utils/fill.js +9 -9
  98. package/es/auto-fill/utils/fill.js.map +1 -1
  99. package/es/column-series.d.ts +4 -3
  100. package/es/column-series.js +4 -4
  101. package/es/column-series.js.map +1 -1
  102. package/es/context-menu.d.ts +6 -5
  103. package/es/context-menu.js +3 -3
  104. package/es/context-menu.js.map +1 -1
  105. package/es/contextmenu/handle-menu-helper.d.ts +19 -19
  106. package/es/contextmenu/handle-menu-helper.js.map +1 -1
  107. package/es/contextmenu/menu-manager.js.map +1 -1
  108. package/es/contextmenu/types.d.ts +1 -1
  109. package/es/contextmenu/types.js +2 -2
  110. package/es/contextmenu/types.js.map +1 -1
  111. package/es/excel-edit-cell-keyboard.d.ts +4 -4
  112. package/es/excel-edit-cell-keyboard.js +3 -3
  113. package/es/excel-edit-cell-keyboard.js.map +1 -1
  114. package/es/excel-import.d.ts +5 -5
  115. package/es/excel-import.js +2 -2
  116. package/es/excel-import.js.map +1 -1
  117. package/es/fillHandleUtils/autoFillHandle.d.ts +2 -2
  118. package/es/fillHandleUtils/autoFillHandle.js.map +1 -1
  119. package/es/fillHandleUtils/translateRowObj.d.ts +3 -3
  120. package/es/fillHandleUtils/translateRowObj.js.map +1 -1
  121. package/es/filter/condition-filter.d.ts +2 -2
  122. package/es/filter/condition-filter.js.map +1 -1
  123. package/es/filter/filter-engine.d.ts +6 -6
  124. package/es/filter/filter-engine.js.map +1 -1
  125. package/es/filter/filter-state-manager.d.ts +2 -2
  126. package/es/filter/filter-state-manager.js.map +1 -1
  127. package/es/filter/filter-toolbar.d.ts +4 -4
  128. package/es/filter/filter-toolbar.js.map +1 -1
  129. package/es/filter/filter.d.ts +4 -4
  130. package/es/filter/filter.js +7 -7
  131. package/es/filter/filter.js.map +1 -1
  132. package/es/filter/types.d.ts +4 -4
  133. package/es/filter/types.js.map +1 -1
  134. package/es/filter/value-filter.d.ts +2 -2
  135. package/es/filter/value-filter.js.map +1 -1
  136. package/es/focus-highlight.d.ts +2 -2
  137. package/es/focus-highlight.js.map +1 -1
  138. package/es/gantt-export-image.js +1 -1
  139. package/es/gantt-export-image.js.map +1 -1
  140. package/es/header-highlight.js +2 -2
  141. package/es/header-highlight.js.map +1 -1
  142. package/es/highlight-header-when-select-cell.d.ts +2 -2
  143. package/es/highlight-header-when-select-cell.js.map +1 -1
  144. package/es/paste-add-row-column.d.ts +5 -5
  145. package/es/paste-add-row-column.js +3 -3
  146. package/es/paste-add-row-column.js.map +1 -1
  147. package/es/rotate-table.d.ts +13 -5
  148. package/es/rotate-table.js +3 -3
  149. package/es/rotate-table.js.map +1 -1
  150. package/es/row-series.d.ts +2 -2
  151. package/es/row-series.js.map +1 -1
  152. package/es/table-carousel-animation.d.ts +2 -2
  153. package/es/table-carousel-animation.js.map +1 -1
  154. package/es/table-export/csv/index.d.ts +2 -4
  155. package/es/table-export/csv/index.js +1 -2
  156. package/es/table-export/csv/index.js.map +1 -1
  157. package/es/table-export/excel/index.js +2 -1
  158. package/es/table-export/util/type.d.ts +6 -6
  159. package/es/table-export/util/type.js.map +1 -1
  160. package/es/table-export.d.ts +2 -2
  161. package/es/table-export.js +3 -3
  162. package/es/table-export.js.map +1 -1
  163. package/es/table-series-number.d.ts +2 -2
  164. package/es/table-series-number.js +2 -3
  165. package/es/table-series-number.js.map +1 -1
  166. package/es/wps-fill-handle.d.ts +4 -4
  167. package/es/wps-fill-handle.js +4 -4
  168. package/es/wps-fill-handle.js.map +1 -1
  169. package/package.json +8 -7
@@ -1,40 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
- void 0 === k2 && (k2 = k);
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
- enumerable: !0,
8
- get: function() {
9
- return m[k];
10
- }
11
- }), Object.defineProperty(o, k2, desc);
12
- } : function(o, m, k, k2) {
13
- void 0 === k2 && (k2 = k), o[k2] = m[k];
14
- }), __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
15
- Object.defineProperty(o, "default", {
16
- enumerable: !0,
17
- value: v
18
- });
19
- } : function(o, v) {
20
- o.default = v;
21
- }), __importStar = this && this.__importStar || function(mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
25
- return __setModuleDefault(result, mod), result;
26
- };
27
-
28
3
  Object.defineProperty(exports, "__esModule", {
29
4
  value: !0
30
5
  }), exports.cancelTransform = exports.rotate90WithTransform = exports.RotateTablePlugin = void 0;
31
6
 
32
- const vrender_1 = require("@visactor/vtable/es/vrender"), VTable = __importStar(require("@visactor/vtable"));
7
+ const vrender_1 = require("@visactor/vtable/es/vrender"), vtable_1 = require("@visactor/vtable");
33
8
 
34
9
  class RotateTablePlugin {
35
10
  constructor(pluginOptions) {
36
11
  var _a;
37
- this.id = "rotate-table", this.name = "Rotate Table", this.runTime = [ VTable.TABLE_EVENT_TYPE.INITIALIZED ],
12
+ this.id = "rotate-table", this.name = "Rotate Table", this.runTime = [ vtable_1.TABLE_EVENT_TYPE.INITIALIZED ],
38
13
  this.id = null !== (_a = null == pluginOptions ? void 0 : pluginOptions.id) && void 0 !== _a ? _a : this.id;
39
14
  }
40
15
  run(...args) {
@@ -58,7 +33,7 @@ function rotate90WithTransform(rotateDom) {
58
33
  const viewPortWidth = ("undefined" != typeof window ? {
59
34
  width: window.innerWidth || document.documentElement.clientWidth,
60
35
  height: window.innerHeight || document.documentElement.clientHeight
61
- } : vrender_1.vglobal && vrender_1.vglobal.getViewportSize ? vrender_1.vglobal.getViewportSize() : rotateDom.getBoundingClientRect()).width, domRect = this.getElement().getBoundingClientRect(), x1 = domRect.top, y1 = viewPortWidth - domRect.right, matrix = vrender_1.matrixAllocate.allocate(1, 0, 0, 1, 0, 0);
36
+ } : rotateDom.getBoundingClientRect()).width, domRect = this.getElement().getBoundingClientRect(), x1 = domRect.top, y1 = viewPortWidth - domRect.right, matrix = vrender_1.matrixAllocate.allocate(1, 0, 0, 1, 0, 0);
62
37
  matrix.translate(x1, y1);
63
38
  const centerX = rotateCenter - x1, centerY = rotateCenter - y1;
64
39
  matrix.translate(centerX, centerY), matrix.rotate(Math.PI / 2), matrix.translate(-centerX, -centerY);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/rotate-table.ts"],"names":[],"mappings":"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","file":"rotate-table.js","sourcesContent":["import {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal\n} from '@visactor/vtable/es/vrender';\nimport type { BaseTable } from '@visactor/vtable/src/core/BaseTable';\nimport * as VTable from '@visactor/vtable';\nimport type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';\nimport type { EventArg } from './types';\nimport type { Matrix } from '@visactor/vutils';\nexport type IRotateTablePluginOptions = {\n id?: string;\n // // 旋转角度\n // rotate?: number;\n};\n/**\n * 旋转表格插件。\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n * 这里使用transform:'rotate(90deg)'的设置来达到旋转的目的。 其他角度应该也是可以实现的,请自行扩展这个插件并兼容\n */\nexport class RotateTablePlugin implements VTable.plugins.IVTablePlugin {\n id = `rotate-table`;\n name = 'Rotate Table';\n runTime = [VTable.TABLE_EVENT_TYPE.INITIALIZED];\n table: VTable.ListTable;\n matrix: Matrix;\n vglobal_mapToCanvasPoint: any; // 保存vrender中vglobal的mapToCanvasPoint原方法\n // pluginOptions: IRotateTablePluginOptions;\n constructor(pluginOptions?: IRotateTablePluginOptions) {\n this.id = pluginOptions?.id ?? this.id;\n // this.pluginOptions = pluginOptions;\n }\n run(...args: [EventArg, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], VTable.BaseTableAPI]) {\n const table: VTable.BaseTableAPI = args[2];\n this.table = table as VTable.ListTable;\n //将函数rotate90WithTransform绑定到table实例上,一般情况下插件不需要将api绑定到table实例上,可以直接自身实现某个api功能\n this.table.rotate90WithTransform = rotate90WithTransform.bind(this.table);\n this.table.cancelTransform = cancelTransform.bind(this.table);\n }\n\n release() {\n // 移除绑定的事件\n }\n}\n\n/**\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n */\nexport function rotate90WithTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 90;\n const rotateCenter =\n rotateDom.clientWidth < rotateDom.clientHeight\n ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2\n : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2;\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n rotateDom.style.transform = 'rotate(90deg)';\n rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n // 获取视口尺寸的通用方法\n const getViewportDimensions = () => {\n // 浏览器环境\n if (typeof window !== 'undefined') {\n return {\n width: window.innerWidth || document.documentElement.clientWidth,\n height: window.innerHeight || document.documentElement.clientHeight\n };\n }\n // 如果有 vglobal 上的方法可以使用\n if (vglobal && vglobal.getViewportSize) {\n return vglobal.getViewportSize();\n }\n // 默认使用容器的尺寸\n return rotateDom.getBoundingClientRect();\n };\n\n const getMatrix = () => {\n const viewPortWidth = getViewportDimensions().width; //获取整个视口的尺寸\n const domRect = this.getElement().getBoundingClientRect(); //TODO 这个地方应该获取窗口的宽高 最好能从vglobal上直接获取\n const x1 = domRect.top;\n const y1 = viewPortWidth - domRect.right;\n\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n const centerX = rotateCenter - x1;\n const centerY = rotateCenter - y1;\n matrix.translate(centerX, centerY);\n matrix.rotate(Math.PI / 2);\n matrix.translate(-centerX, -centerY);\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).matrix = matrix;\n }\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint = vglobal.mapToCanvasPoint;\n }\n vglobal.mapToCanvasPoint = mapToCanvasPointForCanvas;\n //transformPointForCanvas和mapToCanvasPointForCanvas时相对应的\n //具体逻辑在 VRender/packages/vrender-core/src/common/event-transformer.ts中\n // 可以自定义这两个函数 来修改事件属性,transformPointForCanvas中将坐标转换后存放了_canvasX _canvasY,mapToCanvasPointForCanvas中加以利用\n // 在VTable的touch文件中,利用到了_canvasX _canvasY 所以如果自定义上面两个函数也需提供_canvasX _canvasY\n}\nexport function cancelTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 0;\n rotateDom.style.transform = 'none';\n rotateDom.style.transformOrigin = 'none';\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n const getMatrix = () => {\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n vglobal.mapToCanvasPoint = (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/rotate-table.ts"],"names":[],"mappings":"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","file":"rotate-table.js","sourcesContent":["import {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal\n} from '@visactor/vtable/es/vrender';\nimport type { BaseTable } from '@visactor/vtable/src/core/BaseTable';\nimport type { ListTable, pluginsDefinition, BaseTableAPI } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';\nimport type { EventArg } from './types';\n\n// Extend the ListTable interface to include the rotation methods\ndeclare module '@visactor/vtable' {\n interface ListTableAll {\n rotate90WithTransform?: (rotateDom: HTMLElement) => void;\n cancelTransform?: (rotateDom: HTMLElement) => void;\n rotateDegree?: number;\n }\n}\nimport type { Matrix } from '@visactor/vutils';\nexport type IRotateTablePluginOptions = {\n id?: string;\n // // 旋转角度\n // rotate?: number;\n};\n/**\n * 旋转表格插件。\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n * 这里使用transform:'rotate(90deg)'的设置来达到旋转的目的。 其他角度应该也是可以实现的,请自行扩展这个插件并兼容\n */\nexport class RotateTablePlugin implements pluginsDefinition.IVTablePlugin {\n id = `rotate-table`;\n name = 'Rotate Table';\n runTime = [TABLE_EVENT_TYPE.INITIALIZED];\n table: ListTable;\n matrix: Matrix;\n vglobal_mapToCanvasPoint: typeof vglobal.mapToCanvasPoint; // 保存vrender中vglobal的mapToCanvasPoint原方法\n // pluginOptions: IRotateTablePluginOptions;\n constructor(pluginOptions?: IRotateTablePluginOptions) {\n this.id = pluginOptions?.id ?? this.id;\n // this.pluginOptions = pluginOptions;\n }\n run(...args: [EventArg, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], BaseTableAPI]) {\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n //将函数rotate90WithTransform绑定到table实例上,一般情况下插件不需要将api绑定到table实例上,可以直接自身实现某个api功能\n (this.table as any).rotate90WithTransform = rotate90WithTransform.bind(this.table);\n (this.table as any).cancelTransform = cancelTransform.bind(this.table);\n }\n\n release() {\n // 移除绑定的事件\n }\n}\n\n/**\n * 业务层旋转功能没有使用收系统接口的话,用的transform:'rotate(90deg)'的设置来达到旋转的目的。vtable及vrender都没有进行坐标处理,这样就会导致交互错乱。\n * 所以需要进行坐标转换,将旋转后的坐标转换后作为VRender及VTable逻辑中用到的坐标。\n */\nexport function rotate90WithTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 90;\n const rotateCenter =\n rotateDom.clientWidth < rotateDom.clientHeight\n ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2\n : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2;\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n rotateDom.style.transform = 'rotate(90deg)';\n rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n // 获取视口尺寸的通用方法\n const getViewportDimensions = () => {\n // 浏览器环境\n if (typeof window !== 'undefined') {\n return {\n width: window.innerWidth || document.documentElement.clientWidth,\n height: window.innerHeight || document.documentElement.clientHeight\n };\n }\n // 默认使用容器的尺寸\n return rotateDom.getBoundingClientRect();\n };\n\n const getMatrix = () => {\n const viewPortWidth = getViewportDimensions().width; //获取整个视口的尺寸\n const domRect = this.getElement().getBoundingClientRect(); //TODO 这个地方应该获取窗口的宽高 最好能从vglobal上直接获取\n const x1 = domRect.top;\n const y1 = viewPortWidth - domRect.right;\n\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n const centerX = rotateCenter - x1;\n const centerY = rotateCenter - y1;\n matrix.translate(centerX, centerY);\n matrix.rotate(Math.PI / 2);\n matrix.translate(-centerX, -centerY);\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).matrix = matrix;\n }\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect as any, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect as any,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint = vglobal.mapToCanvasPoint;\n }\n vglobal.mapToCanvasPoint = mapToCanvasPointForCanvas;\n //transformPointForCanvas和mapToCanvasPointForCanvas时相对应的\n //具体逻辑在 VRender/packages/vrender-core/src/common/event-transformer.ts中\n // 可以自定义这两个函数 来修改事件属性,transformPointForCanvas中将坐标转换后存放了_canvasX _canvasY,mapToCanvasPointForCanvas中加以利用\n // 在VTable的touch文件中,利用到了_canvasX _canvasY 所以如果自定义上面两个函数也需提供_canvasX _canvasY\n}\nexport function cancelTransform(this: BaseTable, rotateDom: HTMLElement) {\n this.rotateDegree = 0;\n rotateDom.style.transform = 'none';\n rotateDom.style.transformOrigin = 'none';\n const domRect = this.getElement().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n };\n };\n const getMatrix = () => {\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this.getElement(), getMatrix, getRect as any, transformPointForCanvas);\n registerWindowEventTransformer(\n this.scenegraph.stage.window,\n this.getElement(),\n getMatrix,\n getRect as any,\n transformPointForCanvas\n );\n const rotateRablePlugin = this.pluginManager.getPluginByName('Rotate Table');\n if (rotateRablePlugin) {\n vglobal.mapToCanvasPoint = (rotateRablePlugin as RotateTablePlugin).vglobal_mapToCanvasPoint;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { TYPES, ListTable, plugins } from '@visactor/vtable';
1
+ import type { TYPES, ListTable, pluginsDefinition } from '@visactor/vtable';
2
2
  export interface RowSeriesOptions {
3
3
  id?: string;
4
4
  rowCount: number;
@@ -6,7 +6,7 @@ export interface RowSeriesOptions {
6
6
  rowSeriesNumber?: TYPES.IRowSeriesNumber;
7
7
  autoExtendRowTriggerKeys?: ('ArrowDown' | 'Enter')[];
8
8
  }
9
- export declare class RowSeriesPlugin implements plugins.IVTablePlugin {
9
+ export declare class RowSeriesPlugin implements pluginsDefinition.IVTablePlugin {
10
10
  id: string;
11
11
  name: string;
12
12
  runTime: ("before_keydown" | "before_init")[];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/row-series.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAmBpD,MAAa,eAAe;IAO1B,YAAY,aAA+B;;QAN3C,OAAE,GAAG,YAAY,CAAC;QAClB,SAAI,GAAG,YAAY,CAAC;QACpB,YAAO,GAAG,CAAC,yBAAgB,CAAC,WAAW,EAAE,yBAAgB,CAAC,cAAc,CAAC,CAAC;QAKxE,IAAI,CAAC,EAAE,GAAG,MAAA,aAAa,CAAC,EAAE,mCAAI,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC;IACD,GAAG,CAAC,GAAG,IAAW;;QAChB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAgB,CAAC,WAAW,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAiB,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,KAAkB,CAAC;YAChC,MAAM,OAAO,GAAgC,SAAS,CAAC,OAAO,CAAC;YAC/D,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3F;YACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;gBACtC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE;oBAC7C,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC;iBACxC;aACF;iBAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;gBACnC,OAAO,CAAC,eAAe,GAAG;oBACxB,KAAK,EAAE,MAAM;iBACd,CAAC;aACH;SACF;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAgB,CAAC,cAAc,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAE1B,IACE,CAAA,MAAA,IAAI,CAAC,aAAa,CAAC,wBAAwB,0CAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EACtE;gBACC,IAAI,CAAC,KAAmB,CAAC,SAAS,CACjC,IAAI,CAAC,aAAa,CAAC,aAAa;oBAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;oBAC3F,CAAC,CAAC,EAAE,CACP,CAAC;aACH;SACF;IACH,CAAC;CACF;AAlDD,0CAkDC","file":"row-series.js","sourcesContent":["import { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { TYPES, BaseTableAPI, ListTable, ListTableConstructorOptions, plugins } from '@visactor/vtable';\n/**\n * 添加行和列的插件的配置选项\n */\nexport interface RowSeriesOptions {\n id?: string;\n rowCount: number;\n fillRowRecord?: (index: number) => any;\n rowSeriesNumber?: TYPES.IRowSeriesNumber;\n /**\n * 是否自动扩展行\n * @default true\n */\n autoExtendRowTriggerKeys?: ('ArrowDown' | 'Enter')[];\n}\n/**\n * 生成行序号标题的插件\n */\nexport class RowSeriesPlugin implements plugins.IVTablePlugin {\n id = `row-series`;\n name = 'Row Series';\n runTime = [TABLE_EVENT_TYPE.BEFORE_INIT, TABLE_EVENT_TYPE.BEFORE_KEYDOWN];\n pluginOptions: RowSeriesOptions;\n table: ListTable;\n\n constructor(pluginOptions: RowSeriesOptions) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = Object.assign({ rowCount: 100 }, pluginOptions);\n }\n run(...args: any[]) {\n if (args[1] === TABLE_EVENT_TYPE.BEFORE_INIT) {\n const eventArgs = args[0];\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n const options: ListTableConstructorOptions = eventArgs.options;\n const records = options.records ?? [];\n //用空数据将records填充到pluginOptions.rowCount\n for (let i = records.length; i < this.pluginOptions.rowCount; i++) {\n records.push(this.pluginOptions.fillRowRecord ? this.pluginOptions.fillRowRecord(i) : {});\n }\n options.records = records;\n if (this.pluginOptions.rowSeriesNumber) {\n options.rowSeriesNumber = this.pluginOptions.rowSeriesNumber;\n if (!this.pluginOptions.rowSeriesNumber.width) {\n options.rowSeriesNumber.width = 'auto';\n }\n } else if (!options.rowSeriesNumber) {\n options.rowSeriesNumber = {\n width: 'auto'\n };\n }\n } else if (args[1] === TABLE_EVENT_TYPE.BEFORE_KEYDOWN) {\n const eventArgs = args[0];\n\n const e = eventArgs.event;\n\n if (\n this.pluginOptions.autoExtendRowTriggerKeys?.includes(e.key) &&\n this.table.stateManager.select.cellPos.row === this.table.rowCount - 1\n ) {\n (this.table as ListTable).addRecord(\n this.pluginOptions.fillRowRecord\n ? this.pluginOptions.fillRowRecord(this.table.rowCount - this.table.columnHeaderLevelCount)\n : {}\n );\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/row-series.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAmBpD,MAAa,eAAe;IAO1B,YAAY,aAA+B;;QAN3C,OAAE,GAAG,YAAY,CAAC;QAClB,SAAI,GAAG,YAAY,CAAC;QACpB,YAAO,GAAG,CAAC,yBAAgB,CAAC,WAAW,EAAE,yBAAgB,CAAC,cAAc,CAAC,CAAC;QAKxE,IAAI,CAAC,EAAE,GAAG,MAAA,aAAa,CAAC,EAAE,mCAAI,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC;IACD,GAAG,CAAC,GAAG,IAAW;;QAChB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAgB,CAAC,WAAW,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAiB,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,KAAkB,CAAC;YAChC,MAAM,OAAO,GAAgC,SAAS,CAAC,OAAO,CAAC;YAC/D,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3F;YACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;gBACtC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE;oBAC7C,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC;iBACxC;aACF;iBAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;gBACnC,OAAO,CAAC,eAAe,GAAG;oBACxB,KAAK,EAAE,MAAM;iBACd,CAAC;aACH;SACF;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAgB,CAAC,cAAc,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAE1B,IACE,CAAA,MAAA,IAAI,CAAC,aAAa,CAAC,wBAAwB,0CAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EACtE;gBACC,IAAI,CAAC,KAAmB,CAAC,SAAS,CACjC,IAAI,CAAC,aAAa,CAAC,aAAa;oBAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;oBAC3F,CAAC,CAAC,EAAE,CACP,CAAC;aACH;SACF;IACH,CAAC;CACF;AAlDD,0CAkDC","file":"row-series.js","sourcesContent":["import { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { TYPES, BaseTableAPI, ListTable, ListTableConstructorOptions, pluginsDefinition } from '@visactor/vtable';\n/**\n * 添加行和列的插件的配置选项\n */\nexport interface RowSeriesOptions {\n id?: string;\n rowCount: number;\n fillRowRecord?: (index: number) => any;\n rowSeriesNumber?: TYPES.IRowSeriesNumber;\n /**\n * 是否自动扩展行\n * @default true\n */\n autoExtendRowTriggerKeys?: ('ArrowDown' | 'Enter')[];\n}\n/**\n * 生成行序号标题的插件\n */\nexport class RowSeriesPlugin implements pluginsDefinition.IVTablePlugin {\n id = `row-series`;\n name = 'Row Series';\n runTime = [TABLE_EVENT_TYPE.BEFORE_INIT, TABLE_EVENT_TYPE.BEFORE_KEYDOWN];\n pluginOptions: RowSeriesOptions;\n table: ListTable;\n\n constructor(pluginOptions: RowSeriesOptions) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = Object.assign({ rowCount: 100 }, pluginOptions);\n }\n run(...args: any[]) {\n if (args[1] === TABLE_EVENT_TYPE.BEFORE_INIT) {\n const eventArgs = args[0];\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n const options: ListTableConstructorOptions = eventArgs.options;\n const records = options.records ?? [];\n //用空数据将records填充到pluginOptions.rowCount\n for (let i = records.length; i < this.pluginOptions.rowCount; i++) {\n records.push(this.pluginOptions.fillRowRecord ? this.pluginOptions.fillRowRecord(i) : {});\n }\n options.records = records;\n if (this.pluginOptions.rowSeriesNumber) {\n options.rowSeriesNumber = this.pluginOptions.rowSeriesNumber;\n if (!this.pluginOptions.rowSeriesNumber.width) {\n options.rowSeriesNumber.width = 'auto';\n }\n } else if (!options.rowSeriesNumber) {\n options.rowSeriesNumber = {\n width: 'auto'\n };\n }\n } else if (args[1] === TABLE_EVENT_TYPE.BEFORE_KEYDOWN) {\n const eventArgs = args[0];\n\n const e = eventArgs.event;\n\n if (\n this.pluginOptions.autoExtendRowTriggerKeys?.includes(e.key) &&\n this.table.stateManager.select.cellPos.row === this.table.rowCount - 1\n ) {\n (this.table as ListTable).addRecord(\n this.pluginOptions.fillRowRecord\n ? this.pluginOptions.fillRowRecord(this.table.rowCount - this.table.columnHeaderLevelCount)\n : {}\n );\n }\n }\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { EasingType } from '@visactor/vtable/es/vrender';
2
2
  import type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';
3
- import type * as VTable from '@visactor/vtable';
3
+ import type { pluginsDefinition } from '@visactor/vtable';
4
4
  export interface ITableCarouselAnimationPluginOptions {
5
5
  id?: string;
6
6
  rowCount?: number;
@@ -19,7 +19,7 @@ export interface ITableCarouselAnimationPluginOptions {
19
19
  animation?: boolean;
20
20
  } | undefined;
21
21
  }
22
- export declare class TableCarouselAnimationPlugin implements VTable.plugins.IVTablePlugin {
22
+ export declare class TableCarouselAnimationPlugin implements pluginsDefinition.IVTablePlugin {
23
23
  id: string;
24
24
  name: string;
25
25
  runTime: "initialized"[];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table-carousel-animation.ts"],"names":[],"mappings":"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","file":"table-carousel-animation.js","sourcesContent":["import type { EasingType } from '@visactor/vtable/es/vrender';\nimport type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type * as VTable from '@visactor/vtable';\nfunction isInteger(value: number) {\n return Math.floor(value) === value;\n}\n\nexport interface ITableCarouselAnimationPluginOptions {\n id?: string;\n rowCount?: number;\n colCount?: number;\n animationDuration?: number;\n animationDelay?: number;\n animationEasing?: EasingType;\n autoPlay?: boolean;\n autoPlayDelay?: number;\n\n customDistRowFunction?: (row: number, table: BaseTableAPI) => { distRow: number; animation?: boolean } | undefined;\n customDistColFunction?: (col: number, table: BaseTableAPI) => { distCol: number; animation?: boolean } | undefined;\n}\n\nexport class TableCarouselAnimationPlugin implements VTable.plugins.IVTablePlugin {\n id = `table-carousel-animation`;\n name = 'Table Carousel Animation';\n runTime = [TABLE_EVENT_TYPE.INITIALIZED];\n table: BaseTableAPI;\n\n rowCount: number;\n colCount: number;\n animationDuration: number;\n animationDelay: number;\n animationEasing: EasingType;\n\n playing: boolean;\n row: number;\n col: number;\n willUpdateRow: boolean = false;\n willUpdateCol: boolean = false;\n autoPlay: boolean;\n autoPlayDelay: number;\n\n customDistRowFunction?: (row: number, table: BaseTableAPI) => { distRow: number; animation?: boolean } | undefined;\n customDistColFunction?: (col: number, table: BaseTableAPI) => { distCol: number; animation?: boolean } | undefined;\n constructor(options: ITableCarouselAnimationPluginOptions = {}) {\n this.id = options.id ?? this.id;\n this.rowCount = options?.rowCount ?? undefined;\n this.colCount = options?.colCount ?? undefined;\n this.animationDuration = options?.animationDuration ?? 500;\n this.animationDelay = options?.animationDelay ?? 1000;\n this.animationEasing = options?.animationEasing ?? 'linear';\n this.autoPlay = options?.autoPlay ?? false;\n this.autoPlayDelay = options?.autoPlayDelay ?? 0;\n this.customDistColFunction = options.customDistColFunction;\n this.customDistRowFunction = options.customDistRowFunction;\n }\n run(...args: any[]) {\n if (!this.table) {\n this.table = args[2] as BaseTableAPI;\n }\n this.reset();\n\n if (this.autoPlay) {\n setTimeout(() => {\n this.play();\n }, this.autoPlayDelay);\n }\n }\n\n reset() {\n this.playing = false;\n this.row = this.table.frozenRowCount;\n this.col = this.table.frozenColCount;\n }\n\n play() {\n if (!this.table) {\n throw new Error('table is not initialized');\n }\n this.playing = true;\n\n if (this.rowCount && !this.willUpdateRow) {\n this.updateRow();\n } else if (this.colCount && !this.willUpdateCol) {\n this.updateCol();\n }\n }\n\n pause() {\n this.playing = false;\n }\n\n updateRow() {\n if (!this.playing || this.table.isReleased) {\n return;\n }\n\n let animation = true;\n const customRow = this.customDistRowFunction && this.customDistRowFunction(this.row, this.table);\n if (customRow) {\n this.row = customRow.distRow;\n animation = customRow.animation ?? true;\n } else if (isInteger(this.row) && this.table.scenegraph.proxy.screenTopRow !== this.row) {\n this.row = this.table.frozenRowCount;\n animation = false;\n } else if (!isInteger(this.row) && this.table.scenegraph.proxy.screenTopRow !== Math.floor(this.row)) {\n this.row = this.table.frozenRowCount;\n animation = false;\n } else {\n this.row += this.rowCount;\n }\n this.table.scrollToRow(\n this.row,\n animation ? { duration: this.animationDuration, easing: this.animationEasing } : undefined\n );\n this.willUpdateRow = true;\n setTimeout(\n () => {\n this.willUpdateRow = false;\n this.updateRow();\n },\n // animation ? this.animationDuration + this.animationDelay : 0\n this.animationDuration + this.animationDelay\n );\n }\n\n updateCol() {\n if (!this.playing || this.table.isReleased) {\n return;\n }\n\n let animation = true;\n const customCol = this.customDistColFunction && this.customDistColFunction(this.col, this.table);\n if (customCol) {\n this.col = customCol.distCol;\n animation = customCol.animation ?? true;\n } else if (isInteger(this.col) && this.table.scenegraph.proxy.screenLeftCol !== this.col) {\n this.col = this.table.frozenColCount;\n animation = false;\n } else if (!isInteger(this.col) && this.table.scenegraph.proxy.screenLeftCol !== Math.floor(this.col)) {\n this.col = this.table.frozenColCount;\n animation = false;\n } else {\n this.col += this.colCount;\n }\n\n this.table.scrollToCol(\n this.col,\n animation ? { duration: this.animationDuration, easing: this.animationEasing } : undefined\n );\n\n this.willUpdateCol = true;\n setTimeout(\n () => {\n this.willUpdateCol = false;\n this.updateCol();\n },\n // animation ? this.animationDuration + this.animationDelay : 0\n this.animationDuration + this.animationDelay\n );\n }\n release() {\n // do nothing\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/table-carousel-animation.ts"],"names":[],"mappings":"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","file":"table-carousel-animation.js","sourcesContent":["import type { EasingType } from '@visactor/vtable/es/vrender';\nimport type { BaseTableAPI } from '@visactor/vtable/es/ts-types/base-table';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { pluginsDefinition } from '@visactor/vtable';\nfunction isInteger(value: number) {\n return Math.floor(value) === value;\n}\n\nexport interface ITableCarouselAnimationPluginOptions {\n id?: string;\n rowCount?: number;\n colCount?: number;\n animationDuration?: number;\n animationDelay?: number;\n animationEasing?: EasingType;\n autoPlay?: boolean;\n autoPlayDelay?: number;\n\n customDistRowFunction?: (row: number, table: BaseTableAPI) => { distRow: number; animation?: boolean } | undefined;\n customDistColFunction?: (col: number, table: BaseTableAPI) => { distCol: number; animation?: boolean } | undefined;\n}\n\nexport class TableCarouselAnimationPlugin implements pluginsDefinition.IVTablePlugin {\n id = `table-carousel-animation`;\n name = 'Table Carousel Animation';\n runTime = [TABLE_EVENT_TYPE.INITIALIZED];\n table: BaseTableAPI;\n\n rowCount: number;\n colCount: number;\n animationDuration: number;\n animationDelay: number;\n animationEasing: EasingType;\n\n playing: boolean;\n row: number;\n col: number;\n willUpdateRow: boolean = false;\n willUpdateCol: boolean = false;\n autoPlay: boolean;\n autoPlayDelay: number;\n\n customDistRowFunction?: (row: number, table: BaseTableAPI) => { distRow: number; animation?: boolean } | undefined;\n customDistColFunction?: (col: number, table: BaseTableAPI) => { distCol: number; animation?: boolean } | undefined;\n constructor(options: ITableCarouselAnimationPluginOptions = {}) {\n this.id = options.id ?? this.id;\n this.rowCount = options?.rowCount ?? undefined;\n this.colCount = options?.colCount ?? undefined;\n this.animationDuration = options?.animationDuration ?? 500;\n this.animationDelay = options?.animationDelay ?? 1000;\n this.animationEasing = options?.animationEasing ?? 'linear';\n this.autoPlay = options?.autoPlay ?? false;\n this.autoPlayDelay = options?.autoPlayDelay ?? 0;\n this.customDistColFunction = options.customDistColFunction;\n this.customDistRowFunction = options.customDistRowFunction;\n }\n run(...args: any[]) {\n if (!this.table) {\n this.table = args[2] as BaseTableAPI;\n }\n this.reset();\n\n if (this.autoPlay) {\n setTimeout(() => {\n this.play();\n }, this.autoPlayDelay);\n }\n }\n\n reset() {\n this.playing = false;\n this.row = this.table.frozenRowCount;\n this.col = this.table.frozenColCount;\n }\n\n play() {\n if (!this.table) {\n throw new Error('table is not initialized');\n }\n this.playing = true;\n\n if (this.rowCount && !this.willUpdateRow) {\n this.updateRow();\n } else if (this.colCount && !this.willUpdateCol) {\n this.updateCol();\n }\n }\n\n pause() {\n this.playing = false;\n }\n\n updateRow() {\n if (!this.playing || this.table.isReleased) {\n return;\n }\n\n let animation = true;\n const customRow = this.customDistRowFunction && this.customDistRowFunction(this.row, this.table);\n if (customRow) {\n this.row = customRow.distRow;\n animation = customRow.animation ?? true;\n } else if (isInteger(this.row) && this.table.scenegraph.proxy.screenTopRow !== this.row) {\n this.row = this.table.frozenRowCount;\n animation = false;\n } else if (!isInteger(this.row) && this.table.scenegraph.proxy.screenTopRow !== Math.floor(this.row)) {\n this.row = this.table.frozenRowCount;\n animation = false;\n } else {\n this.row += this.rowCount;\n }\n this.table.scrollToRow(\n this.row,\n animation ? { duration: this.animationDuration, easing: this.animationEasing } : undefined\n );\n this.willUpdateRow = true;\n setTimeout(\n () => {\n this.willUpdateRow = false;\n this.updateRow();\n },\n // animation ? this.animationDuration + this.animationDelay : 0\n this.animationDuration + this.animationDelay\n );\n }\n\n updateCol() {\n if (!this.playing || this.table.isReleased) {\n return;\n }\n\n let animation = true;\n const customCol = this.customDistColFunction && this.customDistColFunction(this.col, this.table);\n if (customCol) {\n this.col = customCol.distCol;\n animation = customCol.animation ?? true;\n } else if (isInteger(this.col) && this.table.scenegraph.proxy.screenLeftCol !== this.col) {\n this.col = this.table.frozenColCount;\n animation = false;\n } else if (!isInteger(this.col) && this.table.scenegraph.proxy.screenLeftCol !== Math.floor(this.col)) {\n this.col = this.table.frozenColCount;\n animation = false;\n } else {\n this.col += this.colCount;\n }\n\n this.table.scrollToCol(\n this.col,\n animation ? { duration: this.animationDuration, easing: this.animationEasing } : undefined\n );\n\n this.willUpdateCol = true;\n setTimeout(\n () => {\n this.willUpdateCol = false;\n this.updateCol();\n },\n // animation ? this.animationDuration + this.animationDelay : 0\n this.animationDuration + this.animationDelay\n );\n }\n release() {\n // do nothing\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
- import type * as VTable from '@visactor/vtable';
1
+ import type { ListTable, PivotTable, PivotChart } from '@visactor/vtable';
2
2
  import type { CellInfo } from '../excel';
3
- type IVTable = VTable.ListTable | VTable.PivotTable | VTable.PivotChart;
4
3
  export type ExportVTableToCsvOptions = {
5
4
  formatExportOutput?: (cellInfo: CellInfo) => string | undefined;
6
5
  escape?: boolean;
@@ -8,5 +7,4 @@ export type ExportVTableToCsvOptions = {
8
7
  downloadFile?: boolean;
9
8
  fileName?: string;
10
9
  };
11
- export declare function exportVTableToCsv(tableInstance: IVTable, option?: ExportVTableToCsvOptions): string;
12
- export {};
10
+ export declare function exportVTableToCsv(tableInstance: ListTable | PivotTable | PivotChart, option?: ExportVTableToCsvOptions): string;
@@ -50,5 +50,4 @@ function escapeForCSV(str) {
50
50
  return /[,"\r\n]/.test(escapedStr) && (escapedStr = `"${escapedStr}"`), escapedStr;
51
51
  }
52
52
 
53
- //# sourceMappingURL=index.js.map
54
53
  exports.exportVTableToCsv = exportVTableToCsv;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table-export/csv/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type * as VTable from '@visactor/vtable';\nimport type { CellInfo } from '../excel';\nimport { handlePaginationExport } from '../util/pagination';\n\ntype IVTable = VTable.ListTable | VTable.PivotTable | VTable.PivotChart;\ntype CellRange = VTable.TYPES.CellRange;\n\nconst newLine = '\\r\\n';\nconst separator = ',';\n\nexport type ExportVTableToCsvOptions = {\n formatExportOutput?: (cellInfo: CellInfo) => string | undefined;\n escape?: boolean;\n exportAllData?: boolean;\n downloadFile?: boolean;\n fileName?: string;\n};\n\nexport function exportVTableToCsv(tableInstance: IVTable, option?: ExportVTableToCsvOptions): string {\n const exportAllData = !!option?.exportAllData;\n const { handleRowCount, reset } = handlePaginationExport(tableInstance, exportAllData);\n const minRow = 0;\n const maxRow = handleRowCount();\n const minCol = 0;\n const maxCol = tableInstance.colCount - 1;\n\n let copyValue = '';\n for (let row = minRow; row <= maxRow; row++) {\n for (let col = minCol; col <= maxCol; col++) {\n const copyCellValue = getCopyCellValue(col, row, tableInstance, option);\n if (typeof Promise !== 'undefined' && copyCellValue instanceof Promise) {\n // not support async\n } else {\n const strCellValue = `${copyCellValue === undefined ? '' : copyCellValue}`;\n if (/^\\[object .*\\]$/.exec(strCellValue)) {\n // ignore object\n } else {\n copyValue += strCellValue;\n }\n }\n copyValue += separator;\n }\n copyValue += newLine;\n }\n // 恢复透视表的pagination配置\n reset();\n return copyValue;\n}\n\nfunction getCopyCellValue(\n col: number,\n row: number,\n tableInstance: IVTable,\n option?: ExportVTableToCsvOptions\n): string | Promise<string> | void {\n const rawRecord = tableInstance.getCellRawRecord(col, row);\n const cellValue = (rawRecord && rawRecord.vtableMergeName) ?? tableInstance.getCellValue(col, row, false);\n\n if (option?.formatExportOutput) {\n const cellType = tableInstance.getCellType(col, row);\n const cellInfo = { cellType, cellValue, table: tableInstance, col, row };\n const formattedValue = option.formatExportOutput(cellInfo);\n if (formattedValue !== undefined) {\n if (typeof formattedValue === 'string') {\n return '\"' + formattedValue + '\"';\n }\n return formattedValue;\n }\n }\n const cellRange: CellRange = tableInstance.getCellRange(col, row);\n const copyStartCol = cellRange.start.col;\n const copyStartRow = cellRange.start.row;\n\n if (copyStartCol !== col || copyStartRow !== row) {\n return '';\n }\n\n let value = cellValue;\n if (option?.escape) {\n value = escapeForCSV(value);\n } else if (typeof value === 'string') {\n value = '\"' + value + '\"';\n }\n return value;\n}\n\n/**\n * 将字符串中的特殊符号进行转义,以避免干扰CSV解析\n * @param {string} str - 需要处理的字符串\n * @return {string} - 已处理的字符串\n */\nfunction escapeForCSV(str: any) {\n if (typeof str !== 'string') {\n return str;\n }\n\n // 替换双引号为两个双引号\n let escapedStr = str.replace(/\"/g, '\"\"');\n\n // 如果字符串中包含逗号、换行符或双引号,则需要用双引号包裹\n if (/[,\"\\r\\n]/.test(escapedStr)) {\n escapedStr = `\"${escapedStr}\"`;\n }\n\n return escapedStr;\n}\n"]}
1
+ {"version":3,"sources":["../src/table-export/csv/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { ListTable, PivotTable, PivotChart, TYPES } from '@visactor/vtable';\nimport type { CellInfo } from '../excel';\nimport { handlePaginationExport } from '../util/pagination';\n\ntype IVTable = ListTable | PivotTable | PivotChart;\ntype CellRange = TYPES.CellRange;\n\nconst newLine = '\\r\\n';\nconst separator = ',';\n\nexport type ExportVTableToCsvOptions = {\n formatExportOutput?: (cellInfo: CellInfo) => string | undefined;\n escape?: boolean;\n exportAllData?: boolean;\n downloadFile?: boolean;\n fileName?: string;\n};\n\nexport function exportVTableToCsv(\n tableInstance: ListTable | PivotTable | PivotChart,\n option?: ExportVTableToCsvOptions\n): string {\n const exportAllData = !!option?.exportAllData;\n const { handleRowCount, reset } = handlePaginationExport(tableInstance, exportAllData);\n const minRow = 0;\n const maxRow = handleRowCount();\n const minCol = 0;\n const maxCol = tableInstance.colCount - 1;\n\n let copyValue = '';\n for (let row = minRow; row <= maxRow; row++) {\n for (let col = minCol; col <= maxCol; col++) {\n const copyCellValue = getCopyCellValue(col, row, tableInstance, option);\n if (typeof Promise !== 'undefined' && copyCellValue instanceof Promise) {\n // not support async\n } else {\n const strCellValue = `${copyCellValue === undefined ? '' : copyCellValue}`;\n if (/^\\[object .*\\]$/.exec(strCellValue)) {\n // ignore object\n } else {\n copyValue += strCellValue;\n }\n }\n copyValue += separator;\n }\n copyValue += newLine;\n }\n // 恢复透视表的pagination配置\n reset();\n return copyValue;\n}\n\nfunction getCopyCellValue(\n col: number,\n row: number,\n tableInstance: ListTable | PivotTable | PivotChart,\n option?: ExportVTableToCsvOptions\n): string | Promise<string> | void {\n const rawRecord = tableInstance.getCellRawRecord(col, row);\n const cellValue = (rawRecord && rawRecord.vtableMergeName) ?? tableInstance.getCellValue(col, row, false);\n\n if (option?.formatExportOutput) {\n const cellType = tableInstance.getCellType(col, row);\n const cellInfo = { cellType, cellValue, table: tableInstance, col, row };\n const formattedValue = option.formatExportOutput(cellInfo);\n if (formattedValue !== undefined) {\n if (typeof formattedValue === 'string') {\n return '\"' + formattedValue + '\"';\n }\n return formattedValue;\n }\n }\n const cellRange: CellRange = tableInstance.getCellRange(col, row);\n const copyStartCol = cellRange.start.col;\n const copyStartRow = cellRange.start.row;\n\n if (copyStartCol !== col || copyStartRow !== row) {\n return '';\n }\n\n let value = cellValue;\n if (option?.escape) {\n value = escapeForCSV(value);\n } else if (typeof value === 'string') {\n value = '\"' + value + '\"';\n }\n return value;\n}\n\n/**\n * 将字符串中的特殊符号进行转义,以避免干扰CSV解析\n * @param {string} str - 需要处理的字符串\n * @return {string} - 已处理的字符串\n */\nfunction escapeForCSV(str: any) {\n if (typeof str !== 'string') {\n return str;\n }\n\n // 替换双引号为两个双引号\n let escapedStr = str.replace(/\"/g, '\"\"');\n\n // 如果字符串中包含逗号、换行符或双引号,则需要用双引号包裹\n if (/[,\"\\r\\n]/.test(escapedStr)) {\n escapedStr = `\"${escapedStr}\"`;\n }\n\n return escapedStr;\n}\n"]}
@@ -239,4 +239,5 @@ function needCellImageExport(cellType, isAxisCell, isCustomCell, isTextWithIcon,
239
239
  return !(null == options ? void 0 : options.skipImageExportCellType) || ("image" === cellType || "video" === cellType || "progressbar" === cellType || "sparkline" === cellType || "chart" === cellType ? !options.skipImageExportCellType.includes(cellType) : isAxisCell ? !options.skipImageExportCellType.includes("chart") : isCustomCell ? !options.skipImageExportCellType.includes("custom") : !isTextWithIcon || !options.skipImageExportCellType.includes("textWithIcon"));
240
240
  }
241
241
 
242
+ //# sourceMappingURL=index.js.map
242
243
  exports.exportVTableToExcel = exportVTableToExcel;
@@ -1,6 +1,6 @@
1
- import type * as VTable from '@visactor/vtable';
2
- export type IVTable = VTable.ListTable | VTable.PivotTable | VTable.PivotChart;
3
- export type CellRange = VTable.TYPES.CellRange;
4
- export type CellStyle = VTable.TYPES.CellStyle;
5
- export type LineDashsDef = VTable.TYPES.LineDashsDef;
6
- export type CellType = VTable.TYPES.ColumnTypeOption;
1
+ import type { ListTable, PivotTable, PivotChart, TYPES } from '@visactor/vtable';
2
+ export type IVTable = ListTable | PivotTable | PivotChart;
3
+ export type CellRange = TYPES.CellRange;
4
+ export type CellStyle = TYPES.CellStyle;
5
+ export type LineDashsDef = TYPES.LineDashsDef;
6
+ export type CellType = TYPES.ColumnTypeOption;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table-export/util/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type * as VTable from '@visactor/vtable';\n\nexport type IVTable = VTable.ListTable | VTable.PivotTable | VTable.PivotChart;\nexport type CellRange = VTable.TYPES.CellRange;\nexport type CellStyle = VTable.TYPES.CellStyle;\nexport type LineDashsDef = VTable.TYPES.LineDashsDef;\nexport type CellType = VTable.TYPES.ColumnTypeOption;\n"]}
1
+ {"version":3,"sources":["../src/table-export/util/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type { ListTable, PivotTable, PivotChart, TYPES } from '@visactor/vtable';\n\nexport type IVTable = ListTable | PivotTable | PivotChart;\nexport type CellRange = TYPES.CellRange;\nexport type CellStyle = TYPES.CellStyle;\nexport type LineDashsDef = TYPES.LineDashsDef;\nexport type CellType = TYPES.ColumnTypeOption;\n"]}
@@ -1,11 +1,11 @@
1
- import * as VTable from '@visactor/vtable';
1
+ import type { pluginsDefinition } from '@visactor/vtable';
2
2
  import type { ExportVTableToCsvOptions, ExportVTableToExcelOptions } from './table-export/index';
3
3
  export type TableExportPluginOptions = {
4
4
  exportExcelOptions?: ExportVTableToExcelOptions;
5
5
  exportCsvOptions?: ExportVTableToCsvOptions;
6
6
  exportOnIdle?: boolean;
7
7
  };
8
- export declare class TableExportPlugin implements VTable.plugins.IVTablePlugin {
8
+ export declare class TableExportPlugin implements pluginsDefinition.IVTablePlugin {
9
9
  id: string;
10
10
  name: string;
11
11
  runTime: any[];
@@ -1,29 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
- void 0 === k2 && (k2 = k);
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
- enumerable: !0,
8
- get: function() {
9
- return m[k];
10
- }
11
- }), Object.defineProperty(o, k2, desc);
12
- } : function(o, m, k, k2) {
13
- void 0 === k2 && (k2 = k), o[k2] = m[k];
14
- }), __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
15
- Object.defineProperty(o, "default", {
16
- enumerable: !0,
17
- value: v
18
- });
19
- } : function(o, v) {
20
- o.default = v;
21
- }), __importStar = this && this.__importStar || function(mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
25
- return __setModuleDefault(result, mod), result;
26
- }, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
3
+ var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
27
4
  return new (P || (P = Promise))((function(resolve, reject) {
28
5
  function fulfilled(value) {
29
6
  try {
@@ -53,11 +30,11 @@ Object.defineProperty(exports, "__esModule", {
53
30
  value: !0
54
31
  }), exports.TableExportPlugin = void 0;
55
32
 
56
- const VTable = __importStar(require("@visactor/vtable")), index_1 = require("./table-export/index");
33
+ const vtable_1 = require("@visactor/vtable"), index_1 = require("./table-export/index");
57
34
 
58
35
  class TableExportPlugin {
59
36
  constructor(pluginOptions) {
60
- this.id = "table-export-plugin", this.name = "TableExport", this.runTime = [ VTable.TABLE_EVENT_TYPE.INITIALIZED ],
37
+ this.id = "table-export-plugin", this.name = "TableExport", this.runTime = [ vtable_1.TABLE_EVENT_TYPE.INITIALIZED ],
61
38
  this.pluginOptions = Object.assign({
62
39
  exportOnIdle: !1,
63
40
  exportExcelOptions: {
@@ -71,7 +48,7 @@ class TableExportPlugin {
71
48
  }, pluginOptions);
72
49
  }
73
50
  run(...args) {
74
- if (args[1] === VTable.TABLE_EVENT_TYPE.INITIALIZED) {
51
+ if (args[1] === vtable_1.TABLE_EVENT_TYPE.INITIALIZED) {
75
52
  args[0];
76
53
  this.table = args[2], this.table.exportToCsv = () => {
77
54
  const options = this.pluginOptions.exportCsvOptions;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table-export.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAE3C,gDAA0G;AAoB1G,MAAa,iBAAiB;IAM5B,YAAY,aAAuC;QALnD,OAAE,GAAG,qBAAqB,CAAC;QAC3B,SAAI,GAAG,aAAa,CAAC;QACrB,YAAO,GAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAIrD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAChC;YACE,YAAY,EAAE,KAAK;YACnB,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC9D,gBAAgB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAC7D,EACD,aAAa,CACd,CAAC;IACJ,CAAC;IAKD,GAAG,CAAC,GAAG,IAAW;QAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,CAAC,KAAa,CAAC,WAAW,GAAG,GAAG,EAAE;gBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBACpD,IAAI,OAAO,CAAC,YAAY,EAAE;oBACxB,OAAO,IAAA,mBAAW,EAAC,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;iBAC1F;gBACD,OAAO,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC,CAAC;YACD,IAAI,CAAC,KAAa,CAAC,aAAa,GAAG,GAAS,EAAE;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBACtD,IAAI,OAAO,CAAC,YAAY,EAAE;oBACxB,OAAO,MAAM,IAAA,qBAAa,EACxB,CAAC,MAAM,IAAA,2BAAmB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAgB,EAChG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAC7B,CAAC;iBACH;gBACD,OAAO,IAAA,2BAAmB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACnF,CAAC,CAAA,CAAC;SACH;IACH,CAAC;IAMD,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAQ,IAAI,CAAC,KAAa,CAAC,WAAW,CAAC;YACvC,OAAQ,IAAI,CAAC,KAAa,CAAC,aAAa,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;CACF;AA1DD,8CA0DC","file":"table-export.js","sourcesContent":["import * as VTable from '@visactor/vtable';\nimport type { ExportVTableToCsvOptions, ExportVTableToExcelOptions } from './table-export/index';\nimport { exportVTableToCsv, exportVTableToExcel, downloadCsv, downloadExcel } from './table-export/index';\n\n// // 扩展ListTable接口以包含导出方法\n// declare module '@visactor/vtable' {\n// interface ListTableAll {\n// exportToCsv: (options?: any) => void;\n// exportToExcel: (options?: any) => void;\n// }\n// }\n\nexport type TableExportPluginOptions = {\n exportExcelOptions?: ExportVTableToExcelOptions;\n exportCsvOptions?: ExportVTableToCsvOptions;\n exportOnIdle?: boolean; //是否空闲时导出下载,默认false\n};\n\n/**\n * 表格导出插件\n * 提供CSV和Excel格式的表格数据导出功能\n */\nexport class TableExportPlugin implements VTable.plugins.IVTablePlugin {\n id = 'table-export-plugin';\n name = 'TableExport';\n runTime: any[] = [VTable.TABLE_EVENT_TYPE.INITIALIZED];\n private table: VTable.ListTable;\n private pluginOptions: TableExportPluginOptions;\n constructor(pluginOptions: TableExportPluginOptions) {\n this.pluginOptions = Object.assign(\n {\n exportOnIdle: false,\n exportExcelOptions: { downloadFile: true, fileName: 'export' },\n exportCsvOptions: { downloadFile: true, fileName: 'export' }\n },\n pluginOptions\n );\n }\n /**\n * 插件初始化方法\n * @param tableInstance - 表格实例\n */\n run(...args: any[]) {\n // const eventArgs = args[0];\n const runTime = args[1];\n if (runTime === VTable.TABLE_EVENT_TYPE.INITIALIZED) {\n const eventArgs = args[0];\n this.table = args[2];\n // 挂载导出方法到表格实例\n (this.table as any).exportToCsv = () => {\n const options = this.pluginOptions.exportCsvOptions;\n if (options.downloadFile) {\n return downloadCsv(exportVTableToCsv(this.table, options), options.fileName || 'export');\n }\n return exportVTableToCsv(this.table, options);\n };\n (this.table as any).exportToExcel = async () => {\n const options = this.pluginOptions.exportExcelOptions;\n if (options.downloadFile) {\n return await downloadExcel(\n (await exportVTableToExcel(this.table, options, this.pluginOptions.exportOnIdle)) as ArrayBuffer,\n options.fileName || 'export'\n );\n }\n return exportVTableToExcel(this.table, options, this.pluginOptions.exportOnIdle);\n };\n }\n }\n\n /**\n * 插件销毁方法\n * 清理挂载到表格实例的方法\n */\n release() {\n if (this.table) {\n delete (this.table as any).exportToCsv;\n delete (this.table as any).exportToExcel;\n this.table = null;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/table-export.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAAoD;AAEpD,gDAA0G;AAoB1G,MAAa,iBAAiB;IAM5B,YAAY,aAAuC;QALnD,OAAE,GAAG,qBAAqB,CAAC;QAC3B,SAAI,GAAG,aAAa,CAAC;QACrB,YAAO,GAAU,CAAC,yBAAgB,CAAC,WAAW,CAAC,CAAC;QAI9C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAChC;YACE,YAAY,EAAE,KAAK;YACnB,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC9D,gBAAgB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAC7D,EACD,aAAa,CACd,CAAC;IACJ,CAAC;IAKD,GAAG,CAAC,GAAG,IAAW;QAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,yBAAgB,CAAC,WAAW,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,CAAC,KAAa,CAAC,WAAW,GAAG,GAAG,EAAE;gBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBACpD,IAAI,OAAO,CAAC,YAAY,EAAE;oBACxB,OAAO,IAAA,mBAAW,EAAC,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;iBAC1F;gBACD,OAAO,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC,CAAC;YACD,IAAI,CAAC,KAAa,CAAC,aAAa,GAAG,GAAS,EAAE;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBACtD,IAAI,OAAO,CAAC,YAAY,EAAE;oBACxB,OAAO,MAAM,IAAA,qBAAa,EACxB,CAAC,MAAM,IAAA,2BAAmB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAgB,EAChG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAC7B,CAAC;iBACH;gBACD,OAAO,IAAA,2BAAmB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACnF,CAAC,CAAA,CAAC;SACH;IACH,CAAC;IAMD,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAQ,IAAI,CAAC,KAAa,CAAC,WAAW,CAAC;YACvC,OAAQ,IAAI,CAAC,KAAa,CAAC,aAAa,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;CACF;AA1DD,8CA0DC","file":"table-export.js","sourcesContent":["import type { pluginsDefinition, ListTable } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { ExportVTableToCsvOptions, ExportVTableToExcelOptions } from './table-export/index';\nimport { exportVTableToCsv, exportVTableToExcel, downloadCsv, downloadExcel } from './table-export/index';\n\n// // 扩展ListTable接口以包含导出方法\n// declare module '@visactor/vtable' {\n// interface ListTableAll {\n// exportToCsv: (options?: any) => void;\n// exportToExcel: (options?: any) => void;\n// }\n// }\n\nexport type TableExportPluginOptions = {\n exportExcelOptions?: ExportVTableToExcelOptions;\n exportCsvOptions?: ExportVTableToCsvOptions;\n exportOnIdle?: boolean; //是否空闲时导出下载,默认false\n};\n\n/**\n * 表格导出插件\n * 提供CSV和Excel格式的表格数据导出功能\n */\nexport class TableExportPlugin implements pluginsDefinition.IVTablePlugin {\n id = 'table-export-plugin';\n name = 'TableExport';\n runTime: any[] = [TABLE_EVENT_TYPE.INITIALIZED];\n private table: ListTable;\n private pluginOptions: TableExportPluginOptions;\n constructor(pluginOptions: TableExportPluginOptions) {\n this.pluginOptions = Object.assign(\n {\n exportOnIdle: false,\n exportExcelOptions: { downloadFile: true, fileName: 'export' },\n exportCsvOptions: { downloadFile: true, fileName: 'export' }\n },\n pluginOptions\n );\n }\n /**\n * 插件初始化方法\n * @param tableInstance - 表格实例\n */\n run(...args: any[]) {\n // const eventArgs = args[0];\n const runTime = args[1];\n if (runTime === TABLE_EVENT_TYPE.INITIALIZED) {\n const eventArgs = args[0];\n this.table = args[2];\n // 挂载导出方法到表格实例\n (this.table as any).exportToCsv = () => {\n const options = this.pluginOptions.exportCsvOptions;\n if (options.downloadFile) {\n return downloadCsv(exportVTableToCsv(this.table, options), options.fileName || 'export');\n }\n return exportVTableToCsv(this.table, options);\n };\n (this.table as any).exportToExcel = async () => {\n const options = this.pluginOptions.exportExcelOptions;\n if (options.downloadFile) {\n return await downloadExcel(\n (await exportVTableToExcel(this.table, options, this.pluginOptions.exportOnIdle)) as ArrayBuffer,\n options.fileName || 'export'\n );\n }\n return exportVTableToExcel(this.table, options, this.pluginOptions.exportOnIdle);\n };\n }\n }\n\n /**\n * 插件销毁方法\n * 清理挂载到表格实例的方法\n */\n release() {\n if (this.table) {\n delete (this.table as any).exportToCsv;\n delete (this.table as any).exportToExcel;\n this.table = null;\n }\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
- import type { ListTable, plugins } from '@visactor/vtable';
1
+ import type { ListTable, pluginsDefinition } from '@visactor/vtable';
2
2
  import { TableSeriesNumber as VRenderTableSeriesNumber } from '@visactor/vtable/es/vrender';
3
3
  import type { ILayer, TableSeriesNumberAttributes } from '@visactor/vtable/es/vrender';
4
4
  export type TableSeriesNumberOptions = {
5
5
  rowCount: number;
6
6
  colCount: number;
7
7
  } & Partial<Pick<TableSeriesNumberAttributes, 'rowSeriesNumberGenerate' | 'colSeriesNumberGenerate' | 'rowSeriesNumberCellStyle' | 'colSeriesNumberCellStyle' | 'cornerCellStyle' | 'colSeriesNumberHeight' | 'rowSeriesNumberWidth'>>;
8
- export declare class TableSeriesNumber implements plugins.IVTablePlugin {
8
+ export declare class TableSeriesNumber implements pluginsDefinition.IVTablePlugin {
9
9
  id: string;
10
10
  name: string;
11
11
  runTime: ("before_init" | "before_update_option" | "initialized" | "updated")[];
@@ -222,9 +222,8 @@ class TableSeriesNumber {
222
222
  options.contentOffsetX = rowSeriesNumberColWidth, options.contentOffsetY = colSeriesNumberRowHeight;
223
223
  } else if (runTime === vtable_1.TABLE_EVENT_TYPE.INITIALIZED || runTime === vtable_1.TABLE_EVENT_TYPE.UPDATED) {
224
224
  this.table = args[2], this.table.options.customConfig || (this.table.options.customConfig = {}),
225
- this.table.options.customConfig.cancelSelectCellHook = e => {
226
- if (e.target.isDescendantsOf(this.seriesNumberComponent)) return !1;
227
- }, this.seriesNumberComponent.setAttributes({
225
+ this.table.options.customConfig.cancelSelectCellHook = e => !e.target.isDescendantsOf(this.seriesNumberComponent),
226
+ this.seriesNumberComponent.setAttributes({
228
227
  rowCount: this.table.rowCount,
229
228
  colCount: this.table.colCount,
230
229
  frozenRowCount: this.table.frozenRowCount,