UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 11.4 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),G=require("@aplus-frontend/antdv"),Re=require("@aplus-frontend/antdv/es/theme/internal"),xe=require("../ap-form/index.js"),J=require("./constants.js");require("../config-provider/index.js");const Te=require("./hooks/use-table-paging-ng.js"),d=require("lodash-unified"),l=require("./utils.js"),ke=require("./hooks/use-table-content-height.js"),Be=require("./hooks/use-table-row-selection.js"),k=require("../utils/index.js");require("./components/setting/modal/index.vue.js");require("./components/paragraph-ellipsis/index.vue.js");const Fe=require("./context.js");require("../scroll-bar/index.js");const ze=require("./hooks/use-sticky-scroll.js"),qe=require("../utils/slot.js"),Ne=require("../utils/warning.js"),Ie=require("./style/index.js"),Ve=require("../config-provider/hooks/use-namespace.js"),Pe=require("../config-provider/hooks/use-global-config.js"),_e=require("./components/paragraph-ellipsis/index.vue2.js"),Ee=require("./components/setting/modal/index.vue2.js"),Ae=require("../scroll-bar/index.vue.js"),Le=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(Q,{expose:X}){const t=Q;let B=0;const f=e.useSlots(),[,Y]=Re.useToken();Ne.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:F,m:Z,cssVar:ee}=Ve.useNamespace("ap-table"),re=Ie.default("ap-table"),z=Pe.useGlobalConfig("valueTypeMap"),{height:te,contentRef:oe}=ke.default(),q=e.ref(),N=e.ref(),{isStickyMode:I,scrollBarRef:y}=ze.useStickyScroll(q),S=e.ref(t.size),s=e.ref([]),V=e.ref([]),P=k.getScrollbarSize(),C=e.ref(!0),_=e.computed(()=>(B++,t.columns?.filter(r=>!r.hideInSearch&&r.dataIndex&&(r.valueType||r.customRenderFormItem)&&!J.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:B},renderNode:void 0};return o.renderNode=l.getSearchFormItemRenderNode(o,e.unref(z)),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(()=>k.isDef(t.manual)?t.manual:qe.getValidVNodeList(f.searchFormExtra?.()||[]).some(a=>a.type?.name==="ApView")),{rowSelection:b,selectedRows:h,...w}=Be.default({fixed:!0,...t.rowSelection===!0?{}:t.rowSelection,rowKey:t.rowKey,dataSource:le}),{formRef:c,submit:R,reset:x,tableProps:E,refresh:A,data:p,setDataSource:ue,getColumnSFConfig:L,sortedInfo:de,filteredInfo:ie,setPaging:ce,getPaging:fe,submitWith:O}=Te.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});Fe.useProvideApTable({columns:e.computed(()=>s.value),columnsBackup:e.computed(()=>V.value),size:e.computed(()=>S.value),updateColumns(r){s.value=r},updateSize(r){S.value=r},dataSource:e.computed(()=>e.unref(p).records),getSearchFormValues:D,setSearchFormValues:K,submit:R,submitWith:O,reset:x,refresh:A,getSearchFormSorterItems:W,setSearchFormSorterItems:U,resetSearchFormSorterItems:j});const pe=()=>{let r=t.columns?.filter(o=>!o.hideInTable)||[];function a(o,u){return o.map(n=>({resizable:k.isDef(n.resizable)?n.resizable:t.columnResizable,...d.omit(l.apColumnToColumn(n),["ellipsis"]),...L(n),fixed:u?u.fixed:n.fixed,title:l.getTableTitle(n,F("table-header","title"),f.headerCell,e.unref(Y).colorTextTertiary),customRender({value:m,...g}){const H=l.getTableRenderType(n),we=l.getTableRenderProps({...n,valueType:H},{value:m,...g}),ve=l.getTableCellRenderNode(H,we,g.record,e.unref(z)),M=n.renderText?.({value:m,...g})||m,Ce=n.renderText?e.createVNode(e.Fragment,null,[n.renderText?.({value:m,...g})]):ve;let T=be(n,M,Ce);return n.customRender&&(T=n.customRender({value:m,...g,column:n,originalNode:T,originalText:M})),T},children:a(n.children||[],u||n)}))}return a(r)},me=()=>{function r(a){for(const o of a)o.children?.length?r(o.children):L(o,!0)}r(s.value)};e.watch(()=>[t.columns,t.columnResizable],()=>{const r=pe();s.value=r,V.value=r},{deep:!0,immediate:!0}),e.watch(()=>[de.value,ie.value],()=>{me()},{deep:!0});const ge=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}),ye=e.computed(()=>{if(t.tableLayout)return t.tableLayout;if(t.columns?.some(r=>r.ellipsis))return"fixed"}),$=e.computed(()=>{const r=e.unref(E),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(ge)}}),Se=e.computed(()=>[i(),t.card?null:i("wrapper"),t.adaptive?i("adaptive"):null,I.value&&y.value?.visible?Z(`sticky-${P===0?"absolute":"relative"}`):null,re.value].filter(Boolean));function be(r,a,o){if(J.noRenderAsFormItemValueList.includes(r.valueType))return o;const u=l.objectToString(a);return r.copyable||r.ellipsis?e.createVNode(_e.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 K(r){c.value?.apForm?.setFieldsValue?.(r)}function D(r=!1){const a=r?"getFieldsValueTransformed":"getFieldsValue";return c.value?.apForm?.[a]?.(!0)}function W(){return c.value?.getSorterItems()||[]}function U(r){c.value?.setSorterItems(r)}function j(){c.value?.resetSorterItems()}function he(){return e.unref(s)}return X({submit:()=>R(),reset:()=>x(),refresh:()=>A(),submitWith:()=>O(),setSearchFormValues:K,getSearchFormValues:D,setPaging:ce,getPaging:fe,getShownColumns:he,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:W,setSearchFormSorterItems:U,resetSearchFormSorterItems:j}),(r,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"tableWrapperRef",ref:q,class:e.normalizeClass(Se.value),style:e.normalizeStyle(e.unref(ee)({"scroll-bar-width":`${e.unref(P)}px`}))},[e.unref(d.isUndefined)(r.dataSource)&&r.searchForm!==!1&&_.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(xe.ApForm).SearchForm,e.mergeProps(r.searchForm||{},{ref_key:"formRef",ref:c,"custom-reset":"","submit-loading":e.unref(E).loading,onSubmit:e.unref(R),onReset:e.unref(x)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.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(F)("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(G.Divider),{key:0,type:"vertical"})):e.createCommentVNode("",!0),e.createVNode(Ee.default,{config:r.settings===!0?{}: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(G.Table),e.mergeProps({ref_key:"antdTableRef",ref:N,class:e.unref(i)("table")},$.value,{size:S.value,"table-layout":ye.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:$.value.dataSource,selectedRows:e.unref(h)})]),_:2},[e.unref(I)?{name:"bottomPaginationTop",fn:e.withCtx(()=>[e.createVNode(e.unref(Ae.default),{ref_key:"scrollBarRef",ref:y,"scroll-container":N.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=Le;