UNPKG

@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
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 };