(function(){var __webpack_exports__={};window.germanized=window.germanized||{};(function($,germanized){germanized.unit_price_observer_queue={queue:{},timeout:null,params:{},request:null,init:function(){this.params=wc_gzd_unit_price_observer_queue_params;this.queue={};this.queuesInExecution={};this.latestQueueInExection='';this.aborted={};this.timeout=null;this.request=null;},execute:function(){var self=germanized.unit_price_observer_queue,data=[],currentQueueId=Date.now()+'';self.queuesInExecution[currentQueueId]={...self.queue};self.latestQueueInExection=currentQueueId;self.queue={};Object.keys(self.queuesInExecution[currentQueueId]).forEach(function(queueKey){data=data.concat([{'product_id':self.queuesInExecution[currentQueueId][queueKey].productId,'price':self.queuesInExecution[currentQueueId][queueKey].priceData.price,'price_sale':self.queuesInExecution[currentQueueId][queueKey].priceData.sale_price,'quantity':self.queuesInExecution[currentQueueId][queueKey].priceData.quantity,'is_range':self.queuesInExecution[currentQueueId][queueKey].priceData.hasOwnProperty('is_range')?self.queuesInExecution[currentQueueId][queueKey].priceData.is_range:false,'key':queueKey}]);});self.request=$.ajax({type:"POST",url:self.params.wc_ajax_url.toString().replace('%%endpoint%%','gzd_refresh_unit_price'),data:{'security':self.params.refresh_unit_price_nonce,'products':data,'queue_id':currentQueueId},queueId:currentQueueId,success:function(data){var xhrQueueId=this.queueId,currentQueue=self.queuesInExecution.hasOwnProperty(xhrQueueId)?self.queuesInExecution[xhrQueueId]:{},aborted=self.aborted.hasOwnProperty(xhrQueueId)?self.aborted[xhrQueueId]:{};Object.keys(currentQueue).forEach(function(queueId){if(!aborted.hasOwnProperty(queueId)){var current=currentQueue[queueId],observer=current.observer,priceData=current.priceData,priceSelector=current.priceSelector,isPrimary=current.isPrimary,unitPrices=self.getUnitPricesFromMap(priceData.unit_price);if(observer){if(data.products.hasOwnProperty(queueId)){var response=data.products[queueId];observer.stopObserver(observer,priceSelector);if(parseInt(response.product_id)===observer.getCurrentProductId(observer)){if(response.hasOwnProperty('unit_price_html')){observer.unsetUnitPriceLoading(observer,unitPrices,response.unit_price_html);}else{observer.unsetUnitPriceLoading(observer,unitPrices);}}else{observer.unsetUnitPriceLoading(observer,unitPrices);}
observer.startObserver(observer,priceSelector,isPrimary);}else{observer.stopObserver(observer,priceSelector);observer.unsetUnitPriceLoading(observer,unitPrices);observer.startObserver(observer,priceSelector,isPrimary);}}}else{delete self.aborted[xhrQueueId][queueId];}});delete self.queuesInExecution[xhrQueueId];},error:function(){var xhrQueueId=this.queueId,currentQueue=self.queuesInExecution.hasOwnProperty(xhrQueueId)?self.queuesInExecution[xhrQueueId]:{},aborted=self.aborted.hasOwnProperty(xhrQueueId)?self.aborted[xhrQueueId]:{};Object.keys(currentQueue).forEach(function(queueId){if(!aborted.hasOwnProperty(queueId)){var current=currentQueue[queueId],observer=current.observer,priceData=current.priceData,priceSelector=current.priceSelector,isPrimary=current.isPrimary,unitPrices=self.getUnitPricesFromMap(priceData.unit_price);if(observer){observer.stopObserver(observer,priceSelector);observer.unsetUnitPriceLoading(observer,unitPrices);observer.startObserver(observer,priceSelector,isPrimary);}}else{delete self.aborted[xhrQueueId][queueId];}});delete self.queuesInExecution[xhrQueueId];},dataType:'json'});},getUnitPricesFromMap:function(unitPriceMap){let unitPrices=[];unitPriceMap.forEach(function(unitPrice){unitPrices=$.merge(unitPrices,$(unitPrice));});return $(unitPrices);},getQueueKey:function(productId){return(productId+'').replace(/[^a-zA-Z0-9]/g,'');},getLatestQueueInExecution(){var self=germanized.unit_price_observer_queue;return self.queuesInExecution.hasOwnProperty(self.latestQueueInExection)?self.queuesInExecution[self.latestQueueInExection]:{};},exists:function(productId){var self=germanized.unit_price_observer_queue,queueKey=self.getQueueKey(productId);return self.queue.hasOwnProperty(queueKey)||self.getLatestQueueInExecution().hasOwnProperty(queueKey);},get:function(productId){var self=germanized.unit_price_observer_queue,queueKey=self.getQueueKey(productId),queueInExecution=self.getLatestQueueInExecution().hasOwnProperty(queueKey);if(queueInExecution.hasOwnProperty(queueKey)){return queueInExecution[queueKey];}else if(self.queue.hasOwnProperty(queueKey)){return self.queue[queueKey];}
return false;},abort:function(productId){var self=germanized.unit_price_observer_queue,queueKey=self.getQueueKey(productId),latestQueueInExecutionKey=self.latestQueueInExection,latestQueueInExecution=self.queuesInExecution.hasOwnProperty(latestQueueInExecutionKey)?self.queuesInExecution[latestQueueInExecutionKey]:{};if(latestQueueInExecution.hasOwnProperty(queueKey)){var current=latestQueueInExecution[queueKey],observer=current.observer,priceData=current.priceData,priceSelector=current.priceSelector,isPrimary=current.isPrimary,unitPrices=self.getUnitPricesFromMap(priceData.unit_price);if(observer){observer.stopObserver(observer,priceSelector);observer.unsetUnitPriceLoading(observer,unitPrices);observer.startObserver(observer,priceSelector,isPrimary);}
if(!self.aborted.hasOwnProperty(latestQueueInExecutionKey)){self.aborted[latestQueueInExecutionKey]={};}
self.aborted[latestQueueInExecutionKey][queueKey]=current;return true;}
return false;},add:function(observer,productId,priceData,priceSelector,isPrimary){var self=germanized.unit_price_observer_queue,queueKey=self.getQueueKey(productId);if(self.queue.hasOwnProperty(queueKey)){priceData['unit_price'].each(function(i,obj){if(!self.queue[queueKey]['priceData']['unit_price'].has(obj)){self.queue[queueKey]['priceData']['unit_price'].set(obj,obj);}});}else{var unitPrices=new Map();priceData['unit_price'].each(function(i,obj){unitPrices.set(obj,obj);});priceData['unit_price']=unitPrices;self.queue[queueKey]={'productId':productId,'observer':observer,'priceData':priceData,'priceSelector':priceSelector,'isPrimary':isPrimary};}
clearTimeout(self.timeout);self.timeout=setTimeout(self.execute,500);}};$(document).ready(function(){germanized.unit_price_observer_queue.init();});})(jQuery,window.germanized);((window.germanized=window.germanized||{})["static"]=window.germanized["static"]||{})["unit-price-observer-queue"]=__webpack_exports__;})();