UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

78 lines (74 loc) 1.97 kB
'use strict'; var vue = require('vue'); var item = require('./item.cjs'); var index = require('../../../hook/use-namespace/index.cjs'); var index$1 = require('../../../hook/use-style/index.cjs'); require('../../../hook/use-zindex/index.cjs'); var Space = vue.defineComponent({ name: "x-space", props: { direction: { type: String, default: "horizontal" }, size: { type: [Number, Array], default: 0 }, wrap: Boolean, spacer: { type: [Boolean, Object], default: false }, align: { type: String, default: "" } }, setup(props, { emit, slots }) { const ns = index.useNamespace("space"); const uStyle = index$1.useStyle(); const spacerVNode = () => { const isVNodeElem = vue.isVNode(props.spacer); return isVNodeElem ? props.spacer : vue.createVNode("span", { class: ns.e("spacer") }); }; return () => { const children = vue.renderSlot( slots, "default", { key: 0 }, () => [] ).children; if (children.length === 0) { return null; } if (Array.isArray(children)) { const getChildrenItem = []; children.forEach((item$1, index) => { const renderVNode = vue.createVNode( item, { class: "" }, { default: () => item$1 } ); getChildrenItem.push(renderVNode); props.spacer && index + 1 !== children.length && getChildrenItem.push(spacerVNode()); }); return vue.createVNode( "div", { class: [ ns.b(), ns.m("direction", props.direction), ns.is("wrap", props.wrap) ], style: [uStyle.gap(props.size), uStyle.alignItem(props.align)] }, getChildrenItem ); } return children; }; } }); module.exports = Space; //# sourceMappingURL=space.cjs.map