UNPKG

tdesign-vue-next

Version:
1 lines 12.3 kB
{"version":3,"file":"index.mjs","sources":["../../../../components/grid/utils/index.ts"],"sourcesContent":["import { isUndefined, isNumber, isObject, isArray } from 'lodash-es';\nimport { GutterObject, TdColProps, TdRowProps } from '../type';\n\nexport interface RowProviderType {\n gutter: TdRowProps['gutter'];\n}\n\n/**\n *\n * @param name\n * @param props\n * @returns\n */\nexport function getRowClasses(name: string, props: TdRowProps) {\n const { justify, align } = props;\n return [\n name,\n {\n [`${name}--${justify}`]: justify,\n // 区分 justify 传值\n [`${name}--align-${align}`]: align,\n },\n ];\n}\n\n/**\n *\n * @param gutter\n * @param currentSize\n * @returns\n */\nexport function calcRowStyle(gutter: TdRowProps['gutter'], currentSize: keyof GutterObject) {\n const rowStyle = {};\n const getMarginStyle = (gutter: number) =>\n Object.assign(rowStyle, {\n marginLeft: `${gutter / -2}px`,\n marginRight: `${gutter / -2}px`,\n });\n\n const getRowGapStyle = (gutter: number) =>\n Object.assign(rowStyle, {\n rowGap: `${gutter}px`,\n });\n\n const strategyMap = {\n isNumber: (gutter: TdRowProps['gutter']) => {\n if (isNumber(gutter)) {\n getMarginStyle(gutter);\n }\n },\n isArray: (gutter: TdRowProps['gutter']) => {\n if (isArray(gutter) && gutter.length) {\n strategyMap.isNumber(gutter[0]);\n\n if (isNumber(gutter[1])) {\n getRowGapStyle(gutter[1]);\n }\n\n if (isObject(gutter[0]) && !isUndefined(gutter[0][currentSize])) {\n getMarginStyle(gutter[0][currentSize]);\n }\n\n if (isObject(gutter[1]) && !isUndefined(gutter[1][currentSize])) {\n getRowGapStyle(gutter[1][currentSize]);\n }\n }\n },\n isObject: (gutter: TdRowProps['gutter']) => {\n // TODO: check and remove unreachable code\n // @ts-ignore\n if (isObject(gutter) && gutter[currentSize]) {\n if (isArray(gutter) && gutter.length) {\n // @ts-ignore\n getMarginStyle(gutter[currentSize][0]);\n // @ts-ignore\n getRowGapStyle(gutter[currentSize][1]);\n } else {\n // @ts-ignore\n getMarginStyle(gutter[currentSize]);\n }\n }\n },\n };\n\n Object.keys(strategyMap).forEach((item: keyof typeof strategyMap) => {\n strategyMap[item](gutter);\n });\n\n return rowStyle;\n}\n/**\n * 解析Flex\n * @param flex\n * @returns\n */\nexport function parseFlex(flex: TdColProps['flex']): string {\n if (isNumber(flex)) {\n return `${flex} ${flex} 0`;\n }\n // 判断是否是flex\n if (/^\\d+(\\.\\d+)?(px|r?em|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n return flex;\n}\n\n/**\n * 计算ColPadding\n * @param gutter\n * @param currentSize\n * @returns\n */\nexport function calcColPadding(gutter: TdRowProps['gutter'], currentSize: keyof GutterObject) {\n const paddingObj = {};\n const getPaddingStyle = (gutter: number) =>\n Object.assign(paddingObj, {\n paddingLeft: `${gutter / 2}px`,\n paddingRight: `${gutter / 2}px`,\n });\n\n const strategyMap = {\n isNumber: (gutter: TdRowProps['gutter']) => {\n if (isNumber(gutter)) {\n getPaddingStyle(gutter);\n }\n },\n isArray: (gutter: TdRowProps['gutter']) => {\n if (isArray(gutter) && gutter.length) {\n if (isNumber(gutter[0])) {\n getPaddingStyle(gutter[0]);\n }\n if (isObject(gutter[0]) && gutter[0][currentSize]) {\n getPaddingStyle(gutter[0][currentSize]);\n }\n }\n },\n isObject: (gutter: TdRowProps['gutter']) => {\n // TODO: replace isObject as isPlainObject\n if (isObject(gutter) && !isArray(gutter) && gutter[currentSize]) {\n getPaddingStyle(gutter[currentSize]);\n }\n },\n };\n\n Object.keys(strategyMap).forEach((item: keyof typeof strategyMap) => {\n strategyMap[item](gutter);\n });\n\n return paddingObj;\n}\n\n/**\n * 获取 col size\n * @param props\n * @returns\n */\nexport function getColClasses(name: string, props: TdColProps) {\n const { span, order, offset, push, pull } = props;\n const allSizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'] as const;\n\n const ColSizeClasses = allSizes.reduce((acc, currSize) => {\n const sizeProp = props[currSize];\n let sizeObject: any = {};\n if (isNumber(sizeProp)) {\n sizeObject.span = sizeProp;\n } else if (isObject(sizeProp)) {\n sizeObject = sizeProp || {};\n }\n return {\n ...acc,\n [`${name}-${currSize}-${sizeObject.span}`]: !isUndefined(sizeObject.span),\n [`${name}-${currSize}-order-${sizeObject.order}`]: parseInt(sizeObject.order, 10) >= 0,\n [`${name}-${currSize}-offset-${sizeObject.offset}`]: parseInt(sizeObject.offset, 10) >= 0,\n [`${name}-${currSize}-push-${sizeObject.push}`]: parseInt(sizeObject.push, 10) >= 0,\n [`${name}-${currSize}-pull-${sizeObject.pull}`]: parseInt(sizeObject.pull, 10) >= 0,\n };\n }, {});\n\n return {\n [`${name}`]: true,\n [`${name}-${span}`]: !isUndefined(span),\n [`${name}-order-${order}`]: order,\n [`${name}-offset-${offset}`]: offset,\n [`${name}-push-${push}`]: push,\n [`${name}-pull-${pull}`]: pull,\n ...ColSizeClasses,\n };\n}\n"],"names":["getRowClasses","name","props","justify","align","_defineProperty","concat","calcRowStyle","gutter","currentSize","rowStyle","getMarginStyle","Object","assign","marginLeft","marginRight","getRowGapStyle","rowGap","strategyMap","isNumber","isArray","length","isObject","isUndefined","keys","forEach","item","parseFlex","flex","test","calcColPadding","paddingObj","getPaddingStyle","paddingLeft","paddingRight","getColClasses","span","order","offset","push","pull","allSizes","ColSizeClasses","reduce","acc","currSize","sizeProp","sizeObject","_objectSpread","parseInt"],"mappings":"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"}