@aplus-frontend/ui
Version:
42 lines (41 loc) • 1.05 kB
JavaScript
import { cloneVNode as l } from "vue";
import { isArray as a, isFunction as p } from "lodash-unified";
function x(n, r) {
const t = u(n), o = u(r);
return r.map((e) => {
const i = m(e.props.name), f = o.get(i), s = t.get(i);
if (!t.get(i) || f?.index !== s?.index)
return e;
const g = c(s.item), y = c(f.item);
return JSON.stringify(g) !== JSON.stringify(y) ? e : l(e, { _signal: s.item._signal });
});
}
function m(n) {
return n ? (a(n) ? n : [n]).map((t) => "" + t).join("") : "";
}
function u(n) {
const r = /* @__PURE__ */ new Map();
return n.forEach((t, o) => {
const e = t.props, i = m(e.name);
r.set(i, { item: e, index: o });
}), r;
}
function c(n) {
if (n === null || typeof n != "object") return n;
const r = {};
for (const t in n) {
const o = n[t];
t === "_signal" || typeof o == "function" || (r[t] = c(o));
}
return r;
}
function M(n, ...r) {
if (a(n))
for (const t of n)
p(t) && t(...r);
else p(n) && n(...r);
}
export {
x as diffFormItem,
M as execFunc
};