UNPKG

@aplus-frontend/ui

Version:

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