@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1,061 lines (1,060 loc) • 37.7 kB
JavaScript
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
};