@ea-lab/reactive-json
Version:
A REACT-based lib that transforms JSON (or YAML) into interactive HTML markup.
71 lines (70 loc) • 2.27 kB
JavaScript
import "react/jsx-runtime";
import "../../jsonpath-B9kE9k9e.js";
import "../../lodash-CYNxjS-I.js";
import "react";
import "../../engine/GlobalDataContext.js";
import "../../engine/TemplateContext.js";
import { evaluateTemplateValue as V } from "../../engine/TemplateSystem.js";
import "../../engine/EventDispatcherContext.js";
import "../../engine/EventDispatcherProvider.js";
import "../../engine/PaginationContext.js";
import "../../dnd-kit-sortable-tree.esm-Cz1RJyIg.js";
import { normalizeAttributeNameForReactJsx as d } from "../../engine/utility/reactJsxHelpers.js";
import "../../index-NNBvIV0S.js";
import "../../js-yaml-CFDLc3Ha.js";
import "../../engine/ParsingDebugDisplay/ParsingDebugDisplay.js";
const f = (e, p, u, a) => {
const l = { ...e };
for (const r in p)
if (Object.prototype.hasOwnProperty.call(p, r)) {
const n = p[r], t = l[r];
if (n !== null && typeof n == "object" && !Array.isArray(n))
t !== null && typeof t == "object" && !Array.isArray(t) ? l[r] = f(t, n, u, a) : l[r] = n;
else if (typeof t == "string" && typeof n == "string") {
const s = t ? t.split(a) : [];
if (!u || !s.includes(n)) {
const o = [...s, n];
l[r] = o.join(a);
} else
l[r] = t;
} else
l[r] = n;
}
return l;
}, P = ({ attributes: e, globalDataContext: p, singleTransformProps: u, templateContext: a }) => {
const { name: l, mode: r = "append", value: n, preventDuplicateValues: t = !0, separator: s = " " } = u, o = V({
valueToEvaluate: n,
globalDataContext: p,
templateContext: a
}), i = d(l);
if (o === void 0)
return r === "append" || (e[i] = void 0), e;
if (o !== null && typeof o == "object" && !Array.isArray(o))
if (r === "replace")
e[i] = o;
else {
const c = e[i] || {}, m = typeof c == "object" && !Array.isArray(c) ? c : {};
e[i] = f(
m,
o,
t,
s
);
}
else if (r === "replace")
e[i] = o;
else {
const c = e[i] || "";
if (typeof c != "string")
return e[i] = o, e;
const m = c ? c.split(s) : [];
if (!t || !m.includes(o)) {
const y = [...m, o];
e[i] = y.join(s);
}
}
return e;
};
export {
P as setAttributeValue
};