PageSourceSearch

https://www.citiesocial.com/cdn/shop/t/18/assets/product-page.js?v=167078249732673624351747205684

js citiesocial.com collected 2026-09-24 17:39:54 UTC 4,174 bytes, 2 lines download raw bytes

1$(function(){handleProductQuantity(),handleMobilePreStepPanel(),handleOneClickCheckout(),handleProductSlideshow(),handleProductIntroVideoSize();const productId=Citiesocial.productManager.getProductId();productId&&Citiesocial.productViewHistory.addProductView(productId);function handleProductQuantity(){const $productQuantityInput=$('.product__quantity input[name="quantity"]'),$minusButton=$(".quantity__minus"),$plusButton=$(".quantity__plus");checkMinusButtonAndQuantity(),$productQuantityInput.change(function(){checkMinusButtonAndQuantity()}),$minusButton.click(function(){$productQuantityInput.val(function(i,oldValue){return Number(oldValue)-1}),checkMinusButtonAndQuantity()}),$plusButton.click(function(){$productQuantityInput.val(function(i,oldValue){return Number(oldValue)+1}),checkMinusButtonAndQuantity()});function checkMinusButtonAndQuantity(){const quantity=Number($productQuantityInput.val());quantity<1&&($minusButton.attr("disabled","disabled"),$productQuantityInput.val(1),alert("\u8CFC\u8CB7\u6578\u91CF\u81F3\u5C11\u70BA1!")),quantity<=1?$minusButton.attr("disabled","disabled"):$minusButton.removeAttr("disabled")}}function handleMobilePreStepPanel(){const $form=$(".product__form"),$preAddToCartBtn=$(".product__pre-add-to-cart"),$preOneClickCheckoutBtn=$(".product__pre-one-click-checkout"),$addToCartBtn=$(".product__add-to-cart"),$oneClickCheckoutBtn=$(".product__one-click-checkout"),$modalBackDrop=$(".modal-backdrop"),$modalBtn=$(".modal__btn"),productFormShowClass="product__form--show";$preAddToCartBtn.click(function(){$addToCartBtn.show(),$oneClickCheckoutBtn.hide(),$form.addClass(productFormShowClass),$modalBackDrop.show(),$modalBtn.show()}),$preOneClickCheckoutBtn.click(function(){$oneClickCheckoutBtn.show(),$addToCartBtn.hide(),$form.addClass(productFormShowClass),$modalBackDrop.show(),$modalBtn.show()}),$modalBackDrop.click(function(){$form.removeClass(productFormShowClass),$modalBackDrop.hide(),$preAddToCartBtn.show()}),$modalBtn.click(function(){$form.removeClass(productFormShowClass),$preAddToCartBtn.show(),$modalBackDrop.hide()})}function handleOneClickCheckout(){function getFormDataMap($form){const formDataArray=$form.serializeArray(),formDataMap={};return formDataArray.map(item=>{formDataMap[item.name]=item.value}),formDataMap}function initLoading(){oneClickCheckoutButton.classList.add("disabled"),oneClickCheckoutButton.innerHTML='<div class="spinner spinner--circle"></div>'}function stopLoading(){oneClickCheckoutButton.classList.remove("disabled"),oneClickCheckoutButton.innerHTML=window.languages.oneClickCheckoutButton}const oneClickCheckoutButton=document.querySelector(".product__one-click-checkout");oneClickCheckoutButton&&oneClickCheckoutButton.addEventListener("click",async()=>{initLoading();const $form=$(".product__form"),formDataMap=getFormDataMap($form),variantId=Number(formDataMap.id),quantity=Number(formDataMap.quantity),selectedVariant=$(`[value="${variantId}"]`),inventoryQuantity=selectedVariant.data("inventory-quantity"),productTitle=$(".product .product-meta__title").text(),variantTitle=selectedVariant.text()&&` - ${selectedVariant.text()}`;if(inventoryQuantity<quantity){alert(`\u60A8\u53EA\u80FD\u5C07 ${inventoryQuantity} \u500B${productTitle}${variantTitle}\u65B0\u589E\u5230\u8CFC\u7269\u8ECA\u3002`),stopLoading();return}const event=new CustomEvent("showShippingInfoModal",{detail:{variantId,quantity}});window.dispatchEvent(event),stopLoading()})}function handleProductSlideshow(){const targetClass=".product__slideshow";Citiesocial.productManager.initProductSlideshow($(targetClass)),$(document).on("shopify:section:unload",function(event){const $target=$(event.target);$target.find(targetClass).slick("unslick"),$target.find(".product__slideshow-nav-image").off("click"),$(document).off(targetClass)}),$(document).on("shopify:section:load",function(event){Citiesocial.productManager.initProductSlideshow($(event.target).find(targetClass))})}function handleProductIntroVideoSize(){const $productIntro=$("#cs_product_introduction");$productIntro.length&&$productIntro.fitVids()}});
2//# sourceMappingURL=/cdn/shop/t/18/assets/product-page.js.map?v=167078249732673624351747205684

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.