@aplus-frontend/ui
Version:
2 lines (1 loc) • 5.77 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),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"),G=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const P=require("../../utils/warning.js"),z=require("../style/editable.js"),I=require("../../config-provider/hooks/use-namespace.js"),K=require("../../hooks/useControllableValue.js"),H=require("../../config-provider/hooks/use-global-config.js"),W=require("../index.vue.js"),U=a.defineComponent({name:"EditableGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean,default:!1},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{default:()=>["ascend","descend"]},showSorterTooltip:{type:[Boolean,Object],default:!0},prefixCls:{},tableLayout:{default:"fixed"},title:{},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],default:!1},transformCellText:{},rowClassName:{},stripe:{type:Boolean},headerRowClassName:{},footerRowClassName:{},cellClassName:{},headerCellClassName:{},footerCellClassName:{},rowStyle:{},headerRowStyle:{},footerRowStyle:{},cellStyle:{},headerCellStyle:{},footerCellStyle:{},height:{},minHeight:{},maxHeight:{},mergeCells:{},mergeFooterItems:{},cellConfig:{},loading:{type:Boolean,default:void 0},loadingConfig:{},headerCellConfig:{},footerCellConfig:{},round:{type:Boolean},rowSelection:{type:Boolean,default:void 0},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},size:{default:"mini"},adaptive:{type:Boolean,default:!1},columnResizable:{type:[Boolean,Object],default:!1},rowKey:{default:"key"},footer:{},virtual:{type:[Boolean,Object],default:void 0},expandable:{},value:{},rowHighlightable:{type:[Boolean,Function]},treeConfig:{},onReady:{},columns:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(h,{expose:y,emit:C}){const w=a.useSlots(),t=h,{b}=I.useNamespace("editable-grid"),v=z.default("editable-grid"),x=C;P.useDevWarning("EditableGrid")(!1,"breaking","EditableGrid has been EOL, Please use EditableAgGrid(https://aplus.aplnk.com/aplus-ui/components/ag-grid/editable/) instead.");const m=a.ref(),{value:d,updateValue:R}=K.useControllableValue(t,x),u=a.ref(),B=H.useGlobalConfig("valueTypeMap"),c=p.ApForm.useWatch(t.name,u);a.watch(()=>c.value,e=>{R(e),t.onChange?.(e)},{deep:!0,flush:"post"}),a.watch(d,e=>{e!==a.unref(c)&&(i.isEqual(e,a.unref(c))||u.value?.setFieldValue(t.name,e))},{deep:!0});const F=G.useGetEditableColumns(t,B);function S(){u.value?.resetFields()}function _(e){return e?(i.isArray(e)?e:[e]).map(r=>i.isArray(r)?[t.name,...r]:[t.name,r]):void 0}async function N(e,o){return(await u.value?.validateFields(_(e),o))?.[t.name]}function q(e,o){const r=a.unref(d)?.length||0;if(g.isDef(t.maxLength)&&r>=t.maxLength)return;const n={...e||{}};u.value?.setFieldValue?.(t.name,n,!0,(l,s)=>{if(!l[s]){l[s]=[n];return}i.isUndefined(o)?l[s].push(n):l[s].splice(o,0,n)})}function V(e,o="suffix"){const r=a.unref(d)?.length||0,n=i.isNumber(e)?e:e.length;if(g.isDef(t.maxLength)&&r+n>t.maxLength)return;const l=i.isNumber(e)?new Array(e).fill(0).map(()=>({})):i.cloneDeep(e);u.value?.setFieldValue?.(t.name,l,!0,(s,f)=>{if(!s[f]){s[f]=[...l];return}o==="suffix"?s[f].push(...l):s[f].unshift(...l)})}function E(e){const o=new Set(i.isNumber(e)?[e]:e);u.value?.setFieldValue?.(t.name,void 0,!0,(r,n)=>{r[n]=r[n].filter((l,s)=>!o.has(s))})}function k(e){const o=new Set(i.isArray(e)?e:[e]);o.size!==0&&u.value?.setFieldValue?.(t.name,void 0,!0,(r,n)=>{r[n]=r[n].filter(l=>!o.has(l[t.rowKey]))})}function A(){return a.unref(d)}function D(e){u.value?.setFieldValue(t.name,e)}function L(e){return a.unref(d)?.[e]}function T(e,o,r=!0){u.value?.setFieldValue?.(t.name,void 0,!0,(n,l)=>{if(!(!n[l]||!n[l][e])){if(!r){const s=Object.keys(n[l][e]);for(const f of s)f!==t.rowKey&&delete n[l][e][f]}Object.assign(n[l][e],{...o})}})}function O(e){const o=e==="end"?d.value.length-1:e;m.value?.scrollToRow(o)}function j(){u.value?.setFieldValue?.(t.name,[])}return y({resetFields:S,validateFields:N,add:q,remove:E,getRowData:L,getRowsData:A,setRowData:T,addMultiple:V,scrollTo:O,clear:j,setTableData:D,removeByKey:k}),(e,o)=>(a.openBlock(),a.createBlock(a.unref(p.ApForm),{ref_key:"formRef",ref:u,"initial-values":{[t.name]:a.unref(d)},style:{height:"100%"}},{default:a.withCtx(()=>[a.createVNode(a.unref(p.ApForm).FormItem,{name:e.name,"no-style":""},{default:a.withCtx(()=>[a.createVNode(W.default,a.mergeProps(a.unref(i.omit)(t,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:m,class:[a.unref(b)(),a.unref(v)],columns:a.unref(F),"data-source":a.unref(d),"search-form":!1}),a.createSlots({_:2},[a.renderList(w,(r,n)=>({name:n,fn:a.withCtx(l=>[a.renderSlot(e.$slots,n,a.normalizeProps(a.guardReactiveProps(l||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=U;