@visactor/vtable-sheet 1.23.3-alpha.0 → 1.24.0
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/components/sheet-tab-event-handler.js +2 -5
- package/cjs/components/sheet-tab-event-handler.js.map +1 -1
- package/cjs/components/vtable-sheet.d.ts +14 -0
- package/cjs/components/vtable-sheet.js +77 -55
- package/cjs/components/vtable-sheet.js.map +1 -1
- package/cjs/core/WorkSheet.js +3 -46
- package/cjs/core/WorkSheet.js.map +1 -1
- package/cjs/core/table-plugins.js +30 -2
- package/cjs/core/table-plugins.js.map +1 -1
- package/cjs/formula/formula-editor.d.ts +1 -1
- package/cjs/formula/formula-editor.js +22 -5
- package/cjs/formula/formula-editor.js.map +1 -1
- package/cjs/formula/formula-engine.d.ts +1 -0
- package/cjs/formula/formula-engine.js +47 -16
- package/cjs/formula/formula-engine.js.map +1 -1
- package/cjs/formula/formula-range-selector.js +1 -5
- package/cjs/formula/formula-range-selector.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/managers/formula-manager.d.ts +3 -1
- package/cjs/managers/formula-manager.js +7 -5
- package/cjs/managers/formula-manager.js.map +1 -1
- package/cjs/managers/menu-manager.d.ts +7 -1
- package/cjs/managers/menu-manager.js +37 -4
- package/cjs/managers/menu-manager.js.map +1 -1
- package/cjs/managers/tab-drag-manager.d.ts +2 -2
- package/cjs/managers/tab-drag-manager.js +1 -2
- package/cjs/managers/tab-drag-manager.js.map +1 -1
- package/cjs/managers/workbook-history-manager.d.ts +53 -0
- package/cjs/managers/workbook-history-manager.js +294 -0
- package/cjs/managers/workbook-history-manager.js.map +1 -0
- package/cjs/styles/menu.js +1 -1
- package/cjs/styles/menu.js.map +1 -1
- package/cjs/test-shims/vtable-plugins.d.ts +5 -0
- package/cjs/test-shims/vtable-plugins.js +34 -0
- package/cjs/test-shims/vtable-plugins.js.map +1 -0
- package/cjs/ts-types/base.js +1 -2
- package/cjs/ts-types/formula.js +2 -1
- package/cjs/ts-types/index.d.ts +4 -0
- package/cjs/ts-types/index.js.map +1 -1
- package/dist/vtable-sheet.js +2559 -336
- package/dist/vtable-sheet.min.js +1 -1
- package/es/components/sheet-tab-event-handler.js +1 -4
- package/es/components/sheet-tab-event-handler.js.map +1 -1
- package/es/components/vtable-sheet.d.ts +14 -0
- package/es/components/vtable-sheet.js +76 -33
- package/es/components/vtable-sheet.js.map +1 -1
- package/es/core/WorkSheet.js +3 -46
- package/es/core/WorkSheet.js.map +1 -1
- package/es/core/table-plugins.js +31 -1
- package/es/core/table-plugins.js.map +1 -1
- package/es/formula/formula-editor.d.ts +1 -1
- package/es/formula/formula-editor.js +19 -4
- package/es/formula/formula-editor.js.map +1 -1
- package/es/formula/formula-engine.d.ts +1 -0
- package/es/formula/formula-engine.js +47 -16
- package/es/formula/formula-engine.js.map +1 -1
- package/es/formula/formula-range-selector.js +1 -5
- package/es/formula/formula-range-selector.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/managers/formula-manager.d.ts +3 -1
- package/es/managers/formula-manager.js +7 -5
- package/es/managers/formula-manager.js.map +1 -1
- package/es/managers/menu-manager.d.ts +7 -1
- package/es/managers/menu-manager.js +37 -4
- package/es/managers/menu-manager.js.map +1 -1
- package/es/managers/tab-drag-manager.d.ts +2 -2
- package/es/managers/tab-drag-manager.js +1 -2
- package/es/managers/tab-drag-manager.js.map +1 -1
- package/es/managers/workbook-history-manager.d.ts +53 -0
- package/es/managers/workbook-history-manager.js +286 -0
- package/es/managers/workbook-history-manager.js.map +1 -0
- package/es/styles/menu.js +1 -1
- package/es/styles/menu.js.map +1 -1
- package/es/test-shims/vtable-plugins.d.ts +5 -0
- package/es/test-shims/vtable-plugins.js +6 -0
- package/es/test-shims/vtable-plugins.js.map +1 -0
- package/es/ts-types/base.js +1 -2
- package/es/ts-types/formula.js +2 -1
- package/es/ts-types/index.d.ts +4 -0
- package/es/ts-types/index.js.map +1 -1
- package/package.json +7 -7
package/cjs/styles/menu.js
CHANGED
|
@@ -9,7 +9,7 @@ const env_1 = require("../tools/env");
|
|
|
9
9
|
function importStyle() {
|
|
10
10
|
if ("node" === env_1.Env.mode) return;
|
|
11
11
|
const styleElement = document.createElement("style");
|
|
12
|
-
styleElement.id = "vtable-sheet-menu-styleSheet", styleElement.textContent = "\n.vtable-sheet-main-menu {\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 30px;\n padding: 0;\n border-bottom: 1px solid #e0e0e0;\n display: flex;\n align-items: center;\n background-color: #fff;\n width:
|
|
12
|
+
styleElement.id = "vtable-sheet-menu-styleSheet", styleElement.textContent = "\n.vtable-sheet-main-menu {\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 30px;\n padding: 0;\n border-bottom: 1px solid #e0e0e0;\n display: flex;\n align-items: center;\n background-color: #fff;\n width: auto;\n /* 内容居中 */\n justify-content: center;\n flex-shrink: 0; /* 防止菜单被压缩 */\n}\n.vtable-sheet-main-menu:hover {\n background-color: #f0f0f0;\n}\n\n.vtable-sheet-undo-redo {\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 30px;\n padding: 0;\n border-bottom: 1px solid #e0e0e0;\n background-color: #fff;\n flex-shrink: 0;\n}\n\n.vtable-sheet-main-menu-button {\n display: flex;\n align-items: center;\n padding: 0 8px;\n cursor: pointer;\n height: 30px;\n}\n\n.vtable-sheet-main-menu-actions {\n display: flex;\n align-items: center;\n height: 30px;\n gap: 4px;\n padding-right: 6px;\n}\n\n.vtable-sheet-main-menu-action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n padding: 0;\n}\n\n.vtable-sheet-main-menu-action:hover:not(:disabled) {\n color: #333;\n background-color: rgba(0, 0, 0, 0.04);\n border-radius: 4px;\n}\n\n.vtable-sheet-main-menu-action:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/* 菜单项容器 */\n.vtable-sheet-main-menu-container {\n position: absolute;\n top: 100%; /* 显示在按钮下方 */\n left: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 100;\n display: none;\n}\n\n.vtable-sheet-main-menu-container.active {\n display: block;\n}\n\n/* 菜单项列表(ul) */\n.vtable-sheet-main-menu-items {\n list-style: none;\n margin: 0;\n padding: 4px 0;\n min-width: 80px;\n /* 删除以下两行 */\n /* max-height: 300px; */\n /* overflow-y: hidden; */\n}\n\n/* 当内容超出时显示滚动条 */\n.vtable-sheet-main-menu-items.scrollable {\n overflow-y: auto;\n}\n\n/* 单个菜单项(li) */\n.vtable-sheet-main-menu-item {\n padding: 6px 12px;\n margin: 0; /* 清除默认外边距 */\n line-height: 1.5; /* 统一行高 */\n cursor: pointer;\n white-space: nowrap;\n color: #333; /* 文字颜色 */\n font-size: 12px; /* 字体大小 */\n transition: background 0.2s; /* 悬停动画 */\n \n /* 禁用文本选中 */\n user-select: none;\n -webkit-user-select: none;\n}\n\n/* 悬停和激活状态 */\n.vtable-sheet-main-menu-item:hover,\n.vtable-sheet-main-menu-item:focus {\n background-color: #f5f5f5; /* 浅灰色背景 */\n}\n\n.vtable-sheet-main-menu-item:active {\n background-color: #e0e0e0; /* 点击时深灰色 */\n}\n\n/* 分隔线(可选) */\n.vtable-sheet-main-menu-item.divider {\n border-top: 1px solid #e0e0e0;\n margin: 4px 0;\n padding: 0;\n height: 1px;\n cursor: default;\n}\n\n.vtable-sheet-main-menu-item-has-children {\n position: relative;\n}\n\n.vtable-sheet-main-menu-item-has-children::after {\n content: '>';\n position: absolute;\n right: 0px;\n top: 50%;\n transform: translateY(-50%);\n margin-right: 10px;\n}\n/* 子菜单容器 */\n.vtable-sheet-submenu-container {\n position: absolute;\n left: 100%; /* 默认向右展开 */\n top: 0;\n min-width: 120px;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 200; /* 高于主菜单 */\n display: none;\n}\n\n/* 激活时显示 */\n.vtable-sheet-main-menu-item:hover .vtable-sheet-submenu-container {\n display: block;\n}\n\n/* 子菜单项 */\n.vtable-sheet-submenu-item {\n position: relative; /* 为箭头定位 */\n padding: 8px 12px;\n cursor: pointer;\n transition: background 0.2s;\n}\n\n.vtable-sheet-submenu-item:hover {\n background: #f5f5f5;\n}\n\n/* 嵌套子菜单箭头 */\n.submenu-arrow {\n position: absolute;\n right: 8px;\n font-size: 10px;\n color: #999;\n}\n\n/* 响应式调整 */\n@media (max-width: 768px) {\n .vtable-sheet-submenu-container {\n left: auto !important;\n right: 100%; /* 小屏幕改为向左展开 */\n }\n}\n",
|
|
13
13
|
document.head.appendChild(styleElement);
|
|
14
14
|
}
|
|
15
15
|
|
package/cjs/styles/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/styles/menu.ts"],"names":[],"mappings":";;;AAAA,sCAAmC;AAEnC,SAAgB,WAAW;IACzB,IAAI,SAAG,CAAC,IAAI,KAAK,MAAM,EAAE;QACvB,OAAO;KACR;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,GAAG,8BAA8B,CAAC;IACjD,YAAY,CAAC,WAAW,GAAG
|
|
1
|
+
{"version":3,"sources":["../src/styles/menu.ts"],"names":[],"mappings":";;;AAAA,sCAAmC;AAEnC,SAAgB,WAAW;IACzB,IAAI,SAAG,CAAC,IAAI,KAAK,MAAM,EAAE;QACvB,OAAO;KACR;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,GAAG,8BAA8B,CAAC;IACjD,YAAY,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqM5B,CAAC;IAEA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AA9MD,kCA8MC","file":"menu.js","sourcesContent":["import { Env } from '../tools/env';\n\nexport function importStyle() {\n if (Env.mode === 'node') {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.id = 'vtable-sheet-menu-styleSheet';\n styleElement.textContent = `\n.vtable-sheet-main-menu {\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 30px;\n padding: 0;\n border-bottom: 1px solid #e0e0e0;\n display: flex;\n align-items: center;\n background-color: #fff;\n width: auto;\n /* 内容居中 */\n justify-content: center;\n flex-shrink: 0; /* 防止菜单被压缩 */\n}\n.vtable-sheet-main-menu:hover {\n background-color: #f0f0f0;\n}\n\n.vtable-sheet-undo-redo {\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 30px;\n padding: 0;\n border-bottom: 1px solid #e0e0e0;\n background-color: #fff;\n flex-shrink: 0;\n}\n\n.vtable-sheet-main-menu-button {\n display: flex;\n align-items: center;\n padding: 0 8px;\n cursor: pointer;\n height: 30px;\n}\n\n.vtable-sheet-main-menu-actions {\n display: flex;\n align-items: center;\n height: 30px;\n gap: 4px;\n padding-right: 6px;\n}\n\n.vtable-sheet-main-menu-action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n padding: 0;\n}\n\n.vtable-sheet-main-menu-action:hover:not(:disabled) {\n color: #333;\n background-color: rgba(0, 0, 0, 0.04);\n border-radius: 4px;\n}\n\n.vtable-sheet-main-menu-action:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/* 菜单项容器 */\n.vtable-sheet-main-menu-container {\n position: absolute;\n top: 100%; /* 显示在按钮下方 */\n left: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 100;\n display: none;\n}\n\n.vtable-sheet-main-menu-container.active {\n display: block;\n}\n\n/* 菜单项列表(ul) */\n.vtable-sheet-main-menu-items {\n list-style: none;\n margin: 0;\n padding: 4px 0;\n min-width: 80px;\n /* 删除以下两行 */\n /* max-height: 300px; */\n /* overflow-y: hidden; */\n}\n\n/* 当内容超出时显示滚动条 */\n.vtable-sheet-main-menu-items.scrollable {\n overflow-y: auto;\n}\n\n/* 单个菜单项(li) */\n.vtable-sheet-main-menu-item {\n padding: 6px 12px;\n margin: 0; /* 清除默认外边距 */\n line-height: 1.5; /* 统一行高 */\n cursor: pointer;\n white-space: nowrap;\n color: #333; /* 文字颜色 */\n font-size: 12px; /* 字体大小 */\n transition: background 0.2s; /* 悬停动画 */\n \n /* 禁用文本选中 */\n user-select: none;\n -webkit-user-select: none;\n}\n\n/* 悬停和激活状态 */\n.vtable-sheet-main-menu-item:hover,\n.vtable-sheet-main-menu-item:focus {\n background-color: #f5f5f5; /* 浅灰色背景 */\n}\n\n.vtable-sheet-main-menu-item:active {\n background-color: #e0e0e0; /* 点击时深灰色 */\n}\n\n/* 分隔线(可选) */\n.vtable-sheet-main-menu-item.divider {\n border-top: 1px solid #e0e0e0;\n margin: 4px 0;\n padding: 0;\n height: 1px;\n cursor: default;\n}\n\n.vtable-sheet-main-menu-item-has-children {\n position: relative;\n}\n\n.vtable-sheet-main-menu-item-has-children::after {\n content: '>';\n position: absolute;\n right: 0px;\n top: 50%;\n transform: translateY(-50%);\n margin-right: 10px;\n}\n/* 子菜单容器 */\n.vtable-sheet-submenu-container {\n position: absolute;\n left: 100%; /* 默认向右展开 */\n top: 0;\n min-width: 120px;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 200; /* 高于主菜单 */\n display: none;\n}\n\n/* 激活时显示 */\n.vtable-sheet-main-menu-item:hover .vtable-sheet-submenu-container {\n display: block;\n}\n\n/* 子菜单项 */\n.vtable-sheet-submenu-item {\n position: relative; /* 为箭头定位 */\n padding: 8px 12px;\n cursor: pointer;\n transition: background 0.2s;\n}\n\n.vtable-sheet-submenu-item:hover {\n background: #f5f5f5;\n}\n\n/* 嵌套子菜单箭头 */\n.submenu-arrow {\n position: absolute;\n right: 8px;\n font-size: 10px;\n color: #999;\n}\n\n/* 响应式调整 */\n@media (max-width: 768px) {\n .vtable-sheet-submenu-container {\n left: auto !important;\n right: 100%; /* 小屏幕改为向左展开 */\n }\n}\n`;\n\n document.head.appendChild(styleElement);\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
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
|
+
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
+
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Object.defineProperty(exports, "__esModule", {
|
|
19
|
+
value: !0
|
|
20
|
+
}), exports.FilterActionType = exports.FilterPlugin = exports.HistoryPlugin = void 0,
|
|
21
|
+
__exportStar(require("@visactor/vtable-plugins/cjs/index.js"), exports);
|
|
22
|
+
|
|
23
|
+
const {HistoryPlugin: HistoryPlugin} = require("../../../vtable-plugins/src/history");
|
|
24
|
+
|
|
25
|
+
exports.HistoryPlugin = HistoryPlugin;
|
|
26
|
+
|
|
27
|
+
const {FilterPlugin: FilterPlugin} = require("../../../vtable-plugins/src/filter");
|
|
28
|
+
|
|
29
|
+
exports.FilterPlugin = FilterPlugin;
|
|
30
|
+
|
|
31
|
+
const {FilterActionType: FilterActionType} = require("../../../vtable-plugins/src/filter/types");
|
|
32
|
+
|
|
33
|
+
exports.FilterActionType = FilterActionType;
|
|
34
|
+
//# sourceMappingURL=vtable-plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/test-shims/vtable-plugins.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wEAAsD;AAEtD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAIhE,sCAAa;AAHtB,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;AAG/C,oCAAY;AAFpC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,0CAA0C,CAAC,CAAC;AAE3C,4CAAgB","file":"vtable-plugins.js","sourcesContent":["export * from '@visactor/vtable-plugins/cjs/index.js';\n\nconst { HistoryPlugin } = require('../../../vtable-plugins/src/history');\nconst { FilterPlugin } = require('../../../vtable-plugins/src/filter');\nconst { FilterActionType } = require('../../../vtable-plugins/src/filter/types');\n\nexport { HistoryPlugin, FilterPlugin, FilterActionType };\n"]}
|
package/cjs/ts-types/base.js
CHANGED
|
@@ -10,5 +10,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
10
10
|
}(SelectionMode = exports.SelectionMode || (exports.SelectionMode = {})), function(MainMenuItemKey) {
|
|
11
11
|
MainMenuItemKey.IMPORT = "import", MainMenuItemKey.EXPORT_CURRENT_SHEET_CSV = "export-current-sheet-csv",
|
|
12
12
|
MainMenuItemKey.EXPORT_CURRENT_SHEET_XLSX = "export-current-sheet-xlsx", MainMenuItemKey.EXPORT_ALL_SHEETS_XLSX = "export-all-sheets-xlsx";
|
|
13
|
-
}(MainMenuItemKey = exports.MainMenuItemKey || (exports.MainMenuItemKey = {}));
|
|
14
|
-
//# sourceMappingURL=base.js.map
|
|
13
|
+
}(MainMenuItemKey = exports.MainMenuItemKey || (exports.MainMenuItemKey = {}));
|
package/cjs/ts-types/formula.js
CHANGED
package/cjs/ts-types/index.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export interface ISheetDefine {
|
|
|
42
42
|
enableDragColumnOrder?: boolean;
|
|
43
43
|
enableDragRowOrder?: boolean;
|
|
44
44
|
};
|
|
45
|
+
multipleSort?: boolean;
|
|
45
46
|
}
|
|
46
47
|
export interface IThemeDefine {
|
|
47
48
|
rowSeriesNumberCellStyle?: TableSeriesNumberOptions['rowSeriesNumberCellStyle'];
|
|
@@ -68,6 +69,9 @@ export interface IVTableSheetOptions {
|
|
|
68
69
|
show?: boolean;
|
|
69
70
|
items?: MainMenuItem[];
|
|
70
71
|
};
|
|
72
|
+
undoRedo?: {
|
|
73
|
+
show?: boolean;
|
|
74
|
+
};
|
|
71
75
|
theme?: IThemeDefine;
|
|
72
76
|
defaultRowHeight?: number;
|
|
73
77
|
defaultColWidth?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ts-types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6CAAgF;AAKzD,4FALL,cAAW,OAKK;AAAzB,6FALgC,eAAY,OAKhC;
|
|
1
|
+
{"version":3,"sources":["../src/ts-types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6CAAgF;AAKzD,4FALL,cAAW,OAKK;AAAzB,6FALgC,eAAY,OAKhC;AAkIrB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,uDAAqC","file":"index.js","sourcesContent":["import type { ColumnDefine } from '@visactor/vtable';\nimport { TYPES as VTableTypes, themes as VTableThemes } from '@visactor/vtable';\nimport type { CellValue, MainMenuItem } from './base';\nimport type { IFilterState } from './filter';\nimport type { TableSeriesNumberOptions, ImportResult } from '@visactor/vtable-plugins';\nimport type { SortState } from '@visactor/vtable/es/ts-types';\nexport { VTableThemes, VTableTypes, ImportResult };\n/** 筛选配置 */\nexport interface IFilterConfig {\n /** 指定筛选器支持的筛选模式(按值、按条件、或两者) */\n filterModes?: ('byValue' | 'byCondition')[];\n}\n\n/** 扩展的列定义,添加筛选相关配置;field 可选,构建 ListTable 时由 WorkSheet 按列索引填充 */\nexport interface IColumnDefine extends Omit<ColumnDefine, 'field'> {\n /** 列字段,可选;未指定时由 WorkSheet 按列索引填充 */\n field?: string | number;\n /** 是否启用筛选功能 */\n filter?: boolean;\n}\n\n/** Sheet定义 */\nexport interface ISheetDefine {\n /** 标题 */\n sheetTitle: string;\n /** 唯一标识 */\n sheetKey: string;\n /** 列数 */\n columnCount?: number;\n /** 行数 */\n rowCount?: number;\n /** 表头定义 */\n columns?: IColumnDefine[];\n /** 数据 */\n data?: (CellValue[] | null)[];\n /** 是否是当前活动sheet TODO 是不是放到外层更好*/\n active?: boolean;\n cellMerge?: VTableTypes.CustomMergeCellArray;\n /** 冻结行数 */\n frozenRowCount?: number;\n /** 冻结列数 */\n frozenColCount?: number;\n /** 是否显示表头 */\n showHeader?: boolean;\n /** 是否将第一行作为表头 */\n firstRowAsHeader?: boolean;\n /** 公式定义 */\n formulas?: Record<string, string>;\n /** 筛选配置 - 支持简单布尔值或详细配置对象 */\n filter?: boolean | IFilterConfig;\n /** 筛选状态 - 保存当前的筛选条件和状态 */\n filterState?: IFilterState;\n /** 排序状态 */\n sortState?: SortState[] | SortState | null;\n /** 主题 */\n theme?: IThemeDefine;\n /** 列宽配置 */\n columnWidthConfig?: {\n key: string | number;\n width: number;\n }[];\n /** 行高配置 */\n rowHeightConfig?: {\n key: number;\n height: number;\n }[];\n dragOrder?: {\n enableDragColumnOrder?: boolean;\n enableDragRowOrder?: boolean;\n };\n /** 是否启用多列排序 */\n multipleSort?: boolean;\n}\nexport interface IThemeDefine {\n rowSeriesNumberCellStyle?: TableSeriesNumberOptions['rowSeriesNumberCellStyle'];\n colSeriesNumberCellStyle?: TableSeriesNumberOptions['colSeriesNumberCellStyle'];\n /** TODO 表格以外部分的主题 */\n menuStyle?: {\n fontFamily?: string;\n fontSize?: number;\n color?: string;\n padding?: number[];\n bgColor?: string;\n };\n tableTheme: VTableThemes.ITableThemeDefine;\n}\n/** VTableSheet配置 */\nexport interface IVTableSheetOptions {\n /** Sheet列表 */\n sheets: ISheetDefine[];\n /** 是否显示公式栏 */\n showFormulaBar?: boolean;\n /** 是否显示sheet切换栏 */\n showSheetTab?: boolean;\n /** 插件 */\n VTablePluginModules?: {\n module: any;\n moduleOptions?: any;\n /** vtable-sheet逻辑中使用到的插件,可以通过这个配置来禁用掉 */\n disabled?: boolean;\n }[];\n\n /** 主菜单 */\n mainMenu?: {\n /** 是否显示 */\n show?: boolean;\n /** 菜单项 */\n items?: MainMenuItem[];\n };\n undoRedo?: {\n /** 是否显示撤销/重做按钮 */\n show?: boolean;\n };\n /** 主题 */\n theme?: IThemeDefine;\n /** 默认行高 */\n defaultRowHeight?: number;\n /** 默认列宽 */\n defaultColWidth?: number;\n /** 拖拽列顺序和行顺序配置 如果sheets中单独配置过,这个配置会被忽略*/\n dragOrder?: {\n enableDragColumnOrder?: boolean;\n enableDragRowOrder?: boolean;\n };\n}\n\n/**\n * VTableSheet 更新配置\n *\n * 用于 VTableSheet.updateOption 的增量更新场景。\n * - 所有字段均为可选;\n * - 未显式声明的字段不会被修改;\n * - 部分字段在调用时会被广播到所有已存在的 WorkSheet。\n */\nexport type IVTableSheetUpdateOptions = Partial<IVTableSheetOptions>;\n\nexport * from './base';\nexport * from './formula';\nexport * from './filter';\nexport * from './sheet';\nexport * from './spreadsheet-events';\n"]}
|