UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1,174 lines (1,171 loc) 37.4 kB
import { defineComponent as ie, ref as N, watch as xe, onMounted as $e, onBeforeUnmount as De, createVNode as $, computed as ae, reactive as Re } from "vue"; import { FButtonEdit as Ne } from "../button-edit/index.esm.js"; import { cloneDeep as Z, isPlainObject as _ } from "lodash-es"; function Ae(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } function K(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(a) { return Object.getOwnPropertyDescriptor(e, a).enumerable; })), n.push.apply(n, r); } return n; } function ee(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] != null ? arguments[t] : {}; t % 2 ? K(Object(n), !0).forEach(function(r) { Ae(e, r, n[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : K(Object(n)).forEach(function(r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(n, r)); }); } return e; } function Be(e, t) { if (e == null) return {}; var n = {}, r = Object.keys(e), a, s; for (s = 0; s < r.length; s++) a = r[s], !(t.indexOf(a) >= 0) && (n[a] = e[a]); return n; } function He(e, t) { if (e == null) return {}; var n = Be(e, t), r, a; if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (a = 0; a < s.length; a++) r = s[a], !(t.indexOf(r) >= 0) && Object.prototype.propertyIsEnumerable.call(e, r) && (n[r] = e[r]); } return n; } function qe(e, t) { return Ve(e) || Ie(e, t) || ze(e, t) || Le(); } function Ve(e) { if (Array.isArray(e)) return e; } function Ie(e, t) { if (!(typeof Symbol > "u" || !(Symbol.iterator in Object(e)))) { var n = [], r = !0, a = !1, s = void 0; try { for (var v = e[Symbol.iterator](), y; !(r = (y = v.next()).done) && (n.push(y.value), !(t && n.length === t)); r = !0) ; } catch (b) { a = !0, s = b; } finally { try { !r && v.return != null && v.return(); } finally { if (a) throw s; } } return n; } } function ze(e, t) { if (e) { if (typeof e == "string") return te(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); if (n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set") return Array.from(e); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return te(e, t); } } function te(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r; } function Le() { throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); } function ke(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } function ne(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(a) { return Object.getOwnPropertyDescriptor(e, a).enumerable; })), n.push.apply(n, r); } return n; } function re(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] != null ? arguments[t] : {}; t % 2 ? ne(Object(n), !0).forEach(function(r) { ke(e, r, n[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ne(Object(n)).forEach(function(r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(n, r)); }); } return e; } function We() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return function(r) { return t.reduceRight(function(a, s) { return s(a); }, r); }; } function B(e) { return function t() { for (var n = this, r = arguments.length, a = new Array(r), s = 0; s < r; s++) a[s] = arguments[s]; return a.length >= e.length ? e.apply(this, a) : function() { for (var v = arguments.length, y = new Array(v), b = 0; b < v; b++) y[b] = arguments[b]; return t.apply(n, [].concat(a, y)); }; }; } function z(e) { return {}.toString.call(e).includes("Object"); } function Ge(e) { return !Object.keys(e).length; } function H(e) { return typeof e == "function"; } function Ue(e, t) { return Object.prototype.hasOwnProperty.call(e, t); } function Je(e, t) { return z(t) || x("changeType"), Object.keys(t).some(function(n) { return !Ue(e, n); }) && x("changeField"), t; } function Ye(e) { H(e) || x("selectorType"); } function Qe(e) { H(e) || z(e) || x("handlerType"), z(e) && Object.values(e).some(function(t) { return !H(t); }) && x("handlersType"); } function Xe(e) { e || x("initialIsRequired"), z(e) || x("initialType"), Ge(e) && x("initialContent"); } function Ze(e, t) { throw new Error(e[t] || e.default); } var _e = { initialIsRequired: "initial state is required", initialType: "initial state should be an object", initialContent: "initial state shouldn't be an empty object", handlerType: "handler should be an object or a function", handlersType: "all handlers should be a functions", selectorType: "selector should be a function", changeType: "provided value of changes should be an object", changeField: 'it seams you want to change a field in the state which is not specified in the "initial" state', default: "an unknown error accured in `state-local` package" }, x = B(Ze)(_e), I = { changes: Je, selector: Ye, handler: Qe, initial: Xe }; function Ke(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; I.initial(e), I.handler(t); var n = { current: e }, r = B(nt)(n, t), a = B(tt)(n), s = B(I.changes)(e), v = B(et)(n); function y() { var f = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function(m) { return m; }; return I.selector(f), f(n.current); } function b(f) { We(r, a, s, v)(f); } return [y, b]; } function et(e, t) { return H(t) ? t(e.current) : t; } function tt(e, t) { return e.current = re(re({}, e.current), t), t; } function nt(e, t, n) { return H(t) ? t(e.current) : Object.keys(n).forEach(function(r) { var a; return (a = t[r]) === null || a === void 0 ? void 0 : a.call(t, e.current[r]); }), n; } var rt = { create: Ke }, ot = { paths: { vs: "https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs" } }; function it(e) { return function t() { for (var n = this, r = arguments.length, a = new Array(r), s = 0; s < r; s++) a[s] = arguments[s]; return a.length >= e.length ? e.apply(this, a) : function() { for (var v = arguments.length, y = new Array(v), b = 0; b < v; b++) y[b] = arguments[b]; return t.apply(n, [].concat(a, y)); }; }; } function at(e) { return {}.toString.call(e).includes("Object"); } function ct(e) { return e || oe("configIsRequired"), at(e) || oe("configType"), e.urls ? (ut(), { paths: { vs: e.urls.monacoBase } }) : e; } function ut() { console.warn(ce.deprecation); } function lt(e, t) { throw new Error(e[t] || e.default); } var ce = { configIsRequired: "the configuration object is required", configType: "the configuration object should be an object", default: "an unknown error accured in `@monaco-editor/loader` package", deprecation: `Deprecation warning! You are using deprecated way of configuration. Instead of using monaco.config({ urls: { monacoBase: '...' } }) use monaco.config({ paths: { vs: '...' } }) For more please check the link https://github.com/suren-atoyan/monaco-loader#config ` }, oe = it(lt)(ce), st = { config: ct }, ft = function() { for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r]; return function(a) { return n.reduceRight(function(s, v) { return v(s); }, a); }; }; function ue(e, t) { return Object.keys(t).forEach(function(n) { t[n] instanceof Object && e[n] && Object.assign(t[n], ue(e[n], t[n])); }), ee(ee({}, e), t); } var dt = { type: "cancelation", msg: "operation is manually canceled" }; function U(e) { var t = !1, n = new Promise(function(r, a) { e.then(function(s) { return t ? a(dt) : r(s); }), e.catch(a); }); return n.cancel = function() { return t = !0; }, n; } var mt = rt.create({ config: ot, isInitialized: !1, resolve: null, reject: null, monaco: null }), le = qe(mt, 2), q = le[0], k = le[1]; function pt(e) { var t = st.config(e), n = t.monaco, r = He(t, ["monaco"]); k(function(a) { return { config: ue(a.config, r), monaco: n }; }); } function gt() { var e = q(function(t) { var n = t.monaco, r = t.isInitialized, a = t.resolve; return { monaco: n, isInitialized: r, resolve: a }; }); if (!e.isInitialized) { if (k({ isInitialized: !0 }), e.monaco) return e.resolve(e.monaco), U(J); if (window.monaco && window.monaco.editor) return se(window.monaco), e.resolve(window.monaco), U(J); ft(vt, yt)(ht); } return U(J); } function vt(e) { return document.body.appendChild(e); } function bt(e) { var t = document.createElement("script"); return e && (t.src = e), t; } function yt(e) { var t = q(function(r) { var a = r.config, s = r.reject; return { config: a, reject: s }; }), n = bt("".concat(t.config.paths.vs, "/loader.js")); return n.onload = function() { return e(); }, n.onerror = t.reject, n; } function ht() { var e = q(function(n) { var r = n.config, a = n.resolve, s = n.reject; return { config: r, resolve: a, reject: s }; }), t = window.require; t.config(e.config), t(["vs/editor/editor.main"], function(n) { se(n), e.resolve(n); }, function(n) { e.reject(n); }); } function se(e) { q().monaco || k({ monaco: e }); } function Ot() { return q(function(e) { var t = e.monaco; return t; }); } var J = new Promise(function(e, t) { return k({ resolve: e, reject: t }); }), Y = { config: pt, init: gt, __getMonacoInstance: Ot }; const fe = { /** 绑定值 */ modelValue: { type: String, default: "" }, /** 语言 */ language: { type: String, default: "json" }, /** 主题 */ theme: { type: String, default: "vs-dark" }, /** 是否只读 */ readonly: { type: Boolean, default: !1 }, /** 额外的 monaco-editor 配置 */ monacoEditorOptions: { type: Object, default: {} }, /** 配置文件路径,配置文件用于配置 monaco 资源文件的位置 */ configPath: { type: String, default: "assets/monaco-editor.config.json" } }, L = /* @__PURE__ */ ie({ name: "FCodeEditor", props: fe, emits: [], setup(e, t) { const n = N(); let r = null; const a = N(), s = N(e.modelValue || ""); async function v() { return fetch(e.configPath).then((o) => o.json()); } async function y() { if (n.value && !r) { const o = await v(), { vsPath: i } = o; Y.config({ paths: { vs: window.location.origin + i } }), Y.config({ "vs/nls": { availableLanguages: { "*": "zh-cn" } } }), Y.init().then((l) => { a.value = l, r = l.editor.create(n.value, { value: s.value, language: e.language, theme: e.theme, folding: !0, readOnly: e.readonly, ...e.monacoEditorOptions }); }); } } const b = new ResizeObserver(() => { r == null || r.layout(); }); function f() { return r == null ? void 0 : r.getValue(); } function m(o) { s.value = o, r == null || r.setValue(o); } function c() { m(""); } xe(() => e.modelValue, (o) => m(o)); function u(o) { const i = r.getSelection(), l = new a.value.Range(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn); r.executeEdits("insert-text", [{ range: l, text: o, forceMoveMarkers: !0 // 移动光标到插入后的位置 }]); } function p(o) { if (!r || !o) return; const i = r.getModel().findMatches(o, !1, !1, !1, null, !0); if (i.length > 0) { const l = i[0], { range: g } = l; r.setPosition(g.getStartPosition()), r.revealRangeInCenter(g); } } return $e(() => { y(), b.observe(n.value); }), De(() => { r && (r.dispose(), r = null, a.value = null), b == null || b.unobserve(n.value), b == null || b.disconnect(); }), t.expose({ getValue: f, setValue: m, clearValue: c, insertText: u, setPosition: p }), () => $("div", { class: "monaco-editor h-100 w-100", ref: n }, null); } }); function de(e, t) { let n; function r(c) { const { properties: u, title: p, ignore: o } = c, i = o && Array.isArray(o), l = Object.keys(u).reduce((g, h) => ((!i || !o.find((w) => w === h)) && (g[h] = u[h].type === "object" && u[h].properties ? r(u[h]) : Z(u[h].default)), g), {}); if (p && (!i || !o.find((g) => g === "id"))) { const g = p.toLowerCase().replace(/-/g, "_"); l.id = `${g}_${Math.random().toString().slice(2, 6)}`; } return l; } function a(c) { const { properties: u, title: p, required: o } = c; if (o && Array.isArray(o)) { const i = o.reduce((l, g) => (l[g] = u[g].type === "object" && u[g].properties ? r(u[g]) : Z(u[g].default), l), {}); if (p && o.find((l) => l === "id")) { const l = p.toLowerCase().replace(/-/g, "_"); i.id = `${l}_${Math.random().toString().slice(2, 6)}`; } return i; } return { type: p }; } function s(c, u = {}, p) { const o = e[c]; if (o) { let i = a(o); const l = t[c]; return i = l ? l({ getSchemaByType: s }, i, u, p) : i, n != null && n.appendIdentifyForNewControl && n.appendIdentifyForNewControl(i), i; } return null; } function v(c, u) { const p = r(u); return Object.keys(p).reduce((o, i) => (Object.prototype.hasOwnProperty.call(c, i) && (o[i] && _(o[i]) && _(c[i] || !c[i]) ? Object.assign(o[i], c[i] || {}) : o[i] = c[i]), o), p), p; } function y(c, u) { return Object.keys(c).filter((o) => c[o] != null).reduce((o, i) => { if (u.has(i)) { const l = u.get(i); if (typeof l == "string") o[l] = c[i]; else { const g = l(i, c[i], c); Object.assign(o, g); } } else o[i] = c[i]; return o; }, {}); } function b(c, u, p = /* @__PURE__ */ new Map()) { const o = v(c, u); return y(o, p); } function f(c) { var p; const u = c.type; if (u) { const o = e[u]; if (!o) return c; const i = v(c, o), l = ((p = c.editor) == null ? void 0 : p.type) || ""; if (l) { const g = e[l], h = v(c.editor, g); i.editor = h; } return i; } return c; } function m(c) { n = c; } return { getSchemaByType: s, resolveSchemaWithDefaultValue: f, resolveSchemaToProps: b, mappingSchemaToProps: y, setDesignerContext: m }; } const me = {}, pe = {}, { getSchemaByType: sn, resolveSchemaWithDefaultValue: wt, resolveSchemaToProps: St, mappingSchemaToProps: jt, setDesignerContext: fn } = de(me, pe); function Tt(e = {}) { function t(f, m, c, u) { if (typeof c == "number") return u[f].length === c; if (typeof c == "object") { const p = Object.keys(c)[0], o = c[p]; if (p === "not") return Number(u[f].length) !== Number(o); if (p === "moreThan") return Number(u[f].length) >= Number(o); if (p === "lessThan") return Number(u[f].length) <= Number(o); } return !1; } function n(f, m, c, u) { return u[f] && u[f].propertyValue && String(u[f].propertyValue.value) === String(c); } const r = /* @__PURE__ */ new Map([ ["length", t], ["getProperty", n] ]); Object.keys(e).reduce((f, m) => (f.set(m, e[m]), f), r); function a(f, m) { const c = f; return typeof m == "number" ? [{ target: c, operator: "length", param: null, value: Number(m) }] : typeof m == "boolean" ? [{ target: c, operator: "getProperty", param: f, value: !!m }] : typeof m == "object" ? Object.keys(m).map((u) => { if (u === "length") return { target: c, operator: "length", param: null, value: m[u] }; const p = u, o = m[u]; return { target: c, operator: "getProperty", param: p, value: o }; }) : []; } function s(f) { return Object.keys(f).reduce((c, u) => { const p = a(u, f[u]); return c.push(...p), c; }, []); } function v(f, m) { if (r.has(f.operator)) { const c = r.get(f.operator); return c && c(f.target, f.param, f.value, m) || !1; } return !1; } function y(f, m) { return s(f).reduce((p, o) => p && v(o, m), !0); } function b(f, m) { const c = Object.keys(f), u = c.includes("allOf"), p = c.includes("anyOf"), o = u || p, g = (o ? f[o ? u ? "allOf" : "anyOf" : "allOf"] : [f]).map((w) => y(w, m)); return u ? !g.includes(!1) : g.includes(!0); } return { parseValueSchema: b }; } const Pt = { convertTo: (e, t, n, r) => { e.appearance || (e.appearance = {}), e.appearance[t] = n; }, convertFrom: (e, t, n) => e.appearance ? e.appearance[t] : e[t] }, Ct = { convertFrom: (e, t, n) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无" }, Et = { convertTo: (e, t, n, r) => { e.editor && (e.editor[t] = n); }, convertFrom: (e, t, n) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, t) ? e.editor[t] : e[t] }, Ft = { 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: "多语输入框" } }, Mt = { convertFrom: (e, t, n) => { var a; const r = e.editor && e.editor[t] ? e.editor[t] : e[t]; return ((a = Ft[r]) == null ? void 0 : a.name) || r; } }, xt = { convertTo: (e, t, n, r) => { e[t] = e[t]; }, convertFrom: (e, t, n) => e.editor ? n.getRealEditorType(e.editor.type) : "" }, $t = { convertTo: (e, t, n, r) => { (e.type === "data-grid-column" || e.type === "tree-grid-column") && (e.formatter ? e.formatter[t] = n : e.formatter = { [t]: n }); }, convertFrom: (e, t, n) => { if (e.formatter) { if (t === "trueText") return e.formatter.trueText; if (t === "falseText") return e.formatter.falseText; if (t === "prefix") return e.formatter.prefix; if (t === "suffix") return e.formatter.suffix; if (t === "precision") return e.formatter.precision; if (t === "decimal") return e.formatter.decimal; if (t === "thousand") return e.formatter.thousand; if (t === "tempDateFormat") return e.formatter.dateFormat === "yyyy年MM月dd日" ? "yearMonthDay" : e.formatter.dateFormat === "yyyy-MM-dd HH:mm:ss" ? "yyyy-MM-ddTHH:mm:ss" : e.formatter.dateFormat === "yyyy/MM/dd HH:mm:ss" ? "yyyy/MM/ddTHH:mm:ss" : e.formatter.dateFormat === "yyyy年MM月dd日 HH时mm分ss秒" ? "yearMonthDayHourMinuteSecond" : e.formatter.tempDateFormat || e.formatter.dateFormat || "yyyy-MM-dd"; if (t === "customFormat") return e.formatter.customFormat; if (t === "type") return e.formatter.type || "none"; } return "none"; } }, Dt = { convertTo: (e, t, n, r) => { e.command ? e.command[t] = n : e.command = { [t]: n }, t === "enable" && n && (e.command.commands || (e.command.commands = [ { text: "编辑", type: "primary", command: "edit" }, { text: "删除", type: "danger", command: "remove" } ])); }, convertFrom: (e, t, n) => e.command && t === "enable" ? e.command.enable : "" }, Rt = { convertTo: (e, t, n, r) => { e.column ? e.column[t] = n : e.column = { [t]: n }, t === "fitColumns" && n && (e.column.fitMode || (e.column.fitMode = "average")); }, convertFrom: (e, t, n) => { if (e.column) { if (t === "fitColumns") return e.column.fitColumns; if (t === "fitMode") return e.column.fitMode; } return ""; } }, Nt = { convertTo: (e, t, n, r) => { e.summary ? e.summary[t] = n : e.summary = { [t]: n }, t === "enable" && n && (e.summary ? e.summary.groupFields || (e.summary.groupFields = []) : e.summary = { enable: n, groupFields: [] }); }, convertFrom: (e, t, n) => e.summary && t === "enable" ? e.summary.enable : e.type === "data-grid-column" ? e.enableSummary === void 0 ? !1 : e.enableSummary : "" }, At = { convertTo: (e, t, n, r) => { e.group ? e.group[t] = n : e.group = { [t]: n }, t === "enable" && n && (e.group ? e.group.groupFields || (e.group.groupFields = []) : e.group = { enable: n, groupFields: [], showSummary: !1 }); }, convertFrom: (e, t, n) => { if (e.group) { if (t === "enable") return e.group.enable; if (t === "showSummary") return e.group.showSummary; } } }, Bt = { convertFrom: (e, t) => e.binding ? e.binding.path : "", convertTo: (e, t, n) => { if (n && n.length > 0) { const r = n[0]; e.binding || (e.binding = {}), e.binding.type = "Form", e.binding.path = r.bindingField, e.binding.field = r.id, e.binding.fullPath = r.path, e.path = r.bindingPath; } } }, Ht = { convertTo: (e, t, n, r) => { e.pagination || (e.pagination = {}), e.pagination[t] = n; }, convertFrom: (e, t, n) => e.pagination ? e.pagination[t] : e[t] }, qt = { convertTo: (e, t, n, r) => { e.rowNumber || (e.rowNumber = {}), e.rowNumber[t] = n; }, convertFrom: (e, t, n) => e.rowNumber ? e.rowNumber[t] : e[t] }, Vt = { convertTo: (e, t, n, r) => { e.selection || (e.selection = {}), e.selection[t] = n; }, convertFrom: (e, t, n) => e.selection ? e.selection[t] : e[t] }, It = { convertFrom: (e, t, n) => e[t] && e[t].length ? `共 ${e[t].length} 项` : "" }, zt = { convertFrom: (e, t) => e[t] || "", convertTo: (e, t, n) => { e[t] = n; } }, Lt = { convertTo: (e, t, n, r) => { e.size || (e.size = {}), e.size[t] = n; }, convertFrom: (e, t, n) => e.size ? e.size[t] : e[t] }, kt = { convertFrom: (e, t, n) => { var r, a; return (r = e.formatter) != null && r.data && t === "formatterEnumData" && !e.formatterEnumData ? (a = e.formatter) == null ? void 0 : a.data : e.formatterEnumData; } }, Wt = { convertTo: (e, t, n, r) => { e.sort || (e.sort = {}), e.sort[t] = n; }, convertFrom: (e, t, n) => { var r, a; if (t === "mode") return ((r = e.sort) == null ? void 0 : r.mode) || "client"; if (t === "multiSort") return !!((a = e.sort) != null && a.multiSort); } }, Gt = { convertTo: (e, t, n, r) => { e.filter || (e.filter = {}), e.filter[t] = n; }, convertFrom: (e, t, n) => { var r; if (t === "mode") return ((r = e.filter) == null ? void 0 : r.mode) || "client"; } }, Ut = { convertTo: (e, t, n, r) => { e.rowOption ? e.rowOption[t] = n : e.rowOption = { [t]: n }; }, convertFrom: (e, t, n) => { if (e.rowOption) { if (t === "customRowStyle") return e.rowOption.customRowStyle; if (t === "customCellStyle") return e.rowOption.customCellStyle; } return ""; } }; function ge(e, t, n) { const r = /* @__PURE__ */ new Map([ ["/converter/appearance.converter", Pt], ["/converter/buttons.converter", Ct], ["/converter/property-editor.converter", Et], ["/converter/items-count.converter", It], ["/converter/type.converter", Mt], ["/converter/change-editor.converter", xt], ["/converter/change-formatter.converter", $t], ["/converter/column-command.converter", Dt], ["/converter/column-option.converter", Rt], ["/converter/summary.converter", Nt], ["/converter/group.converter", At], ["/converter/form-group-label.converter", zt], ["/converter/field-selector.converter", Bt], ["/converter/pagination.converter", Ht], ["/converter/row-number.converter", qt], ["/converter/grid-selection.converter", Vt], ["/converter/size.converter", Lt], ["/converter/change-formatter-enum.converter", kt], ["/converter/grid-sort.converter", Wt], ["/converter/grid-filter.converter", Gt], ["/converter/row-option.converter", Ut] ]), a = /* @__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 }] ]), s = Tt(); function v(o, i) { return () => s.parseValueSchema(o, i); } function y(o, i, l) { return o.includes("visible") && i.visible !== void 0 ? typeof i.visible == "boolean" ? () => !!i.visible : i.visible === void 0 ? !0 : v(i.visible, l) : () => !0; } function b(o, i, l) { return o.includes("readonly") && i.readonly !== void 0 ? typeof i.readonly == "boolean" ? () => !!i.readonly : v(i.readonly, l) : () => !1; } function f(o, i) { const l = o.$converter || i; return typeof l == "string" && l && r.has(l) ? r.get(l) || null : l || null; } function m(o, i, l, g, h, w = "", T = "") { return Object.keys(o).map((O) => { const P = N(1), C = O, d = o[O], S = Object.keys(d), A = d.title, D = d.type, R = a.get(D) || { type: "input-group", enableClear: !1 }, M = d.editor ? Object.assign({}, R, d.editor) : Object.assign({}, R), W = y(S, d, i), V = b(S, d, i); M.readonly = M.readonly === void 0 ? V() : M.readonly; const G = d.type === "cascade" ? m(d.properties, i, l, g, h, w, T) : [], je = !0; let E = f(d, T); const Te = ae({ get() { if (P.value) { if (["class", "style"].find((Me) => Me === C) && !E && (E = r.get("/converter/appearance.converter") || null), E && E.convertFrom) return E.convertFrom(l, O, h, w); const F = l[O]; return Object.prototype.hasOwnProperty.call(d, "defaultValue") && (F === void 0 || typeof F == "string" && F === "") ? d.type === "boolean" ? d.defaultValue : d.defaultValue || "" : F; } return null; }, set(F) { P.value += 1, E && E.convertTo ? (E.convertTo(g, O, F, h, w), E.convertTo(l, O, F, h, w)) : (g[O] = F, l[O] = F); } }), { refreshPanelAfterChanged: Pe, description: Ce, isExpand: Ee, parentPropertyID: Fe } = d, X = { propertyID: C, propertyName: A, propertyType: D, propertyValue: Te, editor: M, visible: W, readonly: V, cascadeConfig: G, hideCascadeTitle: je, refreshPanelAfterChanged: Pe, description: Ce, isExpand: Ee, parentPropertyID: Fe }; return i[C] = X, X; }); } function c(o, i, l = {}) { const g = {}, h = e[o]; return h && h.categories ? Object.keys(h.categories).map((T) => { const j = h.categories[T], O = j == null ? void 0 : j.title, P = m(j.properties || {}, g, {}, l, i); return { categoryId: T, categoryName: O, properties: P }; }) : []; } function u(o, i, l, g, h = "") { const w = i.$ref.schema, T = i.$ref.converter, j = l[w], O = j.type, P = n(j), C = {}, d = e[O]; if (d && d.categories) { const S = d.categories[o], A = S == null ? void 0 : S.title; T && Object.keys(S.properties).forEach((M) => { S.properties[M].$converter = T; }); const D = (S == null ? void 0 : S.properties) || {}, R = m(D, C, P, j, g, h); return { categoryId: o, categoryName: A, properties: R }; } return { categoryId: o, categoryName: "", properties: [] }; } function p(o, i, l, g, h) { const w = o.type, T = n(o), j = {}; let O = h || e[w]; if (O && Object.keys(O).length === 0 && l && l.getPropConfig && (O = l.getPropConfig(g)), O && O.categories) { const P = []; return Object.keys(O.categories).map((C) => { const d = O.categories[C]; if (d.$ref) { P.push(u(C, d, o, i, g)); return; } const S = d == null ? void 0 : d.title, A = d == null ? void 0 : d.tabId, D = d == null ? void 0 : d.tabName, R = d == null ? void 0 : d.hide, M = d == null ? void 0 : d.hideTitle, W = m(d.properties || {}, j, T, o, i, g, d.$converter), { setPropertyRelates: V } = d, G = d == null ? void 0 : d.parentPropertyID; P.push({ categoryId: C, categoryName: S, tabId: A, tabName: D, hide: R, properties: W, hideTitle: M, setPropertyRelates: V, parentPropertyID: G }); }), P; } return []; } return { getPropertyConfigBySchema: p, getPropertyConfigByType: c, propertyConverterMap: r }; } const ve = {}, be = {}; ge(ve, be, wt); const ye = {}, he = {}, { getSchemaByType: dn, resolveSchemaWithDefaultValue: Jt, resolveSchemaToProps: mn, mappingSchemaToProps: pn, setDesignerContext: gn } = de(ye, he), Oe = {}, we = {}; ge(Oe, we, Jt); function Yt(e, t, n = /* @__PURE__ */ new Map(), r = (v, y, b, f) => y, a = {}, s = (v) => v) { return me[t.title] = t, pe[t.title] = r, ve[t.title] = a, be[t.title] = s, ye[t.title] = t, he[t.title] = r, Oe[t.title] = a, we[t.title] = s, (v = {}, y = !0) => { if (!y) return jt(v, n); const b = St(v, t, n), f = Object.keys(e).reduce((m, c) => (m[c] = e[c].default, m), {}); return Object.assign(f, b); }; } const Qt = "https://json-schema.org/draft/2020-12/schema", Xt = "https://farris-design.gitee.io/code-editor.schema.json", Zt = "code-editor", _t = "A Farris Code Editor Component", Kt = "object", en = { id: { description: "The unique identifier for a Code Editor", type: "string" }, type: { description: "The type string of Code Editor component", type: "string", default: "code-editor" }, language: { description: "", type: "string", default: "json" }, theme: { description: "", type: "string", default: "vs-dark" }, readonly: { description: "", type: "boolean", default: !1 }, monacoEditorOptions: { description: "", type: "object", default: {} }, configPath: { description: "", type: "string", default: "assets/monaco-editor.config.json" }, modalTitle: { description: "", type: "string", default: "" }, onSubmitModal: { description: "", type: "function", default: null }, leftTemplate: { description: "", type: "function" } }, tn = [ "id", "type" ], nn = { $schema: Qt, $id: Xt, title: Zt, description: _t, type: Kt, properties: en, required: tn }, rn = /* @__PURE__ */ new Map([]); function on(e, t, n) { return t; } const Se = { ...fe, /** 弹框标题 */ modalTitle: { type: String, default: "" }, /** 确定后回调 */ onSubmitModal: { type: Function, default: null }, /** 左侧模板 */ leftTemplate: { type: Function } }, an = Yt(Se, nn, rn, on), Q = /* @__PURE__ */ ie({ name: "FCodeTextbox", props: Se, emits: ["update:modelValue"], setup(e, t) { const n = N(), r = N(""); function a(u) { switch (u) { case "json": return "JSON编辑器"; case "javascript": return "JavaScript编辑器"; case "html": return "HTML编辑器"; default: return "代码编辑器"; } } const s = ae(() => e.modalTitle ? e.modalTitle : a(e.language)); function v() { var u; return (u = n.value) == null ? void 0 : u.getValue(); } function y(u) { t.emit("update:modelValue", u), e.onSubmitModal && typeof e.onSubmitModal == "function" && e.onSubmitModal(u); } function b() { const u = v() || ""; return y(u), !0; } const f = Re({ get title() { return s.value; }, width: 900, height: 500, fitContent: !1, showHeader: !0, showCloseButton: !0, showMaxButton: !0, resizeable: !0, draggable: !0, buttons: [{ class: "btn btn-secondary", text: "取消", handle: () => !0 }, { class: "btn btn-primary", text: "确定", handle: () => b() }] }); function m() { r.value = e.modelValue; } function c() { m(); } return () => $(Ne, { modelValue: e.modelValue, editable: !1, readonly: e.readonly, enableClear: !1, buttonBehavior: "Modal", modalOptions: f, beforeOpen: c }, { default: () => [e.leftTemplate ? $("div", { class: "w-100 h-100", style: "display:flex;" }, [$("div", { class: "pt-2 pl-2 pr-2", style: "max-width:40%" }, [e.leftTemplate()]), $("div", { style: "flex: 1" }, [$(L, { ref: n, modelValue: r.value, language: e.language, theme: e.theme, readonly: e.readonly, monacoEditorOptions: e.monacoEditorOptions, configPath: e.configPath }, null)])]) : $(L, { ref: n, modelValue: r.value, language: e.language, theme: e.theme, readonly: e.readonly, monacoEditorOptions: e.monacoEditorOptions, configPath: e.configPath }, null)] }); } }), vn = { install(e) { e.component(L.name, L), e.component(Q.name, Q); }, register(e, t, n, r) { e["code-editor"] = Q, t["code-editor"] = an; } }; export { L as FCodeEditor, Q as FCodeTextbox, fe as codeEditorProps, Se as codeTextboxProps, vn as default };