PageSourceSearch

https://www.fcsg.ch/cdn/shop/t/48/assets/product-form.js?v=153951073679327393301777572083

js fcsg.ch collected 2026-10-02 16:39:52 UTC 9,545 bytes, 2 lines download raw bytes

1customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.form.querySelector("[name=id]").disabled=!1,this.form.addEventListener("submit",this.onSubmitHandler.bind(this)),this.cart=document.querySelector("cart-notification")||document.querySelector("cart-drawer"),this.submitButton=this.querySelector('[type="submit"]'),document.querySelector("cart-drawer")&&this.submitButton.setAttribute("aria-haspopup","dialog"),this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(evt){if(this.submitButton.classList.contains("disabled"))return evt.preventDefault(),this.handleErrorMessage("Bitte w\xE4hle deine Produktoptionen."),!1;if(evt.preventDefault(),this.submitButton.getAttribute("aria-disabled")==="true")return;this.handleErrorMessage();let closestProductForm=$(this),closestProductInfo=$(this).closest("product-info"),ActiveProduct=$(this).closest(".active-product"),Is_Camp_Section=$(".book_now_wrapper").length;if(Is_Camp_Section>0){let prod_form=$(evt.submitter).parents("form");if(!$(evt.submitter).parents("form").valid())return!1}let hidden_product_count=ActiveProduct.find(".hidden_product_input").length;var selected_products=[];if(hidden_product_count>0){let product_form__error_message_wrapper=ActiveProduct.find(".product-form__error-message-wrapper"),product_form__error_message=ActiveProduct.find(".product-form__error-message");if(ActiveProduct.find(".trikots-tabs .tab[data-tab='individuell']").hasClass("active")){let individuell_no=ActiveProduct.find(".individuell_fields .individuell-nummer").val(),individuell_name=ActiveProduct.find(".individuell_fields .individuell-name").val();if(individuell_no||individuell_name)product_form__error_message_wrapper.attr("hidden",!0),product_form__error_message.text("");else if(individuell_no==""&&individuell_name=="")return product_form__error_message_wrapper.removeAttr("hidden"),product_form__error_message.text("Bitte erg\xE4nzen Sie Nummer & Name f\xFCr Individuell."),!1}if(ActiveProduct.find(".trikots-tabs .tab[data-tab='spieler']").hasClass("active")){let spieler_val=ActiveProduct.find(".hidden_product_input .select__select").val();if(spieler_val!=0)product_form__error_message_wrapper.attr("hidden",!0),product_form__error_message.text("");else if(spieler_val==0)return product_form__error_message_wrapper.removeAttr("hidden"),product_form__error_message.text("Bitte w\xE4hlen Sie die Spieler aus."),!1}if(ActiveProduct.find(".badges-tabs .tab[data-tab='verband-cup-batch']").hasClass("active")){let $weissTab=ActiveProduct.find(".badges-tabs .tab[data-tab='spielpaarung-weiss']"),$schwarzTab=ActiveProduct.find(".badges-tabs .tab[data-tab='spielpaarung-schwarz']"),hasWeissActive=$weissTab.hasClass("active"),hasSchwarzActive=$schwarzTab.hasClass("active");if(!hasWeissActive&&!hasSchwarzActive){let spielpaarungMsg="";if($weissTab.length&&$schwarzTab.length?spielpaarungMsg="Bitte w\xE4hlen Sie Spielpaarung weiss oder Spielpaarung schwarz aus.":$weissTab.length?spielpaarungMsg="Bitte w\xE4hlen Sie Spielpaarung weiss aus.":$schwarzTab.length&&(spielpaarungMsg="Bitte w\xE4hlen Sie Spielpaarung schwarz aus."),spielpaarungMsg)return product_form__error_message_wrapper.removeAttr("hidden"),product_form__error_message.text(spielpaarungMsg),!1}}let hidden_products=ActiveProduct.find(".hidden_product_input"),random_no=Math.floor(Math.random()*1e8);hidden_products.each(function(){let $hidden_product=$(this),product_variant,product_variant_sku,product_option_name,product_option_nummer,product_option_amount,individuell_meta_sku;if($hidden_product.hasClass("product-form__input--dropdown")){const $selected=$hidden_product.find(":selected");$selected.length&&$selected.val()&&(product_variant=$selected.data("variantid"),product_variant_sku=$selected.data("variant_sku"),product_option_nummer=$selected.data("nummer"),product_option_amount=$selected.data("amount"))}else{const $checked=$hidden_product.find("input:checked");$checked.length&&(product_variant=$checked.data("variantid"),product_variant_sku=$checked.data("variant_sku"),product_option_name=$checked.attr("name"),product_option_amount=$checked.data("amount"))}var SKU,SKU_Nummer,FLOCK,Patch="";if(product_variant){product_variant_sku&&(SKU=`${product_variant_sku}`),product_option_nummer&&(individuell_meta_sku=$(".active-product").find(`.hidden_product_input[data-content="individuell"] input[type="checkbox"][value="${product_option_nummer}"]`).data("variant_sku"),individuell_meta_sku&&(SKU_Nummer=`${individuell_meta_sku}`)),(product_option_name?.toLowerCase().includes("individuell name")||product_option_name?.toLowerCase().includes("individuell")||product_option_name?.toLowerCase().includes("spieler"))&&(FLOCK=`${$(closestProductForm).find(".properties_flock").val()}`);const properties={_TRIKOT:random_no,...product_variant_sku&&{SKU:product_variant_sku},...individuell_meta_sku&&{SKU_Nummer:individuell_meta_sku},...FLOCK&&{FLOCK}};typeof product_option_amount<"u"&&window.aico_percentage_discount&&window.aico_percentage_discount!=0&&(product_option_amount=applyAicoDiscount(product_option_amount),properties._price_item_discount=product_option_amount),selected_products.push({quantity:1,id:product_variant,properties})}}),selected_products.length>0&&ActiveProduct.find(".properties_trikot").val(random_no)}console.log("selected_products",JSON.stringify(selected_products)),this.submitButton.setAttribute("aria-disabled",!0),this.submitButton.classList.add("loading"),this.querySelector(".loading__spinner").classList.remove("hidden");var formData="";if(selected_products.length>
10){formData=new FormData,selected_products.forEach((product,index)=>{formData.append(`items[${index}][id]`,product.id),formData.append(`items[${index}][quantity]`,product.quantity),product.properties&&Object.keys(product.properties).forEach(key=>{formData.append(`items[${index}][properties][${key}]`,product.properties[key])})});const formProductIndex=selected_products.length;formData.append(`items[${formProductIndex}][id]`,this.form.querySelector('[name="id"]').value),formData.append(`items[${formProductIndex}][quantity]`,1);const formProperties=new FormData(this.form);for(const[key,value]of formProperties.entries())key.startsWith("properties[")&&value.trim()!==""&&formData.append(`items[${formProductIndex}][${key}]`,value)}else{const originalFormData=new FormData(this.form);formData=new FormData;for(const[key,value]of originalFormData.entries())key.startsWith("properties[")?value.trim()!==""&&formData.append(key,value.trim()):formData.append(key,value)}this.cart&&(formData.append("sections",this.cart.getSectionsToRender().filter(section=>section).map(section=>section.id)),formData.append("sections_url",window.location.pathname),this.cart.setActiveElement(document.activeElement));const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"],config.body=formData,fetch(`${routes.cart_add_url}`,config).then(response=>response.json()).then(response=>{if(response.status){publish(PUB_SUB_EVENTS.cartError,{source:"product-form",productVariantId:formData.get("id"),errors:response.errors||response.description,message:response.message}),this.handleErrorMessage(response.description);const soldOutMessage=this.submitButton.querySelector(".sold-out-message");if(!soldOutMessage)return;this.submitButton.setAttribute("aria-disabled",!0),this.submitButton.querySelector("span").classList.add("hidden"),soldOutMessage.classList.remove("hidden"),this.error=!0;return}else if(!this.cart){window.location=window.routes.cart_url;return}if(Is_Camp_Section>0){window.location=window.routes.cart_url;return}this.error||publish(PUB_SUB_EVENTS.cartUpdate,{source:"product-form",productVariantId:formData.get("id"),cartData:response}),this.error=!1;const quickAddModal=this.closest("quick-add-modal");quickAddModal?(document.body.addEventListener("modalClosed",()=>{setTimeout(()=>{this.cart.renderContents(response)})},{once:!0}),quickAddModal.hide(!0)):this.cart.renderContents(response)}).catch(e=>{console.error(e)}).finally(()=>{if(this.submitButton.classList.remove("loading"),this.cart&&this.cart.classList.contains("is-empty")&&this.cart.classList.remove("is-empty"),this.error||this.submitButton.removeAttribute("aria-disabled"),this.querySelector(".loading__spinner").classList.add("hidden"),this.submitButton.classList.contains("product-upsell__submit")&&(document.body.classList.remove("overflow-hidden","open-popup"),document.querySelectorAll(".modal").forEach(el=>{el.style.display="none"})),this.submitButton.classList.contains("quick-add__submit")||this.submitButton.classList.contains("quick_buy_submit")){const card=this.submitButton.closest(".card");if(card){card.classList.remove("card-active");const firstInputGroup=card.querySelector("variant-selects .product-form__input");firstInputGroup&&firstInputGroup.querySelectorAll('input[type="radio"]').forEach(radio=>{radio.checked=!1})}}})}handleErrorMessage(errorMessage=!1){this.hideErrors||(this.errorMessageWrapper=this.errorMessageWrapper||this.querySelector(".product-form__error-message-wrapper"),this.errorMessageWrapper&&(this.errorMessage=this.errorMessage||this.errorMessageWrapper.querySelector(".product-form__error-message"),this.errorMessageWrapper.toggleAttribute("hidden",!errorMessage),errorMessage&&(this.errorMessage.textContent=errorMessage)))}});
2//# sourceMappingURL=/cdn/shop/t/48/assets/product-form.js.map?v=153951073679327393301777572083

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.