el-plus-powerful-table
Version:
## [DOCS](https://peng-xiao-shuai.github.io/vite-vue-admin-docs/zh-CN/component_directive/component/powerful-table-doc.html)
1 lines • 3.08 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../packages/index.ts"],"sourcesContent":["import components from './components'\nimport powerfulTable from './powerful-table'\nimport fComponents from './filter'\nimport BtnPlus from './btn-plus'\nimport { PowerfulTableSymbol } from './keys'\nimport type { _TYPE } from '#/index'\nimport type { App, Plugin } from 'vue'\nexport type * from '../typings/index'\nexport { default as PTBtnPlus } from './btn-plus'\nexport * from './powerful-table'\nexport * from './filter'\nexport * from './components'\nexport { EmitEnum } from './powerful-table/src/powerful-table-data'\n// 获取类型\nexport const getType = <T>(target: T) =>\n Object.prototype.toString.call(target).slice(8, -1)\n\n// 深度克隆\nexport const deepClone = <T>(target: T) => {\n let result\n if (getType(target) === 'Object') {\n result = {} as T\n } else if (getType(target) === 'Array') {\n result = [] as T\n } else result = target\n\n for (const i in target) {\n const item = target[i]\n if (getType(item) === 'Object' || getType(item) === 'Array') {\n result[i] = deepClone(item)\n } else result[i] = item\n }\n return result\n}\n\n/**\n * @description 类型保护\n * @see https://www.tslang.cn/docs/handbook/advanced-types.html 搜索 “自定义类型保护”\n * @param {T} obj 值,它必须是联合类型\n * @param {(obj: T) => boolean} cb 回调函数,返回一个布尔值\n * @example\n * const a = [] | string\n * a.push() // 报错\n * if (isTypeProtect<typeof a, []>(a, (a) => Array.isArray(a))) {\n * a.push() // 正常\n * }\n * @returns {boolean}\n */\nexport const isTypeProtect = <T, P extends T>(\n obj: T,\n cb: (obj: T) => boolean\n): obj is P => cb(obj)\n\n// 不同类型的data数据类型提示\nexport const setData = <T extends keyof _TYPE<L>, L = any>(\n data: _TYPE<L>[T]\n): _TYPE<L>[T] => data\n\nconst makeInstaller = (components: Plugin[] = []) => {\n const install = (app: App, options?: import('~/index').InjectProps) => {\n components.forEach((c) => {\n app.use(c)\n })\n app.provide(PowerfulTableSymbol, options ? options : {})\n app.config.globalProperties.$deepClone = deepClone\n }\n\n return install\n}\n\nexport default {\n install: makeInstaller([\n ...components,\n ...fComponents,\n BtnPlus,\n powerfulTable,\n ]),\n}\n"],"names":["getType","target","deepClone","result","i","item","isTypeProtect","obj","cb","setData","data","makeInstaller","components2","app","options","c"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BE,MAAAA,IAAA,CAAAC,MAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,EAAA,MAAA,GAAA,EAAA,GACOC,IAAA,CAAAD,MAAA;AACT,MAAAE;AAeO,EAAAH,EAAsBC,CAAA,MAAA,WAMhBE,IAAA,CAAA,IAISH,EAAAC,CAAwB,MAAA,UACtCE,IAAA,CAAA,IAEFA;AAAS,aACVC,KAAAH,GAAA;AACD,UAAYI,IAAAJ,EAAAG,CAAA;AACR,IAAAJ,qBAAqCA,EAAAK,CAAA,MAAA,UAC3CF,EAAAC,CAAA,IAAAF,EAAAG,CAAA,IAGFF,EAAAC,CAAA,IAAAC;AAAA,EAEe;AACb;AAAuB,GAElBC,IAAA,CAAAC,GAAAC,MAAAA,EAAAD,CAAA,GACHE,IAAA,CAAAC,MAAAA,GACAC,IAAA,CAAAC,IAAA,OACD,CAAAC,GAAAC,MAAA;AACH,EAAAF,EAAA,QAAA,CAAAG,MAAA;;;;;;;;;;;"}