UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

850 lines (849 loc) 29.3 kB
import { ref as L, computed as le, defineComponent as Y, createVNode as _, inject as ue, onMounted as fe } from "vue"; import { cloneDeep as J, isPlainObject as Q } from "lodash-es"; import { getSchemaByTypeForDesigner as pe } from "../dynamic-resolver/index.esm.js"; function Z(e, t) { let r; function a(i) { const { properties: c, title: p, ignore: o } = i, n = o && Array.isArray(o), l = Object.keys(c).reduce((d, y) => ((!n || !o.find((D) => D === y)) && (d[y] = c[y].type === "object" && c[y].properties ? a(c[y]) : J(c[y].default)), d), {}); if (p && (!n || !o.find((d) => d === "id"))) { const d = p.toLowerCase().replace(/-/g, "_"); l.id = `${d}_${Math.random().toString().slice(2, 6)}`; } return l; } function S(i) { const { properties: c, title: p, required: o } = i; if (o && Array.isArray(o)) { const n = o.reduce((l, d) => (l[d] = c[d].type === "object" && c[d].properties ? a(c[d]) : J(c[d].default), l), {}); if (p && o.find((l) => l === "id")) { const l = p.toLowerCase().replace(/-/g, "_"); n.id = `${l}_${Math.random().toString().slice(2, 6)}`; } return n; } return { type: p }; } function O(i, c = {}, p) { const o = e[i]; if (o) { let n = S(o); const l = t[i]; return n = l ? l({ getSchemaByType: O }, n, c, p) : n, r != null && r.appendIdentifyForNewControl && r.appendIdentifyForNewControl(n), n; } return null; } function F(i, c) { const p = a(c); return Object.keys(p).reduce((o, n) => (Object.prototype.hasOwnProperty.call(i, n) && (o[n] && Q(o[n]) && Q(i[n] || !i[n]) ? Object.assign(o[n], i[n] || {}) : o[n] = i[n]), o), p), p; } function E(i, c) { return Object.keys(i).filter((o) => i[o] != null).reduce((o, n) => { if (c.has(n)) { const l = c.get(n); if (typeof l == "string") o[l] = i[n]; else { const d = l(n, i[n], i); Object.assign(o, d); } } else o[n] = i[n]; return o; }, {}); } function $(i, c, p = /* @__PURE__ */ new Map()) { const o = F(i, c); return E(o, p); } function f(i) { var p; const c = i.type; if (c) { const o = e[c]; if (!o) return i; const n = F(i, o), l = ((p = i.editor) == null ? void 0 : p.type) || ""; if (l) { const d = e[l], y = F(i.editor, d); n.editor = y; } return n; } return i; } function g(i) { r = i; } return { getSchemaByType: O, resolveSchemaWithDefaultValue: f, resolveSchemaToProps: $, mappingSchemaToProps: E, setDesignerContext: g }; } const C = {}, V = {}, { getSchemaByType: ct, resolveSchemaWithDefaultValue: me, resolveSchemaToProps: de, mappingSchemaToProps: ve, setDesignerContext: st } = Z(C, V); function ge(e = {}) { function t(f, g, i, c) { if (typeof i == "number") return c[f].length === i; if (typeof i == "object") { const p = Object.keys(i)[0], o = i[p]; if (p === "not") return Number(c[f].length) !== Number(o); if (p === "moreThan") return Number(c[f].length) >= Number(o); if (p === "lessThan") return Number(c[f].length) <= Number(o); } return !1; } function r(f, g, i, c) { return c[f] && c[f].propertyValue && String(c[f].propertyValue.value) === String(i); } const a = /* @__PURE__ */ new Map([ ["length", t], ["getProperty", r] ]); Object.keys(e).reduce((f, g) => (f.set(g, e[g]), f), a); function S(f, g) { const i = f; return typeof g == "number" ? [{ target: i, operator: "length", param: null, value: Number(g) }] : typeof g == "boolean" ? [{ target: i, operator: "getProperty", param: f, value: !!g }] : typeof g == "object" ? Object.keys(g).map((c) => { if (c === "length") return { target: i, operator: "length", param: null, value: g[c] }; const p = c, o = g[c]; return { target: i, operator: "getProperty", param: p, value: o }; }) : []; } function O(f) { return Object.keys(f).reduce((i, c) => { const p = S(c, f[c]); return i.push(...p), i; }, []); } function F(f, g) { if (a.has(f.operator)) { const i = a.get(f.operator); return i && i(f.target, f.param, f.value, g) || !1; } return !1; } function E(f, g) { return O(f).reduce((p, o) => p && F(o, g), !0); } function $(f, g) { const i = Object.keys(f), c = i.includes("allOf"), p = i.includes("anyOf"), o = c || p, d = (o ? f[o ? c ? "allOf" : "anyOf" : "allOf"] : [f]).map((D) => E(D, g)); return c ? !d.includes(!1) : d.includes(!0); } return { parseValueSchema: $ }; } const be = { convertTo: (e, t, r, a) => { e.appearance || (e.appearance = {}), e.appearance[t] = r; }, convertFrom: (e, t, r) => e.appearance ? e.appearance[t] : e[t] }, ye = { convertFrom: (e, t, r) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无" }, Se = { convertTo: (e, t, r, a) => { e.editor && (e.editor[t] = r); }, convertFrom: (e, t, r) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, t) ? e.editor[t] : e[t] }, x = { 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: "多语输入框" } }, Te = { convertFrom: (e, t, r) => { var S; const a = e.editor && e.editor[t] ? e.editor[t] : e[t]; return ((S = x[a]) == null ? void 0 : S.name) || a; } }, he = { convertTo: (e, t, r, a) => { e[t] = e[t]; }, convertFrom: (e, t, r) => e.editor ? r.getRealEditorType(e.editor.type) : "" }, Fe = { convertTo: (e, t, r, a) => { (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 === "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"; } }, Pe = { convertTo: (e, t, r, a) => { e.command ? e.command[t] = r : e.command = { [t]: r }, t === "enable" && r && (e.command.commands || (e.command.commands = [ { text: "编辑", type: "primary", command: "edit" }, { text: "删除", type: "danger", command: "remove" } ])); }, convertFrom: (e, t, r) => e.command && t === "enable" ? e.command.enable : "" }, De = { convertTo: (e, t, r, a) => { e.column ? e.column[t] = r : e.column = { [t]: r }, t === "fitColumns" && r && (e.column.fitMode || (e.column.fitMode = "average")); }, convertFrom: (e, t, r) => { if (e.column) { if (t === "fitColumns") return e.column.fitColumns; if (t === "fitMode") return e.column.fitMode; } return ""; } }, Me = { convertTo: (e, t, r, a) => { 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) => e.summary && t === "enable" ? e.summary.enable : e.type === "data-grid-column" ? e.enableSummary === void 0 ? !1 : e.enableSummary : "" }, ke = { convertTo: (e, t, r, a) => { 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 }); }, convertFrom: (e, t, r) => { if (e.group) { if (t === "enable") return e.group.enable; if (t === "showSummary") return e.group.showSummary; } } }, we = { convertFrom: (e, t) => e.binding ? e.binding.path : "", convertTo: (e, t, r) => { if (r && r.length > 0) { const a = r[0]; e.binding || (e.binding = {}), e.binding.type = "Form", e.binding.path = a.bindingField, e.binding.field = a.id, e.binding.fullPath = a.path, e.path = a.bindingPath; } } }, Oe = { convertTo: (e, t, r, a) => { e.pagination || (e.pagination = {}), e.pagination[t] = r; }, convertFrom: (e, t, r) => e.pagination ? e.pagination[t] : e[t] }, Ee = { convertTo: (e, t, r, a) => { e.rowNumber || (e.rowNumber = {}), e.rowNumber[t] = r; }, convertFrom: (e, t, r) => e.rowNumber ? e.rowNumber[t] : e[t] }, Be = { convertTo: (e, t, r, a) => { e.selection || (e.selection = {}), e.selection[t] = r; }, convertFrom: (e, t, r) => e.selection ? e.selection[t] : e[t] }, je = { convertFrom: (e, t, r) => e[t] && e[t].length ? `共 ${e[t].length} 项` : "" }, Ne = { convertFrom: (e, t) => e[t] || "", convertTo: (e, t, r) => { e[t] = r; } }, $e = { convertTo: (e, t, r, a) => { e.size || (e.size = {}), e.size[t] = r; }, convertFrom: (e, t, r) => e.size ? e.size[t] : e[t] }, Re = { convertFrom: (e, t, r) => { var a, S; return (a = e.formatter) != null && a.data && t === "formatterEnumData" && !e.formatterEnumData ? (S = e.formatter) == null ? void 0 : S.data : e.formatterEnumData; } }, Ae = { convertTo: (e, t, r, a) => { e.sort || (e.sort = {}), e.sort[t] = r; }, convertFrom: (e, t, r) => { var a, S; if (t === "mode") return ((a = e.sort) == null ? void 0 : a.mode) || "client"; if (t === "multiSort") return !!((S = e.sort) != null && S.multiSort); } }, qe = { convertTo: (e, t, r, a) => { e.filter || (e.filter = {}), e.filter[t] = r; }, convertFrom: (e, t, r) => { var a; if (t === "mode") return ((a = e.filter) == null ? void 0 : a.mode) || "client"; } }, He = { convertTo: (e, t, r, a) => { 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; } return ""; } }; function K(e, t, r) { const a = /* @__PURE__ */ new Map([ ["/converter/appearance.converter", be], ["/converter/buttons.converter", ye], ["/converter/property-editor.converter", Se], ["/converter/items-count.converter", je], ["/converter/type.converter", Te], ["/converter/change-editor.converter", he], ["/converter/change-formatter.converter", Fe], ["/converter/column-command.converter", Pe], ["/converter/column-option.converter", De], ["/converter/summary.converter", Me], ["/converter/group.converter", ke], ["/converter/form-group-label.converter", Ne], ["/converter/field-selector.converter", we], ["/converter/pagination.converter", Oe], ["/converter/row-number.converter", Ee], ["/converter/grid-selection.converter", Be], ["/converter/size.converter", $e], ["/converter/change-formatter-enum.converter", Re], ["/converter/grid-sort.converter", Ae], ["/converter/grid-filter.converter", qe], ["/converter/row-option.converter", He] ]), S = /* @__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 }] ]), O = ge(); function F(o, n) { return () => O.parseValueSchema(o, n); } function E(o, n, l) { return o.includes("visible") && n.visible !== void 0 ? typeof n.visible == "boolean" ? () => !!n.visible : n.visible === void 0 ? !0 : F(n.visible, l) : () => !0; } function $(o, n, l) { return o.includes("readonly") && n.readonly !== void 0 ? typeof n.readonly == "boolean" ? () => !!n.readonly : F(n.readonly, l) : () => !1; } function f(o, n) { const l = o.$converter || n; return typeof l == "string" && l && a.has(l) ? a.get(l) || null : l || null; } function g(o, n, l, d, y, D = "", B = "") { return Object.keys(o).map((T) => { const j = L(1), N = T, u = o[T], M = Object.keys(u), q = u.title, s = u.type, v = S.get(s) || { type: "input-group", enableClear: !1 }, m = u.editor ? Object.assign({}, v, u.editor) : Object.assign({}, v), b = E(M, u, n), h = $(M, u, n); m.readonly = m.readonly === void 0 ? h() : m.readonly; const w = u.type === "cascade" ? g(u.properties, n, l, d, y, D, B) : [], H = !0; let P = f(u, B); const R = le({ get() { if (j.value) { if (["class", "style"].find((se) => se === N) && !P && (P = a.get("/converter/appearance.converter") || null), P && P.convertFrom) return P.convertFrom(l, T, y, D); const A = l[T]; return Object.prototype.hasOwnProperty.call(u, "defaultValue") && (A === void 0 || typeof A == "string" && A === "") ? u.type === "boolean" ? u.defaultValue : u.defaultValue || "" : A; } return null; }, set(A) { j.value += 1, P && P.convertTo ? (P.convertTo(d, T, A, y, D), P.convertTo(l, T, A, y, D)) : (d[T] = A, l[T] = A); } }), { refreshPanelAfterChanged: z, description: ie, isExpand: ae, parentPropertyID: ce } = u, U = { propertyID: N, propertyName: q, propertyType: s, propertyValue: R, editor: m, visible: b, readonly: h, cascadeConfig: w, hideCascadeTitle: H, refreshPanelAfterChanged: z, description: ie, isExpand: ae, parentPropertyID: ce }; return n[N] = U, U; }); } function i(o, n, l = {}) { const d = {}, y = e[o]; return y && y.categories ? Object.keys(y.categories).map((B) => { const k = y.categories[B], T = k == null ? void 0 : k.title, j = g(k.properties || {}, d, {}, l, n); return { categoryId: B, categoryName: T, properties: j }; }) : []; } function c(o, n, l, d, y = "") { const D = n.$ref.schema, B = n.$ref.converter, k = l[D], T = k.type, j = r(k), N = {}, u = e[T]; if (u && u.categories) { const M = u.categories[o], q = M == null ? void 0 : M.title; B && Object.keys(M.properties).forEach((m) => { M.properties[m].$converter = B; }); const s = (M == null ? void 0 : M.properties) || {}, v = g(s, N, j, k, d, y); return { categoryId: o, categoryName: q, properties: v }; } return { categoryId: o, categoryName: "", properties: [] }; } function p(o, n, l, d, y) { const D = o.type, B = r(o), k = {}; let T = y || e[D]; if (T && Object.keys(T).length === 0 && l && l.getPropConfig && (T = l.getPropConfig(d)), T && T.categories) { const j = []; return Object.keys(T.categories).map((N) => { const u = T.categories[N]; if (u.$ref) { j.push(c(N, u, o, n, d)); return; } const M = u == null ? void 0 : u.title, q = u == null ? void 0 : u.tabId, s = u == null ? void 0 : u.tabName, v = u == null ? void 0 : u.hide, m = u == null ? void 0 : u.hideTitle, b = g(u.properties || {}, k, B, o, n, d, u.$converter), { setPropertyRelates: h } = u, w = u == null ? void 0 : u.parentPropertyID; j.push({ categoryId: N, categoryName: M, tabId: q, tabName: s, hide: v, properties: b, hideTitle: m, setPropertyRelates: h, parentPropertyID: w }); }), j; } return []; } return { getPropertyConfigBySchema: p, getPropertyConfigByType: i, propertyConverterMap: a }; } const I = {}, ee = {}; K(I, ee, me); const te = {}, re = {}, { getSchemaByType: lt, resolveSchemaWithDefaultValue: ze, resolveSchemaToProps: ut, mappingSchemaToProps: ft, setDesignerContext: pt } = Z(te, re), oe = {}, ne = {}; K(oe, ne, ze); function Le(e, t, r = /* @__PURE__ */ new Map(), a = (F, E, $, f) => E, S = {}, O = (F) => F) { return C[t.title] = t, V[t.title] = a, I[t.title] = S, ee[t.title] = O, te[t.title] = t, re[t.title] = a, oe[t.title] = S, ne[t.title] = O, (F = {}, E = !0) => { if (!E) return ve(F, r); const $ = de(F, t, r), f = Object.keys(e).reduce((g, i) => (g[i] = e[i].default, g), {}); return Object.assign(f, $); }; } function _e(e, t) { return { customClass: t.class, customStyle: t.style }; } const We = /* @__PURE__ */ new Map([ ["appearance", _e] ]); function Ge(e, t, r) { return t; } const Ue = "https://json-schema.org/draft/2020-12/schema", Je = "https://farris-design.gitee.io/smoke-detector.schema.json", Qe = "smoke-detector", Xe = "A Farris Component", Ye = "object", Ze = { id: { description: "The unique identifier for smoke-detector", type: "string" }, type: { description: "The type string of smoke-detector", type: "string", default: "smoke-detector" }, voltageA: { description: "A相电压", type: "number", default: -1 }, voltageB: { description: "B相电压", type: "number", default: -1 }, voltageC: { description: "C相电压", type: "number", default: -1 }, forwardActiveTotalPower: { description: "正向有功总电量", type: "number", default: -1 }, totalPositiveReactivePower: { description: "正向无功总电量", type: "number", default: -1 }, reverseTotalActivePower: { description: "反向有功总电量", type: "number", default: -1 }, reverseTotalReactivePower: { description: "反向无功总电量", type: "number", default: -1 }, toDeliverData: { description: "下发数据", type: "string" } }, Ce = [ "id", "type" ], Ve = { $schema: Ue, $id: Je, title: Qe, description: Xe, type: Ye, properties: Ze, required: Ce }, xe = "smoke-detector", Ke = "A Farris Component", Ie = "object", et = { basic: { description: "Basic Infomation", title: "基本信息", properties: { id: { description: "组件标识", title: "标识", type: "string", readonly: !0 }, type: { description: "组件类型", title: "控件类型", type: "select", editor: { type: "waiting for modification", enum: [] } } } }, bussinessProperties: { description: "", title: "业务属性", properties: { voltageA: { description: "A相电压", type: "number", title: "A相电压", default: -1 }, voltageB: { description: "B相电压", type: "number", title: "B相电压", default: -1 }, voltageC: { description: "C相电压", type: "number", title: "C相电压", default: -1 }, forwardActiveTotalPower: { description: "正向有功总电量", type: "number", title: "正向有功总电量", default: -1 }, totalPositiveReactivePower: { description: "正向无功总电量", type: "number", title: "正向无功总电量", default: -1 }, reverseTotalActivePower: { description: "反向有功总电量", type: "number", title: "反向有功总电量", default: -1 }, reverseTotalReactivePower: { description: "反向无功总电量", type: "number", title: "反向无功总电量", default: -1 }, toDeliverData: { description: "下发数据", type: "string", title: "下发数据" } } } }, tt = { title: xe, description: Ke, type: Ie, categories: et }, G = {}, X = Le(G, Ve, We, Ge, tt), W = /* @__PURE__ */ Y({ name: "FSmokeDetector", props: G, emits: [""], setup(e) { return () => _("div", { class: "f-smoke-detector" }, [_("img", { title: "smoke-detector", src: "./image/smoke-detector-2.png" }, null)]); } }); function rt(e, t, r) { var q; const a = "", S = "", O = L(); let F; function E() { return (t == null ? void 0 : t.schema.componentType) !== "frame"; } function $() { return !1; } function f() { return (t == null ? void 0 : t.schema.componentType) !== "frame"; } function g() { return (t == null ? void 0 : t.schema.componentType) === "frame"; } function i(s) { if (!s || !s.value) return null; if (s.value.schema && s.value.schema.type === "component") return s.value; const v = L(s == null ? void 0 : s.value.parent), m = i(v); return m || null; } function c(s = t) { var h; const { componentInstance: v, designerItemElementRef: m } = s; if (!v || !v.value) return null; const { getCustomButtons: b } = v.value; return v.value.canMove || b && ((h = b()) != null && h.length) ? m : c(s.parent); } function p(s) { return !!r; } function o() { return (t == null ? void 0 : t.schema.label) || (t == null ? void 0 : t.schema.title) || (t == null ? void 0 : t.schema.name); } function n() { } function l(s, v) { var m; !s || !v || (m = t == null ? void 0 : t.setupContext) == null || m.emit("dragEnd"); } function d(s, v) { const { componentType: m } = s; let b = pe(m, s, v); const h = m.toLowerCase().replace(/-/g, "_"); return b && !b.id && b.type === m && (b.id = `${h}_${Math.random().toString().slice(2, 6)}`), b; } function y(s) { } function D(...s) { } function B(s) { if (!s) return; const v = t == null ? void 0 : t.schema, { formSchemaUtils: m } = s; if (v && m.getExpressions().length) { const b = m.getExpressions().findIndex((h) => h.target === v.id); b > -1 && m.getExpressions().splice(b, 1); } } function k(s) { if (!s || !(t != null && t.schema)) return; const v = t.schema, { formSchemaUtils: m } = s; m.removeCommunicationInComponent(v); } function T(s) { B(s), k(s), t != null && t.schema.contents && t.schema.contents.map((v) => { let m = v.id; v.type === "component-ref" && (m = v.component); const b = e.value.querySelectorAll(`#${m}-design-item`); b != null && b.length && Array.from(b).map((h) => { var w; (w = h == null ? void 0 : h.componentInstance) != null && w.value.onRemoveComponent && h.componentInstance.value.onRemoveComponent(s); }); }); } function j() { } function N(s) { var m, b; if (!((m = t == null ? void 0 : t.schema) != null && m.id)) return; !F && s && (F = s.formSchemaUtils); let v = ""; { const { text: h, title: w, label: H, mainTitle: P, name: R, type: z } = t.schema; v = h || w || H || P || R || ((b = x[z]) == null ? void 0 : b.name); } v && F.getControlBasicInfoMap().set(t.schema.id, { componentTitle: v, parentPathName: v }); } function u(s) { var h; const { changeObject: v } = s, { propertyID: m, propertyValue: b } = v; if (["text", "title", "label", "name", "mainTitle"].includes((h = s == null ? void 0 : s.changeObject) == null ? void 0 : h.propertyID) && m && b && (N(), F)) { const w = F.getControlBasicInfoMap(), H = w.keys().toArray().filter((P) => { var R, z; return ((R = w.get(P)) == null ? void 0 : R.reliedComponentId) === ((z = t == null ? void 0 : t.schema) == null ? void 0 : z.id); }); H != null && H.length && H.forEach((P) => { const R = w.get(P).parentPathName.split(" > "); R[0] = b, w.get(P).parentPathName = R.join(" > "); }); } } function M(s) { u(s); } return O.value = { canMove: E(), canSelectParent: $(), canDelete: f(), canNested: !g(), contents: t == null ? void 0 : t.schema.contents, elementRef: e, parent: (q = t == null ? void 0 : t.parent) == null ? void 0 : q.componentInstance, schema: t == null ? void 0 : t.schema, styles: a, designerClass: S, canAccepts: p, getBelongedComponentInstance: i, getDraggableDesignItemElement: c, getDraggingDisplayText: o, getPropConfig: D, getDragScopeElement: n, onAcceptMovedChildElement: l, onChildElementMovedOut: y, addNewChildComponentSchema: d, triggerBelongedComponentToMoveWhenMoved: L(!1), triggerBelongedComponentToDeleteWhenDeleted: L(!1), onRemoveComponent: T, getCustomButtons: j, onPropertyChanged: M, setComponentBasicInfoMap: N, updateContextSchema: t == null ? void 0 : t.updateContextSchema }, O; } const ot = /* @__PURE__ */ Y({ name: "FSmokeDetectorDesign", props: G, emits: [""], setup(e, t) { const r = L(), a = ue("design-item-context"), S = rt(r, a); return fe(() => { r.value.componentInstance = S; }), t.expose(S.value), () => _("div", { ref: r, class: "f-smoke-detector" }, [_("img", { title: "smoke-detector", src: "../image/smoke-detector-2.png" }, null)]); } }), mt = { install(e) { e.component(W.name, W); }, register(e, t, r, a) { e["smoke-detector"] = W, t["smoke-detector"] = X; }, registerDesigner(e, t, r) { e["smoke-detector"] = ot, t["smoke-detector"] = X; } }; export { W as SmokeDetector, mt as default, X as propsResolver, G as smokeDetectorProps };