@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1,248 lines • 116 kB
JavaScript
var We = Object.defineProperty;
var De = (e, n, t) => n in e ? We(e, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[n] = t;
var V = (e, n, t) => De(e, typeof n != "symbol" ? n + "" : n, t);
import { ref as T, computed as _, defineComponent as re, watch as Q, createVNode as x, createTextVNode as ge, mergeProps as _e, reactive as Xe, withDirectives as Te, resolveDirective as Je, Fragment as ve, inject as be, onMounted as Ce, onBeforeMount as Qe, vModelText as Ye, nextTick as Ie } from "vue";
import { isPlainObject as Fe, cloneDeep as me, debounce as He } from "lodash-es";
import Ze from "../accordion/index.esm.js";
import Ke from "../../designer/avatar/index.esm.js";
import et from "../../designer/approval-logs/index.esm.js";
import tt from "../../designer/button-edit/index.esm.js";
import nt from "../button-group/index.esm.js";
import it from "../button/index.esm.js";
import rt from "../calendar/index.esm.js";
import ot from "../../designer/capsule/index.esm.js";
import xe from "../../designer/checkbox/index.esm.js";
import we from "../../designer/checkbox-group/index.esm.js";
import at from "../combo-list/index.esm.js";
import st from "../combo-tree/index.esm.js";
import lt from "../component/index.esm.js";
import dt from "../color-picker/index.esm.js";
import ut from "../content-container/index.esm.js";
import ct from "../../designer/date-picker/index.esm.js";
import pt from "../../designer/data-grid/index.esm.js";
import ft from "../dropdown/index.esm.js";
import mt from "../../designer/dynamic-form/index.esm.js";
import gt from "../events-editor/index.esm.js";
import vt from "../filter-bar/index.esm.js";
import ht from "../field-selector/index.esm.js";
import yt from "../binding-selector/index.esm.js";
import bt from "../image-cropper/index.esm.js";
import Ct from "../../designer/input-group/index.esm.js";
import Ft from "../layout/index.esm.js";
import xt from "../list-nav/index.esm.js";
import wt from "../../designer/list-view/index.esm.js";
import Et from "../lookup/index.esm.js";
import St from "../mapping-editor/index.esm.js";
import Pt from "../../designer/nav/index.esm.js";
import kt from "../number-range/index.esm.js";
import Tt from "../../designer/number-spinner/index.esm.js";
import It from "../order/index.esm.js";
import Vt from "../page-header/index.esm.js";
import Mt from "../page-footer/index.esm.js";
import Lt from "../pagination/index.esm.js";
import Bt from "../progress/index.esm.js";
import Nt from "../query-solution/index.esm.js";
import Ot from "../../designer/radio-group/index.esm.js";
import Rt from "../../designer/rate/index.esm.js";
import $t from "../../designer/response-toolbar/index.esm.js";
import At from "../response-layout/index.esm.js";
import Ut from "../../designer/response-layout-editor/index.esm.js";
import qt from "../search-box/index.esm.js";
import jt from "../../designer/section/index.esm.js";
import Gt from "../smoke-detector/index.esm.js";
import zt from "../splitter/index.esm.js";
import Wt from "../step/index.esm.js";
import Dt from "../../designer/switch/index.esm.js";
import _t from "../../designer/tabs/index.esm.js";
import Xt from "../../designer/tags/index.esm.js";
import Jt from "../text/index.esm.js";
import Qt from "../../designer/time-picker/index.esm.js";
import Yt from "../transfer/index.esm.js";
import Ht from "../tree-view/index.esm.js";
import Zt from "../uploader/index.esm.js";
import Kt from "../verify-detail/index.esm.js";
import en from "../video/index.esm.js";
import tn from "../../designer/textarea/index.esm.js";
import nn from "../schema-selector/index.esm.js";
import rn from "../../designer/tree-grid/index.esm.js";
import on from "../event-parameter/index.esm.js";
import an from "../filter-condition-editor/index.esm.js";
import sn from "../fieldset/index.esm.js";
import ln from "../sort-condition-editor/index.esm.js";
import dn from "../menu-lookup/index.esm.js";
import un from "../../designer/drawer/index.esm.js";
import cn from "../json-editor/index.esm.js";
import pn from "../property-editor/index.esm.js";
import fn from "../expression-editor/index.esm.js";
import mn from "../code-editor/index.esm.js";
import gn from "../html-template/index.esm.js";
import vn from "../collection-property-editor/index.esm.js";
import hn from "../../designer/modal/index.esm.js";
import yn from "../external-container/index.esm.js";
import bn from "../language-textbox/index.esm.js";
import Cn from "../image/index.esm.js";
import Fn from "../comment/index.esm.js";
import xn from "../../designer/wizard/index.esm.js";
import { schemaResolverMap as wn, propertyEffectMap as En, propertyConfigSchemaMap as Sn, schemaMap as Pn, createPropsResolver as kn } from "../dynamic-resolver/index.esm.js";
import { useThirdComponent as Tn, isMobilePhone as In, FormSchemaEntityField$Type as Ee, FormSchemaEntityFieldType$Type as Vn, EVENT_PROPERTY_TAB_IDS as Se } from "../common/index.esm.js";
import Mn from "../tooltip/index.esm.js";
import { DgControl as v, canvasChanged as ce, refreshCanvas as Ln } from "../designer-canvas/index.esm.js";
const Bn = {
width: { type: String, default: "300px" },
height: { type: Number, default: 10 },
isWidePanel: { type: Boolean, default: !1 },
/** 是否启用搜索 */
enableSearch: { type: Boolean, default: !0 },
/** 使用模式 */
mode: { type: String, default: "panel" },
/** 是否持有面板的隐藏显示状态 */
isPersitOpenState: { type: Boolean, default: !1 },
/** isPersitOpenState=true时,控制面板是否隐藏显示 */
isShowPanel: { type: Boolean, default: !1 },
/** 属性名 */
propertyName: { type: String, default: "" },
/** 属性类型 */
propertyConfig: { type: Array },
/** 属性值 */
propertyData: { type: Object, default: {} },
/** 是否展示关闭按钮 */
showCloseBtn: { type: Boolean, default: !1 },
/** 当前选中的标签页id */
selectedTabId: { type: String, default: "" },
/** 是否是白色主题 */
isWhiteTheme: { type: Boolean, default: !0 },
/** dom结构 */
schema: { type: Object, default: {} },
/** 属性变更后事件 */
propertyChanged: { type: Function },
/** 允许折叠面板 */
allowCollapse: { type: Boolean, default: !0 }
};
function Nn(e = {}) {
function n(p, m, s, u) {
if (typeof s == "number")
return u[p].length === s;
if (typeof s == "object") {
const f = Object.keys(s)[0], d = s[f];
if (f === "not")
return Number(u[p].length) !== Number(d);
if (f === "moreThan")
return Number(u[p].length) >= Number(d);
if (f === "lessThan")
return Number(u[p].length) <= Number(d);
}
return !1;
}
function t(p, m, s, u) {
return u[p] && u[p].propertyValue && String(u[p].propertyValue.value) === String(s);
}
const i = /* @__PURE__ */ new Map([
["length", n],
["getProperty", t]
]);
Object.keys(e).reduce((p, m) => (p.set(m, e[m]), p), i);
function r(p, m) {
const s = p;
return typeof m == "number" ? [{ target: s, operator: "length", param: null, value: Number(m) }] : typeof m == "boolean" ? [{ target: s, operator: "getProperty", param: p, value: !!m }] : typeof m == "object" ? Object.keys(m).map((u) => {
if (u === "length")
return { target: s, operator: "length", param: null, value: m[u] };
const f = u, d = m[u];
return { target: s, operator: "getProperty", param: f, value: d };
}) : [];
}
function o(p) {
return Object.keys(p).reduce((s, u) => {
const f = r(u, p[u]);
return s.push(...f), s;
}, []);
}
function a(p, m) {
if (i.has(p.operator)) {
const s = i.get(p.operator);
return s && s(p.target, p.param, p.value, m) || !1;
}
return !1;
}
function g(p, m) {
return o(p).reduce((f, d) => f && a(d, m), !0);
}
function c(p, m) {
const s = Object.keys(p), u = s.includes("allOf"), f = s.includes("anyOf"), d = u || f, w = (d ? p[d ? u ? "allOf" : "anyOf" : "allOf"] : [p]).map(($) => g($, m));
return u ? !w.includes(!1) : w.includes(!0);
}
return { parseValueSchema: c };
}
const On = {
convertTo: (e, n, t, i) => {
e.appearance || (e.appearance = {}), e.appearance[n] = t;
},
convertFrom: (e, n, t) => e.appearance ? e.appearance[n] : e[n]
}, Rn = {
convertFrom: (e, n, t) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无"
}, $n = {
convertTo: (e, n, t, i) => {
e.editor && (e.editor[n] = t);
},
convertFrom: (e, n, t) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, n) ? e.editor[n] : e[n]
}, An = {
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: "标签页工具栏按钮" },
"drawer-toolbar-item": { type: "drawer-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: "标签页工具栏" },
"drawer-toolbar": { type: "drawer-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: "列表导航" },
nav: { type: "nav", name: "标签类导航" },
"list-view": { type: "list-view", name: "列表" },
"filter-bar": { type: "filter-bar", name: "筛选条" },
"language-textbox": { type: "language-textbox", name: "多语输入框" },
image: { type: "image", name: "图像" },
avatar: { type: "avatar", name: "头像" },
"discussion-editor": { type: "discussion-editor", name: "评论编辑区" },
"discussion-list": { type: "discussion-list", name: "评论列表" },
comment: { type: "comment", name: "评论区" },
"approval-logs": { type: "approval-logs", name: "审批记录" },
"rich-text-editor": { type: "rich-text-editor", name: "富文本", icon: "rich-text-box" },
calendar: { type: "calendar", name: "日历", icon: "date-picker" },
wizard: { type: "wizard", name: "向导", icon: "wizard" },
"wizard-page": { type: "wizard-page", name: "向导页", icon: "wizard" },
"wizard-page-detail": { type: "wizard-page-detail", name: "向导详情", icon: "wizard" },
step: { type: "step", name: "步骤条", icon: "step" },
"dynamic-form": { type: "dynamic-form", name: "动态表单" }
}, Un = {
convertFrom: (e, n, t) => {
var r;
const i = e.editor && e.editor[n] ? e.editor[n] : e[n];
return ((r = An[i]) == null ? void 0 : r.name) || i;
}
}, qn = {
convertTo: (e, n, t, i) => {
e[n] = e[n];
},
convertFrom: (e, n, t) => e.editor ? t.getRealEditorType(e.editor.type) : ""
}, jn = {
convertTo: (e, n, t, i) => {
(e.type === "data-grid-column" || e.type === "tree-grid-column") && (e.formatter ? e.formatter[n] = t : e.formatter = {
[n]: t
});
},
convertFrom: (e, n, t) => {
if (e.formatter) {
if (n === "trueText")
return e.formatter.trueText;
if (n === "falseText")
return e.formatter.falseText;
if (n === "prefix")
return e.formatter.prefix;
if (n === "suffix")
return e.formatter.suffix;
if (n === "precision")
return e.formatter.precision;
if (n === "decimal")
return e.formatter.decimal;
if (n === "thousand")
return e.formatter.thousand;
if (n === "dateFormat")
return e.formatter.dateFormat || "yyyy-MM-dd";
if (n === "customFormat")
return e.formatter.customFormat;
if (n === "type")
return e.formatter.type || "none";
}
return "none";
}
}, Gn = {
convertTo: (e, n, t, i) => {
e.command ? e.command[n] = t : e.command = {
[n]: t
}, n === "enableType" && t === "default" && (e.command.enable = !0, e.command.formatter = "", e.command.commands = [
{
text: "编辑",
type: "primary",
command: "edit"
},
{
text: "删除",
type: "danger",
command: "remove"
}
]), n === "enableType" && t === "custom" && (e.command.enable = !0, e.command.commands = [
{
value: "add",
text: "增加",
type: "link"
},
{
value: "edit",
text: "编辑",
type: "link"
},
{
value: "remove",
text: "删除",
type: "link"
}
]), n === "enableType" && t === "unable" && (e.command.enable = !1, e.command.formatter = "");
},
convertFrom: (e, n, t) => {
var i, r;
if (e.command) {
if (n === "enableType") {
if (e.command.enableType)
return e.command.enableType;
const o = (r = (i = e.command) == null ? void 0 : i.commands) == null ? void 0 : r.find((a) => a.command === "edit" && a.type === "primary");
return e.command.enable ? o ? "default" : "custom" : "unable";
}
if (n === "commands")
return e.command.enableType === "custom" ? e.command.commands : [];
if (n === "formatter")
return e.command.formatter;
if (n === "count")
return e.command.count;
if (n === "columnWidth")
return e.command.columnWidth || 200;
}
return "";
}
}, zn = {
convertTo: (e, n, t, i) => {
e.column ? e.column[n] = t : e.column = {
[n]: t
}, n === "fitColumns" && t && (e.column.fitMode || (e.column.fitMode = "average"));
},
convertFrom: (e, n, t) => {
if (e.column) {
if (n === "fitColumns")
return e.column.fitColumns;
if (n === "fitMode")
return e.column.fitMode;
}
return "";
}
}, Wn = {
convertTo: (e, n, t, i) => {
e.summary ? e.summary[n] = t : e.summary = {
[n]: t
}, n === "enable" && t && (e.summary ? e.summary.groupFields || (e.summary.groupFields = []) : e.summary = {
enable: t,
groupFields: []
});
},
convertFrom: (e, n, t) => {
var i, r;
return n === "customSummaryStyle" ? e.summary.customSummaryStyle : n === "position" ? ((i = e.summary) == null ? void 0 : i[n]) || "bottom" : n === "customRender" ? ((r = e.summary) == null ? void 0 : r[n]) || "" : e.summary && n === "enable" ? e.summary.enable : e.type === "data-grid-column" ? e.enableSummary === void 0 ? !1 : e.enableSummary : "";
}
}, Dn = {
convertTo: (e, n, t, i) => {
e.group ? e.group[n] = t : e.group = {
[n]: t
}, n === "enable" && t && (e.group ? e.group.groupFields || (e.group.groupFields = []) : e.group = {
enable: t,
groupFields: [],
showSummary: !1,
customRender: ""
});
},
convertFrom: (e, n, t) => {
if (e.group) {
if (n === "enable")
return e.group.enable;
if (n === "showSummary")
return e.group.showSummary;
if (n === "customRender")
return e.group.customRender;
if (n === "groupFields")
return e.group.groupFields;
}
}
}, _n = {
convertFrom: (e, n) => e.binding ? e.binding.path : "",
convertTo: (e, n, t) => {
if (t && t.length > 0) {
const i = t[0];
e.binding || (e.binding = {}), e.binding.type = "Form", e.binding.path = i.bindingField, e.binding.field = i.id, e.binding.fullPath = i.path, e.path = i.bindingPath;
}
}
}, Xn = {
convertTo: (e, n, t, i) => {
e.pagination || (e.pagination = {}), n === "sizeLimits" ? e.pagination.sizeLimits = t.split(",") : e.pagination[n] = t;
},
convertFrom: (e, n, t) => {
var i;
return e.pagination ? n === "sizeLimits" ? (i = e.pagination.sizeLimits) == null ? void 0 : i.join(",") : e.pagination[n] : e[n];
}
}, Jn = {
convertTo: (e, n, t, i) => {
e.rowNumber || (e.rowNumber = {}), e.rowNumber[n] = t;
},
convertFrom: (e, n, t) => e.rowNumber ? e.rowNumber[n] : e[n]
}, Qn = {
convertTo: (e, n, t, i) => {
e.selection || (e.selection = {}), e.selection[n] = t;
},
convertFrom: (e, n, t) => {
if (!e.selection)
return !!e[n];
const i = !!e.selection[n];
return n === "showCheckbox" && i == null && e.selection.multiSelect === !0 ? !0 : i;
}
}, Yn = {
convertFrom: (e, n, t) => e[n] && e[n].length ? `共 ${e[n].length} 项` : ""
}, Hn = {
convertFrom: (e, n) => e[n] || "",
convertTo: (e, n, t) => {
e[n] = t;
}
}, Zn = {
convertTo: (e, n, t, i) => {
e.size || (e.size = {}), e.size[n] = t;
},
convertFrom: (e, n, t) => e.size ? e.size[n] : e[n]
}, Kn = {
convertFrom: (e, n, t) => {
var i, r;
return (i = e.formatter) != null && i.data && n === "formatterEnumData" && !e.formatterEnumData ? (r = e.formatter) == null ? void 0 : r.data : e.formatterEnumData;
}
}, ei = {
convertTo: (e, n, t, i) => {
e.sort || (e.sort = {}), e.sort[n] = t;
},
convertFrom: (e, n, t) => {
var i, r;
if (n === "mode")
return ((i = e.sort) == null ? void 0 : i.mode) || "client";
if (n === "multiSort")
return !!((r = e.sort) != null && r.multiSort);
}
}, ti = {
convertTo: (e, n, t, i) => {
e.filter || (e.filter = {}), e.filter[n] = t, n === "enable" && (e.enableFilter = !1);
},
convertFrom: (e, n, t) => {
var i, r, o, a;
return n === "mode" ? ((i = e.filter) == null ? void 0 : i.mode) || "server" : n === "filterStyle" ? ((r = e.filter) == null ? void 0 : r.filterStyle) || "filter-column" : n === "enable" ? ((o = e.filter) == null ? void 0 : o.enable) !== void 0 ? !!e.filter.enable : !!e.enableFilter : ((a = e.filter) == null ? void 0 : a[n]) || void 0;
}
}, ni = {
convertTo: (e, n, t, i) => {
e.rowOption ? e.rowOption[n] = t : e.rowOption = {
[n]: t
};
},
convertFrom: (e, n, t) => {
if (e.rowOption) {
if (n === "customRowStyle")
return e.rowOption.customRowStyle;
if (n === "customCellStyle")
return e.rowOption.customCellStyle;
if (n === "height")
return e.rowOption.height;
}
return "";
}
}, ii = {
convertTo: (e, n, t, i) => {
(e.type === "data-grid-column" || e.type === "tree-grid-column") && (e[n] = t, n === "columnTemplateType" && t === "hyperlink" && (e.onClickLinkCommand ? e.columnTemplate = `
<span class="f-pretend-link f-cursor-pointer"
@click="(ctx)=>viewModel.current.${e.onClickLinkCommand || ""}({id: rowData.id,context: ctx})">
{{rowData.${e.field}}}
</span>` : e.columnTemplate = `
<span class="f-pretend-link f-cursor-pointer">
{{rowData.${e.field}}}
</span>`), n === "columnTemplateType" && t === "default" && (e.columnTemplate = ""), n === "columnTemplateType" && t === "custom" && (e.columnTemplate = ""));
},
convertFrom: (e, n, t) => n === "columnTemplate" ? e.columnTemplate : n === "columnTemplateType" ? e.columnTemplateType ? e.columnTemplateType || "default" : e.columnTemplate && !e.onClickLinkCommand ? "custom" : e.columnTemplate && e.onClickLinkCommand ? "hyperlink" : "default" : ""
}, ri = {
convertTo: (e, n, t, i) => {
e.hierarchy || (e.hierarchy = {
cascadeOption: {}
}), e.hierarchy.cascadeOption || (e.hierarchy.cascadeOption = {}), e.hierarchy.cascadeOption[n] = t;
},
convertFrom: (e, n, t) => {
var i, r;
return !!((r = (i = e.hierarchy) == null ? void 0 : i.cascadeOption) != null && r[n]);
}
};
function oi(e, n, t) {
const i = /* @__PURE__ */ new Map([
["/converter/appearance.converter", On],
["/converter/buttons.converter", Rn],
["/converter/property-editor.converter", $n],
["/converter/items-count.converter", Yn],
["/converter/type.converter", Un],
["/converter/change-editor.converter", qn],
["/converter/change-formatter.converter", jn],
["/converter/column-command.converter", Gn],
["/converter/column-option.converter", zn],
["/converter/summary.converter", Wn],
["/converter/group.converter", Dn],
["/converter/form-group-label.converter", Hn],
["/converter/field-selector.converter", _n],
["/converter/pagination.converter", Xn],
["/converter/row-number.converter", Jn],
["/converter/grid-selection.converter", Qn],
["/converter/size.converter", Zn],
["/converter/change-formatter-enum.converter", Kn],
["/converter/grid-sort.converter", ei],
["/converter/grid-filter.converter", ti],
["/converter/row-option.converter", ni],
["/converter/change-formatter-type.converter", ii],
["/converter/tree-auto-check.converter", ri]
]), r = /* @__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 }],
["multiLanguage", { type: "language-textbox" }]
]), o = Nn();
function a(d, l) {
return () => o.parseValueSchema(d, l);
}
function g(d, l, h) {
return d.includes("visible") && l.visible !== void 0 ? typeof l.visible == "boolean" ? () => !!l.visible : l.visible === void 0 ? !0 : a(l.visible, h) : () => !0;
}
function c(d, l, h) {
return d.includes("readonly") && l.readonly !== void 0 ? typeof l.readonly == "boolean" ? () => !!l.readonly : a(l.readonly, h) : () => !1;
}
function p(d, l) {
const h = d.$converter || l;
return typeof h == "string" && h && i.has(h) ? i.get(h) || null : h || null;
}
function m(d, l, h, w, I, $ = "", U = "") {
return Object.keys(d).map((O) => {
const L = T(1), G = O, N = d[O], k = Object.keys(N), Y = N.title, X = N.type, B = r.get(X) || { type: "input-group", enableClear: !1 }, q = N.editor ? Object.assign({}, B, N.editor) : Object.assign({}, B), R = g(k, N, l), z = c(k, N, l);
q.readonly = q.readonly === void 0 ? z() : q.readonly;
const W = N.type === "cascade" ? m(N.properties, l, h, w, I, $, U) : [], H = !0;
let D = p(N, U);
const oe = _({
get() {
if (L.value) {
if (["class", "style"].find((ne) => ne === G) && !D && (D = i.get("/converter/appearance.converter") || null), D && D.convertFrom) {
const ne = D.convertFrom(h, O, I, $);
return ne === void 0 && Object.prototype.hasOwnProperty.call(N, "defaultValue") ? N.type === "boolean" ? N.defaultValue : N.defaultValue || "" : ne;
}
const J = h[O];
return Object.prototype.hasOwnProperty.call(N, "defaultValue") && (J === void 0 || typeof J == "string" && J === "") ? N.type === "boolean" ? N.defaultValue : N.defaultValue || "" : J;
}
return null;
},
set(J) {
L.value += 1, D && D.convertTo ? (D.convertTo(w, O, J, I, $), D.convertTo(h, O, J, I, $)) : (w[O] = J, h[O] = J);
}
}), { refreshPanelAfterChanged: ae, description: K, isExpand: te, parentPropertyID: ee } = N, se = { propertyID: G, propertyName: Y, propertyType: X, propertyValue: oe, editor: q, visible: R, readonly: z, cascadeConfig: W, hideCascadeTitle: H, refreshPanelAfterChanged: ae, description: K, isExpand: te, parentPropertyID: ee };
return l[G] = se, se;
});
}
function s(d, l, h = {}) {
const w = {}, I = e[d];
return I && I.categories ? Object.keys(I.categories).map((U) => {
const A = I.categories[U], O = A == null ? void 0 : A.title, L = m(A.properties || {}, w, {}, h, l);
return { categoryId: U, categoryName: O, properties: L };
}) : [];
}
function u(d, l, h, w, I = "") {
const $ = l.$ref.schema, U = l.$ref.converter, A = h[$], O = A.type, L = t(A), G = {}, N = e[O];
if (N && N.categories) {
const k = N.categories[d], Y = k == null ? void 0 : k.title;
U && Object.keys(k.properties).forEach((q) => {
k.properties[q].$converter = U;
});
const X = (k == null ? void 0 : k.properties) || {}, B = m(X, G, L, A, w, I);
return { categoryId: d, categoryName: Y, properties: B };
}
return { categoryId: d, categoryName: "", properties: [] };
}
function f(d, l, h, w, I) {
const $ = d.type, U = t(d), A = {};
let O = I || e[$];
if (!(O && Object.keys(O).length > 0) && h && h.getPropConfig && (O = h.getPropConfig(w)), O && O.categories) {
const G = [];
return Object.keys(O.categories).map((N) => {
const k = O.categories[N];
if (k.$ref) {
G.push(u(N, k, d, l, w));
return;
}
const Y = k == null ? void 0 : k.title, X = k == null ? void 0 : k.tabId, B = k == null ? void 0 : k.tabName, q = k == null ? void 0 : k.hide, R = k == null ? void 0 : k.hideTitle, z = m(k.properties || {}, A, U, d, l, w, k.$converter), { setPropertyRelates: W } = k, H = k == null ? void 0 : k.parentPropertyID;
G.push({ categoryId: N, categoryName: Y, tabId: X, tabName: B, hide: q, properties: z, hideTitle: R, setPropertyRelates: W, parentPropertyID: H });
}), G;
}
return [];
}
return {
getPropertyConfigBySchema: f,
getPropertyConfigByType: s,
propertyConverterMap: i
};
}
function ai(e, n) {
let t;
function i(s) {
const { properties: u, title: f, ignore: d } = s, l = d && Array.isArray(d), h = Object.keys(u).reduce((w, I) => ((!l || !d.find(($) => $ === I)) && (w[I] = u[I].type === "object" && u[I].properties ? i(u[I]) : me(u[I].default)), w), {});
if (f && (!l || !d.find((w) => w === "id"))) {
const w = f.toLowerCase().replace(/-/g, "_");
h.id = `${w}_${Math.random().toString().slice(2, 6)}`;
}
return h;
}
function r(s) {
const { properties: u, title: f, required: d } = s;
if (d && Array.isArray(d)) {
const l = d.reduce((h, w) => (h[w] = u[w].type === "object" && u[w].properties ? i(u[w]) : me(u[w].default), h), {});
if (f && d.find((h) => h === "id")) {
const h = f.toLowerCase().replace(/-/g, "_");
l.id = `${h}_${Math.random().toString().slice(2, 6)}`;
}
return l;
}
return {
type: f
};
}
function o(s, u = {}, f) {
const d = e[s];
if (d) {
let l = r(d);
const h = n[s];
return l = h ? h({ getSchemaByType: o }, l, u, f) : l, t != null && t.appendIdentifyForNewControl && t.appendIdentifyForNewControl(l), l;
}
return null;
}
function a(s, u) {
const f = i(u);
return Object.keys(f).reduce((d, l) => (Object.prototype.hasOwnProperty.call(s, l) && (d[l] && Fe(d[l]) && Fe(s[l] || !s[l]) ? Object.assign(d[l], s[l] || {}) : d[l] = s[l]), d), f), f;
}
function g(s, u) {
return Object.keys(s).filter((d) => s[d] != null).reduce((d, l) => {
if (u.has(l)) {
const h = u.get(l);
if (typeof h == "string")
d[h] = s[l];
else {
const w = h(l, s[l], s);
Object.assign(d, w);
}
} else
d[l] = s[l];
return d;
}, {});
}
function c(s, u, f = /* @__PURE__ */ new Map()) {
const d = a(s, u);
return g(d, f);
}
function p(s) {
var f;
const u = s.type;
if (u) {
const d = e[u];
if (!d)
return s;
const l = a(s, d), h = ((f = s.editor) == null ? void 0 : f.type) || "";
if (h) {
const w = e[h], I = a(s.editor, w);
l.editor = I;
}
return l;
}
return s;
}
function m(s) {
t = s;
}
return { getSchemaByType: o, resolveSchemaWithDefaultValue: p, resolveSchemaToProps: c, mappingSchemaToProps: g, setDesignerContext: m };
}
const si = {}, li = {}, { resolveSchemaWithDefaultValue: di } = ai(si, li), ui = {}, ci = {}, { getPropertyConfigBySchema: fe } = oi(ui, ci, di), pi = {
/** 某一分类下的属性配置 */
// as PropType<ElementPropertyConfig>
category: { type: Object, default: {} },
categoryKey: { type: String },
/** 属性值 */
propertyData: { type: Object, default: {} },
valueChanged: { type: Function },
triggerRefreshPanel: { type: Function }
}, fi = {
elementConfig: { type: Object, default: {} },
category: { type: Object, default: {} }
}, mi = {
id: { type: String, default: "" },
customClass: { type: String, default: "" },
customStyle: { type: String, default: "" },
/** 筛选组件配置器,具体配置项可查看各组件文档 */
editor: { type: Object, default: {} },
label: { type: String, default: "" },
/** value is uncertain because type is uncertain, default value should not be set */
modelValue: { type: [String, Boolean, Array, Number], default: null },
// readonly: { type: Boolean, default: false },
visible: { type: Boolean, default: !0 },
required: { type: Boolean, default: !1 },
showLabel: { type: Boolean, default: !0 },
/**
* visible相当于showLabel为true,none相当于showLabel为false
*/
showLabelType: { type: String, default: "visible" },
type: { type: String, default: "input-group" },
componentId: { type: String, default: "" },
errors: { type: Object, default: null },
fill: { type: Boolean, default: !1 },
enableTips: { type: Boolean, default: !1 },
tipsContent: { type: [Object, String], default: "" },
linkLabel: { type: String, default: !1 }
}, gi = {
id: { type: String },
required: { type: Boolean, default: !1 },
text: { type: String, default: "" },
title: { type: String },
valid: { type: Boolean, default: !0 },
inValidTip: { type: String, default: "" },
/**
* 实际支持 'visible'可见 | 'reserve-space' 占位不显示
*/
showType: { type: String, default: "visible" },
isLink: { type: Boolean, default: !1 }
}, vi = /* @__PURE__ */ re({
name: "FDynamicFormLabel",
props: gi,
emits: ["clickLabel"],
setup(e, n) {
T(e.title || e.text);
const t = T(e.required), i = T(e.text), r = T(e.valid), o = T(e.inValidTip);
Q(() => e.text, () => {
i.value = e.text;
}), Q(() => e.required, (u, f) => {
u !== f && (t.value = u);
}), Q([() => e.valid, () => e.inValidTip], ([u, f]) => {
r.value = u, o.value = f;
});
const a = _(() => r.value ? i.value : o.value), g = _(() => r.value ? "" : "color:red"), c = _(() => ({
"col-form-label": !0,
// 指定必填,当显示模式是隐藏或者没有指定标签名时,宽度不限定
"f-width-auto": t.value && (e.showType === "none" || !i.value)
})), p = _(() => e.showType === "force-none" ? !1 : e.showType === "reserve-space" || t.value || e.showType !== "none"), m = () => {
e.showType !== "reserve-space" && n.emit("clickLabel");
}, s = _(() => ({
"farris-label-text": !0,
"f-pretend-link": !!e.isLink && e.showType !== "reserve-space"
}));
return () => p.value && x("label", {
class: c.value,
title: a.value,
style: g.value
}, [!r.value && x("span", {
class: "f-icon f-icon-warning mr-1",
style: "color: red; min-width: 16px;",
title: o.value
}, null), x("span", {
class: s.value,
onClick: m
}, [t.value && x("span", {
class: "farris-label-info text-danger"
}, [ge("*")]), e.showType === "visible" && i.value])]);
}
}), { globalStorageKey: hi } = Tn(), y = {}, b = {}, C = {}, F = {};
async function yi() {
{
const e = {
schemaMap: Pn,
propertyConfigSchemaMap: Sn,
propertyEffectMap: En,
schemaResolverMap: wn
};
Ke.register(y, b, C, F), Ze.register(y, b, C, F), et.register(y, b, C, F, e), tt.register(y, b, C, F), nt.register(y, b, C, F), it.register(y, b, C, F), rt.register(y, b, C, F, e), ot.register(y, b, C, F), xe.register(y, b, C, F, e), we.register(y, b, C, F, e), xe.register(y, b, C, F, e), we.register(y, b, C, F, e), at.register(y, b, C, F, e), st.register(y, b, C, F, e), lt.register(y, b, C, F), ut.register(y, b, C, F, e), dt.register(y, b, C, F, e), ct.register(y, b, C, F, e), pt.register(y, b, C, F, e), ft.register(y, b, C, F), mt.register(y, b, C, F, e), gt.register(y, b, C, F), fn.register(y, b, C, F), vt.register(y, b, C, F, e), ht.register(y, b, C, F), an.register(y, b, C, F), bt.register(y, b, C, F, e), Ct.register(y, b, C, F, e), Ft.register(y, b, C, F, e), wt.register(y, b, C, F, e), xt.register(y, b, C, F), Et.register(y, b, C, F, e), St.register(y, b, C, F), Pt.register(y, b, C, F, e), kt.register(y, b, C, F, e), Tt.register(y, b, C, F, e), It.register(y, b, C, F), Vt.register(y, b, C, F, e), Mt.register(y, b, C, F), Lt.register(y, b, C, F, e), Bt.register(y, b, C, F, e), Nt.register(y, b, C, F, e), Ot.register(y, b, C, F, e), Rt.register(y, b, C, F, e), At.register(y, b, C, F, e), Ut.register(y, b, C, F), $t.register(y, b, C, F, e), nn.register(y, b, C), qt.register(y, b, C, F, e), jt.register(y, b, C, F, e), Gt.register(y, b, C, F), zt.register(y, b, C, F, e), Wt.register(y, b, C, F, e), Dt.register(y, b, C, F, e), ln.register(y, b, C, F), _t.register(y, b, C, F, e), Xt.register(y, b, C, F, e), Jt.register(y, b, C, F), Qt.register(y, b, C, F, e), Yt.register(y, b, C, F, e), Ht.register(y, b, C, F, e), Kt.register(y, b, C, F), Zt.register(y, b, C, F, e), en.register(y, b, C, F), tn.register(y, b, C, F, e), rn.register(y, b, C, F, e), yt.register(y, b, C, F, e), on.register(y, b, C, F, e), sn.register(y, b, C, F, e), dn.register(y, b, C, F, e), un.register(y, b, C, F, e), cn.register(y, b, C, F, e), pn.register(y, b, C, F, e), mn.register(y, b, C, F), gn.register(y, b, C, F, e), vn.register(y, b, C, F), hn.register(y, b, C, F), yn.register(y, b, C, F), bn.register(y, b, C, F, e), Cn.register(y, b, C, F, e), Fn.register(y, b, C, F, e), xn.register(y, b, C, F, e);
const n = window[hi];
if (n)
for (const t in n)
n[t].createPropsResolver = kn, n[t].register(y, b, C);
}
}
function bi() {
yi();
function e(a) {
const g = y[a];
if (!g)
throw new Error(`Could not find the editor of type '${a}'`);
return g;
}
function n(a, g) {
const c = b[a];
return c ? c(g) : {};
}
function t(a) {
switch (a) {
case "check-box":
return "onChangeValue";
case "switch":
return "onModelValueChanged";
case "check-group":
return "onChangeValue";
case "combo-list":
case "combo-tree":
return "onChange";
case "combo-lookup":
return "";
case "year-range":
case "year-picker":
case "month-range":
case "month-picker":
case "date-range":
case "datetime-range":
case "datetime-picker":
return "onDatePicked";
case "date-picker":
return "onUpdate:modelValue";
case "time-picker":
return "onValueChange";
case "input-group":
return "onChange";
case "lookup":
case "sort-condition-editor":
case "filter-condition-editor":
case "code-editor":
case "language-textbox":
case "rich-text-editor":
return "onUpdate:modelValue";
case "number-range":
return "onValueChange";
case "number-spinner":
return "onValueChange";
case "radio-group":
return "onChangeValue";
case "text":
return "";
case "events-editor":
return "onSavedCommandListChanged";
case "grid-field-editor":
case "item-collection-editor":
case "response-form-layout-setting":
case "response-layout-editor-setting":
case "response-layout-splitter":
case "menu-lookup":
case "json-editor":
return "onChange";
case "field-selector":
case "binding-selector":
return "onFieldSelected";
case "schema-selector":
return "onSchemaSelected";
case "mapping-editor":
return "onMappingFieldsChanged";
case "textarea":
return "onChange";
case "query-solution-config":
case "solution-preset":
case "filter-bar-config":
return "onFieldsChanged";
case "property-editor":
return "onValueChange";
case "expression-editor":
return "onExpressionChanged";
case "collection-property-editor":
return "onValueChange";
default:
return "onUpdate:modelValue";
}
}
function i(a) {
switch (a) {
case "combo-list":
case "input-group":
case "textarea":
return "onClear";
}
}
function r(a) {
switch (a) {
case "input-group":
case "textarea":
return "onMousedownEvent";
}
}
function o(a) {
switch (a) {
case "input-group":
case "textarea":
return "onMouseupEvent";
}
}
return { resolveEditorProps: n, resolveEditorType: e, getChangeFunctionName: t, getClearFunctionName: i, getMousedownFunctionName: r, getMouseupFunctionName: o };
}
const Ci = {
/**
* 显示的错误信息
*/
errors: {
type: Object,
default: null
}
}, Fi = /* @__PURE__ */ re({
name: "FValidationMessage",
props: Ci,
emits: [],
setup(e, n) {
const t = T(e.errors);
Q(() => e.errors, (o) => {
t.value = o;
});
const i = T(!0), r = _(() => {
if (t.value) {
const o = Object.keys(t.value).map((a) => {
var g;
return (g = t.value[a]) == null ? void 0 : g.name;
});
return o.length ? o.join(" ") : "";
}
return "";
});
return () => r.value && x("div", {
class: "farris-feedback f-state-invalid",
onClick: () => i.value = !i.value
}, [!i.value && x("span", {
class: "f-icon f-icon-message_warning f-feedback-icon"
}, null), i.value && x("span", {
class: "f-feedback-message"
}, [r.value])]);
}
}), xi = /* @__PURE__ */ re({
name: "FDynamicFormGroup",
props: mi,
emits: ["change", "update:modelValue", "clickLabel"],
setup(e, n) {
var X;
const t = T(e.id), i = T(e.customClass), r = T(e.editor), o = T(e.label), a = T(e.modelValue), g = T(e.readonly), c = T(((X = e.editor) == null ? void 0 : X.required) || e.required), p = T(e.showLabel), m = T(e.visible);
T(e.type);
const s = T(), u = T(e.errors), f = In(), d = T(e.editor.type || "input-group"), l = _(() => p.value ? e.showLabelType : "none"), {
resolveEditorProps: h,
resolveEditorType: w,
getChangeFunctionName: I,
getClearFunctionName: $
} = bi(), U = _(() => {
const B = {
"form-group": !0,
"farris-form-group": !0,
"common-group": !0,
"q-state-readonly": g.value,
"align-items-start": r.value.type === "textarea" || r.value.type === "rich-text-editor",
"form-group--in-mobile": f
};
return B["form-group--has-" + d.value] = !0, B;
}), A = _(() => {
if (e.fill)
return {
maxWidth: "none"
};
});
function O(B, q, R) {
a.value = q !== void 0 ? q : B, n.emit("update:modelValue", a.value), n.emit("change", a.value, {
newValue: B,
newModelValue: q,
parameters: R
});
}
function L(B) {
return (...q) => {
typeof B == "function" && B(...q);
};
}
function G(B) {
return (q, R, z) => {
O(q, R, z), typeof B == "function" && B(q, R, z);
};
}
const N = _(() => {
const B = r.value.type || "input-group", q = w(B), R = h(B, r.value), z = I(B), W = $(r.value.type);
return W && (R[W] = L(R[W])), z && (R[z] = G(R[z])), (R.id == null || R.id === "") && (R.id = t.value), B === "number-range" && r.value.onBeginValueChange && typeof r.value.onBeginValueChange == "function" ? (r.value.onBeginValueChange && typeof r.value.onBeginValueChange == "function" && (R.onBeginValueChange = r.value.onBeginValueChange), r.value.onEndValueChange && typeof r.value.onEndValueChange == "function" && (R.onEndValueChange = r.value.onEndValueChange)) : B === "lookup" && r.value["onUpdate:idValue"] && typeof r.value["onUpdate:idValue"] == "function" ? (R["onUpdate:idValue"] = r.value["onUpdate:idValue"], R.id = t.value) : B === "collection-property-editor" && r.value.onSelectionChange && typeof r.value.onSelectionChange == "function" ? R.onSelectionChange = r.value.onSelectionChange : B === "property-editor" && (R.onBeforeOpenVariables = r.value.onBeforeOpenVariables), (B === "lookup" || B === "combo-list" || B === "date-picker") && (R.title = o.value), () => x(q, _e({
ref: s
}, R, {
modelValue: a.value,
"onUpdate:modelValue": (H) => a.value = H
}), n.slots);
});
function k() {
return x(Fi, {
id: `${t.value}-validation-message`,
errors: u.value
}, null);
}
Q([() => e.id, () => e.customClass, () => e.editor, () => e.label, () => e.modelValue, () => e.readonly, () => e.required, () => e.showLabel, () => e.visible, () => e.errors], ([B, q, R, z, W, H, D, oe, ae, K]) => {
var te;
t.value = B, i.value = q, r.value = R, o.value = z, a.value = W, g.value = H, c.value = ((te = r.value) == null ? void 0 : te.required) || D, p.value = oe, m.value = ae, u.value = K;
});
function Y(B) {
n.emit("clickLabel", B);
}
return n.expose({
editorRef: s
}), () => m.value && x("div", {
id: `${t.value}-form-group`,
class: i.value,
style: e.customStyle
}, [x("div", {
class: "farris-group-wrap",
style: A.value
}, [x("div", {
class: U.value
}, [n.slots.label ? n.slots.label() : x(vi, {
id: `${t.value}-lable`,
showType: l.value,
required: c.value,
text: o.value,
title: o.value,
isLink: !!e.linkLabel,
onClickLabel: Y
}, null), x("div", {
class: "farris-input-wrap"
}, [n.slots.content ? n.slots.content() : N.value(), k()]), !!e.enableTips && x(Mn, null, {
default: () => [x("span", {
class: "farris-label-tips ml-1"
}, [x("i", {
class: "f-icon f-icon-description-tips"
}, null)])],
contentTemplate: e.tipsContent
})])])]);
}
}), wi = /* @__PURE__ */ re({
name: "FPropertyPanelItem",
props: fi,
emits: ["propertyChange", "triggerRefreshPanel"],
setup(e, n) {
var s;
const t = T((s = e.category) == null ? void 0 : s.categoryId), i = T(e.elementConfig.propertyID), r = T(e.elementConfig.propertyName);
T(e.elementConfig.editor);
const o = T(e.elementConfig.propertyValue), a = _(() => {
const u = e.elementConfig.visible;
return {
"farris-group-wrap": !0,
"property-item": !0,
"d-none": !(typeof u == "boolean" ? u : u === void 0 ? !0 : u())
};
});
Q(() => {
var u;
return (u = e.elementConfig) == null ? void 0 : u.propertyValue;
}, (u) => {
o.value = u;
}), Q(() => {
var u;
return (u = e.elementConfig) == null ? void 0 : u.propertyName;
}, (u) => {
r.value = u;
});
function g(u, f) {
const {
parameters: d
} = f;
e.elementConfig.propertyValue = u;
const l = {
propertyID: e.elementConfig.propertyID,
propertyValue: u
};
n.emit("propertyChange", l, d, e.elementConfig.refreshPanelAfterChanged);
}
const c = e.elementConfig.description ? `<div style="color: gray; "> 描述 :${e.elementConfig.description}</div>` : "", p = Xe({
content: `
<div>
<div style="color: black; ">${e.elementConfig.propertyName}</div>
<div style="color: gray; ">ID:${e.elementConfig.propertyID}</div>
${c}
</div>`,
placement: "left"
}), m = T("");
return m.value = `${t.value}-${i.value}`, () => x("div", {
class: a.value
}, [e.elementConfig.propertyName && Te(x("label", {
class: `col-form-label ${m.value}`
}, [x("span", {
class: "farris-label-text"
}, [r.value])]), [[Je("tooltip"), p]]), x(xi, {
id: m.value,
showLabel: !1,
editor: e.elementConfig.editor,
modelValue: o.value,
onChange: g,
editorParams: e.elementConfig.editorParams
}, null)]);
}
}), Ei = /* @__PURE__ */ re({
name: "FPropertyPanelItemList",
props: pi,
emits: ["valueChanged", "submitModal", "triggerRefreshPanel"],
setup(e, n) {
const t = T(e.category);
function i(f) {
if (!f.hideCascadeTitle)
return x("div", {
class: "farris-input-wrap"
}, [x("input", {
title: "summary",
type: "input",
class: "form-control form-control-sm",
value: f.cascadeSummary,
readonly: !0
}, null)]);
}
function r(f, d) {
d.isExpand = !d.isExpand;
}
function o(f) {
return x("div", {
class: "landscape"
}, [x("button", {
title: "expand-button",
class: ["btn f-btn-collapse-expand f-btn-mx px-1", {
"f-state-expand": f.isExpand
}],
onClick: (d) => r(d, f)
}, [x("span", null, null)])]);
}
function a(f) {
return x("div", {
class: `f-section-formgroup-legend ${t.value.categoryId}-${f.propertyID}`
}, [x("div", {
class: "f-header px-0 my-0 col-form-label",
style: "font-size: inherit;"
}, [x("div", {
class: "wrap"
}, [x("span", {
class: ["f-icon mr-1", {
"f-icon-arrow-60-right": !f.isExpand,
"f-icon-arrow-60-down": f.isExpand
}]
}, null), x("span", {
class: "farris-label-text"
}, [f.propertyName])])])]);
}
function g(f) {
return `${e.categoryKey}_${f.propertyID}`;
}
async function c(f, d, l) {
f.categoryId = t.value.categoryId, t.value.enableCascade && (f.propertyPath = t.value.parentPropertyID), t.value.setPropertyRelates && await t.value.setPropertyRelates(f, e.propertyData, d), n.emit("valueChanged", {
changeObject: f
}), l && n.emit("triggerRefreshPanel");
}
function p() {
n.emit("triggerRefreshPanel");
}
function m(f) {
return x("div", {
class: "px-2 mb-2"
}, [x(wi, {
key: g(f),
elementConfig: f,
category: t.value,
onPropertyChange: c,
onTriggerRefreshPanel: p
}, null)]);
}
function s(f) {
var d;
return x("div", {
class: "propertyCascadeItem farris-panel px-2 mb-2"
}, [x("div", {
class: ["farris-panel-item card", {
hidden: !f.isExpand
}]
}, [x("div", {
class: "card-header",
onClick: (l) => r(l, f)
}, [x("div", {
class: "panel-item-title"
}, [x("div", {
class: "form-group farris-form-group line-item"
}, [a(f), i(f), o(f)])])]), x("div", {
class: ["card-body", {
hidden: !f.isExpand
}]
}, [(d = f.cascadeConfig) == null ? void 0 : d.map((l) => m(l))])])]);
}
Q(() => e.category, () => {
t.value = e.category;
});
function u(f) {
return f.propertyType === "cascade" ? s : m;
}
return () => x(ve, null, [t.value.properties.map((f) => u(f)(f))]);
}
}), Pe = /* @__PURE__ */ re({
name: "FPropertyPanel",
props: Bn,
emits: ["propertyChanged"],
setup(e, n) {
const t = T(e.width), i = T(e.isWidePanel), r = T(e.enableSearch), o = T(e.mode), a = T(e.isPersitOpenState), g = T(e.isShowPanel), c = T(), p = T(), m = T(e.showCloseBtn), s = T(e.selectedTabId), u = T(!0), f = T(e.isWhiteTheme);
let d = [], l = [];
const h = T(""), w = T(), I = T(), $ = be("SchemaService");
let U = [], A = null, O = "";
const L = T(), G = T(0), N = _(() => d.map((S) => !S.hide).length === 1), k = be("designerContext");
function Y() {
l = [], L.value && L.value.categoryList && Array.isArray(L.value.categoryList) && L.value.categoryList.length > 0 && L.value.categoryList.forEach((P) => {
if (P.properties && Array.isArray(P.properties) && P.properties.length > 0) {
const E = P.properties.map((M) => (M.category = P, M.propertyType === "cascade" && M.cascadeConfig && M.cascadeConfig.map((j) => {
j.category = P, j.cascadeParent = M, l = l.concat(j);
}), M));
l = l.concat(E);
}
});
}
function X(S) {
let P = S.offsetTop, E = S.offsetParent;
for (; E !== null; )
P += E.offsetTop, E = E.offsetParent;
return P;
}
function B(S, P) {
S && P && Object.keys(P).length > 0 && Object.k