@aplus-frontend/ui
Version:
2 lines (1 loc) • 2.96 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("lodash-unified"),F=require("vue");require("../../utils/index.js");const y=require("../editable/utils.js"),x=require("../../utils/is.js");let B=0;function V(){return`_ag_grid${B++}`}const S=(l,c,n,w)=>{const h=F.shallowRef([]);function I(i,f){const g=F.unref(n)?.length||0;if(x.isDef(l.maxLength)&&g>=l.maxLength||!i&&v.isFunction(l.rowKey))return;const t={...i||{[l.rowKey]:V()}};c?.setFieldValue(w,t,!1,(r,s)=>{const e=y.getRowKey(t,void 0,l.rowKey);r[s]?r[s][e]=t:r[s]={[e]:t},n.value?v.isUndefined(f)?n.value.push(t):(h.value=n.value.map((u,o)=>o<f?null:y.getRowKey(u,o,l.rowKey)).filter(Boolean),n.value.splice(f,0,t)):n.value=[t],c?.setFieldValue(l.name,t,!0,(u,o)=>{if(!u[o]){u[o]=[t];return}v.isUndefined(f)?u[o].push(t):u[o].splice(f,0,t)})})}function R(i,f="suffix",g=!1){if(!i)return;const t=F.unref(n)?.length||0,r=v.isNumber(i)?i:i.length;if(x.isDef(l.maxLength)&&t+r>l.maxLength||v.isNumber(i)&&v.isFunction(l.rowKey))return;const s=v.isNumber(i)?new Array(i).fill(0).map(()=>({[l.rowKey]:V()})):v.cloneDeep(i),e=y.arrayToObject(s,l.rowKey);c?.setFieldValue(w,e,!1,(u,o)=>{u[o]?Object.assign(u[o],e):u[o]=e,n.value?f==="suffix"?n.value.push(...s):(h.value=n.value.map((K,d)=>y.getRowKey(K,d,l.rowKey)),n.value.unshift(...s)):n.value=[...s],c?.setFieldValue(l.name,s,!0,(K,d)=>{if(!K[d]||g){K[d]=[...s];return}f==="suffix"?K[d].push(...s):K[d].unshift(...s)})})}function j(i,f="suffix"){R(i,f,!1)}function O(i){const f=v.isArray(i)?i:[i];c?.setFieldValue(w,void 0,!1,(g,t)=>{for(const e of f){const u=y.getRowKey(e,void 0,l.rowKey);delete g[t][u]}const r=n.value.filter(e=>!f.includes(e)),s=n.value.findIndex(e=>f.includes(e));h.value=n.value.map((e,u)=>u<=s?null:y.getRowKey(e,u,l.rowKey)).filter(Boolean),r.length?n.value=r:n.value.splice(0,n.value.length),c.setFieldValue(l.name,void 0,!0,(e,u)=>{e[u]=r})})}function T(i){const f=new Set(v.isArray(i)?i:[i]);f.size!==0&&c?.setFieldValue(w,void 0,!1,(g,t)=>{for(const e of f)delete g[t][e];const r=n.value.filter((e,u)=>!f.has(y.getRowKey(e,u,l.rowKey))),s=n.value.findIndex((e,u)=>f.has(y.getRowKey(e,u,l.rowKey)));h.value=n.value.map((e,u)=>u<=s?null:y.getRowKey(e,u,l.rowKey)).filter(Boolean),r.length?n.value=r:n.value.splice(0,n.value.length),c.setFieldValue(l.name,void 0,!0,(e,u)=>{e[u]=r})})}function k(i){return F.unref(n)?.[i]}function q(){return F.unref(n)}function L(i,f,g=!0){c?.setFieldValue?.(w,void 0,!1,(t,r)=>{const s=n.value.findIndex((u,o)=>i===o);if(!~s)return;const e=y.getRowKey(n.value[s],s,l.rowKey);if(e&&!(!t[r]||!t[r][e])){if(!g){const u=Object.keys(t[r][e]);for(const o of u)o!==l.rowKey&&delete t[r][e][o]}Object.assign(t[r][e],{...f})}})}function _(){c?.setFieldValue(w,{}),c?.setFieldValue(l.name,[])}return{add:I,addMultiple:j,__addMultiple:R,remove:O,removeByKey:T,getRowData:k,getRowsData:q,setRowData:L,clear:_,refreshRowIds:h}};exports.useEditableFormItemApi=S;