PageSourceSearch

https://www.charth.com.br/cdn/shop/t/58/assets/manager-pdp.js?v=114815438200331262671790025504

js charth.com.br collected 2026-09-24 13:33:41 UTC 7,161 bytes, 2 lines download raw bytes

1class SizeSelectorController{constructor(wrapper){this._wrapper=wrapper,this._toggle=wrapper.querySelector("[data-size-toggle]"),this._popup=wrapper.querySelector("[data-size-popup]"),this._options=wrapper.querySelectorAll("[data-size-option]"),this._label=wrapper.querySelector("[data-size-label]"),this._input=wrapper.querySelector("[data-size-input]"),this._addBtn=wrapper.querySelector("[data-add-to-cart]"),this._notify=wrapper.querySelector("[data-back-in-stock]"),this._status=wrapper.querySelector("[data-availability-status] span"),this._prices=wrapper.querySelectorAll("[data-pdp-current-price]"),this._comparePrices=wrapper.querySelectorAll("[data-pdp-compare-price]"),this._installmentPrices=wrapper.querySelectorAll("[data-pdp-installment-price]"),this._installmentMoney=wrapper.querySelectorAll("[data-pdp-installment-money]"),this._section=wrapper.closest("[data-pdp-section-id]"),this._discountBadge=this._section?.querySelector("[data-pdp-discount-badge]"),this._discountValue=this._discountBadge?.querySelector("[data-pdp-discount-value]"),this._isOpen=!1,this._onDocClick=this._onDocClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._init()}_init(){this._toggle?.addEventListener("click",()=>this._isOpen?this._close():this._open()),this._options.forEach(opt=>opt.addEventListener("click",()=>this._select(opt))),this._notify?.querySelector("[data-notify-me]")?.addEventListener("click",()=>{document.dispatchEvent(new CustomEvent("pdp:notify-me",{detail:{productId:this._notify.dataset.productId,variantId:this._notify.dataset.variantId}}))}),document.addEventListener("click",this._onDocClick),document.addEventListener("keydown",this._onKeyDown)}_onDocClick(e){this._wrapper.contains(e.target)||this._close()}_onKeyDown(e){e.key==="Escape"&&this._close()}_open(){this._popup?.classList.add("is-open"),this._popup?.removeAttribute("hidden"),this._toggle?.setAttribute("aria-expanded","true"),this._isOpen=!0}_close(){this._popup?.classList.remove("is-open"),this._popup?.setAttribute("hidden",""),this._toggle?.setAttribute("aria-expanded","false"),this._isOpen=!1}_select(option){const variantId=option.dataset.variantId,label=option.dataset.sizeLabel||option.textContent.trim(),isAvailable=option.dataset.variantAvailable==="true";this._input&&(this._input.value=variantId),this._label&&(this._label.textContent=label),this._status&&(this._status.textContent=this._getAvailabilityLabel(option)),this._updatePricing(option),this._updateVariantUrl(variantId),this._options.forEach(o=>o.classList.toggle("is-active",o===option)),this._toggleAvailability(isAvailable,variantId),this._close()}_toggleAvailability(isAvailable,variantId){this._addBtn&&(this._addBtn.disabled=!isAvailable,this._addBtn.hidden=!isAvailable,this._addBtn.type="submit"),this._notify&&(this._notify.hidden=isAvailable,variantId&&(this._notify.dataset.variantId=variantId)),document.dispatchEvent(new CustomEvent("pdp:variant:change",{detail:{variantId,available:isAvailable}}))}_updateVariantUrl(variantId){const url=new URL(window.location.href);url.searchParams.set("variant",variantId),window.history.replaceState(window.history.state,"",url)}_getAvailabilityLabel(option){const isAvailable=option.dataset.variantAvailable==="true",inventoryQuantity=Number.parseInt(option.dataset.variantInventoryQuantity||"0",10);return isAvailable?inventoryQuantity===1?"1 unidade dispon\xEDvel":"Produto dispon\xEDvel":"Produto indispon\xEDvel"}_updatePricing(option){const hasDiscount=option.dataset.variantHasDiscount==="true",currentPrice=option.dataset.variantPriceFormatted,compareAtPrice=option.dataset.variantCompareAtPriceFormatted,installmentPrice=option.dataset.variantInstallmentPrice,installmentMoney=option.dataset.variantInstallmentMoney;this._prices.forEach(element=>{currentPrice&&(element.textContent=currentPrice)}),this._comparePrices.forEach(element=>{compareAtPrice&&(element.textContent=compareAtPrice),element.hidden=!hasDiscount}),this._installmentPrices.forEach(element=>{installmentPrice&&(element.textContent=installmentPrice)}),this._installmentMoney.forEach(element=>{installmentMoney&&(element.textContent=installmentMoney)}),this._discountBadge&&(this._discountBadge.hidden=!hasDiscount),this._discountValue&&(this._discountValue.textContent=option.dataset.variantDiscount||"0")}destroy(){document.removeEventListener("click",this._onDocClick),document.removeEventListener("keydown",this._onKeyDown)}}class AddToCartController{constructor(wrapper){this._form=wrapper.querySelector('form[action*="/cart/add"]'),this._button=wrapper.querySelector("[data-add-to-cart]"),this._input=wrapper.querySelector("[data-size-input]")||wrapper.querySelector('[name="id"]'),this._form&&(this._onSubmit=this._onSubmit.bind(this),this._form.addEventListener("submit",this._onSubmit))}async _onSubmit(e){e.preventDefault();const input=this._form.querySelector('[name="id"]:checked')||this._form.querySelector('[name="id"][type="hidden"]');if(input?.disabled||input?.dataset.variantAvailable==="false")return;const variantId=input?.getAttribute("data-variant-id")||input?.value;if(!variantId)return;const action=this._button?.dataset.addAction||"open_drawer",cartUrl=this._button?.dataset.cartUrl||"/cart",btn=this._button;btn&&(btn.style.width=`${btn.offsetWidth}px`,btn.style.height=`${btn.offsetHeight}px`);const result=await window.CartManager?.add(variantId,{button:btn,action});btn&&(btn.style.width="",btn.style.height=""),result?.success&&action==="open_cart"&&(window.location.href=cartUrl)}destroy(){this._form?.removeEventListener("submit",this._onSubmit)}}class GalleryObserver{constructor(section){this._observer=new IntersectionObserver(entries=>
1{entries.forEach(entry=>{const anchor=section.querySelector(`a.pdpMain__bannerMenu[href="#${entry.target.id}"]`);anchor&&(anchor.classList.toggle("opacity-100",entry.isIntersecting),anchor.classList.toggle("opacity-50",!entry.isIntersecting))})},{threshold:.5}),section.querySelectorAll('[id^="product-image-"]').forEach(el=>{this._observer.observe(el)})}destroy(){this._observer.disconnect()}}class PdpManager{constructor({sectionId}){this._section=document.querySelector(`.pdpMain--${sectionId}`),this._section&&(this._modules=[],this._section.querySelectorAll("[data-product-wrapper]").forEach(wrapper=>{this._modules.push(new SizeSelectorController(wrapper)),this._modules.push(new AddToCartController(wrapper))}),this._section.hasAttribute("data-pdp-gallery")&&this._modules.push(new GalleryObserver(this._section)))}destroy(){this._modules.forEach(m=>m.destroy?.()),this._modules=[]}}function initPdpManager(sectionId){window._pdpManager&&window._pdpManager.destroy(),window._pdpManager=new PdpManager({sectionId})}window.initPdpManager=initPdpManager,document.querySelectorAll("[data-pdp-section-id]").forEach(el=>{initPdpManager(el.dataset.pdpSectionId)}),document.addEventListener("shopify:section:load",event=>{const target=event.target,el=target.matches?.("[data-pdp-section-id]")?target:target.querySelector?.("[data-pdp-section-id]");el&&initPdpManager(el.dataset.pdpSectionId)});
2//# sourceMappingURL=/cdn/shop/t/58/assets/manager-pdp.js.map?v=114815438200331262671790025504

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.