element-plus
Version:
A Component Library for Vue 3
1 lines • 1.9 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,IAAAA,EAAa,GAAA,KAAgBA,IAAAA,GAAM,GAAA;AAEhD,MAAM,GAAA,GAAM,CAAC,QAAA,KAAgC;AAClD,EAAA,OAAO,QAAQ,QAAQ,CAAA,GAAI,SAAS,MAAA,CAAO,UAAA,EAAY,CAAC,CAAA,GAAI,QAAA;AAC9D;AAEO,MAAM,UAAU,CACrB,KAAA,EACA,MAAA,EACA,UAAA,GAAa,EAAC,KACX;AACH,EAAA,OAAO,WAAW,KAAK,CAAA,GAAI,KAAA,CAAM,MAAM,IAAK,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,UAAA;AACvD;AAEO,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyB;AAClD,EAAC,CAAC,SAAS,UAAA,EAAY,UAAA,EAAY,QAAQ,CAAA,CAAY,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACvE,IAAA,KAAA,CAAM,GAAG,CAAA,GAAI,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAC,CAAA;AAAA,EACjC,CAAC,CAAA;AAED,EAAA,OAAO,KAAA;AACT;AAEO,MAAM,eAAA,GAAkB,CAC7B,aAAA,KAEA,OAAA,CAAQ,aAAa,CAAA,GACjB,CAAC,KAAA,KAAa,CAAA,CAAE,aAAA,EAAe,KAAK,CAAA,GACnC;;;;"}