define(['jquery','Magento_Customer/js/customer-data'],function($,customerData){'use strict';return function(widget){$.widget('mage.gtmCart',widget,{_setToTemporaryEventStorage:function(type,sku){this.options.temporaryEventStorage.push({type:type,sku:sku});},_executeEvents:function(){this.options.temporaryEventStorage.forEach(function(item,index){this.options.actions[item.type](this.getProductBySku(item.sku));this.options.temporaryEventStorage.splice(index,1);}.bind(this));},getProductBySku:function(sku){var searchCriteria=function(item){var skuToMatch=sku.toString();return item['product_sku']===skuToMatch||item['product_sku'].indexOf(skuToMatch+'-',0);},productFromCache=_.find(this.cartItemsCache,searchCriteria),productFromCart=_.find(customerData.get('cart')().items,searchCriteria);if(!productFromCache){return _.extend({},productFromCart,{qty:1});} if(productFromCache&&productFromCart){return _.extend({},productFromCache,{qty:productFromCart.qty-productFromCache.qty});} return productFromCache||productFromCart;},_setListeners:function(){var handlerWrapper=function(callback,type,event,sku){callback.call(this,type,sku);},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;}});