UNPKG

@aplus-frontend/ui

Version:

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