@visactor/vtable-plugins 1.20.2-alpha.0 → 1.20.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/add-row-column.d.ts +7 -6
- package/cjs/add-row-column.js +4 -29
- package/cjs/add-row-column.js.map +1 -1
- package/cjs/auto-fill/auto-fill-manager.js +7 -34
- package/cjs/auto-fill/auto-fill-manager.js.map +1 -1
- package/cjs/auto-fill/index.d.ts +6 -10
- package/cjs/auto-fill/index.js +5 -30
- package/cjs/auto-fill/index.js.map +1 -1
- package/cjs/auto-fill/rules.js +26 -11
- package/cjs/auto-fill/rules.js.map +1 -1
- package/cjs/auto-fill/utils/fill.d.ts +1 -1
- package/cjs/auto-fill/utils/fill.js +9 -9
- package/cjs/auto-fill/utils/fill.js.map +1 -1
- package/cjs/column-series.d.ts +4 -3
- package/cjs/column-series.js +4 -29
- package/cjs/column-series.js.map +1 -1
- package/cjs/context-menu.d.ts +6 -5
- package/cjs/context-menu.js +3 -28
- package/cjs/context-menu.js.map +1 -1
- package/cjs/contextmenu/handle-menu-helper.d.ts +19 -19
- package/cjs/contextmenu/handle-menu-helper.js.map +1 -1
- package/cjs/contextmenu/menu-manager.js.map +1 -1
- package/cjs/contextmenu/types.d.ts +1 -1
- package/cjs/contextmenu/types.js +2 -2
- package/cjs/contextmenu/types.js.map +1 -1
- package/cjs/excel-edit-cell-keyboard.d.ts +19 -4
- package/cjs/excel-edit-cell-keyboard.js +32 -40
- package/cjs/excel-edit-cell-keyboard.js.map +1 -1
- package/cjs/excel-import.d.ts +5 -5
- package/cjs/excel-import.js +3 -26
- package/cjs/excel-import.js.map +1 -1
- package/cjs/fillHandleUtils/autoFillHandle.d.ts +2 -2
- package/cjs/fillHandleUtils/autoFillHandle.js.map +1 -1
- package/cjs/fillHandleUtils/translateRowObj.d.ts +3 -3
- package/cjs/fillHandleUtils/translateRowObj.js.map +1 -1
- package/cjs/filter/condition-filter.d.ts +2 -2
- package/cjs/filter/condition-filter.js.map +1 -1
- package/cjs/filter/filter-engine.d.ts +6 -6
- package/cjs/filter/filter-engine.js.map +1 -1
- package/cjs/filter/filter-state-manager.d.ts +2 -2
- package/cjs/filter/filter-state-manager.js.map +1 -1
- package/cjs/filter/filter-toolbar.d.ts +4 -4
- package/cjs/filter/filter-toolbar.js.map +1 -1
- package/cjs/filter/filter.d.ts +4 -4
- package/cjs/filter/filter.js +7 -32
- package/cjs/filter/filter.js.map +1 -1
- package/cjs/filter/types.d.ts +4 -4
- package/cjs/filter/types.js.map +1 -1
- package/cjs/filter/value-filter.d.ts +2 -2
- package/cjs/filter/value-filter.js.map +1 -1
- package/cjs/focus-highlight.d.ts +2 -2
- package/cjs/focus-highlight.js.map +1 -1
- package/cjs/gantt-export-image.js +1 -1
- package/cjs/gantt-export-image.js.map +1 -1
- package/cjs/header-highlight.js +2 -2
- package/cjs/header-highlight.js.map +1 -1
- package/cjs/highlight-header-when-select-cell.d.ts +2 -2
- package/cjs/highlight-header-when-select-cell.js.map +1 -1
- package/cjs/paste-add-row-column.d.ts +5 -5
- package/cjs/paste-add-row-column.js +3 -28
- package/cjs/paste-add-row-column.js.map +1 -1
- package/cjs/rotate-table.d.ts +13 -5
- package/cjs/rotate-table.js +3 -28
- package/cjs/rotate-table.js.map +1 -1
- package/cjs/row-series.d.ts +2 -2
- package/cjs/row-series.js.map +1 -1
- package/cjs/table-carousel-animation.d.ts +2 -2
- package/cjs/table-carousel-animation.js.map +1 -1
- package/cjs/table-export/csv/index.d.ts +2 -4
- package/cjs/table-export/csv/index.js.map +1 -1
- package/cjs/table-export/excel/index.js +1 -1
- package/cjs/table-export/excel/style.js +2 -2
- package/cjs/table-export/util/promise.js +1 -1
- package/cjs/table-export/util/type.d.ts +6 -6
- package/cjs/table-export/util/type.js +1 -1
- package/cjs/table-export/util/type.js.map +1 -1
- package/cjs/table-export.d.ts +2 -2
- package/cjs/table-export.js +4 -27
- package/cjs/table-export.js.map +1 -1
- package/cjs/table-series-number.d.ts +2 -2
- package/cjs/table-series-number.js +2 -3
- package/cjs/table-series-number.js.map +1 -1
- package/cjs/wps-fill-handle.d.ts +4 -4
- package/cjs/wps-fill-handle.js +4 -29
- package/cjs/wps-fill-handle.js.map +1 -1
- package/dist/vtable-plugins.js +342 -13636
- package/dist/vtable-plugins.min.js +5 -5
- package/es/add-row-column.d.ts +7 -6
- package/es/add-row-column.js +4 -4
- package/es/add-row-column.js.map +1 -1
- package/es/auto-fill/auto-fill-manager.js +7 -9
- package/es/auto-fill/auto-fill-manager.js.map +1 -1
- package/es/auto-fill/index.d.ts +6 -10
- package/es/auto-fill/index.js +5 -5
- package/es/auto-fill/index.js.map +1 -1
- package/es/auto-fill/rules.js +24 -9
- package/es/auto-fill/rules.js.map +1 -1
- package/es/auto-fill/utils/fill.d.ts +1 -1
- package/es/auto-fill/utils/fill.js +9 -9
- package/es/auto-fill/utils/fill.js.map +1 -1
- package/es/column-series.d.ts +4 -3
- package/es/column-series.js +4 -4
- package/es/column-series.js.map +1 -1
- package/es/context-menu.d.ts +6 -5
- package/es/context-menu.js +3 -3
- package/es/context-menu.js.map +1 -1
- package/es/contextmenu/handle-menu-helper.d.ts +19 -19
- package/es/contextmenu/handle-menu-helper.js.map +1 -1
- package/es/contextmenu/menu-manager.js.map +1 -1
- package/es/contextmenu/types.d.ts +1 -1
- package/es/contextmenu/types.js +2 -2
- package/es/contextmenu/types.js.map +1 -1
- package/es/excel-edit-cell-keyboard.d.ts +19 -4
- package/es/excel-edit-cell-keyboard.js +31 -14
- package/es/excel-edit-cell-keyboard.js.map +1 -1
- package/es/excel-import.d.ts +5 -5
- package/es/excel-import.js +2 -2
- package/es/excel-import.js.map +1 -1
- package/es/fillHandleUtils/autoFillHandle.d.ts +2 -2
- package/es/fillHandleUtils/autoFillHandle.js.map +1 -1
- package/es/fillHandleUtils/translateRowObj.d.ts +3 -3
- package/es/fillHandleUtils/translateRowObj.js.map +1 -1
- package/es/filter/condition-filter.d.ts +2 -2
- package/es/filter/condition-filter.js.map +1 -1
- package/es/filter/filter-engine.d.ts +6 -6
- package/es/filter/filter-engine.js.map +1 -1
- package/es/filter/filter-state-manager.d.ts +2 -2
- package/es/filter/filter-state-manager.js.map +1 -1
- package/es/filter/filter-toolbar.d.ts +4 -4
- package/es/filter/filter-toolbar.js.map +1 -1
- package/es/filter/filter.d.ts +4 -4
- package/es/filter/filter.js +7 -7
- package/es/filter/filter.js.map +1 -1
- package/es/filter/types.d.ts +4 -4
- package/es/filter/types.js.map +1 -1
- package/es/filter/value-filter.d.ts +2 -2
- package/es/filter/value-filter.js.map +1 -1
- package/es/focus-highlight.d.ts +2 -2
- package/es/focus-highlight.js.map +1 -1
- package/es/gantt-export-image.js +1 -1
- package/es/gantt-export-image.js.map +1 -1
- package/es/header-highlight.js +2 -2
- package/es/header-highlight.js.map +1 -1
- package/es/highlight-header-when-select-cell.d.ts +2 -2
- package/es/highlight-header-when-select-cell.js.map +1 -1
- package/es/paste-add-row-column.d.ts +5 -5
- package/es/paste-add-row-column.js +3 -3
- package/es/paste-add-row-column.js.map +1 -1
- package/es/rotate-table.d.ts +13 -5
- package/es/rotate-table.js +3 -3
- package/es/rotate-table.js.map +1 -1
- package/es/row-series.d.ts +2 -2
- package/es/row-series.js.map +1 -1
- package/es/table-carousel-animation.d.ts +2 -2
- package/es/table-carousel-animation.js.map +1 -1
- package/es/table-export/csv/index.d.ts +2 -4
- package/es/table-export/csv/index.js.map +1 -1
- package/es/table-export/excel/index.js +1 -1
- package/es/table-export/excel/style.js +1 -1
- package/es/table-export/util/promise.js +1 -1
- package/es/table-export/util/type.d.ts +6 -6
- package/es/table-export/util/type.js +1 -1
- package/es/table-export/util/type.js.map +1 -1
- package/es/table-export.d.ts +2 -2
- package/es/table-export.js +3 -3
- package/es/table-export.js.map +1 -1
- package/es/table-series-number.d.ts +2 -2
- package/es/table-series-number.js +2 -3
- package/es/table-series-number.js.map +1 -1
- package/es/wps-fill-handle.d.ts +4 -4
- package/es/wps-fill-handle.js +4 -4
- package/es/wps-fill-handle.js.map +1 -1
- package/package.json +8 -7
package/cjs/add-row-column.d.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import
|
|
2
|
+
import type { ListTable, TYPES } from '@visactor/vtable';
|
|
3
|
+
import type { pluginsDefinition } from '@visactor/vtable';
|
|
3
4
|
export interface AddRowColumnOptions {
|
|
4
5
|
id?: string;
|
|
5
6
|
addColumnEnable?: boolean;
|
|
6
7
|
addRowEnable?: boolean;
|
|
7
|
-
addColumnCallback?: (col: number, table:
|
|
8
|
-
addRowCallback?: (row: number, table:
|
|
8
|
+
addColumnCallback?: (col: number, table: ListTable) => void;
|
|
9
|
+
addRowCallback?: (row: number, table: ListTable) => void;
|
|
9
10
|
}
|
|
10
|
-
export declare class AddRowColumnPlugin implements
|
|
11
|
+
export declare class AddRowColumnPlugin implements pluginsDefinition.IVTablePlugin {
|
|
11
12
|
id: string;
|
|
12
13
|
name: string;
|
|
13
14
|
runTime: ("mouseleave_table" | "mouseenter_cell" | "mouseleave_cell")[];
|
|
14
15
|
pluginOptions: AddRowColumnOptions;
|
|
15
|
-
table:
|
|
16
|
-
hoverCell:
|
|
16
|
+
table: ListTable;
|
|
17
|
+
hoverCell: TYPES.CellAddressWithBound;
|
|
17
18
|
hideAllTimeoutId_addColumn: NodeJS.Timeout;
|
|
18
19
|
hideAllTimeoutId_addRow: NodeJS.Timeout;
|
|
19
20
|
leftDotForAddColumn: HTMLElement;
|
package/cjs/add-row-column.js
CHANGED
|
@@ -1,35 +1,10 @@
|
|
|
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.AddRowColumnPlugin = void 0;
|
|
31
6
|
|
|
32
|
-
const
|
|
7
|
+
const vtable_1 = require("@visactor/vtable");
|
|
33
8
|
|
|
34
9
|
class AddRowColumnPlugin {
|
|
35
10
|
constructor(pluginOptions = {
|
|
@@ -37,7 +12,7 @@ class AddRowColumnPlugin {
|
|
|
37
12
|
addRowEnable: !0
|
|
38
13
|
}) {
|
|
39
14
|
var _a, _b, _c;
|
|
40
|
-
this.id = "add-row-column", this.name = "Add Row Column", this.runTime = [
|
|
15
|
+
this.id = "add-row-column", this.name = "Add Row Column", this.runTime = [ vtable_1.TABLE_EVENT_TYPE.MOUSEENTER_CELL, vtable_1.TABLE_EVENT_TYPE.MOUSELEAVE_CELL, vtable_1.TABLE_EVENT_TYPE.MOUSELEAVE_TABLE ],
|
|
41
16
|
this.id = null !== (_a = pluginOptions.id) && void 0 !== _a ? _a : this.id, this.pluginOptions = pluginOptions,
|
|
42
17
|
this.pluginOptions.addColumnEnable = null === (_b = this.pluginOptions.addColumnEnable) || void 0 === _b || _b,
|
|
43
18
|
this.pluginOptions.addRowEnable = null === (_c = this.pluginOptions.addRowEnable) || void 0 === _c || _c,
|
|
@@ -46,7 +21,7 @@ class AddRowColumnPlugin {
|
|
|
46
21
|
}
|
|
47
22
|
run(...args) {
|
|
48
23
|
const eventArgs = args[0], runTime = args[1], table = args[2];
|
|
49
|
-
if (this.table = table, runTime ===
|
|
24
|
+
if (this.table = table, runTime === vtable_1.TABLE_EVENT_TYPE.MOUSEENTER_CELL) {
|
|
50
25
|
clearTimeout(this.hideAllTimeoutId_addColumn), clearTimeout(this.hideAllTimeoutId_addRow);
|
|
51
26
|
const canvasBounds = table.canvas.getBoundingClientRect(), cell = table.getCellAtRelativePosition(eventArgs.event.clientX - canvasBounds.left, eventArgs.event.clientY - canvasBounds.top);
|
|
52
27
|
this.hoverCell = cell;
|
|
@@ -59,7 +34,7 @@ class AddRowColumnPlugin {
|
|
|
59
34
|
const isHeader = table.isHeader(cell.col, cell.row);
|
|
60
35
|
this.showDotForAddRow(cellRect.top + canvasBounds.top, canvasBounds.left - 6, cellRect.bottom + canvasBounds.top, !isHeader, !isHeader);
|
|
61
36
|
}
|
|
62
|
-
} else runTime ===
|
|
37
|
+
} else runTime === vtable_1.TABLE_EVENT_TYPE.MOUSELEAVE_CELL || runTime === vtable_1.TABLE_EVENT_TYPE.MOUSELEAVE_TABLE && (this.pluginOptions.addColumnEnable && this.delayHideAllForAddColumn(),
|
|
63
38
|
this.pluginOptions.addRowEnable && this.delayHideAllForAddRow());
|
|
64
39
|
}
|
|
65
40
|
initAddColumnDomElement() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/add-row-column.ts"],"names":[],"mappings":"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","file":"add-row-column.js","sourcesContent":["import * as VTable from '@visactor/vtable';\n/**\n * 添加行和列的插件的配置选项\n */\nexport interface AddRowColumnOptions {\n id?: string;\n /**\n * 是否启用添加列\n */\n addColumnEnable?: boolean;\n /**\n * 是否启用添加行\n */\n addRowEnable?: boolean;\n /**\n * 添加列的回调函数\n */\n addColumnCallback?: (col: number, table: VTable.ListTable) => void;\n /**\n * 添加行的回调函数\n */\n addRowCallback?: (row: number, table: VTable.ListTable) => void;\n}\n/**\n * 添加行和列的插件\n * 该插件监听了table的MOUSEENTER_CELL,MOUSELEAVE_CELL,MOUSELEAVE_TABLE事件\n * 当鼠标hover到table的cell时,会显示添加行和列的dot和加号\n * 当鼠标离开table的cell时,会隐藏添加行和列的dot和加号\n */\nexport class AddRowColumnPlugin implements VTable.plugins.IVTablePlugin {\n id = `add-row-column`;\n name = 'Add Row Column';\n runTime = [\n VTable.TABLE_EVENT_TYPE.MOUSEENTER_CELL,\n VTable.TABLE_EVENT_TYPE.MOUSELEAVE_CELL,\n VTable.TABLE_EVENT_TYPE.MOUSELEAVE_TABLE\n ];\n pluginOptions: AddRowColumnOptions;\n table: VTable.ListTable;\n hoverCell: VTable.TYPES.CellAddressWithBound;\n hideAllTimeoutId_addColumn: NodeJS.Timeout;\n hideAllTimeoutId_addRow: NodeJS.Timeout;\n leftDotForAddColumn: HTMLElement;\n rightDotForAddColumn: HTMLElement;\n addIconForAddColumn: HTMLElement;\n addLineForAddColumn: HTMLElement;\n topDotForAddRow: HTMLElement;\n bottomDotForAddRow: HTMLElement;\n addIconForAddRow: HTMLElement;\n addLineForAddRow: HTMLElement;\n\n constructor(\n pluginOptions: AddRowColumnOptions = {\n addColumnEnable: true,\n addRowEnable: true\n }\n ) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = pluginOptions;\n this.pluginOptions.addColumnEnable = this.pluginOptions.addColumnEnable ?? true;\n this.pluginOptions.addRowEnable = this.pluginOptions.addRowEnable ?? true;\n if (this.pluginOptions.addColumnEnable) {\n this.initAddColumnDomElement();\n this.bindEventForAddColumn();\n }\n if (this.pluginOptions.addRowEnable) {\n this.initAddRowDomElement();\n this.bindEventForAddRow();\n }\n }\n run(...args: any[]) {\n const eventArgs = args[0];\n const runTime = args[1];\n const table: VTable.BaseTableAPI = args[2];\n this.table = table as VTable.ListTable;\n if (runTime === VTable.TABLE_EVENT_TYPE.MOUSEENTER_CELL) {\n clearTimeout(this.hideAllTimeoutId_addColumn);\n clearTimeout(this.hideAllTimeoutId_addRow);\n const canvasBounds = table.canvas.getBoundingClientRect();\n const cell = table.getCellAtRelativePosition(\n eventArgs.event.clientX - canvasBounds.left,\n eventArgs.event.clientY - canvasBounds.top\n );\n this.hoverCell = cell;\n const cellRect = table.getCellRelativeRect(cell.col, cell.row);\n if (this.pluginOptions.addColumnEnable) {\n const isRowSerierNumberCol = table.isSeriesNumber(cell.col, 0);\n this.showDotForAddColumn(\n canvasBounds.top - 6,\n cellRect.left + canvasBounds.left,\n cellRect.right + canvasBounds.left,\n !isRowSerierNumberCol\n );\n }\n if (this.pluginOptions.addRowEnable) {\n const isHeader = table.isHeader(cell.col, cell.row);\n this.showDotForAddRow(\n cellRect.top + canvasBounds.top,\n canvasBounds.left - 6,\n cellRect.bottom + canvasBounds.top,\n !isHeader,\n !isHeader\n );\n }\n } else if (runTime === VTable.TABLE_EVENT_TYPE.MOUSELEAVE_CELL) {\n } else if (runTime === VTable.TABLE_EVENT_TYPE.MOUSELEAVE_TABLE) {\n if (this.pluginOptions.addColumnEnable) {\n this.delayHideAllForAddColumn();\n }\n if (this.pluginOptions.addRowEnable) {\n this.delayHideAllForAddRow();\n }\n }\n }\n // #region 添加列\n initAddColumnDomElement() {\n //创建一个div 作为hoverCell的顶部左侧的圆点\n this.leftDotForAddColumn = document.createElement('div');\n this.leftDotForAddColumn.style.width = '6px';\n this.leftDotForAddColumn.style.height = '6px';\n this.leftDotForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.leftDotForAddColumn.style.position = 'absolute';\n this.leftDotForAddColumn.style.cursor = 'pointer';\n this.leftDotForAddColumn.style.zIndex = '1000';\n this.leftDotForAddColumn.style.borderRadius = '50%';\n this.leftDotForAddColumn.style.border = '1px solid white';\n this.leftDotForAddColumn.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.leftDotForAddColumn);\n\n //创建一个div 作为hoverCell的顶部右侧的圆点\n this.rightDotForAddColumn = document.createElement('div');\n this.rightDotForAddColumn.style.width = '6px';\n this.rightDotForAddColumn.style.height = '6px';\n this.rightDotForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.rightDotForAddColumn.style.position = 'absolute';\n this.rightDotForAddColumn.style.cursor = 'pointer';\n this.rightDotForAddColumn.style.zIndex = '1000';\n this.rightDotForAddColumn.style.borderRadius = '50%';\n this.rightDotForAddColumn.style.border = '1px solid white';\n this.rightDotForAddColumn.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.rightDotForAddColumn);\n\n //创建+加号 当鼠标hover到圆点上时,显示+加号\n this.addIconForAddColumn = document.createElement('div');\n this.addIconForAddColumn.style.width = '18px';\n this.addIconForAddColumn.style.height = '18px';\n this.addIconForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addIconForAddColumn.style.position = 'absolute';\n this.addIconForAddColumn.style.zIndex = '1001';\n this.addIconForAddColumn.style.display = 'none';\n this.addIconForAddColumn.style.borderRadius = '50%';\n this.addIconForAddColumn.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';\n this.addIconForAddColumn.style.justifyContent = 'center';\n this.addIconForAddColumn.style.alignItems = 'center';\n this.addIconForAddColumn.style.border = '1px solid white';\n document.body.appendChild(this.addIconForAddColumn);\n\n //addIcon中添加一个+号\n const addIconText = document.createElement('div');\n addIconText.textContent = '+';\n addIconText.style.color = 'white';\n addIconText.style.fontSize = '18px';\n addIconText.style.fontWeight = 'bold';\n addIconText.style.lineHeight = '15px';\n addIconText.style.userSelect = 'none';\n addIconText.style.cursor = 'pointer';\n addIconText.style.verticalAlign = 'top';\n addIconText.style.textAlign = 'center';\n\n this.addIconForAddColumn.appendChild(addIconText);\n\n // 创建加号下面列间隔线\n this.addLineForAddColumn = document.createElement('div');\n this.addLineForAddColumn.style.width = '2px';\n this.addLineForAddColumn.style.height = '10px';\n this.addLineForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addLineForAddColumn.style.position = 'absolute';\n this.addLineForAddColumn.style.zIndex = '1001';\n this.addLineForAddColumn.style.display = 'none';\n document.body.appendChild(this.addLineForAddColumn);\n }\n bindEventForAddColumn() {\n this.leftDotForAddColumn.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addColumn);\n this.addIconForAddColumn.style.display = 'block';\n const dotWidth = this.leftDotForAddColumn.offsetWidth;\n const dotHeight = this.leftDotForAddColumn.offsetHeight;\n this.showAddIconForAddColumn(\n this.leftDotForAddColumn.offsetLeft + dotWidth / 2,\n this.leftDotForAddColumn.offsetTop + dotHeight / 2,\n true\n );\n this.showSplitLineForAddColumn(\n this.leftDotForAddColumn.offsetLeft + dotWidth / 2 - 1,\n this.leftDotForAddColumn.offsetTop + dotHeight / 2 + 2,\n this.table.getDrawRange().height\n );\n });\n\n this.rightDotForAddColumn.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addColumn);\n this.addIconForAddColumn.style.display = 'block';\n const dotWidth = this.rightDotForAddColumn.offsetWidth;\n const dotHeight = this.rightDotForAddColumn.offsetHeight;\n this.showAddIconForAddColumn(\n this.rightDotForAddColumn.offsetLeft + dotWidth / 2,\n this.rightDotForAddColumn.offsetTop + dotHeight / 2,\n false\n );\n this.showSplitLineForAddColumn(\n this.rightDotForAddColumn.offsetLeft + dotWidth / 2 - 1,\n this.rightDotForAddColumn.offsetTop + dotHeight / 2 + 2,\n this.table.getDrawRange().height\n );\n });\n\n // this.addIconForAddColumn.addEventListener('mouseenter', () => {\n // clearTimeout(this.hideAllTimeoutId_addColumn);\n // });\n this.addIconForAddColumn.addEventListener('mouseleave', () => {\n this.addIconForAddColumn.style.display = 'none';\n this.addLineForAddColumn.style.display = 'none';\n this.delayHideAllForAddColumn();\n });\n\n this.addIconForAddColumn.addEventListener('click', (e: MouseEvent) => {\n const isLeft = this.addIconForAddColumn.dataset.addIconType === 'left';\n const columns = this.table.options.columns;\n const col = this.hoverCell.col;\n const addColIndex = isLeft ? col : col + 1;\n if (this.pluginOptions.addColumnCallback) {\n this.pluginOptions.addColumnCallback(addColIndex, this.table);\n } else {\n // columns.splice(addColIndex, 0, {\n // field: ``,\n // title: `New Column ${col}`,\n // width: 100\n // });\n // this.table.updateColumns(columns);\n this.table.addColumn(\n {\n field: addColIndex,\n title: `New Column ${col}`,\n width: 100\n },\n addColIndex,\n true\n );\n }\n this.delayHideAllForAddColumn(0);\n });\n }\n showDotForAddColumn(\n top: number,\n left: number,\n right: number,\n isShowLeft: boolean = true,\n isShowRight: boolean = true\n ) {\n // 动态获取元素尺寸\n const dotWidth = this.leftDotForAddColumn.offsetWidth;\n const dotHeight = this.leftDotForAddColumn.offsetHeight;\n this.leftDotForAddColumn.style.left = `${left - dotWidth / 2}px`;\n this.leftDotForAddColumn.style.top = `${top - dotHeight / 2}px`;\n this.rightDotForAddColumn.style.left = `${right - dotWidth / 2}px`;\n this.rightDotForAddColumn.style.top = `${top - dotHeight / 2}px`;\n this.leftDotForAddColumn.style.display = isShowLeft ? 'block' : 'none';\n this.rightDotForAddColumn.style.display = isShowRight ? 'block' : 'none';\n }\n showAddIconForAddColumn(left: number, top: number, isLeft: boolean) {\n // 动态获取元素尺寸\n const iconWidth = this.addIconForAddColumn.offsetWidth;\n const iconHeight = this.addIconForAddColumn.offsetHeight;\n const dotHeight = this.leftDotForAddColumn.offsetHeight;\n this.addIconForAddColumn.style.left = `${left - iconWidth / 2}px`;\n this.addIconForAddColumn.style.top = `${top - iconHeight / 2 - dotHeight / 2}px`;\n if (isLeft) {\n this.addIconForAddColumn.dataset.addIconType = 'left';\n } else {\n this.addIconForAddColumn.dataset.addIconType = 'right';\n }\n }\n showSplitLineForAddColumn(left: number, top: number, height: number) {\n this.addLineForAddColumn.style.left = `${left}px`;\n this.addLineForAddColumn.style.top = `${top}px`;\n this.addLineForAddColumn.style.height = `${height}px`;\n this.addLineForAddColumn.style.display = 'block';\n }\n delayHideAllForAddColumn(delay: number = 1000) {\n this.hideAllTimeoutId_addColumn = setTimeout(() => {\n this.addIconForAddColumn.style.display = 'none';\n this.addLineForAddColumn.style.display = 'none';\n this.leftDotForAddColumn.style.display = 'none';\n this.rightDotForAddColumn.style.display = 'none';\n }, delay);\n }\n // #endregion\n\n // #region 添加行\n initAddRowDomElement() {\n //创建一个div 作为hoverCell的顶部左侧的圆点\n this.topDotForAddRow = document.createElement('div');\n this.topDotForAddRow.style.width = '6px';\n this.topDotForAddRow.style.height = '6px';\n this.topDotForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.topDotForAddRow.style.position = 'absolute';\n this.topDotForAddRow.style.cursor = 'pointer';\n this.topDotForAddRow.style.zIndex = '1000';\n this.topDotForAddRow.style.borderRadius = '50%';\n this.topDotForAddRow.style.border = '1px solid white';\n this.topDotForAddRow.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.topDotForAddRow);\n\n //创建一个div 作为hoverCell的底部右侧的圆点\n this.bottomDotForAddRow = document.createElement('div');\n this.bottomDotForAddRow.style.width = '6px';\n this.bottomDotForAddRow.style.height = '6px';\n this.bottomDotForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.bottomDotForAddRow.style.position = 'absolute';\n this.bottomDotForAddRow.style.cursor = 'pointer';\n this.bottomDotForAddRow.style.zIndex = '1000';\n this.bottomDotForAddRow.style.borderRadius = '50%';\n this.bottomDotForAddRow.style.border = '1px solid white';\n this.bottomDotForAddRow.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.bottomDotForAddRow);\n\n //创建+加号 当鼠标hover到圆点上时,显示+加号\n this.addIconForAddRow = document.createElement('div');\n this.addIconForAddRow.style.width = '18px';\n this.addIconForAddRow.style.height = '18px';\n this.addIconForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addIconForAddRow.style.position = 'absolute';\n this.addIconForAddRow.style.zIndex = '1001';\n this.addIconForAddRow.style.display = 'none';\n this.addIconForAddRow.style.borderRadius = '50%';\n this.addIconForAddRow.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';\n this.addIconForAddRow.style.justifyContent = 'center';\n this.addIconForAddRow.style.alignItems = 'center';\n this.addIconForAddRow.style.border = '1px solid white';\n document.body.appendChild(this.addIconForAddRow);\n\n //addIcon中添加一个+号\n const addIconText = document.createElement('div');\n addIconText.textContent = '+';\n addIconText.style.color = 'white';\n addIconText.style.fontSize = '18px';\n addIconText.style.fontWeight = 'bold';\n addIconText.style.lineHeight = '15px';\n addIconText.style.userSelect = 'none';\n addIconText.style.cursor = 'pointer';\n addIconText.style.verticalAlign = 'top';\n addIconText.style.textAlign = 'center';\n\n this.addIconForAddRow.appendChild(addIconText);\n\n // 创建加号下面行间隔线\n this.addLineForAddRow = document.createElement('div');\n this.addLineForAddRow.style.width = '10px';\n this.addLineForAddRow.style.height = '2px';\n this.addLineForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addLineForAddRow.style.position = 'absolute';\n this.addLineForAddRow.style.zIndex = '1001';\n this.addLineForAddRow.style.display = 'none';\n document.body.appendChild(this.addLineForAddRow);\n }\n bindEventForAddRow() {\n this.topDotForAddRow.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addRow);\n this.addIconForAddRow.style.display = 'block';\n const dotWidth = this.topDotForAddRow.offsetWidth;\n const dotHeight = this.topDotForAddRow.offsetHeight;\n this.showAddIconForAddRow(\n this.topDotForAddRow.offsetLeft + dotWidth / 2,\n this.topDotForAddRow.offsetTop + dotHeight / 2,\n true\n );\n this.showSplitLineForAddRow(\n this.topDotForAddRow.offsetLeft + dotWidth + 2,\n this.topDotForAddRow.offsetTop + dotHeight / 2 - 1,\n this.table.getDrawRange().width\n );\n });\n\n this.bottomDotForAddRow.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addRow);\n this.addIconForAddRow.style.display = 'block';\n const dotWidth = this.bottomDotForAddRow.offsetWidth;\n const dotHeight = this.bottomDotForAddRow.offsetHeight;\n this.showAddIconForAddRow(\n this.bottomDotForAddRow.offsetLeft + dotWidth / 2,\n this.bottomDotForAddRow.offsetTop + dotHeight / 2,\n false\n );\n this.showSplitLineForAddRow(\n this.bottomDotForAddRow.offsetLeft + dotWidth + 2,\n this.bottomDotForAddRow.offsetTop + dotHeight / 2 - 1,\n this.table.getDrawRange().height\n );\n });\n\n this.addIconForAddRow.addEventListener('mouseleave', () => {\n this.addIconForAddRow.style.display = 'none';\n this.addLineForAddRow.style.display = 'none';\n this.delayHideAllForAddRow();\n });\n\n this.addIconForAddRow.addEventListener('click', (e: MouseEvent) => {\n const isTop = this.addIconForAddRow.dataset.addIconType === 'top';\n const row = this.hoverCell.row;\n const addRowIndex = isTop ? row : row + 1;\n if (this.pluginOptions.addRowCallback) {\n this.pluginOptions.addRowCallback(addRowIndex, this.table as VTable.ListTable);\n } else {\n const recordIndex = this.table.getRecordIndexByCell(0, addRowIndex);\n this.table.addRecord({}, recordIndex);\n }\n this.delayHideAllForAddRow(0);\n });\n }\n showDotForAddRow(top: number, left: number, bottom: number, isShowTop: boolean = true, isShowBottom: boolean = true) {\n // 动态获取元素尺寸\n const dotWidth = this.topDotForAddRow.offsetWidth;\n const dotHeight = this.topDotForAddRow.offsetHeight;\n this.topDotForAddRow.style.left = `${left - dotWidth / 2}px`;\n this.topDotForAddRow.style.top = `${top - dotHeight / 2}px`;\n this.bottomDotForAddRow.style.left = `${left - dotWidth / 2}px`;\n this.bottomDotForAddRow.style.top = `${bottom - dotHeight / 2}px`;\n this.topDotForAddRow.style.display = isShowTop ? 'block' : 'none';\n this.bottomDotForAddRow.style.display = isShowBottom ? 'block' : 'none';\n }\n showAddIconForAddRow(left: number, top: number, isTop: boolean) {\n // 动态获取元素尺寸\n const iconWidth = this.addIconForAddRow.offsetWidth;\n const iconHeight = this.addIconForAddRow.offsetHeight;\n const dotWidth = this.topDotForAddRow.offsetWidth;\n this.addIconForAddRow.style.left = `${left - iconWidth / 2 - dotWidth / 2}px`;\n this.addIconForAddRow.style.top = `${top - iconHeight / 2}px`;\n if (isTop) {\n this.addIconForAddRow.dataset.addIconType = 'top';\n } else {\n this.addIconForAddRow.dataset.addIconType = 'bottom';\n }\n }\n showSplitLineForAddRow(left: number, top: number, width: number) {\n this.addLineForAddRow.style.left = `${left}px`;\n this.addLineForAddRow.style.top = `${top}px`;\n this.addLineForAddRow.style.width = `${width}px`;\n this.addLineForAddRow.style.display = 'block';\n }\n delayHideAllForAddRow(delay: number = 1000) {\n this.hideAllTimeoutId_addRow = setTimeout(() => {\n this.addIconForAddRow.style.display = 'none';\n this.addLineForAddRow.style.display = 'none';\n this.topDotForAddRow.style.display = 'none';\n this.bottomDotForAddRow.style.display = 'none';\n }, delay);\n }\n // #endregion\n release() {\n this.leftDotForAddColumn.remove();\n this.rightDotForAddColumn.remove();\n this.addIconForAddColumn.remove();\n this.addLineForAddColumn.remove();\n this.topDotForAddRow.remove();\n this.bottomDotForAddRow.remove();\n this.addIconForAddRow.remove();\n this.addLineForAddRow.remove();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/add-row-column.ts"],"names":[],"mappings":"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","file":"add-row-column.js","sourcesContent":["import type { ListTable, BaseTableAPI, TYPES } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { pluginsDefinition } from '@visactor/vtable';\n/**\n * 添加行和列的插件的配置选项\n */\nexport interface AddRowColumnOptions {\n id?: string;\n /**\n * 是否启用添加列\n */\n addColumnEnable?: boolean;\n /**\n * 是否启用添加行\n */\n addRowEnable?: boolean;\n /**\n * 添加列的回调函数\n */\n addColumnCallback?: (col: number, table: ListTable) => void;\n /**\n * 添加行的回调函数\n */\n addRowCallback?: (row: number, table: ListTable) => void;\n}\n/**\n * 添加行和列的插件\n * 该插件监听了table的MOUSEENTER_CELL,MOUSELEAVE_CELL,MOUSELEAVE_TABLE事件\n * 当鼠标hover到table的cell时,会显示添加行和列的dot和加号\n * 当鼠标离开table的cell时,会隐藏添加行和列的dot和加号\n */\nexport class AddRowColumnPlugin implements pluginsDefinition.IVTablePlugin {\n id = `add-row-column`;\n name = 'Add Row Column';\n runTime = [TABLE_EVENT_TYPE.MOUSEENTER_CELL, TABLE_EVENT_TYPE.MOUSELEAVE_CELL, TABLE_EVENT_TYPE.MOUSELEAVE_TABLE];\n pluginOptions: AddRowColumnOptions;\n table: ListTable;\n hoverCell: TYPES.CellAddressWithBound;\n hideAllTimeoutId_addColumn: NodeJS.Timeout;\n hideAllTimeoutId_addRow: NodeJS.Timeout;\n leftDotForAddColumn: HTMLElement;\n rightDotForAddColumn: HTMLElement;\n addIconForAddColumn: HTMLElement;\n addLineForAddColumn: HTMLElement;\n topDotForAddRow: HTMLElement;\n bottomDotForAddRow: HTMLElement;\n addIconForAddRow: HTMLElement;\n addLineForAddRow: HTMLElement;\n\n constructor(\n pluginOptions: AddRowColumnOptions = {\n addColumnEnable: true,\n addRowEnable: true\n }\n ) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = pluginOptions;\n this.pluginOptions.addColumnEnable = this.pluginOptions.addColumnEnable ?? true;\n this.pluginOptions.addRowEnable = this.pluginOptions.addRowEnable ?? true;\n if (this.pluginOptions.addColumnEnable) {\n this.initAddColumnDomElement();\n this.bindEventForAddColumn();\n }\n if (this.pluginOptions.addRowEnable) {\n this.initAddRowDomElement();\n this.bindEventForAddRow();\n }\n }\n run(...args: any[]) {\n const eventArgs = args[0];\n const runTime = args[1];\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n if (runTime === TABLE_EVENT_TYPE.MOUSEENTER_CELL) {\n clearTimeout(this.hideAllTimeoutId_addColumn);\n clearTimeout(this.hideAllTimeoutId_addRow);\n const canvasBounds = table.canvas.getBoundingClientRect();\n const cell = table.getCellAtRelativePosition(\n eventArgs.event.clientX - canvasBounds.left,\n eventArgs.event.clientY - canvasBounds.top\n );\n this.hoverCell = cell;\n const cellRect = table.getCellRelativeRect(cell.col, cell.row);\n if (this.pluginOptions.addColumnEnable) {\n const isRowSerierNumberCol = table.isSeriesNumber(cell.col, 0);\n this.showDotForAddColumn(\n canvasBounds.top - 6,\n cellRect.left + canvasBounds.left,\n cellRect.right + canvasBounds.left,\n !isRowSerierNumberCol\n );\n }\n if (this.pluginOptions.addRowEnable) {\n const isHeader = table.isHeader(cell.col, cell.row);\n this.showDotForAddRow(\n cellRect.top + canvasBounds.top,\n canvasBounds.left - 6,\n cellRect.bottom + canvasBounds.top,\n !isHeader,\n !isHeader\n );\n }\n } else if (runTime === TABLE_EVENT_TYPE.MOUSELEAVE_CELL) {\n } else if (runTime === TABLE_EVENT_TYPE.MOUSELEAVE_TABLE) {\n if (this.pluginOptions.addColumnEnable) {\n this.delayHideAllForAddColumn();\n }\n if (this.pluginOptions.addRowEnable) {\n this.delayHideAllForAddRow();\n }\n }\n }\n // #region 添加列\n initAddColumnDomElement() {\n //创建一个div 作为hoverCell的顶部左侧的圆点\n this.leftDotForAddColumn = document.createElement('div');\n this.leftDotForAddColumn.style.width = '6px';\n this.leftDotForAddColumn.style.height = '6px';\n this.leftDotForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.leftDotForAddColumn.style.position = 'absolute';\n this.leftDotForAddColumn.style.cursor = 'pointer';\n this.leftDotForAddColumn.style.zIndex = '1000';\n this.leftDotForAddColumn.style.borderRadius = '50%';\n this.leftDotForAddColumn.style.border = '1px solid white';\n this.leftDotForAddColumn.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.leftDotForAddColumn);\n\n //创建一个div 作为hoverCell的顶部右侧的圆点\n this.rightDotForAddColumn = document.createElement('div');\n this.rightDotForAddColumn.style.width = '6px';\n this.rightDotForAddColumn.style.height = '6px';\n this.rightDotForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.rightDotForAddColumn.style.position = 'absolute';\n this.rightDotForAddColumn.style.cursor = 'pointer';\n this.rightDotForAddColumn.style.zIndex = '1000';\n this.rightDotForAddColumn.style.borderRadius = '50%';\n this.rightDotForAddColumn.style.border = '1px solid white';\n this.rightDotForAddColumn.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.rightDotForAddColumn);\n\n //创建+加号 当鼠标hover到圆点上时,显示+加号\n this.addIconForAddColumn = document.createElement('div');\n this.addIconForAddColumn.style.width = '18px';\n this.addIconForAddColumn.style.height = '18px';\n this.addIconForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addIconForAddColumn.style.position = 'absolute';\n this.addIconForAddColumn.style.zIndex = '1001';\n this.addIconForAddColumn.style.display = 'none';\n this.addIconForAddColumn.style.borderRadius = '50%';\n this.addIconForAddColumn.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';\n this.addIconForAddColumn.style.justifyContent = 'center';\n this.addIconForAddColumn.style.alignItems = 'center';\n this.addIconForAddColumn.style.border = '1px solid white';\n document.body.appendChild(this.addIconForAddColumn);\n\n //addIcon中添加一个+号\n const addIconText = document.createElement('div');\n addIconText.textContent = '+';\n addIconText.style.color = 'white';\n addIconText.style.fontSize = '18px';\n addIconText.style.fontWeight = 'bold';\n addIconText.style.lineHeight = '15px';\n addIconText.style.userSelect = 'none';\n addIconText.style.cursor = 'pointer';\n addIconText.style.verticalAlign = 'top';\n addIconText.style.textAlign = 'center';\n\n this.addIconForAddColumn.appendChild(addIconText);\n\n // 创建加号下面列间隔线\n this.addLineForAddColumn = document.createElement('div');\n this.addLineForAddColumn.style.width = '2px';\n this.addLineForAddColumn.style.height = '10px';\n this.addLineForAddColumn.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addLineForAddColumn.style.position = 'absolute';\n this.addLineForAddColumn.style.zIndex = '1001';\n this.addLineForAddColumn.style.display = 'none';\n document.body.appendChild(this.addLineForAddColumn);\n }\n bindEventForAddColumn() {\n this.leftDotForAddColumn.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addColumn);\n this.addIconForAddColumn.style.display = 'block';\n const dotWidth = this.leftDotForAddColumn.offsetWidth;\n const dotHeight = this.leftDotForAddColumn.offsetHeight;\n this.showAddIconForAddColumn(\n this.leftDotForAddColumn.offsetLeft + dotWidth / 2,\n this.leftDotForAddColumn.offsetTop + dotHeight / 2,\n true\n );\n this.showSplitLineForAddColumn(\n this.leftDotForAddColumn.offsetLeft + dotWidth / 2 - 1,\n this.leftDotForAddColumn.offsetTop + dotHeight / 2 + 2,\n this.table.getDrawRange().height\n );\n });\n\n this.rightDotForAddColumn.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addColumn);\n this.addIconForAddColumn.style.display = 'block';\n const dotWidth = this.rightDotForAddColumn.offsetWidth;\n const dotHeight = this.rightDotForAddColumn.offsetHeight;\n this.showAddIconForAddColumn(\n this.rightDotForAddColumn.offsetLeft + dotWidth / 2,\n this.rightDotForAddColumn.offsetTop + dotHeight / 2,\n false\n );\n this.showSplitLineForAddColumn(\n this.rightDotForAddColumn.offsetLeft + dotWidth / 2 - 1,\n this.rightDotForAddColumn.offsetTop + dotHeight / 2 + 2,\n this.table.getDrawRange().height\n );\n });\n\n // this.addIconForAddColumn.addEventListener('mouseenter', () => {\n // clearTimeout(this.hideAllTimeoutId_addColumn);\n // });\n this.addIconForAddColumn.addEventListener('mouseleave', () => {\n this.addIconForAddColumn.style.display = 'none';\n this.addLineForAddColumn.style.display = 'none';\n this.delayHideAllForAddColumn();\n });\n\n this.addIconForAddColumn.addEventListener('click', (e: MouseEvent) => {\n const isLeft = this.addIconForAddColumn.dataset.addIconType === 'left';\n const columns = this.table.options.columns;\n const col = this.hoverCell.col;\n const addColIndex = isLeft ? col : col + 1;\n if (this.pluginOptions.addColumnCallback) {\n this.pluginOptions.addColumnCallback(addColIndex, this.table);\n } else {\n // columns.splice(addColIndex, 0, {\n // field: ``,\n // title: `New Column ${col}`,\n // width: 100\n // });\n // this.table.updateColumns(columns);\n this.table.addColumn(\n {\n field: addColIndex,\n title: `New Column ${col}`,\n width: 100\n },\n addColIndex,\n true\n );\n }\n this.delayHideAllForAddColumn(0);\n });\n }\n showDotForAddColumn(\n top: number,\n left: number,\n right: number,\n isShowLeft: boolean = true,\n isShowRight: boolean = true\n ) {\n // 动态获取元素尺寸\n const dotWidth = this.leftDotForAddColumn.offsetWidth;\n const dotHeight = this.leftDotForAddColumn.offsetHeight;\n this.leftDotForAddColumn.style.left = `${left - dotWidth / 2}px`;\n this.leftDotForAddColumn.style.top = `${top - dotHeight / 2}px`;\n this.rightDotForAddColumn.style.left = `${right - dotWidth / 2}px`;\n this.rightDotForAddColumn.style.top = `${top - dotHeight / 2}px`;\n this.leftDotForAddColumn.style.display = isShowLeft ? 'block' : 'none';\n this.rightDotForAddColumn.style.display = isShowRight ? 'block' : 'none';\n }\n showAddIconForAddColumn(left: number, top: number, isLeft: boolean) {\n // 动态获取元素尺寸\n const iconWidth = this.addIconForAddColumn.offsetWidth;\n const iconHeight = this.addIconForAddColumn.offsetHeight;\n const dotHeight = this.leftDotForAddColumn.offsetHeight;\n this.addIconForAddColumn.style.left = `${left - iconWidth / 2}px`;\n this.addIconForAddColumn.style.top = `${top - iconHeight / 2 - dotHeight / 2}px`;\n if (isLeft) {\n this.addIconForAddColumn.dataset.addIconType = 'left';\n } else {\n this.addIconForAddColumn.dataset.addIconType = 'right';\n }\n }\n showSplitLineForAddColumn(left: number, top: number, height: number) {\n this.addLineForAddColumn.style.left = `${left}px`;\n this.addLineForAddColumn.style.top = `${top}px`;\n this.addLineForAddColumn.style.height = `${height}px`;\n this.addLineForAddColumn.style.display = 'block';\n }\n delayHideAllForAddColumn(delay: number = 1000) {\n this.hideAllTimeoutId_addColumn = setTimeout(() => {\n this.addIconForAddColumn.style.display = 'none';\n this.addLineForAddColumn.style.display = 'none';\n this.leftDotForAddColumn.style.display = 'none';\n this.rightDotForAddColumn.style.display = 'none';\n }, delay);\n }\n // #endregion\n\n // #region 添加行\n initAddRowDomElement() {\n //创建一个div 作为hoverCell的顶部左侧的圆点\n this.topDotForAddRow = document.createElement('div');\n this.topDotForAddRow.style.width = '6px';\n this.topDotForAddRow.style.height = '6px';\n this.topDotForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.topDotForAddRow.style.position = 'absolute';\n this.topDotForAddRow.style.cursor = 'pointer';\n this.topDotForAddRow.style.zIndex = '1000';\n this.topDotForAddRow.style.borderRadius = '50%';\n this.topDotForAddRow.style.border = '1px solid white';\n this.topDotForAddRow.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.topDotForAddRow);\n\n //创建一个div 作为hoverCell的底部右侧的圆点\n this.bottomDotForAddRow = document.createElement('div');\n this.bottomDotForAddRow.style.width = '6px';\n this.bottomDotForAddRow.style.height = '6px';\n this.bottomDotForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.bottomDotForAddRow.style.position = 'absolute';\n this.bottomDotForAddRow.style.cursor = 'pointer';\n this.bottomDotForAddRow.style.zIndex = '1000';\n this.bottomDotForAddRow.style.borderRadius = '50%';\n this.bottomDotForAddRow.style.border = '1px solid white';\n this.bottomDotForAddRow.style.boxShadow = '0 1px 3px rgba(0,0,0,0.2)';\n document.body.appendChild(this.bottomDotForAddRow);\n\n //创建+加号 当鼠标hover到圆点上时,显示+加号\n this.addIconForAddRow = document.createElement('div');\n this.addIconForAddRow.style.width = '18px';\n this.addIconForAddRow.style.height = '18px';\n this.addIconForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addIconForAddRow.style.position = 'absolute';\n this.addIconForAddRow.style.zIndex = '1001';\n this.addIconForAddRow.style.display = 'none';\n this.addIconForAddRow.style.borderRadius = '50%';\n this.addIconForAddRow.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';\n this.addIconForAddRow.style.justifyContent = 'center';\n this.addIconForAddRow.style.alignItems = 'center';\n this.addIconForAddRow.style.border = '1px solid white';\n document.body.appendChild(this.addIconForAddRow);\n\n //addIcon中添加一个+号\n const addIconText = document.createElement('div');\n addIconText.textContent = '+';\n addIconText.style.color = 'white';\n addIconText.style.fontSize = '18px';\n addIconText.style.fontWeight = 'bold';\n addIconText.style.lineHeight = '15px';\n addIconText.style.userSelect = 'none';\n addIconText.style.cursor = 'pointer';\n addIconText.style.verticalAlign = 'top';\n addIconText.style.textAlign = 'center';\n\n this.addIconForAddRow.appendChild(addIconText);\n\n // 创建加号下面行间隔线\n this.addLineForAddRow = document.createElement('div');\n this.addLineForAddRow.style.width = '10px';\n this.addLineForAddRow.style.height = '2px';\n this.addLineForAddRow.style.backgroundColor = '#4A90E2'; // 蓝色\n this.addLineForAddRow.style.position = 'absolute';\n this.addLineForAddRow.style.zIndex = '1001';\n this.addLineForAddRow.style.display = 'none';\n document.body.appendChild(this.addLineForAddRow);\n }\n bindEventForAddRow() {\n this.topDotForAddRow.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addRow);\n this.addIconForAddRow.style.display = 'block';\n const dotWidth = this.topDotForAddRow.offsetWidth;\n const dotHeight = this.topDotForAddRow.offsetHeight;\n this.showAddIconForAddRow(\n this.topDotForAddRow.offsetLeft + dotWidth / 2,\n this.topDotForAddRow.offsetTop + dotHeight / 2,\n true\n );\n this.showSplitLineForAddRow(\n this.topDotForAddRow.offsetLeft + dotWidth + 2,\n this.topDotForAddRow.offsetTop + dotHeight / 2 - 1,\n this.table.getDrawRange().width\n );\n });\n\n this.bottomDotForAddRow.addEventListener('mouseenter', () => {\n clearTimeout(this.hideAllTimeoutId_addRow);\n this.addIconForAddRow.style.display = 'block';\n const dotWidth = this.bottomDotForAddRow.offsetWidth;\n const dotHeight = this.bottomDotForAddRow.offsetHeight;\n this.showAddIconForAddRow(\n this.bottomDotForAddRow.offsetLeft + dotWidth / 2,\n this.bottomDotForAddRow.offsetTop + dotHeight / 2,\n false\n );\n this.showSplitLineForAddRow(\n this.bottomDotForAddRow.offsetLeft + dotWidth + 2,\n this.bottomDotForAddRow.offsetTop + dotHeight / 2 - 1,\n this.table.getDrawRange().height\n );\n });\n\n this.addIconForAddRow.addEventListener('mouseleave', () => {\n this.addIconForAddRow.style.display = 'none';\n this.addLineForAddRow.style.display = 'none';\n this.delayHideAllForAddRow();\n });\n\n this.addIconForAddRow.addEventListener('click', (e: MouseEvent) => {\n const isTop = this.addIconForAddRow.dataset.addIconType === 'top';\n const row = this.hoverCell.row;\n const addRowIndex = isTop ? row : row + 1;\n if (this.pluginOptions.addRowCallback) {\n this.pluginOptions.addRowCallback(addRowIndex, this.table as ListTable);\n } else {\n const recordIndex = this.table.getRecordIndexByCell(0, addRowIndex);\n this.table.addRecord({}, recordIndex);\n }\n this.delayHideAllForAddRow(0);\n });\n }\n showDotForAddRow(top: number, left: number, bottom: number, isShowTop: boolean = true, isShowBottom: boolean = true) {\n // 动态获取元素尺寸\n const dotWidth = this.topDotForAddRow.offsetWidth;\n const dotHeight = this.topDotForAddRow.offsetHeight;\n this.topDotForAddRow.style.left = `${left - dotWidth / 2}px`;\n this.topDotForAddRow.style.top = `${top - dotHeight / 2}px`;\n this.bottomDotForAddRow.style.left = `${left - dotWidth / 2}px`;\n this.bottomDotForAddRow.style.top = `${bottom - dotHeight / 2}px`;\n this.topDotForAddRow.style.display = isShowTop ? 'block' : 'none';\n this.bottomDotForAddRow.style.display = isShowBottom ? 'block' : 'none';\n }\n showAddIconForAddRow(left: number, top: number, isTop: boolean) {\n // 动态获取元素尺寸\n const iconWidth = this.addIconForAddRow.offsetWidth;\n const iconHeight = this.addIconForAddRow.offsetHeight;\n const dotWidth = this.topDotForAddRow.offsetWidth;\n this.addIconForAddRow.style.left = `${left - iconWidth / 2 - dotWidth / 2}px`;\n this.addIconForAddRow.style.top = `${top - iconHeight / 2}px`;\n if (isTop) {\n this.addIconForAddRow.dataset.addIconType = 'top';\n } else {\n this.addIconForAddRow.dataset.addIconType = 'bottom';\n }\n }\n showSplitLineForAddRow(left: number, top: number, width: number) {\n this.addLineForAddRow.style.left = `${left}px`;\n this.addLineForAddRow.style.top = `${top}px`;\n this.addLineForAddRow.style.width = `${width}px`;\n this.addLineForAddRow.style.display = 'block';\n }\n delayHideAllForAddRow(delay: number = 1000) {\n this.hideAllTimeoutId_addRow = setTimeout(() => {\n this.addIconForAddRow.style.display = 'none';\n this.addLineForAddRow.style.display = 'none';\n this.topDotForAddRow.style.display = 'none';\n this.bottomDotForAddRow.style.display = 'none';\n }, delay);\n }\n // #endregion\n release() {\n this.leftDotForAddColumn.remove();\n this.rightDotForAddColumn.remove();\n this.addIconForAddColumn.remove();\n this.addLineForAddColumn.remove();\n this.topDotForAddRow.remove();\n this.bottomDotForAddRow.remove();\n this.addIconForAddRow.remove();\n this.addLineForAddRow.remove();\n }\n}\n"]}
|
|
@@ -1,35 +1,10 @@
|
|
|
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.AutoFillManager = void 0;
|
|
31
6
|
|
|
32
|
-
const types_1 = require("./types"), auto_fill_services_1 = require("./auto-fill-services"), rules_1 = require("./rules"), fill_1 = require("./utils/fill"),
|
|
7
|
+
const types_1 = require("./types"), auto_fill_services_1 = require("./auto-fill-services"), rules_1 = require("./rules"), fill_1 = require("./utils/fill"), vtable_1 = require("@visactor/vtable"), auto_fill_helper_1 = require("./auto-fill-helper"), ts_types_1 = require("@visactor/vtable/es/ts-types");
|
|
33
8
|
|
|
34
9
|
class AutoFillManager {
|
|
35
10
|
constructor(options) {
|
|
@@ -39,7 +14,7 @@ class AutoFillManager {
|
|
|
39
14
|
this.headers = {
|
|
40
15
|
row: new Set,
|
|
41
16
|
col: new Set
|
|
42
|
-
}, this.tableInstance = table, table.on(
|
|
17
|
+
}, this.tableInstance = table, table.on(vtable_1.TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, (args => {
|
|
43
18
|
"复制填充" === args.text ? this.fillData(types_1.APPLY_TYPE.COPY) : "序列填充" === args.text && this.fillData(types_1.APPLY_TYPE.SERIES);
|
|
44
19
|
}));
|
|
45
20
|
const rowHeaderCells = this.tableInstance.getAllRowHeaderCells()[0];
|
|
@@ -176,18 +151,14 @@ class AutoFillManager {
|
|
|
176
151
|
}));
|
|
177
152
|
for (let i = 0; i < untransformedApplyDatas[0].length; i++) {
|
|
178
153
|
const row = [];
|
|
179
|
-
for (let j = 0; j < untransformedApplyDatas.length; j++) row.push(
|
|
180
|
-
s: null
|
|
181
|
-
}, untransformedApplyDatas[j][i]));
|
|
154
|
+
for (let j = 0; j < untransformedApplyDatas.length; j++) row.push(untransformedApplyDatas[j][i]);
|
|
182
155
|
applyDatas.push(row);
|
|
183
156
|
}
|
|
184
157
|
} else {
|
|
185
158
|
const asLen = targetCols.length;
|
|
186
159
|
targetRows.forEach(((_, i) => {
|
|
187
160
|
const copyD = sourceData[i], applyData = this.getApplyData(copyD, csLen, asLen, direction, applyType, location), row = [];
|
|
188
|
-
for (let j = 0; j < applyData.length; j++) row.push(
|
|
189
|
-
s: null
|
|
190
|
-
}, applyData[j]));
|
|
161
|
+
for (let j = 0; j < applyData.length; j++) row.push(applyData[j]);
|
|
191
162
|
applyDatas.push(row);
|
|
192
163
|
}));
|
|
193
164
|
}
|
|
@@ -195,9 +166,10 @@ class AutoFillManager {
|
|
|
195
166
|
targetRows.forEach(((row, rowIndex) => {
|
|
196
167
|
const rowValues = [];
|
|
197
168
|
targetCols.forEach(((col, colIndex) => {
|
|
169
|
+
var _a;
|
|
198
170
|
const range = (0, auto_fill_helper_1.isMergeCell)(this.tableInstance, col, row);
|
|
199
171
|
range && this.tableInstance.unmergeCells(range.start.col, range.start.row, range.end.col, range.end.row),
|
|
200
|
-
applyDatas[rowIndex][colIndex] && rowValues.push(applyDatas[rowIndex][colIndex].v + "");
|
|
172
|
+
applyDatas[rowIndex][colIndex] && rowValues.push((null === (_a = applyDatas[rowIndex][colIndex]) || void 0 === _a ? void 0 : _a.v) + "");
|
|
201
173
|
})), values.push(rowValues);
|
|
202
174
|
}));
|
|
203
175
|
const minRow = Math.min(...targetRows), minCol = Math.min(...targetCols);
|
|
@@ -237,6 +209,7 @@ class AutoFillManager {
|
|
|
237
209
|
(null == customApplyFunctions ? void 0 : customApplyFunctions[types_1.APPLY_TYPE.COPY]) ? customApplyFunctions[types_1.APPLY_TYPE.COPY](copySquad, len, direction, sourceDataPiece, location) : (0,
|
|
238
210
|
fill_1.fillCopy)(data, len));
|
|
239
211
|
}
|
|
212
|
+
return [];
|
|
240
213
|
}
|
|
241
214
|
}
|
|
242
215
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/auto-fill/auto-fill-manager.ts"],"names":[],"mappings":"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","file":"auto-fill-manager.js","sourcesContent":["/**\n * Copyright 2023-present DreamNum Co., Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Direction, APPLY_TYPE, CellValueType } from './types';\nimport type {\n ISourceDataPiece,\n ICellData,\n Nullable,\n IRuleConfirmedData,\n IDiscreteRange,\n IAutoFillLocation\n} from './types';\nimport { AutoFillService } from './auto-fill-services';\nimport { otherRule } from './rules';\nimport { fillCopy, getDataIndex, getLenS } from './utils/fill';\nimport type { ICopyDataInType } from './utils/fill';\nimport type { APPLY_FUNCTIONS } from './types';\nimport type { CellRange } from '@visactor/vtable/es/ts-types/table-engine';\nimport type { ListTable } from '@visactor/vtable';\nimport * as VTable from '@visactor/vtable';\nimport {\n getSelectedRangeArray,\n getTargetRange,\n openAutoFillMenu,\n getCellMatrix,\n isMergeCell\n} from './auto-fill-helper';\nimport type { IAutoFillPluginOptions } from '.';\nimport { InteractionState } from '@visactor/vtable/es/ts-types';\nexport class AutoFillManager {\n // 源数据\n private sourceData: ISourceDataPiece[] = [];\n // autoFillService 维护规则列表\n private autoFillService: AutoFillService;\n // 表格实例\n private tableInstance: ListTable;\n // 源范围\n private sourceRange: IDiscreteRange;\n // 目标范围\n private targetRange: IDiscreteRange;\n // 填充方向\n private direction: Direction;\n // 行列头\n private headers: {\n row: Set<number>;\n col: Set<number>;\n };\n\n private options?: IAutoFillPluginOptions;\n\n constructor(options?: IAutoFillPluginOptions) {\n this.options = options;\n this.autoFillService = new AutoFillService();\n }\n\n setTable(table: ListTable) {\n this.headers = {\n row: new Set(),\n col: new Set()\n };\n this.tableInstance = table;\n table.on(VTable.TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, (args: any) => {\n if (args.text === '复制填充') {\n this.fillData(APPLY_TYPE.COPY);\n } else if (args.text === '序列填充') {\n this.fillData(APPLY_TYPE.SERIES);\n }\n });\n\n //cal headers\n const rowHeaderCells = this.tableInstance.getAllRowHeaderCells()[0];\n if (rowHeaderCells) {\n rowHeaderCells.forEach(cell => {\n this.headers.col.add(cell.col);\n });\n }\n const colHeaderCells = this.tableInstance.getAllColumnHeaderCells()[0];\n if (colHeaderCells) {\n colHeaderCells.forEach(cell => {\n this.headers.row.add(cell.row);\n });\n }\n }\n\n // 开始拖拽\n handleStartDrag(selectedRange: CellRange) {\n this.sourceRange = getSelectedRangeArray(selectedRange);\n this.sourceRange.cols = this.sourceRange.cols.filter(col => !this.headers.col.has(col));\n this.sourceRange.rows = this.sourceRange.rows.filter(row => !this.headers.row.has(row));\n }\n // 结束拖拽\n handleEndDrag(endSelectCellRange: CellRange, direction: string) {\n // set direction\n this.direction = direction as Direction;\n // set target range\n const selectedRange = getSelectedRangeArray(endSelectCellRange);\n this.targetRange = getTargetRange(this.direction, this.sourceRange, selectedRange);\n this.targetRange.cols = this.targetRange.cols.filter(col => !this.headers.col.has(col));\n this.targetRange.rows = this.targetRange.rows.filter(row => !this.headers.row.has(row));\n // open auto fill menu\n if (!this.options?.fillMode) {\n openAutoFillMenu(this.tableInstance, Math.max(...selectedRange.cols), Math.max(...selectedRange.rows));\n } else {\n this.fillData(this.options.fillMode as APPLY_TYPE);\n }\n }\n\n handleDbClick() {\n if (!this.sourceRange) {\n return;\n }\n this.direction = Direction.DOWN;\n // 双击填充时,自动检测填充范围\n const detectFillRange = getSelectedRangeArray(this._detectFillRange());\n this.targetRange = getTargetRange(this.direction, this.sourceRange, detectFillRange);\n this.targetRange.cols = this.targetRange.cols.filter(col => !this.headers.col.has(col));\n this.targetRange.rows = this.targetRange.rows.filter(row => !this.headers.row.has(row));\n if (this.targetRange.cols.length === 0 || this.targetRange.rows.length === 0) {\n return;\n }\n const startCol = this.sourceRange.cols[0];\n const startRow = this.sourceRange.rows[0];\n const endCol = this.targetRange.cols[this.targetRange.cols.length - 1];\n const endRow = this.targetRange.rows[this.targetRange.rows.length - 1];\n // 更新选区\n const stateManager = this.tableInstance.stateManager;\n stateManager.updateSelectPos(startCol, startRow, false, false, false, true, true);\n stateManager.updateInteractionState(InteractionState.grabing);\n stateManager.updateSelectPos(endCol, endRow, false, false, false, true, true);\n stateManager.endSelectCells(false, false);\n stateManager.updateInteractionState(InteractionState.default);\n // 快速填充\n if (!this.options?.fastFillMode) {\n // 打开自动填充菜单\n openAutoFillMenu(this.tableInstance, endCol, endRow);\n } else {\n this.fillData(this.options.fastFillMode as APPLY_TYPE);\n }\n }\n\n /**\n * 填充数据\n * @param applyType - 填充类型\n */\n fillData(applyType: APPLY_TYPE) {\n console.log('fill data applyType', applyType);\n // 获取源数据\n this.sourceData = this.getSourceData(this.sourceRange, this.direction);\n const location = {\n source: this.sourceRange,\n target: this.targetRange\n };\n\n // 填充数据\n this._fillData(location, this.direction, applyType);\n }\n /**\n * 获取源数据\n * @param source - 源范围\n * @param direction - 方向\n * @returns 源数据\n */\n private getSourceData(source: IDiscreteRange, direction: Direction) {\n const rules = this.autoFillService.getRules();\n const sourceData: ISourceDataPiece[] = [];\n const isVertical = direction === Direction.DOWN || direction === Direction.UP;\n let aArray: number[];\n let bArray: number[];\n if (isVertical) {\n aArray = source.cols;\n bArray = source.rows;\n } else {\n aArray = source.rows;\n bArray = source.cols;\n }\n const matrix = getCellMatrix(this.tableInstance);\n // 按照行或列将源数据分成多个片段,获取单元格数据\n aArray.forEach(a => {\n const sourceDataPiece = this.getEmptySourceDataPiece();\n const prevData: IRuleConfirmedData = {\n type: undefined,\n cellData: undefined\n };\n bArray.forEach(b => {\n let data: Nullable<ICellData>;\n if (isVertical) {\n data = matrix.getValue(b, a);\n } else {\n data = matrix.getValue(a, b);\n }\n // find rules to match data\n const { type, isContinue } = rules.find(r => r.match(data, null)) || otherRule;\n if (isContinue(prevData, data)) {\n const typeInfo = sourceDataPiece[type];\n\n const last = typeInfo![typeInfo!.length - 1];\n last.data.push(data);\n last.index.push(b - bArray[0]);\n } else {\n const typeInfo = sourceDataPiece[type];\n if (typeInfo) {\n typeInfo.push({\n data: [data],\n index: [b - bArray[0]]\n });\n } else {\n sourceDataPiece[type] = [\n {\n data: [data],\n index: [b - bArray[0]]\n }\n ];\n }\n }\n prevData.type = type;\n prevData.cellData = data;\n });\n sourceData.push(sourceDataPiece);\n });\n return sourceData;\n }\n /**\n * 获取空的片段数据对象\n * @returns 空的片段数据对象\n */\n private getEmptySourceDataPiece() {\n const sourceDataPiece: ISourceDataPiece = {};\n this.autoFillService.getRules().forEach(r => {\n sourceDataPiece[r.type] = [];\n });\n\n return sourceDataPiece;\n }\n /**\n * 快速填充检测填充范围\n * @returns 填充范围\n */\n private _detectFillRange() {\n // sourceRange\n const start = { row: Math.min(...this.sourceRange.rows), col: Math.min(...this.sourceRange.cols) };\n const end = { row: Math.max(...this.sourceRange.rows), col: Math.max(...this.sourceRange.cols) };\n // matrix\n const matrix = getCellMatrix(this.tableInstance);\n const maxRow = matrix.getMaxRows();\n const maxColumn = matrix.getMaxColumns();\n let detectEndRow = end.row;\n // left column first, or consider right column.\n if (start.col > 0 && matrix.getValue(start.row, start.col - 1)?.v) {\n let cur = start.row;\n while (matrix.getValue(cur, start.col - 1)?.v && cur <= maxRow) {\n cur += 1;\n }\n detectEndRow = cur - 1;\n } else if (end.col < maxColumn && matrix.getValue(end.row, end.col + 1)?.v) {\n let cur = start.row;\n while (matrix.getValue(cur, end.col + 1)?.v && cur <= maxRow) {\n cur += 1;\n }\n detectEndRow = cur - 1;\n }\n for (let i = end.row + 1; i <= detectEndRow; i++) {\n for (let j = start.col; j <= end.col; j++) {\n if (matrix.getValue(i, j)?.v) {\n detectEndRow = i - 1;\n break;\n }\n }\n }\n return {\n start: { row: start.row, col: start.col },\n end: { row: detectEndRow, col: end.col }\n };\n }\n\n /**\n * 填充数据\n * @param location - 位置\n * @param direction - 方向\n * @param applyType - 填充类型\n */\n private _fillData(location: IAutoFillLocation, direction: Direction, applyType: APPLY_TYPE) {\n const { source, target } = location;\n if (!source || !target || direction == null) {\n return;\n }\n\n const { cols: targetCols, rows: targetRows } = target;\n const { cols: sourceCols, rows: sourceRows } = source;\n\n const sourceData = this.sourceData;\n\n let csLen;\n if (direction === Direction.DOWN || direction === Direction.UP) {\n csLen = sourceRows.length;\n } else {\n csLen = sourceCols.length;\n }\n\n const applyDatas: Array<Array<Nullable<ICellData>>> = [];\n\n if (direction === Direction.DOWN || direction === Direction.UP) {\n const asLen = targetRows.length;\n const untransformedApplyDatas: Nullable<ICellData>[][] = [];\n targetCols.forEach((_, i) => {\n const copyD = sourceData[i];\n const applyData = this.getApplyData(copyD, csLen, asLen, direction, applyType, location);\n untransformedApplyDatas.push(applyData);\n });\n for (let i = 0; i < untransformedApplyDatas[0].length; i++) {\n const row: Array<Nullable<ICellData>> = [];\n for (let j = 0; j < untransformedApplyDatas.length; j++) {\n row.push({\n s: null,\n ...untransformedApplyDatas[j][i]\n });\n }\n applyDatas.push(row);\n }\n } else {\n const asLen = targetCols.length;\n targetRows.forEach((_, i) => {\n const copyD = sourceData[i];\n const applyData = this.getApplyData(copyD, csLen, asLen, direction, applyType, location);\n const row: Array<Nullable<ICellData>> = [];\n for (let j = 0; j < applyData.length; j++) {\n row.push({\n s: null,\n ...applyData[j]\n });\n }\n applyDatas.push(row);\n });\n }\n\n // 获取填充的值\n const values: string[][] = [];\n targetRows.forEach((row, rowIndex) => {\n const rowValues: string[] = [];\n targetCols.forEach((col, colIndex) => {\n // 如果当前单元格是合并单元格,则先进行拆开单元格,再进行填充\n const range = isMergeCell(this.tableInstance, col, row);\n if (range) {\n this.tableInstance.unmergeCells(range.start.col, range.start.row, range.end.col, range.end.row);\n }\n // 填充数据存入rowValues,再一次性填充到表格中\n if (applyDatas[rowIndex][colIndex]) {\n rowValues.push(applyDatas[rowIndex][colIndex]!.v + '');\n }\n });\n values.push(rowValues);\n });\n // 获取填充开始的行和列,设置表格值\n const minRow = Math.min(...targetRows);\n const minCol = Math.min(...targetCols);\n this.tableInstance.changeCellValues(minCol, minRow, values);\n }\n\n /**\n * 根据源数据计算填充数据\n * @param sourceDataPiece - 源数据片段\n * @param csLen - 源长度\n * @param asLen - 目标长度\n * @param direction - 方向\n * @param applyType - 填充类型\n * @param location - 位置\n * @returns 填充数据\n */\n private getApplyData(\n sourceDataPiece: ISourceDataPiece,\n csLen: number,\n asLen: number,\n direction: Direction,\n applyType: APPLY_TYPE,\n location: IAutoFillLocation\n ) {\n const applyData: Array<Nullable<ICellData>> = [];\n const num = Math.floor(asLen / csLen);\n const rsd = asLen % csLen;\n const rules = this.autoFillService.getRules();\n\n const applyDataInTypes: { [key: string]: any[] } = {};\n\n rules.forEach(r => {\n applyDataInTypes[r.type] = [];\n });\n\n // calc cell data to apply\n rules.forEach(r => {\n const { type, applyFunctions: customApplyFunctions = {} } = r;\n const copyDataInType = sourceDataPiece[type];\n if (!copyDataInType) {\n return;\n }\n // copyDataInType is an array of copy-squads in same types\n // a copy-squad is an array of continuous cells that has the same type, e.g. [1, 3, 5] is a copy squad, but [1, 3, ab, 5] will be divided into two copy-squads\n copyDataInType.forEach(copySquad => {\n const s = getLenS(copySquad.index, rsd);\n const len = copySquad.index.length * num + s;\n\n // We do not process cell.custom by default. If the user needs to process it, they can do so in the hook extension.\n const arrData = this.applyFunctions(\n copySquad,\n len,\n direction,\n applyType,\n customApplyFunctions,\n sourceDataPiece,\n location\n );\n\n const arrIndex = getDataIndex(csLen, asLen, copySquad.index);\n applyDataInTypes[type].push({ data: arrData, index: arrIndex });\n });\n });\n\n // calc index\n for (let x = 0; x < asLen; x++) {\n rules.forEach(r => {\n const { type } = r;\n const applyDataInType = applyDataInTypes[type];\n for (let y = 0; y < applyDataInType.length; y++) {\n if (x in applyDataInType[y].index) {\n applyData.push(applyDataInType[y].data[applyDataInType[y].index[x]]);\n }\n }\n });\n }\n\n return applyData;\n }\n /**\n * 根据规则计算填充函数\n * @param copySquad - 复制数据\n * @param len - 长度\n * @param direction - 方向\n * @param applyType - 填充类型\n * @param customApplyFunctions - 自定义应用函数\n * @param sourceDataPiece - 源数据片段\n * @param location - 位置\n * @returns 填充数据\n */\n private applyFunctions(\n copySquad: ICopyDataInType,\n len: number,\n direction: Direction,\n applyType: APPLY_TYPE,\n customApplyFunctions: APPLY_FUNCTIONS,\n sourceDataPiece: ISourceDataPiece,\n location: IAutoFillLocation\n ) {\n const { data } = copySquad;\n const isReverse = direction === Direction.UP || direction === Direction.LEFT;\n\n // 复制填充\n if (applyType === APPLY_TYPE.COPY) {\n const custom = customApplyFunctions?.[APPLY_TYPE.COPY];\n if (custom) {\n return custom(copySquad, len, direction, sourceDataPiece, location);\n }\n isReverse && data.reverse();\n return fillCopy(data, len);\n }\n // 序列填充\n if (applyType === APPLY_TYPE.SERIES) {\n const custom = customApplyFunctions?.[APPLY_TYPE.SERIES];\n if (custom) {\n return custom(copySquad, len, direction, sourceDataPiece);\n }\n isReverse && data.reverse();\n // special rules, if not provide custom SERIES apply functions, will be applied as copy\n if (customApplyFunctions?.[APPLY_TYPE.COPY]) {\n return customApplyFunctions[APPLY_TYPE.COPY](copySquad, len, direction, sourceDataPiece, location);\n }\n return fillCopy(data, len);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/auto-fill/auto-fill-manager.ts"],"names":[],"mappings":"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","file":"auto-fill-manager.js","sourcesContent":["/**\n * Copyright 2023-present DreamNum Co., Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Direction, APPLY_TYPE, CellValueType } from './types';\nimport type {\n ISourceDataPiece,\n ICellData,\n Nullable,\n IRuleConfirmedData,\n IDiscreteRange,\n IAutoFillLocation\n} from './types';\nimport { AutoFillService } from './auto-fill-services';\nimport { otherRule } from './rules';\nimport { fillCopy, getDataIndex, getLenS } from './utils/fill';\nimport type { ICopyDataInType } from './utils/fill';\nimport type { APPLY_FUNCTIONS } from './types';\nimport type { CellRange } from '@visactor/vtable/es/ts-types/table-engine';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { ListTable } from '@visactor/vtable';\nimport {\n getSelectedRangeArray,\n getTargetRange,\n openAutoFillMenu,\n getCellMatrix,\n isMergeCell\n} from './auto-fill-helper';\nimport type { IAutoFillPluginOptions } from '.';\nimport { InteractionState } from '@visactor/vtable/es/ts-types';\nexport class AutoFillManager {\n // 源数据\n private sourceData: ISourceDataPiece[] = [];\n // autoFillService 维护规则列表\n private autoFillService: AutoFillService;\n // 表格实例\n private tableInstance: ListTable;\n // 源范围\n private sourceRange: IDiscreteRange;\n // 目标范围\n private targetRange: IDiscreteRange;\n // 填充方向\n private direction: Direction;\n // 行列头\n private headers: {\n row: Set<number>;\n col: Set<number>;\n };\n\n private options?: IAutoFillPluginOptions;\n\n constructor(options?: IAutoFillPluginOptions) {\n this.options = options;\n this.autoFillService = new AutoFillService();\n }\n\n setTable(table: ListTable) {\n this.headers = {\n row: new Set(),\n col: new Set()\n };\n this.tableInstance = table;\n table.on(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, (args: any) => {\n if (args.text === '复制填充') {\n this.fillData(APPLY_TYPE.COPY);\n } else if (args.text === '序列填充') {\n this.fillData(APPLY_TYPE.SERIES);\n }\n });\n\n //cal headers\n const rowHeaderCells = this.tableInstance.getAllRowHeaderCells()[0];\n if (rowHeaderCells) {\n rowHeaderCells.forEach(cell => {\n this.headers.col.add(cell.col);\n });\n }\n const colHeaderCells = this.tableInstance.getAllColumnHeaderCells()[0];\n if (colHeaderCells) {\n colHeaderCells.forEach(cell => {\n this.headers.row.add(cell.row);\n });\n }\n }\n\n // 开始拖拽\n handleStartDrag(selectedRange: CellRange) {\n this.sourceRange = getSelectedRangeArray(selectedRange);\n this.sourceRange.cols = this.sourceRange.cols.filter(col => !this.headers.col.has(col));\n this.sourceRange.rows = this.sourceRange.rows.filter(row => !this.headers.row.has(row));\n }\n // 结束拖拽\n handleEndDrag(endSelectCellRange: CellRange, direction: string) {\n // set direction\n this.direction = direction as Direction;\n // set target range\n const selectedRange = getSelectedRangeArray(endSelectCellRange);\n this.targetRange = getTargetRange(this.direction, this.sourceRange, selectedRange);\n this.targetRange.cols = this.targetRange.cols.filter(col => !this.headers.col.has(col));\n this.targetRange.rows = this.targetRange.rows.filter(row => !this.headers.row.has(row));\n // open auto fill menu\n if (!this.options?.fillMode) {\n openAutoFillMenu(this.tableInstance, Math.max(...selectedRange.cols), Math.max(...selectedRange.rows));\n } else {\n this.fillData(this.options.fillMode as APPLY_TYPE);\n }\n }\n\n handleDbClick() {\n if (!this.sourceRange) {\n return;\n }\n this.direction = Direction.DOWN;\n // 双击填充时,自动检测填充范围\n const detectFillRange = getSelectedRangeArray(this._detectFillRange());\n this.targetRange = getTargetRange(this.direction, this.sourceRange, detectFillRange);\n this.targetRange.cols = this.targetRange.cols.filter(col => !this.headers.col.has(col));\n this.targetRange.rows = this.targetRange.rows.filter(row => !this.headers.row.has(row));\n if (this.targetRange.cols.length === 0 || this.targetRange.rows.length === 0) {\n return;\n }\n const startCol = this.sourceRange.cols[0];\n const startRow = this.sourceRange.rows[0];\n const endCol = this.targetRange.cols[this.targetRange.cols.length - 1];\n const endRow = this.targetRange.rows[this.targetRange.rows.length - 1];\n // 更新选区\n const stateManager = this.tableInstance.stateManager;\n stateManager.updateSelectPos(startCol, startRow, false, false, false, true, true);\n stateManager.updateInteractionState(InteractionState.grabing);\n stateManager.updateSelectPos(endCol, endRow, false, false, false, true, true);\n stateManager.endSelectCells(false, false);\n stateManager.updateInteractionState(InteractionState.default);\n // 快速填充\n if (!this.options?.fastFillMode) {\n // 打开自动填充菜单\n openAutoFillMenu(this.tableInstance, endCol, endRow);\n } else {\n this.fillData(this.options.fastFillMode as APPLY_TYPE);\n }\n }\n\n /**\n * 填充数据\n * @param applyType - 填充类型\n */\n fillData(applyType: APPLY_TYPE) {\n console.log('fill data applyType', applyType);\n // 获取源数据\n this.sourceData = this.getSourceData(this.sourceRange, this.direction);\n const location = {\n source: this.sourceRange,\n target: this.targetRange\n };\n\n // 填充数据\n this._fillData(location, this.direction, applyType);\n }\n /**\n * 获取源数据\n * @param source - 源范围\n * @param direction - 方向\n * @returns 源数据\n */\n private getSourceData(source: IDiscreteRange, direction: Direction) {\n const rules = this.autoFillService.getRules();\n const sourceData: ISourceDataPiece[] = [];\n const isVertical = direction === Direction.DOWN || direction === Direction.UP;\n let aArray: number[];\n let bArray: number[];\n if (isVertical) {\n aArray = source.cols;\n bArray = source.rows;\n } else {\n aArray = source.rows;\n bArray = source.cols;\n }\n const matrix = getCellMatrix(this.tableInstance);\n // 按照行或列将源数据分成多个片段,获取单元格数据\n aArray.forEach(a => {\n const sourceDataPiece = this.getEmptySourceDataPiece();\n const prevData: IRuleConfirmedData = {\n type: undefined,\n cellData: undefined\n };\n bArray.forEach(b => {\n let data: Nullable<ICellData>;\n if (isVertical) {\n data = matrix.getValue(b, a);\n } else {\n data = matrix.getValue(a, b);\n }\n // find rules to match data\n const { type, isContinue } = rules.find(r => r.match(data, null)) || otherRule;\n if (isContinue(prevData, data)) {\n const typeInfo = sourceDataPiece[type];\n\n const last = typeInfo![typeInfo!.length - 1];\n last.data.push(data);\n last.index.push(b - bArray[0]);\n } else {\n const typeInfo = sourceDataPiece[type];\n if (typeInfo) {\n typeInfo.push({\n data: [data],\n index: [b - bArray[0]]\n });\n } else {\n sourceDataPiece[type] = [\n {\n data: [data],\n index: [b - bArray[0]]\n }\n ];\n }\n }\n prevData.type = type;\n prevData.cellData = data;\n });\n sourceData.push(sourceDataPiece);\n });\n return sourceData;\n }\n /**\n * 获取空的片段数据对象\n * @returns 空的片段数据对象\n */\n private getEmptySourceDataPiece() {\n const sourceDataPiece: ISourceDataPiece = {};\n this.autoFillService.getRules().forEach(r => {\n sourceDataPiece[r.type] = [];\n });\n\n return sourceDataPiece;\n }\n /**\n * 快速填充检测填充范围\n * @returns 填充范围\n */\n private _detectFillRange() {\n // sourceRange\n const start = { row: Math.min(...this.sourceRange.rows), col: Math.min(...this.sourceRange.cols) };\n const end = { row: Math.max(...this.sourceRange.rows), col: Math.max(...this.sourceRange.cols) };\n // matrix\n const matrix = getCellMatrix(this.tableInstance);\n const maxRow = matrix.getMaxRows();\n const maxColumn = matrix.getMaxColumns();\n let detectEndRow = end.row;\n // left column first, or consider right column.\n if (start.col > 0 && matrix.getValue(start.row, start.col - 1)?.v) {\n let cur = start.row;\n while (matrix.getValue(cur, start.col - 1)?.v && cur <= maxRow) {\n cur += 1;\n }\n detectEndRow = cur - 1;\n } else if (end.col < maxColumn && matrix.getValue(end.row, end.col + 1)?.v) {\n let cur = start.row;\n while (matrix.getValue(cur, end.col + 1)?.v && cur <= maxRow) {\n cur += 1;\n }\n detectEndRow = cur - 1;\n }\n for (let i = end.row + 1; i <= detectEndRow; i++) {\n for (let j = start.col; j <= end.col; j++) {\n if (matrix.getValue(i, j)?.v) {\n detectEndRow = i - 1;\n break;\n }\n }\n }\n return {\n start: { row: start.row, col: start.col },\n end: { row: detectEndRow, col: end.col }\n };\n }\n\n /**\n * 填充数据\n * @param location - 位置\n * @param direction - 方向\n * @param applyType - 填充类型\n */\n private _fillData(location: IAutoFillLocation, direction: Direction, applyType: APPLY_TYPE) {\n const { source, target } = location;\n if (!source || !target || direction == null) {\n return;\n }\n\n const { cols: targetCols, rows: targetRows } = target;\n const { cols: sourceCols, rows: sourceRows } = source;\n\n const sourceData = this.sourceData;\n\n let csLen: number;\n if (direction === Direction.DOWN || direction === Direction.UP) {\n csLen = sourceRows.length;\n } else {\n csLen = sourceCols.length;\n }\n\n const applyDatas: Array<Array<Nullable<ICellData>>> = [];\n\n if (direction === Direction.DOWN || direction === Direction.UP) {\n const asLen = targetRows.length;\n const untransformedApplyDatas: Nullable<ICellData>[][] = [];\n targetCols.forEach((_, i) => {\n const copyD = sourceData[i];\n const applyData = this.getApplyData(copyD, csLen, asLen, direction, applyType, location);\n untransformedApplyDatas.push(applyData);\n });\n for (let i = 0; i < untransformedApplyDatas[0].length; i++) {\n const row: Array<Nullable<ICellData>> = [];\n for (let j = 0; j < untransformedApplyDatas.length; j++) {\n row.push(untransformedApplyDatas[j][i]);\n }\n applyDatas.push(row);\n }\n } else {\n const asLen = targetCols.length;\n targetRows.forEach((_, i) => {\n const copyD = sourceData[i];\n const applyData = this.getApplyData(copyD, csLen, asLen, direction, applyType, location);\n const row: Array<Nullable<ICellData>> = [];\n for (let j = 0; j < applyData.length; j++) {\n row.push(applyData[j]);\n }\n applyDatas.push(row);\n });\n }\n\n // 获取填充的值\n const values: string[][] = [];\n targetRows.forEach((row, rowIndex) => {\n const rowValues: string[] = [];\n targetCols.forEach((col, colIndex) => {\n // 如果当前单元格是合并单元格,则先进行拆开单元格,再进行填充\n const range = isMergeCell(this.tableInstance, col, row);\n if (range) {\n this.tableInstance.unmergeCells(range.start.col, range.start.row, range.end.col, range.end.row);\n }\n // 填充数据存入rowValues,再一次性填充到表格中\n if (applyDatas[rowIndex][colIndex]) {\n rowValues.push((applyDatas[rowIndex][colIndex] as any)?.v + '');\n }\n });\n values.push(rowValues);\n });\n // 获取填充开始的行和列,设置表格值\n const minRow = Math.min(...targetRows);\n const minCol = Math.min(...targetCols);\n this.tableInstance.changeCellValues(minCol, minRow, values);\n }\n\n /**\n * 根据源数据计算填充数据\n * @param sourceDataPiece - 源数据片段\n * @param csLen - 源长度\n * @param asLen - 目标长度\n * @param direction - 方向\n * @param applyType - 填充类型\n * @param location - 位置\n * @returns 填充数据\n */\n private getApplyData(\n sourceDataPiece: ISourceDataPiece,\n csLen: number,\n asLen: number,\n direction: Direction,\n applyType: APPLY_TYPE,\n location: IAutoFillLocation\n ) {\n const applyData: Array<Nullable<ICellData>> = [];\n const num = Math.floor(asLen / csLen);\n const rsd = asLen % csLen;\n const rules = this.autoFillService.getRules();\n\n const applyDataInTypes: { [key: string]: any[] } = {};\n\n rules.forEach(r => {\n applyDataInTypes[r.type] = [];\n });\n\n // calc cell data to apply\n rules.forEach(r => {\n const { type, applyFunctions: customApplyFunctions = {} } = r;\n const copyDataInType = sourceDataPiece[type];\n if (!copyDataInType) {\n return;\n }\n // copyDataInType is an array of copy-squads in same types\n // a copy-squad is an array of continuous cells that has the same type, e.g. [1, 3, 5] is a copy squad, but [1, 3, ab, 5] will be divided into two copy-squads\n copyDataInType.forEach(copySquad => {\n const s = getLenS(copySquad.index, rsd);\n const len = copySquad.index.length * num + s;\n\n // We do not process cell.custom by default. If the user needs to process it, they can do so in the hook extension.\n const arrData = this.applyFunctions(\n copySquad,\n len,\n direction,\n applyType,\n customApplyFunctions,\n sourceDataPiece,\n location\n );\n\n const arrIndex = getDataIndex(csLen, asLen, copySquad.index);\n applyDataInTypes[type].push({ data: arrData, index: arrIndex });\n });\n });\n\n // calc index\n for (let x = 0; x < asLen; x++) {\n rules.forEach(r => {\n const { type } = r;\n const applyDataInType = applyDataInTypes[type];\n for (let y = 0; y < applyDataInType.length; y++) {\n if (x in applyDataInType[y].index) {\n applyData.push(applyDataInType[y].data[applyDataInType[y].index[x]]);\n }\n }\n });\n }\n\n return applyData;\n }\n /**\n * 根据规则计算填充函数\n * @param copySquad - 复制数据\n * @param len - 长度\n * @param direction - 方向\n * @param applyType - 填充类型\n * @param customApplyFunctions - 自定义应用函数\n * @param sourceDataPiece - 源数据片段\n * @param location - 位置\n * @returns 填充数据\n */\n private applyFunctions(\n copySquad: ICopyDataInType,\n len: number,\n direction: Direction,\n applyType: APPLY_TYPE,\n customApplyFunctions: APPLY_FUNCTIONS,\n sourceDataPiece: ISourceDataPiece,\n location: IAutoFillLocation\n ) {\n const { data } = copySquad;\n const isReverse = direction === Direction.UP || direction === Direction.LEFT;\n\n // 复制填充\n if (applyType === APPLY_TYPE.COPY) {\n const custom = customApplyFunctions?.[APPLY_TYPE.COPY];\n if (custom) {\n return custom(copySquad, len, direction, sourceDataPiece, location);\n }\n isReverse && data.reverse();\n return fillCopy(data, len);\n }\n // 序列填充\n if (applyType === APPLY_TYPE.SERIES) {\n const custom = customApplyFunctions?.[APPLY_TYPE.SERIES];\n if (custom) {\n return custom(copySquad, len, direction, sourceDataPiece);\n }\n isReverse && data.reverse();\n // special rules, if not provide custom SERIES apply functions, will be applied as copy\n if (customApplyFunctions?.[APPLY_TYPE.COPY]) {\n return customApplyFunctions[APPLY_TYPE.COPY](copySquad, len, direction, sourceDataPiece, location);\n }\n return fillCopy(data, len);\n }\n // Default case: return empty array\n return [];\n }\n}\n"]}
|
package/cjs/auto-fill/index.d.ts
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { pluginsDefinition, ListTable, BaseTableAPI } from '@visactor/vtable';
|
|
2
2
|
import type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';
|
|
3
3
|
export interface IAutoFillPluginOptions {
|
|
4
4
|
fillMode?: 'copy' | 'series';
|
|
5
5
|
fastFillMode?: 'copy' | 'series';
|
|
6
6
|
}
|
|
7
|
-
export declare class AutoFillPlugin implements
|
|
7
|
+
export declare class AutoFillPlugin implements pluginsDefinition.IVTablePlugin {
|
|
8
8
|
id: string;
|
|
9
9
|
name: string;
|
|
10
10
|
runTime: ("mousedown_fill_handle" | "drag_fill_handle_end" | "dblclick_fill_handle")[];
|
|
11
|
-
table:
|
|
11
|
+
table: ListTable;
|
|
12
12
|
private autoFillManager;
|
|
13
13
|
constructor(options?: IAutoFillPluginOptions);
|
|
14
|
-
run(...args: [
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][],
|
|
19
|
-
VTable.BaseTableAPI
|
|
20
|
-
]): void;
|
|
14
|
+
run(...args: [{
|
|
15
|
+
direction: string;
|
|
16
|
+
}, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], BaseTableAPI]): void;
|
|
21
17
|
}
|
package/cjs/auto-fill/index.js
CHANGED
|
@@ -1,50 +1,25 @@
|
|
|
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.AutoFillPlugin = void 0;
|
|
31
6
|
|
|
32
|
-
const
|
|
7
|
+
const vtable_1 = require("@visactor/vtable"), auto_fill_manager_1 = require("./auto-fill-manager");
|
|
33
8
|
|
|
34
9
|
class AutoFillPlugin {
|
|
35
10
|
constructor(options) {
|
|
36
|
-
this.id = "auto-fill", this.name = "Auto Fill", this.runTime = [
|
|
11
|
+
this.id = "auto-fill", this.name = "Auto Fill", this.runTime = [ vtable_1.TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE, vtable_1.TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END, vtable_1.TABLE_EVENT_TYPE.DBLCLICK_FILL_HANDLE ],
|
|
37
12
|
this.autoFillManager = new auto_fill_manager_1.AutoFillManager(options);
|
|
38
13
|
}
|
|
39
14
|
run(...args) {
|
|
40
15
|
var _a, _b;
|
|
41
|
-
if (args[1] ===
|
|
16
|
+
if (args[1] === vtable_1.TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE) {
|
|
42
17
|
const [_, __, table] = args;
|
|
43
18
|
this.table = table, this.autoFillManager.setTable(this.table), this.autoFillManager.handleStartDrag(null === (_a = this.table) || void 0 === _a ? void 0 : _a.getSelectedCellRanges()[0]);
|
|
44
|
-
} else if (args[1] ===
|
|
19
|
+
} else if (args[1] === vtable_1.TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END) {
|
|
45
20
|
const [{direction: direction}] = args;
|
|
46
21
|
this.autoFillManager.handleEndDrag(null === (_b = this.table) || void 0 === _b ? void 0 : _b.getSelectedCellRanges()[0], direction);
|
|
47
|
-
} else args[1] ===
|
|
22
|
+
} else args[1] === vtable_1.TABLE_EVENT_TYPE.DBLCLICK_FILL_HANDLE && this.autoFillManager.handleDbClick();
|
|
48
23
|
}
|
|
49
24
|
}
|
|
50
25
|
|