@aplus-frontend/ui
Version:
2 lines (1 loc) • 11.5 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),M=require("@aplus-frontend/antdv"),xe=require("@aplus-frontend/antdv/es/theme/internal"),d=require("lodash-unified");require("../scroll-bar/index.js");const Te=require("../utils/slot.js"),ke=require("../utils/warning.js"),Be=require("../ap-form/index.js");require("../config-provider/index.js");const Fe=require("../utils/index.js");require("./components/paragraph-ellipsis/index.vue.js");require("./components/setting/modal/index.vue.js");const G=require("./constants.js"),ze=require("./context.js"),qe=require("./hooks/use-sticky-scroll.js"),Ne=require("./hooks/use-table-content-height.js"),Ie=require("./hooks/use-table-paging-ng.js"),Pe=require("./hooks/use-table-row-selection.js"),Ve=require("./style/index.js"),l=require("./utils.js"),_e=require("../config-provider/hooks/use-namespace.js"),Ee=require("../config-provider/hooks/use-global-config.js"),J=require("../utils/is.js"),Ae=require("./components/paragraph-ellipsis/index.vue2.js"),Le=require("./components/setting/modal/index.vue2.js"),Oe=require("../scroll-bar/index.vue.js"),$e=e.defineComponent({name:"ApTable",__name:"ap-table",props:{dropdownPrefixCls:{},loading:{type:[Boolean,Object],default:void 0},bordered:{type:Boolean,default:!1},locale:{},onChange:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{default:()=>["ascend","descend"]},showSorterTooltip:{type:[Boolean,Object],default:!1},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},rowClassName:{},title:{},footer:{},id:{},showHeader:{type:Boolean,default:!0},components:{},customRow:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean],default:!1},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean,default:!1},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean,default:!1},indentSize:{default:15},expandIconColumnIndex:{},showExpandColumn:{type:Boolean,default:!0},expandedRowClassName:{},childrenColumnName:{default:"children"},rowExpandable:{},sticky:{type:[Boolean,Object]},transformCellText:{},rowHoverable:{type:Boolean},columns:{},rowSelection:{type:[Boolean,Object]},card:{type:Boolean,default:!1},params:{},searchFormRender:{},request:{},onLoad:{},defaultData:{},dataSource:{},onLoadingChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},manual:{type:Boolean,default:void 0},size:{default:"small"},adaptive:{type:Boolean,default:!1},columnResizable:{type:Boolean,default:!1},settings:{default:void 0}},setup(Q,{expose:X}){const t=Q;let k=0;const f=e.useSlots(),[,Y]=xe.useToken();ke.useDevWarning("ApTable")(!1,"breaking","ApTable has been EOL, Please use AgGrid(https://aplus.aplnk.com/aplus-ui/components/ag-grid/) instead.");const{e:v,b:i,be:B,m:Z,cssVar:ee}=_e.useNamespace("ap-table"),re=Ve.default("ap-table"),F=Ee.useGlobalConfig("valueTypeMap"),{height:te,contentRef:oe}=Ne.default(),z=e.ref(),q=e.ref(),{isStickyMode:N,scrollBarRef:y}=qe.useStickyScroll(z),S=e.ref(t.size),s=e.ref([]),I=e.ref([]),P=Fe.getScrollbarSize(),C=e.ref(!0),V=e.computed(()=>(k++,t.columns?.filter(r=>!r.hideInSearch&&r.dataIndex&&(r.valueType||r.customRenderFormItem)&&!G.noRenderAsFormItemValueList.includes(r.valueType))?.sort((r,a)=>{let o=l.getColumnOrder(r.order);return l.getColumnOrder(a.order)-o})?.map(r=>{const a=l.updateFormProps(r,l.getFieldProps(r.fieldProps,{})),o={...r,fieldProps:{label:r.title,name:r.dataIndex,bordered:!0,...a||{},_signal:k},renderNode:void 0};return o.renderNode=l.getSearchFormItemRenderNode(o,e.unref(F)),o})||[])),ae=e.computed(()=>l.recursionApColumns(e.unref(s),r=>{if(r.sorter===!0)return r.key||r?.dataIndex}).filter(Boolean)),ne=e.computed(()=>l.recursionApColumns(e.unref(s),r=>{if(r.filters&&!r.onFilter)return r.key||r?.dataIndex}).filter(Boolean)),le=e.computed(()=>d.isUndefined(t.dataSource)?p.records:t.dataSource),se=e.computed(()=>J.isDef(t.manual)?t.manual:Te.getValidVNodeList(f.searchFormExtra?.()||[]).some(a=>a.type?.name==="ApView")),{rowSelection:b,selectedRows:h,...w}=Pe.default({fixed:!0,...t.rowSelection===!0?{}:t.rowSelection,rowKey:t.rowKey,dataSource:le}),{formRef:c,submit:R,reset:x,tableProps:_,refresh:E,data:p,setDataSource:ue,getColumnSFConfig:A,sortedInfo:de,filteredInfo:ie,setPaging:ce,getPaging:fe,submitWith:L,getLastParams:pe}=Ie.useTablePaging({async request(r){if(!b.value.preserveSelectedRowKeys&&d.isUndefined(t.dataSource)&&!C.value&&w.clearAll(),C.value&&(C.value=!1),!d.isUndefined(t.dataSource))return{data:t.dataSource||[],total:t.dataSource.length||0};const a=await t.request?.(r);return t.onLoad?.(a?.data||[]),{data:a?.data||[],total:a?.total||0}},filterFields:ne,sortFields:ae,params:e.toRef(t,"params"),defaultData:t.defaultData,manual:e.unref(se),formatParams:t.beforeSearchSubmit,pagination:t.pagination});ze.useProvideApTable({columns:e.computed(()=>s.value),columnsBackup:e.computed(()=>I.value),size:e.computed(()=>S.value),updateColumns(r){s.value=r},updateSize(r){S.value=r},dataSource:e.computed(()=>e.unref(p).records),getSearchFormValues:K,setSearchFormValues:$,submit:R,submitWith:L,reset:x,refresh:E,getSearchFormSorterItems:D,setSearchFormSorterItems:W,resetSearchFormSorterItems:U,getLastParams:pe});const me=()=>{let r=t.columns?.filter(o=>!o.hideInTable)||[];function a(o,u){return o.map(n=>({resizable:J.isDef(n.resizable)?n.resizable:t.columnResizable,...d.omit(l.apColumnToColumn(n),["ellipsis"]),...A(n),fixed:u?u.fixed:n.fixed,title:l.getTableTitle(n,B("table-header","title"),f.headerCell,e.unref(Y).colorTextTertiary),customRender({value:m,...g}){const j=l.getTableRenderType(n),ve=l.getTableRenderProps({...n,valueType:j},{value:m,...g}),Ce=l.getTableCellRenderNode(j,ve,g.record,e.unref(F)),H=n.renderText?.({value:m,...g})||m,Re=n.renderText?e.createVNode(e.Fragment,null,[n.renderText?.({value:m,...g})]):Ce;let T=he(n,H,Re);return n.customRender&&(T=n.customRender({value:m,...g,column:n,originalNode:T,originalText:H})),T},children:a(n.children||[],u||n)}))}return a(r)},ge=()=>{function r(a){for(const o of a)o.children?.length?r(o.children):A(o,!0)}r(s.value)};e.watch(()=>[t.columns,t.columnResizable],()=>{const r=me();s.value=r,I.value=r},{deep:!0,immediate:!0}),e.watch(()=>[de.value,ie.value],()=>{ge()},{deep:!0});const ye=e.computed(()=>{if(t.adaptive&&(p.total>0||t.dataSource?.length))return{y:e.unref(te),x:t.scroll?.x||"100%"};if(t.scroll)return t.scroll}),Se=e.computed(()=>{if(t.tableLayout)return t.tableLayout;if(t.columns?.some(r=>r.ellipsis))return"fixed"}),O=e.computed(()=>{const r=e.unref(_),a=e.unref(b);return{...t,...r,rowSelection:t.rowSelection===!0||t.rowSelection?.mode==="internal"?{...a,preserveSelectedRowKeys:d.isUndefined(t.dataSource)?a.preserveSelectedRowKeys:!0}:l.falseToUndefined(t.rowSelection),loading:d.isUndefined(t.loading)?r.loading:t.loading,pagination:t.pagination===!1?!1:r.pagination,scroll:e.unref(ye)}}),be=e.computed(()=>[i(),t.card?null:i("wrapper"),t.adaptive?i("adaptive"):null,N.value&&y.value?.visible?Z(`sticky-${P===0?"absolute":"relative"}`):null,re.value].filter(Boolean));function he(r,a,o){if(G.noRenderAsFormItemValueList.includes(r.valueType))return o;const u=l.objectToString(a);return r.copyable||r.ellipsis?e.createVNode(Ae.default,{copyable:r.copyable,rawValue:u,ellipsis:r.ellipsis?d.isBoolean(r.ellipsis)?{tooltip:o,rows:1}:{...r.ellipsis,tooltip:o}:!1,content:o},null):o}e.watch(()=>e.unref(p).loading,r=>{t.onLoadingChange?.(r)}),e.watch(()=>t.dataSource,r=>{ue(r)},{immediate:!0});function $(r){c.value?.apForm?.setFieldsValue?.(r)}function K(r=!1){const a=r?"getFieldsValueTransformed":"getFieldsValue";return c.value?.apForm?.[a]?.(!0)}function D(){return c.value?.getSorterItems()||[]}function W(r){c.value?.setSorterItems(r)}function U(){c.value?.resetSorterItems()}function we(){return e.unref(s)}return X({submit:()=>R(),reset:()=>x(),refresh:()=>E(),submitWith:()=>L(),setSearchFormValues:$,getSearchFormValues:K,setPaging:ce,getPaging:fe,getShownColumns:we,dataSource:e.computed(()=>e.unref(p).records),rowSelection:{selectedRows:e.computed(()=>e.unref(h)),...w},scrollBar:{x:{getCurrentScroll:()=>y?.value?.currentScroll??0,scroll:r=>y?.value?.scroll?.(r)},y:void 0},getSearchFormSorterItems:D,setSearchFormSorterItems:W,resetSearchFormSorterItems:U}),(r,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"tableWrapperRef",ref:z,class:e.normalizeClass(be.value),style:e.normalizeStyle(e.unref(ee)({"scroll-bar-width":`${e.unref(P)}px`}))},[e.unref(d.isUndefined)(r.dataSource)&&r.searchForm!==!1&&V.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(r.card?e.unref(v)("search-wrapper"):null),style:e.normalizeStyle(r.searchFormWrapperStyle)},[e.createVNode(e.unref(Be.ApForm).SearchForm,e.mergeProps(r.searchForm||{},{ref_key:"formRef",ref:c,"custom-reset":"","submit-loading":e.unref(_).loading,onSubmit:e.unref(R),onReset:e.unref(x)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,o=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.renderNode),{key:o.dataIndex}))),128))]),_:2},[f.searchFormExtra?{name:"extra",fn:e.withCtx(()=>[e.renderSlot(r.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"contentRef",ref:oe,class:e.normalizeClass([e.unref(v)("table-wrapper"),r.card?e.unref(v)("table-wrapper-card"):null]),style:e.normalizeStyle(r.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(i)("header-wrapper"))},[r.settings?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(i)("header"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(B)("header","title"))},[e.renderSlot(r.$slots,"title",e.mergeProps({selectedRows:e.unref(h),selectedRowKeys:e.unref(b).selectedRowKeys,shownColumns:s.value},w))],2),f.title?(e.openBlock(),e.createBlock(e.unref(M.Divider),{key:0,type:"vertical"})):e.createCommentVNode("",!0),e.createVNode(Le.default,{config:r.settings},null,8,["config"])],2)):e.renderSlot(r.$slots,"title",e.mergeProps({key:1,selectedRows:e.unref(h),selectedRowKeys:e.unref(b).selectedRowKeys,shownColumns:s.value},w))],2),e.createVNode(e.unref(M.Table),e.mergeProps({ref_key:"antdTableRef",ref:q,class:e.unref(i)("table")},O.value,{size:S.value,"table-layout":Se.value,columns:s.value,onResizeColumn:a[0]||(a[0]=(o,u)=>u.width=o)}),e.createSlots({summary:e.withCtx(()=>[e.renderSlot(r.$slots,"summary",{columns:s.value,records:O.value.dataSource,selectedRows:e.unref(h)})]),_:2},[e.unref(N)?{name:"bottomPaginationTop",fn:e.withCtx(()=>[e.createVNode(e.unref(Oe.default),{ref_key:"scrollBarRef",ref:y,"scroll-container":q.value?.table?.scrollBodyRef,direction:"horizontal","bar-color":"var(--scrollbar-thumb-color-base)","track-color":"var(--table-header-bg, #f2f6f9)","extra-size":S.value==="middle"?13:10},null,8,["scroll-container","extra-size"])]),key:"0"}:void 0,e.renderList(e.unref(d.omit)(f,["title","searchFormExtra","headerCell","summary"]),(o,u)=>({name:u,fn:e.withCtx(n=>[e.renderSlot(r.$slots,u,e.normalizeProps(e.guardReactiveProps(n||{})))])}))]),1040,["class","size","table-layout","columns"])],6)],6))}});exports.default=$e;