hongluan-ui
Version:
Hongluan Component Library for Vue 3
60 lines (55 loc) • 1.92 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../hooks/index.js');
var groupProps = require('./group-props.js');
var index = require('../../../hooks/use-namespace/index.js');
const Group = vue.defineComponent({
name: "Group",
props: groupProps.groupProps,
setup(props, { slots }) {
const { namespace } = index.useNamespace("group");
const handleGroupItem = (internalSlots) => {
var _a;
const children = ((_a = internalSlots.default) == null ? void 0 : _a.call(internalSlots)) || [];
addClazz(children);
return children;
};
const addClazz = (children) => {
children.forEach((c) => {
var _a;
if (c.shapeFlag & 16 && !(c.shapeFlag & 1) || c.shapeFlag & 64 || c.shapeFlag & 128) {
addClazz(c.children || []);
}
const clazz = ((_a = c.props) == null ? void 0 : _a.class) || "";
if (clazz.indexOf("group-item") === -1) {
if (!c.props) {
c.props = {};
}
c.props.class = clazz + " group-item";
}
});
};
return () => vue.h("div", {
class: [
namespace.value,
props.dir,
props.align,
typeof props.full === "boolean" && props.full ? "full" : props.full,
props.indent ? "indent" : "",
props.merge ? "merge" : "",
props.deepMerge ? "deep-merge" : "",
props.wrap ? "wrap" : "",
props.block ? "block" : ""
],
style: [
typeof props.indent === "string" ? `--indent:${props.indent}` : "",
props.gap ? `--group-gap-x: ${props.gap}; --group-gap-y: ${props.gap}` : "",
props.gapX ? `--group-gap-x: ${props.gapX}` : "",
props.gapY ? `--group-gap-y: ${props.gapY}` : ""
]
}, handleGroupItem(slots));
}
});
exports["default"] = Group;
//# sourceMappingURL=group.js.map