1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68678,e=>{"use strict";let t="veo-content-updated",n="veo_content_updated",r="veo-content-refresh";async function i(e,t){let n,r=new Headers(t?.headers);r.set("Accept","application/json");let i=await fetch(((n=new URL(e,window.location.origin)).searchParams.set("_fresh",String(Date.now())),n.pathname+n.search),{...t,cache:"no-store",headers:r});if(!i.ok)throw Error(`Request failed: ${i.status}`);return i.json()}e.s(["CONTENT_UPDATED_EVENT",0,t,"fetchFreshJson",0,i,"notifyContentUpdated",0,function(e,i){let o={scope:e,path:i,source:"local",timestamp:Date.now()};window.dispatchEvent(new CustomEvent(t,{detail:o}));try{window.localStorage.setItem(n,JSON.stringify(o))}catch{}try{let e=new BroadcastChannel(r);e.postMessage(o),e.close()}catch{}},"subscribeContentUpdates",0,function(e,i=["cms","crm","all"]){let o=t=>{var n;n=t.scope,("all"===n||i.includes("all")||i.includes(n))&&e(t)},a=e=>{let t=e.detail;t&&o(t)},s=e=>{if(e.key===n&&e.newValue)try{o({...JSON.parse(e.newValue),source:"storage"})}catch{}},u=null;try{(u=new BroadcastChannel(r)).onmessage=e=>{e.data&&o({...e.data,source:"broadcast"})}}catch{}return window.addEventListener(t,a),window.addEventListener("storage",s),()=>{window.removeEventListener(t,a),window.removeEventListener("storage",s),u?.close()}}])},33525,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},18967,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return E},MissingStaticPage:function(){return w},NormalizeError:function(){return v},PageNotFoundError:function(){return b},SP:function(){return p},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return a},getDisplayName:function(){return d},getLocationOrigin:function(){return l},getURL:function(){return c},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return _}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>s.test(e);function l(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=l();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function m(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let p="u">typeof performance,g=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class v extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class w extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class E extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function _(e){return JSON.stringify({message:e.message,stack:e.stack})}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return u},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return s}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});function o(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,a(e));else t.set(n,a(r));return t}function u(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},97370,e=>{"use strict";let t="veo_users",n="veo_session_user_id",r="veo_session_email";function i(e){return e.toLowerCase().trim()}function o(e){let t=e.replace(/\D/g,"");return t.startsWith("84")&&t.length>9?`0${t.slice(2)}`:t}function a(){try{let e=localStorage.getItem(t);return e?JSON.parse(e):[]}catch{return[]}}function s(e){localStorage.setItem(t,JSON.stringify(e))}function u(e){null===e?localStorage.removeItem(n):localStorage.setItem(n,e),localStorage.removeItem(r)}e.s(["authChangePassword",0,function(e,t){let n=a(),r=n.findIndex(t=>t.id===e);return -1===r?{ok:!1,error:"Không tìm thấy tà i khoản."}:(n[r]={...n[r],password:t},s(n),{ok:!0})},"authFindPasswordResetUser",0,function(e,t){let n=i(e),r=o(t);if(!n||!r)return{ok:!1,error:"Vui lòng nháºp email và sá» Äiá»n thoại Äã ÄÄng ký."};let s=a().find(e=>i(e.email)===n);return s?s.phone?o(s.phone)!==r?{ok:!1,error:"Sá» Äiá»n thoại không khá»p vá»i tà i khoản nà y."}:{ok:!0,user:{id:s.id,email:s.email,name:s.name}}:{ok:!1,error:"Tà i khoản nà y chưa có sá» Äiá»n thoại Äá» xác minh. Vui lòng ÄÄng nháºp bằng Google hoặc liên há» VEO Äá» ÄÆ°á»£c há» trợ."}:{ok:!1,error:"Không tìm thấy tà i khoản vá»i email nà y."}},"authLogin",0,function(e,t){let n=a(),r=i(e),o=n.find(e=>i(e.email)===r&&e.password===t);return o?(u(o.id),o):null},"authLoginWithGoogle",0,function(e){let t=a(),n=i(e.email),r=t.findIndex(e=>i(e.email)===n);if(-1!==r){let n=t[r],i={...n,name:n.name||e.name,avatarUrl:n.avatarUrl||e.picture};return t[r]=i,s(t),u(i.id),i}let o={id:`google-${e.sub}`,name:e.name.trim()||n.split("@")[0],email:n,phone:"",avatarUrl:e.picture,password:`google-oauth-${e.sub}`,joinedAt:new Date().toISOString().slice(0,10)};return t.push(o),s(t),u(o.id),o},"authRegister",0,function(e,t,n,r){let o=a(),u=i(t),l=n.trim();if(!l)return{ok:!1,error:"Vui lòng nháºp sá» Äiá»n thoại Äá» có thá» khôi phục tà i khoản khi cần."};if(o.some(e=>i(e.email)===u))return{ok:!1,error:"Email nà y Äã ÄÆ°á»£c ÄÄng ký. Vui lòng dùng email khác hoặc ÄÄng nháºp."};let c={id:`cust-${Date.now()}`,name:e.trim(),email:u,phone:l,password:r,joinedAt:new Date().toISOString().slice(0,10)};return o.push(c),s(o),{ok:!0}},"authSetNewPasswordByUserId",0,function(e,t){let n=a(),r=n.findIndex(t=>t.id===e);return -1===r?{ok:!1,error:"Không tìm thấy tà i khoản."}:(n[r]={...n[r],password:t},s(n),{ok:!0})},"authUpdateProfile",0,function(e,t){let n=a(),r=n.findIndex(t=>t.id===e);if(-1===r)return{ok:!1,error:"Không tìm thấy tà i khoản."};let i={...n[r],name:t.name.trim(),phone:t.phone.trim(),birthDate:t.birthDate?.trim()||void 0,avatarUrl:t.avatarUrl?.trim()||void 0};return n[r]=i,s(n),u(i.id),{ok:!0,user:i}},"getSessionUserId",0,function(){let e=localStorage.getItem(n);if(e)return e;let t=localStorage.getItem(r);if(!t)return null;let i=a().find(e=>e.email.toLowerCase()===t.toLowerCase());return i?(localStorage.setItem(n,i.id),localStorage.removeItem(r),i.id):(localStorage.removeItem(r),null)},"getUsers",0,a,"setSessionUserId",0,u])},18566,(e,t,n)=>{t.exports=e.r(76562)},32341,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(97370);let i=(0,n.createContext)(null);function o(e){return fetch("/api/crm/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({users:e.map(({id:e,name:t,email:n,phone:r,joinedAt:i})=>({id:e,name:t,email:n,phone:r,joinedAt:i}))})}).catch(()=>{})}e.s(["AuthProvider",0,function({children:e}
1){let[a,s]=(0,n.useState)(null),[u,l]=(0,n.useState)(!0);(0,n.useEffect)(()=>{let e=window.setTimeout(()=>{o((0,r.getUsers)());let e=(0,r.getSessionUserId)();e&&s((0,r.getUsers)().find(t=>t.id===e)??null),l(!1)},0);return()=>window.clearTimeout(e)},[]);let c=(0,n.useCallback)(async(e,t)=>{let n=(0,r.authLogin)(e,t);return n?(s(n),o((0,r.getUsers)()),{ok:!0}):{ok:!1,error:"Email hoặc máºt khẩu không Äúng. Vui lòng thá» lại."}},[]),d=(0,n.useCallback)(async e=>e.email?(s((0,r.authLoginWithGoogle)(e)),o((0,r.getUsers)()),{ok:!0}):{ok:!1,error:"Google không trả vá» email tà i khoản."},[]),f=(0,n.useCallback)(()=>{(0,r.setSessionUserId)(null),s(null)},[]),m=(0,n.useCallback)(async(e,t,n,i)=>{let a=(0,r.authRegister)(e,t,n,i);return a.ok&&o((0,r.getUsers)()),a},[]),h=(0,n.useCallback)(async e=>a?(0,r.authChangePassword)(a.id,e):{ok:!1,error:"Bạn chưa ÄÄng nháºp."},[a]),p=(0,n.useCallback)(async e=>{if(!a)return{ok:!1,error:"Bạn chưa ÄÄng nháºp."};let t=(0,r.authUpdateProfile)(a.id,e);return t.ok?(s(t.user),o((0,r.getUsers)()),{ok:!0}):{ok:!1,error:t.error}},[a]);return(0,t.jsx)(i.Provider,{value:{user:a,loading:u,login:c,loginWithGoogle:d,logout:f,register:m,changePassword:h,updateProfile:p},children:e})},"useAuth",0,function(){let e=(0,n.useContext)(i);if(!e)throw Error("useAuth must be used within an AuthProvider");return e}])},21114,e=>{"use strict";var t=e.i(47167);function n(){return!!t.default.env.NEXT_PUBLIC_META_PIXEL_ID}function r(e,t){return`${e}:${t.id}:${t.bookingCode??Date.now()}:${Math.random().toString(36).slice(2)}`.replace(/[^a-zA-Z0-9:_-]/g,"-")}function i(e){if("u">typeof document)return document.cookie.split("; ").find(t=>t.startsWith(`${e}=`))?.split("=").slice(1).join("=")}async function o(e,t,n,r){try{await fetch("/api/meta/events",{method:"POST",headers:{"Content-Type":"application/json",...n.customerEmail?{"x-customer-email":n.customerEmail}:{},...n.customerPhone?{"x-customer-phone":n.customerPhone}:{},...i("_fbp")?{"x-fbp":i("_fbp")??""}:{},...i("_fbc")?{"x-fbc":i("_fbc")??""}:{}},keepalive:!0,body:JSON.stringify({eventName:e,eventId:t,sourceUrl:window.location.href,customData:r,trip:n})})}catch{}}e.s(["buildMetaEventId",0,r,"isMetaPixelEnabled",0,n,"trackMetaTripEvent",0,function(e,t,i){let a=i?.eventId??r(e,t),s={content_ids:[t.id],content_name:t.name,content_type:"product",content_category:t.category,value:t.value,currency:t.currency??"VND",num_items:t.numItems,order_id:t.bookingCode,payment_method:t.paymentMethod};n()&&"function"==typeof window.fbq&&("PageView"===e?window.fbq("track","PageView",{},{eventID:a}):window.fbq("track",e,s,{eventID:a})),n()&&i?.server!==!1&&o(e,a,t,s)}])},8341,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={cancelIdleCallback:function(){return a},requestIdleCallback:function(){return o}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let o="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},a="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},19083,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={ESCAPE_REGEX:function(){return a},htmlEscapeAttributeString:function(){return c},htmlEscapeJsonString:function(){return l}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let o={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},a=/[&><\u2028\u2029]/g,s={"&":"&",'"':""","'":"'","<":"<",">":">"},u=/[&"'<>]/g;function l(e){return e.replace(a,e=>o[e])}function c(e){return e.replace(u,e=>s[e])}},79520,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return w},handleClientScriptLoad:function(){return y},initScriptLoader:function(){return v}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let o=e.r(55682),a=e.r(90809),s=e.r(43476),u=o._(e.r(74080)),l=a._(e.r(71645)),c=e.r(42732),d=e.r(22737),f=e.r(8341),m=e.r(19083),h=new Map,p=new Set,g=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:i=null,dangerouslySetInnerHTML:o,children:a="",strategy:s="afterInteractive",onError:l,stylesheets:c}=e,f=n||t;if(f&&p.has(f))return;if(h.has(t)){p.add(f),h.get(t).then(r,l);return}let m=()=>{i&&i(),p.add(f)},g=document.createElement("script"),y=new Promise((e,t)=>
1{g.addEventListener("load",function(t){e(),r&&r.call(this,t),m()}),g.addEventListener("error",function(e){t(e)})}).catch(function(e){l&&l(e)});o?(g.innerHTML=o.__html||"",m()):a?(g.textContent="string"==typeof a?a:Array.isArray(a)?a.join(""):"",m()):t&&(g.src=t,h.set(t,y)),(0,d.setAttributesFromProps)(g,e),"worker"===s&&g.setAttribute("type","text/partytown"),g.setAttribute("data-nscript",s),c&&(e=>{if(u.default.preinit)return e.forEach(e=>{u.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,t.appendChild(n)})}})(c),document.body.appendChild(g)};function y(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>g(e))}):g(e)}function v(e){e.forEach(y),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");p.add(t)})}function b(e){let{id:t,src:n="",onLoad:r=()=>{},onReady:i=null,strategy:o="afterInteractive",onError:a,stylesheets:d,...h}=e,{updateScripts:y,scripts:v,getIsSsr:b,appDir:w,nonce:E}=(0,l.useContext)(c.HeadManagerContext);E=h.nonce||E;let _=(0,l.useRef)(!1);(0,l.useEffect)(()=>{let e=t||n;_.current||(i&&e&&p.has(e)&&i(),_.current=!0)},[i,t,n]);let k=(0,l.useRef)(!1);if((0,l.useEffect)(()=>{if(!k.current){if("afterInteractive"===o)g(e);else"lazyOnload"===o&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>g(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>g(e))}));k.current=!0}},[e,o]),("beforeInteractive"===o||"worker"===o)&&(y?(v[o]=(v[o]||[]).concat([{id:t,src:n,onLoad:r,onReady:i,onError:a,...h,nonce:E}]),y(v)):b&&b()?p.add(t||n):b&&!b()&&g({...e,nonce:E})),w){if(d&&d.forEach(e=>{u.default.preinit(e,{as:"style"})}),"beforeInteractive"===o)if(!n)return h.dangerouslySetInnerHTML&&(h.children=h.dangerouslySetInnerHTML.__html,delete h.dangerouslySetInnerHTML),(0,s.jsx)("script",{nonce:E,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,m.htmlEscapeJsonString)(JSON.stringify([0,{...h,id:t}]))})`}});else return u.default.preload(n,h.integrity?{as:"script",integrity:h.integrity,nonce:E,crossOrigin:h.crossOrigin}:{as:"script",nonce:E,crossOrigin:h.crossOrigin}),(0,s.jsx)("script",{nonce:E,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,m.htmlEscapeJsonString)(JSON.stringify([n,{...h,id:t}]))})`}});"afterInteractive"===o&&n&&u.default.preload(n,h.integrity?{as:"script",integrity:h.integrity,nonce:E,crossOrigin:h.crossOrigin}:{as:"script",nonce:E,crossOrigin:h.crossOrigin})}return null}Object.defineProperty(b,"__nextScript",{value:!0});let w=b;("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},3303,(e,t,n)=>{t.exports=e.r(79520)},42618,e=>{"use strict";var t=e.i(43476),n=e.i(32341),r=e.i(47167),i=e.i(71645),o=e.i(18566),a=e.i(68678);function s(e){return e.startsWith("/crm")||e.startsWith("/cms")}function u(){let e=(0,o.useRouter)(),t=(0,o.usePathname)(),n=(0,i.useRef)(null),u=!!s(t)||"true"===r.default.env.NEXT_PUBLIC_ENABLE_PUBLIC_LIVE_REFRESH;return(0,i.useEffect)(()=>{if(!u)return;let r=!1,i=t.startsWith("/crm")?"crm":t.startsWith("/cms")?"cms":"all";async function o(t){if("hidden"!==document.visibilityState)try{let o=await (0,a.fetchFreshJson)("/api/content-version");if(r)return;let s=n.current;if(n.current=o,!s||!t)return;if("crm"===i?s.crmVersion!==o.crmVersion:"cms"===i?s.cmsVersion!==o.cmsVersion:s.version!==o.version){let t={scope:i,source:"server",timestamp:Date.now(),version:"crm"===i?o.crmVersion:"cms"===i?o.cmsVersion:o.version};window.dispatchEvent(new CustomEvent(a.CONTENT_UPDATED_EVENT,{detail:t})),e.refresh()}}catch{}}o(!1);let l=window.setInterval(()=>void o(!0),s(t)?1e4:5e3),c=()=>void o(!0),d=()=>{"visible"===document.visibilityState&&o(!0)};return window.addEventListener("focus",c),document.addEventListener("visibilitychange",d),()=>{r=!0,window.clearInterval(l),window.removeEventListener("focus",c),document.removeEventListener("visibilitychange",d)}},[u,t,e]),(0,i.useEffect)(()=>
1{if(u)return(0,a.subscribeContentUpdates)(()=>{e.refresh()},["cms","crm","all"])},[u,e]),null}var l=e.i(3303),c=e.i(21114);let d=r.default.env.NEXT_PUBLIC_META_PIXEL_ID;function f({ready:e}){let t=(0,o.usePathname)(),n=(0,o.useSearchParams)();return(0,i.useEffect)(()=>{!e||(0,c.isMetaPixelEnabled)()&&"function"==typeof window.fbq&&window.fbq("track","PageView",{},{eventID:(0,c.buildMetaEventId)("PageView",{id:t})})},[t,e,n]),null}function m(){let[e,n]=(0,i.useState)(!1);return d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.default,{id:"meta-pixel",strategy:"lazyOnload",onReady:()=>n(!0),children:` 2 !function(f,b,e,v,n,t,s) 3 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 4 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 5 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 6 n.queue=[];t=b.createElement(e);t.async=!0; 7 t.src=v;s=b.getElementsByTagName(e)[0]; 8 s.parentNode.insertBefore(t,s)}(window, document,'script', 9 'https://connect.facebook.net/en_US/fbevents.js'); 10 fbq('init', '${d}'); 11 `}),(0,t.jsx)(i.Suspense,{fallback:null,children:(0,t.jsx)(f,{ready:e})})]}):null}e.s(["default",0,function({children:e}){return(0,t.jsxs)(n.AuthProvider,{children:[(0,t.jsx)(m,{}),(0,t.jsx)(u,{}),e]})}],42618)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.