var K=Object.defineProperty,Q=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable;var T=(e,n,t)=>n in e?K(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,v=(e,n)=>{for(var t in n||(n={}))q.call(n,t)&&T(e,t,n[t]);if($)for(var t of $(n))J.call(n,t)&&T(e,t,n[t]);return e},w=(e,n)=>Q(e,Z(n));var N=(e,n,t)=>new Promise((c,g)=>{var F=l=>{try{p(t.next(l))}catch(o){g(o)}},r=l=>{try{p(t.throw(l))}catch(o){g(o)}},p=l=>l.done?c(l.value):Promise.resolve(l.value).then(F,r);p((t=t.apply(e,n)).next())});import{as as y,bT as W,av as X,ad as Y,aO as _,c as x,bZ as ee,ah as ae,b2 as te,au as ne}from"./index-X7Y8jykP.js";import{useRuleFormItem as le}from"./useFormItem-b_EqFlJz.js";import{e as ie,h as P,w as oe,r as h,c as k,u as f,K as B,y as se,z as re,I as ue,D as de,A,L as fe,M as ce,N as ge,f as D,Q as pe,E as me,G as ve,B as he}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const Fe=ie({name:"ApiSelect",components:{Select:X,LoadingOutlined:W},inheritAttrs:!1,props:{value:[Array,String,Number],numberToString:y.bool,api:{type:Function,default:null},params:{type:Object,default:()=>({})},pageConfig:{type:Object,default:()=>({isPage:!1})},resultField:y.string.def(""),labelField:y.string.def("label"),valueField:y.string.def("value"),immediate:y.bool.def(!0)},emits:["options-change","change"],setup(e,{emit:n}){const t=h([]),c=h(!1),g=h(!0),F=h([]),r=_(),{t:p}=Y(),l=h(!0),o=h({pageNo:1,pageSize:10,total:0}),j={isPage:!1,pageField:"pageNo",pageSizeField:"pageSize",totalField:"total",listField:"records"},[S,I]=le(e,"value","change",F);let O;const U=k(()=>{let a=f(r)||{};return a&&a["onUpdate:value"]&&(O=a["onUpdate:value"],delete a["onUpdate:value"]),a.filterOption===void 0&&(a.filterOption=(i,u)=>typeof u.label=="string"?u.label.toLowerCase().indexOf(i.toLowerCase())!=-1:!0),a}),L=k(()=>{const{labelField:a,valueField:i,numberToString:u}=e;return f(t).reduce((m,s)=>{if(s){const C=s[i];m.push(w(v({},te(s,[a,i,"options"])),{label:s[a],value:u?`${C}`:C}))}return m},[])});P(()=>e.immediate,()=>{e.immediate&&b()},{immediate:!0}),P(()=>[e.api,e.pageConfig,e.resultField,e.params],()=>{e.immediate&&b()},{deep:!0}),P(()=>e.params,()=>{!f(g)&&b()},{deep:!0}),oe(()=>{e.value&&z()});const M=(a,i)=>i.value.toLowerCase().indexOf(a.toLowerCase())>=0||i.label.indexOf(a)>=0;function b(){return N(this,null,function*(){const a=e.api;if(!(!a||!x(a))){(!e.pageConfig.isPage||o.value.pageNo==1)&&(t.value=[]);try{c.value=!0;let{isPage:i,pageField:u,pageSizeField:m,totalField:s,listField:C}=v(v({},j),e.pageConfig),G=i?w(v({},e.params),{[u]:o.value.pageNo,[m]:o.value.pageSize}):v({},e.params);const d=yield a(G);if(i)t.value=[...t.value,...d[C]],o.value.total=d[s]||0,l.value=d[s]?t.value.lengthe.state=l),options:e.getOptions,"show-search":"","filter-option":e.filterOption,onChange:e.handleChange,onDropdownVisibleChange:e.handleFetch,onPopupScroll:e.handlePopupScroll}),ue({_:2},[de(Object.keys(e.$slots),l=>({name:l,fn:A(o=>[fe(e.$slots,l,ce(ge(o||{})))])})),e.loading?{name:"suffixIcon",fn:A(()=>[D(r,{spin:""})]),key:"0"}:void 0,e.loading?{name:"notFoundContent",fn:A(()=>[pe("span",null,[D(r,{spin:"",class:"mr-1"}),me(" "+ve(e.t("component.form.apiSelectNotFound")),1)])]),key:"1"}:void 0]),1040,["value","options","filter-option","onChange","onDropdownVisibleChange","onPopupScroll"])}const Ne=ne(Fe,[["render",Se]]);export{Ne as default};