var E=(f,w,s)=>new Promise((D,F)=>{var C=h=>{try{m(s.next(h))}catch(a){F(a)}},N=h=>{try{m(s.throw(h))}catch(a){F(a)}},m=h=>h.done?D(h.value):Promise.resolve(h.value).then(C,N);m((s=s.apply(f,w)).next())});import{q as fe,r as Z,G as le,u as r,O as ie,f as _,ah as se,P as he,ap as de,aj as T,an as J,aq as Q}from"./index-f4658ae7.js";import{buildUUID as V}from"./uuid-1d456649.js";import{ROW_KEY as g,FETCH_SETTING as ye,PAGE_SIZE as ge}from"./const-0405ffdf.js";import{m as me}from"./merge-15067256.js";import"./_baseFor-37716d03.js";import"./_createAssigner-77c8874c.js";function be(f,{getPaginationInfo:w,setPagination:s,setLoading:D,getFieldsValue:F,clearSelectedRowKeys:C,tableData:N},m){const h=fe({sortInfo:{},filterInfo:{}}),a=Z([]),j=Z({});le(()=>{N.value=r(a)}),ie(()=>r(f).dataSource,()=>{const{dataSource:e,api:t}=r(f);!t&&e&&(a.value=e)},{immediate:!0});function X(e,t,n){const{clearSelectOnPageChange:u,sortFn:o,filterFn:l}=r(f);u&&C(),s(e);const i={};if(n&&T(o)){const c=o(n);h.sortInfo=c,i.sortInfo=c}if(t&&T(l)){const c=l(t);h.filterInfo=c,i.filterInfo=c}S(i)}function q(e){!e||!Array.isArray(e)||e.forEach(t=>{t[g]||(t[g]=V()),t.children&&t.children.length&&q(t.children)})}const O=_(()=>r(f).autoCreateKey&&!r(f).rowKey),R=_(()=>{const{rowKey:e}=r(f);return r(O)?g:e}),z=_(()=>{const e=r(a);if(!e||e.length===0)return r(a);if(r(O)){const t=e[0],n=e[e.length-1];if(t&&n&&(!t[g]||!n[g])){const u=se(r(a));u.forEach(o=>{o[g]||(o[g]=V()),o.children&&o.children.length&&q(o.children)}),a.value=u}}return r(a)});function $(e,t,n){return E(this,null,function*(){return a.value[e]&&(a.value[e][t]=n),a.value[e]})}function L(e,t){const n=M(e);if(n){for(const u in n)Reflect.has(t,u)&&(n[u]=t[u]);return n}}function P(e){var u,o,l;if(!a.value||a.value.length==0)return;const t=r(R);if(!t)return;const n=Array.isArray(e)?e:[e];for(const i of n){let c=a.value.findIndex(y=>{let d;return typeof t=="function"?d=t(y):d=t,y[d]===i});c>=0&&a.value.splice(c,1),c=(u=r(f).dataSource)==null?void 0:u.findIndex(y=>{let d;return typeof t=="function"?d=t(y):d=t,y[d]===i}),typeof c!="undefined"&&c!==-1&&((o=r(f).dataSource)==null||o.splice(c,1))}s({total:(l=r(f).dataSource)==null?void 0:l.length})}function x(e,t){var n;return t=t!=null?t:(n=a.value)==null?void 0:n.length,r(a).splice(t,0,e),r(a)}function M(e){if(!a.value||a.value.length==0)return;const t=r(R);if(!t)return;const{childrenColumnName:n="children"}=r(f);return(o=>{let l;return o.some(function i(c){if(typeof t=="function"){if(t(c)===e)return l=c,!0}else if(Reflect.has(c,t)&&c[t]===e)return l=c,!0;return c[n]&&c[n].some(i)}),l})(a.value)}function S(e){return E(this,null,function*(){var d,U,k;const{api:t,searchInfo:n,defSort:u,fetchSetting:o,beforeFetch:l,afterFetch:i,useSearchForm:c,pagination:y}=r(f);if(!(!t||!T(t)))try{D(!0);const{pageField:G,sizeField:re,listField:ne,totalField:ce}=Object.assign({},ye,o);let b={};const{current:B=1,pageSize:H=ge}=r(w);J(y)&&!y||J(w)?b={}:(b[G]=e&&e.page||B,b[re]=H);const{sortInfo:ue={},filterInfo:oe}=h;let A=me(b,c?F():{},n,(d=e==null?void 0:e.searchInfo)!=null?d:{},u,ue,oe,(U=e==null?void 0:e.sortInfo)!=null?U:{},(k=e==null?void 0:e.filterInfo)!=null?k:{});l&&T(l)&&(A=(yield l(A))||A);const v=yield t(A);j.value=v;const W=Array.isArray(v);let I=W?v:Q(v,ne);const K=W?v.length:Q(v,ce);if(K){const Y=Math.ceil(K/H);if(B>Y)return s({current:Y}),yield S(e)}return i&&T(i)&&(I=(yield i(I))||I),a.value=I,s({total:K||0}),e&&e.page&&s({current:e.page||1}),m("fetch-success",{items:r(I),total:K}),I}catch(G){m("fetch-error",G),a.value=[],s({total:0})}finally{D(!1)}})}function p(e){a.value=e}function ee(){return z.value}function te(){return j.value}function ae(e){return E(this,null,function*(){return yield S(e)})}return he(()=>{de(()=>{r(f).immediate&&S()},16)}),{getDataSourceRef:z,getDataSource:ee,getRawDataSource:te,getRowKey:R,setTableData:p,getAutoCreateKey:O,fetch:S,reload:ae,updateTableData:$,updateTableDataRecord:L,deleteTableDataRecord:P,insertTableDataRecord:x,findTableDataRecord:M,handleTableChange:X}}export{be as useDataSource};