UNPKG

mldong-flow-designer-plus

Version:

本项目包含了作者为B站课堂视频[《工作流设计器开发最佳实践》](https://www.bilibili.com/cheese/play/ss24484)的过程源码。教程中开发的组件也可用于实际生产环境中。以下是和使用文档和课程章节说明。 ## 实战项目 [演示地址](https://flow-pro.mldong.com/)

180 lines (179 loc) 5.77 kB
import { t as genComponentStyleHook, h as classNames, $ as useConfigInject, r as flattenChildren, b as _objectSpread2, f as booleanType, P as PropTypes, W as tuple } from "./index-DwKsTObm.js"; import { computed, defineComponent, createVNode } from "vue"; import { c as createContext } from "./createContext-ne6PasgT.js"; import { l as isEmpty } from "./index-C41_Bymr.js"; const genSpaceCompactStyle = (token) => { const { componentCls } = token; return { [componentCls]: { display: "inline-flex", "&-block": { display: "flex", width: "100%" }, "&-vertical": { flexDirection: "column" } } }; }; const genSpaceStyle = (token) => { const { componentCls } = token; return { [componentCls]: { display: "inline-flex", "&-rtl": { direction: "rtl" }, "&-vertical": { flexDirection: "column" }, "&-align": { flexDirection: "column", "&-center": { alignItems: "center" }, "&-start": { alignItems: "flex-start" }, "&-end": { alignItems: "flex-end" }, "&-baseline": { alignItems: "baseline" } }, [`${componentCls}-item`]: { "&:empty": { display: "none" } } } }; }; const useStyle = genComponentStyleHook("Space", (token) => [genSpaceStyle(token), genSpaceCompactStyle(token)]); const spaceCompactItemProps = () => ({ compactSize: String, compactDirection: PropTypes.oneOf(tuple("horizontal", "vertical")).def("horizontal"), isFirstItem: booleanType(), isLastItem: booleanType() }); const SpaceCompactItemContext = createContext(null); const useCompactItemContext = (prefixCls, direction) => { const compactItemContext = SpaceCompactItemContext.useInject(); const compactItemClassnames = computed(() => { if (!compactItemContext || isEmpty(compactItemContext)) return ""; const { compactDirection, isFirstItem, isLastItem } = compactItemContext; const separator = compactDirection === "vertical" ? "-vertical-" : "-"; return classNames({ [`${prefixCls.value}-compact${separator}item`]: true, [`${prefixCls.value}-compact${separator}first-item`]: isFirstItem, [`${prefixCls.value}-compact${separator}last-item`]: isLastItem, [`${prefixCls.value}-compact${separator}item-rtl`]: direction.value === "rtl" }); }); return { compactSize: computed(() => compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize), compactDirection: computed(() => compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection), compactItemClassnames }; }; const NoCompactStyle = defineComponent({ name: "NoCompactStyle", setup(_, _ref) { let { slots } = _ref; SpaceCompactItemContext.useProvide(null); return () => { var _a; return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots); }; } }); const spaceCompactProps = () => ({ prefixCls: String, size: { type: String }, direction: PropTypes.oneOf(tuple("horizontal", "vertical")).def("horizontal"), align: PropTypes.oneOf(tuple("start", "end", "center", "baseline")), block: { type: Boolean, default: void 0 } }); const CompactItem = defineComponent({ name: "CompactItem", props: spaceCompactItemProps(), setup(props, _ref2) { let { slots } = _ref2; SpaceCompactItemContext.useProvide(props); return () => { var _a; return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots); }; } }); defineComponent({ name: "ASpaceCompact", inheritAttrs: false, props: spaceCompactProps(), setup(props, _ref3) { let { attrs, slots } = _ref3; const { prefixCls, direction: directionConfig } = useConfigInject("space-compact", props); const compactItemContext = SpaceCompactItemContext.useInject(); const [wrapSSR, hashId] = useStyle(prefixCls); const clx = computed(() => { return classNames(prefixCls.value, hashId.value, { [`${prefixCls.value}-rtl`]: directionConfig.value === "rtl", [`${prefixCls.value}-block`]: props.block, [`${prefixCls.value}-vertical`]: props.direction === "vertical" }); }); return () => { var _a; const childNodes = flattenChildren(((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) || []); if (childNodes.length === 0) { return null; } return wrapSSR(createVNode("div", _objectSpread2(_objectSpread2({}, attrs), {}, { "class": [clx.value, attrs.class] }), [childNodes.map((child, i) => { var _a2; const key = child && child.key || `${prefixCls.value}-item-${i}`; const noCompactItemContext = !compactItemContext || isEmpty(compactItemContext); return createVNode(CompactItem, { "key": key, "compactSize": (_a2 = props.size) !== null && _a2 !== void 0 ? _a2 : "middle", "compactDirection": props.direction, "isFirstItem": i === 0 && (noCompactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)), "isLastItem": i === childNodes.length - 1 && (noCompactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem)) }, { default: () => [child] }); })])); }; } }); export { NoCompactStyle as N, useCompactItemContext as u }; //# sourceMappingURL=Compact-CXMNSCdJ.js.map