{"version":3,"sources":["webpack:///./app/components/m/add-to-cart-button/index.js","webpack:///./app/components/m/modal/index.js"],"names":["MAX_PRODUCTS","trackingObject","eventtype","addtocart","product","amount","itemnumber","addtowatchlist","increment","element","input","querySelector","minus","plus","checkState","classList","add","remove","value","addEventListener","e","parseInt","intAmount","addToCart","component","container","document","addToCartButtons","querySelectorAll","timeout","counter","forEach","btn","dynModal","BModal","contains","currCounter","parentNode","itemNumber","dataset","artNumber","quantity","track_product","setModal","logged","error","arguments","length","undefined","isProcessing","config","JSON","parse","textContent","console","modalHeaderLabel","cart","modalHeader","processingLabel","waitMessage","bodyMarkup","setHeader","setBody","label","btnLink","number","description","btnContinue","hookurl","URL","readCookie","pathUrl","labelPlural","labelSingular","protocol","hostname","pathname","wishlist","modal","find","text","setTimeout","$","on","clearTimeout","show","name","nameEQ","ca","cookie","split","i","c","charAt","substring","indexOf","matnr","quant","data","started","Date","getTime","ajax","method","url","xhrFields","withCredentials","beforeSend","done","textStatus","jqXHR","complete","status","log","now","toString","CONF","NOTEPAD","articleNumber","cartBtns","fail","xhr","responseJSON","success","message","track","constructor","classes","modalMarkup","body","append","modalBody","setClasses","addClass","markup","once","before","html","setFooter","after","delay","that","Number","isInteger","timeid"],"mappings":"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","file":"add-to-cart.chunk.js","sourcesContent":["import { BModal } from '../modal';\r\nimport { track } from '../../../core/js/libs/TrackingService';\r\nconst MAX_PRODUCTS = 999999;\r\nconst trackingObject = {\r\n eventtype: '',\r\n addtocart: '',\r\n product: '',\r\n amount: '',\r\n itemnumber: '',\r\n addtowatchlist: '',\r\n};\r\n\r\nfunction increment(element) {\r\n const input = element.querySelector('input');\r\n const minus = element.querySelector('.counter__button--minus');\r\n const plus = element.querySelector('.counter__button--plus');\r\n\r\n /**\r\n * Check the state of the minus/plus buttons, which\r\n * disables the buttons at some thresholds. The minus\r\n * button will be disabled for amounts under or equal 1,\r\n * the plus button if greater or equal than the max\r\n * number of allowed items.\r\n * @param amount\r\n */\r\n const checkState = (amount) => {\r\n if (amount >= MAX_PRODUCTS) plus.classList.add('disabled');\r\n else plus.classList.remove('disabled');\r\n\r\n if (amount <= 1) minus.classList.add('disabled');\r\n else minus.classList.remove('disabled');\r\n };\r\n // check initially\r\n checkState(input.value);\r\n\r\n input.addEventListener('change', (e) => {\r\n const value = parseInt(input.value, 10);\r\n\r\n //\r\n if (value <= 1) input.value = 1;\r\n\r\n checkState(value);\r\n });\r\n\r\n minus.addEventListener(\r\n 'click',\r\n () => {\r\n let intAmount = parseInt(input.value, 10);\r\n if (intAmount > 1) {\r\n input.value = intAmount -= 1;\r\n }\r\n checkState(intAmount);\r\n },\r\n false\r\n );\r\n plus.addEventListener(\r\n 'click',\r\n () => {\r\n let intAmount = parseInt(input.value, 10);\r\n input.value = intAmount += 1;\r\n checkState(intAmount);\r\n },\r\n false\r\n );\r\n}\r\n\r\nfunction addToCart(component) {\r\n const container = component || document;\r\n const addToCartButtons = container.querySelectorAll('.btn--trigger-cart');\r\n let timeout;\r\n const counter = container.querySelectorAll('.add-to-cart__counter');\r\n\r\n if (counter) {\r\n counter.forEach((element) => {\r\n increment(element);\r\n });\r\n }\r\n\r\n addToCartButtons.forEach((btn) => {\r\n //\r\n const dynModal = new BModal('modal--cart');\r\n\r\n btn.addEventListener('click', function () {\r\n const element = this;\r\n\r\n if (element.classList.contains('disabled')) {\r\n return;\r\n }\r\n\r\n //\r\n const currCounter = element.parentNode.parentNode.parentNode.parentNode.querySelector('.add-to-cart__counter');\r\n const itemNumber = element.dataset.artNumber;\r\n const amount = currCounter ? currCounter.querySelector('input').value : parseInt(element.dataset.quantity, 10);\r\n const product = element.dataset.track_product;\r\n\r\n /**\r\n *\r\n * @param logged Whether the user is logged-in eg. we should add the products to cart instead of the wishlist\r\n * @param error An key for a possible error returned by the endpoint\r\n * @param amount The number of products which where added to cart/wishlist\r\n * @param isProcessing Whether the pop-up should show a spinner eg. a loading animation\r\n */\r\n function setModal(logged, error = null, amount = 0, isProcessing = false) {\r\n //\r\n const config = document.querySelector('.modal-cart-config')\r\n ? JSON.parse(document.querySelector('.modal-cart-config').textContent)\r\n : null;\r\n\r\n // check whether config exists\r\n if (config === null) {\r\n console.error('Error! Modal config not found.');\r\n return;\r\n }\r\n\r\n //\r\n if (isProcessing) {\r\n //\r\n const modalHeaderLabel = config.cart.modalHeader;\r\n const processingLabel = config.cart.waitMessage;\r\n\r\n //\r\n const bodyMarkup = `<div class=\"modal-cart__body\">\r\n <p class=\"text-center\">\r\n <img src=\"/resources/default/assets/images/wirtgen-loader.gif\" width=\"48\" height=\"48\" />\r\n </p>\r\n <p class=\"modal-cart__processing-text\">\r\n ${processingLabel}\r\n </p>\r\n </div>`;\r\n\r\n // set modal content\r\n dynModal.setHeader(`<h5 class=\"hdl hdl--5\">${modalHeaderLabel}</h5>`, true);\r\n dynModal.setBody(bodyMarkup);\r\n } else {\r\n let label;\r\n let btn;\r\n let btnLink;\r\n const number = element.dataset.artNumber;\r\n const description = element.dataset.description;\r\n let btnContinue;\r\n let modalHeader;\r\n\r\n if (config) {\r\n if (logged) {\r\n const hookurl = new URL(readCookie('hookurl'));\r\n const pathUrl = new URL(config.cart.btnLink);\r\n label = amount > 1 ? config.cart.labelPlural : config.cart.labelSingular;\r\n btn = config.cart.btn;\r\n btnLink = hookurl.protocol + '//' + hookurl.hostname + pathUrl.pathname;\r\n modalHeader = config.cart.modalHeader;\r\n } else {\r\n label = amount > 1 ? config.wishlist.labelPlural : config.wishlist.labelSingular;\r\n btn = config.wishlist.btn;\r\n btnLink = config.wishlist.btnLink;\r\n modalHeader = config.wishlist.modalHeader;\r\n }\r\n btnContinue = config.btnContinue;\r\n }\r\n\r\n //\r\n dynModal.setHeader(`<h5 class=\"hdl hdl--5\">${modalHeader}</h5>`, true);\r\n\r\n if (error !== null) {\r\n // check whether the given error message are a key\r\n // for the translated messages about to much\r\n // products in the cart. if so use the translation\r\n // from the cart config.\r\n if (error === 'toMuchProducts' || error === 'toMuchPositions') {\r\n error = config.wishlist[error];\r\n }\r\n dynModal.setBody(`<div class=\"modal-cart__body\">\r\n <p>${error}</p>\r\n <button class=\"btn btn-clean btn--continue\" data-dismiss=\"modal\">${btnContinue}</button>\r\n </div>`);\r\n } else {\r\n dynModal.setBody(\r\n `<div class=\"modal-cart__body\">\r\n <p class=\"modal-cart__label\">\r\n ${label}\r\n </p>\r\n <p class=\"modal-cart__text\">${description}</p>\r\n <a href=\"${btnLink}\" class=\"btn btn-primary btn--order trackingElement\"\r\n data-track_domevent=\"click\"\r\n data-track_elementtype=\"text\"\r\n data-track_product=\"${product}\"\r\n data-track_amount='${amount}'\r\n data-track_itemnumber=\"${itemNumber}\"\r\n data-track_eventtype=\"${logged ? 'openPartsShop' : 'openWatchlist'}\"\r\n ${logged ? ' target=\"_wirtgen_parts-shop\"' : null}\r\n >\r\n ${btn}</a>\r\n <button class=\"btn btn-clean btn--continue\" data-dismiss=\"modal\">${btnContinue}</button>\r\n </div>`\r\n );\r\n dynModal.modal.find('.modal-cart__number').text(number);\r\n dynModal.modal.find('.modal-cart__count').text(amount);\r\n }\r\n\r\n timeout = setTimeout(function () {\r\n $('.modal').modal('hide');\r\n }, 5000);\r\n }\r\n\r\n // clear auto-close timeout if modal\r\n // was closed manually\r\n dynModal.modal.on('hide.bs.modal', () => {\r\n if (!isProcessing) {\r\n clearTimeout(timeout);\r\n }\r\n });\r\n\r\n // show modal\r\n dynModal.show();\r\n }\r\n\r\n function readCookie(name) {\r\n const nameEQ = name + '=';\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n }\r\n\r\n if (readCookie('hookurl')) {\r\n const matnr = `NEW_ITEM-MATNR[1]`;\r\n const quant = `NEW_ITEM-QUANTITY[1]`;\r\n const data = {\r\n [matnr]: element.dataset.artNumber,\r\n [quant]: amount,\r\n };\r\n\r\n // get timestamp before request will be send\r\n const started = new Date().getTime();\r\n\r\n trackingObject.addtocart = 'yes';\r\n\r\n $.ajax({\r\n method: 'POST',\r\n url: readCookie('hookurl'),\r\n data,\r\n xhrFields: { withCredentials: true },\r\n beforeSend: function () {\r\n // show modal with loading spinner\r\n setModal(true, null, undefined, true);\r\n },\r\n }).done(function (data, textStatus, jqXHR) {\r\n // Complete will show the pop-up with the\r\n // success message of the item being added to\r\n // the cart or a possible error/failure message.\r\n function complete() {\r\n const status = parseInt(jqXHR.status, 10);\r\n if (status >= 200 && status < 300) {\r\n setModal(true, null, amount);\r\n document.cookie = 'hookurl=' + readCookie('hookurl') + '; max-age=1800; samesite=lax; path=/;';\r\n } else if (status >= 400 && status < 500) {\r\n console.log('Authentifizierungsfehler - neu einloggen');\r\n setModal(true, 'Authentifizierungsfehler - neu einloggen');\r\n } else if (status >= 500) {\r\n setModal(true, 'Anderer Fehler - versuchen, den Artikel manuell in den Warenkorb zu legen');\r\n console.log('Anderer Fehler - versuchen, den Artikel manuell in den Warenkorb zu legen');\r\n }\r\n }\r\n\r\n // get current timestamp\r\n const now = new Date().getTime();\r\n // ensure a processing time of at\r\n // least one second to ensure\r\n // the content could be recognised\r\n if (now - started < 1000) {\r\n setTimeout(() => {\r\n complete();\r\n }, 1000);\r\n } else {\r\n complete();\r\n }\r\n });\r\n } else {\r\n //\r\n trackingObject.addtowatchlist = 'yes';\r\n // check amount an show info message and\r\n // prevent to send the request to the server\r\n if (amount > MAX_PRODUCTS) {\r\n currCounter.querySelector('input').value = MAX_PRODUCTS.toString();\r\n setModal(false, 'toMuchProducts');\r\n return;\r\n }\r\n\r\n $.ajax({\r\n method: 'GET',\r\n url: `${CONF.NOTEPAD}additem`,\r\n data: {\r\n articleNumber: element.dataset.artNumber,\r\n add: amount,\r\n },\r\n })\r\n .done(function () {\r\n const cartBtns = document.querySelectorAll('.nav-link--cart');\r\n cartBtns.forEach((btn) => {\r\n btn.classList.add('not-empty');\r\n });\r\n\r\n setModal(false, null, amount);\r\n })\r\n .fail(function (xhr) {\r\n const { responseJSON } = xhr;\r\n if (responseJSON.success === 'false') {\r\n currCounter.querySelector('input').value = MAX_PRODUCTS.toString();\r\n setModal(false, responseJSON.message);\r\n }\r\n });\r\n }\r\n\r\n trackingObject.itemnumber = itemNumber;\r\n trackingObject.amount = amount;\r\n trackingObject.product = product;\r\n trackingObject.eventtype = 'purchaseitemclick';\r\n track(trackingObject);\r\n });\r\n });\r\n}\r\n\r\naddToCart();\r\n\r\nexport { addToCart, increment };\r\n","/**\r\n * Bootstrap Modal with pure Javascript\r\n * Usage:\r\n * var my_modal = new bsModal();\r\n * my_modal.setBody('Some content');\r\n * my_modal.setFooter('Footer');\r\n * my_modal.modal.modal('show');\r\n * @param {string} classes [css classes]\r\n */\r\n\r\nclass BModal {\r\n constructor(classes = '', container = true) {\r\n const modalMarkup =\r\n '<div id=\"BModal\" tabindex=\"-1\" class=\"modal ' +\r\n classes +\r\n ' fade in\">' +\r\n '<div class=\"modal-dialog\">' +\r\n '<div class=\"modal-content\">' +\r\n '<div class=\"modal-header\">' +\r\n '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"close\"><svg class=\"icon icon-close\"><use xlink:href=\"#icon-close\"></use></svg></button>' +\r\n '</button>' +\r\n '</div>' +\r\n `<div class=\"modal-body ${container ? 'container' : ''}\"></div>` +\r\n '</div>' +\r\n '</div>' +\r\n '</div>';\r\n this.modal = $('#BModal');\r\n // Remove modal if there's already one\r\n this.modal.remove();\r\n // Append markup\r\n $(document.body).append(modalMarkup);\r\n this.modal = $('#BModal');\r\n this.modalHeader = this.modal.find('.modal-header');\r\n this.modalBody = this.modal.find('.modal-body');\r\n // Kill on Hide\r\n this.modal.on('hidden.bs.modal', function () {\r\n $(this).remove();\r\n });\r\n }\r\n\r\n // Set variant class\r\n setClasses(classes) {\r\n this.modal.addClass(classes);\r\n }\r\n\r\n // Set Body\r\n setHeader(markup, once = false) {\r\n // only add markup if once is explicitly set\r\n // and element wasn't added yet\r\n if (once && this.modalHeader.find('.modal-header__content').length) return;\r\n\r\n this.modalHeader.find('.close').before(`<div class=\"modal-header__content\">${markup}</div>`);\r\n }\r\n\r\n // Set Body\r\n setBody(markup) {\r\n this.modalBody.html(markup);\r\n }\r\n\r\n // Set Footer\r\n setFooter(markup) {\r\n this.modalBody.after('<div class=\"modal-footer\">' + markup + '</div>');\r\n }\r\n\r\n // Display modal\r\n show(delay) {\r\n const that = this;\r\n delay = Number(delay);\r\n if (Number.isInteger(delay)) {\r\n const timeid = setTimeout(() => {\r\n that.modal.modal('hide');\r\n }, delay);\r\n }\r\n this.modal.modal('show');\r\n }\r\n}\r\n\r\nexport { BModal };\r\n"],"sourceRoot":""}