@aplus-frontend/ui
Version:
2 lines (1 loc) • 1.14 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("vue"),F=require("../context.js"),g=require("lodash-unified"),k=r.defineComponent({name:"ApFormList",__name:"index",props:{name:{},initialValue:{},transform:{type:[Function,Object]}},setup(f){let o=1;const a=[],t=f,{model:l,updateModel:c,internalInstance:d}=F.useInjectForm();r.onMounted(()=>{d?.registerField({name:t.name,initialValue:t.initialValue,transform:t.transform})});const s=r.computed(()=>t.name?g.isArray(t.name)?t.name.reduce((e,n)=>e?.[n],r.unref(l)):l?.value[t.name]:null);function p(e=void 0){const n=r.unref(s)?[...r.unref(s),e]:[e],u=o;return a.push(u),o+=1,c?.(t.name,n),u}function v(e){let n=r.unref(s)||[];n=[...n.slice(0,e),...n.slice(e+1)],a.splice(e,1),c?.(t.name,n)}function y(){return m.value.map(e=>e.key)}const _={add:p,remove:v,getFieldKeys:y},m=r.computed(()=>(r.unref(s)||[]).map((n,u)=>{let i=a[u];return typeof i>"u"&&(a[u]=o,i=o,o+=1),{key:i,fieldName:u,name:[t.name,u].flat(),value:n}}));return(e,n)=>r.renderSlot(e.$slots,"default",{fields:m.value,actions:_})}});exports.default=k;