{"version":3,"file":"col.mjs","sources":["../../../../../packages/components/col/src/col.ts"],"sourcesContent":["import {\n  defineComponent,\n  computed,\n  inject,\n  h,\n  renderSlot,\n  type PropType\n} from 'vue'\nimport { useNamespace } from '@element-ultra/hooks'\nimport type { ExtractPropTypes, CSSProperties } from 'vue'\n\ntype SizeObject = {\n  span?: number\n  offset?: number\n}\ntype Size = number | SizeObject\n\nexport const colProps = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  span: {\n    type: Number,\n    default: 24\n  },\n  offset: {\n    type: Number,\n    default: 0\n  },\n  pull: {\n    type: Number,\n    default: 0\n  },\n  push: {\n    type: Number,\n    default: 0\n  },\n  xs: {\n    type: [Number, Object] as PropType<Size>,\n    default: () => ({})\n  },\n  sm: {\n    type: [Number, Object] as PropType<Size>,\n    default: () => ({})\n  },\n  md: {\n    type: [Number, Object] as PropType<Size>,\n    default: () => ({})\n  },\n  lg: {\n    type: [Number, Object] as PropType<Size>,\n    default: () => ({})\n  },\n  xl: {\n    type: [Number, Object] as PropType<Size>,\n    default: () => ({})\n  }\n}\nexport type ColProps = ExtractPropTypes<typeof colProps>\n\nexport default defineComponent({\n  name: 'ElCol',\n  props: colProps,\n\n  setup(props, { slots }) {\n    const { gutter } = inject('ElRow', { gutter: { value: 0 } })\n    const ns = useNamespace('col')\n\n    const style = computed<CSSProperties>(() => {\n      if (gutter.value) {\n        return {\n          paddingLeft: `${gutter.value / 2}px`,\n          paddingRight: `${gutter.value / 2}px`\n        }\n      }\n      return {}\n    })\n\n    const classList = computed(() => {\n      const classes: string[] = []\n\n      const pos = ['span', 'offset', 'pull', 'push'] as const\n      pos.forEach(prop => {\n        const size = props[prop]\n        if (typeof size === 'number') {\n          if (prop === 'span') classes.push(ns.b(`${props[prop]}`))\n          else if (size > 0) classes.push(ns.b(`${prop}-${props[prop]}`))\n        }\n      })\n\n      const sizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const\n      sizes.forEach(size => {\n        if (typeof props[size] === 'number') {\n          classes.push(ns.b(`${size}-${props[size]}`))\n        } else if (typeof props[size] === 'object') {\n          const sizeProps = props[size]\n          Object.keys(sizeProps).forEach(prop => {\n            classes.push(\n              prop !== 'span'\n                ? ns.b(`${size}-${prop}-${sizeProps[prop]}`)\n                : ns.b(`${size}-${sizeProps[prop]}`)\n            )\n          })\n        }\n      })\n      // this is for the fix\n      if (gutter.value) {\n        classes.push('is-guttered')\n      }\n\n      return classes\n    })\n\n    return () =>\n      h(\n        props.tag,\n        {\n          class: [ns.b(), classList.value],\n          style: style.value\n        },\n        [renderSlot(slots, 'default')]\n      )\n  }\n})\n"],"names":[],"mappings":"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"}