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