"use strict"; var CloudExperienceHost; (function (CloudExperienceHost) { var Telemetry; (function (Telemetry) { var AppTelemetry = (function () { function AppTelemetry() { this._appActivity = null; if (!AppTelemetry._allowInstantiation) { throw new Error("Error: Instantiation failed: Use getInstance() instead of new."); } this._appActivity = new Microsoft.CloudExperienceHost.AppActivity(); } AppTelemetry.getInstance = function () { if (AppTelemetry._instance === null) { AppTelemetry._allowInstantiation = true; AppTelemetry._instance = new AppTelemetry(); AppTelemetry._allowInstantiation = false; } return AppTelemetry._instance; }; AppTelemetry.prototype.start = function (source, experience, correlationId) { this._appActivity.start(source, experience, correlationId); try { CloudExperienceHostAPI.EventLogging.appActivityStart(source, experience); } catch (e) { } }; AppTelemetry.prototype.stop = function (appResult) { this._appActivity.stop(appResult); try { CloudExperienceHostAPI.EventLogging.appActivityStop(appResult); } catch (e) { } }; AppTelemetry.prototype.getId = function () { return this._appActivity.getId(); }; AppTelemetry.prototype.appCheckpoint = function () { this._appActivity.appCheckpoint(); }; AppTelemetry.prototype.logEvent = function () { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i - 0] = arguments[_i]; } var func = "logEvent" + params.length; this._appActivity[func].apply(this._appActivity, params); func = "appEvent" + params.length; try { CloudExperienceHostAPI.EventLogging[func].apply(undefined, params); } catch (e) { } }; AppTelemetry._instance = null; return AppTelemetry; })(); Telemetry.AppTelemetry = AppTelemetry; var WebAppTelemetry = (function () { function WebAppTelemetry() { this._webAppActivity = null; if (!WebAppTelemetry._allowInstantiation) { throw new Error("Error: Instantiation failed: Use getInstance() instead of new."); } } WebAppTelemetry.getInstance = function () { if (WebAppTelemetry._instance === null) { WebAppTelemetry._allowInstantiation = true; WebAppTelemetry._instance = new WebAppTelemetry(); WebAppTelemetry._allowInstantiation = false; } return WebAppTelemetry._instance; }; WebAppTelemetry.prototype.start = function (cxid) { if (this._webAppActivity) { this.stop(CloudExperienceHost.AppResult.fail); } this._webAppActivity = new Microsoft.CloudExperienceHost.WebAppActivity(AppTelemetry.getInstance().getId()); this._webAppActivity.start(cxid); try { CloudExperienceHostAPI.EventLogging.webAppActivityStart(cxid); } catch (e) { } }; WebAppTelemetry.prototype.stop = function (appResult) { if (!this._webAppActivity) { throw new Error("Error: stop failed: Call start before calling stop."); } this._webAppActivity.stop(appResult); this._webAppActivity = null; try { CloudExperienceHostAPI.EventLogging.webAppActivityStop(appResult); } catch (e) { } }; WebAppTelemetry.prototype.isStarted = function () { return (this._webAppActivity != null); }; WebAppTelemetry.prototype.getId = function () { return this._webAppActivity.getId(); }; WebAppTelemetry.prototype.logEvent = function () { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i - 0] = arguments[_i]; } if (!this._webAppActivity) { throw new Error("Error: logEvent failed: Call start before logging event. " + params); } var func = "logEvent" + params.length; this._webAppActivity[func].apply(this._webAppActivity, params); func = "webAppEvent" + params.length; try { CloudExperienceHostAPI.EventLogging[func].apply(undefined, params); } catch (e) { } }; WebAppTelemetry._instance = null; return WebAppTelemetry; })(); Telemetry.WebAppTelemetry = WebAppTelemetry; function getId() { return WebAppTelemetry.getInstance().getId(); } Telemetry.getId = getId; function logEvent() { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i - 0] = arguments[_i]; } var webAppTelemetry = WebAppTelemetry.getInstance(); webAppTelemetry.logEvent.apply(webAppTelemetry, params); } Telemetry.logEvent = logEvent; })(Telemetry = CloudExperienceHost.Telemetry || (CloudExperienceHost.Telemetry = {})); })(CloudExperienceHost || (CloudExperienceHost = {}));