@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1,598 lines • 57.2 kB
JavaScript
import { resolveAppearance as re, createPropsResolver as J } from "../../components/dynamic-resolver/index.esm.js";
import { getCustomStyle as Pe, getMaxZIndex as xe, EVENT_PROPERTY_TAB_IDS as Fe, withInstall as Re } from "../../components/common/index.esm.js";
import { ref as O, computed as D, defineComponent as oe, watch as V, onMounted as ne, watchEffect as $e, createVNode as m, Teleport as De, Transition as Y, withModifiers as G, Fragment as ie, nextTick as Oe, inject as Z } from "vue";
import Ee, { responseToolbarProps as Me } from "../../components/response-toolbar/index.esm.js";
import { isPlainObject as K, cloneDeep as ee } from "lodash-es";
import { LocaleService as te } from "../../components/locale/index.esm.js";
import { UseTemplateDragAndDropRules as je, DgControl as Ie, useDragulaCommonRule as Be, setPositionOfButtonGroup as Ne, useDesignerComponent as He, FDesignerInnerItem as Le, canvasChanged as ze } from "../../components/designer-canvas/index.esm.js";
import { commonToolbarItemDesignProps as Ae, FResponseToolbarDesign as ae, FResponseToolbarItemDesign as qe } from "../response-toolbar/index.esm.js";
import { BaseControlProperty as _e } from "../../components/property-panel/index.esm.js";
const se = /* @__PURE__ */ new Map([
["appearance", re]
]), We = /* @__PURE__ */ new Map([
["buttons", "items"],
["appearance", re]
]), Ve = "https://json-schema.org/draft/2020-12/schema", Ge = "https://farris-design.gitee.io/drawer.schema.json", Ue = "drawer", Ze = "A Farris Component", Ye = "object", Je = {
id: {
description: "The unique identifier for drawer",
type: "string"
},
type: {
description: "The type string of drawer",
type: "string",
default: "drawer"
},
appearance: {
description: "",
type: "object",
properties: {
class: {
type: "string"
},
style: {
type: "string"
}
},
default: {}
},
visible: {
description: "",
type: "boolean",
default: !0
},
title: {
description: "",
type: "string",
default: "详情"
},
position: {
description: "",
type: "string",
default: "right"
},
width: {
description: "",
type: "number",
default: 500
},
showMask: {
description: "",
type: "boolean",
default: !0
},
showHeader: {
description: "",
type: "boolean",
default: !0
},
showClose: {
description: "",
type: "boolean",
default: !0
},
customHeader: {
description: "",
type: "boolean",
default: !1
},
headerTemplate: {
description: "",
type: "object"
},
headerToolbar: {
description: "",
type: "object",
properties: {
appearance: {
description: "",
type: "object",
properties: {
class: {
type: "string",
default: ""
}
}
},
id: {
description: "",
type: "string"
},
type: {
description: "",
type: "string",
default: "drawer-toolbar"
},
alignment: {
description: "The alignment of Response Toolbar Button.",
type: "string",
default: "right"
},
buttons: {
description: "The items of Response Toolbar.",
type: "array",
default: []
}
}
},
showFooter: {
description: "",
type: "boolean",
default: !0
},
showEntry: {
description: "",
type: "boolean",
default: !1
},
footerToolbar: {
description: "",
type: "object",
properties: {
appearance: {
description: "",
type: "object",
properties: {
class: {
type: "string",
default: ""
}
}
},
id: {
description: "",
type: "string"
},
type: {
description: "",
type: "string",
default: "drawer-toolbar"
},
alignment: {
description: "The alignment of Response Toolbar Button.",
type: "string",
default: "right"
},
buttons: {
description: "The items of Response Toolbar.",
type: "array",
default: []
}
}
},
contents: {
description: "",
type: "array",
default: []
},
footerTemplate: {
description: "",
type: "object"
},
footerContentType: {
description: "",
type: "string",
default: "toolbar"
},
footerHeight: {
description: "",
type: "number",
default: 60
},
allowClickMaskToClose: {
description: "",
type: "boolean",
default: !0
},
transparent: {
description: "遮罩层是否透明",
type: "boolean",
default: !1
},
host: {
description: "",
type: "string"
}
}, Qe = [
"id",
"type",
"contents"
], Xe = {
beforeClose: "关闭前事件"
}, le = {
$schema: Ve,
$id: Ge,
title: Ue,
description: Ze,
type: Ye,
properties: Je,
required: Qe,
events: Xe
};
function ce(e, t, r) {
return Object.assign(t, {
title: "标题",
headerToolbar: {
id: t.id + "_header_toolbar",
type: "drawer-toolbar",
buttons: []
},
footerToolbar: {
id: t.id + "_footer_toolbar",
type: "drawer-toolbar",
buttons: []
}
}), t;
}
function ue(e, t, r) {
return t;
}
function de(e, t) {
let r;
function o(a) {
const { properties: u, title: g, ignore: i } = a, n = i && Array.isArray(i), s = Object.keys(u).reduce((d, w) => ((!n || !i.find((P) => P === w)) && (d[w] = u[w].type === "object" && u[w].properties ? o(u[w]) : ee(u[w].default)), d), {});
if (g && (!n || !i.find((d) => d === "id"))) {
const d = g.toLowerCase().replace(/-/g, "_");
s.id = `${d}_${Math.random().toString().slice(2, 6)}`;
}
return s;
}
function f(a) {
const { properties: u, title: g, required: i } = a;
if (i && Array.isArray(i)) {
const n = i.reduce((s, d) => (s[d] = u[d].type === "object" && u[d].properties ? o(u[d]) : ee(u[d].default), s), {});
if (g && i.find((s) => s === "id")) {
const s = g.toLowerCase().replace(/-/g, "_");
n.id = `${s}_${Math.random().toString().slice(2, 6)}`;
}
return n;
}
return {
type: g
};
}
function h(a, u = {}, g) {
const i = e[a];
if (i) {
let n = f(i);
const s = t[a];
return n = s ? s({ getSchemaByType: h }, n, u, g) : n, r != null && r.appendIdentifyForNewControl && r.appendIdentifyForNewControl(n), n;
}
return null;
}
function T(a, u) {
const g = o(u);
return Object.keys(g).reduce((i, n) => (Object.prototype.hasOwnProperty.call(a, n) && (i[n] && K(i[n]) && K(a[n] || !a[n]) ? Object.assign(i[n], a[n] || {}) : i[n] = a[n]), i), g), g;
}
function v(a, u) {
return Object.keys(a).filter((i) => a[i] != null).reduce((i, n) => {
if (u.has(n)) {
const s = u.get(n);
if (typeof s == "string")
i[s] = a[n];
else {
const d = s(n, a[n], a);
Object.assign(i, d);
}
} else
i[n] = a[n];
return i;
}, {});
}
function S(a, u, g = /* @__PURE__ */ new Map()) {
const i = T(a, u);
return v(i, g);
}
function p(a) {
var g;
const u = a.type;
if (u) {
const i = e[u];
if (!i)
return a;
const n = T(a, i), s = ((g = a.editor) == null ? void 0 : g.type) || "";
if (s) {
const d = e[s], w = T(a.editor, d);
n.editor = w;
}
return n;
}
return a;
}
function y(a) {
r = a;
}
return { getSchemaByType: h, resolveSchemaWithDefaultValue: p, resolveSchemaToProps: S, mappingSchemaToProps: v, setDesignerContext: y };
}
const fe = {}, me = {}, { resolveSchemaWithDefaultValue: Ke, resolveSchemaToProps: et, mappingSchemaToProps: tt } = de(fe, me);
function rt(e = {}) {
function t(p, y, a, u) {
if (typeof a == "number")
return u[p].length === a;
if (typeof a == "object") {
const g = Object.keys(a)[0], i = a[g];
if (g === "not")
return Number(u[p].length) !== Number(i);
if (g === "moreThan")
return Number(u[p].length) >= Number(i);
if (g === "lessThan")
return Number(u[p].length) <= Number(i);
}
return !1;
}
function r(p, y, a, u) {
return u[p] && u[p].propertyValue && String(u[p].propertyValue.value) === String(a);
}
const o = /* @__PURE__ */ new Map([
["length", t],
["getProperty", r]
]);
Object.keys(e).reduce((p, y) => (p.set(y, e[y]), p), o);
function f(p, y) {
const a = p;
return typeof y == "number" ? [{ target: a, operator: "length", param: null, value: Number(y) }] : typeof y == "boolean" ? [{ target: a, operator: "getProperty", param: p, value: !!y }] : typeof y == "object" ? Object.keys(y).map((u) => {
if (u === "length")
return { target: a, operator: "length", param: null, value: y[u] };
const g = u, i = y[u];
return { target: a, operator: "getProperty", param: g, value: i };
}) : [];
}
function h(p) {
return Object.keys(p).reduce((a, u) => {
const g = f(u, p[u]);
return a.push(...g), a;
}, []);
}
function T(p, y) {
if (o.has(p.operator)) {
const a = o.get(p.operator);
return a && a(p.target, p.param, p.value, y) || !1;
}
return !1;
}
function v(p, y) {
return h(p).reduce((g, i) => g && T(i, y), !0);
}
function S(p, y) {
const a = Object.keys(p), u = a.includes("allOf"), g = a.includes("anyOf"), i = u || g, d = (i ? p[i ? u ? "allOf" : "anyOf" : "allOf"] : [p]).map((P) => v(P, y));
return u ? !d.includes(!1) : d.includes(!0);
}
return { parseValueSchema: S };
}
const ot = {
convertTo: (e, t, r, o) => {
e.appearance || (e.appearance = {}), e.appearance[t] = r;
},
convertFrom: (e, t, r) => e.appearance ? e.appearance[t] : e[t]
}, nt = {
convertFrom: (e, t, r) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无"
}, it = {
convertTo: (e, t, r, o) => {
e.editor && (e.editor[t] = r);
},
convertFrom: (e, t, r) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, t) ? e.editor[t] : e[t]
}, at = {
button: { type: "button", name: "按钮" },
"response-toolbar": { type: "response-toolbar", name: "工具栏" },
"response-toolbar-item": { type: "response-toolbar-item", name: "按钮" },
"content-container": { type: "content-container", name: "容器" },
table: { type: "table", name: "表格布局" },
"table-td": { type: "table-td", 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: "动态表单" }
}, st = {
convertFrom: (e, t, r) => {
var f;
const o = e.editor && e.editor[t] ? e.editor[t] : e[t];
return ((f = at[o]) == null ? void 0 : f.name) || o;
}
}, lt = {
convertTo: (e, t, r, o) => {
e[t] = e[t];
},
convertFrom: (e, t, r) => e.editor ? r.getRealEditorType(e.editor.type) : ""
}, ct = {
convertTo: (e, t, r, o) => {
(e.type === "data-grid-column" || e.type === "tree-grid-column") && (e.formatter ? e.formatter[t] = r : e.formatter = {
[t]: r
});
},
convertFrom: (e, t, r) => {
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 === "dateFormat")
return 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, r, o) => {
e.command ? e.command[t] = r : e.command = {
[t]: r
}, t === "enableType" && r === "default" && (e.command.enable = !0, e.command.formatter = "", e.command.commands = [
{
text: "编辑",
type: "primary",
command: "edit"
},
{
text: "删除",
type: "danger",
command: "remove"
}
]), t === "enableType" && r === "custom" && (e.command.enable = !0, e.command.commands = [
{
value: "add",
text: "增加",
type: "link"
},
{
value: "edit",
text: "编辑",
type: "link"
},
{
value: "remove",
text: "删除",
type: "link"
}
]), t === "enableType" && r === "unable" && (e.command.enable = !1, e.command.formatter = "");
},
convertFrom: (e, t, r) => {
var o, f;
if (e.command) {
if (t === "enableType") {
if (e.command.enableType)
return e.command.enableType;
const h = (f = (o = e.command) == null ? void 0 : o.commands) == null ? void 0 : f.find((T) => T.command === "edit" && T.type === "primary");
return e.command.enable ? h ? "default" : "custom" : "unable";
}
if (t === "commands")
return e.command.enableType === "custom" ? e.command.commands : [];
if (t === "formatter")
return e.command.formatter;
if (t === "count")
return e.command.count;
if (t === "columnWidth")
return e.command.columnWidth || 200;
}
return "";
}
}, dt = {
convertTo: (e, t, r, o) => {
if (e.column || (e.column = {}), t === "fitMode") {
r && r !== "none" ? (e.column.fitColumns = !0, e.column.fitMode = r) : (e.column.fitColumns = !1, e.column.fitMode = "average");
return;
}
if (t === "fitColumns") {
e.column.fitColumns = r, r && !e.column.fitMode && (e.column.fitMode = "average");
return;
}
e.column[t] = r;
},
convertFrom: (e, t, r) => {
if (e.column) {
if (t === "fitMode")
return e.column.fitColumns ? e.column.fitMode || "average" : "none";
if (t === "fitColumns")
return e.column.fitColumns;
}
return t === "fitMode" ? "none" : "";
}
}, ft = {
convertTo: (e, t, r, o) => {
e.summary ? e.summary[t] = r : e.summary = {
[t]: r
}, t === "enable" && r && (e.summary ? e.summary.groupFields || (e.summary.groupFields = []) : e.summary = {
enable: r,
groupFields: []
});
},
convertFrom: (e, t, r) => {
var o, f;
return t === "customSummaryStyle" ? e.summary.customSummaryStyle : t === "position" ? ((o = e.summary) == null ? void 0 : o[t]) || "bottom" : t === "customRender" ? ((f = e.summary) == null ? void 0 : f[t]) || "" : e.summary && t === "enable" ? e.summary.enable : e.type === "data-grid-column" ? e.enableSummary === void 0 ? !1 : e.enableSummary : "";
}
}, mt = {
convertTo: (e, t, r, o) => {
e.group ? e.group[t] = r : e.group = {
[t]: r
}, t === "enable" && r && (e.group ? e.group.groupFields || (e.group.groupFields = []) : e.group = {
enable: r,
groupFields: [],
showSummary: !1,
customRender: ""
});
},
convertFrom: (e, t, r) => {
if (e.group) {
if (t === "enable")
return e.group.enable;
if (t === "showSummary")
return e.group.showSummary;
if (t === "customRender")
return e.group.customRender;
if (t === "groupFields")
return e.group.groupFields;
}
}
}, pt = {
convertFrom: (e, t) => e.binding ? e.binding.path : "",
convertTo: (e, t, r) => {
if (r && r.length > 0) {
const o = r[0];
e.binding || (e.binding = {}), e.binding.type = "Form", e.binding.path = o.bindingField, e.binding.field = o.id, e.binding.fullPath = o.path, e.path = o.bindingPath;
}
}
}, bt = {
convertTo: (e, t, r, o) => {
if (e.pagination || (e.pagination = {}), t === "sizeLimits")
if (r == null)
delete e.pagination.sizeLimits;
else {
const f = [...new Set(
String(r).split(",").map((h) => h.trim()).filter((h) => h !== "").map((h) => parseInt(h, 10)).filter((h) => !Number.isNaN(h) && h > 0)
)];
f.length > 0 ? e.pagination.sizeLimits = f : delete e.pagination.sizeLimits;
}
else
e.pagination[t] = r;
},
convertFrom: (e, t, r) => {
var o;
return e.pagination ? t === "sizeLimits" ? ((o = e.pagination.sizeLimits) == null ? void 0 : o.join(",")) ?? "" : e.pagination[t] : e[t];
}
}, gt = {
convertTo: (e, t, r, o) => {
e.rowNumber || (e.rowNumber = {}), e.rowNumber[t] = r;
},
convertFrom: (e, t, r) => e.rowNumber ? e.rowNumber[t] : e[t]
}, vt = {
convertTo: (e, t, r, o) => {
e.selection || (e.selection = {}), e.selection[t] = r;
},
convertFrom: (e, t, r) => {
if (!e.selection)
return !!e[t];
const o = !!e.selection[t];
return t === "showCheckbox" && o == null && e.selection.multiSelect === !0 ? !0 : o;
}
}, yt = {
convertFrom: (e, t, r) => e[t] && e[t].length ? `共 ${e[t].length} 项` : ""
}, ht = {
convertFrom: (e, t) => e[t] || "",
convertTo: (e, t, r) => {
e[t] = r;
}
}, wt = {
convertTo: (e, t, r, o) => {
e.size || (e.size = {}), e.size[t] = r;
},
convertFrom: (e, t, r) => e.size ? e.size[t] : e[t]
}, Tt = {
convertFrom: (e, t, r) => {
var o, f;
return (o = e.formatter) != null && o.data && t === "formatterEnumData" && !e.formatterEnumData ? (f = e.formatter) == null ? void 0 : f.data : e.formatterEnumData;
}
}, Ct = {
convertTo: (e, t, r, o) => {
e.sort || (e.sort = {}), e.sort[t] = r;
},
convertFrom: (e, t, r) => {
var o, f;
if (t === "mode")
return ((o = e.sort) == null ? void 0 : o.mode) || "client";
if (t === "multiSort")
return !!((f = e.sort) != null && f.multiSort);
}
}, kt = {
convertTo: (e, t, r, o) => {
e.filter || (e.filter = {}), e.filter[t] = r, t === "enable" && (e.enableFilter = !1);
},
convertFrom: (e, t, r) => {
var o, f, h, T;
return t === "mode" ? ((o = e.filter) == null ? void 0 : o.mode) || "server" : t === "filterStyle" ? ((f = e.filter) == null ? void 0 : f.filterStyle) || "filter-column" : t === "enable" ? ((h = e.filter) == null ? void 0 : h.enable) !== void 0 ? !!e.filter.enable : !!e.enableFilter : ((T = e.filter) == null ? void 0 : T[t]) || void 0;
}
}, St = {
convertTo: (e, t, r, o) => {
e.rowOption ? e.rowOption[t] = r : e.rowOption = {
[t]: r
};
},
convertFrom: (e, t, r) => {
if (e.rowOption) {
if (t === "customRowStyle")
return e.rowOption.customRowStyle;
if (t === "customCellStyle")
return e.rowOption.customCellStyle;
if (t === "height")
return e.rowOption.height;
}
return "";
}
}, Pt = {
convertTo: (e, t, r, o) => {
(e.type === "data-grid-column" || e.type === "tree-grid-column") && (e[t] = r, t === "columnTemplateType" && r === "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>`), t === "columnTemplateType" && r === "default" && (e.columnTemplate = ""), t === "columnTemplateType" && r === "custom" && (e.columnTemplate = ""));
},
convertFrom: (e, t, r) => t === "columnTemplate" ? e.columnTemplate : t === "columnTemplateType" ? e.columnTemplateType ? e.columnTemplateType || "default" : e.columnTemplate && !e.onClickLinkCommand ? "custom" : e.columnTemplate && e.onClickLinkCommand ? "hyperlink" : "default" : ""
}, xt = {
convertTo: (e, t, r, o) => {
e.hierarchy || (e.hierarchy = {
cascadeOption: {}
}), e.hierarchy.cascadeOption || (e.hierarchy.cascadeOption = {}), e.hierarchy.cascadeOption[t] = r;
},
convertFrom: (e, t, r) => {
var o, f;
return !!((f = (o = e.hierarchy) == null ? void 0 : o.cascadeOption) != null && f[t]);
}
};
function pe(e, t, r) {
const o = /* @__PURE__ */ new Map([
["/converter/appearance.converter", ot],
["/converter/buttons.converter", nt],
["/converter/property-editor.converter", it],
["/converter/items-count.converter", yt],
["/converter/type.converter", st],
["/converter/change-editor.converter", lt],
["/converter/change-formatter.converter", ct],
["/converter/column-command.converter", ut],
["/converter/column-option.converter", dt],
["/converter/summary.converter", ft],
["/converter/group.converter", mt],
["/converter/form-group-label.converter", ht],
["/converter/field-selector.converter", pt],
["/converter/pagination.converter", bt],
["/converter/row-number.converter", gt],
["/converter/grid-selection.converter", vt],
["/converter/size.converter", wt],
["/converter/change-formatter-enum.converter", Tt],
["/converter/grid-sort.converter", Ct],
["/converter/grid-filter.converter", kt],
["/converter/row-option.converter", St],
["/converter/change-formatter-type.converter", Pt],
["/converter/tree-auto-check.converter", xt]
]), f = /* @__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" }]
]), h = rt();
function T(i, n) {
return () => h.parseValueSchema(i, n);
}
function v(i, n, s) {
return i.includes("visible") && n.visible !== void 0 ? typeof n.visible == "boolean" ? () => !!n.visible : n.visible === void 0 ? !0 : T(n.visible, s) : () => !0;
}
function S(i, n, s) {
return i.includes("readonly") && n.readonly !== void 0 ? typeof n.readonly == "boolean" ? () => !!n.readonly : T(n.readonly, s) : () => !1;
}
function p(i, n) {
const s = i.$converter || n;
return typeof s == "string" && s && o.has(s) ? o.get(s) || null : s || null;
}
function y(i, n, s, d, w, P = "", $ = "") {
return Object.keys(i).map((k) => {
const E = O(1), c = k, l = i[k], b = Object.keys(l), j = l.title, x = l.type, B = f.get(x) || { type: "input-group", enableClear: !1 }, M = l.editor ? Object.assign({}, B, l.editor) : Object.assign({}, B), z = v(b, l, n), L = S(b, l, n);
M.readonly = M.readonly === void 0 ? L() : M.readonly;
const A = l.type === "cascade" ? y(l.properties, n, s, d, w, P, $) : [], q = !0;
let C = p(l, $);
const R = D({
get() {
if (E.value) {
if (["class", "style"].find((W) => W === c) && !C && (C = o.get("/converter/appearance.converter") || null), C && C.convertFrom) {
const W = C.convertFrom(s, k, w, P);
return W === void 0 && Object.prototype.hasOwnProperty.call(l, "defaultValue") ? l.type === "boolean" ? l.defaultValue : l.defaultValue || "" : W;
}
const H = s[k];
return Object.prototype.hasOwnProperty.call(l, "defaultValue") && (H === void 0 || typeof H == "string" && H === "") ? l.type === "boolean" ? l.defaultValue : l.defaultValue || "" : H;
}
return null;
},
set(H) {
E.value += 1, C && C.convertTo ? (C.convertTo(d, k, H, w, P), C.convertTo(s, k, H, w, P)) : (d[k] = H, s[k] = H);
}
}), { refreshPanelAfterChanged: N, description: I, isExpand: ke, parentPropertyID: Se } = l, X = { propertyID: c, propertyName: j, propertyType: x, propertyValue: R, editor: M, visible: z, readonly: L, cascadeConfig: A, hideCascadeTitle: q, refreshPanelAfterChanged: N, description: I, isExpand: ke, parentPropertyID: Se };
return n[c] = X, X;
});
}
function a(i, n, s = {}) {
const d = {}, w = e[i];
return w && w.categories ? Object.keys(w.categories).map(($) => {
const F = w.categories[$], k = F == null ? void 0 : F.title, E = y(F.properties || {}, d, {}, s, n);
return { categoryId: $, categoryName: k, properties: E };
}) : [];
}
function u(i, n, s, d, w = "") {
const P = n.$ref.schema, $ = n.$ref.converter, F = s[P], k = F.type, E = r(F), c = {}, l = e[k];
if (l && l.categories) {
const b = l.categories[i], j = b == null ? void 0 : b.title;
$ && Object.keys(b.properties).forEach((M) => {
b.properties[M].$converter = $;
});
const x = (b == null ? void 0 : b.properties) || {}, B = y(x, c, E, F, d, w);
return { categoryId: i, categoryName: j, properties: B };
}
return { categoryId: i, categoryName: "", properties: [] };
}
function g(i, n, s, d, w) {
const P = i.type, $ = r(i), F = {};
let k = w || e[P];
if (!(k && Object.keys(k).length > 0) && s && s.getPropConfig && (k = s.getPropConfig(d)), k && k.categories) {
const c = [];
return Object.keys(k.categories).map((l) => {
const b = k.categories[l];
if (b.$ref) {
c.push(u(l, b, i, n, d));
return;
}
const j = b == null ? void 0 : b.title, x = b == null ? void 0 : b.tabId, B = b == null ? void 0 : b.tabName, M = b == null ? void 0 : b.hide, z = b == null ? void 0 : b.hideTitle, L = y(b.properties || {}, F, $, i, n, d, b.$converter), { setPropertyRelates: A } = b, q = b == null ? void 0 : b.parentPropertyID;
c.push({ categoryId: l, categoryName: j, tabId: x, tabName: B, hide: M, properties: L, hideTitle: z, setPropertyRelates: A, parentPropertyID: q });
}), c;
}
return [];
}
return {
getPropertyConfigBySchema: g,
getPropertyConfigByType: a,
propertyConverterMap: o
};
}
const be = {}, ge = {};
pe(be, ge, Ke);
const ve = {}, ye = {}, { resolveSchemaWithDefaultValue: Ft } = de(ve, ye), he = {}, we = {};
pe(he, we, Ft);
function Rt(e, t, r = /* @__PURE__ */ new Map(), o = (T, v, S, p) => v, f = {}, h = (T) => T) {
return fe[t.title] = t, me[t.title] = o, be[t.title] = f, ge[t.title] = h, ve[t.title] = t, ye[t.title] = o, he[t.title] = f, we[t.title] = h, (T = {}, v = !0) => {
if (!v)
return tt(T, r);
const S = et(T, t, r), p = Object.keys(e).reduce((y, a) => (y[a] = e[a].default, y), {});
return Object.assign(p, S);
};
}
function $t(e, t) {
if (!e || e.length < 1)
return null;
for (const r of e) {
if (r.id === t)
return r;
if (r.children) {
const o = r.children.find((f) => f.id === t);
if (o)
return o;
}
}
return null;
}
function Dt() {
function e(t, r) {
const { footerToolbar: o, headerToolbar: f } = t, h = ((o == null ? void 0 : o.buttons) || []).concat((f == null ? void 0 : f.buttons) || []);
if (!h || h.length < 1)
return null;
const [T, v] = r.payloads, S = $t(h, v);
return S ? S.onClick || S.click : null;
}
return {
resolve: e
};
}
const Q = {
id: { type: String, required: !0 },
/**
* 背景色
*/
backgroundColor: { type: String, default: "#fff" },
/**
* 关闭对话框前事件, 是个函数,返回true或者false
*/
beforeClose: { type: Function, default: () => !0 },
/**
* 自定义抽屉样式
* @deprecated 请使用 customClass
*/
class: { type: String, default: "" },
/**
* 自定义抽屉蒙层样式
*/
modalClass: { type: String, default: "" },
/**
* 高度
*/
height: { type: String, default: 300 },
/**
* 打开关闭抽屉
*/
modelValue: { type: Boolean, default: !1 },
/**
* 从哪个位置呼出
*/
position: { type: String, default: "right" },
/**
* 抽屉插入位置
*/
appendTo: { type: String, default: "body" },
/**
* 是否展示打开抽屉入口
*/
showEntry: { type: Boolean, default: !1 },
/**
* 是否展示关闭按钮
*/
showClose: { type: Boolean, default: !0 },
/**
* 是否展示遮罩层
*/
showMask: { type: Boolean, default: !0 },
/**
* 点击遮罩是否关闭抽屉
*/
allowClickMaskToClose: { type: Boolean, default: !0 },
/**
* 抽屉是否透明
*/
transparent: { type: Boolean, default: !1 },
/**
* 标题
*/
title: { type: String, default: "" },
/**
* 宽度
*/
width: { type: String, default: 300 },
/**
* 渲染的DOM容器
*/
host: { type: [Object, String], default: "body" },
showHeader: { type: Boolean, default: !0 },
headerToolbar: { type: Object, default: {} },
headerTemplate: { type: Object, default: null },
showFooter: { type: Boolean, default: !0 },
footerTemplate: { type: Object, default: null },
footerToolbar: { type: Object, default: {} },
footerHeight: { type: Number, default: 60 },
buttons: { type: Array, default: [] },
customClass: { type: String, default: "" },
customStyle: { type: String, default: "" }
};
Rt(Q, le, se, ce);
const Ot = Dt();
function Et() {
return { drawerLocale: {
cancel: te.getLocaleValue("drawer.cancel") || "取消",
confirm: te.getLocaleValue("drawer.confirm") || "确定"
} };
}
const Mt = /* @__PURE__ */ oe({
name: "FDrawer",
props: Q,
emits: ["afterClose", "update:modelValue", "click"],
setup(e, t) {
Et();
const r = O(e.modelValue), o = O(e.buttons), f = O(!1), h = D(() => ({
"f-utils-absolute-all f-drawer": !0,
// 在某个DOM内部打开抽屉
"f-drawer-inline": typeof e.host == "string" ? e.host !== "body" : document.querySelector(e.host) !== document.body
})), T = D(() => ({
opacity: e.transparent ? 0 : 1
})), v = D(() => {
const c = {};
return e.maskClass && e.maskClass.split(" ").forEach((l) => {
c[l] = !0;
}), {
"f-drawer-mask f-utils-absolute-all": !0,
...c
};
}), S = D(() => {
const c = {};
return e.customClass && e.customClass.split(" ").forEach((l) => {
c[l] = !0;
}), {
"f-drawer-wrapper": !0,
[`f-drawer-wrapper-${e.position}`]: !0,
...c
};
}), p = D(() => {
const c = e.width;
return typeof c == "string" ? c : typeof c == "number" ? `${c}px` : "20%";
}), y = D(() => {
const c = e.height;
return typeof c == "string" ? c : typeof c == "number" ? `${c}px` : "20%";
}), a = D(() => {
let c = "-6px 0";
switch (e.position) {
case "left":
c = "6px 0";
break;
case "right":
c = "-6px 0";
break;
case "top":
c = "0 6px";
break;
case "bottom":
c = "0 -6px";
break;
}
const l = {
width: p.value,
height: y.value,
backgroundColor: e.backgroundColor,
maxWidth: "100%"
};
return e.transparent && (l.boxShadow = `${c} 8px 0 rgba(31, 35, 41, .1)`), Pe(l, e == null ? void 0 : e.customStyle);
}), u = D(() => `f-drawer-${e.position}`), g = (c) => {
Promise.resolve().then(() => {
var l;
return (l = e.beforeClose) == null ? void 0 : l.call(e);
}).then((l) => {
l && (r.value = !1, t.emit("update:modelValue", r.value), t.emit("afterClose"));
});
};
V(() => e.modelValue, (c, l) => {
c !== l && (r.value = c);
});
const i = (c, l) => {
t.emit("click", c, l);
}, n = {
close: () => {
r.value = !1;
}
};
async function s(c, l) {
c.handle && await c.handle(l, n) && t.emit("closed", l);
}
const d = (c, l) => m(Ee, {
class: l,
alignment: "right",
items: c,
onClick: i
}, null);
function w() {
var c, l, b, j;
if ((l = (c = e.footerToolbar) == null ? void 0 : c.buttons) != null && l.length && (e.footerToolbar.visible === void 0 || e.footerToolbar.visible)) {
const x = {
"f-utils-fill": !0
};
return (j = (b = e.footerToolbar) == null ? void 0 : b.appearance) != null && j.class && (x[e.footerToolbar.appearance.class] = !0), d(e.footerToolbar.buttons, x);
}
return o.value && !!o.value.length && o.value.map((x) => {
const B = O(x.disabled);
return m("button", {
id: x.id,
type: "button",
disabled: B.value,
class: x.class + (x.iconClass ? " btn-icontext" : ""),
onClick: (M) => {
s(x, M);
}
}, [!!x.iconClass && m("i", {
class: x.iconClass
}, null), x.text]);
});
}
function P() {
return e.footerTemplate && typeof e.footerTemplate == "function" ? e.footerTemplate() : t.slots.footerTemplate ? t.slots.footerTemplate() : w();
}
function $() {
var l, b;
const c = {
"f-utils-fill": !0
};
return (b = (l = e.headerToolbar) == null ? void 0 : l.appearance) != null && b.class && (c[e.headerToolbar.appearance.class] = !0), e.headerTemplate && typeof e.headerTemplate == "function" ? e.headerTemplate() : t.slots.headerTemplate ? t.slots.headerTemplate() : m(ie, null, [m("div", {
class: "f-drawer-title",
title: e.title
}, [e.title]), e.headerToolbar && (e.headerToolbar.visible === void 0 || e.headerToolbar.visible) && m("div", {
class: "f-utils-fill-flex-row mx-2 col-7"
}, [d(e.headerToolbar.buttons || [], c)]), e.showClose && m("div", {
class: "f-drawer-close"
}, [m("span", {
class: "f-icon f-icon-close",
onClick: G((j) => {
g();
}, ["stop"])
}, null)])]);
}
const F = O({});
function k() {
const c = xe();
F.value = {
zIndex: c < 1e3 ? 1e3 : c
};
}
function E() {
return f.value ? !0 : typeof e.host == "string" ? e.host === "body" ? !0 : !!document.querySelector(e.host) : !!e.host;
}
return f.value = E(), ne(() => {
f.value = E();
}), $e(() => {
r.value && k();
}), t.expose({
open: () => {
r.value = !0;
},
close: () => {
g();
}
}), () => f.value ? m(De, {
to: e.host
}, {
default: () => [m("div", {
class: h.value,
id: e.id,
style: F.value
}, [m(Y, {
name: "f-drawer-mask",
appear: !0
}, {
default: () => [r.value && e.showMask && m("div", {
class: v.value,
style: T.value,
onClick: G((c) => {
e.allowClickMaskToClose && g();
}, ["stop"])
}, null)]
}), m(Y, {
name: u.value
}, {
default: () => {
var c, l;
return [r.value && m("div", {
class: S.value,
style: a.value
}, [m("div", {
class: "f-drawer-container"
}, [e.showHeader && m("div", {
class: "f-drawer-header align-items-center"
}, [$()]), m("div", {
class: "f-drawer-body f-utils-fill",
style: "overflow: auto;"
}, [(l = (c = t.slots).default) == null ? void 0 : l.call(c)]), e.showFooter && m("div", {
class: "f-drawer-footer px-2",
style: {
height: e.footerHeight + "px"
}
}, [P()])])])];
}
})])]
}) : null;
}
});
class jt extends _e {
constructor(t, r) {
super(t, r);
}
getPropertyConfig(t) {
return this.propertyConfig.categories.basic = this.getBasicPropConfig(t), this.propertyConfig.categories.appearance = this.getAppearanceConfig(t), this.getBehaviorConfig(t), this.propertyConfig.categories.header = this.headerPropertyConfig(t), this.propertyConfig.categories.footer = this.footerPropertyConfig(t), this.propertyConfig.categories.eventsEditor = this.eventPropertyConfig(t), this.propertyConfig;
}
headerPropertyConfig(t) {
return {
title: "页头",
description: "Behavior",
properties: {
showHeader: {
title: "显示页头",
description: "是否显示页头",
type: "boolean",
refreshPanelAfterChanged: !0
},
customHeader: {
title: "自定义页头",
description: "是否自定义页头",
type: "boolean",
refreshPanelAfterChanged: !0,
visible: t.showHeader !== !1
},
showClose: {
title: "显示关闭按钮",
description: "是否显示关闭按钮",
type: "boolean",
visible: t.showHeader !== !1 && !t.customHeader
},
title: {
title: "标题",
description: "标题",
type: "string",
visible: t.showHeader !== !1 && !t.customHeader
},
headerTemplate: {
title: "页头模板",
type: "string",
description: "设置标题HTML模板,替代整个页头区域",
editor: {
type: "code-editor",
language: "html"
},
visible: t.showHeader !== !1 && t.customHeader === !0
}
},
setPropertyRelates: (r, o) => {
if (r)
switch (r && r.propertyID) {
case "title": {
r.needRefreshControlTree = !0;
break;
}
}
}
};
}
footerPropertyConfig(t) {
return {
title: "页脚",
description: "Behavior",
properties: {
showFooter: {
title: "显示页脚",
description: "是否显示页脚",
type: "boolean",
default: !0,
refreshPanelAfterChanged: !0
},
footerHeight: {
title: "页脚高度(px)",
description: "页脚高度, 单位px; 最小30px, 最大1999px",
type: "number",
editor: {
type: "number-spinner",
useThousands: !1,
min: 30,
max: 1999,
needValid: !0
},
visible: t.showFooter !== !1
},
footerContentType: {
title: "页脚内容类型",
description: "页脚内容类型",
type: "select",
refreshPanelAfterChanged: !0,
editor: {
type: "combo-list",
textField: "name",
valueField: "value",
idField: "value",
editable: !1,
data: [{ value: "toolbar", name: "工具栏" }, { value: "html", name: "自定义模板" }]
},
visible: t.showFooter !== !1
},
footerTemplate: {
title: "页脚模板",
type: "string",
description: "设置页脚HTML模板,替换页脚工具栏",
editor: {
type: "code-editor",
language: "html"
},
visible: t.footerContentType === "html" && t.showFooter !== !1
}
},
setPropertyRelates: (r, o) => {
if (r)
switch (r && r.propertyID) {
case "showFooter": {
o.footerToolbar = { id: o.id + "_footer-toolbar", type: "drawer-toolbar", buttons: [] }, o.footerTemplate = "", o.footerContentType = "toolbar";
break;
}
case "footerContentType": {
this.resetFooterContent(o, r.propertyValue);
break;
}
}
}
};
}
getBehaviorConfig(t) {
this.propertyConfig.categories.behavior = {
title: "行为",
description: "Behavior",
properties: {
position: {
title: "显示位置",
description: "抽屉显示位置",
type: "select",
default: "right",
editor: {
type: "combo-list",
textField: "name",
valueField: "value",
editable: !1,
data: [
{ value: "left", name: "左侧" },
{ value: "right", name: "右侧" }
]
}
},
width: {
title: "宽度(px)",
description: "抽屉宽度, 单位px; 最小200px, 最大1999px",
type: "number",
editor: {
type: "number-spinner",
useThousands: !1,
min: 200,
max: 1999,
needValid: !0
}
},
showMask: {
title: "显示遮罩层",
description: "显示遮罩层",
refreshPanelAfterChanged: !0,
type: "boolean"
},
transparent: {
title: "透明遮罩层",
description: "透明遮罩层",
type: "boolean",
visible: t.showMask !== !1
},
allowClickMaskToClose: {
title: "点击遮罩是否关闭",
description: "点击抽屉以外区域是否关闭抽屉",
type: "boolean",
visible: t.showMask !== !1
}
}
};
}
resetFooterContent(t, r = "toolbar") {
switch (r) {
case "toolbar": {
t.footerTemplate = "";
break;
}
case "html": {
t.footerToolbar = { id: t.id + "_footer-toolbar", type: "drawer-toolbar", buttons: [] };
break;
}
}
}
eventPropertyConfig(t) {
const r = this, o = [
{
label: "beforeClose",
name: "关闭前事件"
}
], f = r.eventsEditorUtils.formProperties(t, r.viewModelId, o);
return {
title: "事件",
hideTitle: !0,
properties: r.createBaseEventProperty(f),
// 这个属性,标记当属性变更得时候触发重新更新属性
refreshPanelAfterChanged: !0,
tabId: Fe,
tabName: "交互",
setPropertyRelates(T, v) {
const S = T.propertyValue;
delete t[r.viewModelId], S && (S.setPropertyRelates = this.setPropertyRelates, r.eventsEditorUtils.saveRelatedParameters(t, r.viewModelId, S.events, S));
}
};
}
}
function It(e, t, r) {
const o = new je();
function f(n) {
if (!Be().basalDragulaRuleForContainer(n, r))
return !1;
const { canAccept: d } = o.getTemplateRule(e, r);
return d;
}
function h() {
return !1;
}
function T() {
return !1;
}
function v() {
return !0;
}
function S() {
return "position: initial !important;border: none !important;left: 0;right: 0;padding: 0;";
}
function p(n) {
const s = new jt(n, r), { schema: d } = e;
return s.getPropertyConfig(d);
}
function y(n) {
return t;
}
function a() {
e.designerItemElementRef.value && Oe(() => {
Ne(t.value);
});
}
function u(n) {
if (!n)
return;
const { changeObject: s } = n;
s && ["width", "position"].includes(s.propertyID) && a();
}
function g(n, s, d) {
var w;
(w = n == null ? void 0 : n.buttons) != null && w.length && n.buttons.map((P) => {
var $;
d.set(P.id, {
componentTitle: P.text,
parentPathName: `${s} > ${P.text}`
}), ($ = P.children) != null && $.length && P.children.map((F) => {
d.set(F.id, {
componentTitle: F.text,
parentPathName: `${s} > ${F.text}`
});
});
});
}
function i() {
if (e && r) {
const { formSchemaUtils: n } = r, s = n.getControlBasicInfoMap(), { schema: d } = e, w = d.title || Ie.drawer.name;
s.set(d.id, {
componentTitle: w,
parentPathName: w
}), g(d.headerToolbar, w, s), g(d.footerToolbar, w, s);
}
}
return {
canAccepts: f,
checkCanDeleteComponent: h,
checkCanMoveComponent: T,
hideNestedPaddingInDesginerView: v,
getStyles: S,
getPropsConfig: p,
getDraggableDesignItemElement: y,
onPropertyChanged: u,
setComponentBasicInfoMap: i
};
}
const Te = Object.assign({}, Q, {
componentId: { type: String, default: "" },
footerContentType: { type: String, default: "toolbar" },
customHeader: { type: Boolean, default: !1 },
showWrapperInCanvas: { type: Boolean, default: !1 }
}), Bt = "https://json-schema.org/draft/2020-12/schema", Nt = "https://farris-design.gitee.io/section-toolbar-item.schema.json", Ht = "drawer-toolbar-item", Lt = "A Farris Toolbar Item Component", zt = "object", At = {
id: {
description: "The unique identifier for a Response Toolbar",
type: "string"
},
type: {
description: "The type string of Response Toolbar",
type: "string",
default: "drawer-toolbar-item"
},
appearance: {
description: "",
type: "object",
properties: {
class: {
type: "string"
},
style: {
type: "string"
}
},
default: {}
},
text: {
description: "按钮",
type: "string",
default: "按钮"
},
icon: {
description: "图标",
type: "string",
default: ""
},
disabled: {
description: "禁用",
type: "boolean",
default: !1
},
visible: {
description: "是否可见",
type: "boolean",
default: !0
},
onClick: {
description: "点击事件",
type: "string",
default: ""
},
tipsEnable: {
description: "",
type: "boolean",
default: !1
},
tipsText: {
description: "",
type: "string",
default: ""
},
dropdownClass: {
description: "处于下拉菜单时的样式",
type: "string",
default: ""
},
split: {
description: "",
type: "boolean",
default: !1
}
}, qt = [
"id",
"type",
"text"
], _t = {
onClick: "点击事件"
}, Wt = {
$schema: Bt,
$id: Nt,
title: Ht,
description: Lt,
type: zt,
properties: At,
required: qt,
events: _t
}, Vt = "https://json-schema.org/draft/2020-12/schema", Gt = "https://farris-design.gitee.io/section-toolbar.schema.json", Ut = "drawer-toolbar", Zt = "A Farris Toolbar Component", Yt = "object", Jt = {
id: {
description: "The unique identifier for a Section Toolbar",
type: "string"
},
type: {
description: "The type string of Section Toolbar",
type: "string",
default: "drawer-toolbar"
},
appearance: {
description: "",
type: "object",
properties: {
class: {
type: "string",
default: ""
}
}
},
alignment: {
description: "The alignment of Section Toolbar Button.",
type: "string",
default: "right"
},
buttons: {
description: "The items of Section Toolbar.",
type: "array",
default: []
},
buttonSize: {
type: "string",
default: ""
},
visible: {
description: "",
type: "boolean",
default: !0
}
}, Qt = [
"id",
"type",
"buttons"
], Xt = {
onClick: "点击事件"
}, Kt = {
$schema: Vt,
$id: Gt,
title: Ut,
description: Zt,
type: Yt,
properties: Jt,
required: Qt,
events: Xt
}, er = Object.assign({}, Ae), tr = J(er, Wt, void 0, ue), rr = Object.assign({}, Me, {
componentId: { type: String, default: "" }
}), _ = J(
rr,
Kt,
We,
ue
), U = /* @__PURE__ */ oe({
name: "FDrawerDesign",
props: Te,
setup(e, t) {
const r = O(), o = O(), f = e.id + "_footer-toolbar", h = e.id + "_header-toolbar", T = Z("designer-host-service"), v = Z("design-item-context"), S = It(v, o, T), p = He(r, v, S);
v.schema