import XEUtils from 'xe-utils' import GlobalConfig from './src/conf' import { interceptor } from './src/interceptor' import { renderer } from './src/renderer' import { commands } from './src/commands' import { menus } from './src/menus' import { formats } from './src/formats' import { validators } from './src/validators' import { hooks } from './src/hooks' import { config } from './src/config' import { getLastZIndex, nextZIndex } from '../tools/utils' import { VXETableCore } from '../../types/all' function getExportOrImpotType (types: any, flag: number) { const rest: string[] = [] XEUtils.objectEach(types, (val, type) => { if (val === 0 || val === flag) { rest.push(type) } }) return rest } const installedPlugins: any[] = [] export function use (Plugin: any, options?: any) { /* eslint-disable @typescript-eslint/no-use-before-define */ if (Plugin && Plugin.install) { if (installedPlugins.indexOf(Plugin) === -1) { Plugin.install(VXETable, options) installedPlugins.push(Plugin) } } return VXETable } export function t (key: any, args?: any) { return GlobalConfig.i18n(key, args) } export function _t (key: string, args?: any) { return key ? XEUtils.toValueString(GlobalConfig.translate ? GlobalConfig.translate(key, args) : key) : '' } class VXETableConfig { /** * 获取当前的 zIndex */ get zIndex () { return getLastZIndex() } /** * 获取下一个 zIndex */ get nextZIndex () { return nextZIndex() } /** * 获取所有导出类型 */ get exportTypes () { return getExportOrImpotType(GlobalConfig.export.types, 1) } /** * 获取所有导入类型 */ get importTypes () { return getExportOrImpotType(GlobalConfig.export.types, 2) } } // 已废弃 export const globalConfs = new VXETableConfig() export const v = 'v4' export const setup = config export const globalStore = {} export const VXETable = { v, version: process.env.VUE_APP_VXE_TABLE_VERSION, setup, globalStore, interceptor, renderer, commands, formats, validators, menus, hooks, use, t, _t, // 已废弃 config, globalConfs } as VXETableCore export * from './src/interceptor' export * from './src/renderer' export * from './src/commands' export * from './src/menus' export * from './src/formats' export * from './src/validators' export * from './src/hooks' export * from './src/config' export default VXETable