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.94 kB
Source Map (JSON)
{"version":3,"file":"useCol.mjs","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","ref","gutter","computed","columnSpan","colStyle","styles","classes","prop","size","isNumber","isObject","sizeProp"],"mappings":";;;;AAKgB,SAAAA,EAAAC,GAAAC,GAAA;AACd,MAAAC;AACA,QAAAC,IAAAC,EAAA,OAAAC,EAAA,IAAA,CAAA,GACAC,IAAAC,EAAA,MAAAP,EAAA,UAAA,CAAA;AAEA,MAAAA,EAAA,QAAA;AACE,UAAAQ,IAAA,KAAA,MAAA,KAAAR,EAAA,MAAA;AACA,IAAAE,IAAA;AAAA,MAAM,IAAA;AAAA,QACA,MAAA;AAAA,MACI;AAAA,MACR,IAAA;AAAA,QACI,MAAAM,KAAA,KAAAA,IAAA;AAAA,MACoC;AAAA,MACxC,IAAA;AAAA,QACI,MAAAA;AAAA,MACI;AAAA,MACR,IAAA;AAAA,QACI,MAAAA;AAAA,MACI;AAAA,MACR,IAAA;AAAA,QACI,MAAAA;AAAA,MACI;AAAA,MACR,GAAAP;AAAA,IACG;AAAA,EACL;AAGA,IAAAC,IAAA;AAAA,MAAM,MAAA;AAAA,MACE,GAAAD;AAAA,IACH;AAIP,QAAAQ,IAAAF,EAAA,MAAA;AACE,UAAAG,IAAA,CAAA;AACA,WAAAJ,EAAA,UACEI,EAAA,cAAAA,EAAA,eAAA,GAAAJ,EAAA,QAAA,CAAA,OAEFI;AAAA,EAAO,CAAA;AAwCT,SAAA,EAAA,QArCAH,EAAA,MAAA;AACE,UAAAI,IAAA,CAAA;AAGA,WAFA,CAAA,QAAA,UAAA,QAAA,MAAA,EAEA,QAAA,CAAAC,MAAA;AACE,YAAAC,IAAAX,EAAAU,CAAA;AACA,MAAAE,EAAAD,CAAA,MACED,MAAA,SACED,EAAA,KAAAR,EAAA,EAAA,GAAAD,EAAAU,CAAA,CAAA,EAAA,CAAA,IAAiCC,IAAA,KAEjCF,EAAA,KAAAR,EAAA,EAAA,GAAAS,CAAA,IAAAV,EAAAU,CAAA,CAAA,EAAA,CAAA;AAAA,IACJ,CAAA,GAGF,CAAA,MAAA,MAAA,MAAA,MAAA,IAAA,EACA,QAAA,CAAAC,MAAA;AACE,MAAAC,EAAAZ,EAAAW,CAAA,CAAA,IACEF,EAAA,KAAAR,EAAA,EAAA,GAAAU,CAAA,IAAAX,EAAAW,CAAA,CAAA,EAAA,CAAA,IAAyCE,EAAAb,EAAAW,CAAA,CAAA,KAGzC,OAAA,QAAAX,EAAAW,CAAA,CAAA,EAAA,QAAA,CAAA,CAAAD,GAAAI,CAAA,MAAA;AACE,QAAAL,EAAA;AAAA,UAAQC,MAAA,SAAAT,EAAA,EAAA,GAAAU,CAAA,IAAAD,CAAA,IAAAI,CAAA,EAAA,IAAAb,EAAA,EAAA,GAAAU,CAAA,IAAAG,CAAA,EAAA;AAAA,QAGwB;AAAA,MAChC,CAAA;AAAA,IAEJ,CAAA,GAIFV,EAAA,SACEK,EAAA,KAAAR,EAAA,GAAA,UAAA,CAAA,GAEF,CAAAA,EAAA,EAAA,GAAAQ,CAAA;AAAA,EAAuB,CAAA,GAGzB,UAAAF,EAAA;AACF;"}