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