{"version":3,"sources":["js/modules/eshop/ProductDetail.ts"],"names":[],"mappings":"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","file":"ProductDetail.js","sourcesContent":["/// \n\ndeclare const variantData: { [key: string]: any }[];\ndeclare const addToCartFormData: any;\n\nmodule PoskiQ {\n \"use strict\";\n\n export class ProductDetail {\n public static Instance: ProductDetail = null;\n\n readonly SELECTED_VARIANT_BUTTON_CLASS = 'selected';\n\n private addToCartForm: JQuery;\n private selectedVariant: JQuery;\n private productElement: JQuery;\n private variantButtonElements: JQuery;\n private variantSelectElement: JQuery;\n private upsellOpener: JQuery;\n private attributeSelectElements: JQuery;\n private attributePriceChangeElementSelector: AttributePriceChangeElementSelectorInterface;\n private variant: any;\n\n public constructor() {\n this.addToCartForm = $('[data-add-to-cart-form]');\n this.productElement = $('.js-product-detail');\n this.attributeSelectElements = this.productElement.find('.variantSelect');\n this.variantSelectElement = this.productElement.find('select[name=\"id\"]');\n this.upsellOpener = this.productElement.find('[data-upsell-component] [data-opener]');\n this.attributePriceChangeElementSelector = new AttributePriceChangeElementSelector;\n\n this.bindReviewButtons();\n\n if (this.attributeSelectElements.length) { //Use classic variant selection, if form with attributes is not set.\n this.bindSelect();\n this.processForm();\n } else {\n this.variantButtonElements = this.productElement.find('.item');\n this.selectedVariant = this.variantButtonElements.filter('.selected').first();\n this.bindVariantSelection();\n this.bindVariantButtons();\n }\n\n this.upsellToggle();\n }\n\n // Výběr varianty tlačítkem\n private bindVariantButtons() {\n this.variantButtonElements.each((i, e) => {\n e.addEventListener('click', e => {\n const btn = e.currentTarget;\n const variantId = btn.dataset.variantId;\n let variant = variantData.filter((element) => element.id == variantId).shift();\n this.variantButtonElements.removeClass(this.SELECTED_VARIANT_BUTTON_CLASS);\n btn.classList.add(this.SELECTED_VARIANT_BUTTON_CLASS);\n this.applyVariantToPage(variant);\n });\n });\n this.variantButtonElements.first().trigger('click');\n }\n\n private upsellToggle = function () {\n this.upsellOpener.on('click', function (event) {\n $(event.target).parent().toggleClass('is-active');\n }.bind(this));\n };\n\n // Výběr variant z roletky\n private bindVariantSelection(): void {\n const that = this;\n this.variantSelectElement.on('change', function (event: JQueryEventObject) {\n const variantId = this.value;\n let variant = variantData.filter((element) => element.id == variantId).shift();\n\n that.applyVariantToPage(variant);\n }).trigger('change');\n }\n\n private applyVariantToPage(variant): void {\n this.variant = variant;\n var setSpecificationHtmlOrHideIfEmpty = function (element: JQuery, html: string) {\n if (element.length == 0)\n return;\n element.html(html);\n var container = element.closest('.js-variant-data-block');\n container.toggleClass('hidden', !html);\n };\n setSpecificationHtmlOrHideIfEmpty($('.js-availability'), variant.availability);\n setSpecificationHtmlOrHideIfEmpty($('.js-code'), variant.code);\n setSpecificationHtmlOrHideIfEmpty($('.js-oldPrice'), variant.oldPrice);\n setSpecificationHtmlOrHideIfEmpty($('.js-oldPriceVAT'), variant.oldPriceVAT);\n setSpecificationHtmlOrHideIfEmpty($('.js-price'), variant.price);\n setSpecificationHtmlOrHideIfEmpty($('.js-priceVAT'), variant.priceVAT);\n\n if (variant.bySelector) {\n const bySelector: Array<{ selector: string, html: string|null }> = variant.bySelector;\n bySelector.forEach(function(one) {\n $(one.selector).html(one.html);\n });\n }\n\n let buttonSalable = $('.js-submit-salable');\n let buttonInquirable = $('.js-submit-inquirable');\n let buttonDisabled = $('.js-submit-disabled');\n\n buttonSalable.addClass('hidden');\n buttonInquirable.addClass('hidden');\n buttonDisabled.addClass('hidden');\n if (variant.salable) {\n buttonSalable.removeClass('hidden');\n } else if (variant.inquirable) {\n buttonInquirable.removeClass('hidden');\n } else {\n buttonDisabled.removeClass('hidden');\n }\n\n // uprav formular\n if (variant.salable) {\n this.adaptAddToCartForm(addToCartFormData.cart, variant);\n } else if (variant.inquirable) {\n const inquiry = JSON.parse(JSON.stringify(addToCartFormData.inquiry));\n inquiry.url = inquiry.url + '?id=' + variant.id\n this.adaptAddToCartForm(inquiry, variant);\n }\n\n $('.js-precart').change();\n return;\n }\n\n // Formulář pro výběr podle atributů\n private bindSelect(): void {\n this.attributeSelectElements.each(function (index, element) {\n $(element).on('change', function () {\n this.processForm();\n }.bind(this));\n }.bind(this));\n }\n\n private processForm() {\n let selectedAttributeValues = [];\n this.attributeSelectElements.each(function (i) {\n selectedAttributeValues.push($(this).children(\"option:selected\").attr('value'));\n });\n let variant = this.findVariant(selectedAttributeValues);\n\n if (variant == null) {\n variant = {};\n }\n this.editVariantNames(selectedAttributeValues);\n this.variantSelectElement.val(variant.id);\n return this.applyVariantToPage(variant);\n }\n\n private editVariantNames(selectedAttributeValues: any[]) {\n this.attributeSelectElements.each(function (index, element) {\n let originalValue = selectedAttributeValues[index];\n $(element).children(\"option\").each(function (ind, elem) {\n selectedAttributeValues[index] = elem.getAttribute('value');\n let variant = this.findVariant(selectedAttributeValues);\n let textToDisplay = ' ';\n let unavailable = $('.js-submit-disabled').first().text().toLowerCase();\n if (variant != null) {\n textToDisplay = variant.priceChange;\n } else {\n textToDisplay = unavailable;\n }\n textToDisplay = ' (' + textToDisplay + ')';\n let selectedAttribute = this.attributePriceChangeElementSelector.select(elem, ind);\n $(selectedAttribute).find('[data-price-change]').remove();\n $(selectedAttribute).append('
' + textToDisplay + '
');\n }.bind(this));\n\n selectedAttributeValues[index] = originalValue;\n }.bind(this));\n }\n\n private findVariant(attributes: any[]): any {\n for (let i in variantData) {\n if (!variantData.hasOwnProperty(i))\n continue;\n let variant = variantData[i];\n\n let doesNotFit = false;\n for (let attribute in attributes) {\n let array = variant.variantSelectAttributeValues;\n if (array.indexOf(parseInt(attributes[attribute])) <= -1) {\n doesNotFit = true;\n break;\n }\n }\n if (doesNotFit) {\n continue;\n }\n\n return variant;\n }\n\n return null;\n }\n\n private adaptAddToCartForm(cartType: any, variant: any): void {\n this.addToCartForm.removeClass(cartType.removeClass);\n this.addToCartForm.addClass(cartType.class);\n this.addToCartForm.attr('action', cartType.url);\n this.addToCartForm.find('select[name=id]').first().val(variant.id);\n }\n\n private bindReviewButtons() {\n let tabElement = jQuery('[data-product-detail-reviews-tab]');\n if (tabElement.length > 0) {\n jQuery('[data-show-product-reviews-btn]').on('click', function (e) {\n e.preventDefault();\n tabElement.trigger('click');\n window.setTimeout(function () {\n window.location.href = '#detail_recenze';\n }, 1000);\n });\n }\n }\n\n public setAttributePriceChangeElementSelector(attributePriceChangeElementSelector: AttributePriceChangeElementSelectorInterface) {\n this.attributePriceChangeElementSelector = attributePriceChangeElementSelector;\n if(this.attributeSelectElements.length) {\n this.processForm();\n }\n }\n\n public getVariant(): any {\n return this.variant;\n }\n }\n\n export interface AttributePriceChangeElementSelectorInterface {\n select(attributeValueElement, index: number);\n }\n\n class AttributePriceChangeElementSelector implements AttributePriceChangeElementSelectorInterface{\n public select(attributeValueElement, index: number) {\n return $(attributeValueElement).parent().closest('.SumoSelect').find('.optWrapper li').eq(index).children('label');\n }\n }\n\n $(function () {\n if (!document.body.className.match(/location_product_getDetail/))\n return;\n\n if(!ProductDetail.Instance) {\n ProductDetail.Instance = new ProductDetail();\n }\n });\n\n $(function () {\n //odkazy na jednotlive taby v detailu produktu\n function showTab(tab) {\n $('.idBox').css(\"display\", \"none\");\n $('.idBox' + tab).css(\"display\", \"block\");\n $('.tabs-holder .idTabs li a').removeClass('selected');\n $('.tabs-holder .idTabs li a[href$=\"' + tab + '\"]').addClass('selected');\n }\n\n // odkazy na preposilaci a kontaktni formular v detailu (po odeslani)\n let form = window.location.hash;\n if ((form == '#contact-form' || form == '#send-to-friend-form') && $('.tabs-holder').length) {\n showTab(form);\n }\n\n $('.js-product-description-link').click(() => {\n showTab('#text');\n });\n $('.js-product-contact-link').click(() => {\n showTab('#contact-form');\n });\n $('.js-product-send-to-friend-link').click(() => {\n showTab('#send-to-friend-form');\n });\n\n });\n\n $(function () {\n let savedCount = 1;\n $('.js-precart').on('change', function () {\n if (ProductDetail.Instance) {\n let count = $(this).find('[name=\"count\"]').val();\n let variant = ProductDetail.Instance.getVariant();\n if (count) {\n savedCount = count;\n }\n if (variant.plainTextPriceVat) {\n let price = Math.round(variant.plainTextPriceVat * savedCount);\n let iframe = $('.hellobank-calculator');\n iframe.each(function (index, elem) {\n let baseUrl = elem.getAttribute('data-base-url');\n elem.setAttribute('src', baseUrl + \"?price=\" + price);\n })\n }\n }\n })\n })\n}\n"]}