"use strict";define(["jquery","webengage/utils"],function($,Utils){var EventQueue=function(){if(this._started=!1,!webengage)throw new Error("Javascript SDK is not loaded");if(!window.hasOwnProperty("WEBENGAGE_EVENT_QUEUE"))throw new Error("Webengage snippet was not rendered")};return EventQueue.prototype.start=function(){var _this=this;this._started||(this._started=!0,this._processEventQueue(window.WEBENGAGE_EVENT_QUEUE),$(document).ajaxComplete(function(_,response){var _ref$webengageEventQu=(response.responseJSON||{}).webengageEventQueue,webengageEventQueue=void 0===_ref$webengageEventQu?[]:_ref$webengageEventQu;_this._processEventQueue(webengageEventQueue)}))},EventQueue.prototype._processEventQueue=function(eventQueue){for(var event;event=eventQueue.shift();){var _event=event,eventName=_event.eventName,data=_event.data;data=Utils.applyPlaceholders(data),"User Signed Up"===eventName?this._trackRegistration(eventName,data):"User Logged In"===eventName?this._trackLogin(eventName,data):webengage.track(eventName,data)}},EventQueue.prototype._trackLogin=function(eventName,data){var userId=data["User ID"];if(!userId)throw new Error("User ID cannot be undefined");delete data["User ID"],webengage.track(eventName,data),webengage.user.login(userId),this._profileSync(userId)},EventQueue.prototype._trackRegistration=function(eventName,data){var userId=data["User ID"];if(!userId)throw new Error("User ID cannot be undefined");delete data["User ID"],webengage.track(eventName,data),webengage.user.login(userId),this._profileSync(userId)},EventQueue.prototype._profileSync=function(userId){$.ajax({url:Utils.route("profile/sync"),type:"post",data:{platform:Utils.getPlatform()}})},new EventQueue});