@aplus-frontend/ui
Version:
2 lines (1 loc) • 13.2 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Ye=require("ag-grid-vue3"),l=require("ag-grid-community"),Ze=require("./utils.js"),Q=require("@aplus-frontend/antdv"),c=require("lodash-unified");require("../config-provider/index.js");const eo=require("../ap-form/index.js"),oo=require("../ap-table/utils.js"),to=require("../ap-table/hooks/use-table-paging-ng.js"),ro=require("./hooks/use-row-selection.js"),no=require("./context.js"),lo=require("../ap-table/context.js"),F=require("../ap-grid/constants.js"),ao=require("@aplus-frontend/antdv/es/theme/internal"),so=require("./theme.js"),uo=require("./hooks/use-columns.js"),io=require("./hooks/use-columns-def.js");require("../utils/index.js");const co=require("../utils/slot.js"),fo=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const po=require("./hooks/use-virtual-config.js"),mo=require("./hooks/use-pinned-row.js"),go=require("./hooks/use-selection-col-def.js");require("./components/row/index.vue.js");const wo=require("./style/index.js"),X=require("@ag-grid-community/locale"),So=require("../config-provider/hooks/use-namespace.js"),Co=require("../config-provider/hooks/use-locale.js"),ho=require("../config-provider/hooks/use-global-config.js"),yo=require("../utils/is.js"),Ro=require("./components/row/index.vue2.js"),vo=require("./components/empty/index.vue2.js"),bo=e.defineComponent({name:"AgGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onChange:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},columns:{},rowSelection:{type:[Boolean,Object]},card:{type:Boolean},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{}},setup(Y,{expose:Z}){const ee={"zh-cn":X.AG_GRID_LOCALE_CN,en:X.AG_GRID_LOCALE_EN};l.ModuleRegistry.registerModules([l.ValidationModule,l.ColumnAutoSizeModule,l.PinnedRowModule,l.RowAutoHeightModule,l.RowStyleModule,l.CellSpanModule,l.CellStyleModule,l.TooltipModule,l.RowSelectionModule,l.LocaleModule,l.ValueCacheModule,l.GridStateModule,l.ColumnApiModule,l.RowApiModule,l.CellApiModule,l.RenderApiModule,l.EventApiModule,l.ScrollApiModule,l.ClientSideRowModelApiModule,l.ClientSideRowModelModule]);const t=Y,T=e.useSlots(),{e:b,b:d,be:oe}=So.useNamespace("ag-grid"),{lang:A}=Co.useLocale(),te=wo.default("ag-grid"),h=e.ref(t.size),re=so.useTheme(h,e.toRef(t,"rowHeight"),e.toRef(t,"theme")),ne=po.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:D,getRowPinnedCellClass:le}=mo.usePinnedRow(e.toRef(t,"summary")),ae=ho.useGlobalConfig("apGrid"),s=e.ref(),[,se]=ao.useToken();let y=!!t.dataSource;const z=fo.useSearchForm(t),{shownColumns:g,columns:V,columnKeys:ue,getTargetColumnByKey:ie}=uo.useColumns(t),{defaultColDef:ce,columnDefs:de,gridWrapperRef:fe}=io.useColumnsDef(V,t,le),k=e.ref({});no.useProvideSorter({sorter:k,setSorter(o){k.value=o}});const pe={asc:"ascend",desc:"descend"};function me(){const o=s.value.getColumns()?.filter(f=>f.getSort()!==void 0),r=e.unref(k)||{};let n=o?.[0];const u=Object.keys(r);if(u.length&&u.every(f=>r[f]===null)){const f=Object.keys(r)[0];f&&(n=s.value?.getColumn(f))}if(!n)return;const i=n.getColDef(),p=n.getSort(),m=ie(i.colId);_(void 0,void 0,{column:i,field:m?.field??i.field??i.colId,order:p?pe[p]:null})}const ge=e.computed(()=>oo.recursionApColumns(e.unref(g),o=>{if(o.sorter===!0)return o.field??o.dataIndex??o.key}).filter(Boolean)),we=()=>{k.value={};const o=s.value;if(!o)return;const r=o.getColumnState()?.map(n=>({...n,sort:null}));o.applyColumnState({state:r})},x=e.ref(!0),Se=e.computed(()=>yo.isDef(t.manual)?t.manual:co.getValidVNodeList(T.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:w,submit:M,reset:q,data:S,tableProps:P,handleTableChangeOptional:_,submitWith:K,refresh:O,getPaging:Ce,setPaging:he,setDataSource:ye}=to.useTablePaging({async request(o){if(y=!1,C.value&&!C.value.preserveSelectedRowKeys&&c.isUndefined(t.dataSource)&&!x.value&&E(),x.value&&(x.value=!1),!c.isUndefined(t.dataSource)){const n=o.pageSize*(o.current-1);return{data:(t.pagination===!1?t.dataSource:t.dataSource.slice(n,n+o.pageSize))||[],total:t.dataSource.length||0}}const r=await t.request?.(o);return{data:r?.data||[],total:r?.total||0}},namespace:"ap-grid",filterFields:e.ref([]),params:e.toRef(t,"params"),defaultData:t.defaultData,manual:e.unref(Se),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ge,onClickReset:we}),C=e.computed(()=>{const o=t.rowSelection||ae.value?.rowSelection;if(o)return o===!0?F.DEFAULT_ROW_SELECTION_CONFIG:{...F.DEFAULT_ROW_SELECTION_CONFIG,...o}}),Re=go.default(t,g),ve=e.computed(()=>c.isUndefined(t.dataSource)?S.records:t.dataSource),{select:be,unSelect:ke,selectedRows:N,selectedRowKeys:Be,clearAll:Fe,selectMultiByKeys:xe,selectMulti:Me,unSelectMulti:qe}=ro.default({...C.value,dataSource:ve,rowKey:t.rowKey}),Ne={checkbox:"multiRow",radio:"singleRow"},Ie=e.computed(()=>{const o=C.value;if(!o)return;const{type:r="checkbox",disabled:n}=o;return{mode:Ne[r],isRowSelectable:u=>n?!n(u.data):!0,hideDisabledCheckboxes:o.hideDisabled??!1}});function I(o){return c.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const B=({api:o=s.value})=>{if(t.onUpdate?.(),!C.value)return;const r=N.value||[];y=!1;const n=[];o.forEachNode(u=>{const R=u.data,i=I(R),p=u.isSelected();r.find(m=>I(m)===i)?!p&&n.push(u):p&&u.setSelected(!1)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{y=!0},0)},Ee=o=>{y&&(o.node.isSelected()?be(o.data):ke(o.data),c.isFunction(C.value?.tooltip)&&o.api.refreshCells({rowNodes:[o.node],columns:["ag-Grid-SelectionColumn"],force:!0}))},Te=()=>{y=!0},E=()=>{Fe(),s.value?.deselectAll()};function Ae(o){xe(o),e.nextTick(()=>{B({})})}const De=e.computed(()=>{const o=t.customRow;return o?{isFullWidthRow:o.isCustomRow,fullWidthCellRenderer:Ro.default,fullWidthCellRendererParams:{render:o.render}}:{}});function ze(o){Me(o),e.nextTick(()=>{B({})})}function Ve(o){qe(o),e.nextTick(()=>{B({})})}function G(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return w.value?.apForm?.[r]?.(!0)}function L(o){w.value?.apForm?.setFieldsValue?.(o)}function W(){return w.value?.getSorterItems()||[]}function U(o){w.value?.setSorterItems(o)}function H(){w.value?.resetSorterItems()}function j(o){return o&&String(o)}function Pe(o){const r=s.value;if(!r)return;const n=r.getColumnState()||[],u=o.map(a=>a.key?String(a.key):a.key).filter(Boolean),R=n.map(a=>{if(!ue.value.includes(a.colId))return a;const v=!u.includes(a.colId),$={...a,hide:v},J=o.find(Xe=>j(Xe.key)===a.colId);return J&&($.pinned=J.fixed||null),$}),i=new Map(o.map((a,v)=>[j(a.key),v])),p=R.filter(a=>i.has(a.colId)).sort((a,v)=>i.get(a.colId)-i.get(v.colId)),m=[];let f=0;for(const a of R)i.has(a.colId)?m.push(p[f++]):m.push(a);r.applyColumnState({state:m,applyOrder:!0})}lo.useProvideApTable({columns:e.computed(()=>g.value),columnsBackup:e.computed(()=>V.value),size:e.computed(()=>F.sizeMap[h.value]),updateColumns(o){g.value=o,t.onShownColumnsChange?.(o),Pe(o)},updateSize(o){h.value=F.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:oe("table-header","title"),color:se.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(S).records),getSearchFormValues:G,setSearchFormValues:L,submit:M,submitWith:K,reset:q,refresh:O,getSearchFormSorterItems:W,setSearchFormSorterItems:U,resetSearchFormSorterItems:H});const _e=e.computed(()=>c.isUndefined(t.loading)?S.loading:t.loading),Ke=e.computed(()=>[d(),t.card?null:d("wrapper"),d("adaptive"),d(`size-${h.value}`),te.value].filter(Boolean)),Oe=e.computed(()=>({height:"100%",...t.tableStyle||{}})),Ge=(o,r)=>{_({current:o,pageSize:r})};function Le(o){const r=o.data;return I(r)}function We(o,r){(c.isFunction(o)?s.value?.ensureNodeVisible:s.value?.ensureIndexVisible)?.(o,r)}function Ue(o,r){s.value?.ensureColumnVisible(o,r)}function He(o){t.onRowClicked?.(o.data,o.event)}function je(o){t.onScrollEnd?.(o.direction)}function $e(o){return s.value?.refreshCells(o)}function Je(o){return s.value?.redrawRows(o)}const Qe=o=>{const r=[D.value.getRowClass?.(o)];if(!o.node.rowPinned){const n=c.isFunction(t.rowClassName)?t.rowClassName(o.data,o.rowIndex):t.rowClassName;r.push(n)}return r.flat().filter(Boolean)};return e.watch(()=>t.dataSource,o=>{ye(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{h.value=o}),e.watch(()=>e.unref(S).loading,o=>{t.onLoadingChange?.(o)}),Z({submit:M,reset:q,refresh:O,submitWith:K,setSearchFormValues:L,getSearchFormValues:G,getShowColumns:()=>e.unref(g),rowSelection:{selectedRows:e.computed(()=>N.value),setSelectedRowKeys:Ae,setSelectedRows:ze,clearAll:E,unSelectRows:Ve},scrollToRow:We,scrollToColumn:Ue,getDataSource:()=>e.unref(S.records),getPaging:Ce,setPaging:he,getSearchFormSorterItems:W,setSearchFormSorterItems:U,resetSearchFormSorterItems:H,refreshCells:$e,redrawRows:Je,_internalGridApi:e.computed(()=>s.value)}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(Ke.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(c.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(z).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(b)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(eo.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:w,"custom-reset":"","submit-loading":e.unref(P).loading,onSubmit:e.unref(M),onReset:e.unref(q)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(z),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[T.searchFormExtra?{name:"extra",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(b)("table-wrapper"),o.card?e.unref(b)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(d)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(N),selectedRowKeys:e.unref(Be),shownColumns:e.unref(g),clearAll:E})],2),e.createElementVNode("div",{ref_key:"gridWrapperRef",ref:fe,class:e.normalizeClass(e.unref(d)("grid-wrapper"))},[(e.openBlock(),e.createBlock(e.unref(Ye.AgGridVue),e.mergeProps(e.unref(Ze.mergeProps)(e.unref(ne),e.unref(D),De.value),{key:e.unref(A),"get-row-class":Qe,style:Oe.value,"row-data":e.unref(S).records,"column-defs":e.unref(de),"default-col-def":e.unref(ce),"suppress-loading-overlay":"","row-selection":Ie.value,"selection-column-def":e.unref(Re),"get-row-id":Le,"get-row-height":t.getRowHeight,theme:e.unref(re),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","row-class-rules":o.rowClassRules,"no-rows-overlay-component":vo.default,"suppress-cell-focus":"","enable-cell-span":"","dom-layout":o.autoHeight?"autoHeight":"normal","locale-text":ee[e.unref(A)],onSortChanged:me,onGridReady:r[0]||(r[0]=n=>s.value=n.api),onRowDataUpdated:B,onRowSelected:Ee,onFirstDataRendered:Te,onRowClicked:He,onBodyScrollEnd:je}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","get-row-height","theme","enable-browser-tooltips","row-class-rules","dom-layout","locale-text"])),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(b)("table-loading-wrapper"))},[e.createVNode(e.unref(Q.Spin),{delay:300})],2),[[e.vShow,_e.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(d)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(Q.Pagination),e.mergeProps({key:0,class:e.unref(d)("pagination")},e.unref(P).pagination,{onChange:Ge}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=bo;
;