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