@sunbird-cb/consumption 0.0.53 → 0.0.55

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.
Files changed (64) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +2282 -933
  2. package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-consumption.umd.min.js +2 -2
  4. package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/announcements/announcements.component.js +18 -3
  6. package/esm2015/lib/_common/cards/card-wide/card-wide.component.js +1 -1
  7. package/esm2015/lib/_common/cbp-plan/cbp-plan.component.js +166 -0
  8. package/esm2015/lib/_common/cbp-plan/cbp-plan.module.js +27 -0
  9. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +209 -33
  10. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +3 -1
  11. package/esm2015/lib/_common/data-points/data-points.component.js +24 -3
  12. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.js +23 -0
  13. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.js +255 -0
  14. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel.module.js +52 -0
  15. package/esm2015/lib/_common/microsites/providers/providers-v2/providers-v2.component.js +269 -0
  16. package/esm2015/lib/_common/microsites/providers/providers.module.js +51 -0
  17. package/esm2015/lib/_common/top-learners/top-learners.component.js +155 -0
  18. package/esm2015/lib/_common/top-learners/top-learners.module.js +21 -0
  19. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.component.js +3 -3
  20. package/esm2015/lib/_services/insite-data.service.js +9 -2
  21. package/esm2015/lib/consumption.module.js +7 -3
  22. package/esm2015/public-api.js +5 -1
  23. package/esm2015/sunbird-cb-consumption.js +52 -47
  24. package/esm5/lib/_common/announcements/announcements.component.js +21 -3
  25. package/esm5/lib/_common/cards/card-wide/card-wide.component.js +1 -1
  26. package/esm5/lib/_common/cbp-plan/cbp-plan.component.js +185 -0
  27. package/esm5/lib/_common/cbp-plan/cbp-plan.module.js +31 -0
  28. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +204 -16
  29. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +3 -1
  30. package/esm5/lib/_common/data-points/data-points.component.js +29 -3
  31. package/esm5/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.js +29 -0
  32. package/esm5/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.js +292 -0
  33. package/esm5/lib/_common/microsites/mdo-channels/mdo-channel.module.js +56 -0
  34. package/esm5/lib/_common/microsites/providers/providers-v2/providers-v2.component.js +312 -0
  35. package/esm5/lib/_common/microsites/providers/providers.module.js +55 -0
  36. package/esm5/lib/_common/top-learners/top-learners.component.js +172 -0
  37. package/esm5/lib/_common/top-learners/top-learners.module.js +25 -0
  38. package/esm5/lib/_common/user-content-rating/user-content-rating-lib.component.js +3 -3
  39. package/esm5/lib/_services/insite-data.service.js +12 -2
  40. package/esm5/lib/consumption.module.js +7 -3
  41. package/esm5/public-api.js +5 -1
  42. package/esm5/sunbird-cb-consumption.js +52 -47
  43. package/fesm2015/sunbird-cb-consumption.js +1520 -331
  44. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  45. package/fesm5/sunbird-cb-consumption.js +2226 -886
  46. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  47. package/lib/_common/announcements/announcements.component.d.ts +3 -0
  48. package/lib/_common/cbp-plan/cbp-plan.component.d.ts +25 -0
  49. package/lib/_common/cbp-plan/cbp-plan.module.d.ts +2 -0
  50. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +3 -0
  51. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts +1 -0
  52. package/lib/_common/data-points/data-points.component.d.ts +1 -0
  53. package/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.d.ts +5 -0
  54. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts +39 -0
  55. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts +2 -0
  56. package/lib/_common/microsites/providers/providers-v2/providers-v2.component.d.ts +36 -0
  57. package/lib/_common/microsites/providers/providers.module.d.ts +2 -0
  58. package/lib/_common/top-learners/top-learners.component.d.ts +18 -0
  59. package/lib/_common/top-learners/top-learners.module.d.ts +2 -0
  60. package/lib/_services/insite-data.service.d.ts +1 -0
  61. package/package.json +1 -1
  62. package/public-api.d.ts +4 -0
  63. package/sunbird-cb-consumption.d.ts +50 -45
  64. package/sunbird-cb-consumption.metadata.json +1 -1
@@ -1,6 +1,6 @@
1
- import { Injectable, ɵɵdefineInjectable, Component, EventEmitter, Input, Output, ViewChild, NgModule, ɵɵinject, Inject, HostBinding, Directive, HostListener, CUSTOM_ELEMENTS_SCHEMA, Pipe, ElementRef, ViewChildren } from '@angular/core';
1
+ import { Injectable, ɵɵdefineInjectable, Component, EventEmitter, Input, Output, ViewChild, NgModule, ɵɵinject, Inject, HostBinding, Directive, HostListener, CUSTOM_ELEMENTS_SCHEMA, ElementRef, ViewChildren, Pipe } from '@angular/core';
2
2
  import { CommonModule, DatePipe } from '@angular/common';
3
- import { Router, RouterModule } from '@angular/router';
3
+ import { Router, RouterModule, ActivatedRoute } from '@angular/router';
4
4
  import { fromEvent, timer, BehaviorSubject, Subject, of, EMPTY, ReplaySubject, throwError, interval } from 'rxjs';
5
5
  import { debounceTime, throttleTime, shareReplay, retry, map, catchError, filter, distinctUntilChanged } from 'rxjs/operators';
6
6
  import { ValueService, ConfigurationsService as ConfigurationsService$1, WsEvents, LoggerService, EventService, UtilityService, MultilingualTranslationsService as MultilingualTranslationsService$1, PipeSafeSanitizerModule } from '@sunbird-cb/utils-v2';
@@ -8,8 +8,8 @@ import { MatButtonModule, MatIconModule, MatProgressSpinnerModule, MatToolbarMod
8
8
  import { __awaiter } from 'tslib';
9
9
  import { WidgetBaseComponent, SbUiResolverModule } from '@sunbird-cb/resolver-v2';
10
10
  import { HttpClient, HttpHeaders } from '@angular/common/http';
11
- import { get, uniqBy, orderBy, camelCase } from 'lodash';
12
- import * as moment$1 from 'moment';
11
+ import { get, uniqBy, orderBy, camelCase, kebabCase } from 'lodash';
12
+ import * as moment$2 from 'moment';
13
13
  import { duration, utc } from 'moment';
14
14
  import { TranslateService, TranslateModule, TranslateLoader } from '@ngx-translate/core';
15
15
  import * as dayjs_ from 'dayjs';
@@ -1443,7 +1443,7 @@ function viewerRouteGenerator(id, mimeType, collectionId, collectionType, forPre
1443
1443
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1444
1444
  */
1445
1445
  /** @type {?} */
1446
- const moment = moment$1;
1446
+ const moment = moment$2;
1447
1447
  // tslint:enable
1448
1448
  // TODO: move this in some common place
1449
1449
  /** @type {?} */
@@ -3271,6 +3271,8 @@ if (false) {
3271
3271
  /** @type {?} */
3272
3272
  IStripUnitContentData.prototype.stripConfig;
3273
3273
  /** @type {?|undefined} */
3274
+ IStripUnitContentData.prototype.tabsType;
3275
+ /** @type {?|undefined} */
3274
3276
  IStripUnitContentData.prototype.tabs;
3275
3277
  /** @type {?|undefined} */
3276
3278
  IStripUnitContentData.prototype.stripName;
@@ -4383,6 +4385,7 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4383
4385
  disableTranslate: strip.disableTranslate,
4384
4386
  sliderConfig: strip.sliderConfig,
4385
4387
  tabs: tabsResults ? tabsResults : strip.tabs,
4388
+ tabsType: strip.tabsType ? strip.tabsType : '',
4386
4389
  stripName: strip.name,
4387
4390
  mode: strip.mode,
4388
4391
  stripConfig: strip.stripConfig,
@@ -4527,6 +4530,12 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4527
4530
  else if (currentTabFromMap.request.trendingSearch) {
4528
4531
  this.getTabDataByNewReqTrending(currentStrip, tabEvent.index, currentTabFromMap, true);
4529
4532
  }
4533
+ else if (currentTabFromMap.request.topContent) {
4534
+ this.getTabDataByNewReqTopContent(currentStrip, tabEvent.index, currentTabFromMap, true);
4535
+ }
4536
+ else if (currentTabFromMap.request.playlistRead) {
4537
+ this.getTabDataByNewReqPlaylistReadContent(currentStrip, tabEvent.index, currentTabFromMap, true);
4538
+ }
4530
4539
  if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {
4531
4540
  stripMap.tabs[tabEvent.index].tabLoading = false;
4532
4541
  }
@@ -4900,29 +4909,45 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4900
4909
  originalFilters = strip.request.topContent.request.filters;
4901
4910
  strip.request.topContent.request.filters = this.postMethodFilters(strip.request.topContent.request.filters);
4902
4911
  }
4903
- try {
4912
+ if (strip.tabs && strip.tabs.length) {
4913
+ // TODO: Have to extract requestRequired to outer level of tabs config
4904
4914
  /** @type {?} */
4905
- const response = yield this.postRequestMethod(strip, strip.request.topContent, strip.request.apiUrl, calculateParentStatus);
4906
- // console.log('calling after - response, ', response)
4907
- if (response && response.results) {
4908
- // console.log('calling after-- ')
4909
- if (response.results.result.content && response.results.result.content.length) {
4910
- this.processStrip(strip, this.transformContentsToWidgets(response.results.result.content, strip), 'done', calculateParentStatus, response.viewMoreUrl);
4915
+ const firstTab = strip.tabs[0];
4916
+ if (firstTab.requestRequired) {
4917
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
4918
+ /** @type {?} */
4919
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
4920
+ /** @type {?} */
4921
+ const currentTabFromMap = (/** @type {?} */ ((allTabs && allTabs.length && allTabs[0])));
4922
+ this.getTabDataByNewReqTopContent(strip, 0, currentTabFromMap, calculateParentStatus);
4923
+ }
4924
+ }
4925
+ }
4926
+ else {
4927
+ try {
4928
+ /** @type {?} */
4929
+ const response = yield this.postRequestMethod(strip, strip.request.topContent, strip.request.apiUrl, calculateParentStatus);
4930
+ // console.log('calling after - response, ', response)
4931
+ if (response && response.results) {
4932
+ // console.log('calling after-- ')
4933
+ if (response.results.result.content && response.results.result.content.length) {
4934
+ this.processStrip(strip, this.transformContentsToWidgets(response.results.result.content, strip), 'done', calculateParentStatus, response.viewMoreUrl);
4935
+ }
4936
+ else {
4937
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
4938
+ this.emptyResponse.emit(true);
4939
+ }
4911
4940
  }
4912
4941
  else {
4913
4942
  this.processStrip(strip, [], 'error', calculateParentStatus, null);
4914
4943
  this.emptyResponse.emit(true);
4915
4944
  }
4916
4945
  }
4917
- else {
4918
- this.processStrip(strip, [], 'error', calculateParentStatus, null);
4919
- this.emptyResponse.emit(true);
4946
+ catch (error) {
4947
+ // Handle errors
4948
+ // console.error('Error:', error);
4920
4949
  }
4921
4950
  }
4922
- catch (error) {
4923
- // Handle errors
4924
- // console.error('Error:', error);
4925
- }
4926
4951
  }
4927
4952
  });
4928
4953
  }
@@ -4970,6 +4995,51 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4970
4995
  }
4971
4996
  });
4972
4997
  }
4998
+ /**
4999
+ * @param {?} strip
5000
+ * @param {?} tabIndex
5001
+ * @param {?} currentTab
5002
+ * @param {?} calculateParentStatus
5003
+ * @return {?}
5004
+ */
5005
+ getTabDataByNewReqTopContent(strip, tabIndex, currentTab, calculateParentStatus) {
5006
+ return __awaiter(this, void 0, void 0, function* () {
5007
+ if (currentTab.request &&
5008
+ currentTab.request.topContent &&
5009
+ currentTab.request.topContent.request &&
5010
+ currentTab.request.topContent.request.filters) {
5011
+ currentTab.request.topContent.request.filters = this.postMethodFilters(currentTab.request.topContent.request.filters);
5012
+ }
5013
+ try {
5014
+ // const response = await this.searchV6Request(strip, currentTab.request, calculateParentStatus);
5015
+ /** @type {?} */
5016
+ const response = yield this.postRequestMethod(strip, currentTab.request.topContent, currentTab.request.apiUrl, calculateParentStatus);
5017
+ if (response.results && response.results.result) {
5018
+ /** @type {?} */
5019
+ const widgets = this.transformContentsToWidgets(response.results.result.content, strip);
5020
+ /** @type {?} */
5021
+ let tabResults = [];
5022
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
5023
+ /** @type {?} */
5024
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
5025
+ if (allTabs && allTabs.length && allTabs[tabIndex]) {
5026
+ allTabs[tabIndex] = Object.assign({}, allTabs[tabIndex], { widgets, fetchTabStatus: 'done' });
5027
+ tabResults = allTabs;
5028
+ }
5029
+ }
5030
+ this.processStrip(strip, widgets, 'done', calculateParentStatus, response.viewMoreUrl, tabResults // tabResults as widgets
5031
+ );
5032
+ }
5033
+ else {
5034
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
5035
+ }
5036
+ }
5037
+ catch (error) {
5038
+ // Handle errors
5039
+ // console.error('Error:', error);
5040
+ }
5041
+ });
5042
+ }
4973
5043
  /**
4974
5044
  * @param {?} stripData
4975
5045
  * @return {?}
@@ -5115,7 +5185,7 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
5115
5185
  postMethodFilters(filters) {
5116
5186
  if (filters.organisation &&
5117
5187
  filters.organisation.indexOf('<orgID>') >= 0) {
5118
- filters.organisation = this.providerId;
5188
+ filters.organisation = filters.organisation.replace('<orgID>', this.providerId);
5119
5189
  }
5120
5190
  return filters;
5121
5191
  }
@@ -5126,7 +5196,7 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
5126
5196
  */
5127
5197
  getFullUrl(apiUrl, id) {
5128
5198
  /** @type {?} */
5129
- let formedUrl = '';
5199
+ let formedUrl = apiUrl;
5130
5200
  if (apiUrl.indexOf('<bookmarkId>') >= 0) {
5131
5201
  formedUrl = apiUrl.replace('<bookmarkId>', this.environment.mdoChannelsBookmarkId);
5132
5202
  }
@@ -5290,30 +5360,136 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
5290
5360
  strip.request.playlistRead.type) {
5291
5361
  strip.request.apiUrl = this.getFullUrl(strip.request.apiUrl, strip.request.playlistRead.type);
5292
5362
  }
5293
- try {
5363
+ if (strip.tabs && strip.tabs.length) {
5364
+ // TODO: Have to extract requestRequired to outer level of tabs config
5294
5365
  /** @type {?} */
5295
- const response = yield this.getRequestMethod(strip, strip.request.playlistRead, strip.request.apiUrl, calculateParentStatus);
5296
- if (response && response.results.result.content) {
5366
+ const firstTab = strip.tabs[0];
5367
+ if (firstTab.requestRequired) {
5368
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
5369
+ /** @type {?} */
5370
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
5371
+ /** @type {?} */
5372
+ const currentTabFromMap = (/** @type {?} */ ((allTabs && allTabs.length && allTabs[0])));
5373
+ this.getTabDataByNewReqPlaylistReadContent(strip, 0, currentTabFromMap, calculateParentStatus);
5374
+ }
5375
+ }
5376
+ }
5377
+ else {
5378
+ try {
5297
5379
  /** @type {?} */
5298
- let content = response.results.result.content;
5299
- if (strip.key === 'providers') {
5380
+ const response = yield this.getRequestMethod(strip, strip.request.playlistRead, strip.request.apiUrl, calculateParentStatus);
5381
+ if (response && response.results.result.content) {
5300
5382
  /** @type {?} */
5301
- let featuredProviders = JSON.parse(content.featuredProviders || '[]');
5302
- this.processStrip(strip, this.transformAllContentsToWidgets(featuredProviders, strip), 'done', calculateParentStatus, response);
5383
+ let content = response.results.result.content;
5384
+ if (strip.key === 'providers') {
5385
+ /** @type {?} */
5386
+ let featuredProviders = JSON.parse(content.featuredProviders || '[]');
5387
+ this.processStrip(strip, this.transformAllContentsToWidgets(featuredProviders, strip), 'done', calculateParentStatus, response);
5388
+ }
5389
+ else {
5390
+ this.processStrip(strip, this.transformAllContentsToWidgets(content, strip), 'done', calculateParentStatus, response);
5391
+ }
5303
5392
  }
5304
5393
  else {
5305
- this.processStrip(strip, this.transformAllContentsToWidgets(content, strip), 'done', calculateParentStatus, response);
5394
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
5395
+ this.emptyResponse.emit(true);
5306
5396
  }
5307
5397
  }
5308
- else {
5309
- this.processStrip(strip, [], 'error', calculateParentStatus, null);
5398
+ catch (error) {
5310
5399
  this.emptyResponse.emit(true);
5400
+ // Handle errors
5401
+ // console.error('Error:', error);
5311
5402
  }
5312
5403
  }
5313
- catch (error) {
5314
- this.emptyResponse.emit(true);
5315
- // Handle errors
5316
- // console.error('Error:', error);
5404
+ }
5405
+ });
5406
+ }
5407
+ /**
5408
+ * @param {?} strip
5409
+ * @param {?} tabIndex
5410
+ * @param {?} currentTab
5411
+ * @param {?} calculateParentStatus
5412
+ * @return {?}
5413
+ */
5414
+ getTabDataByNewReqPlaylistReadContent(strip, tabIndex, currentTab, calculateParentStatus) {
5415
+ return __awaiter(this, void 0, void 0, function* () {
5416
+ if (currentTab.request &&
5417
+ strip.request.playlistRead &&
5418
+ strip.request.playlistRead.type) {
5419
+ currentTab.request.apiUrl = this.getFullUrl(currentTab.request.apiUrl, currentTab.request.playlistRead.type);
5420
+ }
5421
+ try {
5422
+ /** @type {?} */
5423
+ const response = yield this.getRequestMethod(strip, currentTab.request.playlistRead, currentTab.request.apiUrl, calculateParentStatus);
5424
+ // if (response && response.results.result.content) {
5425
+ // let content = response.results.result.content
5426
+ // if(strip.key === 'providers'){
5427
+ // let featuredProviders : any = JSON.parse(content.featuredProviders|| '[]')
5428
+ // this.processStrip(
5429
+ // strip,
5430
+ // this.transformAllContentsToWidgets(featuredProviders, strip),
5431
+ // 'done',
5432
+ // calculateParentStatus,
5433
+ // response,
5434
+ // );
5435
+ // } else {
5436
+ // this.processStrip(
5437
+ // strip,
5438
+ // this.transformAllContentsToWidgets(content, strip),
5439
+ // 'done',
5440
+ // calculateParentStatus,
5441
+ // response,
5442
+ // );
5443
+ // }
5444
+ // } else {
5445
+ // this.processStrip(strip, [], 'error', calculateParentStatus, null);
5446
+ // this.emptyResponse.emit(true)
5447
+ // }
5448
+ if (response.results && response.results.result) {
5449
+ /** @type {?} */
5450
+ const widgets = this.transformContentsToWidgets(response.results.result.content, strip);
5451
+ /** @type {?} */
5452
+ let tabResults = [];
5453
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
5454
+ /** @type {?} */
5455
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
5456
+ if (allTabs && allTabs.length && allTabs[tabIndex]) {
5457
+ allTabs[tabIndex] = Object.assign({}, allTabs[tabIndex], { widgets, fetchTabStatus: 'done' });
5458
+ tabResults = allTabs;
5459
+ }
5460
+ }
5461
+ this.processStrip(strip, widgets, 'done', calculateParentStatus, response.viewMoreUrl, tabResults // tabResults as widgets
5462
+ );
5463
+ }
5464
+ else {
5465
+ /** @type {?} */
5466
+ let tabResults = [];
5467
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
5468
+ /** @type {?} */
5469
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
5470
+ if (allTabs && allTabs.length && allTabs[tabIndex]) {
5471
+ allTabs[tabIndex] = Object.assign({}, allTabs[tabIndex], { fetchTabStatus: 'done' });
5472
+ tabResults = allTabs;
5473
+ }
5474
+ }
5475
+ this.processStrip(strip, [], 'error', calculateParentStatus, null, tabResults);
5476
+ }
5477
+ }
5478
+ catch (error) {
5479
+ console.error('Error:', error);
5480
+ /** @type {?} */
5481
+ let tabResults = [];
5482
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs && this.stripsResultDataMap[strip.key].tabs.length) {
5483
+ /** @type {?} */
5484
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
5485
+ if (allTabs && allTabs.length && allTabs[tabIndex]) {
5486
+ allTabs[tabIndex] = Object.assign({}, allTabs[tabIndex], { fetchTabStatus: 'done' });
5487
+ tabResults = allTabs;
5488
+ }
5489
+ this.processStrip(strip, [], 'error', calculateParentStatus, null, tabResults);
5490
+ }
5491
+ else {
5492
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
5317
5493
  }
5318
5494
  }
5319
5495
  });
@@ -5372,8 +5548,8 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
5372
5548
  ContentStripWithTabsLibComponent.decorators = [
5373
5549
  { type: Component, args: [{
5374
5550
  selector: 'sb-uic-content-strip-with-tabs',
5375
- template: "<ng-container *ngIf=\"!contentAvailable; else otherTemplate\"></ng-container>\n<ng-template #otherTemplate>\n <!-- <div *ngIf=\"showParentLoader\" class=\"text-center my-2\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div> -->\n <ng-container *ngIf=\"showParentError\" [sbUiResolverWidget]=\"widgetData.errorWidget\"></ng-container>\n <ng-container *ngIf=\"showParentNoData\" [sbUiResolverWidget]=\"widgetData.noDataWidget\"></ng-container>\n <ng-container *ngFor=\"let key of stripsKeyOrder; let i = index; trackBy: identify\">\n <ng-container *ngIf=\"isStripShowing(stripsResultDataMap[key])\">\n <a name=\"{{stripsResultDataMap[key]?.stripTitle}}\" [class]=\"key\">\n <div *ngIf=\"stripsResultDataMap && (getLength(stripsResultDataMap[key]) ||\n stripsResultDataMap[key]?.showOnNoData ||\n stripsResultDataMap[key]?.showOnLoader ||\n stripsResultDataMap[key]?.showOnError)\n \" [ngClass]=\"\n !widgetData?.isChannelStrip ? 'xs:px-8 sx:px-10ss' : i > 0 ? 'mt-12' : ''\n \" [id]=\"key\" [ngClass]=\"!widgetData?.isChannelStrip ? margin-bottom-custom : margin-bottom-xs\">\n <div [ngClass]=\"{ pad: stripsResultDataMap[key]?.stripBackground }\"\n [ngStyle]=\"{ 'background-color': stripsResultDataMap[key]?.stripBackground }\">\n <div class=\"flex flex-col pl-4 pr-4 md:pr-0 md:pl-0 \" [ngClass]=\"\n !widgetData?.isChannelStrip\n ? ''\n : stripsResultDataMap[key]?.stripTitle\n ? 'mb-8'\n : ''\n \">\n <div class=\"flex flex-1 items-center\">\n <p class=\"mat-subheading-1 margin-remove inline-block \" *ngIf=\"stripsResultDataMap[key]?.stripTitle\">\n <span class=\"capitalize\" *ngIf=\"stripsResultDataMap[key]?.disableTranslate\">\n {{stripsResultDataMap[key]?.stripTitle}}\n </span>\n <span *ngIf=\"!stripsResultDataMap[key]?.disableTranslate\">\n {{ translateLabels(stripsResultDataMap[key]?.stripTitle, 'home') }}\n </span>\n </p>\n\n <button *ngIf=\"stripsResultDataMap[key]?.stripInfo?.icon\" type=\"button\" mat-icon-button\n (click)=\"toggleInfo(stripsResultDataMap[key])\" i18n-matTooltip matTooltip=\"info\"\n class=\"margin-left-xs\">\n <mat-icon>{{ stripsResultDataMap[key]?.stripInfo?.icon.icon }}</mat-icon>\n </button>\n <a *ngIf=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [routerLink]=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [queryParams]=\"stripsResultDataMap[key]?.stripTitleLink?.link?.queryParams\">\n <mat-icon class=\"ws-mat-primary-primary-text ws-mat-default-text\" [color]=\"'accent'\">{{\n stripsResultDataMap[key]?.stripTitleLink?.icon }}</mat-icon>\n </a>\n <span class=\"spacer\"></span>\n <!-- viewAll start-->\n <div *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key])\"\n class=\"ml-4 pl-2 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\" \n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0].viewMoreUrl.viewMoreText,'home') || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\" color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n <!-- viewAll end-->\n </div>\n <button mat-icon-button (click)=\"setHiddenForStrip(key)\" *ngIf=\"stripsResultDataMap[key]?.canHideStrip\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"stripsResultDataMap[key]?.mode === 'accordion' && isMobile\"\n (click)=\"showAccordionData = !showAccordionData\">{{ showAccordionData ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n\n <div class=\"mb-4\" *ngIf=\"checkVisible(stripsResultDataMap[key])\">\n <ng-container [sbUiResolverWidget]=\"getdata(stripsResultDataMap[key])\">\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnNoData\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.noDataWidget\"></ng-container>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnError\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.errorWidget\"></ng-container>\n <!-- IF no errors then proceed to show tabs or non tabs strip -->\n <ng-container *ngIf=\"!stripsResultDataMap[key]?.showOnNoData && !stripsResultDataMap[key]?.showOnError\">\n <ng-container *ngIf=\"stripsResultDataMap[key].tabs && stripsResultDataMap[key].tabs.length\">\n <mat-tab-group animationDuration=\"0ms\" [selectedIndex]=\"getSelectedIndex(stripsResultDataMap[key], key)\"\n class=\"mat-tab-labels w-full strips-tabgroup\" dynamicHeight\n (selectedTabChange)=\"tabClicked($event, stripsResultDataMap[key], key)\">\n <mat-tab label=\"{{tab?.label}}\" *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;\">\n <ng-template mat-tab-label>\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <span *ngIf=\"tab?.showTabDataCount && tab?.widgets?.length\">({{tab?.widgets?.length}})</span>\n </ng-template>\n <div>\n <!-- <ng-container [ngTemplateOutlet]=\"loader\" *ngIf=\"stripsResultDataMap[key]?.showOnLoader\">\n </ng-container> -->\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab.fetchTabStatus\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [id]=\"key+'-scroller'\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div *ngIf=\"((tab?.fetchTabStatus && tab?.fetchTabStatus === 'done') &&\n (!tab?.widgets || !tab?.widgets?.length))\">\n <ng-container *ngIf=\"tab?.value === 'inprogress'; else msgTemp\">\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.svg\">\n <div class=\"mat-subheading-1 text-center info-content\">{{ 'contentstripmultiple.getReadyForLearningAdventure' | translate }} -\n <a class=\"click-here\" [routerLink]=\"'/page/learn'\">{{ 'contentstripmultiple.clickHere' | translate }}</a> {{ 'contentstripmultiple.toEnrollNextCourse' | translate }}</div>\n </div>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.png\">\n <div class=\"mat-subheading-1 text-center\">{{ translateLabels(tab.nodataMsg, 'home') }}</div>\n </div>\n </ng-template>\n </div>\n <ng-container *ngIf=\"(tab?.fetchTabStatus === 'done' || tab?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.tabLoading\">\n\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [widgetsLength]=\"tab?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of tab?.widgets| slice:0:(tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </ng-container>\n </ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n <ng-container *ngIf=\"!stripsResultDataMap[key].tabs || !stripsResultDataMap[key].tabs.length\">\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader\" class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div class=\"\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\" [widgetsLength]=\"stripsResultDataMap[key]?.widgets?.length\" [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.widgets| slice:0:(stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <!-- <ng-container *ngIf=\"widget.widgetData.context.pageSection === 'continueLearning' \"> -->\n <!-- <ng-container *ngIf=\"widget.widgetData.content.completionPercentage !== 100\"\n [sbUiResolverWidget]=\"widget\"></ng-container> -->\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n <!-- </ng-container> -->\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>",
5376
- styles: [".view-more{display:flex;align-items:center;text-align:center;height:40px;justify-content:center}.view-more .icon{font-size:24px;width:24px;height:24px;border:1px solid;border-radius:50%;padding:8px;margin-bottom:8px}.margin-bottom-custom{margin-bottom:60px}.view-more:hover{background-color:#dcdfe5}::ng-deep.strips-tabgroup .mat-tab-header{border-bottom:2px solid rgba(0,0,0,.12)}::ng-deep.strips-tabgroup .mat-tab-body{padding:20px 0!important;box-sizing:border-box;overflow-y:initial!important}::ng-deep.strips-tabgroup .mat-tab-body-wrapper{overflow:inherit!important}::ng-deep.strips-tabgroup .mat-tab-label{border-bottom:0 solid rgba(0,0,0,.1);margin-right:0;opacity:1}::ng-deep.strips-tabgroup .mat-tab-label .mat-tab-label-content{text-transform:inherit;font:400 14px/20px Lato}::ng-deep.strips-tabgroup .mat-tab-label-active .mat-tab-label-content{font-weight:700!important}.click-here{color:#1b4ca1}.info-content{opacity:1;color:rgba(0,0,0,.87);font:700 14px/20px Lato-Bold;text-align:center}"]
5551
+ template: "<ng-container *ngIf=\"!contentAvailable; else otherTemplate\"></ng-container>\n<ng-template #otherTemplate>\n <!-- <div *ngIf=\"showParentLoader\" class=\"text-center my-2\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div> -->\n <ng-container *ngIf=\"showParentError\" [sbUiResolverWidget]=\"widgetData.errorWidget\"></ng-container>\n <ng-container *ngIf=\"showParentNoData\" [sbUiResolverWidget]=\"widgetData.noDataWidget\"></ng-container>\n <ng-container *ngFor=\"let key of stripsKeyOrder; let i = index; trackBy: identify\">\n <ng-container *ngIf=\"isStripShowing(stripsResultDataMap[key])\">\n <a name=\"{{stripsResultDataMap[key]?.stripTitle}}\" [class]=\"key\">\n <div *ngIf=\"stripsResultDataMap && (getLength(stripsResultDataMap[key]) ||\n stripsResultDataMap[key]?.showOnNoData ||\n stripsResultDataMap[key]?.showOnLoader ||\n stripsResultDataMap[key]?.showOnError)\n \" [ngClass]=\"\n !widgetData?.isChannelStrip ? 'xs:px-8 sx:px-10ss' : i > 0 ? 'mt-12' : ''\n \" [id]=\"key\" [ngClass]=\"!widgetData?.isChannelStrip ? margin-bottom-custom : margin-bottom-xs\">\n <div [ngClass]=\"{ pad: stripsResultDataMap[key]?.stripBackground }\"\n [ngStyle]=\"{ 'background-color': stripsResultDataMap[key]?.stripBackground }\">\n <div class=\"flex flex-col pl-4 pr-4 md:pr-0 md:pl-0 min-height-40 \" [ngClass]=\"\n !widgetData?.isChannelStrip\n ? ''\n : stripsResultDataMap[key]?.stripTitle\n ? 'mb-8'\n : ''\n \">\n <div class=\"flex flex-1 items-center\">\n <p class=\"mat-subheading-1 margin-remove inline-block \" *ngIf=\"stripsResultDataMap[key]?.stripTitle\">\n <span class=\"capitalize\" *ngIf=\"stripsResultDataMap[key]?.disableTranslate\">\n {{stripsResultDataMap[key]?.stripTitle}}\n </span>\n <span *ngIf=\"!stripsResultDataMap[key]?.disableTranslate\">\n {{ translateLabels(stripsResultDataMap[key]?.stripTitle, 'home') }}\n </span>\n </p>\n\n <button *ngIf=\"stripsResultDataMap[key]?.stripInfo?.icon\" type=\"button\" mat-icon-button\n (click)=\"toggleInfo(stripsResultDataMap[key])\" i18n-matTooltip matTooltip=\"info\"\n class=\"margin-left-xs\">\n <mat-icon>{{ stripsResultDataMap[key]?.stripInfo?.icon.icon }}</mat-icon>\n </button>\n <a *ngIf=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [routerLink]=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [queryParams]=\"stripsResultDataMap[key]?.stripTitleLink?.link?.queryParams\">\n <mat-icon class=\"ws-mat-primary-primary-text ws-mat-default-text\" [color]=\"'accent'\">{{\n stripsResultDataMap[key]?.stripTitleLink?.icon }}</mat-icon>\n </a>\n <span class=\"spacer\"></span>\n <!-- viewAll start-->\n <div *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key])\"\n class=\"ml-4 pl-2 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\" \n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0].viewMoreUrl.viewMoreText,'home') || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\" color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n <!-- viewAll end-->\n </div>\n <button mat-icon-button (click)=\"setHiddenForStrip(key)\" *ngIf=\"stripsResultDataMap[key]?.canHideStrip\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"stripsResultDataMap[key]?.mode === 'accordion' && isMobile\"\n (click)=\"showAccordionData = !showAccordionData\">{{ showAccordionData ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n\n <div class=\"mb-4\" *ngIf=\"checkVisible(stripsResultDataMap[key])\">\n <ng-container [sbUiResolverWidget]=\"getdata(stripsResultDataMap[key])\">\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnNoData\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.noDataWidget\"></ng-container>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnError\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.errorWidget\"></ng-container>\n <!-- IF no errors then proceed to show tabs or non tabs strip -->\n <ng-container *ngIf=\"!stripsResultDataMap[key]?.showOnNoData && !stripsResultDataMap[key]?.showOnError\">\n <ng-container *ngIf=\"stripsResultDataMap[key].tabs && stripsResultDataMap[key].tabs.length\">\n <mat-tab-group animationDuration=\"0ms\" [selectedIndex]=\"getSelectedIndex(stripsResultDataMap[key], key)\"\n class=\"mat-tab-labels w-full strips-tabgroup \" dynamicHeight\n [ngClass]=\"stripsResultDataMap[key]?.tabsType ? stripsResultDataMap[key]?.tabsType : ''\"\n (selectedTabChange)=\"tabClicked($event, stripsResultDataMap[key], key)\">\n <mat-tab label=\"{{tab?.label}}\" *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;\">\n <ng-template mat-tab-label>\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <span *ngIf=\"tab?.showTabDataCount && tab?.widgets?.length\">({{tab?.widgets?.length}})</span>\n </ng-template>\n <div>\n <!-- <ng-container [ngTemplateOutlet]=\"loader\" *ngIf=\"stripsResultDataMap[key]?.showOnLoader\">\n </ng-container> -->\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab.fetchTabStatus\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [id]=\"key+'-scroller'\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div *ngIf=\"((tab?.fetchTabStatus && tab?.fetchTabStatus === 'done') &&\n (!tab?.widgets || !tab?.widgets?.length))\">\n <ng-container *ngIf=\"tab?.value === 'inprogress'; else msgTemp\">\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.svg\">\n <div class=\"mat-subheading-1 text-center info-content\">{{ 'contentstripmultiple.getReadyForLearningAdventure' | translate }} -\n <a class=\"click-here\" [routerLink]=\"'/page/learn'\">{{ 'contentstripmultiple.clickHere' | translate }}</a> {{ 'contentstripmultiple.toEnrollNextCourse' | translate }}</div>\n </div>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.png\">\n <div class=\"mat-subheading-1 text-center\">{{ translateLabels(tab.nodataMsg, 'home') }}</div>\n </div>\n </ng-template>\n </div>\n <ng-container *ngIf=\"(tab?.fetchTabStatus === 'done' || tab?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.tabLoading\">\n\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [widgetsLength]=\"tab?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of tab?.widgets| slice:0:(tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </ng-container>\n </ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n <ng-container *ngIf=\"!stripsResultDataMap[key].tabs || !stripsResultDataMap[key].tabs.length\">\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader\" class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div class=\"\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\" [widgetsLength]=\"stripsResultDataMap[key]?.widgets?.length\" [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.widgets| slice:0:(stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <!-- <ng-container *ngIf=\"widget.widgetData.context.pageSection === 'continueLearning' \"> -->\n <!-- <ng-container *ngIf=\"widget.widgetData.content.completionPercentage !== 100\"\n [sbUiResolverWidget]=\"widget\"></ng-container> -->\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n <!-- </ng-container> -->\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>",
5552
+ styles: [".view-more{display:flex;align-items:center;text-align:center;height:40px;justify-content:center}.view-more .icon{font-size:24px;width:24px;height:24px;border:1px solid;border-radius:50%;padding:8px;margin-bottom:8px}.margin-bottom-custom{margin-bottom:60px}.view-more:hover{background-color:#dcdfe5}::ng-deep.strips-tabgroup .mat-tab-header{border-bottom:2px solid rgba(0,0,0,.12)}::ng-deep.strips-tabgroup .mat-tab-body{padding:20px 0!important;box-sizing:border-box;overflow-y:initial!important}::ng-deep.strips-tabgroup .mat-tab-body-wrapper{overflow:inherit!important}::ng-deep.strips-tabgroup .mat-tab-label{border-bottom:0 solid rgba(0,0,0,.1);margin-right:0;opacity:1}::ng-deep.strips-tabgroup .mat-tab-label .mat-tab-label-content{text-transform:inherit;font:400 14px/20px Lato}::ng-deep.strips-tabgroup .mat-tab-label-active .mat-tab-label-content{font-weight:700!important}.click-here{color:#1b4ca1}.info-content{opacity:1;color:rgba(0,0,0,.87);font:700 14px/20px Lato-Bold;text-align:center}::ng-deep .pills-tab .mat-tab-header{border-bottom:unset!important}::ng-deep .pills-tab .mat-tab-label{border:1px solid rgba(0,0,0,.2392156863)!important;padding:2px 8px;margin-right:8px!important;min-width:unset!important;border-radius:12px;height:unset!important}::ng-deep .pills-tab .mat-ink-bar{background-color:transparent!important;visibility:hidden!important}::ng-deep .pills-tab .mat-tab-label-active{color:#fff!important;background-color:#1b4ca1!important}::ng-deep .pills-tab .mat-tab-body{padding:0!important}.min-height-40{min-height:40px}"]
5377
5553
  }] }
5378
5554
  ];
5379
5555
  /** @nocollapse */
@@ -5990,7 +6166,8 @@ SlidersLibModule.decorators = [
5990
6166
  const API_END_POINTS$2 = {
5991
6167
  PROVIDER_INSIGHTS: `/apis/proxies/v8/microsite/read/insights`,
5992
6168
  TRAINING_DETAILS: `apis/proxies/v8/sunbirdigot/search`,
5993
- ANNOUNCEMENTS_DETAILS: `apis/proxies/v8/announcements/v1/search`
6169
+ ANNOUNCEMENTS_DETAILS: `apis/proxies/v8/announcements/v1/search`,
6170
+ LEARNERS: `apis/proxies/v8/halloffame/top/learners`
5994
6171
  };
5995
6172
  class InsiteDataService {
5996
6173
  /**
@@ -6020,6 +6197,12 @@ class InsiteDataService {
6020
6197
  fetchTrainingDetails(request) {
6021
6198
  return this.http.post(API_END_POINTS$2.TRAINING_DETAILS, request);
6022
6199
  }
6200
+ /**
6201
+ * @return {?}
6202
+ */
6203
+ fetchLearner() {
6204
+ return this.http.get(API_END_POINTS$2.LEARNERS);
6205
+ }
6023
6206
  }
6024
6207
  InsiteDataService.decorators = [
6025
6208
  { type: Injectable, args: [{
@@ -6126,12 +6309,33 @@ class DataPointsComponent {
6126
6309
  this.isDataLoading = false;
6127
6310
  }));
6128
6311
  }
6312
+ /**
6313
+ * @param {?} value
6314
+ * @return {?}
6315
+ */
6316
+ converToIndianSystem(value) {
6317
+ /** @type {?} */
6318
+ let numStr = value.toString();
6319
+ let [integerPart, decimalPart] = numStr.split('.');
6320
+ /** @type {?} */
6321
+ let lastThree = integerPart.slice(-3);
6322
+ /** @type {?} */
6323
+ let otherNumbers = integerPart.slice(0, -3);
6324
+ if (otherNumbers !== '') {
6325
+ lastThree = ',' + lastThree;
6326
+ }
6327
+ /** @type {?} */
6328
+ let formattedIntegerPart = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ',') + lastThree;
6329
+ /** @type {?} */
6330
+ const result = decimalPart ? `${formattedIntegerPart}.${decimalPart.substr(0, 2)}` : formattedIntegerPart;
6331
+ return result;
6332
+ }
6129
6333
  }
6130
6334
  DataPointsComponent.decorators = [
6131
6335
  { type: Component, args: [{
6132
6336
  selector: 'sb-uic-data-points',
6133
- template: "<div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && !isDataLoading\">\n <div *ngFor=\"let obj of objectData; let last = last\" class=\"\">\n <div class=\"element-div\" [ngClass]=\"{'linebreak': obj?.linebreak && !last}\">\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <img class=\"objIcon\" [src]=\"obj.icon\" [style.color]=\"obj?.iconColor\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{obj.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"objDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleRow' && !isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\" [style.background]=\"obj?.background\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"mobjIcon\" [src]=\"obj.icon\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{obj?.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"top-container\">\n <div class=\"flex-container\" *ngFor=\"let chunk of customArray\">\n <div *ngFor=\"let item of chunk\">\n <div class=\"flex-item\">\n <div class=\"flex flex-row gap-5 infra-element-div\">\n <div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\" *ngIf=\"!(item && item.value)\">0</div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\" *ngIf=\"(item && item.value)\">\n {{item?.value | number: item.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"item?.labelColor\" class=\"custom-opacity infra-objDescription padding-top-s\">{{item?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleFlexeRow' && !isDataLoading\">\n <div class=\"flex\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"singleFlexeRow-div flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"singleFlexeRowIcon\" [src]=\"obj.icon\">\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n {{obj?.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<!-- skeleton loaders -->\n\n<ng-container>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && isDataLoading\">\n <div *ngFor=\"let obj of [0,1,2,3]\" class=\"\">\n <div class=\"element-div linebreak\" >\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'150px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'singleFlexeRow' && isDataLoading\">\n <div class=\"flex\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"singleFlexeRow-div flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'20px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-full\" *ngIf=\"layoutType === 'singleRow' && isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\" [style.background]=\"obj?.background\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'20px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'18px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n",
6134
- styles: [".white{color:#fff}.custom-opacity{opacity:.7}.black{color:#000}.objIcon{width:32px;height:32px}.mobjIcon{width:24px;height:24px}.objHeader{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left}.mobjHeader{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.objDescription{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:left}.mobjDescription{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left}.metrics-web{height:inherit;overflow-y:auto}.element-div{padding:25px 0;margin:0 25px}.linebreak{border-bottom:1px solid rgba(0,0,0,.16)}.singleFlexeRow-div{padding:16px;border-radius:15px}.singleFlexeRowHeader{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:left}.singleFlexeRowDescription{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left}.singleFlexeRowIcon{width:24px;height:24px}.melement-div{padding:16px;border-radius:15px;width:249px}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-element-div{min-width:325px;padding:25px 0;align-items:baseline}.infra-objIcon{width:32px;height:32px}.infra-objHeader{font-family:Montserrat;font-size:36px;font-weight:600;line-height:29.26px;text-align:left}.infra-objDescription{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:left;width:230px;text-overflow:ellipsis;overflow:hidden}.flex-container{display:flex}.top-container{overflow-x:auto;width:100%}::-webkit-scrollbar{height:4px}::-webkit-scrollbar-track{border-radius:10px;background:#000}::-webkit-scrollbar-thumb{background:#cccc;border-radius:10px}.flex-item{flex:0 0 auto;white-space:nowrap;min-width:200px}@media screen and (max-width:768px){.infra-objIcon{width:24px;height:24px}.infra-objHeader{font-size:24px}.infra-element-div{min-width:250px;padding:15px 0 25px}}"]
6337
+ template: "<div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && !isDataLoading\">\n <div *ngFor=\"let obj of objectData; let last = last\" class=\"\">\n <div class=\"element-div\" [ngClass]=\"{'linebreak': obj?.linebreak && !last}\">\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <img class=\"objIcon\" [src]=\"obj.icon\" [style.color]=\"obj?.iconColor\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{obj.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"objDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'multipleRows-V2' && !isDataLoading\">\n <div *ngFor=\"let obj of objectData; let i = index\">\n <div class=\"flex flex-row gap-4 {{(i+1 === objectData.length ? '' : 'pb-5')}}\">\n <div class=\"v2-icons-div\">\n <div class=\"v2-icon-contaier\"\n [style.background]=\"obj?.iconBackgroupColorV2\"\n [style.borderColor]=\"obj?.valueColor\">\n <img class=\"v2-objIcon\" [src]=\"obj.icon\" />\n </div>\n </div>\n <div class=\"v2-content-div\">\n <div class=\"flex flex-col\">\n <div class=\"v2-value\" [style.color]=\"obj?.valueColorV2\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div class=\"v2-value\" [style.color]=\"obj?.valueColorV2\">\n {{obj.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div class=\"v2-label\" [style.color]=\"obj?.labelColorV2\">\n {{obj?.label}}\n </div>\n <div class=\"flex flex-row dot-container\" *ngIf=\"i+1 !== objectData.length\">\n <div class=\"v2-dot\"\n [style.background]=\"obj?.valueColorV2\"\n [style.borderColor]=\"obj?.labelColorV2\"></div>\n <div class=\"v2-border\" [style.background]=\"obj?.labelColorV2\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleRow-v2' && !isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div flex-item\" [style.background]=\"obj?.backgroundV2\" >\n <div class=\"flex flex-row gap-3\">\n <div class=\"mob-image-container-v2\">\n <img [style.color]=\"obj?.iconColor\" class=\"mobjIcon-v2\" [src]=\"obj.icon\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColorMobV2\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColorMobV2\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{converToIndianSystem(obj?.value)}}\n </div>\n <div [style.color]=\"obj?.labelColorV2\" class=\"mobjDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleRow' && !isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\" [style.background]=\"obj?.background\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"mobjIcon\" [src]=\"obj.icon\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{obj?.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"top-container\">\n <div class=\"flex-container\" *ngFor=\"let chunk of customArray\">\n <div *ngFor=\"let item of chunk\">\n <div class=\"flex-item\">\n <div class=\"flex flex-row gap-5 infra-element-div\">\n <div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\" *ngIf=\"!(item && item.value)\">0</div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\" *ngIf=\"(item && item.value)\">\n {{item?.value | number: item.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"item?.labelColor\" class=\"custom-opacity infra-objDescription padding-top-s\">{{item?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleFlexeRow' && !isDataLoading\">\n <div class=\"flex space-around\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"singleFlexeRow-div singleFlexeRow flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"singleFlexeRowIcon\" [src]=\"obj.icon\">\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n {{converToIndianSystem(obj?.value)}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<!-- skeleton loaders -->\n\n<ng-container>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows-V2' && isDataLoading\">\n <div *ngFor=\"let obj of [1,2,3,4]l let i = index\">\n <div class=\"flex flex-row gap-4 {{(i+1 === objectData.length ? '' : 'pb-5')}}\">\n <div class=\"v2-icons-div\">\n <div class=\"v2-icon-contaier\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'55px'\"\n [height]=\"'55px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"v2-content-div\">\n <div class=\"flex flex-col\">\n <div class=\"v2-value\" [style.color]=\"obj?.valueColor\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"v2-label\" [style.color]=\"obj?.labelColor\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div> \n </div>\n </div>\n</ng-container>\n\n<ng-container>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && isDataLoading\">\n <div *ngFor=\"let obj of [0,1,2,3]\" class=\"\">\n <div class=\"element-div linebreak\" >\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'150px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'singleFlexeRow' && isDataLoading\">\n <div class=\"flex\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"singleFlexeRow-div flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'20px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-full\" *ngIf=\"layoutType === 'singleRow' && isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\" [style.background]=\"obj?.background\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'20px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'18px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"w-full\" *ngIf=\"layoutType === 'singleRow-v2' && isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div flex-item\" [style.background]=\"obj?.backgroundV2\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'18px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n",
6338
+ styles: ["@font-face{font-family:Poppins;src:url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff2) format('woff2'),url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff) format('woff')}.mob-image-container-v2{height:28px;width:28px;background:#fff;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid #fff}.mobjIcon-v2{width:18px;height:18px}.v2-icon-contaier{height:50px;width:50px;border:1px solid #fff;border-radius:50%;align-items:center;display:flex;justify-content:center}.v2-value{font-family:Poppins;font-size:24px;font-weight:600;line-height:24px;text-align:left;padding-bottom:5px;padding-left:10px}.v2-label{font-family:Poppins;font-size:12px;font-weight:400;line-height:18px;text-align:left;padding-bottom:5px;padding-left:10px}.dot-container{align-items:center}.v2-dot{width:9px;height:9px;border:2px solid #fff;border-radius:50%}.v2-border{height:1px;width:182px}.white{color:#fff}.custom-opacity{opacity:.7}.black{color:#000}.objIcon{width:32px;height:32px}.mobjIcon{width:24px;height:24px}.objHeader{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left}.mobjHeader{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.objDescription{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:left}.mobjDescription{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left}.metrics-web{height:inherit;overflow-y:auto}.element-div{padding:25px 0;margin:0 25px}.linebreak{border-bottom:1px solid rgba(0,0,0,.16)}.singleFlexeRow-flex-item{flex:0 0 auto;white-space:nowrap}.singleFlexeRow-div{padding:16px;border-radius:15px}.singleFlexeRowHeader{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:left}.singleFlexeRowDescription{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left}.singleFlexeRowIcon{width:24px;height:24px}.melement-div{padding:16px;border-radius:15px;width:249px}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-element-div{min-width:325px;padding:25px 0;align-items:baseline}.infra-objIcon{width:32px;height:32px}.infra-objHeader{font-family:Montserrat;font-size:36px;font-weight:600;line-height:29.26px;text-align:left}.infra-objDescription{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:left;width:230px;text-overflow:ellipsis;overflow:hidden}.flex-container{display:flex}.top-container{overflow-x:auto;width:100%}::-webkit-scrollbar{height:4px}::-webkit-scrollbar-track{border-radius:10px;background:#000}::-webkit-scrollbar-thumb{background:#cccc;border-radius:10px}.flex-item{flex:0 0 auto;white-space:nowrap;min-width:200px}.space-around{justify-content:space-evenly}@media screen and (max-width:768px){.infra-objIcon{width:24px;height:24px}.infra-objHeader{font-size:24px}.infra-element-div{min-width:250px;padding:15px 0 25px}}"]
6135
6339
  }] }
6136
6340
  ];
6137
6341
  /** @nocollapse */
@@ -7431,6 +7635,8 @@ class AnnouncementsComponent {
7431
7635
  this.openDialog = new EventEmitter();
7432
7636
  this.isLoading = false;
7433
7637
  this.announcements = [];
7638
+ this.expand = false;
7639
+ this.expanded = false;
7434
7640
  }
7435
7641
  /**
7436
7642
  * @return {?}
@@ -7481,6 +7687,9 @@ class AnnouncementsComponent {
7481
7687
  });
7482
7688
  }));
7483
7689
  }
7690
+ if (this.announcements.length > 3) {
7691
+ this.expand = true;
7692
+ }
7484
7693
  this.objectData.list = this.announcements;
7485
7694
  this.isLoading = false;
7486
7695
  }), (/**
@@ -7508,12 +7717,18 @@ class AnnouncementsComponent {
7508
7717
  openAnnouncements() {
7509
7718
  this.openDialog.emit(true);
7510
7719
  }
7720
+ /**
7721
+ * @return {?}
7722
+ */
7723
+ showMoreOrLess() {
7724
+ this.expanded = !this.expanded;
7725
+ }
7511
7726
  }
7512
7727
  AnnouncementsComponent.decorators = [
7513
7728
  { type: Component, args: [{
7514
7729
  selector: 'sb-uic-announcements',
7515
- template: "<div class=\"w-full\" *ngIf=\"layoutType === 'web' && !isLoading\">\n <div class=\"flex item-center key-logo\">\n <img class=\"\" [src]=\"objectData?.logoUrl\">\n </div>\n <div class=\"flex item-center key-logo\">\n <div class=\"key-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n <div class=\"key-list-container\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <div class=\"{{mobileHeight ? 'mob-key-list' : 'key-list'}}\" *ngIf=\"objectData?.list?.length\">\n <div *ngFor=\"let item of objectData?.list; let i = index\">\n <div class=\"key-list-item mb-{{ objectData?.list?.length === (i+1) ? '' : '4'}}\" \n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"key-list-item-content {{item?.value?.length > 152 && !item?.expanded ? 'expand' : 'un-expand'}}\" [innerHTML]=\"item?.value\"></div>\n <div class=\"more-or-less\" *ngIf=\"item?.value?.length > 152\" [style.color]=\"objectData?.panelborder\">\n <div class=\"cursor-pointer\" (click)=\"viewMoreOrLess(item)\" *ngIf=\"!item?.expanded\">View more</div>\n <div class=\"cursor-pointer\" (click)=\"viewMoreOrLess(item)\" *ngIf=\"item?.expanded\">View less</div>\n </div>\n </div>\n </div> \n </div>\n <div class=\"{{mobileHeight ? 'mob-key-list' : 'key-list'}}\" *ngIf=\"!objectData?.list?.length\">\n <div class=\"text-center\">No announcements yet!</div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'mobile'\">\n <div class=\"flex item-center key-logo \">\n <div class=\"mob-key-heading\" (click)=\"openAnnouncements()\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n <div class=\"flex key-button gap-3\">\n <div>\n <img [src]=\"objectData?.mobileIcon\">\n </div>\n <div>{{objectData?.title}}</div> \n <div><mat-icon class=\"key-mob-icon\">arrow_forward_ios</mat-icon></div>\n </div> \n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'web' && isLoading\">\n <div class=\"flex item-center key-logo\">\n <img class=\"\" [src]=\"objectData?.logoUrl\">\n </div>\n <div class=\"flex item-center key-logo pt-1\">\n <div class=\"key-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n <div class=\"key-list-container\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <div class=\"{{mobileHeight ? 'mob-key-list' : 'key-list'}}\" > \n <div class=\"key-list-item mb-4\" \n *ngFor=\"let item of[0,1,2,3,4]; let i = index\"\n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"key-list-item-content un-expand\">\n <div class=\"py-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'350px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"py-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'350px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div> \n </div>\n</div>\n",
7516
- styles: [".key-logo{align-items:center;justify-content:center}.key-list-container{border:1px solid #ccc;padding:45px 15px 15px;border-radius:12px;margin-top:-20px}.key-list{height:600px;overflow:auto}.mob-key-list{height:calc(100vh - 252px);overflow:auto}.key-list::-webkit-scrollbar{display:none}.key-list-item{padding:16px;border:1px solid #ccc;border-radius:12px;min-height:56px}::ng-deep .key-list-item-content a{color:#1b4ca1!important}.key-list-item-content{font-family:Lato;font-size:14px;font-weight:400;line-height:20px;text-align:left;white-space:initial;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.expand{-webkit-line-clamp:3}.un-expand{-webkit-line-clamp:0}.more-or-less{font-family:Lato;font-size:14px;line-height:20px;font-weight:600}.mob-key-heading{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:7px 25px;border-radius:20px;animation:.9s infinite mobPaddingAnimation;cursor:pointer}.key-mob-icon{font-size:12px;width:12px;height:12px}.key-button{align-items:center;justify-content:center}.key-heading{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:10px 50px;border-radius:20px;margin-top:-3px;animation:.9s infinite paddingAnimation}@keyframes mobPaddingAnimation{0%,100%{padding:7px 25px}25%,75%{padding:7px 30px}50%{padding:7px 35px}}@keyframes paddingAnimation{0%,100%{padding:10px 50px}25%,75%{padding:10px 55px}50%{padding:10px 60px}}"]
7730
+ template: "<div class=\"w-full\" *ngIf=\"layoutType === 'web' && !isLoading\">\n <div class=\"flex item-center key-logo\">\n <img class=\"\" [src]=\"objectData?.logoUrl\">\n </div>\n <div class=\"flex item-center key-logo\">\n <div class=\"key-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n <div class=\"key-list-container\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <div class=\"{{mobileHeight ? 'mob-key-list' : expand && expanded ? 'exp-key-list' : 'key-list'}}\" *ngIf=\"objectData?.list?.length\">\n <div *ngFor=\"let item of objectData?.list; let i = index\">\n <div class=\"key-list-item mb-{{ objectData?.list?.length === (i+1) ? '' : '4'}}\" \n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"key-list-item-content {{item?.value?.length > 152 && !item?.expanded ? 'expand' : 'un-expand'}}\" [innerHTML]=\"item?.value\"></div>\n <div class=\"more-or-less\" *ngIf=\"item?.value?.length > 152\" [style.color]=\"objectData?.panelborder\">\n <div class=\"cursor-pointer\" (click)=\"viewMoreOrLess(item)\" *ngIf=\"!item?.expanded\">View more</div>\n <div class=\"cursor-pointer\" (click)=\"viewMoreOrLess(item)\" *ngIf=\"item?.expanded\">View less</div>\n </div>\n </div>\n </div> \n </div>\n <div class=\"{{mobileHeight ? 'mob-key-list' : 'key-list'}}\" *ngIf=\"!objectData?.list?.length\">\n <div class=\"text-center\">No announcements yet!</div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!mobileHeight && expand\">\n <div (click)=\"showMoreOrLess()\" class=\"announcements-expand\" *ngIf=\"!expanded\">\n <mat-icon>expand_more</mat-icon>\n </div>\n <div (click)=\"showMoreOrLess()\" class=\"announcements-expand\" *ngIf=\"expanded\">\n <mat-icon>expand_less</mat-icon>\n </div>\n</ng-container>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'mobile'\">\n <div class=\"flex item-center key-logo \">\n <div class=\"mob-key-heading\" (click)=\"openAnnouncements()\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n <div class=\"flex key-button gap-3\">\n <div>\n <img [src]=\"objectData?.mobileIcon\">\n </div>\n <div>{{objectData?.title}}</div> \n <div><mat-icon class=\"key-mob-icon\">arrow_forward_ios</mat-icon></div>\n </div> \n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'web' && isLoading\">\n <div class=\"flex item-center key-logo\">\n <img class=\"\" [src]=\"objectData?.logoUrl\">\n </div>\n <div class=\"flex item-center key-logo pt-1\">\n <div class=\"key-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n <div class=\"key-list-container\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <div class=\"{{mobileHeight ? 'mob-key-list' : 'key-list'}}\" > \n <div class=\"key-list-item mb-4\" \n *ngFor=\"let item of[0,1,2,3,4]; let i = index\"\n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"key-list-item-content un-expand\">\n <div class=\"py-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'350px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"py-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'350px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div> \n </div>\n</div>\n",
7731
+ styles: [".key-logo{align-items:center;justify-content:center}.key-list-container{border:1px solid #ccc;padding:45px 15px 15px;border-radius:12px;margin-top:-20px}.key-list{height:325px;overflow:auto}.exp-key-list{height:100%;overflow:auto}.mob-key-list{height:calc(100vh - 252px);overflow:auto}.key-list::-webkit-scrollbar{display:none}.key-list-item{padding:16px;border:1px solid #ccc;border-radius:12px;min-height:56px}::ng-deep .key-list-item-content a{color:#1b4ca1!important}.key-list-item-content{font-family:Lato;font-size:14px;font-weight:400;line-height:20px;text-align:left;white-space:initial;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.expand{-webkit-line-clamp:3}.un-expand{-webkit-line-clamp:0}.more-or-less{font-family:Lato;font-size:14px;line-height:20px;font-weight:600}.mob-key-heading{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:7px 25px;border-radius:20px;animation:.9s infinite mobPaddingAnimation;cursor:pointer}.key-mob-icon{font-size:12px;width:12px;height:12px}.key-button{align-items:center;justify-content:center}.key-heading{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:10px 50px;border-radius:20px;margin-top:-3px;animation:.9s infinite paddingAnimation}.announcements-expand{width:32px;height:32px;position:relative;background:#000;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;left:50%;right:50%;top:-16px;cursor:pointer}@keyframes mobPaddingAnimation{0%,100%{padding:7px 25px}25%,75%{padding:7px 30px}50%{padding:7px 35px}}@keyframes paddingAnimation{0%,100%{padding:10px 50px}25%,75%{padding:10px 55px}50%{padding:10px 60px}}"]
7517
7732
  }] }
7518
7733
  ];
7519
7734
  /** @nocollapse */
@@ -7546,6 +7761,10 @@ if (false) {
7546
7761
  /** @type {?} */
7547
7762
  AnnouncementsComponent.prototype.announcements;
7548
7763
  /** @type {?} */
7764
+ AnnouncementsComponent.prototype.expand;
7765
+ /** @type {?} */
7766
+ AnnouncementsComponent.prototype.expanded;
7767
+ /** @type {?} */
7549
7768
  AnnouncementsComponent.prototype.insightSvc;
7550
7769
  }
7551
7770
 
@@ -7567,75 +7786,728 @@ AnnouncementsModule.decorators = [
7567
7786
  },] }
7568
7787
  ];
7569
7788
 
7570
- /**
7571
- * @fileoverview added by tsickle
7572
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7573
- */
7574
- class ConsumptionModule {
7575
- }
7576
- ConsumptionModule.decorators = [
7577
- { type: NgModule, args: [{
7578
- declarations: [ConsumptionComponent],
7579
- imports: [
7580
- ContentStripWithTabsLibModule,
7581
- SlidersLibModule
7582
- ],
7583
- exports: [ConsumptionComponent,
7584
- ContentStripWithTabsLibModule,
7585
- SlidersLibModule,
7586
- DataPointsModule,
7587
- CalenderModule,
7588
- CommonStripModule,
7589
- AnnouncementsModule
7590
- ],
7591
- },] }
7592
- ];
7593
-
7594
7789
  /**
7595
7790
  * @fileoverview added by tsickle
7596
7791
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7597
7792
  */
7598
7793
  /** @type {?} */
7599
- const ROOT_WIDGET_CONFIG = {
7600
- card: {
7601
- _type: 'cardLib',
7602
- cardResource: 'cardContentLib'
7603
- },
7604
- };
7605
-
7606
- /**
7607
- * @fileoverview added by tsickle
7608
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7609
- */
7610
- var NsCardContent$1;
7611
- (function (NsCardContent) {
7794
+ const moment$1 = moment$2;
7795
+ class TopLearnersComponent {
7612
7796
  /**
7613
- * @record
7797
+ * @param {?} insightSvc
7614
7798
  */
7615
- function ICard() { }
7616
- NsCardContent.ICard = ICard;
7617
- if (false) {
7618
- /** @type {?} */
7619
- ICard.prototype.content;
7620
- /** @type {?} */
7621
- ICard.prototype.cardSubType;
7622
- /** @type {?} */
7623
- ICard.prototype.context;
7624
- /** @type {?|undefined} */
7625
- ICard.prototype.intranetMode;
7626
- /** @type {?|undefined} */
7627
- ICard.prototype.deletedMode;
7628
- /** @type {?|undefined} */
7629
- ICard.prototype.likes;
7630
- /** @type {?|undefined} */
7631
- ICard.prototype.contentTags;
7632
- /** @type {?} */
7633
- ICard.prototype.stateData;
7634
- /** @type {?|undefined} */
7635
- ICard.prototype.cardCustomeClass;
7799
+ constructor(insightSvc) {
7800
+ this.insightSvc = insightSvc;
7801
+ this.loading = false;
7802
+ this.month = '';
7803
+ this.results = [];
7804
+ this.colors = [
7805
+ '#EB7181',
7806
+ '#306933',
7807
+ '#000000',
7808
+ '#3670B2',
7809
+ '#4E9E87',
7810
+ '#7E4C8D',
7811
+ '#EB7181',
7812
+ '#306933',
7813
+ '#000000',
7814
+ '#3670B2',
7815
+ ];
7636
7816
  }
7637
7817
  /**
7638
- * @record
7818
+ * @return {?}
7819
+ */
7820
+ ngOnInit() {
7821
+ this.getData();
7822
+ this.month = new Date().toLocaleString('default', { month: 'long' });
7823
+ }
7824
+ /**
7825
+ * @return {?}
7826
+ */
7827
+ getData() {
7828
+ this.loading = true;
7829
+ this.insightSvc.fetchLearner().subscribe((/**
7830
+ * @param {?} res
7831
+ * @return {?}
7832
+ */
7833
+ (res) => {
7834
+ if (res && res.result && res.result.result) {
7835
+ this.results = res.result.result;
7836
+ this.month = moment$1().month(Number(res.result.result[0].month) - 1).format('MMMM');
7837
+ }
7838
+ this.loading = false;
7839
+ }), (/**
7840
+ * @param {?} _error
7841
+ * @return {?}
7842
+ */
7843
+ (_error) => {
7844
+ // tslint:disable-next-line: align
7845
+ this.loading = false;
7846
+ }));
7847
+ }
7848
+ /**
7849
+ * @param {?} rank
7850
+ * @return {?}
7851
+ */
7852
+ getRank(rank) {
7853
+ if (rank === 1) {
7854
+ return "1st";
7855
+ }
7856
+ if (rank === 2) {
7857
+ return "2nd";
7858
+ }
7859
+ if (rank === 3) {
7860
+ return "3rd";
7861
+ }
7862
+ else {
7863
+ return `${rank}th`;
7864
+ }
7865
+ }
7866
+ /**
7867
+ * @return {?}
7868
+ */
7869
+ getColor() {
7870
+ /** @type {?} */
7871
+ let circleColor = '';
7872
+ /** @type {?} */
7873
+ const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));
7874
+ circleColor = this.colors[randomIndex];
7875
+ return circleColor;
7876
+ }
7877
+ /**
7878
+ * @param {?} name
7879
+ * @return {?}
7880
+ */
7881
+ createInititals(name) {
7882
+ /** @type {?} */
7883
+ let initials = '';
7884
+ /** @type {?} */
7885
+ const array = name.toString().split(' ');
7886
+ if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {
7887
+ initials += array[0].charAt(0);
7888
+ initials += array[1].charAt(0);
7889
+ }
7890
+ else {
7891
+ for (let i = 0; i < name.length; i += 1) {
7892
+ if (name.charAt(i) === ' ') {
7893
+ continue;
7894
+ }
7895
+ if (name.charAt(i) === name.charAt(i)) {
7896
+ initials += name.charAt(i);
7897
+ if (initials.length === 2) {
7898
+ break;
7899
+ }
7900
+ }
7901
+ }
7902
+ }
7903
+ return initials.toUpperCase();
7904
+ }
7905
+ }
7906
+ TopLearnersComponent.decorators = [
7907
+ { type: Component, args: [{
7908
+ selector: 'sb-uic-top-learners',
7909
+ template: "<div class=\"flex flex-center\">\n <div>\n <div class=\"title-border\"></div>\n <div class=\"title\" [style.color]=\"objectData?.titleFontColor\">{{objectData?.title}} ({{month}})</div>\n <div class=\"title-border\"></div>\n </div> \n</div>\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of results; let i=index\" class=\"flex-container\">\n <div class=\"flex-item user-box\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\" *ngIf=\"obj?.profile_image\">\n <img [src]=\"obj?.profile_image\" class=\"user-image\"/>\n </div>\n <div class=\"initial\" *ngIf=\"!obj?.profile_image\"\n [style.backgroundColor]=\"colors[i]\">\n {{createInititals(obj?.fullname)}}\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\">{{obj?.fullname}}</div>\n <div class=\"designation-sec\">{{obj?.designation}}</div>\n <div class=\"designation-sec\">{{channnelName}}</div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">{{getRank(+obj?.rank)}}</div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\"><img [src]=\"objectData?.kpIcon\" class=\"kp-image\"/></div>\n <div class=\"points\">{{obj?.total_points || 0}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length === 0\">\n <div class=\"margin-top-l noData\">\n No data\n </div>\n</div>\n\n<ng-container>\n <div class=\"top-learners-container\" *ngIf=\"loading\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of [1,2,3]\" class=\"flex-container\">\n <div class=\"flex-item user-box\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"points\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>",
7910
+ styles: [".title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:15px}.title-border{margin:10px;width:240px;height:3px;background:linear-gradient(90deg,rgba(255,255,255,0) 0,#ef951e 20%,#ef951e 80%,rgba(255,255,255,0) 100%)}.noData{border:1px solid #1b4ca1;padding:15px;display:flex;justify-content:center;border-radius:12px}.top-learners-container{overflow:auto}::-webkit-scrollbar{height:10px!important}::-webkit-scrollbar-track{background:#eff3f9!important}.user-box{width:360px;height:134px;border-radius:8px;background-color:#fff;padding:16px;position:relative}.flex-container{display:flex}.flex-item{flex:0 0 auto;white-space:nowrap}.img-name-sec{justify-content:space-between}.initial{width:44px;height:44px;border-radius:50%;align-items:center;display:flex;justify-content:center;font-weight:700;color:#fff}.user-image{width:44px;height:44px;border-radius:50%}.name-sec{font-family:Lato;font-size:16px;font-weight:700;line-height:19.2px;text-align:left;width:200px!important;overflow:hidden;text-overflow:ellipsis}.designation-sec{font-family:Lato;font-size:12px;font-weight:400;line-height:14.4px;text-align:left;opacity:.6;width:200px!important;overflow:hidden;text-overflow:ellipsis}.rank-sec{font-family:Montserrat;font-size:36px;font-weight:700;line-height:43.88px;text-align:left;color:#ef951e}.kp-section{justify-content:flex-end;position:absolute;right:18px;bottom:16px;align-items:center}.kp-image{width:32px;height:32px;padding-top:3px}.points{font-family:Lato;font-size:24px;font-weight:700;line-height:28.8px;text-align:left;color:#1b4ca1;padding-bottom:3px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:rgba(204,204,204,.8);border-radius:10px}@media screen and (max-width:768px){.user-box{width:343px}}"]
7911
+ }] }
7912
+ ];
7913
+ /** @nocollapse */
7914
+ TopLearnersComponent.ctorParameters = () => [
7915
+ { type: InsiteDataService }
7916
+ ];
7917
+ TopLearnersComponent.propDecorators = {
7918
+ objectData: [{ type: Input }],
7919
+ channelId: [{ type: Input }],
7920
+ channnelName: [{ type: Input }]
7921
+ };
7922
+ if (false) {
7923
+ /** @type {?} */
7924
+ TopLearnersComponent.prototype.objectData;
7925
+ /** @type {?} */
7926
+ TopLearnersComponent.prototype.channelId;
7927
+ /** @type {?} */
7928
+ TopLearnersComponent.prototype.channnelName;
7929
+ /** @type {?} */
7930
+ TopLearnersComponent.prototype.loading;
7931
+ /** @type {?} */
7932
+ TopLearnersComponent.prototype.month;
7933
+ /** @type {?} */
7934
+ TopLearnersComponent.prototype.results;
7935
+ /** @type {?} */
7936
+ TopLearnersComponent.prototype.colors;
7937
+ /** @type {?} */
7938
+ TopLearnersComponent.prototype.insightSvc;
7939
+ }
7940
+
7941
+ /**
7942
+ * @fileoverview added by tsickle
7943
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7944
+ */
7945
+ class TopLearnersModule {
7946
+ }
7947
+ TopLearnersModule.decorators = [
7948
+ { type: NgModule, args: [{
7949
+ declarations: [TopLearnersComponent],
7950
+ imports: [
7951
+ CommonModule,
7952
+ SkeletonLoaderLibModule
7953
+ ],
7954
+ exports: [TopLearnersComponent],
7955
+ },] }
7956
+ ];
7957
+
7958
+ /**
7959
+ * @fileoverview added by tsickle
7960
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7961
+ */
7962
+ class ScrollableItemDirective {
7963
+ /**
7964
+ * @param {?} el
7965
+ */
7966
+ constructor(el) {
7967
+ this.el = el;
7968
+ }
7969
+ /**
7970
+ * @param {?} blockValue
7971
+ * @return {?}
7972
+ */
7973
+ scrollIntoView(blockValue) {
7974
+ this.el.nativeElement.scrollIntoView({ behavior: 'smooth', block: blockValue });
7975
+ }
7976
+ }
7977
+ ScrollableItemDirective.decorators = [
7978
+ { type: Directive, args: [{
7979
+ selector: '[sbUicScrollableItem]'
7980
+ },] }
7981
+ ];
7982
+ /** @nocollapse */
7983
+ ScrollableItemDirective.ctorParameters = () => [
7984
+ { type: ElementRef }
7985
+ ];
7986
+ ScrollableItemDirective.propDecorators = {
7987
+ key: [{ type: Input, args: ['sbUicScrollableItem',] }]
7988
+ };
7989
+ if (false) {
7990
+ /** @type {?} */
7991
+ ScrollableItemDirective.prototype.key;
7992
+ /**
7993
+ * @type {?}
7994
+ * @private
7995
+ */
7996
+ ScrollableItemDirective.prototype.el;
7997
+ }
7998
+
7999
+ /**
8000
+ * @fileoverview added by tsickle
8001
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8002
+ */
8003
+ class CbpPlanComponent {
8004
+ /**
8005
+ * @param {?} translate
8006
+ * @param {?} langtranslations
8007
+ */
8008
+ constructor(translate, langtranslations) {
8009
+ this.translate = translate;
8010
+ this.langtranslations = langtranslations;
8011
+ this.mobileHeight = false;
8012
+ this.fetchDataFromApi = false;
8013
+ this.openDialog = new EventEmitter();
8014
+ this.isLoading = false;
8015
+ this.currentIndex = 0;
8016
+ this.styleData = {};
8017
+ this.contentdata = [];
8018
+ }
8019
+ /**
8020
+ * @return {?}
8021
+ */
8022
+ ngOnInit() {
8023
+ this.styleData = this.objectData && this.objectData.sliderData && this.objectData.sliderData.styleData;
8024
+ if (this.objectData && this.objectData.list) {
8025
+ this.objectData.list.forEach((/**
8026
+ * @param {?} contentEle
8027
+ * @return {?}
8028
+ */
8029
+ (contentEle) => {
8030
+ /** @type {?} */
8031
+ let localData = {};
8032
+ localData['title'] = contentEle.title;
8033
+ localData['downloaUrl'] = contentEle.downloaUrl;
8034
+ localData['cardSubType'] = "card-wide-lib";
8035
+ localData['cardCustomeClass'] = "";
8036
+ this.contentdata.push(localData);
8037
+ }));
8038
+ }
8039
+ }
8040
+ /**
8041
+ * @param {?} indexValue
8042
+ * @return {?}
8043
+ */
8044
+ getCurrentIndex(indexValue) {
8045
+ this.currentIndex = indexValue;
8046
+ }
8047
+ /**
8048
+ * @param {?} item
8049
+ * @return {?}
8050
+ */
8051
+ getFileName(item) {
8052
+ console.log(item.downloadUrl);
8053
+ return item.downloadUrl.split("/").at(-1);
8054
+ }
8055
+ /**
8056
+ * @param {?} label
8057
+ * @param {?} type
8058
+ * @return {?}
8059
+ */
8060
+ translateLabels(label, type) {
8061
+ return this.langtranslations.translateActualLabel(label, type, '');
8062
+ }
8063
+ /**
8064
+ * @param {?} item
8065
+ * @return {?}
8066
+ */
8067
+ downloadCBPPlan(item) {
8068
+ /** @type {?} */
8069
+ const downloadUrl = item.downloaUrl;
8070
+ /** @type {?} */
8071
+ const xhr = new XMLHttpRequest();
8072
+ xhr.open('GET', downloadUrl, true);
8073
+ xhr.responseType = 'blob';
8074
+ xhr.onload = (/**
8075
+ * @return {?}
8076
+ */
8077
+ function () {
8078
+ if (xhr.status === 200) {
8079
+ /** @type {?} */
8080
+ const blob = new Blob([xhr.response], { type: 'application/pdf' });
8081
+ /** @type {?} */
8082
+ const url = window.URL.createObjectURL(blob);
8083
+ /** @type {?} */
8084
+ const a = document.createElement('a');
8085
+ a.href = url;
8086
+ a.download = downloadUrl.split("/").at(-1);
8087
+ document.body.appendChild(a);
8088
+ a.click();
8089
+ document.body.removeChild(a);
8090
+ window.URL.revokeObjectURL(url);
8091
+ }
8092
+ else {
8093
+ console.error('Error downloading the PDF', xhr.statusText);
8094
+ }
8095
+ });
8096
+ xhr.onerror = (/**
8097
+ * @return {?}
8098
+ */
8099
+ function () {
8100
+ console.error('Network error');
8101
+ });
8102
+ xhr.send();
8103
+ }
8104
+ }
8105
+ CbpPlanComponent.decorators = [
8106
+ { type: Component, args: [{
8107
+ selector: 'sb-uic-cbp-plan',
8108
+ template: "<div class=\"w-full\">\n <div class=\"flex item-center cbp-logo\">\n <div class=\"cbp-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n \n <div class=\"cbp-list-container\" *ngIf=\"contentdata.length\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <ng-container *ngIf=\"contentdata.length; else msgTemp\">\n <sb-uic-sliders-ng-content\n [title]=\"'providerName'\"\n [currentIndex]=\"currentIndex\"\n (currentIndexValue)=\"getCurrentIndex($event)\"\n [loadNgContentData]=\"true\" [widgetData]=\"contentdata\"\n [styleData]=\"styleData\">\n <div sliderbody>\n <div *ngFor=\"let item of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"cbp-list-item\"\n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.color]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"cbp-item-title\">{{item?.title}}</div>\n <div class=\"flex download-sec\">\n <div class=\"flex gap-3 cbp-download\" (click)=\"downloadCBPPlan(item)\">\n <img [src]=\"objectData?.downloadIcon\">Download\n </div>\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"padding-bottom-m\">\n {{ translateLabels(objectData?.noData, 'home') }}\n </div>\n </ng-template>\n </div>\n</div>",
8109
+ styles: [".cbp-logo{align-items:center;justify-content:center}.cbp-heading{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:10px 50px;border-radius:20px;margin-top:-3px}.cbp-list-container{border:1px solid #ccc;padding:40px 25px 0;border-radius:12px;margin-top:-20px}.cbp-list-item{padding:16px;border:1px solid #ccc;border-radius:12px}.cbp-item-title{font-family:Lato;font-size:14px;font-weight:400;line-height:20px;text-align:left;height:48px;padding-bottom:10px}.cbp-mob-icon{font-size:20px;width:20px;height:20px}.download-sec{align-items:center;justify-content:end}.cbp-download{display:flex;align-items:center;gap:4px;background:#fff;padding:6px 8px;border-radius:20px;cursor:pointer;font-family:Lato;font-size:12px;font-weight:700;line-height:20px;text-align:left}[hidden]{display:none!important}.cbp-list-container ::ng-deep.cbp-card{min-height:115px!important;padding-bottom:30px!important}.cbp-list-container ::ng-deep.banner-title{display:none}.cbp-list-container ::ng-deep.prev{font-size:10px;height:20px!important;width:20px!important;margin-left:-11px}.cbp-list-container ::ng-deep.next{font-size:10px;height:20px!important;width:20px!important;margin-right:-11px}"]
8110
+ }] }
8111
+ ];
8112
+ /** @nocollapse */
8113
+ CbpPlanComponent.ctorParameters = () => [
8114
+ { type: TranslateService },
8115
+ { type: MultilingualTranslationsService }
8116
+ ];
8117
+ CbpPlanComponent.propDecorators = {
8118
+ objectData: [{ type: Input }],
8119
+ layoutType: [{ type: Input }],
8120
+ mobileHeight: [{ type: Input }],
8121
+ fetchDataFromApi: [{ type: Input }],
8122
+ channelId: [{ type: Input }],
8123
+ openDialog: [{ type: Output }],
8124
+ scrollableItems: [{ type: ViewChildren, args: [ScrollableItemDirective,] }]
8125
+ };
8126
+ if (false) {
8127
+ /** @type {?} */
8128
+ CbpPlanComponent.prototype.objectData;
8129
+ /** @type {?} */
8130
+ CbpPlanComponent.prototype.layoutType;
8131
+ /** @type {?} */
8132
+ CbpPlanComponent.prototype.mobileHeight;
8133
+ /** @type {?} */
8134
+ CbpPlanComponent.prototype.fetchDataFromApi;
8135
+ /** @type {?} */
8136
+ CbpPlanComponent.prototype.channelId;
8137
+ /** @type {?} */
8138
+ CbpPlanComponent.prototype.openDialog;
8139
+ /** @type {?} */
8140
+ CbpPlanComponent.prototype.isLoading;
8141
+ /** @type {?} */
8142
+ CbpPlanComponent.prototype.currentIndex;
8143
+ /** @type {?} */
8144
+ CbpPlanComponent.prototype.styleData;
8145
+ /** @type {?} */
8146
+ CbpPlanComponent.prototype.contentdata;
8147
+ /** @type {?} */
8148
+ CbpPlanComponent.prototype.scrollableItems;
8149
+ /**
8150
+ * @type {?}
8151
+ * @private
8152
+ */
8153
+ CbpPlanComponent.prototype.translate;
8154
+ /**
8155
+ * @type {?}
8156
+ * @private
8157
+ */
8158
+ CbpPlanComponent.prototype.langtranslations;
8159
+ }
8160
+
8161
+ /**
8162
+ * @fileoverview added by tsickle
8163
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8164
+ */
8165
+ class SlidersNgContentLibComponent extends WidgetBaseComponent {
8166
+ /**
8167
+ * @param {?} events
8168
+ * @param {?} valueSvc
8169
+ */
8170
+ constructor(events, valueSvc) {
8171
+ super();
8172
+ this.events = events;
8173
+ this.valueSvc = valueSvc;
8174
+ this.title = '';
8175
+ this.loadNgContentData = false;
8176
+ this.autoScroll = false;
8177
+ this.currentIndexValue = new EventEmitter();
8178
+ this.id = `banner_${Math.random()}`;
8179
+ this.defaultMenuSubscribe = null;
8180
+ this.isLtMedium$ = this.valueSvc.isLtMedium$;
8181
+ this.currentIndex = 0;
8182
+ this.slideInterval = null;
8183
+ this.isMobile = false;
8184
+ }
8185
+ /**
8186
+ * @return {?}
8187
+ */
8188
+ ngOnInit() {
8189
+ if (this.autoScroll) {
8190
+ this.reInitiateSlideInterval();
8191
+ }
8192
+ this.defaultMenuSubscribe = this.isLtMedium$.subscribe((/**
8193
+ * @param {?} isLtMedium
8194
+ * @return {?}
8195
+ */
8196
+ (isLtMedium) => {
8197
+ this.isMobile = isLtMedium;
8198
+ }));
8199
+ }
8200
+ /**
8201
+ * @return {?}
8202
+ */
8203
+ reInitiateSlideInterval() {
8204
+ if (this.widgetData && this.widgetData.length > 1) {
8205
+ try {
8206
+ if (this.slideInterval) {
8207
+ this.slideInterval.unsubscribe();
8208
+ }
8209
+ }
8210
+ catch (e) {
8211
+ }
8212
+ finally {
8213
+ this.slideInterval = interval(8000).subscribe((/**
8214
+ * @return {?}
8215
+ */
8216
+ () => {
8217
+ if (this.currentIndex === this.widgetData.length - 1) {
8218
+ this.currentIndex = 0;
8219
+ this.currentIndexValue.emit(this.currentIndex);
8220
+ }
8221
+ else {
8222
+ this.currentIndex += 1;
8223
+ this.currentIndexValue.emit(this.currentIndex);
8224
+ }
8225
+ }));
8226
+ }
8227
+ }
8228
+ }
8229
+ /**
8230
+ * @param {?} index
8231
+ * @return {?}
8232
+ */
8233
+ slideTo(index) {
8234
+ if (index >= 0 && index < this.widgetData.length) {
8235
+ this.currentIndex = index;
8236
+ this.currentIndexValue.emit(this.currentIndex);
8237
+ }
8238
+ else if (index === this.widgetData.length) {
8239
+ this.currentIndex = 0;
8240
+ this.currentIndexValue.emit(this.currentIndex);
8241
+ }
8242
+ else {
8243
+ this.currentIndex = this.widgetData.length + index;
8244
+ this.currentIndexValue.emit(this.currentIndex);
8245
+ }
8246
+ if (this.autoScroll) {
8247
+ this.reInitiateSlideInterval();
8248
+ }
8249
+ }
8250
+ /**
8251
+ * @return {?}
8252
+ */
8253
+ get isOpenInNewTab() {
8254
+ /** @type {?} */
8255
+ const currentData = this.widgetData[this.currentIndex];
8256
+ if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
8257
+ return true;
8258
+ }
8259
+ return false;
8260
+ }
8261
+ /**
8262
+ * @return {?}
8263
+ */
8264
+ openInNewTab() {
8265
+ /** @type {?} */
8266
+ const currentData = this.widgetData[this.currentIndex];
8267
+ if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
8268
+ window.open(currentData.redirectUrl);
8269
+ }
8270
+ }
8271
+ /**
8272
+ * @param {?} bannerUrl
8273
+ * @return {?}
8274
+ */
8275
+ raiseTelemetry(bannerUrl) {
8276
+ this.openInNewTab();
8277
+ /** @type {?} */
8278
+ const path = window.location.pathname.replace('/', '');
8279
+ /** @type {?} */
8280
+ const url = path + window.location.search;
8281
+ this.events.raiseInteractTelemetry({
8282
+ type: 'click',
8283
+ subType: 'banner',
8284
+ }, {
8285
+ pageUrl: url,
8286
+ bannerRedirectUrl: bannerUrl,
8287
+ }, {
8288
+ pageIdExt: 'banner',
8289
+ module: WsEvents.EnumTelemetrymodules.CONTENT,
8290
+ });
8291
+ }
8292
+ /**
8293
+ * @return {?}
8294
+ */
8295
+ ngOnDestroy() {
8296
+ if (this.defaultMenuSubscribe) {
8297
+ this.defaultMenuSubscribe.unsubscribe();
8298
+ }
8299
+ }
8300
+ }
8301
+ SlidersNgContentLibComponent.decorators = [
8302
+ { type: Component, args: [{
8303
+ selector: 'sb-uic-sliders-ng-content',
8304
+ template: "<div class=\"banner-container {{isMobile? styleData?.responsive?.bannerMetaClass : styleData?.bannerMetaClass}}\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length > 1\" [style.height]=\"isMobile? styleData?.responsive?.customHeight : styleData?.customHeight\"\n [ngStyle]=\"{'border-radius': styleData?.borderRadius || '12px'}\">\n <ng-container *ngIf=\"!loadNgContentData\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"loadNgContentData\">\n <!-- <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\"> -->\n <ng-content select=\"[sliderbody]\"></ng-content>\n <!-- </div> -->\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n <ng-content select=\"[sliderMeta]\"></ng-content>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <div class=\"navigation {{isMobile? styleData?.responsive?.arrowsPlacement : styleData?.arrowsPlacement}}\" \n *ngIf=\"isMobile && styleData?.responsive?.navigationArrows !== 'hidden' || !isMobile && styleData?.navigationArrows !== 'hidden'\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </div>\n</div>\n<div class=\"banner-container-solo margin-top-s\" *ngIf=\"widgetData?.length == 1\">\n <img i18n-alt alt=\"Page Banner\" width=\"100%\" height=\"100%\" [src]=\"widgetData[0].banners\" wsUtilsImageResponsive class=\"banner-image-solo\" />\n</div>\n\n<!-- <ng-container *ngIf=\"!widgetData?.length\">\n <div class=\"slider default-slider h-full\">\n <div class=\"relative h-full\">\n <img class=\"h-full\" src=\"assets/icons/home/default-slider-image.svg\" alt=\"\">\n <div class=\"default-title rounded-full\">\n <p class=\"mat-h1\">{{title}}</p>\n </div>\n </div>\n </div>\n</ng-container> -->\n",
8305
+ styles: [".banner-container{min-height:243px;position:relative;margin:auto;padding-bottom:40px}.banner-container.inline-meta{padding-bottom:0!important}.banner-container.flat .banner .banner-image{border-radius:0!important}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,rgba(0,0,0,.25) 0,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 85%,rgba(0,0,0,.25) 100%);border-radius:inherit}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;border-radius:inherit;height:inherit}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:inherit;height:inherit}.banner-meta{text-align:center;z-index:2;padding:8px 12px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translateX(-50%);box-sizing:border-box}.banner-meta.left{left:0;transform:translateX(0)}.banner-meta.right{left:100%;transform:translateX(-100%)}.banner-meta.top-center{left:0;bottom:100%;transform:translateX(-100%)}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:8px;font-size:1.1rem}@media only screen and (max-width:599px){.banner-meta .banner-title{display:none}}.banner-meta .dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:6px;width:6px;margin:0 4px;background-color:rgba(0,0,0,.4);border-radius:50%;display:inline-block;transition:background-color .5s!important}@media only screen and (max-width:599px){.banner-meta .dots-container .dot{height:8px;width:8px;margin:0 4px}}.banner-meta .dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}@keyframes fade{from{opacity:.25}to{opacity:1}}.next,.prev{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-weight:700;background-color:#1b2133!important;border-radius:50%;z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;margin-top:-16px;justify-content:center}.prev{left:0;margin-left:-16px}.next{right:0;margin-right:-16px}.navigation.bottom-right .prev{left:unset;right:45px;bottom:-15px;top:unset}.navigation.bottom-right .next{left:unset;right:15px;bottom:-15px;top:unset}.navigation.bottom-center .prev{left:calc(50% - 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-center .next{left:calc(50% + 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-left .prev{left:15px;right:unset;bottom:-15px;top:unset}.navigation.bottom-left .next{left:60px;right:unset;bottom:-15px;top:unset}.navigation.middle-inline .prev{left:30px}.navigation.middle-inline .next{right:30px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.default-slider{height:100%;background:#d4e2fb}.default-slider .default-title{text-align:center;position:absolute;top:50%;left:0;right:0;margin:auto;transform:translateY(-50%);z-index:999;background:#e6efff;padding:32px;width:500px}.default-slider .default-title p{word-break:break-word;margin:0!important;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;text-transform:uppercase}@media screen and (max-width:768px){.default-slider{height:384px;width:100%}.default-slider .default-title{width:unset!important}}"]
8306
+ }] }
8307
+ ];
8308
+ /** @nocollapse */
8309
+ SlidersNgContentLibComponent.ctorParameters = () => [
8310
+ { type: EventService },
8311
+ { type: ValueService }
8312
+ ];
8313
+ SlidersNgContentLibComponent.propDecorators = {
8314
+ widgetData: [{ type: Input }],
8315
+ styleData: [{ type: Input }],
8316
+ title: [{ type: Input }],
8317
+ loadNgContentData: [{ type: Input }],
8318
+ autoScroll: [{ type: Input }],
8319
+ currentIndexValue: [{ type: Output }],
8320
+ id: [{ type: HostBinding, args: ['id',] }],
8321
+ currentIndex: [{ type: Input }]
8322
+ };
8323
+ if (false) {
8324
+ /** @type {?} */
8325
+ SlidersNgContentLibComponent.prototype.widgetData;
8326
+ /** @type {?} */
8327
+ SlidersNgContentLibComponent.prototype.styleData;
8328
+ /** @type {?} */
8329
+ SlidersNgContentLibComponent.prototype.title;
8330
+ /** @type {?} */
8331
+ SlidersNgContentLibComponent.prototype.loadNgContentData;
8332
+ /** @type {?} */
8333
+ SlidersNgContentLibComponent.prototype.autoScroll;
8334
+ /** @type {?} */
8335
+ SlidersNgContentLibComponent.prototype.currentIndexValue;
8336
+ /** @type {?} */
8337
+ SlidersNgContentLibComponent.prototype.id;
8338
+ /**
8339
+ * @type {?}
8340
+ * @private
8341
+ */
8342
+ SlidersNgContentLibComponent.prototype.defaultMenuSubscribe;
8343
+ /** @type {?} */
8344
+ SlidersNgContentLibComponent.prototype.isLtMedium$;
8345
+ /** @type {?} */
8346
+ SlidersNgContentLibComponent.prototype.currentIndex;
8347
+ /** @type {?} */
8348
+ SlidersNgContentLibComponent.prototype.slideInterval;
8349
+ /** @type {?} */
8350
+ SlidersNgContentLibComponent.prototype.isMobile;
8351
+ /**
8352
+ * @type {?}
8353
+ * @private
8354
+ */
8355
+ SlidersNgContentLibComponent.prototype.events;
8356
+ /**
8357
+ * @type {?}
8358
+ * @private
8359
+ */
8360
+ SlidersNgContentLibComponent.prototype.valueSvc;
8361
+ }
8362
+
8363
+ /**
8364
+ * @fileoverview added by tsickle
8365
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8366
+ */
8367
+ /* tslint:enable */
8368
+ class MyHammerConfig$1 extends HammerGestureConfig {
8369
+ /**
8370
+ * @param {?} element
8371
+ * @return {?}
8372
+ */
8373
+ buildHammer(element) {
8374
+ /** @type {?} */
8375
+ const mc = new Hammer(element, {
8376
+ touchAction: 'pan-y',
8377
+ });
8378
+ return mc;
8379
+ }
8380
+ }
8381
+ // tslint:disable-next-line: max-classes-per-file
8382
+ class SlidersNgContentLibModule {
8383
+ }
8384
+ SlidersNgContentLibModule.decorators = [
8385
+ { type: NgModule, args: [{
8386
+ declarations: [SlidersNgContentLibComponent],
8387
+ imports: [
8388
+ CommonModule,
8389
+ RouterModule,
8390
+ NavigationModule,
8391
+ ImageResponsiveModule,
8392
+ ],
8393
+ exports: [SlidersNgContentLibComponent],
8394
+ entryComponents: [SlidersNgContentLibComponent],
8395
+ providers: [
8396
+ {
8397
+ provide: HAMMER_GESTURE_CONFIG,
8398
+ useClass: MyHammerConfig$1,
8399
+ },
8400
+ ],
8401
+ },] }
8402
+ ];
8403
+
8404
+ /**
8405
+ * @fileoverview added by tsickle
8406
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8407
+ */
8408
+ class ScrollableItemModule {
8409
+ }
8410
+ ScrollableItemModule.decorators = [
8411
+ { type: NgModule, args: [{
8412
+ declarations: [ScrollableItemDirective],
8413
+ imports: [
8414
+ CommonModule,
8415
+ ],
8416
+ exports: [ScrollableItemDirective],
8417
+ },] }
8418
+ ];
8419
+
8420
+ /**
8421
+ * @fileoverview added by tsickle
8422
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8423
+ */
8424
+ class CbpPlanModule {
8425
+ }
8426
+ CbpPlanModule.decorators = [
8427
+ { type: NgModule, args: [{
8428
+ declarations: [CbpPlanComponent],
8429
+ imports: [
8430
+ CommonModule,
8431
+ SkeletonLoaderLibModule,
8432
+ MatIconModule,
8433
+ ScrollableItemModule,
8434
+ SlidersNgContentLibModule,
8435
+ ],
8436
+ exports: [CbpPlanComponent]
8437
+ },] }
8438
+ ];
8439
+
8440
+ /**
8441
+ * @fileoverview added by tsickle
8442
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8443
+ */
8444
+ class ConsumptionModule {
8445
+ }
8446
+ ConsumptionModule.decorators = [
8447
+ { type: NgModule, args: [{
8448
+ declarations: [ConsumptionComponent,],
8449
+ imports: [
8450
+ ContentStripWithTabsLibModule,
8451
+ SlidersLibModule
8452
+ ],
8453
+ exports: [ConsumptionComponent,
8454
+ ContentStripWithTabsLibModule,
8455
+ SlidersLibModule,
8456
+ DataPointsModule,
8457
+ CalenderModule,
8458
+ CommonStripModule,
8459
+ AnnouncementsModule,
8460
+ TopLearnersModule,
8461
+ CbpPlanModule,
8462
+ ],
8463
+ },] }
8464
+ ];
8465
+
8466
+ /**
8467
+ * @fileoverview added by tsickle
8468
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8469
+ */
8470
+ /** @type {?} */
8471
+ const ROOT_WIDGET_CONFIG = {
8472
+ card: {
8473
+ _type: 'cardLib',
8474
+ cardResource: 'cardContentLib'
8475
+ },
8476
+ };
8477
+
8478
+ /**
8479
+ * @fileoverview added by tsickle
8480
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8481
+ */
8482
+ var NsCardContent$1;
8483
+ (function (NsCardContent) {
8484
+ /**
8485
+ * @record
8486
+ */
8487
+ function ICard() { }
8488
+ NsCardContent.ICard = ICard;
8489
+ if (false) {
8490
+ /** @type {?} */
8491
+ ICard.prototype.content;
8492
+ /** @type {?} */
8493
+ ICard.prototype.cardSubType;
8494
+ /** @type {?} */
8495
+ ICard.prototype.context;
8496
+ /** @type {?|undefined} */
8497
+ ICard.prototype.intranetMode;
8498
+ /** @type {?|undefined} */
8499
+ ICard.prototype.deletedMode;
8500
+ /** @type {?|undefined} */
8501
+ ICard.prototype.likes;
8502
+ /** @type {?|undefined} */
8503
+ ICard.prototype.contentTags;
8504
+ /** @type {?} */
8505
+ ICard.prototype.stateData;
8506
+ /** @type {?|undefined} */
8507
+ ICard.prototype.cardCustomeClass;
8508
+ }
8509
+ /**
8510
+ * @record
7639
8511
  */
7640
8512
  function IContentTags() { }
7641
8513
  NsCardContent.IContentTags = IContentTags;
@@ -8808,7 +9680,7 @@ CardWideComponent.decorators = [
8808
9680
  { type: Component, args: [{
8809
9681
  selector: 'sb-uic-card-wide',
8810
9682
  template: "<mat-card class=\"card-wide-lib\">\n <a (click)=\"raiseTelemetry();getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" \n role=\"link\" i18n-aria-label>\n <div class=\"flex\">\n <div>\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-wide-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n <ng-container *ngIf=\"widgetData?.content?.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.appIcon | pipePublicURL\" loading=\"lazy\"\n class=\"card-wide-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-wide-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div>\n <div class=\"pl-4 pr-4 w-full\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end course_v2\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <sb-uic-display-content-type i18n-title title=\"Content Type\" *ngIf=\"widgetData?.content?.primaryCategory\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"widgetData?.content?.primaryCategory==='Course Unit'\n ?'Module'\n :widgetData?.content?.primaryCategory\">\n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n {{ widgetData?.content?.name }}\n </div>\n\n <div class=\"flex w-full flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n </div>\n </div>\n </div>\n </a>\n</mat-card>\n",
8811
- styles: [".card-wide-lib{width:inherit;padding:16px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.16)}.card-wide-lib .card-wide-img{width:190px;height:107px;border-radius:12px}.card-wide-lib .course_widget{margin-top:10px}.card-wide-lib .course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.card-wide-lib .course_widget .course_v2{border:1px solid #ef951e;padding:4px 8px;align-items:end;border-radius:16px}.card-wide-lib .course_widget .main_icon{font-size:16px;width:16px;height:16px}.card-wide-lib .course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.card-wide-lib .course_logo_box img{height:28px;width:28px;padding:5px;display:inline-block}.card-wide-lib .course_logo_box p{display:inline-block;vertical-align:top}.card-wide-lib .org-text{font-size:12px;font-weight:400;width:75%;padding-left:10px;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}@media screen and (max-width:768px){.card-wide-img{width:147px!important;height:117px!important;border-radius:12px!important}}"]
9683
+ styles: [".card-wide-lib{width:inherit;padding:16px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.16)}.card-wide-lib .card-wide-img{width:190px;height:107px;border-radius:12px}.card-wide-lib .course_widget{margin-top:10px}.card-wide-lib .course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.card-wide-lib .course_widget .course_v2{border:1px solid #ef951e;padding:4px 8px;align-items:end;border-radius:16px}.card-wide-lib .course_widget .main_icon{font-size:16px;width:16px;height:16px}.card-wide-lib .course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.card-wide-lib .course_logo_box img{height:28px;width:28px;padding:5px;display:inline-block}.card-wide-lib .course_logo_box p{display:inline-block;vertical-align:top}.card-wide-lib .org-text{font-size:12px;font-weight:400;width:75%;padding-left:10px;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}@media screen and (max-width:768px){.card-wide-img{width:147px!important;height:117px!important;border-radius:12px!important}.course_widget{max-width:145px}.org-text{width:56%!important}}"]
8812
9684
  }] }
8813
9685
  ];
8814
9686
  /** @nocollapse */
@@ -13756,47 +14628,6 @@ if (false) {
13756
14628
  RatingService.prototype.http;
13757
14629
  }
13758
14630
 
13759
- /**
13760
- * @fileoverview added by tsickle
13761
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
13762
- */
13763
- class ScrollableItemDirective {
13764
- /**
13765
- * @param {?} el
13766
- */
13767
- constructor(el) {
13768
- this.el = el;
13769
- }
13770
- /**
13771
- * @param {?} blockValue
13772
- * @return {?}
13773
- */
13774
- scrollIntoView(blockValue) {
13775
- this.el.nativeElement.scrollIntoView({ behavior: 'smooth', block: blockValue });
13776
- }
13777
- }
13778
- ScrollableItemDirective.decorators = [
13779
- { type: Directive, args: [{
13780
- selector: '[sbUicScrollableItem]'
13781
- },] }
13782
- ];
13783
- /** @nocollapse */
13784
- ScrollableItemDirective.ctorParameters = () => [
13785
- { type: ElementRef }
13786
- ];
13787
- ScrollableItemDirective.propDecorators = {
13788
- key: [{ type: Input, args: ['sbUicScrollableItem',] }]
13789
- };
13790
- if (false) {
13791
- /** @type {?} */
13792
- ScrollableItemDirective.prototype.key;
13793
- /**
13794
- * @type {?}
13795
- * @private
13796
- */
13797
- ScrollableItemDirective.prototype.el;
13798
- }
13799
-
13800
14631
  /**
13801
14632
  * @fileoverview added by tsickle
13802
14633
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -13943,8 +14774,8 @@ class UserContentRatingLibComponent {
13943
14774
  UserContentRatingLibComponent.decorators = [
13944
14775
  { type: Component, args: [{
13945
14776
  selector: 'sb-uic-user-content-rating',
13946
- template: "<ng-container *ngIf=\"contentdata.length\">\n <sb-uic-sliders-ng-content [title]=\"'providerName'\" [currentIndex]=\"currentIndex\" (currentIndexValue)=\"getCurrentIndex($event)\" [loadNgContentData]=\"true\" [widgetData]=\"contentdata\" [styleData]=\"styleData\">\n <div sliderbody>\n <div class=\"flex justify-start md:justify-center users-block mb-4 \">\n <ng-container *ngFor=\"let userData of contentdata; let j = index\">\n <div class=\"avatar-block mr-1\" [sbUicScrollableItem]=\"j\"\n [ngClass]=\"{'user-active': j === currentIndex}\" (click)=\"handleScrollClick(currentIndex);currentIndex = j\">\n <sb-uic-avatar-photo [defaulfColor]=\"'#1B2133'\" [datalen]=\"1\" [randomColor]=\"true\" [name]=\"userData?.userDetails?.firstName\" [photoUrl]=\"userData?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n </ng-container>\n </div>\n <div *ngFor=\"let ratingData of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"user-ratting-wrapper flex flex-wrap justify-center\">\n <p class=\"userName w-full mb-4\">{{ratingData?.userDetails?.firstName}}</p>\n \n <div class=\"flex w-full flex-row justify-center gap-2 mb-4\">\n <mat-icon class=\"mat-icon material-icons rating-icon ws-mat-black16-text\"\n [ngClass]=\"{'ws-mat-orange-text': getRatingIconClass(rating, ratingData?.rating)}\"\n *ngFor=\"let rating of [1, 2, 3, 4, 5]\">\n {{ getRatingIcon(rating, ratingData?.rating) }}\n </mat-icon>\n </div>\n <p class=\"content-feedback w-full mb-4 pl-0 pr-0 md:pl-12 md:pr-12 \">{{ratingData?.review}}</p>\n \n <hr class=\"divider mb-4\">\n <p class=\"content-info w-full mb-4\">For The Content</p>\n <div class=\"w-full mr-0 md:mr-8 ml-0 md:ml-8\">\n <sb-uic-cards [widgetData]=\"ratingData\"></sb-uic-cards>\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n</ng-container>\n\n",
13947
- styles: [".user-ratting-wrapper .userName{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:center}.user-ratting-wrapper .content-feedback{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:center;color:rgba(0,0,0,.87)}.user-ratting-wrapper .content-info{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;color:#666}.avatar-block{border:8px solid transparent;position:relative;cursor:pointer;width:48px;height:48px}.user-active{content:\"\";border:5px solid #f3972e;border-radius:50%;display:flex;justify-content:center;align-items:center;margin-bottom:0;width:48px;height:48px}.user-active::after{content:\" \";position:absolute;top:106%;left:50%;margin-left:-10px;border-left:10px solid transparent;border-right:10px solid transparent;border-top:18px solid #f3972e}.users-block{overflow-x:auto;padding:16px;padding-bottom:24px!important;width:100%}hr.divider{border:1px solid #f3972e;width:185px}"]
14777
+ template: "<ng-container *ngIf=\"contentdata.length\">\n <div class=\"user-rating-section\">\n <sb-uic-sliders-ng-content [title]=\"'providerName'\" [currentIndex]=\"currentIndex\" (currentIndexValue)=\"getCurrentIndex($event)\" [loadNgContentData]=\"true\" [widgetData]=\"contentdata\" [styleData]=\"styleData\">\n <div sliderbody>\n <div class=\"flex justify-start md:justify-center users-block\">\n <ng-container *ngFor=\"let userData of contentdata; let j = index\">\n <div class=\"avatar-block mr-1\" [sbUicScrollableItem]=\"j\"\n [ngClass]=\"{'user-active': j === currentIndex}\" (click)=\"handleScrollClick(currentIndex);currentIndex = j\">\n <sb-uic-avatar-photo [defaulfColor]=\"'#1B2133'\" [datalen]=\"1\" [randomColor]=\"true\" [name]=\"userData?.userDetails?.firstName\" [photoUrl]=\"userData?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n </ng-container>\n </div>\n <div *ngFor=\"let ratingData of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"user-ratting-wrapper flex flex-wrap justify-center\">\n <div class=\"w-full mr-0 md:mr-8 ml-0 md:ml-8 pb-5\">\n <sb-uic-cards [widgetData]=\"ratingData\"></sb-uic-cards>\n </div>\n <div class=\"title-border-v2\"></div>\n <p class=\"userName w-full mb-4 pt-6\">{{ratingData?.userDetails?.firstName}}</p>\n <div class=\"flex w-full flex-row justify-center gap-2 mb-4\">\n <mat-icon class=\"mat-icon material-icons rating-icon ws-mat-black16-text\"\n [ngClass]=\"{'ws-mat-orange-text': getRatingIconClass(rating, ratingData?.rating)}\"\n *ngFor=\"let rating of [1, 2, 3, 4, 5]\">\n {{ getRatingIcon(rating, ratingData?.rating) }}\n </mat-icon>\n </div>\n <p class=\"content-feedback w-full mb-4 px-4 md:px-8\">{{ratingData?.review}}</p>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </div>\n</ng-container>\n\n",
14778
+ styles: [".user-ratting-wrapper .userName{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:center}.user-ratting-wrapper .content-feedback{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:center;color:rgba(0,0,0,.87)}.user-ratting-wrapper .content-info{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;color:#666}.avatar-block{border:8px solid transparent;position:relative;cursor:pointer;width:48px;height:48px}.user-active{content:\"\";border:5px solid #f3972e;border-radius:50%;display:flex;justify-content:center;align-items:center;margin-bottom:0;width:48px;height:48px}.user-active::after{content:\" \";position:absolute;top:106%;left:50%;margin-left:-10px;border-left:10px solid transparent;border-right:10px solid transparent;border-top:18px solid #f3972e}.users-block{overflow-x:auto;padding:16px;padding-bottom:10px!important;width:100%}.title-border-v2{margin:10px;width:300px;height:3px;background:linear-gradient(90deg,rgba(255,255,255,0) 0,#ef951e 20%,#ef951e 80%,rgba(255,255,255,0) 100%)}.user-ratting-wrapper{border:2px solid #f3962f;border-radius:15px;padding:30px 0;background:linear-gradient(111.16deg,rgba(243,150,47,.24) 9.09%,rgba(255,255,255,0) 74.81%)}.user-rating-section ::ng-deep.prev{margin-left:-50px;top:59%}.user-rating-section ::ng-deep.next{margin-right:-50px;top:59%}.user-rating-section ::ng-deep.dots-container{display:none!important}@media screen and (max-width:768px){.user-rating-section ::ng-deep.next{margin-right:-16px;top:59%}.user-rating-section .users-block{width:90%}.user-rating-section ::ng-deep.widget-card-content-new{margin:0 15px}.user-rating-section .user-ratting-wrapper{padding:15px 0}.user-rating-section ::ng-deep.dots-container{display:block!important}.user-rating-section ::ng-deep.banner-meta{bottom:-12px}}"]
13948
14779
  }] }
13949
14780
  ];
13950
14781
  /** @nocollapse */
@@ -13983,283 +14814,641 @@ if (false) {
13983
14814
  * @fileoverview added by tsickle
13984
14815
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
13985
14816
  */
13986
- class SlidersNgContentLibComponent extends WidgetBaseComponent {
14817
+ class UserContentRatingLibModule {
14818
+ }
14819
+ UserContentRatingLibModule.decorators = [
14820
+ { type: NgModule, args: [{
14821
+ declarations: [UserContentRatingLibComponent],
14822
+ imports: [
14823
+ CommonModule,
14824
+ MatIconModule,
14825
+ MatChipsModule,
14826
+ SkeletonLoaderLibModule,
14827
+ SlidersLibModule,
14828
+ CardsModule,
14829
+ AvatarPhotoLibModule,
14830
+ SlidersNgContentLibModule,
14831
+ ScrollableItemModule
14832
+ ],
14833
+ exports: [UserContentRatingLibComponent],
14834
+ providers: [RatingService, UserContentRatingLibService],
14835
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
14836
+ },] }
14837
+ ];
14838
+
14839
+ /**
14840
+ * @fileoverview added by tsickle
14841
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
14842
+ */
14843
+ class MdoChannelV1Component {
14844
+ constructor() { }
14845
+ /**
14846
+ * @return {?}
14847
+ */
14848
+ ngOnInit() {
14849
+ }
14850
+ }
14851
+ MdoChannelV1Component.decorators = [
14852
+ { type: Component, args: [{
14853
+ selector: 'sb-uic-mdo-channel-v1',
14854
+ template: "<p>mdo-channel-v1 works!</p>\n",
14855
+ styles: [""]
14856
+ }] }
14857
+ ];
14858
+ /** @nocollapse */
14859
+ MdoChannelV1Component.ctorParameters = () => [];
14860
+
14861
+ /**
14862
+ * @fileoverview added by tsickle
14863
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
14864
+ */
14865
+ class MdoChannelV2Component {
14866
+ /**
14867
+ * @param {?} route
14868
+ * @param {?} router
14869
+ * @param {?} eventSvc
14870
+ * @param {?} translate
14871
+ * @param {?} langtranslations
14872
+ */
14873
+ constructor(route, router, eventSvc, translate, langtranslations) {
14874
+ this.route = route;
14875
+ this.router = router;
14876
+ this.eventSvc = eventSvc;
14877
+ this.translate = translate;
14878
+ this.langtranslations = langtranslations;
14879
+ this.sectionList = [];
14880
+ this.channnelName = '';
14881
+ this.orgId = '';
14882
+ this.selectedIndex = 0;
14883
+ this.hideCompetencyBlock = false;
14884
+ this.contentTabEmptyResponseCount = 0;
14885
+ this.titles = [
14886
+ { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },
14887
+ {
14888
+ title: `MDO Channel`,
14889
+ url: `/app/learn/mdo-channels/all-channels`,
14890
+ icon: '', disableTranslate: true,
14891
+ },
14892
+ ];
14893
+ this.showModal = false;
14894
+ this.descriptionMaxLength = 500;
14895
+ this.isTelemetryRaised = false;
14896
+ if (this.route.snapshot.data && this.route.snapshot.data.formData
14897
+ && this.route.snapshot.data.formData.data
14898
+ && this.route.snapshot.data.formData.data.result
14899
+ && this.route.snapshot.data.formData.data.result.form
14900
+ && this.route.snapshot.data.formData.data.result.form.data
14901
+ && this.route.snapshot.data.formData.data.result.form.data.sectionList) {
14902
+ this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList;
14903
+ }
14904
+ this.langtranslations.languageSelectedObservable.subscribe((/**
14905
+ * @return {?}
14906
+ */
14907
+ () => {
14908
+ if (localStorage.getItem('websiteLanguage')) {
14909
+ this.translate.setDefaultLang('en');
14910
+ /** @type {?} */
14911
+ const lang = (/** @type {?} */ (localStorage.getItem('websiteLanguage')));
14912
+ this.translate.use(lang);
14913
+ }
14914
+ }));
14915
+ }
14916
+ /**
14917
+ * @return {?}
14918
+ */
14919
+ ngOnInit() {
14920
+ this.route.params.subscribe((/**
14921
+ * @param {?} params
14922
+ * @return {?}
14923
+ */
14924
+ params => {
14925
+ this.channnelName = params['channel'];
14926
+ this.orgId = params['orgId'];
14927
+ this.titles.push({
14928
+ title: this.channnelName, icon: '', url: 'none', disableTranslate: true,
14929
+ });
14930
+ }));
14931
+ }
14932
+ /**
14933
+ * @param {?} tabEvent
14934
+ * @return {?}
14935
+ */
14936
+ tabClicked(tabEvent) {
14937
+ this.raiseTelemetry(`${tabEvent.tab.textLabel} tab`);
14938
+ }
14939
+ /**
14940
+ * @param {?} event
14941
+ * @param {?} contentStripData
14942
+ * @return {?}
14943
+ */
14944
+ hideContentStrip(event, contentStripData) {
14945
+ if (event) {
14946
+ contentStripData['hideSection'] = true;
14947
+ this.contentTabEmptyResponseCount = this.contentTabEmptyResponseCount + 1;
14948
+ // if(this.contentTabEmptyResponseCount === 4 ) {
14949
+ // this.selectedIndex = 1
14950
+ // }
14951
+ }
14952
+ }
14953
+ /**
14954
+ * @param {?} event
14955
+ * @return {?}
14956
+ */
14957
+ triggerOpenDialog(event) {
14958
+ if (event) {
14959
+ this.showModal = true;
14960
+ document.body.style.overflow = 'hidden';
14961
+ }
14962
+ this.raiseTelemetry('btn open key annoucements');
14963
+ }
14964
+ /**
14965
+ * @return {?}
14966
+ */
14967
+ onClose() {
14968
+ this.showModal = false;
14969
+ document.body.style.overflow = 'auto';
14970
+ this.raiseTelemetry('btn close key annoucements');
14971
+ }
14972
+ /**
14973
+ * @param {?} event
14974
+ * @return {?}
14975
+ */
14976
+ raiseTelemetryInteratEvent(event) {
14977
+ if (event && event.viewMoreUrl) {
14978
+ this.raiseTelemetry(`${event.stripTitle} ${event.viewMoreUrl.viewMoreText}`);
14979
+ }
14980
+ if (!this.isTelemetryRaised && event && !event.viewMoreUrl) {
14981
+ this.eventSvc.raiseInteractTelemetry({
14982
+ type: 'click',
14983
+ subType: 'mdo-channel',
14984
+ id: `${kebabCase(event.typeOfTelemetry.toLocaleLowerCase())}-card`,
14985
+ }, {
14986
+ id: event.identifier,
14987
+ type: event.primaryCategory,
14988
+ }, {
14989
+ pageIdExt: `${kebabCase(event.primaryCategory.toLocaleLowerCase())}-card`,
14990
+ module: WsEvents.EnumTelemetrymodules.LEARN,
14991
+ });
14992
+ this.isTelemetryRaised = true;
14993
+ }
14994
+ }
14995
+ /**
14996
+ * @param {?} name
14997
+ * @return {?}
14998
+ */
14999
+ raiseCompetencyTelemetry(name) {
15000
+ this.raiseTelemetry(`${name} core expertise`);
15001
+ }
15002
+ /**
15003
+ * @param {?} name
15004
+ * @return {?}
15005
+ */
15006
+ raiseTelemetry(name) {
15007
+ this.eventSvc.raiseInteractTelemetry({
15008
+ type: 'click',
15009
+ subType: 'mdo-channel',
15010
+ id: `${kebabCase(name).toLocaleLowerCase()}`,
15011
+ }, {}, {
15012
+ module: WsEvents.EnumTelemetrymodules.LEARN,
15013
+ });
15014
+ }
15015
+ /**
15016
+ * @param {?} event
15017
+ * @return {?}
15018
+ */
15019
+ hideCompetency(event) {
15020
+ if (event) {
15021
+ this.hideCompetencyBlock = true;
15022
+ }
15023
+ }
15024
+ /**
15025
+ * @param {?} _stripData
15026
+ * @param {?} contentStrip
15027
+ * @return {?}
15028
+ */
15029
+ showAllContent(_stripData, contentStrip) {
15030
+ if (contentStrip && contentStrip.strips && contentStrip.strips.length) {
15031
+ /** @type {?} */
15032
+ const stripData = contentStrip.strips[0];
15033
+ if (stripData && stripData.request) {
15034
+ delete (stripData['loaderWidgets']);
15035
+ this.router.navigate([`/app/learn/mdo-channels/${this.channnelName}/${this.orgId}/all-content`], { queryParams: { stripData: JSON.stringify(stripData) } });
15036
+ }
15037
+ }
15038
+ else {
15039
+ this.router.navigate([`/app/learn/browse-by/provider/${this.channnelName}/${this.orgId}/all-CBP`]);
15040
+ }
15041
+ }
15042
+ }
15043
+ MdoChannelV2Component.decorators = [
15044
+ { type: Component, args: [{
15045
+ selector: 'sb-uic-mdo-channel-v2',
15046
+ template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex sticky-logo-square\">\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10\"\n [style.color]=\"data.titleColor\">{{data.title || channnelName}}</h1>\n <p class=\"mat-body-1\" [style.color]=\"data.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n </div>\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\" >\n <div class=\"hidden md:block\">\n <div class=\"metrics\"\n [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points\n [providerId]=\"orgId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'singleFlexeRow'\"\n [pageLayout]=\"'mdo'\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points\n [providerId]=\"orgId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'singleRow'\"\n [pageLayout]=\"'mdo'\">\n </sb-uic-data-points>\n </div>\n \n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\">\n <sb-uic-announcements\n [layoutType]=\"'mobile'\"\n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\"\n [fetchDataFromApi]=\"false\"\n [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements\n [layoutType]=\"'web'\"\n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\"\n [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <!-- Tabs Section -->\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\" (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\" >\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data.tabSection.contentTab.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\" >\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div class=\"col-span-12 md:col-span-4\">\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\"\n *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div> \n </div>\n <div class=\"hidden md:block\" \n *ngIf=\"data?.announcementSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-announcements\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div> \n </div>\n </div> \n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n <!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\" [ngTemplateOutlet]=\"contentStrip\"\n [ngTemplateOutletContext]=\"{contentStrip: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\" [ngTemplateOutlet]=\"contentStrip\"\n [ngTemplateOutletContext]=\"{contentStrip: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\" [ngTemplateOutlet]=\"contentStrip\"\n [ngTemplateOutletContext]=\"{contentStrip: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\" [ngTemplateOutlet]=\"contentStrip\"\n [ngTemplateOutletContext]=\"{contentStrip: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\" *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1\">This section shows the list of top competencies users in this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo\n [dynamicColor]=\"'#999999'\"\n [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\"\n (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\"\n [objectData]=\"competency\"\n [providerId]=\"orgId\"\n >\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n\n<ng-template #contentStrip let-contentStrip=\"contentStrip\">\n <ng-container *ngIf=\"!contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"true\"\n (viewAllResponse)=\"showAllContent($event, contentStrip)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"hideContentStrip($event, contentStrip)\"\n [providerId]=\"orgId\"\n [widgetData]=\"contentStrip\"\n [channnelName]=\"channnelName\"\n >\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\" >\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners\n [objectData]=\"data\"\n [channnelName]=\"channnelName\"\n [channelId]=\"orgId\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>",
15047
+ styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(https://portal.karmayogiqa.nic.in/content-store/orgStore/0135071359030722569/1720698778795_MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(https://portal.karmayogiqa.nic.in/content-store/orgStore/0135071359030722569/1720693634596_MDOChannel_RightGraphic%202.svg);background-position:right;background-repeat:no-repeat}.sticky-logo-square{position:absolute;top:215px;justify-content:end;width:20.5%;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px}.logo-square{width:112px;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px 0 rgba(0,0,0,.06)}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{-o-object-fit:contain;object-fit:contain;max-height:52px;height:96px;z-index:10}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:rgba(19,19,19,.6392156863);width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width:768px){.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}"]
15048
+ }] }
15049
+ ];
15050
+ /** @nocollapse */
15051
+ MdoChannelV2Component.ctorParameters = () => [
15052
+ { type: ActivatedRoute },
15053
+ { type: Router },
15054
+ { type: EventService },
15055
+ { type: TranslateService },
15056
+ { type: MultilingualTranslationsService$1 }
15057
+ ];
15058
+ MdoChannelV2Component.propDecorators = {
15059
+ sectionList: [{ type: Input }]
15060
+ };
15061
+ if (false) {
15062
+ /** @type {?} */
15063
+ MdoChannelV2Component.prototype.sectionList;
15064
+ /** @type {?} */
15065
+ MdoChannelV2Component.prototype.channnelName;
15066
+ /** @type {?} */
15067
+ MdoChannelV2Component.prototype.orgId;
15068
+ /** @type {?} */
15069
+ MdoChannelV2Component.prototype.selectedIndex;
15070
+ /** @type {?} */
15071
+ MdoChannelV2Component.prototype.hideCompetencyBlock;
15072
+ /** @type {?} */
15073
+ MdoChannelV2Component.prototype.contentTabEmptyResponseCount;
15074
+ /** @type {?} */
15075
+ MdoChannelV2Component.prototype.titles;
15076
+ /** @type {?} */
15077
+ MdoChannelV2Component.prototype.showModal;
15078
+ /** @type {?} */
15079
+ MdoChannelV2Component.prototype.descriptionMaxLength;
15080
+ /** @type {?} */
15081
+ MdoChannelV2Component.prototype.isTelemetryRaised;
15082
+ /**
15083
+ * @type {?}
15084
+ * @private
15085
+ */
15086
+ MdoChannelV2Component.prototype.route;
15087
+ /**
15088
+ * @type {?}
15089
+ * @private
15090
+ */
15091
+ MdoChannelV2Component.prototype.router;
15092
+ /**
15093
+ * @type {?}
15094
+ * @private
15095
+ */
15096
+ MdoChannelV2Component.prototype.eventSvc;
15097
+ /**
15098
+ * @type {?}
15099
+ * @private
15100
+ */
15101
+ MdoChannelV2Component.prototype.translate;
15102
+ /**
15103
+ * @type {?}
15104
+ * @private
15105
+ */
15106
+ MdoChannelV2Component.prototype.langtranslations;
15107
+ }
15108
+
15109
+ /**
15110
+ * @fileoverview added by tsickle
15111
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
15112
+ */
15113
+ const ɵ0$7 = HttpLoaderFactory;
15114
+ class MDOChannelModule {
15115
+ }
15116
+ MDOChannelModule.decorators = [
15117
+ { type: NgModule, args: [{
15118
+ declarations: [MdoChannelV1Component, MdoChannelV2Component],
15119
+ imports: [
15120
+ CommonModule,
15121
+ MatIconModule,
15122
+ MatChipsModule,
15123
+ SkeletonLoaderLibModule,
15124
+ AnnouncementsModule,
15125
+ TopLearnersModule,
15126
+ CbpPlanModule,
15127
+ CardsModule,
15128
+ CommonStripModule,
15129
+ CompetencyPassbookModule,
15130
+ CompetencyPassbookMdoModule,
15131
+ ContentStripWithTabsLibModule,
15132
+ DataPointsModule,
15133
+ SlidersLibModule,
15134
+ MatTabsModule,
15135
+ TranslateModule.forRoot({
15136
+ loader: {
15137
+ provide: TranslateLoader,
15138
+ useFactory: ɵ0$7,
15139
+ deps: [HttpClient],
15140
+ },
15141
+ }),
15142
+ ],
15143
+ exports: [MdoChannelV1Component, MdoChannelV2Component],
15144
+ providers: [
15145
+ CommonMethodsService
15146
+ ],
15147
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
15148
+ },] }
15149
+ ];
15150
+
15151
+ /**
15152
+ * @fileoverview added by tsickle
15153
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
15154
+ */
15155
+ class ProvidersV2Component {
13987
15156
  /**
15157
+ * @param {?} route
15158
+ * @param {?} router
15159
+ * @param {?} datePipe
13988
15160
  * @param {?} events
13989
- * @param {?} valueSvc
13990
15161
  */
13991
- constructor(events, valueSvc) {
13992
- super();
15162
+ constructor(route, router, datePipe, events) {
15163
+ this.route = route;
15164
+ this.router = router;
15165
+ this.datePipe = datePipe;
13993
15166
  this.events = events;
13994
- this.valueSvc = valueSvc;
13995
- this.title = '';
13996
- this.loadNgContentData = false;
13997
- this.autoScroll = false;
13998
- this.currentIndexValue = new EventEmitter();
13999
- this.id = `banner_${Math.random()}`;
14000
- this.defaultMenuSubscribe = null;
14001
- this.isLtMedium$ = this.valueSvc.isLtMedium$;
14002
- this.currentIndex = 0;
14003
- this.slideInterval = null;
14004
- this.isMobile = false;
15167
+ this.sectionList = [];
15168
+ this.providerName = '';
15169
+ this.providerId = '';
15170
+ this.hideCompetencyBlock = false;
15171
+ this.titles = [
15172
+ { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },
15173
+ { title: `All Providers`,
15174
+ url: `/app/learn/browse-by/provider/all-providers`,
15175
+ icon: '', disableTranslate: true,
15176
+ },
15177
+ ];
15178
+ this.descriptionMaxLength = 500;
15179
+ this.isTelemetryRaised = false;
14005
15180
  }
14006
15181
  /**
14007
15182
  * @return {?}
14008
15183
  */
14009
15184
  ngOnInit() {
14010
- if (this.autoScroll) {
14011
- this.reInitiateSlideInterval();
14012
- }
14013
- this.defaultMenuSubscribe = this.isLtMedium$.subscribe((/**
14014
- * @param {?} isLtMedium
15185
+ if (this.route.snapshot.data && this.route.snapshot.data.formData
15186
+ && this.route.snapshot.data.formData.data
15187
+ && this.route.snapshot.data.formData.data.result
15188
+ && this.route.snapshot.data.formData.data.result.form
15189
+ && this.route.snapshot.data.formData.data.result.form.data
15190
+ && this.route.snapshot.data.formData.data.result.form.data.sectionList) {
15191
+ this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList;
15192
+ }
15193
+ this.route.params.subscribe((/**
15194
+ * @param {?} params
14015
15195
  * @return {?}
14016
15196
  */
14017
- (isLtMedium) => {
14018
- this.isMobile = isLtMedium;
15197
+ params => {
15198
+ this.providerName = params['provider'];
15199
+ this.providerId = params['orgId'];
15200
+ this.titles.push({
15201
+ title: this.providerName, icon: '', url: 'none', disableTranslate: true,
15202
+ });
14019
15203
  }));
15204
+ this.getNavitems();
15205
+ this.currentMonthAndYear = this.datePipe.transform(new Date(), 'MMMM y');
14020
15206
  }
14021
15207
  /**
14022
15208
  * @return {?}
14023
15209
  */
14024
- reInitiateSlideInterval() {
14025
- if (this.widgetData && this.widgetData.length > 1) {
14026
- try {
14027
- if (this.slideInterval) {
14028
- this.slideInterval.unsubscribe();
14029
- }
14030
- }
14031
- catch (e) {
14032
- }
14033
- finally {
14034
- this.slideInterval = interval(8000).subscribe((/**
15210
+ getNavitems() {
15211
+ this.navList = this.sectionList.filter((/**
15212
+ * @param {?} obj
15213
+ * @return {?}
15214
+ */
15215
+ (obj) => obj.enabled && obj.navigation && obj.navOrder)).sort((/**
15216
+ * @param {?} a
15217
+ * @param {?} b
15218
+ * @return {?}
15219
+ */
15220
+ (a, b) => a.navOrder - b.navOrder));
15221
+ }
15222
+ /**
15223
+ * @param {?} name
15224
+ * @return {?}
15225
+ */
15226
+ scrollToSection(name) {
15227
+ /** @type {?} */
15228
+ let section;
15229
+ section = document.getElementById(name);
15230
+ if (section) {
15231
+ // section.scrollIntoView({ behavior: 'smooth', block: 'start',inline: 'nearest', offsetTop: yOffset })
15232
+ window.scrollTo({
15233
+ top: section.offsetTop - 121,
15234
+ behavior: 'smooth',
15235
+ });
15236
+ }
15237
+ }
15238
+ /**
15239
+ * @param {?} event
15240
+ * @param {?} columnData
15241
+ * @return {?}
15242
+ */
15243
+ hideCompetency(event, columnData) {
15244
+ if (event) {
15245
+ this.hideCompetencyBlock = true;
15246
+ columnData['navigation'] = false;
15247
+ columnData['enabled'] = false;
15248
+ this.navList.forEach((/**
15249
+ * @param {?} navItem
15250
+ * @return {?}
15251
+ */
15252
+ (navItem) => {
15253
+ navItem.column.forEach((/**
15254
+ * @param {?} colEle
14035
15255
  * @return {?}
14036
15256
  */
14037
- () => {
14038
- if (this.currentIndex === this.widgetData.length - 1) {
14039
- this.currentIndex = 0;
14040
- this.currentIndexValue.emit(this.currentIndex);
14041
- }
14042
- else {
14043
- this.currentIndex += 1;
14044
- this.currentIndexValue.emit(this.currentIndex);
15257
+ (colEle) => {
15258
+ if (colEle.key === columnData.key) {
15259
+ navItem['navigation'] = false;
14045
15260
  }
14046
15261
  }));
14047
- }
15262
+ }));
14048
15263
  }
14049
15264
  }
14050
15265
  /**
14051
- * @param {?} index
15266
+ * @param {?} event
15267
+ * @param {?} contentStripData
14052
15268
  * @return {?}
14053
15269
  */
14054
- slideTo(index) {
14055
- if (index >= 0 && index < this.widgetData.length) {
14056
- this.currentIndex = index;
14057
- this.currentIndexValue.emit(this.currentIndex);
15270
+ hideContentStrip(event, contentStripData) {
15271
+ if (event) {
15272
+ contentStripData['hideSection'] = true;
14058
15273
  }
14059
- else if (index === this.widgetData.length) {
14060
- this.currentIndex = 0;
14061
- this.currentIndexValue.emit(this.currentIndex);
15274
+ }
15275
+ /**
15276
+ * @param {?} event
15277
+ * @param {?} learnerReview
15278
+ * @return {?}
15279
+ */
15280
+ hideLearnerReview(event, learnerReview) {
15281
+ if (event) {
15282
+ learnerReview['hideSection'] = true;
14062
15283
  }
14063
- else {
14064
- this.currentIndex = this.widgetData.length + index;
14065
- this.currentIndexValue.emit(this.currentIndex);
15284
+ }
15285
+ /**
15286
+ * @param {?} _stripData
15287
+ * @param {?} contentStrip
15288
+ * @return {?}
15289
+ */
15290
+ showAllContent(_stripData, contentStrip) {
15291
+ if (contentStrip && contentStrip.strips && contentStrip.strips.length) {
15292
+ /** @type {?} */
15293
+ const stripData = contentStrip.strips[0];
15294
+ if (stripData && stripData.request) {
15295
+ delete (stripData['loaderWidgets']);
15296
+ this.router.navigate([`/app/learn/browse-by/provider/${this.providerName}/${this.providerId}/all-content`], { queryParams: { stripData: JSON.stringify(stripData), pageDetails: true } });
15297
+ }
14066
15298
  }
14067
- if (this.autoScroll) {
14068
- this.reInitiateSlideInterval();
15299
+ else {
15300
+ this.router.navigate([`/app/learn/browse-by/provider/${this.providerName}/${this.providerId}/all-CBP`], { queryParams: { pageDetails: true } });
14069
15301
  }
14070
15302
  }
14071
15303
  /**
15304
+ * @param {?} event
14072
15305
  * @return {?}
14073
15306
  */
14074
- get isOpenInNewTab() {
14075
- /** @type {?} */
14076
- const currentData = this.widgetData[this.currentIndex];
14077
- if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
14078
- return true;
15307
+ raiseTelemetryInteratEvent(event) {
15308
+ if (event && event.viewMoreUrl) {
15309
+ this.raiseTelemetry(`${event.stripTitle} ${event.viewMoreUrl.viewMoreText}`);
15310
+ }
15311
+ if (!this.isTelemetryRaised && event && !event.viewMoreUrl) {
15312
+ this.events.raiseInteractTelemetry({
15313
+ type: 'click',
15314
+ subType: 'ATI/CTI',
15315
+ id: `${kebabCase(event.typeOfTelemetry.toLocaleLowerCase())}-card`,
15316
+ }, {
15317
+ id: event.identifier,
15318
+ type: event.primaryCategory,
15319
+ }, {
15320
+ pageIdExt: `${kebabCase(event.primaryCategory.toLocaleLowerCase())}-card`,
15321
+ module: WsEvents.EnumTelemetrymodules.LEARN,
15322
+ });
15323
+ this.isTelemetryRaised = true;
14079
15324
  }
14080
- return false;
14081
15325
  }
14082
15326
  /**
15327
+ * @param {?} name
14083
15328
  * @return {?}
14084
15329
  */
14085
- openInNewTab() {
14086
- /** @type {?} */
14087
- const currentData = this.widgetData[this.currentIndex];
14088
- if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
14089
- window.open(currentData.redirectUrl);
14090
- }
15330
+ raiseCompetencyTelemetry(name) {
15331
+ this.raiseTelemetry(`${name} core expertise`);
14091
15332
  }
14092
15333
  /**
14093
- * @param {?} bannerUrl
15334
+ * @param {?} name
14094
15335
  * @return {?}
14095
15336
  */
14096
- raiseTelemetry(bannerUrl) {
14097
- this.openInNewTab();
14098
- /** @type {?} */
14099
- const path = window.location.pathname.replace('/', '');
14100
- /** @type {?} */
14101
- const url = path + window.location.search;
15337
+ raiseTelemetry(name) {
14102
15338
  this.events.raiseInteractTelemetry({
14103
15339
  type: 'click',
14104
- subType: 'banner',
14105
- }, {
14106
- pageUrl: url,
14107
- bannerRedirectUrl: bannerUrl,
14108
- }, {
14109
- pageIdExt: 'banner',
14110
- module: WsEvents.EnumTelemetrymodules.CONTENT,
15340
+ subType: 'ATI/CTI',
15341
+ id: `${kebabCase(name).toLocaleLowerCase()}`,
15342
+ }, {}, {
15343
+ module: WsEvents.EnumTelemetrymodules.LEARN,
14111
15344
  });
14112
15345
  }
14113
15346
  /**
15347
+ * @param {?} name
14114
15348
  * @return {?}
14115
15349
  */
14116
- ngOnDestroy() {
14117
- if (this.defaultMenuSubscribe) {
14118
- this.defaultMenuSubscribe.unsubscribe();
14119
- }
15350
+ raiseNavTelemetry(name) {
15351
+ this.events.raiseInteractTelemetry({
15352
+ type: 'click',
15353
+ subType: 'ATI/CTI',
15354
+ id: `${kebabCase(name).toLocaleLowerCase()}-navigation`,
15355
+ }, {}, {
15356
+ module: WsEvents.EnumTelemetrymodules.LEARN,
15357
+ });
14120
15358
  }
14121
15359
  }
14122
- SlidersNgContentLibComponent.decorators = [
15360
+ ProvidersV2Component.decorators = [
14123
15361
  { type: Component, args: [{
14124
- selector: 'sb-uic-sliders-ng-content',
14125
- template: "<div class=\"banner-container {{isMobile? styleData?.responsive?.bannerMetaClass : styleData?.bannerMetaClass}}\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length > 1\" [style.height]=\"isMobile? styleData?.responsive?.customHeight : styleData?.customHeight\"\n [ngStyle]=\"{'border-radius': styleData?.borderRadius || '12px'}\">\n <ng-container *ngIf=\"!loadNgContentData\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"loadNgContentData\">\n <!-- <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\"> -->\n <ng-content select=\"[sliderbody]\"></ng-content>\n <!-- </div> -->\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n <ng-content select=\"[sliderMeta]\"></ng-content>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <div class=\"navigation {{isMobile? styleData?.responsive?.arrowsPlacement : styleData?.arrowsPlacement}}\" \n *ngIf=\"isMobile && styleData?.responsive?.navigationArrows !== 'hidden' || !isMobile && styleData?.navigationArrows !== 'hidden'\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </div>\n</div>\n<div class=\"banner-container-solo margin-top-s\" *ngIf=\"widgetData?.length == 1\">\n <img i18n-alt alt=\"Page Banner\" width=\"100%\" height=\"100%\" [src]=\"widgetData[0].banners\" wsUtilsImageResponsive class=\"banner-image-solo\" />\n</div>\n\n<!-- <ng-container *ngIf=\"!widgetData?.length\">\n <div class=\"slider default-slider h-full\">\n <div class=\"relative h-full\">\n <img class=\"h-full\" src=\"assets/icons/home/default-slider-image.svg\" alt=\"\">\n <div class=\"default-title rounded-full\">\n <p class=\"mat-h1\">{{title}}</p>\n </div>\n </div>\n </div>\n</ng-container> -->\n",
14126
- styles: [".banner-container{min-height:243px;position:relative;margin:auto;padding-bottom:40px}.banner-container.inline-meta{padding-bottom:0!important}.banner-container.flat .banner .banner-image{border-radius:0!important}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,rgba(0,0,0,.25) 0,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 85%,rgba(0,0,0,.25) 100%);border-radius:inherit}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;border-radius:inherit;height:inherit}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:inherit;height:inherit}.banner-meta{text-align:center;z-index:2;padding:8px 12px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translateX(-50%);box-sizing:border-box}.banner-meta.left{left:0;transform:translateX(0)}.banner-meta.right{left:100%;transform:translateX(-100%)}.banner-meta.top-center{left:0;bottom:100%;transform:translateX(-100%)}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:8px;font-size:1.1rem}@media only screen and (max-width:599px){.banner-meta .banner-title{display:none}}.banner-meta .dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:6px;width:6px;margin:0 4px;background-color:rgba(0,0,0,.4);border-radius:50%;display:inline-block;transition:background-color .5s!important}@media only screen and (max-width:599px){.banner-meta .dots-container .dot{height:8px;width:8px;margin:0 4px}}.banner-meta .dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}@keyframes fade{from{opacity:.25}to{opacity:1}}.next,.prev{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-weight:700;background-color:#1b2133!important;border-radius:50%;z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;margin-top:-16px;justify-content:center}.prev{left:0;margin-left:-16px}.next{right:0;margin-right:-16px}.navigation.bottom-right .prev{left:unset;right:45px;bottom:-15px;top:unset}.navigation.bottom-right .next{left:unset;right:15px;bottom:-15px;top:unset}.navigation.bottom-center .prev{left:calc(50% - 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-center .next{left:calc(50% + 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-left .prev{left:15px;right:unset;bottom:-15px;top:unset}.navigation.bottom-left .next{left:60px;right:unset;bottom:-15px;top:unset}.navigation.middle-inline .prev{left:30px}.navigation.middle-inline .next{right:30px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.default-slider{height:100%;background:#d4e2fb}.default-slider .default-title{text-align:center;position:absolute;top:50%;left:0;right:0;margin:auto;transform:translateY(-50%);z-index:999;background:#e6efff;padding:32px;width:500px}.default-slider .default-title p{word-break:break-word;margin:0!important;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;text-transform:uppercase}@media screen and (max-width:768px){.default-slider{height:384px;width:100%}.default-slider .default-title{width:unset!important}}"]
15362
+ selector: 'sb-uic-providers-v2',
15363
+ template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'trainingCalendar'\" [ngTemplateOutlet]=\"trainingCalendar\"\n [ngTemplateOutletContext]=\"{trainingCalendar: column.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contributors'\" [ngTemplateOutlet]=\"contributors\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'infra'\" [ngTemplateOutlet]=\"infra\"\n [ngTemplateOutletContext]=\"{infra: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\" [ngTemplateOutlet]=\"contentStrip\"\n [ngTemplateOutletContext]=\"{contentStrip: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentTopStrip'\" [ngTemplateOutlet]=\"contentStrip\"\n [ngTemplateOutletContext]=\"{contentStrip: column?.data}\"></ng-container> \n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container> \n <ng-container *ngSwitchCase=\"'learnerReview'\" [ngTemplateOutlet]=\"learnerReviewBlock\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container> \n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<div class=\"container-fluid\" *ngIf=\"navList?.length\">\n <div class=\"flex sticky-navigator gap-4\">\n <mat-icon class=\"nav-up-arrow cursor-pointer\" (click)=\"scrollToSection('section-micro-sites')\">arrow_upwards</mat-icon>\n <ng-container *ngFor=\"let section of navList\">\n <ng-container *ngIf=\"section.navigation\">\n <div class=\"nav-button\" (click)=\"scrollToSection(section?.key); raiseNavTelemetry(section?.title)\">{{section?.title}}</div>\n </ng-container>\n </ng-container>\n </div>\n\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- <div class=\"w-full grid grid-cols-12 gap-4\"> -->\n <div class=\"col-span-12 \">\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12 md:col-span-8\">\n <div class=\"slider h-full\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [title]=\"providerName\" [widgetData]=\"data?.sliderData?.sliders\" [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"hidden md:block col-span-4 p-5\" style=\"background: #0754AC;\" >\n <sb-uic-data-points [providerId]=\"providerId\" [fetchDataFromApi]=\"true\" [objectData]=\"data?.metrics?.data\" [layoutType]=\"'multipleRows-V2'\"></sb-uic-data-points>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 title-section px-5 md:py-5 mob-container\">\n <div class=\"container flex flex-col md:flex-row\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-rounded top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || providerName}}</h1>\n <p>{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n <div class=\"block md:hidden overflow-y-auto mb-3\">\n <sb-uic-data-points [providerId]=\"providerId\" [fetchDataFromApi]=\"true\" [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow-v2'\"></sb-uic-data-points>\n </div>\n <button\n (click)=\"raiseTelemetry(data?.contentButton?.title)\"\n [routerLink]=\"[data?.contentButton?.redirectUrl, providerName, providerId, 'all-CBP']\"\n [queryParams]=\"{pageDetails: true}\" mat-button type=\"button\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{data?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n </div>\n <!-- </div> -->\n</ng-template>\n\n<ng-template #contentStrip let-contentStrip=\"contentStrip\">\n <ng-container *ngIf=\"!contentStrip?.hideSection\">\n <div class=\"flex justify-center relative mt-8 mb-8\">\n <img class=\"absolute {{contentStrip?.sectionImagePosition}}\" src=\"{{contentStrip?.sectionImage}}\" alt=\"\">\n <div class=\"container \">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"true\"\n (viewAllResponse)=\"showAllContent($event,contentStrip)\"\n (emptyResponse)=\"hideContentStrip($event, contentStrip)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n [providerId]=\"providerId\"\n [widgetData]=\"contentStrip\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #contributors let-data=\"data\">\n <div class=\"contributors-background px-5 py-5\" [style.background]=\"data?.background\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 padding-top-l mb-6\">\n <div class=\"col-span-12 md:col-span-3 contributor-desc\">\n <div class=\"infra-box flex flex-col\">\n <div class=\"infra-title-v2 hidden md:block\">\n {{data.detaulTitle}}<span class=\"infra-title2-v2\">{{data.defaultTitle1}}</span>\n </div>\n <div class=\"infra-title-v2 hidden md:block\">\n {{data.myTitle}}<span class=\"infra-title2-v2\">{{data.myTitle1}}</span>\n </div>\n <div class=\"block md:hidden\">\n <span class=\"infra-title-v2\">{{data.detaulTitle}}</span>\n <span class=\"infra-title2-v2\">{{data.defaultTitle1}}</span>\n <span class=\"infra-title-v2\"> {{data.myTitle}}</span>\n <span class=\"infra-title2-v2\">{{data.myTitle1}}</span>\n </div>\n <div class=\"infra-description padding-top-s\">\n {{data.description}}\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-9\">\n <sb-uic-common-strip [widgetData]=\"data\"></sb-uic-common-strip>\n </div>\n </div>\n <div class=\"w-full section-divider pt-6\">\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infra let-infra=\"infra\">\n <div class=\"infra-background px-5\" [style.background]=\"infra?.background\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 infra-sec padding-top-l\">\n <div class=\"col-span-12 md:col-span-4 infra-sec-desc\">\n <div class=\"infra-box flex flex-col\">\n <div class=\"infra-title2 hidden md:block\">\n {{infra?.detaulTitle}}\n </div>\n <div class=\"block md:hidden\">\n <span class=\"infra-title2\">{{infra?.detaulTitle}}</span>\n </div>\n <div class=\"infra-description padding-top-s\">\n {{infra?.description}}\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-8\">\n <sb-uic-data-points [objectData]=\"infra\" [layoutType]=\"'gridLayout'\"></sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n <div class=\"infra-background slider-background\" [style.background]=\"infra?.background\">\n </div>\n <div class=\"slider-background1 mb-8\">\n <div class=\"container-balanced w-full slider-background-2\">\n <div class=\"info-slider\">\n <sb-uic-sliders [widgetData]=\"infra?.sliderData?.sliders\" [styleData]=\"infra?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\" *ngIf=\"!hideCompetencyBlock\">\n <div class=\"w-full container-balanced\">\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook\n (emptyResponse)=\"hideCompetency($event, competency)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\"\n [objectData]=\"competency\"\n [providerId]=\"providerId\">\n </sb-uic-competency-passbook>\n </div>\n </div>\n <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\">\n </div>\n</ng-template>\n<!-- End Competencies -->\n\n\n<ng-template #trainingCalendar let-trainingCalendar=\"trainingCalendar\">\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 px-8 py-8\" [style.background]=\"trainingCalendar?.background\">\n <div class=\"container-balanced flex flex-col\">\n <div class=\"col-span-12 mat-subheading-1 margin-remove\">{{trainingCalendar?.title}}: {{currentMonthAndYear}}</div>\n <sb-uic-calender\n [objectData]=\"trainingCalendar\"\n [fetchDataFromApi]=\"true\"\n [layoutType]=\"'grid'\"\n [defaultDays]=\"trainingCalendar?.defaultDays\"\n [providerId]=\"providerId\">\n </sb-uic-calender>\n </div>\n <div class=\"flex item-center justify-center\">\n <button mat-button type=\"button\"\n (click)=\"raiseTelemetry(trainingCalendar?.contentButton?.title)\"\n [routerLink]=\"[trainingCalendar?.contentButton?.redirectUrl, providerName, providerId, 'training-calendar']\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{trainingCalendar?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden\">\n <div class=\"col-span-12 px-5 py-3 mob-header\">{{trainingCalendar?.title}}: {{currentMonthAndYear}}</div>\n <div class=\"col-span-12\">\n <sb-uic-calender\n [objectData]=\"trainingCalendar\"\n [fetchDataFromApi]=\"true\"\n [layoutType]=\"'row'\"\n [defaultDays]=\"trainingCalendar?.defaultDays\"\n [providerId]=\"providerId\">\n </sb-uic-calender>\n </div>\n <div class=\"col-span-12 flex item-center justify-center\">\n <button mat-button type=\"button\"\n (click)=\"raiseTelemetry(trainingCalendar?.contentButton?.title)\"\n [routerLink]=\"[trainingCalendar?.contentButton?.redirectUrl, providerName, providerId, 'training-calendar']\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{trainingCalendar?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n</ng-template>\n<ng-template #learnerReviewBlock let-data=\"data\">\n <div class=\"contributors-background px-5 py-5\" [style.background]=\"data?.background\" *ngIf=\"!data?.hideSection\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 padding-top-l mb-6\">\n <div class=\"col-span-12 md:col-span-4 contributor-desc\">\n <div class=\"infra-box-review flex flex-col\">\n <div class=\"learner-title hidden md:block\">\n {{data?.detaulTitle}}\n </div>\n <div class=\"infra-title2 hidden md:block\">\n {{data?.myTitle}}\n </div>\n <div class=\"block md:hidden\">\n <span class=\"learner-title\">{{data?.detaulTitle}}</span> <span class=\"infra-title2\"> {{data?.myTitle}}</span>\n </div> \n </div> \n </div>\n <div class=\"col-span-12 md:col-span-8\">\n <sb-uic-user-content-rating (emptyResponse)=\"hideLearnerReview($event, data)\" [formData]=\"data\" [providerId]=\"providerId\"></sb-uic-user-content-rating>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n",
15364
+ styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.section-divider{border-bottom:1px solid rgba(0,0,0,.16)}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.logo-box{vertical-align:middle;max-width:250px;background:#f5fdf1;padding:8px;border:1px solid rgba(0,0,0,.5)}.title-section{position:relative;display:flex;justify-content:center;background-color:#fff}.logo-box-container{width:180px;position:relative}@media only screen and (max-width:599px){.logo-box-container{width:112px;height:72px}}.view-btn{width:160px;background:#fff;padding:0 16px;border-radius:49px;border:1px solid #1b4ca9;font-weight:700!important;font-size:14px;margin-top:4px;margin-bottom:4px;line-height:36px}.logo-box-rounded{height:180px;width:180px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px 0 rgba(0,0,0,.06)}.logo-box-rounded .logo-img{max-width:122px}@media only screen and (max-width:599px){.view-btn{margin-top:12px;margin-bottom:16px}.logo-box-rounded{width:112px;height:112px}.logo-box-rounded .logo-img{max-width:84px}}.logo-box-rounded.top{position:absolute;top:-110px}.slider-box{max-width:30%}.stats-container{justify-content:space-around;display:flex;flex-wrap:wrap}.stats-item{display:flex;align-items:center;flex-wrap:nowrap;padding:8px 16px;margin-bottom:16px}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-sec{padding:25px 0}.infra-sec-desc{padding-top:32px}.contributors-background,.infra-background{align-items:center;justify-content:center;display:flex}.contributor-desc{align-items:center;display:inline-flex;margin-top:-24px}.infra-box{width:256px}.infra-box-review{width:100%}.infra-title-v2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#fff}.infra-title2-v2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#ef951e}.infra-title{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#fff}.infra-title2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#ef951e}.infra-description{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left;color:#fff;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.overlay{position:absolute;top:-20px}.slider-background{height:160px}.slider-background1{height:195px}.slider-background-2{position:relative}.info-slider{position:absolute;top:-180px;padding:25px}.sticky-navigator{padding:15px 5px;background-color:#fdead5;align-items:center;overflow:auto;position:fixed;left:0;bottom:0;width:100%;z-index:1002;justify-content:center}.nav-button{padding:12px 16px;border-radius:40px;border:1px solid #000;text-align:center;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;cursor:pointer;min-width:140px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-up-arrow{height:28px}.img-left{left:0}.img-right{right:0}.learner-title{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#000}@media screen and (max-width:1201px){.img-left,.img-right{display:none}}@media screen and (max-width:768px){.infra-sec{padding:0}.infra-box,.infra-box-review{width:99%;height:auto}.infra-sec-desc{padding-top:0}.mob-container{background-image:url(https://portal.karmayogiqa.nic.in/content-store/orgStore/0135071359030722569/1720693634596_MDOChannel_RightGraphic%202.svg);background-position:bottom 0 right 0;background-repeat:no-repeat}.infra-title,.infra-title-v2,.infra-title2,.infra-title2-v2{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.slider-background,.slider-background1{height:150px}.info-slider{position:absolute;top:-155px}.sticky-navigator{align-items:center;justify-content:left;bottom:63px}.logo-box-rounded.top{position:absolute;top:-50px}.learner-title{font-size:16px}}.competencies-backgroud{background-color:#1b2133}.txt-ellipsis-2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.comp-back-img{bottom:0;left:0;right:0;margin-left:auto;margin-right:auto;width:50%;filter:brightness(100)}.mob-header{font-family:Lato;font-size:16px;font-weight:600}"]
14127
15365
  }] }
14128
15366
  ];
14129
15367
  /** @nocollapse */
14130
- SlidersNgContentLibComponent.ctorParameters = () => [
14131
- { type: EventService },
14132
- { type: ValueService }
15368
+ ProvidersV2Component.ctorParameters = () => [
15369
+ { type: ActivatedRoute },
15370
+ { type: Router },
15371
+ { type: DatePipe },
15372
+ { type: EventService }
14133
15373
  ];
14134
- SlidersNgContentLibComponent.propDecorators = {
14135
- widgetData: [{ type: Input }],
14136
- styleData: [{ type: Input }],
14137
- title: [{ type: Input }],
14138
- loadNgContentData: [{ type: Input }],
14139
- autoScroll: [{ type: Input }],
14140
- currentIndexValue: [{ type: Output }],
14141
- id: [{ type: HostBinding, args: ['id',] }],
14142
- currentIndex: [{ type: Input }]
15374
+ ProvidersV2Component.propDecorators = {
15375
+ sectionList: [{ type: Input }]
14143
15376
  };
14144
15377
  if (false) {
14145
15378
  /** @type {?} */
14146
- SlidersNgContentLibComponent.prototype.widgetData;
15379
+ ProvidersV2Component.prototype.sectionList;
14147
15380
  /** @type {?} */
14148
- SlidersNgContentLibComponent.prototype.styleData;
15381
+ ProvidersV2Component.prototype.providerName;
14149
15382
  /** @type {?} */
14150
- SlidersNgContentLibComponent.prototype.title;
15383
+ ProvidersV2Component.prototype.providerId;
14151
15384
  /** @type {?} */
14152
- SlidersNgContentLibComponent.prototype.loadNgContentData;
15385
+ ProvidersV2Component.prototype.navList;
14153
15386
  /** @type {?} */
14154
- SlidersNgContentLibComponent.prototype.autoScroll;
15387
+ ProvidersV2Component.prototype.hideCompetencyBlock;
14155
15388
  /** @type {?} */
14156
- SlidersNgContentLibComponent.prototype.currentIndexValue;
15389
+ ProvidersV2Component.prototype.currentMonthAndYear;
14157
15390
  /** @type {?} */
14158
- SlidersNgContentLibComponent.prototype.id;
15391
+ ProvidersV2Component.prototype.titles;
15392
+ /** @type {?} */
15393
+ ProvidersV2Component.prototype.descriptionMaxLength;
15394
+ /** @type {?} */
15395
+ ProvidersV2Component.prototype.isTelemetryRaised;
14159
15396
  /**
14160
15397
  * @type {?}
14161
15398
  * @private
14162
15399
  */
14163
- SlidersNgContentLibComponent.prototype.defaultMenuSubscribe;
14164
- /** @type {?} */
14165
- SlidersNgContentLibComponent.prototype.isLtMedium$;
15400
+ ProvidersV2Component.prototype.route;
14166
15401
  /** @type {?} */
14167
- SlidersNgContentLibComponent.prototype.currentIndex;
14168
- /** @type {?} */
14169
- SlidersNgContentLibComponent.prototype.slideInterval;
14170
- /** @type {?} */
14171
- SlidersNgContentLibComponent.prototype.isMobile;
15402
+ ProvidersV2Component.prototype.router;
14172
15403
  /**
14173
15404
  * @type {?}
14174
15405
  * @private
14175
15406
  */
14176
- SlidersNgContentLibComponent.prototype.events;
15407
+ ProvidersV2Component.prototype.datePipe;
14177
15408
  /**
14178
15409
  * @type {?}
14179
15410
  * @private
14180
15411
  */
14181
- SlidersNgContentLibComponent.prototype.valueSvc;
14182
- }
14183
-
14184
- /**
14185
- * @fileoverview added by tsickle
14186
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
14187
- */
14188
- /* tslint:enable */
14189
- class MyHammerConfig$1 extends HammerGestureConfig {
14190
- /**
14191
- * @param {?} element
14192
- * @return {?}
14193
- */
14194
- buildHammer(element) {
14195
- /** @type {?} */
14196
- const mc = new Hammer(element, {
14197
- touchAction: 'pan-y',
14198
- });
14199
- return mc;
14200
- }
14201
- }
14202
- // tslint:disable-next-line: max-classes-per-file
14203
- class SlidersNgContentLibModule {
14204
- }
14205
- SlidersNgContentLibModule.decorators = [
14206
- { type: NgModule, args: [{
14207
- declarations: [SlidersNgContentLibComponent],
14208
- imports: [
14209
- CommonModule,
14210
- RouterModule,
14211
- NavigationModule,
14212
- ImageResponsiveModule,
14213
- ],
14214
- exports: [SlidersNgContentLibComponent],
14215
- entryComponents: [SlidersNgContentLibComponent],
14216
- providers: [
14217
- {
14218
- provide: HAMMER_GESTURE_CONFIG,
14219
- useClass: MyHammerConfig$1,
14220
- },
14221
- ],
14222
- },] }
14223
- ];
14224
-
14225
- /**
14226
- * @fileoverview added by tsickle
14227
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
14228
- */
14229
- class ScrollableItemModule {
15412
+ ProvidersV2Component.prototype.events;
14230
15413
  }
14231
- ScrollableItemModule.decorators = [
14232
- { type: NgModule, args: [{
14233
- declarations: [ScrollableItemDirective],
14234
- imports: [
14235
- CommonModule,
14236
- ],
14237
- exports: [ScrollableItemDirective],
14238
- },] }
14239
- ];
14240
15414
 
14241
15415
  /**
14242
15416
  * @fileoverview added by tsickle
14243
15417
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
14244
15418
  */
14245
- class UserContentRatingLibModule {
15419
+ const ɵ0$8 = HttpLoaderFactory;
15420
+ class ProvidersModule {
14246
15421
  }
14247
- UserContentRatingLibModule.decorators = [
15422
+ ProvidersModule.decorators = [
14248
15423
  { type: NgModule, args: [{
14249
- declarations: [UserContentRatingLibComponent],
15424
+ declarations: [ProvidersV2Component],
14250
15425
  imports: [
14251
15426
  CommonModule,
14252
15427
  MatIconModule,
15428
+ RouterModule,
14253
15429
  MatChipsModule,
14254
15430
  SkeletonLoaderLibModule,
14255
- SlidersLibModule,
15431
+ CalenderModule,
14256
15432
  CardsModule,
14257
- AvatarPhotoLibModule,
14258
- SlidersNgContentLibModule,
14259
- ScrollableItemModule
15433
+ CommonStripModule,
15434
+ CompetencyPassbookModule,
15435
+ UserContentRatingLibModule,
15436
+ ContentStripWithTabsLibModule,
15437
+ DataPointsModule,
15438
+ SlidersLibModule,
15439
+ MatTabsModule,
15440
+ TranslateModule.forRoot({
15441
+ loader: {
15442
+ provide: TranslateLoader,
15443
+ useFactory: ɵ0$8,
15444
+ deps: [HttpClient],
15445
+ },
15446
+ }),
15447
+ ],
15448
+ exports: [ProvidersV2Component],
15449
+ providers: [
15450
+ CommonMethodsService
14260
15451
  ],
14261
- exports: [UserContentRatingLibComponent],
14262
- providers: [RatingService, UserContentRatingLibService],
14263
15452
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
14264
15453
  },] }
14265
15454
  ];
@@ -14274,5 +15463,5 @@ UserContentRatingLibModule.decorators = [
14274
15463
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
14275
15464
  */
14276
15465
 
14277
- export { AnnouncementsModule, CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentProgressModule, ContentStripWithTabsLibModule, ContentStripWithTabsPillsModule, DataPointsModule, HttpLoaderFactory, HttpLoaderFactory1, MyHammerConfig, ROOT_WIDGET_CONFIG, SlidersLibModule, UserContentRatingLibModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentService, ContentStripWithTabsLibComponent as ɵa, WidgetUserService as ɵb, CardWideV2Component as ɵba, CardKarmaProgramsComponent as ɵbb, CardKarmaProgramsV2Component as ɵbc, ProviderCardComponent as ɵbd, CardPortraitExtComponent as ɵbe, CardAssessmentComponent as ɵbf, CardProgressPortraitLibComponent as ɵbg, CertificateService as ɵbh, CardMdoChannelV1Component as ɵbi, PipePublicURLModule as ɵbj, PipePublicURL as ɵbk, ObjectToArrayPipeModule as ɵbl, ObjectToArrayPipe as ɵbm, DisplayContentTypeLibModule as ɵbn, DisplayContentTypeLibComponent as ɵbo, DefaultThumbnailModule as ɵbp, DefaultThumbnailDirective as ɵbq, PipeDurationTransformModule as ɵbr, PipeDurationTransformPipe as ɵbs, ContentProgressComponent as ɵbt, DialogComponentsModule as ɵbu, CertificateDialogComponent as ɵbv, AvatarPhotoLibModule as ɵbw, AvatarPhotoLibComponent as ɵbx, ContentStripWithTabsPillsComponent as ɵby, CompetencyPassbookComponent as ɵbz, MultilingualTranslationsService as ɵc, CompetencyPassbookService as ɵca, PillsModule as ɵcb, PillsComponent as ɵcc, CompetencyPassbookMdoComponent as ɵcd, CompetencyPassbookMdoService as ɵce, UserContentRatingLibComponent as ɵcf, ScrollableItemDirective as ɵcg, RatingService as ɵch, UserContentRatingLibService as ɵci, MyHammerConfig$1 as ɵcj, SlidersNgContentLibModule as ɵck, SlidersNgContentLibComponent as ɵcl, ScrollableItemModule as ɵcm, ConfigurationsService as ɵd, HorizontalScrollerV2Module as ɵe, HorizontalScrollerV2Component as ɵf, SlidersLibComponent as ɵg, NavigationModule as ɵh, NavigationDirective as ɵi, ImageResponsiveModule as ɵj, ImageResponsiveDirective as ɵk, DataPointsComponent as ɵl, InsiteDataService as ɵm, SkeletonLoaderLibModule as ɵn, SkeletonLoaderLibComponent as ɵo, CalenderComponent as ɵp, CalenderDayComponent as ɵq, CommonStripComponent as ɵr, AnnouncementsComponent as ɵs, CardResourceComponent as ɵt, CardsComponent as ɵu, CardPortraitComponent as ɵv, CardUserComponent as ɵw, CardLandscapeComponent as ɵx, CardWideComponent as ɵy, CardMDOChannelComponent as ɵz };
15466
+ export { AnnouncementsModule, CalenderModule, CardsModule, CbpPlanModule, CommonMethodsService, CommonStripModule, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentProgressModule, ContentStripWithTabsLibModule, ContentStripWithTabsPillsModule, DataPointsModule, HttpLoaderFactory, HttpLoaderFactory1, MDOChannelModule, MyHammerConfig, ProvidersModule, ROOT_WIDGET_CONFIG, SlidersLibModule, TopLearnersModule, UserContentRatingLibModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentService, ContentStripWithTabsLibComponent as ɵa, WidgetUserService as ɵb, CardResourceComponent as ɵba, CardsComponent as ɵbb, CardPortraitComponent as ɵbc, CardUserComponent as ɵbd, CardLandscapeComponent as ɵbe, CardWideComponent as ɵbf, CardMDOChannelComponent as ɵbg, CardWideV2Component as ɵbh, CardKarmaProgramsComponent as ɵbi, CardKarmaProgramsV2Component as ɵbj, ProviderCardComponent as ɵbk, CardPortraitExtComponent as ɵbl, CardAssessmentComponent as ɵbm, CardProgressPortraitLibComponent as ɵbn, CertificateService as ɵbo, CardMdoChannelV1Component as ɵbp, PipePublicURLModule as ɵbq, PipePublicURL as ɵbr, ObjectToArrayPipeModule as ɵbs, ObjectToArrayPipe as ɵbt, DisplayContentTypeLibModule as ɵbu, DisplayContentTypeLibComponent as ɵbv, DefaultThumbnailModule as ɵbw, DefaultThumbnailDirective as ɵbx, PipeDurationTransformModule as ɵby, PipeDurationTransformPipe as ɵbz, MultilingualTranslationsService as ɵc, ContentProgressComponent as ɵca, DialogComponentsModule as ɵcb, CertificateDialogComponent as ɵcc, AvatarPhotoLibModule as ɵcd, AvatarPhotoLibComponent as ɵce, ContentStripWithTabsPillsComponent as ɵcf, CompetencyPassbookComponent as ɵcg, CompetencyPassbookService as ɵch, PillsModule as ɵci, PillsComponent as ɵcj, CompetencyPassbookMdoComponent as ɵck, CompetencyPassbookMdoService as ɵcl, UserContentRatingLibComponent as ɵcm, RatingService as ɵcn, UserContentRatingLibService as ɵco, MdoChannelV1Component as ɵcp, MdoChannelV2Component as ɵcq, ProvidersV2Component as ɵcr, ConfigurationsService as ɵd, HorizontalScrollerV2Module as ɵe, HorizontalScrollerV2Component as ɵf, SlidersLibComponent as ɵg, NavigationModule as ɵh, NavigationDirective as ɵi, ImageResponsiveModule as ɵj, ImageResponsiveDirective as ɵk, DataPointsComponent as ɵl, InsiteDataService as ɵm, SkeletonLoaderLibModule as ɵn, SkeletonLoaderLibComponent as ɵo, CalenderComponent as ɵp, CalenderDayComponent as ɵq, CommonStripComponent as ɵr, AnnouncementsComponent as ɵs, TopLearnersComponent as ɵt, CbpPlanComponent as ɵu, ScrollableItemDirective as ɵv, ScrollableItemModule as ɵw, MyHammerConfig$1 as ɵx, SlidersNgContentLibModule as ɵy, SlidersNgContentLibComponent as ɵz };
14278
15467
  //# sourceMappingURL=sunbird-cb-consumption.js.map