{"version":3,"file":"helper.mjs","sources":["../../../../../../packages/components/flex/src/helper.ts"],"sourcesContent":["import { isArray, isObject, isString } from '@element-plus/utils'\nimport type { ComponentSize } from 'element-plus'\nimport type { FlexProps } from './flex'\n\nconst classNames = (...args: any[]): string => {\n  const classes = []\n  for (const value of args) {\n    if (!value) continue\n    if (isString(value)) {\n      classes.push(value)\n    } else if (isArray(value)) {\n      for (const element of value) {\n        const inner = classNames(element)\n        if (inner) {\n          classes.push(inner)\n        }\n      }\n    } else if (isObject(value)) {\n      for (const name in value) {\n        if (value[name]) {\n          classes.push(name)\n        }\n      }\n    }\n  }\n  return classes.join(' ')\n}\n\nexport const flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'] as const\n\nexport const justifyContentValues = [\n  'flex-start',\n  'flex-end',\n  'start',\n  'end',\n  'center',\n  'space-between',\n  'space-around',\n  'space-evenly',\n  'stretch',\n  'normal',\n  'left',\n  'right',\n] as const\n\nexport const alignItemsValues = [\n  'center',\n  'start',\n  'end',\n  'flex-start',\n  'flex-end',\n  'self-start',\n  'self-end',\n  'baseline',\n  'normal',\n  'stretch',\n] as const\n\nconst genClsWrap = (prefixCls: string, props: FlexProps) => {\n  const wrapCls: Record<PropertyKey, boolean> = {}\n  flexWrapValues.forEach((cssKey) => {\n    wrapCls[`${prefixCls}-wrap-${cssKey}`] = props.wrap === cssKey\n  })\n  return wrapCls\n}\n\nconst genClsAlign = (prefixCls: string, props: FlexProps) => {\n  const alignCls: Record<PropertyKey, boolean> = {}\n  alignItemsValues.forEach((cssKey) => {\n    alignCls[`${prefixCls}-align-${cssKey}`] = props.align === cssKey\n  })\n  alignCls[`${prefixCls}-align-stretch`] = !props.align && !!props.vertical\n  return alignCls\n}\n\nconst genClsJustify = (prefixCls: string, props: FlexProps) => {\n  const justifyCls: Record<PropertyKey, boolean> = {}\n  justifyContentValues.forEach((cssKey) => {\n    justifyCls[`${prefixCls}-justify-${cssKey}`] = props.justify === cssKey\n  })\n  return justifyCls\n}\n\nexport function createFlexClassNames(prefixCls: string, props: FlexProps) {\n  return classNames({\n    ...genClsWrap(prefixCls, props),\n    ...genClsAlign(prefixCls, props),\n    ...genClsJustify(prefixCls, props),\n  })\n}\n\nexport function isPresetSize(\n  size?: ComponentSize | string | number\n): size is ComponentSize {\n  return ['small', 'default', 'large'].includes(size as string)\n}\n\nexport function omit<T extends object, K extends keyof T>(\n  obj: T,\n  fields: K[]\n): Omit<T, K> {\n  const shallowCopy = Object.assign({}, obj)\n  for (const key of fields) {\n    delete shallowCopy[key]\n  }\n  return shallowCopy\n}\n"],"names":[],"mappings":"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"}