song-ui-u
Version:
vue3 + js的PC前端组件库
1 lines • 4.46 kB
Source Map (JSON)
{"version":3,"file":"space.cjs","sources":["../../../../../packages/components/space/src/space.js"],"sourcesContent":["import {\n createVNode,\n defineComponent,\n h,\n renderSlot,\n isVNode,\n Fragment,\n Text,\n} from \"vue\";\nimport SpaceItem from \"./item\";\n\nimport { useNamespace, useStyle } from \"@ui-library/hook\";\nexport default defineComponent({\n name: \"x-space\",\n props: {\n direction: {\n type: String,\n default: \"horizontal\",\n },\n size: {\n type: [Number, Array],\n default: 0,\n },\n wrap: Boolean,\n spacer: {\n type: [Boolean, Object],\n default: false,\n },\n align: {\n type: String,\n default: \"\",\n },\n },\n setup(props, { emit, slots }) {\n const ns = useNamespace(\"space\");\n const uStyle = useStyle();\n /**\n * 分隔符号\n */\n const spacerVNode = () => {\n const isVNodeElem = isVNode(props.spacer);\n return isVNodeElem\n ? props.spacer\n : createVNode(\"span\", { class: ns.e(\"spacer\") });\n };\n return () => {\n // 获取插槽元素\n const children = renderSlot(\n slots,\n \"default\",\n { key: 0 },\n () => []\n ).children;\n // 不存在插槽\n if (children.length === 0) {\n return null;\n }\n // 存在插槽 && 是数组\n if (Array.isArray(children)) {\n // 存储子级元素\n const getChildrenItem = [];\n children.forEach((item, index) => {\n // 渲染\n const renderVNode = createVNode(\n SpaceItem,\n { class: \"\" },\n { default: () => item }\n );\n // 添加\n getChildrenItem.push(renderVNode);\n // 分隔符\n props.spacer &&\n index + 1 !== children.length &&\n getChildrenItem.push(spacerVNode());\n });\n // 返回节点渲染\n return createVNode(\n \"div\",\n {\n class: [\n ns.b(),\n ns.m(\"direction\", props.direction),\n ns.is(\"wrap\", props.wrap),\n ],\n style: [uStyle.gap(props.size), uStyle.alignItem(props.align)],\n },\n getChildrenItem\n );\n }\n return children;\n };\n },\n});\n"],"names":["defineComponent","useNamespace","useStyle","isVNode","createVNode","renderSlot","item","SpaceItem"],"mappings":";;;;;;;;AAYA,YAAeA,mBAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,SAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,YAAA;AAAA,KACX;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,IAAA,EAAM,CAAC,MAAA,EAAQ,KAAK,CAAA;AAAA,MACpB,OAAS,EAAA,CAAA;AAAA,KACX;AAAA,IACA,IAAM,EAAA,OAAA;AAAA,IACN,MAAQ,EAAA;AAAA,MACN,IAAA,EAAM,CAAC,OAAA,EAAS,MAAM,CAAA;AAAA,MACtB,OAAS,EAAA,KAAA;AAAA,KACX;AAAA,IACA,KAAO,EAAA;AAAA,MACL,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,EAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,IAAA,EAAM,OAAS,EAAA;AAC5B,IAAM,MAAA,EAAA,GAAKC,mBAAa,OAAO,CAAA,CAAA;AAC/B,IAAA,MAAM,SAASC,gBAAS,EAAA,CAAA;AAIxB,IAAA,MAAM,cAAc,MAAM;AACxB,MAAM,MAAA,WAAA,GAAcC,WAAQ,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AACxC,MAAO,OAAA,WAAA,GACH,KAAM,CAAA,MAAA,GACNC,eAAY,CAAA,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAG,CAAA,CAAA,CAAE,QAAQ,CAAA,EAAG,CAAA,CAAA;AAAA,KACnD,CAAA;AACA,IAAA,OAAO,MAAM;AAEX,MAAA,MAAM,QAAW,GAAAC,cAAA;AAAA,QACf,KAAA;AAAA,QACA,SAAA;AAAA,QACA,EAAE,KAAK,CAAE,EAAA;AAAA,QACT,MAAM,EAAC;AAAA,OACP,CAAA,QAAA,CAAA;AAEF,MAAI,IAAA,QAAA,CAAS,WAAW,CAAG,EAAA;AACzB,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AAEA,MAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,QAAQ,CAAG,EAAA;AAE3B,QAAA,MAAM,kBAAkB,EAAC,CAAA;AACzB,QAAS,QAAA,CAAA,OAAA,CAAQ,CAACC,MAAA,EAAM,KAAU,KAAA;AAEhC,UAAA,MAAM,WAAc,GAAAF,eAAA;AAAA,YAClBG,IAAA;AAAA,YACA,EAAE,OAAO,EAAG,EAAA;AAAA,YACZ,EAAE,OAAS,EAAA,MAAMD,MAAK,EAAA;AAAA,WACxB,CAAA;AAEA,UAAA,eAAA,CAAgB,KAAK,WAAW,CAAA,CAAA;AAEhC,UAAM,KAAA,CAAA,MAAA,IACJ,QAAQ,CAAM,KAAA,QAAA,CAAS,UACvB,eAAgB,CAAA,IAAA,CAAK,aAAa,CAAA,CAAA;AAAA,SACrC,CAAA,CAAA;AAED,QAAO,OAAAF,eAAA;AAAA,UACL,KAAA;AAAA,UACA;AAAA,YACE,KAAO,EAAA;AAAA,cACL,GAAG,CAAE,EAAA;AAAA,cACL,EAAG,CAAA,CAAA,CAAE,WAAa,EAAA,KAAA,CAAM,SAAS,CAAA;AAAA,cACjC,EAAG,CAAA,EAAA,CAAG,MAAQ,EAAA,KAAA,CAAM,IAAI,CAAA;AAAA,aAC1B;AAAA,YACA,KAAA,EAAO,CAAC,MAAA,CAAO,GAAI,CAAA,KAAA,CAAM,IAAI,CAAA,EAAG,MAAO,CAAA,SAAA,CAAU,KAAM,CAAA,KAAK,CAAC,CAAA;AAAA,WAC/D;AAAA,UACA,eAAA;AAAA,SACF,CAAA;AAAA,OACF;AACA,MAAO,OAAA,QAAA,CAAA;AAAA,KACT,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}