snowy-designer
Version:
基于Epic-Designer-Pro版本的设计器,可视化开发页面表单
60 lines (59 loc) • 1.64 kB
JavaScript
import { ref as y } from "vue";
/* empty css */
import "radix-vue";
import "clsx";
import "tailwind-merge";
import "lucide-vue-next";
import "../../../ui-kit/base-ui/src/shadch-ui/button/index.js";
import "@vueuse/core";
import "../../../ui-kit/base-ui/src/shadch-ui/toast/index.js";
import "vuedraggable";
import { findSchemaInfoById as m, generateNewSchema as l, deepClone as c } from "../../../utils/src/common/data.js";
import "../store/index.js";
import "lodash";
import "../../../utils/src/manager/pluginManager.js";
import "monaco-editor";
import "../../../utils/src/request/index.js";
function L(a, u, f) {
const o = y(null);
function x(r) {
return r != null && r.id ? (o.value = c(r), !0) : !1;
}
function h(r) {
if (!o.value) return !1;
const i = m(
a.schemas,
r ?? "root"
);
if (!i) return !1;
const { index: n, list: t } = i, p = l(o.value);
return t.splice(n + 1, 0, p), u(p), f("粘贴组件"), !0;
}
function b(r) {
const i = m(
a.schemas,
r ?? "root"
);
if (!i) return !1;
const { index: n, schema: t, list: p } = i, s = l(t);
return p.splice(n + 1, 0, s), u(s), f("复制组件"), !0;
}
function v(r) {
if (!(r != null && r.id)) return !1;
o.value = c(r);
const i = m(a.schemas, r.id);
if (!i) return !1;
const { index: n, list: t } = i;
return t.splice(n, 1), n === t.length ? u(t[n - 1] || null) : u(t[n] || null), f("剪切组件"), !0;
}
return {
clipboardNode: o,
copy: x,
cut: v,
duplicate: b,
paste: h
};
}
export {
L as useClipboard
};