UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 2.87 kB
"use strict";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(t,f){const g=h.unref(n)?.length||0;if(F.isDef(l.maxLength)&&g>=l.maxLength||!t&&v.isFunction(l.rowKey))return;const s={...t||{[l.rowKey]:R()}};c?.setFieldValue(w,s,!1,(i,o)=>{const e=y.getRowKey(s,void 0,l.rowKey);i[o]?i[o][e]=s:i[o]={[e]:s},n.value?v.isUndefined(f)?n.value.push(s):(d.value=n.value.map((u,r)=>r<f?null:y.getRowKey(u,r,l.rowKey)).filter(Boolean),n.value.splice(f,0,s)):n.value=[s],c?.setFieldValue(l.name,s,!0,(u,r)=>{if(!u[r]){u[r]=[s];return}v.isUndefined(f)?u[r].push(s):u[r].splice(f,0,s)})})}function V(t,f="suffix"){if(!t)return;const g=h.unref(n)?.length||0,s=v.isNumber(t)?t:t.length;if(F.isDef(l.maxLength)&&g+s>l.maxLength||v.isNumber(t)&&v.isFunction(l.rowKey))return;const i=v.isNumber(t)?new Array(t).fill(0).map(()=>({[l.rowKey]:R()})):v.cloneDeep(t),o=y.arrayToObject(i,l.rowKey);c?.setFieldValue(w,o,!1,(e,u)=>{e[u]?Object.assign(e[u],o):e[u]=o,n.value?f==="suffix"?n.value.push(...i):(d.value=n.value.map((r,K)=>y.getRowKey(r,K,l.rowKey)),n.value.unshift(...i)):n.value=[...i],c?.setFieldValue(l.name,i,!0,(r,K)=>{if(!r[K]){r[K]=[...i];return}f==="suffix"?r[K].push(...i):r[K].unshift(...i)})})}function I(t){const f=v.isArray(t)?t:[t];c?.setFieldValue(w,void 0,!1,(g,s)=>{for(const e of f){const u=y.getRowKey(e,void 0,l.rowKey);delete g[s][u]}const i=n.value.filter(e=>!f.includes(e)),o=n.value.findIndex(e=>f.includes(e));d.value=n.value.map((e,u)=>u<=o?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(t){const f=new Set(v.isArray(t)?t:[t]);f.size!==0&&c?.setFieldValue(w,void 0,!1,(g,s)=>{for(const e of f)delete g[s][e];const i=n.value.filter((e,u)=>!f.has(y.getRowKey(e,u,l.rowKey))),o=n.value.findIndex((e,u)=>f.has(y.getRowKey(e,u,l.rowKey)));d.value=n.value.map((e,u)=>u<=o?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(t){return h.unref(n)?.[t]}function T(){return h.unref(n)}function k(t,f,g=!0){c?.setFieldValue?.(w,void 0,!1,(s,i)=>{const o=n.value.findIndex((u,r)=>t===r);if(!~o)return;const e=y.getRowKey(n.value[o],o,l.rowKey);if(e&&!(!s[i]||!s[i][e])){if(!g){const u=Object.keys(s[i][e]);for(const r of u)r!==l.rowKey&&delete s[i][e][r]}Object.assign(s[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;