Files

1 line
11 KiB
Plaintext

"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3561],{5507:(e,t,a)=>{a.d(t,{uE:()=>p,Ay:()=>f,hw:()=>h,B9:()=>g});var n=a(26750),r=a(32866);a(90798);let o=async e=>{},i=()=>localStorage.getItem("app-locale")||"vi",l=null,c=null,d=null,s=e=>new Promise((t,a)=>{if(!window.grecaptcha){a(Error("reCAPTCHA is not loaded"));return}window.grecaptcha.ready(()=>{try{let n=document.getElementById("recaptcha-invisible-container");n||((n=document.createElement("div")).id="recaptcha-invisible-container",n.style.display="none",document.body.appendChild(n)),null===l?l=window.grecaptcha.render(n,{sitekey:e,size:"invisible",callback:e=>{c&&c(e),u()},"expired-callback":()=>{d&&d(Error("reCAPTCHA expired")),u()},"error-callback":()=>{d&&d(Error("reCAPTCHA error")),u()}}):window.grecaptcha.reset(l),d&&d(Error("Cancelled by new request")),c=t,d=a,window.grecaptcha.execute(l)}catch(e){a(e)}})}),u=()=>{c=null,d=null},p=(e=>{let t=n.A.create({baseURL:"/api/proxy",timeout:15e3,headers:{"Content-Type":"application/json",Accept:"application/json","Accept-Language":i()},...e});return t.interceptors.request.use(async e=>{e.headers["Accept-Language"]=i(),await o(e.headers);try{let a=localStorage.getItem("auth-storage");if(a){var t;let n=JSON.parse(a),r=null==n?void 0:null===(t=n.state)||void 0===t?void 0:t.token;r&&(e.headers.Authorization="Bearer ".concat(r))}}catch(e){}if(e.method&&["post","put","delete"].includes(e.method.toLowerCase())&&!e.headers["X-Recaptcha-Token"]){let t="6Ldw8OUsAAAAAIJM4mYPSX6gGevjwik343IU0ydO";if(t&&window.grecaptcha)try{let a=await s(t);a&&(e.headers["X-Recaptcha-Token"]=a)}catch(e){}}return e.params&&(e.params=(0,r.n5)(e.params,i())),e},e=>Promise.reject(e)),t.interceptors.response.use(e=>{var t;let a=e.config.url||"",n=a.includes("/auth/login")||a.includes("/auth/refresh"),o=a.includes("pt-profile")||a.includes("patient-records");return!n&&o&&e.data&&("Get profile failed"===e.data.message||401===e.data.status||(null===(t=e.data.mess)||void 0===t?void 0:t.includes("Kh\xf4ng thể kết nối đến m\xe1y chủ bệnh viện")))?(localStorage.removeItem("auth-storage"),document.cookie="auth-storage=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;",window.location.href="/"):e.data&&Array.isArray(e.data.data)?e.data.data=e.data.data.map(e=>(0,r.yg)(e,i())):e.data&&e.data.data&&(e.data.data=(0,r.yg)(e.data.data,i())),e},async e=>{var a,r,o,l,c,d,s,u,p;let h=e.config,g=h.url||"",f=g.includes("/auth/login")||g.includes("/auth/refresh")||g.includes("/client-auth/"),v=g.includes("pt-profile")||g.includes("patient-records");if(!f&&v&&(null===(a=e.response)||void 0===a?void 0:a.data)&&("Get profile failed"===e.response.data.message||401===e.response.data.status||(null===(r=e.response.data.mess)||void 0===r?void 0:r.includes("Kh\xf4ng thể kết nối đến m\xe1y chủ bệnh viện"))))return localStorage.removeItem("auth-storage"),document.cookie="auth-storage=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;",window.location.href="/",Promise.reject(e);if(!f&&(null===(o=e.response)||void 0===o?void 0:o.status)===401&&!h._retry){h._retry=!0;try{let e=localStorage.getItem("auth-storage");if(e){let a=JSON.parse(e),r=null==a?void 0:null===(l=a.state)||void 0===l?void 0:l.refreshToken;if(r){let e=await n.A.post("".concat("https://api.bvdaihoc.com.vn","/umc/auth/refresh"),{refreshToken:r},{headers:{Authorization:"Bearer ".concat(r),"Accept-Language":i()}});if(e.data){let n=e.data.token||e.data.access_token||(null===(c=e.data.data)||void 0===c?void 0:c.token)||(null===(d=e.data.data)||void 0===d?void 0:d.access_token),o=e.data.refreshToken||e.data.refresh_token||(null===(s=e.data.data)||void 0===s?void 0:s.refreshToken)||(null===(u=e.data.data)||void 0===u?void 0:u.refresh_token),i=e.data.expiresAt||(null===(p=e.data.data)||void 0===p?void 0:p.expiresAt);if(n){let e={...a,state:{...a.state,token:n,refreshToken:o||r,expiresAt:i||a.state.expiresAt,isAuthenticated:!0}};return localStorage.setItem("auth-storage",JSON.stringify(e)),document.cookie="auth-storage=".concat(encodeURIComponent(JSON.stringify(e)),"; path=/;"),h.headers.Authorization="Bearer ".concat(n),t(h)}}}}throw Error("Refresh not possible")}catch(e){return localStorage.removeItem("auth-storage"),document.cookie="auth-storage=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;",v&&(window.location.href="/"),Promise.reject(e)}}return Promise.reject(e)}),t})(),h=async()=>{let e="6Ldw8OUsAAAAAIJM4mYPSX6gGevjwik343IU0ydO";if(e){if(!window.grecaptcha)throw Error("reCAPTCHA is not loaded");try{return await s(e)}catch(e){throw e}}},g=e=>{localStorage.setItem("app-locale",e),p.defaults.headers["Accept-Language"]=e},f=p},32866:(e,t,a)=>{a.d(t,{n5:()=>i,yg:()=>function e(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"vi";if(Array.isArray(t))return t.map(t=>e(t,a));if("object"==typeof t&&null!==t){let r={...t};for(let t in r)if("slug"===t&&"object"==typeof r[t]&&null!==r[t]){let e=r.slug;r.translation_slugs={...e},n.includes(a)?(r.slug=e.en,r.translation_slugs[a]=e.en):r.slug=e[a]}else r[t]=e(r[t],a);return r}return t},z9:()=>r});let n=["jp","zh"];function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"-";if(!e)return"";let a=String(e).toLowerCase().trim().replace(/\t/g,"").replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g,"a").replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g,"e").replace(/ì|í|ị|ỉ|ĩ/g,"i").replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g,"o").replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g,"u").replace(/ỳ|ý|ỵ|ỷ|ỹ/g,"y").replace(/đ/g,"d").replace(/\s+/g,t).replace(RegExp("[^a-z0-9".concat(t,"_]"),"g"),"").replace(RegExp("(".concat(o(t),")\\1+"),"g"),t);return a.replace(RegExp("^[".concat(o(t),"]+|[").concat(o(t),"]+$"),"g"),"")}function o(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"$&")}function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"vi",a=["slug"],n=["_eq","_like"],r={...e};for(let e in r)if(a.includes(e)&&"object"==typeof r[e]&&null!==r[e]){let a=r[e],o=Object.keys(a).find(e=>n.includes(e));o&&(r["".concat(e,"->").concat(t)]={[o]:a[o]},delete r[e])}return r}},85942:(e,t,a)=>{a.d(t,{Ay:()=>l,Hg:()=>o,RS:()=>r,ZP:()=>i,hw:()=>n.hw});var n=a(5507);let r=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"vi",a=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;(0,n.B9)(t);let o={};if(r&&(o["X-Recaptcha-Token"]=r),e instanceof FormData){let{data:t}=await n.Ay.post("/contacts",e,{headers:{"Content-Type":"multipart/form-data",...o},onUploadProgress:a});return t}{let{data:t}=await n.Ay.post("/contacts",{...e},{headers:o});return t}},o=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"vi",a=arguments.length>2?arguments[2]:void 0;(0,n.B9)(t);let r={};if(a&&(r["X-Recaptcha-Token"]=a),e instanceof FormData){let{data:t}=await n.Ay.post("/candidate-profiles",e,{headers:{"Content-Type":"multipart/form-data",...r}});return t}{let{data:t}=await n.Ay.post("/candidate-profiles",e,{headers:r});return t}},i=async function(e,t){var a,r,o;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vi",l=arguments.length>3?arguments[3]:void 0;(0,n.B9)(i);let c=e.size,d=Math.ceil(c/512e3),s=await n.Ay.post("/files/upload/init",{fileName:e.name,totalSize:c,totalChunks:d,chunkSize:512e3},{headers:{...l?{"X-Recaptcha-Token":l}:{}}});if(!s.data||!s.data.success||!(null===(a=s.data.data)||void 0===a?void 0:a.uploadId))throw Error("Failed to initialize chunked upload session");let{uploadId:u}=s.data.data;for(let a=0;a<d;a++){let r=512e3*a,i=Math.min(r+512e3,c),s=new File([e.slice(r,i)],e.name,{type:e.type}),p=new FormData;p.append("uploadId",u),p.append("chunkIndex",a.toString()),p.append("file",s);let h=3,g=!1;for(;h>0&&!g;)try{let e=await n.Ay.post("/files/upload/chunk",p,{headers:{"Content-Type":"multipart/form-data",...l?{"X-Recaptcha-Token":l}:{}}});if(null===(o=e.data)||void 0===o?void 0:o.success)g=!0;else if(h--,0===h)throw Error("Server responded with failure")}catch(e){if(0==--h)throw e;await new Promise(e=>setTimeout(e,1e3))}t&&t({uploadedChunks:a+1,totalChunks:d,percentage:Math.round((a+1)/d*100)})}let p=await n.Ay.post("/files/upload/complete",{uploadId:u},{headers:{...l?{"X-Recaptcha-Token":l}:{}}});if(!p.data||!p.data.success||!(null===(r=p.data.data)||void 0===r?void 0:r.path))throw Error("Failed to complete chunked upload");return p.data.data},l={fetchItems:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vi";try{(0,n.B9)(a);let{data:r}=await n.Ay.get("/".concat(e),{params:t});return r}catch(e){return{data:[],page:0,pageSize:0,total:0,totalPages:0}}},fetchOneItem:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vi";try{(0,n.B9)(a);let{data:r}=await n.Ay.get("/".concat(e),{params:t});return r}catch(e){return{data:[]}}},fetchItem:async function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vi",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];try{(0,n.B9)(a);let{data:o}=await n.Ay.get("/".concat(e),{params:{filters:{slug:{_eq:t}},fields:r,limit:1,pagination:!1,locale:a}});return o.data.length>0?o.data[0]:null}catch(e){return null}},fetchItemById:async function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vi";try{(0,n.B9)(r);let{data:o}=await n.Ay.get("/".concat(e),{params:{filters:{id:{_eq:t},status:{_eq:"published"}},fields:a,limit:1,pagination:!1,locale:r}});return o.data.length>0?o.data[0]:null}catch(e){return null}},fetchItemBySlug:async function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vi",o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=arguments.length>6?arguments[6]:void 0;try{var c;(0,n.B9)(r);let d={filters:{slug:{_eq:t},...i?{id:{_eq:i}}:{},...o?{status:{_neq:"published"}}:{status:{_eq:"published"}},...l||{}},fields:a,pagination:!1,locale:r},{data:s}=await n.Ay.get("/".concat(e),{params:d});return(null===(c=s.data)||void 0===c?void 0:c.length)>0?s.data[0]:null}catch(e){return null}},submitContactForm:r,submitCareerApplication:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"vi",a=arguments.length>2?arguments[2]:void 0;(0,n.B9)(t);let r={"Content-Type":"multipart/form-data"};a&&(r["X-Recaptcha-Token"]=a);let{data:o}=await n.Ay.post("/career_applications",e,{headers:r});return o},submitCandidateProfile:o,uploadFile:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Resume",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vi";(0,n.B9)(a);let r=new FormData;r.append("folder",t),r.append("files[]",e),r.append("prefix","1");let{data:o}=await n.Ay.post("/files",r,{headers:{"Content-Type":"multipart/form-data"}});return o},uploadFileInChunks:i,getRecaptchaToken:n.hw}}}]);