UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1,061 lines (1,060 loc) 37.7 kB
import { ref as Q, computed as fe, defineComponent as pe, watch as Z, reactive as K, createVNode as ee } from "vue"; import { cloneDeep as Y, isPlainObject as te, merge as re, mergeWith as ne } from "lodash-es"; import me from "../accordion/index.esm.js"; import de from "../avatar/index.esm.js"; import ge from "../../designer/button-edit/index.esm.js"; import ve from "../button-group/index.esm.js"; import be from "../calendar/index.esm.js"; import ye from "../capsule/index.esm.js"; import oe from "../../designer/checkbox/index.esm.js"; import ie from "../../designer/checkbox-group/index.esm.js"; import Fe from "../combo-list/index.esm.js"; import Ce from "../combo-tree/index.esm.js"; import Pe from "../component/index.esm.js"; import Te from "../color-picker/index.esm.js"; import Ee from "../content-container/index.esm.js"; import Me from "../date-picker/index.esm.js"; import Oe from "../../designer/data-grid/index.esm.js"; import ke from "../dropdown/index.esm.js"; import xe from "../dynamic-form/index.esm.js"; import Re from "../events-editor/index.esm.js"; import De from "../filter-bar/index.esm.js"; import je from "../field-selector/index.esm.js"; import Se from "../binding-selector/index.esm.js"; import Ne from "../image-cropper/index.esm.js"; import $e from "../../designer/input-group/index.esm.js"; import Ae from "../layout/index.esm.js"; import Be from "../list-nav/index.esm.js"; import Le from "../../designer/list-view/index.esm.js"; import Ve from "../lookup/index.esm.js"; import He from "../mapping-editor/index.esm.js"; import Ie from "../nav/index.esm.js"; import Ge from "../number-range/index.esm.js"; import we from "../number-spinner/index.esm.js"; import ze from "../order/index.esm.js"; import he from "../page-header/index.esm.js"; import qe from "../page-footer/index.esm.js"; import Ue from "../pagination/index.esm.js"; import We from "../progress/index.esm.js"; import _e from "../query-solution/index.esm.js"; import Je from "../../designer/radio-group/index.esm.js"; import Qe from "../rate/index.esm.js"; import Xe from "../response-toolbar/index.esm.js"; import Ye from "../response-layout/index.esm.js"; import Ze from "../response-layout-editor/index.esm.js"; import Ke from "../search-box/index.esm.js"; import et from "../section/index.esm.js"; import tt from "../smoke-detector/index.esm.js"; import rt from "../splitter/index.esm.js"; import nt from "../step/index.esm.js"; import ot from "../switch/index.esm.js"; import it from "../tabs/index.esm.js"; import st from "../tags/index.esm.js"; import ct from "../text/index.esm.js"; import at from "../time-picker/index.esm.js"; import ut from "../transfer/index.esm.js"; import lt from "../tree-view/index.esm.js"; import ft from "../uploader/index.esm.js"; import pt from "../verify-detail/index.esm.js"; import mt from "../video/index.esm.js"; import dt from "../textarea/index.esm.js"; import gt from "../schema-selector/index.esm.js"; import vt from "../../designer/tree-grid/index.esm.js"; import bt from "../event-parameter/index.esm.js"; import yt from "../filter-condition-editor/index.esm.js"; import Ft from "../fieldset/index.esm.js"; import Ct from "../sort-condition-editor/index.esm.js"; import Pt from "../menu-lookup/index.esm.js"; import Tt from "../../designer/drawer/index.esm.js"; import Et from "../json-editor/index.esm.js"; import Mt from "../property-editor/index.esm.js"; import Ot from "../expression-editor/index.esm.js"; import kt from "../code-editor/index.esm.js"; import xt from "../html-template/index.esm.js"; import Rt from "../collection-property-editor/index.esm.js"; import Dt from "../modal/index.esm.js"; import jt from "../external-container/index.esm.js"; import St from "../language-textbox/index.esm.js"; const Nt = { /** * schema */ schema: { type: Object, default: null }, /** * 组件值 */ modelValue: { type: Object, default: null }, /** * 回调 */ callback: { type: Function, default: () => { } }, /** * 自定义组件渲染器 */ customComponentRenders: { type: Object, default: null } }, i = {}, s = {}, c = {}, o = {}; let se = !1; function $t() { se || (se = !0, de.register(i, s, c, o), me.register(i, s, c, o), ge.register(i, s, c, o), ve.register(i, s, c, o), be.register(i, s, c, o), ye.register(i, s, c, o), oe.register(i, s, c, o), ie.register(i, s, c, o), oe.register(i, s, c, o), ie.register(i, s, c, o), Fe.register(i, s, c, o), Ce.register(i, s, c, o), Pe.register(i, s, c, o), Ee.register(i, s, c, o), Te.register(i, s, c, o), Me.register(i, s, c, o), Oe.register(i, s, c, o), ke.register(i, s, c, o), xe.register(i, s, c, o), Re.register(i, s, c, o), Ot.register(i, s, c, o), De.register(i, s, c, o), je.register(i, s, c, o), yt.register(i, s, c, o), Ne.register(i, s, c, o), $e.register(i, s, c, o), Ae.register(i, s, c, o), Le.register(i, s, c, o), Be.register(i, s, c, o), Ve.register(i, s, c, o), He.register(i, s, c, o), Ie.register(i, s, c, o), Ge.register(i, s, c, o), we.register(i, s, c, o), ze.register(i, s, c, o), he.register(i, s, c, o), qe.register(i, s, c, o), Ue.register(i, s, c, o), We.register(i, s, c, o), _e.register(i, s, c, o), Je.register(i, s, c, o), Qe.register(i, s, c, o), Ye.register(i, s, c, o), Ze.register(i, s, c, o), Xe.register(i, s, c, o), gt.register(i, s, c), Ke.register(i, s, c, o), et.register(i, s, c, o), tt.register(i, s, c, o), rt.register(i, s, c, o), nt.register(i, s, c, o), ot.register(i, s, c, o), Ct.register(i, s, c, o), it.register(i, s, c, o), st.register(i, s, c, o), ct.register(i, s, c, o), at.register(i, s, c, o), ut.register(i, s, c, o), lt.register(i, s, c, o), pt.register(i, s, c, o), ft.register(i, s, c, o), mt.register(i, s, c, o), dt.register(i, s, c, o), vt.register(i, s, c, o), Se.register(i, s, c, o), bt.register(i, s, c, o), Ft.register(i, s, c, o), Pt.register(i, s, c, o), Tt.register(i, s, c, o), Et.register(i, s, c, o), Mt.register(i, s, c, o), kt.register(i, s, c, o), xt.register(i, s, c, o), Rt.register(i, s, c, o), Dt.register(i, s, c, o), jt.register(i, s, c, o), St.register(i, s, c, o)); } function ae(e, t) { let n; function l(a) { const { properties: d, title: E, ignore: u } = a, f = u && Array.isArray(u), b = Object.keys(d).reduce((x, D) => ((!f || !u.find((L) => L === D)) && (x[D] = d[D].type === "object" && d[D].properties ? l(d[D]) : Y(d[D].default)), x), {}); if (E && (!f || !u.find((x) => x === "id"))) { const x = E.toLowerCase().replace(/-/g, "_"); b.id = `${x}_${Math.random().toString().slice(2, 6)}`; } return b; } function O(a) { const { properties: d, title: E, required: u } = a; if (u && Array.isArray(u)) { const f = u.reduce((b, x) => (b[x] = d[x].type === "object" && d[x].properties ? l(d[x]) : Y(d[x].default), b), {}); if (E && u.find((b) => b === "id")) { const b = E.toLowerCase().replace(/-/g, "_"); f.id = `${b}_${Math.random().toString().slice(2, 6)}`; } return f; } return { type: E }; } function C(a, d = {}, E) { const u = e[a]; if (u) { let f = O(u); const b = t[a]; return f = b ? b({ getSchemaByType: C }, f, d, E) : f, n != null && n.appendIdentifyForNewControl && n.appendIdentifyForNewControl(f), f; } return null; } function P(a, d) { const E = l(d); return Object.keys(E).reduce((u, f) => (Object.prototype.hasOwnProperty.call(a, f) && (u[f] && te(u[f]) && te(a[f] || !a[f]) ? Object.assign(u[f], a[f] || {}) : u[f] = a[f]), u), E), E; } function S(a, d) { return Object.keys(a).filter((u) => a[u] != null).reduce((u, f) => { if (d.has(f)) { const b = d.get(f); if (typeof b == "string") u[b] = a[f]; else { const x = b(f, a[f], a); Object.assign(u, x); } } else u[f] = a[f]; return u; }, {}); } function k(a, d, E = /* @__PURE__ */ new Map()) { const u = P(a, d); return S(u, E); } function g(a) { var E; const d = a.type; if (d) { const u = e[d]; if (!u) return a; const f = P(a, u), b = ((E = a.editor) == null ? void 0 : E.type) || ""; if (b) { const x = e[b], D = P(a.editor, x); f.editor = D; } return f; } return a; } function T(a) { n = a; } return { getSchemaByType: C, resolveSchemaWithDefaultValue: g, resolveSchemaToProps: k, mappingSchemaToProps: S, setDesignerContext: T }; } const At = {}, Bt = {}, { getSchemaByType: Un, resolveSchemaWithDefaultValue: Lt, resolveSchemaToProps: Wn, mappingSchemaToProps: _n, setDesignerContext: Jn } = ae(At, Bt); function Vt(e = {}) { function t(g, T, a, d) { if (typeof a == "number") return d[g].length === a; if (typeof a == "object") { const E = Object.keys(a)[0], u = a[E]; if (E === "not") return Number(d[g].length) !== Number(u); if (E === "moreThan") return Number(d[g].length) >= Number(u); if (E === "lessThan") return Number(d[g].length) <= Number(u); } return !1; } function n(g, T, a, d) { return d[g] && d[g].propertyValue && String(d[g].propertyValue.value) === String(a); } const l = /* @__PURE__ */ new Map([ ["length", t], ["getProperty", n] ]); Object.keys(e).reduce((g, T) => (g.set(T, e[T]), g), l); function O(g, T) { const a = g; return typeof T == "number" ? [{ target: a, operator: "length", param: null, value: Number(T) }] : typeof T == "boolean" ? [{ target: a, operator: "getProperty", param: g, value: !!T }] : typeof T == "object" ? Object.keys(T).map((d) => { if (d === "length") return { target: a, operator: "length", param: null, value: T[d] }; const E = d, u = T[d]; return { target: a, operator: "getProperty", param: E, value: u }; }) : []; } function C(g) { return Object.keys(g).reduce((a, d) => { const E = O(d, g[d]); return a.push(...E), a; }, []); } function P(g, T) { if (l.has(g.operator)) { const a = l.get(g.operator); return a && a(g.target, g.param, g.value, T) || !1; } return !1; } function S(g, T) { return C(g).reduce((E, u) => E && P(u, T), !0); } function k(g, T) { const a = Object.keys(g), d = a.includes("allOf"), E = a.includes("anyOf"), u = d || E, x = (u ? g[u ? d ? "allOf" : "anyOf" : "allOf"] : [g]).map((L) => S(L, T)); return d ? !x.includes(!1) : x.includes(!0); } return { parseValueSchema: k }; } const Ht = { convertTo: (e, t, n, l) => { e.appearance || (e.appearance = {}), e.appearance[t] = n; }, convertFrom: (e, t, n) => e.appearance ? e.appearance[t] : e[t] }, It = { convertFrom: (e, t, n) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无" }, Gt = { convertTo: (e, t, n, l) => { e.editor && (e.editor[t] = n); }, convertFrom: (e, t, n) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, t) ? e.editor[t] : e[t] }, wt = { button: { type: "button", name: "按钮" }, "response-toolbar": { type: "response-toolbar", name: "工具栏" }, "response-toolbar-item": { type: "response-toolbar-item", name: "按钮" }, "content-container": { type: "content-container", name: "容器" }, "input-group": { type: "input-group", name: "文本" }, textarea: { type: "textarea", name: "多行文本" }, lookup: { type: "lookup", name: "帮助" }, "number-spinner": { type: "number-spinner", name: "数值" }, "date-picker": { type: "date-picker", name: "日期" }, switch: { type: "switch", name: "开关" }, "radio-group": { type: "radio-group", name: "单选组" }, "check-box": { type: "check-box", name: "复选框" }, "check-group": { type: "check-group", name: "复选框组" }, "combo-list": { type: "combo-list", name: "下拉列表" }, "response-form": { type: "response-form", name: "卡片面板" }, "response-layout": { type: "response-layout", name: "布局容器", icon: "response-layout-3" }, "response-layout-item": { type: "response-layout-item", name: "布局", icon: "response-layout-1" }, "tree-grid": { type: "tree-grid", name: "树表格" }, "tree-grid-column": { type: "tree-grid-column", name: "树表格列" }, "data-grid": { type: "data-grid", name: "表格" }, "data-grid-column": { type: "data-grid-column", name: "表格列" }, module: { type: "Module", name: "模块" }, component: { type: "component", name: "组件" }, tabs: { type: "tabs", name: "标签页" }, "tab-page": { type: "tab-page", name: "标签页项", dependentParentControl: "Tab" }, "tab-toolbar-item": { type: "tab-toolbar-item", name: "标签页工具栏按钮" }, "html-template": { type: "html-template", name: "模板容器" }, "time-picker": { type: "time-picker", name: "时间选择" }, section: { type: "section", name: "分组面板" }, "section-toolbar": { type: "section-toolbar", name: "分组面板工具栏" }, "section-toolbar-item": { type: "section-toolbar-item", name: "分组面板按钮" }, splitter: { type: "splitter", name: "分栏面板" }, "splitter-pane": { type: "splitter-pane", name: "分栏面板项", dependentParentControl: "Splitter" }, "component-ref": { type: "component-ref", name: "组件引用节点" }, uploader: { type: "uploader", name: "附件上传" }, "page-header": { type: "page-header", name: "页头" }, "page-footer": { type: "page-footer", name: "页脚" }, "tab-toolbar": { type: "tab-toolbar", name: "标签页工具栏" }, fieldset: { type: "fieldset", name: "分组" }, "query-solution": { type: "query-solution", name: "筛选方案" }, drawer: { type: "drawer", name: "抽屉" }, "external-container": { type: "external-container", name: "外部容器", icon: "content-container" }, "list-nav": { type: "list-nav", name: "列表导航" }, "list-view": { type: "list-view", name: "列表" }, "filter-bar": { type: "filter-bar", name: "筛选条" }, "language-textbox": { type: "language-textbox", name: "多语输入框" } }, zt = { convertFrom: (e, t, n) => { var O; const l = e.editor && e.editor[t] ? e.editor[t] : e[t]; return ((O = wt[l]) == null ? void 0 : O.name) || l; } }, ht = { convertTo: (e, t, n, l) => { e[t] = e[t]; }, convertFrom: (e, t, n) => e.editor ? n.getRealEditorType(e.editor.type) : "" }, qt = { convertTo: (e, t, n, l) => { (e.type === "data-grid-column" || e.type === "tree-grid-column") && (e.formatter ? e.formatter[t] = n : e.formatter = { [t]: n }); }, convertFrom: (e, t, n) => { if (e.formatter) { if (t === "trueText") return e.formatter.trueText; if (t === "falseText") return e.formatter.falseText; if (t === "prefix") return e.formatter.prefix; if (t === "suffix") return e.formatter.suffix; if (t === "precision") return e.formatter.precision; if (t === "decimal") return e.formatter.decimal; if (t === "thousand") return e.formatter.thousand; if (t === "tempDateFormat") return e.formatter.dateFormat === "yyyy年MM月dd日" ? "yearMonthDay" : e.formatter.dateFormat === "yyyy-MM-dd HH:mm:ss" ? "yyyy-MM-ddTHH:mm:ss" : e.formatter.dateFormat === "yyyy/MM/dd HH:mm:ss" ? "yyyy/MM/ddTHH:mm:ss" : e.formatter.dateFormat === "yyyy年MM月dd日 HH时mm分ss秒" ? "yearMonthDayHourMinuteSecond" : e.formatter.tempDateFormat || e.formatter.dateFormat || "yyyy-MM-dd"; if (t === "customFormat") return e.formatter.customFormat; if (t === "type") return e.formatter.type || "none"; } return "none"; } }, Ut = { convertTo: (e, t, n, l) => { e.command ? e.command[t] = n : e.command = { [t]: n }, t === "enable" && n && (e.command.commands || (e.command.commands = [ { text: "编辑", type: "primary", command: "edit" }, { text: "删除", type: "danger", command: "remove" } ])); }, convertFrom: (e, t, n) => e.command && t === "enable" ? e.command.enable : "" }, Wt = { convertTo: (e, t, n, l) => { e.column ? e.column[t] = n : e.column = { [t]: n }, t === "fitColumns" && n && (e.column.fitMode || (e.column.fitMode = "average")); }, convertFrom: (e, t, n) => { if (e.column) { if (t === "fitColumns") return e.column.fitColumns; if (t === "fitMode") return e.column.fitMode; } return ""; } }, _t = { convertTo: (e, t, n, l) => { e.summary ? e.summary[t] = n : e.summary = { [t]: n }, t === "enable" && n && (e.summary ? e.summary.groupFields || (e.summary.groupFields = []) : e.summary = { enable: n, groupFields: [] }); }, convertFrom: (e, t, n) => e.summary && t === "enable" ? e.summary.enable : e.type === "data-grid-column" ? e.enableSummary === void 0 ? !1 : e.enableSummary : "" }, Jt = { convertTo: (e, t, n, l) => { e.group ? e.group[t] = n : e.group = { [t]: n }, t === "enable" && n && (e.group ? e.group.groupFields || (e.group.groupFields = []) : e.group = { enable: n, groupFields: [], showSummary: !1 }); }, convertFrom: (e, t, n) => { if (e.group) { if (t === "enable") return e.group.enable; if (t === "showSummary") return e.group.showSummary; } } }, Qt = { convertFrom: (e, t) => e.binding ? e.binding.path : "", convertTo: (e, t, n) => { if (n && n.length > 0) { const l = n[0]; e.binding || (e.binding = {}), e.binding.type = "Form", e.binding.path = l.bindingField, e.binding.field = l.id, e.binding.fullPath = l.path, e.path = l.bindingPath; } } }, Xt = { convertTo: (e, t, n, l) => { e.pagination || (e.pagination = {}), e.pagination[t] = n; }, convertFrom: (e, t, n) => e.pagination ? e.pagination[t] : e[t] }, Yt = { convertTo: (e, t, n, l) => { e.rowNumber || (e.rowNumber = {}), e.rowNumber[t] = n; }, convertFrom: (e, t, n) => e.rowNumber ? e.rowNumber[t] : e[t] }, Zt = { convertTo: (e, t, n, l) => { e.selection || (e.selection = {}), e.selection[t] = n; }, convertFrom: (e, t, n) => e.selection ? e.selection[t] : e[t] }, Kt = { convertFrom: (e, t, n) => e[t] && e[t].length ? `共 ${e[t].length} 项` : "" }, er = { convertFrom: (e, t) => e[t] || "", convertTo: (e, t, n) => { e[t] = n; } }, tr = { convertTo: (e, t, n, l) => { e.size || (e.size = {}), e.size[t] = n; }, convertFrom: (e, t, n) => e.size ? e.size[t] : e[t] }, rr = { convertFrom: (e, t, n) => { var l, O; return (l = e.formatter) != null && l.data && t === "formatterEnumData" && !e.formatterEnumData ? (O = e.formatter) == null ? void 0 : O.data : e.formatterEnumData; } }, nr = { convertTo: (e, t, n, l) => { e.sort || (e.sort = {}), e.sort[t] = n; }, convertFrom: (e, t, n) => { var l, O; if (t === "mode") return ((l = e.sort) == null ? void 0 : l.mode) || "client"; if (t === "multiSort") return !!((O = e.sort) != null && O.multiSort); } }, or = { convertTo: (e, t, n, l) => { e.filter || (e.filter = {}), e.filter[t] = n; }, convertFrom: (e, t, n) => { var l; if (t === "mode") return ((l = e.filter) == null ? void 0 : l.mode) || "client"; } }, ir = { convertTo: (e, t, n, l) => { e.rowOption ? e.rowOption[t] = n : e.rowOption = { [t]: n }; }, convertFrom: (e, t, n) => { if (e.rowOption) { if (t === "customRowStyle") return e.rowOption.customRowStyle; if (t === "customCellStyle") return e.rowOption.customCellStyle; } return ""; } }; function ue(e, t, n) { const l = /* @__PURE__ */ new Map([ ["/converter/appearance.converter", Ht], ["/converter/buttons.converter", It], ["/converter/property-editor.converter", Gt], ["/converter/items-count.converter", Kt], ["/converter/type.converter", zt], ["/converter/change-editor.converter", ht], ["/converter/change-formatter.converter", qt], ["/converter/column-command.converter", Ut], ["/converter/column-option.converter", Wt], ["/converter/summary.converter", _t], ["/converter/group.converter", Jt], ["/converter/form-group-label.converter", er], ["/converter/field-selector.converter", Qt], ["/converter/pagination.converter", Xt], ["/converter/row-number.converter", Yt], ["/converter/grid-selection.converter", Zt], ["/converter/size.converter", tr], ["/converter/change-formatter-enum.converter", rr], ["/converter/grid-sort.converter", nr], ["/converter/grid-filter.converter", or], ["/converter/row-option.converter", ir] ]), O = /* @__PURE__ */ new Map([ ["string", { type: "input-group", enableClear: !1 }], ["boolean", { type: "combo-list", textField: "name", valueField: "value", idField: "value", enableClear: !1, editable: !1, data: [ { value: !0, name: "是" }, { value: !1, name: "否" } ] }], ["enum", { type: "combo-list", maxHeight: 128, enableClear: !1, editable: !1 }], ["array", { type: "button-edit" }], ["number", { type: "number-spinner", placeholder: "" }], ["events-editor", { type: "events-editor", hide: !0 }] ]), C = Vt(); function P(u, f) { return () => C.parseValueSchema(u, f); } function S(u, f, b) { return u.includes("visible") && f.visible !== void 0 ? typeof f.visible == "boolean" ? () => !!f.visible : f.visible === void 0 ? !0 : P(f.visible, b) : () => !0; } function k(u, f, b) { return u.includes("readonly") && f.readonly !== void 0 ? typeof f.readonly == "boolean" ? () => !!f.readonly : P(f.readonly, b) : () => !1; } function g(u, f) { const b = u.$converter || f; return typeof b == "string" && b && l.has(b) ? l.get(b) || null : b || null; } function T(u, f, b, x, D, L = "", I = "") { return Object.keys(u).map(($) => { const G = Q(1), w = $, F = u[$], V = Object.keys(F), q = F.title, U = F.type, h = O.get(U) || { type: "input-group", enableClear: !1 }, z = F.editor ? Object.assign({}, h, F.editor) : Object.assign({}, h), _ = S(V, F, f), W = k(V, F, f); z.readonly = z.readonly === void 0 ? W() : z.readonly; const r = F.type === "cascade" ? T(F.properties, f, b, x, D, L, I) : [], m = !0; let p = g(F, I); const y = fe({ get() { if (G.value) { if (["class", "style"].find((N) => N === w) && !p && (p = l.get("/converter/appearance.converter") || null), p && p.convertFrom) return p.convertFrom(b, $, D, L); const j = b[$]; return Object.prototype.hasOwnProperty.call(F, "defaultValue") && (j === void 0 || typeof j == "string" && j === "") ? F.type === "boolean" ? F.defaultValue : F.defaultValue || "" : j; } return null; }, set(j) { G.value += 1, p && p.convertTo ? (p.convertTo(x, $, j, D, L), p.convertTo(b, $, j, D, L)) : (x[$] = j, b[$] = j); } }), { refreshPanelAfterChanged: v, description: R, isExpand: M, parentPropertyID: A } = F, B = { propertyID: w, propertyName: q, propertyType: U, propertyValue: y, editor: z, visible: _, readonly: W, cascadeConfig: r, hideCascadeTitle: m, refreshPanelAfterChanged: v, description: R, isExpand: M, parentPropertyID: A }; return f[w] = B, B; }); } function a(u, f, b = {}) { const x = {}, D = e[u]; return D && D.categories ? Object.keys(D.categories).map((I) => { const H = D.categories[I], $ = H == null ? void 0 : H.title, G = T(H.properties || {}, x, {}, b, f); return { categoryId: I, categoryName: $, properties: G }; }) : []; } function d(u, f, b, x, D = "") { const L = f.$ref.schema, I = f.$ref.converter, H = b[L], $ = H.type, G = n(H), w = {}, F = e[$]; if (F && F.categories) { const V = F.categories[u], q = V == null ? void 0 : V.title; I && Object.keys(V.properties).forEach((z) => { V.properties[z].$converter = I; }); const U = (V == null ? void 0 : V.properties) || {}, h = T(U, w, G, H, x, D); return { categoryId: u, categoryName: q, properties: h }; } return { categoryId: u, categoryName: "", properties: [] }; } function E(u, f, b, x, D) { const L = u.type, I = n(u), H = {}; let $ = D || e[L]; if ($ && Object.keys($).length === 0 && b && b.getPropConfig && ($ = b.getPropConfig(x)), $ && $.categories) { const G = []; return Object.keys($.categories).map((w) => { const F = $.categories[w]; if (F.$ref) { G.push(d(w, F, u, f, x)); return; } const V = F == null ? void 0 : F.title, q = F == null ? void 0 : F.tabId, U = F == null ? void 0 : F.tabName, h = F == null ? void 0 : F.hide, z = F == null ? void 0 : F.hideTitle, _ = T(F.properties || {}, H, I, u, f, x, F.$converter), { setPropertyRelates: W } = F, r = F == null ? void 0 : F.parentPropertyID; G.push({ categoryId: w, categoryName: V, tabId: q, tabName: U, hide: h, properties: _, hideTitle: z, setPropertyRelates: W, parentPropertyID: r }); }), G; } return []; } return { getPropertyConfigBySchema: E, getPropertyConfigByType: a, propertyConverterMap: l }; } const sr = {}, cr = {}; ue(sr, cr, Lt); const ar = {}, ur = {}, { getSchemaByType: Qn, resolveSchemaWithDefaultValue: lr, resolveSchemaToProps: Xn, mappingSchemaToProps: Yn, setDesignerContext: Zn } = ae(ar, ur), fr = {}, pr = {}; ue(fr, pr, lr); function mr() { function e(t, n) { const { id: l } = t || {}; if (t.binding === void 0) return {}; if (t.binding && Object.keys(t.binding).length < 1) return {}; const { field: O } = t.binding || {}; return { modelValue: n.getValue(l), "onUpdate:modelValue": (C) => { n.setValue(l, O, C); } }; } return { resolve: e }; } function dr() { return (e, t, n) => { const l = t.id, { type: O } = t, C = e.emits; return C ? C.filter((P) => P !== "update:modelValue").reduce((P, S) => { const k = `on${S.charAt(0).toUpperCase()}${S.slice(1)}`; return P[k] = (...g) => { n.dispatch(l, S, O, g); }, P; }, {}) : {}; }; } function gr(e, t) { function n(l, O, C, P) { e.emit("event", { token: l, name: O, type: C, payloads: P, schema: t }); } return { dispatch: n }; } function vr() { const e = /* @__PURE__ */ new Map(); function t(k, g) { e.set(k, g); } function n(k) { const g = e.get(k); return g || (console.warn(`Instance with id ${k} not found`), null); } function l(k) { e.delete(k); } function O(k, g) { if (!e.has(k)) { console.warn(`Instance with id ${k} not found`); return; } e.set(k, g); } function C(k) { return e.has(k); } function P() { return new Map(e); } function S() { e.clear(); } return { register: t, get: n, remove: l, update: O, has: C, getAll: P, clear: S }; } function br(e, t) { function n(O) { return e.value && e.value[O]; } function l(O, C, P) { e.value && (e.value[O] = P), C && t.emit("update:modelValue", { elementId: O, field: C, value: P, modelValue: e.value }); } return { getValue: n, setValue: l }; } function le(e) { function t() { var n, l; return ((l = (n = e == null ? void 0 : e.module) == null ? void 0 : n.entity[0]) == null ? void 0 : l.entities[0]) || {}; } return { getSchemaEntity: t }; } function yr(e) { const { getSchemaEntity: t } = le(e); function n(C) { const P = t(); return O(P, C); } function l(C) { var T, a; const P = []; function S(d, E) { var b; const u = [...E, d.label]; (((b = C == null ? void 0 : C.type) == null ? void 0 : b.primary) || null) && P.push({ bindingPaths: u, primaryKey: d.type.primary, label: d.label }), d.type.entities.forEach((x) => { S(x, u); }); } return (((T = C == null ? void 0 : C.type) == null ? void 0 : T.primary) || null) && (P.push({ bindingPaths: [], primaryKey: C.type.primary, label: C.label }), (((a = C == null ? void 0 : C.type) == null ? void 0 : a.entities) || []).forEach((d) => { S(d, []); })), P; } function O(C, P, S = !0) { const k = S ? [] : [C.label]; if (C.label === P) return { bindingPaths: k, primaryKey: C.type.primary, label: C.label }; for (const g of C.type.entities) { const T = O(g, P, !1); if (T) return { bindingPaths: [...k, ...T.bindingPaths], primaryKey: T.primaryKey, label: T.label }; } return null; } return { resolveEntityByDataSource: n, resolveEntity: O, resolveEntities: l }; } function Fr(e) { const t = {}, { getSchemaEntity: n } = le(e), { resolveEntities: l } = yr(e); function O() { const P = n(); l(P).forEach((k) => { const g = "/" + k.bindingPaths.join("/"), { primaryKey: T } = k, a = { primaryKey: T, bindingPath: g, label: k.label, currentId: null }; t[g] = a; }); } function C(P) { return Array.isArray(P) ? P = "/" + P.join("/") : P = "/" + P.split("/").filter((S) => S).join("/"), t[P]; } return { setup: O, get: C }; } function Cr(e) { function t(n, l) { return e(n, l); } return { call: t }; } const ce = /* @__PURE__ */ pe({ name: "FDynamicView", props: Nt, emits: ["update:modelValue", "event", "componentReady"], setup(e, t) { const n = Q(e.schema), l = Q(e.modelValue), O = Q(e.callback), { customComponentRenders: C } = e, P = /* @__PURE__ */ new Map(), S = /* @__PURE__ */ new Map(); $t(); const k = vr(), g = br(l, t), T = Fr(n.value); T.setup(); const a = /* @__PURE__ */ new Map(); function d(r) { const m = r.type, { dataSource: p, binding: y = void 0 } = r; if (!p && y === void 0) return {}; p && S.set(p, r); const v = o[m]; return (v && v.bindingResolver ? v.bindingResolver : mr()).resolve(r, g); } function E(r) { const m = {}; return r && Object.entries(r).forEach(([p, y]) => { m[p] = () => Array.isArray(y) ? y.map((v) => D(v)) : D(y); }), m; } function u(r) { const m = r.type, p = o[m]; if (!p || Object.keys(p).length < 1) return {}; const { callbackResolver: y, editorResolver: v } = p, R = Cr(O.value); if (v) { const A = v.resolve(r).type, B = o[A], { callbackResolver: j } = B || {}; return j ? j.resolve(r, R) : {}; } return y ? y.resolve(r, R) : {}; } function f(r) { const m = r.type, p = gr(t, r), y = i[m], v = dr(), R = o[m], M = R ? R.editorResolver : null; if (M) { const j = M.resolve(r).type, N = i[j]; return v ? v(N, r, p) : {}; } return v ? v(y, r, p) : {}; } function b(r) { return {}; } function x(r) { var B, j; const m = r.type, p = s[m], y = p ? p(r) : {}, v = { ...f(r) }, R = { ...u(r) }, M = { ...y, ...d(r), ...b() }; return m === "component" && (M.code = (j = (B = n.value) == null ? void 0 : B.module) == null ? void 0 : j.code), { props: { ...M, key: r.id, ref: (N) => { N && r.id && !k.has(r.id) && (k.register(r.id, N), t.emit("componentReady", { ref: Q(N), id: r.id, type: r.type })); } }, eventProps: v, callbackProps: R }; } function D(r) { var M, A, B; const m = r.type, p = i[m]; if (C && C[m]) return C[m](r, p); if (m === "component-ref") { const j = (A = (M = n.value) == null ? void 0 : M.module) == null ? void 0 : A.components.find((N) => N.id === r.component); if (j) return D(j); } if (r.id && P.set(r.id, r), !p) return null; const y = () => r.contents ? typeof r.contents == "string" ? r.contents : r.contents.map((j) => D(j)) : null, v = (j, N, J) => { let X; return J && J.length > 0 ? X = ee(j, { ...N }, J) : X = ee(j, { ...N }, null), X; }, R = ((B = a.get(r.id)) == null ? void 0 : B.props) || {}; return r.contents && r.contents.length > 0 ? v(p, R, [y()]) : r.slots ? v(p, R, [...Object.values(E(r.slots))]) : v(p, R); } function L(r) { r.$forceUpdate && r.$forceUpdate(); } function I(r) { return g.getValue(r); } function H(r) { return P.get(r); } function $(r, m) { const p = P.get(r); if (!p) return; const y = k.get(r); if (!y) return; re(p, m); const v = p.type, R = o[v], M = R ? R.updateColumnsResolver : null; M && M.updateColumns(y, p), L(y); } function G(r) { var m; return (m = a.get(r)) == null ? void 0 : m.props; } function w(r, m) { const p = a.get(r); ne(p == null ? void 0 : p.props, m, _); } function F(r, m, ...p) { const y = k.get(r); if (y) { if (!y || typeof y[m] != "function") throw new Error(`Method ${m} not found on instance ${r}`); return y[m](...p); } } function V(r, m) { const p = T.get(r); if (!p) return; const y = p.label, v = S.get(y); if (!v) return; const R = v.type, M = o[R], A = M ? M.selectionItemResolver : null; if (A) { const B = k.get(v.id); A.selectItemById(B, m); } } function q(r) { var B, j; const m = r.type; if (m === "component-ref") { const N = (j = (B = n.value) == null ? void 0 : B.module) == null ? void 0 : j.components.find((J) => J.id === r.component); if (N) return q(N); } if (!i[m]) return; const { props: y, eventProps: v, callbackProps: R } = x(r), M = o[m], A = M ? M.editorResolver : null; if (A) { const N = A.resolve(r); Object.assign(N, v, R); } else Object.assign(y, v, R); if (y && Object.keys(y).length > 0) { const N = a.get(r.id); N ? re(N == null ? void 0 : N.props, y) : a.set(r.id, K({ props: y })); } !r.contents || !Array.isArray(r.contents) || r.contents.forEach((N) => q(N)); } function U(r, m) { const p = s[r]; return p ? p(m, !1) : {}; } function h(r) { var v, R; const m = r.type; if (m === "component-ref") { const M = (R = (v = n.value) == null ? void 0 : v.module) == null ? void 0 : R.components.find((A) => A.id === r.component); if (M) return h(M); } if (!i[m]) return; const y = d(r); if (y && Object.keys(y).length > 0) { const M = a.get(r.id); if (!M) a.set(r.id, K({ props: y })); else { const A = { ...M == null ? void 0 : M.props }; Object.keys(y).forEach((B) => { A[B] = y[B]; }), Object.assign(M == null ? void 0 : M.props, A); } } !r.contents || !Array.isArray(r.contents) || r.contents.forEach((M) => h(M)); } function z() { var p, y, v, R; const r = (y = (p = n.value) == null ? void 0 : p.module) == null ? void 0 : y.components; if (!r || r.length < 1) return null; const m = r.find((M) => M.componentType && M.componentType.toLowerCase() === "frame"); return m ? (m.formCode = (R = (v = n.value) == null ? void 0 : v.module) == null ? void 0 : R.code, m) : null; } function _(r, m) { if (Array.isArray(r) && Array.isArray(m)) { const p = /* @__PURE__ */ new Map(); return r.forEach((v) => { v.id != null && p.set(v.id, v); }), m.forEach((v) => { if (v.id != null) { const R = p.get(v.id); R ? p.set(v.id, ne(R, v, _)) : p.set(v.id, Y(v)); } }), Array.from(p.values()); } } Z(() => e.modelValue, (r) => { l.value = r; const m = z(); m && h(m); }); function W(r) { if (r) { n.value = r; const m = z(); if (!m) return; q(m); } } return Z(() => e.schema, (r) => { W(r); }), W(e.schema), t.expose({ componentManager: k, rerender: L, getProps: G, invoke: F, setProps: w, selectItemById: V, getSchema: H, setSchema: $, convertPartialSchemaToProps: U, getControlValue: I }), () => { var p, y; const r = (y = (p = n.value) == null ? void 0 : p.module) == null ? void 0 : y.components; if (!r || r.length < 1) return null; const m = r.find((v) => v.componentType && v.componentType.toLowerCase() === "frame"); return m ? D(m) : null; }; } }), Kn = { install(e) { e.component(ce.name, ce); } }; export { ce as FDynamicView, i as componentMap, s as componentPropsConverter, Kn as default, Nt as dynamicViewProps, $t as loadRegister, o as resolverMap };