define(['underscore','Amasty_PixelCore/js/event-data','Amasty_PixelTikTok/js/event/publisher/browser-publisher','Amasty_PixelTikTok/js/event/publisher/event-api-publisher'],function(_,eventData,browserPublisher,eventApiPublisher){'use strict';return{pixelType:'tiktok','Amasty_PixelTikTok/js/tiktok-event-processor':function(){eventData.addSectionUpdateHandler(this.pixelType,this.processEvents.bind(this));this.processEvents(eventData.getPublicEventsData(this.pixelType));},processEvents:function(eventsData){this.getActivePixels().forEach((pixel)=>{this.processEventsByPixel(pixel,eventsData);});},getActivePixels:function(){return window.amPixelManager?.getActivePixels(this.pixelType)??[];},processEventsByPixel:function(pixel,eventsData){this.prepareEventsData(eventsData).forEach((eventData)=>{this.supportsEvent(pixel,eventData)&&this.trackEvent(pixel,eventData);});},prepareEventsData:function(eventsData){return _.chain(eventsData).groupBy('eventName').map((eventGroup)=>{if(eventGroup.length===1){return eventGroup;} const id=this.generateEventId();return _.map(eventGroup,(event)=>{return{...event,data:{...event.data,event_id:id}}});}).flatten(1).value();},generateEventId:function(){return Math.floor(Math.random()*Date.now());},supportsEvent:function(pixel,eventData){return!!eventData.data?._pixelIds?.includes(pixel.pixelId);},trackEvent:function(pixel,eventData){eventData.data._isApi?eventApiPublisher.publish(pixel,eventData):browserPublisher.publish(pixel,eventData);}};});