define(['jquery','Magento_Customer/js/customer-data','Magento_GoogleTagManager/js/google-analytics-universal','Magento_GoogleTagManager/js/google-analytics-universal-cart','underscore','jquery-ui-modules/widget'],function($,customerData,GoogleAnalyticsUniversal,GoogleAnalyticsUniversalCart,_){'use strict';$.widget('mage.gtmCart',{options:{dlCurrencyCode:window.dlCurrencyCode||'',dataLayer:window.dataLayer||[],staticImpressions:window.staticImpressions||[],staticPromotions:window.staticPromotions||[],updatedImpressions:window.updatedImpressions||[],updatedPromotions:window.updatedPromotions||[],cookieAddToCart:'',advancedAddToCart:'',cookieRemoveFromCart:window.cookieRemoveFromCart||'',temporaryEventStorage:[],blockNames:[],events:{AJAX_ADD_TO_CART:'ajax:addToCart',AJAX_REMOVE_FROM_CART:'ajax:removeFromCart'},actions:{}},_create:function(){this.googleAnalyticsUniversalCart=new GoogleAnalyticsUniversalCart({dlCurrencyCode:this.options.dlCurrencyCode,dataLayer:this.options.dataLayer,cookieAddToCart:this.options.cookieAddToCart,advancedAddToCart:this.options.advancedAddToCart,cookieRemoveFromCart:this.options.cookieRemoveFromCart});this.googleAnalyticsUniversal=new GoogleAnalyticsUniversal({blockNames:this.options.blockNames,dlCurrencyCode:this.options.dlCurrencyCode,dataLayer:this.options.dataLayer,staticImpressions:this.options.staticImpressions,staticPromotions:this.options.staticPromotions,updatedImpressions:this.options.updatedImpressions,updatedPromotions:this.options.updatedPromotions});this.cartItemsCache=[];this._initActions();this._setListeners();this._setCartDataListener();this.googleAnalyticsUniversal.updatePromotions();this.googleAnalyticsUniversal.updateImpressions();this.googleAnalyticsUniversalCart.parseAddToCartCookies();this.googleAnalyticsUniversalCart.parseAddToCartAdvanced();this.googleAnalyticsUniversalCart.parseRemoveFromCartCookies();this.googleAnalyticsUniversalCart.subscribeProductsUpdateInCart();this.googleAnalyticsUniversalCart.listenMinicartReload();},_initActions:function(){var events=this.options.events;this.options.actions[events.AJAX_ADD_TO_CART]=function(product){this.googleAnalyticsUniversal.addToCart(product['product_sku'],product['product_name'],product['product_price_value'],product.qty);}.bind(this);this.options.actions[events.AJAX_REMOVE_FROM_CART]=function(product){this.googleAnalyticsUniversal.removeFromCart(product['product_sku'],product['product_name'],product['product_price_value'],product.qty);}.bind(this);},getProduct:function(productInfo){var searchCriteria,productOptionValues=productInfo.optionValues||[],productFromCache,productFromCart;searchCriteria=function(item){var index=0;if(item['product_id']!==productInfo.id){return false;} if(productOptionValues.length===0){return true;} while(index0){this.options.actions[item.type](product);} this.options.temporaryEventStorage.splice(index,1);}.bind(this));}.bind(this));},_setListeners:function(){var handlerWrapper=function(callback,type,event,eventData){callback.call(this,type,eventData.productInfo);},opt=this.options;$(document).on(opt.events.AJAX_ADD_TO_CART,handlerWrapper.bind(this,this._setToTemporaryEventStorage,opt.events.AJAX_ADD_TO_CART)).on(opt.events.AJAX_REMOVE_FROM_CART,handlerWrapper.bind(this,this._setToTemporaryEventStorage,opt.events.AJAX_REMOVE_FROM_CART));}});return $.mage.gtmCart;});