PageSourceSearch

https://www.gowatch.vn/_next/static/chunks/app/page-380745a748593a3f.js?dpl=dpl_Dkwqm74rf2Rz52ypkx2KxiL8ituQ

js gowatch.vn collected 2026-09-28 08:43:45 UTC 22,096 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{27238:(e,t,n)=>{"use strict";n.d(t,{_:()=>a});var r=n(63560),s=n(14873);function a(e){let{children:t,className:n,center:a=!0,textClassName:i}=e;return(0,r.jsxs)("div",{className:(0,s.cn)("relative space-y-2",a&&"text-center",n),children:[(0,r.jsx)("h3",{className:(0,s.cn)("text-xl font-bold text-gray-900 md:text-2xl",i),children:t}),(0,r.jsx)("div",{className:"mx-auto h-0.5 w-16 bg-brand-yellow"})]})}},31017:(e,t,n)=>{"use strict";n.d(t,{n:()=>a});var r=n(63560),s=n(14873);function a(e){let{children:t,className:n,as:a="section",background:i="default",spacing:l="default",...c}=e;return(0,r.jsx)(a,{className:(0,s.cn)({default:"",gray:"bg-gray-100",white:"bg-white"}[i],n),...c,children:(0,r.jsx)("div",{className:"mx-auto max-w-7xl space-y-8 px-4 py-10 sm:px-6 md:space-y-10 md:py-20 lg:px-0",children:t})})}},31368:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(63560),s=n(68693),a=n(41097),i=n(27193),l=n.n(i);let c=e=>{let{desktopImage:t,mobileImage:n,alt:i,href:c,priority:o=!0,className:d=""}=e,h=(0,r.jsxs)("div",{className:(0,s.QP)("relative aspect-video w-full sm:h-[250px] md:h-[300px] lg:h-[427px]",d),children:[(0,r.jsx)("div",{className:"absolute inset-0 md:hidden",children:(0,r.jsx)(a.default,{src:n,alt:i,fill:!0,className:"object-cover object-center",priority:o,sizes:"100vw",quality:100})}),(0,r.jsx)("div",{className:"absolute inset-0 hidden md:block",children:(0,r.jsx)(a.default,{src:t,alt:i,fill:!0,className:"object-cover object-center",priority:o,sizes:"100vw",quality:100})})]});return c?(0,r.jsx)(l(),{href:c,className:(0,s.QP)("block",d),children:h}):h}},35149:(e,t,n)=>{Promise.resolve().then(n.bind(n,31368)),Promise.resolve().then(n.bind(n,52341)),Promise.resolve().then(n.bind(n,75670)),Promise.resolve().then(n.bind(n,96985)),Promise.resolve().then(n.bind(n,73113)),Promise.resolve().then(n.bind(n,87713))},52341:(e,t,n)=>{"use strict";n.d(t,{BestSellingProductsSection:()=>_});var r=n(63560),s=n(18532),a=n(27193),i=n.n(a),l=n(31017),c=n(27238),o=n(80305),d=n(23378);function h(){let e=(0,o._)(["\n  query ActiveProductsWithFilters(\n    $pagination: ExtendedPaginationArgs!\n    $statuses: [ProductStatus!]\n  ) {\n    activeProductsWithFilters(pagination: $pagination, statuses: $statuses) {\n      data {\n        id\n        name\n        description\n        price\n        sale_price\n        images {\n          id\n          url\n          order\n        }\n        slug\n        sku\n        is_active\n        status\n        createdAt\n        updatedAt\n        brand {\n          id\n          name\n        }\n        categories {\n          id\n          name\n          slug\n        }\n        attribute_values {\n          id\n          text_value\n          number_value\n          boolean_value\n          display_value\n          attribute {\n            id\n            name\n            data_type\n          }\n          selected_options {\n            id\n            value\n            display_name\n          }\n        }\n      }\n      pagination {\n        currentPage\n        hasNextPage\n        hasPreviousPage\n        itemsPerPage\n        nextPage\n        previousPage\n        totalItems\n        totalPages\n      }\n    }\n  }\n"]);return h=function(){return e},e}function u(){let e=(0,o._)(["\n  query GetPromotionProducts($limit: Float!) {\n    getPromotionProducts(limit: $limit) {\n      id\n      name\n      slug\n      price\n      sale_price\n      sex\n      brand {\n        name\n      }\n      categories {\n        name\n      }\n      images {\n        id\n        url\n        order\n      }\n    }\n  }\n"]);return u=function(){return e},e}let m=(0,d.J1)(h());(0,d.J1)(u());var g=n(98796),x=n(4078);
1class p extends Error{constructor(e,t){super(e),this.name="FetchError",this.status=null==t?void 0:t.status,this.statusText=null==t?void 0:t.statusText,this.response=null==t?void 0:t.response,this.graphqlErrors=null==t?void 0:t.graphqlErrors,this.networkError=null==t?void 0:t.networkError}}let v=e=>new Promise((t,n)=>{setTimeout(()=>{n(new p("Request timeout after ".concat(e,"ms"),{networkError:Error("Timeout")}))},e)}),f=e=>new Promise(t=>setTimeout(t,e)),b=e=>{if(e)return e;try{return localStorage.getItem("authToken")||sessionStorage.getItem("authToken")}catch(e){return null}},w=async function(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{baseUrl:r=x.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT||"/api/graphql",timeout:s=3e4,retries:a=3,retryDelay:i=1e3,authToken:l,onError:c,onSuccess:o,headers:d={},revalidate:h,tags:u,...m}=n,g={"Content-Type":"application/json",Accept:"application/json",...d},w=b(l);w&&(g.Authorization="Bearer ".concat(w));let y={method:"POST",headers:g,body:JSON.stringify({query:e.query,variables:e.variables||{}}),...m};if(void 0!==h||u){let e={};void 0!==h&&(e.revalidate=h),u&&(e.tags=u),y.next=e}for(let e=0;e<=a;e++)try{let e,t=fetch(r,y),n=v(s),a=await Promise.race([t,n]);if(!a.ok){let e=await a.text().catch(()=>"Unknown error");throw new p("HTTP Error: ".concat(a.status," ").concat(a.statusText),{status:a.status,statusText:a.statusText,response:a,networkError:Error(e)})}try{e=await a.json()}catch(e){throw new p("Failed to parse JSON response",{status:a.status,response:a,networkError:e})}if(e.errors&&e.errors.length>0){let t=e.errors.map(e=>e.message).join(", ");throw new p("GraphQL Error: ".concat(t),{status:a.status,response:a,graphqlErrors:e.errors})}if(null===e.data||void 0===e.data)throw new p("No data received from GraphQL endpoint",{status:a.status,response:a});return o&&o(e.data),e.data}catch(n){if(console.log("@graphql_request_error",{attempt:e+1,error:(t=n instanceof p?n:new p("Unexpected error: ".concat(n instanceof Error?n.message:"Unknown"),{networkError:n instanceof Error?n:Error(String(n))})).message,status:t.status}),400===t.status||401===t.status||403===t.status||404===t.status||t.graphqlErrors||e===a)throw c&&c(t),t;if(e<a){let t=i*Math.pow(2,e);console.log("@graphql_request_retry",{delay:t,nextAttempt:e+2}),await f(t)}}throw t};var y=n(77103);let N=async function(){var e;let{limit:t=20,page:n=1,filters:r,statuses:s=[y.Sz.Published]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=await w({query:(0,g.y)(m),variables:{pagination:{limit:t,page:n,filters:r,sortBy:y.M5.CreatedAt,sortOrder:y.xB.Desc},statuses:s}},{baseUrl:"https://gowatch-be-production.up.railway.app/graphql",revalidate:3600,tags:["products","active-products"]});return null!==(e=null==a?void 0:a.activeProductsWithFilters)&&void 0!==e?e:{data:[],pagination:{currentPage:1,hasNextPage:!1,hasPreviousPage:!1,itemsPerPage:t,totalItems:0,totalPages:1}}};var j=n(84911);let _=e=>{let{title:t="SẢN PHẨM B\xc1N CHẠY",productsPerRow:n=4,category:a}=e,[o,d]=(0,s.useState)([]),[h,u]=(0,s.useState)(!0),{data:m}=(0,y.vW)({variables:{limit:4}}),g=(0,s.useMemo)(()=>((null==m?void 0:m.getPromotionProducts)||[]).map(e=>e.id),[m]);return((0,s.useEffect)(()=>{0!==g.length&&(async()=>{try{u(!0);let e=(await N({limit:2*n,page:1,filters:{category_slugs:[a]},statuses:[y.Sz.Published]})).data.filter(e=>!g.includes(e.id));d(e.slice(0,n))}catch(e){console.error("Error fetching category products:",e),d([])}finally{u(!1)}})()},[g,n,a]),h)?(0,r.jsxs)(l.n,{children:[(0,r.jsx)(c._,{children:t}),(0,r.jsx)("div",{className:"grid grid-cols-2 gap-6 lg:grid-cols-3 xl:grid-cols-4",children:Array.from({length:n}).map((e,t)=>(0,r.jsx)("div",{className:"aspect-square animate-pulse rounded-lg bg-gray-200"},t))})]}):(0,r.jsxs)(l.n,{children:[(0,r.jsx)(i(),{href:"/".concat(a),children:(0,r.jsx)(c._,{textClassName:"hover:text-yellow-600 transition-colors duration-300",children:t})}),(0,r.jsx)("div",{className:"mb-8",children:(0,r.jsx)("div",{className:"grid grid-cols-2 gap-6 lg:grid-cols-3 xl:grid-cols-4",children:o.map(e=>(0,r.jsx)(j.ProductCard,{data:e},null==e?void 0:e.id))})}),(0,r.jsx)("div",{className:"flex justify-center",children:(0,r.jsx)(i(),{href:"/".concat(a),className:"inline-flex h-10 items-center justify-center rounded-full bg-brand-yellow px-6 py-2 text-sm font-medium text-white transition-colors hover:bg-brand-yellow/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black focus-visible:ring-offset-2",children:"Xem th\xeam"})})]})}},73113:(e,t,n)=>{"use strict";n.d(t,{WhyBuySection:()=>g});var r=n(63560),s=n(41097),a=n(31017);let i={src:"/_next/static/media/after-market.2e4ebf0e.svg",height:90,width:90,blurWidth:0,blurHeight:0},l={src:"/_next/static/media/check-list.c90005b8.svg",height:90,width:90,blurWidth:0,blurHeight:0},c={src:"/_next/static/media/cod.019af492.svg",height:90,width:90,blurWidth:0,blurHeight:0},o={src:"/_next/static/media/free.918b3a32.svg",height:90,width:90,blurWidth:0,blurHeight:0},d={src:"/_next/static/media/top.507260e9.svg",height:90,width:90,blurWidth:0,blurHeight:0},h={src:"/_next/static/media/transfer.e7c9d611.svg",height:90,width:90,blurWidth:0,blurHeight:0};var u=n(68693);let m=e=>{let{icon:t,title:n,description:s,className:a=""}=e;return(0,r.jsxs)("div",{className:(0,u.QP)("flex flex-col items-center space-y-2 rounded-2xl bg-white p-3 text-center md:flex-row md:items-start md:space-x-4 md:space-y-0 md:p-6 md:text-left",a),children:[(0,r.jsx)("div",{className:"flex flex-shrink-0 items-center justify-center",children:t}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("h4",{className:"text-xs font-bold text-gray-900 md:text-base lg:text-lg",children:n}),(0,r.jsx)("p",{className:"text-xs leading-relaxed text-gray-600 md:text-sm",children:s})]})]})},g=e=>{let{className:t=""}=e,n=[{icon:(0,r.jsx)(s.default,{src:d,alt:"Top",width:48,height:48,className:"h-10 w-10 md:h-12 md:w-12"}),title:"UY T\xcdN H\xc0NG ĐẦU",description:"Với kinh nghiệm hơn 9 năm trong ng\xe0nh đồng hồ, Gowatch tự tin đem đến cho bạn nhữ
1ng chiếc đồng hồ tốt nhất c\xf9ng trải nghiệm tuyệt vời khi mua đồng hồ tại Gowatch. Đền gấp 10 nếu ph\xe1t hiện h\xe0ng giả."},{icon:(0,r.jsx)(s.default,{src:l,alt:"After Market",width:48,height:48,className:"h-10 w-10 md:h-12 md:w-12"}),title:"ĐỔI H\xc0NG DỄ D\xc0NG - MIỄN PH\xcd",description:"Đồng hồ sai k\xedch cỡ? M\xe0u sắc kh\xf4ng hợp với bạn? Bạn mua l\xe0m qua tặng người th\xe2n nhưng người nhận kh\xf4ng ưng \xfd? Đừng lo! Bạn c\xf3 thể đổi h\xe0ng trong v\xf2ng 7 ng\xe0y"},{icon:(0,r.jsx)(s.default,{src:c,alt:"Check List",width:48,height:48,className:"h-10 w-10 md:h-12 md:w-12"}),title:"THANH TO\xc1N DỄ D\xc0NG (COD)",description:"Bạn chỉ phải trả tiền khi đ\xe3 nhận v\xe0 kiểm tra h\xe0ng! Ngay Tại Nh\xe0 Bạn! An t\xe2m tuyệt đối."},{icon:(0,r.jsx)(s.default,{src:i,alt:"Free Return",width:48,height:48,className:"h-10 w-10 md:h-12 md:w-12"}),title:"HẬU M\xc3I H\xc0NG ĐẦU",description:"Chế độ bảo h\xe0nh l\xean đến 5 năm cho tất cả đồ
1ng hồ ch\xednh h\xe3ng mua tại Gowatch. Ngo\xe0i ra GOWATCH cung cấp g\xf3i bảo h\xe0nh TRỌN ĐỜI => chế độ bảo h\xe0nh l\xe2u năm nhất hiện nay tại Việt Nam"},{icon:(0,r.jsx)(s.default,{src:o,alt:"Warranty",width:48,height:48,className:"h-10 w-10 md:h-12 md:w-12"}),title:"THAY PIN, GẮN HẠT MIỄN PH\xcd",description:"Thay pin, gắn hạt miễn ph\xed suốt đời cho tất cả c\xe1c đồng hồ được Đồng Hồ Gowatch ph\xe2n phối! (trừ c\xe1c loại đồng hồ d\xf9ng pin năng lượng \xe1nh s\xe1ng)"},{icon:(0,r.jsx)(s.default,{src:h,alt:"Change Pin",width:48,height:48,className:"h-10 w-10 md:h-12 md:w-12"}),title:"1 ĐỔI 1",description:"Chế độ 1 đổi 1 trong tuần đầu ti\xean nếu c\xf3 bất kỳ lỗi g\xec do nh\xe0 sản xuất"}];return(0,r.jsxs)(a.n,{background:"gray",className:t,children:[(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("h2",{className:"mb-2 text-base uppercase text-gray-900 md:text-2xl",children:"TẠI SAO N\xcaN MUA ĐỒNG HỒ"}),(0,r.jsx)("h3",{className:"mb-2 text-xl font-bold uppercase text-gray-900 md:text-4xl",children:"TẠI Gowatch?"}),(0,r.jsx)("div",{className:"mx-auto mb-6 h-0.5 w-24 bg-brand-yellow"}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("h4",{className:"text-base font-bold text-gray-900 md:text-2xl",children:"HƠN 10.000 KH\xc1CH H\xc0NG TIN D\xd9NG"}),(0,r.jsx)("p",{className:"mx-auto max-w-3xl text-sm text-gray-600 md:text-lg",children:"Ch\xfang t\xf4i cam kết mang lại những gi\xe1 trị cao nhất cho kh\xe1ch h\xe0ng khi đến với Gowatch."})]})]}),(0,r.jsx)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-2 md:gap-4 lg:grid-cols-3",children:n.map((e,t)=>(0,r.jsx)(m,{icon:e.icon,title:e.title,description:e.description},t))})]})}},75670:(e,t,n)=>{"use strict";n.d(t,{FeaturedProductsSection:()=>h});var r=n(63560),s=n(18532),a=n(27193),i=n.n(a),l=n(31017),c=n(27238),o=n(77103),d=n(84911);let h=e=>{let{title:t="KHUYẾN M\xc3I THEO NG\xc0Y",slug:n}=e,{data:a}=(0,o.vW)({variables:{limit:4}}),h=(0,s.useMemo)(()=>{let e=(null==a?void 0:a.getPromotionProducts)||[],t=e.filter(e=>e.sex===o.Co.Men),n=e.filter(e=>e.sex===o.Co.Women);return[...t.slice(0,2),...n.slice(0,2)]},[a]);return(0,r.jsxs)(l.n,{children:[(0,r.jsx)(i(),{href:"/".concat(n),children:(0,r.jsx)(c._,{textClassName:"hover:text-yellow-600 transition-colors duration-300",children:t})}),(0,r.jsx)("div",{className:"mb-12 grid grid-cols-2 gap-6 lg:grid-cols-3 xl:grid-cols-4",children:h.map(e=>(0,r.jsx)(d.ProductCard,{data:e},null==e?void 0:e.id))})]})}},84911:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ProductCard:()=>d});var r=n(63560),s=n(41097),a=n(27193),i=n.n(a),l=n(96448);let c=e=>e.toLocaleString("en-US").replace(/,/g,".")+" ₫";var o=n(95715);let d=e=>{var t;let{data:n}=e,{trackCustom:a}=(0,l.Be)();if(!n)return null;let{slug:d,name:h,price:u,brand:m,images:g,sale_price:x}=n,p=(null==m?void 0:m.name)||"",v=(null==g?void 0:null===(t=g[0])||void 0===t?void 0:t.url)||"",f=x&&x<u,b=f?Math.round((u-x)/u*100):0,w=()=>{a("product_card_click",{product_id:n.id,product_name:h,brand:p,price:x||u,is_on_sale:f})};return(0,r.jsxs)("div",{className:"group relative flex flex-col space-y-3 transition-colors duration-200",children:[(0,r.jsx)("div",{className:"relative flex items-center justify-center overflow-hidden rounded-lg",children:(0,r.jsx)(i(),{href:"/".concat(d),onClick:w,className:"relative z-10 block aspect-square h-[150px] w-[150px] overflow-hidden text-center transition-all duration-200 group-hover:scale-105 md:h-[250px] md:w-[250px]",children:(0,r.jsx)(s.default,{src:v,fill:!0,quality:100,alt:h,className:"mx-auto block h-full w-full object-contain",loading:"lazy"})})}),(0,r.jsxs)("div",{className:"flex flex-1 flex-col space-y-2",children:[(0,r.jsx)("div",{className:"flex-1 space-y-2",children:(0,r.jsx)(i(),{href:"/".concat(d),onClick:w,children:(0,r.jsx)("h4",{className:"line-clamp-3 overflow-hidden text-center text-sm font-medium text-gray-700 transition-all duration-200 group-hover:text-brand-yellow group-hover:underline md:text-base",children:h})})}),(0,r.jsx)("div",{className:"my-2 h-[1px] bg-brand-yellow"}),(0,r.jsxs)("div",{className:"flex flex-col items-center gap-0.5 text-base",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[f&&(0,r.jsx)(o.E,{className:"border-brand-yellow bg-brand-yellow px-1.5 py-0.5 text-white hover:bg-brand-yellow/90 md:px-1.5",children:(0,r.jsxs)("span",{className:"text-[10px] font-bold md:text-xs",children:["-",b,"%"]})}),(0,r.jsx)("del",{className:"text-sm font-normal text-gray-600 opacity-50 sm:text-base",children:c(u)})]}),(0,r.jsx)("ins",{className:"block text-base font-bold text-yellow-600 no-underline sm:text-xl",children:c(x||0)})]})]})]})}},87713:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});let r={src:"/_next/static/media/social-view.4bc29ba8.webp",height:1365,width:2048,blurDataURL:"data:image/webp;
1base64,UklGRkgAAABXRUJQVlA4IDwAAADQAQCdASoIAAUAAkA4JZQCdAEOZ8m4AAD+65G0D/J80qwlfWXbiPQj/yc0Bkxau//oMKji9/TxyDHDCAA=",blurWidth:8,blurHeight:5}},95715:(e,t,n)=>{"use strict";n.d(t,{E:()=>l});var r=n(63560),s=n(48258);n(18532);var a=n(14873);let i=(0,s.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:n,...s}=e;return(0,r.jsx)("div",{className:(0,a.cn)(i({variant:n}),t),...s})}},96448:(e,t,n)=>{"use strict";n.d(t,{Be:()=>k});var r=n(18532),s=n(79274),a=n(83675);let i=(e,t)=>{try{(0,a.sendGAEvent)("event",e,t)}catch(e){console.warn("Analytics tracking error:",e)}},l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return{item_id:e.id,item_name:e.name,category:e.category,quantity:t,price:e.price,currency:"VND",brand:e.brand,variant:e.variant}},c=e=>e.map(e=>l(e,e.quantity)),o=e=>e.reduce((e,t)=>e+t.price*t.quantity,0),d=(e,t)=>{i("page_view",{page_title:e,page_location:window.location.href,page_path:t})},h=e=>{let t=l(e);i("view_item",{currency:"VND",value:t.price,items:[t]})},u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=l(e,t);i("add_to_cart",{currency:"VND",value:n.price*t,items:[n]})},m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=l(e,t);i("remove_from_cart",{currency:"VND",value:n.price*t,items:[n]})},g=e=>{let t=c(e);i("begin_checkout",{currency:"VND",value:o(t),items:t})},x=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=c(t);i("purchase",{transaction_id:e,currency:"VND",value:o(s)+n+r,items:s,shipping:n,tax:r})},p=(e,t)=>{i("search",{search_term:e,...void 0!==t&&{results_count:t}})},v=(e,t)=>{i("filter_applied",{filter_type:e,filter_value:t})},f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"phone";i("login",{method:e})},b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"phone";i("sign_up",{method:e})},w=e=>{i("newsletter_signup",{location:e})},y=e=>{i("contact_form_submit",{form_type:e})},N=(e,t)=>{i("view_brand",{brand_name:e,...void 0!==t&&{products_count:t}})},j=(e,t)=>{i("view_item_list",{item_list_name:e,items:t.map(e=>l(e))})},_=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i(e,t)},P=()=>"function"==typeof window.gtag,k=()=>{(0,s.useRouter)();let e=P();return(0,r.useEffect)(()=>{setTimeout(()=>{d(document.title,window.location.pathname)},100)},[]),{trackPage:(0,r.useCallback)((e,t)=>{d(e,t||window.location.pathname)},[]),trackProduct:{view:e=>{h(e)},addToCart:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;u(e,t)},removeFromCart:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;m(e,t)}},trackEcommerce:{beginCheckout:e=>{g(e)},purchase:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;x(e,t,n,r)}},trackInteraction:{search:(e,t)=>{p(e,t)},filterApplied:(e,t)=>{v(e,t)}},trackUser:{login:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"phone";f(e)},signUp:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"phone";b(e)},newsletterSignup:e=>{w(e)},contactFormSubmit:e=>{y(e)}},trackContent:{brandView:(e,t)=>{N(e,t)},productListView:(e,t)=>{j(e,t)}},trackCustom:(0,r.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_(e,t)},[]),isAnalyticsLoaded:e}}},96985:(e,t,n)=>{"use strict";n.d(t,{TestimonialsSection:()=>h});var r=n(63560),s=n(31017),a=n(27238),i=n(41097);let l=e=>{let{testimonial:t}=e;return(0,r.jsxs)("div",{className:"h-full w-full flex-shrink-0 overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm",children:[(0,r.jsx)("div",{className:"relative aspect-square w-full",children:(0,r.jsx)(i.default,{src:t.image||"/placeholder.svg",alt:t.name,fill:!0,className:"object-cover"})}),(0,r.jsxs)("div",{className:"space-y-1 p-4",children:[(0,r.jsx)("h4",{className:"text-sm font-medium text-slate-900 md:text-base",children:t.name}),(0,r.jsxs)("p",{className:"line-clamp-5 text-sm text-slate-700 md:text-base",children:["“",t.content,"”"]})]})]})};n(44534);var c=n(74079),o=n(80970);let d=e=>{let{testimonials:t,direction:n="right",autoplayDelay:s=2e3,className:a=""}=e;return(0,r.jsx)("div",{className:"testimonials-swiper-container relative ".concat(a),children:(0,r.jsx)(o.RC,{modules:[c.Ij],slidesPerView:2,spaceBetween:16,loop:!0,autoplay:{delay:s,disableOnInteraction:!1,reverseDirection:"left"===n},breakpoints:{640:{slidesPerView:2},1024:{slidesPerView:3},1280:{slidesPerView:4}},className:"testimonials-swiper",children:t.map(e=>(0,r.jsx)(o.qr,{className:"!h-auto",children:(0,r.jsx)(l,{testimonial:e})},e.id))})})},h=e=>{let{data:t,className:n="",title:i="KH\xc1CH H\xc0NG N\xd3I G\xcc VỀ CH\xdaNG T\xd4I",subtitle:l=""}=e;if(!t||(null==t?void 0:t.length)===0)return null;
1let c=Math.ceil(t.length/2),o=t.slice(0,c),h=t.slice(c);return(0,r.jsxs)(s.n,{id:"testimonials",className:"overflow-hidden bg-slate-50 ".concat(n),children:[(i||l)&&(0,r.jsxs)("div",{className:"mb-8 text-center md:mb-16",children:[i&&(0,r.jsx)(a._,{className:"mb-4",children:i}),l&&(0,r.jsx)("p",{className:"mx-auto mt-4 max-w-2xl text-sm text-slate-600 md:text-base",children:l})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)(d,{testimonials:o,direction:"right",autoplayDelay:3e3}),(0,r.jsx)(d,{testimonials:h,direction:"left",autoplayDelay:3500})]})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[6103,7193,8693,3365,3270,7685,7165,9990,77,7181,7787,8180,9091,7358],()=>t(35149)),_N_E=e.O()}]);

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.