UNPKG

@aplus-frontend/ui

Version:

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