element-plus
Version:
A Component Library for Vue 3
1 lines • 1.57 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","names":[],"sources":["../../../../../../packages/components/table-v2/src/utils.ts"],"sourcesContent":["import { h, isVNode } from 'vue'\nimport { addUnit, isArray, isFunction } from '@element-plus/utils'\n\nimport type { CSSProperties, Component, Slot } from 'vue'\nimport type { JSX } from 'vue/jsx-runtime'\n\nconst sumReducer = (sum: number, num: number) => sum + num\n\nexport const sum = (listLike: number | number[]) => {\n return isArray(listLike) ? listLike.reduce(sumReducer, 0) : listLike\n}\n\nexport const tryCall = <T>(\n fLike: T,\n params: T extends (...args: infer K) => unknown ? K : any,\n defaultRet = {}\n) => {\n return isFunction(fLike) ? fLike(params) : (fLike ?? defaultRet)\n}\n\nexport const enforceUnit = (style: CSSProperties) => {\n ;(['width', 'maxWidth', 'minWidth', 'height'] as const).forEach((key) => {\n style[key] = addUnit(style[key])\n })\n\n return style\n}\n\nexport const componentToSlot = <T extends object>(\n ComponentLike: JSX.Element | ((props: T) => Component<T>) | undefined\n) =>\n isVNode(ComponentLike)\n ? (props: T) => h(ComponentLike, props)\n : (ComponentLike as Slot)\n"],"mappings":";;;;;AAMA,MAAM,cAAc,KAAa,QAAgB,MAAM;AAEvD,MAAa,OAAO,aAAgC;AAClD,QAAO,QAAQ,SAAS,GAAG,SAAS,OAAO,YAAY,EAAE,GAAG;;AAG9D,MAAa,WACX,OACA,QACA,aAAa,EAAE,KACZ;AACH,QAAO,WAAW,MAAM,GAAG,MAAM,OAAO,GAAI,SAAS;;AAGvD,MAAa,eAAe,UAAyB;AAClD,CAAC;EAAC;EAAS;EAAY;EAAY;EAAS,CAAW,SAAS,QAAQ;AACvE,QAAM,OAAO,QAAQ,MAAM,KAAK;GAChC;AAEF,QAAO;;AAGT,MAAa,mBACX,kBAEA,QAAQ,cAAc,IACjB,UAAa,EAAE,eAAe,MAAM,GACpC"}