@aplus-frontend/ui
Version:
2 lines (1 loc) • 4.84 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),O=require("@aplus-frontend/antdv"),p=require("../ap-form/index.js"),i=require("lodash-unified");require("../config-provider/index.js");require("../hooks/index.js");const g=require("../utils/index.js"),j=require("./utils.js"),z=require("./hooks/use-get-columns.js"),I=require("../utils/warning.js"),K=require("../config-provider/hooks/use-namespace.js"),$=require("../hooks/useControllableValue.js"),G=require("../config-provider/hooks/use-global-config.js"),U=n.defineComponent({name:"EditableTable",__name:"index",props:{dropdownPrefixCls:{},pagination:{type:[Boolean,Object],default:!1},loading:{type:[Boolean,Object],default:void 0},size:{default:"small"},bordered:{type:Boolean,default:!1},locale:{},onResizeColumn:{},rowSelection:{},getPopupContainer:{},scroll:{},sortDirections:{default:()=>["ascend","descend"]},showSorterTooltip:{type:[Boolean,Object],default:!0},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{default:"fixed"},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:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(h,{expose:b,emit:v}){const t=h;I.useDevWarning("EditableTable")(!1,"breaking","EditableTable has been EOL, Please use EditableAgGrid(https://aplus.aplnk.com/aplus-ui/components/ag-grid/editable/) instead.");const{b:w}=K.useNamespace("editable-table"),x=n.useSlots(),y=v,m=n.ref(),{value:d,updateValue:C}=$.useControllableValue(t,y),r=n.ref(),R=G.useGlobalConfig("valueTypeMap"),c=p.ApForm.useWatch(t.name,r);n.watch(()=>c.value,e=>{C(e),t.onChange?.(e)},{deep:!0,flush:"post"}),n.watch(d,e=>{e!==n.unref(c)&&(i.isEqual(e,n.unref(c))||r.value?.setFieldValue(t.name,e))},{deep:!0});const F=z.default(t,R);function q(){r.value?.resetFields()}function B(e){return e?(i.isArray(e)?e:[e]).map(l=>i.isArray(l)?[t.name,...l]:[t.name,l]):void 0}async function T(e,u){return(await r.value?.validateFields(B(e),u))?.[t.name]}function V(e,u){const l=n.unref(d)?.length||0;if(g.isDef(t.maxLength)&&l>=t.maxLength)return;const a={...e||{}};r.value?.setFieldValue?.(t.name,a,!0,(o,s)=>{if(!o[s]){o[s]=[a];return}i.isUndefined(u)?o[s].push(a):o[s].splice(u,0,a)})}function E(e,u="suffix"){const l=n.unref(d)?.length||0,a=i.isNumber(e)?e:e.length;if(g.isDef(t.maxLength)&&l+a>t.maxLength)return;const o=i.isNumber(e)?new Array(e).fill(0).map(()=>({})):i.cloneDeep(e);r.value?.setFieldValue?.(t.name,o,!0,(s,f)=>{if(!s[f]){s[f]=[...o];return}u==="suffix"?s[f].push(...o):s[f].unshift(...o)})}function N(e){const u=new Set(i.isNumber(e)?[e]:e);r.value?.setFieldValue?.(t.name,void 0,!0,(l,a)=>{l[a]=l[a].filter((o,s)=>!u.has(s))})}function S(e){const u=new Set(i.isArray(e)?e:[e]);u.size!==0&&r.value?.setFieldValue?.(t.name,void 0,!0,(l,a)=>{l[a]=l[a].filter(o=>!u.has(o[t.rowKey]))})}function A(){return n.unref(d)}function D(e){r.value?.setFieldValue(t.name,e)}function _(e){return n.unref(d)?.[e]}function L(e,u,l=!0){r.value?.setFieldValue?.(t.name,void 0,!0,(a,o)=>{!a[o]||!a[o][e]||(a[o][e]={...l?a[o][e]:{},...u})})}function k(e,u){const l=e==="end"?d.value.length-1:e;j.scrollToRowIndex(l,m.value?.$el,u)}function P(){r.value?.setFieldValue?.(t.name,[])}return b({resetFields:q,validateFields:T,add:V,remove:N,getRowData:_,getRowsData:A,setRowData:L,addMultiple:E,scrollTo:k,clear:P,setTableData:D,removeByKey:S}),(e,u)=>(n.openBlock(),n.createBlock(n.unref(p.ApForm),{ref_key:"formRef",ref:r,"initial-values":{[t.name]:n.unref(d)}},{default:n.withCtx(()=>[n.createVNode(n.unref(p.ApForm).FormItem,{name:e.name,"no-style":""},{default:n.withCtx(()=>[n.createVNode(n.unref(O.Table),n.mergeProps(n.unref(i.omit)(t,["name","value","onUpdate:value","maxLength","onChange"]),{ref_key:"tableRef",ref:m,class:n.unref(w)(),columns:n.unref(F),"data-source":n.unref(d)}),n.createSlots({_:2},[n.renderList(n.unref(i.omit)(x,["headerCell"]),(l,a)=>({name:a,fn:n.withCtx(o=>[n.renderSlot(e.$slots,a,n.normalizeProps(n.guardReactiveProps(o||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=U;