@fctc/interface-logic 4.5.5 → 4.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import {a,b,p}from'./chunk-Y65DQP66.mjs';import w from'axios';function P(s,l){return s.split(",").map(u=>u.trim()).filter(u=>!l?.some(_=>u?.startsWith(_))).join(",")}var B={init(s){let l=s?.localStorageUtils??a(),u=s?.sessionStorageUtils??b,_=s?.db,b$1=s?.config?.database,T=false,U=[],R=(e,n=null)=>{U?.forEach(t=>{e?t.reject(e):t.resolve(n);}),U=[];},d=w.create({adapter:w.defaults.adapter,baseURL:s?.baseUrl,timeout:5e4,paramsSerializer:e=>new URLSearchParams(e).toString()});d.interceptors.request.use(async e=>{let n=navigator.languages?.join(",")||navigator.language,t=e.headers["X-Use-Refresh-Token"]==="true",r=e.headers["X-Use-Action-Token"]==="true",c=e.headers["X-Action-Token"],E=P(n,s?.excludeLanguages),a=null;return r&&c?a=c:a=await(t?l.getRefreshToken:l.getAccessToken)?.(),a&&(e.headers.Authorization=`Bearer ${a}`),b$1&&(e.headers.DATABASE=b$1),e.headers["Accept-Language"]=E,e},Promise.reject);let I=()=>{if(!s.refreshTokenEndpoint)return `${g(s?.baseUrl)}/authentication/oauth2/token`;let e=String(s.refreshTokenEndpoint);if(/^https?:\/\//i.test(e))return e;let n=String(s?.baseUrl||"").replace(/\/$/,""),t=e.startsWith("/")?e:`/${e}`;return `${n}${t}`};d.interceptors.response.use(e=>N(e),async e=>{let n=async r=>{if(!r.response)return r;let{data:c}=r.response;return c&&c.code===400&&["invalid_grant"].includes(c.data?.error)&&await p$1(),c},t=e.config;if((e.response?.status===403||e.response?.status===401||e.response?.status===404)&&["TOKEN_EXPIRED","AUTHEN_FAIL",401,"ERR_2FA_006"].includes(e.response.data.code)){if(T)return new Promise(function(a,f){U.push({resolve:a,reject:f});}).then(a=>(t.headers.Authorization="Bearer "+a,t.data=p(t,a),d.request(t))).catch(async a=>{(a.response?.status===400||a.response?.status===401)&&["invalid_grant"].includes(a.response.data.error)&&await p$1();});let r=await u.getBrowserSession(),c=await l.getRefreshToken(),E=await l.getAccessToken();if(T=true,!c&&(!r||r=="unActive"))await p$1();else {let a=Object.fromEntries(Object.entries({refresh_token:c,grant_type:"refresh_token",client_id:s.config.clientId,client_secret:s.config.clientSecret}).filter(([i,o])=>!!o)),f=I();return new Promise(function(i){w.post(f,a,{headers:{"Content-Type":s.refreshTokenEndpoint?"application/x-www-form-urlencoded":"multipart/form-data",Authorization:`Bearer ${E}`}}).then(async o=>{let h=o.data;await l.setToken(h.access_token),await l.setRefreshToken(h.refresh_token),w.defaults.headers.common.Authorization="Bearer "+h.access_token,t.headers.Authorization="Bearer "+h.access_token,t.data=p(t,h.access_token),R(null,h.access_token),i(d.request(t));}).catch(async o=>{if(o&&(o?.error_code==="AUTHEN_FAIL"||o?.error_code==="TOKEN_EXPIRED"||o?.error_code==="TOKEN_INCORRECT"||o?.code==="ERR_2FA_006")&&await p$1(),o&&o.response){let{error_code:h}=o.response?.data||{},{code:O}=o;(h==="AUTHEN_FAIL"||O==="ERR_2FA_006")&&await p$1();}R(o,null);}).finally(()=>{T=false;});})}}return Promise.reject(await n(e))}),d.interceptors.response.use(e=>N(e),async e=>{let n=async r=>{if(!r.response)return r;let{data:c}=r.response;return c&&c.code===400&&["invalid_grant"].includes(c.data?.error)&&await p$1(),c},t=e.config;if((e.response?.status===403||e.response?.status===401||e.response?.status===404)&&["TOKEN_EXPIRED","AUTHEN_FAIL",401,"ERR_2FA_006"].includes(e.response.data.code)){if(T)return new Promise(function(a,f){U.push({resolve:a,reject:f});}).then(a=>(t.headers.Authorization="Bearer "+a,t.data=p(t,a),d.request(t))).catch(async a=>{(a.response?.status===400||a.response?.status===401)&&["invalid_grant"].includes(a.response.data.error)&&await p$1();});let r=await u.getBrowserSession(),c=await l.getRefreshToken(),E=await l.getAccessToken();if(T=true,!c&&(!r||r=="unActive"))await p$1();else {let a=Object.fromEntries(Object.entries({refresh_token:c,grant_type:"refresh_token",client_id:s.config.clientId,client_secret:s.config.clientSecret}).filter(([f,i])=>!!i));return new Promise(function(f){w.post(`${s?.baseUrl}${s.refreshTokenEndpoint??"/authentication/oauth2/token"}`,a,{headers:{"Content-Type":s.refreshTokenEndpoint?"application/x-www-form-urlencoded":"multipart/form-data",Authorization:`Bearer ${E}`}}).then(async i=>{let o=i.data;await l.setToken(o.access_token),await l.setRefreshToken(o.refresh_token),w.defaults.headers.common.Authorization="Bearer "+o.access_token,t.headers.Authorization="Bearer "+o.access_token,t.data=p(t,o.access_token),R(null,o.access_token),f(d.request(t));}).catch(async i=>{if(console.log("catch error: ",i),i&&(i?.error_code==="AUTHEN_FAIL"||i?.error_code==="TOKEN_EXPIRED"||i?.error_code==="TOKEN_INCORRECT"||i?.code==="ERR_2FA_006")&&await p$1(),i&&i.response){console.log("err response code: ",i),console.log("err response: ",i.response);let{error_code:o}=i.response?.data||{},{code:h}=i;(o==="AUTHEN_FAIL"||h==="ERR_2FA_006")&&await p$1();}R(i,null);}).finally(()=>{T=false;});})}}return Promise.reject(await n(e))});let N=e=>e&&e.data?e.data:e,p$1=async()=>{await l.clearToken(),typeof window<"u"&&(window.location.href="/login");};function y(e,n){return e+(n?"?db="+n:"")}let g=(e,n)=>`${e.replace(/\/$/,"")}/${n||u.getMenuFocus().service||s?.default_service}/api/v2`,A=e=>({headers:{...e.headers,...u.getXNode()?{"X-Node":u.getXNode()}:{}}}),k=e=>e;return {get:(e,n,t)=>d.get(y(g(s?.baseUrl,t)+e,_),A(n)).then(k),post:async(e,n,t,r)=>d.post(y(g(s?.baseUrl,r)+e,_),n,A(t)).then(k),post_excel:(e,n,t,r)=>d.post(y(g(s?.baseUrl,r)+e,_),n,{responseType:"arraybuffer",headers:{"Content-Type":typeof window<"u"?"application/json":"application/javascript",Accept:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",...t,...u.getXNode()?{"X-Node":u.getXNode()}:{}}}).then(k),put:(e,n,t,r)=>d.put(y(g(s?.baseUrl,r)+e,_),n,A(t)).then(k),patch:(e,n,t,r)=>d.patch(y(g(s?.baseUrl,r)+e,_),n,A(t)).then(k),delete:(e,n,t)=>d.delete(y(g(s?.baseUrl,t)+e,_),A(n)).then(k)}}};
2
+ export{B as a};
@@ -0,0 +1 @@
1
+ import {a as a$1}from'./chunk-LYD7QJQX.mjs';import {b,a,n,o}from'./chunk-Y65DQP66.mjs';import {a as a$2}from'./chunk-LCUY2BJU.mjs';import {d,f as f$1}from'./chunk-KPELPP6F.mjs';import {c}from'./chunk-CI6PEZ77.mjs';import {createContext,useCallback,useState,useContext,useMemo,useEffect}from'react';import {QueryClient,QueryClientProvider,useMutation,useQuery}from'@tanstack/react-query';import {jsx,Fragment}from'react/jsx-runtime';import {createClient}from'@supabase/supabase-js';var ie=({children:e})=>{let[t]=useState(()=>new QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:false,refetchOnMount:false,refetchOnReconnect:false,retry:false}}}));return jsx(QueryClientProvider,{client:t,children:e})};var Lo=({children:e})=>jsx(ie,{children:e});var rn={env:null,baseUrl:"",requests:null,companies:[],user:{},config:null,envFile:null,defaultCompany:{id:null,logo:"",secondary_color:"",primary_color:"",secondary_logo:""},context:{uid:null,lang:"vi_VN",tz:"Asia/Saigon"},excludeLanguages:[],isSupaMode:false},Mo=createContext(null);function Ro({children:e,localStorageUtils:t=a(),sessionStorageUtils:r=b}){let[o,n]=useState({...rn,localStorageUtils:t,sessionStorageUtils:r}),s=useCallback(a=>{let c={...o,...a,localStorageUtils:t,sessionStorageUtils:r},P=a$1.init(c);return n({...c,requests:P}),c},[o,t,r]),i=useCallback(a=>{n(c=>({...c,context:{...c.context,uid:a}}));},[]),u=useCallback(a=>{n(c=>({...c,context:{...c.context,lang:a}}));},[]),m=useCallback(a=>{n(c=>({...c,context:{...c.context,allowed_company_ids:a}}));},[]),l=useCallback(a=>{n(c=>({...c,companies:a}));},[]),C=useCallback(a=>{n(c=>({...c,defaultCompany:a}));},[]),_=useCallback(a=>{n(c=>({...c,user:a}));},[]),p=useCallback(a=>{n(c=>({...c,config:a}));},[]),y=useCallback(a=>{n(c=>({...c,envFile:a}));},[]);return jsx(Mo.Provider,{value:{env:o,setupEnv:s,setUid:i,setLang:u,setAllowCompanies:m,setCompanies:l,setDefaultCompany:C,setUserInfo:_,setConfig:p,setEnvFile:y},children:e})}function w(){let e=useContext(Mo);if(!e)throw new Error("useEnv must be used within an EnvProvider");return e}function O(){let{env:e}=w(),t=useCallback(async({idAction:l,context:C,service:_,xNode:p,searchParams:y})=>{let a={action_id:l,with_context:{...C}},c=y?`/load_action?${n(y)}`:"/load_action";return e.requests.post(c,a,{headers:{"Content-Type":"application/json","X-Node":p}},_)},[e]),r=useCallback(async({model:l,ids:C=[],context:_,method:p,service:y,xNode:a})=>{try{let c={model:l,method:p,ids:C,with_context:_};return e.requests.post("/call",c,{headers:{"Content-Type":"application/json",...a?{"X-Node":a}:{}}},y)}catch(c){throw console.error("Error when calling button action:",c),c}},[e]),o=useCallback(async({model:l,ids:C,context:_,service:p,xNode:y})=>{let a={model:l,method:"unlink",ids:C,with_context:_};return e.requests.post("/call",a,{headers:{"Content-Type":"application/json"},...y?{"X-Node":y}:{}},p)},[e]),n$1=useCallback(async({model:l,id:C,context:_,service:p,xNode:y})=>{let a={model:l,method:"copy",ids:C,with_context:_};return e.requests.post("/call",a,{headers:{"Content-Type":"application/json"},...y?{"X-Node":y}:{}},p)},[e]),s=useCallback(async({id:l})=>{let C={model:"ir.actions.report",method:"web_read",id:l,kwargs:{specification:{report_name:{}}}};return e.requests.post("/call",C,{headers:{"Content-Type":"application/json"}})},[e]),i=useCallback(async({id:l,report:C,db:_})=>{let y=n({report:C,id:l,type:"pdf",file_response:true,db:_}),a=`/report?${y}`;return e.requests.get(a,{headers:{"Content-Type":"application/json"},responseType:"arraybuffer"})},[e]),u=useCallback(async({idAction:l,context:C,service:_,xNode:p,searchParams:y})=>{let a={action_id:l,with_context:{...C}},c=y?`/run_action?${n(y)}`:"/run_action";return e.requests.post(c,a,{headers:{"Content-Type":"application/json",...p?{"X-Node":p}:{}}},_)},[e]),m=useCallback(async({kwargs:l,context:C,service:_,xNode:p})=>{let y={model:"stock.move",method:"action_generate_lot_line_vals",with_context:{...C},kwargs:l};return e.requests.post("/call",y,{headers:{"Content-Type":"application/json"},...p?{"X-Node":p}:{}},_)},[e]);return {loadAction:t,callButton:r,removeRows:o,duplicateRecord:n$1,getPrintReportName:s,print:i,runAction:u,generateSerialNumber:m}}var xo=createContext(null),No=({supabaseUrl:e,supabaseKey:t,schema:r="public",children:o})=>{let n=useMemo(()=>!e||!t?null:createClient(e,t,{db:{schema:r}}),[e,t,r]);return jsx(xo.Provider,{value:n,children:o})},qo=()=>{let e=useContext(xo);if(!e)throw new Error("useSupabase must be used within a SupabaseProvider or check your env config");return e},L=()=>useContext(xo);function A(){let{env:e}=w(),t=L(),r=useCallback(async d=>{let g=Object.fromEntries(Object.entries({username:d.email,password:d.password,grant_type:e?.config?.grantType||"",client_id:e?.config?.clientId||"",client_secret:e?.config?.clientSecret||""}).filter(([G,S])=>!!S)),T=new URLSearchParams(g).toString();return e?.requests?.post(d.path,T,{headers:{"Content-Type":"application/x-www-form-urlencoded"}},d.service)},[e]),o=useCallback(async d=>{if(!t)return {data:null,error:{message:"Supabase client is not initialized"}};let{data:g,error:T}=await t.auth.signInWithPassword({email:d.email,password:d.password});return {data:g,error:T}},[t]),n=useCallback(async d=>{let g={login:d,url:`${window.location.origin}/reset-password`};return e?.requests?.post("/reset_password",g,{headers:{"Content-Type":"application/json"}})},[e]),s=useCallback(async({email:d,with_context:g,method:T})=>{let G={method:T,kwargs:{vals:{email:d}},with_context:g};return e?.requests?.post("/call",G,{headers:{"Content-Type":"application/json"}})},[e]),i=useCallback(async(d,g)=>{let T={token:g,password:d.password,new_password:d.confirmPassword};return e?.requests?.post("/change_password",T,{headers:{"Content-Type":"application/json"}})},[e]),u=useCallback(async({method:d,password:g,with_context:T})=>{let G={method:d,kwargs:{vals:{password:g}},with_context:T};return e?.requests?.post("/call",G,{headers:{"Content-Type":"application/json"}})},[e]),m=useCallback(async(d,g)=>{let T={token:g,old_password:d.oldPassword,new_password:d.newPassword};return e?.requests?.post("/change_password_parent",T,{headers:{"Content-Type":"application/json"}})},[e]),l=useCallback(async d=>{let g={token:d};return e?.requests?.post("/check_token",g,{headers:{"Content-Type":"application/json"}})},[e]),C=useCallback(async d=>{let g={};return e?.requests?.post("/action-token/validate",g,{headers:{"Content-Type":"application/json","X-Use-Action-Token":"true","X-Action-Token":d}})},[e]),_=useCallback(async({db:d,state:g,access_token:T})=>e?.requests?.post("/token/generate",{state:g,access_token:T},{headers:{"Content-Type":"application/json"}}),[e]),p=useCallback(async d=>e?.requests?.get("/oauth/providers",{params:{db:d}}),[e]),y=useCallback(async d=>{let g=new URLSearchParams;return g.append("code",d),g.append("grant_type","authorization_code"),g.append("client_id",e?.config?.clientId||""),g.append("redirect_uri",e?.config?.redirectUri||""),e?.requests?.post("/token",g,{headers:{"Content-Type":"application/x-www-form-urlencoded"}},"id")},[e]),a=useCallback(async d=>e?.requests?.post("/logout",{},{headers:{"Content-Type":"application/json","X-Use-Refresh-Token":"true"},withCredentials:true},d),[e]),c=useCallback(async({shortName:d,service:g})=>{let T={short_name:d};return e?.requests.post("/tenant-mapping",T,{headers:{"Content-Type":"application/json"}},g)},[e]),P=useCallback(async({phone:d,name:g,service:T,xNode:G})=>{let S={phone:d,name:g};return e?.requests.post("/emenu/auth/token",S,{headers:{"Content-Type":"application/json",...G?{"X-Node":G}:{}}},T)},[e]);return {login:r,loginSupabase:o,forgotPassword:n,forgotPasswordSSO:s,resetPassword:i,resetPasswordSSO:u,updatePassword:m,isValidToken:l,isValidActionToken:C,loginSocial:_,getProviders:p,getAccessByCode:y,logout:a,getTenantMapping:c,getToken:P}}function $(){let{env:e}=w(),t=useCallback(async(o,n)=>await e.requests.get("/company",{headers:n?{...n,"Content-Type":"application/json"}:{"Content-Type":"application/json"}},o),[e]),r=useCallback(async(o,n)=>{let s={ids:[o],model:"res.company",method:"web_read",kwargs:{specification:{primary_color:{},secondary_color:{},logo:{},display_name:{},secondary_logo:{}}}};return await e.requests.post("/call",s,{headers:{"Content-Type":"application/json"}},n)},[e]);return {getCurrentCompany:t,getInfoCompany:r}}function q(){let{env:e}=w(),t=useCallback(async({formData:m,service:l,xNode:C})=>e.requests.post("/upload/file",m,{headers:{"X-Node":C}},l),[e]),r=useCallback(async({formData:m,service:l,xNode:C})=>e.requests.post("/upload/file",m,{headers:{"X-Node":C}},l),[e]),o=useCallback(async({id:m,selectedSheet:l,isHeader:C,context:_,service:p,xNode:y})=>{let a={model:"base_import.import",method:"parse_preview",ids:[m],kwargs:{options:{import_skip_records:[],import_set_empty_fields:[],fallback_values:{},name_create_enabled_fields:{},encoding:"",separator:"",quoting:'"',date_format:"",datetime_format:"",float_thousand_separator:",",float_decimal_separator:".",advanced:true,has_headers:C,keep_matches:false,limit:2e3,sheets:[],sheet:l,skip:0,tracking_disable:true}},with_context:_};return e.requests.post("/call",a,{headers:{"Content-Type":"application/json","X-Node":y}},p)},[e]),n=useCallback(async({columns:m,fields:l,idFile:C,options:_,dryrun:p,context:y,service:a,xNode:c})=>{let P={model:"base_import.import",method:"execute_import",ids:[C],kwargs:{fields:l,columns:m,options:_,dryrun:p},with_context:y};return e.requests.post("/call",P,{headers:{"Content-Type":"application/json","X-Node":c}},a)},[e]),s=useCallback(async({model:m,service:l,xNode:C,context:_})=>{let p={model:m,method:"get_import_templates",args:[],context:_};return e.requests.post("/call",p,{headers:{"Content-Type":"application/json","X-Node":C}},l)},[e]),i=useCallback(async({ids:m,model:l,isShow:C,parentField:_,fieldType:p,parentName:y,prefix:a,name:c,context:P,importCompat:d,service:g,xNode:T})=>{let G={model:l,import_compat:d,domain:[["id","in",m]],with_context:P};return C&&(G.parent_field=_,G.parent_field_type=p,G.parent_name=y,G.name=c,G.prefix=a,G.exclude=[null]),e.requests.post("/export/get_fields",G,{headers:{"Content-Type":"application/json","X-Node":T}},g)},[e]),u=useCallback(async({model:m,domain:l,ids:C,fields:_,type:p,importCompat:y,context:a,groupby:c,service:P,xNode:d})=>{let g={model:m,domain:l,ids:C,import_compat:y,fields:_,with_context:a,groupby:c??[]};return e.requests.post_excel(`/export/${p}`,g,{headers:{"Content-Type":"application/json",...d?{"X-Node":d}:{}}},P)},[e]);return {uploadFileExcel:t,uploadIdFile:r,parsePreview:o,executeImport:n,getFileExcel:s,getFieldExport:i,exportExcel:u}}function D(){let{env:e}=w(),t=useCallback(async({data:p})=>{let y={thread_id:p.thread_id,thread_model:p.thread_model,limit:100,with_context:{lang:p.lang}};return e.requests.post("/chatter/thread/messages",y,{headers:{"Content-Type":"application/json"}})},[e]),r=useCallback(async({data:p,xNode:y,service:a})=>{let c={thread_id:p?.thread_id,thread_model:p?.thread_model,limit:p?.limit,with_context:p?.with_context,request_list:p?.request_list};return e.requests.post("/mail/thread/data",c,{headers:{"Content-Type":"application/json",...y?{"X-Node":y}:{}}},a)},[e]),o=useCallback(async({data:p,xNode:y,service:a})=>{let c={thread_id:p?.thread_id,thread_model:p?.thread_model,limit:p?.limit,with_context:p?.with_context};return e.requests.post("/mail/thread/messages",c,{headers:{"Content-Type":"application/json",...y?{"X-Node":y}:{}}},a)},[e]),n=useCallback(async({data:p})=>{let y={context:{tz:"Asia/Saigon",uid:2,allowed_company_ids:[1],mail_post_autofollow:false,temporary_id:142183.01},post_data:{body:p.message,message_type:"comment",attachment_ids:p.attachment_ids,attachment_tokens:[],subtype_xmlid:p.subtype},thread_id:Number(p.thread_id),thread_model:p.thread_model};return e.requests.post("/chatter/message/post",y,{headers:{"Content-Type":"application/json"}})},[e]),s=useCallback(async({data:p})=>{let y={attachment_ids:[],attachment_tokens:[],body:"",message_id:p.message_id};return e.requests.post("/chatter/message/update_content",y,{headers:{"Content-Type":"application/json"}})},[e]),i=useCallback(async({data:p})=>e.requests.get(`/web/image?filename=${p.filename}&unique=${p.checksum}&width=1920&height=300`,{headers:{"Content-Type":"application/json"}}),[e]),u=useCallback(async({formData:p,service:y,xNode:a})=>e.requests.post("/mail/attachment/upload",p,{headers:{...a?{"X-Node":a}:{}}},y),[e]),m=useCallback(async({formData:p,service:y,xNode:a,path:c})=>e.requests.post(c,p,{headers:{...a?{"X-Node":a}:{}}},y),[e]),l=useCallback(async({data:p})=>{let y={model:p.model,method:"get_formview_action",ids:p.id?[p.id]:[],with_context:p.context};return e.requests.post("/call",y,{headers:{"Content-Type":"application/json"}})},[e]),C=useCallback(async({data:p})=>{let y={[p.name]:p.stage_id},a={model:p.model,method:"web_save",with_context:{lang:p.lang,allowed_company_ids:[1],uid:2,search_default_my_ticket:true,search_default_is_open:true},ids:[p.id],kwargs:{vals:y,specification:{}}};return e.requests.post("/call",a,{headers:{"Content-Type":"application/json"}})},[e]),_=useCallback(async({method:p,context:y,service:a,xNode:c})=>e?.requests?.post("/call",{method:p,with_context:y},{headers:{"Content-Type":"application/json",...c?{"X-Node":c}:{}}},a),[e]);return {getComment:t,sentComment:n,deleteComment:s,getImage:i,uploadImage:u,getFormView:l,changeStatus:C,uploadFile:m,getThreadMessages:o,getThreadData:r,getExternalTab:_}}function z(){let{env:e}=w(),t=useCallback(async({model:o,width_context:n})=>{let s={model:o,method:"web_read_group",kwargs:{domain:[["stage_id.fold","=",false]],fields:["color:sum"],groupby:["stage_id"]},width_context:n};return e.requests.post("/call",s,{headers:{"Content-Type":"application/json"}})},[e]),r=useCallback(async({field:o,color:n,model:s,width_context:i})=>{let u={model:s,method:"read_progress_bar",kwargs:{domain:[],group_by:"stage_id",progress_bar:{colors:n,field:o}},width_context:i};return e.requests.post("/call",u,{headers:{"Content-Type":"application/json"}})},[e]);return {getGroups:t,getProgressBar:r}}function E(){let{env:e}=w(),t=useCallback(async({domain:a,spectification:c,model:P})=>{let d={model:P,method:"web_search_read",kwargs:{specification:c,domain:a,limit:100,offset:0}};return e.requests.post("/call",d,{headers:{"Content-Type":"application/json"}})},[e]),r=useCallback(async()=>{let a={model:"res.currency",method:"web_search_read",kwargs:{specification:{icon_url:{},name:{}},domain:[["active","=",true]],limit:100,offset:0}};return e.requests.post("/call",a,{headers:{"Content-Type":"application/json"}})},[e]),o=useCallback(async()=>{let a={model:"res.currency",method:"web_search_read",kwargs:{specification:{name:{},icon_url:{},rate_ids:{fields:{company_rate:{},sell:{}}}},domain:[["active","=",true]],limit:100,offset:0}};return e.requests.post("/call",a,{headers:{"Content-Type":"application/json"}})},[e]),n$1=useCallback(async({data:a,service:c,xNode:P,searchParams:d})=>{let g=a.type=="calendar"?{fields:a?.fields}:a.fields&&a.fields.length>0&&a.groupby&&a.groupby.length>0&&a.groupby[0]?{fields:a.fields,groupby:a.groupby}:{count_limit:10001,order:a.sort,specification:a.specification},T={model:String(a.model),method:a.type=="calendar"?"search_read":g.fields&&g.groupby?"web_read_group":"web_search_read",ids:a.ids,with_context:a.context,kwargs:{domain:a.domain,limit:a.limit,offset:a.offset,...g}},G=d?`/call?${n(d)}`:"/call";return e.requests.post(G,T,{headers:{"Content-Type":"application/json",...P?{"X-Node":P}:{}}},c)},[e]),s=useCallback(async({data:a})=>{let c=a.type=="calendar"?a?.fields:a.fields&&a.fields.length>0&&a.groupby&&a.groupby.length>0&&a.groupby[0]?{fields:a.fields,groupby:a.groupby}:{count_limit:10001,order:a.sort,specification:a.specification},P={model:String(a.model),method:a.type=="calendar"?"search_read":c.fields&&c.groupby?"web_read_group":"web_search_read",ids:a.ids,with_context:a.context,kwargs:{domain:a.domain,limit:a.limit,offset:a.offset,fields:a.fields,...c}};return e.requests.post("/call",P,{headers:{"Content-Type":"application/json"}})},[e]),i=useCallback(async({model:a,ids:c=[],specification:P={},domain:d=[],offset:g,order:T,context:G={},limit:S=10})=>{let v={model:a,method:"web_search_read",ids:c,with_context:G,kwargs:{specification:P,domain:d,limit:S,offset:g,order:T}};return e.requests.post("/call",v,{headers:{"Content-Type":"application/json"}})},[e]),u=useCallback(async({ids:a=[],model:c,specification:P,context:d,service:g,xNode:T})=>{let G={model:c,method:"web_read",ids:a,with_context:d,kwargs:{specification:P}};return e.requests.post("/call",G,{headers:{"Content-Type":"application/json",...T?{"X-Node":T}:{}}},g)},[e]),m=useCallback(async({model:a,ids:c=[],data:P={},specification:d={},context:g={},path:T,service:G,xNode:S})=>{let v={model:a,method:"web_save",with_context:g,ids:c,kwargs:{vals:P,specification:d}};return e.requests.post(T??"/call",v,{headers:{"Content-Type":"application/json",...S?{"X-Node":S}:{}}},G)},[e]),l=useCallback(async({ids:a=[],model:c,service:P})=>{let d={model:c,method:"unlink",ids:a};return e.requests.post("/call",d,{headers:{"Content-Type":"application/json"}},P)},[e]),C=useCallback(async({ids:a=[],model:c,object:P,specification:d,context:g,fieldChange:T,service:G,xNode:S})=>{let v={model:c,method:"onchange",ids:a,with_context:g,args:[P||{},T||[],d]};return e.requests.post("/call",v,{headers:{"Content-Type":"application/json",...S?{"X-Node":S}:{}}},G)},[e]),_=useCallback(async({model:a,service:c,xNode:P})=>{let d={model:a,method:"get_fields_onchange"};return e.requests.post("/call",d,{headers:{"Content-Type":"application/json",...P?{"X-Node":P}:{}}},c)},[e]),p=useCallback(a=>{for(let c in a)c==="display_name"&&delete a[c],!a[c]&&a[c]!==0&&(a[c]=false);return {...a}},[]),y=useCallback((a,c,P)=>{for(let d in a)a[d]===false?c&&P?c?.models?.[P]?.[d]?.type!=="boolean"&&(a[d]=null):a[d]=null:a[d]!==false&&P!==void 0&&(c?.models?.[P]?.[d]?.type==="one2many"||c?.models?.[P]?.[d]?.type==="many2many")&&(a[d]=(a[d]??=[])?.map(g=>{let T=c?.models?.[P]?.[d]?.relation;if(T!==void 0){if(c?.models?.[T])return g?.length>=3?y(g[2],c,T):y(g,c,T);if(g?.length>=3)return g[2];if(g!==0)return g}})?.filter(Boolean));return {...a}},[]);return {getListMyBankAccount:t,getCurrency:r,getConversionRate:o,getAll:n$1,getListCalendar:s,getList:i,getDetail:u,save:m,deleteApi:l,onChange:C,getListFieldsOnchange:_,parseORMOdoo:p,toDataJS:y}}function W(){let{env:e}=w(),t=useCallback(async(n,s,i)=>e?.requests?.get(s||"/userinfo",{headers:i?{...i,"Content-Type":"application/x-www-form-urlencoded"}:{"Content-Type":"application/x-www-form-urlencoded"}},n),[e]),r=useCallback(async({context:n,id:s})=>{let i={model:"res.users",method:"web_read",ids:[s],with_context:n,kwargs:{specification:{display_name:{},image_1920:{},name:{},login:{},email:{},password:{},visible_group_id:{fields:{id:{},display_name:{}}},company_id:{fields:{id:{},display_name:{}}}}}};return e.requests.post("/call",i,{headers:{"Content-Type":"application/json"}})},[e]),o=useCallback(async({id:n,values:s,service:i})=>{let u={model:"res.users",domain:[["id","=",n]],values:s};return e?.requests.post(c?.CREATE_UPDATE_PATH,u,{headers:{"Content-Type":"application/json"}},i)},[e]);return {getProfile:t,getUser:r,switchUserLocale:o}}function h(){let{env:e}=w(),t=useCallback(async({model:S,views:v,context:b={},options:F={},aid:R,service:V,xNode:Y,searchParams:se})=>{let ho={load_filters:true,toolbar:true,action_id:R},Qr={model:S,method:"get_fields_view_v2",kwargs:{views:v,options:{...F,...ho}},with_context:b},Kr=se?`/call?${n(se)}`:"/call";return e?.requests?.post(Kr,Qr,{headers:{"Content-Type":"application/json",...Y?{"X-Node":Y}:{}}},V)},[e]),r=useCallback(async(S,v,b,F)=>{let R={model:"ir.ui.menu",method:"web_search_read",ids:[],with_context:S,kwargs:{specification:v,domain:b??["&",["is_display","=",true],"&",["active","=",true],["parent_id","=",false]]}};return e?.requests?.post("/call",R,{headers:{"Content-Type":"application/json"}},F)},[e]),o=useCallback(async(S,v)=>{let b={model:"ir.actions.act_window",method:"web_read",ids:[S],with_context:v,kwargs:{specification:{id:{},name:{},res_model:{},views:{},view_mode:{},mobile_view_mode:{},domain:{},context:{},groups_id:{},search_view_id:{}}}};return e?.requests?.post("/call",b,{headers:{"Content-Type":"application/json"}})},[e]),n$1=useCallback(async({model:S,ids:v,context:b,offset:F,service:R,xNode:V})=>{let Y={model:S,with_context:b,ids:v,field:"sequence",...F>0?{offset:F}:{}};return e?.requests.post("/web/dataset/resequence",Y,{headers:{"Content-Type":"application/json",...V?{"X-Node":V}:{}}},R)},[e]),s=useCallback(async({data:S,service:v,xNode:b})=>{let F={model:S.model,ids:[],method:"get_data_select",with_context:S.context,kwargs:{count_limit:10001,domain:S.domain?S.domain:[],offset:0,order:"",specification:S?.specification??{id:{},name:{},display_name:{}}}};return e?.requests.post("/call",F,{headers:{"Content-Type":"application/json",...b?{"X-Node":b}:{}}},v)},[e]),i=useCallback(async()=>e.requests.post("/load_message_failures",{},{headers:{"Content-Type":"application/json"}}),[e]),u=useCallback(async()=>e?.requests?.get("",{headers:{"Content-Type":"application/json"}}),[e]),m=useCallback(async({redirect_uri:S,state:v,client_id:b,scopes:F})=>{let R={redirect_uri:S,state:v,client_id:b,scopes:F};return e?.requests.post("/grant-access",R,{headers:{"Content-Type":"application/json"},withCredentials:true},"id")},[e]),l=useCallback(async({method:S,token:v})=>{let b={method:S,with_context:{token:v}};return e?.requests.post("/call",b,{headers:{"Content-Type":"application/json"}},"id")},[e]),C=useCallback(async({method:S,token:v})=>{let b={method:S,with_context:{token:v}};return e?.requests.post("/call",b,{headers:{"Content-Type":"application/json"}},"id")},[e]),_=useCallback(async({method:S,model:v,kwargs:b,token:F})=>{let R={method:S,model:v,kwargs:b,with_context:{token:F}};return e?.requests.post("/call",R,{headers:{"Content-Type":"application/json"}},"id")},[e]),p=useCallback(async({redirect_uri:S,state:v,client_id:b,response_type:F,path:R,scope:V})=>{let se=`${new URLSearchParams({response_type:F,client_id:b,redirect_uri:S,state:v}).toString()}&scope=${encodeURIComponent(V)}`,ho=`${R}?${se}`;return e?.requests.get(ho,{headers:{"Content-Type":"application/json"},withCredentials:true},"id")},[e]),y=useCallback(({method:S,with_context:v,code:b,device:F,location:R})=>{let V={method:S,kwargs:{vals:{code:b,device:F,location:R}},with_context:v};return e?.requests.post("/call",V,{headers:{"Content-Type":"application/json"},withCredentials:true},"id")},[e]),a=useCallback(({method:S,with_context:v})=>{let b={method:S,with_context:v};return e?.requests.post("/call",b,{headers:{"Content-Type":"application/json"}},"id")},[e]),c=useCallback(({method:S,action_token:v,code:b})=>{let F={method:S,kwargs:{vals:{code:b}},with_context:{action_token:v}};return e?.requests.post("/call",F,{headers:{"Content-Type":"application/json"}})},[e]),P=useCallback(async({service:S,xNode:v,body:b})=>e?.requests?.post("/mail/data",b,{headers:{"Content-Type":"application/json",...v?{"X-Node":v}:{}}},S),[e]),d=useCallback(async({service:S,xNode:v,ids:b,kwargs:F})=>{let R={model:"res.country",ids:b,method:"get_data_select",kwargs:F};return e?.requests?.post("/call",R,{headers:{"Content-Type":"application/json",...v?{"X-Node":v}:{}}},S)},[e]),g=useCallback(async({service:S,xNode:v,ids:b,kwargs:F})=>{let R={model:"res.country.state",ids:b,method:"get_data_select",kwargs:F};return e?.requests?.post("/call",R,{headers:{"Content-Type":"application/json",...v?{"X-Node":v}:{}}},S)},[e]),T=useCallback(async({service:S,xNode:v,kwargs:b})=>{let F={model:"res.country.ward",method:"get_data_select",kwargs:b};return e?.requests?.post("/call",F,{headers:{"Content-Type":"application/json",...v?{"X-Node":v}:{}}},S)},[e]),G=useCallback(async({service:S,xNode:v,kwargs:b,withContext:F})=>{let R={model:"res.partner.title",method:"get_data_select",kwargs:b,with_context:F};return e?.requests?.post("/call",R,{headers:{"Content-Type":"application/json",...v?{"X-Node":v}:{}}},S)},[e]);return {getView:t,getMenu:r,getActionDetail:o,getResequence:n$1,getSelectionItem:s,loadMessages:i,getVersion:u,grantAccess:m,removeTotpSetUp:l,requestSetupTotp:C,settingsWebRead2fa:_,signInSSO:p,verify2FA:y,get2FAMethods:a,verifyTotp:c,getNotifications:P,getCountry:d,getCity:g,getWard:T,getPartnerTitle:G}}function J(){let{env:e}=w(),t=useCallback(async({service:o,xNode:n,body:s})=>e.requests.post("/read_group",s,{headers:{"Content-Type":"application/json","X-Node":n}},o),[e]),r=useCallback(async({service:o,xNode:n,body:s,path:i,method:u="POST"})=>{let m={"Content-Type":"application/json","X-Node":n};return u==="GET"?e.requests.get(i,{headers:m},o):e.requests.post(i,s,{headers:m},o)},[e]);return {readGroup:t,getDataChart:r}}var Io=e=>({getASession:useCallback(async({model:r,args:o,domain:n,service:s,xNode:i})=>{let u={model:r,method:"web_search_read",args:o,kwargs:{domain:[n],specification:{name:{},user_id:{},config_id:{},start_at:{},stop_at:{},sequence_number:{},login_number:{},payment_method_ids:{},state:{},update_stock_at_closing:{},cash_register_balance_start:{}}}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...i?{"X-Node":i}:{}}},s)},[e])});var Ho=e=>({addEntity:useCallback(({model:r,values:o,xNode:n,service:s,isCreateEndpoint:i=false,isSupa:u=false,supaCallback:m})=>{if(u&&m)return m(o);let l={model:r,values:o};return e?.requests.post(i?"/create":"/call",l,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var Vo=e=>({changeOrderPreparationState:useCallback(({orderId:r,stageId:o,preparationDisplayId:n,xNode:s,service:i})=>{let u={model:"pos_preparation_display.order",method:"change_order_stage",ids:r,kwargs:{stage_id:o,preparation_display_id:n}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var Bo=e=>({checkPayment:useCallback(({model:r,ids:o,withContext:n,xNode:s,service:i})=>{let u={model:r,method:"check",ids:o,with_context:n};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var Xo=e=>({createEInvoice:useCallback(async({service:r,xNode:o,kwargs:n,ids:s,withContext:i})=>{let u={model:"pos.order",method:"create_e_invoice",kwargs:n,ids:s,with_context:i};return e?.requests?.post("/call",u,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},r)},[e])});var Wo=e=>({createEntity:useCallback(({model:r,args:o,xNode:n,service:s,isSupa:i=false,supaCallback:u})=>{if(i&&u)return u(o);let m={model:r,method:"create",args:o};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var Qo=e=>({createPosConfig:useCallback(({model:r,name:o,modulePosRestaurant:n,xNode:s,service:i})=>{let u={model:r,values:{name:o,module_pos_restaurant:n}};return e?.requests.post("/create",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var Ko=e=>({createSession:useCallback(({model:r,configId:o,xNode:n,service:s})=>{let i={model:r,method:"create",args:[{config_id:o}]};return e?.requests.post("/call",i,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var $o=e=>({deleteEntity:useCallback(({model:r,ids:o,xNode:n,service:s,method:i,isSupa:u=false,supaCallback:m})=>{if(u&&m)return m(o);let l={model:r,ids:o,method:i};return e?.requests.post("/call",l,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var zo=e=>({generatePaymentQRInfo:useCallback(({orderId:r,amount:o,posSessionId:n,xNode:s,service:i})=>{let u={order_id:r,amount:o,pos_session_id:n};return e?.requests.post("/payment/qr",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var Jo=e=>({getCurrentUser:useCallback(async({service:r,xNode:o,oauthUid:n,extraHeaders:s})=>e?.requests?.get(`/public/user/info/${n}`,{headers:s?{...s,"Content-Type":"application/json",...o?{"X-Node":o}:{}}:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},r),[e])});var Yo=e=>({getList:useCallback(async({model:r,domain:o$1,xNode:n,service:s,specification:i,offset:u,limit:m})=>{let l={model:r,method:"web_search_read",kwargs:o({domain:o$1,offset:u,limit:m,specification:i})};return e?.requests.post("/call",l,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var Zo=e=>({getOrderLine:useCallback(({model:r,ids:o,specification:n,xNode:s,service:i})=>{let u={model:r,method:"web_read",ids:o,kwargs:{specification:n}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var er=e=>({getPinCode:useCallback(({serialNumber:r,xNode:o,service:n})=>{let s={serial_number:r};return e?.requests.post("/pos_device/get_pin_code",s,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},n)},[e])});var tr=e=>({getPOS:useCallback(({model:r,args:o,domain:n,xNode:s,service:i})=>{let u={model:r,method:"web_search_read",args:o,kwargs:{domain:n,specification:{cash_control:{},current_session_id:{fields:{display_name:{}}},current_session_state:{},pos_session_state:{},pos_session_duration:{},currency_id:{fields:{display_name:{}}},name:{},pos_session_username:{},last_session_closing_date:{},last_session_closing_cash:{},number_of_rescue_session:{},current_user_id:{fields:{display_name:{}}},customer_display_type:{},module_pos_restaurant:{}}}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var or=e=>({getPreparationDisplayData:useCallback(({ids:r,xNode:o,service:n,withContext:s})=>{let i={model:"pos_preparation_display.display",method:"get_preparation_display_data",ids:r,with_context:s};return e?.requests.post("/call",i,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},n)},[e])});var rr=e=>({getProductImage:useCallback(({model:r,fields:o,limit:n$1,offset:s,domain:i,xNode:u,service:m,searchParams:l})=>{let C={model:r,fields:o,limit:n$1,offset:s,domain:i},_=l?`/search_read?${n(l)}`:"/search_read";return e?.requests.post(_,C,{headers:{"Content-Type":"application/json",...u?{"X-Node":u}:{}}},m)},[e])});var nr=e=>({handleCloseSession:useCallback(({model:r,ids:o,xNode:n,service:s,method:i})=>{let u={model:r,ids:o,method:i};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var sr=e=>({handleClosingDetailSession:useCallback(({model:r,ids:o,method:n,xNode:s,service:i,kwargs:u})=>{let m={model:r,ids:o,method:n,kwargs:u};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var ir=e=>({handleClosingSession:useCallback(({model:r,method:o,ids:n,kwargs:s,xNode:i,service:u})=>{let m={model:r,method:o,ids:n,kwargs:s};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...i?{"X-Node":i}:{}}},u)},[e])});var Po=(e,t=[])=>({modelName:e,data:t,fields:{},relations:{}}),ur=e=>{let t=L(),r=useCallback(async({model:n$1,ids:s,xNode:i,service:u,withContext:m,modelsToLoad:l=[],searchParams:C})=>{let _={model:n$1,method:"load_data",ids:s,with_context:m||{uid:37,lang:"vi_VN",tz:"Asia/Saigon"},kwargs:{models_to_load:l}},p=C?`/call?${n(C)}`:"/call";return e?.requests.post(p,_,{headers:{"Content-Type":"application/json",...i?{"X-Node":i}:{}}},u)},[e]),o=useCallback(async()=>{if(!t)return {};try{let n=Object.values(d);return (await Promise.all(n.map(async i=>{let u=f$1[i];if(!u)return Po(i);let{data:m,error:l}=await t.from(u).select("*");return l?(console.error(`Error loading ${i}:`,l),Po(i)):Po(i,m||[])}))).reduce((i,{modelName:u,...m})=>(i[u]=m,i),{})}catch(n){return console.error("Error loading data from Supabase:",n),{}}},[t]);return {loadDataPosSession:r,loadDataPosSessionSupabase:o}};var cr=e=>({manageOnChange:useCallback(({model:r,ids:o,args:n,xNode:s,service:i})=>{let u={model:r,method:"onchange",ids:o,args:n};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},i)},[e])});var pr=e=>({manageSession:useCallback(({model:r,method:o,ids:n,args:s,kwargs:i,xNode:u,service:m})=>{let l={model:r,method:o,ids:n,args:s,kwargs:i};return e?.requests.post("/call",l,{headers:{"Content-Type":"application/json",...u?{"X-Node":u}:{}}},m)},[e])});var mr=e=>({processOrder:useCallback(({orderId:r,xNode:o,service:n})=>{let s={model:"pos_preparation_display.order",method:"process_order",kwargs:{order_id:r}};return e?.requests.post("/call",s,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},n)},[e])});var dr=e=>({savePinCode:useCallback(({serialNumber:r,pinCode:o,xNode:n,service:s})=>{let i={serial_number:r,pin_code:o};return e?.requests.put("/pos_device/pin",i,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var lr=e=>({searchJournal:useCallback(({model:r,method:o,args:n,kwargs:s,xNode:i,service:u})=>{let m={model:r,method:o,args:n,kwargs:s};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...i?{"X-Node":i}:{}}},u)},[e])});var fr=e=>({updateClosedSession:useCallback(({model:r,domain:o,values:n,service:s,xNode:i})=>{let u={model:r,domain:o,values:n};return e?.requests.post("/create_update",u,{headers:{"Content-Type":"application/json",...i?{"X-Node":i}:{}}},s)},[e])});var yr=e=>({updateEntity:useCallback(({model:r,domain:o,values:n,isCreateEndpoint:s=true,xNode:i,service:u,isSupa:m=false,supaCallback:l})=>{if(m&&l)return l(n);let C={model:r,domain:o,values:n};return e?.requests.post(s?"/create_update":"/call",C,{headers:{"Content-Type":"application/json",...i?{"X-Node":i}:{}}},u)},[e])});var gr=e=>({updateOrderStatus:useCallback(({orderId:r,state:o,xNode:n,service:s})=>{let i={order_id:r,state:o};return e?.requests.put("/pos-order/status",i,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var Sr=e=>({completeCurrentStage:useCallback(({ids:r,withContext:o,xNode:n,service:s,requestStageId:i})=>{let u={model:"pos_preparation_display.orderline",method:"complete_current_stage",ids:r,kwargs:{request_stage_id:i},with_context:o||{lang:"vi_VN",tz:"Asia/Ho_Chi_Minh",uid:2}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},s)},[e])});var Z=()=>{let e=L();return {addFloorSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),null;try{let{data:o,error:n}=await e.from("restaurant_floors").insert({name:r.name,sequence:r.sequence??1,pos_config_ids:r.pos_config_ids??[],table_ids:r.table_ids??[]}).select("id, name").single();return n?(console.error("Error adding floor:",n),null):[[o.id,o.name]]}catch(o){return console.error("Error adding floor:",o),null}},[e])}};var ee=()=>{let e=L();return {addTableSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),null;try{let{data:o,error:n}=await e.from("restaurant_tables").insert({floor_id:r.floor_id,table_number:r.table_number??0,seats:r.seats??1}).select("id, table_number").single();return n?(console.error("Error adding table:",n),null):[[o.id,o.table_number]]}catch(o){return console.error("Error adding table:",o),null}},[e])}};var te=()=>{let e=L();return {updateFloorSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{id:o,...n}=r,{error:s}=await e.from("restaurant_floors").update(n).eq("id",o);return s?(console.error("Error updating floor:",s),!1):!0}catch(o){return console.error("Error updating floor:",o),false}},[e])}};var oe=()=>{let e=L();return {updateTableSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{id:o,...n}=r,{error:s}=await e.from("restaurant_tables").update(n).eq("id",o);return s?(console.error("Error updating table:",s),!1):!0}catch(o){return console.error("Error updating table:",o),false}},[e])}};var re=()=>{let e=L();return {deleteFloorSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{error:o}=await e.from("restaurant_floors").delete().eq("id",r.id);return o?(console.error("Error deleting floor:",o),!1):!0}catch(o){return console.error("Error deleting floor:",o),false}},[e])}};var ne=()=>{let e=L();return {deleteTableSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{error:o}=await e.from("restaurant_tables").delete().eq("id",r.id);return o?(console.error("Error deleting table:",o),!1):!0}catch(o){return console.error("Error deleting table:",o),false}},[e])}};var Xn=[Ho,Io,Vo,Bo,Xo,Wo,Qo,Ko,$o,zo,Jo,Yo,Zo,er,tr,or,rr,nr,sr,ir,ur,cr,pr,mr,dr,lr,fr,yr,gr,Sr,Z,ee,te,oe,re,ne],f=()=>{let{env:e}=w(),t={};for(let r of Xn){let o=r(e);Object.assign(t,o);}return t};var Qn=()=>{let{forgotPassword:e}=A();return useMutation({mutationFn:t=>e(t)})},ae=Qn;var $n=()=>{let{forgotPasswordSSO:e}=A();return useMutation({mutationFn:({email:t,with_context:r,method:o})=>e({email:t,with_context:r,method:o})})},ue=$n;var Jn=()=>{let{getProviders:e}=A();return useMutation({mutationFn:t=>e(t?.db)})},ce=Jn;var Zn=()=>{let{isValidToken:e}=A();return useMutation({mutationFn:t=>e(t)})},pe=Zn;var ts=()=>{let{login:e}=A();return useMutation({mutationFn:t=>e(t)})},me=ts;var rs=()=>{let{loginSocial:e}=A();return useMutation({mutationFn:t=>e(t)})},de=rs;var ss=()=>{let{loginSupabase:e}=A();return useMutation({mutationFn:t=>e({email:t.email,password:t.password})})},le=ss;var as=()=>{let{resetPassword:e}=A();return useMutation({mutationFn:t=>e(t.data,t.token)})},fe=as;var cs=()=>{let{resetPasswordSSO:e}=A();return useMutation({mutationFn:({method:t,password:r,with_context:o})=>e({method:t,password:r,with_context:o})})},ye=cs;var ms=()=>{let{updatePassword:e}=A();return useMutation({mutationFn:t=>e(t.data,t.token)})},ge=ms;var ls=()=>{let{logout:e}=A();return useMutation({mutationFn:t=>e(t)})},Se=ls;var ys=()=>{let{getAccessByCode:e}=A();return useMutation({mutationFn:({code:t})=>e(t)})},Ce=ys;var Ss=()=>{let{isValidActionToken:e}=A();return useMutation({mutationFn:({actionToken:t})=>e(t)})},ve=Ss;var vs=()=>{let{getTenantMapping:e}=A();return useMutation({mutationFn:({shortName:t,service:r})=>e({shortName:t,service:r})})},he=vs;var xs=()=>{let{getToken:e}=A();return useMutation({mutationFn:({phone:t,name:r,service:o,xNode:n})=>e({phone:t,name:r,service:o,xNode:n})})},xe=xs;var Ps=()=>{let{getInfoCompany:e}=$();return useMutation({mutationFn:({service:t,id:r})=>e(r,t)})},_e=Ps;var bs=()=>{let{getCurrentCompany:e}=$();return useMutation({mutationFn:({service:t,extraHeaders:r})=>e(t,r)})},Pe=bs;var ws=(e=[])=>{let{getList:t}=E(),r={id:{},name:{}},o={model:"res.company",ids:e,specification:r};return useQuery({queryKey:["list_company",e],queryFn:()=>t(o),refetchOnWindowFocus:false})},Te=ws;var Gs=()=>{let{exportExcel:e}=q();return useMutation({mutationFn:({model:t,domain:r,ids:o,fields:n,type:s,importCompat:i,context:u,groupby:m,service:l,xNode:C})=>e({model:t,domain:r,ids:o,fields:n,type:s,importCompat:i,context:u,groupby:m,service:l,xNode:C})})},be=Gs;var Ds=()=>{let{getFieldExport:e}=q();return useMutation({mutationFn:({ids:t,model:r,isShow:o,parentField:n,fieldType:s,parentName:i,prefix:u,name:m,context:l,importCompat:C,service:_,xNode:p})=>e({ids:t,model:r,isShow:o,parentField:n,fieldType:s,parentName:i,prefix:u,name:m,context:l,importCompat:C,service:_,xNode:p})})},Ae=Ds;var Ms=({model:e,service:t,xNode:r,context:o})=>{let{getFileExcel:n}=q();return useQuery({queryKey:["excel",e],queryFn:()=>n({model:e,service:t,xNode:r,context:o}).then(s=>s||[]),refetchOnWindowFocus:false})},we=Ms;var Os=()=>{let{parsePreview:e}=q();return useMutation({mutationFn:({id:t,selectedSheet:r,isHeader:o,context:n,service:s,xNode:i})=>e({id:t,selectedSheet:r,isHeader:o,context:n,service:s,xNode:i})})},Ee=Os;var qs=()=>{let{uploadFileExcel:e}=q();return useMutation({mutationFn:({formData:t,service:r,xNode:o})=>e({formData:t,service:r,xNode:o})})},Ge=qs;var ks=()=>{let{uploadIdFile:e}=q();return useMutation({mutationFn:({formData:t,service:r,xNode:o})=>e({formData:t,service:r,xNode:o})})},Fe=ks;var Is=()=>{let{executeImport:e}=q();return useMutation({mutationFn:({fields:t,columns:r,idFile:o,options:n,dryrun:s,context:i,service:u,xNode:m})=>e({fields:t,columns:r,idFile:o,options:n,dryrun:s,context:i,service:u,xNode:m})})},De=Is;var Vs=()=>{let{changeStatus:e}=D();return useMutation({mutationFn:({data:t})=>e({data:t})})},Le=Vs;var Xs=()=>{let{deleteComment:e}=D();return useMutation({mutationFn:({data:t})=>e({data:t})})},Me=Xs;var Qs=({data:e,queryKey:t})=>{let{getComment:r}=D();return useQuery({queryKey:t,queryFn:()=>r({data:e}).then(o=>{if(o)return o}),enabled:!!e.thread_id&&!isNaN(e.thread_id),refetchOnWindowFocus:false})},Re=Qs;var $s=({data:e,queryKey:t,enabled:r})=>{let{getFormView:o}=D();return useQuery({queryKey:t,queryFn:()=>o({data:e}).then(n=>{if(n)return n}),enabled:r,refetchOnWindowFocus:false})},Oe=$s;var Js=()=>{let{sentComment:e}=D();return useMutation({mutationFn:({data:t})=>e({data:t})})},Ne=Js;var Zs=()=>{let{uploadImage:e}=D();return useMutation({mutationFn:({formData:t,service:r,xNode:o})=>e({formData:t,service:r,xNode:o})})},qe=Zs;var ti=()=>{let{uploadFile:e}=D();return useMutation({mutationFn:({formData:t,service:r,xNode:o,path:n})=>e({formData:t,service:r,xNode:o,path:n})})},Ue=ti;var ri=({data:e,queryKey:t,enabled:r,service:o,xNode:n})=>{let{getThreadData:s}=D();return useQuery({queryKey:t,queryFn:()=>s({data:e,service:o,xNode:n}).then(i=>{if(i)return i}),enabled:r,refetchOnWindowFocus:false})},ke=ri;var si=({data:e,queryKey:t,enabled:r,service:o,xNode:n})=>{let{getThreadMessages:s}=D();return useQuery({queryKey:t,queryFn:()=>s({data:e,service:o,xNode:n}).then(i=>{if(i)return i}),enabled:r,refetchOnWindowFocus:false})},je=si;var ai=({data:e,queryKey:t,enabled:r,service:o,xNode:n})=>{let{getExternalTab:s}=D();return useQuery({queryKey:t,queryFn:()=>s({method:e?.method,context:e?.context,service:o,xNode:n}).then(i=>{if(i)return i}),enabled:r,refetchOnWindowFocus:false})},Ie=ai;var ci=()=>{let{deleteApi:e}=E();return useMutation({mutationFn:({ids:t,model:r,service:o})=>e({ids:t,model:r,service:o})})},He=ci;var mi=({data:e,queryKey:t,viewResponse:r})=>{let{getAll:o}=E();return useQuery({queryKey:t,queryFn:()=>o({data:e}).then(n=>{if(n)return n}),enabled:!!e.specification&&!!e.model&&!!e.domain&&!!r,refetchOnWindowFocus:false})},Ve=mi;var li=()=>{let{getConversionRate:e}=E();return useQuery({queryKey:["currency-rate"],queryFn:()=>e().then(t=>{if(t)return t}),enabled:true})},Be=li;var yi=()=>{let{getCurrency:e}=E();return useQuery({queryKey:["currency"],queryFn:()=>e().then(t=>{if(t)return t}),enabled:true})},Xe=yi;var Si=()=>{let{getDetail:e}=E();return useMutation({mutationFn:({model:t,ids:r,specification:o,context:n,service:s,xNode:i})=>e({model:t,ids:r,specification:o,context:n,service:s,xNode:i})})},We=Si;var vi=({model:e,service:t,xNode:r,enabled:o})=>{let{getListFieldsOnchange:n}=E();return useQuery({queryKey:[`field-onchange-${e}`,e],queryFn:()=>n({model:e,service:t,xNode:r}).then(s=>{if(s)return s}),refetchOnWindowFocus:false,enabled:o,staleTime:1/0})},Qe=vi;var xi=({domain:e,spectification:t,model:r})=>{let{getListMyBankAccount:o}=E();return useQuery({queryKey:["bank-account",r,e],queryFn:()=>o({domain:e,spectification:t,model:r}).then(n=>{if(n)return n}),enabled:true})},Ke=xi;var Pi=()=>({initModel:useCallback(t=>{switch(t?.name){default:return new a$2(t)}},[])}),$e=Pi;var Ti=()=>{let{toDataJS:e,parseORMOdoo:t}=E();return {toDataJS:e,parseORM:t}},ze=Ti;var Ai=()=>{let{onChange:e}=E();return useMutation({mutationFn:({ids:t,model:r,specification:o,context:n,object:s,fieldChange:i,service:u,xNode:m})=>e({ids:t,model:r,specification:o,context:n,object:s,fieldChange:i,service:u,xNode:m})})},Je=Ai;var Ei=()=>{let{save:e}=E();return useMutation({mutationFn:({ids:t,model:r,data:o,specification:n,context:s,path:i,service:u,xNode:m})=>e({ids:t,model:r,data:o,specification:n,context:s,path:i,service:u,xNode:m})})},Ye=Ei;var Fi=(e,t,r)=>{let{getProfile:o}=W();return useMutation({mutationFn:()=>o(e,t,r)})},Ze=Fi;var Li=()=>{let{getUser:e}=W();return useMutation({mutationFn:({id:t,context:r})=>e({id:t,context:r})})},et=Li;var Ri=()=>{let{switchUserLocale:e}=W();return useMutation({mutationFn:({data:t,service:r})=>e({id:t.data.id,values:t.data.values,service:r})})},tt=Ri;var Ni=()=>{let{callButton:e}=O();return useMutation({mutationFn:({model:t,ids:r,context:o,method:n,service:s,xNode:i})=>e({model:t,ids:r,context:o,method:n,service:s,xNode:i}),onSuccess:t=>t})},ot=Ni;var Ui=()=>{let{duplicateRecord:e}=O();return useMutation({mutationFn:({id:t,model:r,context:o,service:n,xNode:s})=>e({id:t,model:r,context:o,service:n,xNode:s})})},rt=Ui;var ji=({aid:e,context:t,enabled:r,id:o,model:n,queryKey:s})=>{let {getActionDetail:i}=h();return useQuery({queryKey:s,queryFn:async()=>{if(e){let m=await i(e,t);if(m&&m.length>0)return m[0]}},enabled:r,refetchOnWindowFocus:false,staleTime:1/0})},nt=ji;var Hi=(e,t,r)=>{let{getListCalendar:o}=E();return useQuery({queryKey:t,queryFn:()=>o({data:e}).then(n=>n||[]),enabled:r,refetchOnWindowFocus:false,staleTime:0})},st=Hi;var Bi=({model:e,width_context:t})=>{let{getGroups:r}=z();return useQuery({queryKey:[e,t],queryFn:()=>r({model:e,width_context:t}).then(o=>o||[]),refetchOnWindowFocus:false})},it=Bi;var Wi=(e,t,r,o,n,s)=>{let{getAll:i}=E();return useQuery({queryKey:t,queryFn:()=>i({data:e,service:o,xNode:n,searchParams:s}).then(u=>u||[]),enabled:r,refetchOnWindowFocus:false,staleTime:0})},at=Wi;var Ki=(e,t,r,o,n)=>{let{getMenu:s}=h();return useQuery({queryKey:["menus",e],queryFn:()=>s(e,t,o,n).then(i=>i&&i?.records&&i?.records?.length>0?i?.records:[]),refetchOnWindowFocus:false,staleTime:1/0,enabled:r})},ut=Ki;var zi=()=>{let{getPrintReportName:e}=O();return useMutation({mutationFn:({id:t})=>e({id:t})})},ct=zi;var Yi=({field:e,color:t,model:r,width_context:o})=>{let{getProgressBar:n}=z();return useQuery({queryKey:[],queryFn:()=>n({field:e,color:t,model:r,width_context:o}).then(s=>s||[]),refetchOnWindowFocus:false})},pt=Yi;var ea=({data:e,queryKey:t,enabled:r,service:o,xNode:n})=>{let{getSelectionItem:s}=h();return useQuery({queryKey:t,queryFn:()=>s({data:e,service:o,xNode:n}),enabled:r,refetchOnWindowFocus:false})},mt=ea;var oa=({viewParams:e,enabled:t})=>{let{getView:r}=h();return useQuery({queryKey:["get_view_by_action",e?.model,e?.context,e?.aid,...e?.views??[]],queryFn:()=>r(e),enabled:!!t,refetchOnWindowFocus:false,staleTime:1/0})},dt=oa;var na=()=>{let{loadAction:e}=O();return useMutation({mutationFn:({idAction:t,context:r,service:o,xNode:n,searchParams:s})=>e({idAction:t,context:r,service:o,xNode:n,searchParams:s})})},lt=na;var ia=()=>{let{loadMessages:e}=h();return useQuery({queryKey:["load-message-failure"],queryFn:()=>e(),refetchOnWindowFocus:false})},ft=ia;var ua=()=>{let{print:e}=O();return useMutation({mutationFn:({id:t,report:r,db:o})=>e({id:t,report:r,db:o})})},yt=ua;var pa=()=>{let{removeRows:e}=O();return useMutation({mutationFn:({model:t,ids:r,context:o,service:n,xNode:s})=>e({model:t,ids:r,context:o,service:n,xNode:s})})},gt=pa;var da=()=>{let{getResequence:e}=h();return useMutation({mutationFn:({model:t,resIds:r,context:o,offset:n,xNode:s,service:i})=>e({model:t,ids:r,context:o,offset:n,xNode:s,service:i})})},St=da;var fa=()=>{let{runAction:e}=O();return useMutation({mutationFn:({idAction:t,context:r,service:o,xNode:n,searchParams:s})=>e({idAction:t,context:r,service:o,xNode:n,searchParams:s})})},Ct=fa;var ga=()=>{let{signInSSO:e}=h();return useMutation({mutationFn:({redirect_uri:t,state:r,client_id:o,response_type:n,path:s,scope:i})=>e({redirect_uri:t,state:r,client_id:o,response_type:n,path:s,scope:i})})},vt=ga;var Ca=()=>{let{verify2FA:e}=h();return useMutation({mutationFn:({method:t,with_context:r,code:o,device:n,location:s})=>e({method:t,with_context:r,code:o,device:n,location:s})})},ht=Ca;var ha=()=>{let{get2FAMethods:e}=h();return useMutation({mutationFn:({method:t,with_context:r})=>e({method:t,with_context:r})})},xt=ha;var _a=()=>{let{grantAccess:e}=h();return useMutation({mutationFn:({redirect_uri:t,state:r,client_id:o,scopes:n})=>e({redirect_uri:t,state:r,client_id:o,scopes:n})})},_t=_a;var Ta=()=>{let{removeTotpSetUp:e}=h();return useMutation({mutationFn:({method:t,token:r})=>e({method:t,token:r})})},Pt=Ta;var Aa=()=>{let{requestSetupTotp:e}=h();return useMutation({mutationFn:({method:t,token:r})=>e({method:t,token:r})})},Tt=Aa;var Ea=()=>{let{settingsWebRead2fa:e}=h();return useMutation({mutationFn:({method:t,token:r,kwargs:o,model:n})=>e({method:t,model:n,kwargs:o,token:r})})},bt=Ea;var Fa=()=>{let{verifyTotp:e}=h();return useMutation({mutationFn:({method:t,action_token:r,code:o})=>e({method:t,action_token:r,code:o})})},At=Fa;var La=()=>{let{generateSerialNumber:e}=O();return useMutation({mutationFn:({kwargs:t,context:r,service:o,xNode:n})=>e({kwargs:t,context:r,service:o,xNode:n})})},wt=La;var Ra=({service:e,xNode:t,body:r,queryKey:o=[],enabled:n})=>{let{getNotifications:s}=h();return useQuery({queryKey:o,queryFn:()=>s({body:r,service:e,xNode:t}).then(i=>i),enabled:n,refetchOnWindowFocus:false})},Et=Ra;var Na=()=>{let{getVersion:e}=h();return useMutation({mutationFn:()=>e()})},Gt=Na;var Ua=()=>{let{getWard:e}=h();return useMutation({mutationFn:({service:t,xNode:r,kwargs:o})=>e({service:t,xNode:r,kwargs:o})})},Ft=Ua;var ja=()=>{let{getCity:e}=h();return useMutation({mutationFn:({service:t,xNode:r,ids:o,kwargs:n})=>e({service:t,xNode:r,ids:o,kwargs:n})})},Dt=ja;var Ha=()=>{let{getCountry:e}=h();return useMutation({mutationFn:({service:t,xNode:r,ids:o,kwargs:n})=>e({service:t,xNode:r,ids:o,kwargs:n})})},Lt=Ha;var Ba=()=>{let{getPartnerTitle:e}=h();return useMutation({mutationFn:({service:t,xNode:r,kwargs:o,withContext:n})=>e({service:t,xNode:r,kwargs:o,withContext:n})})},Mt=Ba;var Wa=(e,t,r,o)=>{let{readGroup:n}=J();return useQuery({queryKey:[r],queryFn:()=>n({service:e,xNode:t,body:r}),refetchOnWindowFocus:false,enabled:o})},Rt=Wa;var Ka=(e,t,r,o,n,s,i)=>{let{getDataChart:u}=J();return useQuery({queryKey:[i],queryFn:()=>u({service:e,xNode:t,body:r,path:n,method:s}),refetchOnWindowFocus:false,enabled:o})},Ot=Ka;var za=()=>{let{addEntity:e}=f();return useMutation({mutationFn:e})},Nt=za;var Ya=()=>{let e=f();return useMutation({mutationFn:e.getASession})},qt=Ya;var eu=()=>{let e=f();return useMutation({mutationFn:e.changeOrderPreparationState})},Ut=eu;var ou=()=>{let e=f();return useMutation({mutationFn:e.checkPayment})},kt=ou;var nu=()=>{let e=f();return useMutation({mutationFn:e.createEInvoice})},jt=nu;var iu=()=>{let e=f();return useMutation({mutationFn:e.createEntity})},It=iu;var uu=()=>{let e=f();return useMutation({mutationFn:e.createPosConfig})},Ht=uu;var pu=()=>{let e=f();return useMutation({mutationFn:e.createSession})},Vt=pu;var du=()=>{let e=f();return useMutation({mutationFn:e.deleteEntity})},Bt=du;var fu=()=>{let e=f();return useMutation({mutationFn:e.generatePaymentQRInfo})},Xt=fu;var gu=()=>{let e=f();return useMutation({mutationFn:e.getCurrentUser})},Wt=gu;var Cu=()=>{let e=f();return useMutation({mutationFn:e.getList})},Qt=Cu;var hu=()=>{let e=f();return useMutation({mutationFn:e.getOrderLine})},Kt=hu;var _u=()=>{let e=f();return useMutation({mutationFn:e.getPinCode})},$t=_u;var Tu=()=>{let e=f();return useMutation({mutationFn:e.getPOS})},zt=Tu;var Au=()=>{let e=f();return useMutation({mutationFn:e.getPreparationDisplayData})},Jt=Au;var Eu=()=>{let e=f();return useMutation({mutationFn:e.getProductImage})},Yt=Eu;var Fu=()=>{let e=f();return useMutation({mutationFn:e.handleCloseSession})},Zt=Fu;var Lu=()=>{let e=f();return useMutation({mutationFn:e.handleClosingDetailSession})},eo=Lu;var Ru=()=>{let e=f();return useMutation({mutationFn:e.handleClosingSession})},to=Ru;var Nu=()=>{let e=f(),{env:t}=w();return useMutation({mutationFn:t.isSupaMode?e.loadDataPosSessionSupabase:e.loadDataPosSession})},oo=Nu;var Uu=()=>{let e=f();return useMutation({mutationFn:e.manageOnChange})},ro=Uu;var ju=()=>{let e=f();return useMutation({mutationFn:e.manageSession})},no=ju;var Hu=()=>{let e=f();return useMutation({mutationFn:e.processOrder})},so=Hu;var Bu=()=>{let e=f();return useMutation({mutationFn:e.savePinCode})},io=Bu;var Wu=()=>{let e=f();return useMutation({mutationFn:e.searchJournal})},ao=Wu;var Ku=()=>{let e=f();return useMutation({mutationFn:e.updateClosedSession})},uo=Ku;var zu=()=>{let e=f();return useMutation({mutationFn:e.updateEntity})},co=zu;var Yu=()=>{let e=f();return useMutation({mutationFn:e.updateOrderStatus})},po=Yu;var ec=()=>{let e=f();return useMutation({mutationFn:e.completeCurrentStage})},mo=ec;var To=()=>{let e=L();return {createOrderSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),null;try{let{data:o,error:n}=await e.from("orders").insert({name:r.pos_reference,date_order:new Date().toISOString(),session_id:r.session_id,pos_reference:r.pos_reference,amount_tax:r.amount_tax,amount_total:r.amount_total,amount_paid:r.amount_paid,amount_return:r.amount_return,table_id:r.table_id,partner_id:r.partner_id}).select("id, pos_reference").single();return n?(console.error("Error creating order:",n),null):[[o.id,o.pos_reference]]}catch(o){return console.error("Error creating order:",o),null}},[e])}};var rc=()=>{let{addFloorSupabase:e}=Z();return useMutation({mutationFn:e})},lo=rc;var sc=()=>{let{addTableSupabase:e}=ee();return useMutation({mutationFn:e})},fo=sc;var ac=()=>{let{updateFloorSupabase:e}=te();return useMutation({mutationFn:e})},yo=ac;var cc=()=>{let{updateTableSupabase:e}=oe();return useMutation({mutationFn:e})},go=cc;var mc=()=>{let{deleteFloorSupabase:e}=re();return useMutation({mutationFn:e})},So=mc;var lc=()=>{let{deleteTableSupabase:e}=ne();return useMutation({mutationFn:e})},Co=lc;var yc=()=>{let{createOrderSupabase:e}=To();return useMutation({mutationFn:e})},vo=yc;var vr=createContext(null),hr=({children:e})=>{let t={useForgotPassword:ae,useForgotPasswordSSO:ue,useGetProvider:ce,useIsValidToken:pe,useLoginCredential:me,useLoginSocial:de,useLoginSupa:le,useResetPassword:fe,useResetPasswordSSO:ye,useUpdatePassword:ge,useLogout:Se,useGetAccessByCode:Ce,useValidateActionToken:ve,useGetTenantMapping:he,useGetToken:xe};return jsx(vr.Provider,{value:t,children:e})},xr=()=>{let e=useContext(vr);if(!e)throw new Error("useAuthService must be used within an AuthServiceProvider");return e};var _r=createContext(null),Pr=({children:e})=>{let t={useGetCompanyInfo:_e,useGetCurrentCompany:Pe,useGetListCompany:Te};return jsx(_r.Provider,{value:t,children:e})},Tr=()=>{let e=useContext(_r);if(!e)throw new Error("useCompanyService must be used within a CompanyServiceProvider");return e};var br=createContext(null),Ar=({children:e})=>{let t={useExecuteImport:De,useExportExcel:be,useGetFieldExport:Ae,useGetFileExcel:we,useParsePreview:Ee,useUploadFileExcel:Ge,useUploadIdFile:Fe};return jsx(br.Provider,{value:t,children:e})},wr=()=>{let e=useContext(br);if(!e)throw new Error("useExcelService must be used within an ExcelServiceProvider");return e};var Er=createContext(null),Gr=({children:e})=>{let t={useChangeStatus:Le,useDeleteComment:Me,useGetComment:Re,useGetExternalTabs:Ie,useGetFormView:Oe,useGetThreadData:ke,useGetThreadMessages:je,useSendComment:Ne,useUploadFile:Ue,useUploadImage:qe};return jsx(Er.Provider,{value:t,children:e})},Fr=()=>{let e=useContext(Er);if(!e)throw new Error("useFormService must be used within a FormServiceProvider");return e};var Dr=createContext(null),Lr=({children:e})=>{let t={useDelete:He,useGetAll:Ve,useGetConversionRate:Be,useGetCurrency:Xe,useGetDetail:We,useGetFieldOnChange:Qe,useGetListMyBankAccount:Ke,useModel:$e,useOdooDataTransform:ze,useOnChangeForm:Je,useSave:Ye};return jsx(Dr.Provider,{value:t,children:e})},Mr=()=>{let e=useContext(Dr);if(!e)throw new Error("useModelService must be used within a ModelServiceProvider");return e};var Rr=createContext(null),Or=({children:e})=>{let t={useGetProfile:Ze,useGetUser:et,useSwitchLocale:tt};return jsx(Rr.Provider,{value:t,children:e})},Nr=()=>{let e=useContext(Rr);if(!e)throw new Error("useUserService must be used within a UserServiceProvider");return e};var qr=createContext(null),Ur=({children:e})=>{let t={useButton:ot,useDuplicateRecord:rt,useGet2FAMethods:xt,useGetActionDetail:nt,useGetCalendar:st,useGetGroups:it,useGetListData:at,useGetMenu:ut,useGetPrintReport:ct,useGetProGressBar:pt,useGetResequence:St,useGetSelection:mt,useGetView:dt,useLoadAction:lt,useLoadMessage:ft,usePrint:yt,useRemoveRow:gt,useRunAction:Ct,useSignInSSO:vt,useVerify2FA:ht,useGrantAccess:_t,useRemoveTotpSetup:Pt,useRequestSetupTotp:Tt,useSettingsWebRead2fa:bt,useVerifyTotp:At,useGenSerialNumber:wt,useGetNotifications:Et,useGetVersion:Gt,useGetWard:Ft,useGetCity:Dt,useGetCountry:Lt,useGetPartnerTitle:Mt};return jsx(qr.Provider,{value:t,children:e})},kr=()=>{let e=useContext(qr);if(!e)throw new Error("useViewService must be used within a ViewServiceProvider");return e};var jr=createContext(null),Ir=({children:e})=>{let t={useGetDataChart:Ot,useReadGroup:Rt};return jsx(jr.Provider,{value:t,children:e})},Hr=()=>{let e=useContext(jr);if(!e)throw new Error("useChartService must be used within a ChartServiceProvider");return e};var Vr=createContext(null),Br=({children:e})=>{let t={useAddEntity:Nt,useAddFloor:lo,useAddTable:fo,useChangeOrderPreparationState:Ut,useCheckPayment:kt,useCompleteCurrentStage:mo,useCreateEInvoice:jt,useCreateEntity:It,useCreateOrder:vo,useCreatePosConfig:Ht,useCreateSession:Vt,useDeleteEntity:Bt,useDeleteFloor:So,useDeleteTable:Co,useGeneratePaymentQrInfo:Xt,useGetASession:qt,useGetCurrentUser:Wt,useGetList:Qt,useGetOrderLine:Kt,useGetPinCode:$t,useGetPos:zt,useGetPreparationDisplayData:Jt,useGetProductImage:Yt,useHandleCloseSession:Zt,useHandleClosingDetailSession:eo,useHandleClosingSession:to,useLoadDataPosSession:oo,useManageOnChange:ro,useManageSession:no,useProcessOrder:so,useSavePinCode:io,useSearchJournal:ao,useUpdateClosedSession:uo,useUpdateEntity:co,useUpdateFloor:yo,useUpdateOrderStatus:po,useUpdateTable:go};return jsx(Vr.Provider,{value:t,children:e})},Xr=()=>{let e=useContext(Vr);if(!e)throw new Error("usePosService must be used within a PosServiceProvider");return e};var Wr=({children:e})=>{let{env:t}=w();function r(){let o=t?.defaultCompany;if(!o)return;o.display_name&&(document.title=o.display_name),document.documentElement.style.setProperty("--primary",o?.primary_color),document.documentElement.style.setProperty("--secondary",o?.secondary_color);let n=document.querySelector('meta[name="description"]');if(n)n.setAttribute("content",o.display_name);else {let i=document.createElement("meta");i.name="description",i.content=o.display_name,document.head.appendChild(i);}let s=(i,u)=>{let m=document.querySelector(`link[rel="${i}"]`);m?m.href=u:(m=document.createElement("link"),m.rel=i,m.href=u,document.head.appendChild(m));};if(o.logo){s("icon",o.logo),s("apple-touch-icon",o.logo);let i=document.querySelector('link[href="favicon.ico"]');i&&i.remove();}}return useEffect(()=>{r();},[t?.defaultCompany]),jsx(Fragment,{children:e})};export{Te as $,Tt as $a,A,Je as Aa,Jt as Ab,$ as B,Ye as Ba,Yt as Bb,q as C,Ze as Ca,Zt as Cb,D,et as Da,eo as Db,z as E,tt as Ea,to as Eb,E as F,ot as Fa,oo as Fb,W as G,rt as Ga,ro as Gb,h as H,nt as Ha,no as Hb,J as I,st as Ia,so as Ib,f as J,it as Ja,io as Jb,ae as K,at as Ka,ao as Kb,ue as L,ut as La,uo as Lb,ce as M,ct as Ma,co as Mb,pe as N,pt as Na,po as Nb,me as O,mt as Oa,mo as Ob,de as P,dt as Pa,lo as Pb,le as Q,lt as Qa,fo as Qb,fe as R,ft as Ra,yo as Rb,ye as S,yt as Sa,go as Sb,ge as T,gt as Ta,So as Tb,Se as U,St as Ua,Co as Ub,Ce as V,Ct as Va,vo as Vb,ve as W,vt as Wa,he as X,ht as Xa,xe as Y,xt as Ya,_e as Z,_t as Za,Pe as _,Pt as _a,ie as a,be as aa,bt as ab,Lo as b,Ae as ba,At as bb,Ro as c,we as ca,wt as cb,w as d,Ee as da,Et as db,hr as e,Ge as ea,Gt as eb,xr as f,Fe as fa,Ft as fb,Pr as g,De as ga,Dt as gb,Tr as h,Le as ha,Lt as hb,Ar as i,Me as ia,Mt as ib,wr as j,Re as ja,Rt as jb,Gr as k,Oe as ka,Ot as kb,Fr as l,Ne as la,Nt as lb,Lr as m,qe as ma,qt as mb,Mr as n,Ue as na,Ut as nb,Or as o,ke as oa,kt as ob,Nr as p,je as pa,jt as pb,Ur as q,Ie as qa,It as qb,kr as r,He as ra,Ht as rb,Ir as s,Ve as sa,Vt as sb,Hr as t,Be as ta,Bt as tb,Br as u,Xe as ua,Xt as ub,Xr as v,We as va,Wt as vb,Wr as w,Qe as wa,Qt as wb,No as x,Ke as xa,Kt as xb,qo as y,$e as ya,$t as yb,O as z,ze as za,zt as zb};
package/dist/configs.mjs CHANGED
@@ -1 +1 @@
1
- export{a as axiosClient}from'./chunk-TKG5NQ2J.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-CI6PEZ77.mjs';
1
+ export{a as axiosClient}from'./chunk-LYD7QJQX.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-CI6PEZ77.mjs';
@@ -1 +1 @@
1
- import {a as a$1}from'./chunk-TKG5NQ2J.mjs';import {a,b}from'./chunk-Y65DQP66.mjs';import'./chunk-CI6PEZ77.mjs';var r=class{listeners={};on(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(e);}emit(t,e){this.listeners[t]&&this.listeners[t].forEach(u=>u(e));}},i=class{state;emitter;localStorageUtil;sessionStorageUtil;constructor(t=a(),e=b){this.state={baseUrl:"",requests:null,companies:[],user:{},config:null,envFile:null,defaultCompany:{id:null,logo:"",secondary_color:"",primary_color:""},context:{uid:null,allowed_company_ids:[],lang:"vi_VN",tz:"Asia/Saigon"},localStorageUtils:t,sessionStorageUtils:e},this.emitter=new r,this.localStorageUtil=t,this.sessionStorageUtil=e;}getEnv(){return {...this.state}}onUpdate(t){this.emitter.on("update",t);}setupEnv(t){return this.state={...this.state,...t,localStorageUtils:this.localStorageUtil,sessionStorageUtils:this.sessionStorageUtil},this.state.requests=a$1.init(this.state),this.emitter.emit("update",this.getEnv()),this.getEnv()}setUid(t){this.state={...this.state,context:{...this.state.context,uid:t}},this.emitter.emit("update",this.getEnv());}setLang(t){this.state={...this.state,context:{...this.state.context,lang:t}},this.emitter.emit("update",this.getEnv());}setAllowCompanies(t){this.state={...this.state,context:{...this.state.context,allowed_company_ids:t}},this.emitter.emit("update",this.getEnv());}setCompanies(t){this.state={...this.state,companies:t},this.emitter.emit("update",this.getEnv());}setDefaultCompany(t){this.state={...this.state,defaultCompany:t},this.emitter.emit("update",this.getEnv());}setUserInfo(t){this.state={...this.state,user:t},this.emitter.emit("update",this.getEnv());}setConfig(t){this.state={...this.state,config:t},this.emitter.emit("update",this.getEnv());}setEnvFile(t){this.state={...this.state,envFile:t},this.emitter.emit("update",this.getEnv());}},s=null;function l({localStorageUtils:n=a(),sessionStorageUtils:t=b}){return s||(s=new i(n,t)),s}function h(){return s||(s=l({})),s?.getEnv()}export{i as EnvStore,h as getEnv,l as initEnv};
1
+ import {a as a$1}from'./chunk-LYD7QJQX.mjs';import {a,b}from'./chunk-Y65DQP66.mjs';import'./chunk-CI6PEZ77.mjs';var r=class{listeners={};on(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(e);}emit(t,e){this.listeners[t]&&this.listeners[t].forEach(u=>u(e));}},i=class{state;emitter;localStorageUtil;sessionStorageUtil;constructor(t=a(),e=b){this.state={baseUrl:"",requests:null,companies:[],user:{},config:null,envFile:null,defaultCompany:{id:null,logo:"",secondary_color:"",primary_color:""},context:{uid:null,allowed_company_ids:[],lang:"vi_VN",tz:"Asia/Saigon"},localStorageUtils:t,sessionStorageUtils:e},this.emitter=new r,this.localStorageUtil=t,this.sessionStorageUtil=e;}getEnv(){return {...this.state}}onUpdate(t){this.emitter.on("update",t);}setupEnv(t){return this.state={...this.state,...t,localStorageUtils:this.localStorageUtil,sessionStorageUtils:this.sessionStorageUtil},this.state.requests=a$1.init(this.state),this.emitter.emit("update",this.getEnv()),this.getEnv()}setUid(t){this.state={...this.state,context:{...this.state.context,uid:t}},this.emitter.emit("update",this.getEnv());}setLang(t){this.state={...this.state,context:{...this.state.context,lang:t}},this.emitter.emit("update",this.getEnv());}setAllowCompanies(t){this.state={...this.state,context:{...this.state.context,allowed_company_ids:t}},this.emitter.emit("update",this.getEnv());}setCompanies(t){this.state={...this.state,companies:t},this.emitter.emit("update",this.getEnv());}setDefaultCompany(t){this.state={...this.state,defaultCompany:t},this.emitter.emit("update",this.getEnv());}setUserInfo(t){this.state={...this.state,user:t},this.emitter.emit("update",this.getEnv());}setConfig(t){this.state={...this.state,config:t},this.emitter.emit("update",this.getEnv());}setEnvFile(t){this.state={...this.state,envFile:t},this.emitter.emit("update",this.getEnv());}},s=null;function l({localStorageUtils:n=a(),sessionStorageUtils:t=b}){return s||(s=new i(n,t)),s}function h(){return s||(s=l({})),s?.getEnv()}export{i as EnvStore,h as getEnv,l as initEnv};
package/dist/hooks.mjs CHANGED
@@ -1 +1 @@
1
- export{Xa as useAddEntity,zb as useAddFloor,Ab as useAddTable,pa as useButton,Za as useChangeOrderPreparationState,T as useChangeStatus,_a as useCheckPayment,yb as useCompleteCurrentStage,$a as useCreateEInvoice,ab as useCreateEntity,Fb as useCreateOrder,bb as useCreatePosConfig,cb as useCreateSession,ba as useDelete,U as useDeleteComment,db as useDeleteEntity,Db as useDeleteFloor,Eb as useDeleteTable,qa as useDuplicateRecord,S as useExecuteImport,M as useExportExcel,u as useForgotPassword,v as useForgotPasswordSSO,Oa as useGenSerialNumber,eb as useGeneratePaymentQrInfo,Ia as useGet2FAMethods,Ya as useGetASession,F as useGetAccessByCode,ra as useGetActionDetail,ca as useGetAll,sa as useGetCalendar,Sa as useGetCity,V as useGetComment,J as useGetCompanyInfo,da as useGetConversionRate,Ta as useGetCountry,ea as useGetCurrency,K as useGetCurrentCompany,fb as useGetCurrentUser,Wa as useGetDataChart,fa as useGetDetail,aa as useGetExternalTabs,N as useGetFieldExport,ga as useGetFieldOnChange,O as useGetFileExcel,W as useGetFormView,ta as useGetGroups,gb as useGetList,L as useGetListCompany,ua as useGetListData,ha as useGetListMyBankAccount,va as useGetMenu,Pa as useGetNotifications,hb as useGetOrderLine,Ua as useGetPartnerTitle,ib as useGetPinCode,jb as useGetPos,kb as useGetPreparationDisplayData,wa as useGetPrintReport,xa as useGetProGressBar,lb as useGetProductImage,ma as useGetProfile,w as useGetProvider,Ea as useGetResequence,ya as useGetSelection,H as useGetTenantMapping,_ as useGetThreadData,$ as useGetThreadMessages,I as useGetToken,na as useGetUser,Qa as useGetVersion,za as useGetView,Ra as useGetWard,Ja as useGrantAccess,mb as useHandleCloseSession,nb as useHandleClosingDetailSession,ob as useHandleClosingSession,x as useIsValidToken,Aa as useLoadAction,pb as useLoadDataPosSession,Ba as useLoadMessage,y as useLoginCredential,z as useLoginSocial,A as useLoginSupa,E as useLogout,qb as useManageOnChange,rb as useManageSession,ia as useModel,ja as useOdooDataTransform,ka as useOnChangeForm,P as useParsePreview,Ca as usePrint,sb as useProcessOrder,Va as useReadGroup,Da as useRemoveRow,Ka as useRemoveTotpSetup,La as useRequestSetupTotp,B as useResetPassword,C as useResetPasswordSSO,Fa as useRunAction,la as useSave,tb as useSavePinCode,ub as useSearchJournal,X as useSendComment,Ma as useSettingsWebRead2fa,Ga as useSignInSSO,oa as useSwitchLocale,vb as useUpdateClosedSession,wb as useUpdateEntity,Bb as useUpdateFloor,xb as useUpdateOrderStatus,D as useUpdatePassword,Cb as useUpdateTable,Z as useUploadFile,Q as useUploadFileExcel,R as useUploadIdFile,Y as useUploadImage,G as useValidateActionToken,Ha as useVerify2FA,Na as useVerifyTotp}from'./chunk-BWSA2O6Z.mjs';import'./chunk-TKG5NQ2J.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-LCUY2BJU.mjs';import'./chunk-KPELPP6F.mjs';import'./chunk-CI6PEZ77.mjs';
1
+ export{lb as useAddEntity,Pb as useAddFloor,Qb as useAddTable,Fa as useButton,nb as useChangeOrderPreparationState,ha as useChangeStatus,ob as useCheckPayment,Ob as useCompleteCurrentStage,pb as useCreateEInvoice,qb as useCreateEntity,Vb as useCreateOrder,rb as useCreatePosConfig,sb as useCreateSession,ra as useDelete,ia as useDeleteComment,tb as useDeleteEntity,Tb as useDeleteFloor,Ub as useDeleteTable,Ga as useDuplicateRecord,ga as useExecuteImport,aa as useExportExcel,K as useForgotPassword,L as useForgotPasswordSSO,cb as useGenSerialNumber,ub as useGeneratePaymentQrInfo,Ya as useGet2FAMethods,mb as useGetASession,V as useGetAccessByCode,Ha as useGetActionDetail,sa as useGetAll,Ia as useGetCalendar,gb as useGetCity,ja as useGetComment,Z as useGetCompanyInfo,ta as useGetConversionRate,hb as useGetCountry,ua as useGetCurrency,_ as useGetCurrentCompany,vb as useGetCurrentUser,kb as useGetDataChart,va as useGetDetail,qa as useGetExternalTabs,ba as useGetFieldExport,wa as useGetFieldOnChange,ca as useGetFileExcel,ka as useGetFormView,Ja as useGetGroups,wb as useGetList,$ as useGetListCompany,Ka as useGetListData,xa as useGetListMyBankAccount,La as useGetMenu,db as useGetNotifications,xb as useGetOrderLine,ib as useGetPartnerTitle,yb as useGetPinCode,zb as useGetPos,Ab as useGetPreparationDisplayData,Ma as useGetPrintReport,Na as useGetProGressBar,Bb as useGetProductImage,Ca as useGetProfile,M as useGetProvider,Ua as useGetResequence,Oa as useGetSelection,X as useGetTenantMapping,oa as useGetThreadData,pa as useGetThreadMessages,Y as useGetToken,Da as useGetUser,eb as useGetVersion,Pa as useGetView,fb as useGetWard,Za as useGrantAccess,Cb as useHandleCloseSession,Db as useHandleClosingDetailSession,Eb as useHandleClosingSession,N as useIsValidToken,Qa as useLoadAction,Fb as useLoadDataPosSession,Ra as useLoadMessage,O as useLoginCredential,P as useLoginSocial,Q as useLoginSupa,U as useLogout,Gb as useManageOnChange,Hb as useManageSession,ya as useModel,za as useOdooDataTransform,Aa as useOnChangeForm,da as useParsePreview,Sa as usePrint,Ib as useProcessOrder,jb as useReadGroup,Ta as useRemoveRow,_a as useRemoveTotpSetup,$a as useRequestSetupTotp,R as useResetPassword,S as useResetPasswordSSO,Va as useRunAction,Ba as useSave,Jb as useSavePinCode,Kb as useSearchJournal,la as useSendComment,ab as useSettingsWebRead2fa,Wa as useSignInSSO,Ea as useSwitchLocale,Lb as useUpdateClosedSession,Mb as useUpdateEntity,Rb as useUpdateFloor,Nb as useUpdateOrderStatus,T as useUpdatePassword,Sb as useUpdateTable,na as useUploadFile,ea as useUploadFileExcel,fa as useUploadIdFile,ma as useUploadImage,W as useValidateActionToken,Xa as useVerify2FA,bb as useVerifyTotp}from'./chunk-Y5QM3Y5X.mjs';import'./chunk-LYD7QJQX.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-LCUY2BJU.mjs';import'./chunk-KPELPP6F.mjs';import'./chunk-CI6PEZ77.mjs';
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React$1, { ReactNode } from 'react';
3
3
  import { L as LocalStorageUtilsType } from './local-storage-AbiOQTLK.mjs';
4
- import { useForgotPassword, useForgotPasswordSSO, useGetProvider, useIsValidToken, useLoginCredential, useLoginSocial, useResetPassword, useResetPasswordSSO, useUpdatePassword, useLogout, useGetAccessByCode, useValidateActionToken, useGetCompanyInfo, useGetCurrentCompany, useGetListCompany, useExecuteImport, useExportExcel, useGetFieldExport, useGetFileExcel, useParsePreview, useUploadFileExcel, useUploadIdFile, useChangeStatus, useDeleteComment, useGetComment, useGetFormView, useSendComment, useUploadImage, useDelete, useGetAll, useGetConversionRate, useGetCurrency, useGetDetail, useGetFieldOnChange, useGetListMyBankAccount, useModel, useOdooDataTransform, useOnChangeForm, useSave, useGetProfile, useGetUser, useSwitchLocale, useButton, useDuplicateRecord, useGet2FAMethods, useGetActionDetail, useGetCalendar, useGetGroups, useGetListData, useGetMenu, useGetPrintReport, useGetProGressBar, useGetResequence, useGetSelection, useGetView, useLoadAction, useLoadMessage, usePrint, useRemoveRow, useRunAction, useSignInSSO, useVerify2FA, useGrantAccess, useRemoveTotpSetup, useRequestSetupTotp, useSettingsWebRead2fa, useVerifyTotp, useUploadFile, useCreateEntity, useGetASession, useCreateSession, useDeleteEntity, useGetList, useGetPos, useHandleClosingSession, useManageSession, useUpdateClosedSession, useUpdateEntity, useLoadDataPosSession, useManageOnChange, useGenSerialNumber, useGetOrderLine, useGetProductImage, useAddEntity, useCheckPayment, useHandleCloseSession, useHandleClosingDetailSession, useCreatePosConfig, useSearchJournal, useGetTenantMapping, useGetToken, useGetPreparationDisplayData, useUpdateOrderStatus, useGetThreadData, useGetThreadMessages, useGetExternalTabs, useProcessOrder, useGeneratePaymentQrInfo, useSavePinCode, useGetPinCode, useReadGroup, useGetNotifications, useGetDataChart, useGetVersion, useCreateEInvoice, useGetCurrentUser, useGetWard, useGetCity, useGetCountry, useGetPartnerTitle, useChangeOrderPreparationState, useCompleteCurrentStage, useLoginSupa, useAddFloor, useAddTable, useDeleteFloor, useDeleteTable, useUpdateFloor, useUpdateTable, useCreateOrder } from './hooks.mjs';
4
+ import { useForgotPassword, useForgotPasswordSSO, useGetProvider, useIsValidToken, useLoginCredential, useLoginSocial, useLoginSupa, useResetPassword, useResetPasswordSSO, useUpdatePassword, useLogout, useGetAccessByCode, useValidateActionToken, useGetTenantMapping, useGetToken, useGetCompanyInfo, useGetCurrentCompany, useGetListCompany, useExecuteImport, useExportExcel, useGetFieldExport, useGetFileExcel, useParsePreview, useUploadFileExcel, useUploadIdFile, useChangeStatus, useDeleteComment, useGetComment, useGetExternalTabs, useGetFormView, useGetThreadData, useGetThreadMessages, useSendComment, useUploadFile, useUploadImage, useDelete, useGetAll, useGetConversionRate, useGetCurrency, useGetDetail, useGetFieldOnChange, useGetListMyBankAccount, useModel, useOdooDataTransform, useOnChangeForm, useSave, useGetProfile, useGetUser, useSwitchLocale, useButton, useDuplicateRecord, useGet2FAMethods, useGetActionDetail, useGetCalendar, useGetGroups, useGetListData, useGetMenu, useGetPrintReport, useGetProGressBar, useGetResequence, useGetSelection, useGetView, useLoadAction, useLoadMessage, usePrint, useRemoveRow, useRunAction, useSignInSSO, useVerify2FA, useGrantAccess, useRemoveTotpSetup, useRequestSetupTotp, useSettingsWebRead2fa, useVerifyTotp, useGenSerialNumber, useGetNotifications, useGetVersion, useGetWard, useGetCity, useGetCountry, useGetPartnerTitle, useGetDataChart, useReadGroup, useAddEntity, useAddFloor, useAddTable, useChangeOrderPreparationState, useCheckPayment, useCompleteCurrentStage, useCreateEInvoice, useCreateEntity, useCreateOrder, useCreatePosConfig, useCreateSession, useDeleteEntity, useDeleteFloor, useDeleteTable, useGeneratePaymentQrInfo, useGetASession, useGetCurrentUser, useGetList, useGetOrderLine, useGetPinCode, useGetPos, useGetPreparationDisplayData, useGetProductImage, useHandleCloseSession, useHandleClosingDetailSession, useHandleClosingSession, useLoadDataPosSession, useManageOnChange, useManageSession, useProcessOrder, useSavePinCode, useSearchJournal, useUpdateClosedSession, useUpdateEntity, useUpdateFloor, useUpdateOrderStatus, useUpdateTable } from './hooks.mjs';
5
5
  import { SupabaseClient } from '@supabase/supabase-js';
6
6
  import '@tanstack/react-query';
7
7
  import './view-type-CfcWWR0w.mjs';
@@ -65,22 +65,39 @@ declare function useEnv(): {
65
65
  setEnvFile: (envFile: any) => void;
66
66
  };
67
67
 
68
- interface ServiceContextType {
68
+ interface AuthServiceContextType {
69
69
  useForgotPassword: typeof useForgotPassword;
70
70
  useForgotPasswordSSO: typeof useForgotPasswordSSO;
71
71
  useGetProvider: typeof useGetProvider;
72
72
  useIsValidToken: typeof useIsValidToken;
73
73
  useLoginCredential: typeof useLoginCredential;
74
74
  useLoginSocial: typeof useLoginSocial;
75
+ useLoginSupa: typeof useLoginSupa;
75
76
  useResetPassword: typeof useResetPassword;
76
77
  useResetPasswordSSO: typeof useResetPasswordSSO;
77
78
  useUpdatePassword: typeof useUpdatePassword;
78
79
  useLogout: typeof useLogout;
79
80
  useGetAccessByCode: typeof useGetAccessByCode;
80
81
  useValidateActionToken: typeof useValidateActionToken;
82
+ useGetTenantMapping: typeof useGetTenantMapping;
83
+ useGetToken: typeof useGetToken;
84
+ }
85
+ declare const AuthServiceProvider: ({ children }: {
86
+ children: ReactNode;
87
+ }) => react_jsx_runtime.JSX.Element;
88
+ declare const useAuthService: () => AuthServiceContextType;
89
+
90
+ interface CompanyServiceContextType {
81
91
  useGetCompanyInfo: typeof useGetCompanyInfo;
82
92
  useGetCurrentCompany: typeof useGetCurrentCompany;
83
93
  useGetListCompany: typeof useGetListCompany;
94
+ }
95
+ declare const CompanyServiceProvider: ({ children, }: {
96
+ children: ReactNode;
97
+ }) => react_jsx_runtime.JSX.Element;
98
+ declare const useCompanyService: () => CompanyServiceContextType;
99
+
100
+ interface ExcelServiceContextType {
84
101
  useExecuteImport: typeof useExecuteImport;
85
102
  useExportExcel: typeof useExportExcel;
86
103
  useGetFieldExport: typeof useGetFieldExport;
@@ -88,12 +105,30 @@ interface ServiceContextType {
88
105
  useParsePreview: typeof useParsePreview;
89
106
  useUploadFileExcel: typeof useUploadFileExcel;
90
107
  useUploadIdFile: typeof useUploadIdFile;
108
+ }
109
+ declare const ExcelServiceProvider: ({ children }: {
110
+ children: ReactNode;
111
+ }) => react_jsx_runtime.JSX.Element;
112
+ declare const useExcelService: () => ExcelServiceContextType;
113
+
114
+ interface FormServiceContextType {
91
115
  useChangeStatus: typeof useChangeStatus;
92
116
  useDeleteComment: typeof useDeleteComment;
93
117
  useGetComment: typeof useGetComment;
118
+ useGetExternalTabs: typeof useGetExternalTabs;
94
119
  useGetFormView: typeof useGetFormView;
120
+ useGetThreadData: typeof useGetThreadData;
121
+ useGetThreadMessages: typeof useGetThreadMessages;
95
122
  useSendComment: typeof useSendComment;
123
+ useUploadFile: typeof useUploadFile;
96
124
  useUploadImage: typeof useUploadImage;
125
+ }
126
+ declare const FormServiceProvider: ({ children }: {
127
+ children: ReactNode;
128
+ }) => react_jsx_runtime.JSX.Element;
129
+ declare const useFormService: () => FormServiceContextType;
130
+
131
+ interface ModelServiceContextType {
97
132
  useDelete: typeof useDelete;
98
133
  useGetAll: typeof useGetAll;
99
134
  useGetConversionRate: typeof useGetConversionRate;
@@ -105,9 +140,23 @@ interface ServiceContextType {
105
140
  useOdooDataTransform: typeof useOdooDataTransform;
106
141
  useOnChangeForm: typeof useOnChangeForm;
107
142
  useSave: typeof useSave;
143
+ }
144
+ declare const ModelServiceProvider: ({ children }: {
145
+ children: ReactNode;
146
+ }) => react_jsx_runtime.JSX.Element;
147
+ declare const useModelService: () => ModelServiceContextType;
148
+
149
+ interface UserServiceContextType {
108
150
  useGetProfile: typeof useGetProfile;
109
151
  useGetUser: typeof useGetUser;
110
152
  useSwitchLocale: typeof useSwitchLocale;
153
+ }
154
+ declare const UserServiceProvider: ({ children }: {
155
+ children: ReactNode;
156
+ }) => react_jsx_runtime.JSX.Element;
157
+ declare const useUserService: () => UserServiceContextType;
158
+
159
+ interface ViewServiceContextType {
111
160
  useButton: typeof useButton;
112
161
  useDuplicateRecord: typeof useDuplicateRecord;
113
162
  useGet2FAMethods: typeof useGet2FAMethods;
@@ -133,64 +182,71 @@ interface ServiceContextType {
133
182
  useRequestSetupTotp: typeof useRequestSetupTotp;
134
183
  useSettingsWebRead2fa: typeof useSettingsWebRead2fa;
135
184
  useVerifyTotp: typeof useVerifyTotp;
136
- useUploadFile: typeof useUploadFile;
137
- useCreateEntity: typeof useCreateEntity;
138
- useGetASession: typeof useGetASession;
139
- useCreateSession: typeof useCreateSession;
140
- useDeleteEntity: typeof useDeleteEntity;
141
- useGetList: typeof useGetList;
142
- useGetPos: typeof useGetPos;
143
- useHandleClosingSession: typeof useHandleClosingSession;
144
- useManageSession: typeof useManageSession;
145
- useUpdateClosedSession: typeof useUpdateClosedSession;
146
- useUpdateEntity: typeof useUpdateEntity;
147
- useLoadDataPosSession: typeof useLoadDataPosSession;
148
- useManageOnChange: typeof useManageOnChange;
149
185
  useGenSerialNumber: typeof useGenSerialNumber;
150
- useGetOrderLine: typeof useGetOrderLine;
151
- useGetProductImage: typeof useGetProductImage;
152
- useAddEntity: typeof useAddEntity;
153
- useCheckPayment: typeof useCheckPayment;
154
- useHandleCloseSession: typeof useHandleCloseSession;
155
- useHandleClosingDetailSession: typeof useHandleClosingDetailSession;
156
- useCreatePosConfig: typeof useCreatePosConfig;
157
- useSearchJournal: typeof useSearchJournal;
158
- useGetTenantMapping: typeof useGetTenantMapping;
159
- useGetToken: typeof useGetToken;
160
- useGetPreparationDisplayData: typeof useGetPreparationDisplayData;
161
- useUpdateOrderStatus: typeof useUpdateOrderStatus;
162
- useGetThreadData: typeof useGetThreadData;
163
- useGetThreadMessages: typeof useGetThreadMessages;
164
- useGetExternalTabs: typeof useGetExternalTabs;
165
- useProcessOrder: typeof useProcessOrder;
166
- useGeneratePaymentQrInfo: typeof useGeneratePaymentQrInfo;
167
- useSavePinCode: typeof useSavePinCode;
168
- useGetPinCode: typeof useGetPinCode;
169
- useReadGroup: typeof useReadGroup;
170
186
  useGetNotifications: typeof useGetNotifications;
171
- useGetDataChart: typeof useGetDataChart;
172
187
  useGetVersion: typeof useGetVersion;
173
- useCreateEInvoice: typeof useCreateEInvoice;
174
- useGetCurrentUser: typeof useGetCurrentUser;
175
188
  useGetWard: typeof useGetWard;
176
189
  useGetCity: typeof useGetCity;
177
190
  useGetCountry: typeof useGetCountry;
178
191
  useGetPartnerTitle: typeof useGetPartnerTitle;
179
- useChangeOrderPreparationState: typeof useChangeOrderPreparationState;
180
- useCompleteCurrentStage: typeof useCompleteCurrentStage;
181
- useLoginSupa: typeof useLoginSupa;
192
+ }
193
+ declare const ViewServiceProvider: ({ children }: {
194
+ children: ReactNode;
195
+ }) => react_jsx_runtime.JSX.Element;
196
+ declare const useViewService: () => ViewServiceContextType;
197
+
198
+ interface ChartServiceContextType {
199
+ useGetDataChart: typeof useGetDataChart;
200
+ useReadGroup: typeof useReadGroup;
201
+ }
202
+ declare const ChartServiceProvider: ({ children }: {
203
+ children: ReactNode;
204
+ }) => react_jsx_runtime.JSX.Element;
205
+ declare const useChartService: () => ChartServiceContextType;
206
+
207
+ interface PosServiceContextType {
208
+ useAddEntity: typeof useAddEntity;
182
209
  useAddFloor: typeof useAddFloor;
183
210
  useAddTable: typeof useAddTable;
211
+ useChangeOrderPreparationState: typeof useChangeOrderPreparationState;
212
+ useCheckPayment: typeof useCheckPayment;
213
+ useCompleteCurrentStage: typeof useCompleteCurrentStage;
214
+ useCreateEInvoice: typeof useCreateEInvoice;
215
+ useCreateEntity: typeof useCreateEntity;
216
+ useCreateOrder: typeof useCreateOrder;
217
+ useCreatePosConfig: typeof useCreatePosConfig;
218
+ useCreateSession: typeof useCreateSession;
219
+ useDeleteEntity: typeof useDeleteEntity;
184
220
  useDeleteFloor: typeof useDeleteFloor;
185
221
  useDeleteTable: typeof useDeleteTable;
222
+ useGeneratePaymentQrInfo: typeof useGeneratePaymentQrInfo;
223
+ useGetASession: typeof useGetASession;
224
+ useGetCurrentUser: typeof useGetCurrentUser;
225
+ useGetList: typeof useGetList;
226
+ useGetOrderLine: typeof useGetOrderLine;
227
+ useGetPinCode: typeof useGetPinCode;
228
+ useGetPos: typeof useGetPos;
229
+ useGetPreparationDisplayData: typeof useGetPreparationDisplayData;
230
+ useGetProductImage: typeof useGetProductImage;
231
+ useHandleCloseSession: typeof useHandleCloseSession;
232
+ useHandleClosingDetailSession: typeof useHandleClosingDetailSession;
233
+ useHandleClosingSession: typeof useHandleClosingSession;
234
+ useLoadDataPosSession: typeof useLoadDataPosSession;
235
+ useManageOnChange: typeof useManageOnChange;
236
+ useManageSession: typeof useManageSession;
237
+ useProcessOrder: typeof useProcessOrder;
238
+ useSavePinCode: typeof useSavePinCode;
239
+ useSearchJournal: typeof useSearchJournal;
240
+ useUpdateClosedSession: typeof useUpdateClosedSession;
241
+ useUpdateEntity: typeof useUpdateEntity;
186
242
  useUpdateFloor: typeof useUpdateFloor;
243
+ useUpdateOrderStatus: typeof useUpdateOrderStatus;
187
244
  useUpdateTable: typeof useUpdateTable;
188
- useCreateOrder: typeof useCreateOrder;
189
245
  }
190
- declare const ServiceProvider: ({ children, }: {
191
- children: React.ReactNode;
246
+ declare const PosServiceProvider: ({ children }: {
247
+ children: ReactNode;
192
248
  }) => react_jsx_runtime.JSX.Element;
193
- declare const useService: () => ServiceContextType;
249
+ declare const usePosService: () => PosServiceContextType;
194
250
 
195
251
  type MetaProviderProps = {
196
252
  children: ReactNode;
@@ -206,4 +262,4 @@ type SupabaseProviderProps = {
206
262
  declare const SupabaseProvider: ({ supabaseUrl, supabaseKey, schema, children, }: SupabaseProviderProps) => react_jsx_runtime.JSX.Element;
207
263
  declare const useSupabase: () => SupabaseClient<any, any, any, any, any>;
208
264
 
209
- export { EnvProvider, MainProvider, MetaProvider, ReactQueryProvider, ServiceProvider, SupabaseProvider, useEnv, useService, useSupabase };
265
+ export { AuthServiceProvider, ChartServiceProvider, CompanyServiceProvider, EnvProvider, ExcelServiceProvider, FormServiceProvider, MainProvider, MetaProvider, ModelServiceProvider, PosServiceProvider, ReactQueryProvider, SupabaseProvider, UserServiceProvider, ViewServiceProvider, useAuthService, useChartService, useCompanyService, useEnv, useExcelService, useFormService, useModelService, usePosService, useSupabase, useUserService, useViewService };
package/dist/provider.mjs CHANGED
@@ -1 +1 @@
1
- export{c as EnvProvider,b as MainProvider,g as MetaProvider,a as ReactQueryProvider,e as ServiceProvider,h as SupabaseProvider,d as useEnv,f as useService,i as useSupabase}from'./chunk-BWSA2O6Z.mjs';import'./chunk-TKG5NQ2J.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-LCUY2BJU.mjs';import'./chunk-KPELPP6F.mjs';import'./chunk-CI6PEZ77.mjs';
1
+ export{e as AuthServiceProvider,s as ChartServiceProvider,g as CompanyServiceProvider,c as EnvProvider,i as ExcelServiceProvider,k as FormServiceProvider,b as MainProvider,w as MetaProvider,m as ModelServiceProvider,u as PosServiceProvider,a as ReactQueryProvider,x as SupabaseProvider,o as UserServiceProvider,q as ViewServiceProvider,f as useAuthService,t as useChartService,h as useCompanyService,d as useEnv,j as useExcelService,l as useFormService,n as useModelService,v as usePosService,y as useSupabase,p as useUserService,r as useViewService}from'./chunk-Y5QM3Y5X.mjs';import'./chunk-LYD7QJQX.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-LCUY2BJU.mjs';import'./chunk-KPELPP6F.mjs';import'./chunk-CI6PEZ77.mjs';
package/dist/services.mjs CHANGED
@@ -1 +1 @@
1
- export{j as useActionService,k as useAuthService,l as useCompanyService,s as useDashboardService,m as useExcelService,n as useFormService,o as useKanbanService,p as useModelService,t as usePosService,q as useUserService,r as useViewService}from'./chunk-BWSA2O6Z.mjs';import'./chunk-TKG5NQ2J.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-LCUY2BJU.mjs';import'./chunk-KPELPP6F.mjs';import'./chunk-CI6PEZ77.mjs';
1
+ export{z as useActionService,A as useAuthService,B as useCompanyService,I as useDashboardService,C as useExcelService,D as useFormService,E as useKanbanService,F as useModelService,J as usePosService,G as useUserService,H as useViewService}from'./chunk-Y5QM3Y5X.mjs';import'./chunk-LYD7QJQX.mjs';import'./chunk-Y65DQP66.mjs';import'./chunk-LCUY2BJU.mjs';import'./chunk-KPELPP6F.mjs';import'./chunk-CI6PEZ77.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/interface-logic",
3
- "version": "4.5.5",
3
+ "version": "4.5.6",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.mjs",
6
6
  "module": "dist/index.mjs",
@@ -1 +0,0 @@
1
- import {a as a$1}from'./chunk-TKG5NQ2J.mjs';import {b,a,n,o}from'./chunk-Y65DQP66.mjs';import {a as a$2}from'./chunk-LCUY2BJU.mjs';import {d,f as f$1}from'./chunk-KPELPP6F.mjs';import {c}from'./chunk-CI6PEZ77.mjs';import {createContext,useCallback,useState,useContext,useMemo,useEffect}from'react';import {QueryClient,QueryClientProvider,useMutation,useQuery}from'@tanstack/react-query';import {jsx,Fragment}from'react/jsx-runtime';import {createClient}from'@supabase/supabase-js';var ae=({children:e})=>{let[t]=useState(()=>new QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:false,refetchOnMount:false,refetchOnReconnect:false,retry:false}}}));return jsx(QueryClientProvider,{client:t,children:e})};var Lo=({children:e})=>jsx(ae,{children:e});var Mr={env:null,baseUrl:"",requests:null,companies:[],user:{},config:null,envFile:null,defaultCompany:{id:null,logo:"",secondary_color:"",primary_color:"",secondary_logo:""},context:{uid:null,lang:"vi_VN",tz:"Asia/Saigon"},excludeLanguages:[],isSupaMode:false},Mo=createContext(null);function Oo({children:e,localStorageUtils:t=a(),sessionStorageUtils:r=b}){let[o,s]=useState({...Mr,localStorageUtils:t,sessionStorageUtils:r}),n=useCallback(i=>{let p={...o,...i,localStorageUtils:t,sessionStorageUtils:r},b=a$1.init(p);return s({...p,requests:b}),p},[o,t,r]),a=useCallback(i=>{s(p=>({...p,context:{...p.context,uid:i}}));},[]),u=useCallback(i=>{s(p=>({...p,context:{...p.context,lang:i}}));},[]),m=useCallback(i=>{s(p=>({...p,context:{...p.context,allowed_company_ids:i}}));},[]),l=useCallback(i=>{s(p=>({...p,companies:i}));},[]),C=useCallback(i=>{s(p=>({...p,defaultCompany:i}));},[]),v=useCallback(i=>{s(p=>({...p,user:i}));},[]),c=useCallback(i=>{s(p=>({...p,config:i}));},[]),y=useCallback(i=>{s(p=>({...p,envFile:i}));},[]);return jsx(Mo.Provider,{value:{env:o,setupEnv:n,setUid:a,setLang:u,setAllowCompanies:m,setCompanies:l,setDefaultCompany:C,setUserInfo:v,setConfig:c,setEnvFile:y},children:e})}function G(){let e=useContext(Mo);if(!e)throw new Error("useEnv must be used within an EnvProvider");return e}function R(){let{env:e}=G(),t=useCallback(async({idAction:l,context:C,service:v,xNode:c,searchParams:y})=>{let i={action_id:l,with_context:{...C}},p=y?`/load_action?${n(y)}`:"/load_action";return e.requests.post(p,i,{headers:{"Content-Type":"application/json","X-Node":c}},v)},[e]),r=useCallback(async({model:l,ids:C=[],context:v,method:c,service:y,xNode:i})=>{try{let p={model:l,method:c,ids:C,with_context:v};return e.requests.post("/call",p,{headers:{"Content-Type":"application/json",...i?{"X-Node":i}:{}}},y)}catch(p){throw console.error("Error when calling button action:",p),p}},[e]),o=useCallback(async({model:l,ids:C,context:v,service:c,xNode:y})=>{let i={model:l,method:"unlink",ids:C,with_context:v};return e.requests.post("/call",i,{headers:{"Content-Type":"application/json"},...y?{"X-Node":y}:{}},c)},[e]),s=useCallback(async({model:l,id:C,context:v,service:c,xNode:y})=>{let i={model:l,method:"copy",ids:C,with_context:v};return e.requests.post("/call",i,{headers:{"Content-Type":"application/json"},...y?{"X-Node":y}:{}},c)},[e]),n$1=useCallback(async({id:l})=>{let C={model:"ir.actions.report",method:"web_read",id:l,kwargs:{specification:{report_name:{}}}};return e.requests.post("/call",C,{headers:{"Content-Type":"application/json"}})},[e]),a=useCallback(async({id:l,report:C,db:v})=>{let y=n({report:C,id:l,type:"pdf",file_response:true,db:v}),i=`/report?${y}`;return e.requests.get(i,{headers:{"Content-Type":"application/json"},responseType:"arraybuffer"})},[e]),u=useCallback(async({idAction:l,context:C,service:v,xNode:c,searchParams:y})=>{let i={action_id:l,with_context:{...C}},p=y?`/run_action?${n(y)}`:"/run_action";return e.requests.post(p,i,{headers:{"Content-Type":"application/json",...c?{"X-Node":c}:{}}},v)},[e]),m=useCallback(async({kwargs:l,context:C,service:v,xNode:c})=>{let y={model:"stock.move",method:"action_generate_lot_line_vals",with_context:{...C},kwargs:l};return e.requests.post("/call",y,{headers:{"Content-Type":"application/json"},...c?{"X-Node":c}:{}},v)},[e]);return {loadAction:t,callButton:r,removeRows:o,duplicateRecord:s,getPrintReportName:n$1,print:a,runAction:u,generateSerialNumber:m}}var xo=createContext(null),qo=({supabaseUrl:e,supabaseKey:t,schema:r="public",children:o})=>{let s=useMemo(()=>!e||!t?null:createClient(e,t,{db:{schema:r}}),[e,t,r]);return jsx(xo.Provider,{value:s,children:o})},No=()=>{let e=useContext(xo);if(!e)throw new Error("useSupabase must be used within a SupabaseProvider or check your env config");return e},L=()=>useContext(xo);function A(){let{env:e}=G(),t=L(),r=useCallback(async d=>{let g=Object.fromEntries(Object.entries({username:d.email,password:d.password,grant_type:e?.config?.grantType||"",client_id:e?.config?.clientId||"",client_secret:e?.config?.clientSecret||""}).filter(([w,S])=>!!S)),T=new URLSearchParams(g).toString();return e?.requests?.post(d.path,T,{headers:{"Content-Type":"application/x-www-form-urlencoded"}},d.service)},[e]),o=useCallback(async d=>{if(!t)return {data:null,error:{message:"Supabase client is not initialized"}};let{data:g,error:T}=await t.auth.signInWithPassword({email:d.email,password:d.password});return {data:g,error:T}},[t]),s=useCallback(async d=>{let g={login:d,url:`${window.location.origin}/reset-password`};return e?.requests?.post("/reset_password",g,{headers:{"Content-Type":"application/json"}})},[e]),n=useCallback(async({email:d,with_context:g,method:T})=>{let w={method:T,kwargs:{vals:{email:d}},with_context:g};return e?.requests?.post("/call",w,{headers:{"Content-Type":"application/json"}})},[e]),a=useCallback(async(d,g)=>{let T={token:g,password:d.password,new_password:d.confirmPassword};return e?.requests?.post("/change_password",T,{headers:{"Content-Type":"application/json"}})},[e]),u=useCallback(async({method:d,password:g,with_context:T})=>{let w={method:d,kwargs:{vals:{password:g}},with_context:T};return e?.requests?.post("/call",w,{headers:{"Content-Type":"application/json"}})},[e]),m=useCallback(async(d,g)=>{let T={token:g,old_password:d.oldPassword,new_password:d.newPassword};return e?.requests?.post("/change_password_parent",T,{headers:{"Content-Type":"application/json"}})},[e]),l=useCallback(async d=>{let g={token:d};return e?.requests?.post("/check_token",g,{headers:{"Content-Type":"application/json"}})},[e]),C=useCallback(async d=>{let g={};return e?.requests?.post("/action-token/validate",g,{headers:{"Content-Type":"application/json","X-Use-Action-Token":"true","X-Action-Token":d}})},[e]),v=useCallback(async({db:d,state:g,access_token:T})=>e?.requests?.post("/token/generate",{state:g,access_token:T},{headers:{"Content-Type":"application/json"}}),[e]),c=useCallback(async d=>e?.requests?.get("/oauth/providers",{params:{db:d}}),[e]),y=useCallback(async d=>{let g=new URLSearchParams;return g.append("code",d),g.append("grant_type","authorization_code"),g.append("client_id",e?.config?.clientId||""),g.append("redirect_uri",e?.config?.redirectUri||""),e?.requests?.post("/token",g,{headers:{"Content-Type":"application/x-www-form-urlencoded"}},"id")},[e]),i=useCallback(async d=>e?.requests?.post("/logout",{},{headers:{"Content-Type":"application/json","X-Use-Refresh-Token":"true"},withCredentials:true},d),[e]),p=useCallback(async({shortName:d,service:g})=>{let T={short_name:d};return e?.requests.post("/tenant-mapping",T,{headers:{"Content-Type":"application/json"}},g)},[e]),b=useCallback(async({phone:d,name:g,service:T,xNode:w})=>{let S={phone:d,name:g};return e?.requests.post("/emenu/auth/token",S,{headers:{"Content-Type":"application/json",...w?{"X-Node":w}:{}}},T)},[e]);return {login:r,loginSupabase:o,forgotPassword:s,forgotPasswordSSO:n,resetPassword:a,resetPasswordSSO:u,updatePassword:m,isValidToken:l,isValidActionToken:C,loginSocial:v,getProviders:c,getAccessByCode:y,logout:i,getTenantMapping:p,getToken:b}}function $(){let{env:e}=G(),t=useCallback(async(o,s)=>await e.requests.get("/company",{headers:s?{...s,"Content-Type":"application/json"}:{"Content-Type":"application/json"}},o),[e]),r=useCallback(async(o,s)=>{let n={ids:[o],model:"res.company",method:"web_read",kwargs:{specification:{primary_color:{},secondary_color:{},logo:{},display_name:{},secondary_logo:{}}}};return await e.requests.post("/call",n,{headers:{"Content-Type":"application/json"}},s)},[e]);return {getCurrentCompany:t,getInfoCompany:r}}function N(){let{env:e}=G(),t=useCallback(async({formData:m,service:l,xNode:C})=>e.requests.post("/upload/file",m,{headers:{"X-Node":C}},l),[e]),r=useCallback(async({formData:m,service:l,xNode:C})=>e.requests.post("/upload/file",m,{headers:{"X-Node":C}},l),[e]),o=useCallback(async({id:m,selectedSheet:l,isHeader:C,context:v,service:c,xNode:y})=>{let i={model:"base_import.import",method:"parse_preview",ids:[m],kwargs:{options:{import_skip_records:[],import_set_empty_fields:[],fallback_values:{},name_create_enabled_fields:{},encoding:"",separator:"",quoting:'"',date_format:"",datetime_format:"",float_thousand_separator:",",float_decimal_separator:".",advanced:true,has_headers:C,keep_matches:false,limit:2e3,sheets:[],sheet:l,skip:0,tracking_disable:true}},with_context:v};return e.requests.post("/call",i,{headers:{"Content-Type":"application/json","X-Node":y}},c)},[e]),s=useCallback(async({columns:m,fields:l,idFile:C,options:v,dryrun:c,context:y,service:i,xNode:p})=>{let b={model:"base_import.import",method:"execute_import",ids:[C],kwargs:{fields:l,columns:m,options:v,dryrun:c},with_context:y};return e.requests.post("/call",b,{headers:{"Content-Type":"application/json","X-Node":p}},i)},[e]),n=useCallback(async({model:m,service:l,xNode:C,context:v})=>{let c={model:m,method:"get_import_templates",args:[],context:v};return e.requests.post("/call",c,{headers:{"Content-Type":"application/json","X-Node":C}},l)},[e]),a=useCallback(async({ids:m,model:l,isShow:C,parentField:v,fieldType:c,parentName:y,prefix:i,name:p,context:b,importCompat:d,service:g,xNode:T})=>{let w={model:l,import_compat:d,domain:[["id","in",m]],with_context:b};return C&&(w.parent_field=v,w.parent_field_type=c,w.parent_name=y,w.name=p,w.prefix=i,w.exclude=[null]),e.requests.post("/export/get_fields",w,{headers:{"Content-Type":"application/json","X-Node":T}},g)},[e]),u=useCallback(async({model:m,domain:l,ids:C,fields:v,type:c,importCompat:y,context:i,groupby:p,service:b,xNode:d})=>{let g={model:m,domain:l,ids:C,import_compat:y,fields:v,with_context:i,groupby:p??[]};return e.requests.post_excel(`/export/${c}`,g,{headers:{"Content-Type":"application/json",...d?{"X-Node":d}:{}}},b)},[e]);return {uploadFileExcel:t,uploadIdFile:r,parsePreview:o,executeImport:s,getFileExcel:n,getFieldExport:a,exportExcel:u}}function F(){let{env:e}=G(),t=useCallback(async({data:c})=>{let y={thread_id:c.thread_id,thread_model:c.thread_model,limit:100,with_context:{lang:c.lang}};return e.requests.post("/chatter/thread/messages",y,{headers:{"Content-Type":"application/json"}})},[e]),r=useCallback(async({data:c,xNode:y,service:i})=>{let p={thread_id:c?.thread_id,thread_model:c?.thread_model,limit:c?.limit,with_context:c?.with_context,request_list:c?.request_list};return e.requests.post("/mail/thread/data",p,{headers:{"Content-Type":"application/json",...y?{"X-Node":y}:{}}},i)},[e]),o=useCallback(async({data:c,xNode:y,service:i})=>{let p={thread_id:c?.thread_id,thread_model:c?.thread_model,limit:c?.limit,with_context:c?.with_context};return e.requests.post("/mail/thread/messages",p,{headers:{"Content-Type":"application/json",...y?{"X-Node":y}:{}}},i)},[e]),s=useCallback(async({data:c})=>{let y={context:{tz:"Asia/Saigon",uid:2,allowed_company_ids:[1],mail_post_autofollow:false,temporary_id:142183.01},post_data:{body:c.message,message_type:"comment",attachment_ids:c.attachment_ids,attachment_tokens:[],subtype_xmlid:c.subtype},thread_id:Number(c.thread_id),thread_model:c.thread_model};return e.requests.post("/chatter/message/post",y,{headers:{"Content-Type":"application/json"}})},[e]),n=useCallback(async({data:c})=>{let y={attachment_ids:[],attachment_tokens:[],body:"",message_id:c.message_id};return e.requests.post("/chatter/message/update_content",y,{headers:{"Content-Type":"application/json"}})},[e]),a=useCallback(async({data:c})=>e.requests.get(`/web/image?filename=${c.filename}&unique=${c.checksum}&width=1920&height=300`,{headers:{"Content-Type":"application/json"}}),[e]),u=useCallback(async({formData:c,service:y,xNode:i})=>e.requests.post("/mail/attachment/upload",c,{headers:{...i?{"X-Node":i}:{}}},y),[e]),m=useCallback(async({formData:c,service:y,xNode:i,path:p})=>e.requests.post(p,c,{headers:{...i?{"X-Node":i}:{}}},y),[e]),l=useCallback(async({data:c})=>{let y={model:c.model,method:"get_formview_action",ids:c.id?[c.id]:[],with_context:c.context};return e.requests.post("/call",y,{headers:{"Content-Type":"application/json"}})},[e]),C=useCallback(async({data:c})=>{let y={[c.name]:c.stage_id},i={model:c.model,method:"web_save",with_context:{lang:c.lang,allowed_company_ids:[1],uid:2,search_default_my_ticket:true,search_default_is_open:true},ids:[c.id],kwargs:{vals:y,specification:{}}};return e.requests.post("/call",i,{headers:{"Content-Type":"application/json"}})},[e]),v=useCallback(async({method:c,context:y,service:i,xNode:p})=>e?.requests?.post("/call",{method:c,with_context:y},{headers:{"Content-Type":"application/json",...p?{"X-Node":p}:{}}},i),[e]);return {getComment:t,sentComment:s,deleteComment:n,getImage:a,uploadImage:u,getFormView:l,changeStatus:C,uploadFile:m,getThreadMessages:o,getThreadData:r,getExternalTab:v}}function z(){let{env:e}=G(),t=useCallback(async({model:o,width_context:s})=>{let n={model:o,method:"web_read_group",kwargs:{domain:[["stage_id.fold","=",false]],fields:["color:sum"],groupby:["stage_id"]},width_context:s};return e.requests.post("/call",n,{headers:{"Content-Type":"application/json"}})},[e]),r=useCallback(async({field:o,color:s,model:n,width_context:a})=>{let u={model:n,method:"read_progress_bar",kwargs:{domain:[],group_by:"stage_id",progress_bar:{colors:s,field:o}},width_context:a};return e.requests.post("/call",u,{headers:{"Content-Type":"application/json"}})},[e]);return {getGroups:t,getProgressBar:r}}function E(){let{env:e}=G(),t=useCallback(async({domain:i,spectification:p,model:b})=>{let d={model:b,method:"web_search_read",kwargs:{specification:p,domain:i,limit:100,offset:0}};return e.requests.post("/call",d,{headers:{"Content-Type":"application/json"}})},[e]),r=useCallback(async()=>{let i={model:"res.currency",method:"web_search_read",kwargs:{specification:{icon_url:{},name:{}},domain:[["active","=",true]],limit:100,offset:0}};return e.requests.post("/call",i,{headers:{"Content-Type":"application/json"}})},[e]),o=useCallback(async()=>{let i={model:"res.currency",method:"web_search_read",kwargs:{specification:{name:{},icon_url:{},rate_ids:{fields:{company_rate:{},sell:{}}}},domain:[["active","=",true]],limit:100,offset:0}};return e.requests.post("/call",i,{headers:{"Content-Type":"application/json"}})},[e]),s=useCallback(async({data:i,service:p,xNode:b,searchParams:d})=>{let g=i.type=="calendar"?{fields:i?.fields}:i.fields&&i.fields.length>0&&i.groupby&&i.groupby.length>0&&i.groupby[0]?{fields:i.fields,groupby:i.groupby}:{count_limit:10001,order:i.sort,specification:i.specification},T={model:String(i.model),method:i.type=="calendar"?"search_read":g.fields&&g.groupby?"web_read_group":"web_search_read",ids:i.ids,with_context:i.context,kwargs:{domain:i.domain,limit:i.limit,offset:i.offset,...g}},w=d?`/call?${n(d)}`:"/call";return e.requests.post(w,T,{headers:{"Content-Type":"application/json",...b?{"X-Node":b}:{}}},p)},[e]),n$1=useCallback(async({data:i})=>{let p=i.type=="calendar"?i?.fields:i.fields&&i.fields.length>0&&i.groupby&&i.groupby.length>0&&i.groupby[0]?{fields:i.fields,groupby:i.groupby}:{count_limit:10001,order:i.sort,specification:i.specification},b={model:String(i.model),method:i.type=="calendar"?"search_read":p.fields&&p.groupby?"web_read_group":"web_search_read",ids:i.ids,with_context:i.context,kwargs:{domain:i.domain,limit:i.limit,offset:i.offset,fields:i.fields,...p}};return e.requests.post("/call",b,{headers:{"Content-Type":"application/json"}})},[e]),a=useCallback(async({model:i,ids:p=[],specification:b={},domain:d=[],offset:g,order:T,context:w={},limit:S=10})=>{let h={model:i,method:"web_search_read",ids:p,with_context:w,kwargs:{specification:b,domain:d,limit:S,offset:g,order:T}};return e.requests.post("/call",h,{headers:{"Content-Type":"application/json"}})},[e]),u=useCallback(async({ids:i=[],model:p,specification:b,context:d,service:g,xNode:T})=>{let w={model:p,method:"web_read",ids:i,with_context:d,kwargs:{specification:b}};return e.requests.post("/call",w,{headers:{"Content-Type":"application/json",...T?{"X-Node":T}:{}}},g)},[e]),m=useCallback(async({model:i,ids:p=[],data:b={},specification:d={},context:g={},path:T,service:w,xNode:S})=>{let h={model:i,method:"web_save",with_context:g,ids:p,kwargs:{vals:b,specification:d}};return e.requests.post(T??"/call",h,{headers:{"Content-Type":"application/json",...S?{"X-Node":S}:{}}},w)},[e]),l=useCallback(async({ids:i=[],model:p,service:b})=>{let d={model:p,method:"unlink",ids:i};return e.requests.post("/call",d,{headers:{"Content-Type":"application/json"}},b)},[e]),C=useCallback(async({ids:i=[],model:p,object:b,specification:d,context:g,fieldChange:T,service:w,xNode:S})=>{let h={model:p,method:"onchange",ids:i,with_context:g,args:[b||{},T||[],d]};return e.requests.post("/call",h,{headers:{"Content-Type":"application/json",...S?{"X-Node":S}:{}}},w)},[e]),v=useCallback(async({model:i,service:p,xNode:b})=>{let d={model:i,method:"get_fields_onchange"};return e.requests.post("/call",d,{headers:{"Content-Type":"application/json",...b?{"X-Node":b}:{}}},p)},[e]),c=useCallback(i=>{for(let p in i)p==="display_name"&&delete i[p],!i[p]&&i[p]!==0&&(i[p]=false);return {...i}},[]),y=useCallback((i,p,b)=>{for(let d in i)i[d]===false?p&&b?p?.models?.[b]?.[d]?.type!=="boolean"&&(i[d]=null):i[d]=null:i[d]!==false&&b!==void 0&&(p?.models?.[b]?.[d]?.type==="one2many"||p?.models?.[b]?.[d]?.type==="many2many")&&(i[d]=(i[d]??=[])?.map(g=>{let T=p?.models?.[b]?.[d]?.relation;if(T!==void 0){if(p?.models?.[T])return g?.length>=3?y(g[2],p,T):y(g,p,T);if(g?.length>=3)return g[2];if(g!==0)return g}})?.filter(Boolean));return {...i}},[]);return {getListMyBankAccount:t,getCurrency:r,getConversionRate:o,getAll:s,getListCalendar:n$1,getList:a,getDetail:u,save:m,deleteApi:l,onChange:C,getListFieldsOnchange:v,parseORMOdoo:c,toDataJS:y}}function W(){let{env:e}=G(),t=useCallback(async(s,n,a)=>e?.requests?.get(n||"/userinfo",{headers:a?{...a,"Content-Type":"application/x-www-form-urlencoded"}:{"Content-Type":"application/x-www-form-urlencoded"}},s),[e]),r=useCallback(async({context:s,id:n})=>{let a={model:"res.users",method:"web_read",ids:[n],with_context:s,kwargs:{specification:{display_name:{},image_1920:{},name:{},login:{},email:{},password:{},visible_group_id:{fields:{id:{},display_name:{}}},company_id:{fields:{id:{},display_name:{}}}}}};return e.requests.post("/call",a,{headers:{"Content-Type":"application/json"}})},[e]),o=useCallback(async({id:s,values:n,service:a})=>{let u={model:"res.users",domain:[["id","=",s]],values:n};return e?.requests.post(c?.CREATE_UPDATE_PATH,u,{headers:{"Content-Type":"application/json"}},a)},[e]);return {getProfile:t,getUser:r,switchUserLocale:o}}function _(){let{env:e}=G(),t=useCallback(async({model:S,views:h,context:P={},options:D={},aid:O,service:V,xNode:Y,searchParams:ne})=>{let _o={load_filters:true,toolbar:true,action_id:O},br={model:S,method:"get_fields_view_v2",kwargs:{views:h,options:{...D,..._o}},with_context:P},Tr=ne?`/call?${n(ne)}`:"/call";return e?.requests?.post(Tr,br,{headers:{"Content-Type":"application/json",...Y?{"X-Node":Y}:{}}},V)},[e]),r=useCallback(async(S,h,P,D)=>{let O={model:"ir.ui.menu",method:"web_search_read",ids:[],with_context:S,kwargs:{specification:h,domain:P??["&",["is_display","=",true],"&",["active","=",true],["parent_id","=",false]]}};return e?.requests?.post("/call",O,{headers:{"Content-Type":"application/json"}},D)},[e]),o=useCallback(async(S,h)=>{let P={model:"ir.actions.act_window",method:"web_read",ids:[S],with_context:h,kwargs:{specification:{id:{},name:{},res_model:{},views:{},view_mode:{},mobile_view_mode:{},domain:{},context:{},groups_id:{},search_view_id:{}}}};return e?.requests?.post("/call",P,{headers:{"Content-Type":"application/json"}})},[e]),s=useCallback(async({model:S,ids:h,context:P,offset:D,service:O,xNode:V})=>{let Y={model:S,with_context:P,ids:h,field:"sequence",...D>0?{offset:D}:{}};return e?.requests.post("/web/dataset/resequence",Y,{headers:{"Content-Type":"application/json",...V?{"X-Node":V}:{}}},O)},[e]),n$1=useCallback(async({data:S,service:h,xNode:P})=>{let D={model:S.model,ids:[],method:"get_data_select",with_context:S.context,kwargs:{count_limit:10001,domain:S.domain?S.domain:[],offset:0,order:"",specification:S?.specification??{id:{},name:{},display_name:{}}}};return e?.requests.post("/call",D,{headers:{"Content-Type":"application/json",...P?{"X-Node":P}:{}}},h)},[e]),a=useCallback(async()=>e.requests.post("/load_message_failures",{},{headers:{"Content-Type":"application/json"}}),[e]),u=useCallback(async()=>e?.requests?.get("",{headers:{"Content-Type":"application/json"}}),[e]),m=useCallback(async({redirect_uri:S,state:h,client_id:P,scopes:D})=>{let O={redirect_uri:S,state:h,client_id:P,scopes:D};return e?.requests.post("/grant-access",O,{headers:{"Content-Type":"application/json"},withCredentials:true},"id")},[e]),l=useCallback(async({method:S,token:h})=>{let P={method:S,with_context:{token:h}};return e?.requests.post("/call",P,{headers:{"Content-Type":"application/json"}},"id")},[e]),C=useCallback(async({method:S,token:h})=>{let P={method:S,with_context:{token:h}};return e?.requests.post("/call",P,{headers:{"Content-Type":"application/json"}},"id")},[e]),v=useCallback(async({method:S,model:h,kwargs:P,token:D})=>{let O={method:S,model:h,kwargs:P,with_context:{token:D}};return e?.requests.post("/call",O,{headers:{"Content-Type":"application/json"}},"id")},[e]),c=useCallback(async({redirect_uri:S,state:h,client_id:P,response_type:D,path:O,scope:V})=>{let ne=`${new URLSearchParams({response_type:D,client_id:P,redirect_uri:S,state:h}).toString()}&scope=${encodeURIComponent(V)}`,_o=`${O}?${ne}`;return e?.requests.get(_o,{headers:{"Content-Type":"application/json"},withCredentials:true},"id")},[e]),y=useCallback(({method:S,with_context:h,code:P,device:D,location:O})=>{let V={method:S,kwargs:{vals:{code:P,device:D,location:O}},with_context:h};return e?.requests.post("/call",V,{headers:{"Content-Type":"application/json"},withCredentials:true},"id")},[e]),i=useCallback(({method:S,with_context:h})=>{let P={method:S,with_context:h};return e?.requests.post("/call",P,{headers:{"Content-Type":"application/json"}},"id")},[e]),p=useCallback(({method:S,action_token:h,code:P})=>{let D={method:S,kwargs:{vals:{code:P}},with_context:{action_token:h}};return e?.requests.post("/call",D,{headers:{"Content-Type":"application/json"}})},[e]),b=useCallback(async({service:S,xNode:h,body:P})=>e?.requests?.post("/mail/data",P,{headers:{"Content-Type":"application/json",...h?{"X-Node":h}:{}}},S),[e]),d=useCallback(async({service:S,xNode:h,ids:P,kwargs:D})=>{let O={model:"res.country",ids:P,method:"get_data_select",kwargs:D};return e?.requests?.post("/call",O,{headers:{"Content-Type":"application/json",...h?{"X-Node":h}:{}}},S)},[e]),g=useCallback(async({service:S,xNode:h,ids:P,kwargs:D})=>{let O={model:"res.country.state",ids:P,method:"get_data_select",kwargs:D};return e?.requests?.post("/call",O,{headers:{"Content-Type":"application/json",...h?{"X-Node":h}:{}}},S)},[e]),T=useCallback(async({service:S,xNode:h,kwargs:P})=>{let D={model:"res.country.ward",method:"get_data_select",kwargs:P};return e?.requests?.post("/call",D,{headers:{"Content-Type":"application/json",...h?{"X-Node":h}:{}}},S)},[e]),w=useCallback(async({service:S,xNode:h,kwargs:P,withContext:D})=>{let O={model:"res.partner.title",method:"get_data_select",kwargs:P,with_context:D};return e?.requests?.post("/call",O,{headers:{"Content-Type":"application/json",...h?{"X-Node":h}:{}}},S)},[e]);return {getView:t,getMenu:r,getActionDetail:o,getResequence:s,getSelectionItem:n$1,loadMessages:a,getVersion:u,grantAccess:m,removeTotpSetUp:l,requestSetupTotp:C,settingsWebRead2fa:v,signInSSO:c,verify2FA:y,get2FAMethods:i,verifyTotp:p,getNotifications:b,getCountry:d,getCity:g,getWard:T,getPartnerTitle:w}}function J(){let{env:e}=G(),t=useCallback(async({service:o,xNode:s,body:n})=>e.requests.post("/read_group",n,{headers:{"Content-Type":"application/json","X-Node":s}},o),[e]),r=useCallback(async({service:o,xNode:s,body:n,path:a,method:u="POST"})=>{let m={"Content-Type":"application/json","X-Node":s};return u==="GET"?e.requests.get(a,{headers:m},o):e.requests.post(a,n,{headers:m},o)},[e]);return {readGroup:t,getDataChart:r}}var Io=e=>({getASession:useCallback(async({model:r,args:o,domain:s,service:n,xNode:a})=>{let u={model:r,method:"web_search_read",args:o,kwargs:{domain:[s],specification:{name:{},user_id:{},config_id:{},start_at:{},stop_at:{},sequence_number:{},login_number:{},payment_method_ids:{},state:{},update_stock_at_closing:{},cash_register_balance_start:{}}}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...a?{"X-Node":a}:{}}},n)},[e])});var Ho=e=>({addEntity:useCallback(({model:r,values:o,xNode:s,service:n,isCreateEndpoint:a=false,isSupa:u=false,supaCallback:m})=>{if(u&&m)return m(o);let l={model:r,values:o};return e?.requests.post(a?"/create":"/call",l,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var Vo=e=>({changeOrderPreparationState:useCallback(({orderId:r,stageId:o,preparationDisplayId:s,xNode:n,service:a})=>{let u={model:"pos_preparation_display.order",method:"change_order_stage",ids:r,kwargs:{stage_id:o,preparation_display_id:s}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var Bo=e=>({checkPayment:useCallback(({model:r,ids:o,withContext:s,xNode:n,service:a})=>{let u={model:r,method:"check",ids:o,with_context:s};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var Xo=e=>({createEInvoice:useCallback(async({service:r,xNode:o,kwargs:s,ids:n,withContext:a})=>{let u={model:"pos.order",method:"create_e_invoice",kwargs:s,ids:n,with_context:a};return e?.requests?.post("/call",u,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},r)},[e])});var Wo=e=>({createEntity:useCallback(({model:r,args:o,xNode:s,service:n,isSupa:a=false,supaCallback:u})=>{if(a&&u)return u(o);let m={model:r,method:"create",args:o};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var Qo=e=>({createPosConfig:useCallback(({model:r,name:o,modulePosRestaurant:s,xNode:n,service:a})=>{let u={model:r,values:{name:o,module_pos_restaurant:s}};return e?.requests.post("/create",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var Ko=e=>({createSession:useCallback(({model:r,configId:o,xNode:s,service:n})=>{let a={model:r,method:"create",args:[{config_id:o}]};return e?.requests.post("/call",a,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var $o=e=>({deleteEntity:useCallback(({model:r,ids:o,xNode:s,service:n,method:a,isSupa:u=false,supaCallback:m})=>{if(u&&m)return m(o);let l={model:r,ids:o,method:a};return e?.requests.post("/call",l,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var zo=e=>({generatePaymentQRInfo:useCallback(({orderId:r,amount:o,posSessionId:s,xNode:n,service:a})=>{let u={order_id:r,amount:o,pos_session_id:s};return e?.requests.post("/payment/qr",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var Jo=e=>({getCurrentUser:useCallback(async({service:r,xNode:o,oauthUid:s,extraHeaders:n})=>e?.requests?.get(`/public/user/info/${s}`,{headers:n?{...n,"Content-Type":"application/json",...o?{"X-Node":o}:{}}:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},r),[e])});var Yo=e=>({getList:useCallback(async({model:r,domain:o$1,xNode:s,service:n,specification:a,offset:u,limit:m})=>{let l={model:r,method:"web_search_read",kwargs:o({domain:o$1,offset:u,limit:m,specification:a})};return e?.requests.post("/call",l,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var Zo=e=>({getOrderLine:useCallback(({model:r,ids:o,specification:s,xNode:n,service:a})=>{let u={model:r,method:"web_read",ids:o,kwargs:{specification:s}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var er=e=>({getPinCode:useCallback(({serialNumber:r,xNode:o,service:s})=>{let n={serial_number:r};return e?.requests.post("/pos_device/get_pin_code",n,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},s)},[e])});var tr=e=>({getPOS:useCallback(({model:r,args:o,domain:s,xNode:n,service:a})=>{let u={model:r,method:"web_search_read",args:o,kwargs:{domain:s,specification:{cash_control:{},current_session_id:{fields:{display_name:{}}},current_session_state:{},pos_session_state:{},pos_session_duration:{},currency_id:{fields:{display_name:{}}},name:{},pos_session_username:{},last_session_closing_date:{},last_session_closing_cash:{},number_of_rescue_session:{},current_user_id:{fields:{display_name:{}}},customer_display_type:{},module_pos_restaurant:{}}}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var or=e=>({getPreparationDisplayData:useCallback(({ids:r,xNode:o,service:s,withContext:n})=>{let a={model:"pos_preparation_display.display",method:"get_preparation_display_data",ids:r,with_context:n};return e?.requests.post("/call",a,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},s)},[e])});var rr=e=>({getProductImage:useCallback(({model:r,fields:o,limit:s,offset:n$1,domain:a,xNode:u,service:m,searchParams:l})=>{let C={model:r,fields:o,limit:s,offset:n$1,domain:a},v=l?`/search_read?${n(l)}`:"/search_read";return e?.requests.post(v,C,{headers:{"Content-Type":"application/json",...u?{"X-Node":u}:{}}},m)},[e])});var sr=e=>({handleCloseSession:useCallback(({model:r,ids:o,xNode:s,service:n,method:a})=>{let u={model:r,ids:o,method:a};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var nr=e=>({handleClosingDetailSession:useCallback(({model:r,ids:o,method:s,xNode:n,service:a,kwargs:u})=>{let m={model:r,ids:o,method:s,kwargs:u};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var ar=e=>({handleClosingSession:useCallback(({model:r,method:o,ids:s,kwargs:n,xNode:a,service:u})=>{let m={model:r,method:o,ids:s,kwargs:n};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...a?{"X-Node":a}:{}}},u)},[e])});var bo=(e,t=[])=>({modelName:e,data:t,fields:{},relations:{}}),ur=e=>{let t=L(),r=useCallback(async({model:s,ids:n$1,xNode:a,service:u,withContext:m,modelsToLoad:l=[],searchParams:C})=>{let v={model:s,method:"load_data",ids:n$1,with_context:m||{uid:37,lang:"vi_VN",tz:"Asia/Saigon"},kwargs:{models_to_load:l}},c=C?`/call?${n(C)}`:"/call";return e?.requests.post(c,v,{headers:{"Content-Type":"application/json",...a?{"X-Node":a}:{}}},u)},[e]),o=useCallback(async()=>{if(!t)return {};try{let s=Object.values(d);return (await Promise.all(s.map(async a=>{let u=f$1[a];if(!u)return bo(a);let{data:m,error:l}=await t.from(u).select("*");return l?(console.error(`Error loading ${a}:`,l),bo(a)):bo(a,m||[])}))).reduce((a,{modelName:u,...m})=>(a[u]=m,a),{})}catch(s){return console.error("Error loading data from Supabase:",s),{}}},[t]);return {loadDataPosSession:r,loadDataPosSessionSupabase:o}};var pr=e=>({manageOnChange:useCallback(({model:r,ids:o,args:s,xNode:n,service:a})=>{let u={model:r,method:"onchange",ids:o,args:s};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...n?{"X-Node":n}:{}}},a)},[e])});var cr=e=>({manageSession:useCallback(({model:r,method:o,ids:s,args:n,kwargs:a,xNode:u,service:m})=>{let l={model:r,method:o,ids:s,args:n,kwargs:a};return e?.requests.post("/call",l,{headers:{"Content-Type":"application/json",...u?{"X-Node":u}:{}}},m)},[e])});var mr=e=>({processOrder:useCallback(({orderId:r,xNode:o,service:s})=>{let n={model:"pos_preparation_display.order",method:"process_order",kwargs:{order_id:r}};return e?.requests.post("/call",n,{headers:{"Content-Type":"application/json",...o?{"X-Node":o}:{}}},s)},[e])});var dr=e=>({savePinCode:useCallback(({serialNumber:r,pinCode:o,xNode:s,service:n})=>{let a={serial_number:r,pin_code:o};return e?.requests.put("/pos_device/pin",a,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var lr=e=>({searchJournal:useCallback(({model:r,method:o,args:s,kwargs:n,xNode:a,service:u})=>{let m={model:r,method:o,args:s,kwargs:n};return e?.requests.post("/call",m,{headers:{"Content-Type":"application/json",...a?{"X-Node":a}:{}}},u)},[e])});var fr=e=>({updateClosedSession:useCallback(({model:r,domain:o,values:s,service:n,xNode:a})=>{let u={model:r,domain:o,values:s};return e?.requests.post("/create_update",u,{headers:{"Content-Type":"application/json",...a?{"X-Node":a}:{}}},n)},[e])});var yr=e=>({updateEntity:useCallback(({model:r,domain:o,values:s,isCreateEndpoint:n=true,xNode:a,service:u,isSupa:m=false,supaCallback:l})=>{if(m&&l)return l(s);let C={model:r,domain:o,values:s};return e?.requests.post(n?"/create_update":"/call",C,{headers:{"Content-Type":"application/json",...a?{"X-Node":a}:{}}},u)},[e])});var gr=e=>({updateOrderStatus:useCallback(({orderId:r,state:o,xNode:s,service:n})=>{let a={order_id:r,state:o};return e?.requests.put("/pos-order/status",a,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var Sr=e=>({completeCurrentStage:useCallback(({ids:r,withContext:o,xNode:s,service:n,requestStageId:a})=>{let u={model:"pos_preparation_display.orderline",method:"complete_current_stage",ids:r,kwargs:{request_stage_id:a},with_context:o||{lang:"vi_VN",tz:"Asia/Ho_Chi_Minh",uid:2}};return e?.requests.post("/call",u,{headers:{"Content-Type":"application/json",...s?{"X-Node":s}:{}}},n)},[e])});var Z=()=>{let e=L();return {addFloorSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),null;try{let{data:o,error:s}=await e.from("restaurant_floors").insert({name:r.name,sequence:r.sequence??1,pos_config_ids:r.pos_config_ids??[],table_ids:r.table_ids??[]}).select("id, name").single();return s?(console.error("Error adding floor:",s),null):[[o.id,o.name]]}catch(o){return console.error("Error adding floor:",o),null}},[e])}};var ee=()=>{let e=L();return {addTableSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),null;try{let{data:o,error:s}=await e.from("restaurant_tables").insert({floor_id:r.floor_id,table_number:r.table_number??0,seats:r.seats??1}).select("id, table_number").single();return s?(console.error("Error adding table:",s),null):[[o.id,o.table_number]]}catch(o){return console.error("Error adding table:",o),null}},[e])}};var te=()=>{let e=L();return {updateFloorSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{id:o,...s}=r,{error:n}=await e.from("restaurant_floors").update(s).eq("id",o);return n?(console.error("Error updating floor:",n),!1):!0}catch(o){return console.error("Error updating floor:",o),false}},[e])}};var oe=()=>{let e=L();return {updateTableSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{id:o,...s}=r,{error:n}=await e.from("restaurant_tables").update(s).eq("id",o);return n?(console.error("Error updating table:",n),!1):!0}catch(o){return console.error("Error updating table:",o),false}},[e])}};var re=()=>{let e=L();return {deleteFloorSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{error:o}=await e.from("restaurant_floors").delete().eq("id",r.id);return o?(console.error("Error deleting floor:",o),!1):!0}catch(o){return console.error("Error deleting floor:",o),false}},[e])}};var se=()=>{let e=L();return {deleteTableSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),false;try{let{error:o}=await e.from("restaurant_tables").delete().eq("id",r.id);return o?(console.error("Error deleting table:",o),!1):!0}catch(o){return console.error("Error deleting table:",o),false}},[e])}};var _s=[Ho,Io,Vo,Bo,Xo,Wo,Qo,Ko,$o,zo,Jo,Yo,Zo,er,tr,or,rr,sr,nr,ar,ur,pr,cr,mr,dr,lr,fr,yr,gr,Sr,Z,ee,te,oe,re,se],f=()=>{let{env:e}=G(),t={};for(let r of _s){let o=r(e);Object.assign(t,o);}return t};var vs=()=>{let{forgotPassword:e}=A();return useMutation({mutationFn:t=>e(t)})},ie=vs;var Ts=()=>{let{forgotPasswordSSO:e}=A();return useMutation({mutationFn:({email:t,with_context:r,method:o})=>e({email:t,with_context:r,method:o})})},ue=Ts;var As=()=>{let{getProviders:e}=A();return useMutation({mutationFn:t=>e(t?.db)})},pe=As;var Es=()=>{let{isValidToken:e}=A();return useMutation({mutationFn:t=>e(t)})},ce=Es;var Ds=()=>{let{login:e}=A();return useMutation({mutationFn:t=>e(t)})},me=Ds;var Ls=()=>{let{loginSocial:e}=A();return useMutation({mutationFn:t=>e(t)})},de=Ls;var Os=()=>{let{loginSupabase:e}=A();return useMutation({mutationFn:t=>e({email:t.email,password:t.password})})},le=Os;var qs=()=>{let{resetPassword:e}=A();return useMutation({mutationFn:t=>e(t.data,t.token)})},fe=qs;var Us=()=>{let{resetPasswordSSO:e}=A();return useMutation({mutationFn:({method:t,password:r,with_context:o})=>e({method:t,password:r,with_context:o})})},ye=Us;var js=()=>{let{updatePassword:e}=A();return useMutation({mutationFn:t=>e(t.data,t.token)})},ge=js;var Hs=()=>{let{logout:e}=A();return useMutation({mutationFn:t=>e(t)})},Se=Hs;var Bs=()=>{let{getAccessByCode:e}=A();return useMutation({mutationFn:({code:t})=>e(t)})},Ce=Bs;var Ws=()=>{let{isValidActionToken:e}=A();return useMutation({mutationFn:({actionToken:t})=>e(t)})},he=Ws;var Ks=()=>{let{getTenantMapping:e}=A();return useMutation({mutationFn:({shortName:t,service:r})=>e({shortName:t,service:r})})},_e=Ks;var zs=()=>{let{getToken:e}=A();return useMutation({mutationFn:({phone:t,name:r,service:o,xNode:s})=>e({phone:t,name:r,service:o,xNode:s})})},xe=zs;var Ys=()=>{let{getInfoCompany:e}=$();return useMutation({mutationFn:({service:t,id:r})=>e(r,t)})},ve=Ys;var en=()=>{let{getCurrentCompany:e}=$();return useMutation({mutationFn:({service:t,extraHeaders:r})=>e(t,r)})},be=en;var on=(e=[])=>{let{getList:t}=E(),r={id:{},name:{}},o={model:"res.company",ids:e,specification:r};return useQuery({queryKey:["list_company",e],queryFn:()=>t(o),refetchOnWindowFocus:false})},Te=on;var sn=()=>{let{exportExcel:e}=N();return useMutation({mutationFn:({model:t,domain:r,ids:o,fields:s,type:n,importCompat:a,context:u,groupby:m,service:l,xNode:C})=>e({model:t,domain:r,ids:o,fields:s,type:n,importCompat:a,context:u,groupby:m,service:l,xNode:C})})},Pe=sn;var an=()=>{let{getFieldExport:e}=N();return useMutation({mutationFn:({ids:t,model:r,isShow:o,parentField:s,fieldType:n,parentName:a,prefix:u,name:m,context:l,importCompat:C,service:v,xNode:c})=>e({ids:t,model:r,isShow:o,parentField:s,fieldType:n,parentName:a,prefix:u,name:m,context:l,importCompat:C,service:v,xNode:c})})},Ae=an;var pn=({model:e,service:t,xNode:r,context:o})=>{let{getFileExcel:s}=N();return useQuery({queryKey:["excel",e],queryFn:()=>s({model:e,service:t,xNode:r,context:o}).then(n=>n||[]),refetchOnWindowFocus:false})},Ge=pn;var mn=()=>{let{parsePreview:e}=N();return useMutation({mutationFn:({id:t,selectedSheet:r,isHeader:o,context:s,service:n,xNode:a})=>e({id:t,selectedSheet:r,isHeader:o,context:s,service:n,xNode:a})})},Ee=mn;var ln=()=>{let{uploadFileExcel:e}=N();return useMutation({mutationFn:({formData:t,service:r,xNode:o})=>e({formData:t,service:r,xNode:o})})},we=ln;var yn=()=>{let{uploadIdFile:e}=N();return useMutation({mutationFn:({formData:t,service:r,xNode:o})=>e({formData:t,service:r,xNode:o})})},De=yn;var Sn=()=>{let{executeImport:e}=N();return useMutation({mutationFn:({fields:t,columns:r,idFile:o,options:s,dryrun:n,context:a,service:u,xNode:m})=>e({fields:t,columns:r,idFile:o,options:s,dryrun:n,context:a,service:u,xNode:m})})},Fe=Sn;var hn=()=>{let{changeStatus:e}=F();return useMutation({mutationFn:({data:t})=>e({data:t})})},Le=hn;var xn=()=>{let{deleteComment:e}=F();return useMutation({mutationFn:({data:t})=>e({data:t})})},Me=xn;var bn=({data:e,queryKey:t})=>{let{getComment:r}=F();return useQuery({queryKey:t,queryFn:()=>r({data:e}).then(o=>{if(o)return o}),enabled:!!e.thread_id&&!isNaN(e.thread_id),refetchOnWindowFocus:false})},Oe=bn;var Pn=({data:e,queryKey:t,enabled:r})=>{let{getFormView:o}=F();return useQuery({queryKey:t,queryFn:()=>o({data:e}).then(s=>{if(s)return s}),enabled:r,refetchOnWindowFocus:false})},Re=Pn;var Gn=()=>{let{sentComment:e}=F();return useMutation({mutationFn:({data:t})=>e({data:t})})},qe=Gn;var wn=()=>{let{uploadImage:e}=F();return useMutation({mutationFn:({formData:t,service:r,xNode:o})=>e({formData:t,service:r,xNode:o})})},Ne=wn;var Fn=()=>{let{uploadFile:e}=F();return useMutation({mutationFn:({formData:t,service:r,xNode:o,path:s})=>e({formData:t,service:r,xNode:o,path:s})})},Ue=Fn;var Mn=({data:e,queryKey:t,enabled:r,service:o,xNode:s})=>{let{getThreadData:n}=F();return useQuery({queryKey:t,queryFn:()=>n({data:e,service:o,xNode:s}).then(a=>{if(a)return a}),enabled:r,refetchOnWindowFocus:false})},ke=Mn;var Rn=({data:e,queryKey:t,enabled:r,service:o,xNode:s})=>{let{getThreadMessages:n}=F();return useQuery({queryKey:t,queryFn:()=>n({data:e,service:o,xNode:s}).then(a=>{if(a)return a}),enabled:r,refetchOnWindowFocus:false})},je=Rn;var Nn=({data:e,queryKey:t,enabled:r,service:o,xNode:s})=>{let{getExternalTab:n}=F();return useQuery({queryKey:t,queryFn:()=>n({method:e?.method,context:e?.context,service:o,xNode:s}).then(a=>{if(a)return a}),enabled:r,refetchOnWindowFocus:false})},Ie=Nn;var kn=()=>{let{deleteApi:e}=E();return useMutation({mutationFn:({ids:t,model:r,service:o})=>e({ids:t,model:r,service:o})})},He=kn;var In=({data:e,queryKey:t,viewResponse:r})=>{let{getAll:o}=E();return useQuery({queryKey:t,queryFn:()=>o({data:e}).then(s=>{if(s)return s}),enabled:!!e.specification&&!!e.model&&!!e.domain&&!!r,refetchOnWindowFocus:false})},Ve=In;var Vn=()=>{let{getConversionRate:e}=E();return useQuery({queryKey:["currency-rate"],queryFn:()=>e().then(t=>{if(t)return t}),enabled:true})},Be=Vn;var Xn=()=>{let{getCurrency:e}=E();return useQuery({queryKey:["currency"],queryFn:()=>e().then(t=>{if(t)return t}),enabled:true})},Xe=Xn;var Qn=()=>{let{getDetail:e}=E();return useMutation({mutationFn:({model:t,ids:r,specification:o,context:s,service:n,xNode:a})=>e({model:t,ids:r,specification:o,context:s,service:n,xNode:a})})},We=Qn;var $n=({model:e,service:t,xNode:r,enabled:o})=>{let{getListFieldsOnchange:s}=E();return useQuery({queryKey:[`field-onchange-${e}`,e],queryFn:()=>s({model:e,service:t,xNode:r}).then(n=>{if(n)return n}),refetchOnWindowFocus:false,enabled:o,staleTime:1/0})},Qe=$n;var Jn=({domain:e,spectification:t,model:r})=>{let{getListMyBankAccount:o}=E();return useQuery({queryKey:["bank-account",r,e],queryFn:()=>o({domain:e,spectification:t,model:r}).then(s=>{if(s)return s}),enabled:true})},Ke=Jn;var Zn=()=>({initModel:useCallback(t=>{switch(t?.name){default:return new a$2(t)}},[])}),$e=Zn;var ea=()=>{let{toDataJS:e,parseORMOdoo:t}=E();return {toDataJS:e,parseORM:t}},ze=ea;var oa=()=>{let{onChange:e}=E();return useMutation({mutationFn:({ids:t,model:r,specification:o,context:s,object:n,fieldChange:a,service:u,xNode:m})=>e({ids:t,model:r,specification:o,context:s,object:n,fieldChange:a,service:u,xNode:m})})},Je=oa;var sa=()=>{let{save:e}=E();return useMutation({mutationFn:({ids:t,model:r,data:o,specification:s,context:n,path:a,service:u,xNode:m})=>e({ids:t,model:r,data:o,specification:s,context:n,path:a,service:u,xNode:m})})},Ye=sa;var aa=(e,t,r)=>{let{getProfile:o}=W();return useMutation({mutationFn:()=>o(e,t,r)})},Ze=aa;var ua=()=>{let{getUser:e}=W();return useMutation({mutationFn:({id:t,context:r})=>e({id:t,context:r})})},et=ua;var ca=()=>{let{switchUserLocale:e}=W();return useMutation({mutationFn:({data:t,service:r})=>e({id:t.data.id,values:t.data.values,service:r})})},tt=ca;var da=()=>{let{callButton:e}=R();return useMutation({mutationFn:({model:t,ids:r,context:o,method:s,service:n,xNode:a})=>e({model:t,ids:r,context:o,method:s,service:n,xNode:a}),onSuccess:t=>t})},ot=da;var fa=()=>{let{duplicateRecord:e}=R();return useMutation({mutationFn:({id:t,model:r,context:o,service:s,xNode:n})=>e({id:t,model:r,context:o,service:s,xNode:n})})},rt=fa;var ga=({aid:e,context:t,enabled:r,id:o,model:s,queryKey:n})=>{let {getActionDetail:a}=_();return useQuery({queryKey:n,queryFn:async()=>{if(e){let m=await a(e,t);if(m&&m.length>0)return m[0]}},enabled:r,refetchOnWindowFocus:false,staleTime:1/0})},st=ga;var Ca=(e,t,r)=>{let{getListCalendar:o}=E();return useQuery({queryKey:t,queryFn:()=>o({data:e}).then(s=>s||[]),enabled:r,refetchOnWindowFocus:false,staleTime:0})},nt=Ca;var _a=({model:e,width_context:t})=>{let{getGroups:r}=z();return useQuery({queryKey:[e,t],queryFn:()=>r({model:e,width_context:t}).then(o=>o||[]),refetchOnWindowFocus:false})},at=_a;var va=(e,t,r,o,s,n)=>{let{getAll:a}=E();return useQuery({queryKey:t,queryFn:()=>a({data:e,service:o,xNode:s,searchParams:n}).then(u=>u||[]),enabled:r,refetchOnWindowFocus:false,staleTime:0})},it=va;var Ta=(e,t,r,o,s)=>{let{getMenu:n}=_();return useQuery({queryKey:["menus",e],queryFn:()=>n(e,t,o,s).then(a=>a&&a?.records&&a?.records?.length>0?a?.records:[]),refetchOnWindowFocus:false,staleTime:1/0,enabled:r})},ut=Ta;var Aa=()=>{let{getPrintReportName:e}=R();return useMutation({mutationFn:({id:t})=>e({id:t})})},pt=Aa;var Ea=({field:e,color:t,model:r,width_context:o})=>{let{getProgressBar:s}=z();return useQuery({queryKey:[],queryFn:()=>s({field:e,color:t,model:r,width_context:o}).then(n=>n||[]),refetchOnWindowFocus:false})},ct=Ea;var Da=({data:e,queryKey:t,enabled:r,service:o,xNode:s})=>{let{getSelectionItem:n}=_();return useQuery({queryKey:t,queryFn:()=>n({data:e,service:o,xNode:s}),enabled:r,refetchOnWindowFocus:false})},mt=Da;var La=({viewParams:e,enabled:t})=>{let{getView:r}=_();return useQuery({queryKey:["get_view_by_action",e?.model,e?.context,e?.aid,...e?.views??[]],queryFn:()=>r(e),enabled:!!t,refetchOnWindowFocus:false,staleTime:1/0})},dt=La;var Oa=()=>{let{loadAction:e}=R();return useMutation({mutationFn:({idAction:t,context:r,service:o,xNode:s,searchParams:n})=>e({idAction:t,context:r,service:o,xNode:s,searchParams:n})})},lt=Oa;var qa=()=>{let{loadMessages:e}=_();return useQuery({queryKey:["load-message-failure"],queryFn:()=>e(),refetchOnWindowFocus:false})},ft=qa;var Ua=()=>{let{print:e}=R();return useMutation({mutationFn:({id:t,report:r,db:o})=>e({id:t,report:r,db:o})})},yt=Ua;var ja=()=>{let{removeRows:e}=R();return useMutation({mutationFn:({model:t,ids:r,context:o,service:s,xNode:n})=>e({model:t,ids:r,context:o,service:s,xNode:n})})},gt=ja;var Ha=()=>{let{getResequence:e}=_();return useMutation({mutationFn:({model:t,resIds:r,context:o,offset:s,xNode:n,service:a})=>e({model:t,ids:r,context:o,offset:s,xNode:n,service:a})})},St=Ha;var Ba=()=>{let{runAction:e}=R();return useMutation({mutationFn:({idAction:t,context:r,service:o,xNode:s,searchParams:n})=>e({idAction:t,context:r,service:o,xNode:s,searchParams:n})})},Ct=Ba;var Wa=()=>{let{signInSSO:e}=_();return useMutation({mutationFn:({redirect_uri:t,state:r,client_id:o,response_type:s,path:n,scope:a})=>e({redirect_uri:t,state:r,client_id:o,response_type:s,path:n,scope:a})})},ht=Wa;var Ka=()=>{let{verify2FA:e}=_();return useMutation({mutationFn:({method:t,with_context:r,code:o,device:s,location:n})=>e({method:t,with_context:r,code:o,device:s,location:n})})},_t=Ka;var za=()=>{let{get2FAMethods:e}=_();return useMutation({mutationFn:({method:t,with_context:r})=>e({method:t,with_context:r})})},xt=za;var Ya=()=>{let{grantAccess:e}=_();return useMutation({mutationFn:({redirect_uri:t,state:r,client_id:o,scopes:s})=>e({redirect_uri:t,state:r,client_id:o,scopes:s})})},vt=Ya;var ei=()=>{let{removeTotpSetUp:e}=_();return useMutation({mutationFn:({method:t,token:r})=>e({method:t,token:r})})},bt=ei;var oi=()=>{let{requestSetupTotp:e}=_();return useMutation({mutationFn:({method:t,token:r})=>e({method:t,token:r})})},Tt=oi;var si=()=>{let{settingsWebRead2fa:e}=_();return useMutation({mutationFn:({method:t,token:r,kwargs:o,model:s})=>e({method:t,model:s,kwargs:o,token:r})})},Pt=si;var ai=()=>{let{verifyTotp:e}=_();return useMutation({mutationFn:({method:t,action_token:r,code:o})=>e({method:t,action_token:r,code:o})})},At=ai;var ui=()=>{let{generateSerialNumber:e}=R();return useMutation({mutationFn:({kwargs:t,context:r,service:o,xNode:s})=>e({kwargs:t,context:r,service:o,xNode:s})})},Gt=ui;var ci=({service:e,xNode:t,body:r,queryKey:o=[],enabled:s})=>{let{getNotifications:n}=_();return useQuery({queryKey:o,queryFn:()=>n({body:r,service:e,xNode:t}).then(a=>a),enabled:s,refetchOnWindowFocus:false})},Et=ci;var di=()=>{let{getVersion:e}=_();return useMutation({mutationFn:()=>e()})},wt=di;var fi=()=>{let{getWard:e}=_();return useMutation({mutationFn:({service:t,xNode:r,kwargs:o})=>e({service:t,xNode:r,kwargs:o})})},Dt=fi;var gi=()=>{let{getCity:e}=_();return useMutation({mutationFn:({service:t,xNode:r,ids:o,kwargs:s})=>e({service:t,xNode:r,ids:o,kwargs:s})})},Ft=gi;var Ci=()=>{let{getCountry:e}=_();return useMutation({mutationFn:({service:t,xNode:r,ids:o,kwargs:s})=>e({service:t,xNode:r,ids:o,kwargs:s})})},Lt=Ci;var _i=()=>{let{getPartnerTitle:e}=_();return useMutation({mutationFn:({service:t,xNode:r,kwargs:o,withContext:s})=>e({service:t,xNode:r,kwargs:o,withContext:s})})},Mt=_i;var vi=(e,t,r,o)=>{let{readGroup:s}=J();return useQuery({queryKey:[r],queryFn:()=>s({service:e,xNode:t,body:r}),refetchOnWindowFocus:false,enabled:o})},Ot=vi;var Ti=(e,t,r,o,s,n,a)=>{let{getDataChart:u}=J();return useQuery({queryKey:[a],queryFn:()=>u({service:e,xNode:t,body:r,path:s,method:n}),refetchOnWindowFocus:false,enabled:o})},Rt=Ti;var Ai=()=>{let{addEntity:e}=f();return useMutation({mutationFn:e})},qt=Ai;var Ei=()=>{let e=f();return useMutation({mutationFn:e.getASession})},Nt=Ei;var Di=()=>{let e=f();return useMutation({mutationFn:e.changeOrderPreparationState})},Ut=Di;var Li=()=>{let e=f();return useMutation({mutationFn:e.checkPayment})},kt=Li;var Oi=()=>{let e=f();return useMutation({mutationFn:e.createEInvoice})},jt=Oi;var qi=()=>{let e=f();return useMutation({mutationFn:e.createEntity})},It=qi;var Ui=()=>{let e=f();return useMutation({mutationFn:e.createPosConfig})},Ht=Ui;var ji=()=>{let e=f();return useMutation({mutationFn:e.createSession})},Vt=ji;var Hi=()=>{let e=f();return useMutation({mutationFn:e.deleteEntity})},Bt=Hi;var Bi=()=>{let e=f();return useMutation({mutationFn:e.generatePaymentQRInfo})},Xt=Bi;var Wi=()=>{let e=f();return useMutation({mutationFn:e.getCurrentUser})},Wt=Wi;var Ki=()=>{let e=f();return useMutation({mutationFn:e.getList})},Qt=Ki;var zi=()=>{let e=f();return useMutation({mutationFn:e.getOrderLine})},Kt=zi;var Yi=()=>{let e=f();return useMutation({mutationFn:e.getPinCode})},$t=Yi;var eu=()=>{let e=f();return useMutation({mutationFn:e.getPOS})},zt=eu;var ou=()=>{let e=f();return useMutation({mutationFn:e.getPreparationDisplayData})},Jt=ou;var su=()=>{let e=f();return useMutation({mutationFn:e.getProductImage})},Yt=su;var au=()=>{let e=f();return useMutation({mutationFn:e.handleCloseSession})},Zt=au;var uu=()=>{let e=f();return useMutation({mutationFn:e.handleClosingDetailSession})},eo=uu;var cu=()=>{let e=f();return useMutation({mutationFn:e.handleClosingSession})},to=cu;var du=()=>{let e=f(),{env:t}=G();return useMutation({mutationFn:t.isSupaMode?e.loadDataPosSessionSupabase:e.loadDataPosSession})},oo=du;var fu=()=>{let e=f();return useMutation({mutationFn:e.manageOnChange})},ro=fu;var gu=()=>{let e=f();return useMutation({mutationFn:e.manageSession})},so=gu;var Cu=()=>{let e=f();return useMutation({mutationFn:e.processOrder})},no=Cu;var _u=()=>{let e=f();return useMutation({mutationFn:e.savePinCode})},ao=_u;var vu=()=>{let e=f();return useMutation({mutationFn:e.searchJournal})},io=vu;var Tu=()=>{let e=f();return useMutation({mutationFn:e.updateClosedSession})},uo=Tu;var Au=()=>{let e=f();return useMutation({mutationFn:e.updateEntity})},po=Au;var Eu=()=>{let e=f();return useMutation({mutationFn:e.updateOrderStatus})},co=Eu;var Du=()=>{let e=f();return useMutation({mutationFn:e.completeCurrentStage})},mo=Du;var To=()=>{let e=L();return {createOrderSupabase:useCallback(async r=>{if(!e)return console.error("Supabase client not initialized"),null;try{let{data:o,error:s}=await e.from("orders").insert({name:r.pos_reference,date_order:new Date().toISOString(),session_id:r.session_id,pos_reference:r.pos_reference,amount_tax:r.amount_tax,amount_total:r.amount_total,amount_paid:r.amount_paid,amount_return:r.amount_return,table_id:r.table_id,partner_id:r.partner_id}).select("id, pos_reference").single();return s?(console.error("Error creating order:",s),null):[[o.id,o.pos_reference]]}catch(o){return console.error("Error creating order:",o),null}},[e])}};var Mu=()=>{let{addFloorSupabase:e}=Z();return useMutation({mutationFn:e})},lo=Mu;var Ru=()=>{let{addTableSupabase:e}=ee();return useMutation({mutationFn:e})},fo=Ru;var Nu=()=>{let{updateFloorSupabase:e}=te();return useMutation({mutationFn:e})},yo=Nu;var ku=()=>{let{updateTableSupabase:e}=oe();return useMutation({mutationFn:e})},go=ku;var Iu=()=>{let{deleteFloorSupabase:e}=re();return useMutation({mutationFn:e})},So=Iu;var Vu=()=>{let{deleteTableSupabase:e}=se();return useMutation({mutationFn:e})},Co=Vu;var Xu=()=>{let{createOrderSupabase:e}=To();return useMutation({mutationFn:e})},ho=Xu;var hr=createContext(null),_r=({children:e})=>{let t={useForgotPassword:ie,useForgotPasswordSSO:ue,useGetProvider:pe,useIsValidToken:ce,useLoginCredential:me,useLoginSocial:de,useResetPassword:fe,useResetPasswordSSO:ye,useUpdatePassword:ge,useLogout:Se,useGetAccessByCode:Ce,useValidateActionToken:he,useGetCompanyInfo:ve,useGetCurrentCompany:be,useGetListCompany:Te,useExecuteImport:Fe,useExportExcel:Pe,useGetFieldExport:Ae,useGetFileExcel:Ge,useParsePreview:Ee,useUploadFileExcel:we,useUploadIdFile:De,useChangeStatus:Le,useDeleteComment:Me,useGetComment:Oe,useGetFormView:Re,useSendComment:qe,useUploadImage:Ne,useDelete:He,useGetAll:Ve,useGetConversionRate:Be,useGetCurrency:Xe,useGetDetail:We,useGetFieldOnChange:Qe,useGetListMyBankAccount:Ke,useModel:$e,useOdooDataTransform:ze,useOnChangeForm:Je,useSave:Ye,useGetProfile:Ze,useGetUser:et,useSwitchLocale:tt,useButton:ot,useDuplicateRecord:rt,useGet2FAMethods:xt,useGetActionDetail:st,useGetCalendar:nt,useGetGroups:at,useGetListData:it,useGetMenu:ut,useGetPrintReport:pt,useGetProGressBar:ct,useGetResequence:St,useGetSelection:mt,useGetView:dt,useLoadAction:lt,useLoadMessage:ft,usePrint:yt,useRemoveRow:gt,useRunAction:Ct,useSignInSSO:ht,useVerify2FA:_t,useGrantAccess:vt,useRemoveTotpSetup:bt,useRequestSetupTotp:Tt,useSettingsWebRead2fa:Pt,useVerifyTotp:At,useUploadFile:Ue,useCreateEntity:It,useGetASession:Nt,useCreateSession:Vt,useDeleteEntity:Bt,useGetList:Qt,useGetPos:zt,useHandleClosingSession:to,useManageSession:so,useUpdateClosedSession:uo,useUpdateEntity:po,useLoadDataPosSession:oo,useManageOnChange:ro,useGenSerialNumber:Gt,useGetOrderLine:Kt,useGetProductImage:Yt,useAddEntity:qt,useCheckPayment:kt,useHandleCloseSession:Zt,useHandleClosingDetailSession:eo,useCreatePosConfig:Ht,useSearchJournal:io,useGetTenantMapping:_e,useGetToken:xe,useGetPreparationDisplayData:Jt,useChangeOrderPreparationState:Ut,useUpdateOrderStatus:co,useGetThreadData:ke,useGetThreadMessages:je,useGetExternalTabs:Ie,useProcessOrder:no,useGeneratePaymentQrInfo:Xt,useSavePinCode:ao,useGetPinCode:$t,useReadGroup:Ot,useGetNotifications:Et,useGetDataChart:Rt,useGetVersion:wt,useCreateEInvoice:jt,useGetCurrentUser:Wt,useGetCity:Ft,useGetWard:Dt,useGetCountry:Lt,useGetPartnerTitle:Mt,useCompleteCurrentStage:mo,useLoginSupa:le,useAddFloor:lo,useAddTable:fo,useDeleteFloor:So,useDeleteTable:Co,useUpdateFloor:yo,useUpdateTable:go,useCreateOrder:ho};return jsx(hr.Provider,{value:t,children:e})},xr=()=>{let e=useContext(hr);if(!e)throw new Error("useService must be used within a ServiceProvider");return e};var vr=({children:e})=>{let{env:t}=G();function r(){let o=t?.defaultCompany;if(!o)return;o.display_name&&(document.title=o.display_name),document.documentElement.style.setProperty("--primary",o?.primary_color),document.documentElement.style.setProperty("--secondary",o?.secondary_color);let s=document.querySelector('meta[name="description"]');if(s)s.setAttribute("content",o.display_name);else {let a=document.createElement("meta");a.name="description",a.content=o.display_name,document.head.appendChild(a);}let n=(a,u)=>{let m=document.querySelector(`link[rel="${a}"]`);m?m.href=u:(m=document.createElement("link"),m.rel=a,m.href=u,document.head.appendChild(m));};if(o.logo){n("icon",o.logo),n("apple-touch-icon",o.logo);let a=document.querySelector('link[href="favicon.ico"]');a&&a.remove();}}return useEffect(()=>{r();},[t?.defaultCompany]),jsx(Fragment,{children:e})};export{je as $,jt as $a,le as A,lt as Aa,fo as Ab,fe as B,ft as Ba,yo as Bb,ye as C,yt as Ca,go as Cb,ge as D,gt as Da,So as Db,Se as E,St as Ea,Co as Eb,Ce as F,Ct as Fa,ho as Fb,he as G,ht as Ga,_e as H,_t as Ha,xe as I,xt as Ia,ve as J,vt as Ja,be as K,bt as Ka,Te as L,Tt as La,Pe as M,Pt as Ma,Ae as N,At as Na,Ge as O,Gt as Oa,Ee as P,Et as Pa,we as Q,wt as Qa,De as R,Dt as Ra,Fe as S,Ft as Sa,Le as T,Lt as Ta,Me as U,Mt as Ua,Oe as V,Ot as Va,Re as W,Rt as Wa,qe as X,qt as Xa,Ne as Y,Nt as Ya,Ue as Z,Ut as Za,ke as _,kt as _a,ae as a,Ie as aa,It as ab,Lo as b,He as ba,Ht as bb,Oo as c,Ve as ca,Vt as cb,G as d,Be as da,Bt as db,_r as e,Xe as ea,Xt as eb,xr as f,We as fa,Wt as fb,vr as g,Qe as ga,Qt as gb,qo as h,Ke as ha,Kt as hb,No as i,$e as ia,$t as ib,R as j,ze as ja,zt as jb,A as k,Je as ka,Jt as kb,$ as l,Ye as la,Yt as lb,N as m,Ze as ma,Zt as mb,F as n,et as na,eo as nb,z as o,tt as oa,to as ob,E as p,ot as pa,oo as pb,W as q,rt as qa,ro as qb,_ as r,st as ra,so as rb,J as s,nt as sa,no as sb,f as t,at as ta,ao as tb,ie as u,it as ua,io as ub,ue as v,ut as va,uo as vb,pe as w,pt as wa,po as wb,ce as x,ct as xa,co as xb,me as y,mt as ya,mo as yb,de as z,dt as za,lo as zb};
@@ -1,2 +0,0 @@
1
- import {a,b,p}from'./chunk-Y65DQP66.mjs';import k from'axios';function I(n,l){return n.split(",").map(d=>d.trim()).filter(d=>!l?.some(_=>d?.startsWith(_))).join(",")}var x={init(n){let l=n?.localStorageUtils??a(),d=n?.sessionStorageUtils??b,_=n?.db,N=n?.config?.database,T=false,R=[],U=(e,s=null)=>{R?.forEach(t=>{e?t.reject(e):t.resolve(s);}),R=[];},u=k.create({adapter:k.defaults.adapter,baseURL:n?.baseUrl,timeout:5e4,paramsSerializer:e=>new URLSearchParams(e).toString()});u.interceptors.request.use(async e=>{let s=navigator.languages?.join(",")||navigator.language,t=e.headers["X-Use-Refresh-Token"]==="true",r=e.headers["X-Use-Action-Token"]==="true",c=e.headers["X-Action-Token"],y=I(s,n?.excludeLanguages),a=null;return r&&c?a=c:a=await(t?l.getRefreshToken:l.getAccessToken)?.(),a&&(e.headers.Authorization=`Bearer ${a}`),N&&(e.headers.DATABASE=N),e.headers["Accept-Language"]=y,e},Promise.reject);let B=()=>{if(!n.refreshTokenEndpoint)return `${g(n?.baseUrl)}/authentication/oauth2/token`;let e=String(n.refreshTokenEndpoint);if(/^https?:\/\//i.test(e))return e;let s=String(n?.baseUrl||"").replace(/\/$/,""),t=e.startsWith("/")?e:`/${e}`;return `${s}${t}`};u.interceptors.response.use(e=>b$1(e),async e=>{let s=async r=>{if(!r.response)return r;let{data:c}=r.response;return c&&c.code===400&&["invalid_grant"].includes(c.data?.error)&&await p$1(),c},t=e.config;if((e.response?.status===403||e.response?.status===401||e.response?.status===404)&&["TOKEN_EXPIRED","AUTHEN_FAIL",401,"ERR_2FA_006"].includes(e.response.data.code)){if(T)return new Promise(function(a,f){R.push({resolve:a,reject:f});}).then(a=>(t.headers.Authorization="Bearer "+a,t.data=p(t,a),u.request(t))).catch(async a=>{(a.response?.status===400||a.response?.status===401)&&["invalid_grant"].includes(a.response.data.error)&&await p$1();});let r=await d.getBrowserSession(),c=await l.getRefreshToken(),y=await l.getAccessToken();if(T=true,!c&&(!r||r=="unActive"))await p$1();else {let a=Object.fromEntries(Object.entries({refresh_token:c,grant_type:"refresh_token",client_id:n.config.clientId,client_secret:n.config.clientSecret}).filter(([i,o])=>!!o)),f=B();return new Promise(function(i){k.post(f,a,{headers:{"Content-Type":n.refreshTokenEndpoint?"application/x-www-form-urlencoded":"multipart/form-data",Authorization:`Bearer ${y}`}}).then(async o=>{let h=o.data;await l.setToken(h.access_token),await l.setRefreshToken(h.refresh_token),k.defaults.headers.common.Authorization="Bearer "+h.access_token,t.headers.Authorization="Bearer "+h.access_token,t.data=p(t,h.access_token),U(null,h.access_token),i(u.request(t));}).catch(async o=>{if(o&&(o?.error_code==="AUTHEN_FAIL"||o?.error_code==="TOKEN_EXPIRED"||o?.error_code==="TOKEN_INCORRECT"||o?.code==="ERR_2FA_006")&&await p$1(),o&&o.response){let{error_code:h}=o.response?.data||{},{code:v}=o;(h==="AUTHEN_FAIL"||v==="ERR_2FA_006")&&await p$1();}U(o,null);}).finally(()=>{T=false;});})}}return Promise.reject(await s(e))}),u.interceptors.response.use(e=>b$1(e),async e=>{let s=async r=>{if(!r.response)return r;let{data:c}=r.response;return c&&c.code===400&&["invalid_grant"].includes(c.data?.error)&&await p$1(),c},t=e.config;if((e.response?.status===403||e.response?.status===401||e.response?.status===404)&&["TOKEN_EXPIRED","AUTHEN_FAIL",401,"ERR_2FA_006"].includes(e.response.data.code)){if(T)return new Promise(function(a,f){R.push({resolve:a,reject:f});}).then(a=>(t.headers.Authorization="Bearer "+a,t.data=p(t,a),u.request(t))).catch(async a=>{(a.response?.status===400||a.response?.status===401)&&["invalid_grant"].includes(a.response.data.error)&&await p$1();});let r=await d.getBrowserSession(),c=await l.getRefreshToken(),y=await l.getAccessToken();if(T=true,!c&&(!r||r=="unActive"))await p$1();else {let a=Object.fromEntries(Object.entries({refresh_token:c,grant_type:"refresh_token",client_id:n.config.clientId,client_secret:n.config.clientSecret}).filter(([f,i])=>!!i));return new Promise(function(f){k.post(`${n?.baseUrl}${n.refreshTokenEndpoint??"/authentication/oauth2/token"}`,a,{headers:{"Content-Type":n.refreshTokenEndpoint?"application/x-www-form-urlencoded":"multipart/form-data",Authorization:`Bearer ${y}`}}).then(async i=>{let o=i.data;await l.setToken(o.access_token),await l.setRefreshToken(o.refresh_token),k.defaults.headers.common.Authorization="Bearer "+o.access_token,t.headers.Authorization="Bearer "+o.access_token,t.data=p(t,o.access_token),U(null,o.access_token),f(u.request(t));}).catch(async i=>{if(console.log("catch error: ",i),i&&(i?.error_code==="AUTHEN_FAIL"||i?.error_code==="TOKEN_EXPIRED"||i?.error_code==="TOKEN_INCORRECT"||i?.code==="ERR_2FA_006")&&await p$1(),i&&i.response){console.log("err response code: ",i),console.log("err response: ",i.response);let{error_code:o}=i.response?.data||{},{code:h}=i;(o==="AUTHEN_FAIL"||h==="ERR_2FA_006")&&await p$1();}U(i,null);}).finally(()=>{T=false;});})}}return Promise.reject(await s(e))});let b$1=e=>e&&e.data?e.data:e,p$1=async()=>{await l.clearToken(),typeof window<"u"&&(window.location.href="/login");};function E(e,s){return e+(s?"?db="+s:"")}let g=(e,s)=>`${e.replace(/\/$/,"")}/${s||d.getMenuFocus().service||n?.default_service}/api/v2`,w=e=>({headers:{...e.headers,...d.getXNode()?{"X-Node":d.getXNode()}:{}}}),A=e=>e;return {get:(e,s,t)=>u.get(E(g(n?.baseUrl,t)+e,_),w(s)).then(A),post:async(e,s,t,r)=>u.post(E(g(n?.baseUrl,r)+e,_),s,w(t)).then(A),post_excel:(e,s,t,r)=>u.post(E(g(n?.baseUrl,r)+e,_),s,{responseType:"arraybuffer",headers:{"Content-Type":typeof window<"u"?"application/json":"application/javascript",Accept:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",...t,...d.getXNode()?{"X-Node":d.getXNode()}:{}}}).then(A),put:(e,s,t,r)=>u.put(E(g(n?.baseUrl,r)+e,_),s,w(t)).then(A),patch:(e,s,t,r)=>u.patch(E(g(n?.baseUrl,r)+e,_),s,w(t)).then(A),delete:(e,s,t)=>u.delete(E(g(n?.baseUrl,t)+e,_),w(s)).then(A)}}};
2
- export{x as a};