@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.
- 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 +4 -4
- package/cjs/excel-edit-cell-keyboard.js +3 -28
- 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 +0 -1
- package/cjs/table-export/csv/index.js.map +1 -1
- package/cjs/table-export/excel/index.js +1 -0
- package/cjs/table-export/util/type.d.ts +6 -6
- 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 +5168 -93717
- package/dist/vtable-plugins.min.js +36 -90
- 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 +4 -4
- package/es/excel-edit-cell-keyboard.js +3 -3
- 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 +1 -2
- package/es/table-export/csv/index.js.map +1 -1
- package/es/table-export/excel/index.js +2 -1
- package/es/table-export/util/type.d.ts +6 -6
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/auto-fill/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/auto-fill/index.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AAEpD,2DAAsD;AAqBtD,MAAa,cAAc;IAUzB,YAAY,OAAgC;QAT5C,OAAE,GAAG,WAAW,CAAC;QACjB,SAAI,GAAG,WAAW,CAAC;QACnB,YAAO,GAAG;YACR,yBAAgB,CAAC,qBAAqB;YACtC,yBAAgB,CAAC,oBAAoB;YACrC,yBAAgB,CAAC,oBAAoB;SACtC,CAAC;QAIA,IAAI,CAAC,eAAe,GAAG,IAAI,mCAAe,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,GAAG,CACD,GAAG,IAA8G;;QAGjH,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAgB,CAAC,qBAAqB,EAAE;YACtD,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,KAAkB,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC;SAC9E;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAgB,CAAC,oBAAoB,EAAE;YAE5D,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,qBAAqB,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;SACvF;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAgB,CAAC,oBAAoB,EAAE;YAC5D,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;SACtC;IACH,CAAC;CACF;AA/BD,wCA+BC","file":"index.js","sourcesContent":["import type { pluginsDefinition, ListTable, BaseTableAPI } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { TableEvents } from '@visactor/vtable/src/core/TABLE_EVENT_TYPE';\nimport { AutoFillManager } from './auto-fill-manager';\n/**\n * 自动填充插件\n */\nexport interface IAutoFillPluginOptions {\n /**\n * 填充模式\n * 'copy': 复制填充\n * 'series': 序列填充\n * 不填写则开启自动填充菜单\n */\n fillMode?: 'copy' | 'series';\n /**\n * 快速填充模式\n * 'copy': 复制填充\n * 'series': 序列填充\n * 不填写则开启自动填充菜单\n */\n fastFillMode?: 'copy' | 'series';\n}\n\nexport class AutoFillPlugin implements pluginsDefinition.IVTablePlugin {\n id = `auto-fill`;\n name = 'Auto Fill';\n runTime = [\n TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE,\n TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END,\n TABLE_EVENT_TYPE.DBLCLICK_FILL_HANDLE\n ];\n table: ListTable;\n private autoFillManager: AutoFillManager;\n constructor(options?: IAutoFillPluginOptions) {\n this.autoFillManager = new AutoFillManager(options);\n }\n run(\n ...args: [{ direction: string }, TableEvents[keyof TableEvents] | TableEvents[keyof TableEvents][], BaseTableAPI]\n ) {\n // start drag\n console.log('auto fill plugin run', args);\n if (args[1] === TABLE_EVENT_TYPE.MOUSEDOWN_FILL_HANDLE) {\n const [_, __, table] = args;\n this.table = table as ListTable;\n this.autoFillManager.setTable(this.table);\n this.autoFillManager.handleStartDrag(this.table?.getSelectedCellRanges()[0]);\n } else if (args[1] === TABLE_EVENT_TYPE.DRAG_FILL_HANDLE_END) {\n // end drag\n const [{ direction }] = args;\n this.autoFillManager.handleEndDrag(this.table?.getSelectedCellRanges()[0], direction);\n } else if (args[1] === TABLE_EVENT_TYPE.DBLCLICK_FILL_HANDLE) {\n this.autoFillManager.handleDbClick();\n }\n }\n}\n"]}
|
package/cjs/auto-fill/rules.js
CHANGED
|
@@ -43,12 +43,15 @@ exports.dateRule = {
|
|
|
43
43
|
}, exports.extendNumberRule = {
|
|
44
44
|
type: types_1.DATA_TYPE.EXTEND_NUMBER,
|
|
45
45
|
priority: 900,
|
|
46
|
-
match: cellData =>
|
|
47
|
-
isContinue: (prev, cur) => {
|
|
46
|
+
match: cellData => {
|
|
48
47
|
var _a;
|
|
48
|
+
return (0, fill_1.matchExtendNumber)(`${null !== (_a = null == cellData ? void 0 : cellData.v) && void 0 !== _a ? _a : ""}` || "").isExtendNumber;
|
|
49
|
+
},
|
|
50
|
+
isContinue: (prev, cur) => {
|
|
51
|
+
var _a, _b, _c;
|
|
49
52
|
if (prev.type === types_1.DATA_TYPE.EXTEND_NUMBER) {
|
|
50
|
-
const {beforeTxt: beforeTxt, afterTxt: afterTxt} = (0, fill_1.matchExtendNumber)(`${null === (_a = prev.cellData) || void 0 === _a ? void 0 : _a.v}` || ""), {beforeTxt: curBeforeTxt, afterTxt: curAfterTxt} = (0,
|
|
51
|
-
fill_1.matchExtendNumber)(`${null == cur ? void 0 : cur.v}` || "");
|
|
53
|
+
const {beforeTxt: beforeTxt, afterTxt: afterTxt} = (0, fill_1.matchExtendNumber)(`${null !== (_b = null === (_a = prev.cellData) || void 0 === _a ? void 0 : _a.v) && void 0 !== _b ? _b : ""}` || ""), {beforeTxt: curBeforeTxt, afterTxt: curAfterTxt} = (0,
|
|
54
|
+
fill_1.matchExtendNumber)(`${null !== (_c = null == cur ? void 0 : cur.v) && void 0 !== _c ? _c : ""}` || "");
|
|
52
55
|
if (beforeTxt === curBeforeTxt && afterTxt === curAfterTxt) return !0;
|
|
53
56
|
}
|
|
54
57
|
return !1;
|
|
@@ -71,7 +74,10 @@ exports.dateRule = {
|
|
|
71
74
|
}, exports.chnNumberRule = {
|
|
72
75
|
type: types_1.DATA_TYPE.CHN_NUMBER,
|
|
73
76
|
priority: 830,
|
|
74
|
-
match: cellData =>
|
|
77
|
+
match: cellData => {
|
|
78
|
+
var _a;
|
|
79
|
+
return !!(0, fill_1.isChnNumber)(`${null !== (_a = null == cellData ? void 0 : cellData.v) && void 0 !== _a ? _a : ""}` || "");
|
|
80
|
+
},
|
|
75
81
|
isContinue: (prev, cur) => prev.type === types_1.DATA_TYPE.CHN_NUMBER,
|
|
76
82
|
applyFunctions: {
|
|
77
83
|
[types_1.APPLY_TYPE.SERIES]: (dataWithIndex, len, direction) => {
|
|
@@ -106,7 +112,10 @@ exports.dateRule = {
|
|
|
106
112
|
}, exports.chnWeek2Rule = {
|
|
107
113
|
type: types_1.DATA_TYPE.CHN_WEEK2,
|
|
108
114
|
priority: 820,
|
|
109
|
-
match: cellData =>
|
|
115
|
+
match: cellData => {
|
|
116
|
+
var _a;
|
|
117
|
+
return !!(0, fill_1.isChnWeek2)(`${null !== (_a = null == cellData ? void 0 : cellData.v) && void 0 !== _a ? _a : ""}` || "");
|
|
118
|
+
},
|
|
110
119
|
isContinue: (prev, cur) => prev.type === types_1.DATA_TYPE.CHN_WEEK2,
|
|
111
120
|
applyFunctions: {
|
|
112
121
|
[types_1.APPLY_TYPE.SERIES]: (dataWithIndex, len, direction) => {
|
|
@@ -133,7 +142,10 @@ exports.dateRule = {
|
|
|
133
142
|
}, exports.chnWeek3Rule = {
|
|
134
143
|
type: types_1.DATA_TYPE.CHN_WEEK3,
|
|
135
144
|
priority: 810,
|
|
136
|
-
match: cellData =>
|
|
145
|
+
match: cellData => {
|
|
146
|
+
var _a;
|
|
147
|
+
return (0, fill_1.isChnWeek3)(`${null !== (_a = null == cellData ? void 0 : cellData.v) && void 0 !== _a ? _a : ""}` || "");
|
|
148
|
+
},
|
|
137
149
|
isContinue: (prev, cur) => prev.type === types_1.DATA_TYPE.CHN_WEEK3,
|
|
138
150
|
applyFunctions: {
|
|
139
151
|
[types_1.APPLY_TYPE.SERIES]: (dataWithIndex, len, direction) => {
|
|
@@ -163,11 +175,14 @@ exports.dateRule = {
|
|
|
163
175
|
}, exports.loopSeriesRule = {
|
|
164
176
|
type: types_1.DATA_TYPE.LOOP_SERIES,
|
|
165
177
|
priority: 800,
|
|
166
|
-
match: cellData =>
|
|
167
|
-
isContinue: (prev, cur) => {
|
|
178
|
+
match: cellData => {
|
|
168
179
|
var _a;
|
|
169
|
-
return
|
|
170
|
-
|
|
180
|
+
return (0, fill_1.isLoopSeries)(`${null !== (_a = null == cellData ? void 0 : cellData.v) && void 0 !== _a ? _a : ""}` || "");
|
|
181
|
+
},
|
|
182
|
+
isContinue: (prev, cur) => {
|
|
183
|
+
var _a, _b, _c;
|
|
184
|
+
return prev.type === types_1.DATA_TYPE.LOOP_SERIES && (0, fill_1.getLoopSeriesInfo)(`${null !== (_b = null === (_a = prev.cellData) || void 0 === _a ? void 0 : _a.v) && void 0 !== _b ? _b : ""}` || "").name === (0,
|
|
185
|
+
fill_1.getLoopSeriesInfo)(`${null !== (_c = null == cur ? void 0 : cur.v) && void 0 !== _c ? _c : ""}` || "").name;
|
|
171
186
|
},
|
|
172
187
|
applyFunctions: {
|
|
173
188
|
[types_1.APPLY_TYPE.SERIES]: (dataWithIndex, len, direction) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/auto-fill/rules.ts"],"names":[],"mappings":"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","file":"rules.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 */\n\nimport type { IAutoFillRule } from './types';\n\nimport {\n chineseToNumber,\n fillChnNumber,\n fillChnWeek,\n fillCopy,\n fillExtendNumber,\n fillLoopSeries,\n fillSeries,\n getLoopSeriesInfo,\n isChnNumber,\n isChnWeek2,\n isChnWeek3,\n isEqualDiff,\n isLoopSeries,\n matchExtendNumber\n} from './utils/fill';\nimport { APPLY_TYPE, DATA_TYPE, Direction } from './types';\nimport { converterManager, DateConverter } from './series-converters';\nimport { CellValueType } from './types';\nexport const dateRule: IAutoFillRule = {\n type: DATA_TYPE.DATE,\n priority: 1100,\n match: (cellData: any, accessor: any) => {\n return typeof cellData?.v === 'string' && converterManager.getConverter(cellData.v) instanceof DateConverter;\n },\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.DATE) {\n return true;\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n const converter = converterManager.getConverter(data[0]?.v);\n if (direction === Direction.LEFT || direction === Direction.UP) {\n data.reverse();\n return fillSeries(data, len, direction, converter).reverse();\n }\n return fillSeries(data, len, direction, converter);\n }\n }\n};\n\nexport const numberRule: IAutoFillRule = {\n type: DATA_TYPE.NUMBER,\n priority: 1000,\n match: (cellData: any) => typeof cellData?.v === 'number' || cellData?.t === CellValueType.NUMBER,\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.NUMBER) {\n return true;\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n if (direction === Direction.LEFT || direction === Direction.UP) {\n data.reverse();\n return fillSeries(data, len, direction).reverse();\n }\n return fillSeries(data, len, direction);\n }\n }\n};\n\nexport const otherRule: IAutoFillRule = {\n type: DATA_TYPE.OTHER,\n priority: 0,\n match: () => true,\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.OTHER) {\n return true;\n }\n return false;\n }\n};\n\nexport const extendNumberRule: IAutoFillRule = {\n type: DATA_TYPE.EXTEND_NUMBER,\n priority: 900,\n match: cellData => matchExtendNumber(`${cellData?.v}` || '').isExtendNumber,\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.EXTEND_NUMBER) {\n const { beforeTxt, afterTxt } = matchExtendNumber(`${prev.cellData?.v}` || '');\n const { beforeTxt: curBeforeTxt, afterTxt: curAfterTxt } = matchExtendNumber(`${cur?.v}` || '');\n if (beforeTxt === curBeforeTxt && afterTxt === curAfterTxt) {\n return true;\n }\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n const isReverse = direction === Direction.UP || direction === Direction.LEFT;\n\n let step;\n if (data.length === 1) {\n step = isReverse ? -1 : 1;\n return reverseIfNeed(fillExtendNumber(data, len, step), isReverse);\n }\n const dataNumArr = [];\n\n for (let i = 0; i < data.length; i++) {\n const txt = `${data[i]?.v}`;\n txt && dataNumArr.push(Number(matchExtendNumber(txt).matchTxt));\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillExtendNumber(data, len, step), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport const chnNumberRule: IAutoFillRule = {\n type: DATA_TYPE.CHN_NUMBER,\n priority: 830,\n match: cellData => {\n if (isChnNumber(`${cellData?.v}` || '')) {\n return true;\n }\n return false;\n },\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.CHN_NUMBER) {\n return true;\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n return reverseIfNeed(fillChnNumber(data, len, step), isReverse);\n }\n let hasWeek = false;\n for (let i = 0; i < data.length; i++) {\n const formattedValue = data[i]?.v;\n\n if (formattedValue === '日') {\n hasWeek = true;\n break;\n }\n }\n\n const dataNumArr = [];\n let weekIndex = 0;\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n if (formattedValue === '日') {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n weekIndex++;\n dataNumArr.push(weekIndex * 7);\n }\n } else if (hasWeek && chineseToNumber(formattedValue) > 0 && chineseToNumber(formattedValue) < 7) {\n dataNumArr.push(chineseToNumber(formattedValue) + weekIndex * 7);\n } else {\n dataNumArr.push(chineseToNumber(formattedValue));\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n // Always fill with sequence of Chinese lowercase numbers\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillChnNumber(data, len, step), isReverse);\n }\n // Not an arithmetic progression, copy data\n return fillCopy(data, len);\n }\n }\n};\n\nexport const chnWeek2Rule: IAutoFillRule = {\n type: DATA_TYPE.CHN_WEEK2,\n priority: 820,\n match: cellData => {\n if (isChnWeek2(`${cellData?.v}` || '')) {\n return true;\n }\n return false;\n },\n isContinue: (prev: any, cur: any) => prev.type === DATA_TYPE.CHN_WEEK2,\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n\n return reverseIfNeed(fillChnWeek(data, len, step, 1), isReverse);\n }\n const dataNumArr = [];\n let weekIndex = 0;\n\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n const lastTxt = formattedValue?.substr(formattedValue.length - 1, 1);\n if (formattedValue === '周日') {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n weekIndex++;\n dataNumArr.push(weekIndex * 7);\n }\n } else {\n dataNumArr.push(chineseToNumber(lastTxt) + weekIndex * 7);\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillChnWeek(data, len, step, 1), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport const chnWeek3Rule: IAutoFillRule = {\n type: DATA_TYPE.CHN_WEEK3,\n priority: 810,\n match: cellData => isChnWeek3(`${cellData?.v}` || ''),\n isContinue: (prev: any, cur: any) => prev.type === DATA_TYPE.CHN_WEEK3,\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n\n return reverseIfNeed(fillChnWeek(data, len, step, 2), isReverse);\n }\n const dataNumArr = [];\n let weekIndex = 0;\n\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n if (formattedValue) {\n const lastTxt = formattedValue.substr(formattedValue.length - 1, 1);\n if (formattedValue === '星期日') {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n weekIndex++;\n dataNumArr.push(weekIndex * 7);\n }\n } else {\n dataNumArr.push(chineseToNumber(lastTxt) + weekIndex * 7);\n }\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillChnWeek(data, len, step, 2), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport const loopSeriesRule: IAutoFillRule = {\n type: DATA_TYPE.LOOP_SERIES,\n priority: 800,\n match: cellData => isLoopSeries(`${cellData?.v}` || ''),\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.LOOP_SERIES) {\n return getLoopSeriesInfo(`${prev.cellData?.v}` || '').name === getLoopSeriesInfo(`${cur?.v}` || '').name;\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n const { series } = getLoopSeriesInfo(`${data[0]?.v}` || '');\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n\n return reverseIfNeed(fillLoopSeries(data, len, step, series), isReverse);\n }\n const dataNumArr = [];\n let cycleIndex = 0;\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n if (formattedValue) {\n if (formattedValue === series[0]) {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n cycleIndex++;\n dataNumArr.push(cycleIndex * series.length);\n }\n } else {\n dataNumArr.push(series.indexOf(formattedValue) + cycleIndex * 7);\n }\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillLoopSeries(data, len, step, series), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport function reverseIfNeed<T>(data: T[], reverse: boolean): T[] {\n return reverse ? data.reverse() : data;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/auto-fill/rules.ts"],"names":[],"mappings":";;;AAkBA,uCAesB;AACtB,mCAA2D;AAC3D,2DAAsE;AACtE,mCAAwC;AAC3B,QAAA,QAAQ,GAAkB;IACrC,IAAI,EAAE,iBAAS,CAAC,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,CAAC,QAAa,EAAE,QAAa,EAAE,EAAE;QACtC,OAAO,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,CAAC,CAAA,KAAK,QAAQ,IAAI,oCAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,iCAAa,CAAC;IAC/G,CAAC;IACD,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,IAAI,EAAE;YAChC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,CAAC,kBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAkB,EAAE,GAAQ,EAAE,SAAc,EAAE,EAAE;;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC/B,MAAM,SAAS,GAAG,oCAAgB,CAAC,YAAY,CAAC,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,CAAC,CAAC;YAC5D,IAAI,SAAS,KAAK,iBAAS,CAAC,IAAI,IAAI,SAAS,KAAK,iBAAS,CAAC,EAAE,EAAE;gBAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAA,iBAAU,EAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;aAC9D;YACD,OAAO,IAAA,iBAAU,EAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;KACF;CACF,CAAC;AAEW,QAAA,UAAU,GAAkB;IACvC,IAAI,EAAE,iBAAS,CAAC,MAAM;IACtB,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,CAAC,QAAa,EAAE,EAAE,CAAC,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,CAAC,CAAA,KAAK,QAAQ,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,CAAC,MAAK,qBAAa,CAAC,MAAM;IACjG,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,MAAM,EAAE;YAClC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,CAAC,kBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAkB,EAAE,GAAQ,EAAE,SAAc,EAAE,EAAE;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC/B,IAAI,SAAS,KAAK,iBAAS,CAAC,IAAI,IAAI,SAAS,KAAK,iBAAS,CAAC,EAAE,EAAE;gBAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAA,iBAAU,EAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;aACnD;YACD,OAAO,IAAA,iBAAU,EAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;KACF;CACF,CAAC;AAEW,QAAA,SAAS,GAAkB;IACtC,IAAI,EAAE,iBAAS,CAAC,KAAK;IACrB,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;IACjB,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,KAAK,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC;AAEW,QAAA,gBAAgB,GAAkB;IAC7C,IAAI,EAAE,iBAAS,CAAC,aAAa;IAC7B,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAC,OAAA,IAAA,wBAAiB,EAAC,GAAG,MAAC,QAAgB,aAAhB,QAAQ,uBAAR,QAAQ,CAAU,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,CAAA,EAAA;IAC1F,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,aAAa,EAAE;YACzC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAA,wBAAiB,EAAC,GAAG,MAAA,MAAC,IAAI,CAAC,QAAgB,0CAAE,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9F,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAA,wBAAiB,EAAC,GAAG,MAAC,GAAW,aAAX,GAAG,uBAAH,GAAG,CAAU,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/G,IAAI,SAAS,KAAK,YAAY,IAAI,QAAQ,KAAK,WAAW,EAAE;gBAC1D,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,CAAC,kBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAkB,EAAE,GAAQ,EAAE,SAAc,EAAE,EAAE;;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC/B,MAAM,SAAS,GAAG,SAAS,KAAK,iBAAS,CAAC,EAAE,IAAI,SAAS,KAAK,iBAAS,CAAC,IAAI,CAAC;YAE7E,IAAI,IAAI,CAAC;YACT,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1B,OAAO,aAAa,CAAC,IAAA,uBAAgB,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;aACpE;YACD,MAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,GAAG,GAAG,GAAG,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,EAAE,CAAC;gBAC5B,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAA,wBAAiB,EAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aACjE;YAED,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,UAAU,CAAC,OAAO,EAAE,CAAC;aACtB;YAED,IAAI,IAAA,kBAAW,EAAC,UAAU,CAAC,EAAE;gBAC3B,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrC,OAAO,aAAa,CAAC,IAAA,uBAAgB,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;aACpE;YACD,OAAO,IAAA,eAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;CACF,CAAC;AAEW,QAAA,aAAa,GAAkB;IAC1C,IAAI,EAAE,iBAAS,CAAC,UAAU;IAC1B,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,QAAQ,CAAC,EAAE;;QAChB,IAAI,IAAA,kBAAW,EAAC,GAAG,MAAC,QAAgB,aAAhB,QAAQ,uBAAR,QAAQ,CAAU,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;YACtD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,UAAU,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,CAAC,kBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAkB,EAAE,GAAQ,EAAE,SAAc,EAAE,EAAE;;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAE/B,MAAM,SAAS,GAAG,SAAS,KAAK,iBAAS,CAAC,IAAI,IAAI,SAAS,KAAK,iBAAS,CAAC,EAAE,CAAC;YAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC,SAAS,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,GAAG,CAAC,CAAC,CAAC;iBACX;gBACD,OAAO,aAAa,CAAC,IAAA,oBAAa,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;aACjE;YACD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,CAAC;gBAElC,IAAI,cAAc,KAAK,GAAG,EAAE;oBAC1B,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;iBACP;aACF;YAED,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,cAAc,GAAG,GAAG,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,EAAE,CAAC;gBACvC,IAAI,cAAc,KAAK,GAAG,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,EAAE;wBACX,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;yBAAM;wBACL,SAAS,EAAE,CAAC;wBACZ,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;qBAChC;iBACF;qBAAM,IAAI,OAAO,IAAI,IAAA,sBAAe,EAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAA,sBAAe,EAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAChG,UAAU,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,cAAc,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;iBAClE;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,cAAc,CAAC,CAAC,CAAC;iBAClD;aACF;YAED,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,UAAU,CAAC,OAAO,EAAE,CAAC;aACtB;YAED,IAAI,IAAA,kBAAW,EAAC,UAAU,CAAC,EAAE;gBAE3B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO,aAAa,CAAC,IAAA,oBAAa,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;aACjE;YAED,OAAO,IAAA,eAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;CACF,CAAC;AAEW,QAAA,YAAY,GAAkB;IACzC,IAAI,EAAE,iBAAS,CAAC,SAAS;IACzB,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,QAAQ,CAAC,EAAE;;QAChB,IAAI,IAAA,iBAAU,EAAC,GAAG,MAAC,QAAgB,aAAhB,QAAQ,uBAAR,QAAQ,CAAU,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;YACrD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,SAAS;IACtE,cAAc,EAAE;QACd,CAAC,kBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAkB,EAAE,GAAQ,EAAE,SAAc,EAAE,EAAE;;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAE/B,MAAM,SAAS,GAAG,SAAS,KAAK,iBAAS,CAAC,IAAI,IAAI,SAAS,KAAK,iBAAS,CAAC,EAAE,CAAC;YAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC,SAAS,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,GAAG,CAAC,CAAC,CAAC;iBACX;gBAED,OAAO,aAAa,CAAC,IAAA,kBAAW,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAClE;YACD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,cAAc,GAAG,GAAG,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,IAAI,cAAc,KAAK,IAAI,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,EAAE;wBACX,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;yBAAM;wBACL,SAAS,EAAE,CAAC;wBACZ,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;qBAChC;iBACF;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;iBAC3D;aACF;YAED,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,UAAU,CAAC,OAAO,EAAE,CAAC;aACtB;YAED,IAAI,IAAA,kBAAW,EAAC,UAAU,CAAC,EAAE;gBAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO,aAAa,CAAC,IAAA,kBAAW,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAClE;YACD,OAAO,IAAA,eAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;CACF,CAAC;AAEW,QAAA,YAAY,GAAkB;IACzC,IAAI,EAAE,iBAAS,CAAC,SAAS;IACzB,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAC,OAAA,IAAA,iBAAU,EAAC,GAAG,MAAC,QAAgB,aAAhB,QAAQ,uBAAR,QAAQ,CAAU,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA,EAAA;IACpE,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,SAAS;IACtE,cAAc,EAAE;QACd,CAAC,kBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAkB,EAAE,GAAQ,EAAE,SAAc,EAAE,EAAE;;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAE/B,MAAM,SAAS,GAAG,SAAS,KAAK,iBAAS,CAAC,IAAI,IAAI,SAAS,KAAK,iBAAS,CAAC,EAAE,CAAC;YAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC,SAAS,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,GAAG,CAAC,CAAC,CAAC;iBACX;gBAED,OAAO,aAAa,CAAC,IAAA,kBAAW,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAClE;YACD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,cAAc,GAAG,GAAG,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,EAAE,CAAC;gBACvC,IAAI,cAAc,EAAE;oBAClB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACpE,IAAI,cAAc,KAAK,KAAK,EAAE;wBAC5B,IAAI,CAAC,KAAK,CAAC,EAAE;4BACX,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACpB;6BAAM;4BACL,SAAS,EAAE,CAAC;4BACZ,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;yBAChC;qBACF;yBAAM;wBACL,UAAU,CAAC,IAAI,CAAC,IAAA,sBAAe,EAAC,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;qBAC3D;iBACF;aACF;YAED,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,UAAU,CAAC,OAAO,EAAE,CAAC;aACtB;YAED,IAAI,IAAA,kBAAW,EAAC,UAAU,CAAC,EAAE;gBAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO,aAAa,CAAC,IAAA,kBAAW,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAClE;YACD,OAAO,IAAA,eAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;CACF,CAAC;AAEW,QAAA,cAAc,GAAkB;IAC3C,IAAI,EAAE,iBAAS,CAAC,WAAW;IAC3B,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAC,OAAA,IAAA,mBAAY,EAAC,GAAG,MAAC,QAAgB,aAAhB,QAAQ,uBAAR,QAAQ,CAAU,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA,EAAA;IACtE,UAAU,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,WAAW,EAAE;YACvC,OAAO,CACL,IAAA,wBAAiB,EAAC,GAAG,MAAA,MAAC,IAAI,CAAC,QAAgB,0CAAE,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;gBAClE,IAAA,wBAAiB,EAAC,GAAG,MAAC,GAAW,aAAX,GAAG,uBAAH,GAAG,CAAU,CAAC,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACzD,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc,EAAE;QACd,CAAC,kBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAkB,EAAE,GAAQ,EAAE,SAAc,EAAE,EAAE;;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAC/B,MAAM,SAAS,GAAG,SAAS,KAAK,iBAAS,CAAC,IAAI,IAAI,SAAS,KAAK,iBAAS,CAAC,EAAE,CAAC;YAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAiB,EAAC,GAAG,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC,SAAS,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,GAAG,CAAC,CAAC,CAAC;iBACX;gBAED,OAAO,aAAa,CAAC,IAAA,qBAAc,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;aAC1E;YACD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,cAAc,GAAG,GAAG,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,CAAC,EAAE,CAAC;gBACvC,IAAI,cAAc,EAAE;oBAClB,IAAI,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;wBAChC,IAAI,CAAC,KAAK,CAAC,EAAE;4BACX,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACpB;6BAAM;4BACL,UAAU,EAAE,CAAC;4BACb,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;yBAC7C;qBACF;yBAAM;wBACL,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;qBAClE;iBACF;aACF;YAED,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,UAAU,CAAC,OAAO,EAAE,CAAC;aACtB;YAED,IAAI,IAAA,kBAAW,EAAC,UAAU,CAAC,EAAE;gBAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO,aAAa,CAAC,IAAA,qBAAc,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;aAC1E;YACD,OAAO,IAAA,eAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;CACF,CAAC;AAEF,SAAgB,aAAa,CAAI,IAAS,EAAE,OAAgB;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAFD,sCAEC","file":"rules.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 */\n\nimport type { IAutoFillRule } from './types';\n\nimport {\n chineseToNumber,\n fillChnNumber,\n fillChnWeek,\n fillCopy,\n fillExtendNumber,\n fillLoopSeries,\n fillSeries,\n getLoopSeriesInfo,\n isChnNumber,\n isChnWeek2,\n isChnWeek3,\n isEqualDiff,\n isLoopSeries,\n matchExtendNumber\n} from './utils/fill';\nimport { APPLY_TYPE, DATA_TYPE, Direction } from './types';\nimport { converterManager, DateConverter } from './series-converters';\nimport { CellValueType } from './types';\nexport const dateRule: IAutoFillRule = {\n type: DATA_TYPE.DATE,\n priority: 1100,\n match: (cellData: any, accessor: any) => {\n return typeof cellData?.v === 'string' && converterManager.getConverter(cellData.v) instanceof DateConverter;\n },\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.DATE) {\n return true;\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n const converter = converterManager.getConverter(data[0]?.v);\n if (direction === Direction.LEFT || direction === Direction.UP) {\n data.reverse();\n return fillSeries(data, len, direction, converter).reverse();\n }\n return fillSeries(data, len, direction, converter);\n }\n }\n};\n\nexport const numberRule: IAutoFillRule = {\n type: DATA_TYPE.NUMBER,\n priority: 1000,\n match: (cellData: any) => typeof cellData?.v === 'number' || cellData?.t === CellValueType.NUMBER,\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.NUMBER) {\n return true;\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n if (direction === Direction.LEFT || direction === Direction.UP) {\n data.reverse();\n return fillSeries(data, len, direction).reverse();\n }\n return fillSeries(data, len, direction);\n }\n }\n};\n\nexport const otherRule: IAutoFillRule = {\n type: DATA_TYPE.OTHER,\n priority: 0,\n match: () => true,\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.OTHER) {\n return true;\n }\n return false;\n }\n};\n\nexport const extendNumberRule: IAutoFillRule = {\n type: DATA_TYPE.EXTEND_NUMBER,\n priority: 900,\n match: cellData => matchExtendNumber(`${(cellData as any)?.v ?? ''}` || '').isExtendNumber,\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.EXTEND_NUMBER) {\n const { beforeTxt, afterTxt } = matchExtendNumber(`${(prev.cellData as any)?.v ?? ''}` || '');\n const { beforeTxt: curBeforeTxt, afterTxt: curAfterTxt } = matchExtendNumber(`${(cur as any)?.v ?? ''}` || '');\n if (beforeTxt === curBeforeTxt && afterTxt === curAfterTxt) {\n return true;\n }\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n const isReverse = direction === Direction.UP || direction === Direction.LEFT;\n\n let step;\n if (data.length === 1) {\n step = isReverse ? -1 : 1;\n return reverseIfNeed(fillExtendNumber(data, len, step), isReverse);\n }\n const dataNumArr = [];\n\n for (let i = 0; i < data.length; i++) {\n const txt = `${data[i]?.v}`;\n txt && dataNumArr.push(Number(matchExtendNumber(txt).matchTxt));\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillExtendNumber(data, len, step), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport const chnNumberRule: IAutoFillRule = {\n type: DATA_TYPE.CHN_NUMBER,\n priority: 830,\n match: cellData => {\n if (isChnNumber(`${(cellData as any)?.v ?? ''}` || '')) {\n return true;\n }\n return false;\n },\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.CHN_NUMBER) {\n return true;\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n return reverseIfNeed(fillChnNumber(data, len, step), isReverse);\n }\n let hasWeek = false;\n for (let i = 0; i < data.length; i++) {\n const formattedValue = data[i]?.v;\n\n if (formattedValue === '日') {\n hasWeek = true;\n break;\n }\n }\n\n const dataNumArr = [];\n let weekIndex = 0;\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n if (formattedValue === '日') {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n weekIndex++;\n dataNumArr.push(weekIndex * 7);\n }\n } else if (hasWeek && chineseToNumber(formattedValue) > 0 && chineseToNumber(formattedValue) < 7) {\n dataNumArr.push(chineseToNumber(formattedValue) + weekIndex * 7);\n } else {\n dataNumArr.push(chineseToNumber(formattedValue));\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n // Always fill with sequence of Chinese lowercase numbers\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillChnNumber(data, len, step), isReverse);\n }\n // Not an arithmetic progression, copy data\n return fillCopy(data, len);\n }\n }\n};\n\nexport const chnWeek2Rule: IAutoFillRule = {\n type: DATA_TYPE.CHN_WEEK2,\n priority: 820,\n match: cellData => {\n if (isChnWeek2(`${(cellData as any)?.v ?? ''}` || '')) {\n return true;\n }\n return false;\n },\n isContinue: (prev: any, cur: any) => prev.type === DATA_TYPE.CHN_WEEK2,\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n\n return reverseIfNeed(fillChnWeek(data, len, step, 1), isReverse);\n }\n const dataNumArr = [];\n let weekIndex = 0;\n\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n const lastTxt = formattedValue?.substr(formattedValue.length - 1, 1);\n if (formattedValue === '周日') {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n weekIndex++;\n dataNumArr.push(weekIndex * 7);\n }\n } else {\n dataNumArr.push(chineseToNumber(lastTxt) + weekIndex * 7);\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillChnWeek(data, len, step, 1), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport const chnWeek3Rule: IAutoFillRule = {\n type: DATA_TYPE.CHN_WEEK3,\n priority: 810,\n match: cellData => isChnWeek3(`${(cellData as any)?.v ?? ''}` || ''),\n isContinue: (prev: any, cur: any) => prev.type === DATA_TYPE.CHN_WEEK3,\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n\n return reverseIfNeed(fillChnWeek(data, len, step, 2), isReverse);\n }\n const dataNumArr = [];\n let weekIndex = 0;\n\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n if (formattedValue) {\n const lastTxt = formattedValue.substr(formattedValue.length - 1, 1);\n if (formattedValue === '星期日') {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n weekIndex++;\n dataNumArr.push(weekIndex * 7);\n }\n } else {\n dataNumArr.push(chineseToNumber(lastTxt) + weekIndex * 7);\n }\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillChnWeek(data, len, step, 2), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport const loopSeriesRule: IAutoFillRule = {\n type: DATA_TYPE.LOOP_SERIES,\n priority: 800,\n match: cellData => isLoopSeries(`${(cellData as any)?.v ?? ''}` || ''),\n isContinue: (prev: any, cur: any) => {\n if (prev.type === DATA_TYPE.LOOP_SERIES) {\n return (\n getLoopSeriesInfo(`${(prev.cellData as any)?.v ?? ''}` || '').name ===\n getLoopSeriesInfo(`${(cur as any)?.v ?? ''}` || '').name\n );\n }\n return false;\n },\n applyFunctions: {\n [APPLY_TYPE.SERIES]: (dataWithIndex: any, len: any, direction: any) => {\n const { data } = dataWithIndex;\n const isReverse = direction === Direction.LEFT || direction === Direction.UP;\n const { series } = getLoopSeriesInfo(`${data[0]?.v}` || '');\n if (data.length === 1) {\n let step;\n if (!isReverse) {\n step = 1;\n } else {\n step = -1;\n }\n\n return reverseIfNeed(fillLoopSeries(data, len, step, series), isReverse);\n }\n const dataNumArr = [];\n let cycleIndex = 0;\n for (let i = 0; i < data.length; i++) {\n const formattedValue = `${data[i]?.v}`;\n if (formattedValue) {\n if (formattedValue === series[0]) {\n if (i === 0) {\n dataNumArr.push(0);\n } else {\n cycleIndex++;\n dataNumArr.push(cycleIndex * series.length);\n }\n } else {\n dataNumArr.push(series.indexOf(formattedValue) + cycleIndex * 7);\n }\n }\n }\n\n if (isReverse) {\n data.reverse();\n dataNumArr.reverse();\n }\n\n if (isEqualDiff(dataNumArr)) {\n const step = dataNumArr[1] - dataNumArr[0];\n return reverseIfNeed(fillLoopSeries(data, len, step, series), isReverse);\n }\n return fillCopy(data, len);\n }\n }\n};\n\nexport function reverseIfNeed<T>(data: T[], reverse: boolean): T[] {\n return reverse ? data.reverse() : data;\n}\n"]}
|
|
@@ -175,7 +175,7 @@ function fillSeries(data, len, direction, converter) {
|
|
|
175
175
|
if (data.length > 2 && isEqualRatio(dataNumArr)) for (let i = 1; i <= len; i++) {
|
|
176
176
|
const index = (i - 1) % data.length, d = (0, cloneDeep_1.default)(data[index]);
|
|
177
177
|
removeCellCustom(d);
|
|
178
|
-
const
|
|
178
|
+
const lastValue = Number(null === (_b = data[data.length - 1]) || void 0 === _b ? void 0 : _b.v), firstValue = Number(null === (_c = data[0]) || void 0 === _c ? void 0 : _c.v), num = lastValue * (Number(null === (_d = data[1]) || void 0 === _d ? void 0 : _d.v) / firstValue) ** i;
|
|
179
179
|
d && (d.v = converter ? converter.fromNumber(num, d.f) : num, applyData.push(d));
|
|
180
180
|
} else {
|
|
181
181
|
const xArr = getXArr(data.length);
|
|
@@ -205,12 +205,12 @@ function forecast(x, yArr, xArr, forward = !0) {
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
function fillExtendNumber(data, len, step) {
|
|
208
|
-
var _a;
|
|
208
|
+
var _a, _b;
|
|
209
209
|
const applyData = [], reg = /0|([1-9]+[0-9]*)/g;
|
|
210
210
|
for (let i = 1; i <= len; i++) {
|
|
211
211
|
const index = (i - 1) % data.length, d = (0, cloneDeep_1.default)(data[index]);
|
|
212
212
|
removeCellCustom(d);
|
|
213
|
-
const last = `${null === (_a = data[data.length - 1]) || void 0 === _a ? void 0 : _a.v}`;
|
|
213
|
+
const last = `${null !== (_b = null === (_a = data[data.length - 1]) || void 0 === _a ? void 0 : _a.v) && void 0 !== _b ? _b : ""}`;
|
|
214
214
|
if (!last) continue;
|
|
215
215
|
const match = null == last ? void 0 : last.match(reg), lastTxt = null == match ? void 0 : match[match.length - 1];
|
|
216
216
|
if (!lastTxt) continue;
|
|
@@ -230,7 +230,7 @@ function fillOnlyFormat(data, len) {
|
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
function fillChnWeek(data, len, step, weekType = 0) {
|
|
233
|
-
var _a, _b;
|
|
233
|
+
var _a, _b, _c;
|
|
234
234
|
const keywordMap = [ [ "日", "一", "二", "三", "四", "五", "六" ], [ "周日", "周一", "周二", "周三", "周四", "周五", "周六" ], [ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ] ];
|
|
235
235
|
if (weekType >= keywordMap.length) return [];
|
|
236
236
|
const keyword = keywordMap[weekType], applyData = [];
|
|
@@ -239,7 +239,7 @@ function fillChnWeek(data, len, step, weekType = 0) {
|
|
|
239
239
|
removeCellCustom(d);
|
|
240
240
|
let num = 0;
|
|
241
241
|
if ((null === (_a = data[data.length - 1]) || void 0 === _a ? void 0 : _a.v) === keyword[0]) num = 7 + step * i; else {
|
|
242
|
-
const last = `${null === (_b = data[data.length - 1]) || void 0 === _b ? void 0 : _b.v}`;
|
|
242
|
+
const last = `${null !== (_c = null === (_b = data[data.length - 1]) || void 0 === _b ? void 0 : _b.v) && void 0 !== _c ? _c : ""}`;
|
|
243
243
|
if (last) {
|
|
244
244
|
num = chineseToNumber(last.substr(last.length - 1, 1)) + step * i;
|
|
245
245
|
}
|
|
@@ -252,12 +252,12 @@ function fillChnWeek(data, len, step, weekType = 0) {
|
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
function fillChnNumber(data, len, step) {
|
|
255
|
-
var _a;
|
|
255
|
+
var _a, _b;
|
|
256
256
|
const applyData = [];
|
|
257
257
|
for (let i = 1; i <= len; i++) {
|
|
258
258
|
const index = (i - 1) % data.length, d = (0, cloneDeep_1.default)(data[index]);
|
|
259
259
|
removeCellCustom(d);
|
|
260
|
-
const num = chineseToNumber(`${null === (_a = data[data.length - 1]) || void 0 === _a ? void 0 : _a.v}`) + step * i;
|
|
260
|
+
const num = chineseToNumber(`${null !== (_b = null === (_a = data[data.length - 1]) || void 0 === _a ? void 0 : _a.v) && void 0 !== _b ? _b : ""}`) + step * i;
|
|
261
261
|
let txt;
|
|
262
262
|
txt = num <= 0 ? "零" : numberToChinese(num), d && (d.v = txt, applyData.push(d));
|
|
263
263
|
}
|
|
@@ -338,12 +338,12 @@ function getLoopSeriesInfo(txt) {
|
|
|
338
338
|
}
|
|
339
339
|
|
|
340
340
|
function fillLoopSeries(data, len, step, series) {
|
|
341
|
-
var _a;
|
|
341
|
+
var _a, _b;
|
|
342
342
|
const seriesLen = series.length, applyData = [];
|
|
343
343
|
for (let i = 1; i <= len; i++) {
|
|
344
344
|
const index = (i - 1) % data.length, d = (0, cloneDeep_1.default)(data[index]);
|
|
345
345
|
removeCellCustom(d);
|
|
346
|
-
const last = `${null === (_a = data[data.length - 1]) || void 0 === _a ? void 0 : _a.v}`;
|
|
346
|
+
const last = `${null !== (_b = null === (_a = data[data.length - 1]) || void 0 === _a ? void 0 : _a.v) && void 0 !== _b ? _b : ""}`;
|
|
347
347
|
let num = series.indexOf(last) + step * i;
|
|
348
348
|
num < 0 && (num += Math.abs(step) * seriesLen);
|
|
349
349
|
const rsd = num % seriesLen;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/auto-fill/utils/fill.ts"],"names":[],"mappings":"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","file":"fill.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 */\n\nimport type { ICellData, Nullable } from '../types';\nimport { Direction, CellValueType } from '../types';\nimport deepClone from 'lodash/cloneDeep';\nimport { IConverter } from '../series-converters';\n\nexport const chnNumChar = { 零: 0, 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9 };\nexport const chnNumChar2 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];\nexport const chnUnitSection = ['', '万', '亿', '万亿', '亿亿'];\nexport const chnUnitChar = ['', '十', '百', '千'];\n\nexport interface ICopyDataInType {\n data: Array<Nullable<ICellData>>;\n index: ICopyDataInTypeIndexInfo;\n}\n\nexport type ICopyDataInTypeIndexInfo = number[];\n\nexport const chnNameValue = {\n 十: { value: 10, secUnit: false },\n 百: { value: 100, secUnit: false },\n 千: { value: 1000, secUnit: false },\n 万: { value: 10000, secUnit: true },\n 亿: { value: 100000000, secUnit: true }\n};\n\nexport function chineseToNumber(chnStr?: Nullable<string>) {\n if (!chnStr) {\n return 0;\n }\n let rtn = 0;\n let section = 0;\n let number = 0;\n let secUnit = false;\n const str = chnStr.split('');\n\n for (let i = 0; i < str.length; i++) {\n const num = chnNumChar[str[i] as keyof typeof chnNumChar];\n\n if (typeof num !== 'undefined') {\n number = num;\n\n if (i === str.length - 1) {\n section += number;\n }\n } else {\n const obj = chnNameValue[str[i] as keyof typeof chnNameValue];\n const unit = obj.value;\n secUnit = obj.secUnit;\n\n if (secUnit) {\n section = (section + number) * unit;\n rtn += section;\n section = 0;\n } else {\n section += number * unit;\n }\n\n number = 0;\n }\n }\n\n return rtn + section;\n}\n\nexport function sectionToChinese(section: number) {\n let strIns = '';\n let chnStr = '';\n let unitPos = 0;\n let zero = true;\n\n while (section > 0) {\n const v = section % 10;\n\n if (v === 0) {\n if (!zero) {\n zero = true;\n chnStr = chnNumChar2[v] + chnStr;\n }\n } else {\n zero = false;\n strIns = chnNumChar2[v];\n strIns += chnUnitChar[unitPos];\n chnStr = strIns + chnStr;\n }\n\n unitPos++;\n section = Math.floor(section / 10);\n }\n\n return chnStr;\n}\n\nexport function numberToChinese(num: number) {\n let unitPos = 0;\n let strIns = '';\n let chnStr = '';\n let needZero = false;\n\n if (num === 0) {\n return chnNumChar2[0];\n }\n while (num > 0) {\n const section = num % 10000;\n\n if (needZero) {\n chnStr = chnNumChar2[0] + chnStr;\n }\n\n strIns = sectionToChinese(section);\n strIns += section !== 0 ? chnUnitSection[unitPos] : chnUnitSection[0];\n chnStr = strIns + chnStr;\n needZero = section < 1000 && section > 0;\n num = Math.floor(num / 10000);\n unitPos++;\n }\n\n return chnStr;\n}\n\nexport function isChnNumber(txt?: string) {\n if (!txt) {\n return false;\n }\n let isChnNumber = true;\n\n if (txt) {\n if (txt.length === 1) {\n if (txt === '日' || txt in chnNumChar) {\n isChnNumber = true;\n } else {\n isChnNumber = false;\n }\n } else {\n const str = txt.split('');\n for (let i = 0; i < str.length; i++) {\n if (!(str[i] in chnNumChar || str[i] in chnNameValue)) {\n isChnNumber = false;\n break;\n }\n }\n }\n }\n return isChnNumber;\n}\n\nexport function matchExtendNumber(txt?: string) {\n if (!txt) {\n return {\n isExtendNumber: false\n };\n }\n const reg = /0|([1-9]+[0-9]*)/g;\n const isExtendNumber = reg.test(txt);\n\n if (isExtendNumber) {\n const match = txt.match(reg);\n if (match && match.length > 0) {\n const matchTxt = match[match.length - 1];\n const matchIndex = txt.lastIndexOf(matchTxt);\n const beforeTxt = txt.substr(0, matchIndex);\n const afterTxt = txt.substr(matchIndex + matchTxt.length);\n\n return {\n isExtendNumber: true,\n matchTxt: Number(matchTxt),\n beforeTxt,\n afterTxt\n };\n }\n return {\n isExtendNumber: false\n };\n }\n\n return {\n isExtendNumber\n };\n}\n\nexport function isChnWeek1(txt: string) {\n let isChnWeek1;\n if (txt.length === 1) {\n if (txt === '日' || chineseToNumber(txt) < 7) {\n isChnWeek1 = true;\n } else {\n isChnWeek1 = false;\n }\n } else {\n isChnWeek1 = false;\n }\n\n return isChnWeek1;\n}\n\nexport function isChnWeek2(txt: string) {\n let isChnWeek2;\n if (txt.length === 2) {\n if (\n txt === '周一' ||\n txt === '周二' ||\n txt === '周三' ||\n txt === '周四' ||\n txt === '周五' ||\n txt === '周六' ||\n txt === '周日'\n ) {\n isChnWeek2 = true;\n } else {\n isChnWeek2 = false;\n }\n } else {\n isChnWeek2 = false;\n }\n\n return isChnWeek2;\n}\n\nexport function isChnWeek3(txt: string) {\n let isChnWeek3;\n if (txt.length === 3) {\n if (\n txt === '星期一' ||\n txt === '星期二' ||\n txt === '星期三' ||\n txt === '星期四' ||\n txt === '星期五' ||\n txt === '星期六' ||\n txt === '星期日'\n ) {\n isChnWeek3 = true;\n } else {\n isChnWeek3 = false;\n }\n } else {\n isChnWeek3 = false;\n }\n\n return isChnWeek3;\n}\n\nexport function getLenS(indexArr: any[], rsd: number) {\n let s = 0;\n\n for (let j = 0; j < indexArr.length; j++) {\n if (indexArr[j] < rsd) {\n s++;\n } else {\n break;\n }\n }\n\n return s;\n}\n\n/**\n * equal diff\n * @param arr\n * @returns\n */\nexport function isEqualDiff(arr: number[]) {\n let diff = true;\n const step = arr[1] - arr[0];\n\n for (let i = 1; i < arr.length; i++) {\n if (arr[i] - arr[i - 1] !== step) {\n diff = false;\n break;\n }\n }\n\n return diff;\n}\n\nexport function getDataIndex(csLen: number, asLen: number, indexArr: number[]) {\n const obj: ICopyDataInTypeIndexInfo = [];\n\n const num = Math.floor(asLen / csLen);\n const rsd = asLen % csLen;\n\n let sum = 0;\n if (num > 0) {\n for (let i = 0; i < num; i++) {\n for (let j = 0; j < indexArr.length; j++) {\n obj[indexArr[j] + i * csLen] = sum;\n sum++;\n }\n }\n for (let a = 0; a < indexArr.length; a++) {\n if (indexArr[a] < rsd) {\n obj[indexArr[a] + csLen * num] = sum;\n sum++;\n } else {\n break;\n }\n }\n } else {\n for (let a = 0; a < indexArr.length; a++) {\n if (indexArr[a] < rsd) {\n obj[indexArr[a]] = sum;\n sum++;\n } else {\n break;\n }\n }\n }\n\n return obj;\n}\n\nexport function fillCopy(data: Array<Nullable<ICellData>>, len: number): Array<Nullable<ICellData>> {\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n applyData.push({\n v: null,\n t: null,\n ...d\n });\n }\n\n return applyData;\n}\n\nexport function isEqualRatio(arr: number[]) {\n let ratio = true;\n const step = arr[1] / arr[0];\n\n for (let i = 1; i < arr.length; i++) {\n if (arr[i] / arr[i - 1] !== step) {\n ratio = false;\n break;\n }\n }\n\n return ratio;\n}\n\nexport function getXArr(len: number) {\n const xArr = [];\n\n for (let i = 1; i <= len; i++) {\n xArr.push(i);\n }\n\n return xArr;\n}\n\nexport function fillSeries(\n data: Array<Nullable<ICellData>>,\n len: number,\n direction: Direction,\n converter?: IConverter\n) {\n // 将数据转换为数字\n if (converter) {\n data.forEach((item: any) => {\n const { v, meta } = converter.toNumber(item.v);\n item.v = v;\n item.f = meta;\n });\n }\n const applyData = [];\n // 用于检查数列\n const dataNumArr = [];\n for (let j = 0; j < data.length; j++) {\n dataNumArr.push(Number(data[j]?.v));\n }\n\n if (data.length > 2 && isEqualRatio(dataNumArr)) {\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n removeCellCustom(d);\n const num = Number(data[data.length - 1]?.v) * (Number(data[1]?.v) / Number(data[0]?.v)) ** i;\n if (d) {\n d.v = converter ? converter.fromNumber(num, d.f) : num;\n applyData.push(d);\n }\n }\n } else {\n const xArr = getXArr(data.length);\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const forward = direction === Direction.DOWN || direction === Direction.RIGHT;\n const y = forecast(data.length + i, dataNumArr, xArr, forward);\n\n if (d) {\n d.v = converter ? converter.fromNumber(y, d.f) : y;\n applyData.push(d);\n }\n }\n }\n\n return applyData;\n}\n\nexport function forecast(x: number, yArr: number[], xArr: number[], forward = true) {\n function getAverage(arr: number[]) {\n let sum = 0;\n\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n\n return sum / arr.length;\n }\n\n const ax = getAverage(xArr);\n const ay = getAverage(yArr);\n\n let sum_d = 0;\n let sum_n = 0;\n for (let j = 0; j < xArr.length; j++) {\n sum_d += (xArr[j] - ax) * (yArr[j] - ay);\n sum_n += (xArr[j] - ax) * (xArr[j] - ax);\n }\n\n let b;\n if (sum_n === 0) {\n b = forward ? 1 : -1;\n } else {\n b = sum_d / sum_n;\n }\n\n const a = ay - b * ax;\n\n return Math.round((a + b * x) * 100000) / 100000;\n}\n\nexport function fillExtendNumber(data: Array<Nullable<ICellData>>, len: number, step: number) {\n const applyData = [];\n const reg = /0|([1-9]+[0-9]*)/g;\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const last = `${data[data.length - 1]?.v}`;\n if (!last) {\n continue;\n }\n\n const match = last?.match(reg);\n const lastTxt = match?.[match.length - 1];\n if (!lastTxt) {\n continue;\n }\n\n const num = Math.abs(Number(lastTxt) + step * i);\n const lastIndex = last.lastIndexOf(lastTxt);\n const valueTxt = last.substr(0, lastIndex) + num.toString() + last.substr(lastIndex + lastTxt.length);\n\n if (d) {\n d.v = valueTxt;\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\nexport function fillOnlyFormat(data: Array<Nullable<ICellData>>, len: number) {\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n if (d) {\n delete d.v;\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\n// weektype: 0-日 1-周 2-星期\nexport function fillChnWeek(data: Array<Nullable<ICellData>>, len: number, step: number, weekType: number = 0) {\n const keywordMap = [\n ['日', '一', '二', '三', '四', '五', '六'],\n ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']\n ];\n if (weekType >= keywordMap.length) {\n return [];\n }\n const keyword = keywordMap[weekType];\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n let num = 0;\n if (data[data.length - 1]?.v === keyword[0]) {\n num = 7 + step * i;\n } else {\n const last = `${data[data.length - 1]?.v}`;\n if (last) {\n const txt = last.substr(last.length - 1, 1);\n num = chineseToNumber(txt) + step * i;\n }\n }\n\n if (num < 0) {\n num = Math.ceil(Math.abs(num) / 7) * 7 + num;\n }\n\n const rsd = num % 7;\n if (d) {\n d.v = keyword[rsd];\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\nexport function fillChnNumber(data: Array<Nullable<ICellData>>, len: number, step: number) {\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const formattedValue = `${data[data.length - 1]?.v}`;\n const num = chineseToNumber(formattedValue) + step * i;\n let txt;\n if (num <= 0) {\n txt = '零';\n } else {\n txt = numberToChinese(num);\n }\n\n if (d) {\n d.v = txt;\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\nconst LOOP_SERIES: { [key: string]: string[] } = {\n enWeek1: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n enWeek2: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n enMonth1: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n enMonth2: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ],\n chnMonth1: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n chnMonth2: ['正月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '腊月'],\n chHour1: ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'],\n chHour2: ['子时', '丑时', '寅时', '卯时', '辰时', '巳时', '午时', '未时', '申时', '酉时', '戌时', '亥时'],\n chYear1: ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'],\n chSeason1: ['春', '夏', '秋', '冬'],\n chSeason2: ['春季', '夏季', '秋季', '冬季']\n};\n\nexport function isLoopSeries(txt: string) {\n let isLoopSeries = false;\n Object.keys(LOOP_SERIES).forEach(key => {\n if (LOOP_SERIES[key].includes(txt)) {\n isLoopSeries = true;\n }\n });\n return isLoopSeries;\n}\n\nexport function getLoopSeriesInfo(txt: string) {\n let name = '';\n const series: string[] = [];\n Object.keys(LOOP_SERIES).forEach(key => {\n if (LOOP_SERIES[key].includes(txt)) {\n name = key;\n series.push(...LOOP_SERIES[key]);\n }\n });\n return { name, series };\n}\n\nexport function fillLoopSeries(data: Array<Nullable<ICellData>>, len: number, step: number, series: string[]) {\n const seriesLen = series.length;\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const last = `${data[data.length - 1]?.v}`;\n let num = series.indexOf(last) + step * i;\n\n if (num < 0) {\n num += Math.abs(step) * seriesLen;\n }\n const rsd = num % seriesLen;\n if (d) {\n d.v = series[rsd];\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\n/**\n * Remove cell.custom\n * @param cell\n */\nexport function removeCellCustom(cell: Nullable<ICellData>) {\n if (cell && 'custom' in cell) {\n delete cell.custom;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/auto-fill/utils/fill.ts"],"names":[],"mappings":"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","file":"fill.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 */\n\nimport type { ICellData, Nullable } from '../types';\nimport { Direction, CellValueType } from '../types';\nimport deepClone from 'lodash/cloneDeep';\nimport type { IConverter } from '../series-converters';\n\nexport const chnNumChar = { 零: 0, 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9 };\nexport const chnNumChar2 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];\nexport const chnUnitSection = ['', '万', '亿', '万亿', '亿亿'];\nexport const chnUnitChar = ['', '十', '百', '千'];\n\nexport interface ICopyDataInType {\n data: Array<Nullable<ICellData>>;\n index: ICopyDataInTypeIndexInfo;\n}\n\nexport type ICopyDataInTypeIndexInfo = number[];\n\nexport const chnNameValue = {\n 十: { value: 10, secUnit: false },\n 百: { value: 100, secUnit: false },\n 千: { value: 1000, secUnit: false },\n 万: { value: 10000, secUnit: true },\n 亿: { value: 100000000, secUnit: true }\n};\n\nexport function chineseToNumber(chnStr?: Nullable<string>) {\n if (!chnStr) {\n return 0;\n }\n let rtn = 0;\n let section = 0;\n let number = 0;\n let secUnit = false;\n const str = chnStr.split('');\n\n for (let i = 0; i < str.length; i++) {\n const num = chnNumChar[str[i] as keyof typeof chnNumChar];\n\n if (typeof num !== 'undefined') {\n number = num;\n\n if (i === str.length - 1) {\n section += number;\n }\n } else {\n const obj = chnNameValue[str[i] as keyof typeof chnNameValue];\n const unit = obj.value;\n secUnit = obj.secUnit;\n\n if (secUnit) {\n section = (section + number) * unit;\n rtn += section;\n section = 0;\n } else {\n section += number * unit;\n }\n\n number = 0;\n }\n }\n\n return rtn + section;\n}\n\nexport function sectionToChinese(section: number) {\n let strIns = '';\n let chnStr = '';\n let unitPos = 0;\n let zero = true;\n\n while (section > 0) {\n const v = section % 10;\n\n if (v === 0) {\n if (!zero) {\n zero = true;\n chnStr = chnNumChar2[v] + chnStr;\n }\n } else {\n zero = false;\n strIns = chnNumChar2[v];\n strIns += chnUnitChar[unitPos];\n chnStr = strIns + chnStr;\n }\n\n unitPos++;\n section = Math.floor(section / 10);\n }\n\n return chnStr;\n}\n\nexport function numberToChinese(num: number) {\n let unitPos = 0;\n let strIns = '';\n let chnStr = '';\n let needZero = false;\n\n if (num === 0) {\n return chnNumChar2[0];\n }\n while (num > 0) {\n const section = num % 10000;\n\n if (needZero) {\n chnStr = chnNumChar2[0] + chnStr;\n }\n\n strIns = sectionToChinese(section);\n strIns += section !== 0 ? chnUnitSection[unitPos] : chnUnitSection[0];\n chnStr = strIns + chnStr;\n needZero = section < 1000 && section > 0;\n num = Math.floor(num / 10000);\n unitPos++;\n }\n\n return chnStr;\n}\n\nexport function isChnNumber(txt?: string) {\n if (!txt) {\n return false;\n }\n let isChnNumber = true;\n\n if (txt) {\n if (txt.length === 1) {\n if (txt === '日' || txt in chnNumChar) {\n isChnNumber = true;\n } else {\n isChnNumber = false;\n }\n } else {\n const str = txt.split('');\n for (let i = 0; i < str.length; i++) {\n if (!(str[i] in chnNumChar || str[i] in chnNameValue)) {\n isChnNumber = false;\n break;\n }\n }\n }\n }\n return isChnNumber;\n}\n\nexport function matchExtendNumber(txt?: string) {\n if (!txt) {\n return {\n isExtendNumber: false\n };\n }\n const reg = /0|([1-9]+[0-9]*)/g;\n const isExtendNumber = reg.test(txt);\n\n if (isExtendNumber) {\n const match = txt.match(reg);\n if (match && match.length > 0) {\n const matchTxt = match[match.length - 1];\n const matchIndex = txt.lastIndexOf(matchTxt);\n const beforeTxt = txt.substr(0, matchIndex);\n const afterTxt = txt.substr(matchIndex + matchTxt.length);\n\n return {\n isExtendNumber: true,\n matchTxt: Number(matchTxt),\n beforeTxt,\n afterTxt\n };\n }\n return {\n isExtendNumber: false\n };\n }\n\n return {\n isExtendNumber\n };\n}\n\nexport function isChnWeek1(txt: string) {\n let isChnWeek1;\n if (txt.length === 1) {\n if (txt === '日' || chineseToNumber(txt) < 7) {\n isChnWeek1 = true;\n } else {\n isChnWeek1 = false;\n }\n } else {\n isChnWeek1 = false;\n }\n\n return isChnWeek1;\n}\n\nexport function isChnWeek2(txt: string) {\n let isChnWeek2;\n if (txt.length === 2) {\n if (\n txt === '周一' ||\n txt === '周二' ||\n txt === '周三' ||\n txt === '周四' ||\n txt === '周五' ||\n txt === '周六' ||\n txt === '周日'\n ) {\n isChnWeek2 = true;\n } else {\n isChnWeek2 = false;\n }\n } else {\n isChnWeek2 = false;\n }\n\n return isChnWeek2;\n}\n\nexport function isChnWeek3(txt: string) {\n let isChnWeek3;\n if (txt.length === 3) {\n if (\n txt === '星期一' ||\n txt === '星期二' ||\n txt === '星期三' ||\n txt === '星期四' ||\n txt === '星期五' ||\n txt === '星期六' ||\n txt === '星期日'\n ) {\n isChnWeek3 = true;\n } else {\n isChnWeek3 = false;\n }\n } else {\n isChnWeek3 = false;\n }\n\n return isChnWeek3;\n}\n\nexport function getLenS(indexArr: any[], rsd: number) {\n let s = 0;\n\n for (let j = 0; j < indexArr.length; j++) {\n if (indexArr[j] < rsd) {\n s++;\n } else {\n break;\n }\n }\n\n return s;\n}\n\n/**\n * equal diff\n * @param arr\n * @returns\n */\nexport function isEqualDiff(arr: number[]) {\n let diff = true;\n const step = arr[1] - arr[0];\n\n for (let i = 1; i < arr.length; i++) {\n if (arr[i] - arr[i - 1] !== step) {\n diff = false;\n break;\n }\n }\n\n return diff;\n}\n\nexport function getDataIndex(csLen: number, asLen: number, indexArr: number[]) {\n const obj: ICopyDataInTypeIndexInfo = [];\n\n const num = Math.floor(asLen / csLen);\n const rsd = asLen % csLen;\n\n let sum = 0;\n if (num > 0) {\n for (let i = 0; i < num; i++) {\n for (let j = 0; j < indexArr.length; j++) {\n obj[indexArr[j] + i * csLen] = sum;\n sum++;\n }\n }\n for (let a = 0; a < indexArr.length; a++) {\n if (indexArr[a] < rsd) {\n obj[indexArr[a] + csLen * num] = sum;\n sum++;\n } else {\n break;\n }\n }\n } else {\n for (let a = 0; a < indexArr.length; a++) {\n if (indexArr[a] < rsd) {\n obj[indexArr[a]] = sum;\n sum++;\n } else {\n break;\n }\n }\n }\n\n return obj;\n}\n\nexport function fillCopy(data: Array<Nullable<ICellData>>, len: number): Array<Nullable<ICellData>> {\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n applyData.push({\n v: null,\n t: null,\n ...d\n });\n }\n\n return applyData;\n}\n\nexport function isEqualRatio(arr: number[]) {\n let ratio = true;\n const step = arr[1] / arr[0];\n\n for (let i = 1; i < arr.length; i++) {\n if (arr[i] / arr[i - 1] !== step) {\n ratio = false;\n break;\n }\n }\n\n return ratio;\n}\n\nexport function getXArr(len: number) {\n const xArr = [];\n\n for (let i = 1; i <= len; i++) {\n xArr.push(i);\n }\n\n return xArr;\n}\n\nexport function fillSeries(\n data: Array<Nullable<ICellData>>,\n len: number,\n direction: Direction,\n converter?: IConverter\n) {\n // 将数据转换为数字\n if (converter) {\n data.forEach((item: any) => {\n const { v, meta } = converter.toNumber(item.v);\n item.v = v;\n item.f = meta;\n });\n }\n const applyData = [];\n // 用于检查数列\n const dataNumArr = [];\n for (let j = 0; j < data.length; j++) {\n dataNumArr.push(Number((data[j] as any)?.v));\n }\n\n if (data.length > 2 && isEqualRatio(dataNumArr)) {\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n removeCellCustom(d);\n const lastValue = Number((data[data.length - 1] as any)?.v);\n const firstValue = Number((data[0] as any)?.v);\n const secondValue = Number((data[1] as any)?.v);\n const num = lastValue * (secondValue / firstValue) ** i;\n if (d) {\n d.v = converter ? converter.fromNumber(num, (d as any).f) : num;\n applyData.push(d);\n }\n }\n } else {\n const xArr = getXArr(data.length);\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const forward = direction === Direction.DOWN || direction === Direction.RIGHT;\n const y = forecast(data.length + i, dataNumArr, xArr, forward);\n\n if (d) {\n d.v = converter ? converter.fromNumber(y, (d as any).f) : y;\n applyData.push(d);\n }\n }\n }\n\n return applyData;\n}\n\nexport function forecast(x: number, yArr: number[], xArr: number[], forward = true) {\n function getAverage(arr: number[]) {\n let sum = 0;\n\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n\n return sum / arr.length;\n }\n\n const ax = getAverage(xArr);\n const ay = getAverage(yArr);\n\n let sum_d = 0;\n let sum_n = 0;\n for (let j = 0; j < xArr.length; j++) {\n sum_d += (xArr[j] - ax) * (yArr[j] - ay);\n sum_n += (xArr[j] - ax) * (xArr[j] - ax);\n }\n\n let b;\n if (sum_n === 0) {\n b = forward ? 1 : -1;\n } else {\n b = sum_d / sum_n;\n }\n\n const a = ay - b * ax;\n\n return Math.round((a + b * x) * 100000) / 100000;\n}\n\nexport function fillExtendNumber(data: Array<Nullable<ICellData>>, len: number, step: number) {\n const applyData = [];\n const reg = /0|([1-9]+[0-9]*)/g;\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const last = `${(data[data.length - 1] as any)?.v ?? ''}`;\n if (!last) {\n continue;\n }\n\n const match = last?.match(reg);\n const lastTxt = match?.[match.length - 1];\n if (!lastTxt) {\n continue;\n }\n\n const num = Math.abs(Number(lastTxt) + step * i);\n const lastIndex = last.lastIndexOf(lastTxt);\n const valueTxt = last.substr(0, lastIndex) + num.toString() + last.substr(lastIndex + lastTxt.length);\n\n if (d) {\n d.v = valueTxt;\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\nexport function fillOnlyFormat(data: Array<Nullable<ICellData>>, len: number) {\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n if (d) {\n delete d.v;\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\n// weektype: 0-日 1-周 2-星期\nexport function fillChnWeek(data: Array<Nullable<ICellData>>, len: number, step: number, weekType: number = 0) {\n const keywordMap = [\n ['日', '一', '二', '三', '四', '五', '六'],\n ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']\n ];\n if (weekType >= keywordMap.length) {\n return [];\n }\n const keyword = keywordMap[weekType];\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n let num = 0;\n if ((data[data.length - 1] as any)?.v === keyword[0]) {\n num = 7 + step * i;\n } else {\n const last = `${(data[data.length - 1] as any)?.v ?? ''}`;\n if (last) {\n const txt = last.substr(last.length - 1, 1);\n num = chineseToNumber(txt) + step * i;\n }\n }\n\n if (num < 0) {\n num = Math.ceil(Math.abs(num) / 7) * 7 + num;\n }\n\n const rsd = num % 7;\n if (d) {\n d.v = keyword[rsd];\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\nexport function fillChnNumber(data: Array<Nullable<ICellData>>, len: number, step: number) {\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const formattedValue = `${(data[data.length - 1] as any)?.v ?? ''}`;\n const num = chineseToNumber(formattedValue) + step * i;\n let txt;\n if (num <= 0) {\n txt = '零';\n } else {\n txt = numberToChinese(num);\n }\n\n if (d) {\n d.v = txt;\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\nconst LOOP_SERIES: { [key: string]: string[] } = {\n enWeek1: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n enWeek2: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n enMonth1: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n enMonth2: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ],\n chnMonth1: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n chnMonth2: ['正月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '腊月'],\n chHour1: ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'],\n chHour2: ['子时', '丑时', '寅时', '卯时', '辰时', '巳时', '午时', '未时', '申时', '酉时', '戌时', '亥时'],\n chYear1: ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'],\n chSeason1: ['春', '夏', '秋', '冬'],\n chSeason2: ['春季', '夏季', '秋季', '冬季']\n};\n\nexport function isLoopSeries(txt: string) {\n let isLoopSeries = false;\n Object.keys(LOOP_SERIES).forEach(key => {\n if (LOOP_SERIES[key].includes(txt)) {\n isLoopSeries = true;\n }\n });\n return isLoopSeries;\n}\n\nexport function getLoopSeriesInfo(txt: string) {\n let name = '';\n const series: string[] = [];\n Object.keys(LOOP_SERIES).forEach(key => {\n if (LOOP_SERIES[key].includes(txt)) {\n name = key;\n series.push(...LOOP_SERIES[key]);\n }\n });\n return { name, series };\n}\n\nexport function fillLoopSeries(data: Array<Nullable<ICellData>>, len: number, step: number, series: string[]) {\n const seriesLen = series.length;\n const applyData = [];\n\n for (let i = 1; i <= len; i++) {\n const index = (i - 1) % data.length;\n const d = deepClone(data[index]);\n\n removeCellCustom(d);\n\n const last = `${(data[data.length - 1] as any)?.v ?? ''}`;\n let num = series.indexOf(last) + step * i;\n\n if (num < 0) {\n num += Math.abs(step) * seriesLen;\n }\n const rsd = num % seriesLen;\n if (d) {\n d.v = series[rsd];\n\n applyData.push(d);\n }\n }\n\n return applyData;\n}\n\n/**\n * Remove cell.custom\n * @param cell\n */\nexport function removeCellCustom(cell: Nullable<ICellData>) {\n if (cell && 'custom' in cell) {\n delete cell.custom;\n }\n}\n"]}
|
package/cjs/column-series.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { ListTable } from '@visactor/vtable';
|
|
2
|
+
import type { pluginsDefinition } from '@visactor/vtable';
|
|
2
3
|
export interface ColumnSeriesOptions {
|
|
3
4
|
id?: string;
|
|
4
5
|
columnCount: number;
|
|
@@ -6,12 +7,12 @@ export interface ColumnSeriesOptions {
|
|
|
6
7
|
generateColumnField?: (index: number) => string;
|
|
7
8
|
autoExtendColumnTriggerKeys?: ('ArrowRight' | 'Tab')[];
|
|
8
9
|
}
|
|
9
|
-
export declare class ColumnSeriesPlugin implements
|
|
10
|
+
export declare class ColumnSeriesPlugin implements pluginsDefinition.IVTablePlugin {
|
|
10
11
|
id: string;
|
|
11
12
|
name: string;
|
|
12
13
|
runTime: ("before_keydown" | "before_init")[];
|
|
13
14
|
pluginOptions: ColumnSeriesOptions;
|
|
14
|
-
table:
|
|
15
|
+
table: ListTable;
|
|
15
16
|
columns: {
|
|
16
17
|
field?: string;
|
|
17
18
|
title: string;
|
package/cjs/column-series.js
CHANGED
|
@@ -1,40 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
-
void 0 === k2 && (k2 = k);
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
-
enumerable: !0,
|
|
8
|
-
get: function() {
|
|
9
|
-
return m[k];
|
|
10
|
-
}
|
|
11
|
-
}), Object.defineProperty(o, k2, desc);
|
|
12
|
-
} : function(o, m, k, k2) {
|
|
13
|
-
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
-
}), __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", {
|
|
16
|
-
enumerable: !0,
|
|
17
|
-
value: v
|
|
18
|
-
});
|
|
19
|
-
} : function(o, v) {
|
|
20
|
-
o.default = v;
|
|
21
|
-
}), __importStar = this && this.__importStar || function(mod) {
|
|
22
|
-
if (mod && mod.__esModule) return mod;
|
|
23
|
-
var result = {};
|
|
24
|
-
if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
|
|
25
|
-
return __setModuleDefault(result, mod), result;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
3
|
Object.defineProperty(exports, "__esModule", {
|
|
29
4
|
value: !0
|
|
30
5
|
}), exports.ColumnSeriesPlugin = void 0;
|
|
31
6
|
|
|
32
|
-
const
|
|
7
|
+
const vtable_1 = require("@visactor/vtable");
|
|
33
8
|
|
|
34
9
|
class ColumnSeriesPlugin {
|
|
35
10
|
constructor(pluginOptions) {
|
|
36
11
|
var _a;
|
|
37
|
-
this.id = "column-series", this.name = "Column Series", this.runTime = [
|
|
12
|
+
this.id = "column-series", this.name = "Column Series", this.runTime = [ vtable_1.TABLE_EVENT_TYPE.BEFORE_INIT, vtable_1.TABLE_EVENT_TYPE.BEFORE_KEYDOWN ],
|
|
38
13
|
this.columns = [], this.id = null !== (_a = pluginOptions.id) && void 0 !== _a ? _a : this.id,
|
|
39
14
|
this.pluginOptions = Object.assign({
|
|
40
15
|
columnCount: 100
|
|
@@ -42,12 +17,12 @@ class ColumnSeriesPlugin {
|
|
|
42
17
|
}
|
|
43
18
|
run(...args) {
|
|
44
19
|
var _a;
|
|
45
|
-
if (args[1] ===
|
|
20
|
+
if (args[1] === vtable_1.TABLE_EVENT_TYPE.BEFORE_INIT) {
|
|
46
21
|
const eventArgs = args[0], table = args[2];
|
|
47
22
|
this.table = table;
|
|
48
23
|
const options = eventArgs.options;
|
|
49
24
|
this.columns = this.generateColumns(this.pluginOptions.columnCount), options.columns = this.columns;
|
|
50
|
-
} else if (args[1] ===
|
|
25
|
+
} else if (args[1] === vtable_1.TABLE_EVENT_TYPE.BEFORE_KEYDOWN) {
|
|
51
26
|
const e = args[0].event;
|
|
52
27
|
(null === (_a = this.pluginOptions.autoExtendColumnTriggerKeys) || void 0 === _a ? void 0 : _a.includes(e.key)) && this.table.stateManager.select.cellPos.col === this.table.colCount - 1 && this.table.addColumn(this.generateColumn(this.table.colCount - 1));
|
|
53
28
|
}
|
package/cjs/column-series.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/column-series.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/column-series.ts"],"names":[],"mappings":"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","file":"column-series.js","sourcesContent":["import type { ListTable, BaseTableAPI, ColumnsDefine, ColumnDefine } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nimport type { pluginsDefinition } from '@visactor/vtable';\n/**\n * 添加行和列的插件的配置选项\n */\nexport interface ColumnSeriesOptions {\n id?: string;\n columnCount: number;\n generateColumnTitle?: (index: number) => string;\n generateColumnField?: (index: number) => string;\n /**\n * 是否自动扩展列, 配置监听键值(键盘事件的key)\n * @default true\n */\n autoExtendColumnTriggerKeys?: ('ArrowRight' | 'Tab')[];\n}\n/**\n * 生成列序号标题的插件\n */\nexport class ColumnSeriesPlugin implements pluginsDefinition.IVTablePlugin {\n id = `column-series`;\n name = 'Column Series';\n runTime = [TABLE_EVENT_TYPE.BEFORE_INIT, TABLE_EVENT_TYPE.BEFORE_KEYDOWN];\n pluginOptions: ColumnSeriesOptions;\n table: ListTable;\n columns: { field?: string; title: string }[] = [];\n constructor(pluginOptions: ColumnSeriesOptions) {\n this.id = pluginOptions.id ?? this.id;\n this.pluginOptions = Object.assign({ columnCount: 100 }, pluginOptions);\n }\n run(...args: any[]) {\n if (args[1] === TABLE_EVENT_TYPE.BEFORE_INIT) {\n const eventArgs = args[0];\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n const options = eventArgs.options;\n //根据pluginOptions的columnCount组织columns,column的title生成规则和excel一致,如A~Z,AA~AZ,AB~AZ,AA~ZZ,AAA~ZZZ\n this.columns = this.generateColumns(this.pluginOptions.columnCount);\n options.columns = this.columns;\n } else if (args[1] === TABLE_EVENT_TYPE.BEFORE_KEYDOWN) {\n const eventArgs = args[0];\n const e = eventArgs.event;\n if (this.pluginOptions.autoExtendColumnTriggerKeys?.includes(e.key)) {\n if (this.table.stateManager.select.cellPos.col === this.table.colCount - 1) {\n this.table.addColumn(this.generateColumn(this.table.colCount - 1) as ColumnDefine);\n }\n }\n }\n }\n /**\n * 生成列字段和标题\n * 规则和excel一致,如A~Z,AA~AZ,AB~AZ,AA~ZZ,AAA~ZZZ\n * @param columnCount 列数\n * @returns 列字段和标题的数组\n */\n generateColumns(columnCount: number): { field?: string; title: string }[] {\n const columnFields = [];\n for (let i = 0; i < columnCount; i++) {\n columnFields.push(this.generateColumn(i));\n }\n return columnFields;\n }\n generateColumn(index: number): { field?: string; title: string } {\n const column = {\n // field: this.pluginOptions.generateColumnField\n // ? this.pluginOptions.generateColumnField(i)\n // : this.generateColumnField(i),\n title: this.pluginOptions.generateColumnTitle\n ? this.pluginOptions.generateColumnTitle(index)\n : this.generateColumnField(index)\n };\n return column;\n }\n /**\n * 生成excel的列标题,规则和excel一致,如A~Z,AA~AZ,AB~AZ,AA~ZZ,AAA~ZZZ\n * @param index 从0开始\n * @returns\n */\n generateColumnField(index: number): string {\n // 处理0-25的情况(A-Z)\n if (index < 26) {\n return String.fromCharCode(65 + index);\n }\n\n const title = [];\n index++; // 调整索引,使得第一个26变成AA\n\n while (index > 0) {\n index--; // 每次循环前减1,以正确处理进位\n title.unshift(String.fromCharCode(65 + (index % 26)));\n index = Math.floor(index / 26);\n }\n\n return title.join('');\n }\n\n resetColumnCount(columnCount: number) {\n this.pluginOptions.columnCount = columnCount;\n this.columns = this.generateColumns(columnCount);\n this.table.updateColumns(this.columns as ColumnsDefine);\n }\n}\n"]}
|
package/cjs/context-menu.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { ListTable } from '@visactor/vtable';
|
|
2
|
+
import type { pluginsDefinition } from '@visactor/vtable';
|
|
2
3
|
import type { MenuItemOrSeparator, MenuClickEventArgs } from './contextmenu/types';
|
|
3
4
|
import { MenuKey } from './contextmenu/types';
|
|
4
5
|
export interface ContextMenuOptions {
|
|
@@ -13,15 +14,15 @@ export interface ContextMenuOptions {
|
|
|
13
14
|
} & {
|
|
14
15
|
[key: string]: MenuClickCallback | undefined;
|
|
15
16
|
});
|
|
16
|
-
beforeShowAdjustMenuItems?: (menuItems: MenuItemOrSeparator[], table:
|
|
17
|
+
beforeShowAdjustMenuItems?: (menuItems: MenuItemOrSeparator[], table: ListTable, col: number, row: number) => MenuItemOrSeparator[];
|
|
17
18
|
}
|
|
18
|
-
export type MenuClickCallback = (args: MenuClickEventArgs, table:
|
|
19
|
-
export declare class ContextMenuPlugin implements
|
|
19
|
+
export type MenuClickCallback = (args: MenuClickEventArgs, table: ListTable) => void;
|
|
20
|
+
export declare class ContextMenuPlugin implements pluginsDefinition.IVTablePlugin {
|
|
20
21
|
id: string;
|
|
21
22
|
name: string;
|
|
22
23
|
runTime: ("contextmenu_cell" | "plugin_event")[];
|
|
23
24
|
pluginOptions: ContextMenuOptions;
|
|
24
|
-
table:
|
|
25
|
+
table: ListTable;
|
|
25
26
|
private menuManager;
|
|
26
27
|
private menuHandler;
|
|
27
28
|
constructor(pluginOptions?: ContextMenuOptions);
|