1(()=>{'use strict';const hydrateTrustindexFallback=()=>{document.querySelectorAll('template#trustindex-google-widget-html').forEach((template)=>{const mount=template.nextElementSibling;if(!mount||mount.childElementCount||!template.content){return} 2const fragment=template.content.cloneNode(!0);fragment.querySelectorAll('trustindex-image').forEach((source)=>{const image=document.createElement('img');const url=source.getAttribute('data-imgurl');if(url){image.src=url}['alt','width','height','loading'].forEach((attribute)=>{if(source.hasAttribute(attribute)){image.setAttribute(attribute,source.getAttribute(attribute))}});image.className=source.className;source.replaceWith(image)});mount.classList.add('bigstep-ti-fallback');mount.appendChild(fragment);template.remove()})};const scheduleFallback=()=>{window.setTimeout(hydrateTrustindexFallback,3500);window.setTimeout(hydrateTrustindexFallback,8000)};const replaceText=(selector,value)=>{const element=document.querySelector(selector);if(element){element.textContent=value}};const isEnglishHomepage=()=>{return document.documentElement.lang.toLowerCase().startsWith('en')||new URLSearchParams(window.location.search).get('lang')==='en'};const normalizeEnglishInterface=()=>{if(!isEnglishHomepage()){return} 3const translations=new Map([['Công cụ tạo Halftone DTF/DTG','Halftone tool for DTF/DTG'],['Khách hà ng in gì?','What customers print'],['Theo dõi ÄÆ¡n hà ng','Track order'],['mục','items'],['Hình ảnh thá»±c tế từ Bigstep','Real prints from Bigstep'],['Xem trên Instagram','View on Instagram'],['Viết Äánh giá ngay','Write a review'],['Tạo tram ảnh in áo','Create halftone artwork'],['Ão custom không Äụng hà ng: hưá»ng Äi an toà n thay cho áo fake','One-of-a-kind custom shirts: a safer alternative to fake apparel'],['Quà cá nhân hóa cho má»i dá»p Äặc biá»t: sinh nháºt, couple và gia Äình','Personalized gifts for birthdays, couples and families'],['Äặt sản phẩm mẫu cho ÄỠán sinh viên: từ prototype Äến bà i bảo vá»','Ordering prototypes for student projects'],['Bigstep.vn có gì? Từ ý tưá»ng Äến sản phẩm tháºt','What can you make with Bigstep?'],['Bán hà ng Etsy, Amazon, TikTok Shop: Vì sao seller Viá»t nên là m sample trưá»c?','Selling on Etsy, Amazon and TikTok Shop: why make a sample first?'],['Cách tạo ảnh Photobooth Online trong Bigstep Studio','How to create online photobooth images in Bigstep Studio'],]);document.querySelectorAll('a,button,span').forEach((element)=>{if(element.children.length)return;const source=element.textContent.trim();if(translations.has(source)){element.textContent=translations.get(source)}})};const normalizeHomepageHeadings=()=>{const english=isEnglishHomepage();replaceText('.bsig-head h2',english?'Real people, real prints':'Ngưá»i tháºt, viá»c tháºt');replaceText('.rxsc-head h2',english?'AI Remix â Turn photos into artwork':'AI Remix â Biến ảnh thà nh artwork');replaceText('.tysc-head h2','AI Typo Maker');replaceText('.bsrv-head h2',english?'â What customers say â ':'â Khách hà ng nói gì â ');const faqHeading=document.querySelector('.bsfaq-head h2');if(faqHeading){faqHeading.textContent=english?'Frequently asked questions':'Há»i Äáp'} 4const accentHeading=(selector,lead,accent,tail='')=>{const heading=document.querySelector(selector);if(!heading)return;heading.textContent='';heading.append(document.createTextNode(lead));const emphasis=document.createElement('em');emphasis.className='bsl-section-accent';emphasis.textContent=accent;heading.append(emphasis);if(tail)heading.append(document.createTextNode(tail))};accentHeading('.bps-section-head h2',english?'Pick a shirt. ':'Chá»n chiếc áo. ',english?'Make it yours.':'Tạo dấu ấn riêng.');accentHeading('.bsig-head h2',english?'Real people, ':'Ngưá»i tháºt, ',english?'real prints':'viá»c tháºt');accentHeading('.bsg-games-head h2',english?'Play, get inspired, ':'ChÆ¡i vui, tìm cảm hứng, ',english?'win real rewards':'sÄn quà tháºt');accentHeading('.bstpl-head h2',english?'Custom ':'Template ',english?'templates':'tùy chá»nh');accentHeading('.bsphoto-home__head h2',english?'Capture the moment, ':'Chụp khoảnh khắc, ',english?'wear it for real':'mặc lên ngưá»i tháºt');accentHeading('.rxsc-head h2','AI Remix â ',english?'Turn photos into artwork':'Biến ảnh thà nh artwork');accentHeading('.tysc-head h2','AI ','Typo Maker');accentHeading('.bsrv-head h2',english?'â What customers ':'â Khách hà ng ',english?'say':'nói gì',' â ');accentHeading('.bs-home-support-content h2',english?'Still not getting the shirt ':'Chưa tạo ÄÆ°á»£c áo ',english?'you want?':'ưng ý?');accentHeading('.bsfaq-head h2',english?'Frequently asked ':'Há»i ',english?'questions':'Äáp');accentHeading('.bgs-disco-section-head h2',english?'Tools & ':'Tiá»n Ãch & ','Blog')};const pointProductButtonsToWooCommerce=()=>{document.querySelectorAll('.bps-card').forEach((card)=>{const productLink=card.querySelector('.bps-card__image[href], h3 a[href]');const action=card.querySelector('.bps-card__button');if(productLink&&action){action.href=productLink.href;action.removeAttribute('target')} 5if(!productLink||card.dataset.cardNavigationReady==='1')return;card.dataset.cardNavigationReady='1';card.setAttribute('role','link');card.setAttribute('tabindex','0');let pointerStart=null;card.addEventListener('pointerdown',(event)=>{pointerStart={x:event.clientX,y:event.clientY}});card.addEventListener('click',(event)=>{if(event.target.closest('a, button, input, select, textarea, [role="button"]'))return;if(pointerStart&&Math.hypot(event.clientX-pointerStart.x,event.clientY-pointerStart.y)>8)return;window.location.assign(productLink.href)});card.addEventListener('keydown',(event)=>{if(event.key!=='Enter'&&event.key!==' ')return;if(event.target!==card)return;event.preventDefault();window.location.assign(productLink.href)})})};const installFastHomepageNavigation=()=>{const showNavigationLoading=(label)=>{let overlay=document.querySelector('.bsl-navigation-loading');if(!overlay){overlay=document.createElement('div');overlay.className='bsl-navigation-loading';overlay.setAttribute('role','status');overlay.setAttribute('aria-live','polite');overlay.innerHTML='<span class="bsl-navigation-loading__spinner" aria-hidden="true"></span><strong></strong>';document.body.appendChild(overlay)} 6overlay.querySelector('strong').textContent=label;overlay.classList.add('is-visible');document.documentElement.classList.add('bsl-is-navigating')};document.querySelectorAll('.bigstep-lang-switcher a[href]').forEach((link)=>{link.addEventListener('click',(event)=>{if(event.button!==0||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)return;const targetUrl=new URL(link.href,window.location.href);const label=(link.textContent||'').trim().toLowerCase();const language=label==='en'?'en':label==='vi'?'vi':targetUrl.searchParams.get('lang')==='en'?'en':'vi';targetUrl.searchParams.set('lang',language);const currentUrl=new URL(window.location.href);const currentLanguage=currentUrl.searchParams.get('lang')||((document.documentElement.lang||'').toLowerCase().startsWith('en')?'en':'vi');if(language===currentLanguage)return;event.preventDefault();event.stopImmediatePropagation();link.closest('.bigstep-lang-switcher')?.querySelectorAll('a').forEach((item)=>{const active=item===link;item.classList.toggle('is-active',active);item.setAttribute('aria-current',active?'page':'false')});document.cookie=`bigstep_lang=${language};path=/;max-age=2592000;SameSite=Lax`;document.documentElement.lang=language==='en'?'en-US':'vi';showNavigationLoading(language==='en'?'Switching to Englishâ¦':'Äang chuyá»n sang Tiếng Viá»tâ¦');window.requestAnimationFrame(()=>window.location.assign(targetUrl.href))},!0)});const primaryCta=document.querySelector('.bsl-hero .bsl-button--primary[href], .bsl-button--primary[href*="/studio/"]');if(primaryCta){primaryCta.addEventListener('click',(event)=>{if(event.button!==0||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)return;event.preventDefault();event.stopImmediatePropagation();if(primaryCta.dataset.bigstepNavigating==='1')return;primaryCta.dataset.bigstepNavigating='1';primaryCta.classList.add('is-navigating');showNavigationLoading(isEnglishHomepage()?'Opening Bigstep Studioâ¦':'Äang má» Bigstep Studioâ¦');window.requestAnimationFrame(()=>window.location.assign(primaryCta.href))},!0)}};const mountMobileLanguageSwitcher=()=>{const switcher=document.querySelector('.bigstep-lang-switcher');if(!switcher||!window.matchMedia('(max-width: 767px)').matches)return;const mount=()=>{const cart=document.querySelector('#haru-header .elementor-element-386c4e1');const rightWrap=document.querySelector('#haru-header .elementor-element-5b372e4');const header=document.querySelector('#haru-header');if(!header)return!1;const target=cart||rightWrap||header;if(cart&&cart.parentElement)cart.parentElement.insertBefore(switcher,cart);else if(rightWrap)rightWrap.insertBefore(switcher,rightWrap.firstChild);else target.appendChild(switcher);switcher.classList.add('bigstep-lang-switcher--in-header');return!0};if(mount())return;const observer=new MutationObserver(()=>{if(mount())observer.disconnect()});observer.observe(document.documentElement,{childList:!0,subtree:!0});window.setTimeout(()=>
6observer.disconnect(),15000)};const installIntroVideo=()=>{const trigger=document.querySelector('.bsl-button--video');if(!trigger||document.querySelector('.bsl-intro-video')){return} 7trigger.href='#bigstep-intro-video';trigger.setAttribute('aria-haspopup','dialog');trigger.setAttribute('aria-controls','bigstep-intro-video');const modal=document.createElement('div');modal.id='bigstep-intro-video';modal.className='bsl-intro-video';modal.setAttribute('role','dialog');modal.setAttribute('aria-modal','true');modal.setAttribute('aria-label',isEnglishHomepage()?'Bigstep introduction video':'Video giá»i thiá»u Bigstep');modal.setAttribute('aria-hidden','true');modal.innerHTML=` 8 <button class="bsl-intro-video__backdrop" type="button" aria-label="Äóng video"></button> 9 <div class="bsl-intro-video__panel"> 10 <button class="bsl-intro-video__close" type="button" aria-label="Äóng video">Ã</button> 11 <video controls playsinline preload="metadata" poster="/wp-content/uploads/revslider/video-media/intro_bigstep_slider_325.jpeg"> 12 <source src="/wp-content/uploads/2025/11/intro_bigstep_slider.mp4" type="video/mp4"> 13 </video> 14 </div>`;document.body.appendChild(modal);const video=modal.querySelector('video');const closeButton=modal.querySelector('.bsl-intro-video__close');const close=()=>{modal.classList.remove('is-open');modal.setAttribute('aria-hidden','true');document.documentElement.classList.remove('bsl-video-open');video.pause();video.currentTime=0;trigger.focus({preventScroll:!0})};const open=(event)=>{event.preventDefault();modal.classList.add('is-open');modal.setAttribute('aria-hidden','false');document.documentElement.classList.add('bsl-video-open');closeButton.focus({preventScroll:!0});video.play().catch(()=>{})};trigger.addEventListener('click',open);modal.querySelector('.bsl-intro-video__backdrop').addEventListener('click',close);closeButton.addEventListener('click',close);video.addEventListener('ended',close);document.addEventListener('keydown',(event)=>{if('Escape'===event.key&&modal.classList.contains('is-open')){close()}})};const carouselAnimations=new WeakMap();const stopCarouselAnimation=(track)=>{const frame=carouselAnimations.get(track);if(frame)window.cancelAnimationFrame(frame);carouselAnimations.delete(track);track.classList.remove('is-bigstep-animating')};const animateCarouselTo=(track,target,duration=680)=>{stopCarouselAnimation(track);const start=track.scrollLeft;const distance=target-start;if(Math.abs(distance)<1)return;const startedAt=performance.now();track.classList.add('is-bigstep-animating');const tick=(now)=>{const progress=Math.min(1,(now-startedAt)/duration);const eased=1-Math.pow(1-progress,4);track.scrollLeft=start+distance*eased;if(progress<1){carouselAnimations.set(track,window.requestAnimationFrame(tick))}else{carouselAnimations.delete(track);track.classList.remove('is-bigstep-animating')}};carouselAnimations.set(track,window.requestAnimationFrame(tick))};const installDesktopCarouselDrag=()=>{const selectors=['[data-bstpl-track]','[data-rxsc-track]','[data-tysc-track]','[data-bps-track]','.bsrv-section .ti-reviews-container-wrapper','[data-bsig-carousel] #sbi_images','[data-bsig-carousel] .sbi_images','[data-bsig-carousel] .sbi_items',];document.querySelectorAll(selectors.join(',')).forEach((track)=>{if(track.dataset.bigstepMouseDrag==='1')return;track.dataset.bigstepMouseDrag='1';track.style.cursor='grab';let pointerId=null;let startX=0;let startScrollLeft=0;let dragged=!1;let previousSnap='';let previousBehavior='';let lastX=0;let lastTime=0;let velocity=0;track.addEventListener('pointerdown',(event)=>{if(event.pointerType!=='mouse'||event.button!==0)return;stopCarouselAnimation(track);pointerId=event.pointerId;startX=event.clientX;startScrollLeft=track.scrollLeft;dragged=!1;lastX=event.clientX;lastTime=performance.now();velocity=0;previousSnap=track.style.scrollSnapType;previousBehavior=track.style.scrollBehavior;track.style.scrollSnapType='none';track.style.scrollBehavior='auto'});track.addEventListener('pointermove',(event)=>{if(pointerId!==event.pointerId)return;const delta=event.clientX-startX;if(Math.abs(delta)>10&&!dragged){dragged=!0;track.classList.add('is-bigstep-dragging');track.style.cursor='grabbing';track.setPointerCapture?.(pointerId)} 15if(!dragged)return;event.preventDefault();track.scrollLeft=startScrollLeft-delta;const now=performance.now();const elapsed=Math.max(1,now-lastTime);velocity=(event.clientX-lastX)/elapsed;lastX=event.clientX;lastTime=now});const finishDrag=(event)=>{if(pointerId!==event.pointerId)return;track.releasePointerCapture?.(pointerId);pointerId=null;track.classList.remove('is-bigstep-dragging');track.style.scrollSnapType=previousSnap;track.style.scrollBehavior=previousBehavior;track.style.cursor='grab';if(dragged){const firstCard=Array.from(track.children).find((child)=>child.getBoundingClientRect().width>
1540);const styles=window.getComputedStyle(track);const gap=parseFloat(styles.columnGap||styles.gap||'0')||0;const step=firstCard?firstCard.getBoundingClientRect().width+gap:track.clientWidth;const maximum=Math.max(0,track.scrollWidth-track.clientWidth);const projected=track.scrollLeft-Math.max(-1.15,Math.min(1.15,velocity))*170;const target=Math.max(0,Math.min(maximum,Math.round(projected/Math.max(1,step))*step));animateCarouselTo(track,target,520)}};track.addEventListener('pointerup',finishDrag);track.addEventListener('pointercancel',finishDrag);track.addEventListener('click',(event)=>{if(!dragged)return;event.preventDefault();event.stopImmediatePropagation();dragged=!1},!0);track.querySelectorAll('img, a').forEach((element)=>element.setAttribute('draggable','false'))})};const installTrustindexCarousel=()=>{document.querySelectorAll('.bsrv-section .ti-reviews-container').forEach((container)=>{const track=container.querySelector('.ti-reviews-container-wrapper');if(!track||track.dataset.bigstepCarouselReady){return} 16track.querySelectorAll('.ti-review-item').forEach((review)=>{const content=review.querySelector('.ti-review-text-container, .ti-review-content, .ti-review-text');if(!content||!content.textContent.trim()){review.remove()}});const reviews=track.querySelectorAll('.ti-review-item');if(!reviews.length){container.closest('.bsrv-frame')?.classList.add('is-empty');return} 17track.dataset.bigstepCarouselReady='1';if(reviews.length<2){return} 18const frame=container.closest('.bsrv-frame');const controlsHost=frame?.closest('.bsrv-inner')?.querySelector('.bsrv-head')||frame?.querySelector('.bsrv-actions')||container;let controls=controlsHost.querySelector('.bigstep-ti-carousel-controls');if(!controls){controls=document.createElement('div');controls.className='bigstep-ti-carousel-controls';controls.setAttribute('aria-label',isEnglishHomepage()?'Customer review navigation':'Äiá»u hưá»ng Äánh giá khách hà ng');controls.innerHTML=` 19 <button class="bigstep-home-nav bigstep-ti-prev" type="button" aria-label="${isEnglishHomepage() ? 'Previous review' : 'Äánh giá trưá»c'}"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M19 12H5"></path><path d="M12 5l-7 7 7 7"></path></svg></button> 20 <button class="bigstep-home-nav bigstep-ti-next" type="button" aria-label="${isEnglishHomepage() ? 'Next review' : 'Äánh giá tiếp theo'}"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 12h14"></path><path d="M12 5l7 7-7 7"></path></svg></button>`;controlsHost.append(controls)} 21const previous=controls.querySelector('.bigstep-ti-prev');const next=controls.querySelector('.bigstep-ti-next');const syncControls=()=>{const canScroll=track.scrollWidth>track.clientWidth+2;controls.hidden=!canScroll;controls.setAttribute('aria-hidden',canScroll?'false':'true')};const move=(direction)=>{const card=track.querySelector('.ti-review-item');const gap=parseFloat(window.getComputedStyle(track).columnGap||'14')||14;const distance=card?card.getBoundingClientRect().width+gap:track.clientWidth;const maximum=Math.max(0,track.scrollWidth-track.clientWidth);const atStart=track.scrollLeft<=2;const atEnd=track.scrollLeft>=maximum-2;if(direction<0&&atStart){animateCarouselTo(track,maximum)}else if(direction>0&&atEnd){animateCarouselTo(track,0)}else{animateCarouselTo(track,Math.max(0,Math.min(maximum,track.scrollLeft+direction*distance)))}};const bind=(button,direction)=>
21{if(!button)return;button.addEventListener('click',(event)=>{event.preventDefault();event.stopImmediatePropagation();move(direction)},!0)};bind(previous,-1);bind(next,1);let autoplayTimer=0;const stopAutoplay=()=>{if(autoplayTimer)window.clearTimeout(autoplayTimer);autoplayTimer=0};const scheduleAutoplay=(delay=6200)=>{stopAutoplay();if(document.hidden)return;autoplayTimer=window.setTimeout(()=>{const rect=container.getBoundingClientRect();if(rect.bottom>0&&rect.top<window.innerHeight)move(1);scheduleAutoplay()},delay)};container.addEventListener('mouseenter',stopAutoplay,{passive:!0});container.addEventListener('mouseleave',()=>scheduleAutoplay(3000),{passive:!0});container.addEventListener('pointerdown',stopAutoplay,{passive:!0});container.addEventListener('pointerup',()=>scheduleAutoplay(4200),{passive:!0});document.addEventListener('visibilitychange',()=>document.hidden?stopAutoplay():scheduleAutoplay(3000),{passive:!0});scheduleAutoplay();window.requestAnimationFrame(syncControls);window.addEventListener('resize',syncControls,{passive:!0})})};const installCalmHomepageCarousels=()=>{if(!document.body.classList.contains('home')||window.matchMedia('(prefers-reduced-motion: reduce)').matches){return} 22const legacyStopEvent=()=>new MouseEvent('mouseenter',{bubbles:!1});const stopLegacyTimer=(root)=>root.dispatchEvent(legacyStopEvent());const definitions=[{root:'.bstpl-wrap',track:'[data-bstpl-track]',card:'.bstpl-card',previous:'[data-bstpl-prev]',next:'[data-bstpl-next]',dots:'.bstpl-dots',},{root:'.bs-remix-showcase',track:'[data-rxsc-track]',card:'.rxsc-card',previous:'[data-rxsc-prev]',next:'[data-rxsc-next]',dots:'.rxsc-dots',},{root:'.bs-typo-showcase',track:'[data-tysc-track]',card:'.tysc-card',previous:'[data-tysc-prev]',next:'[data-tysc-next]',dots:'.tysc-dots',},];definitions.forEach((definition)=>{const root=document.querySelector(definition.root);const track=root?.querySelector(definition.track);const previous=root?.querySelector(definition.previous);const next=root?.querySelector(definition.next);const dots=definition.dots?root?.querySelector(definition.dots):null;if(!root||!track||!previous||!next||track.dataset.bigstepCalmCarousel){return} 23track.dataset.bigstepCalmCarousel='1';let direction=1;let timer=0;let visible=!1;let paused=!1;const maximum=()=>Math.max(0,track.scrollWidth-track.clientWidth);const isActuallyVisible=()=>{const rect=root.getBoundingClientRect();const visiblePixels=Math.max(0,Math.min(rect.bottom,window.innerHeight)-Math.max(rect.top,0));return rect.height>0&&visiblePixels/rect.height>=.20};const distance=()=>{const card=track.querySelector(definition.card);const styles=window.getComputedStyle(track);const gap=parseFloat(styles.columnGap||styles.gap||'14')||14;return card?card.getBoundingClientRect().width+gap:Math.max(260,track.clientWidth*.82)};const syncDots=()=>{if(!dots)return;const step=Math.max(1,distance());const count=Math.max(1,Math.round(maximum()/step)+1);if(dots.children.length!==count||!dots.querySelector('button')){dots.innerHTML=Array.from({length:count},(_,dotIndex)=>`<button type="button" role="tab" aria-label="${isEnglishHomepage() ? 'Carousel page' : 'Trang trình chiếu'} ${dotIndex + 1}"></button>`).join('');dots.removeAttribute('aria-hidden');dots.querySelectorAll('button').forEach((dot,dotIndex)=>{dot.addEventListener('click',()=>{animateCarouselTo(track,Math.min(maximum(),dotIndex*step),560);schedule(6800)})})} 24const active=Math.min(count-1,Math.round(track.scrollLeft/step));dots.querySelectorAll('button').forEach((dot,dotIndex)=>{dot.classList.toggle('is-active',dotIndex===active);dot.setAttribute('aria-current',dotIndex===active?'true':'false');dot.setAttribute('aria-selected',dotIndex===active?'true':'false')})};const stop=()=>{if(timer){window.clearTimeout(timer);timer=0}};const move=(requestedDirection=direction)=>{const max=maximum();if(max<=2)return;const step=distance();let nextLeft=track.scrollLeft+step*requestedDirection;if(requestedDirection>0&&nextLeft>=max-4){nextLeft=max;direction=-1}else if(requestedDirection<0&&nextLeft<=4){nextLeft=0;direction=1}else{direction=requestedDirection} 25animateCarouselTo(track,Math.max(0,Math.min(max,nextLeft)))};const schedule=(delay=5600)=>{stop();if(!visible||!isActuallyVisible()||paused||document.hidden||maximum()<=2)return;timer=window.setTimeout(()=>{if(!isActuallyVisible()){stop();return} 26move(direction);
26schedule(5600)},delay)};const bindControl=(button,requestedDirection)=>{button.addEventListener('click',(event)=>{event.preventDefault();event.stopImmediatePropagation();move(requestedDirection);schedule(6800)},!0)};bindControl(previous,-1);bindControl(next,1);track.addEventListener('scroll',syncDots,{passive:!0});window.addEventListener('resize',syncDots,{passive:!0});window.requestAnimationFrame(syncDots);root.addEventListener('mouseenter',(event)=>{if(!event.isTrusted)return;paused=!0;stop()},!0);root.addEventListener('mouseleave',(event)=>{event.stopImmediatePropagation();if(!event.isTrusted)return;paused=!1;schedule(2600)},!0);root.addEventListener('touchstart',()=>{paused=!0;stop()},{passive:!0,capture:!0});root.addEventListener('touchend',(event)=>{event.stopImmediatePropagation();paused=!1;schedule(4200)},{passive:!0,capture:!0});const observer=new IntersectionObserver((entries)=>{visible=entries[0]?.isIntersecting&&entries[0].intersectionRatio>=.22;if(visible)schedule(2400);else stop()},{threshold:[.22,.55]});observer.observe(root);document.addEventListener('visibilitychange',()=>{if(document.hidden)stop();else schedule(1800)},{passive:!0});stopLegacyTimer(root);window.setTimeout(()=>stopLegacyTimer(root),750);window.setTimeout(()=>stopLegacyTimer(root),1800)});const oldShowcase=document.querySelector('[data-bps-showcase]');if(!1&&oldShowcase&&!oldShowcase.dataset.bigstepSmartShowcase){const root=oldShowcase.cloneNode(!0);oldShowcase.replaceWith(root);root.dataset.bigstepSmartShowcase='1';root.dataset.bpsReady='1';root.querySelectorAll('.bps-card[data-card-navigation-ready]').forEach((card)=>{delete card.dataset.cardNavigationReady;card.removeAttribute('role');card.removeAttribute('tabindex')});pointProductButtonsToWooCommerce();const track=root.querySelector('[data-bps-track]');const dots=root.querySelector('[data-bps-dots]');const previous=root.querySelector('[data-bps-prev]');const next=root.querySelector('[data-bps-next]');const cards=track?Array.from(track.children):[];if(track&&dots&&previous&&next&&cards.length){let index=0;let direction=1;let visible=!1;let paused=!1;let timer=0;const visibleCards=()=>window.innerWidth<680?1:window.innerWidth<1100?2:3;const maximum=()=>Math.max(0,cards.length-visibleCards());const isActuallyVisible=()=>{const rect=root.getBoundingClientRect();const visiblePixels=Math.max(0,Math.min(rect.bottom,window.innerHeight)-Math.max(rect.top,0));return rect.height>0&&visiblePixels/rect.height>=.20};const step=()=>{const gap=parseFloat(window.getComputedStyle(track).gap||'14')||14;return cards[0].getBoundingClientRect().width+gap};const stop=()=>{if(timer)window.clearTimeout(timer);timer=0};const render=()=>{index=Math.max(0,Math.min(maximum(),index));track.style.transform=`translate3d(${-index * step()}px,0,0)`;dots.innerHTML='';for(let position=0;position<=maximum();position+=1){const dot=document.createElement('button');dot.type='button';dot.dataset.index=String(position);dot.setAttribute('aria-label',`Slide ${position + 1}`);if(position===index)dot.className='is-active';dots.appendChild(dot)} 27previous.disabled=index===0;next.disabled=index===maximum()};const move=(requestedDirection=direction)=>{const max=maximum();if(!max)return;index+=requestedDirection;if(index>=max){index=max;direction=-1}else if(index<=0){index=0;direction=1}else{direction=requestedDirection} 28render()};const schedule=(delay=5600)=>{stop();if(!visible||!isActuallyVisible()||paused||document.hidden||!maximum())return;timer=window.setTimeout(()=>{if(!isActuallyVisible()){stop();return} 29move(direction);schedule(5600)},delay)};previous.addEventListener('click',()=>{move(-1);schedule(6800)});next.addEventListener('click',()=>{move(1);schedule(6800)});dots.addEventListener('click',(event)=>{const dot=event.target.closest('button[data-index]');if(!dot)return;index=parseInt(dot.dataset.index,10)||0;direction=index>=maximum()?-1:1;render();schedule(6800)});if(window.matchMedia('(hover: hover) and (pointer: fine)').matches){root.addEventListener('mouseenter',()=>{paused=!0;stop()});root.addEventListener('mouseleave',()=>{paused=!1;schedule(2600)})} 30const viewport=root.querySelector('.bps-viewport')||root;let touchStartX=0;let touchStartY=0;let suppressClickUntil=0;viewport.addEventListener('touchstart',(event)=>{const touch=event.touches[0];if(!touch)return;touchStartX=touch.clientX;touchStartY=touch.clientY;paused=!0;stop()},{passive:!0});viewport.addEventListener('touchend',(event)=>{const touch=event.changedTouches[0];if(touch){const deltaX=touch.clientX-touchStartX;const deltaY=touch.clientY-touchStartY;if(Math.abs(deltaX)>=42&&Math.abs(deltaX)>Math.abs(deltaY)*1.1){move(deltaX<0?1:-1);suppressClickUntil=Date.now()+450}} 31paused=!1;schedule(4200)},{passive:!0});viewport.addEventListener('touchcancel',()=>{paused=!1;schedule(4200)},{passive:!0});viewport.addEventListener('click',(event)=>{if(Date.now()>=suppressClickUntil)return;event.preventDefault();event.stopPropagation()},!0);window.addEventListener('resize',render,{passive:!0});document.addEventListener('visibilitychange',()=>document.hidden?stop():schedule(1800),{passive:!0});new IntersectionObserver((entries)=>{visible=entries[0]?.isIntersecting&&entries[0].intersectionRatio>=.20;if(visible)schedule(2400);else stop()}
31,{threshold:[.20,.55]}).observe(root);render()}}};const stabilizeMobileSectionStack=()=>{const outer=document.querySelector('.elementor-element-61e746f');const inner=outer?.querySelector(':scope > .e-con-inner');const group=document.querySelector('.elementor-element-5a4af7f');if(!outer||!inner||!group){return} 32const sync=()=>{if(!window.matchMedia('(max-width: 640px)').matches){[outer,inner,group].forEach((element)=>{element.style.removeProperty('height');element.style.removeProperty('min-height')});return} 33const naturalHeight=Math.ceil(Array.from(group.children).reduce((maximum,child)=>{return Math.max(maximum,child.offsetTop+child.offsetHeight)},group.scrollHeight));const outerStyle=window.getComputedStyle(outer);const outerChrome=(parseFloat(outerStyle.paddingTop)||0)+(parseFloat(outerStyle.paddingBottom)||0);const setHeight=(element,height)=>{const value=`${Math.ceil(height)}px`;if(element.style.height!==value){element.style.setProperty('height',value,'important')}};setHeight(group,naturalHeight);setHeight(inner,naturalHeight);setHeight(outer,naturalHeight+outerChrome)};window.requestAnimationFrame(sync);window.setTimeout(sync,500);window.setTimeout(sync,1800);window.setTimeout(sync,3500);window.setTimeout(sync,6500);window.addEventListener('resize',sync,{passive:!0});if('MutationObserver' in window){let queued=!1;const observer=new MutationObserver(()=>{if(queued)return;queued=!0;window.requestAnimationFrame(()=>{queued=!1;sync()})});[outer,inner,group].forEach((element)=>observer.observe(element,{attributes:!0,attributeFilter:['style']}))}};const normalizeFooterSocialIcons=()=>{const platforms=[{match:'facebook.com',name:'Facebook',icon:'fa-facebook-f'},{match:'tiktok.com',name:'TikTok',icon:'fa-tiktok'},{match:'instagram.com',name:'Instagram',icon:'fa-instagram'},{match:'youtube.com',name:'YouTube',icon:'fa-youtube'},];document.querySelectorAll('#haru-footer .haru-social a[href]').forEach((link)=>{const platform=platforms.find((item)=>link.href.includes(item.match));if(!platform)return;const icon=link.querySelector('i');if(icon){icon.className=`fab ${platform.icon}`;icon.setAttribute('aria-hidden','true')} 34link.dataset.socialPlatform=platform.name.toLowerCase();link.setAttribute('aria-label',`Theo dõi Bigstep trên ${platform.name}`);link.setAttribute('title',platform.name)})};const normalizeHomepageAccessibility=()=>{document.querySelectorAll('.bsrv-review-btn').forEach((link)=>{link.setAttribute('aria-label','Viết Äánh giá Bigstep trên Google')});document.querySelectorAll('a[href*="online.gov.vn"]').forEach((link,index)=>{link.href=link.href.replace(/^https:\/\//i,'http://');const label=index===0?'Bigstep Äã thông báo Bá» Công Thương':'Bigstep Äã ÄÄng ký Bá» Công Thương';link.setAttribute('aria-label',label);const image=link.querySelector('img');if(image&&!image.alt.trim())image.alt=label});const currentBackToTop=document.querySelector('a.back-to-top');if(currentBackToTop){const button=document.createElement('button');button.type='button';button.className=currentBackToTop.className;button.innerHTML=currentBackToTop.innerHTML;button.setAttribute('aria-label','Vá» Äầu trang');button.setAttribute('title','Vá» Äầu trang');currentBackToTop.replaceWith(button);button.addEventListener('click',()=>window.scrollTo({top:0,behavior:'smooth'}))} 35document.querySelectorAll('#wpadminbar button').forEach((button)=>{if(button.textContent.trim()==='Learn More')button.textContent='Tìm hiá»u thêm'})};const polishHomepage=()=>{mountMobileLanguageSwitcher();installFastHomepageNavigation();normalizeFooterSocialIcons();normalizeHomepageAccessibility();normalizeHomepageHeadings();normalizeEnglishInterface();window.setTimeout(normalizeEnglishInterface,1800);window.setTimeout(normalizeEnglishInterface,4500);pointProductButtonsToWooCommerce();installIntroVideo();installTrustindexCarousel();installCalmHomepageCarousels();installDesktopCarouselDrag();stabilizeMobileSectionStack();window.setTimeout(installTrustindexCarousel,4000);window.setTimeout(installTrustindexCarousel,8500);
35window.setTimeout(installDesktopCarouselDrag,1800);window.setTimeout(installDesktopCarouselDrag,5000)};if('loading'===document.readyState){document.addEventListener('DOMContentLoaded',()=>{polishHomepage();scheduleFallback()},{once:!0})}else{polishHomepage();scheduleFallback()}})()
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.