UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

39 lines (37 loc) 26 kB
(function(C,p){typeof exports=="object"&&typeof module<"u"?p(exports,require("vue"),require("../../components/notify/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../../components/notify/index.umd.js"],p):(C=typeof globalThis<"u"?globalThis:C||self,p(C["data-view"]={},C.Vue,C.notify))})(this,function(C,p,H){"use strict";function D(u,t,s,n,o){const{getGridHeaderCells:c}=o,m=120,g=50,h=p.computed(()=>{var e;return((e=u.rowNumber)==null?void 0:e.enable)||!1}),S=p.computed(()=>{var e,r;return((e=u.selection)==null?void 0:e.multiSelect)===!0||((r=u.selection)==null?void 0:r.showCheckbox)===!0}),V=p.computed(()=>{var e;return 0+(h.value?((e=u.rowNumber)==null?void 0:e.width)||32:0)+(S.value?g:0)}),R=p.computed(()=>{var e;return(e=u.columnOption)==null?void 0:e.fitColumns}),W=p.computed(()=>{var e;return R.value&&((e=u.columnOption)==null?void 0:e.fitMode)||"none"});function A(e,r,i){const v=parseInt(e.width,10)/100;return i*v}function E(e,r,i){return typeof e.width=="string"?A(e,r,i):e.width||m}function l(e,r){const i=[],v=[];let w=0;e.value.primaryColumns.forEach(b=>{typeof b.width=="string"?v.push(b):(b.width=b.width||m,w+=b.width,i.push(b))});const _=r*(i.length/e.value.primaryColumns.length);i.forEach(b=>{const y=_*(b.width/w);b.actualWidth=y,e.value.primaryColumnsWidth+=b.actualWidth});const N=r-_;v.forEach(b=>{const y=A(b,e.value,N);b.actualWidth=y,e.value.primaryColumnsWidth+=b.actualWidth})}function d(e,r){const i=[],v=[],w=new WeakMap;let _=0,N=0;if(e.value.primaryColumns.forEach(y=>{if(typeof y.width=="string"){const T=A(y,e.value,r);w.set(y,T),_+=T,v.push(y)}else y.width=y.width||m,N+=y.width,i.push(y)}),r-_>N){const y=r-_;v.forEach(T=>{T.actualWidth=w.get(T)||m,e.value.primaryColumnsWidth+=T.actualWidth}),i.forEach(T=>{T.actualWidth=y*(T.width/N),e.value.primaryColumnsWidth+=T.actualWidth})}else l(e,r)}function f(e,r){e.value.primaryColumns.forEach(i=>{i.actualWidth=E(i,e.value,r),e.value.primaryColumnsWidth+=i.actualWidth})}const M={expand:d,none:f,percentage:l};function P(e){e.value.leftHeaderColumns=Array.from(c(e.value.leftColumns).values()),e.value.primaryHeaderColumns=Array.from(c(e.value.primaryColumns).values()),e.value.rightHeaderColumns=Array.from(c(e.value.rightColumns).values())}function B(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 k(e,r,i){var T;let v=0;const w=e.value.primaryColumns,_=e.value.rightColumns;e.value.rightColumns.forEach(F=>{F.actualWidth=E(F,e.value,r),v+=F.actualWidth});const N=i-v,b=M[W.value];if(b&&b(e,N),e.value.primaryColumnsWidth+v<=i)return e.value.primaryColumns=[...w,..._],e.value.primaryColumnsWidth+=v,e.value.rightColumns=[],e.value.rightColumnsWidth=0,!0;const y=new Map;return y.set("primary",[]),y.set("right",[]),e.value.primaryColumns.reduce((F,O)=>{var $,G;return O.fixed==="right"?($=F.get("right"))==null||$.push(O):(G=F.get("primary"))==null||G.push(O),F},y),(T=y.get("right"))!=null&&T.length&&(e.value.primaryColumns=[...y.get("primary")||[]],e.value.rightColumns=[...y.get("right")||[]]),e.value.primaryColumnsWidth=0,e.value.rightColumnsWidth=0,!1}function a(){if(s.value){t.value.leftColumnsWidth=0,t.value.primaryColumnsWidth=0,t.value.rightColumnsWidth=0;const e=s.value.clientWidth-V.value;t.value.leftColumns.forEach(i=>{i.actualWidth=E(i,t.value,e),t.value.leftColumnsWidth+=i.actualWidth});const r=e-t.value.leftColumnsWidth;if(k(t,e,r))n.value=r;else{t.value.rightColumns.forEach(w=>{w.actualWidth=E(w,t.value,e),t.value.rightColumnsWidth+=w.actualWidth});const i=e-t.value.leftColumnsWidth-t.value.rightColumnsWidth,v=M[W.value];v&&v(t,i),n.value=i}P(t),t.value=Object.assign({},t.value)}}return p.watch(()=>{var e;return(e=u.columnOption)==null?void 0:e.fitColumns},(e,r)=>{e!==r&&e&&a()}),p.watch(W,(e,r)=>{e!==r&&R.value&&a()}),{calculateColumnHeaders:P,calculateColumnsSize:a,calculateColumnsWidth:B}}const z="";function L(u){const s={defaultColumnWidth:120,headerDepth:1,leftColumns:[],leftColumnsMap:new Map,leftColumnsWidth:0,leftHeaderColumns:[],primaryColumns:[],primaryColumnsMap:new Map,primaryColumnsWidth:0,primaryHeaderColumns:[],rightColumns:[],rightColumnsMap:new Map,rightColumnsWidth:0,rightHeaderColumns:[],summaryColumns:[]},n=p.ref(s);function o(){n.value={defaultColumnWidth:120,headerDepth:1,leftColumns:[],leftColumnsMap:new Map,leftColumnsWidth:0,leftHeaderColumns:[],primaryColumns:[],primaryColumnsMap:new Map,primaryColumnsWidth:0,primaryHeaderColumns:[],rightColumns:[],rightColumnsMap:new Map,rightColumnsWidth:0,rightHeaderColumns:[],summaryColumns:[]}}const c=p.ref(u.summary),m=p.computed(()=>{const a=c.value;return(a==null?void 0:a.groupFields)||[]});function g(){n.value.rightColumns.forEach(r=>{r.showSetting=!1}),n.value.primaryColumns.forEach(r=>{r.showSetting=!1});const a=n.value.rightColumns,e=n.value.primaryColumns;a.length>0?a[a.length-1].showSetting=!0:e.length>0&&(e[e.length-1].showSetting=!0)}function h(a){o();const e=new Map;return m.value&&m.value.reduce((r,i)=>(r.set(i,!0),r),e),a.reduce((r,i)=>(i.filter=i.filter||z,i.fixed==="left"?(n.value.leftColumns.push(i),n.value.leftColumnsMap.set(i.field,i),n.value.leftColumnsWidth+=i.actualWidth):i.fixed==="right"?(n.value.rightColumns.push(i),n.value.rightColumnsMap.set(i.field,i),n.value.rightColumnsWidth+=i.actualWidth):(n.value.primaryColumns.push(i),n.value.primaryColumnsMap.set(i.field,i),n.value.primaryColumnsWidth+=i.actualWidth),e.has(i.field)&&n.value.summaryColumns.push(i),r),n),g(),n}h(u.columns);const S=p.computed(()=>n.value.leftColumns.length>0),V=p.computed(()=>n.value.rightColumns.length>0);function R(a,e){return e.sortable&&e.sort&&e.sort!=="none"&&a.push(e),a}function W(a,e){return a.sortOrder=a.sortOrder||0,e.sortOrder=e.sortOrder||0,a.sortOrder===e.sortOrder?0:a.sortOrder<e.sortOrder?-1:1}function A(a,e){return a.sortOrder=a.sortOrder||0,e.sortOrder=e.sortOrder||0,a.sortOrder===e.sortOrder?0:a.sortOrder<e.sortOrder?1:-1}function E(a,e){return e.filterable&&a.push(e),a}function l(){const a=[];return n.value.leftColumns.reduce(E,a),n.value.primaryColumns.reduce(E,a),n.value.rightColumns.reduce(E,a),a}function d(){const a=[];n.value.leftColumns.reduce(R,a),n.value.primaryColumns.reduce(R,a),n.value.rightColumns.reduce(R,a);const e=Math.max(...a.map(r=>r.sortOrder||0));return a.sort(A).map(r=>{const i=r.sortOrder||e+1;return r.sortOrder=i,r}).sort(W).map((r,i)=>{const v=i+1;return r.sortOrder=v,r})}function f(a,e,r){const i=a.map(v=>{const w=r.getSorterByColumn(v),_=v.sort==="asc",N=v.sort==="desc",b=_?w.ascend:N?w.decend:void 0;return{field:v.field,compare:b}});e.setSorters(i)}function M(a,e){const r=d();f(r,a,e)}function P(a){}function B(a){}function k(){}return{applyColumnSorter:M,collectionFilterableColumns:l,applySortableColumns:f,collectionSortableColumns:d,columnContext:n,hasLeftFixedColumn:S,hasRightFixedColumn:V,updateColumnRenderContext:h,updateColumnSettingIcon:g,sortFromServer:P,createSortConditions:B,clearSortConditions:k}}function U(u,t,s,n,o,c,m,g){const h=p.ref(n.value-1+o),S=p.ref(0),{renderDataRow:V}=c,R=m?m.renderGroupRow:V,W=g?g.renderSummaryRow:V;function A(d){let f=V;return d.__fv_data_grid_group_row__&&(f=R),d.__fv_data_grid_group_summary__&&(f=W),f}function E(d,f,M,P){const{dataView:B}=s,k=[];if(B.value.length>0){const a=P?Date.now().toString():"";let e=d,r=0;const i=f-d+1;for(;k.length<i&&e<B.value.length;){const v=B.value[e],w=B.value[e-1]||M,_=k[r-1],N=w?(w.__fv_data_position__||0)+(w.__fv_data_height__||0):0,y=A(v)(v,w,_,e,N,t.value,k);y.refreshKey=a,k.push(y),r++,e++}}return S.value=k.length>0?k[0].index:0,h.value=k.length>0?k[k.length-1].index:0,k}function l(d,f,M){const P=f.groupField||"",{groupValue:B,raw:k}=f;s[d](P,B,k.groupParents||[]);const{dataView:a}=s,e=M[0].index,r=Math.min(e+n.value+o+1,a.value.length-1);return E(e,r)}return{getVisualData:E,maxVisibleRowIndex:h,minVisibleRowIndex:S,toggleGroupRow:l}}function q(){function u(t){return{title:"行配置",description:"",properties:{customRowStyle:{title:"行样式",type:"string",description:"自定义行样式",$converter:"/converter/row-option.converter",editor:{type:"code-editor",language:"javascript",leftTemplate:()=>p.createVNode(p.Fragment,null,[p.createVNode("h5",null,[p.createTextVNode("示例代码")]),p.createVNode("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:()=>p.createVNode(p.Fragment,null,[p.createVNode("h5",null,[p.createTextVNode("示例代码")]),p.createVNode("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:u}}function J(){function u(t){return{title:"填充列宽",description:"",properties:{fitColumns:{title:"启用",type:"boolean",description:"启用填充列宽",$converter:"/converter/column-option.converter",refreshPanelAfterChanged:!0}},setPropertyRelates(s,n){switch(s&&s.propertyID){case"fitColumns":{n.fit=s.propertyValue,n.columns&&(s.propertyValue?n.columns.forEach(o=>{o.resizable=!1}):n.columns.forEach(o=>{o.resizable=!0}));break}}}}}return{getColumnOptionProperties:u}}function K(u){function t(s){var n,o,c,m;return{title:"操作列",description:"",properties:{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:((n=s.command)==null?void 0:n.enableType)==="custom",editor:{needValid:!0,min:0}},commands:{description:"操作列按钮集合",title:"操作项",type:"array",visible:((o=s.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:((c=s.command)==null?void 0:c.enableType)==="custom",description:"操作列模板",refreshPanelAfterChanged:!0,editor:{type:"code-editor",language:"html"}},columnWidth:{title:"操作列宽度",type:"number",$converter:"/converter/column-command.converter",description:"操作列宽度",visible:((m=s.command)==null?void 0:m.enableType)==="custom",editor:{needValid:!0,min:0,max:800}}},setPropertyRelates(g,h){var S;switch(g&&g.propertyID){case"enableType":{(g.propertyValue==="custom"||g.propertyValue==="default")&&((S=u.getFormDesignerInstance())==null||S.reloadPropertyPanel());break}}}}}return{getCommandColumnProperties:t}}function Y(){function u(t){var s;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:!!((s=t.summary)!=null&&s.enable),editor:{type:"code-editor",language:"html"}}}}}return{getSummaryProperties:u}}var I=(u=>(u.Column="column",u.Group="group",u))(I||{});function Q(){function u(t,s){var n,o;return{title:"分组",description:"",properties:{enable:{title:"启用",type:"boolean",description:"启用分组",$converter:"/converter/group.converter",refreshPanelAfterChanged:!0},customRender:{title:"自定义分组行模板",type:"string",visible:!!((n=t.group)!=null&&n.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:I.Group,viewModelId:s,gridData:t,getLatestGridData:c=>t}}}}}return{getGroupProperties:u}}function X(){function u(t){var o,c,m,g,h,S;if(t.displayType==="Card")return[{label:"onClickRow",name:"行点击事件"},{label:"onSelectionChange",name:"行切换事件"},{label:"onEndEditCell",name:"单元格结束编辑事件"}];const s=[{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"&&s.push({label:"onSortChanged",name:"排序事件"},{label:"onEndEditCell",name:"单元格结束编辑事件"},{label:"beforeEditCell",name:"单元格编辑前事件"}),t.type==="tree-grid"&&s.push({label:"onExpandNode",name:"展开事件"}),((o=t.pagination)==null?void 0:o.enable)!==!1&&s.push({label:"onPageIndexChanged",name:"切换页码事件"},{label:"onPageSizeChanged",name:"分页条数变化事件"}),(c=t.command)!=null&&c.enable&&((m=t.command)==null?void 0:m.enableType)==="custom"&&s.push({label:"onHandleAction",name:"自定义操作列点击事件"}),((g=t.command)==null?void 0:g.enable)&&(((h=t.command)==null?void 0:h.enableType)==="default"||!((S=t.command)!=null&&S.enableType)&&JSON.stringify(t.command.commands)===JSON.stringify([{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))&&s.push({label:"onClickEditCommand",name:"操作列编辑事件"},{label:"onClickDeleteCommand",name:"操作列删除事件"}),s}return{initEvent:u}}function Z(){function u(t,s,n){var h,S,V,R;const o=n==="treeGrid",c=W=>W===!0||W!==!1&&W!=null,m=(h=t.selection)==null?void 0:h.multiSelect,g=o&&c(m);return{title:"多选配置",$converter:"/converter/grid-selection.converter",parentPropertyID:"editor",properties:{multiSelect:{title:"启用多选",type:"boolean",$converter:"/converter/grid-selection.converter",refreshPanelAfterChanged:!0},showCheckbox:{visible:!!((S=t.selection)!=null&&S.multiSelect),$converter:"/converter/grid-selection.converter",readonly:!0,title:"显示复选框",type:"boolean",refreshPanelAfterChanged:!0},showSelectAll:{visible:!!((V=t.selection)!=null&&V.multiSelect)&&!!((R=t.selection)!=null&&R.showCheckbox),title:"显示全选",type:"boolean"},...o?{autoCheckParent:{visible:g,title:"向上级联",type:"boolean",description:"向上级联",$converter:"/converter/tree-auto-check.converter"},autoCheckChildren:{visible:g,title:"向下级联",type:"boolean",description:"向下级联",$converter:"/converter/tree-auto-check.converter"}}:{}},setPropertyRelates(W,A){if(W){switch(W.propertyID){case"multiSelect":case"showCheckbox":case"showSelectAll":s.afterMutilEditorChanged(t,W);break}switch(W.propertyID){case"multiSelect":{const E=W.propertyValue;(E===!0||E===!1)&&(t.selection||(t.selection={}),t.selection.showCheckbox=E);break}}}}}}return{getSelection:u}}function j(){function u(t){var s,n,o,c;return{title:"行号配置",$converter:"/converter/row-number.converter",parentPropertyID:"rowNumber",properties:{enable:{title:"显示行号",type:"boolean",refreshPanelAfterChanged:!0},width:{visible:!!((s=t.rowNumber)!=null&&s.enable)||((n=t.rowNumber)==null?void 0:n.enable)===void 0,title:"宽度",type:"number"},heading:{visible:!!((o=t.rowNumber)!=null&&o.enable)||((c=t.rowNumber)==null?void 0:c.enable)===void 0,title:"标题",type:"string"}}}}return{getRowNumber:u}}function x(){function u(t,s,n){var o,c,m,g;return{title:"分页",$converter:"/converter/pagination.converter",parentPropertyID:"pagination",properties:{enable:{title:"启用分页",type:"boolean",refreshPanelAfterChanged:!0,editor:{readonly:s}},showIndex:{visible:!!((o=t.pagination)!=null&&o.enable),title:"显示页码",type:"boolean"},showLimits:{visible:!!((c=t.pagination)!=null&&c.enable),title:"显示分页条数",type:"boolean"},size:{visible:!!((m=t.pagination)!=null&&m.enable),title:"默认分页条数",type:"enum",defaultValue:20,editor:{type:"combo-list",textField:"value",valueField:"key",data:[{key:10,value:10},{key:20,value:20},{key:30,value:30},{key:50,value:50},{key:100,value:100}]}},showGoto:{visible:!!((g=t.pagination)!=null&&g.enable),title:"显示页码输入框",type:"boolean"}},setPropertyRelates(h,S){if(h)switch(h.propertyID){case"disabled":n.afterMutilEditorChanged(t,h);break}}}}return{getPagination:u}}function ee(u){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"}},virtualized:{title:"是否虚拟加载",type:"boolean",description:"是否虚拟加载"}}}function s(o,c){return{title:"外观",properties:{class:{title:"class样式",type:"string",description:"组件的class样式"},columns:{title:"列设置",description:"列设置",type:"array",editor:{type:"grid-field-editor",viewModelId:c,gridData:o,getLatestGridData:m=>o},refreshPanelAfterChanged:!0},...t(o)},setPropertyRelates(m,g){switch(m&&m.propertyID){case"useBlankWhenDataIsEmpty":o.emptyDataHeight=o.useBlankWhenDataIsEmpty?36:240;break;case"columns":o.columns=m.propertyValue||[];break}}}}function n(o,c,m){const g=m.schemaService.getTreeGridUdtFields(c);return{title:"外观",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式"},columns:{title:"列设置",description:"列设置",$converter:"/converter/items-count.converter",editor:{type:"grid-field-editor",viewModelId:c,gridData:o,gridType:"tree-grid-column"},refreshPanelAfterChanged:!0},udtField:{title:"分级码字段",type:"enum",description:"分级码字段",refreshPanelAfterChanged:!0,editor:{data:g.map(h=>({id:h.key,name:h.value}))}},...t(o)},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:s,getTreeGrid:n}}function te(){function u(t){return{title:"排序",description:"",properties:{mode:{title:"类型",type:"enum",description:"排序类型",$converter:"/converter/grid-sort.converter",editor:{data:[{id:"client",name:"客户端"},{id:"server",name:"服务端"}]}}}}}return{getSort:u}}function re(){function u(t){return{title:"过滤",description:"",properties:{filterStyle:{title:"过滤风格",type:"enum",description:"过滤风格",$converter:"/converter/grid-filter.converter",editor:{data:[{id:"filter-column",name:"智能过滤"},{id:"filter-row",name:"过滤行"}]}},mode:{title:"类型",type:"enum",description:"过滤类型",$converter:"/converter/grid-filter.converter",editor:{data:[{id:"client",name:"客户端"},{id:"server",name:"服务端"}]}}}}}return{getFilter:u}}function ne(u,t){const{messagerService:s,designViewModelUtils:n,controlCreatorUtils:o,formStateMachineUtils:c,formSchemaUtils:m}=u,g=new H.FNotifyService;let h="editable";function S(l){l.renderState||(l.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 l.renderState.editable?l.renderState.editable.condition&&JSON.stringify(l.renderState.editable.condition)===JSON.stringify(d.condition)?!1:(l.renderState.gridEditable=Object.assign(d,{name:"表格可编辑"}),h="gridEditable",!0):(l.renderState.editable=d,!0)}function V(){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 P,B;const l=V(),d=await c.createStateMachine(l),f=m.getFormSchema().module;((P=f.stateMachines)==null?void 0:P.length)===0&&f.stateMachines.push({id:`${f.code}_state_machine`,name:d.name,uri:d.id,code:d.code,nameSpace:d.nameSpace});const M=((B=f.viewmodels)==null?void 0:B.length)>0?f.viewmodels[0]:null;M&&(M.stateMachine=`${f.code}_state_machine`)}async function W(){const l=c.getStateMachineMetadata();let d=!1;l.state||(l.state=[]),l.state.find(f=>f.state==="init")||(l.state.push({state:"init",name:"初始",description:"处于初始状态"}),d=!0),l.state.find(f=>f.state==="add")||(l.state.push({state:"add",name:"新增",description:"处于新增状态"}),d=!0),l.state.find(f=>f.state==="edit")||(l.state.push({state:"edit",name:"编辑",description:"处于编辑状态"}),d=!0),l.action||(l.action={}),l.action.Cancel||(l.action.Cancel={name:"取消",transitTo:"init",description:"取消并切换至初始状态"},d=!0),l.action.Create||(l.action.Create={name:"创建",transitTo:"add",description:"新建并切换至新增状态"},d=!0),l.action.Edit||(l.action.Edit={name:"编辑",transitTo:"edit",description:"编辑并切换至编辑状态"},d=!0),l.action.Save||(l.action.Save={name:"保存",transitTo:"init",description:"保存并切换至初始状态"},d=!0),S(l)&&(d=!0),d&&await c.saveStateMachineMetadata(l)}async function A(l){var M;c.getStateMachineMetadata()?await W():await R(),l.fieldEditable=!0,l.editable=`viewModel.stateMachine['${h}']`,(M=l.pagination)!=null&&M.enable&&(l.pagination.disabled=`viewModel.stateMachine['${h}']`);const f=n.getDgViewModel(t);l.columns.map(P=>{const B=f.fields.find(a=>a.id===P.binding.field);if(!B)return;const k=o.setFormFieldProperty(B);P.editor=k.editor,P.editor.readonly&&typeof P.editor.readonly=="object"&&(P.editor.readonly.field=h)}),g.success({position:"top-center",message:"已启用单元格编辑"})}function E(l){return{title:"单元格编辑",description:"",properties:{fieldEditable:{title:"启用",type:"boolean",description:"单元格是否可编辑",refreshPanelAfterChanged:!0,readonly:l.fieldEditable}},async setPropertyRelates(d,f){return await new Promise(M=>{d.propertyValue&&s.question("启用单元格编辑后,将根据表格或者树表列绑定的字段类型自动分配编辑器,此操作不可撤销,是否继续?","",async()=>{await A(l),M()},()=>{f.fieldEditable=!1,M()})})}}}return{getCellEditableProperties:E}}C.useAppearance=ee,C.useCellEditable=ne,C.useColumnOption=J,C.useCommandOption=K,C.useDataGridEvent=X,C.useDesignerColumn=L,C.useDesignerFitColumn=D,C.useDesignerVisualData=U,C.useFilter=re,C.useGroup=Q,C.usePagination=x,C.useRowNumber=j,C.useRowOption=q,C.useSelection=Z,C.useSort=te,C.useSummary=Y,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})});