constAPIComponent=globalThis.Component.register("API",e=>{constr=e.request&&"object"==typeofe.request?e.request:{},s=e.response&&"object"==typeofe.response?e.response:{},t=e.result&&"object"==typeofe.result?e.result:{};e.request=globalThis.NewState({url:"",method:"",headers:{},data:null,timeout:1e4,responseType:"",...r,headers:{...r.headers||{}}}),e.response=globalThis.NewState({loading:!1,ok:null,status:null,error:null,headers:{},responseType:"",result:null,...s,headers:{...s.headers||{}}}),e.result=globalThis.NewState(t),e.do=(r={})=>newPromise((s,t)=>{consto={...e.request,...r};if(!o.url)thrownewError(".url is required");o.method||(o.method=null==o.data?"GET":"POST"),o.headers={...e.request.headers,...r.headers},e.response.loading=!0,globalThis.HTTP.request(o).then(r=>{if(Object.keys(r).forEach(s=>{"result"!==s&&(e.response[s]=r[s])}),r.result&&"object"==typeofr.result&&e.result&&"object"==typeofe.result?Object.assign(e.result,r.result):e.result=r.result,e.response.loading=!1,!1===r.ok)thrownewError(r.error);if("object"==typeofr.result&&r.result.error)thrownewError(r.result.error);e.dispatchEvent(newCustomEvent("response",{detail:r,bubbles:!1})),s(r)}).catch(s=>{r.noui||globalThis.Toast?.show(s.message,{type:"danger"}),e.dispatchEvent(newCustomEvent("error",{detail:s,bubbles:!0})),t(s)})});leto=null;e.request.__watch(null,()=>{e.hasAttribute("auto")&&e.request.url&&(o||(o=Promise.resolve().then(()=>{e.do(),o=null})))})});