@sunbird-cb/consumption 0.0.43 → 0.0.45

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 (60) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +1391 -135
  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/cards/card-assessment/card-assessment/card-assessment.component.js +175 -0
  6. package/esm2015/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +261 -0
  7. package/esm2015/lib/_common/cards/cards.component.js +24 -25
  8. package/esm2015/lib/_common/cards/cards.module.js +30 -3
  9. package/esm2015/lib/_common/cards/provider-card/provider-card.component.js +168 -0
  10. package/esm2015/lib/_common/content-progress/content-progress.component.js +89 -0
  11. package/esm2015/lib/_common/content-progress/content-progress.module.js +22 -0
  12. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +43 -2
  13. package/esm2015/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.js +225 -0
  14. package/esm2015/lib/_common/dialog-components/dialog-components.module.js +43 -0
  15. package/esm2015/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +2 -4
  16. package/esm2015/lib/_pipes/object-to-array/object-to-array.pipe.js +28 -0
  17. package/esm2015/lib/_pipes/object-to-array/object-to-array.pipe.module.js +19 -0
  18. package/esm2015/lib/_services/certificate.service.js +63 -0
  19. package/esm2015/lib/_services/multilingual-translations.service.js +27 -24
  20. package/esm2015/lib/consumption.module.js +1 -1
  21. package/esm2015/public-api.js +2 -1
  22. package/esm2015/sunbird-cb-consumption.js +36 -27
  23. package/esm5/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +202 -0
  24. package/esm5/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +278 -0
  25. package/esm5/lib/_common/cards/cards.component.js +28 -17
  26. package/esm5/lib/_common/cards/cards.module.js +30 -3
  27. package/esm5/lib/_common/cards/provider-card/provider-card.component.js +177 -0
  28. package/esm5/lib/_common/content-progress/content-progress.component.js +94 -0
  29. package/esm5/lib/_common/content-progress/content-progress.module.js +26 -0
  30. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +58 -8
  31. package/esm5/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.js +248 -0
  32. package/esm5/lib/_common/dialog-components/dialog-components.module.js +47 -0
  33. package/esm5/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +2 -4
  34. package/esm5/lib/_pipes/object-to-array/object-to-array.pipe.js +57 -0
  35. package/esm5/lib/_pipes/object-to-array/object-to-array.pipe.module.js +23 -0
  36. package/esm5/lib/_services/certificate.service.js +70 -0
  37. package/esm5/lib/_services/multilingual-translations.service.js +27 -24
  38. package/esm5/lib/consumption.module.js +1 -1
  39. package/esm5/public-api.js +2 -1
  40. package/esm5/sunbird-cb-consumption.js +36 -27
  41. package/fesm2015/sunbird-cb-consumption.js +1229 -122
  42. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  43. package/fesm5/sunbird-cb-consumption.js +1356 -109
  44. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  45. package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts +28 -0
  46. package/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.d.ts +41 -0
  47. package/lib/_common/cards/cards.component.d.ts +5 -3
  48. package/lib/_common/cards/provider-card/provider-card.component.d.ts +12 -0
  49. package/lib/_common/content-progress/content-progress.component.d.ts +13 -0
  50. package/lib/_common/content-progress/content-progress.module.d.ts +2 -0
  51. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +2 -0
  52. package/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.d.ts +22 -0
  53. package/lib/_common/dialog-components/dialog-components.module.d.ts +2 -0
  54. package/lib/_pipes/object-to-array/object-to-array.pipe.d.ts +4 -0
  55. package/lib/_pipes/object-to-array/object-to-array.pipe.module.d.ts +2 -0
  56. package/lib/_services/certificate.service.d.ts +8 -0
  57. package/package.json +1 -1
  58. package/public-api.d.ts +1 -0
  59. package/sunbird-cb-consumption.d.ts +34 -25
  60. package/sunbird-cb-consumption.metadata.json +1 -1
@@ -3,8 +3,8 @@ import { CommonModule, DatePipe } from '@angular/common';
3
3
  import { Router, RouterModule } 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
- import { ValueService, ConfigurationsService as ConfigurationsService$1, WsEvents, LoggerService, EventService, UtilityService, MultilingualTranslationsService as MultilingualTranslationsService$1 } from '@sunbird-cb/utils-v2';
7
- import { MatButtonModule, MatIconModule, MatProgressSpinnerModule, MatToolbarModule, MatTooltipModule, MatListModule, MatSidenavModule, MatCardModule, MatExpansionModule, MatRadioModule, MatChipsModule, MatInputModule, MatFormFieldModule, MatDialogModule, MatSnackBarModule, MatSelectModule, MatDatepickerModule, MatNativeDateModule, MatTableModule, MatCheckboxModule, MatButtonToggleModule, MatTabsModule, MatAutocompleteModule, MatSnackBar, MatMenuModule, MatRippleModule } from '@angular/material';
6
+ import { ValueService, ConfigurationsService as ConfigurationsService$1, WsEvents, LoggerService, EventService, UtilityService, MultilingualTranslationsService as MultilingualTranslationsService$1, PipeSafeSanitizerModule } from '@sunbird-cb/utils-v2';
7
+ import { MatButtonModule, MatIconModule, MatProgressSpinnerModule, MatToolbarModule, MatTooltipModule, MatListModule, MatSidenavModule, MatCardModule, MatExpansionModule, MatRadioModule, MatChipsModule, MatInputModule, MatFormFieldModule, MatDialogModule, MatSnackBarModule, MatSelectModule, MatDatepickerModule, MatNativeDateModule, MatTableModule, MatCheckboxModule, MatButtonToggleModule, MatTabsModule, MatAutocompleteModule, MatSnackBar, MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatProgressBarModule, MatMenuModule, MatRippleModule } from '@angular/material';
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';
@@ -18,6 +18,7 @@ import { BreakpointObserver } from '@angular/cdk/layout';
18
18
  import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
19
19
  import Hammer from 'hammerjs';
20
20
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
21
+ import { jsPDF } from 'jspdf';
21
22
 
22
23
  /**
23
24
  * @fileoverview added by tsickle
@@ -321,15 +322,13 @@ class HorizontalScrollerV2Component {
321
322
  /** @type {?} */
322
323
  const totalCardsLength = cardWidth * this.widgetsLength;
323
324
  if (totalCardsLength > scrollerWidth) {
324
- arrLength = (scrollerWidth / cardWidth);
325
+ arrLength = Math.round(scrollerWidth / cardWidth);
325
326
  this.defaultMaxWidgets = this.defaultMaxWidgets ? this.widgetsLength < this.defaultMaxWidgets ?
326
327
  this.widgetsLength : this.defaultMaxWidgets : this.defaultMaxWidgets;
327
328
  arrLength = this.defaultMaxWidgets / arrLength;
328
329
  for (let i = 0; i < arrLength; i += 1) {
329
330
  this.bottomDotsArray.push(i);
330
331
  }
331
- // console.log('this.cardSubType', this.cardSubType, arrLength, this.widgetsLength ,
332
- // this.defaultMaxWidgets, scrollerWidth, this.bottomDotsArray)
333
332
  }
334
333
  }
335
334
  }
@@ -2602,33 +2601,36 @@ class MultilingualTranslationsService {
2602
2601
  * @return {?}
2603
2602
  */
2604
2603
  translateLabel(label, type, subtype) {
2605
- /** @type {?} */
2606
- let nlabel = label;
2607
- nlabel = nlabel.toLowerCase();
2608
- /** @type {?} */
2609
- const sl = nlabel.split(' ');
2610
- sl.forEach((/**
2611
- * @param {?} w
2612
- * @param {?} index
2613
- * @return {?}
2614
- */
2615
- (w, index) => {
2616
- if (index !== 0) {
2617
- sl[index] = w[0].toUpperCase() + w.slice(1);
2604
+ if (label) {
2605
+ /** @type {?} */
2606
+ let nlabel = label;
2607
+ nlabel = nlabel && nlabel.toLowerCase();
2608
+ /** @type {?} */
2609
+ const sl = nlabel.split(' ');
2610
+ sl.forEach((/**
2611
+ * @param {?} w
2612
+ * @param {?} index
2613
+ * @return {?}
2614
+ */
2615
+ (w, index) => {
2616
+ if (index !== 0) {
2617
+ sl[index] = w[0].toUpperCase() + w.slice(1);
2618
+ }
2619
+ }));
2620
+ nlabel = sl.join('');
2621
+ nlabel = nlabel.replace(/\s/g, '');
2622
+ if (subtype) {
2623
+ // tslint:disable-next-line: prefer-template
2624
+ /** @type {?} */
2625
+ const translationKey = type + '.' + nlabel + subtype;
2626
+ return this.translate.instant(translationKey);
2618
2627
  }
2619
- }));
2620
- nlabel = sl.join('');
2621
- nlabel = nlabel.replace(/\s/g, '');
2622
- if (subtype) {
2623
2628
  // tslint:disable-next-line: prefer-template
2624
2629
  /** @type {?} */
2625
- const translationKey = type + '.' + nlabel + subtype;
2626
- return this.translate.instant(translationKey);
2630
+ const translationKeyn = type + '.' + nlabel;
2631
+ return this.translate.instant(translationKeyn);
2627
2632
  }
2628
- // tslint:disable-next-line: prefer-template
2629
- /** @type {?} */
2630
- const translationKeyn = type + '.' + nlabel;
2631
- return this.translate.instant(translationKeyn);
2633
+ return label;
2632
2634
  }
2633
2635
  /**
2634
2636
  * @param {?} label
@@ -3921,7 +3923,18 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
3921
3923
  if (response && response.results) {
3922
3924
  // console.log('calling after-- ')
3923
3925
  if (response.results.result.content) {
3924
- this.processStrip(strip, this.transformContentsToWidgets(response.results.result.content, strip), 'done', calculateParentStatus, response.viewMoreUrl);
3926
+ if (strip.key === 'scheduledAssessment') {
3927
+ this.enrollInterval = setInterval((/**
3928
+ * @return {?}
3929
+ */
3930
+ () => {
3931
+ this.checkInvitOnlyAssessments(response.results.result.content, strip, calculateParentStatus, response.viewMoreUrl);
3932
+ // tslint:disable-next-line
3933
+ }), 1000);
3934
+ }
3935
+ else {
3936
+ this.processStrip(strip, this.transformContentsToWidgets(response.results.result.content, strip), 'done', calculateParentStatus, response.viewMoreUrl);
3937
+ }
3925
3938
  }
3926
3939
  else if (response.results.result.Event) {
3927
3940
  this.processStrip(strip, this.transformEventsToWidgets(response.results.result.Event, strip), 'done', calculateParentStatus, response.viewMoreUrl);
@@ -3942,6 +3955,33 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
3942
3955
  }
3943
3956
  });
3944
3957
  }
3958
+ /**
3959
+ * @param {?} content
3960
+ * @param {?} strip
3961
+ * @param {?} calculateParentStatus
3962
+ * @param {?} viewMoreUrl
3963
+ * @return {?}
3964
+ */
3965
+ checkInvitOnlyAssessments(content, strip, calculateParentStatus, viewMoreUrl) {
3966
+ if (localStorage.getItem('enrollmentMapData')) {
3967
+ this.enrollmentMapData = JSON.parse(localStorage.getItem('enrollmentMapData') || '{}');
3968
+ /** @type {?} */
3969
+ let filteredArray = [];
3970
+ content.forEach((/**
3971
+ * @param {?} data
3972
+ * @return {?}
3973
+ */
3974
+ (data) => {
3975
+ if (this.enrollmentMapData[data.identifier]) {
3976
+ data['batch'] = this.enrollmentMapData[data.identifier].batch;
3977
+ data['completionPercentage'] = this.enrollmentMapData[data.identifier].completionPercentage;
3978
+ filteredArray.push(data);
3979
+ }
3980
+ }));
3981
+ this.processStrip(strip, this.transformContentsToWidgets(filteredArray, strip), 'done', calculateParentStatus, viewMoreUrl);
3982
+ clearInterval(this.enrollInterval);
3983
+ }
3984
+ }
3945
3985
  /**
3946
3986
  * @param {?} strip
3947
3987
  * @param {?} request
@@ -5194,6 +5234,7 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
5194
5234
  fetchCiosContentData(strip, calculateParentStatus = true) {
5195
5235
  return __awaiter(this, void 0, void 0, function* () {
5196
5236
  if (strip.request && strip.request.ciosContent && Object.keys(strip.request.ciosContent).length) {
5237
+ debugger;
5197
5238
  /** @type {?} */
5198
5239
  let originalFilters = [];
5199
5240
  if (strip.request &&
@@ -5318,6 +5359,8 @@ if (false) {
5318
5359
  ContentStripWithTabsLibComponent.prototype.enrollInterval;
5319
5360
  /** @type {?} */
5320
5361
  ContentStripWithTabsLibComponent.prototype.todaysEvents;
5362
+ /** @type {?} */
5363
+ ContentStripWithTabsLibComponent.prototype.enrollmentMapData;
5321
5364
  /**
5322
5365
  * @type {?}
5323
5366
  * @private
@@ -7545,14 +7588,12 @@ var NsCardContent$1;
7545
7588
  class CardsComponent extends WidgetBaseComponent {
7546
7589
  /**
7547
7590
  * @param {?} utilitySvc
7548
- * @param {?} configSvc
7549
7591
  * @param {?} contSvc
7550
7592
  * @param {?} router
7551
7593
  */
7552
- constructor(utilitySvc, configSvc, contSvc, router) {
7594
+ constructor(utilitySvc, contSvc, router) {
7553
7595
  super();
7554
7596
  this.utilitySvc = utilitySvc;
7555
- this.configSvc = configSvc;
7556
7597
  this.contSvc = contSvc;
7557
7598
  this.router = router;
7558
7599
  this.triggerTelemetry = new EventEmitter();
@@ -7568,6 +7609,13 @@ class CardsComponent extends WidgetBaseComponent {
7568
7609
  () => {
7569
7610
  this.getCbPlanData();
7570
7611
  }), 1000);
7612
+ this.enrollInterval = setInterval((/**
7613
+ * @return {?}
7614
+ */
7615
+ () => {
7616
+ this.getEnrollmentData();
7617
+ // tslint:disable-next-line
7618
+ }), 1000);
7571
7619
  }
7572
7620
  /**
7573
7621
  * @return {?}
@@ -7595,21 +7643,8 @@ class CardsComponent extends WidgetBaseComponent {
7595
7643
  */
7596
7644
  getRedirectUrlData(content) {
7597
7645
  return __awaiter(this, void 0, void 0, function* () {
7598
- /** @type {?} */
7599
- const userProfile = this.configSvc.userProfile;
7600
7646
  if (content.externalId) {
7601
- /** @type {?} */
7602
- let extUrl = content.redirectUrl.replace('<username>', userProfile.userId)
7603
- // const url = this.router.serializeUrl(
7604
- // this.router.createUrlTree([extUrl])
7605
- // );
7606
- ;
7607
- // const url = this.router.serializeUrl(
7608
- // this.router.createUrlTree([extUrl])
7609
- // );
7610
7647
  this.router.navigate([`app/toc/ext/${content.contentId}`]);
7611
- // window.open(extUrl, '_blank');
7612
- // window.open(content.redirectUrl)
7613
7648
  }
7614
7649
  else {
7615
7650
  /** @type {?} */
@@ -7643,6 +7678,15 @@ class CardsComponent extends WidgetBaseComponent {
7643
7678
  clearInterval(this.cbPlanInterval);
7644
7679
  }
7645
7680
  }
7681
+ /**
7682
+ * @return {?}
7683
+ */
7684
+ getEnrollmentData() {
7685
+ if (localStorage.getItem('enrollmentMapData')) {
7686
+ this.enrollmentMapData = JSON.parse(localStorage.getItem('enrollmentMapData') || '{}');
7687
+ clearInterval(this.enrollInterval);
7688
+ }
7689
+ }
7646
7690
  /**
7647
7691
  * @param {?} data
7648
7692
  * @return {?}
@@ -7654,14 +7698,13 @@ class CardsComponent extends WidgetBaseComponent {
7654
7698
  CardsComponent.decorators = [
7655
7699
  { type: Component, args: [{
7656
7700
  selector: 'sb-uic-cards',
7657
- template: "<div class=\"widget-card-content-new\">\n <ng-container *ngIf=\"widgetData && (((widgetData?.deletedMode || 'none') === 'hide' && !!!isLiveOrMarkForDeletion)\n ? false\n : !((widgetData?.intranetMode || 'none') === 'hide' && !!showIntranetContent))\"\n [ngSwitch]=\"( (widgetData && widgetData?.cardSubType) || 'cardPortraitLib')\">\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"cardPortraitLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'user-card'\" [ngTemplateOutlet]=\"cardUser\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-lib-skeleton'\" [ngTemplateOutlet]=\"cardPortraitLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-lib'\" [ngTemplateOutlet]=\"cardPortraitLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-landscape-lib-skeleton'\" [ngTemplateOutlet]=\"cardLandscapeLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-landscape-lib'\" [ngTemplateOutlet]=\"cardLandscapeLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-lib-skeleton'\" [ngTemplateOutlet]=\"cardWideLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-lib'\" [ngTemplateOutlet]=\"cardWideLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-v2'\" [ngTemplateOutlet]=\"cardWideV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-v2-skeleton'\" [ngTemplateOutlet]=\"cardWideV2Skeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-lib'\" [ngTemplateOutlet]=\"cardMdo\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-home-lib'\" [ngTemplateOutlet]=\"cardMdoHome\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-lib-skeleton'\" [ngTemplateOutlet]=\"cardMdoSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib'\" [ngTemplateOutlet]=\"cardKarmaProgram\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-skeleton'\" [ngTemplateOutlet]=\"cardKarmaProgramSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-v2'\" [ngTemplateOutlet]=\"cardKarmaProgramV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-v2-skeleton'\" [ngTemplateOutlet]=\"cardKarmaProgramV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-ext-lib-skeleton'\" [ngTemplateOutlet]=\"cardPortraitExtLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-ext-lib'\" [ngTemplateOutlet]=\"cardPortraitExtLib\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #cardPortraitLibSkeleton>\n <sb-uic-card-portrait [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-portrait>\n</ng-template>\n<ng-template #cardPortraitLib>\n <sb-uic-card-portrait \n [cbPlanMapData]=\"cbPlanMapData\"\n (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-portrait>\n</ng-template>\n<ng-template #cardLandscapeLibSkeleton>\n <sb-uic-card-landscape [widgetData]=\"widgetData\" \n [cbPlanMapData]=\"cbPlanMapData\" [isCardLoading]=\"true\"></sb-uic-card-landscape>\n</ng-template>\n<ng-template #cardLandscapeLib>\n <sb-uic-card-landscape\n (contentData)=\"getRedirectUrlData($event)\"\n (triggerTelemetry)=\"raiseCardClick($event)\"\n [widgetData]=\"widgetData\"\n [cbPlanMapData]=\"cbPlanMapData\"\n [isCardLoading]=\"false\">\n </sb-uic-card-landscape>\n</ng-template>\n\n<ng-template #cardWideLib>\n <sb-uic-card-wide (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n<ng-template #cardWideLibSkeleton>\n <sb-uic-card-wide [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n\n<ng-template #cardWideV2Skeleton>\n <sb-uic-card-wide-v2 [widgetData]=\"widgetData\" [isCardLoading]=\"true\" ></sb-uic-card-wide-v2>\n</ng-template>\n<ng-template #cardWideV2>\n <sb-uic-card-wide-v2\n (contentData)=\"getRedirectUrlData($event)\"\n (triggerTelemetry)=\"raiseCardClick($event)\"\n [cbPlanMapData]=\"cbPlanMapData\"\n [isCardLoading]=\"false\"\n [widgetData]=\"widgetData\">\n </sb-uic-card-wide-v2>\n</ng-template>\n\n<ng-template #cardUser>\n <sb-uic-card-user [widgetData]=\"widgetData\"></sb-uic-card-user>\n</ng-template>\n<ng-template #cardMdoHome>\n <sb-uic-card-mdo-channel-v1 [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel-v1>\n</ng-template>\n<ng-template #cardMdo>\n <sb-uic-card-mdo-channel [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel>\n</ng-template>\n<ng-template #cardMdoSkeleton>\n <sb-uic-card-mdo-channel [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel>\n</ng-template>\n<ng-template #cardKarmaProgramSkeleton>\n <sb-uic-card-karma-programs [randomColorApply]=\"true\" \n [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-karma-programs>\n</ng-template>\n<ng-template #cardKarmaProgram>\n <sb-uic-card-karma-programs [randomColorApply]=\"true\" \n [isCardLoading]=\"false\" [widgetData]=\"widgetData\"></sb-uic-card-karma-programs>\n</ng-template>\n<ng-template #cardKarmaProgramV2>\n <!-- <sb-uic-card-karma-programs-v2 [widgetData]=\"widgetData\"><sb-uic-card-karma-programs-v2> -->\n</ng-template>\n\n<!-- cios card -->\n<ng-template #cardPortraitExtLibSkeleton>\n <sb-uic-card-portrait-ext [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-portrait-ext>\n</ng-template>\n<ng-template #cardPortraitExtLib>\n <sb-uic-card-portrait-ext \n [cbPlanMapData]=\"cbPlanMapData\"\n (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-portrait-ext>\n</ng-template>",
7701
+ template: "<div class=\"widget-card-content-new\">\n <ng-container *ngIf=\"widgetData && (((widgetData?.deletedMode || 'none') === 'hide' && !!!isLiveOrMarkForDeletion)\n ? false\n : !((widgetData?.intranetMode || 'none') === 'hide' && !!showIntranetContent))\"\n [ngSwitch]=\"( (widgetData && widgetData?.cardSubType) || 'cardPortraitLib')\">\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"cardPortraitLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'user-card'\" [ngTemplateOutlet]=\"cardUser\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-lib-skeleton'\" [ngTemplateOutlet]=\"cardPortraitLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-lib'\" [ngTemplateOutlet]=\"cardPortraitLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-landscape-lib-skeleton'\" [ngTemplateOutlet]=\"cardLandscapeLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-landscape-lib'\" [ngTemplateOutlet]=\"cardLandscapeLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-lib-skeleton'\" [ngTemplateOutlet]=\"cardWideLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-lib'\" [ngTemplateOutlet]=\"cardWideLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-v2'\" [ngTemplateOutlet]=\"cardWideV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-v2-skeleton'\" [ngTemplateOutlet]=\"cardWideV2Skeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-lib'\" [ngTemplateOutlet]=\"cardMdo\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-home-lib'\" [ngTemplateOutlet]=\"cardMdoHome\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-lib-skeleton'\" [ngTemplateOutlet]=\"cardMdoSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-scheduled-assessment'\" [ngTemplateOutlet]=\"cardScheduledAssessment\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-scheduled-assessment-skeleton'\" [ngTemplateOutlet]=\"cardScheduledAssessmentSkelton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib'\" [ngTemplateOutlet]=\"cardKarmaProgram\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-skeleton'\" [ngTemplateOutlet]=\"cardKarmaProgramSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-progress-portrait-lib'\" [ngTemplateOutlet]=\"cardProgressLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-progress-portrait-lib-skeleton'\" [ngTemplateOutlet]=\"cardProgressLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-v2'\" [ngTemplateOutlet]=\"cardKarmaProgramV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-v2-skeleton'\" [ngTemplateOutlet]=\"cardKarmaProgramV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-providers-lib'\" [ngTemplateOutlet]=\"cardProvider\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-ext-lib-skeleton'\" [ngTemplateOutlet]=\"cardPortraitExtLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-ext-lib'\" [ngTemplateOutlet]=\"cardPortraitExtLib\"></ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #cardPortraitLibSkeleton>\n <sb-uic-card-portrait [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-portrait>\n</ng-template>\n<ng-template #cardPortraitLib>\n <sb-uic-card-portrait \n [cbPlanMapData]=\"cbPlanMapData\"\n (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-portrait>\n</ng-template>\n<ng-template #cardLandscapeLibSkeleton>\n <sb-uic-card-landscape [widgetData]=\"widgetData\" \n [cbPlanMapData]=\"cbPlanMapData\" [isCardLoading]=\"true\"></sb-uic-card-landscape>\n</ng-template>\n<ng-template #cardLandscapeLib>\n <sb-uic-card-landscape\n (contentData)=\"getRedirectUrlData($event)\"\n (triggerTelemetry)=\"raiseCardClick($event)\"\n [widgetData]=\"widgetData\"\n [cbPlanMapData]=\"cbPlanMapData\"\n [isCardLoading]=\"false\">\n </sb-uic-card-landscape>\n</ng-template>\n\n<ng-template #cardWideLib>\n <sb-uic-card-wide (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n<ng-template #cardWideLibSkeleton>\n <sb-uic-card-wide [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n\n<ng-template #cardWideV2Skeleton>\n <sb-uic-card-wide-v2 [widgetData]=\"widgetData\" [isCardLoading]=\"true\" ></sb-uic-card-wide-v2>\n</ng-template>\n<ng-template #cardWideV2>\n <sb-uic-card-wide-v2\n (contentData)=\"getRedirectUrlData($event)\"\n (triggerTelemetry)=\"raiseCardClick($event)\"\n [cbPlanMapData]=\"cbPlanMapData\"\n [isCardLoading]=\"false\"\n [widgetData]=\"widgetData\">\n </sb-uic-card-wide-v2>\n</ng-template>\n\n<ng-template #cardUser>\n <sb-uic-card-user [widgetData]=\"widgetData\"></sb-uic-card-user>\n</ng-template>\n<ng-template #cardMdoHome>\n <sb-uic-card-mdo-channel-v1 [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel-v1>\n</ng-template>\n<ng-template #cardMdo>\n <sb-uic-card-mdo-channel [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel>\n</ng-template>\n<ng-template #cardMdoSkeleton>\n <sb-uic-card-mdo-channel [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel>\n</ng-template>\n<ng-template #cardKarmaProgramSkeleton>\n <sb-uic-card-karma-programs [randomColorApply]=\"true\" \n [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-karma-programs>\n</ng-template>\n<ng-template #cardKarmaProgram>\n <sb-uic-card-karma-programs [randomColorApply]=\"true\" \n [isCardLoading]=\"false\" [widgetData]=\"widgetData\"></sb-uic-card-karma-programs>\n</ng-template>\n<ng-template #cardScheduledAssessmentSkelton>\n <sb-uic-card-assessment [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-assessment>\n</ng-template>\n<ng-template #cardScheduledAssessment>\n <sb-uic-card-assessment [widgetData]=\"widgetData\" (contentData)=\"getRedirectUrlData($event)\" [isCardLoading]=\"false\" [enrollmentMapData]=\"enrollmentMapData\"></sb-uic-card-assessment>\n</ng-template>\n<ng-template #cardProgressLibSkeleton>\n <sb-uic-card-progress-portrait-lib \n [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-progress-portrait-lib>\n</ng-template>\n<ng-template #cardProgressLib>\n <sb-uic-card-progress-portrait-lib \n [isCardLoading]=\"false\" (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\"></sb-uic-card-progress-portrait-lib>\n</ng-template>\n<ng-template #cardKarmaProgramV2>\n <!-- <sb-uic-card-karma-programs-v2 [widgetData]=\"widgetData\"><sb-uic-card-karma-programs-v2> -->\n</ng-template>\n<ng-template #cardProvider>\n <sb-uic-provider-card ></sb-uic-provider-card>\n</ng-template>\n\n<!-- cios card -->\n<ng-template #cardPortraitExtLibSkeleton>\n <sb-uic-card-portrait-ext [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-portrait-ext>\n</ng-template>\n<ng-template #cardPortraitExtLib>\n <sb-uic-card-portrait-ext \n [cbPlanMapData]=\"cbPlanMapData\"\n (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-portrait-ext>\n</ng-template>\n",
7658
7702
  styles: [""]
7659
7703
  }] }
7660
7704
  ];
7661
7705
  /** @nocollapse */
7662
7706
  CardsComponent.ctorParameters = () => [
7663
7707
  { type: UtilityService },
7664
- { type: ConfigurationsService$1 },
7665
7708
  { type: WidgetContentService },
7666
7709
  { type: Router }
7667
7710
  ];
@@ -7680,16 +7723,15 @@ if (false) {
7680
7723
  CardsComponent.prototype.cbPlanMapData;
7681
7724
  /** @type {?} */
7682
7725
  CardsComponent.prototype.cbPlanInterval;
7726
+ /** @type {?} */
7727
+ CardsComponent.prototype.enrollInterval;
7728
+ /** @type {?} */
7729
+ CardsComponent.prototype.enrollmentMapData;
7683
7730
  /**
7684
7731
  * @type {?}
7685
7732
  * @private
7686
7733
  */
7687
7734
  CardsComponent.prototype.utilitySvc;
7688
- /**
7689
- * @type {?}
7690
- * @private
7691
- */
7692
- CardsComponent.prototype.configSvc;
7693
7735
  /**
7694
7736
  * @type {?}
7695
7737
  * @private
@@ -7943,6 +7985,49 @@ PipePublicURLModule.decorators = [
7943
7985
  },] }
7944
7986
  ];
7945
7987
 
7988
+ /**
7989
+ * @fileoverview added by tsickle
7990
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7991
+ */
7992
+ class ObjectToArrayPipe {
7993
+ // transform(value: any, ...args: any[]): any[] {
7994
+ // console.log("function called")
7995
+ // if (!value) {
7996
+ // return [];
7997
+ // }
7998
+ // console.log(Object.keys(value).map(key => ({ key, value: value[key] })), "Object.keys(value).map(key => ({ key, value: value[key] }))==----------")
7999
+ // return Object.keys(value).map(key => ({ key, value: value[key] }));
8000
+ // }
8001
+ /**
8002
+ * @param {...?} args
8003
+ * @return {?}
8004
+ */
8005
+ transform(...args) {
8006
+ return args;
8007
+ }
8008
+ }
8009
+ ObjectToArrayPipe.decorators = [
8010
+ { type: Pipe, args: [{
8011
+ name: 'objectToArray'
8012
+ },] }
8013
+ ];
8014
+
8015
+ /**
8016
+ * @fileoverview added by tsickle
8017
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8018
+ */
8019
+ class ObjectToArrayPipeModule {
8020
+ }
8021
+ ObjectToArrayPipeModule.decorators = [
8022
+ { type: NgModule, args: [{
8023
+ declarations: [ObjectToArrayPipe],
8024
+ imports: [
8025
+ CommonModule,
8026
+ ],
8027
+ exports: [ObjectToArrayPipe],
8028
+ },] }
8029
+ ];
8030
+
7946
8031
  /**
7947
8032
  * @fileoverview added by tsickle
7948
8033
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -9350,6 +9435,173 @@ if (false) {
9350
9435
  CardKarmaProgramsV2Component.prototype.router;
9351
9436
  }
9352
9437
 
9438
+ /**
9439
+ * @fileoverview added by tsickle
9440
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9441
+ */
9442
+ class ProviderCardComponent {
9443
+ constructor() {
9444
+ this.providers = [
9445
+ {
9446
+ name: 'Indian Institute of Management Bengaluru (IIMB)',
9447
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/IIMB/all-CBP',
9448
+ logo: 'assets/icons/top-providers/ef8a88cf-33cc-42de-bdc3-7deed1ab2418.png'
9449
+ },
9450
+ {
9451
+ name: 'Department for Promotion of Industry and Internal Trade',
9452
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Department for Promotion of Industry and Internal Trade/all-CBP',
9453
+ logo: 'assets/icons/top-providers/0d400bdf-4ad8-45bf-914c-be44018c2d07.png'
9454
+ },
9455
+ {
9456
+ name: 'RAKNPA',
9457
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/RAKNPA/all-CBP',
9458
+ logo: 'assets/icons/top-providers/1becfffa-956e-48ba-8ffd-77c19cd720c8.jpeg'
9459
+ },
9460
+ {
9461
+ name: 'Lal Bahadur Shastri National Academy of Administration (LBSNAA)',
9462
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Ministry of Environment, Forest and Climate Change/all-CBP',
9463
+ logo: 'assets/icons/top-providers/1d76c041-a7c9-437c-94d9-36d997f3804c.jpeg'
9464
+ },
9465
+ {
9466
+ name: 'Ministry of Environment, Forest and Climate Change',
9467
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/LBSNAA/all-CBP',
9468
+ logo: 'assets/icons/top-providers/1fb72c3f-1c96-4600-8e22-09871a85e6c4.jpeg'
9469
+ },
9470
+ {
9471
+ name: 'ISTM',
9472
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Institute of Secretariat Training and Management/all-CBP',
9473
+ logo: 'assets/icons/top-providers/6f046f76-b778-476a-987b-8669e106b44c.jpeg'
9474
+ },
9475
+ {
9476
+ name: 'Department of Expenditure',
9477
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Department%20of%20Expenditure%20/all-CBP',
9478
+ logo: 'assets/icons/top-providers/7f6df809-6930-44f4-abcf-c8297363d3e0.png'
9479
+ },
9480
+ {
9481
+ name: 'Department of Personnel and Training DoPT',
9482
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Department%20of%20Personnel%20and%20Training%20DoPT/all-CBP',
9483
+ logo: 'assets/icons/top-providers/dopt.png'
9484
+ },
9485
+ {
9486
+ name: 'Indian Cybercrime Coordination Centre - I4C',
9487
+ link: 'https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Indian%20Cybercrime%20Coordination%20Centre%20-%20I4C/all-CBP',
9488
+ logo: 'assets/icons/top-providers/7f8cab8e-9d22-44ba-a41e-83b907e5a5f0.jpeg'
9489
+ },
9490
+ {
9491
+ "name": "Capacity Building Commission",
9492
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Capacity%20Building%20Commission/all-CBP",
9493
+ "logo": "assets/icons/top-providers/33e9c66f-312f-4244-901e-7d7525ae8847.jpeg"
9494
+ },
9495
+ {
9496
+ "name": "Ministry of Railways",
9497
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Ministry%20of%20Railways/all-CBP",
9498
+ "logo": "assets/icons/top-providers/36d93700-c43f-499e-ab3c-68ea76388a2a.png"
9499
+ },
9500
+ {
9501
+ "name": "World Bank",
9502
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/World%20Bank/all-CBP",
9503
+ "logo": "assets/icons/top-providers/385ff4a0-41af-4114-8015-10d26c1e8af4.jpeg"
9504
+ },
9505
+ {
9506
+ "name": "Sashastra Seema Bal (SSB)",
9507
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Sashastra%20Seema%20Bal%20%28SSB%29/all-CBP",
9508
+ "logo": "assets/icons/top-providers/778b56bf-8946-45fe-87d3-358203f2faf4.png"
9509
+ },
9510
+ {
9511
+ "name": "SVPNPA",
9512
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/SVPNPA/all-CBP",
9513
+ "logo": "assets/icons/top-providers/2862d2e5-473e-4c55-abaa-8a2f86e5eee4.jpeg"
9514
+ },
9515
+ {
9516
+ "name": "Microsoft",
9517
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Microsoft/all-CBP",
9518
+ "logo": "assets/icons/top-providers/53407dd6-d22c-4dba-a394-015fae667636.png"
9519
+ },
9520
+ {
9521
+ "name": "Indian Institute of Public Administration",
9522
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Indian%20Institute%20of%20Public%20Administration/all-CBP",
9523
+ "logo": "assets/icons/top-providers/869960d7-2dc7-4205-8c4b-11321d901060.jpeg"
9524
+ },
9525
+ {
9526
+ "name": "Food Corporation of India (FCI)",
9527
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Food%20Corporation%20of%20India%20%28FCI%29/all-CBP",
9528
+ "logo": "assets/icons/top-providers/4183673f-9063-4fa9-bf84-1e8856c8e531.jpeg"
9529
+ },
9530
+ {
9531
+ "name": "National Telecommunications Institute for Policy Research, Innovation and Training",
9532
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/NTIPRIT/all-CBP",
9533
+ "logo": "assets/icons/top-providers/a976f025-e990-49b0-a52a-9bd0a8e43584.jpeg"
9534
+ },
9535
+ {
9536
+ "name": "The Art of Living",
9537
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/The%20Art%20of%20Living/all-CBP",
9538
+ "logo": "assets/icons/top-providers/abbb8f64-84db-4a92-85c9-1b394ffab71c.png"
9539
+ },
9540
+ {
9541
+ "name": "National Institute of Communication Finance",
9542
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/National%20Institute%20of%20Communication%20Finance/all-CBP",
9543
+ "logo": "assets/icons/top-providers/b6bf0be6-7e29-4187-a29d-da6db1db7c69.jpeg"
9544
+ },
9545
+ {
9546
+ "name": "Department of Posts",
9547
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Department%20of%20Posts/all-CBP",
9548
+ "logo": "assets/icons/top-providers/cf567f4c-d0fa-447f-aba4-cb378ea3c90d.png"
9549
+ },
9550
+ {
9551
+ "name": "Government e Market Place(GeM)",
9552
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Government%20e%20Market%20Place%28GeM%29/all-CBP",
9553
+ "logo": "assets/icons/top-providers/f445c11b-ff73-4ca4-9dea-8d8945d92a4a.png"
9554
+ },
9555
+ {
9556
+ "name": "Bharat Sanchar Nigam Limited(BSNL)",
9557
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Bharat%20Sanchar%20Nigam%20Limited%28BSNL%29/all-CBP",
9558
+ "logo": "assets/icons/top-providers/fc67226a-4bbc-449a-8c5c-e1b338716545.png"
9559
+ },
9560
+ {
9561
+ "name": "Defence Accounts Department (DAD)",
9562
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Defence%20Accounts%20Department%20%28DAD%29/all-CBP",
9563
+ "logo": "assets/icons/top-providers/fccdb487-a389-48d9-bce0-c4d64315b546.png"
9564
+ },
9565
+ {
9566
+ "name": "Morarji Desai National Institute of Yoga (MDNIY)",
9567
+ "link": "https://portal.igotkarmayogi.gov.in/app/learn/browse-by/provider/Morarji%20Desai%20National%20Institute%20of%20Yoga%20%28MDNIY%29/all-CBP",
9568
+ "logo": "assets/icons/top-providers/fcde4c60-7ccd-456e-a5df-260dcfa2d3ee.png"
9569
+ }
9570
+ ];
9571
+ this.colors = [
9572
+ '#EF941D', '#F97440', '#35B5B0', '#9988FF', '#816FEC',
9573
+ '#254092', '#926525', '#4F72DF'
9574
+ ];
9575
+ }
9576
+ /**
9577
+ * @return {?}
9578
+ */
9579
+ ngOnInit() {
9580
+ }
9581
+ /**
9582
+ * @param {?} provider
9583
+ * @return {?}
9584
+ */
9585
+ redirectTo(provider) {
9586
+ window.open(provider.link, '_blank');
9587
+ }
9588
+ }
9589
+ ProviderCardComponent.decorators = [
9590
+ { type: Component, args: [{
9591
+ selector: 'sb-uic-provider-card',
9592
+ template: "<div class=\"providers-container\">\n <div class=\"provider-card\" *ngFor=\"let provider of providers; let i = index\" [ngStyle]=\"{'border-top': '72px solid ' + colors[i % colors.length]}\">\n <div class=\"circle-wrapper\">\n <div class=\"circle\">\n <div class=\"background-circle\">\n <img [src]=\"provider.logo\" alt=\"{{ provider.name }}\">\n </div>\n </div>\n </div>\n <div class=\"provider-content\">\n <p>{{ provider.name }}</p>\n <div class=\"view-provider-button\" (click)=\"redirectTo(provider)\">View Provider ></div>\n </div>\n </div>\n </div>\n ",
9593
+ styles: [".providers-container{display:flex;justify-content:center}.provider-card{height:168px;width:245px;margin:20px 8px;border-radius:12px;box-shadow:0 2px 4px rgba(0,0,0,.1);background-color:#fff;position:relative;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;z-index:1}.circle-wrapper{position:absolute;display:flex;justify-content:center;top:-50px;z-index:1}.circle{width:90px;height:90px;border-radius:50%;background-color:#f0f0f0;box-shadow:0 4px 8px rgba(0,0,0,.1)}.background-circle{position:relative;display:flex;justify-content:center;align-items:center;height:80px;width:80px;background-color:#fff;border-radius:50%;border:5px solid #fff;margin:0 auto}.background-circle img{width:66px;height:50px;background-size:cover;background-position:center;position:relative}.provider-content{padding:16px;text-align:center;flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.provider-content p{font-size:14px;font-weight:700;font-family:Lato,sans-serif;margin-bottom:8px;line-height:16.8px;word-wrap:break-word;white-space:normal;height:51px}.view-provider-button{color:#1b4ca1;font-size:14px;font-family:Lato,sans-serif;cursor:pointer;transition:color .3s}"]
9594
+ }] }
9595
+ ];
9596
+ /** @nocollapse */
9597
+ ProviderCardComponent.ctorParameters = () => [];
9598
+ if (false) {
9599
+ /** @type {?} */
9600
+ ProviderCardComponent.prototype.providers;
9601
+ /** @type {?} */
9602
+ ProviderCardComponent.prototype.colors;
9603
+ }
9604
+
9353
9605
  /**
9354
9606
  * @fileoverview added by tsickle
9355
9607
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -9514,37 +9766,24 @@ if (false) {
9514
9766
  * @fileoverview added by tsickle
9515
9767
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9516
9768
  */
9517
- class CardMdoChannelV1Component {
9769
+ // @Directive({
9770
+ // selector: '[callFunctionOnInit]'
9771
+ // })
9772
+ class CardAssessmentComponent {
9518
9773
  /**
9519
- * @param {?} events
9520
- * @param {?} translate
9521
- * @param {?} langtranslations
9522
9774
  * @param {?} configSvc
9523
9775
  * @param {?} contSvc
9524
- * @param {?} router
9525
9776
  */
9526
- constructor(events, translate, langtranslations, configSvc, contSvc, router) {
9527
- this.events = events;
9528
- this.translate = translate;
9529
- this.langtranslations = langtranslations;
9777
+ constructor(configSvc, contSvc) {
9530
9778
  this.configSvc = configSvc;
9531
9779
  this.contSvc = contSvc;
9532
- this.router = router;
9533
- this.channelData = new EventEmitter();
9534
- this.emitTelemetry = new EventEmitter();
9535
- this.widgetType = '';
9536
- this.widgetSubType = '';
9537
- this.langtranslations.languageSelectedObservable.subscribe((/**
9538
- * @return {?}
9539
- */
9540
- () => {
9541
- if (localStorage.getItem('websiteLanguage')) {
9542
- this.translate.setDefaultLang('en');
9543
- /** @type {?} */
9544
- const lang = (/** @type {?} */ (localStorage.getItem('websiteLanguage')));
9545
- this.translate.use(lang);
9546
- }
9547
- }));
9780
+ this.contentData = new EventEmitter();
9781
+ this.isCardLoading = false;
9782
+ this.stripData = [];
9783
+ this.enrollList = [];
9784
+ this.activeResource = [];
9785
+ this.daysRemaining = 0;
9786
+ this.daysPending = false;
9548
9787
  }
9549
9788
  /**
9550
9789
  * @return {?}
@@ -9554,8 +9793,7 @@ class CardMdoChannelV1Component {
9554
9793
  const instanceConfig = this.configSvc.instanceConfig;
9555
9794
  if (instanceConfig) {
9556
9795
  this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
9557
- this.sourceLogos = instanceConfig.sources;
9558
- this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
9796
+ this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
9559
9797
  }
9560
9798
  else {
9561
9799
  this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
@@ -9563,85 +9801,938 @@ class CardMdoChannelV1Component {
9563
9801
  }
9564
9802
  }
9565
9803
  /**
9566
- * @param {?} contentData
9804
+ * @param {?} startDate
9567
9805
  * @return {?}
9568
9806
  */
9569
- raiseTelemetry(contentData) {
9570
- this.emitTelemetry.emit(contentData);
9571
- if (this.widgetData) {
9572
- contentData['typeOfTelemetry'] = 'mdo-channel';
9807
+ updateStartDate(startDate) {
9808
+ this.startDate = startDate;
9809
+ this.startCountdown(this.startDate);
9810
+ }
9811
+ /**
9812
+ * @param {?} date
9813
+ * @return {?}
9814
+ */
9815
+ startCountdown(date) {
9816
+ // Update the countdown immediately on start
9817
+ this.updateCountdown(date);
9818
+ // Update the countdown every second
9819
+ this.intervalId = setInterval((/**
9820
+ * @return {?}
9821
+ */
9822
+ () => {
9823
+ this.updateCountdown(date);
9824
+ }), 1000);
9825
+ }
9826
+ // Method to update the countdown values
9827
+ /**
9828
+ * @param {?} targetDate
9829
+ * @return {?}
9830
+ */
9831
+ updateCountdown(targetDate) {
9832
+ /** @type {?} */
9833
+ const now = new Date().getTime();
9834
+ // Current time in milliseconds
9835
+ /** @type {?} */
9836
+ const targetTime = new Date(targetDate).getTime();
9837
+ /** @type {?} */
9838
+ const distance = targetTime - now;
9839
+ if (distance > 0) {
9840
+ this.daysRemaining = Math.ceil(distance / (1000 * 60 * 60 * 24));
9841
+ this.daysPending = true;
9842
+ }
9843
+ else {
9844
+ this.daysRemaining = 0;
9845
+ this.daysPending = false;
9846
+ this.clearTimer();
9573
9847
  }
9574
- this.contSvc.changeTelemetryData(contentData);
9575
9848
  }
9849
+ // Method to clear the interval
9576
9850
  /**
9577
- * @param {?} channeldata
9578
9851
  * @return {?}
9579
9852
  */
9580
- channelClick(channeldata) {
9581
- this.channelData.emit(channeldata);
9853
+ clearTimer() {
9854
+ clearInterval(this.intervalId);
9582
9855
  }
9583
9856
  /**
9584
- * @param {?} content
9585
9857
  * @return {?}
9586
9858
  */
9587
- redirectTo(content) {
9588
- this.router.navigate([`/app/learn/mdo-channels/${content.orgName}/${content.identifier}/micro-sites`]);
9859
+ ngOnDestroy() {
9860
+ this.clearTimer();
9861
+ }
9862
+ /**
9863
+ * @param {?} contentData
9864
+ * @return {?}
9865
+ */
9866
+ getRedirectUrlData(contentData) {
9867
+ // for telemetry
9868
+ if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {
9869
+ contentData['typeOfTelemetry'] = this.widgetData.context.pageSection;
9870
+ }
9871
+ this.contSvc.changeTelemetryData(contentData);
9872
+ // for redirection
9873
+ this.contentData.emit(contentData);
9589
9874
  }
9590
9875
  }
9591
- CardMdoChannelV1Component.decorators = [
9876
+ CardAssessmentComponent.decorators = [
9592
9877
  { type: Component, args: [{
9593
- selector: 'sb-uic-card-mdo-channel-v1',
9594
- template: "<mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"raiseTelemetry(widgetData?.content); redirectTo(widgetData?.content); $event.stopPropagation()\"\n i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <ng-container *ngIf=\"widgetData?.content?.imgUrl; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.imgUrl\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.orgName\" />\n </ng-container>\n <ng-template #defaultImg>\n <sb-uic-avatar-photo [randomColor]=\"true\" [name]=\"widgetData?.content?.orgName\" [photoUrl]=\"widgetData?.content?.imgUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </ng-template>\n </div>\n <div class=\"flex title-container px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-center mat-subheading-2 title-text ws-mat-black-text\">\n {{ widgetData?.content?.orgName }}\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n</mat-card>",
9595
- styles: [".card-channels-container{position:relative;width:245px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;min-height:156px;height:156px;max-height:156px;margin:20px 8px;background:#7faeff!important;border-radius:12px;padding:4px!important}.card-channels-container .min-top{background:inherit;margin-bottom:0;height:inherit}.card-channels-container .image-container{background-color:#fff;width:inherit;height:86px;max-height:86px;overflow:hidden;display:flex;align-items:center;justify-content:center;border-radius:12px}.card-channels-container .card-img{max-height:62px;min-height:62px;display:block;-o-object-fit:fill;object-fit:contain}.card-channels-container .mat-subheading-1{font:600 14px/24px Montserrat}.card-channels-container .title-container{background:inherit}.card-channels-container .description-text{position:relative;overflow:hidden;height:51px}.card-channels-container .title-text{word-break:break-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}"]
9878
+ selector: 'sb-uic-card-assessment',
9879
+ template: "<ng-container *ngIf=\"!isCardLoading\">\n<ng-container >\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t<div class=\"display-contents\">\n\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t<mat-card-content>\n\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\" [src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-s font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\"\n\t\t\t\t\t\t\t\t\t\t\t[wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in </span>\n\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"daysPending\"> {{ startCountdown(widgetData?.content?.batch?.startDate) }}<div id=\"demo\"></div> </span>\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"!daysPending\" class=\"start-btn\"> Start Assessment\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<span class=\"time-span flex items-center justify-center\">{{widgetData?.content?.batch?.startDate | date: 'd MMM, y' }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t</div>\n\t\t\t\t</mat-card-content>\n\t\t\t</ng-container>\n\t\t</div>\n\t</a>\n</mat-card>\n</ng-container>\n</ng-container>\n\n\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\" [height]=\"'155px'\"\n\t\t\t\t\t\t\t\t\t\t\t></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-l font-normal\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer\n\t\t\t\t\t\t\t\tclass=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>",
9880
+ styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:335px;margin-top:16px}.image-container{width:155px;height:120px;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.title-container{margin-left:12px}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{width:75%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;margin-right:4px;box-shadow:0 2px 1px -1px rgb(0 0 0 / 20%),0 1px 1px 0 rgb(0 0 0 / 14%),0 1px 3px 0 rgb(0 0 0 / 12%)}.course_logo_box img.source-icon{height:28px;width:28px;padding:5px;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:rgba(239,149,30,.16)!important;text-align:center;box-sizing:border-box}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}"]
9596
9881
  }] }
9597
9882
  ];
9598
9883
  /** @nocollapse */
9599
- CardMdoChannelV1Component.ctorParameters = () => [
9600
- { type: EventService },
9601
- { type: TranslateService },
9602
- { type: MultilingualTranslationsService$1 },
9884
+ CardAssessmentComponent.ctorParameters = () => [
9603
9885
  { type: ConfigurationsService$1 },
9604
- { type: WidgetContentService },
9605
- { type: Router }
9886
+ { type: WidgetContentService }
9606
9887
  ];
9607
- CardMdoChannelV1Component.propDecorators = {
9888
+ CardAssessmentComponent.propDecorators = {
9608
9889
  widgetData: [{ type: Input }],
9609
- channelData: [{ type: Output }],
9610
- emitTelemetry: [{ type: Output }]
9890
+ enrollmentMapData: [{ type: Input }],
9891
+ contentData: [{ type: Output }],
9892
+ isCardLoading: [{ type: Input }]
9611
9893
  };
9612
9894
  if (false) {
9613
9895
  /** @type {?} */
9614
- CardMdoChannelV1Component.prototype.widgetData;
9896
+ CardAssessmentComponent.prototype.widgetData;
9615
9897
  /** @type {?} */
9616
- CardMdoChannelV1Component.prototype.channelData;
9898
+ CardAssessmentComponent.prototype.enrollmentMapData;
9617
9899
  /** @type {?} */
9618
- CardMdoChannelV1Component.prototype.emitTelemetry;
9900
+ CardAssessmentComponent.prototype.contentData;
9619
9901
  /** @type {?} */
9620
- CardMdoChannelV1Component.prototype.defaultThumbnail;
9902
+ CardAssessmentComponent.prototype.isCardLoading;
9621
9903
  /** @type {?} */
9622
- CardMdoChannelV1Component.prototype.sourceLogos;
9904
+ CardAssessmentComponent.prototype.stripData;
9623
9905
  /** @type {?} */
9624
- CardMdoChannelV1Component.prototype.defaultSLogo;
9906
+ CardAssessmentComponent.prototype.enrollList;
9625
9907
  /** @type {?} */
9626
- CardMdoChannelV1Component.prototype.widgetType;
9908
+ CardAssessmentComponent.prototype.activeResource;
9627
9909
  /** @type {?} */
9628
- CardMdoChannelV1Component.prototype.widgetSubType;
9910
+ CardAssessmentComponent.prototype.defaultThumbnail;
9911
+ /** @type {?} */
9912
+ CardAssessmentComponent.prototype.defaultSLogo;
9913
+ /** @type {?} */
9914
+ CardAssessmentComponent.prototype.daysRemaining;
9915
+ /** @type {?} */
9916
+ CardAssessmentComponent.prototype.startDate;
9917
+ /** @type {?} */
9918
+ CardAssessmentComponent.prototype.daysPending;
9629
9919
  /**
9630
9920
  * @type {?}
9631
9921
  * @private
9632
9922
  */
9633
- CardMdoChannelV1Component.prototype.events;
9923
+ CardAssessmentComponent.prototype.intervalId;
9634
9924
  /**
9635
9925
  * @type {?}
9636
9926
  * @private
9637
9927
  */
9638
- CardMdoChannelV1Component.prototype.translate;
9928
+ CardAssessmentComponent.prototype.configSvc;
9639
9929
  /**
9640
9930
  * @type {?}
9641
9931
  * @private
9642
9932
  */
9643
- CardMdoChannelV1Component.prototype.langtranslations;
9644
- /**
9933
+ CardAssessmentComponent.prototype.contSvc;
9934
+ }
9935
+
9936
+ /**
9937
+ * @fileoverview added by tsickle
9938
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9939
+ */
9940
+ const ɵ0$3 = /**
9941
+ * @param {?} id
9942
+ * @return {?}
9943
+ */
9944
+ (id) => `certreg/v2/certs/download/${id}`, ɵ1$2 = /**
9945
+ * @param {?} id
9946
+ * @return {?}
9947
+ */
9948
+ (id) => `apis/protected/v8/cohorts/course/batch/cert/download/${id}`;
9949
+ /** @type {?} */
9950
+ const urls = {
9951
+ DOWNLOAD_CERTIFICATE: (ɵ0$3),
9952
+ DOWNLOAD_CERTIFICATE_v2: (ɵ1$2),
9953
+ };
9954
+ class CertificateService {
9955
+ /**
9956
+ * @param {?} http
9957
+ */
9958
+ constructor(http) {
9959
+ this.http = http;
9960
+ }
9961
+ /**
9962
+ * @param {?} id
9963
+ * @return {?}
9964
+ */
9965
+ downloadCertificate(id) {
9966
+ return this.http.get(urls.DOWNLOAD_CERTIFICATE(id));
9967
+ }
9968
+ /**
9969
+ * @param {?} id
9970
+ * @return {?}
9971
+ */
9972
+ downloadCertificate_v2(id) {
9973
+ return this.http.get(urls.DOWNLOAD_CERTIFICATE_v2(id));
9974
+ }
9975
+ }
9976
+ CertificateService.decorators = [
9977
+ { type: Injectable, args: [{
9978
+ providedIn: 'root'
9979
+ },] }
9980
+ ];
9981
+ /** @nocollapse */
9982
+ CertificateService.ctorParameters = () => [
9983
+ { type: HttpClient }
9984
+ ];
9985
+ /** @nocollapse */ CertificateService.ngInjectableDef = ɵɵdefineInjectable({ factory: function CertificateService_Factory() { return new CertificateService(ɵɵinject(HttpClient)); }, token: CertificateService, providedIn: "root" });
9986
+ if (false) {
9987
+ /**
9988
+ * @type {?}
9989
+ * @private
9990
+ */
9991
+ CertificateService.prototype.http;
9992
+ }
9993
+
9994
+ /**
9995
+ * @fileoverview added by tsickle
9996
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9997
+ */
9998
+ class CertificateDialogComponent {
9999
+ /**
10000
+ * @param {?} environment
10001
+ * @param {?} events
10002
+ * @param {?} translate
10003
+ * @param {?} langtranslations
10004
+ * @param {?} dialogRef
10005
+ * @param {?} data
10006
+ */
10007
+ constructor(environment, events, translate, langtranslations, dialogRef, data) {
10008
+ this.events = events;
10009
+ this.translate = translate;
10010
+ this.langtranslations = langtranslations;
10011
+ this.dialogRef = dialogRef;
10012
+ this.data = data;
10013
+ this.navUrl = '';
10014
+ this.environment = environment;
10015
+ this.langtranslations.languageSelectedObservable.subscribe((/**
10016
+ * @return {?}
10017
+ */
10018
+ () => {
10019
+ if (localStorage.getItem('websiteLanguage')) {
10020
+ this.translate.setDefaultLang('en');
10021
+ /** @type {?} */
10022
+ const lang = (/** @type {?} */ (localStorage.getItem('websiteLanguage')));
10023
+ this.translate.use(lang);
10024
+ }
10025
+ }));
10026
+ }
10027
+ /**
10028
+ * @return {?}
10029
+ */
10030
+ ngOnInit() {
10031
+ this.url = this.data.cet;
10032
+ // tslint:disable-next-line:max-line-length
10033
+ this.navUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${this.environment.contentHost}/apis/public/v8/cert/download/${this.data.certId}`;
10034
+ }
10035
+ /**
10036
+ * @return {?}
10037
+ */
10038
+ downloadCert() {
10039
+ this.raiseIntreactTelemetry('svg');
10040
+ /** @type {?} */
10041
+ const a = document.createElement('a');
10042
+ a.href = this.data.cet;
10043
+ a.download = 'Certificate';
10044
+ document.body.appendChild(a);
10045
+ a.style = 'display: none';
10046
+ a.click();
10047
+ a.remove();
10048
+ }
10049
+ /**
10050
+ * @return {?}
10051
+ */
10052
+ downloadCertPng() {
10053
+ this.raiseIntreactTelemetry('png');
10054
+ /** @type {?} */
10055
+ const uriData = this.data.cet;
10056
+ /** @type {?} */
10057
+ const img = new Image();
10058
+ img.src = uriData;
10059
+ img.width = 1820;
10060
+ img.height = 1000;
10061
+ img.onload = (/**
10062
+ * @return {?}
10063
+ */
10064
+ () => {
10065
+ /** @type {?} */
10066
+ const canvas = document.createElement('canvas');
10067
+ [canvas.width, canvas.height] = [img.width, img.height];
10068
+ /** @type {?} */
10069
+ const ctx = canvas.getContext('2d');
10070
+ if (ctx) {
10071
+ // ctx.imageSmoothingEnabled = true
10072
+ ctx.drawImage(img, 0, 0, img.width, img.height);
10073
+ /** @type {?} */
10074
+ const a = document.createElement('a');
10075
+ /** @type {?} */
10076
+ const quality = 1.0 // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality
10077
+ ;
10078
+ a.href = canvas.toDataURL('image/png', quality);
10079
+ a.download = 'Certificate';
10080
+ a.append(canvas);
10081
+ a.click();
10082
+ a.remove();
10083
+ }
10084
+ });
10085
+ }
10086
+ /**
10087
+ * @return {?}
10088
+ */
10089
+ downloadCertPdf() {
10090
+ return __awaiter(this, void 0, void 0, function* () {
10091
+ this.raiseIntreactTelemetry('pdf');
10092
+ /** @type {?} */
10093
+ const uriData = this.data.cet;
10094
+ /** @type {?} */
10095
+ const img = new Image();
10096
+ img.src = uriData;
10097
+ img.width = 1820;
10098
+ img.height = 1000;
10099
+ img.onload = (/**
10100
+ * @return {?}
10101
+ */
10102
+ () => {
10103
+ /** @type {?} */
10104
+ const canvas = document.createElement('canvas');
10105
+ [canvas.width, canvas.height] = [img.width, img.height];
10106
+ /** @type {?} */
10107
+ const ctx = canvas.getContext('2d');
10108
+ if (ctx) {
10109
+ ctx.drawImage(img, 0, 0, img.width, img.height);
10110
+ /** @type {?} */
10111
+ const quality = 1.0 // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality
10112
+ ;
10113
+ // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality
10114
+ /** @type {?} */
10115
+ const dataImg = canvas.toDataURL('application/pdf', quality);
10116
+ /** @type {?} */
10117
+ const pdf = new jsPDF('landscape', 'px', 'a4')
10118
+ // add the image to the PDF
10119
+ ;
10120
+ // add the image to the PDF
10121
+ pdf.addImage(dataImg, 10, 20, 600, 350);
10122
+ // download the PDF
10123
+ pdf.save('Certificate.pdf');
10124
+ }
10125
+ });
10126
+ });
10127
+ }
10128
+ /**
10129
+ * @return {?}
10130
+ */
10131
+ shareCert() {
10132
+ this.raiseShareIntreactTelemetry('share');
10133
+ return window.open(this.navUrl, '_blank');
10134
+ }
10135
+ /**
10136
+ * @param {?=} type
10137
+ * @param {?=} action
10138
+ * @return {?}
10139
+ */
10140
+ raiseShareIntreactTelemetry(type, action) {
10141
+ this.events.raiseInteractTelemetry({
10142
+ type: WsEvents.EnumInteractTypes.CLICK,
10143
+ id: `${type}-${WsEvents.EnumInteractSubTypes.CERTIFICATE}`,
10144
+ subType: action && action,
10145
+ }, {
10146
+ id: this.data.certId,
10147
+ // id of the certificate
10148
+ type: WsEvents.EnumInteractSubTypes.CERTIFICATE,
10149
+ });
10150
+ }
10151
+ /**
10152
+ * @param {?=} action
10153
+ * @return {?}
10154
+ */
10155
+ raiseIntreactTelemetry(action) {
10156
+ this.events.raiseInteractTelemetry({
10157
+ type: WsEvents.EnumInteractTypes.CLICK,
10158
+ id: 'download-certificate',
10159
+ subType: action && action,
10160
+ }, {
10161
+ id: this.data.certId,
10162
+ // id of the certificate
10163
+ type: WsEvents.EnumInteractSubTypes.CERTIFICATE,
10164
+ });
10165
+ }
10166
+ }
10167
+ CertificateDialogComponent.decorators = [
10168
+ { type: Component, args: [{
10169
+ selector: 'sb-uic-certificate-dialog',
10170
+ template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex gap-4 flex-row-reverse\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button (click)=\"shareCert()\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n",
10171
+ /* tslint:disable */
10172
+ host: { class: 'certificate-inner-dialog-panel' },
10173
+ styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:rgba(0,0,0,.6);font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}.close-icon{transition:1s ease-in-out;color:#fff!important}.close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;top:-52px;right:-52px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width:1279px){.certificate-banner-image{width:100%;height:auto;flex:1}.certificate-banner-image svg{width:auto;height:auto;flex:1}}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important;border-radius:50%!important}.ws-mat-accent-border{border:1px solid rgba(255,255,255,.08)}.ws-mat-accent-border-active{border:1px solid #1b4ca1;color:#1b4ca1}.btn-custom,.mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-icon{position:absolute!important;top:19px!important;right:18px!important}"]
10174
+ }] }
10175
+ ];
10176
+ /** @nocollapse */
10177
+ CertificateDialogComponent.ctorParameters = () => [
10178
+ { type: undefined, decorators: [{ type: Inject, args: ['environment',] }] },
10179
+ { type: EventService },
10180
+ { type: TranslateService },
10181
+ { type: MultilingualTranslationsService$1 },
10182
+ { type: MatDialogRef },
10183
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
10184
+ ];
10185
+ if (false) {
10186
+ /** @type {?} */
10187
+ CertificateDialogComponent.prototype.url;
10188
+ /** @type {?} */
10189
+ CertificateDialogComponent.prototype.navUrl;
10190
+ /** @type {?} */
10191
+ CertificateDialogComponent.prototype.environment;
10192
+ /**
10193
+ * @type {?}
10194
+ * @private
10195
+ */
10196
+ CertificateDialogComponent.prototype.events;
10197
+ /**
10198
+ * @type {?}
10199
+ * @private
10200
+ */
10201
+ CertificateDialogComponent.prototype.translate;
10202
+ /**
10203
+ * @type {?}
10204
+ * @private
10205
+ */
10206
+ CertificateDialogComponent.prototype.langtranslations;
10207
+ /** @type {?} */
10208
+ CertificateDialogComponent.prototype.dialogRef;
10209
+ /** @type {?} */
10210
+ CertificateDialogComponent.prototype.data;
10211
+ }
10212
+
10213
+ /**
10214
+ * @fileoverview added by tsickle
10215
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
10216
+ */
10217
+ class CardProgressPortraitLibComponent {
10218
+ /**
10219
+ * @param {?} snackBar
10220
+ * @param {?} translate
10221
+ * @param {?} events
10222
+ * @param {?} langtranslations
10223
+ * @param {?} configSvc
10224
+ * @param {?} contSvc
10225
+ * @param {?} certificateService
10226
+ * @param {?} dialog
10227
+ */
10228
+ constructor(snackBar, translate, events, langtranslations, configSvc, contSvc, certificateService, dialog) {
10229
+ this.snackBar = snackBar;
10230
+ this.translate = translate;
10231
+ this.events = events;
10232
+ this.langtranslations = langtranslations;
10233
+ this.configSvc = configSvc;
10234
+ this.contSvc = contSvc;
10235
+ this.certificateService = certificateService;
10236
+ this.dialog = dialog;
10237
+ this.isCardLoading = false;
10238
+ this.contentData = new EventEmitter();
10239
+ this.isCardFlipped = false;
10240
+ this.acbpConstants = NsCardContent$1.ACBPConst;
10241
+ this.showFlip = false;
10242
+ this.widgetType = 'df';
10243
+ this.widgetSubType = 'sdf';
10244
+ this.downloadCertificateLoading = false;
10245
+ this.langtranslations.languageSelectedObservable.subscribe((/**
10246
+ * @return {?}
10247
+ */
10248
+ () => {
10249
+ if (localStorage.getItem('websiteLanguage')) {
10250
+ this.translate.setDefaultLang('en');
10251
+ /** @type {?} */
10252
+ const lang = (/** @type {?} */ (localStorage.getItem('websiteLanguage')));
10253
+ this.translate.use(lang);
10254
+ }
10255
+ }));
10256
+ }
10257
+ /**
10258
+ * @return {?}
10259
+ */
10260
+ ngOnInit() {
10261
+ /** @type {?} */
10262
+ const instanceConfig = this.configSvc.instanceConfig;
10263
+ if (instanceConfig) {
10264
+ this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
10265
+ this.sourceLogos = instanceConfig.sources;
10266
+ this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
10267
+ }
10268
+ else {
10269
+ this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
10270
+ this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
10271
+ }
10272
+ }
10273
+ /**
10274
+ * @return {?}
10275
+ */
10276
+ showSnackbar() {
10277
+ if (this.showIntranetContent) {
10278
+ this.snackBar.open('Content is only available in intranet', 'X', { duration: 2000 });
10279
+ }
10280
+ else if (!this.isLiveOrMarkForDeletion) {
10281
+ this.snackBar.open('Content may be expired or deleted', 'X', { duration: 2000 });
10282
+ }
10283
+ }
10284
+ /**
10285
+ * @param {?} contentData
10286
+ * @return {?}
10287
+ */
10288
+ getRedirectUrlData(contentData) {
10289
+ // for telemetry
10290
+ if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {
10291
+ contentData['typeOfTelemetry'] = this.widgetData.context.pageSection;
10292
+ }
10293
+ this.contSvc.changeTelemetryData(contentData);
10294
+ // for redirection
10295
+ this.contentData.emit(contentData);
10296
+ }
10297
+ /**
10298
+ * @param {?} label
10299
+ * @param {?} type
10300
+ * @param {?=} subtype
10301
+ * @return {?}
10302
+ */
10303
+ translateLabels(label, type, subtype) {
10304
+ return this.langtranslations.translateLabelWithoutspace(label, type, subtype);
10305
+ }
10306
+ /**
10307
+ * @return {?}
10308
+ */
10309
+ raiseTelemetry() {
10310
+ this.events.raiseInteractTelemetry({
10311
+ type: 'click',
10312
+ subType: `${this.widgetType}-${this.widgetSubType}`,
10313
+ id: `${camelCase(this.widgetData.content.primaryCategory)}-card`,
10314
+ }, {
10315
+ id: this.widgetData.content.identifier,
10316
+ type: this.widgetData.content.primaryCategory,
10317
+ //context: this.widgetData.context,
10318
+ rollup: {},
10319
+ ver: `${this.widgetData.content.version}${''}`,
10320
+ }, {
10321
+ pageIdExt: `${camelCase(this.widgetData.content.primaryCategory)}-card`,
10322
+ module: camelCase(this.widgetData.content.primaryCategory),
10323
+ });
10324
+ }
10325
+ /**
10326
+ * @param {?} certificateData
10327
+ * @return {?}
10328
+ */
10329
+ downloadCertificate(certificateData) {
10330
+ this.events.raiseInteractTelemetry({
10331
+ type: WsEvents.EnumInteractTypes.CLICK,
10332
+ id: 'view-certificate',
10333
+ subType: WsEvents.EnumInteractSubTypes.CERTIFICATE,
10334
+ }, {
10335
+ id: certificateData.issuedCertificates[0].identifier,
10336
+ // id of the certificate
10337
+ type: WsEvents.EnumInteractSubTypes.CERTIFICATE,
10338
+ });
10339
+ if (certificateData.issuedCertificates.length > 0) {
10340
+ this.downloadCertificateLoading = true;
10341
+ /** @type {?} */
10342
+ let certData = certificateData.issuedCertificates[0];
10343
+ this.certificateService.downloadCertificate_v2(certData.identifier).subscribe((/**
10344
+ * @param {?} res
10345
+ * @return {?}
10346
+ */
10347
+ (res) => {
10348
+ this.downloadCertificateLoading = false;
10349
+ /** @type {?} */
10350
+ const cet = res.result.printUri;
10351
+ this.dialog.open(CertificateDialogComponent, {
10352
+ width: '1300px',
10353
+ data: { cet, certId: certData.identifier },
10354
+ });
10355
+ }));
10356
+ }
10357
+ else {
10358
+ this.downloadCertificateLoading = false;
10359
+ }
10360
+ }
10361
+ }
10362
+ CardProgressPortraitLibComponent.decorators = [
10363
+ { type: Component, args: [{
10364
+ selector: 'sb-uic-card-progress-portrait-lib',
10365
+ template: "<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-portrait card-progress-portrait-lib cursor-pointer\" [ngClass]=\"widgetData?.cardCustomeClass ? widgetData?.cardCustomeClass : ''\" (click)=\"raiseTelemetry();getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" >\n <div class=\"course_widget portrait_widget flex margin-bottom-xs\">\n <div class=\"flex flex-end flex-middle course_port\">\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 class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <div class=\" img-block-portrait position-relative\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-image ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.identifier]\">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.identifier]\n }}\"></ng-container>\n </ng-container>\n </div>\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-image 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-image ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"portrait-subheading mat-subheading-2 title-text\">\n {{ widgetData?.content?.name }}\n </div>\n <div class=\"flex w-full flex-middle\">\n <div class=\"portrait_course_logo_box margin-right-xs\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\" loading=\"lazy\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <span class=\"portrait-org-name font-normal mat-caption\">{{'cardcontentv2.by' | translate}} {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n\n </div>\n </div>\n <ng-container *ngIf=\"widgetData?.content?.completionPercentage < 100\">\n <div class=\"flex flex-align-end progress-wrapper flex-between\" >\n <div class=\"progress-block\" >\n <div class=\"completed-time\">\n <mat-icon class=\"mat-icon schedule margin-right-xs\">schedule</mat-icon>\n <span>{{widgetData?.content?.completionPercentage}}%</span>\n </div>\n <div>\n <ng-container *ngIf=\"widgetData?.content?.completionStatus < 2\">\n <sb-uic-content-progress class=\"progress-bar-new\" [customClassName]=\"'course-progress-bar'\" *ngIf=\"widgetData?.content?.identifier\"\n [contentId]=\"widgetData?.content?.identifier\" [progress]=\"widgetData?.content?.completionPercentage\"\n [progressType]=\"'percentage'\">\n </sb-uic-content-progress>\n </ng-container>\n </div>\n </div>\n <div class=\"progress-btn\">\n <button class=\"resume-btn flex flex-middle flex-between\" [routerLink]=\"['/app/toc/',widgetData?.content?.identifier,'overview']\"\n [queryParams]=\"{primaryCategory: widgetData?.content?.primaryCategory}\" [state]=\"widgetData?.stateData\" \n [matTooltipPosition]=\"'below'\"\n [matTooltipDisabled]=\"(!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')).length < 11\"\n matTooltip=\"{{!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')}}\">\n <span class=\"textwrap margin-right-xs\">\n {{!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')}}</span>\n <img class=\"stats-icon\" height=\"20\" width=\"20\" src=\"/assets/icons/home/play.svg\">\n </button>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"widgetData?.content?.completionPercentage === 100\">\n <div class=\"flex flex-align-end progress-wrapper flex-end mt-1\">\n <div class=\"progress-btn\">\n <button class=\"resume-btn flex flex-middle flex-between view-btn\" [ngClass]=\"{'disable-btn': downloadCertificateLoading || widgetData?.content?.issuedCertificates?.length === 0}\" (click)=\"!downloadCertificateLoading && downloadCertificate(widgetData?.content);$event.stopPropagation()\" \n [matTooltipPosition]=\"'below'\"\n [matTooltipDisabled]=\"(translateLabels('viewCertificate', 'cardcontentv2')).length < 11\"\n matTooltip=\"{{'cardcontentv2.viewCertificate' | translate }}\">\n <span class=\"margin-right-xs textwrap\">{{'cardcontentv2.viewCertificate' | translate }}</span>\n <img class=\"stats-icon\" *ngIf=\"!downloadCertificateLoading\" height=\"20\" width=\"20\" src=\"/assets/icons/home/eye-white.svg\">\n <div class=\"center flex flex-middle\" *ngIf=\"downloadCertificateLoading\">\n <mat-spinner strokeWidth=\"2\" stroke=\"'red'\" class=\"white-spinner\" [diameter]=\"16\"></mat-spinner>\n </div>\n </button>\n </div>\n </div>\n </ng-container>\n </mat-card>\n</ng-container>\n\n\n<ng-template #cbpPlan let-data=\"data\">\n <div class=\"cbp-mark left-0 border-top-radius\">\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.UPCOMING\" class=\"cbp-warning\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-portrait\" [ngClass]=\"widgetData.cardCustomeClass ? widgetData.cardCustomeClass : ''\">\n <div class=\"margin-bottom-xs\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'26px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'98px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div class=\"portrait-subheading title-text\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded width-1-1'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\" margin-right-xs\">\n <sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <span class=\"\"><sb-uic-skeleton-loader [width]=\"'133px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></span>\n </div>\n <div class=\"portrait_widget flex margin-top-xs\">\n <div class=\"flex flex-end flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex flex-align-end progress-wrapper flex-between\">\n <div class=\"progress-block\">\n <div class=\"completed-time\">\n <sb-uic-skeleton-loader [width]=\"'211px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded margin-top-xs md:w-211'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"progress-btn\">\n <sb-uic-skeleton-loader [width]=\"'117px'\" [height]=\"'32px'\" [bindingClass]=\"'flex rounded margin-top-xs'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </mat-card>\n</ng-container>",
10366
+ styles: [".card-portrait{border-radius:12px;border:1px solid rgba(0,0,0,.08);opacity:1;width:318px;min-height:154px;padding:16px}.card-portrait .img-block-portrait{line-height:10px}.card-portrait .card-image{border-radius:8px;opacity:1;background-size:100%;width:147px;height:100px}.card-portrait .portrait-subheading{opacity:1;color:rgba(0,0,0,.87);font-weight:700;font-style:normal;letter-spacing:.25px;text-align:left;word-break:break-word;white-space:initial;margin:0 0 8px;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:40px}.card-portrait .portrait_course_logo_box img{padding:3px;display:inline-block;width:24px;height:24px;border:1px solid #d6d6d6;border-radius:4px;box-sizing:border-box}.card-portrait span.portrait-org-name{width:75%;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.card-portrait .portrait_widget{align-items:center;margin-top:0}.card-portrait .portrait_widget .course_port{border:1px solid #ef951e;padding:4px 8px;align-items:center;border-radius:16px}.card-portrait .portrait_widget .video-icon{opacity:1;color:#ef951e;width:15px;height:15px;font-size:15px}.card-portrait .portrait_widget .portrait-category{color:rgba(0,0,0,.6)!important;font-size:.75rem;opacity:1;font-family:Lato-Regular;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:20px}.card-portrait .progress-wrapper .progress-block{width:60%}.card-portrait .progress-wrapper .progress-block .completed-time{color:#ef951e;display:flex;padding:8px 0}.card-portrait .progress-wrapper .progress-block .completed-time mat-icon{width:1rem;height:1rem;font-size:1rem}.card-portrait .progress-wrapper .progress-block .completed-time span{opacity:1;color:rgba(0,0,0,.87);font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:16px}.card-portrait .progress-wrapper .progress-btn .resume-btn{opacity:1;color:#fff;font-family:Lato-Bold;font-size:14px;font-weight:700;font-style:normal;letter-spacing:.5px;text-align:left;line-height:20px;background:#1a4ca1;border-radius:63px;padding:6px 16px;border:none;width:100%;cursor:pointer}.card-portrait .progress-wrapper .progress-btn .resume-btn .textwrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:82px}.card-portrait .progress-wrapper .progress-btn .resume-btn:hover{background-color:#253379}.card-portrait .progress-bar-new{color:#ef951e!important;height:10px;border-radius:5px}.card-portrait .rating-session mat-icon{font-size:20px;height:20px;width:20px;color:#ef951e}.card-portrait .rating-session .rating-number{font-size:14px}.card-portrait .rating-session .most-enrolled-text{font-size:10px;font-weight:400;padding:4px;background:#ffea9e;border-radius:4px;line-height:12px}.card-portrait .right-corner-portrait{right:8px;bottom:8px}.course_widget{margin-top:10px}.course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.course_widget .course_v2{border:1px solid #ef951e;padding:4px 8px;align-items:end;border-radius:16px}.course_widget .main_icon{font-size:16px;width:16px;height:16px}.rating-session mat-icon{font-size:16px;height:16px;width:12px;padding-right:3px;color:#ef951e}.rating-session span{font-size:11px}.rating-session .most-enrolled-text{padding:0 8px;background:#ffea9e;border-radius:4px}.duration-box{background:#000;position:absolute;border:none;display:flex;align-items:center;padding:4px;border-radius:4px}.duration-box.right-corner{right:4px;bottom:4px}.duration-box .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.duration-box .duration{font:700 12px/16px Lato;display:inline-block;margin:0;padding:0}"]
10367
+ }] }
10368
+ ];
10369
+ /** @nocollapse */
10370
+ CardProgressPortraitLibComponent.ctorParameters = () => [
10371
+ { type: MatSnackBar },
10372
+ { type: TranslateService },
10373
+ { type: EventService },
10374
+ { type: MultilingualTranslationsService },
10375
+ { type: ConfigurationsService$1 },
10376
+ { type: WidgetContentService },
10377
+ { type: CertificateService },
10378
+ { type: MatDialog }
10379
+ ];
10380
+ CardProgressPortraitLibComponent.propDecorators = {
10381
+ widgetData: [{ type: Input }],
10382
+ isLiveOrMarkForDeletion: [{ type: Input }],
10383
+ showIntranetContent: [{ type: Input }],
10384
+ isIntranetAllowedSettings: [{ type: Input }],
10385
+ isCardLoading: [{ type: Input }],
10386
+ contentData: [{ type: Output }],
10387
+ cbPlanMapData: [{ type: Input }]
10388
+ };
10389
+ if (false) {
10390
+ /** @type {?} */
10391
+ CardProgressPortraitLibComponent.prototype.widgetData;
10392
+ /** @type {?} */
10393
+ CardProgressPortraitLibComponent.prototype.isLiveOrMarkForDeletion;
10394
+ /** @type {?} */
10395
+ CardProgressPortraitLibComponent.prototype.showIntranetContent;
10396
+ /** @type {?} */
10397
+ CardProgressPortraitLibComponent.prototype.isIntranetAllowedSettings;
10398
+ /** @type {?} */
10399
+ CardProgressPortraitLibComponent.prototype.isCardLoading;
10400
+ /** @type {?} */
10401
+ CardProgressPortraitLibComponent.prototype.contentData;
10402
+ /** @type {?} */
10403
+ CardProgressPortraitLibComponent.prototype.cbPlanMapData;
10404
+ /** @type {?} */
10405
+ CardProgressPortraitLibComponent.prototype.isCardFlipped;
10406
+ /** @type {?} */
10407
+ CardProgressPortraitLibComponent.prototype.acbpConstants;
10408
+ /** @type {?} */
10409
+ CardProgressPortraitLibComponent.prototype.defaultThumbnail;
10410
+ /** @type {?} */
10411
+ CardProgressPortraitLibComponent.prototype.sourceLogos;
10412
+ /** @type {?} */
10413
+ CardProgressPortraitLibComponent.prototype.defaultSLogo;
10414
+ /** @type {?} */
10415
+ CardProgressPortraitLibComponent.prototype.showFlip;
10416
+ /** @type {?} */
10417
+ CardProgressPortraitLibComponent.prototype.widgetType;
10418
+ /** @type {?} */
10419
+ CardProgressPortraitLibComponent.prototype.widgetSubType;
10420
+ /** @type {?} */
10421
+ CardProgressPortraitLibComponent.prototype.downloadCertificateLoading;
10422
+ /**
10423
+ * @type {?}
10424
+ * @private
10425
+ */
10426
+ CardProgressPortraitLibComponent.prototype.snackBar;
10427
+ /**
10428
+ * @type {?}
10429
+ * @private
10430
+ */
10431
+ CardProgressPortraitLibComponent.prototype.translate;
10432
+ /**
10433
+ * @type {?}
10434
+ * @private
10435
+ */
10436
+ CardProgressPortraitLibComponent.prototype.events;
10437
+ /**
10438
+ * @type {?}
10439
+ * @private
10440
+ */
10441
+ CardProgressPortraitLibComponent.prototype.langtranslations;
10442
+ /**
10443
+ * @type {?}
10444
+ * @private
10445
+ */
10446
+ CardProgressPortraitLibComponent.prototype.configSvc;
10447
+ /**
10448
+ * @type {?}
10449
+ * @private
10450
+ */
10451
+ CardProgressPortraitLibComponent.prototype.contSvc;
10452
+ /**
10453
+ * @type {?}
10454
+ * @private
10455
+ */
10456
+ CardProgressPortraitLibComponent.prototype.certificateService;
10457
+ /**
10458
+ * @type {?}
10459
+ * @private
10460
+ */
10461
+ CardProgressPortraitLibComponent.prototype.dialog;
10462
+ }
10463
+
10464
+ /**
10465
+ * @fileoverview added by tsickle
10466
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
10467
+ */
10468
+ class ContentProgressComponent {
10469
+ constructor() {
10470
+ this.contentId = '';
10471
+ this.progress = 0;
10472
+ this.progressType = '';
10473
+ this.forPreview = false;
10474
+ this.className = '';
10475
+ this.customClassName = 'accent-progress';
10476
+ this.rendom = Math.random();
10477
+ this.id = `progress_${Math.random()}`;
10478
+ if (this.contentId) {
10479
+ this.id = this.contentId;
10480
+ }
10481
+ }
10482
+ /**
10483
+ * @return {?}
10484
+ */
10485
+ ngOnChanges() {
10486
+ if (this.contentId && !this.progress && !this.forPreview) {
10487
+ // this.progressSvc.getProgressFor(this.contentId).subscribe(data => {
10488
+ // this.progress = data
10489
+ // if (this.progress) {
10490
+ // this.progress = Math.round(this.progress * 10000) / 100
10491
+ // }
10492
+ // })
10493
+ }
10494
+ if (this.progress) {
10495
+ if (this.progressType === 'percentage') {
10496
+ this.progress = this.progress;
10497
+ }
10498
+ else {
10499
+ this.progress = Math.round(this.progress * 10000) / 100;
10500
+ }
10501
+ }
10502
+ }
10503
+ }
10504
+ ContentProgressComponent.decorators = [
10505
+ { type: Component, args: [{
10506
+ selector: 'sb-uic-content-progress',
10507
+ template: "<mat-progress-bar [mode]=\"'determinate'\" [matTooltip]=\"progress + ' %'\" [value]=\"progress\" class=\"new-w content-progress {{customClassName}}\"\n [attr.aria-labelledby]=\"'m-c-'+ contentId\" [ngClass]=\"{ 'visibility-0': progress === undefined, 'thick': className}\"\n i18n-aria-label> {{ progress }} % </mat-progress-bar>",
10508
+ /* tslint:disable */
10509
+ host: {
10510
+ // Sets the role for this component to "progressbar"
10511
+ role: 'progressbar',
10512
+ // Sets the minimum and maximum values for the progressbar role.
10513
+ 'aria-valuemin': '0',
10514
+ 'aria-valuemax': '100',
10515
+ 'title': 'progres',
10516
+ // Binding that updates the current value of the progressbar.
10517
+ '[attr.aria-valuenow]': 'progress',
10518
+ },
10519
+ styles: [".visibility-0{display:none}::ng-deep.mat-progress-bar.thick{height:10px}::ng-deep.theme-igot.day-mode .mat-progress-bar-fill::after{background:no-repeat padding-box #34d6a4}::ng-deep.theme-igot.day-mode .mat-progress-bar-background{fill:rgba(0,0,0,.001)!important}::ng-deep.theme-igot.day-mode .mat-progress-bar-buffer{background-color:rgba(0,0,0,.1)!important}::ng-deep .content-progress .mat-progress-bar-fill::after{background:#f69953!important}::ng-deep.theme-igot.day-mode .viewer-progress .mat-progress-bar-background{fill:rgba(0,0,0,.1)!important}::ng-deep.theme-igot.day-mode .viewer-progress .mat-progress-bar-buffer{background-color:rgba(0,0,0,.1)!important}::ng-deep.mat-progress-bar.viewer-progress{height:4px;border-radius:5px}"]
10520
+ }] }
10521
+ ];
10522
+ /** @nocollapse */
10523
+ ContentProgressComponent.ctorParameters = () => [];
10524
+ ContentProgressComponent.propDecorators = {
10525
+ contentId: [{ type: Input }],
10526
+ progress: [{ type: Input }],
10527
+ progressType: [{ type: Input }],
10528
+ forPreview: [{ type: Input }],
10529
+ className: [{ type: Input }],
10530
+ customClassName: [{ type: Input }],
10531
+ id: [{ type: HostBinding, args: ['id',] }]
10532
+ };
10533
+ if (false) {
10534
+ /** @type {?} */
10535
+ ContentProgressComponent.prototype.contentId;
10536
+ /** @type {?} */
10537
+ ContentProgressComponent.prototype.progress;
10538
+ /** @type {?} */
10539
+ ContentProgressComponent.prototype.progressType;
10540
+ /** @type {?} */
10541
+ ContentProgressComponent.prototype.forPreview;
10542
+ /** @type {?} */
10543
+ ContentProgressComponent.prototype.className;
10544
+ /** @type {?} */
10545
+ ContentProgressComponent.prototype.customClassName;
10546
+ /** @type {?} */
10547
+ ContentProgressComponent.prototype.rendom;
10548
+ /** @type {?} */
10549
+ ContentProgressComponent.prototype.id;
10550
+ }
10551
+
10552
+ /**
10553
+ * @fileoverview added by tsickle
10554
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
10555
+ */
10556
+ class ContentProgressModule {
10557
+ }
10558
+ ContentProgressModule.decorators = [
10559
+ { type: NgModule, args: [{
10560
+ declarations: [ContentProgressComponent],
10561
+ imports: [
10562
+ CommonModule,
10563
+ MatProgressBarModule,
10564
+ MatTooltipModule,
10565
+ ],
10566
+ exports: [ContentProgressComponent],
10567
+ },] }
10568
+ ];
10569
+
10570
+ /**
10571
+ * @fileoverview added by tsickle
10572
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
10573
+ */
10574
+ const ɵ0$4 = HttpLoaderFactory;
10575
+ class DialogComponentsModule {
10576
+ }
10577
+ DialogComponentsModule.decorators = [
10578
+ { type: NgModule, args: [{
10579
+ declarations: [
10580
+ CertificateDialogComponent
10581
+ ],
10582
+ imports: [
10583
+ CommonModule,
10584
+ MatMenuModule,
10585
+ MatCardModule,
10586
+ MatIconModule,
10587
+ MatDialogModule,
10588
+ PipeSafeSanitizerModule,
10589
+ TranslateModule.forRoot({
10590
+ loader: {
10591
+ provide: TranslateLoader,
10592
+ useFactory: ɵ0$4,
10593
+ deps: [HttpClient],
10594
+ },
10595
+ }),
10596
+ ],
10597
+ exports: [
10598
+ CertificateDialogComponent
10599
+ ],
10600
+ entryComponents: [CertificateDialogComponent],
10601
+ },] }
10602
+ ];
10603
+
10604
+ /**
10605
+ * @fileoverview added by tsickle
10606
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
10607
+ */
10608
+ class CardMdoChannelV1Component {
10609
+ /**
10610
+ * @param {?} events
10611
+ * @param {?} translate
10612
+ * @param {?} langtranslations
10613
+ * @param {?} configSvc
10614
+ * @param {?} contSvc
10615
+ * @param {?} router
10616
+ */
10617
+ constructor(events, translate, langtranslations, configSvc, contSvc, router) {
10618
+ this.events = events;
10619
+ this.translate = translate;
10620
+ this.langtranslations = langtranslations;
10621
+ this.configSvc = configSvc;
10622
+ this.contSvc = contSvc;
10623
+ this.router = router;
10624
+ this.channelData = new EventEmitter();
10625
+ this.emitTelemetry = new EventEmitter();
10626
+ this.widgetType = '';
10627
+ this.widgetSubType = '';
10628
+ this.langtranslations.languageSelectedObservable.subscribe((/**
10629
+ * @return {?}
10630
+ */
10631
+ () => {
10632
+ if (localStorage.getItem('websiteLanguage')) {
10633
+ this.translate.setDefaultLang('en');
10634
+ /** @type {?} */
10635
+ const lang = (/** @type {?} */ (localStorage.getItem('websiteLanguage')));
10636
+ this.translate.use(lang);
10637
+ }
10638
+ }));
10639
+ }
10640
+ /**
10641
+ * @return {?}
10642
+ */
10643
+ ngOnInit() {
10644
+ /** @type {?} */
10645
+ const instanceConfig = this.configSvc.instanceConfig;
10646
+ if (instanceConfig) {
10647
+ this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
10648
+ this.sourceLogos = instanceConfig.sources;
10649
+ this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
10650
+ }
10651
+ else {
10652
+ this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
10653
+ this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
10654
+ }
10655
+ }
10656
+ /**
10657
+ * @param {?} contentData
10658
+ * @return {?}
10659
+ */
10660
+ raiseTelemetry(contentData) {
10661
+ this.emitTelemetry.emit(contentData);
10662
+ if (this.widgetData) {
10663
+ contentData['typeOfTelemetry'] = 'mdo-channel';
10664
+ }
10665
+ this.contSvc.changeTelemetryData(contentData);
10666
+ }
10667
+ /**
10668
+ * @param {?} channeldata
10669
+ * @return {?}
10670
+ */
10671
+ channelClick(channeldata) {
10672
+ this.channelData.emit(channeldata);
10673
+ }
10674
+ /**
10675
+ * @param {?} content
10676
+ * @return {?}
10677
+ */
10678
+ redirectTo(content) {
10679
+ this.router.navigate([`/app/learn/mdo-channels/${content.orgName}/${content.identifier}/micro-sites`]);
10680
+ }
10681
+ }
10682
+ CardMdoChannelV1Component.decorators = [
10683
+ { type: Component, args: [{
10684
+ selector: 'sb-uic-card-mdo-channel-v1',
10685
+ template: "<mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"raiseTelemetry(widgetData?.content); redirectTo(widgetData?.content); $event.stopPropagation()\"\n i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <ng-container *ngIf=\"widgetData?.content?.imgUrl; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.imgUrl\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.orgName\" />\n </ng-container>\n <ng-template #defaultImg>\n <sb-uic-avatar-photo [randomColor]=\"true\" [name]=\"widgetData?.content?.orgName\" [photoUrl]=\"widgetData?.content?.imgUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </ng-template>\n </div>\n <div class=\"flex title-container px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-center mat-subheading-2 title-text ws-mat-black-text\">\n {{ widgetData?.content?.orgName }}\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n</mat-card>",
10686
+ styles: [".card-channels-container{position:relative;width:245px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;min-height:156px;height:156px;max-height:156px;margin:20px 8px;background:#7faeff!important;border-radius:12px;padding:4px!important}.card-channels-container .min-top{background:inherit;margin-bottom:0;height:inherit}.card-channels-container .image-container{background-color:#fff;width:inherit;height:86px;max-height:86px;overflow:hidden;display:flex;align-items:center;justify-content:center;border-radius:12px}.card-channels-container .card-img{max-height:62px;min-height:62px;display:block;-o-object-fit:fill;object-fit:contain}.card-channels-container .mat-subheading-1{font:600 14px/24px Montserrat}.card-channels-container .title-container{background:inherit}.card-channels-container .description-text{position:relative;overflow:hidden;height:51px}.card-channels-container .title-text{word-break:break-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}"]
10687
+ }] }
10688
+ ];
10689
+ /** @nocollapse */
10690
+ CardMdoChannelV1Component.ctorParameters = () => [
10691
+ { type: EventService },
10692
+ { type: TranslateService },
10693
+ { type: MultilingualTranslationsService$1 },
10694
+ { type: ConfigurationsService$1 },
10695
+ { type: WidgetContentService },
10696
+ { type: Router }
10697
+ ];
10698
+ CardMdoChannelV1Component.propDecorators = {
10699
+ widgetData: [{ type: Input }],
10700
+ channelData: [{ type: Output }],
10701
+ emitTelemetry: [{ type: Output }]
10702
+ };
10703
+ if (false) {
10704
+ /** @type {?} */
10705
+ CardMdoChannelV1Component.prototype.widgetData;
10706
+ /** @type {?} */
10707
+ CardMdoChannelV1Component.prototype.channelData;
10708
+ /** @type {?} */
10709
+ CardMdoChannelV1Component.prototype.emitTelemetry;
10710
+ /** @type {?} */
10711
+ CardMdoChannelV1Component.prototype.defaultThumbnail;
10712
+ /** @type {?} */
10713
+ CardMdoChannelV1Component.prototype.sourceLogos;
10714
+ /** @type {?} */
10715
+ CardMdoChannelV1Component.prototype.defaultSLogo;
10716
+ /** @type {?} */
10717
+ CardMdoChannelV1Component.prototype.widgetType;
10718
+ /** @type {?} */
10719
+ CardMdoChannelV1Component.prototype.widgetSubType;
10720
+ /**
10721
+ * @type {?}
10722
+ * @private
10723
+ */
10724
+ CardMdoChannelV1Component.prototype.events;
10725
+ /**
10726
+ * @type {?}
10727
+ * @private
10728
+ */
10729
+ CardMdoChannelV1Component.prototype.translate;
10730
+ /**
10731
+ * @type {?}
10732
+ * @private
10733
+ */
10734
+ CardMdoChannelV1Component.prototype.langtranslations;
10735
+ /**
9645
10736
  * @type {?}
9646
10737
  * @private
9647
10738
  */
@@ -9839,6 +10930,7 @@ AvatarPhotoLibModule.decorators = [
9839
10930
  * @fileoverview added by tsickle
9840
10931
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9841
10932
  */
10933
+ const ɵ0$5 = HttpLoaderFactory;
9842
10934
  class CardsModule {
9843
10935
  }
9844
10936
  CardsModule.decorators = [
@@ -9853,21 +10945,36 @@ CardsModule.decorators = [
9853
10945
  CardWideV2Component,
9854
10946
  CardKarmaProgramsComponent,
9855
10947
  CardKarmaProgramsV2Component,
10948
+ ProviderCardComponent,
9856
10949
  CardPortraitExtComponent,
10950
+ CardAssessmentComponent,
10951
+ CardProgressPortraitLibComponent,
9857
10952
  CardMdoChannelV1Component
9858
10953
  ],
9859
10954
  imports: [
9860
10955
  CommonModule,
9861
10956
  MatCardModule,
9862
10957
  MatButtonModule,
10958
+ MatTooltipModule,
9863
10959
  MatIconModule,
9864
10960
  MatTooltipModule,
9865
10961
  RouterModule,
9866
10962
  PipePublicURLModule,
10963
+ ObjectToArrayPipeModule,
9867
10964
  DisplayContentTypeLibModule,
9868
10965
  DefaultThumbnailModule,
9869
10966
  PipeDurationTransformModule,
9870
10967
  SkeletonLoaderLibModule,
10968
+ MatProgressSpinnerModule,
10969
+ ContentProgressModule,
10970
+ DialogComponentsModule,
10971
+ TranslateModule.forRoot({
10972
+ loader: {
10973
+ provide: TranslateLoader,
10974
+ useFactory: ɵ0$5,
10975
+ deps: [HttpClient],
10976
+ },
10977
+ }),
9871
10978
  AvatarPhotoLibModule
9872
10979
  ],
9873
10980
  entryComponents: [CardsComponent],
@@ -9881,7 +10988,7 @@ CardsModule.decorators = [
9881
10988
  CardMDOChannelComponent,
9882
10989
  CardWideV2Component,
9883
10990
  CardKarmaProgramsComponent,
9884
- CardKarmaProgramsV2Component
10991
+ CardKarmaProgramsV2Component,
9885
10992
  ],
9886
10993
  },] }
9887
10994
  ];
@@ -10828,13 +11935,13 @@ CompetencyPassbookMdoModule.decorators = [
10828
11935
  */
10829
11936
  /** @type {?} */
10830
11937
  const PROXY_SLAG_V8 = '/apis/proxies/v8';
10831
- const ɵ0$3 = /**
11938
+ const ɵ0$6 = /**
10832
11939
  * @param {?} contentId
10833
11940
  * @param {?} contentType
10834
11941
  * @param {?} userId
10835
11942
  * @return {?}
10836
11943
  */
10837
- (contentId, contentType, userId) => `${PROXY_SLAG_V8}/ratings/v1/read/${contentId}/${contentType}/${userId}`, ɵ1$2 = /**
11944
+ (contentId, contentType, userId) => `${PROXY_SLAG_V8}/ratings/v1/read/${contentId}/${contentType}/${userId}`, ɵ1$3 = /**
10838
11945
  * @param {?} contentId
10839
11946
  * @param {?} contentType
10840
11947
  * @return {?}
@@ -10847,9 +11954,9 @@ const ɵ0$3 = /**
10847
11954
  (contentId, userID) => `${PROXY_SLAG_V8}/ratings/v1/read/${contentId}/Course/${userID}`;
10848
11955
  /** @type {?} */
10849
11956
  const API_END_POINTS$3 = {
10850
- GET_RATING: (ɵ0$3),
11957
+ GET_RATING: (ɵ0$6),
10851
11958
  ADD_OR_UPDATE: `${PROXY_SLAG_V8}/ratings/v1/upsert`,
10852
- GET_RATING_SUMMARY: (ɵ1$2),
11959
+ GET_RATING_SUMMARY: (ɵ1$3),
10853
11960
  GET_RATING_LOOKUP: `${PROXY_SLAG_V8}/ratings/v1/ratingLookUp`,
10854
11961
  GET_AUTHOR_REPLY: (ɵ2$2),
10855
11962
  POST_AUTHOR_REPLY: `${PROXY_SLAG_V8}/ratings/v2/read`,
@@ -11505,5 +12612,5 @@ UserContentRatingLibModule.decorators = [
11505
12612
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
11506
12613
  */
11507
12614
 
11508
- export { AnnouncementsModule, CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentStripWithTabsLibModule, DataPointsModule, HttpLoaderFactory, 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, CardPortraitExtComponent as ɵbd, CardMdoChannelV1Component as ɵbe, PipePublicURLModule as ɵbf, PipePublicURL as ɵbg, DisplayContentTypeLibModule as ɵbh, DisplayContentTypeLibComponent as ɵbi, DefaultThumbnailModule as ɵbj, DefaultThumbnailDirective as ɵbk, PipeDurationTransformModule as ɵbl, PipeDurationTransformPipe as ɵbm, AvatarPhotoLibModule as ɵbn, AvatarPhotoLibComponent as ɵbo, CompetencyPassbookComponent as ɵbp, CompetencyPassbookService as ɵbq, PillsModule as ɵbr, PillsComponent as ɵbs, CompetencyPassbookMdoComponent as ɵbt, CompetencyPassbookMdoService as ɵbu, UserContentRatingLibComponent as ɵbv, ScrollableItemDirective as ɵbw, RatingService as ɵbx, UserContentRatingLibService as ɵby, MyHammerConfig$1 as ɵbz, MultilingualTranslationsService as ɵc, SlidersNgContentLibModule as ɵca, SlidersNgContentLibComponent as ɵcb, ScrollableItemModule as ɵcc, 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 };
12615
+ export { AnnouncementsModule, CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentProgressModule, ContentStripWithTabsLibModule, DataPointsModule, HttpLoaderFactory, 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, CompetencyPassbookComponent as ɵby, CompetencyPassbookService as ɵbz, MultilingualTranslationsService as ɵc, PillsModule as ɵca, PillsComponent as ɵcb, CompetencyPassbookMdoComponent as ɵcc, CompetencyPassbookMdoService as ɵcd, UserContentRatingLibComponent as ɵce, ScrollableItemDirective as ɵcf, RatingService as ɵcg, UserContentRatingLibService as ɵch, MyHammerConfig$1 as ɵci, SlidersNgContentLibModule as ɵcj, SlidersNgContentLibComponent as ɵck, ScrollableItemModule as ɵcl, 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 };
11509
12616
  //# sourceMappingURL=sunbird-cb-consumption.js.map