@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 +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[];
@@ -24,13 +24,13 @@ var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, gener
24
24
  }));
25
25
  };
26
26
 
27
- import * as VTable from "@visactor/vtable";
27
+ import { TABLE_EVENT_TYPE } from "@visactor/vtable";
28
28
 
29
29
  import { exportVTableToCsv, exportVTableToExcel, downloadCsv, downloadExcel } from "./table-export/index";
30
30
 
31
31
  export class TableExportPlugin {
32
32
  constructor(pluginOptions) {
33
- this.id = "table-export-plugin", this.name = "TableExport", this.runTime = [ VTable.TABLE_EVENT_TYPE.INITIALIZED ],
33
+ this.id = "table-export-plugin", this.name = "TableExport", this.runTime = [ TABLE_EVENT_TYPE.INITIALIZED ],
34
34
  this.pluginOptions = Object.assign({
35
35
  exportOnIdle: !1,
36
36
  exportExcelOptions: {
@@ -44,7 +44,7 @@ export class TableExportPlugin {
44
44
  }, pluginOptions);
45
45
  }
46
46
  run(...args) {
47
- if (args[1] === VTable.TABLE_EVENT_TYPE.INITIALIZED) {
47
+ if (args[1] === TABLE_EVENT_TYPE.INITIALIZED) {
48
48
  args[0];
49
49
  this.table = args[2], this.table.exportToCsv = () => {
50
50
  const options = this.pluginOptions.exportCsvOptions;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table-export.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAoB1G,MAAM,OAAO,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,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;iBAC1F;gBACD,OAAO,iBAAiB,CAAC,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,aAAa,CACxB,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAgB,EAChG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAC7B,CAAC;iBACH;gBACD,OAAO,mBAAmB,CAAC,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","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,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAoB1G,MAAM,OAAO,iBAAiB;IAM5B,YAAY,aAAuC;QALnD,OAAE,GAAG,qBAAqB,CAAC;QAC3B,SAAI,GAAG,aAAa,CAAC;QACrB,YAAO,GAAU,CAAC,gBAAgB,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,gBAAgB,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,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;iBAC1F;gBACD,OAAO,iBAAiB,CAAC,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,aAAa,CACxB,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAgB,EAChG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAC7B,CAAC;iBACH;gBACD,OAAO,mBAAmB,CAAC,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","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")[];
@@ -218,9 +218,8 @@ export class TableSeriesNumber {
218
218
  options.contentOffsetX = rowSeriesNumberColWidth, options.contentOffsetY = colSeriesNumberRowHeight;
219
219
  } else if (runTime === TABLE_EVENT_TYPE.INITIALIZED || runTime === TABLE_EVENT_TYPE.UPDATED) {
220
220
  this.table = args[2], this.table.options.customConfig || (this.table.options.customConfig = {}),
221
- this.table.options.customConfig.cancelSelectCellHook = e => {
222
- if (e.target.isDescendantsOf(this.seriesNumberComponent)) return !1;
223
- }, this.seriesNumberComponent.setAttributes({
221
+ this.table.options.customConfig.cancelSelectCellHook = e => !e.target.isDescendantsOf(this.seriesNumberComponent),
222
+ this.seriesNumberComponent.setAttributes({
224
223
  rowCount: this.table.rowCount,
225
224
  colCount: this.table.colCount,
226
225
  frozenRowCount: this.table.frozenRowCount,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table-series-number.ts"],"names":[],"mappings":"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","file":"table-series-number.js","sourcesContent":["import type { BaseTableAPI, ListTable, ListTableConstructorOptions, plugins } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE, TYPES } from '@visactor/vtable';\nimport { TableSeriesNumber as VRenderTableSeriesNumber, SeriesNumberEvent } from '@visactor/vtable/es/vrender';\nimport type { ILayer, TableSeriesNumberAttributes } from '@visactor/vtable/es/vrender';\n\nexport type TableSeriesNumberOptions = {\n rowCount: number;\n colCount: number;\n // syncRowHeightFromTable?: boolean;\n // syncColWidthFromTable?: boolean;\n} & Partial<\n Pick<\n TableSeriesNumberAttributes,\n | 'rowSeriesNumberGenerate'\n | 'colSeriesNumberGenerate'\n | 'rowSeriesNumberCellStyle'\n | 'colSeriesNumberCellStyle'\n | 'cornerCellStyle'\n | 'colSeriesNumberHeight'\n | 'rowSeriesNumberWidth'\n >\n>;\nexport class TableSeriesNumber implements plugins.IVTablePlugin {\n id = `table-series-number`;\n name = 'Table Series Number';\n runTime = [\n TABLE_EVENT_TYPE.INITIALIZED,\n TABLE_EVENT_TYPE.BEFORE_INIT,\n TABLE_EVENT_TYPE.BEFORE_UPDATE_OPTION,\n TABLE_EVENT_TYPE.UPDATED\n ];\n pluginOptions: TableSeriesNumberOptions;\n table: ListTable;\n seriesNumberComponent: VRenderTableSeriesNumber;\n componentLayoutLayer: ILayer;\n lastCurrentRow: number = 0;\n lastCurrentCol: number = 0;\n startRowIndex: number = 0;\n scrollTimer: any;\n constructor(pluginOptions: TableSeriesNumberOptions) {\n this.pluginOptions = pluginOptions;\n this.seriesNumberComponent = new VRenderTableSeriesNumber({\n rowCount: pluginOptions.rowCount,\n colCount: pluginOptions.colCount,\n rowSeriesNumberWidth: pluginOptions.rowSeriesNumberWidth,\n colSeriesNumberHeight: pluginOptions.colSeriesNumberHeight,\n rowSeriesNumberGenerate: pluginOptions.rowSeriesNumberGenerate,\n colSeriesNumberGenerate: pluginOptions.colSeriesNumberGenerate,\n rowSeriesNumberCellStyle: Object.assign(\n {\n text: {\n fontSize: 14,\n fill: '#7A7A7A',\n pickable: false,\n textAlign: 'left',\n textBaseline: 'middle',\n padding: [2, 4, 2, 4]\n },\n borderLine: {\n stroke: '#D9D9D9',\n lineWidth: 1,\n pickable: false\n },\n bgColor: '#F9F9F9',\n states: {\n hover: {\n fill: '#c8daf6',\n opacity: 0.7\n },\n select: {\n fill: '#c8daf6',\n opacity: 1\n }\n }\n },\n pluginOptions.rowSeriesNumberCellStyle\n ),\n colSeriesNumberCellStyle: Object.assign(\n {\n text: {\n fontSize: 14,\n fill: '#7A7A7A',\n pickable: false,\n textAlign: 'left',\n textBaseline: 'middle',\n padding: [2, 4, 2, 4]\n },\n borderLine: {\n stroke: '#D9D9D9',\n lineWidth: 1,\n pickable: false\n },\n bgColor: '#F9F9F9',\n states: {\n hover: {\n fill: '#c8daf6',\n opacity: 0.7\n },\n select: {\n fill: '#c8daf6',\n opacity: 1\n }\n }\n },\n pluginOptions.colSeriesNumberCellStyle\n ),\n cornerCellStyle: Object.assign(\n {\n borderLine: {\n stroke: '#D9D9D9',\n lineWidth: 1,\n pickable: false\n },\n bgColor: '#F9F9F9',\n states: {\n hover: {\n fill: '#98C8A5',\n opacity: 0.7\n },\n select: {\n fill: '#98C8A5',\n opacity: 1\n }\n }\n },\n pluginOptions.cornerCellStyle\n )\n });\n this.listenComponentEvents();\n }\n\n run(...args: any[]) {\n // const eventArgs = args[0];\n const runTime = args[1];\n if (runTime === TABLE_EVENT_TYPE.BEFORE_INIT || runTime === TABLE_EVENT_TYPE.BEFORE_UPDATE_OPTION) {\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({});\n // }\n // 直接设置数组长度,不填充任何内容\n if (records.length < this.pluginOptions.rowCount) {\n records.length = this.pluginOptions.rowCount;\n }\n options.records = records;\n if (!options.columns) {\n options.columns = [];\n }\n for (let i = options.columns.length; i < this.pluginOptions.colCount; i++) {\n const columnFields = {\n field: i,\n title: ``\n };\n options.columns.push(columnFields);\n }\n const rowSeriesNumberColWidth = this.seriesNumberComponent.rowSeriesNumberWidth;\n const colSeriesNumberRowHeight = this.seriesNumberComponent.colSeriesNumberHeight;\n options.contentOffsetX = rowSeriesNumberColWidth;\n options.contentOffsetY = colSeriesNumberRowHeight;\n // if (options.columns.length < this.pluginOptions.colCount) {\n // options.columns.length = this.pluginOptions.colCount;\n // }\n } else if (runTime === TABLE_EVENT_TYPE.INITIALIZED || runTime === TABLE_EVENT_TYPE.UPDATED) {\n this.table = args[2];\n if (!this.table.options.customConfig) {\n this.table.options.customConfig = {};\n }\n this.table.options.customConfig.cancelSelectCellHook = (e: any) => {\n const target = e.target;\n if (target.isDescendantsOf(this.seriesNumberComponent)) {\n return false;\n }\n };\n\n // const rowSeriesNumberColWidth = this.seriesNumberComponent.rowSeriesNumberWidth;\n // const colSeriesNumberRowHeight = this.seriesNumberComponent.colSeriesNumberHeight;\n // // this.table.scenegraph.stage.defaultLayer.setAttributes({\n // // x: rowSeriesNumberColWidth,\n // // y: colSeriesNumberRowHeight,\n // // width: 1700,\n // // height: 500,\n // // clip: true\n // // });\n // this.table.setTranslate(colSeriesNumberRowHeight, rowSeriesNumberColWidth);\n this.seriesNumberComponent.setAttributes({\n rowCount: this.table.rowCount,\n colCount: this.table.colCount,\n frozenRowCount: this.table.frozenRowCount,\n frozenColCount: this.table.frozenColCount,\n rightFrozenColCount: this.table.rightFrozenColCount,\n bottomFrozenRowCount: this.table.bottomFrozenRowCount\n });\n // add到layer上时会触发组件的render方法\n const newLayer = this.table.scenegraph.stage.createLayer();\n newLayer.appendChild(this.seriesNumberComponent);\n newLayer.setAttributes({ pickable: false });\n this.componentLayoutLayer = newLayer;\n\n // if (this.pluginOptions.syncRowHeightFromTable) {\n this.syncRowHeightToComponent();\n // }\n // if (this.pluginOptions.syncColWidthFromTable) {\n this.syncColWidthToComponent();\n // }\n\n this.listenTableEvents();\n }\n }\n private handleScroll = () => {\n //节流处理,避免滚动时频繁触发\n if (this.scrollTimer) {\n clearTimeout(this.scrollTimer);\n this.scrollTimer = null;\n }\n this.scrollTimer = setTimeout(() => {\n this.scrollTimer = null;\n this.syncScrollToComponent();\n }, 10); // 优化: 由5ms改为10ms,减少频繁触发\n };\n\n private handleAfterSort = () => {\n this.syncScrollToComponent();\n };\n\n private handleSelectedChanged = (e: any) => {\n this.seriesNumberComponent.removeAllSelectedIndexs();\n const selectRange = this.table.stateManager.select.ranges;\n\n const rowSelectedIndexs = [];\n const colSelectedIndexs = [];\n for (const range of selectRange) {\n const { row: rowStart, col: colStart } = range.start;\n const { row: rowEnd, col: colEnd } = range.end;\n rowSelectedIndexs.push({ startIndex: Math.min(rowStart, rowEnd), endIndex: Math.max(rowStart, rowEnd) });\n colSelectedIndexs.push({ startIndex: Math.min(colStart, colEnd), endIndex: Math.max(colStart, colEnd) });\n }\n this.seriesNumberComponent.addRowSelectedRanges(rowSelectedIndexs);\n this.seriesNumberComponent.addColSelectedRanges(colSelectedIndexs);\n if (this.table.stateManager.select.isSelectAll) {\n this.seriesNumberComponent.addCornderSelected();\n }\n\n this.seriesNumberComponent.renderSelectedIndexsState();\n };\n\n private handleResizeColumnEnd = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', true);\n };\n\n private handleResizeRowEnd = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', true);\n };\n\n listenTableEvents() {\n this.table.on(TABLE_EVENT_TYPE.SCROLL, this.handleScroll);\n this.table.on(TABLE_EVENT_TYPE.AFTER_SORT, this.handleAfterSort);\n this.table.on(TABLE_EVENT_TYPE.SELECTED_CHANGED, this.handleSelectedChanged);\n this.table.on(TABLE_EVENT_TYPE.RESIZE_COLUMN_END, this.handleResizeColumnEnd);\n this.table.on(TABLE_EVENT_TYPE.RESIZE_ROW_END, this.handleResizeRowEnd);\n }\n\n private handleSeriesNumberCellRightClick = (e: any) => {\n const { seriesNumberCell, event, isDragSelect } = e.detail;\n const isRow = seriesNumberCell.name.includes('row');\n const isCol = seriesNumberCell.name.includes('col');\n if (isRow) {\n const rowIndex = seriesNumberCell.id;\n //判断rowIndex整行是否被选中\n const isRowSelected = this.table.stateManager.select.ranges.some(range => {\n return (\n range.start.row <= rowIndex &&\n rowIndex <= range.end.row &&\n range.start.col === 0 &&\n range.end.col === this.table.colCount - 1\n );\n });\n //当前右键的行号 没有整行被选中,则进行选中\n if (!isRowSelected) {\n this.table.selectCells([\n { start: { row: rowIndex, col: 0 }, end: { row: rowIndex, col: this.table.colCount - 1 } }\n ]);\n }\n this.table.fireListeners(TABLE_EVENT_TYPE.PLUGIN_EVENT, {\n plugin: this,\n event: event,\n pluginEventInfo: {\n eventType: 'rightclick',\n rowIndex: rowIndex\n }\n });\n } else if (isCol) {\n const colIndex = seriesNumberCell.id;\n //判断colIndex整列是否被选中\n const isColSelected = this.table.stateManager.select.ranges.some(range => {\n return (\n range.start.col <= colIndex &&\n colIndex <= range.end.col &&\n range.start.row === 0 &&\n range.end.row === this.table.rowCount - 1\n );\n });\n //当前右键的列号 没有整列被选中,则进行选中\n if (!isColSelected) {\n this.table.selectCells([\n { start: { row: 0, col: colIndex }, end: { row: this.table.rowCount - 1, col: colIndex } }\n ]);\n }\n this.table.fireListeners(TABLE_EVENT_TYPE.PLUGIN_EVENT, {\n plugin: this,\n event: event,\n pluginEventInfo: {\n eventType: 'rightclick',\n colIndex: colIndex\n }\n });\n } else {\n //直接全选\n this.table.selectCells([\n { start: { row: 0, col: 0 }, end: { row: this.table.rowCount - 1, col: this.table.colCount - 1 } }\n ]);\n this.table.fireListeners(TABLE_EVENT_TYPE.PLUGIN_EVENT, {\n plugin: this,\n event: event,\n pluginEventInfo: {\n eventType: 'rightclick',\n isCorner: true\n }\n });\n }\n };\n\n private handleSeriesNumberCellHover = (e: any) => {\n this.table.scenegraph.renderSceneGraph();\n };\n\n private handleSeriesNumberCellUnHover = (e: any) => {\n this.table.scenegraph.renderSceneGraph();\n };\n\n private handleSeriesNumberCellClick = (e: any) => {\n const { seriesNumberCell, event, isDragSelect } = e.detail;\n const ctrlMultiSelect = this.table.options.keyboardOptions?.ctrlMultiSelect ?? true;\n const shiftMultiSelect = this.table.options.keyboardOptions?.shiftMultiSelect ?? true;\n const enableCtrlSelectMode = (event.nativeEvent.ctrlKey || event.nativeEvent.metaKey) && ctrlMultiSelect;\n const enableShiftSelectMode = event.nativeEvent.shiftKey && shiftMultiSelect;\n const isRow = seriesNumberCell.name.includes('row');\n const isCol = seriesNumberCell.name.includes('col');\n if (isRow) {\n this.table.stateManager.setSelectInline('row');\n const rowIndex = seriesNumberCell.id;\n\n if (isDragSelect) {\n this.table.dragSelectRow(rowIndex, enableCtrlSelectMode);\n } else {\n this.table.startDragSelectRow(rowIndex, enableCtrlSelectMode, enableShiftSelectMode);\n }\n } else if (isCol) {\n this.table.stateManager.setSelectInline('col');\n const colIndex = seriesNumberCell.id;\n if (isDragSelect) {\n this.table.dragSelectCol(colIndex, enableCtrlSelectMode);\n } else {\n this.table.startDragSelectCol(colIndex, enableCtrlSelectMode, enableShiftSelectMode);\n }\n } else {\n this.table.eventManager.deelTableSelectAll();\n }\n };\n\n private handleSeriesNumberCellClickUp = (e: any) => {\n this.table.stateManager.setSelectInline(false);\n this.table.endDragSelect();\n };\n\n private handleRowSeriesNumberWidthChange = (e: any) => {\n const rowSeriesNumberColWidth = this.seriesNumberComponent.rowSeriesNumberWidth;\n const colSeriesNumberRowHeight = this.seriesNumberComponent.colSeriesNumberHeight;\n this.table.setContentInsetXY(rowSeriesNumberColWidth, colSeriesNumberRowHeight);\n };\n\n private handleResizeColWidthStart = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', false);\n const { colIndex, event } = e.detail;\n this.table.stateManager.updateInteractionState(TYPES.InteractionState.grabing);\n this.table.stateManager.startResizeCol(colIndex, event.viewport.x, event.viewport.y);\n };\n\n private handleResizeRowHeightStart = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', false);\n const { rowIndex, event } = e.detail;\n this.table.stateManager.updateInteractionState(TYPES.InteractionState.grabing);\n this.table.stateManager.startResizeRow(rowIndex, event.viewport.x, event.viewport.y);\n };\n\n listenComponentEvents() {\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellRightClick, this.handleSeriesNumberCellRightClick);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellHover, this.handleSeriesNumberCellHover);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellUnHover, this.handleSeriesNumberCellUnHover);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellClick, this.handleSeriesNumberCellClick);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellClickUp, this.handleSeriesNumberCellClickUp);\n this.seriesNumberComponent.on(SeriesNumberEvent.rowSeriesNumberWidthChange, this.handleRowSeriesNumberWidthChange);\n this.seriesNumberComponent.on(SeriesNumberEvent.resizeColWidthStart, this.handleResizeColWidthStart);\n this.seriesNumberComponent.on(SeriesNumberEvent.resizeRowHeightStart, this.handleResizeRowHeightStart);\n }\n release() {\n // 清除组件资源\n if (this.componentLayoutLayer) {\n this.table.scenegraph.stage.removeLayer(this.componentLayoutLayer._uid);\n this.componentLayoutLayer = null;\n }\n\n // 清除定时器\n if (this.scrollTimer) {\n clearTimeout(this.scrollTimer);\n this.scrollTimer = null;\n }\n\n // 移除表格事件监听器\n if (this.table) {\n this.table.off(TABLE_EVENT_TYPE.SCROLL, this.handleScroll);\n this.table.off(TABLE_EVENT_TYPE.AFTER_SORT, this.handleAfterSort);\n this.table.off(TABLE_EVENT_TYPE.SELECTED_CHANGED, this.handleSelectedChanged);\n this.table.off(TABLE_EVENT_TYPE.RESIZE_COLUMN_END, this.handleResizeColumnEnd);\n this.table.off(TABLE_EVENT_TYPE.RESIZE_ROW_END, this.handleResizeRowEnd);\n }\n // 移除组件事件监听器\n if (this.seriesNumberComponent) {\n this.seriesNumberComponent.off(\n SeriesNumberEvent.seriesNumberCellRightClick,\n this.handleSeriesNumberCellRightClick\n );\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellHover, this.handleSeriesNumberCellHover);\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellUnHover, this.handleSeriesNumberCellUnHover);\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellClick, this.handleSeriesNumberCellClick);\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellClickUp, this.handleSeriesNumberCellClickUp);\n this.seriesNumberComponent.off(\n SeriesNumberEvent.rowSeriesNumberWidthChange,\n this.handleRowSeriesNumberWidthChange\n );\n this.seriesNumberComponent.off(SeriesNumberEvent.resizeColWidthStart, this.handleResizeColWidthStart);\n this.seriesNumberComponent.off(SeriesNumberEvent.resizeRowHeightStart, this.handleResizeRowHeightStart);\n\n // 释放组件资源\n this.seriesNumberComponent.release?.();\n this.seriesNumberComponent = null;\n }\n }\n\n syncRowHeightToComponent() {\n // console.log('syncRowHeightToComponent adjust', adjustStartRowIndex, adjustEndRowIndex);\n const { rowStart, rowEnd } = this.table.getBodyVisibleRowRange();\n const adjustStartRowIndex = Math.max(rowStart - 2, this.table.frozenRowCount);\n const adjustEndRowIndex = Math.min(rowEnd + 2, this.table.rowCount - 1);\n //判断seriesNumberComponent的冻结行数是否变化\n if (this.table.frozenRowCount !== this.seriesNumberComponent.getAttributes().frozenRowCount) {\n this.seriesNumberComponent.setAttributes({ frozenRowCount: this.table.frozenRowCount });\n }\n // 调用行序号重建接口\n this.seriesNumberComponent.recreateCellsToRowSeriesNumberGroup(adjustStartRowIndex, adjustEndRowIndex);\n // 更新冻结行序号单元格的y和height\n for (let i = 0; i < this.table.frozenRowCount; i++) {\n const cellGroup = this.table.scenegraph.getCell(0, i);\n const cell_attrs = cellGroup.getAttributes();\n this.seriesNumberComponent.setRowSeriesNumberCellAttributes(i, { y: cell_attrs.y, height: cell_attrs.height });\n }\n\n // 更新行序号单元格的y和height\n for (let i = adjustStartRowIndex; i <= adjustEndRowIndex; i++) {\n const cellGroup = this.table.scenegraph.getCell(0, i);\n const cell_attrs = cellGroup.getAttributes();\n this.seriesNumberComponent.setRowSeriesNumberCellAttributes(i, { y: cell_attrs.y, height: cell_attrs.height });\n }\n }\n syncColWidthToComponent() {\n const { colStart, colEnd } = this.table.getBodyVisibleColRange();\n const adjustStartColIndex = colStart;\n const adjustEndColIndex = Math.min(colEnd, this.table.scenegraph.proxy.colEnd);\n // console.log('syncColWidthToComponent adjust', adjustStartColIndex, adjustEndColIndex);\n\n //判断seriesNumberComponent的冻结列数是否变化\n if (this.table.frozenColCount !== this.seriesNumberComponent.getAttributes().frozenColCount) {\n this.seriesNumberComponent.setAttributes({ frozenColCount: this.table.frozenColCount });\n }\n // 调用列序号重建接口\n this.seriesNumberComponent.recreateCellsToColSeriesNumberGroup(adjustStartColIndex, adjustEndColIndex);\n //更新冻结列序号单元格的x和width\n for (let i = 0; i < this.table.frozenColCount; i++) {\n const colGroup = this.table.scenegraph.getColGroup(i);\n const cell_attrs = colGroup.getAttributes();\n this.seriesNumberComponent.setColSeriesNumberCellAttributes(i, { x: cell_attrs.x, width: cell_attrs.width });\n }\n // 更新列序号单元格的x和width\n for (let i = adjustStartColIndex; i <= adjustEndColIndex; i++) {\n const colGroup = this.table.scenegraph.getColGroup(i);\n const col_attrs = colGroup.getAttributes();\n this.seriesNumberComponent.setColSeriesNumberCellAttributes(i, { x: col_attrs.x, width: col_attrs.width });\n }\n }\n\n syncScrollToComponent() {\n //TODO 根据滚动方向,同步对应的序号组件的滚动\n this.syncRowHeightToComponent();\n this.syncColWidthToComponent();\n const y = this.table.scenegraph.bodyGroup.getAttributes().y;\n const x = this.table.scenegraph.bodyGroup.getAttributes().x;\n this.seriesNumberComponent.setRowSeriesNumberGroupAttributes({\n y: y + this.seriesNumberComponent.colSeriesNumberHeight\n });\n this.seriesNumberComponent.setColSeriesNumberGroupAttributes({\n x: x + this.seriesNumberComponent.rowSeriesNumberWidth\n });\n }\n // syncFrozenToComponent() {\n // const frozenRowCount = this.table.frozenRowCount;\n // const frozenColCount = this.table.frozenColCount;\n // this.seriesNumberComponent.setFrozenTopRow(frozenRowCount);\n // this.seriesNumberComponent.setFrozenLeftCol(frozenColCount);\n // }\n}\n"]}
1
+ {"version":3,"sources":["../src/table-series-number.ts"],"names":[],"mappings":"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","file":"table-series-number.js","sourcesContent":["import type { BaseTableAPI, ListTable, ListTableConstructorOptions, pluginsDefinition } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE, TYPES } from '@visactor/vtable';\nimport { TableSeriesNumber as VRenderTableSeriesNumber, SeriesNumberEvent } from '@visactor/vtable/es/vrender';\nimport type { ILayer, TableSeriesNumberAttributes } from '@visactor/vtable/es/vrender';\n\nexport type TableSeriesNumberOptions = {\n rowCount: number;\n colCount: number;\n // syncRowHeightFromTable?: boolean;\n // syncColWidthFromTable?: boolean;\n} & Partial<\n Pick<\n TableSeriesNumberAttributes,\n | 'rowSeriesNumberGenerate'\n | 'colSeriesNumberGenerate'\n | 'rowSeriesNumberCellStyle'\n | 'colSeriesNumberCellStyle'\n | 'cornerCellStyle'\n | 'colSeriesNumberHeight'\n | 'rowSeriesNumberWidth'\n >\n>;\nexport class TableSeriesNumber implements pluginsDefinition.IVTablePlugin {\n id = `table-series-number`;\n name = 'Table Series Number';\n runTime = [\n TABLE_EVENT_TYPE.INITIALIZED,\n TABLE_EVENT_TYPE.BEFORE_INIT,\n TABLE_EVENT_TYPE.BEFORE_UPDATE_OPTION,\n TABLE_EVENT_TYPE.UPDATED\n ];\n pluginOptions: TableSeriesNumberOptions;\n table: ListTable;\n seriesNumberComponent: VRenderTableSeriesNumber;\n componentLayoutLayer: ILayer;\n lastCurrentRow: number = 0;\n lastCurrentCol: number = 0;\n startRowIndex: number = 0;\n scrollTimer: any;\n constructor(pluginOptions: TableSeriesNumberOptions) {\n this.pluginOptions = pluginOptions;\n this.seriesNumberComponent = new VRenderTableSeriesNumber({\n rowCount: pluginOptions.rowCount,\n colCount: pluginOptions.colCount,\n rowSeriesNumberWidth: pluginOptions.rowSeriesNumberWidth,\n colSeriesNumberHeight: pluginOptions.colSeriesNumberHeight,\n rowSeriesNumberGenerate: pluginOptions.rowSeriesNumberGenerate,\n colSeriesNumberGenerate: pluginOptions.colSeriesNumberGenerate,\n rowSeriesNumberCellStyle: Object.assign(\n {\n text: {\n fontSize: 14,\n fill: '#7A7A7A',\n pickable: false,\n textAlign: 'left',\n textBaseline: 'middle',\n padding: [2, 4, 2, 4]\n },\n borderLine: {\n stroke: '#D9D9D9',\n lineWidth: 1,\n pickable: false\n },\n bgColor: '#F9F9F9',\n states: {\n hover: {\n fill: '#c8daf6',\n opacity: 0.7\n },\n select: {\n fill: '#c8daf6',\n opacity: 1\n }\n }\n },\n pluginOptions.rowSeriesNumberCellStyle\n ),\n colSeriesNumberCellStyle: Object.assign(\n {\n text: {\n fontSize: 14,\n fill: '#7A7A7A',\n pickable: false,\n textAlign: 'left',\n textBaseline: 'middle',\n padding: [2, 4, 2, 4]\n },\n borderLine: {\n stroke: '#D9D9D9',\n lineWidth: 1,\n pickable: false\n },\n bgColor: '#F9F9F9',\n states: {\n hover: {\n fill: '#c8daf6',\n opacity: 0.7\n },\n select: {\n fill: '#c8daf6',\n opacity: 1\n }\n }\n },\n pluginOptions.colSeriesNumberCellStyle\n ),\n cornerCellStyle: Object.assign(\n {\n borderLine: {\n stroke: '#D9D9D9',\n lineWidth: 1,\n pickable: false\n },\n bgColor: '#F9F9F9',\n states: {\n hover: {\n fill: '#98C8A5',\n opacity: 0.7\n },\n select: {\n fill: '#98C8A5',\n opacity: 1\n }\n }\n },\n pluginOptions.cornerCellStyle\n )\n });\n this.listenComponentEvents();\n }\n\n run(...args: any[]) {\n // const eventArgs = args[0];\n const runTime = args[1];\n if (runTime === TABLE_EVENT_TYPE.BEFORE_INIT || runTime === TABLE_EVENT_TYPE.BEFORE_UPDATE_OPTION) {\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({});\n // }\n // 直接设置数组长度,不填充任何内容\n if (records.length < this.pluginOptions.rowCount) {\n records.length = this.pluginOptions.rowCount;\n }\n options.records = records;\n if (!options.columns) {\n options.columns = [];\n }\n for (let i = options.columns.length; i < this.pluginOptions.colCount; i++) {\n const columnFields = {\n field: i,\n title: ``\n };\n options.columns.push(columnFields);\n }\n const rowSeriesNumberColWidth = this.seriesNumberComponent.rowSeriesNumberWidth;\n const colSeriesNumberRowHeight = this.seriesNumberComponent.colSeriesNumberHeight;\n options.contentOffsetX = rowSeriesNumberColWidth;\n options.contentOffsetY = colSeriesNumberRowHeight;\n // if (options.columns.length < this.pluginOptions.colCount) {\n // options.columns.length = this.pluginOptions.colCount;\n // }\n } else if (runTime === TABLE_EVENT_TYPE.INITIALIZED || runTime === TABLE_EVENT_TYPE.UPDATED) {\n this.table = args[2];\n if (!this.table.options.customConfig) {\n this.table.options.customConfig = {};\n }\n this.table.options.customConfig.cancelSelectCellHook = (e: any) => {\n const target = e.target;\n if (target.isDescendantsOf(this.seriesNumberComponent)) {\n return false;\n }\n return true;\n };\n\n // const rowSeriesNumberColWidth = this.seriesNumberComponent.rowSeriesNumberWidth;\n // const colSeriesNumberRowHeight = this.seriesNumberComponent.colSeriesNumberHeight;\n // // this.table.scenegraph.stage.defaultLayer.setAttributes({\n // // x: rowSeriesNumberColWidth,\n // // y: colSeriesNumberRowHeight,\n // // width: 1700,\n // // height: 500,\n // // clip: true\n // // });\n // this.table.setTranslate(colSeriesNumberRowHeight, rowSeriesNumberColWidth);\n this.seriesNumberComponent.setAttributes({\n rowCount: this.table.rowCount,\n colCount: this.table.colCount,\n frozenRowCount: this.table.frozenRowCount,\n frozenColCount: this.table.frozenColCount,\n rightFrozenColCount: this.table.rightFrozenColCount,\n bottomFrozenRowCount: this.table.bottomFrozenRowCount\n });\n // add到layer上时会触发组件的render方法\n const newLayer = this.table.scenegraph.stage.createLayer();\n newLayer.appendChild(this.seriesNumberComponent);\n newLayer.setAttributes({ pickable: false });\n this.componentLayoutLayer = newLayer;\n\n // if (this.pluginOptions.syncRowHeightFromTable) {\n this.syncRowHeightToComponent();\n // }\n // if (this.pluginOptions.syncColWidthFromTable) {\n this.syncColWidthToComponent();\n // }\n\n this.listenTableEvents();\n }\n }\n private handleScroll = () => {\n //节流处理,避免滚动时频繁触发\n if (this.scrollTimer) {\n clearTimeout(this.scrollTimer);\n this.scrollTimer = null;\n }\n this.scrollTimer = setTimeout(() => {\n this.scrollTimer = null;\n this.syncScrollToComponent();\n }, 10); // 优化: 由5ms改为10ms,减少频繁触发\n };\n\n private handleAfterSort = () => {\n this.syncScrollToComponent();\n };\n\n private handleSelectedChanged = (e: any) => {\n this.seriesNumberComponent.removeAllSelectedIndexs();\n const selectRange = this.table.stateManager.select.ranges;\n\n const rowSelectedIndexs = [];\n const colSelectedIndexs = [];\n for (const range of selectRange) {\n const { row: rowStart, col: colStart } = range.start;\n const { row: rowEnd, col: colEnd } = range.end;\n rowSelectedIndexs.push({ startIndex: Math.min(rowStart, rowEnd), endIndex: Math.max(rowStart, rowEnd) });\n colSelectedIndexs.push({ startIndex: Math.min(colStart, colEnd), endIndex: Math.max(colStart, colEnd) });\n }\n this.seriesNumberComponent.addRowSelectedRanges(rowSelectedIndexs);\n this.seriesNumberComponent.addColSelectedRanges(colSelectedIndexs);\n if (this.table.stateManager.select.isSelectAll) {\n this.seriesNumberComponent.addCornderSelected();\n }\n\n this.seriesNumberComponent.renderSelectedIndexsState();\n };\n\n private handleResizeColumnEnd = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', true);\n };\n\n private handleResizeRowEnd = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', true);\n };\n\n listenTableEvents() {\n this.table.on(TABLE_EVENT_TYPE.SCROLL, this.handleScroll);\n this.table.on(TABLE_EVENT_TYPE.AFTER_SORT, this.handleAfterSort);\n this.table.on(TABLE_EVENT_TYPE.SELECTED_CHANGED, this.handleSelectedChanged);\n this.table.on(TABLE_EVENT_TYPE.RESIZE_COLUMN_END, this.handleResizeColumnEnd);\n this.table.on(TABLE_EVENT_TYPE.RESIZE_ROW_END, this.handleResizeRowEnd);\n }\n\n private handleSeriesNumberCellRightClick = (e: any) => {\n const { seriesNumberCell, event, isDragSelect } = e.detail;\n const isRow = seriesNumberCell.name.includes('row');\n const isCol = seriesNumberCell.name.includes('col');\n if (isRow) {\n const rowIndex = seriesNumberCell.id;\n //判断rowIndex整行是否被选中\n const isRowSelected = this.table.stateManager.select.ranges.some(range => {\n return (\n range.start.row <= rowIndex &&\n rowIndex <= range.end.row &&\n range.start.col === 0 &&\n range.end.col === this.table.colCount - 1\n );\n });\n //当前右键的行号 没有整行被选中,则进行选中\n if (!isRowSelected) {\n this.table.selectCells([\n { start: { row: rowIndex, col: 0 }, end: { row: rowIndex, col: this.table.colCount - 1 } }\n ]);\n }\n this.table.fireListeners(TABLE_EVENT_TYPE.PLUGIN_EVENT, {\n plugin: this,\n event: event,\n pluginEventInfo: {\n eventType: 'rightclick',\n rowIndex: rowIndex\n }\n });\n } else if (isCol) {\n const colIndex = seriesNumberCell.id;\n //判断colIndex整列是否被选中\n const isColSelected = this.table.stateManager.select.ranges.some(range => {\n return (\n range.start.col <= colIndex &&\n colIndex <= range.end.col &&\n range.start.row === 0 &&\n range.end.row === this.table.rowCount - 1\n );\n });\n //当前右键的列号 没有整列被选中,则进行选中\n if (!isColSelected) {\n this.table.selectCells([\n { start: { row: 0, col: colIndex }, end: { row: this.table.rowCount - 1, col: colIndex } }\n ]);\n }\n this.table.fireListeners(TABLE_EVENT_TYPE.PLUGIN_EVENT, {\n plugin: this,\n event: event,\n pluginEventInfo: {\n eventType: 'rightclick',\n colIndex: colIndex\n }\n });\n } else {\n //直接全选\n this.table.selectCells([\n { start: { row: 0, col: 0 }, end: { row: this.table.rowCount - 1, col: this.table.colCount - 1 } }\n ]);\n this.table.fireListeners(TABLE_EVENT_TYPE.PLUGIN_EVENT, {\n plugin: this,\n event: event,\n pluginEventInfo: {\n eventType: 'rightclick',\n isCorner: true\n }\n });\n }\n };\n\n private handleSeriesNumberCellHover = (e: any) => {\n this.table.scenegraph.renderSceneGraph();\n };\n\n private handleSeriesNumberCellUnHover = (e: any) => {\n this.table.scenegraph.renderSceneGraph();\n };\n\n private handleSeriesNumberCellClick = (e: any) => {\n const { seriesNumberCell, event, isDragSelect } = e.detail;\n const ctrlMultiSelect = this.table.options.keyboardOptions?.ctrlMultiSelect ?? true;\n const shiftMultiSelect = (this.table.options.keyboardOptions as any)?.shiftMultiSelect ?? true;\n const enableCtrlSelectMode = (event.nativeEvent.ctrlKey || event.nativeEvent.metaKey) && ctrlMultiSelect;\n const enableShiftSelectMode = event.nativeEvent.shiftKey && shiftMultiSelect;\n const isRow = seriesNumberCell.name.includes('row');\n const isCol = seriesNumberCell.name.includes('col');\n if (isRow) {\n this.table.stateManager.setSelectInline('row');\n const rowIndex = seriesNumberCell.id;\n\n if (isDragSelect) {\n this.table.dragSelectRow(rowIndex, enableCtrlSelectMode);\n } else {\n this.table.startDragSelectRow(rowIndex, enableCtrlSelectMode, enableShiftSelectMode);\n }\n } else if (isCol) {\n this.table.stateManager.setSelectInline('col');\n const colIndex = seriesNumberCell.id;\n if (isDragSelect) {\n this.table.dragSelectCol(colIndex, enableCtrlSelectMode);\n } else {\n this.table.startDragSelectCol(colIndex, enableCtrlSelectMode, enableShiftSelectMode);\n }\n } else {\n this.table.eventManager.deelTableSelectAll();\n }\n };\n\n private handleSeriesNumberCellClickUp = (e: any) => {\n this.table.stateManager.setSelectInline(false);\n this.table.endDragSelect();\n };\n\n private handleRowSeriesNumberWidthChange = (e: any) => {\n const rowSeriesNumberColWidth = this.seriesNumberComponent.rowSeriesNumberWidth;\n const colSeriesNumberRowHeight = this.seriesNumberComponent.colSeriesNumberHeight;\n this.table.setContentInsetXY(rowSeriesNumberColWidth, colSeriesNumberRowHeight);\n };\n\n private handleResizeColWidthStart = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', false);\n const { colIndex, event } = e.detail;\n this.table.stateManager.updateInteractionState(TYPES.InteractionState.grabing);\n this.table.stateManager.startResizeCol(colIndex, event.viewport.x, event.viewport.y);\n };\n\n private handleResizeRowHeightStart = (e: any) => {\n this.seriesNumberComponent.setAttribute('hover', false);\n const { rowIndex, event } = e.detail;\n this.table.stateManager.updateInteractionState(TYPES.InteractionState.grabing);\n this.table.stateManager.startResizeRow(rowIndex, event.viewport.x, event.viewport.y);\n };\n\n listenComponentEvents() {\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellRightClick, this.handleSeriesNumberCellRightClick);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellHover, this.handleSeriesNumberCellHover);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellUnHover, this.handleSeriesNumberCellUnHover);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellClick, this.handleSeriesNumberCellClick);\n this.seriesNumberComponent.on(SeriesNumberEvent.seriesNumberCellClickUp, this.handleSeriesNumberCellClickUp);\n this.seriesNumberComponent.on(SeriesNumberEvent.rowSeriesNumberWidthChange, this.handleRowSeriesNumberWidthChange);\n this.seriesNumberComponent.on(SeriesNumberEvent.resizeColWidthStart, this.handleResizeColWidthStart);\n this.seriesNumberComponent.on(SeriesNumberEvent.resizeRowHeightStart, this.handleResizeRowHeightStart);\n }\n release() {\n // 清除组件资源\n if (this.componentLayoutLayer) {\n this.table.scenegraph.stage.removeLayer(this.componentLayoutLayer._uid);\n this.componentLayoutLayer = null;\n }\n\n // 清除定时器\n if (this.scrollTimer) {\n clearTimeout(this.scrollTimer);\n this.scrollTimer = null;\n }\n\n // 移除表格事件监听器\n if (this.table) {\n this.table.off(TABLE_EVENT_TYPE.SCROLL, this.handleScroll);\n this.table.off(TABLE_EVENT_TYPE.AFTER_SORT, this.handleAfterSort);\n this.table.off(TABLE_EVENT_TYPE.SELECTED_CHANGED, this.handleSelectedChanged);\n this.table.off(TABLE_EVENT_TYPE.RESIZE_COLUMN_END, this.handleResizeColumnEnd);\n this.table.off(TABLE_EVENT_TYPE.RESIZE_ROW_END, this.handleResizeRowEnd);\n }\n // 移除组件事件监听器\n if (this.seriesNumberComponent) {\n this.seriesNumberComponent.off(\n SeriesNumberEvent.seriesNumberCellRightClick,\n this.handleSeriesNumberCellRightClick\n );\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellHover, this.handleSeriesNumberCellHover);\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellUnHover, this.handleSeriesNumberCellUnHover);\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellClick, this.handleSeriesNumberCellClick);\n this.seriesNumberComponent.off(SeriesNumberEvent.seriesNumberCellClickUp, this.handleSeriesNumberCellClickUp);\n this.seriesNumberComponent.off(\n SeriesNumberEvent.rowSeriesNumberWidthChange,\n this.handleRowSeriesNumberWidthChange\n );\n this.seriesNumberComponent.off(SeriesNumberEvent.resizeColWidthStart, this.handleResizeColWidthStart);\n this.seriesNumberComponent.off(SeriesNumberEvent.resizeRowHeightStart, this.handleResizeRowHeightStart);\n\n // 释放组件资源\n this.seriesNumberComponent.release?.();\n this.seriesNumberComponent = null;\n }\n }\n\n syncRowHeightToComponent() {\n // console.log('syncRowHeightToComponent adjust', adjustStartRowIndex, adjustEndRowIndex);\n const { rowStart, rowEnd } = this.table.getBodyVisibleRowRange();\n const adjustStartRowIndex = Math.max(rowStart - 2, this.table.frozenRowCount);\n const adjustEndRowIndex = Math.min(rowEnd + 2, this.table.rowCount - 1);\n //判断seriesNumberComponent的冻结行数是否变化\n if (this.table.frozenRowCount !== (this.seriesNumberComponent.getAttributes() as any).frozenRowCount) {\n this.seriesNumberComponent.setAttributes({ frozenRowCount: this.table.frozenRowCount } as any);\n }\n // 调用行序号重建接口\n this.seriesNumberComponent.recreateCellsToRowSeriesNumberGroup(adjustStartRowIndex, adjustEndRowIndex);\n // 更新冻结行序号单元格的y和height\n for (let i = 0; i < this.table.frozenRowCount; i++) {\n const cellGroup = this.table.scenegraph.getCell(0, i);\n const cell_attrs = cellGroup.getAttributes();\n this.seriesNumberComponent.setRowSeriesNumberCellAttributes(i, { y: cell_attrs.y, height: cell_attrs.height });\n }\n\n // 更新行序号单元格的y和height\n for (let i = adjustStartRowIndex; i <= adjustEndRowIndex; i++) {\n const cellGroup = this.table.scenegraph.getCell(0, i);\n const cell_attrs = cellGroup.getAttributes();\n this.seriesNumberComponent.setRowSeriesNumberCellAttributes(i, { y: cell_attrs.y, height: cell_attrs.height });\n }\n }\n syncColWidthToComponent() {\n const { colStart, colEnd } = this.table.getBodyVisibleColRange();\n const adjustStartColIndex = colStart;\n const adjustEndColIndex = Math.min(colEnd, this.table.scenegraph.proxy.colEnd);\n // console.log('syncColWidthToComponent adjust', adjustStartColIndex, adjustEndColIndex);\n\n //判断seriesNumberComponent的冻结列数是否变化\n if (this.table.frozenColCount !== (this.seriesNumberComponent.getAttributes() as any).frozenColCount) {\n this.seriesNumberComponent.setAttributes({ frozenColCount: this.table.frozenColCount } as any);\n }\n // 调用列序号重建接口\n this.seriesNumberComponent.recreateCellsToColSeriesNumberGroup(adjustStartColIndex, adjustEndColIndex);\n //更新冻结列序号单元格的x和width\n for (let i = 0; i < this.table.frozenColCount; i++) {\n const colGroup = this.table.scenegraph.getColGroup(i);\n const cell_attrs = colGroup.getAttributes();\n this.seriesNumberComponent.setColSeriesNumberCellAttributes(i, { x: cell_attrs.x, width: cell_attrs.width });\n }\n // 更新列序号单元格的x和width\n for (let i = adjustStartColIndex; i <= adjustEndColIndex; i++) {\n const colGroup = this.table.scenegraph.getColGroup(i);\n const col_attrs = colGroup.getAttributes();\n this.seriesNumberComponent.setColSeriesNumberCellAttributes(i, { x: col_attrs.x, width: col_attrs.width });\n }\n }\n\n syncScrollToComponent() {\n //TODO 根据滚动方向,同步对应的序号组件的滚动\n this.syncRowHeightToComponent();\n this.syncColWidthToComponent();\n const y = this.table.scenegraph.bodyGroup.getAttributes().y;\n const x = this.table.scenegraph.bodyGroup.getAttributes().x;\n this.seriesNumberComponent.setRowSeriesNumberGroupAttributes({\n y: y + this.seriesNumberComponent.colSeriesNumberHeight\n });\n this.seriesNumberComponent.setColSeriesNumberGroupAttributes({\n x: x + this.seriesNumberComponent.rowSeriesNumberWidth\n });\n }\n // syncFrozenToComponent() {\n // const frozenRowCount = this.table.frozenRowCount;\n // const frozenColCount = this.table.frozenColCount;\n // this.seriesNumberComponent.setFrozenTopRow(frozenRowCount);\n // this.seriesNumberComponent.setFrozenLeftCol(frozenColCount);\n // }\n}\n"]}
@@ -1,21 +1,21 @@
1
- import * as VTable from '@visactor/vtable';
1
+ import type { pluginsDefinition, BaseTableAPI, ListTable } from '@visactor/vtable';
2
2
  import type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';
3
3
  import type { EventArg } from './types';
4
4
  export type IWpsFillHandlePluginOptions = {
5
5
  id?: string;
6
6
  };
7
- export declare class WpsFillHandlePlugin implements VTable.plugins.IVTablePlugin {
7
+ export declare class WpsFillHandlePlugin implements pluginsDefinition.IVTablePlugin {
8
8
  id: string;
9
9
  name: string;
10
10
  runTime: ("mousedown_fill_handle" | "drag_fill_handle_end")[];
11
- table: VTable.ListTable;
11
+ table: ListTable;
12
12
  pluginOptions: IWpsFillHandlePluginOptions;
13
13
  beforeDragMinCol: number;
14
14
  beforeDragMinRow: number;
15
15
  beforeDragMaxCol: number;
16
16
  beforeDragMaxRow: number;
17
17
  constructor(pluginOptions?: IWpsFillHandlePluginOptions);
18
- run(...args: [EventArg, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], VTable.BaseTableAPI]): void;
18
+ run(...args: [EventArg, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], BaseTableAPI]): void;
19
19
  handleKeyDown(): void;
20
20
  release(): void;
21
21
  }
@@ -1,18 +1,18 @@
1
- import * as VTable from "@visactor/vtable";
1
+ import { TABLE_EVENT_TYPE } from "@visactor/vtable";
2
2
 
3
3
  import { generateAutoFillData } from "./fillHandleUtils/autoFillHandle";
4
4
 
5
5
  export class WpsFillHandlePlugin {
6
6
  constructor(pluginOptions) {
7
7
  var _a;
8
- this.id = "wps-fill-handle", this.name = "WPS Fill Handle", this.runTime = [ VTable.TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE, VTable.TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END ],
8
+ this.id = "wps-fill-handle", this.name = "WPS Fill Handle", this.runTime = [ TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE, TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END ],
9
9
  this.beforeDragMinCol = 0, this.beforeDragMinRow = 0, this.beforeDragMaxCol = 0,
10
10
  this.beforeDragMaxRow = 0, this.id = null !== (_a = null == pluginOptions ? void 0 : pluginOptions.id) && void 0 !== _a ? _a : this.id,
11
11
  this.pluginOptions = pluginOptions;
12
12
  }
13
13
  run(...args) {
14
14
  var _a, _b, _c, _d, _e;
15
- if (args[1] === VTable.TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE) {
15
+ if (args[1] === TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE) {
16
16
  args[0];
17
17
  const table = args[2];
18
18
  this.table = table;
@@ -22,7 +22,7 @@ export class WpsFillHandlePlugin {
22
22
  this.beforeDragMinCol = Math.min(startSelectCellRange.start.col, startSelectCellRange.end.col),
23
23
  this.beforeDragMaxRow = Math.max(startSelectCellRange.start.row, startSelectCellRange.end.row),
24
24
  this.beforeDragMinRow = Math.min(startSelectCellRange.start.row, startSelectCellRange.end.row);
25
- } else if (args[1] === VTable.TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END) {
25
+ } else if (args[1] === TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END) {
26
26
  const direction = args[0].direction;
27
27
  let endChangeCellCol, endChangeCellRow;
28
28
  const endSelectCellRange = null === (_b = this.table) || void 0 === _b ? void 0 : _b.getSelectedCellRanges()[0];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/wps-fill-handle.ts"],"names":[],"mappings":"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","file":"wps-fill-handle.js","sourcesContent":["import * as VTable from '@visactor/vtable';\nimport type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';\nimport type { EventArg } from './types';\nimport { generateAutoFillData } from './fillHandleUtils/autoFillHandle';\n//备用 插件配置项 目前感觉都走默认逻辑就行\nexport type IWpsFillHandlePluginOptions = {\n id?: string;\n // 是否响应删除\n // enableDeleteKey?: boolean;\n};\n\nexport class WpsFillHandlePlugin implements VTable.plugins.IVTablePlugin {\n id = `wps-fill-handle`;\n name = 'WPS Fill Handle';\n runTime = [VTable.TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE, VTable.TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END];\n table: VTable.ListTable;\n pluginOptions: IWpsFillHandlePluginOptions;\n\n beforeDragMinCol = 0;\n beforeDragMinRow = 0;\n beforeDragMaxCol = 0;\n beforeDragMaxRow = 0;\n\n constructor(pluginOptions?: IWpsFillHandlePluginOptions) {\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 if (args[1] === VTable.TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE) {\n const eventArgs = args[0];\n const table: VTable.BaseTableAPI = args[2];\n this.table = table as VTable.ListTable;\n const startSelectCellRange = this.table?.getSelectedCellRanges()[0];\n if (!startSelectCellRange) {\n return;\n }\n this.beforeDragMaxCol = Math.max(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMinCol = Math.min(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMaxRow = Math.max(startSelectCellRange.start.row, startSelectCellRange.end.row);\n this.beforeDragMinRow = Math.min(startSelectCellRange.start.row, startSelectCellRange.end.row);\n } else if (args[1] === VTable.TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END) {\n const direction = (args[0] as { direction?: 'bottom' | 'right' | 'top' | 'left' }).direction;\n let endChangeCellCol;\n let endChangeCellRow;\n const endSelectCellRange = this.table?.getSelectedCellRanges()[0];\n if (!endSelectCellRange) {\n return;\n }\n //根据填充方向 确定需要填充值的范围\n if (direction === 'bottom') {\n endChangeCellCol = this.beforeDragMaxCol;\n endChangeCellRow = endSelectCellRange.end.row;\n } else if (direction === 'right') {\n endChangeCellCol = endSelectCellRange.end.col;\n endChangeCellRow = this.beforeDragMaxRow;\n } else if (direction === 'top') {\n endChangeCellCol = this.beforeDragMaxCol;\n endChangeCellRow = endSelectCellRange.end.row;\n } else if (direction === 'left') {\n endChangeCellCol = endSelectCellRange.end.col;\n endChangeCellRow = this.beforeDragMaxRow;\n }\n const rowDatas = this.table?.records;\n const tableColumns = this.table?.getAllColumnHeaderCells() || [];\n let highestColumns: VTable.TYPES.CellInfo[] = [];\n if (tableColumns?.length) {\n highestColumns = tableColumns[tableColumns.length - 1];\n }\n const newDatas = generateAutoFillData(\n rowDatas,\n highestColumns,\n {\n startRow: this.beforeDragMinRow - tableColumns.length,\n startCol: this.beforeDragMinCol,\n endRow: this.beforeDragMaxRow - tableColumns.length,\n endCol: this.beforeDragMaxCol\n },\n {\n row: endChangeCellRow - tableColumns.length,\n col: endChangeCellCol\n }\n );\n this.table?.setRecords(newDatas);\n }\n }\n\n handleKeyDown() {\n if (this.table.editorManager) {\n //判断是键盘触发编辑单元格的情况下,那么在编辑状态中切换方向需要选中下一个继续编辑\n const startSelectCellRange = this.table?.getSelectedCellRanges()[0];\n if (!startSelectCellRange) {\n return;\n }\n this.beforeDragMaxCol = Math.max(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMinCol = Math.min(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMaxRow = Math.max(startSelectCellRange.start.row, startSelectCellRange.end.row);\n this.beforeDragMinRow = Math.min(startSelectCellRange.start.row, startSelectCellRange.end.row);\n }\n }\n\n release() {\n this.beforeDragMinCol = 0;\n this.beforeDragMinRow = 0;\n this.beforeDragMaxCol = 0;\n this.beforeDragMaxRow = 0;\n // document.removeEventListener('mousedown_fill_handle', this.handleKeyDown, true);\n // document.removeEventListener('drag_fill_handle_end', this.handleDragEnd, true);\n }\n}\n//将选中单元格的值设置为空\nfunction deleteSelectRange(selectCells: VTable.TYPES.CellInfo[][], tableInstance: VTable.ListTable) {\n for (let i = 0; i < selectCells.length; i++) {\n for (let j = 0; j < selectCells[i].length; j++) {\n tableInstance.changeCellValue(selectCells[i][j].col, selectCells[i][j].row, '');\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/wps-fill-handle.ts"],"names":[],"mappings":"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","file":"wps-fill-handle.js","sourcesContent":["import type { pluginsDefinition, BaseTableAPI, ListTable, TYPES } 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';\nimport { generateAutoFillData } from './fillHandleUtils/autoFillHandle';\n//备用 插件配置项 目前感觉都走默认逻辑就行\nexport type IWpsFillHandlePluginOptions = {\n id?: string;\n // 是否响应删除\n // enableDeleteKey?: boolean;\n};\n\nexport class WpsFillHandlePlugin implements pluginsDefinition.IVTablePlugin {\n id = `wps-fill-handle`;\n name = 'WPS Fill Handle';\n runTime = [TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE, TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END];\n table: ListTable;\n pluginOptions: IWpsFillHandlePluginOptions;\n\n beforeDragMinCol = 0;\n beforeDragMinRow = 0;\n beforeDragMaxCol = 0;\n beforeDragMaxRow = 0;\n\n constructor(pluginOptions?: IWpsFillHandlePluginOptions) {\n this.id = pluginOptions?.id ?? this.id;\n this.pluginOptions = pluginOptions;\n }\n run(...args: [EventArg, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], BaseTableAPI]) {\n if (args[1] === TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE) {\n const eventArgs = args[0];\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n const startSelectCellRange = this.table?.getSelectedCellRanges()[0];\n if (!startSelectCellRange) {\n return;\n }\n this.beforeDragMaxCol = Math.max(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMinCol = Math.min(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMaxRow = Math.max(startSelectCellRange.start.row, startSelectCellRange.end.row);\n this.beforeDragMinRow = Math.min(startSelectCellRange.start.row, startSelectCellRange.end.row);\n } else if (args[1] === TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END) {\n const direction = (args[0] as { direction?: 'bottom' | 'right' | 'top' | 'left' }).direction;\n let endChangeCellCol;\n let endChangeCellRow;\n const endSelectCellRange = this.table?.getSelectedCellRanges()[0];\n if (!endSelectCellRange) {\n return;\n }\n //根据填充方向 确定需要填充值的范围\n if (direction === 'bottom') {\n endChangeCellCol = this.beforeDragMaxCol;\n endChangeCellRow = endSelectCellRange.end.row;\n } else if (direction === 'right') {\n endChangeCellCol = endSelectCellRange.end.col;\n endChangeCellRow = this.beforeDragMaxRow;\n } else if (direction === 'top') {\n endChangeCellCol = this.beforeDragMaxCol;\n endChangeCellRow = endSelectCellRange.end.row;\n } else if (direction === 'left') {\n endChangeCellCol = endSelectCellRange.end.col;\n endChangeCellRow = this.beforeDragMaxRow;\n }\n const rowDatas = this.table?.records;\n const tableColumns = this.table?.getAllColumnHeaderCells() || [];\n let highestColumns: TYPES.CellInfo[] = [];\n if (tableColumns?.length) {\n highestColumns = tableColumns[tableColumns.length - 1];\n }\n const newDatas = generateAutoFillData(\n rowDatas,\n highestColumns,\n {\n startRow: this.beforeDragMinRow - tableColumns.length,\n startCol: this.beforeDragMinCol,\n endRow: this.beforeDragMaxRow - tableColumns.length,\n endCol: this.beforeDragMaxCol\n },\n {\n row: endChangeCellRow - tableColumns.length,\n col: endChangeCellCol\n }\n );\n this.table?.setRecords(newDatas);\n }\n }\n\n handleKeyDown() {\n if (this.table.editorManager) {\n //判断是键盘触发编辑单元格的情况下,那么在编辑状态中切换方向需要选中下一个继续编辑\n const startSelectCellRange = this.table?.getSelectedCellRanges()[0];\n if (!startSelectCellRange) {\n return;\n }\n this.beforeDragMaxCol = Math.max(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMinCol = Math.min(startSelectCellRange.start.col, startSelectCellRange.end.col);\n this.beforeDragMaxRow = Math.max(startSelectCellRange.start.row, startSelectCellRange.end.row);\n this.beforeDragMinRow = Math.min(startSelectCellRange.start.row, startSelectCellRange.end.row);\n }\n }\n\n release() {\n this.beforeDragMinCol = 0;\n this.beforeDragMinRow = 0;\n this.beforeDragMaxCol = 0;\n this.beforeDragMaxRow = 0;\n // document.removeEventListener('mousedown_fill_handle', this.handleKeyDown, true);\n // document.removeEventListener('drag_fill_handle_end', this.handleDragEnd, true);\n }\n}\n//将选中单元格的值设置为空\nfunction deleteSelectRange(selectCells: TYPES.CellInfo[][], tableInstance: ListTable) {\n for (let i = 0; i < selectCells.length; i++) {\n for (let j = 0; j < selectCells[i].length; j++) {\n tableInstance.changeCellValue(selectCells[i][j].col, selectCells[i][j].row, '');\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vtable-plugins",
3
- "version": "1.20.1",
3
+ "version": "1.20.2",
4
4
  "description": "The search util of VTable",
5
5
  "author": {
6
6
  "name": "VisActor",
@@ -42,8 +42,8 @@
42
42
  "@types/file-saver": "2.0.7"
43
43
  },
44
44
  "peerDependencies": {
45
- "@visactor/vtable": "1.20.1",
46
- "@visactor/vtable-gantt": "1.20.1"
45
+ "@visactor/vtable": "1.20.2",
46
+ "@visactor/vtable-gantt": "1.20.2"
47
47
  },
48
48
  "peerDependenciesMeta": {
49
49
  "@visactor/vtable-gantt": {
@@ -95,15 +95,16 @@
95
95
  "@types/react-is": "^17.0.3",
96
96
  "rollup-plugin-node-resolve": "5.2.0",
97
97
  "@types/lodash": "4.14.182",
98
- "@visactor/vtable": "1.20.1",
99
- "@visactor/vtable-gantt": "1.20.1",
98
+ "@visactor/vtable": "1.20.2",
99
+ "@visactor/vtable-gantt": "1.20.2",
100
+ "@internal/bundler": "0.0.1",
100
101
  "@internal/eslint-config": "0.0.1",
101
102
  "@internal/ts-config": "0.0.1",
102
- "@internal/bundler": "0.0.1",
103
- "@visactor/vtable-editors": "1.20.1"
103
+ "@visactor/vtable-editors": "1.20.2"
104
104
  },
105
105
  "scripts": {
106
106
  "demo": "vite ./demo",
107
+ "compile": "tsc --noEmit",
107
108
  "build": "npm run fix-memory-limit && bundle --clean",
108
109
  "fix-memory-limit": "cross-env LIMIT=10240 increase-memory-limit"
109
110
  }