65 lines
1.9 KiB
TypeScript

import {DDeiPluginBase} from "ddei-framework";
import MenuCancelMergeCell from "./menu-cancel-merge-cell"
import MenuCopySheet from "./menu-copy-sheet"
import MenuInsertCol from "./menu-insert-col"
import MenuInsertRow from "./menu-insert-row"
import MenuMergeCell from "./menu-merge-cell"
import MenuRemoveCol from "./menu-remove-col"
import MenuRemoveRow from "./menu-remove-row"
import MenuRemoveSheet from "./menu-remove-sheet"
import MenuDisabledAutoObi from "./menu-disabled-autoobi"
import MenuEnableAutoObi from "./menu-enable-autoobi"
import MenuSysDefaultAutoObi from "./menu-sysdefault-autoobi"
/**
* 快捷键扩展
*/
class DDeiCoreMenus extends DDeiPluginBase{
type: string = "package"
/**
* 缺省实例
*/
static defaultIns:DDeiCoreMenus = new DDeiCoreMenus(null);
plugins: object[] = [MenuCancelMergeCell, MenuCopySheet, MenuInsertCol, MenuInsertRow,
MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi, MenuEnableAutoObi, MenuSysDefaultAutoObi]
getMenus(editor){
let menus = []
this.plugins?.forEach(plugin=>{
let ls
if (DDeiPluginBase.isSubclass(plugin, DDeiPluginBase)) {
ls = plugin.defaultIns.getMenus(editor);
} else if (plugin instanceof DDeiPluginBase) {
ls = plugin.getMenus(editor);
}
if (ls?.length > 0) {
menus = menus.concat(ls);
}
})
return menus
}
static configuration(options) {
let menus = new DDeiCoreMenus(options);
for (let i = 0; i < menus.plugins?.length;i++){
menus.plugins[i] = menus.plugins[i].configuration(options,true)
}
return menus;
}
static modify(fn) {
return DDeiCoreMenus.defaultIns.modify(fn)
}
}
export {
DDeiCoreMenus, MenuCancelMergeCell, MenuCopySheet, MenuInsertCol, MenuInsertRow,
MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi, MenuEnableAutoObi, MenuSysDefaultAutoObi
}
export default DDeiCoreMenus