UNPKG

@aplus-frontend/ui

Version:

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