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