@sunbird-cb/utils 1.0.4 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,11 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/material/dialog'), require('@angular/material/snack-bar'), require('rxjs'), require('@angular/cdk/layout'), require('rxjs/operators'), require('@angular/common'), require('@angular/material'), require('ngx-image-cropper'), require('keycloak-angular'), require('@angular/common/http'), require('@angular/cdk/platform'), require('moment'), require('lodash'), require('@angular/platform-browser'), require('@angular/router')) :
3
- typeof define === 'function' && define.amd ? define('@sunbird-cb/utils', ['exports', '@angular/core', '@angular/material/dialog', '@angular/material/snack-bar', 'rxjs', '@angular/cdk/layout', 'rxjs/operators', '@angular/common', '@angular/material', 'ngx-image-cropper', 'keycloak-angular', '@angular/common/http', '@angular/cdk/platform', 'moment', 'lodash', '@angular/platform-browser', '@angular/router'], factory) :
4
- (global = global || self, factory((global['sunbird-cb'] = global['sunbird-cb'] || {}, global['sunbird-cb'].utils = {}), global.ng.core, global.ng.material.dialog, global.ng.material['snack-bar'], global.rxjs, global.ng.cdk.layout, global.rxjs.operators, global.ng.common, global.ng.material, global.ngxImageCropper, global['keycloak-angular'], global.ng.common.http, global.ng.cdk.platform, global.moment, global._, global.ng.platformBrowser, global.ng.router));
5
- }(this, (function (exports, core, dialog, snackBar, rxjs, layout, operators, common, material, ngxImageCropper, keycloakAngular, http, platform, moment, lodash, platformBrowser, router) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/material/dialog'), require('@angular/material/snack-bar'), require('rxjs'), require('@angular/cdk/layout'), require('rxjs/operators'), require('@angular/common'), require('@angular/material'), require('ngx-image-cropper'), require('keycloak-angular'), require('@angular/common/http'), require('@angular/cdk/platform'), require('@angular/router'), require('moment'), require('lodash'), require('@angular/platform-browser')) :
3
+ typeof define === 'function' && define.amd ? define('@sunbird-cb/utils', ['exports', '@angular/core', '@angular/material/dialog', '@angular/material/snack-bar', 'rxjs', '@angular/cdk/layout', 'rxjs/operators', '@angular/common', '@angular/material', 'ngx-image-cropper', 'keycloak-angular', '@angular/common/http', '@angular/cdk/platform', '@angular/router', 'moment', 'lodash', '@angular/platform-browser'], factory) :
4
+ (global = global || self, factory((global['sunbird-cb'] = global['sunbird-cb'] || {}, global['sunbird-cb'].utils = {}), global.ng.core, global.ng.material.dialog, global.ng.material['snack-bar'], global.rxjs, global.ng.cdk.layout, global.rxjs.operators, global.ng.common, global.ng.material, global.ngxImageCropper, global['keycloak-angular'], global.ng.common.http, global.ng.cdk.platform, global.ng.router, global.moment, global._, global.ng.platformBrowser));
5
+ }(this, (function (exports, core, dialog, snackBar, rxjs, layout, operators, common, material, ngxImageCropper, keycloakAngular, http, platform, router, moment, _, platformBrowser) { 'use strict';
6
6
 
7
7
  moment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;
8
+ var ___default = 'default' in _ ? _['default'] : _;
8
9
 
9
10
  /*! *****************************************************************************
10
11
  Copyright (c) Microsoft Corporation.
@@ -2299,10 +2300,31 @@
2299
2300
  IRecursiveData.prototype.children;
2300
2301
  }
2301
2302
  var UtilityService = (function () {
2302
- function UtilityService(http, platform) {
2303
+ function UtilityService(http, platform, router$1, route) {
2304
+ var _this = this;
2303
2305
  this.http = http;
2304
2306
  this.platform = platform;
2307
+ this.router = router$1;
2308
+ this.route = route;
2309
+ this.currentRouteData = [];
2310
+ this.router.events.subscribe((function (event) {
2311
+ if (event instanceof router.NavigationEnd) {
2312
+ var snapshot = _this.route.snapshot;
2313
+ var firstChild = snapshot.root.firstChild;
2314
+ _this.getChildRouteData(snapshot, firstChild);
2315
+ }
2316
+ }));
2305
2317
  }
2318
+ UtilityService.prototype.getChildRouteData = function (snapshot, firstChild) {
2319
+ if (firstChild) {
2320
+ if (firstChild.data) {
2321
+ this.currentRouteData.push(firstChild.data);
2322
+ }
2323
+ if (firstChild.firstChild) {
2324
+ this.getChildRouteData(snapshot, firstChild.firstChild);
2325
+ }
2326
+ }
2327
+ };
2306
2328
  Object.defineProperty(UtilityService.prototype, "randomId", {
2307
2329
  get: function () {
2308
2330
  return RANDOM_ID_PER_USER + 1;
@@ -2391,6 +2413,28 @@
2391
2413
  enumerable: true,
2392
2414
  configurable: true
2393
2415
  });
2416
+ UtilityService.prototype.setRouteData = function (data) {
2417
+ this.currentRouteData = data;
2418
+ };
2419
+ Object.defineProperty(UtilityService.prototype, "routeData", {
2420
+ get: function () {
2421
+ var data = {
2422
+ module: '',
2423
+ pageId: '',
2424
+ };
2425
+ this.currentRouteData.map((function (rd) {
2426
+ if (rd.pageId) {
2427
+ data.pageId = data.pageId + "/" + rd.pageId;
2428
+ }
2429
+ if (rd.module) {
2430
+ data.module = rd.module;
2431
+ }
2432
+ }));
2433
+ return data;
2434
+ },
2435
+ enumerable: true,
2436
+ configurable: true
2437
+ });
2394
2438
  UtilityService.decorators = [
2395
2439
  { type: core.Injectable, args: [{
2396
2440
  providedIn: 'root',
@@ -2398,14 +2442,19 @@
2398
2442
  ];
2399
2443
  UtilityService.ctorParameters = function () { return [
2400
2444
  { type: http.HttpClient },
2401
- { type: platform.Platform }
2445
+ { type: platform.Platform },
2446
+ { type: router.Router },
2447
+ { type: router.ActivatedRoute }
2402
2448
  ]; };
2403
- /** @nocollapse */ UtilityService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function UtilityService_Factory() { return new UtilityService(core.ɵɵinject(http.HttpClient), core.ɵɵinject(platform.Platform)); }, token: UtilityService, providedIn: "root" });
2449
+ /** @nocollapse */ UtilityService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function UtilityService_Factory() { return new UtilityService(core.ɵɵinject(http.HttpClient), core.ɵɵinject(platform.Platform), core.ɵɵinject(router.Router), core.ɵɵinject(router.ActivatedRoute)); }, token: UtilityService, providedIn: "root" });
2404
2450
  return UtilityService;
2405
2451
  }());
2406
2452
  if (false) {
2453
+ UtilityService.prototype.currentRouteData;
2407
2454
  UtilityService.prototype.http;
2408
2455
  UtilityService.prototype.platform;
2456
+ UtilityService.prototype.router;
2457
+ UtilityService.prototype.route;
2409
2458
  }
2410
2459
 
2411
2460
  var LogoutComponent = (function () {
@@ -2921,7 +2970,7 @@
2921
2970
 
2922
2971
  var OrderByPipe = (function () {
2923
2972
  function OrderByPipe() {
2924
- this.transform = lodash.orderBy;
2973
+ this.transform = _.orderBy;
2925
2974
  }
2926
2975
  OrderByPipe.decorators = [
2927
2976
  { type: core.Pipe, args: [{
@@ -3969,6 +4018,7 @@
3969
4018
  IWsEvents.prototype.to;
3970
4019
  IWsEvents.prototype.data;
3971
4020
  IWsEvents.prototype.passThroughData;
4021
+ IWsEvents.prototype.pageContext;
3972
4022
  }
3973
4023
  var EnumTelemetrySubType;
3974
4024
  (function (EnumTelemetrySubType) {
@@ -3980,11 +4030,34 @@
3980
4030
  EnumTelemetrySubType["HeartBeat"] = "HeartBeat";
3981
4031
  EnumTelemetrySubType["Search"] = "Search";
3982
4032
  EnumTelemetrySubType["Feedback"] = "Feedback";
4033
+ EnumTelemetrySubType["Impression"] = "Impression";
3983
4034
  })(EnumTelemetrySubType = WsEvents.EnumTelemetrySubType || (WsEvents.EnumTelemetrySubType = {}));
4035
+ function ITelemetryPageContext() { }
4036
+ WsEvents.ITelemetryPageContext = ITelemetryPageContext;
4037
+ if (false) {
4038
+ ITelemetryPageContext.prototype.pageId;
4039
+ ITelemetryPageContext.prototype.module;
4040
+ ITelemetryPageContext.prototype.pageIdExt;
4041
+ }
4042
+ function ITelemetryEdata() { }
4043
+ WsEvents.ITelemetryEdata = ITelemetryEdata;
4044
+ if (false) {
4045
+ ITelemetryEdata.prototype.type;
4046
+ ITelemetryEdata.prototype.subType;
4047
+ ITelemetryEdata.prototype.id;
4048
+ ITelemetryEdata.prototype.pageid;
4049
+ }
4050
+ function ITelemetryTabData() { }
4051
+ WsEvents.ITelemetryTabData = ITelemetryTabData;
4052
+ if (false) {
4053
+ ITelemetryTabData.prototype.label;
4054
+ ITelemetryTabData.prototype.index;
4055
+ }
3984
4056
  function IWsEventTelemetry() { }
3985
4057
  WsEvents.IWsEventTelemetry = IWsEventTelemetry;
3986
4058
  if (false) {
3987
4059
  IWsEventTelemetry.prototype.eventSubType;
4060
+ IWsEventTelemetry.prototype.pageContext;
3988
4061
  }
3989
4062
  var EnumTelemetryPdfActivity;
3990
4063
  (function (EnumTelemetryPdfActivity) {
@@ -4006,16 +4079,23 @@
4006
4079
  function IWsEventTelemetryInteract() { }
4007
4080
  WsEvents.IWsEventTelemetryInteract = IWsEventTelemetryInteract;
4008
4081
  if (false) {
4009
- IWsEventTelemetryInteract.prototype.type;
4010
- IWsEventTelemetryInteract.prototype.subType;
4082
+ IWsEventTelemetryInteract.prototype.edata;
4011
4083
  IWsEventTelemetryInteract.prototype.object;
4084
+ IWsEventTelemetryInteract.prototype.pageContext;
4012
4085
  }
4013
4086
  function IWsEventTelemetryFeedback() { }
4014
4087
  WsEvents.IWsEventTelemetryFeedback = IWsEventTelemetryFeedback;
4015
4088
  if (false) {
4016
- IWsEventTelemetryFeedback.prototype.type;
4017
- IWsEventTelemetryFeedback.prototype.subType;
4089
+ IWsEventTelemetryFeedback.prototype.edata;
4018
4090
  IWsEventTelemetryFeedback.prototype.object;
4091
+ IWsEventTelemetryFeedback.prototype.pageContext;
4092
+ }
4093
+ function IWsEventTelemetryImpression() { }
4094
+ WsEvents.IWsEventTelemetryImpression = IWsEventTelemetryImpression;
4095
+ if (false) {
4096
+ IWsEventTelemetryImpression.prototype.edata;
4097
+ IWsEventTelemetryImpression.prototype.object;
4098
+ IWsEventTelemetryImpression.prototype.pageContext;
4019
4099
  }
4020
4100
  function IWsEventTelemetrySearch() { }
4021
4101
  WsEvents.IWsEventTelemetrySearch = IWsEventTelemetrySearch;
@@ -4067,37 +4147,72 @@
4067
4147
  IWsEventTelemetryMediaData.prototype.maxedSeekedTime;
4068
4148
  IWsEventTelemetryMediaData.prototype.activityStartedAt;
4069
4149
  }
4150
+ var EnumTelemetrymodules;
4151
+ (function (EnumTelemetrymodules) {
4152
+ EnumTelemetrymodules["CONTENT"] = "content";
4153
+ EnumTelemetrymodules["FEEDBACK"] = "feedback";
4154
+ EnumTelemetrymodules["COURSE"] = "course";
4155
+ EnumTelemetrymodules["PROGRAM"] = "program";
4156
+ EnumTelemetrymodules["EXPLORE"] = "explore";
4157
+ EnumTelemetrymodules["LEARN"] = "learn";
4158
+ EnumTelemetrymodules["HOME"] = "home";
4159
+ EnumTelemetrymodules["DASHBOARD"] = "dashboard";
4160
+ EnumTelemetrymodules["SEARCH"] = "search";
4161
+ EnumTelemetrymodules["DISCUSS"] = "discuss";
4162
+ EnumTelemetrymodules["COMPETENCY"] = "competency";
4163
+ EnumTelemetrymodules["EVENTS"] = "events";
4164
+ EnumTelemetrymodules["CAREER"] = "career";
4165
+ EnumTelemetrymodules["PROFILE"] = "profile";
4166
+ EnumTelemetrymodules["NETWORK"] = "network";
4167
+ EnumTelemetrymodules["SUPPORT"] = "support";
4168
+ })(EnumTelemetrymodules = WsEvents.EnumTelemetrymodules || (WsEvents.EnumTelemetrymodules = {}));
4169
+ var EnumInteractTypes;
4170
+ (function (EnumInteractTypes) {
4171
+ EnumInteractTypes["CLICK"] = "click";
4172
+ })(EnumInteractTypes = WsEvents.EnumInteractTypes || (WsEvents.EnumInteractTypes = {}));
4173
+ var EnumInteractSubTypes;
4174
+ (function (EnumInteractSubTypes) {
4175
+ EnumInteractSubTypes["COURSE_TAB"] = "course-tab";
4176
+ EnumInteractSubTypes["CAREER_TAB"] = "career-tab";
4177
+ EnumInteractSubTypes["NETWORK_TAB"] = "network-tab";
4178
+ EnumInteractSubTypes["COMPETENCY_TAB"] = "competency-tab";
4179
+ EnumInteractSubTypes["PROFILE_EDIT_TAB"] = "profile-edit-tab";
4180
+ EnumInteractSubTypes["DISCUSS_TAB"] = "discuss-tab";
4181
+ EnumInteractSubTypes["EVENTS_TAB"] = "events-tab";
4182
+ EnumInteractSubTypes["SIDE_MENU"] = "side-menu";
4183
+ })(EnumInteractSubTypes = WsEvents.EnumInteractSubTypes || (WsEvents.EnumInteractSubTypes = {}));
4070
4184
  })(exports.WsEvents || (exports.WsEvents = {}));
4071
4185
 
4072
4186
  var EventService = (function () {
4073
- function EventService() {
4187
+ function EventService(utilitySvc) {
4188
+ this.utilitySvc = utilitySvc;
4074
4189
  this.eventsSubject = new rxjs.Subject();
4075
4190
  this.events$ = this.eventsSubject.asObservable();
4076
4191
  }
4077
4192
  EventService.prototype.dispatchEvent = function (event) {
4193
+ event.pageContext = this.getContext(event.pageContext);
4078
4194
  this.eventsSubject.next(event);
4079
4195
  };
4080
- EventService.prototype.raiseInteractTelemetry = function (type, subType, object, from) {
4196
+ EventService.prototype.raiseInteractTelemetry = function (edata, object, pageContext) {
4081
4197
  this.dispatchEvent({
4082
4198
  eventType: exports.WsEvents.WsEventType.Telemetry,
4083
4199
  eventLogLevel: exports.WsEvents.WsEventLogLevel.Info,
4084
4200
  data: {
4085
- type: type,
4086
- subType: subType,
4201
+ edata: edata,
4087
4202
  object: object,
4203
+ pageContext: this.getContext(pageContext),
4088
4204
  eventSubType: exports.WsEvents.EnumTelemetrySubType.Interact,
4089
4205
  },
4090
- from: from || '',
4206
+ from: '',
4091
4207
  to: 'Telemetry',
4092
4208
  });
4093
4209
  };
4094
- EventService.prototype.raiseFeedbackTelemetry = function (type, subType, object, from) {
4210
+ EventService.prototype.raiseFeedbackTelemetry = function (edata, object, from) {
4095
4211
  this.dispatchEvent({
4096
4212
  eventType: exports.WsEvents.WsEventType.Telemetry,
4097
4213
  eventLogLevel: exports.WsEvents.WsEventLogLevel.Info,
4098
4214
  data: {
4099
- type: type,
4100
- subType: subType,
4215
+ edata: edata,
4101
4216
  object: object,
4102
4217
  eventSubType: exports.WsEvents.EnumTelemetrySubType.Feedback,
4103
4218
  },
@@ -4105,18 +4220,69 @@
4105
4220
  to: 'Telemetry',
4106
4221
  });
4107
4222
  };
4223
+ EventService.prototype.raiseCustomImpression = function (object, pageContext) {
4224
+ this.dispatchEvent({
4225
+ eventType: exports.WsEvents.WsEventType.Telemetry,
4226
+ eventLogLevel: exports.WsEvents.WsEventLogLevel.Info,
4227
+ data: {
4228
+ object: object,
4229
+ pageContext: this.getContext(pageContext),
4230
+ eventSubType: exports.WsEvents.EnumTelemetrySubType.Impression,
4231
+ },
4232
+ from: '',
4233
+ to: 'Telemetry',
4234
+ });
4235
+ };
4236
+ EventService.prototype.getContext = function (pageContext) {
4237
+ var routeDataContext = this.utilitySvc.routeData;
4238
+ var finalContext = {
4239
+ pageId: routeDataContext.pageId,
4240
+ module: routeDataContext.module,
4241
+ };
4242
+ if (pageContext) {
4243
+ if (pageContext.pageIdExt) {
4244
+ finalContext.pageId = routeDataContext.pageId + "_" + pageContext.pageIdExt;
4245
+ }
4246
+ else if (pageContext.pageId) {
4247
+ finalContext.pageId = pageContext.pageId;
4248
+ }
4249
+ if (pageContext.module) {
4250
+ finalContext.module = pageContext.module;
4251
+ }
4252
+ }
4253
+ return finalContext;
4254
+ };
4255
+ EventService.prototype.handleTabTelemetry = function (subType, data, object) {
4256
+ this.raiseInteractTelemetry({
4257
+ subType: subType,
4258
+ type: exports.WsEvents.EnumInteractTypes.CLICK,
4259
+ id: ___default.camelCase(data.label) + "-tab",
4260
+ }, __assign({ context: {
4261
+ position: data.index,
4262
+ } }, object), {
4263
+ pageIdExt: ___default.camelCase(data.label) + "-tab",
4264
+ });
4265
+ this.raiseCustomImpression(__assign({ context: {
4266
+ position: data.index,
4267
+ } }, object), {
4268
+ pageIdExt: ___default.camelCase(data.label) + "-tab",
4269
+ });
4270
+ };
4108
4271
  EventService.decorators = [
4109
4272
  { type: core.Injectable, args: [{
4110
4273
  providedIn: 'root',
4111
4274
  },] }
4112
4275
  ];
4113
- EventService.ctorParameters = function () { return []; };
4114
- /** @nocollapse */ EventService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function EventService_Factory() { return new EventService(); }, token: EventService, providedIn: "root" });
4276
+ EventService.ctorParameters = function () { return [
4277
+ { type: UtilityService }
4278
+ ]; };
4279
+ /** @nocollapse */ EventService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function EventService_Factory() { return new EventService(core.ɵɵinject(UtilityService)); }, token: EventService, providedIn: "root" });
4115
4280
  return EventService;
4116
4281
  }());
4117
4282
  if (false) {
4118
4283
  EventService.prototype.eventsSubject;
4119
4284
  EventService.prototype.events$;
4285
+ EventService.prototype.utilitySvc;
4120
4286
  }
4121
4287
 
4122
4288
  function IWsMsTokenModelResponse() { }
@@ -4342,18 +4508,20 @@
4342
4508
  this.externalApps = {
4343
4509
  RBCP: 'rbcp-web-ui',
4344
4510
  };
4511
+ this.environment = environment;
4345
4512
  var instanceConfig = this.configSvc.instanceConfig;
4346
4513
  if (instanceConfig) {
4347
4514
  this.telemetryConfig = instanceConfig.telemetryConfig;
4348
- this.environment = environment;
4349
4515
  this.telemetryConfig = __assign({}, this.telemetryConfig, { pdata: __assign({}, this.telemetryConfig.pdata, { id: environment.name + "." + this.telemetryConfig.pdata.id }), uid: this.configSvc.userProfile && this.configSvc.userProfile.userId, channel: this.rootOrgId || this.telemetryConfig.channel, sid: this.getTelemetrySessionId });
4350
4516
  this.pData = this.telemetryConfig.pdata;
4351
4517
  this.addPlayerListener();
4518
+ this.addCustomEventListener();
4352
4519
  this.addInteractListener();
4353
4520
  this.addFeedbackListener();
4354
4521
  this.addTimeSpentListener();
4355
4522
  this.addSearchListener();
4356
4523
  this.addHearbeatListener();
4524
+ this.addCustomImpressionListener();
4357
4525
  }
4358
4526
  }
4359
4527
  Object.defineProperty(TelemetryService.prototype, "getTelemetrySessionId", {
@@ -4373,17 +4541,20 @@
4373
4541
  enumerable: true,
4374
4542
  configurable: true
4375
4543
  });
4376
- TelemetryService.prototype.start = function (type, mode, id, data) {
4544
+ TelemetryService.prototype.start = function (edata, data, pageContext) {
4377
4545
  try {
4378
4546
  if (this.telemetryConfig) {
4379
- $t.start(this.telemetryConfig, id, '1.0', {
4380
- type: type,
4381
- mode: mode,
4382
- pageid: id,
4547
+ $t.start(this.telemetryConfig, (pageContext && pageContext.pageId) ?
4548
+ pageContext.pageId
4549
+ : '', '1.0', {
4550
+ type: edata.type,
4551
+ mode: edata.mode,
4552
+ pageid: (pageContext && pageContext.pageId) ?
4553
+ pageContext.pageId
4554
+ : '',
4555
+ duration: 1,
4383
4556
  }, {
4384
- context: {
4385
- pdata: __assign({}, this.pData, { id: this.pData.id }),
4386
- },
4557
+ context: __assign({ pdata: __assign({}, this.pData, { id: this.pData.id }) }, (pageContext && pageContext.module ? { env: pageContext.module } : null)),
4387
4558
  object: __assign({}, (data) && data),
4388
4559
  });
4389
4560
  }
@@ -4395,16 +4566,16 @@
4395
4566
  console.log('Error in telemetry start', e);
4396
4567
  }
4397
4568
  };
4398
- TelemetryService.prototype.end = function (type, mode, id, data) {
4569
+ TelemetryService.prototype.end = function (edata, data, pageContext) {
4399
4570
  try {
4400
4571
  $t.end({
4401
- type: type,
4402
- mode: mode,
4403
- pageid: id,
4572
+ type: edata.type,
4573
+ mode: edata.mode,
4574
+ pageid: (pageContext && pageContext.pageId) ?
4575
+ pageContext.pageId
4576
+ : '',
4404
4577
  }, {
4405
- context: {
4406
- pdata: __assign({}, this.pData, { id: this.pData.id }),
4407
- },
4578
+ context: __assign({ pdata: __assign({}, this.pData, { id: this.pData.id }) }, (pageContext && pageContext.module ? { env: pageContext.module } : null)),
4408
4579
  object: __assign({}, (data) && data),
4409
4580
  });
4410
4581
  }
@@ -4444,9 +4615,9 @@
4444
4615
  TelemetryService.prototype.impression = function (data) {
4445
4616
  try {
4446
4617
  var page = this.getPageDetails();
4447
- if (data) {
4448
- page.pageid = data.pageId;
4449
- page.module = data.pageModule;
4618
+ if (data && data.pageContext) {
4619
+ page.pageid = data.pageContext.pageId;
4620
+ page.module = data.pageContext.module;
4450
4621
  }
4451
4622
  var edata = {
4452
4623
  pageid: page.pageid,
@@ -4459,9 +4630,7 @@
4459
4630
  pdata: __assign({}, this.pData, { id: this.pData.id }),
4460
4631
  env: page.module || (this.telemetryConfig && this.telemetryConfig.env),
4461
4632
  },
4462
- object: {
4463
- id: page.objectId,
4464
- },
4633
+ object: __assign({ id: page.objectId }, (data.object)),
4465
4634
  };
4466
4635
  $t.impression(edata, config);
4467
4636
  }
@@ -4469,8 +4638,9 @@
4469
4638
  $t.impression(edata, {
4470
4639
  context: {
4471
4640
  pdata: __assign({}, this.pData, { id: this.pData.id }),
4472
- env: page.module,
4641
+ env: page.module || '',
4473
4642
  },
4643
+ object: __assign({}, (data.object)),
4474
4644
  });
4475
4645
  }
4476
4646
  this.previousUrl = page.pageUrl;
@@ -4502,6 +4672,24 @@
4502
4672
  console.log('Error in telemetry externalImpression', e);
4503
4673
  }
4504
4674
  };
4675
+ TelemetryService.prototype.addCustomImpressionListener = function () {
4676
+ var _this = this;
4677
+ this.eventsSvc.events$
4678
+ .pipe(operators.filter((function (event) {
4679
+ return event &&
4680
+ event.data &&
4681
+ event.eventType === exports.WsEvents.WsEventType.Telemetry &&
4682
+ event.data.eventSubType === exports.WsEvents.EnumTelemetrySubType.Impression;
4683
+ })))
4684
+ .subscribe((function (event) {
4685
+ try {
4686
+ _this.impression(event.data);
4687
+ }
4688
+ catch (e) {
4689
+ console.log('Error in telemetry impression', e);
4690
+ }
4691
+ }));
4692
+ };
4505
4693
  TelemetryService.prototype.addTimeSpentListener = function () {
4506
4694
  var _this = this;
4507
4695
  this.eventsSvc.events$
@@ -4514,10 +4702,40 @@
4514
4702
  })))
4515
4703
  .subscribe((function (event) {
4516
4704
  if (event.data.state === exports.WsEvents.EnumTelemetrySubType.Loaded) {
4517
- _this.start(event.data.type || exports.WsEvents.WsTimeSpentType.Page, event.data.mode || exports.WsEvents.WsTimeSpentMode.View, event.data.pageId);
4705
+ _this.start({
4706
+ type: event.data.type || exports.WsEvents.WsTimeSpentType.Player,
4707
+ mode: event.data.mode || exports.WsEvents.WsTimeSpentMode.Play,
4708
+ }, {}, event.pageContext);
4518
4709
  }
4519
4710
  if (event.data.state === exports.WsEvents.EnumTelemetrySubType.Unloaded) {
4520
- _this.end(event.data.type || exports.WsEvents.WsTimeSpentType.Page, event.data.mode || exports.WsEvents.WsTimeSpentMode.View, event.data.pageId);
4711
+ _this.end({
4712
+ type: event.data.type || exports.WsEvents.WsTimeSpentType.Player,
4713
+ mode: event.data.mode || exports.WsEvents.WsTimeSpentMode.Play,
4714
+ }, {}, event.pageContext);
4715
+ }
4716
+ }));
4717
+ };
4718
+ TelemetryService.prototype.addCustomEventListener = function () {
4719
+ var _this = this;
4720
+ this.eventsSvc.events$
4721
+ .pipe(operators.filter((function (event) {
4722
+ return event &&
4723
+ event.eventType === exports.WsEvents.WsEventType.Telemetry;
4724
+ })))
4725
+ .subscribe((function (event) {
4726
+ if (event.data.state === exports.WsEvents.EnumTelemetrySubType.Loaded &&
4727
+ event.data.type !== exports.WsEvents.WsTimeSpentType.Player) {
4728
+ _this.start({
4729
+ type: event.data.type,
4730
+ mode: event.data.mode || exports.WsEvents.WsTimeSpentMode.Play,
4731
+ }, event.data.object, event.pageContext);
4732
+ }
4733
+ if (event.data.state === exports.WsEvents.EnumTelemetrySubType.Unloaded &&
4734
+ event.data.type !== exports.WsEvents.WsTimeSpentType.Player) {
4735
+ _this.end({
4736
+ type: event.data.type || exports.WsEvents.WsTimeSpentType.Player,
4737
+ mode: event.data.mode || exports.WsEvents.WsTimeSpentMode.Play,
4738
+ }, event.data.object, event.pageContext);
4521
4739
  }
4522
4740
  }));
4523
4741
  };
@@ -4536,14 +4754,22 @@
4536
4754
  if (event.data.state === exports.WsEvents.EnumTelemetrySubType.Loaded &&
4537
4755
  (!content ||
4538
4756
  (content.isIframeSupported || '').toLowerCase() === 'maybe' ||
4539
- (content.isIframeSupported || '').toLowerCase() === 'yes')) {
4540
- _this.start(event.data.type || exports.WsEvents.WsTimeSpentType.Player, event.data.mode || exports.WsEvents.WsTimeSpentMode.Play, event.data.identifier, event.data.object);
4757
+ (content.isIframeSupported || '').toLowerCase() === 'yes' ||
4758
+ (content.mimeType === 'application/pdf' || 'application/json'))) {
4759
+ _this.start({
4760
+ type: event.data.type || exports.WsEvents.WsTimeSpentType.Player,
4761
+ mode: event.data.mode || exports.WsEvents.WsTimeSpentMode.Play,
4762
+ }, event.data.object, event.pageContext);
4541
4763
  }
4542
4764
  if (event.data.state === exports.WsEvents.EnumTelemetrySubType.Unloaded &&
4543
4765
  (!content ||
4544
4766
  (content.isIframeSupported || '').toLowerCase() === 'maybe' ||
4545
- (content.isIframeSupported || '').toLowerCase() === 'yes')) {
4546
- _this.end(event.data.type || exports.WsEvents.WsTimeSpentType.Player, event.data.mode || exports.WsEvents.WsTimeSpentMode.Play, event.data.identifier, event.data.object);
4767
+ (content.isIframeSupported || '').toLowerCase() === 'yes' ||
4768
+ (content.mimeType === 'application/pdf' || 'application/json'))) {
4769
+ _this.end({
4770
+ type: event.data.type || exports.WsEvents.WsTimeSpentType.Player,
4771
+ mode: event.data.mode || exports.WsEvents.WsTimeSpentMode.Play,
4772
+ }, event.data.object, event.pageContext);
4547
4773
  }
4548
4774
  }));
4549
4775
  };
@@ -4572,20 +4798,16 @@
4572
4798
  }
4573
4799
  }
4574
4800
  else {
4575
- var interactid = void 0;
4576
- if (event.data.type === 'goal') {
4577
- interactid = page.pageUrlParts[4];
4578
- }
4579
4801
  try {
4580
4802
  $t.interact({
4581
- type: event.data.type,
4582
- subtype: event.data.subType,
4583
- id: (event.data.object) ? event.data.object.contentId || event.data.object.id || interactid || '' : '',
4584
- pageid: page.pageid,
4803
+ type: event.data.edata.type,
4804
+ subtype: event.data.edata.subType,
4805
+ id: (event.data.edata && event.data.edata.id) ?
4806
+ event.data.edata.id
4807
+ : '',
4808
+ pageid: event.data.pageContext && event.data.pageContext.pageId || page.pageid,
4585
4809
  }, {
4586
- context: {
4587
- pdata: __assign({}, _this.pData, { id: _this.pData.id }),
4588
- },
4810
+ context: __assign({ pdata: __assign({}, _this.pData, { id: _this.pData.id }) }, (event.data.pageContext && event.data.pageContext.module ? { env: event.data.pageContext.module } : null)),
4589
4811
  object: __assign({}, event.data.object),
4590
4812
  });
4591
4813
  }
@@ -4618,7 +4840,7 @@
4618
4840
  },
4619
4841
  object: {
4620
4842
  id: event.data.object.contentId || event.data.object.id || '',
4621
- type: event.data.type || '',
4843
+ type: event.data.edata.type || '',
4622
4844
  ver: "" + (event.data.object.version || '1') + '',
4623
4845
  rollup: {},
4624
4846
  },
@@ -4740,8 +4962,8 @@
4740
4962
  TelemetryService.prototype.telemetryConfig;
4741
4963
  TelemetryService.prototype.pData;
4742
4964
  TelemetryService.prototype.contextCdata;
4743
- TelemetryService.prototype.externalApps;
4744
4965
  TelemetryService.prototype.environment;
4966
+ TelemetryService.prototype.externalApps;
4745
4967
  TelemetryService.prototype.configSvc;
4746
4968
  TelemetryService.prototype.eventsSvc;
4747
4969
  TelemetryService.prototype.logger;