UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1,260 lines (1,258 loc) 39.1 kB
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 };