{"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":""}