diff --git a/XMLtoGraphQL/script.js b/XMLtoGraphQL/script.js index 5f52e05..9d64425 100644 --- a/XMLtoGraphQL/script.js +++ b/XMLtoGraphQL/script.js @@ -2,11 +2,11 @@ function idmGetGrossNetPrices({priceNode, name}){ return { gross: { value: priceNode?.getAttribute(`${name}`) !== null ? +priceNode?.getAttribute(`${name}`) : undefined, - formatted: priceNode?.getAttribute(`${name}_formatted`) ?? undefined, + formatted: priceNode?.getAttribute(`${name}_formatted`), }, net: { value: priceNode?.getAttribute(`${name}_net`) !== null ? +priceNode?.getAttribute(`${name}_net`) : undefined, - formatted: priceNode?.getAttribute(`${name}_net_formatted`) ?? undefined, + formatted: priceNode?.getAttribute(`${name}_net_formatted`), } } } @@ -16,11 +16,11 @@ function idmGetPriceFromNode(priceNode){ price: { gross: { value: priceNode?.getAttribute("value") !== null ? +priceNode.getAttribute("value") : undefined, - formatted: priceNode?.getAttribute("price_formatted") ?? undefined, + formatted: priceNode?.getAttribute("price_formatted"), }, net: { value: priceNode?.getAttribute("price_net") !== null ? +priceNode.getAttribute("price_net") : undefined, - formatted: priceNode?.getAttribute("price_net_formatted") ?? undefined, + formatted: priceNode?.getAttribute("price_net_formatted"), } }, rebateCodeActive: priceNode?.getAttribute("rebate_code_active") === "y" ? true : false, @@ -70,21 +70,21 @@ function idmGetPriceFromNode(priceNode){ ...idmGetGrossNetPrices({priceNode, name: "unit_converted_price"}) }, // rebateNumber: {}, - lastPriceChangeDate: priceNode?.getAttribute("last_price_change_date") ?? undefined, + lastPriceChangeDate: priceNode?.getAttribute("last_price_change_date"), // advancePrice: {}, promotionDuration: { promotionTill: { date: { - date: priceNode?.getAttribute("last_price_change_date")?.split("-")?.[2] ?? undefined, - month: priceNode?.getAttribute("last_price_change_date")?.split("-")?.[1] ?? undefined, - year: priceNode?.getAttribute("last_price_change_date")?.split("-")?.[0] ?? undefined, + date: priceNode?.getAttribute("last_price_change_date")?.split("-")?.[2], + month: priceNode?.getAttribute("last_price_change_date")?.split("-")?.[1], + year: priceNode?.getAttribute("last_price_change_date")?.split("-")?.[0], // weekDay: "", // formatted: "" }, time: { - hour: priceNode?.getAttribute("promotiontillhour")?.split(":")?.[0] ?? undefined, - minutes: priceNode?.getAttribute("promotiontillhour")?.split(":")?.[1] ?? undefined, - seconds: priceNode?.getAttribute("promotiontillhour")?.split(":")?.[2] ?? undefined, + hour: priceNode?.getAttribute("promotiontillhour")?.split(":")?.[0], + minutes: priceNode?.getAttribute("promotiontillhour")?.split(":")?.[1], + seconds: priceNode?.getAttribute("promotiontillhour")?.split(":")?.[2], }, // timestamp: "" }, @@ -103,8 +103,8 @@ function idmGetTraitsFromNode(node){ node.querySelectorAll(":scope > trait").forEach(trait=>{ const currParameter = awardedParameters.find(param=>param.id === trait.getAttribute("groupid")) || { - id: trait.getAttribute("groupid") ?? undefined, - name: trait.getAttribute("groupdescription") ?? undefined, + id: trait.getAttribute("groupid"), + name: trait.getAttribute("groupdescription"), // description: "", values: [], // contextValue: "", @@ -114,9 +114,9 @@ function idmGetTraitsFromNode(node){ } currParameter.values.push({ - id: trait.getAttribute("traitid") ?? undefined, - name: trait.getAttribute("traitid") ?? undefined, - link: trait.getAttribute("link") ?? undefined, + id: trait.getAttribute("traitid"), + name: trait.getAttribute("traitid"), + link: trait.getAttribute("link"), // description: "", // search: { // icon: "" @@ -170,21 +170,21 @@ async function idmGetGraphQLData(link){ const enclosuresImages = []; prod.querySelectorAll(":scope > enclosures > images > enclosure").forEach(img=>{ enclosuresImages.push({ - position: img.getAttribute("position") ?? undefined, - type: img.getAttribute("type") ?? undefined, - typeSecond: img.getAttribute("type_second") ?? undefined, - url: img.getAttribute("url") ?? undefined, - urlSecond: img.getAttribute("url_second") ?? undefined, - width: img.getAttribute("width") ?? undefined, - height: img.getAttribute("height") ?? undefined, - iconUrl: img.getAttribute("icon") ?? undefined, - iconUrlSecond: img.getAttribute("icon_second") ?? undefined, - iconWidth: img.getAttribute("icon_width") ?? undefined, - iconHeight: img.getAttribute("icon_height") ?? undefined, - mediumUrl: img.getAttribute("medium") ?? undefined, - mediumUrlSecond: img.getAttribute("medium_second") ?? undefined, - mediumWidth: img.getAttribute("medium_width") ?? undefined, - mediumHeight: img.getAttribute("medium_height") ?? undefined, + position: img.getAttribute("position"), + type: img.getAttribute("type"), + typeSecond: img.getAttribute("type_second"), + url: img.getAttribute("url"), + urlSecond: img.getAttribute("url_second"), + width: img.getAttribute("width"), + height: img.getAttribute("height"), + iconUrl: img.getAttribute("icon"), + iconUrlSecond: img.getAttribute("icon_second"), + iconWidth: img.getAttribute("icon_width"), + iconHeight: img.getAttribute("icon_height"), + mediumUrl: img.getAttribute("medium"), + mediumUrlSecond: img.getAttribute("medium_second"), + mediumWidth: img.getAttribute("medium_width"), + mediumHeight: img.getAttribute("medium_height"), }) }) @@ -197,11 +197,11 @@ async function idmGetGraphQLData(link){ const weightNode = size.querySelector(":scope > weight"); sizes.push({ - id: size?.getAttribute("type") ?? undefined, - name: size?.getAttribute("name") ?? undefined, - code: size?.getAttribute("code") ?? undefined, - codeProducer: size?.getAttribute("code_producer") ?? undefined, - codeExtern: size?.getAttribute("code_extern") ?? undefined, + id: size?.getAttribute("type"), + name: size?.getAttribute("name"), + code: size?.getAttribute("code"), + codeProducer: size?.getAttribute("code_producer"), + codeExtern: size?.getAttribute("code_extern"), amount: size?.getAttribute("amount") !== null ? +size.getAttribute("amount") : undefined, amount_mo: size?.getAttribute("amount_mo") !== null ? +size.getAttribute("amount_mo") : undefined, amount_mw: size?.getAttribute("amount_mw") !== null ? +size.getAttribute("amount_mw") : undefined, @@ -209,11 +209,11 @@ async function idmGetGraphQLData(link){ weight: weightNode?.getAttribute("g") !== null ? +weightNode.getAttribute("g") : undefined, availability: { visible: availabilityNode?.getAttribute("visible") === "y" ? true : false, - description: availabilityNode?.getAttribute("status_description") ?? undefined, - status: availabilityNode?.getAttribute("status") ?? undefined, - icon: availabilityNode?.getAttribute("status_gfx") ?? undefined, + description: availabilityNode?.getAttribute("status_description"), + status: availabilityNode?.getAttribute("status"), + icon: availabilityNode?.getAttribute("status_gfx"), deliveryDate: shippingTimeNode?.getAttribute("today") === "true" ? `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate().toString().padStart(2, 0)}` : availabilityNode?.getAttribute("delivery_date"), - minimumStockOfProduct: availabilityNode?.getAttribute("minimum_stock_of_product") ?? undefined, + minimumStockOfProduct: availabilityNode?.getAttribute("minimum_stock_of_product"), // descriptionTel: "", // iconTel: "", }, @@ -230,81 +230,81 @@ async function idmGetGraphQLData(link){ versionsNode.querySelectorAll(":scope > version").forEach(ver=>{ versions.push({ id: ver?.getAttribute("id") !== null ? +ver?.getAttribute("id") : undefined, - name: ver?.getAttribute("name") ?? undefined, - icon: ver?.getAttribute("gfx") ?? undefined, - iconSecond: ver?.getAttribute("gfx_second") ?? undefined, - iconSmall: ver?.getAttribute("gfx_small") ?? undefined, - iconSmallSecond: ver?.getAttribute("gfx_small_second") ?? undefined, - productIcon: ver?.getAttribute("icon") ?? undefined, - productIconSecond: ver?.getAttribute("icon_second") ?? undefined, - productIconSmall: ver?.getAttribute("icon_small") ?? undefined, - productIconSmallSecond: ver?.getAttribute("icon_small_second") ?? undefined, - link: ver?.getAttribute("link") ?? undefined, + name: ver?.getAttribute("name"), + icon: ver?.getAttribute("gfx"), + iconSecond: ver?.getAttribute("gfx_second"), + iconSmall: ver?.getAttribute("gfx_small"), + iconSmallSecond: ver?.getAttribute("gfx_small_second"), + productIcon: ver?.getAttribute("icon"), + productIconSecond: ver?.getAttribute("icon_second"), + productIconSmall: ver?.getAttribute("icon_small"), + productIconSmallSecond: ver?.getAttribute("icon_small_second"), + link: ver?.getAttribute("link"), // parameterValues: [], }); }); // DATA - const typeParts = prod.getAttribute("product_type"); + const typeParts = prod.getAttribute("product_type")?.split("_"); data.push({ id: prod?.getAttribute("id") !== null ? +prod?.getAttribute("id") : undefined, type: typeParts[1] === "item" ? typeParts[0] : typeParts[1], - code: prod?.getAttribute("code") ?? undefined, - name: prod.querySelector(":scope > name")?.textContent ?? undefined, - versionName: prod.querySelector(":scope > versions")?.getAttribute("name") ?? undefined, - description: prod.querySelector(":scope > description")?.textContent ?? undefined, - // longDescription: prod.querySelector("vlongdescription")?.textContent ?? undefined, + code: prod?.getAttribute("code"), + name: prod.querySelector(":scope > name")?.textContent, + versionName: prod.querySelector(":scope > versions")?.getAttribute("name"), + description: prod.querySelector(":scope > description")?.textContent, + // longDescription: prod.querySelector("vlongdescription")?.textContent, // longDescriptionSections: "", link: prod?.getAttribute("link"), zones, - icon: prod.querySelector(":scope > icon")?.textContent ?? undefined, - iconSecond: prod.querySelector(":scope > icon_second")?.textContent ?? undefined, - iconSmall: prod.querySelector(":scope > icon_small")?.textContent ?? undefined, - iconSmallSecond: prod.querySelector(":scope > icon_small_second")?.textContent ?? undefined, + icon: prod.querySelector(":scope > icon")?.textContent, + iconSecond: prod.querySelector(":scope > icon_second")?.textContent, + iconSmall: prod.querySelector(":scope > icon_small")?.textContent, + iconSmallSecond: prod.querySelector(":scope > icon_small_second")?.textContent, price: idmGetPriceFromNode(priceNode), unit: { - id: sizesNode?.getAttribute("unit_id") ?? undefined, + id: sizesNode?.getAttribute("unit_id"), // name: "", - singular: sizesNode?.getAttribute("unit_single") !== null ? +sizesNode?.getAttribute("unit_single") : undefined, - plural: sizesNode?.getAttribute("unit_plural") ?? undefined, - fraction: sizesNode?.getAttribute("unit_fraction") ?? undefined, + singular: sizesNode?.getAttribute("unit_single"), + plural: sizesNode?.getAttribute("unit_plural"), + fraction: sizesNode?.getAttribute("unit_fraction"), sellBy: sizesNode?.getAttribute("unit_sellby") !== null ? +sizesNode?.getAttribute("unit_sellby") : undefined, precision: sizesNode?.getAttribute("unit_precision") !== null ? +sizesNode?.getAttribute("unit_precision") : undefined, - unitConvertedFormat: sizesNode?.getAttribute("unit_converted_format") ?? undefined, + unitConvertedFormat: sizesNode?.getAttribute("unit_converted_format"), }, producer: { id: firmNode?.getAttribute("id") !== null ? +firmNode?.getAttribute("id") : undefined, - name: firmNode?.getAttribute("name") ?? undefined, - link: firmNode?.getAttribute("productslink") ?? undefined, + name: firmNode?.getAttribute("name"), + link: firmNode?.getAttribute("productslink"), searchIcons: { - icon: firmNode?.getAttribute("icon") ?? undefined, + icon: firmNode?.getAttribute("icon"), }, // projectorIcons: {}, }, category: { id: categoryNode?.getAttribute("id") !== null ? +categoryNode?.getAttribute("id") : undefined, - name: categoryNode?.getAttribute("name") ?? undefined, - link: categoryNode?.getAttribute("productslink") ?? undefined + name: categoryNode?.getAttribute("name"), + link: categoryNode?.getAttribute("productslink") }, group: { id: versionsNode?.getAttribute("id") !== null ? +versionsNode?.getAttribute("id") : undefined, - name: versionsNode?.getAttribute("name") ?? undefined, + name: versionsNode?.getAttribute("name"), displayAll: versionsNode?.getAttribute("display_all") === "true" ? true : false, - link: versionsNode?.getAttribute("link") ?? undefined, + link: versionsNode?.getAttribute("link"), versions, groupParameters: idmGetTraitsFromNode(versionsNode.querySelector(":scope > groupParameters")) }, opinion: { rating: commentsNode?.getAttribute("avg") !== null ? +commentsNode?.getAttribute("avg") : undefined, count: commentsNode?.getAttribute("count") !== null ? +commentsNode?.getAttribute("count") : undefined, - link: commentsNode?.getAttribute("link") ?? undefined + link: commentsNode?.getAttribute("link") }, enclosuresImages, // enclosuresAttachments: [], series: { id: seriesNode?.getAttribute("id") !== null ? +seriesNode?.getAttribute("id") : undefined, - name: seriesNode?.getAttribute("name") ?? undefined, - link: seriesNode?.getAttribute("link") ?? undefined + name: seriesNode?.getAttribute("name"), + link: seriesNode?.getAttribute("link") }, awardedParameters: idmGetTraitsFromNode(prod.querySelector(":scope > traits")), // parameteresWithContext: [], diff --git a/swiper-scrollbar/scrollbar.js b/swiper-scrollbar/scrollbar.js index 85fcd49..1be27ca 100644 --- a/swiper-scrollbar/scrollbar.js +++ b/swiper-scrollbar/scrollbar.js @@ -32,6 +32,13 @@ class IdmSwiperProgress { this.swiper.on("breakpoint", () => {this.updateBarWidth()}); } + reattachSwiperFn(newSwiperFn){ + this.swiper = newSwiperFn?.slider?.slider ?? newSwiperFn?.slider ?? newSwiperFn; + this.progressEl.style.width = ""; + this.progressEl.style.left = ""; + this.updateBarWidth(); + } + updateBarWidth() { const { slidesPerGroup, slidesPerView } = this.swiper.params; const totalSlides = this.swiper.slides.length;