@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1,260 lines (1,258 loc) • 39.1 kB
JavaScript
import { computed as A, watch as D, ref as V, createVNode as N, Fragment as G, createTextVNode as z } from "vue";
import { FNotifyService as U } from "../../components/notify/index.esm.js";
function Y(s, t, l, a, o) {
const { getGridHeaderCells: m } = o, h = 120, S = 50, y = A(() => {
var e;
return ((e = s.rowNumber) == null ? void 0 : e.enable) || !1;
}), P = A(() => {
var e, r;
return ((e = s.selection) == null ? void 0 : e.multiSelect) || ((r = s.selection) == null ? void 0 : r.showCheckbox) || !1;
}), _ = A(
() => {
var e;
return 0 + (y.value ? ((e = s.rowNumber) == null ? void 0 : e.width) || 32 : 0) + (P.value ? S : 0);
}
), R = A(() => {
var e;
return (e = s.columnOption) == null ? void 0 : e.fitColumns;
}), T = A(() => {
var e;
return R.value && ((e = s.columnOption) == null ? void 0 : e.fitMode) || "none";
});
function O(e, r, c) {
const g = parseInt(e.width, 10) / 100;
return c * g;
}
function k(e, r, c) {
return typeof e.width == "string" ? O(e, r, c) : e.width || h;
}
function i(e, r) {
const c = [], g = [];
let v = 0;
e.value.primaryColumns.forEach((C) => {
typeof C.width == "string" ? g.push(C) : (C.width = C.width || h, v += C.width, c.push(C));
});
const M = r * (c.length / e.value.primaryColumns.length);
c.forEach((C) => {
const p = M * (C.width / v);
C.actualWidth = p, e.value.primaryColumnsWidth += C.actualWidth;
});
const B = r - M;
g.forEach((C) => {
const p = O(C, e.value, B);
C.actualWidth = p, e.value.primaryColumnsWidth += C.actualWidth;
});
}
function d(e, r) {
const c = [], g = [], v = /* @__PURE__ */ new WeakMap();
let M = 0, B = 0;
if (e.value.primaryColumns.forEach((p) => {
if (typeof p.width == "string") {
const E = O(p, e.value, r);
v.set(p, E), M += E, g.push(p);
} else
p.width = p.width || h, B += p.width, c.push(p);
}), r - M > B) {
const p = r - M;
g.forEach((E) => {
E.actualWidth = v.get(E) || h, e.value.primaryColumnsWidth += E.actualWidth;
}), c.forEach((E) => {
E.actualWidth = p * (E.width / B), e.value.primaryColumnsWidth += E.actualWidth;
});
} else
i(e, r);
}
function f(e, r) {
e.value.primaryColumns.forEach((c) => {
c.actualWidth = k(c, e.value, r), e.value.primaryColumnsWidth += c.actualWidth;
});
}
const b = {
expand: d,
none: f,
percentage: i
};
function w(e) {
e.value.leftHeaderColumns = Array.from(m(e.value.leftColumns).values()), e.value.primaryHeaderColumns = Array.from(m(e.value.primaryColumns).values()), e.value.rightHeaderColumns = Array.from(m(e.value.rightColumns).values());
}
function W(e) {
e.value.leftColumnsWidth = 0, e.value.primaryColumnsWidth = 0, e.value.rightColumnsWidth = 0, e.value.leftColumns.forEach((r) => {
e.value.leftColumnsWidth += r.actualWidth || 0;
}), e.value.primaryColumns.forEach((r) => {
e.value.primaryColumnsWidth += r.actualWidth || 0;
}), e.value.rightColumns.forEach((r) => {
e.value.rightColumnsWidth += r.actualWidth || 0;
}), e.value = Object.assign({}, e.value);
}
function n(e, r, c) {
var E;
let g = 0;
const v = e.value.primaryColumns, M = e.value.rightColumns;
e.value.rightColumns.forEach((I) => {
I.actualWidth = k(I, e.value, r), g += I.actualWidth;
});
const B = c - g, C = b[T.value];
if (C && C(e, B), e.value.primaryColumnsWidth + g <= c)
return e.value.primaryColumns = [...v, ...M], e.value.primaryColumnsWidth += g, e.value.rightColumns = [], e.value.rightColumnsWidth = 0, !0;
const p = /* @__PURE__ */ new Map();
return p.set("primary", []), p.set("right", []), e.value.primaryColumns.reduce((I, F) => {
var $, H;
return F.fixed === "right" ? ($ = I.get("right")) == null || $.push(F) : (H = I.get("primary")) == null || H.push(F), I;
}, p), (E = p.get("right")) != null && E.length && (e.value.primaryColumns = [...p.get("primary") || []], e.value.rightColumns = [...p.get("right") || []]), e.value.primaryColumnsWidth = 0, e.value.rightColumnsWidth = 0, !1;
}
function u() {
if (l.value) {
t.value.leftColumnsWidth = 0, t.value.primaryColumnsWidth = 0, t.value.rightColumnsWidth = 0;
const e = l.value.clientWidth - _.value;
t.value.leftColumns.forEach((c) => {
c.actualWidth = k(c, t.value, e), t.value.leftColumnsWidth += c.actualWidth;
});
const r = e - t.value.leftColumnsWidth;
if (n(t, e, r))
a.value = r;
else {
t.value.rightColumns.forEach((v) => {
v.actualWidth = k(v, t.value, e), t.value.rightColumnsWidth += v.actualWidth;
});
const c = e - t.value.leftColumnsWidth - t.value.rightColumnsWidth, g = b[T.value];
g && g(t, c), a.value = c;
}
w(t), t.value = Object.assign({}, t.value);
}
}
return D(() => {
var e;
return (e = s.columnOption) == null ? void 0 : e.fitColumns;
}, (e, r) => {
e !== r && e && u();
}), D(T, (e, r) => {
e !== r && R.value && u();
}), { calculateColumnHeaders: w, calculateColumnsSize: u, calculateColumnsWidth: W };
}
const J = "";
function Q(s) {
const a = V({
defaultColumnWidth: 120,
headerDepth: 1,
leftColumns: [],
leftColumnsMap: /* @__PURE__ */ new Map(),
leftColumnsWidth: 0,
leftHeaderColumns: [],
primaryColumns: [],
primaryColumnsMap: /* @__PURE__ */ new Map(),
primaryColumnsWidth: 0,
primaryHeaderColumns: [],
rightColumns: [],
rightColumnsMap: /* @__PURE__ */ new Map(),
rightColumnsWidth: 0,
rightHeaderColumns: [],
summaryColumns: []
});
function o() {
a.value = {
defaultColumnWidth: 120,
headerDepth: 1,
leftColumns: [],
leftColumnsMap: /* @__PURE__ */ new Map(),
leftColumnsWidth: 0,
leftHeaderColumns: [],
primaryColumns: [],
primaryColumnsMap: /* @__PURE__ */ new Map(),
primaryColumnsWidth: 0,
primaryHeaderColumns: [],
rightColumns: [],
rightColumnsMap: /* @__PURE__ */ new Map(),
rightColumnsWidth: 0,
rightHeaderColumns: [],
summaryColumns: []
};
}
const m = V(s.summary), h = A(() => {
const n = m.value;
return (n == null ? void 0 : n.groupFields) || [];
});
function S() {
a.value.rightColumns.forEach((e) => {
e.showSetting = !1;
}), a.value.primaryColumns.forEach((e) => {
e.showSetting = !1;
});
const n = a.value.rightColumns, u = a.value.primaryColumns;
n.length > 0 ? n[n.length - 1].showSetting = !0 : u.length > 0 && (u[u.length - 1].showSetting = !0);
}
function y(n) {
o();
const u = /* @__PURE__ */ new Map();
return h.value && h.value.reduce((e, r) => (e.set(r, !0), e), u), n.reduce((e, r) => (r.filter = r.filter || J, r.fixed === "left" ? (a.value.leftColumns.push(r), a.value.leftColumnsMap.set(r.field, r), a.value.leftColumnsWidth += r.actualWidth) : r.fixed === "right" ? (a.value.rightColumns.push(r), a.value.rightColumnsMap.set(r.field, r), a.value.rightColumnsWidth += r.actualWidth) : (a.value.primaryColumns.push(r), a.value.primaryColumnsMap.set(r.field, r), a.value.primaryColumnsWidth += r.actualWidth), u.has(r.field) && a.value.summaryColumns.push(r), e), a), S(), a;
}
y(s.columns);
const P = A(() => a.value.leftColumns.length > 0), _ = A(() => a.value.rightColumns.length > 0);
function R(n, u) {
return u.sortable && u.sort && u.sort !== "none" && n.push(u), n;
}
function T(n, u) {
return n.sortOrder = n.sortOrder || 0, u.sortOrder = u.sortOrder || 0, n.sortOrder === u.sortOrder ? 0 : n.sortOrder < u.sortOrder ? -1 : 1;
}
function O(n, u) {
return n.sortOrder = n.sortOrder || 0, u.sortOrder = u.sortOrder || 0, n.sortOrder === u.sortOrder ? 0 : n.sortOrder < u.sortOrder ? 1 : -1;
}
function k(n, u) {
return u.filterable && n.push(u), n;
}
function i() {
const n = [];
return a.value.leftColumns.reduce(k, n), a.value.primaryColumns.reduce(k, n), a.value.rightColumns.reduce(k, n), n;
}
function d() {
const n = [];
a.value.leftColumns.reduce(R, n), a.value.primaryColumns.reduce(R, n), a.value.rightColumns.reduce(R, n);
const u = Math.max(...n.map((e) => e.sortOrder || 0));
return n.sort(O).map((e) => {
const r = e.sortOrder || u + 1;
return e.sortOrder = r, e;
}).sort(T).map((e, r) => {
const c = r + 1;
return e.sortOrder = c, e;
});
}
function f(n, u, e) {
const r = n.map((c) => {
const g = e.getSorterByColumn(c), v = c.sort === "asc", M = c.sort === "desc", B = v ? g.ascend : M ? g.decend : void 0;
return { field: c.field, compare: B };
});
u.setSorters(r);
}
function b(n, u) {
const e = d();
f(e, n, u);
}
function w(n) {
}
function W(n) {
}
return {
applyColumnSorter: b,
collectionFilterableColumns: i,
applySortableColumns: f,
collectionSortableColumns: d,
columnContext: a,
hasLeftFixedColumn: P,
hasRightFixedColumn: _,
updateColumnRenderContext: y,
updateColumnSettingIcon: S,
sortFromServer: w,
createSortConditions: W
};
}
function X(s, t, l, a, o, m, h, S) {
const y = V(a.value - 1 + o), P = V(0), { renderDataRow: _ } = m, R = h ? h.renderGroupRow : _, T = S ? S.renderSummaryRow : _;
function O(d) {
let f = _;
return d.__fv_data_grid_group_row__ && (f = R), d.__fv_data_grid_group_summary__ && (f = T), f;
}
function k(d, f, b, w) {
const { dataView: W } = l, n = [];
if (W.value.length > 0) {
const u = w ? Date.now().toString() : "";
let e = d, r = 0;
const c = f - d + 1;
for (; n.length < c && e < W.value.length; ) {
const g = W.value[e], v = W.value[e - 1] || b, M = n[r - 1], B = v ? (v.__fv_data_position__ || 0) + (v.__fv_data_height__ || 0) : 0, p = O(g)(g, v, M, e, B, t.value, n);
p.refreshKey = u, n.push(p), r++, e++;
}
}
return P.value = n.length > 0 ? n[0].index : 0, y.value = n.length > 0 ? n[n.length - 1].index : 0, n;
}
function i(d, f, b) {
const w = f.groupField || "", { groupValue: W, raw: n } = f;
l[d](w, W, n.groupParents || []);
const { dataView: u } = l, e = b[0].index, r = Math.min(e + a.value + o + 1, u.value.length - 1);
return k(e, r);
}
return { getVisualData: k, maxVisibleRowIndex: y, minVisibleRowIndex: P, toggleGroupRow: i };
}
function Z() {
function s(t) {
return {
title: "行配置",
description: "",
properties: {
customRowStyle: {
title: "行样式",
type: "string",
description: "自定义行样式",
$converter: "/converter/row-option.converter",
editor: {
type: "code-editor",
language: "javascript",
leftTemplate: () => N(G, null, [N("h5", null, [z("示例代码")]), N("pre", null, [`
(dataItem) => {
if(dataItem.code === '0001') {
return {
class: {
'text-align': true,
'text-red': true
},
style: {
'background-color': '#000',
'font-size': '1rem'
}
};
}
return {};
}
注: dataItem 行数据
`])])
}
},
customCellStyle: {
title: "单元格样式",
type: "string",
description: "自定义单元格样式",
$converter: "/converter/row-option.converter",
editor: {
type: "code-editor",
language: "javascript",
leftTemplate: () => N(G, null, [N("h5", null, [z("示例代码")]), N("pre", null, [`
(cell, row) => {
if(cell.data === '0002') {
return {
class: {
'text-align': true,
'text-red': true
},
style: {
'background-color': '#000',
'font-size': '1rem'
}
};
}
return {};
}
注: cell.data 单元格数据
cell.column 列数据
row.raw 行数据
`])])
}
}
}
};
}
return {
getRowOptionProperties: s
};
}
function j() {
function s(t) {
return {
title: "填充列宽",
description: "",
properties: {
fitColumns: {
title: "启用",
type: "boolean",
description: "启用填充列宽",
$converter: "/converter/column-option.converter",
refreshPanelAfterChanged: !0
}
// fitMode: {
// description: '',
// title: '填充模式',
// type: 'enum',
// visible: !!propertyData.column?.fitColumns,
// $converter: '/converter/column-option.converter',
// editor: {
// data: [
// { id: 'average', name: '平分' },
// { id: 'expand', name: '等比' }
// ]
// }
// },
},
setPropertyRelates(l, a) {
switch (l && l.propertyID) {
case "fitColumns": {
a.fit = l.propertyValue, a.columns && (l.propertyValue ? a.columns.forEach((o) => {
o.resizable = !1;
}) : a.columns.forEach((o) => {
o.resizable = !0;
}));
break;
}
}
}
};
}
return { getColumnOptionProperties: s };
}
function x(s) {
function t(l) {
var a, o, m;
return {
title: "操作列",
description: "",
properties: {
// enable: {
// title: '启用',
// type: 'boolean',
// $converter: '/converter/column-command.converter',
// description: '启用操作列',
// refreshPanelAfterChanged: true
// },
enableType: {
title: "操作列",
type: "enum",
$converter: "/converter/column-command.converter",
description: "启用操作列",
refreshPanelAfterChanged: !0,
editor: {
data: [
{ id: "unable", name: "无" },
{ id: "default", name: "编辑和删除" },
{ id: "custom", name: "自定义" }
]
}
},
count: {
description: "平铺操作按钮数量",
title: "平铺按钮数量",
type: "number",
$converter: "/converter/column-command.converter",
visible: ((a = l.command) == null ? void 0 : a.enableType) === "custom",
editor: {
needValid: !0,
min: 0
}
},
commands: {
description: "操作列按钮集合",
title: "操作项",
type: "array",
visible: ((o = l.command) == null ? void 0 : o.enableType) === "custom",
$converter: "/converter/column-command.converter",
editor: {
columns: [
{ field: "value", title: "值", dataType: "string" },
{ field: "text", title: "名称", dataType: "string" }
],
type: "item-collection-editor",
valueField: "value",
nameField: "text",
requiredFields: ["value", "text"],
uniqueFields: ["value", "text"]
}
},
formatter: {
title: "操作列模板",
$converter: "/converter/column-command.converter",
type: "string",
visible: ((m = l.command) == null ? void 0 : m.enableType) === "custom" && !!l.command.formatter,
description: "操作列模板",
refreshPanelAfterChanged: !0,
editor: {
type: "code-editor",
language: "html"
}
}
},
setPropertyRelates(h, S) {
var y;
switch (h && h.propertyID) {
case "enableType": {
(h.propertyValue === "custom" || h.propertyValue === "default") && ((y = s.getFormDesignerInstance()) == null || y.reloadPropertyPanel());
break;
}
}
}
};
}
return { getCommandColumnProperties: t };
}
function ee() {
function s(t) {
var l;
return {
title: "合计行",
description: "",
properties: {
enable: {
title: "启用",
type: "boolean",
description: "启用合计行",
$converter: "/converter/summary.converter",
refreshPanelAfterChanged: !0
},
customRender: {
title: "合计行模板",
type: "string",
description: "合计行模板",
$converter: "/converter/summary.converter",
refreshPanelAfterChanged: !0,
visible: !!((l = t.summary) != null && l.enable),
editor: {
type: "code-editor",
language: "html"
}
}
}
};
}
return { getSummaryProperties: s };
}
var L = /* @__PURE__ */ ((s) => (s.Column = "column", s.Group = "group", s))(L || {});
function te() {
function s(t, l) {
var a, o;
return {
title: "分组",
description: "",
properties: {
enable: {
title: "启用",
type: "boolean",
description: "启用分组",
$converter: "/converter/group.converter",
refreshPanelAfterChanged: !0
},
customRender: {
title: "自定义分组行模板",
type: "string",
visible: !!((a = t.group) != null && a.enable),
description: "自定义分组行模板",
$converter: "/converter/group.converter",
editor: {
type: "code-editor",
language: "html"
}
},
groupFields: {
title: "分组字段",
type: "string",
visible: !!((o = t.group) != null && o.enable),
description: "分组字段",
$converter: "/converter/group.converter",
editor: {
type: "grid-field-editor",
usage: L.Group,
viewModelId: l,
gridData: t,
getLatestGridData: (m) => t
}
}
// showSummary: {
// title: '显示分组合计行',
// type: 'boolean',
// visible: !!propertyData.group?.enable,
// $converter: '/converter/group.converter',
// description: '显示分组合计行'
// }
// groupFields: {
// title: '启用',
// type: 'boolean',
// description: '启用分组',
// refreshPanelAfterChanged: true
// }
}
};
}
return { getGroupProperties: s };
}
function re() {
function s(t) {
var o, m, h, S, y, P;
if (t.displayType === "Card")
return [
{
label: "onClickRow",
name: "行点击事件"
},
{
label: "onSelectionChange",
name: "行切换事件"
},
{
label: "onEndEditCell",
name: "单元格结束编辑事件"
}
];
const l = [
{
label: "onClickRow",
name: "行点击事件"
},
{
label: "onSelectionChange",
name: "行切换事件"
},
{
label: "onDoubleClickRow",
name: "行双击事件"
},
{
label: "onFilterChanged",
name: "过滤事件"
},
{
label: "onSelectItem",
name: "选中行事件"
},
{
label: "onUnSelectItem",
name: "取消选中行事件"
},
{
label: "onSelectAll",
name: "全选事件"
},
{
label: "onUnSelectAll",
name: "取消全选事件"
}
];
return t.type !== "tree-grid" && l.push(
{
label: "onSortChanged",
name: "排序事件"
},
{
label: "onEndEditCell",
name: "单元格结束编辑事件"
},
{
label: "beforeEditCell",
name: "单元格编辑前事件"
}
), t.type === "tree-grid" && l.push({
label: "onExpandNode",
name: "展开事件"
}), ((o = t.pagination) == null ? void 0 : o.enable) !== !1 && t.type !== "tree-grid" && l.push(
{
label: "onPageIndexChanged",
name: "切换页码事件"
},
{
label: "onPageSizeChanged",
name: "分页条数变化事件"
}
), (m = t.command) != null && m.enable && ((h = t.command) == null ? void 0 : h.enableType) === "custom" && l.push({
label: "onHandleAction",
name: "自定义操作列点击事件"
}), ((S = t.command) == null ? void 0 : S.enable) && (((y = t.command) == null ? void 0 : y.enableType) === "default" || !((P = t.command) != null && P.enableType) && JSON.stringify(t.command.commands) === JSON.stringify([
{
text: "编辑",
type: "primary",
command: "edit"
},
{
text: "删除",
type: "danger",
command: "remove"
}
])) && l.push(
{
label: "onClickEditCommand",
name: "操作列编辑事件"
},
{
label: "onClickDeleteCommand",
name: "操作列删除事件"
}
), l;
}
return { initEvent: s };
}
function ne() {
function s(t) {
var l, a, o;
return {
title: "多选配置",
$converter: "/converter/grid-selection.converter",
parentPropertyID: "editor",
properties: {
multiSelect: {
title: "启用多选",
type: "boolean",
refreshPanelAfterChanged: !0
},
showCheckbox: {
visible: !!((l = t.selection) != null && l.multiSelect),
$converter: "/converter/grid-selection.converter",
title: "显示复选框",
type: "boolean",
readonly: !0,
refreshPanelAfterChanged: !0
},
showSelectAll: {
visible: !!((a = t.selection) != null && a.multiSelect) && !!((o = t.selection) != null && o.showCheckbox),
title: "显示全选",
type: "boolean"
}
// keepSelectingOnPaging: {
// visible: !!propertyData.selection?.multiSelect && propertyData.type !== 'tree-grid',
// title: '启用跨页多选',
// type: 'boolean'
// },
// showSelection: {
// title: '显示已选数据数量',
// type: 'boolean'
// }
},
setPropertyRelates(m, h) {
switch (m && m.propertyID) {
case "multiSelect":
t.selection.showCheckbox = m.propertyValue;
break;
}
}
};
}
return { getSelection: s };
}
function ae() {
function s(t) {
var l, a, o, m;
return {
title: "行号配置",
$converter: "/converter/row-number.converter",
parentPropertyID: "rowNumber",
properties: {
enable: {
title: "显示行号",
type: "boolean",
refreshPanelAfterChanged: !0
},
width: {
visible: !!((l = t.rowNumber) != null && l.enable) || ((a = t.rowNumber) == null ? void 0 : a.enable) === void 0,
title: "宽度",
type: "number"
},
heading: {
visible: !!((o = t.rowNumber) != null && o.enable) || ((m = t.rowNumber) == null ? void 0 : m.enable) === void 0,
title: "标题",
type: "string"
}
}
};
}
return { getRowNumber: s };
}
function ie() {
function s(t, l) {
var a, o;
return {
title: "分页",
$converter: "/converter/pagination.converter",
parentPropertyID: "pagination",
properties: {
enable: {
title: "启用分页",
type: "boolean",
refreshPanelAfterChanged: !0,
editor: {
readonly: l
}
},
// mode: {
// visible: propertyData.pagination?.enable || false,
// title: '分页交互模式',
// type: "enum",
// editor: {
// type: "combo-list",
// textField: "value",
// valueField: "key",
// data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }]
// }
// },
showIndex: {
visible: ((a = t.pagination) == null ? void 0 : a.enable) || !1,
title: "显示页码",
type: "boolean"
},
showLimits: {
visible: ((o = t.pagination) == null ? void 0 : o.enable) || !1,
title: "显示分页条数",
type: "boolean"
}
}
};
}
return { getPagination: s };
}
function oe(s) {
function t(o) {
return o.displayType === "Card" ? {
showStripe: {
title: "显示条纹",
type: "boolean",
description: "是否显示条纹"
},
showBorder: {
title: "显示边框",
type: "boolean",
description: "是否显示边框"
}
} : {
showStripe: {
title: "显示条纹",
type: "boolean",
description: "是否显示条纹"
},
showBorder: {
title: "显示边框",
type: "boolean",
description: "是否显示边框"
},
showSetting: {
title: "显示设置按钮",
type: "boolean",
description: "是否显示设置按钮",
refreshPanelAfterChanged: !0
},
enableColumnSettingSolution: {
title: "启用列设置方案",
type: "boolean",
description: "启用列设置方案",
visible: !!o.showSetting
},
emptyTemplate: {
title: "空模板",
type: "string",
description: "空模板",
editor: {
type: "code-editor",
language: "html"
}
}
};
}
function l(o, m) {
return {
title: "外观",
properties: {
class: {
title: "class样式",
type: "string",
description: "组件的class样式"
},
columns: {
title: "列设置",
description: "列设置",
type: "array",
editor: {
type: "grid-field-editor",
viewModelId: m,
gridData: o,
getLatestGridData: (h) => o
},
// 这个属性,标记当属性变更得时候触发重新更新属性
refreshPanelAfterChanged: !0
},
...t(o)
// useBlankWhenDataIsEmpty: {
// title: '空数据表格显示空白行',
// description: '表格没有数据时是否显示空白行',
// type: 'boolean',
// refreshPanelAfterChanged: true
// },
// emptyDataHeight: {
// title: '空数据高度',
// type: 'number',
// description: '空数据行高度设置',
// min: 1,
// max: 1000
// },
},
setPropertyRelates(h, S) {
switch (h && h.propertyID) {
case "useBlankWhenDataIsEmpty":
o.emptyDataHeight = o.useBlankWhenDataIsEmpty ? 36 : 240;
break;
case "columns":
o.columns = h.propertyValue || [];
break;
}
}
};
}
function a(o, m) {
return {
title: "外观",
properties: {
class: {
title: "class样式",
type: "string",
description: "组件的CSS样式"
},
columns: {
title: "列设置",
description: "列设置",
$converter: "/converter/items-count.converter",
editor: {
type: "grid-field-editor",
viewModelId: m,
gridData: o,
gridType: "tree-grid-column"
},
// 这个属性,标记当属性变更得时候触发重新更新属性
refreshPanelAfterChanged: !0
},
// searchable: {
// title: '是否可搜索定位',
// type: 'boolean',
// description: '是否可搜索定位',
// refreshPanelAfterChanged: true
// },
...t(o)
// showTreeNodeIcons: {
// title: '显示图标',
// type: "boolean",
// description: '是否显示图标'
// },
// showSetting: {
// title: '显示设置按钮',
// type: "boolean",
// description: '是否显示设置按钮',
// visible:false
// }
},
setPropertyRelates(h, S) {
switch (h && h.propertyID) {
case "useBlankWhenDataIsEmpty":
o.emptyDataHeight = o.useBlankWhenDataIsEmpty ? 36 : 240;
break;
case "fields":
o.fields = h.propertyValue || [];
break;
}
}
};
}
return { getDataGrid: l, getTreeGrid: a };
}
function le() {
function s(t) {
return {
title: "排序",
description: "",
properties: {
mode: {
title: "类型",
type: "enum",
description: "排序类型",
$converter: "/converter/grid-sort.converter",
editor: {
data: [
{ id: "client", name: "客户端" },
{ id: "server", name: "服务端" }
]
}
}
// multiSort: {
// title: '启用多列排序',
// type: 'boolean',
// description: '启用多列排序',
// $converter: '/converter/grid-sort.converter'
// }
}
};
}
return { getSort: s };
}
function se() {
function s(t) {
return {
title: "过滤",
description: "",
properties: {
mode: {
title: "类型",
type: "enum",
description: "过滤类型",
$converter: "/converter/grid-filter.converter",
editor: {
data: [
{ id: "client", name: "客户端" },
{ id: "server", name: "服务端" }
]
}
}
}
};
}
return { getFilter: s };
}
function ue(s, t) {
const { messagerService: l, designViewModelUtils: a, controlCreatorUtils: o, formStateMachineUtils: m, formSchemaUtils: h } = s, S = new U();
let y = "editable";
function P(i) {
i.renderState || (i.renderState = {});
const d = {
condition: [
{ lBracket: null, source: "state", compare: "===", target: "'add'", relation: "or", rBracket: "" },
{ lBracket: null, source: "state", compare: "===", target: "'edit'", relation: "", rBracket: "" }
],
name: "可编辑",
description: ""
};
return i.renderState.editable ? i.renderState.editable.condition && JSON.stringify(i.renderState.editable.condition) === JSON.stringify(d.condition) ? !1 : (i.renderState.gridEditable = Object.assign(d, { name: "表格可编辑" }), y = "gridEditable", !0) : (i.renderState.editable = d, !0);
}
function _() {
return {
renderState: {
canAdd: {
condition: [
{
lBracket: null,
source: "state",
compare: "===",
target: "'add'",
relation: "or",
rBracket: ""
},
{
lBracket: null,
source: "state",
compare: "===",
target: "'init'",
relation: "or",
rBracket: ""
},
{
lBracket: null,
source: "state",
compare: "===",
target: "'edit'",
relation: "",
rBracket: ""
}
],
name: "新增",
description: ""
},
canEdit: {
condition: [
{
lBracket: null,
source: "state",
compare: "===",
target: "'init'",
relation: "",
rBracket: ""
}
],
name: "编辑",
description: ""
},
canCancel: {
condition: [
{
lBracket: null,
source: "state",
compare: "===",
target: "'add'",
relation: "or",
rBracket: ""
},
{
lBracket: null,
source: "state",
compare: "===",
target: "'edit'",
relation: "",
rBracket: ""
}
],
name: "取消",
description: ""
},
canSave: {
condition: [
{
lBracket: null,
source: "state",
compare: "===",
target: "'add'",
relation: "or",
rBracket: ""
},
{
lBracket: null,
source: "state",
compare: "===",
target: "'edit'",
relation: "",
rBracket: ""
}
],
name: "保存",
description: ""
},
canRemove: {
condition: [
{
lBracket: null,
source: "state",
compare: "===",
target: "'add'",
relation: "or",
rBracket: ""
},
{
lBracket: null,
source: "state",
compare: "===",
target: "'edit'",
relation: "or",
rBracket: ""
},
{
lBracket: null,
source: "state",
compare: "===",
target: "'init'",
relation: "",
rBracket: ""
}
],
name: "删除",
description: ""
},
editable: {
condition: [
{
lBracket: null,
source: "state",
compare: "===",
target: "'add'",
relation: "or",
rBracket: ""
},
{
lBracket: null,
source: "state",
compare: "===",
target: "'edit'",
relation: "",
rBracket: ""
}
],
name: "可编辑",
description: ""
}
},
state: [
{
state: "add",
name: "新增",
description: "处于新增状态"
},
{
state: "init",
name: "初始",
description: "处于初始状态"
},
{
state: "edit",
name: "编辑",
description: "处于编辑状态"
}
],
initialState: "init",
action: {
Create: {
name: "创建",
transitTo: "add",
description: "新建并切换至新增状态"
},
Edit: {
name: "编辑",
transitTo: "edit",
description: "编辑并切换至编辑状态"
},
Cancel: {
name: "取消",
transitTo: "init",
description: "取消并切换至初始状态"
},
Save: {
name: "保存",
transitTo: "init",
description: "保存并切换至初始状态"
}
}
};
}
async function R() {
var w, W;
const i = _(), d = await m.createStateMachine(i), f = h.getFormSchema().module;
((w = f.stateMachines) == null ? void 0 : w.length) === 0 && f.stateMachines.push({
id: `${f.code}_state_machine`,
name: d.name,
uri: d.id,
code: d.code,
nameSpace: d.nameSpace
});
const b = ((W = f.viewmodels) == null ? void 0 : W.length) > 0 ? f.viewmodels[0] : null;
b && (b.stateMachine = `${f.code}_state_machine`);
}
async function T() {
const i = m.getStateMachineMetadata();
let d = !1;
i.state || (i.state = []), i.state.find((f) => f.state === "init") || (i.state.push({ state: "init", name: "初始", description: "处于初始状态" }), d = !0), i.state.find((f) => f.state === "add") || (i.state.push({ state: "add", name: "新增", description: "处于新增状态" }), d = !0), i.state.find((f) => f.state === "edit") || (i.state.push({ state: "edit", name: "编辑", description: "处于编辑状态" }), d = !0), i.action || (i.action = {}), i.action.Cancel || (i.action.Cancel = { name: "取消", transitTo: "init", description: "取消并切换至初始状态" }, d = !0), i.action.Create || (i.action.Create = { name: "创建", transitTo: "add", description: "新建并切换至新增状态" }, d = !0), i.action.Edit || (i.action.Edit = { name: "编辑", transitTo: "edit", description: "编辑并切换至编辑状态" }, d = !0), i.action.Save || (i.action.Save = { name: "保存", transitTo: "init", description: "保存并切换至初始状态" }, d = !0), P(i) && (d = !0), d && await m.saveStateMachineMetadata(i);
}
async function O(i) {
var b;
m.getStateMachineMetadata() ? await T() : await R(), i.fieldEditable = !0, i.editable = `viewModel.stateMachine['${y}']`, i.disabled = !1, (b = i.pagination) != null && b.enable && (i.pagination.disabled = `viewModel.stateMachine['${y}']`);
const f = a.getDgViewModel(t);
i.columns.map((w) => {
const W = f.fields.find((u) => u.id === w.binding.field);
if (!W)
return;
const n = o.setFormFieldProperty(W);
w.editor = n.editor, w.editor.readonly && typeof w.editor.readonly == "object" && (w.editor.readonly.field = y);
}), S.success({ position: "top-center", message: "已启用单元格编辑" });
}
function k(i) {
return {
title: "单元格编辑",
description: "",
properties: {
fieldEditable: {
title: "启用",
type: "boolean",
description: "单元格是否可编辑",
refreshPanelAfterChanged: !0,
readonly: i.fieldEditable
}
},
async setPropertyRelates(d, f) {
return await new Promise((b) => {
d.propertyValue && l.question("启用单元格编辑后,将根据表格或者树表列绑定的字段类型自动分配编辑器,此操作不可撤销,是否继续?", "", async () => {
await O(i), b();
}, () => {
f.fieldEditable = !1, b();
});
});
}
};
}
return { getCellEditableProperties: k };
}
export {
oe as useAppearance,
ue as useCellEditable,
j as useColumnOption,
x as useCommandOption,
re as useDataGridEvent,
Q as useDesignerColumn,
Y as useDesignerFitColumn,
X as useDesignerVisualData,
se as useFilter,
te as useGroup,
ie as usePagination,
ae as useRowNumber,
Z as useRowOption,
ne as useSelection,
le as useSort,
ee as useSummary
};