UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 38 kB
(function(d,Y){typeof exports=="object"&&typeof module<"u"?Y(exports,require("../../components/common/index.umd.js"),require("vue"),require("@vueuse/core"),require("lodash-es"),require("../../components/locale/index.umd.js"),require("../../components/data-view/index.umd.js"),require("../../components/input-group/index.umd.js"),require("../../components/button/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("../../components/tree-grid/index.umd.js"),require("../data-grid/index.umd.js"),require("../../components/designer-canvas/index.umd.js"),require("../../components/property-panel/index.umd.js"),require("../data-view/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../../components/common/index.umd.js","vue","@vueuse/core","lodash-es","../../components/locale/index.umd.js","../../components/data-view/index.umd.js","../../components/input-group/index.umd.js","../../components/button/index.umd.js","../../components/dynamic-resolver/index.umd.js","../../components/tree-grid/index.umd.js","../data-grid/index.umd.js","../../components/designer-canvas/index.umd.js","../../components/property-panel/index.umd.js","../data-view/index.umd.js"],Y):(d=typeof globalThis<"u"?globalThis:d||self,Y(d["tree-grid"]={},d.common,d.Vue,d.VueUseCore,d.LodashES,d.locale,d.dataView,d.FInputGroup,d.FButton,d.dynamicResolver,d.treeGrid,d.designer$2,d.designerCanvas,d.propertyPanel,d.designer$1))})(this,function(d,Y,o,Ne,E,et,l,tt,nt,oe,Me,ot,ve,it,A){"use strict";const lt={enable:{type:Boolean,default:!1},index:{type:Number,default:1},mode:{type:String,default:"server"},showGoto:{type:Boolean,default:!1},showIndex:{type:Boolean,default:!0},showLimits:{type:Boolean,default:!1},showPageInfo:{type:Boolean,default:!0},size:{type:Number,default:20},sizeLimits:{type:Array,default:[10,20,30,50,100]},total:{type:Number,default:0},disabled:{type:Boolean,default:!1}},at={enable:{type:Boolean,default:!1},fields:{type:Array,default:[]},mode:{type:String,default:"client"},multiSort:{type:Boolean,default:!1}},rt={customGroupRow:{type:Function,default:()=>{}},customGroupRowStyle:{type:Function,default:()=>{}},customSummaryStyle:{type:Function,default:()=>{}},enable:{type:Boolean,default:!1},groupColSpan:{type:Number,default:1},groupFields:{type:Array,default:[]},showGroupedColumn:{type:Boolean,default:!0},showGroupPanel:{type:Boolean,default:!1},showSummary:{type:Boolean,default:!1},summaryPosition:{type:String,default:"separate"}},st={enable:{type:Boolean,default:!1},filterStyle:{type:String,default:"filter-column"},mode:{type:String,default:"server"},showSummary:{type:Boolean,default:!0}},dt={wrapHeadings:{type:Boolean,default:!1}},ct={customRowStyle:{type:Function,default:()=>{}},customCellStyle:{type:Function,default:()=>{}},disable:{type:Function,default:()=>{}},height:{type:Number,default:28},showHovering:{type:Boolean,default:!0},wrapContent:{type:Boolean,default:!1}},ut={enable:{type:Boolean,default:!1},customSummaryStyle:{type:Function,default:()=>{}},groupFields:{type:Array,default:[]},mode:{type:String,default:"client"},position:{type:String,default:"bottom"}},pt={fitColumns:{type:Boolean,default:!1},fitMode:{type:String,default:"average"},groups:{type:Array,defaut:[]},reorderColumn:{type:Boolean,default:!1},resizeColumn:{type:Boolean,default:!0},resizeColumnOnDoubleClick:{type:Boolean,default:!0}},ft={selectOnEditing:{type:Boolean,default:!1},editMode:{type:String,default:"cell"}},mt={show:{type:Boolean,default:!1},message:{type:String,default:`${et.LocaleService.getLocaleValue("datagrid.loadingMessage")}...`}},ke={customClass:{type:String,default:""},sort:{type:Object},filter:{type:Object},autoCheckChildren:{type:Boolean,default:!1},columns:{type:Array,default:[]},columnOption:{type:Object},commandOption:{type:Object,default:{enable:!1,commands:[]}},data:{type:Array,default:[]},disabled:{type:Boolean,default:!1},disabledField:{type:String,default:"disabled"},displayField:{type:String,default:"name"},editable:{type:Boolean,default:!1},editOption:{type:Object,default:{selectOnEditing:!1,editMode:"cell"}},fit:{type:Boolean,default:!1},header:{type:Object},height:{type:Number,default:-1},hierarchy:{type:Object,default:{cascadeOption:{autoCancelParent:!0,autoCheckChildren:!1,autoCheckParent:!1,selectionRange:"All"},parentIdField:"parent"}},id:{type:String,default:""},idField:{type:String,default:"id",require:!0},loadData:{type:Function},loading:{type:Boolean,default:!1},minHeight:{type:Number,default:300},minWidth:{type:Number,default:400},newDataItem:{type:Function,default:()=>{}},pagination:{type:Object,default:{enable:!1,mode:"server",size:-1}},rowNumber:{type:Object,default:{enable:!0,width:36,heading:"序号"}},rowOption:{type:Object,default:{wrapContent:!1}},selection:{type:Object,default:{enableSelectRow:!0,multiSelect:!1,multiSelectMode:"DependOnCheck",showCheckbox:!1,showSelectAll:!1,showSelection:!1}},selectionValues:{type:Array,default:[]},showBorder:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0},showHorizontalLines:{type:Boolean,default:!0},showLines:{type:Boolean,default:!1},showOptions:{type:Boolean,default:!1},showScrollBar:{type:String,default:"auto"},showSetting:{type:Boolean,default:!1},showStripe:{type:Boolean,default:!0},showTreeNodeIcons:{type:Boolean,default:!1},showVerticallLines:{type:Boolean,default:!1},treeNodeIconsData:{type:[Object,String],default:{}},width:{type:Number,default:-1},virtualized:{type:Boolean,default:!1},emptyTemplate:{type:Object},summary:{type:Object,default:{enable:!1,groupFields:["numericField1","numericField2"]}},autoHeight:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},checkboxPosition:{type:String,default:"after-expand"},enableColumnSettingSolution:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},customSearch:{type:Function}};function yt(e,n,y,c,f,I,D,R,C,r,v,w,x,u,N,M,T,m,F){const{calculateCellPositionInRow:U}=I,{columnContext:P,hasLeftFixedColumn:W,hasRightFixedColumn:b}=D,{gridDataStyle:z,leftFixedGridDataStyle:ee,rightFixedGridDataStyle:ie}=u,{renderDataRow:a}=l.getHierarchyRow(e,n,P,T,R,C,r,v,w,x,u,N,M,m,F),ce=[a];function O(B,te){const le=U(B);return T.value.filter(J=>J.visible!==!1).map((J,V)=>ce[J.type](J,le,te,V))}function K(){return o.createVNode("div",{ref:c,class:"fv-grid-content-left-fixed"},[o.createVNode("div",{class:"fv-grid-data",style:ee.value},[O(P.value.leftColumns.filter(B=>B.visible),"left")])])}function ue(){return o.createVNode("div",{ref:y,class:"fv-grid-content-primary"},[o.createVNode("div",{class:"fv-grid-data",style:z.value},[O(P.value.primaryColumns.filter(B=>B.visible),"primary")])])}function H(){return o.createVNode("div",{ref:f,class:"fv-grid-content-right-fixed"},[o.createVNode("div",{class:"fv-grid-data",style:ie.value},[O(P.value.rightColumns.filter(B=>B.visible),"right")])])}function pe(){const B=[];return W.value&&B.push(K()),B.push(ue()),b.value&&B.push(H()),B}return{renderDataArea:pe}}const gt=o.defineComponent({name:"FTreeGrid",props:ke,emits:["selectionChange","clickRow","expandNode","unSelectItem","dblclickNode","doubleClickRow","unSelectItem","selectItem","filterChanged","unSelectAll","selectAll","sortChanged","selectionUpdate","endEditCell"],setup(e,n){var Xe,Ze;const y=o.ref(!1),c=o.ref(!1),f=0,I=o.ref(((Xe=e.rowOption)==null?void 0:Xe.height)||28);let D=[],R=[];const C=o.ref(20),r=o.ref(e.columns),v=l.useIdentify(e),{idField:w}=v,x=o.ref(),u=o.ref(),N=o.ref(),M=o.ref(),T=o.ref(),m=o.ref([]),F=o.ref(!1),U=o.ref(((Ze=e.rowOption)==null?void 0:Ze.wrapContent)||!1),P=l.useGroupData(e,v),W=l.useFilter(e,n),b=l.useHierarchy(e),{collapseField:z}=b,{showLoading:ee,renderLoading:ie}=l.useLoading(e,x),a=l.useDataView(e,new Map,W,b,v),{dataView:ce}=a,O=l.useSelection(e,a,v,m,n),{showSelection:K,selectedValues:ue}=O,H=l.useSelectHierarchyItem(e,m,a,v,O,n),pe=o.computed(()=>e.disabled),B=o.computed(()=>e.virtualized?Math.min(a.dataView.value.length,C.value):a.dataView.value.length),te=l.usePagination(e,a),{shouldRenderPagination:le}=te,{containerStyleObject:J}=l.useDataViewContainerStyle(e,m),V=o.ref(""),ne=o.ref([]),Te=o.computed(()=>e.searchable||!1),Q=o.ref(0),fe=l.useCommandColumn(e),{applyCommands:Se}=fe;Se(r);const{applyColumnSetting:ae,removeColumnSetting:we}=l.useSettingColumn(e);e.showSetting&&ae(r);const L=l.useColumn(e,n),me=l.useSort(e),{applyColumnSorter:Ie,columnContext:q,updateColumnRenderContext:Fe}=L;Ie(a,me);const ye=l.useGroupColumn(e,q),X=l.useRow(e,n,O,v),Z=l.useEdit(e,n,v,X,m),ge=l.useVisualDataBound(e,a,I),Pe=l.useVisualDataCell(e,Z,ge),Re=l.useVisualDataRow(e,a,Z,b,v,ge,Pe,I),re=l.useVisualData(e,r,a,B,f,Re),{getVisualData:G}=re,De=l.useCellPosition(e,q,I,y),se=l.useSidebar(e,O),{sidebarWidth:It}=se,j=l.useVirtualScroll(e,a,m,q,re,B,f,It,I,y),{onWheel:Rt,dataGridWidth:Le,viewPortHeight:qe,viewPortWidth:Oe,resetScroll:je,updateVisibleRowsOnLatestVisibleScope:Dt}=j,$e=l.useFitColumn(e,q,u,Oe,ye),{calculateColumnsSize:he}=$e,Ye=l.useFilterHistory(),Ot=l.useColumnFilter(u,T,a,Ye,j),Bt=l.useDragColumn(e,n,L,a,ye,P,j),Tt=o.computed(()=>{const t={"fv-grid":!0,"fv-grid-bordered":e.showBorder,"fv-grid-horizontal-bordered":e.showHorizontalLines,"fv-datagrid-strip":e.showStripe};return Y.getCustomClass(t,e.customClass)}),Ft=o.computed(()=>({"fv-grid-content":!0,"fv-grid-content-hover":F.value,"fv-grid-wrap-content":U.value,"fv-grid-scrollbar-visible":j.shouldShowVirticalScrollbar.value&&F.value})),{renderDataArea:Pt}=yt(e,n,N,M,T,De,L,a,Z,b,X,O,H,j,re,ge,m,I,y),{renderGridHeader:jt,renderGridColumnResizeOverlay:Gt,shouldShowHeader:xt}=l.getColumnHeader(e,n,u,M,T,L,a,Bt,Ot,W,Ye,$e,ye,O,se,me,j,Oe,m,c),{renderDataGridSidebar:Nt}=l.getSidebar(e,X,O,se,j),{renderDisableMask:Mt}=l.getDisableMask(),{renderHorizontalScrollbar:kt}=l.getHorizontalScrollbar(e,u,j),{renderVerticalScrollbar:At}=l.getVerticalScrollbar(e,u,j);function _t(){var t,i,S;if(u.value&&u.value.clientHeight>0&&((t=u.value)==null?void 0:t.clientWidth)>0){const s=Math.ceil(u.value.clientHeight/I.value);s>C.value&&(C.value=s,Dt()),qe.value=((i=N.value)==null?void 0:i.clientHeight)||0,Le.value=((S=u.value)==null?void 0:S.clientWidth)||0}u.value&&(u.value.clientHeight>0||u.value.clientWidth>0)&&he()}o.onMounted(()=>{u.value&&(C.value=Math.max(Math.ceil(u.value.clientHeight/I.value),C.value),m.value=G(0,B.value+f-1),Ne.useResizeObserver(u.value,_t),he(),o.nextTick(()=>{u.value&&(Le.value=u.value.clientWidth),N.value&&(Oe.value=N.value.clientWidth,qe.value=N.value.clientHeight)})),ee.value&&ie()}),o.onUnmounted(()=>{}),o.watch(Oe,()=>{u.value&&he()});function Et(t){a.collapseTo(t),a.reOrderVisibleIndex(),je()}function Ht(t){a.expandTo(t),a.reOrderVisibleIndex(),je()}function Ge(){const t=O.getSelectionRow();return t?t.dataIndex-1:-1}function Ut(t){const i=t!==void 0?t:Ge(),S=a.insertNewDataItem(i===-1?0:i);return m.value=G(0,B.value+f-1),S}function Wt(){const t=Ge();a.insertNewChildDataItem(t),m.value=G(0,B.value+f-1)}function zt(t,i){const S=m.value.find(h=>h.raw[w.value]===i),s=S?S.dataIndex-1:-1;a.insertNewChildDataItems(t,s)}function Vt(){const t=Ge(),i=H.getNextSelectableHierarchyItemId(t);a.removeHierarchyDataItem(t),m.value=G(0,B.value+f-1),i&&H.selectItemById(i)}function Lt(t){Z.onEditingRow(t)}function qt(t){Z.acceptEditingRow(t)}function $t(t){Z.cancelEditingRow(t)}function Ce(t){t&&(r.value=t,Se(r),e.showSetting&&ae(r),Fe(r.value),Ie(a,me),he())}o.watch(()=>e.columns,t=>{if(e.showSetting&&e.enableColumnSettingSolution){Ce(r.value);return}Ce(t)});function Yt(t,i){t&&(a.load(t),a.reOrderVisibleIndex(),i!=null&&i.keepScrollPosition?j.scrollTo(j.offsetY.value):je())}function xe(t){X.activeRowById(t)}function Kt(t,i={isCurrent:!0}){i!=null&&i.isCurrent&&xe(t),H.selectItemById(t)}function Jt(t){const i=m.value.find(S=>S.raw[v.idField.value]===t);i&&X.clickRowItem(i)}function Qt(t){H.selectItemByIds(t)}function Xt(){return O.getSelectedItems()}function Ke(){O.clearSelection()}function Zt(){O.emptyCurrentRowId()}const en=o.computed(()=>!m.value||!m.value.length),{renderEmpty:tn}=l.getEmpty(e,n);function nn(){return O.getSelectionRow()}function on(t,i={clearCurrent:!0}){i!=null&&i.clearCurrent&&xe(""),H.unSelectItemByIds(t)}function ln(){return O.currentSelectedDataId.value}function an(t,i,S){const s=ce.value.find(h=>h[w.value]===t);if(s){if(Object.keys(s).forEach(g=>{Object.prototype.hasOwnProperty.call(i,g)&&(s[g]=i[g])}),S){const{collapseField:g,disabledField:k,checkedField:$,visibleField:_,hasChildren:be}=S;g&&!E.isUndefined(i[g])&&(s.__fv_collapse__=i[g]),$&&!E.isUndefined(i[$])&&(s.__fv_checked__=i[$]),k&&!E.isUndefined(i[k])&&(s.__fv_disabled__=i[k]),_&&!E.isUndefined(i[_])&&(s.__fv_visible__=i[_]),E.isUndefined(be)||(s.__fv_hasChildren__=be)}const h=m.value.find(g=>g.raw[w.value]===t),p=m.value.findIndex(g=>g.raw[w.value]===t);if(h){if(h.raw=s,Object.keys(h.data).forEach(g=>{h.data[g].updateData(s)}),S){const{collapseField:g,disabledField:k,checkedField:$,visibleField:_,hasChildren:be}=S;g&&!E.isUndefined(i[g])&&(h.collapse=i[g]),$&&!E.isUndefined(i[$])&&(h.checked=i[$]),k&&!E.isUndefined(i[k])&&(h.disabled=i[k]),_&&!E.isUndefined(i[_])&&(h.visible=i[_]),E.isUndefined(be)||(h.raw.__fv_hasChildren__=be)}m.value=[...m.value.slice(0,p),h,...m.value.slice(p+1)],a.updateSummary()}}}function rn(t){return Object.prototype.hasOwnProperty.call(t,"raw")?a.hasRealChildren(t.raw):a.hasRealChildren(t)}function sn(t){const i=a.dataView.value.find(S=>S[w.value]===t);return i?i[z.value]:""}function dn(){return z.value}o.watch(()=>e.showSetting,(t,i)=>{t!==i&&(t?ae(r):we(r),Ce(r.value))});function cn(t){return m.value.filter(i=>t.includes(i.raw[e.idField]))}function Je(t){const i=v.idField.value,S=m.value.find(s=>s.raw[i]===t);S&&X.changeRow(S)}function un(){O.keepSelectingOnPaging.value||Ke(),a.updateVisibleDataSummary(m.value)}function pn(t){O.updateSelectedValues(t)}function fn(t){O.removeSelectedValues(t)}function mn(t){o.nextTick(()=>{j.scrollToRowByIndex(t.dataIndex-1)})}function yn(t){let i=t;const S=[];for(;i&&i[b.parentIdField.value];){const s=a.rawView.value.find(h=>h[v.idField.value]===i[b.parentIdField.value]);if(s)s[b.collapseField.value]&&S.push(s),i=s;else break}S.reverse().forEach(s=>{s[b.collapseField.value]=!1,a.toggleChildrenVisibiltyByCollapseStatus(s)})}function gn(t,i){if(t.length!==i.length)return!1;const S=t.map(h=>h[v.idField.value]).sort(),s=i.map(h=>h[v.idField.value]).sort();return S.every((h,p)=>h===s[p])}function Qe(){if(!V.value.trim()){ne.value=[],Q.value=0;return}const t=[],i=V.value.toLowerCase().trim();a.rawView.value.forEach(s=>{var p;let h=!1;(p=e.search)!=null&&p.customSearch?h=e.search.customSearch(i,s,e.columns):e.columns.forEach(g=>{!h&&g.field&&s[g.field]!==void 0&&String(s[g.field]).toLowerCase().includes(i)&&(h=!0)}),h&&t.push(s)});const S=!gn(t,ne.value);if(t.length>0){S?(ne.value=t,Q.value=0):Q.value=(Q.value+1)%t.length;const s=t[Q.value];s&&(yn(s),o.nextTick(()=>{a.reOrderVisibleIndex(),m.value=G(0,B.value+f-1);const h=s[v.idField.value],p=m.value.find(g=>g.raw[v.idField.value]===h);p?(Je(h),mn(p)):console.warn("搜索结果的节点未在可视数据中找到")}))}else ne.value=[],Q.value=0}function hn(t){t.key==="Enter"&&Qe()}function Cn(){Qe()}n.expose({activeRowById:xe,addNewDataItem:Ut,addNewChildDataItem:Wt,addChildrenToNode:zt,collapseTo:Et,expandTo:Ht,removeDataItem:Vt,editDataItem:Lt,acceptDataItem:qt,cancelDataItem:$t,updateColumns:Ce,updateDataSource:Yt,selectItemById:Kt,selectItemByIds:Qt,getSelectedItems:Xt,clearSelection:Ke,getSelectionRow:nn,clickRowItemById:Jt,unSelectItemByIds:on,getCurrentRowId:ln,reassignRowData:an,hasChildren:rn,getCollapseField:dn,getCollapseStatusById:sn,getVisibleDataByIds:cn,selectRowById:Je,updateDerivedData:un,emptyCurrentRowId:Zt,calculateColumnsSize:he,updateSelectedValues:pn,removeSelectedValues:fn});const bn=o.computed(()=>{const t={};return j.shouldShowHorizontalScrollbar.value&&F.value&&(t.paddingBottom="10px"),j.shouldShowVirticalScrollbar.value&&F.value,t}),vn=o.computed(()=>({...J.value,borderRadius:"5px"})),{renderDataGridPagination:xn}=l.getPagination(e,n,a,j,te,O),Sn=o.computed(()=>({"d-flex":!0,"justify-content-between":le.value&&K.value,"justify-content-end":le.value&&!K.value,"position-relative":!0})),wn=o.computed(()=>({"d-flex":!0,"align-items-center":!0}));function In(t){const i=t.map(p=>p.id),S=[...r.value,...D,...R];S.filter(p=>p.dataType!==l.COMMAND_COLUMN_DATA_TYPE&&p.dataType!==l.SETTING_COLUMN_DATA_TYPE).forEach(p=>{const g=t.find(k=>k.id===p.id);g&&(p.width=g.actualWidth||p.width||120,g.actualWidth!==void 0&&(p.actualWidth=g.actualWidth),p.title=g.title,p.halign=g.halign,p.align=g.align,p.fixed=g.fixed)}),R=S.filter(p=>p.dataType===l.COMMAND_COLUMN_DATA_TYPE||p.dataType===l.SETTING_COLUMN_DATA_TYPE);const s=S.filter(p=>p.dataType!==l.COMMAND_COLUMN_DATA_TYPE&&p.dataType!==l.SETTING_COLUMN_DATA_TYPE),h=s.filter(p=>i.includes(p.id));D=s.filter(p=>!i.includes(p.id)),h.sort((p,g)=>{const k=t.findIndex(_=>_.id===p.id),$=t.findIndex(_=>_.id===g.id);return k-$}),Ce(h)}const{renderDataGridSummary:Rn}=l.getSummary(e,a,L);return()=>e.visible&&o.createVNode(o.Fragment,null,[Te.value&&o.createVNode("div",{class:"fv-grid-search",style:{padding:"8px 12px",border:"1px solid #e0e0e0",borderBottom:"none",borderRadius:"4px 4px 0 0"}},[o.createVNode("div",{style:{display:"flex",alignItems:"center"}},[o.createVNode(tt,{value:V.value,onInput:t=>V.value=t,onKeydown:hn,placeholder:"搜索数据...",style:{flex:1}},null),o.createVNode(nt,{type:"link",onClick:Cn,style:{cursor:"pointer",marginLeft:"8px"}},{default:()=>[o.createVNode("i",{class:"f-icon f-icon-search"},null)]})])]),o.createVNode("div",{ref:x,class:Tt.value,style:vn.value,onWheel:Rt},[u.value&&xt.value&&jt(),o.createVNode("div",{ref:u,class:Ft.value,onMouseover:()=>F.value=!0,onMouseleave:()=>F.value=!1,onTouchstart:t=>{t.stopPropagation(),F.value=!0,j.onTouchstartScrollThumb(t,u)},onTouchend:t=>{F.value=!1},style:bn.value},[u.value&&Nt(m),u.value&&Pt(),u.value&&en.value&&tn(),u.value&&kt(),u.value&&At()]),u.value&&Rn(),K.value&&o.createVNode("div",{class:Sn.value},[K.value&&o.createVNode("div",{class:wn.value},[o.createVNode("div",null,["已选:"+ue.value.length,o.createTextVNode(" 条")])])]),Gt(),pe.value&&Mt()]),e.enableColumnSettingSolution&&o.createVNode(l.ColumnSettingSolution,{columns:[...r.value,...D],componentId:e.id,modelValue:c.value,"onUpdate:modelValue":t=>c.value=t,onChangeColumnSetting:In},null)])}}),Ae={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/tree-grid.schema.json",title:"tree-grid",description:"A Farris Data Grid Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"tree-grid"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},fit:{type:"boolean",default:!1},showStripe:{type:"boolean",default:!0},showBorder:{type:"boolean",default:!1},showTreeNodeIcons:{type:"boolean",default:!1},showSetting:{type:"boolean",default:!1},size:{description:"",type:"object",properties:{width:{type:"number"},height:{type:"number"}},default:null},dataSource:{description:"",type:"string",default:""},columns:{description:"",type:"array",default:[]},identifyField:{description:"",type:"string"},editable:{description:"",type:"boolean",default:!1},disabled:{description:"",type:"boolean",default:!1},visible:{description:"是否可见",type:"boolean",default:!0},cell:{type:"object",properties:{highlightFocusingCell:{description:"",type:"boolean",default:!1},mergeCell:{description:"",type:"boolean",default:!1},showEditableIcon:{description:"",type:"boolean",default:!1}}},column:{type:"object",properties:{fitColumns:{description:"",type:"boolean",default:!1},fitMode:{description:"",type:"string",default:"average"},groups:{description:"",type:"array",default:[]},reorderColumn:{description:"Enable to drag column to reorder",type:"boolean",default:!1},resizeColumn:{type:"boolean",default:!0},resizeColumnOnDoubleClick:{description:"",type:"boolean",default:!0}}},command:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},commands:{type:"array",default:[]},commandColumnWidth:{description:"",type:"number",default:120},onClickDeleteCommand:{description:"",type:"string",default:""},onClickEditCommand:{description:"",type:"string",default:""},onHandleAction:{description:"",type:"string",default:""},count:{description:"",type:"number",default:2}}},contextMenu:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1}}},customizaiton:{type:"object",properties:{enableScheme:{description:"",type:"boolean",default:!1},enableSetting:{description:"",type:"boolean",default:!1}}},edit:{type:"object",properties:{mode:{description:"",type:"string",default:"cell",enum:["cell","row","card"]},selectOnEditing:{description:"",type:"boolean",default:!1},onAppendRow:{description:"",type:"string",default:""},onBeforeEdit:{description:"",type:"string",default:""}}},filter:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},filterStyle:{description:"",type:"string",default:"filter-column",enum:["filter-column","filter-row"]},mode:{description:"",type:"string",default:"server",enum:["server"]},showSummary:{description:"",type:"boolean",default:!0},onFilterChange:{description:"",type:"string",default:""}}},footer:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customFooterStyle:{description:"",type:"object"},footerDataCommand:{description:"",type:"string",default:""},footerDataFrom:{description:"",type:"string",default:"client"},footerHeight:{description:"",type:"number",default:29},footerPosition:{description:"",type:"string",default:"bottom"},footerTemplate:{description:"",type:"string",default:""}}},group:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customGroupRow:{description:"",type:"object"},customGroupRowStyle:{description:"",type:"object"},customSummaryStyle:{description:"",type:"object"},groupColSpan:{description:"",type:"number",default:1},groupFields:{description:"",type:"array",default:[]},showGroupedColumn:{description:"",type:"boolean",default:!0},showGroupPanel:{description:"",type:"boolean",default:!1},showSummary:{description:"",type:"boolean",default:!1},summaryPosition:{description:"",type:"string",default:"separate",enum:["separate","merge-to-group"]},disableGroupOnEditing:{description:"",type:"boolean",default:!0},expandGroupRows:{description:"",type:"boolean",default:!0}}},header:{type:"object",properties:{wrapHeadings:{description:"",type:"boolean",default:!1}}},pagination:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},disablePagination:{description:"",type:"string",default:""},contentTemplate:{description:"",type:"string",default:""},index:{description:"",type:"number",default:1},mode:{description:"",type:"string",default:"server",enum:["server","client"]},showGoto:{description:"",type:"boolean",default:!1},showIndex:{description:"",type:"boolean",default:!0},showLimits:{description:"",type:"boolean",default:!1},showPageInfo:{description:"",type:"boolean",default:!0},size:{description:"",type:"number",default:20},disabled:{description:"锁定分页",type:"boolean",default:!1},sizeLimits:{description:"",type:"array",default:[10,20,30,50,100]},onPageChange:{description:"",type:"string",default:""},onPageSizeChange:{description:"",type:"string",default:""}}},rowOption:{type:"object",properties:{customRowStyle:{description:"自定义行样式",type:"string",default:""},customCellStyle:{description:"自定义单元格样式",type:"string",default:""},disable:{description:"",type:"object"},height:{description:"",type:"number",default:30},showHovering:{type:"boolean",default:!0},wrapContent:{type:"boolean",default:!1}}},rowNumber:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1},heading:{description:"",type:"string",default:"序号"},width:{description:"",type:"number",default:36},onClickRow:{description:"",type:"string",default:""},onDoubleClickRow:{description:"",type:"string",default:""}}},onClickRow:{description:"行点击事件",type:"string",default:""},onSelectionChange:{description:"行切换事件",type:"string",default:""},onPageIndexChanged:{description:"切换页码事件",type:"string",default:""},onPageSizeChanged:{description:"分页条数变化事件",type:"string",default:""},selection:{type:"object",properties:{enableSelectRow:{description:"允许选中行",type:"boolean",default:!0},enable:{description:"",type:"boolean",default:!0},checkOnSelect:{description:"",type:"boolean",default:!1},showSelectAll:{description:"",type:"boolean",default:!1},clearSelectionOnEmpty:{description:"",type:"boolean",default:!0},customSelectionItem:{description:"",type:"object"},focusSelection:{description:"",type:"string",default:"current",enum:["current","all"]},keepSelectingOnClick:{description:"",type:"boolean",default:!0},keepSelectingOnPaging:{description:"",type:"boolean",default:!0},multiSelect:{description:"",type:"boolean",default:!1},selectionMode:{description:"",type:"string",default:"default"},selectOnCheck:{description:"",type:"boolean",default:!1},selectOnEditing:{description:"",type:"boolean",default:!1},showCheckbox:{description:"",type:"boolean",default:!1},showCheckAll:{description:"",type:"boolean",default:!1},showSelection:{description:"",type:"boolean",default:!1},onBeforeSelect:{description:"",type:"string",default:""},onBeforeUnCheck:{description:"",type:"",default:""},onBeforeUnSelect:{description:"",type:"string",default:""},onCheckAll:{description:"",type:"string",default:""},onChecked:{description:"",type:"string",default:""},onSelectionChange:{description:"",type:"string",default:""},onUnCheckAll:{description:"",type:"string",default:""},onUnChecked:{description:"",type:"string",default:""},onCheckedChange:{description:"",type:"string"}}},sort:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},fields:{description:"",type:"array",default:[]},mode:{description:"",type:"string",default:"server",enum:["server"]},multiSort:{description:"",type:"boolean",default:!1}}},summary:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customSummaryStyle:{description:"",type:"object"},groupFields:{description:"",type:"array",default:[]},mode:{description:"",type:"string",default:"client",enum:["client","server"]},position:{description:"",type:"boolean",default:"bottom",enum:["bottom","top","both"]}}},toolbar:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1}}},visualization:{autoHeight:{description:"",type:"boolean",default:!1},emptyDataHeight:{description:"",type:"number",default:36},emptyTemplate:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:300},scrollBarShowMode:{description:"",type:"string",default:"auto"},showBorder:{description:"",type:"boolean",default:!1},showScrollArrow:{description:"",type:"boolean",default:!1},striped:{description:"",type:"boolean",default:!0},useBlankWhenDataIsEmpty:{description:"",type:"boolean",default:!1}},emptyTemplate:{description:"",type:"string",default:""},udtField:{description:"分级码字段",type:"string"},virtualized:{description:"是否虚拟加载",type:"boolean",default:!1},hierarchy:{cascadeOption:{autoCheckChildren:{description:"向下级联",type:"boolean"},autoCheckParent:{description:"向上级联",type:"boolean"}},collapseField:{description:"收折属性",type:"string"},hasChildrenField:{description:"存在子节点",type:"string"},parentIdField:{description:"父级字段",type:"string"}},autoCheckChildren:{description:"向下级联",type:"boolean"},autoCheckParent:{description:"向上级联",type:"boolean"},fieldEditable:{description:"是否可编辑",type:"boolean",default:!1},searchable:{description:"是否可搜索定位",type:"boolean",default:!1},enableColumnSettingSolution:{description:"是否启用列配置方案",type:"boolean",default:!1}},required:["id","type","columns"],events:{onSelectionChange:"行切换事件",onClickRow:"行点击事件",onDoubleClickRow:"行双击事件",onFilterChanged:"过滤事件",onClickEditCommand:"操作列编辑事件",onClickDeleteCommand:"操作列删除事件",onExpandNode:"展开事件",onSelectItem:"选中行事件",onUnSelectItem:"取消选中行事件",onSelectAll:"全选事件",onUnSelectAll:"取消全选事件"}},_e=new Map([["appearance",oe.resolveAppearance],["column","columnOption"],["command","commandOption"]]);function ht(e,n,y){var w;const c=y.parentComponentInstance,f=c.schema.type,I=String(((w=c.schema.appearance)==null?void 0:w.class)||"").split(" "),D=f==="section"||f==="tab-page",R=I.includes("f-page-content-nav"),C=I.includes("f-page-main"),r=e.getSchemaByType("component");r.id=`${n.id}-component`,r.componentType="data-grid";let v="";return v+=D?"f-struct-data-grid-in-card f-struct-is-subgrid":"",v+=R?"f-struct-data-grid-in-nav f-struct-wrapper f-utils-fill-flex-column":"",v+=C?"f-struct-data-grid f-struct-wrapper":"",r.appearance={class:v},r.contents=[n],r}function Ct(e,n,y){const c=y.parentComponentInstance,f=String(c.schema.appearance.class||"").split(" "),I=f.includes("f-page-content-nav"),D=f.includes("f-page-main"),R=e.getSchemaByType("section");R.id=`${n.id}-section`;let C="";return C+=I?"f-section-in-nav ":"",C+=D?"f-section-in-managelist ":"",C+="f-section-grid",R.appearance={class:C},R.contents=[n],R}function bt(e,n,y){const c=e.getSchemaByType("content-container");return c.id=`${n.id}-layout`,c.appearance={class:"f-grid-is-sub f-utils-flex-column"},c.contents=[n],c}function Ee(e,n,y){const f=y.parentComponentInstance.schema.type,I=f==="section"||f==="tab-page";n.appearance={class:"f-component-grid"};const R=(I?bt:Ct)(e,n,y);return ht(e,R,y)}const He=oe.createPropsResolver(Me.treeGridProps,Ae,_e,Ee),Ue=oe.createTreeGridSelectionItemResolver(),We=oe.createTreeGridBindingResolver(),Be=Y.excludeProperties(Object.assign({},Me.treeGridProps,{componentId:{type:String,default:""}}),"columnOption","commandOption"),ze=oe.createPropsResolver(Be,Ae,_e,Ee),Ve=oe.createDataViewUpdateColumnsResolver();class vt extends it.BaseControlProperty{constructor(n,y){super(n,y)}getPropertyConfig(n){return this.getBasicPropConfig(n),this.getAppearanceProperties(n),this.propertyConfig.categories.command=A.useCommandOption(this).getCommandColumnProperties(n),this.propertyConfig.categories.column=A.useColumnOption().getColumnOptionProperties(n),this.propertyConfig.categories.rowOption=A.useRowOption().getRowOptionProperties(n),this.propertyConfig.categories.summary=A.useSummary().getSummaryProperties(n),this.propertyConfig.categories.filter={title:"过滤",description:"",properties:{mode:{title:"类型",type:"enum",description:"过滤类型",$converter:"/converter/grid-filter.converter",editor:{data:[{id:"server",name:"服务端"}]}}}},this.getEventPropConfig(n),this.propertyConfig}getBasicPropConfig(n){var D,R,C;const y=(C=(R=(D=this.formSchemaUtils.getFormSchema())==null?void 0:D.module)==null?void 0:R.entity[0])==null?void 0:C.entities[0],c=this.assembleSchemaEntityToTree(y,0),f=this,I=super.getBasicPropConfig(n);this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{...I.properties,dataSource:{description:"绑定数据源",title:"绑定数据源",editor:{type:"combo-tree",textField:"name",valueField:"label",data:c,editable:!1},readonly:!0}},setPropertyRelates(r,v){switch(r&&r.propertyID){case"dataSource":{const w=f.formSchemaUtils.getViewModelById(f.viewModelId);if(w){const x=c.find(u=>u.label===r.propertyValue);w.bindTo=x.bindTo}f.designViewModelUtils.assembleDesignViewModel();break}}}}}getAppearanceProperties(n){const y=this;this.propertyConfig.categories.appearance=A.useAppearance(this).getTreeGrid(n,this.viewModelId,y),this.propertyConfig.categories.selection=A.useSelection().getSelection(n,y,"treeGrid"),this.propertyConfig.categories.rowNumber=A.useRowNumber().getRowNumber(n)}isSubGrid(){const n=this.formSchemaUtils.getViewModelById(this.viewModelId);return n&&n.bindTo?n.bindTo.trim()!=="/":!1}getEventPropConfig(n){const y=A.useDataGridEvent().initEvent(n),c=this,f=c.eventsEditorUtils.formProperties(n,c.viewModelId,y),I=c.createBaseEventProperty(f);this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:I,refreshPanelAfterChanged:!0,tabId:Y.EVENT_PROPERTY_TAB_IDS,tabName:"交互",setPropertyRelates(D,R){const C=D.propertyValue;delete n[c.viewModelId],C&&(C.setPropertyRelates=this.setPropertyRelates,c.eventsEditorUtils.saveRelatedParameters(n,c.viewModelId,C.events,C)),n.remoteSort=!!n.columnSorted,n.command&&(n.command.onClickEditCommand=n.onClickEditCommand,n.command.onClickDeleteCommand=n.onClickDeleteCommand,n.command.onHandleAction=n.onHandleAction)}}}assembleSchemaEntityToTree(n,y,c,f="",I=[]){const D=f?`${f}/${n.label}`:"/";return I.push({id:n.id,name:n.name,label:n.label,layer:y,parent:c&&c.id,bindTo:D.replace("//","/")}),n.type.entities&&n.type.entities.length&&n.type.entities.map(R=>this.assembleSchemaEntityToTree(R,y+1,n,D,I)),I}}function St(e,n){const y=e.schema,c=o.ref(!0),f=o.ref(!0);function I(w){return w&&w.sourceType==="control"?w.componentCategory==="input":!1}function D(){return!1}function R(){return!1}function C(){return!0}function r(w){return new vt(w,n).getPropertyConfig(y)}function v(){var w,x,u,N;if(e&&n){const M=(w=e==null?void 0:e.componentInstance)==null?void 0:w.value.belongedComponentId;let T="",m="";const{formSchemaUtils:F}=n;if(M){const P=F.getRootViewModelId(),W=F.getComponentByViewModelId(P),b=F.selectNode(W,z=>z.contents&&z.contents.find(ee=>ee.component===M));(b==null?void 0:b.type)===((x=ve.DgControl["tab-page"])==null?void 0:x.type)&&((u=b==null?void 0:b.contents)!=null&&u.length)&&(T=b.title||""),(b==null?void 0:b.type)===((N=ve.DgControl.section)==null?void 0:N.type)&&(b==null?void 0:b.showHeader)!==!1&&(T=b.mainTitle||""),T=T?`${T} > `:"",m=T?b.id:""}const U=ve.DgControl["tree-grid"].name;n==null||n.formSchemaUtils.getControlBasicInfoMap().set(e.schema.id,{componentTitle:U,parentPathName:`${T}${U}`,reliedComponentId:m})}}return{canAccepts:I,checkCanDeleteComponent:D,checkCanMoveComponent:R,hideNestedPaddingInDesginerView:C,triggerBelongedComponentToMoveWhenMoved:c,triggerBelongedComponentToDeleteWhenDeleted:f,getPropsConfig:r,setComponentBasicInfoMap:v}}const de=o.defineComponent({name:"FTreeGridDesign",props:Be,emits:[],setup(e,n){var Re,re;const y=o.ref(),c=0,f=o.ref(((Re=e.rowOption)==null?void 0:Re.height)||28),I=o.ref(!1),D=o.ref(20),R=o.ref(e.columns),C=l.useIdentify(e),r=o.ref(),v=o.ref(),w=o.ref([]),x=o.ref(!1),u=o.ref(((re=e.rowOption)==null?void 0:re.wrapContent)||!1),N=o.inject("designer-host-service"),M=o.inject("design-item-context"),T=St(M,N),m=ve.useDesignerComponent(y,M,T);m.value.designerClass="f-utils-fill-flex-column";const F=l.useFilter(e,n),U=l.useHierarchy(e),P=l.useDataView(e,new Map,F,U,C),W=l.useSelection(e,P,C,w,n),b=o.computed(()=>P.dataView.value.length),{containerStyleObject:z}=l.useDataViewContainerStyle(e,w),ee=l.useCommandColumn(e),{applyCommands:ie}=ee;ie(R);const a=A.useDesignerColumn(e),{applyColumnSorter:ce,columnContext:O,updateColumnRenderContext:K}=a,ue=l.useSort(e),H=l.useGroupColumn(e,O),pe=l.useRow(e,n,W,C),B=l.useEdit(e,n,C,pe,w),te=l.useVisualDataBound(e,P,f),le=l.useVisualDataCell(e,B,te),J=l.useVisualDataRow(e,P,B,U,C,te,le,f),V=A.useDesignerVisualData(e,R,P,b,c,J),{getVisualData:ne}=V,Te=l.useSidebar(e,W),{sidebarWidth:Q}=Te;w.value=ne(0,b.value+c-1);const fe=l.useVirtualScroll(e,P,w,O,V,b,c,Q,f,I),{onWheel:Se,dataGridWidth:ae,viewPortHeight:we,viewPortWidth:L,updateVisibleRowsOnLatestVisibleScope:me}=fe,Ie=A.useDesignerFitColumn(e,O,r,L,H),{calculateColumnsSize:q}=Ie,Fe=o.computed(()=>({"drag-container":!0,"fv-grid":!0,"fv-grid-bordered":e.showBorder,"fv-datagrid-strip":e.showStripe})),ye=o.computed(()=>({"fv-grid-content":!0,"fv-grid-content-hover":x.value,"fv-grid-wrap-content":u.value})),{renderGridHeader:X}=ot.getColumnHeader(M,e,a,fe,"tree-grid-column"),{renderHorizontalScrollbar:Z}=l.getHorizontalScrollbar(e,r,fe);function ge(){var De,se;const G=Math.ceil(r.value.clientHeight/f.value);G>D.value&&(D.value=G,me()),we.value=((De=v.value)==null?void 0:De.clientHeight)||0,ae.value=((se=r.value)==null?void 0:se.clientWidth)||0,q()}o.onMounted(()=>{y.value.componentInstance=m,r.value&&(D.value=Math.max(Math.ceil(r.value.clientHeight/f.value),D.value),w.value=ne(0,b.value+c-1),Ne.useResizeObserver(r.value,ge),q(),o.nextTick(()=>{r.value&&(ae.value=r.value.clientWidth),v.value&&(L.value=v.value.clientWidth,we.value=v.value.clientHeight)}))});function Pe(G){G&&(R.value=G,ie(R),K(R.value),ce(P,ue),q())}return o.watch(()=>e.columns,G=>{Pe(G)}),o.watch(L,()=>{r.value&&q()}),n.expose(m.value),()=>o.createVNode("div",{ref:y,class:Fe.value,style:z.value,onWheel:Se,dragref:`${M.schema.id}-container`},[r.value&&X(),o.createVNode("div",{ref:r,class:ye.value,onMouseover:()=>{x.value=!0},onMouseleave:()=>{x.value=!1}},[Z()])])}});de.register=(e,n,y,c)=>{e["tree-grid"]=gt,n["tree-grid"]=He,c["tree-grid"]={bindingResolver:We,selectionItemResolver:Ue,updateColumnsResolver:Ve}},de.registerDesigner=(e,n,y)=>{e["tree-grid"]=de,n["tree-grid"]=ze};const wt=Y.withInstall(de);d.FTreeGridDesign=de,d.bindingResolver=We,d.columnOptions=pt,d.default=wt,d.designPropsResolver=ze,d.editOptions=ft,d.filterOptions=st,d.groupOptions=rt,d.headerOptions=dt,d.loadingOptions=mt,d.paginationOptions=lt,d.propsResolver=He,d.rowOptions=ct,d.selectionItemResolver=Ue,d.sortOptions=at,d.summaryOptions=ut,d.treeGridDesignProps=Be,d.treeGridProps=ke,d.updateColumnsResolver=Ve,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});