UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

1 lines 4.42 kB
{"version":3,"file":"row.mjs","sources":["../../../components/row/row.ts"],"sourcesContent":["import { computed, defineComponent, h, provide, reactive, toRef } from 'vue'\n\nimport { useNameHelper, useProps } from '@vexip-ui/config'\nimport { rowProps } from './props'\nimport { ROW_STATE } from './symbol'\n\nimport type { RowGridAlign, RowGridJustify, RowState } from './symbol'\n\nconst justifyList = Object.freeze<RowGridJustify[]>([\n 'start',\n 'end',\n 'center',\n 'space-around',\n 'space-between',\n 'space-evenly',\n])\nconst alignList = Object.freeze<RowGridAlign[]>(['top', 'middle', 'bottom', 'stretch'])\n\nexport default defineComponent({\n name: 'Row',\n props: rowProps,\n setup(_props, { slots }) {\n const props = useProps('row', _props, {\n tag: 'div',\n gap: 0,\n justify: {\n default: 'start',\n validator: value => justifyList.includes(value),\n },\n align: {\n default: 'top',\n validator: value => alignList.includes(value),\n },\n columnFlex: false,\n })\n\n const nh = useNameHelper('row')\n\n const className = computed(() => {\n return [\n nh.b(),\n nh.bs('vars'),\n nh.bm(props.justify),\n nh.bm(props.align),\n {\n [nh.bm('inherit')]: props.inherit,\n },\n ]\n })\n const style = computed(() => {\n if (!props.gap) return null\n\n if (typeof props.gap === 'number') {\n return {\n [nh.cv('h-gap')]: `${props.gap}px`,\n }\n }\n\n if (Array.isArray(props.gap)) {\n const [horizontal, vertical] = props.gap\n\n return {\n [nh.cv('h-gap')]: `${horizontal}px`,\n [nh.cv('v-gap')]: `${vertical}px`,\n }\n }\n\n return null\n })\n const columnFlex = computed(() => {\n if (props.columnFlex === true) {\n return {\n justify: 'start',\n align: 'top',\n }\n } else if (props.columnFlex) {\n return {\n justify: 'start',\n align: 'top',\n ...props.columnFlex,\n }\n }\n\n return false\n })\n\n provide(\n ROW_STATE,\n reactive({\n columnFlex,\n gap: toRef(props, 'gap'),\n }) as RowState,\n )\n\n return () =>\n h(\n props.tag || 'div',\n {\n class: className.value,\n style: style.value,\n },\n {\n default: () => slots.default && slots.default(),\n },\n )\n },\n})\n"],"names":["justifyList","alignList","Row","defineComponent","rowProps","_props","slots","props","useProps","value","nh","useNameHelper","className","computed","style","horizontal","vertical","columnFlex","provide","ROW_STATE","reactive","toRef","h"],"mappings":";;;;AAQA,MAAMA,IAAc,OAAO,OAAyB;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GACKC,IAAY,OAAO,OAAuB,CAAC,OAAO,UAAU,UAAU,SAAS,CAAC,GAEtFC,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAQ,EAAE,OAAAC,KAAS;AACjB,UAAAC,IAAQC,EAAS,OAAOH,GAAQ;AAAA,MACpC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW,CAAAI,MAAST,EAAY,SAASS,CAAK;AAAA,MAChD;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW,CAAAA,MAASR,EAAU,SAASQ,CAAK;AAAA,MAC9C;AAAA,MACA,YAAY;AAAA,IAAA,CACb,GAEKC,IAAKC,EAAc,KAAK,GAExBC,IAAYC,EAAS,MAClB;AAAA,MACLH,EAAG,EAAE;AAAA,MACLA,EAAG,GAAG,MAAM;AAAA,MACZA,EAAG,GAAGH,EAAM,OAAO;AAAA,MACnBG,EAAG,GAAGH,EAAM,KAAK;AAAA,MACjB;AAAA,QACE,CAACG,EAAG,GAAG,SAAS,CAAC,GAAGH,EAAM;AAAA,MAAA;AAAA,IAE9B,CACD,GACKO,IAAQD,EAAS,MAAM;AACvB,UAAA,CAACN,EAAM,IAAY,QAAA;AAEnB,UAAA,OAAOA,EAAM,OAAQ;AAChB,eAAA;AAAA,UACL,CAACG,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGH,EAAM,GAAG;AAAA,QAChC;AAGF,UAAI,MAAM,QAAQA,EAAM,GAAG,GAAG;AAC5B,cAAM,CAACQ,GAAYC,CAAQ,IAAIT,EAAM;AAE9B,eAAA;AAAA,UACL,CAACG,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGK,CAAU;AAAA,UAC/B,CAACL,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGM,CAAQ;AAAA,QAC/B;AAAA,MAAA;AAGK,aAAA;AAAA,IAAA,CACR,GACKC,IAAaJ,EAAS,MACtBN,EAAM,eAAe,KAChB;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,IACT,IACSA,EAAM,aACR;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,MACP,GAAGA,EAAM;AAAA,IACX,IAGK,EACR;AAED,WAAAW;AAAA,MACEC;AAAA,MACAC,EAAS;AAAA,QACP,YAAAH;AAAA,QACA,KAAKI,EAAMd,GAAO,KAAK;AAAA,MACxB,CAAA;AAAA,IACH,GAEO,MACLe;AAAA,MACEf,EAAM,OAAO;AAAA,MACb;AAAA,QACE,OAAOK,EAAU;AAAA,QACjB,OAAOE,EAAM;AAAA,MACf;AAAA,MACA;AAAA,QACE,SAAS,MAAMR,EAAM,WAAWA,EAAM,QAAQ;AAAA,MAAA;AAAA,IAElD;AAAA,EAAA;AAEN,CAAC;"}