element-plus
Version:
A Component Library for Vue 3
1 lines • 1.94 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","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"],"names":["sum"],"mappings":";;;;AAMA,MAAM,UAAa,GAAA,CAACA,IAAa,EAAA,GAAA,KAAgBA,IAAM,GAAA,GAAA,CAAA;AAE1C,MAAA,GAAA,GAAM,CAAC,QAAgC,KAAA;AAClD,EAAA,OAAO,QAAQ,QAAQ,CAAA,GAAI,SAAS,MAAO,CAAA,UAAA,EAAY,CAAC,CAAI,GAAA,QAAA,CAAA;AAC9D,EAAA;AAEO,MAAM,UAAU,CACrB,KAAA,EACA,MACA,EAAA,UAAA,GAAa,EACV,KAAA;AACH,EAAA,OAAO,WAAW,KAAK,CAAA,GAAI,KAAM,CAAA,MAAM,IAAK,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,UAAA,CAAA;AACvD,EAAA;AAEa,MAAA,WAAA,GAAc,CAAC,KAAyB,KAAA;AAClD,EAAC,CAAC,SAAS,UAAY,EAAA,UAAA,EAAY,QAAQ,CAAY,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACvE,IAAM,KAAA,CAAA,GAAA,CAAA,GAAO,OAAQ,CAAA,KAAA,CAAM,GAAI,CAAA,CAAA,CAAA;AAAA,GAChC,CAAA,CAAA;AAED,EAAO,OAAA,KAAA,CAAA;AACT,EAAA;AAEa,MAAA,eAAA,GAAkB,CAC7B,aAAA,KAEA,OAAQ,CAAA,aAAa,CACjB,GAAA,CAAC,KAAa,KAAA,CAAA,CAAE,aAAe,EAAA,KAAK,CACnC,GAAA;;;;"}