ideaz-element
Version:
<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>
1 lines • 3.77 kB
Source Map (JSON)
{"version":3,"file":"useCol.cjs","sources":["../../../../../../packages/element/form/src/hooks/useCol.ts"],"sourcesContent":["import { isNumber, isObject } from '@ideaz/utils'\nimport type { CSSProperties } from 'vue'\nimport type { FormProps } from '../props'\nimport type { FormColumn } from '../../../types'\n\nexport function useCol(props: FormProps, formItem: FormColumn) {\n let col: FormColumn\n const ns = useNamespace('col', ref('el'))\n const gutter = computed(() => props.gutter || 0)\n\n if (props.column) {\n const columnSpan = Math.floor(24 / props.column)\n col = {\n xs: {\n span: 24,\n },\n sm: {\n span: columnSpan >= 12 ? columnSpan : 12,\n },\n md: {\n span: columnSpan,\n },\n lg: {\n span: columnSpan,\n },\n xl: {\n span: columnSpan,\n },\n ...formItem,\n }\n }\n else {\n col = {\n span: 24,\n ...formItem,\n }\n }\n\n const colStyle = computed(() => {\n const styles: CSSProperties = {}\n if (gutter.value)\n styles.paddingLeft = styles.paddingRight = `${gutter.value / 2}px`\n\n return styles\n })\n\n const colKls = computed(() => {\n const classes: string[] = []\n const pos = ['span', 'offset', 'pull', 'push'] as const\n\n pos.forEach((prop) => {\n const size = col[prop]\n if (isNumber(size)) {\n if (prop === 'span')\n classes.push(ns.b(`${col[prop]}`))\n else if (size > 0)\n classes.push(ns.b(`${prop}-${col[prop]}`))\n }\n })\n\n const sizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const\n sizes.forEach((size) => {\n if (isNumber(col[size])) {\n classes.push(ns.b(`${size}-${col[size]}`))\n }\n else if (isObject(col[size])) {\n Object.entries(col[size]!).forEach(([prop, sizeProp]) => {\n classes.push(\n prop !== 'span'\n ? ns.b(`${size}-${prop}-${sizeProp}`)\n : ns.b(`${size}-${sizeProp}`),\n )\n })\n }\n })\n\n // this is for the fix\n if (gutter.value)\n classes.push(ns.is('guttered'))\n\n return [ns.b(), classes]\n })\n\n return { colKls, colStyle }\n}\n"],"names":["useCol","props","formItem","col","ns","useNamespace","vue","gutter","columnSpan","colStyle","styles","classes","prop","size","is","sizeProp"],"mappings":"oOAKgB,SAAAA,EAAAC,EAAAC,EAAA,CACd,IAAAC,EACA,MAAAC,EAAAC,EAAA,aAAA,MAAAC,EAAA,IAAA,IAAA,CAAA,EACAC,EAAAD,EAAA,SAAA,IAAAL,EAAA,QAAA,CAAA,EAEA,GAAAA,EAAA,OAAA,CACE,MAAAO,EAAA,KAAA,MAAA,GAAAP,EAAA,MAAA,EACAE,EAAA,CAAM,GAAA,CACA,KAAA,EACI,EACR,GAAA,CACI,KAAAK,GAAA,GAAAA,EAAA,EACoC,EACxC,GAAA,CACI,KAAAA,CACI,EACR,GAAA,CACI,KAAAA,CACI,EACR,GAAA,CACI,KAAAA,CACI,EACR,GAAAN,CACG,CACL,MAGAC,EAAA,CAAM,KAAA,GACE,GAAAD,CACH,EAIP,MAAAO,EAAAH,EAAA,SAAA,IAAA,CACE,MAAAI,EAAA,CAAA,EACA,OAAAH,EAAA,QACEG,EAAA,YAAAA,EAAA,aAAA,GAAAH,EAAA,MAAA,CAAA,MAEFG,CAAO,CAAA,EAwCT,MAAA,CAAA,OArCAJ,EAAA,SAAA,IAAA,CACE,MAAAK,EAAA,CAAA,EAGA,MAFA,CAAA,OAAA,SAAA,OAAA,MAAA,EAEA,QAAAC,GAAA,CACE,MAAAC,EAAAV,EAAAS,CAAA,EACAE,EAAA,SAAAD,CAAA,IACED,IAAA,OACED,EAAA,KAAAP,EAAA,EAAA,GAAAD,EAAAS,CAAA,CAAA,EAAA,CAAA,EAAiCC,EAAA,GAEjCF,EAAA,KAAAP,EAAA,EAAA,GAAAQ,CAAA,IAAAT,EAAAS,CAAA,CAAA,EAAA,CAAA,EACJ,CAAA,EAGF,CAAA,KAAA,KAAA,KAAA,KAAA,IAAA,EACA,QAAAC,GAAA,CACEC,EAAA,SAAAX,EAAAU,CAAA,CAAA,EACEF,EAAA,KAAAP,EAAA,EAAA,GAAAS,CAAA,IAAAV,EAAAU,CAAA,CAAA,EAAA,CAAA,EAAyCC,EAAA,SAAAX,EAAAU,CAAA,CAAA,GAGzC,OAAA,QAAAV,EAAAU,CAAA,CAAA,EAAA,QAAA,CAAA,CAAAD,EAAAG,CAAA,IAAA,CACEJ,EAAA,KAAQC,IAAA,OAAAR,EAAA,EAAA,GAAAS,CAAA,IAAAD,CAAA,IAAAG,CAAA,EAAA,EAAAX,EAAA,EAAA,GAAAS,CAAA,IAAAE,CAAA,EAAA,CAGwB,CAChC,CAAA,CAEJ,CAAA,EAIFR,EAAA,OACEI,EAAA,KAAAP,EAAA,GAAA,UAAA,CAAA,EAEF,CAAAA,EAAA,EAAA,EAAAO,CAAA,CAAuB,CAAA,EAGzB,SAAAF,CAAA,CACF"}