@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 36.6 kB
JavaScript
(function(s,X){typeof exports=="object"&&typeof module<"u"?X(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"],X):(s=typeof globalThis<"u"?globalThis:s||self,X(s["tree-grid"]={},s.common,s.Vue,s.VueUseCore,s.LodashES,s.locale,s.dataView,s.FInputGroup,s.FButton,s.dynamicResolver,s.treeGrid,s.designer$2,s.designerCanvas,s.propertyPanel,s.designer$1))})(this,function(s,X,o,xe,$,Ze,l,et,tt,ne,Ne,nt,be,ot,N){"use strict";const it={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}},lt={enable:{type:Boolean,default:!1},fields:{type:Array,default:[]},mode:{type:String,default:"client"},multiSort:{type:Boolean,default:!1}},at={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"}},rt={enable:{type:Boolean,default:!1},filterStyle:{type:String,default:"filter-column"},mode:{type:String,default:"server"},showSummary:{type:Boolean,default:!0}},st={wrapHeadings:{type:Boolean,default:!1}},dt={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}},ct={enable:{type:Boolean,default:!1},customSummaryStyle:{type:Function,default:()=>{}},groupFields:{type:Array,default:[]},mode:{type:String,default:"client"},position:{type:String,default:"bottom"}},ut={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}},pt={selectOnEditing:{type:Boolean,default:!1},editMode:{type:String,default:"cell"}},ft={show:{type:Boolean,default:!1},message:{type:String,default:`${Ze.LocaleService.getLocaleValue("datagrid.loadingMessage")}...`}},Me={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,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},checkboxPosition:{type:String,default:"after-expand"},enableColumnSettingSolution:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},customSearch:{type:Function}};function mt(e,n,g,d,u,w,D,I,h,r,m,S,P,c,M,k,T,p,x){const{calculateCellPositionInRow:_}=w,{columnContext:F,hasLeftFixedColumn:U,hasRightFixedColumn:R}=D,{gridDataStyle:z,leftFixedGridDataStyle:Z,rightFixedGridDataStyle:oe}=c,{renderDataRow:a}=l.getHierarchyRow(e,n,F,T,I,h,r,m,S,P,c,M,k,p,x),ce=[a];function O(B,ee){const ie=_(B);return T.value.filter(K=>K.visible!==!1).map((K,W)=>ce[K.type](K,ie,ee,W))}function Y(){return o.createVNode("div",{ref:d,class:"fv-grid-content-left-fixed"},[o.createVNode("div",{class:"fv-grid-data",style:Z.value},[O(F.value.leftColumns.filter(B=>B.visible),"left")])])}function ue(){return o.createVNode("div",{ref:g,class:"fv-grid-content-primary"},[o.createVNode("div",{class:"fv-grid-data",style:z.value},[O(F.value.primaryColumns.filter(B=>B.visible),"primary")])])}function E(){return o.createVNode("div",{ref:u,class:"fv-grid-content-right-fixed"},[o.createVNode("div",{class:"fv-grid-data",style:oe.value},[O(F.value.rightColumns.filter(B=>B.visible),"right")])])}function pe(){const B=[];return U.value&&B.push(Y()),B.push(ue()),R.value&&B.push(E()),B}return{renderDataArea:pe}}const yt=o.defineComponent({name:"FTreeGrid",props:Me,emits:["selectionChange","clickRow","expandNode","unSelectItem","dblclickNode","doubleClickRow","unSelectItem","selectItem","filterChanged","unSelectAll","selectAll","sortChanged","selectionUpdate","endEditCell"],setup(e,n){var Qe,Xe;const g=o.ref(!1),d=o.ref(!1),u=0,w=o.ref(((Qe=e.rowOption)==null?void 0:Qe.height)||28);let D=[],I=[];const h=o.ref(20),r=o.ref(e.columns),m=l.useIdentify(e),{idField:S}=m,P=o.ref(),c=o.ref(),M=o.ref(),k=o.ref(),T=o.ref(),p=o.ref([]),x=o.ref(!1),_=o.ref(((Xe=e.rowOption)==null?void 0:Xe.wrapContent)||!1),F=l.useGroupData(e,m),U=l.useFilter(e,n),R=l.useHierarchy(e),{collapseField:z}=R,{showLoading:Z,renderLoading:oe}=l.useLoading(e,P),a=l.useDataView(e,new Map,U,R,m),{dataView:ce}=a,O=l.useSelection(e,a,m,p,n),{showSelection:Y,selectedValues:ue}=O,E=l.useSelectHierarchyItem(e,p,a,m,O,n),pe=o.computed(()=>e.disabled),B=o.computed(()=>e.virtualized?Math.min(a.dataView.value.length,h.value):a.dataView.value.length),ee=l.usePagination(e,a),{shouldRenderPagination:ie}=ee,{containerStyleObject:K}=l.useDataViewContainerStyle(e,p),W=o.ref(""),le=o.ref([]),Be=o.computed(()=>e.searchable||!1),te=o.ref(0),fe=l.useCommandColumn(e),{applyCommands:ve}=fe;ve(r);const{applyColumnSetting:ae,removeColumnSetting:Se}=l.useSettingColumn(e);e.showSetting&&ae(r);const L=l.useColumn(e,n),me=l.useSort(e),{applyColumnSorter:we,columnContext:V,updateColumnRenderContext:Te}=L;we(a,me);const ye=l.useGroupColumn(e,V),J=l.useRow(e,n,O,m),Q=l.useEdit(e,n,m,J,p),ge=l.useVisualDataBound(e,a,w),Fe=l.useVisualDataCell(e,Q,ge),Ie=l.useVisualDataRow(e,a,Q,R,m,ge,Fe,w),re=l.useVisualData(e,r,a,B,u,Ie),{getVisualData:G}=re,Re=l.useCellPosition(e,V,w,g),se=l.useSidebar(e,O),{sidebarWidth:wt}=se,j=l.useVirtualScroll(e,a,p,V,re,B,u,wt,w,g),{onWheel:It,dataGridWidth:Le,viewPortHeight:Ve,viewPortWidth:De,resetScroll:je,updateVisibleRowsOnLatestVisibleScope:Rt}=j,qe=l.useFitColumn(e,V,c,De,ye),{calculateColumnsSize:he}=qe,$e=l.useFilterHistory(),Dt=l.useColumnFilter(c,T,a,$e,j),Ot=l.useDragColumn(e,n,L,a,ye,F,j),Bt=o.computed(()=>{const t={"fv-grid":!0,"fv-grid-bordered":e.showBorder,"fv-grid-horizontal-bordered":e.showHorizontalLines,"fv-datagrid-strip":e.showStripe};return X.getCustomClass(t,e.customClass)}),Tt=o.computed(()=>({"fv-grid-content":!0,"fv-grid-content-hover":x.value,"fv-grid-wrap-content":_.value})),{renderDataArea:Ft}=mt(e,n,M,k,T,Re,L,a,Q,R,J,O,E,j,re,ge,p,w,g),{renderGridHeader:jt,renderGridColumnResizeOverlay:Pt,shouldShowHeader:Gt}=l.getColumnHeader(e,n,c,k,T,L,a,Ot,Dt,U,$e,qe,ye,O,se,me,j,De,p,d),{renderDataGridSidebar:xt}=l.getSidebar(e,J,O,se,j),{renderDisableMask:Nt}=l.getDisableMask(),{renderHorizontalScrollbar:Mt}=l.getHorizontalScrollbar(e,c,j),{renderVerticalScrollbar:kt}=l.getVerticalScrollbar(e,c,j);function At(){var t,i,C;if(c.value&&c.value.clientHeight>0&&((t=c.value)==null?void 0:t.clientWidth)>0){const y=Math.ceil(c.value.clientHeight/w.value);y>h.value&&(h.value=y,Rt()),Ve.value=((i=M.value)==null?void 0:i.clientHeight)||0,Le.value=((C=c.value)==null?void 0:C.clientWidth)||0}c.value&&(c.value.clientHeight>0||c.value.clientWidth>0)&&he()}o.onMounted(()=>{c.value&&(h.value=Math.max(Math.ceil(c.value.clientHeight/w.value),h.value),p.value=G(0,B.value+u-1),xe.useResizeObserver(c.value,At),he(),o.nextTick(()=>{c.value&&(Le.value=c.value.clientWidth),M.value&&(De.value=M.value.clientWidth,Ve.value=M.value.clientHeight)})),Z.value&&oe()}),o.onUnmounted(()=>{}),o.watch(De,()=>{c.value&&he()});function Ht(t){a.collapseTo(t),a.reOrderVisibleIndex(),je()}function Et(t){a.expandTo(t),a.reOrderVisibleIndex(),je()}function Pe(){const t=O.getSelectionRow();return t?t.dataIndex-1:-1}function _t(t){const i=t!==void 0?t:Pe(),C=a.insertNewDataItem(i===-1?0:i);return p.value=G(0,B.value+u-1),C}function Ut(){const t=Pe();a.insertNewChildDataItem(t),p.value=G(0,B.value+u-1)}function zt(t,i){const C=p.value.find(b=>b.raw[S.value]===i),y=C?C.dataIndex-1:-1;a.insertNewChildDataItems(t,y)}function Wt(){const t=Pe(),i=E.getNextSelectableHierarchyItemId(t);a.removeHierarchyDataItem(t),p.value=G(0,B.value+u-1),i&&E.selectItemById(i)}function Lt(t){Q.onEditingRow(t)}function Vt(t){Q.acceptEditingRow(t)}function qt(t){Q.cancelEditingRow(t)}function Ce(t){t&&(r.value=t,ve(r),e.showSetting&&ae(r),Te(r.value),we(a,me),he())}o.watch(()=>e.columns,t=>{if(e.showSetting&&e.enableColumnSettingSolution){Ce(r.value);return}Ce(t)});function $t(t,i){t&&(a.load(t),a.reOrderVisibleIndex(),i!=null&&i.keepScrollPosition?j.scrollTo(j.offsetY.value):je())}function Ge(t){J.activeRowById(t)}function Yt(t,i={isCurrent:!0}){i!=null&&i.isCurrent&&Ge(t),E.selectItemById(t)}function Kt(t){const i=p.value.find(C=>C.raw[m.idField.value]===t);i&&J.clickRowItem(i)}function Jt(t){E.selectItemByIds(t)}function Qt(){return O.getSelectedItems()}function Ye(){O.clearSelection()}function Xt(){O.emptyCurrentRowId()}const Zt=o.computed(()=>!p.value||!p.value.length),{renderEmpty:en}=l.getEmpty(e,n);function tn(){return O.getSelectionRow()}function nn(t,i={clearCurrent:!0}){i!=null&&i.clearCurrent&&Ge(""),E.unSelectItemByIds(t)}function on(){return O.currentSelectedDataId.value}function ln(t,i,C){const y=ce.value.find(b=>b[S.value]===t);if(y){if(Object.keys(y).forEach(v=>{Object.prototype.hasOwnProperty.call(i,v)&&(y[v]=i[v])}),C){const{collapseField:v,disabledField:A,checkedField:q,visibleField:H}=C;v&&!$.isUndefined(i[v])&&(y.__fv_collapse__=i[v]),q&&!$.isUndefined(i[q])&&(y.__fv_checked__=i[q]),A&&!$.isUndefined(i[A])&&(y.__fv_disabled__=i[A]),H&&!$.isUndefined(i[H])&&(y.__fv_visible__=i[H])}const b=p.value.find(v=>v.raw[S.value]===t),f=p.value.findIndex(v=>v.raw[S.value]===t);if(b){if(b.raw=y,Object.keys(b.data).forEach(v=>{b.data[v].updateData(y)}),C){const{collapseField:v,disabledField:A,checkedField:q,visibleField:H}=C;v&&!$.isUndefined(i[v])&&(b.collapse=i[v]),q&&!$.isUndefined(i[q])&&(b.checked=i[q]),A&&!$.isUndefined(i[A])&&(b.disabled=i[A]),H&&!$.isUndefined(i[H])&&(b.visible=i[H])}p.value=[...p.value.slice(0,f),b,...p.value.slice(f+1)],a.updateSummary()}}}function an(t){return Object.prototype.hasOwnProperty.call(t,"raw")?a.hasRealChildren(t.raw):a.hasRealChildren(t)}function rn(t){const i=a.dataView.value.find(C=>C[S.value]===t);return i?i[z.value]:""}function sn(){return z.value}o.watch(()=>e.showSetting,(t,i)=>{t!==i&&(t?ae(r):Se(r),Ce(r.value))});function dn(t){return p.value.filter(i=>t.includes(i.raw[e.idField]))}function Ke(t){const i=m.idField.value,C=p.value.find(y=>y.raw[i]===t);C&&J.changeRow(C)}function cn(){O.keepSelectingOnPaging.value||Ye(),a.updateVisibleDataSummary(p.value)}function un(t){O.updateSelectedValues(t)}function pn(t){O.removeSelectedValues(t)}function fn(t){o.nextTick(()=>{j.scrollToRowByIndex(t.dataIndex-1)})}function mn(t){let i=t;for(;i.parentId;){const C=a.dataView.value.find(y=>y[m.idField.value]===i.parentId);if(C)C[m.idField.value],a.unFold({raw:C}),i=C;else break}}function yn(t,i){if(t.length!==i.length)return!1;const C=t.map(b=>b[m.idField.value]).sort(),y=i.map(b=>b[m.idField.value]).sort();return C.every((b,f)=>b===y[f])}function Je(){if(!W.value.trim()){le.value=[],te.value=0;return}const t=[],i=W.value.toLowerCase().trim();a.dataView.value.forEach(y=>{var f;let b=!1;(f=e.search)!=null&&f.customSearch?b=e.search.customSearch(i,y,e.columns):e.columns.forEach(v=>{!b&&v.field&&y[v.field]!==void 0&&String(y[v.field]).toLowerCase().includes(i)&&(b=!0)}),b&&(t.push(y),mn(y))}),!yn(t,le.value)?(le.value=t,te.value=0):t.length>0&&(te.value=(te.value+1)%t.length),t.length>0&&o.nextTick(()=>{const y=t[te.value];Ke(y[m.idField.value]);const b=p.value.find(f=>f.raw[m.idField.value]===y[m.idField.value]);b&&fn(b)})}function gn(t){t.key==="Enter"&&Je()}function hn(){Je()}n.expose({activeRowById:Ge,addNewDataItem:_t,addNewChildDataItem:Ut,addChildrenToNode:zt,collapseTo:Ht,expandTo:Et,removeDataItem:Wt,editDataItem:Lt,acceptDataItem:Vt,cancelDataItem:qt,updateColumns:Ce,updateDataSource:$t,selectItemById:Yt,selectItemByIds:Jt,getSelectedItems:Qt,clearSelection:Ye,getSelectionRow:tn,clickRowItemById:Kt,unSelectItemByIds:nn,getCurrentRowId:on,reassignRowData:ln,hasChildren:an,getCollapseField:sn,getCollapseStatusById:rn,getVisibleDataByIds:dn,selectRowById:Ke,updateDerivedData:cn,emptyCurrentRowId:Xt,calculateColumnsSize:he,updateSelectedValues:un,removeSelectedValues:pn});const Cn=o.computed(()=>{const t={};return j.shouldShowHorizontalScrollbar.value&&(t.paddingBottom="10px"),j.shouldShowVirticalScrollbar.value&&(t.paddingRight="10px"),t}),bn=o.computed(()=>({...K.value,borderRadius:"5px"})),{renderDataGridPagination:Gn}=l.getPagination(e,n,a,j,ee,O),vn=o.computed(()=>({"d-flex":!0,"justify-content-between":ie.value&&Y.value,"justify-content-end":ie.value&&!Y.value,"position-relative":!0})),Sn=o.computed(()=>({"d-flex":!0,"align-items-center":!0}));function wn(t){const i=t.map(f=>f.id),C=[...r.value,...D,...I];C.filter(f=>f.dataType!==l.COMMAND_COLUMN_DATA_TYPE&&f.dataType!==l.SETTING_COLUMN_DATA_TYPE).forEach(f=>{const v=t.find(A=>A.id===f.id);v&&(f.width=v.actualWidth||f.width||120,f.title=v.title,f.halign=v.halign,f.align=v.align,f.fixed=v.fixed)}),I=C.filter(f=>f.dataType===l.COMMAND_COLUMN_DATA_TYPE||f.dataType===l.SETTING_COLUMN_DATA_TYPE);const y=C.filter(f=>f.dataType!==l.COMMAND_COLUMN_DATA_TYPE&&f.dataType!==l.SETTING_COLUMN_DATA_TYPE),b=y.filter(f=>i.includes(f.id));D=y.filter(f=>!i.includes(f.id)),b.sort((f,v)=>{const A=t.findIndex(H=>H.id===f.id),q=t.findIndex(H=>H.id===v.id);return A-q}),Ce(b)}const{renderDataGridSummary:In}=l.getSummary(e,a,L);return()=>o.createVNode(o.Fragment,null,[Be.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(et,{value:W.value,onInput:t=>W.value=t,onKeydown:gn,placeholder:"搜索数据...",style:{flex:1}},null),o.createVNode(tt,{type:"link",onClick:hn,style:{cursor:"pointer",marginLeft:"8px"}},{default:()=>[o.createVNode("i",{class:"f-icon f-icon-search"},null)]})])]),o.createVNode("div",{ref:P,class:Bt.value,style:bn.value,onWheel:It},[c.value&&Gt.value&&jt(),o.createVNode("div",{ref:c,class:Tt.value,onMouseover:()=>x.value=!0,onMouseleave:()=>x.value=!1,onTouchstart:t=>{t.stopPropagation(),x.value=!0,j.onTouchstartScrollThumb(t,c)},onTouchend:t=>{x.value=!1},style:Cn.value},[c.value&&xt(p),c.value&&Ft(),c.value&&Zt.value&&en(),c.value&&Mt(),c.value&&kt()]),c.value&&In(),Y.value&&o.createVNode("div",{class:vn.value},[Y.value&&o.createVNode("div",{class:Sn.value},[o.createVNode("div",null,["已选:"+ue.value.length,o.createTextVNode(" 条")])])]),Pt(),pe.value&&Nt()]),e.enableColumnSettingSolution&&o.createVNode(l.ColumnSettingSolution,{columns:[...r.value,...D],componentId:e.id,modelValue:d.value,"onUpdate:modelValue":t=>d.value=t,onChangeColumnSetting:wn},null)])}}),ke={$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},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:""},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:"取消全选事件"}},Ae=new Map([["appearance",ne.resolveAppearance],["column","columnOption"],["command","commandOption"]]);function gt(e,n,g){var S;const d=g.parentComponentInstance,u=d.schema.type,w=String(((S=d.schema.appearance)==null?void 0:S.class)||"").split(" "),D=u==="section"||u==="tab-page",I=w.includes("f-page-content-nav"),h=w.includes("f-page-main"),r=e.getSchemaByType("component");r.id=`${n.id}-component`,r.componentType="data-grid";let m="";return m+=D?"f-struct-data-grid-in-card f-struct-is-subgrid":"",m+=I?"f-struct-data-grid-in-nav f-struct-wrapper f-utils-fill-flex-column":"",m+=h?"f-struct-data-grid f-struct-wrapper":"",r.appearance={class:m},r.contents=[n],r}function ht(e,n,g){const d=g.parentComponentInstance,u=String(d.schema.appearance.class||"").split(" "),w=u.includes("f-page-content-nav"),D=u.includes("f-page-main"),I=e.getSchemaByType("section");I.id=`${n.id}-section`;let h="";return h+=w?"f-section-in-nav ":"",h+=D?"f-section-in-managelist ":"",h+="f-section-grid",I.appearance={class:h},I.contents=[n],I}function Ct(e,n,g){const d=e.getSchemaByType("content-container");return d.id=`${n.id}-layout`,d.appearance={class:"f-grid-is-sub f-utils-flex-column"},d.contents=[n],d}function He(e,n,g){const u=g.parentComponentInstance.schema.type,w=u==="section"||u==="tab-page";n.appearance={class:"f-component-grid"};const I=(w?Ct:ht)(e,n,g);return gt(e,I,g)}const Ee=ne.createPropsResolver(Ne.treeGridProps,ke,Ae,He),_e=ne.createTreeGridSelectionItemResolver(),Ue=ne.createTreeGridBindingResolver(),Oe=X.excludeProperties(Object.assign({},Ne.treeGridProps,{componentId:{type:String,default:""}}),"columnOption","commandOption"),ze=ne.createPropsResolver(Oe,ke,Ae,He),We=ne.createDataViewUpdateColumnsResolver();class bt extends ot.BaseControlProperty{constructor(n,g){super(n,g)}getPropertyConfig(n){return this.getBasicPropConfig(n),this.getAppearanceProperties(n),this.propertyConfig.categories.command=N.useCommandOption(this).getCommandColumnProperties(n),this.propertyConfig.categories.column=N.useColumnOption().getColumnOptionProperties(n),this.propertyConfig.categories.rowOption=N.useRowOption().getRowOptionProperties(n),this.propertyConfig.categories.summary=N.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,I,h;const g=(h=(I=(D=this.formSchemaUtils.getFormSchema())==null?void 0:D.module)==null?void 0:I.entity[0])==null?void 0:h.entities[0],d=this.assembleSchemaEntityToTree(g,0),u=this,w=super.getBasicPropConfig(n);this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{...w.properties,dataSource:{description:"绑定数据源",title:"绑定数据源",editor:{type:"combo-tree",textField:"name",valueField:"label",data:d,editable:!1},readonly:!0}},setPropertyRelates(r,m){switch(r&&r.propertyID){case"dataSource":{const S=u.formSchemaUtils.getViewModelById(u.viewModelId);if(S){const P=d.find(c=>c.label===r.propertyValue);S.bindTo=P.bindTo}u.designViewModelUtils.assembleDesignViewModel();break}}}}}getAppearanceProperties(n){this.propertyConfig.categories.appearance=N.useAppearance(this).getTreeGrid(n,this.viewModelId),this.propertyConfig.categories.selection=N.useSelection().getSelection(n),this.propertyConfig.categories.rowNumber=N.useRowNumber().getRowNumber(n),this.propertyConfig.categories.pagination=N.usePagination().getPagination(n,!0)}getEventPropConfig(n){const g=N.useDataGridEvent().initEvent(n),d=this,u=d.eventsEditorUtils.formProperties(n,d.viewModelId,g),w=d.createBaseEventProperty(u);this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:w,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(D,I){const h=D.propertyValue;delete n[d.viewModelId],h&&(h.setPropertyRelates=this.setPropertyRelates,d.eventsEditorUtils.saveRelatedParameters(n,d.viewModelId,h.events,h)),n.remoteSort=!!n.columnSorted,n.command&&(n.command.onClickEditCommand=n.onClickEditCommand,n.command.onClickDeleteCommand=n.onClickDeleteCommand,n.command.onHandleAction=n.onHandleAction)}}}assembleSchemaEntityToTree(n,g,d,u="",w=[]){const D=u?`${u}/${n.label}`:"/";return w.push({id:n.id,name:n.name,label:n.label,layer:g,parent:d&&d.id,bindTo:D.replace("//","/")}),n.type.entities&&n.type.entities.length&&n.type.entities.map(I=>this.assembleSchemaEntityToTree(I,g+1,n,D,w)),w}}function vt(e,n){const g=e.schema,d=o.ref(!0),u=o.ref(!0);function w(S){return S&&S.sourceType==="control"?S.componentCategory==="input":!1}function D(){return!1}function I(){return!1}function h(){return!0}function r(S){return new bt(S,n).getPropertyConfig(g)}function m(){var S,P,c,M;if(e&&n){const k=(S=e==null?void 0:e.componentInstance)==null?void 0:S.value.belongedComponentId;let T="",p="";const{formSchemaUtils:x}=n;if(k){const F=x.getRootViewModelId(),U=x.getComponentByViewModelId(F),R=x.selectNode(U,z=>z.contents&&z.contents.find(Z=>Z.component===k));(R==null?void 0:R.type)===((P=be.DgControl["tab-page"])==null?void 0:P.type)&&((c=R==null?void 0:R.contents)!=null&&c.length)&&(T=R.title||""),(R==null?void 0:R.type)===((M=be.DgControl.section)==null?void 0:M.type)&&(R==null?void 0:R.showHeader)!==!1&&(T=R.mainTitle||""),T=T?`${T} > `:"",p=T?R.id:""}const _=be.DgControl["tree-grid"].name;n==null||n.formSchemaUtils.getControlBasicInfoMap().set(e.schema.id,{componentTitle:_,parentPathName:`${T}${_}`,reliedComponentId:p})}}return{canAccepts:w,checkCanDeleteComponent:D,checkCanMoveComponent:I,hideNestedPaddingInDesginerView:h,triggerBelongedComponentToMoveWhenMoved:d,triggerBelongedComponentToDeleteWhenDeleted:u,getPropsConfig:r,setComponentBasicInfoMap:m}}const de=o.defineComponent({name:"FTreeGridDesign",props:Oe,emits:[],setup(e,n){var Ie,re;const g=o.ref(),d=0,u=o.ref(((Ie=e.rowOption)==null?void 0:Ie.height)||28),w=o.ref(!1),D=o.ref(20),I=o.ref(e.columns),h=l.useIdentify(e),r=o.ref(),m=o.ref(),S=o.ref([]),P=o.ref(!1),c=o.ref(((re=e.rowOption)==null?void 0:re.wrapContent)||!1),M=o.inject("designer-host-service"),k=o.inject("design-item-context"),T=vt(k,M),p=be.useDesignerComponent(g,k,T);p.value.designerClass="f-utils-fill-flex-column";const x=l.useFilter(e,n),_=l.useHierarchy(e),F=l.useDataView(e,new Map,x,_,h),U=l.useSelection(e,F,h,S,n),R=o.computed(()=>F.dataView.value.length),{containerStyleObject:z}=l.useDataViewContainerStyle(e,S),Z=l.useCommandColumn(e),{applyCommands:oe}=Z;oe(I);const a=N.useDesignerColumn(e),{applyColumnSorter:ce,columnContext:O,updateColumnRenderContext:Y}=a,ue=l.useSort(e),E=l.useGroupColumn(e,O),pe=l.useRow(e,n,U,h),B=l.useEdit(e,n,h,pe,S),ee=l.useVisualDataBound(e,F,u),ie=l.useVisualDataCell(e,B,ee),K=l.useVisualDataRow(e,F,B,_,h,ee,ie,u),W=N.useDesignerVisualData(e,I,F,R,d,K),{getVisualData:le}=W,Be=l.useSidebar(e,U),{sidebarWidth:te}=Be;S.value=le(0,R.value+d-1);const fe=l.useVirtualScroll(e,F,S,O,W,R,d,te,u,w),{onWheel:ve,dataGridWidth:ae,viewPortHeight:Se,viewPortWidth:L,updateVisibleRowsOnLatestVisibleScope:me}=fe,we=N.useDesignerFitColumn(e,O,r,L,E),{calculateColumnsSize:V}=we,Te=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":P.value,"fv-grid-wrap-content":c.value})),{renderGridHeader:J}=nt.getColumnHeader(k,e,a,fe,"tree-grid-column"),{renderHorizontalScrollbar:Q}=l.getHorizontalScrollbar(e,r,fe);function ge(){var Re,se;const G=Math.ceil(r.value.clientHeight/u.value);G>D.value&&(D.value=G,me()),Se.value=((Re=m.value)==null?void 0:Re.clientHeight)||0,ae.value=((se=r.value)==null?void 0:se.clientWidth)||0,V()}o.onMounted(()=>{g.value.componentInstance=p,r.value&&(D.value=Math.max(Math.ceil(r.value.clientHeight/u.value),D.value),S.value=le(0,R.value+d-1),xe.useResizeObserver(r.value,ge),V(),o.nextTick(()=>{r.value&&(ae.value=r.value.clientWidth),m.value&&(L.value=m.value.clientWidth,Se.value=m.value.clientHeight)}))});function Fe(G){G&&(I.value=G,oe(I),Y(I.value),ce(F,ue),V())}return o.watch(()=>e.columns,G=>{Fe(G)}),o.watch(L,()=>{r.value&&V()}),n.expose(p.value),()=>o.createVNode("div",{ref:g,class:Te.value,style:z.value,onWheel:ve,dragref:`${k.schema.id}-container`},[r.value&&J(),o.createVNode("div",{ref:r,class:ye.value,onMouseover:()=>{P.value=!0},onMouseleave:()=>{P.value=!1}},[Q()])])}});de.register=(e,n,g,d)=>{e["tree-grid"]=yt,n["tree-grid"]=Ee,d["tree-grid"]={bindingResolver:Ue,selectionItemResolver:_e,updateColumnsResolver:We}},de.registerDesigner=(e,n,g)=>{e["tree-grid"]=de,n["tree-grid"]=ze};const St=X.withInstall(de);s.FTreeGridDesign=de,s.bindingResolver=Ue,s.columnOptions=ut,s.default=St,s.designPropsResolver=ze,s.editOptions=pt,s.filterOptions=rt,s.groupOptions=at,s.headerOptions=st,s.loadingOptions=ft,s.paginationOptions=it,s.propsResolver=Ee,s.rowOptions=dt,s.selectionItemResolver=_e,s.sortOptions=lt,s.summaryOptions=ct,s.treeGridDesignProps=Oe,s.treeGridProps=Me,s.updateColumnsResolver=We,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});