PageSourceSearch

https://bromarkt.pl/gfx/pol/hotspots_add_to_basket.js.gzip?r=1790776705

js bromarkt.pl collected 2026-10-09 00:20:47 UTC 12,393 bytes, 1 lines download raw bytes

1localStorage.getItem("addedtoBasket")&&window?.app_shop?.vars&&(app_shop.vars.addedToBasket=!0),localStorage.removeItem("addedtoBasket");const AddToBasketModal=t=>{if(!t)return!1;const{id:e,name:s,price:a,icon:n,link:i}=t,o="Dodano do koszyka",r="Kontynuuj zakupy",d="Przejdź do koszyka",l=document.createElement("div");l.classList.add("--hidden");const c=`\n\t\t\t<div id="menu_preloader_add" class="added --hotspot">\n\t\t\t\t<h2 class="headline added__headline p-0">\n\t\t\t\t\t<span class="headline__name added__headline_name">${o}</span>\n\t\t\t\t</h2>\n\t\t\t\t<div class="added__block">\n\t\t\t\t\t<div class="added__product product">\n\t\t\t\t\t\t<a class="added__icon product__icon m-0 d-flex justify-content-center align-items-center" data-product-id="${e}" href="${i}" title="${s}">\n\t\t\t\t\t\t\t<img src="${n}" alt="${s}" />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<h3 class="added__name_h3 d-flex">\n\t\t\t\t\t\t\t<a class="added__name product__name" href="${i}" title="${s}">\n\t\t\t\t\t\t\t\t${s}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</h3>\n\n\t\t\t\t\t\t<div class="added__prices product__prices">\n\t\t\t\t\t\t\t<strong class="price">\n\t\t\t\t\t\t\t\t<span class="price__unit">\n\t\t\t\t\t\t\t\t\t${a}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div class="added__buttons justify-content-center align-items-center">\n\t\t\t\t\t\t\t<a class="added__button --close" href="#close">${r}</a>\n\t\t\t\t\t\t\t<a class="added__button --basket btn --solid --medium" href="/basketedit.php?mode=1">\n\t\t\t\t\t\t\t\t${d}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\n\t\t\t\t<section id="products_associated_zone4" class="hotspot__wrapper mx-n4 mt-4 mb-n4 p-4 --added --hotspot d-none"\n\t\t\t\t  data-pagetype="projector"\n\t\t\t\t  data-zone="4"\n\t\t\t\t  data-products="${e}"  \n\t\t\t\t>\t\n\t\t\t\t\t<div class="hotspot mb-5 skeleton">\n\t\t\t\t\t\t<span class="headline"></span>\n\t\t\t\t\t\t<div class="products d-flex flex-wrap">\n\t\t\t\t\t\t\t<div class="product col-6 col-sm-3 col-xl-2 py-3">\n\t\t\t\t\t\t\t\t<span class="product__icon d-flex justify-content-center align-items-center"></span>\n\t\t\t\t\t\t\t\t<span class="product__name"></span>\n\t\t\t\t\t\t\t\t<div class="product__prices"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="product col-6 col-sm-3 col-xl-2 py-3">\n\t\t\t\t\t\t\t\t<span class="product__icon d-flex justify-content-center align-items-center"></span>\n\t\t\t\t\t\t\t\t<span class="product__name"></span>\n\t\t\t\t\t\t\t\t<div class="product__prices"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="product col-6 col-sm-3 col-xl-2 py-3">\n\t\t\t\t\t\t\t\t<span class="product__icon d-flex justify-content-center align-items-center"></span>\n\t\t\t\t\t\t\t\t<span class="product__name"></span>\n\t\t\t\t\t\t\t\t<div class="product__prices"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="product col-6 col-sm-3 col-xl-2 py-3">\n\t\t\t\t\t\t\t\t<span class="product__icon d-flex justify-content-center align-items-center"></span>\n\t\t\t\t\t\t\t\t<span class="product__name"></span>\n\t\t\t\t\t\t\t\t<div class="product__prices"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`;if(!c)return!1;l.innerHTML=c,document.body.append(l),app_shop.fn.addedModal=new Modal({element:document.querySelector("#menu_preloader_add.--hotspot"),classList:"--added",afterShow:()=>{},afterClose:()=>{setTimeout((()=>{l.remove()}),300)}}),document.querySelector(".added__button.--close").addEventListener("click",(function(){return app_shop.fn.addedModal.closeModal(),!1}))},NumberBySelect=function(t){const{selectClass:e,inputClass:s,wrapperClass:a,generateDropdownCallback:n,afterChangeValue:i,hotspotElement:o,txt:r}=t,d=this;return this.vars={typingTimer:"",doneTypingInterval:500},this.iOS=()=>["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,this.dropdownNumberAfterClick=t=>{const e=t.querySelector(".f-dropdown-item"),n=t.closest(a),o=n.querySelector(s);e.hasAttribute("data-more")?(n.classList.add("--more"),o.focus(),o.value=""):(n.classList.remove("--more"),o.value=e.getAttribute("data-value")),i&&i(o)},this.generateDropdownCallback=t=>{t?.querySelector("button")?.setAttribute("tabindex",-1),t?.querySelector("button")?.setAttribute("title",r?.["Ilość produktów"]||""),n?.(t)},this.selectDropdownDirection=()=>{const t=o.classList.contains("--add-to-basket-plugin"),e=o.querySelector(".products__wrapper.swiper.swiper-initialized"),s=o.querySelector(".hotspot.--slider_fashion");return t&&!e&&s&&1===app_shop.vars.view?"top":"down"},this.buySelect=()=>new SelectToDropdown({direction:this.selectDropdownDirection(),disableMobileView:!0,selector:`${e}`,generateDropdownCallback:this.generateDropdownCallback||!1,afterClickDropdownCallback:!!this.dropdownNumberAfterClick&&this.dropdownNumberAfterClick}),this.moreInputChange=function(){clearTimeout(d.vars.typingTimer),d.vars.typingTimer=setTimeout((()=>{""!==this.value&&(this.setAttribute("data-prev",this.value),i&&i(this))}),d.vars.doneTypingInterval)},this.moreInputBlur=function(){""===this.value&&(this.value=this.getAttribute("data-prev"))},this.setEvents=()=>
1{document.querySelectorAll(s).forEach((t=>{t.classList.contains("--initialized")||(t.classList.add("--initialized"),t.addEventListener("keyup",this.moreInputChange),t.addEventListener("blur",this.moreInputBlur))}))},this.init=()=>{this.buySelect(),this.setEvents()},this.init()};class HotspotAddToBasketPlugin extends GetHotspots{constructor(t){super(),this.prefix="--add-to-basket-plugin",this.txt={"Dodano do koszyka":"Dodano do koszyka","Do koszyka":"Do koszyka","Maksymalnie możesz dodać: ":"Maksymalnie możesz dodać: ","Minimalnie możesz dodać: ":"Minimalnie możesz dodać: ",error:"Wystąpił błąd, spróbuj ponownie później",max:"Maksymalnie możesz zamówić","Ilość produktów":"Ilość produktów"},this.params=t||{templateClass:"hotspot_add_to_basket_quantity"}}addToBasketQuery=(t,e,s)=>JSON.stringify({query:`mutation {\n      addProductsToBasket(ProductInput: [{ id: ${t}, size: "${e}", quantity: ${s} }]) {\n        status\n        results {\n          status\n          error {\n            code\n            message\n          } \n        }\n      }\n    }`});setForms(){this.forms=this.hotspotData?.products.map((t=>this.setForm(t)))}setRedirectToProduct(){const t=this.hotspotElement.querySelector(".hotspot_add_to_basket_link")?.content.cloneNode(!0);return!!t&&(t.querySelector(".add_to_basket__link")?.setAttribute("href",this.activeProductData?.link||""),this.activeTemplate=t,t)}setSelectValues(t){if(isNaN(t))return!1;this.activeTemplate.querySelectorAll("form.add_to_basket select option").forEach(((e,s)=>{if(e.getAttribute("data-more"))return!1;const a=(s+1)*t;e.innerHTML=a,e.setAttribute("value",a)}))}setformValues(){const t=this.activeProductData?.sizes?.reduce(((t,e)=>"disable"!==e?.availability?.status||t),!1);if("product"!==this.activeProductData?.type&&"virtual"!==this.activeProductData?.type||this.activeProductData?.sizes?.length>1)return this.setRedirectToProduct(),!1;if("virtual"===this.activeProductData?.type&&this.activeTemplate.querySelector("form.add_to_basket")?.classList.add("--virtual"),!t)return this.activeTemplate.querySelector("form.add_to_basket")?.classList.add("--disabled"),this.activeTemplate.querySelector("form.add_to_basket")?.setAttribute("aria-hidden","true"),!1;const e=this.activeProductData?.sizes?.find((t=>"disable"!==t.availability?.status)),{sellBy:s}=this.activeProductData?.unit;return super.setHtml('input[name="product"]',!1,[{name:"value",val:this.activeProductData.id||"1"}]),super.setHtml('input[name="size"]',!1,[{name:"value",val:e?.id||"uniw"}]),super.setHtml('input[name="number"]',!1,[{name:"value",val:s||"1"},{name:"data-id",val:this.activeProductData.id||"1"},{name:"data-prev",val:s||"1"}]),this.setSelectValues(parseFloat(s)),!0}numberCheck(t,e){const{quantity:s,amount:a,sellBy:n,singular:i,plural:o,precision:r}=t;if(!s)return 1;let d=parseFloat(s)||1;const l=parseFloat(r)||1,c=parseFloat(parseFloat(n).toFixed(l))||1,p=parseFloat(a)||-1,u=1/Math.pow(10,l),h=t=>t%c!==0?h(parseFloat((t+u).toFixed(l))):t.toFixed(l);return d=parseFloat(h(d)),d>p&&-1!==p?(Alertek.show_alert(`${e.max} ${Math.floor(p/c)*c} ${d>1?o:i}`),Math.floor(p/c)*c):d}validateNumber(t,e,s){if("number"!=typeof t)return 1;const a=this.hotspotData?.products.find((t=>t?.id===e)),n=s.dataset,{plural:i,singular:o,sellBy:r,precision:d}=a?.unit||n||{},{amount:l}=a?.sizes?.[0]??n;return this.numberCheck({quantity:t,plural:i,singular:o,sellBy:r,precision:d,amount:l},this.txt)}setStatusHelper(t,e,s){if(!t||!e)return!1;t.classList.add(`--${e}`),t.innerHTML=`<span>${t.getAttribute(`data-${e}`)}</span>`||this.txt["Do koszyka"],s&&Alertek?.["error"===e?"Error":"Success"]?.(s),setTimeout((()=>{t.classList.remove(`--${e}`),t.innerHTML=`<span>${t.getAttribute("data-text")}</span>`||this.txt["Do koszyka"]}),3e3)}async addToBasket(t,e){const s=t.get("product"),a=t.get("size"),n=t.get("number");if(!s||!a||!n)return!1;e.closest("form").classList.add("--loading");const i=this.addToBasketQuery(s,a,n),o=await super.fetchData({data:i,linkParameter:"?addToBasket"});e.closest("form").classList.remove("--loading");const r=o?.data?.addProductsToBasket?.results?.[0]?.status,d=o?.data?.addProductsToBasket?.results?.[0]?.error?.message;if("error"===r)return this.setStatusHelper(e,r,d||this.txt.error),!1;if("success"===r){this.setStatusHelper(e,r),app_shop.fn?.notifier?.notifyAdd?.([s]),localStorage.setItem("addedtoBasket",!0),app_shop.fn?.menu_basket_cache?.(),app_shop.fn?.basket?.reloadForm?.(null,null,!0);const t=e.closest("form")?.querySelector(".add_to_basket__more_input");if(!t)return!1;t.value=1,this.changeQuantity(t);const a=parseInt(s),n=this.hotspotData?.products?.find((t=>parseInt(t.id)===a));return n&&AddToBasketModal({...n,icon:n.icon||n.iconSmall,price:n.price?.price?.[app_shop.vars.priceType]?.formatted}),!1}this.setStatusHelper(e,"error",this.txt.error)}setEvents(){const t=this.hotspotElement.querySelectorAll(".add_to_basket__button:not(.--initialized)");t.length&&t.forEach((t=>{t.classList.add("--initialized"),t.addEventListener("click",(t=>{t.preventDefault();const e=t.target.closest("form");if(!e)return!1;this.addToBasket(new FormData(e),t.target.closest("button")||t.target)}))})),this.hotspotElement.classList.contains("--initialized")||this.hotspotElement.addEventListener("click",(t=>{const e=this.hotspotElement.querySelector(".add_to_basket__number");e&&(!e.classList.contains("--open")&&t.target.closest(".add_to_basket__number_wrapper")?this.hotspotElement.classList.remove("--dropdown-visible"):this.hotspotElement.classList.add("--dropdown-visible"))}))}changeQuantity=t=>{if(!t||""===t.value)return!1;t.value=this.validateNumber(parseFloat(t.value),parseFloat(t.getAttribute("data-id")),t)};getFormTemplate(){const t=this.hotspotElement.querySelector(this.params.templateClass)?.content.cloneNode(!0);return!!t&&(this.activeTemplate=t,this.setformValues(),this.attachPluginClass(),this.activeTemplate)}setForm(t){if(!t)return!1;this.activeProductData=t;const e=this.getFormTemplate(),s=this.hotspotTemplate?.querySelector(`.product[data-id="${t?.id}"] .product__content_wrapper`);if(!s||!e)return!1;const a=s.querySelector("h3");return a?s.insertBefore(e,a.nextSibling):s.append(e),{productData:t,formElement:e}}attachPluginClass(){this.hotspotElement?.classList?.add(this.prefix)}async init(t){const[e,s,a]=t;this.hotspotData=e,this.hotspotTemplate=s,this.hotspotElement=a,this.setForms()}initAfterAppend(){this.setEvents()}}app_shop.vars.additionalHotspotQueryObj.sizesAddToBasket="\nproducts {\n  type\n  unit {\n    singular\n    plural\n    sellBy\n\t\tprecision\n  }\n  sizes {\n    id\n    name\n    amount\n    availability {\n      status\n    }\n  }\n}\n",app_shop.vars.hotspotCallbacksBeforeAppend.addToBasket=async(...t)=>{const[e,s,a]=t;app_shop.fn[a?.id||"hotspot"]=new HotspotAddToBasketPlugin({templateClass:".hotspot_add_to_basket"}),await(app_shop.fn[a?.id||"hotspot"]?.init?.(t))},app_shop.vars.hotspotCallbacksAfterAppend.addToBasket=async(...t)=>{const[e,s,a]=t;app_shop.fn[a?.id||"hotspot"]?.initAfterAppend?.(t)};

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.