epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
108 lines (107 loc) • 3.94 kB
JavaScript
import { defineComponent as f, computed as T, h as r, createElementBlock as x, openBlock as d, normalizeClass as l, unref as c, createElementVNode as B, createBlock as E, createCommentVNode as y, createVNode as g } from "vue";
/* empty css */
import b from "../icon/icon.vue.js";
/* empty css */
/* empty css */
import { pluginManager as v } from "../../../../manager/src/pluginManager.js";
import "../../../../git/epic/epic-designer/node_modules/.pnpm/jsep@1.4.0/node_modules/jsep/dist/jsep.js";
import "@vueuse/core";
import "../../../../hooks/src/store/index.js";
import { useDesignerContext as S } from "../../../../hooks/src/designer/useDesignerContext.js";
/* empty css */
import V from "./treeNodes.vue.js";
import { useTreeContext as w } from "./useTreeContext.js";
const H = /* @__PURE__ */ f({
name: "ETreeNodeItem",
__name: "treeNodeItem",
props: {
schema: {}
},
setup(k) {
const e = k, s = w(), { pageSchema: o } = S(), m = T(() => s.expandedKeys.value.includes(e.schema.id ?? "")), C = f({
setup() {
return () => {
var a, t;
return r(
"span",
{
class: {
checked: s.selectedKeys.value.includes(e.schema.id),
hover: s.treeProps.hoverKey === e.schema.id,
text: !0
},
onClick: () => s.handleSelect(e.schema.id, e.schema)
},
((t = (a = s.slots)["tree-node"]) == null ? void 0 : t.call(a, e)) ?? r(
"span",
{ class: "epic-text-padding flex" },
{
default: () => {
var n;
return [
r(
"span",
{ class: "max-w-full truncate" },
e.schema.label ?? ((n = v.component.getConfigByType(e.schema.type)) == null ? void 0 : n.defaultSchema.label)
),
r(
"span",
{ class: "epic-node-type-text flex-1 w-0 truncate" },
e.schema.id
)
];
}
}
)
);
};
}
});
function K() {
const a = e.schema.id;
if (!a)
return !1;
s.expandedKeys.value.includes(a) ? s.expandedKeys.value = s.expandedKeys.value.filter(
(t) => t !== a
) : s.expandedKeys.value.push(a);
}
function _() {
var t;
const a = e.schema.id;
if (!a || !((t = e.schema.children) != null && t.length))
return !1;
s.expandedKeys.value.push(a);
}
return _(), (a, t) => {
var n, i, p, h, u;
return d(), x("li", {
class: l(["epic-tree-node", {
expanded: (n = e.schema.children) == null ? void 0 : n.length,
"is-locked": c(v).component.getLocked(e.schema.type),
"level-1": e.schema.id === ((i = c(o).schemas[0]) == null ? void 0 : i.id)
}])
}, [
B("a", null, [
(p = e.schema.children) != null && p.length && e.schema.id !== ((h = c(o).schemas[0]) == null ? void 0 : h.id) ? (d(), x("span", {
key: 0,
class: l(["icon-expanded", { expanded: m.value }]),
onClick: K
}, [
g(c(b), { name: "icon--epic--caret-right-outlined" })
], 2)) : y("", !0),
g(c(C))
]),
(u = e.schema.children) != null && u.length ? (d(), E(V, {
key: 0,
schemas: e.schema.children,
"onUpdate:schemas": t[0] || (t[0] = (N) => e.schema.children = N),
class: l(["epic-tree-sublist", { expanded: m.value }]),
"parent-schema": e.schema
}, null, 8, ["schemas", "class", "parent-schema"])) : y("", !0)
], 2);
};
}
});
export {
H as default
};