epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
55 lines (54 loc) • 1.62 kB
JavaScript
import { ref as y } from "vue";
/* empty css */
/* empty css */
/* empty css */
import "@vueuse/core";
import "../store/index.js";
import "../../../manager/src/pluginManager.js";
/* empty css */
import "vue-draggable-plus";
import { findSchemaInfoById as m, generateNewSchema as c, deepClone as l } from "../../../utils/src/common/data.js";
import "../../../git/epic/epic-designer/node_modules/.pnpm/jsep@1.4.0/node_modules/jsep/dist/jsep.js";
function F(f, o, p) {
const u = y(null);
function x(r) {
return r != null && r.id ? (u.value = l(r), !0) : !1;
}
function h(r) {
if (!u.value) return !1;
const n = m(
f.schemas,
r ?? "root"
);
if (!n) return !1;
const { index: i, list: t } = n, a = c(u.value);
return t.splice(i + 1, 0, a), o(a), p("粘贴组件"), !0;
}
function b(r) {
const n = m(
f.schemas,
r ?? "root"
);
if (!n) return !1;
const { index: i, schema: t, list: a } = n, s = c(t);
return a.splice(i + 1, 0, s), o(s), p("复制组件"), !0;
}
function v(r) {
if (!(r != null && r.id)) return !1;
u.value = l(r);
const n = m(f.schemas, r.id);
if (!n) return !1;
const { index: i, list: t } = n;
return t.splice(i, 1), i === t.length ? o(t[i - 1]) : o(t[i]), p("剪切组件"), !0;
}
return {
clipboardNode: u,
copy: x,
cut: v,
duplicate: b,
paste: h
};
}
export {
F as useClipboard
};