{"version":3,"sources":["webpack:///./js/common/modules/add-to-cart.js"],"names":["_GlobalVars","__webpack_require__","_Cart","_Events","maximumQuantityReachedProductIds","isProductAllowedToAddInCart","productSku","maximumAuthorizedQuantity","productCookie","readItemCookie","readQuantityOfItemCookie","goToCart","document","location","href","GlobalVars","C","L","addProductToCart","_ref","productId","_ref$quantityToAdd","quantityToAdd","undefined","onCartUpdated","_ref$triggerAddItemTo","triggerAddItemToCartEvent","addItem","sku","id","title","price","quantity","addedQuantity","getUpdatedQuantity","cartProductsQuantityLimiter","event","itemQuantity","productIndex","indexOf","isMaximumQantityReached","push","$","target","trigger","cartItemQtyReachLimitEventName","splice","cartItemQtyBelowLimitEventName"],"mappings":"wQAKA,MAAAA,EAAAC,EAAA,wCACAC,EAAAD,EAAA,KAKAE,EAAAF,EAAA,IAKA,IAAMG,KA0BN,SAASC,EAA4BC,EAAYC,GAC/C,IAAMC,GAAgB,EAAAN,EAAAO,gBAAeH,GAGrC,aAFwD,IAAlBE,KAM/B,EAAAN,EAAAQ,0BAAyBF,GAAiBD,UAuDjDI,SApFF,WACEC,SAASC,SAASC,KAAlB,mBAA4CC,UAAWC,EAAvD,MAA8DD,UAAWE,WAoFzEC,iBAlCF,SAAAC,GAOG,IANDb,EAMCa,EANDb,WACAc,EAKCD,EALDC,UACAb,EAICY,EAJDZ,0BAICc,EAAAF,EAHDG,qBAGCC,IAAAF,EAHe,EAGfA,EAFDG,EAECL,EAFDK,cAECC,EAAAN,EADDO,iCACCH,IAAAE,KACD,QAAIpB,EAA4BC,EAAYC,MAE1C,EAAAL,EAAAyB,UACEC,IAAKtB,EACLuB,GAAIT,EACJU,MAAO,GACPC,MAAO,GACPC,SAAUV,IACRI,GAOJF,GAAeJ,EA1CnB,SAA4Bd,EAAY2B,GACtC,IAAMzB,GAAgB,EAAAN,EAAAO,gBAAeH,GAErC,YAA6B,IAAlBE,EACFyB,GAGF,EAAA/B,EAAAQ,0BAAyBF,GAiCN0B,CAAmB5B,EAAYgB,MAIhD,YAUTa,4BAlFF,SAAqCC,EAAOhB,EAAWiB,EAAc9B,GACnE,IAAM+B,EAAelC,EAAiCmC,QAAQnB,GACxDoB,EAA0BH,GAAgB9B,EAG5CiC,IAA6C,IAAlBF,IAC7BlC,EAAiCqC,KAAKrB,GACtCsB,EAAEN,EAAMO,QAAQC,QAAQC,iCAAgCzB,IAIrDoB,IAA6C,IAAlBF,IAC9BlC,EAAiC0C,OAAOR,EAAc,GACtDI,EAAEN,EAAMO,QAAQC,QAAQG,iCAAgC3B,aAsE1Df","file":"js/occ2016/dedicated-pages.desktop.min.js","sourcesContent":["/**\r\n * Common - Module - Add to cart\r\n */\r\n\r\n// Imports\r\nimport GlobalVars from '../GlobalVars';\r\nimport {\r\n addItem,\r\n readItemCookie,\r\n readQuantityOfItemCookie,\r\n} from '../Cart';\r\nimport {\r\n cartItemQtyReachLimitEventName,\r\n cartItemQtyBelowLimitEventName,\r\n} from '../../common/Events';\r\n\r\nconst maximumQuantityReachedProductIds = [];\r\n\r\n/*\r\n * Redirect iser to the cart\r\n */\r\nfunction goToCart() {\r\n document.location.href = `/ecomBag.aspx?c=${GlobalVars.C}&l=${GlobalVars.L}`;\r\n}\r\n\r\nfunction cartProductsQuantityLimiter(event, productId, itemQuantity, maximumAuthorizedQuantity) {\r\n const productIndex = maximumQuantityReachedProductIds.indexOf(productId);\r\n const isMaximumQantityReached = itemQuantity >= maximumAuthorizedQuantity;\r\n\r\n /* Item quantity just reach limitation */\r\n if (isMaximumQantityReached && productIndex === -1) {\r\n maximumQuantityReachedProductIds.push(productId);\r\n $(event.target).trigger(cartItemQtyReachLimitEventName, productId);\r\n }\r\n\r\n /* Item quantity just go below limitation */\r\n if (!isMaximumQantityReached && productIndex !== -1) {\r\n maximumQuantityReachedProductIds.splice(productIndex, 1);\r\n $(event.target).trigger(cartItemQtyBelowLimitEventName, productId);\r\n }\r\n}\r\n\r\nfunction isProductAllowedToAddInCart(productSku, maximumAuthorizedQuantity) {\r\n const productCookie = readItemCookie(productSku);\r\n const isProductAlreadyInCart = typeof productCookie !== 'undefined';\r\n\r\n if (!isProductAlreadyInCart) {\r\n return true;\r\n }\r\n\r\n return readQuantityOfItemCookie(productCookie) < maximumAuthorizedQuantity;\r\n}\r\n\r\nfunction getUpdatedQuantity(productSku, addedQuantity) {\r\n const productCookie = readItemCookie(productSku);\r\n\r\n if (typeof productCookie === 'undefined') {\r\n return addedQuantity;\r\n }\r\n\r\n return readQuantityOfItemCookie(productCookie);\r\n}\r\n\r\n /**\r\n * Add given product to cart\r\n *\r\n * @params productSku {String} Product SKU\r\n * @params productId {Integer} Id of the product (eg. ID_Article)\r\n * @params quantityToAdd {Integer} Quantity of product to be added to existing cart (default value : 1)\r\n *\r\n * @return {Boolean} true if the product has been added to cart successfully.\r\n */\r\nfunction addProductToCart({\r\n productSku,\r\n productId,\r\n maximumAuthorizedQuantity,\r\n quantityToAdd = 1,\r\n onCartUpdated,\r\n triggerAddItemToCartEvent = false\r\n}) {\r\n if (isProductAllowedToAddInCart(productSku, maximumAuthorizedQuantity)) {\r\n // Add the item to the cart\r\n addItem({\r\n sku: productSku,\r\n id: productId,\r\n title: '',\r\n price: '',\r\n quantity: quantityToAdd,\r\n }, !triggerAddItemToCartEvent);\r\n\r\n /*\r\n * If item already exist in cart, add its previous qantity\r\n */\r\n const updatedQuantity = getUpdatedQuantity(productSku, quantityToAdd);\r\n\r\n onCartUpdated([productId, updatedQuantity]);\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n// Named exports - Functions\r\nexport {\r\n goToCart,\r\n addProductToCart,\r\n cartProductsQuantityLimiter,\r\n isProductAllowedToAddInCart\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./js/common/modules/add-to-cart.js"],"sourceRoot":""}