PageSourceSearch

https://sklepdlaogrodu.pl/gfx/pol/menu_omnibus.js.gzip?r=1790014777

js sklepdlaogrodu.pl collected 2026-09-26 11:36:53 UTC 9,598 bytes, 1 lines download raw bytes

1class OmnibusGraphqlFallback{constructor(t){Array.isArray(t)&&0===t.length||t&&(this.dateElementList=t,this.productsMap=new Map,this.formattedProductList=[],this.priceType=app_shop?.vars?.priceType||"gross",this.omnibusTypes={sizes:"SIZES",collection:"COLLECTION",hotspot:"HOTSPOT",search:"SEARCH","search-b2b-list":"SEARCH-B2B-LIST",details:"DETAILS","details-b2b":"details-B2B"},this.omnibusTypeHandlers={[this.omnibusTypes.sizes]:{validate:()=>!1,updatePrice:(...t)=>this.setSizeOmnibusPrice(...t),handleAttributes:(...t)=>this.handleProjectorAttributes(...t)},[this.omnibusTypes.collection]:{validate:()=>!1,updatePrice:(...t)=>this.setOmnibusPrice(...t),handleAttributes:(...t)=>this.handleElementAttributes(...t)},[this.omnibusTypes.hotspot]:{validate:(...t)=>this.validateSize(...t),updatePrice:(...t)=>this.setOmnibusPrice(...t),handleAttributes:(...t)=>this.handleElementAttributes(...t)},[this.omnibusTypes.search]:{validate:(...t)=>this.validateBundle(...t)||this.validateSizes(...t),updatePrice:(...t)=>this.setOmnibusPrice(...t),handleAttributes:(...t)=>this.handleElementAttributes(...t)},[this.omnibusTypes["search-b2b-list"]]:{validate:(...t)=>this.validateBundle(...t)||this.validateMaxprice(...t),updatePrice:(...t)=>this.setOmnibusPrice(...t),handleAttributes:(...t)=>this.handleElementAttributes(...t)},[this.omnibusTypes.details]:{validate:(...t)=>this.validateBundle(...t)||this.validateSizes(...t),updatePrice:(...t)=>this.setOmnibusPrice(...t),handleAttributes:(...t)=>this.handleProjectorAttributes(...t)},[this.omnibusTypes["details-b2b"]]:{validate:(...t)=>this.validateBundle(...t)||this.validateMaxprice(...t),updatePrice:(...t)=>this.setOmnibusPrice(...t),handleAttributes:(...t)=>this.handleProjectorAttributes(...t)}},this.initAppShopGraphql(),this.init())}validateSize(t,e,i){if(!t||!e||!i)return!1;const{omnibusMin:s,omnibusMax:r}=t;return e?.sizeMin!=e?.sizeMax&&e?.sizeMinMaxprice==s?.value&&e?.sizeMaxMaxprice==r?.value||e?.maxprice==s?.value}validateSizes(t,e,i){if(!t||!e||!i)return!1;const{omnibusMin:s,omnibusMax:r}=t;return e?.sizesMinMaxprice!=e?.sizesMaxMaxprice&&e?.sizesMinMaxprice==s?.value&&e?.sizesMaxMaxprice==r?.value||e?.maxprice==s?.value}validateMaxprice(t,e,i){if(!t||!e||!i)return!1;const{omnibusMin:s}=t;return e?.maxprice==s?.value||e?.sizesMinMaxprice==s?.value}validateBundle(t,e,i){if(!t||!e||!i||"product_bundle"!==e?.productType)return!1;const{omnibusMin:s}=t,r=parseFloat(e?.bundlePercentDiff),a=parseFloat(e?.bundleAmountDiff);return!Number.isNaN(r)&&!Number.isNaN(a)&&s?.value==e?.bundlePrice}getOmnibusType(t){const e=t?.getAttribute("data-omnibus-type");return e&&e in this.omnibusTypes?this.omnibusTypes?.[e]:null}isOmnibusShortEnabled(t,e,i){return!!(i&&t&&e)&&!!this.omnibusTypeHandlers[i]?.validate(t,e,i)}getElementAttributes(t){return{maxprice:t?.getAttribute("data-maxprice"),sizeMin:t?.getAttribute("data-size_min"),sizeMax:t?.getAttribute("data-size_max"),sizeMinMaxprice:t?.getAttribute("data-size_min_maxprice"),sizeMaxMaxprice:t?.getAttribute("data-size_max_maxprice"),sizesMinMaxprice:t?.getAttribute("data-sizes_min_maxprice"),sizesMaxMaxprice:t?.getAttribute("data-sizes_max_maxprice"),productType:t?.getAttribute("data-omnibus_product_type"),bundlePercentDiff:t?.getAttribute("data-bundle_percent_diff"),bundleAmountDiff:t?.getAttribute("data-bundle_amount_diff"),bundlePrice:t?.getAttribute("data-bundle_price")}}toggleElementClass({element:t=null,classList:e=[],add:i=!0}={}){if(!t)return;const s=Array.isArray(t)?t:[t];e?.forEach((t=>{s?.forEach((e=>{i?e?.classList?.add(t):e?.classList?.remove(t)}))}))}replaceOmnibusPrice(t,e){t&&(t.textContent=e)}addProduct(t,e){const i=this.productsMap.get(t),s=this.mergeReceivedSizes(i,e),r={...i,...e,sizes:s};this.productsMap.set(t,r)}saveStorage(){try{const t=JSON.stringify([...this.productsMap]);sessionStorage.setItem("omnibus-fallback-products-list",t)}catch(t){}}getStorage(){const t=sessionStorage.getItem("omnibus-fallback-products-list");if(t)try{const e=JSON.parse(t);this.productsMap=new Map(e)}catch(t){}}transformMultipleDates(t){if(!t)return null;const e=new Map;return t?.forEach((t=>{let[i,s]=t?.split(";");
1if(i=i?i.trim():null,s=s?s.trim().replace(/'/gim,""):null,!i||!s)return;const r=e.get(i),a={date:i,sizes:r?[...r?.sizes,s]:[s]};e.set(i,a)})),e}prepareProductList(){this.formattedProductList=[],[...this.dateElementList].map((t=>{const e=this.getOmnibusType(t);if(!e)return;const i=this.omnibusTypeHandlers[e]?.handleAttributes(t,e);if(!i)return;const{id:s,size:r,date:a}=i,n=a?.split("#separator#"),l=n?.length>1,u={id:s,size:r,date:a,element:t,hasMultipleDates:l,sizesMap:l?this.transformMultipleDates(n):null};this.formattedProductList.push(u)}))}handleProjectorAttributes(t,e){if(!t||!e)return null;const i=t?.closest("#projector_form");if(!i)return null;const s=i?.getAttribute("data-product_id"),r=t?.getAttribute("data-last_price_change_date");return s&&r?{id:s,date:r}:null}handleElementAttributes(t,e){if(!t||!e)return null;const i=t?.closest(".product")||t?.closest(".search_list__product");if(!i)return null;const s=t?.getAttribute("data-omnibus_product_id")||i?.getAttribute("data-product_id")||i?.querySelector(".product__icon")?.getAttribute("data-product-id"),r=t?.getAttribute("data-omnibus_product_size"),a=t?.getAttribute("data-last_price_change_date");return s&&a?{id:s,size:r,date:a}:null}mergeReceivedSizes(t,e){if(!t?.sizes&&!e?.sizes)return null;if(!t?.sizes&&e?.sizes)return e?.sizes;const i=Array.isArray(t?.sizes)?t?.sizes:[t?.sizes],s=Array.isArray(e?.sizes)?e?.sizes:[e?.sizes];return[...s.flat(10),...i.filter((t=>0===s.filter((e=>e?.id==t?.id)).length)).flat(10)]}setOmnibusPrice(t,e,i){if(!t||!e?.price)return;this.toggleElementClass({element:t,classList:["--omnibus"]});const s=this.getElementAttributes(t),r=this.isOmnibusShortEnabled(e,s,i),a=t?.querySelector(".omnibus_short"),n=t?.querySelector(".omnibus_label"),l=t?.querySelector(".omnibus_price"),u=l?.querySelector(".omnibus_price__value");r&&a&&(this.toggleElementClass({element:t,classList:["--omnibus-short"]}),this.toggleElementClass({element:a,classList:["--hidden","--hide"],add:!1})),!r&&l&&u&&(this.replaceOmnibusPrice(u,e.price),this.toggleElementClass({element:[l,n],classList:["--hidden","--hide"],add:!1}))}setSizeOmnibusPrice(t,e){t&&e&&t.setAttribute("data-omnibus",e.price)}sortSizes(t){return t?.sort(((t,e)=>{const i=t?.price?.[this.priceType]?.value,s=e?.price?.[this.priceType]?.value;return i-s}))}getSizePrice(t,e=!1){const i=t?.sizes?.length;if(!i)return null;const s=e?i-1:0;return this.sortSizes(t?.sizes)?.[s]?.price?.[this.priceType]}handleOmnibusPrices(){this.formattedProductList.forEach((t=>{const e=t?.id,i=this.productsMap.get(e);if(!i||!t?.element)return;const s=this.getOmnibusType(t.element),r=this.calculateOmnibusPrices(i);s&&r&&this.omnibusTypeHandlers[s]?.updatePrice(t.element,r,s)}))}calculateOmnibusPrices(t){const e=this.getSizePrice(t),i=this.getSizePrice(t,!0);let s=e?.formatted?`${e?.formatted}`:null;return null!==s&&e?.formatted&&i?.formatted&&e?.value&&i?.value&&e.value!=i.value&&(s+=` - ${i?.formatted}`),{price:s,omnibusMin:e,omnibusMax:i}}transformAliasQueries(t){return t&&0!==t?.length?t?.map(((t,e)=>{if(!t)return null;const i=`fallback${e}`,s=`lastLowestPricesInput: [${t}]`;return this.createGraphqlAlias(i,s)}))?.filter((t=>t))?.join(""):null}getFormattedProductList(){const t=this.formattedProductList.filter((t=>!this.productsMap.has(t.id))),e=t.filter((({hasMultipleDates:t})=>!t))?.flatMap((t=>this.createProductTemplate(t))).filter((t=>t)),i=t.filter((({hasMultipleDates:t})=>t))?.flatMap((t=>this.createProductSizeTemplate(t))).filter((t=>t));return[e.join(", ")].concat(i).filter((t=>t))}createProductSizeTemplate({id:t="0",sizesMap:e=null,hasMultipleDates:i=!1}={}){if(!i||0===e?.size||"0"==t)return null;const s=[];return e?.forEach((({date:e,sizes:i})=>{i?.forEach((i=>{s.push(this.createProductTemplate({id:t,date:e,size:i}))}))})),s.filter((t=>t))}createProductTemplate({id:t="0",size:e="",date:i=""}={}){let s="";return"0"!=t&&(s+=`productId: ${t}`),e&&(s+=`${""!==s?", ":""}sizeId: "${e}"`),i&&(s+=`${""!==s?", ":""}date: "${i}"`),""!==s?`{ ${s} }`:null}handleGraphqlProductList(t){const e=[...Object.values(t).flat(10)];e?.forEach((t=>{const e=t?.id;if(!e)return;const i=`${e}`;this.addProduct(i,t)})),this.saveStorage()}createGraphqlAlias(t,e){return`\n  ${t}: getLastLowestProductPrices(${e}) {\n    id\n    sizes {\n      id\n      price {\n        ${app_shop?.vars?.priceType||"gross"} {\n          value\n          currency\n          formatted\n        }\n      }\n    }\n  }\n`}async fetchProducts(t){try{const e=await app_shop.graphql.getLowestPriceFallback(t);return e?.data}catch(t){return null}}async init(t){try{this.dateElementList=t||this.dateElementList,this.get
1Storage(),this.prepareProductList();const e=this.getFormattedProductList();if(e.length>0){const t=this.transformAliasQueries(e);if(!t)return;const i=await this.fetchProducts(t);if(!i)return;this.handleGraphqlProductList(i)}this.handleOmnibusPrices()}catch(t){}}initAppShopGraphql(){app_shop.graphql||(app_shop.graphql={});const t=async t=>{const e=JSON.stringify({query:`query {\n          ${t}\n        }`});try{const t=app_shop?.urls?.graphql?`${app_shop?.urls?.graphql}?getLastLowestProductPricesFallback`:"/graphql/v1/?getLastLowestProductPricesFallback",i=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:e});return await i.json()}catch(t){return!1}};void 0===app_shop.graphql.getLowestPriceFallback&&(app_shop.graphql.getLowestPriceFallback=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.