@aplus-frontend/ui
Version:
2 lines (1 loc) • 1.93 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("vue"),b=require("lodash-unified"),C=require("../../editable-table/utils.js"),R=require("../../ap-table/utils.js"),F=require("../../ap-grid/utils/editable.js"),m=require("../../utils/index.js"),M=require("../editable/utils.js");function q(t,r,n){t.__skipNextRefresh?t.__skipNextRefresh[r]=n:t.__skipNextRefresh={[r]:n}}function S(t,r,n){t.__prevEditable?t.__prevEditable[r]=n:t.__prevEditable={[r]:n}}const v=(t,r,n)=>{function N(e){const u=e.editable,a=n?[n]:b.isArray(t.name)?t.name:[t.name];return!u||e.children?.length?{_path:[...a]}:{customRender({value:d,originalNode:k,params:l,...i}){const c=b.isFunction(e.editable)?e.editable(i.text,i.record,i.rowIndex):!!e.editable;let f=k;const w=b.isArray(e.dataIndex)?e.dataIndex:[e.dataIndex],g=M.getRowKey(i.record,i.rowIndex,t.rowKey);if(c){const _=R.updateFormProps(e,R.getFieldProps(e.fieldProps,{value:d,...i})),x={};t.onFieldChange&&(x[`onUpdate:${_.valuePropName||"value"}`]=y=>t.onFieldChange?.(i.rowIndex,e.dataIndex,y));const E={name:[...a,String(g),...w],..._||{},field:{style:"width: 100%",..._?.field||{},...x,class:C.mergeClass("is-editable",_.class)}};f=F.getFinalEditableNode(e,E,i.record,I.unref(r))}e.customRender&&(f=e.customRender({value:d,...i,editable:c,originalNode:f,index:i.rowIndex,renderIndex:i.rowIndex,path:[...a,String(g)]}));const s=l.node,o=l.column.getColId(),h=s.__prevEditable?.[o];return!s.__skipNextRefresh?.[o]&&m.isDef(h)&&h!==c&&(q(s,o,!0),setTimeout(()=>{l?.api.refreshCells({rowNodes:[l.node],columns:[l.column.getColId()],force:!0}),q(s,o,!1)},0)),S(s,o,c),f},_path:[...a]}}return I.computed(()=>{const e=t.columns;if(!e)return[];function u(a){return a.map(d=>({...d,_requireMark:C.getColumnIsRequired(d),children:u(d.children||[]),...N(d)}))}return u(e)})};exports.default=v;exports.useGetEditableColumns=v;