@sunbird-cb/consumption 0.0.12 → 0.0.13

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 (73) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +2136 -71
  2. package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-consumption.umd.min.js +1 -1
  4. package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/avatar-photo-lib/avatar-photo-lib.component.js +147 -0
  6. package/esm2015/lib/_common/avatar-photo-lib/avatar-photo-lib.module.js +29 -0
  7. package/esm2015/lib/_common/calender/calender-day/calender-day.component.js +90 -0
  8. package/esm2015/lib/_common/calender/calender.component.js +275 -9
  9. package/esm2015/lib/_common/calender/calender.module.js +15 -5
  10. package/esm2015/lib/_common/cards/card-portrait/card-portrait.component.js +5 -1
  11. package/esm2015/lib/_common/cards/card-wide/card-wide.component.js +166 -0
  12. package/esm2015/lib/_common/cards/cards.component.js +2 -2
  13. package/esm2015/lib/_common/cards/cards.module.js +5 -3
  14. package/esm2015/lib/_common/common-strip/common-strip.component.js +14 -11
  15. package/esm2015/lib/_common/competency-passbook/competency-passbook.component.js +22 -2
  16. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +31 -3
  17. package/esm2015/lib/_common/data-points/data-points.component.js +2 -2
  18. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.component.js +197 -0
  19. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.model.js +61 -0
  20. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.module.js +50 -0
  21. package/esm2015/lib/_common/user-content-rating/user-content-rating.component.js +710 -0
  22. package/esm2015/lib/_common/user-content-rating/user-content-rating.module.js +35 -0
  23. package/esm2015/lib/_models/rating.model.js +44 -0
  24. package/esm2015/lib/_services/insite-data.service.js +10 -2
  25. package/esm2015/lib/_services/rating.service.js +171 -0
  26. package/esm2015/public-api.js +2 -1
  27. package/esm2015/sunbird-cb-consumption.js +28 -20
  28. package/esm5/lib/_common/avatar-photo-lib/avatar-photo-lib.component.js +164 -0
  29. package/esm5/lib/_common/avatar-photo-lib/avatar-photo-lib.module.js +33 -0
  30. package/esm5/lib/_common/calender/calender-day/calender-day.component.js +101 -0
  31. package/esm5/lib/_common/calender/calender.component.js +305 -9
  32. package/esm5/lib/_common/calender/calender.module.js +15 -5
  33. package/esm5/lib/_common/cards/card-portrait/card-portrait.component.js +5 -1
  34. package/esm5/lib/_common/cards/card-wide/card-wide.component.js +172 -0
  35. package/esm5/lib/_common/cards/cards.component.js +2 -2
  36. package/esm5/lib/_common/cards/cards.module.js +5 -3
  37. package/esm5/lib/_common/common-strip/common-strip.component.js +22 -19
  38. package/esm5/lib/_common/competency-passbook/competency-passbook.component.js +26 -3
  39. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +36 -3
  40. package/esm5/lib/_common/data-points/data-points.component.js +2 -2
  41. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.component.js +224 -0
  42. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.model.js +61 -0
  43. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.module.js +67 -0
  44. package/esm5/lib/_common/user-content-rating/user-content-rating.component.js +726 -0
  45. package/esm5/lib/_common/user-content-rating/user-content-rating.module.js +39 -0
  46. package/esm5/lib/_models/rating.model.js +44 -0
  47. package/esm5/lib/_services/insite-data.service.js +14 -2
  48. package/esm5/lib/_services/rating.service.js +214 -0
  49. package/esm5/public-api.js +2 -1
  50. package/esm5/sunbird-cb-consumption.js +28 -20
  51. package/fesm2015/sunbird-cb-consumption.js +1969 -88
  52. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  53. package/fesm5/sunbird-cb-consumption.js +2113 -58
  54. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  55. package/lib/_common/avatar-photo-lib/avatar-photo-lib.component.d.ts +19 -0
  56. package/lib/_common/avatar-photo-lib/avatar-photo-lib.module.d.ts +2 -0
  57. package/lib/_common/calender/calender-day/calender-day.component.d.ts +18 -0
  58. package/lib/_common/calender/calender.component.d.ts +29 -1
  59. package/lib/_common/cards/card-wide/card-wide.component.d.ts +30 -0
  60. package/lib/_common/competency-passbook/competency-passbook.component.d.ts +1 -0
  61. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +6 -1
  62. package/lib/_common/sliders-ng-content/sliders-ng-content.component.d.ts +28 -0
  63. package/lib/_common/sliders-ng-content/sliders-ng-content.model.d.ts +34 -0
  64. package/lib/_common/sliders-ng-content/sliders-ng-content.module.d.ts +6 -0
  65. package/lib/_common/user-content-rating/user-content-rating.component.d.ts +167 -0
  66. package/lib/_common/user-content-rating/user-content-rating.module.d.ts +2 -0
  67. package/lib/_models/rating.model.d.ts +17 -0
  68. package/lib/_services/insite-data.service.d.ts +1 -0
  69. package/lib/_services/rating.service.d.ts +15 -0
  70. package/package.json +1 -1
  71. package/public-api.d.ts +1 -0
  72. package/sunbird-cb-consumption.d.ts +26 -18
  73. package/sunbird-cb-consumption.metadata.json +1 -1
@@ -1,10 +1,10 @@
1
- import { Injectable, ɵɵdefineInjectable, Component, EventEmitter, Input, Output, ViewChild, NgModule, ɵɵinject, Inject, HostBinding, Directive, HostListener, Pipe } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { RouterModule, Router } from '@angular/router';
1
+ import { Injectable, ɵɵdefineInjectable, Component, EventEmitter, Input, Output, ViewChild, NgModule, ɵɵinject, Inject, HostBinding, Directive, HostListener, CUSTOM_ELEMENTS_SCHEMA, Pipe } from '@angular/core';
2
+ import { CommonModule, DatePipe } from '@angular/common';
3
+ import { Router, RouterModule } from '@angular/router';
4
4
  import { fromEvent, timer, BehaviorSubject, of, EMPTY, ReplaySubject, Subject, throwError, interval } from 'rxjs';
5
5
  import { debounceTime, throttleTime, shareReplay, retry, map, catchError, filter, distinctUntilChanged } from 'rxjs/operators';
6
6
  import { ValueService, ConfigurationsService as ConfigurationsService$1, WsEvents, LoggerService, EventService, UtilityService } 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 } from '@angular/material';
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';
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';
@@ -3236,24 +3236,28 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
3236
3236
  * @param {?} eventSvc
3237
3237
  * @param {?} configSvc
3238
3238
  * @param {?} utilitySvc
3239
+ * @param {?} router
3239
3240
  * @param {?} userSvc
3240
3241
  * @param {?} translate
3241
3242
  * @param {?} langtranslations
3242
3243
  */
3243
3244
  constructor(
3244
3245
  // private contentStripSvc: ContentStripNewMultipleService,
3245
- environment, contentSvc, loggerSvc, eventSvc, configSvc, utilitySvc, userSvc, translate, langtranslations) {
3246
+ environment, contentSvc, loggerSvc, eventSvc, configSvc, utilitySvc, router, userSvc, translate, langtranslations) {
3246
3247
  super();
3247
3248
  this.contentSvc = contentSvc;
3248
3249
  this.loggerSvc = loggerSvc;
3249
3250
  this.eventSvc = eventSvc;
3250
3251
  this.configSvc = configSvc;
3251
3252
  this.utilitySvc = utilitySvc;
3253
+ this.router = router;
3252
3254
  this.userSvc = userSvc;
3253
3255
  this.translate = translate;
3254
3256
  this.langtranslations = langtranslations;
3255
3257
  this.emptyResponse = new EventEmitter();
3258
+ this.viewAllResponse = new EventEmitter();
3256
3259
  this.providerId = '';
3260
+ this.emitViewAll = false;
3257
3261
  this.id = `ws-strip-miltiple_${Math.random()}`;
3258
3262
  this.stripsResultDataMap = {};
3259
3263
  this.stripsKeyOrder = [];
@@ -4806,11 +4810,25 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4806
4810
  }
4807
4811
  return filters;
4808
4812
  }
4813
+ /**
4814
+ * @param {?} stripData
4815
+ * @param {?} path
4816
+ * @param {?} queryParamsData
4817
+ * @return {?}
4818
+ */
4819
+ redirectViewAll(stripData, path, queryParamsData) {
4820
+ if (this.emitViewAll) {
4821
+ this.viewAllResponse.emit(stripData);
4822
+ }
4823
+ else {
4824
+ this.router.navigate([path], { queryParams: queryParamsData });
4825
+ }
4826
+ }
4809
4827
  }
4810
4828
  ContentStripWithTabsLibComponent.decorators = [
4811
4829
  { type: Component, args: [{
4812
4830
  selector: 'sb-uic-content-strip-with-tabs',
4813
- template: "<ng-container *ngIf=\"!contentAvailable; else otherTemplate\"></ng-container>\n<ng-template #otherTemplate>\n <!-- <div *ngIf=\"showParentLoader\" class=\"text-center my-2\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div> -->\n <ng-container *ngIf=\"showParentError\" [sbUiResolverWidget]=\"widgetData.errorWidget\"></ng-container>\n <ng-container *ngIf=\"showParentNoData\" [sbUiResolverWidget]=\"widgetData.noDataWidget\"></ng-container>\n <ng-container *ngFor=\"let key of stripsKeyOrder; let i = index; trackBy: identify\">\n <ng-container *ngIf=\"isStripShowing(stripsResultDataMap[key])\">\n <a name=\"{{stripsResultDataMap[key]?.stripTitle}}\" [class]=\"key\">\n <div *ngIf=\"stripsResultDataMap && (getLength(stripsResultDataMap[key]) ||\n stripsResultDataMap[key]?.showOnNoData ||\n stripsResultDataMap[key]?.showOnLoader ||\n stripsResultDataMap[key]?.showOnError)\n \" [ngClass]=\"\n !widgetData?.isChannelStrip ? 'xs:px-8 sx:px-10ss' : i > 0 ? 'mt-12' : ''\n \" [id]=\"key\" [ngClass]=\"!widgetData?.isChannelStrip ? margin-bottom-custom : margin-bottom-xs\">\n <div [ngClass]=\"{ pad: stripsResultDataMap[key]?.stripBackground }\"\n [ngStyle]=\"{ 'background-color': stripsResultDataMap[key]?.stripBackground }\">\n <div class=\"flex flex-col pl-4 pr-4 md:pr-0 md:pl-0 \" [ngClass]=\"\n !widgetData?.isChannelStrip\n ? ''\n : stripsResultDataMap[key]?.stripTitle\n ? 'mb-8'\n : ''\n \">\n <div class=\"flex flex-1 items-center\">\n <p class=\"mat-subheading-1 margin-remove inline-block \" *ngIf=\"stripsResultDataMap[key]?.stripTitle\">\n <span class=\"capitalize\" *ngIf=\"stripsResultDataMap[key]?.disableTranslate\">\n {{stripsResultDataMap[key]?.stripTitle}}\n </span>\n <span *ngIf=\"!stripsResultDataMap[key]?.disableTranslate\">\n {{ translateLabels(stripsResultDataMap[key]?.stripTitle, 'home') }}\n </span>\n </p>\n\n <button *ngIf=\"stripsResultDataMap[key]?.stripInfo?.icon\" type=\"button\" mat-icon-button\n (click)=\"toggleInfo(stripsResultDataMap[key])\" i18n-matTooltip matTooltip=\"info\"\n class=\"margin-left-xs\">\n <mat-icon>{{ stripsResultDataMap[key]?.stripInfo?.icon.icon }}</mat-icon>\n </button>\n <a *ngIf=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [routerLink]=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [queryParams]=\"stripsResultDataMap[key]?.stripTitleLink?.link?.queryParams\">\n <mat-icon class=\"ws-mat-primary-primary-text ws-mat-default-text\" [color]=\"'accent'\">{{\n stripsResultDataMap[key]?.stripTitleLink?.icon }}</mat-icon>\n </a>\n <span class=\"spacer\"></span>\n <!-- viewAll start-->\n <div *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key])\"\n class=\"ml-4 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1\" [routerLink]=\"stripsResultDataMap[key]?.viewMoreUrl?.path\"\n [queryParams]=\"stripsResultDataMap[key]?.viewMoreUrl?.queryParams\">\n <span i18n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0].viewMoreUrl.viewMoreText,'home') || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\" color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n <!-- viewAll end-->\n </div>\n <button mat-icon-button (click)=\"setHiddenForStrip(key)\" *ngIf=\"stripsResultDataMap[key]?.canHideStrip\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"stripsResultDataMap[key]?.mode === 'accordion' && isMobile\"\n (click)=\"showAccordionData = !showAccordionData\">{{ showAccordionData ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n\n <div class=\"mb-4\" *ngIf=\"checkVisible(stripsResultDataMap[key])\">\n <ng-container [sbUiResolverWidget]=\"getdata(stripsResultDataMap[key])\">\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnNoData\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.noDataWidget\"></ng-container>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnError\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.errorWidget\"></ng-container>\n <!-- IF no errors then proceed to show tabs or non tabs strip -->\n <ng-container *ngIf=\"!stripsResultDataMap[key]?.showOnNoData && !stripsResultDataMap[key]?.showOnError\">\n <ng-container *ngIf=\"stripsResultDataMap[key].tabs && stripsResultDataMap[key].tabs.length\">\n <mat-tab-group animationDuration=\"0ms\" [selectedIndex]=\"getSelectedIndex(stripsResultDataMap[key], key)\"\n class=\"mat-tab-labels w-full strips-tabgroup\" dynamicHeight\n (selectedTabChange)=\"tabClicked($event, stripsResultDataMap[key], key)\">\n <mat-tab label=\"{{tab?.label}}\" *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;\">\n <ng-template mat-tab-label>\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <span *ngIf=\"tab?.showTabDataCount && tab?.widgets?.length\">({{tab?.widgets?.length}})</span>\n </ng-template>\n <div>\n <!-- <ng-container [ngTemplateOutlet]=\"loader\" *ngIf=\"stripsResultDataMap[key]?.showOnLoader\">\n </ng-container> -->\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab.fetchTabStatus\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [id]=\"key+'-scroller'\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div *ngIf=\"((tab?.fetchTabStatus && tab?.fetchTabStatus === 'done') &&\n (!tab?.widgets || !tab?.widgets?.length))\">\n <ng-container *ngIf=\"tab?.value === 'inprogress'; else msgTemp\">\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.svg\">\n <div class=\"mat-subheading-1 text-center info-content\">{{ 'contentstripmultiple.getReadyForLearningAdventure' | translate }} -\n <a class=\"click-here\" [routerLink]=\"'/page/learn'\">{{ 'contentstripmultiple.clickHere' | translate }}</a> {{ 'contentstripmultiple.toEnrollNextCourse' | translate }}</div>\n </div>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.png\">\n <div class=\"mat-subheading-1 text-center\">{{ translateLabels(tab.nodataMsg, 'home') }}</div>\n </div>\n </ng-template>\n </div>\n <ng-container *ngIf=\"(tab?.fetchTabStatus === 'done' || tab?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.tabLoading\">\n\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [widgetsLength]=\"tab?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of tab?.widgets| slice:0:(tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </ng-container>\n </ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n <ng-container *ngIf=\"!stripsResultDataMap[key].tabs || !stripsResultDataMap[key].tabs.length\">\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader\" class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div class=\"\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\" [widgetsLength]=\"stripsResultDataMap[key]?.widgets?.length\" [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.widgets| slice:0:(stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <!-- <ng-container *ngIf=\"widget.widgetData.context.pageSection === 'continueLearning' \"> -->\n <!-- <ng-container *ngIf=\"widget.widgetData.content.completionPercentage !== 100\"\n [sbUiResolverWidget]=\"widget\"></ng-container> -->\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n <!-- </ng-container> -->\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>",
4831
+ template: "<ng-container *ngIf=\"!contentAvailable; else otherTemplate\"></ng-container>\n<ng-template #otherTemplate>\n <!-- <div *ngIf=\"showParentLoader\" class=\"text-center my-2\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div> -->\n <ng-container *ngIf=\"showParentError\" [sbUiResolverWidget]=\"widgetData.errorWidget\"></ng-container>\n <ng-container *ngIf=\"showParentNoData\" [sbUiResolverWidget]=\"widgetData.noDataWidget\"></ng-container>\n <ng-container *ngFor=\"let key of stripsKeyOrder; let i = index; trackBy: identify\">\n <ng-container *ngIf=\"isStripShowing(stripsResultDataMap[key])\">\n <a name=\"{{stripsResultDataMap[key]?.stripTitle}}\" [class]=\"key\">\n <div *ngIf=\"stripsResultDataMap && (getLength(stripsResultDataMap[key]) ||\n stripsResultDataMap[key]?.showOnNoData ||\n stripsResultDataMap[key]?.showOnLoader ||\n stripsResultDataMap[key]?.showOnError)\n \" [ngClass]=\"\n !widgetData?.isChannelStrip ? 'xs:px-8 sx:px-10ss' : i > 0 ? 'mt-12' : ''\n \" [id]=\"key\" [ngClass]=\"!widgetData?.isChannelStrip ? margin-bottom-custom : margin-bottom-xs\">\n <div [ngClass]=\"{ pad: stripsResultDataMap[key]?.stripBackground }\"\n [ngStyle]=\"{ 'background-color': stripsResultDataMap[key]?.stripBackground }\">\n <div class=\"flex flex-col pl-4 pr-4 md:pr-0 md:pl-0 \" [ngClass]=\"\n !widgetData?.isChannelStrip\n ? ''\n : stripsResultDataMap[key]?.stripTitle\n ? 'mb-8'\n : ''\n \">\n <div class=\"flex flex-1 items-center\">\n <p class=\"mat-subheading-1 margin-remove inline-block \" *ngIf=\"stripsResultDataMap[key]?.stripTitle\">\n <span class=\"capitalize\" *ngIf=\"stripsResultDataMap[key]?.disableTranslate\">\n {{stripsResultDataMap[key]?.stripTitle}}\n </span>\n <span *ngIf=\"!stripsResultDataMap[key]?.disableTranslate\">\n {{ translateLabels(stripsResultDataMap[key]?.stripTitle, 'home') }}\n </span>\n </p>\n\n <button *ngIf=\"stripsResultDataMap[key]?.stripInfo?.icon\" type=\"button\" mat-icon-button\n (click)=\"toggleInfo(stripsResultDataMap[key])\" i18n-matTooltip matTooltip=\"info\"\n class=\"margin-left-xs\">\n <mat-icon>{{ stripsResultDataMap[key]?.stripInfo?.icon.icon }}</mat-icon>\n </button>\n <a *ngIf=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [routerLink]=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [queryParams]=\"stripsResultDataMap[key]?.stripTitleLink?.link?.queryParams\">\n <mat-icon class=\"ws-mat-primary-primary-text ws-mat-default-text\" [color]=\"'accent'\">{{\n stripsResultDataMap[key]?.stripTitleLink?.icon }}</mat-icon>\n </a>\n <span class=\"spacer\"></span>\n <!-- viewAll start-->\n <div *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key])\"\n class=\"ml-4 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1\" (click)=\"redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0].viewMoreUrl.viewMoreText,'home') || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\" color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n <!-- viewAll end-->\n </div>\n <button mat-icon-button (click)=\"setHiddenForStrip(key)\" *ngIf=\"stripsResultDataMap[key]?.canHideStrip\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"stripsResultDataMap[key]?.mode === 'accordion' && isMobile\"\n (click)=\"showAccordionData = !showAccordionData\">{{ showAccordionData ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n\n <div class=\"mb-4\" *ngIf=\"checkVisible(stripsResultDataMap[key])\">\n <ng-container [sbUiResolverWidget]=\"getdata(stripsResultDataMap[key])\">\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnNoData\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.noDataWidget\"></ng-container>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnError\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.errorWidget\"></ng-container>\n <!-- IF no errors then proceed to show tabs or non tabs strip -->\n <ng-container *ngIf=\"!stripsResultDataMap[key]?.showOnNoData && !stripsResultDataMap[key]?.showOnError\">\n <ng-container *ngIf=\"stripsResultDataMap[key].tabs && stripsResultDataMap[key].tabs.length\">\n <mat-tab-group animationDuration=\"0ms\" [selectedIndex]=\"getSelectedIndex(stripsResultDataMap[key], key)\"\n class=\"mat-tab-labels w-full strips-tabgroup\" dynamicHeight\n (selectedTabChange)=\"tabClicked($event, stripsResultDataMap[key], key)\">\n <mat-tab label=\"{{tab?.label}}\" *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;\">\n <ng-template mat-tab-label>\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <span *ngIf=\"tab?.showTabDataCount && tab?.widgets?.length\">({{tab?.widgets?.length}})</span>\n </ng-template>\n <div>\n <!-- <ng-container [ngTemplateOutlet]=\"loader\" *ngIf=\"stripsResultDataMap[key]?.showOnLoader\">\n </ng-container> -->\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab.fetchTabStatus\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [id]=\"key+'-scroller'\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div *ngIf=\"((tab?.fetchTabStatus && tab?.fetchTabStatus === 'done') &&\n (!tab?.widgets || !tab?.widgets?.length))\">\n <ng-container *ngIf=\"tab?.value === 'inprogress'; else msgTemp\">\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.svg\">\n <div class=\"mat-subheading-1 text-center info-content\">{{ 'contentstripmultiple.getReadyForLearningAdventure' | translate }} -\n <a class=\"click-here\" [routerLink]=\"'/page/learn'\">{{ 'contentstripmultiple.clickHere' | translate }}</a> {{ 'contentstripmultiple.toEnrollNextCourse' | translate }}</div>\n </div>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.png\">\n <div class=\"mat-subheading-1 text-center\">{{ translateLabels(tab.nodataMsg, 'home') }}</div>\n </div>\n </ng-template>\n </div>\n <ng-container *ngIf=\"(tab?.fetchTabStatus === 'done' || tab?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.tabLoading\">\n\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [widgetsLength]=\"tab?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of tab?.widgets| slice:0:(tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </ng-container>\n </ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n <ng-container *ngIf=\"!stripsResultDataMap[key].tabs || !stripsResultDataMap[key].tabs.length\">\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader\" class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <div class=\"\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\" [widgetsLength]=\"stripsResultDataMap[key]?.widgets?.length\" [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.widgets| slice:0:(stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <!-- <ng-container *ngIf=\"widget.widgetData.context.pageSection === 'continueLearning' \"> -->\n <!-- <ng-container *ngIf=\"widget.widgetData.content.completionPercentage !== 100\"\n [sbUiResolverWidget]=\"widget\"></ng-container> -->\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n <!-- </ng-container> -->\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>",
4814
4832
  styles: [".view-more{display:flex;align-items:center;text-align:center;height:40px;justify-content:center}.view-more .icon{font-size:24px;width:24px;height:24px;border:1px solid;border-radius:50%;padding:8px;margin-bottom:8px}.margin-bottom-custom{margin-bottom:60px}.view-more:hover{background-color:#dcdfe5}::ng-deep.strips-tabgroup .mat-tab-header{border-bottom:2px solid rgba(0,0,0,.12)}::ng-deep.strips-tabgroup .mat-tab-body{padding:20px 0!important;box-sizing:border-box;overflow-y:initial!important}::ng-deep.strips-tabgroup .mat-tab-body-wrapper{overflow:inherit!important}::ng-deep.strips-tabgroup .mat-tab-label{border-bottom:0 solid rgba(0,0,0,.1);margin-right:0;opacity:1}::ng-deep.strips-tabgroup .mat-tab-label .mat-tab-label-content{text-transform:inherit;font:400 14px/20px Lato}::ng-deep.strips-tabgroup .mat-tab-label-active .mat-tab-label-content{font-weight:700!important}.click-here{color:#1b4ca1}.info-content{opacity:1;color:rgba(0,0,0,.87);font:700 14px/20px Lato-Bold;text-align:center}"]
4815
4833
  }] }
4816
4834
  ];
@@ -4822,6 +4840,7 @@ ContentStripWithTabsLibComponent.ctorParameters = () => [
4822
4840
  { type: EventService },
4823
4841
  { type: ConfigurationsService$1 },
4824
4842
  { type: UtilityService },
4843
+ { type: Router },
4825
4844
  { type: WidgetUserService },
4826
4845
  { type: TranslateService },
4827
4846
  { type: MultilingualTranslationsService }
@@ -4829,7 +4848,9 @@ ContentStripWithTabsLibComponent.ctorParameters = () => [
4829
4848
  ContentStripWithTabsLibComponent.propDecorators = {
4830
4849
  widgetData: [{ type: Input }],
4831
4850
  emptyResponse: [{ type: Output }],
4851
+ viewAllResponse: [{ type: Output }],
4832
4852
  providerId: [{ type: Input }],
4853
+ emitViewAll: [{ type: Input }],
4833
4854
  id: [{ type: HostBinding, args: ['id',] }]
4834
4855
  };
4835
4856
  if (false) {
@@ -4838,8 +4859,12 @@ if (false) {
4838
4859
  /** @type {?} */
4839
4860
  ContentStripWithTabsLibComponent.prototype.emptyResponse;
4840
4861
  /** @type {?} */
4862
+ ContentStripWithTabsLibComponent.prototype.viewAllResponse;
4863
+ /** @type {?} */
4841
4864
  ContentStripWithTabsLibComponent.prototype.providerId;
4842
4865
  /** @type {?} */
4866
+ ContentStripWithTabsLibComponent.prototype.emitViewAll;
4867
+ /** @type {?} */
4843
4868
  ContentStripWithTabsLibComponent.prototype.id;
4844
4869
  /** @type {?} */
4845
4870
  ContentStripWithTabsLibComponent.prototype.stripsResultDataMap;
@@ -4897,6 +4922,8 @@ if (false) {
4897
4922
  ContentStripWithTabsLibComponent.prototype.configSvc;
4898
4923
  /** @type {?} */
4899
4924
  ContentStripWithTabsLibComponent.prototype.utilitySvc;
4925
+ /** @type {?} */
4926
+ ContentStripWithTabsLibComponent.prototype.router;
4900
4927
  /**
4901
4928
  * @type {?}
4902
4929
  * @private
@@ -5409,7 +5436,8 @@ SlidersLibModule.decorators = [
5409
5436
  */
5410
5437
  /** @type {?} */
5411
5438
  const API_END_POINTS$2 = {
5412
- PROVIDER_INSIGHTS: `/apis/proxies/v8/microsite/read/insights`
5439
+ PROVIDER_INSIGHTS: `/apis/proxies/v8/microsite/read/insights`,
5440
+ TRAINING_DETAILS: `apis/proxies/v8/sunbirdigot/search`
5413
5441
  };
5414
5442
  class InsiteDataService {
5415
5443
  /**
@@ -5425,6 +5453,13 @@ class InsiteDataService {
5425
5453
  fetchSearchData(request) {
5426
5454
  return this.http.post(API_END_POINTS$2.PROVIDER_INSIGHTS, request);
5427
5455
  }
5456
+ /**
5457
+ * @param {?} request
5458
+ * @return {?}
5459
+ */
5460
+ fetchTrainingDetails(request) {
5461
+ return this.http.post(API_END_POINTS$2.TRAINING_DETAILS, request);
5462
+ }
5428
5463
  }
5429
5464
  InsiteDataService.decorators = [
5430
5465
  { type: Injectable, args: [{
@@ -5521,7 +5556,7 @@ class DataPointsComponent {
5521
5556
  DataPointsComponent.decorators = [
5522
5557
  { type: Component, args: [{
5523
5558
  selector: 'sb-uic-data-points',
5524
- template: "<div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && !isDataLoading\">\n <div *ngFor=\"let obj of objectData\" class=\"\">\n <div class=\"element-div\" [ngClass]=\"{'linebreak': obj?.linebreak}\">\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <img class=\"objIcon\" [src]=\"obj.icon\" [style.color]=\"obj?.iconColor\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" >{{obj?.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"objDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleRow'\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"mobjIcon\" [src]=\"obj.icon\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\">{{obj?.value | number: '1.1-2'}}</div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"top-container\">\n <div class=\"flex-container\" *ngFor=\"let chunk of customArray\">\n <div *ngFor=\"let item of chunk\">\n <div class=\"flex-item\">\n <div class=\"flex flex-row gap-5 infra-element-div\">\n <div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\">{{item?.value}}</div>\n <div [style.color]=\"item?.labelColor\" class=\"custom-opacity infra-objDescription padding-top-s\">{{item?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div> \n</div>\n\n\n<!-- skeleton loaders -->\n\n<ng-container>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && isDataLoading\">\n <div *ngFor=\"let obj of [0,1,2,3]\" class=\"\">\n <div class=\"element-div linebreak\" >\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'150px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>",
5559
+ template: "<div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && !isDataLoading\">\n <div *ngFor=\"let obj of objectData; let last = last\" class=\"\">\n <div class=\"element-div\" [ngClass]=\"{'linebreak': obj?.linebreak }\">\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <img class=\"objIcon\" [src]=\"obj.icon\" [style.color]=\"obj?.iconColor\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" >{{obj?.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"objDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleRow'\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"mobjIcon\" [src]=\"obj.icon\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\">{{obj?.value | number: '1.1-2'}}</div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"top-container\">\n <div class=\"flex-container\" *ngFor=\"let chunk of customArray\">\n <div *ngFor=\"let item of chunk\">\n <div class=\"flex-item\">\n <div class=\"flex flex-row gap-5 infra-element-div\">\n <div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\">{{item?.value}}</div>\n <div [style.color]=\"item?.labelColor\" class=\"custom-opacity infra-objDescription padding-top-s\">{{item?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div> \n</div>\n\n\n<!-- skeleton loaders -->\n\n<ng-container>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && isDataLoading\">\n <div *ngFor=\"let obj of [0,1,2,3]\" class=\"\">\n <div class=\"element-div linebreak\" >\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'150px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>",
5525
5560
  styles: [".white{color:#fff}.custom-opacity{opacity:.7}.black{color:#000}.objIcon{width:32px;height:32px}.mobjIcon{width:24px;height:24px}.objHeader{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left}.mobjHeader{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.objDescription{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:left}.mobjDescription{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left}.metrics-web{height:inherit;overflow-y:auto}.element-div{padding:25px 0;margin:0 25px}.linebreak{border-bottom:1px solid rgba(0,0,0,.16)}.melement-div{padding:16px;border-radius:15px;width:249px}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-element-div{min-width:325px;padding:25px 0;align-items:baseline}.infra-objIcon{width:32px;height:32px}.infra-objHeader{font-family:Montserrat;font-size:36px;font-weight:600;line-height:29.26px;text-align:left}.infra-objDescription{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:left}.flex-container{display:flex}.top-container{overflow-x:auto;width:100%}.flex-item{flex:0 0 auto;white-space:nowrap;min-width:200px}@media screen and (max-width:768px){.infra-objIcon{width:24px;height:24px}.infra-objHeader{font-size:24px}.infra-element-div{min-width:250px;padding:15px 0 25px}}"]
5526
5561
  }] }
5527
5562
  ];
@@ -5637,32 +5672,384 @@ DataPointsModule.decorators = [
5637
5672
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5638
5673
  */
5639
5674
  class CalenderComponent {
5640
- constructor() {
5641
- this.toDay = new Date();
5675
+ /**
5676
+ * @param {?} datePipe
5677
+ * @param {?} insightSvc
5678
+ */
5679
+ constructor(datePipe, insightSvc) {
5680
+ this.datePipe = datePipe;
5681
+ this.insightSvc = insightSvc;
5682
+ this.fetchDataFromApi = false;
5683
+ this.showHeader = false;
5684
+ this.defaultDays = 3;
5685
+ this.fullCalendor = false;
5686
+ this.days = [];
5687
+ this.trainings = {};
5688
+ this.isDataLoading = false;
5689
+ this.currentDate = new Date();
5690
+ this.allMonths = ["January", "February", "March",
5691
+ "April", "May", "June", "July",
5692
+ "August", "September", "October",
5693
+ "November", "December"
5694
+ ];
5695
+ this.monthsDropdown = [];
5642
5696
  }
5643
5697
  /**
5644
5698
  * @return {?}
5645
5699
  */
5646
5700
  ngOnInit() {
5647
- console.log("data ===== ", this.objectData);
5648
- console.log("toDay ", this.toDay);
5701
+ this.currentMonthAndYear = this.datePipe.transform(this.currentDate, 'MMMM y');
5702
+ this.selectedMonth = this.datePipe.transform(this.currentDate, 'LLLL yyyy');
5703
+ if (this.fullCalendor) {
5704
+ console.log("this.currentDate ", this.currentDate);
5705
+ this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
5706
+ this.getMonthsDropdownData();
5707
+ }
5708
+ if (!this.fullCalendor) {
5709
+ this.days = this.getDays(this.currentDate, +this.defaultDays);
5710
+ }
5711
+ this.startDate = this.days[0];
5712
+ this.endDate = this.days[this.days.length - 1];
5713
+ if (this.fetchDataFromApi) {
5714
+ this.isDataLoading = true;
5715
+ this.getInsiteData();
5716
+ }
5717
+ }
5718
+ /**
5719
+ * @return {?}
5720
+ */
5721
+ getInsiteData() {
5722
+ /** @type {?} */
5723
+ let request = {
5724
+ "locale": [
5725
+ "en"
5726
+ ],
5727
+ "query": "",
5728
+ "request": {
5729
+ "query": "",
5730
+ "filters": {
5731
+ "category": [
5732
+ "Calendar"
5733
+ ],
5734
+ "status": [
5735
+ "Live",
5736
+ "Retired"
5737
+ ],
5738
+ "contentType": "Event",
5739
+ "startDate": {
5740
+ ">=": this.startDate,
5741
+ "<=": this.endDate
5742
+ // ">=": "2024-01-15",
5743
+ // "<": "2024-05-31"
5744
+ },
5745
+ "channel": [this.providerId]
5746
+ },
5747
+ "sort_by": {
5748
+ "lastUpdatedOn": "desc"
5749
+ }
5750
+ }
5751
+ };
5752
+ this.insightSvc.fetchTrainingDetails(request).subscribe((/**
5753
+ * @param {?} res
5754
+ * @return {?}
5755
+ */
5756
+ (res) => {
5757
+ if (res && res.result && res.result.Event) {
5758
+ res.result.Event.forEach((/**
5759
+ * @param {?} resp
5760
+ * @return {?}
5761
+ */
5762
+ (resp) => {
5763
+ if (this.trainings[resp.startDate]) {
5764
+ /** @type {?} */
5765
+ let prevData = this.trainings[resp.startDate];
5766
+ /** @type {?} */
5767
+ let location = resp.eventType;
5768
+ if (resp.venue && location !== "Online") {
5769
+ /** @type {?} */
5770
+ const jsonResp = JSON.parse(resp.venue);
5771
+ location = jsonResp['address'];
5772
+ }
5773
+ /** @type {?} */
5774
+ const formatObject = {
5775
+ location: location,
5776
+ startTime: this.convertTo12HourFormat(resp.startTime),
5777
+ endTime: this.convertTo12HourFormat(resp.endTime),
5778
+ title: resp.name,
5779
+ startDate: this.formatDate(resp.startDate),
5780
+ endDate: this.formatDate(resp.endDate),
5781
+ registrationLink: resp.registrationLink,
5782
+ };
5783
+ prevData.push(formatObject);
5784
+ this.trainings[resp.startDate] = prevData;
5785
+ }
5786
+ }));
5787
+ }
5788
+ this.isDataLoading = false;
5789
+ }));
5790
+ }
5791
+ /**
5792
+ * @param {?} obj
5793
+ * @return {?}
5794
+ */
5795
+ getKeys(obj) {
5796
+ return Object.keys(obj);
5797
+ }
5798
+ /**
5799
+ * @param {?} date
5800
+ * @return {?}
5801
+ */
5802
+ formatDate(date) {
5803
+ /** @type {?} */
5804
+ let formatDate = new Date(date);
5805
+ return this.datePipe.transform(formatDate, 'E, dd LLL');
5806
+ }
5807
+ /**
5808
+ * @param {?} timeString
5809
+ * @return {?}
5810
+ */
5811
+ convertTo12HourFormat(timeString) {
5812
+ /** @type {?} */
5813
+ const time = timeString.split(":");
5814
+ /** @type {?} */
5815
+ let hours = +time[0];
5816
+ /** @type {?} */
5817
+ const minutes = +time[1];
5818
+ /** @type {?} */
5819
+ const ampm = hours >= 12 ? 'PM' : 'AM';
5820
+ hours = hours % 12;
5821
+ hours = hours ? hours : 12;
5822
+ /** @type {?} */
5823
+ const strHours = hours < 10 ? '0' + hours : hours.toString();
5824
+ /** @type {?} */
5825
+ const strMinutes = minutes < 10 ? '0' + minutes : minutes.toString();
5826
+ return `${strHours}:${strMinutes}: ${ampm}`;
5827
+ }
5828
+ /**
5829
+ * @param {?} cDate
5830
+ * @param {?} counter
5831
+ * @return {?}
5832
+ */
5833
+ getDays(cDate, counter) {
5834
+ /** @type {?} */
5835
+ const days = [];
5836
+ /** @type {?} */
5837
+ let initDate = new Date(cDate);
5838
+ initDate = this.datePipe.transform(initDate, 'y-MM-dd');
5839
+ days.push(initDate);
5840
+ this.trainings[initDate] = [];
5841
+ while (counter > 0) {
5842
+ /** @type {?} */
5843
+ let myDate = new Date(cDate);
5844
+ myDate = myDate.setDate(myDate.getDate() + 1);
5845
+ cDate = myDate;
5846
+ myDate = this.datePipe.transform(myDate, 'y-MM-dd');
5847
+ days.push(myDate);
5848
+ this.trainings[myDate] = [];
5849
+ counter = counter - 1;
5850
+ }
5851
+ return days;
5852
+ }
5853
+ /**
5854
+ * @param {?} year
5855
+ * @param {?} month
5856
+ * @return {?}
5857
+ */
5858
+ getDaysInMonth(year, month) {
5859
+ /** @type {?} */
5860
+ const date = new Date(year, month, 1);
5861
+ /** @type {?} */
5862
+ const days = [];
5863
+ this.trainings = {};
5864
+ while (date.getMonth() === month) {
5865
+ /** @type {?} */
5866
+ let myDate = new Date(date);
5867
+ myDate = this.datePipe.transform(myDate, 'y-MM-dd');
5868
+ days.push(myDate);
5869
+ this.trainings[myDate] = [];
5870
+ date.setDate(date.getDate() + 1);
5871
+ }
5872
+ return days;
5873
+ }
5874
+ /**
5875
+ * @return {?}
5876
+ */
5877
+ getMonthsDropdownData() {
5878
+ this.allMonths.forEach((/**
5879
+ * @param {?} month
5880
+ * @return {?}
5881
+ */
5882
+ (month) => {
5883
+ this.monthsDropdown.push(`${month} ${this.currentDate.getFullYear()}`);
5884
+ }));
5885
+ }
5886
+ /**
5887
+ * @param {?} event
5888
+ * @return {?}
5889
+ */
5890
+ selectMonth(event) {
5891
+ /** @type {?} */
5892
+ const selectedMonth = new Date(event);
5893
+ this.currentDate = selectedMonth;
5894
+ this.days = [];
5895
+ this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
5896
+ this.startDate = this.days[0];
5897
+ this.endDate = this.days[this.days.length - 1];
5898
+ this.isDataLoading = true;
5899
+ this.getInsiteData();
5649
5900
  }
5650
5901
  }
5651
5902
  CalenderComponent.decorators = [
5652
5903
  { type: Component, args: [{
5653
5904
  selector: 'sb-uic-calender',
5654
- template: "<div class=\"w-full p-3 event-day my-3\" \n *ngFor=\"let obj of objectData?.training\"\n [style.backgroundColor]=\"obj?.backgroundColor\" \n [style.borderColor]=\"objectData?.activeColor\">\n <div class=\"flex item-top gap-8 {{ obj.events.length ? '' : 'aliginCenter'}}\">\n <div class=\"event-date\">\n <div class=\"currentDay\">{{obj.eventDate}}</div>\n </div>\n <div class=\"details w-full\" *ngIf=\"obj.events.length\">\n <div class=\"flex p-4 item-center events-list mb-{{obj.events.length === (i+1) ? '0' : '2'}} gap-20\" [style.backgroundColor]=\"event?.backgroundColor\"\n *ngFor=\"let event of obj.events; let i = index\" >\n <div>\n <div class=\"flex flex-row item-center gap-10 pb-2\">\n <div class=\"flex item-center gap-2 row1 col1\">\n <div><mat-icon class=\"icon-tour\">schedule</mat-icon> </div>\n <div>{{event.startTime}} to {{event.endTime}}</div>\n </div>\n <div class=\"flex item-center col1\">{{event.title}}</div>\n </div>\n <div class=\"flex flex-row item-center gap-10\">\n <div class=\"flex item-center gap-2 row1 col1\" *ngIf=\"event.startDate && event.endDate\">\n <div><mat-icon class=\"icon-tour\">date_range</mat-icon> </div>\n <div>{{event.startDate}} - {{event.endDate}}</div>\n </div>\n <div class=\"flex item-center gap-2 col1\">\n <div><mat-icon class=\"icon-tour\">location_on</mat-icon> </div>\n <div class=\"flex item-center\">{{event.location}}</div>\n </div>\n </div>\n </div>\n <div class=\"visit-link\">\n Visit\n </div>\n </div>\n </div>\n <div class=\"details w-full\" *ngIf=\"!obj.events.length\">\n No trainings.\n </div>\n </div>\n</div>",
5655
- styles: [".event-day{border:1px solid #c3c3c3;border-radius:15px}.event-date{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;width:10%}.events-list{border:1px solid #c3c3c3;border-radius:15px;justify-content:space-between;align-items:center;font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px}.row1{width:235px}.aliginCenter,.col1{align-items:center}.visit-link{opacity:.7;cursor:pointer}.currentDay{padding:5px;background:#1d8923;border-radius:20px;color:#fff}"]
5905
+ template: "<div class=\"calendar-header flex flex-row c-padding center gap-2\" *ngIf=\"showHeader\">\n <div class=\"pt-3\">{{ objectData?.title }}:</div>\n <div class=\"choose-month\">\n <mat-form-field class=\"custom-month\">\n <mat-select matNativeControl panelClass=\"custom-select\" [ngModel]=\"selectedMonth\" (ngModelChange)=\"selectMonth($event)\" class=\"month-select\">\n <span *ngFor=\"let month of monthsDropdown\">\n <mat-option [value]=\"month\">{{month}}</mat-option>\n </span>\n </mat-select>\n </mat-form-field>\n </div>\n</div>\n<div *ngIf=\"layoutType==='grid'\">\n <div *ngFor=\"let obj of getKeys(trainings); let i = index\">\n <sb-uic-calender-day [day]=\"trainings[obj]\"\n [layoutType]=\"layoutType\"\n [objectData]=\"objectData\"\n [dataLoading]=\"isDataLoading\"\n [eventDate]=\"obj\"\n [rowId]=\"i\">\n </sb-uic-calender-day>\n </div> \n</div>\n<div *ngIf=\"layoutType==='row'\">\n <div *ngFor=\"let obj of getKeys(trainings); let j = index\">\n <sb-uic-calender-day [day]=\"trainings[obj]\"\n [layoutType]=\"layoutType\"\n [objectData]=\"objectData\"\n [dataLoading]=\"isDataLoading\"\n [eventDate]=\"obj\"\n [rowId]=\"j\">\n </sb-uic-calender-day>\n </div>\n</div>",
5906
+ styles: [".calendar-header{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.c-padding{padding:0}.center{align-items:center}::ng-deep .custom-month .mat-form-field-wrapper{padding-bottom:0!important;width:110px}::ng-deep .custom-month .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#000!important}::ng-deep .custom-month .mat-select-value{width:89%}::ng-deep .custom-month .mat-select-value-text{font-weight:600}@media screen and (max-width:768px){.c-padding{padding:0 1.25rem 1rem}.calendar-header{font-size:15px}}"]
5656
5907
  }] }
5657
5908
  ];
5909
+ /** @nocollapse */
5910
+ CalenderComponent.ctorParameters = () => [
5911
+ { type: DatePipe },
5912
+ { type: InsiteDataService }
5913
+ ];
5658
5914
  CalenderComponent.propDecorators = {
5659
- objectData: [{ type: Input }]
5915
+ objectData: [{ type: Input }],
5916
+ layoutType: [{ type: Input }],
5917
+ fetchDataFromApi: [{ type: Input }],
5918
+ showHeader: [{ type: Input }],
5919
+ defaultDays: [{ type: Input }],
5920
+ providerId: [{ type: Input }],
5921
+ fullCalendor: [{ type: Input }]
5660
5922
  };
5661
5923
  if (false) {
5662
5924
  /** @type {?} */
5663
5925
  CalenderComponent.prototype.objectData;
5664
5926
  /** @type {?} */
5665
- CalenderComponent.prototype.toDay;
5927
+ CalenderComponent.prototype.layoutType;
5928
+ /** @type {?} */
5929
+ CalenderComponent.prototype.fetchDataFromApi;
5930
+ /** @type {?} */
5931
+ CalenderComponent.prototype.showHeader;
5932
+ /** @type {?} */
5933
+ CalenderComponent.prototype.defaultDays;
5934
+ /** @type {?} */
5935
+ CalenderComponent.prototype.providerId;
5936
+ /** @type {?} */
5937
+ CalenderComponent.prototype.fullCalendor;
5938
+ /** @type {?} */
5939
+ CalenderComponent.prototype.days;
5940
+ /** @type {?} */
5941
+ CalenderComponent.prototype.trainings;
5942
+ /** @type {?} */
5943
+ CalenderComponent.prototype.currentMonthAndYear;
5944
+ /** @type {?} */
5945
+ CalenderComponent.prototype.isDataLoading;
5946
+ /** @type {?} */
5947
+ CalenderComponent.prototype.currentDate;
5948
+ /** @type {?} */
5949
+ CalenderComponent.prototype.endDate;
5950
+ /** @type {?} */
5951
+ CalenderComponent.prototype.startDate;
5952
+ /** @type {?} */
5953
+ CalenderComponent.prototype.allMonths;
5954
+ /** @type {?} */
5955
+ CalenderComponent.prototype.monthsDropdown;
5956
+ /** @type {?} */
5957
+ CalenderComponent.prototype.selectedMonth;
5958
+ /**
5959
+ * @type {?}
5960
+ * @private
5961
+ */
5962
+ CalenderComponent.prototype.datePipe;
5963
+ /** @type {?} */
5964
+ CalenderComponent.prototype.insightSvc;
5965
+ }
5966
+
5967
+ /**
5968
+ * @fileoverview added by tsickle
5969
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5970
+ */
5971
+ class CalenderDayComponent {
5972
+ /**
5973
+ * @param {?} datePipe
5974
+ */
5975
+ constructor(datePipe) {
5976
+ this.datePipe = datePipe;
5977
+ this.webDisplayDate = "";
5978
+ this.mobileDisplayDate = "";
5979
+ this.currentDate = new Date();
5980
+ }
5981
+ /**
5982
+ * @return {?}
5983
+ */
5984
+ ngOnInit() {
5985
+ this.currentDate = this.datePipe.transform(this.currentDate, 'y-MM-dd');
5986
+ }
5987
+ /**
5988
+ * @param {?} link
5989
+ * @return {?}
5990
+ */
5991
+ openLink(link) {
5992
+ window.open(link, "_blank");
5993
+ }
5994
+ /**
5995
+ * @param {?} date
5996
+ * @param {?} type
5997
+ * @return {?}
5998
+ */
5999
+ formatDate(date, type) {
6000
+ /** @type {?} */
6001
+ let fDate = new Date(date);
6002
+ if (type === 'web') {
6003
+ return this.datePipe.transform(fDate, 'E, dd LLL');
6004
+ }
6005
+ if (type === 'mob') {
6006
+ return this.datePipe.transform(fDate, 'E dd LLL');
6007
+ }
6008
+ }
6009
+ }
6010
+ CalenderDayComponent.decorators = [
6011
+ { type: Component, args: [{
6012
+ selector: 'sb-uic-calender-day',
6013
+ template: "<div *ngIf=\"layoutType==='grid' && !dataLoading\">\n <div class=\"p-3 event-day my-3\"\n [style.backgroundColor]=\"objectData?.webBackgroundColor\"\n [style.borderColor]=\"currentDate === eventDate ? objectData?.activeBackgroudColor: ''\">\n \n <div class=\"flex item-top gap-8 {{ day.length ? '' : 'aliginCenter'}}\">\n <div class=\"event-date\">\n <div class=\"currentDay\"\n [style.backgroundColor]=\"currentDate === eventDate ? objectData?.activeBackgroudColor: ''\"\n [style.color]=\"currentDate === eventDate ? objectData?.activeColor: ''\">\n {{formatDate(eventDate, 'web')}}\n </div>\n </div>\n <div class=\"details w-full\" *ngIf=\"day.length\">\n <div class=\"flex p-4 item-center events-list mb-{{day.length === (i+1) ? '0' : '2'}} gap-20\" [style.backgroundColor]=\"objectData?.eventBackgroundColor\"\n *ngFor=\"let event of day; let i = index\" >\n <div>\n <div class=\"flex flex-row item-center gap-10 pb-2\">\n <div class=\"flex item-center gap-1 row1 col1\">\n <div><mat-icon class=\"icon-web\">schedule</mat-icon> </div>\n <div>{{event.startTime}} to {{event.endTime}}</div>\n </div>\n <div class=\"flex item-center col1\">{{event.title}}</div>\n </div>\n <div class=\"flex flex-row item-center gap-10\">\n <div class=\"flex item-center gap-1 row1 col1\" *ngIf=\"event.startDate && event.endDate && event.startDate !== event.endDate\">\n <div><mat-icon class=\"icon-web\">date_range</mat-icon> </div>\n <div class=\"upcase\">{{event.startDate}} - {{event.endDate}}</div>\n </div>\n <div class=\"flex item-center col1\">\n <div><mat-icon class=\"icon-web\">location_on</mat-icon> </div>\n <div class=\"flex item-center\">{{event.location}}</div>\n </div>\n </div>\n </div>\n <div class=\"visit-link flex gap-2\"\n *ngIf=\"event?.registrationLink\">\n <div (click)=\"openLink(event?.registrationLink)\">Visit</div>\n <div (click)=\"openLink(event?.registrationLink)\"><mat-icon class=\"visit-icon\">open_in_new</mat-icon> </div>\n </div>\n </div>\n </div>\n <div class=\"details w-full\" *ngIf=\"!day.length\">\n No trainings.\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"layoutType==='row' && !dataLoading\">\n <div class=\"p-5 mb-{{day?.length === (rowId+1) ? '0' : '3'}}\"\n [style.backgroundColor]=\"objectData?.mobileBackground\">\n <div class=\"flex item-center gap-4\">\n <div class=\"event-date\">\n <div class=\"flex flex-col\">\n <div> {{formatDate(eventDate, 'mob').split(' ')[0]}}</div>\n <div class=\"mob-currentDay\"\n [style.backgroundColor]=\"currentDate === eventDate ? objectData?.activeBackgroudColor: ''\"\n [style.color]=\"currentDate === eventDate ? objectData?.activeColor: ''\">\n {{formatDate(eventDate, 'mob').split(' ')[1]}}\n </div>\n <div> {{formatDate(eventDate, 'mob').split(' ')[2]}}</div>\n </div>\n </div>\n <div class=\"details w-full\" *ngIf=\"day.length\">\n <div class=\"flex flex-col mob-events-list p-3 mb-{{day.length === (i+1) ? '0' : '2'}}\"\n *ngFor=\"let event of day; let i = index\" [style.backgroundColor]=\"objectData?.eventBackgroundColor\">\n <div>\n <div class=\"flex pb-2\">{{event.title}}</div>\n <div class=\"flex pb-1\">\n <div><mat-icon class=\"mob-icon\">schedule</mat-icon> </div>\n <div>{{event.startTime}} to {{event.endTime}}</div>\n </div>\n <div class=\"flex pb-1\" *ngIf=\"event.startDate && event.endDate && event.startDate !== event.endDate\">\n <div><mat-icon class=\"mob-icon\">date_range</mat-icon> </div>\n <div class=\"upcase\">{{event.startDate}} - {{event.endDate}}</div>\n </div>\n <div class=\"flex\">\n <div><mat-icon class=\"mob-icon\">location_on</mat-icon> </div>\n <div class=\"flex item-center\">{{event.location}}</div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"details w-full flex no-data\" *ngIf=\"!day.length\">\n No trainings.\n </div>\n </div> \n </div> \n</div>\n\n<!-- skeleton loaders -->\n<div *ngIf=\"dataLoading\">\n <div *ngIf=\"layoutType==='grid'\">\n <div class=\"hidden md:block\">\n <div class=\"p-3 event-day my-3\"\n [style.backgroundColor]=\"'#FFF'\">\n <div class=\"flex item-top gap-8\">\n <div class=\"event-date\">\n <div class=\"currentDay\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'90px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n </div>\n <div class=\"details w-full\">\n <div class=\"flex p-4 item-center events-list mb-2 gap-20\">\n <div>\n <div class=\"flex flex-row item-center gap-20 pb-2\">\n <div class=\"flex item-center gap-2 row1 col1\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'50px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex item-center col1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> </div>\n </div>\n <div class=\"flex flex-row item-center gap-20 pb-2\">\n <div class=\"flex item-center gap-2 row1 col1\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'50px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex item-center col1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> </div>\n </div>\n </div>\n <div class=\"visit-link flex gap-2\">\n <div><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"layoutType==='row'\">\n <div class=\"block md:hidden\">\n <div class=\"p-5\" \n [style.backgroundColor]=\"'#FFFFFF'\">\n <div class=\"flex item-center gap-4\">\n <div class=\"event-date\">\n <div class=\"flex flex-col\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'90px'\"></sb-uic-skeleton-loader> \n </div>\n </div>\n <div class=\"details w-full\">\n <div class=\"flex flex-col mob-events-list p-3 mb-2\">\n <div>\n <div class=\"flex pb-2\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'265px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"flex pb-1 gap-2\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'230px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex pb-1 gap-2\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'230px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex gap-2\">\n <div><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex item-center\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'230px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div> \n</div>",
6014
+ styles: [".event-day{border:1px solid #c3c3c3;border-radius:15px}.event-date{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;width:10%;text-transform:uppercase}.events-list{border:1px solid #c3c3c3;border-radius:15px;justify-content:space-between;align-items:center;font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px}.row1{width:235px}.icon-web{font-size:17px;height:17px}.upcase{text-transform:uppercase}.aliginCenter,.col1{align-items:center}.visit-link{cursor:pointer;align-items:center;justify-content:center}.visit-icon{font-size:17px;height:17px;color:#1b4ca1}.currentDay{padding:5px;border-radius:20px}.mob-currentDay{padding:8px;border-radius:20px}.mob-events-list{border:1px solid #e8e6e5;border-radius:10px;justify-content:space-between;font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px}.mob-icon{font-size:17px;height:17px}.no-data{display:flex;align-items:center}"]
6015
+ }] }
6016
+ ];
6017
+ /** @nocollapse */
6018
+ CalenderDayComponent.ctorParameters = () => [
6019
+ { type: DatePipe }
6020
+ ];
6021
+ CalenderDayComponent.propDecorators = {
6022
+ objectData: [{ type: Input }],
6023
+ layoutType: [{ type: Input }],
6024
+ day: [{ type: Input }],
6025
+ dataLoading: [{ type: Input }],
6026
+ rowId: [{ type: Input }],
6027
+ eventDate: [{ type: Input }]
6028
+ };
6029
+ if (false) {
6030
+ /** @type {?} */
6031
+ CalenderDayComponent.prototype.objectData;
6032
+ /** @type {?} */
6033
+ CalenderDayComponent.prototype.layoutType;
6034
+ /** @type {?} */
6035
+ CalenderDayComponent.prototype.day;
6036
+ /** @type {?} */
6037
+ CalenderDayComponent.prototype.dataLoading;
6038
+ /** @type {?} */
6039
+ CalenderDayComponent.prototype.rowId;
6040
+ /** @type {?} */
6041
+ CalenderDayComponent.prototype.eventDate;
6042
+ /** @type {?} */
6043
+ CalenderDayComponent.prototype.webDisplayDate;
6044
+ /** @type {?} */
6045
+ CalenderDayComponent.prototype.mobileDisplayDate;
6046
+ /** @type {?} */
6047
+ CalenderDayComponent.prototype.currentDate;
6048
+ /**
6049
+ * @type {?}
6050
+ * @private
6051
+ */
6052
+ CalenderDayComponent.prototype.datePipe;
5666
6053
  }
5667
6054
 
5668
6055
  /**
@@ -5676,9 +6063,15 @@ CalenderModule.decorators = [
5676
6063
  imports: [
5677
6064
  CommonModule,
5678
6065
  MatIconModule,
6066
+ FormsModule,
6067
+ ReactiveFormsModule,
6068
+ MatSelectModule,
6069
+ SkeletonLoaderLibModule
5679
6070
  ],
5680
- declarations: [CalenderComponent],
6071
+ declarations: [CalenderComponent, CalenderDayComponent],
5681
6072
  exports: [CalenderComponent],
6073
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
6074
+ providers: [DatePipe, InsiteDataService],
5682
6075
  },] }
5683
6076
  ];
5684
6077
 
@@ -5896,18 +6289,21 @@ class CommonStripComponent extends WidgetBaseComponent {
5896
6289
  if (this.widgetData.loader && this.widgetData.strips.length) {
5897
6290
  this.showParentLoader = true;
5898
6291
  }
5899
- // Fetch the data
5900
- for (const strip of this.widgetData.strips) {
5901
- this.processStrip(strip, [], 'fetching', false, null);
5902
- if (strip.dataType === 'in-hand' && this.widgetData[strip.dataKey]) {
5903
- this.processStrip(strip, this.commonMethodsSvc.transformContentsToWidgets(this.widgetData[strip.dataKey], strip), 'done', true, strip.viewMoreUrl || '');
5904
- }
5905
- else {
5906
- if (this.checkForEmptyWidget(strip)) {
5907
- // this.fetchStripFromRequestData(strip, false);
6292
+ // null check if in case no strips key in config
6293
+ if (this.widgetData && this.widgetData.strips) {
6294
+ // Fetch the data
6295
+ for (const strip of this.widgetData.strips) {
6296
+ this.processStrip(strip, [], 'fetching', false, null);
6297
+ if (strip.dataType === 'in-hand' && this.widgetData[strip.dataKey]) {
6298
+ this.processStrip(strip, this.commonMethodsSvc.transformContentsToWidgets(this.widgetData[strip.dataKey], strip), 'done', true, strip.viewMoreUrl || '');
5908
6299
  }
5909
6300
  else {
5910
- this.processStrip(strip, [], 'done', true, null);
6301
+ if (this.checkForEmptyWidget(strip)) {
6302
+ // this.fetchStripFromRequestData(strip, false);
6303
+ }
6304
+ else {
6305
+ this.processStrip(strip, [], 'done', true, null);
6306
+ }
5911
6307
  }
5912
6308
  }
5913
6309
  }
@@ -6585,7 +6981,7 @@ class CardsComponent extends WidgetBaseComponent {
6585
6981
  CardsComponent.decorators = [
6586
6982
  { type: Component, args: [{
6587
6983
  selector: 'sb-uic-cards',
6588
- 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>\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 [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-portrait>\n</ng-template>\n<ng-template #cardLandscapeLibSkeleton>\n <sb-uic-card-landscape [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-landscape>\n</ng-template>\n<ng-template #cardLandscapeLib>\n <sb-uic-card-landscape [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-landscape>\n</ng-template>\n\n\n <ng-template #cardUser>\n <sb-uic-card-user [widgetData]=\"widgetData\"></sb-uic-card-user>\n </ng-template>\n",
6984
+ 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>\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 (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\" [isCardLoading]=\"true\"></sb-uic-card-landscape>\n</ng-template>\n<ng-template #cardLandscapeLib>\n <sb-uic-card-landscape [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-landscape>\n</ng-template>\n\n<ng-template #cardWideLib>\n <sb-uic-card-wide [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 #cardUser>\n <sb-uic-card-user [widgetData]=\"widgetData\"></sb-uic-card-user>\n </ng-template>\n",
6589
6985
  styles: [""]
6590
6986
  }] }
6591
6987
  ];
@@ -6701,6 +7097,10 @@ class CardPortraitComponent {
6701
7097
  this.sourceLogos = instanceConfig.sources;
6702
7098
  this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
6703
7099
  }
7100
+ else {
7101
+ this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
7102
+ this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
7103
+ }
6704
7104
  }
6705
7105
  /**
6706
7106
  * @return {?}
@@ -7482,65 +7882,225 @@ if (false) {
7482
7882
  * @fileoverview added by tsickle
7483
7883
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7484
7884
  */
7485
- class CardsModule {
7486
- }
7487
- CardsModule.decorators = [
7488
- { type: NgModule, args: [{
7489
- declarations: [CardResourceComponent, CardsComponent, CardPortraitComponent, CardUserComponent, CardLandscapeComponent],
7490
- imports: [
7491
- CommonModule,
7492
- MatCardModule,
7493
- MatButtonModule,
7494
- MatIconModule,
7495
- MatTooltipModule,
7496
- RouterModule,
7497
- PipePublicURLModule,
7498
- DisplayContentTypeLibModule,
7499
- DefaultThumbnailModule,
7500
- PipeDurationTransformModule,
7501
- SkeletonLoaderLibModule
7502
- ],
7503
- entryComponents: [CardsComponent],
7504
- exports: [
7505
- CardsComponent,
7506
- CardResourceComponent,
7507
- CardPortraitComponent,
7508
- CardLandscapeComponent,
7509
- CardUserComponent
7510
- ],
7511
- },] }
7512
- ];
7513
-
7514
- /**
7515
- * @fileoverview added by tsickle
7516
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7517
- */
7518
- /** @type {?} */
7519
- const WIDGET_REGISTERED_LIB_MODULES = [
7520
- CardsModule
7521
- ];
7522
- /** @type {?} */
7523
- const WIDGET_REGISTRATION_LIB_CONFIG = [
7524
- {
7525
- widgetType: ROOT_WIDGET_CONFIG.card._type,
7526
- widgetSubType: ROOT_WIDGET_CONFIG.card.cardResource,
7527
- component: CardsComponent,
7528
- }
7529
- ];
7530
-
7531
- /**
7532
- * @fileoverview added by tsickle
7533
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7534
- */
7535
- /** @type {?} */
7536
- const API_POINTS = {
7537
- COMPETENCY_LIST: `apis/proxies/v8/competency/v4/search`,
7538
- CERTIFICATE_URL: `apis/protected/v8/cohorts/course/batch/cert/download/`,
7539
- };
7540
- class CompetencyPassbookService {
7541
- // tslint: disable-next-line: whitespace
7885
+ class CardWideComponent {
7542
7886
  /**
7543
- * @param {?} http
7887
+ * @param {?} snackBar
7888
+ * @param {?} events
7889
+ * @param {?} translate
7890
+ * @param {?} langtranslations
7891
+ * @param {?} configSvc
7892
+ */
7893
+ constructor(snackBar, events, translate, langtranslations, configSvc) {
7894
+ this.snackBar = snackBar;
7895
+ this.events = events;
7896
+ this.translate = translate;
7897
+ this.langtranslations = langtranslations;
7898
+ this.configSvc = configSvc;
7899
+ this.isCardLoading = false;
7900
+ this.contentData = new EventEmitter();
7901
+ this.isCardFlipped = false;
7902
+ this.showFlip = false;
7903
+ this.widgetType = 'df';
7904
+ this.widgetSubType = 'sdf';
7905
+ this.langtranslations.languageSelectedObservable.subscribe((/**
7906
+ * @return {?}
7907
+ */
7908
+ () => {
7909
+ if (localStorage.getItem('websiteLanguage')) {
7910
+ this.translate.setDefaultLang('en');
7911
+ /** @type {?} */
7912
+ const lang = (/** @type {?} */ (localStorage.getItem('websiteLanguage')));
7913
+ this.translate.use(lang);
7914
+ }
7915
+ }));
7916
+ }
7917
+ /**
7918
+ * @return {?}
7919
+ */
7920
+ ngOnInit() {
7921
+ /** @type {?} */
7922
+ const instanceConfig = this.configSvc.instanceConfig;
7923
+ if (instanceConfig) {
7924
+ this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
7925
+ this.sourceLogos = instanceConfig.sources;
7926
+ this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
7927
+ }
7928
+ else {
7929
+ this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
7930
+ this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
7931
+ }
7932
+ }
7933
+ /**
7934
+ * @param {?} contentData
7935
+ * @return {?}
7936
+ */
7937
+ getRedirectUrlData(contentData) {
7938
+ this.contentData.emit(contentData);
7939
+ }
7940
+ /**
7941
+ * @return {?}
7942
+ */
7943
+ raiseTelemetry() {
7944
+ // if(this.forPreview){
7945
+ // return
7946
+ // }
7947
+ this.events.raiseInteractTelemetry({
7948
+ type: 'click',
7949
+ subType: `${this.widgetType}-${this.widgetSubType}`,
7950
+ id: `${camelCase(this.widgetData.content.primaryCategory)}-card`,
7951
+ }, {
7952
+ id: this.widgetData.content.identifier,
7953
+ type: this.widgetData.content.primaryCategory,
7954
+ //context: this.widgetData.context,
7955
+ rollup: {},
7956
+ ver: `${this.widgetData.content.version}${''}`,
7957
+ }, {
7958
+ pageIdExt: `${camelCase(this.widgetData.content.primaryCategory)}-card`,
7959
+ module: camelCase(this.widgetData.content.primaryCategory),
7960
+ });
7961
+ }
7962
+ }
7963
+ CardWideComponent.decorators = [
7964
+ { type: Component, args: [{
7965
+ selector: 'sb-uic-card-wide',
7966
+ template: "<mat-card class=\"card-wide-lib\">\n <a (click)=\"raiseTelemetry();getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" \n role=\"link\" i18n-aria-label>\n <div class=\"flex\">\n <div>\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-wide-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n <ng-container *ngIf=\"widgetData?.content?.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.appIcon | pipePublicURL\" loading=\"lazy\"\n class=\"card-wide-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-wide-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div>\n <div class=\"pl-4 pr-4 w-full\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end course_v2\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <sb-uic-display-content-type i18n-title title=\"Content Type\" *ngIf=\"widgetData?.content?.primaryCategory\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"widgetData?.content?.primaryCategory==='Course Unit'\n ?'Module'\n :widgetData?.content?.primaryCategory\">\n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n {{ widgetData?.content?.name }}\n </div>\n\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n </div>\n </div>\n </div>\n </a>\n</mat-card>\n",
7967
+ styles: [".card-wide-lib{width:inherit;padding:16px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.16)}.card-wide-lib .card-wide-img{width:190px;height:107px;border-radius:12px}.card-wide-lib .course_widget{margin-top:10px}.card-wide-lib .course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.card-wide-lib .course_widget .course_v2{border:1px solid #ef951e;padding:4px 8px;align-items:end;border-radius:16px}.card-wide-lib .course_widget .main_icon{font-size:16px;width:16px;height:16px}.card-wide-lib .course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.card-wide-lib .course_logo_box img{height:28px;width:28px;padding:5px;display:inline-block}.card-wide-lib .course_logo_box p{display:inline-block;vertical-align:top}.card-wide-lib .org-text{font-size:12px;font-weight:400;width:75%;padding-left:10px;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}"]
7968
+ }] }
7969
+ ];
7970
+ /** @nocollapse */
7971
+ CardWideComponent.ctorParameters = () => [
7972
+ { type: MatSnackBar },
7973
+ { type: EventService },
7974
+ { type: TranslateService },
7975
+ { type: MultilingualTranslationsService },
7976
+ { type: ConfigurationsService$1 }
7977
+ ];
7978
+ CardWideComponent.propDecorators = {
7979
+ widgetData: [{ type: Input }],
7980
+ isLiveOrMarkForDeletion: [{ type: Input }],
7981
+ showIntranetContent: [{ type: Input }],
7982
+ isIntranetAllowedSettings: [{ type: Input }],
7983
+ isCardLoading: [{ type: Input }],
7984
+ contentData: [{ type: Output }]
7985
+ };
7986
+ if (false) {
7987
+ /** @type {?} */
7988
+ CardWideComponent.prototype.widgetData;
7989
+ /** @type {?} */
7990
+ CardWideComponent.prototype.isLiveOrMarkForDeletion;
7991
+ /** @type {?} */
7992
+ CardWideComponent.prototype.showIntranetContent;
7993
+ /** @type {?} */
7994
+ CardWideComponent.prototype.isIntranetAllowedSettings;
7995
+ /** @type {?} */
7996
+ CardWideComponent.prototype.isCardLoading;
7997
+ /** @type {?} */
7998
+ CardWideComponent.prototype.contentData;
7999
+ /** @type {?} */
8000
+ CardWideComponent.prototype.isCardFlipped;
8001
+ /** @type {?} */
8002
+ CardWideComponent.prototype.defaultThumbnail;
8003
+ /** @type {?} */
8004
+ CardWideComponent.prototype.sourceLogos;
8005
+ /** @type {?} */
8006
+ CardWideComponent.prototype.defaultSLogo;
8007
+ /** @type {?} */
8008
+ CardWideComponent.prototype.showFlip;
8009
+ /** @type {?} */
8010
+ CardWideComponent.prototype.widgetType;
8011
+ /** @type {?} */
8012
+ CardWideComponent.prototype.widgetSubType;
8013
+ /**
8014
+ * @type {?}
8015
+ * @private
8016
+ */
8017
+ CardWideComponent.prototype.snackBar;
8018
+ /**
8019
+ * @type {?}
8020
+ * @private
8021
+ */
8022
+ CardWideComponent.prototype.events;
8023
+ /**
8024
+ * @type {?}
8025
+ * @private
8026
+ */
8027
+ CardWideComponent.prototype.translate;
8028
+ /**
8029
+ * @type {?}
8030
+ * @private
8031
+ */
8032
+ CardWideComponent.prototype.langtranslations;
8033
+ /**
8034
+ * @type {?}
8035
+ * @private
8036
+ */
8037
+ CardWideComponent.prototype.configSvc;
8038
+ }
8039
+
8040
+ /**
8041
+ * @fileoverview added by tsickle
8042
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8043
+ */
8044
+ class CardsModule {
8045
+ }
8046
+ CardsModule.decorators = [
8047
+ { type: NgModule, args: [{
8048
+ declarations: [CardResourceComponent, CardsComponent, CardPortraitComponent, CardUserComponent, CardLandscapeComponent, CardWideComponent],
8049
+ imports: [
8050
+ CommonModule,
8051
+ MatCardModule,
8052
+ MatButtonModule,
8053
+ MatIconModule,
8054
+ MatTooltipModule,
8055
+ RouterModule,
8056
+ PipePublicURLModule,
8057
+ DisplayContentTypeLibModule,
8058
+ DefaultThumbnailModule,
8059
+ PipeDurationTransformModule,
8060
+ SkeletonLoaderLibModule
8061
+ ],
8062
+ entryComponents: [CardsComponent],
8063
+ exports: [
8064
+ CardsComponent,
8065
+ CardResourceComponent,
8066
+ CardPortraitComponent,
8067
+ CardLandscapeComponent,
8068
+ CardUserComponent,
8069
+ CardWideComponent
8070
+ ],
8071
+ },] }
8072
+ ];
8073
+
8074
+ /**
8075
+ * @fileoverview added by tsickle
8076
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8077
+ */
8078
+ /** @type {?} */
8079
+ const WIDGET_REGISTERED_LIB_MODULES = [
8080
+ CardsModule
8081
+ ];
8082
+ /** @type {?} */
8083
+ const WIDGET_REGISTRATION_LIB_CONFIG = [
8084
+ {
8085
+ widgetType: ROOT_WIDGET_CONFIG.card._type,
8086
+ widgetSubType: ROOT_WIDGET_CONFIG.card.cardResource,
8087
+ component: CardsComponent,
8088
+ }
8089
+ ];
8090
+
8091
+ /**
8092
+ * @fileoverview added by tsickle
8093
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8094
+ */
8095
+ /** @type {?} */
8096
+ const API_POINTS = {
8097
+ COMPETENCY_LIST: `apis/proxies/v8/competency/v4/search`,
8098
+ CERTIFICATE_URL: `apis/protected/v8/cohorts/course/batch/cert/download/`,
8099
+ };
8100
+ class CompetencyPassbookService {
8101
+ // tslint: disable-next-line: whitespace
8102
+ /**
8103
+ * @param {?} http
7544
8104
  */
7545
8105
  constructor(http) {
7546
8106
  this.http = http;
@@ -7672,7 +8232,13 @@ class CompetencyPassbookComponent {
7672
8232
  */
7673
8233
  (partialSum, data) => partialSum + data.count), 0);
7674
8234
  this.selectedValue = this.competencyArea[0].name.toLowerCase();
7675
- this.getcompetencyTheme(this.competencyArea[0].name);
8235
+ /** @type {?} */
8236
+ let addFilter = {
8237
+ "channel": [
8238
+ this.providerId
8239
+ ]
8240
+ };
8241
+ this.getcompetencyTheme(this.competencyArea[0].name, addFilter);
7676
8242
  this.loadCompetencyArea = false;
7677
8243
  }
7678
8244
  }
@@ -7799,6 +8365,7 @@ class CompetencyPassbookComponent {
7799
8365
  if (response && response.results) {
7800
8366
  if (response.results.result.facets) {
7801
8367
  this.competencyTheme = response.results.result.facets[0].values;
8368
+ this.resetViewMore();
7802
8369
  }
7803
8370
  this.loadCometency = false;
7804
8371
  }
@@ -7809,12 +8376,25 @@ class CompetencyPassbookComponent {
7809
8376
  }
7810
8377
  });
7811
8378
  }
8379
+ /**
8380
+ * @return {?}
8381
+ */
8382
+ resetViewMore() {
8383
+ Object.keys(this.allcompetencyTheme).forEach((/**
8384
+ * @param {?} comp
8385
+ * @return {?}
8386
+ */
8387
+ (comp) => {
8388
+ this.allcompetencyTheme[comp]['viewMore'] = false;
8389
+ }));
8390
+ }
7812
8391
  /**
7813
8392
  * @param {?} data
7814
8393
  * @return {?}
7815
8394
  */
7816
8395
  viewMoreChildren(data) {
7817
8396
  data.viewMore = !data.viewMore;
8397
+ this.allcompetencyTheme[data.name.toLowerCase()].viewMore = data.viewMore;
7818
8398
  }
7819
8399
  /**
7820
8400
  * @param {?} event
@@ -7976,6 +8556,1307 @@ CompetencyPassbookModule.decorators = [
7976
8556
  },] }
7977
8557
  ];
7978
8558
 
8559
+ /**
8560
+ * @fileoverview added by tsickle
8561
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8562
+ */
8563
+ /** @type {?} */
8564
+ const PROXY_SLAG_V8 = '/apis/proxies/v8';
8565
+ const ɵ0$3 = /**
8566
+ * @param {?} contentId
8567
+ * @param {?} contentType
8568
+ * @param {?} userId
8569
+ * @return {?}
8570
+ */
8571
+ (contentId, contentType, userId) => `${PROXY_SLAG_V8}/ratings/v1/read/${contentId}/${contentType}/${userId}`, ɵ1$2 = /**
8572
+ * @param {?} contentId
8573
+ * @param {?} contentType
8574
+ * @return {?}
8575
+ */
8576
+ (contentId, contentType) => `${PROXY_SLAG_V8}/ratings/v1/summary/${contentId}/${contentType}`, ɵ2$2 = /**
8577
+ * @param {?} contentId
8578
+ * @param {?} userID
8579
+ * @return {?}
8580
+ */
8581
+ (contentId, userID) => `${PROXY_SLAG_V8}/ratings/v1/read/${contentId}/Course/${userID}`;
8582
+ /** @type {?} */
8583
+ const API_END_POINTS$3 = {
8584
+ GET_RATING: (ɵ0$3),
8585
+ ADD_OR_UPDATE: `${PROXY_SLAG_V8}/ratings/v1/upsert`,
8586
+ GET_RATING_SUMMARY: (ɵ1$2),
8587
+ GET_RATING_LOOKUP: `${PROXY_SLAG_V8}/ratings/v1/ratingLookUp`,
8588
+ GET_AUTHOR_REPLY: (ɵ2$2),
8589
+ POST_AUTHOR_REPLY: `${PROXY_SLAG_V8}/ratings/v2/read`,
8590
+ };
8591
+ class RatingService {
8592
+ /**
8593
+ * @param {?} http
8594
+ */
8595
+ constructor(http) {
8596
+ this.http = http;
8597
+ }
8598
+ /**
8599
+ * @param {?} contentId
8600
+ * @param {?} contentType
8601
+ * @param {?} userId
8602
+ * @return {?}
8603
+ */
8604
+ getRating(contentId, contentType, userId) {
8605
+ /** @type {?} */
8606
+ const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true');
8607
+ if (!forPreview) {
8608
+ return this.http.get(API_END_POINTS$3.GET_RATING(contentId, contentType, userId));
8609
+ }
8610
+ return of({});
8611
+ }
8612
+ /**
8613
+ * @param {?} req
8614
+ * @return {?}
8615
+ */
8616
+ addOrUpdateRating(req) {
8617
+ return this.http.post(API_END_POINTS$3.ADD_OR_UPDATE, req);
8618
+ }
8619
+ /**
8620
+ * @param {?} contentId
8621
+ * @param {?} contentType
8622
+ * @return {?}
8623
+ */
8624
+ getRatingSummary(contentId, contentType) {
8625
+ /** @type {?} */
8626
+ const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true');
8627
+ if (!forPreview) {
8628
+ return this.http.get(API_END_POINTS$3.GET_RATING_SUMMARY(contentId, contentType));
8629
+ }
8630
+ return of({});
8631
+ }
8632
+ /**
8633
+ * @param {?} req
8634
+ * @return {?}
8635
+ */
8636
+ getRatingLookup(req) {
8637
+ return this.http.post(API_END_POINTS$3.GET_RATING_LOOKUP, req);
8638
+ }
8639
+ /**
8640
+ * @param {?} req
8641
+ * @return {?}
8642
+ */
8643
+ getRatingReply(req) {
8644
+ /** @type {?} */
8645
+ const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true');
8646
+ if (!forPreview) {
8647
+ return this.http.post(API_END_POINTS$3.POST_AUTHOR_REPLY, req);
8648
+ }
8649
+ return of({});
8650
+ }
8651
+ /**
8652
+ * @param {?} ratingIndex
8653
+ * @param {?} avg
8654
+ * @return {?}
8655
+ */
8656
+ getRatingIcon(ratingIndex, avg) {
8657
+ if (avg) {
8658
+ /** @type {?} */
8659
+ const avgRating = avg;
8660
+ /** @type {?} */
8661
+ const ratingFloor = Math.floor(avgRating)
8662
+ // const difference = avgRating - ratingIndex
8663
+ ;
8664
+ // const difference = avgRating - ratingIndex
8665
+ if (ratingIndex <= ratingFloor) {
8666
+ return 'star';
8667
+ }
8668
+ if (ratingFloor === ratingIndex - 1 && avgRating % 1 >= 0.29 && avgRating % 1 < 0.71) {
8669
+ return 'star_half';
8670
+ }
8671
+ }
8672
+ return 'star';
8673
+ }
8674
+ /**
8675
+ * @param {?} ratingIndex
8676
+ * @param {?} avg
8677
+ * @return {?}
8678
+ */
8679
+ getRatingIconClass(ratingIndex, avg) {
8680
+ if (avg) {
8681
+ /** @type {?} */
8682
+ const avgRating = avg;
8683
+ /** @type {?} */
8684
+ const ratingFloor = Math.floor(avgRating);
8685
+ if (ratingIndex <= ratingFloor) {
8686
+ return true;
8687
+ }
8688
+ if (ratingFloor === ratingIndex - 1 && avgRating % 1 >= 0.29 && avgRating % 1 < 0.71) {
8689
+ return true;
8690
+ }
8691
+ if (ratingFloor === ratingIndex - 1 && avgRating % 1 > 0.71) {
8692
+ return true;
8693
+ }
8694
+ if (ratingFloor === ratingIndex - 1 && avgRating % 1 < 0.29) {
8695
+ return false;
8696
+ }
8697
+ }
8698
+ return false;
8699
+ }
8700
+ /**
8701
+ * @param {?} contentId
8702
+ * @param {?} userID
8703
+ * @return {?}
8704
+ */
8705
+ getAuthorReply(contentId, userID) {
8706
+ return this.http.get(API_END_POINTS$3.GET_AUTHOR_REPLY(contentId, userID));
8707
+ }
8708
+ }
8709
+ RatingService.decorators = [
8710
+ { type: Injectable, args: [{
8711
+ providedIn: 'root',
8712
+ },] }
8713
+ ];
8714
+ /** @nocollapse */
8715
+ RatingService.ctorParameters = () => [
8716
+ { type: HttpClient }
8717
+ ];
8718
+ /** @nocollapse */ RatingService.ngInjectableDef = ɵɵdefineInjectable({ factory: function RatingService_Factory() { return new RatingService(ɵɵinject(HttpClient)); }, token: RatingService, providedIn: "root" });
8719
+ if (false) {
8720
+ /** @type {?} */
8721
+ RatingService.prototype.http;
8722
+ }
8723
+
8724
+ /**
8725
+ * @fileoverview added by tsickle
8726
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8727
+ */
8728
+ class UserContentRatingComponent {
8729
+ /**
8730
+ * @param {?} ratingService
8731
+ */
8732
+ constructor(ratingService) {
8733
+ this.ratingService = ratingService;
8734
+ this.currentIndex = 0;
8735
+ this.styleData = {
8736
+ "bannerMetaClass": "inline-meta",
8737
+ "bannerMeta": "visible",
8738
+ "bannerMetaAlign": "right",
8739
+ "navigationArrows": "visible",
8740
+ "borderRadius": "0",
8741
+ "customHeight": "424px",
8742
+ "arrowsPlacement": "middle-inline",
8743
+ "responsive": {
8744
+ "bannerMetaClass": "inline-meta",
8745
+ "customHeight": "232px",
8746
+ "bannerMetaAlign": "right",
8747
+ "navigationArrows": "visible",
8748
+ "dots": "hidden",
8749
+ "arrowsPlacement": "middle-inline"
8750
+ }
8751
+ };
8752
+ this.sliders = [
8753
+ {
8754
+ "active": true,
8755
+ "banners": {
8756
+ "l": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8757
+ "m": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8758
+ "s": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8759
+ "xl": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8760
+ "xs": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8761
+ "xxl": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png"
8762
+ },
8763
+ "redirectUrl": "",
8764
+ "queryParams": {},
8765
+ "title": ""
8766
+ },
8767
+ {
8768
+ "active": true,
8769
+ "banners": {
8770
+ "l": "https://portal.karmayogi.nic.in/content-store/content/do_114051312372424704125/artifact/do_114051312372424704125_1715248147439_l.png",
8771
+ "m": "https://portal.karmayogi.nic.in/content-store/content/do_114051312372424704125/artifact/do_114051312372424704125_1715248147439_l.png",
8772
+ "s": "https://portal.karmayogi.nic.in/content-store/content/do_114051312372424704125/artifact/do_114051312372424704125_1715248147439_l.png",
8773
+ "xl": "https://portal.karmayogi.nic.in/content-store/content/do_114051312372424704125/artifact/do_114051312372424704125_1715248147439_l.png",
8774
+ "xs": "https://portal.karmayogi.nic.in/content-store/content/do_114051312372424704125/artifact/do_114051312372424704125_1715248147439_l.png",
8775
+ "xxl": "https://portal.karmayogi.nic.in/content-store/content/do_114051312372424704125/artifact/do_114051312372424704125_1715248147439_l.png"
8776
+ },
8777
+ "redirectUrl": "",
8778
+ "queryParams": {},
8779
+ "title": ""
8780
+ },
8781
+ {
8782
+ "active": true,
8783
+ "banners": {
8784
+ "l": "https://portal.karmayogi.nic.in/content-store/content/do_114051314864234496126/artifact/do_114051314864234496126_1715248438443_l.png",
8785
+ "m": "https://portal.karmayogi.nic.in/content-store/content/do_114051314864234496126/artifact/do_114051314864234496126_1715248438443_l.png",
8786
+ "s": "https://portal.karmayogi.nic.in/content-store/content/do_114051314864234496126/artifact/do_114051314864234496126_1715248438443_l.png",
8787
+ "xl": "https://portal.karmayogi.nic.in/content-store/content/do_114051314864234496126/artifact/do_114051314864234496126_1715248438443_l.png",
8788
+ "xs": "https://portal.karmayogi.nic.in/content-store/content/do_114051314864234496126/artifact/do_114051314864234496126_1715248438443_l.png",
8789
+ "xxl": "https://portal.karmayogi.nic.in/content-store/content/do_114051314864234496126/artifact/do_114051314864234496126_1715248438443_l.png"
8790
+ },
8791
+ "redirectUrl": "",
8792
+ "queryParams": {},
8793
+ "title": ""
8794
+ },
8795
+ {
8796
+ "active": true,
8797
+ "banners": {
8798
+ "l": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8799
+ "m": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8800
+ "s": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8801
+ "xl": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8802
+ "xs": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8803
+ "xxl": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png"
8804
+ },
8805
+ "redirectUrl": "",
8806
+ "queryParams": {},
8807
+ "title": ""
8808
+ },
8809
+ {
8810
+ "active": true,
8811
+ "banners": {
8812
+ "l": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8813
+ "m": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8814
+ "s": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8815
+ "xl": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8816
+ "xs": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png",
8817
+ "xxl": "https://portal.karmayogi.nic.in/content-store/content/do_114051307572264960124/artifact/do_114051307572264960124_1715247613335_l.png"
8818
+ },
8819
+ "redirectUrl": "",
8820
+ "queryParams": {},
8821
+ "title": ""
8822
+ }
8823
+ ];
8824
+ this.contentCard = {
8825
+ "content": {
8826
+ "identifier": "do_113990515935854592111",
8827
+ "competencies_v5": [
8828
+ {
8829
+ "competencyArea": "Behavioural",
8830
+ "competencyAreaId": 1,
8831
+ "competencyAreaDescription": "Behavioural Competency Area",
8832
+ "competencyTheme": "Collaboration",
8833
+ "competencyThemeId": 25,
8834
+ "competecnyThemeDescription": "Collaboration competency Theme",
8835
+ "competencyThemeType": "Core",
8836
+ "competencySubTheme": "Diversity & Inclusion",
8837
+ "competencySubThemeId": 27,
8838
+ "competecnySubThemeDescription": "Diversity & Inclusion Competency Sub-Theme"
8839
+ }
8840
+ ],
8841
+ "description": "Invite only program",
8842
+ "organisation": [
8843
+ "Ministry of Finance"
8844
+ ],
8845
+ "creatorLogo": null,
8846
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_1139430185765847041226/artifact/do_1139430185765847041226_1702028635111_maxresdefault.jpg",
8847
+ "duration": "2280",
8848
+ "additionalTags": null,
8849
+ "appIcon": "https://static.karmayogiprod.nic.in/igotqa/collection/do_113990515935854592111/artifact/do_1139430185765847041226_1702028635111_maxresdefault.thumb.jpg",
8850
+ "primaryCategory": "Program",
8851
+ "name": "Invite only program",
8852
+ "avgRating": null,
8853
+ "contentType": "Course"
8854
+ },
8855
+ "cardSubType": "card-wide-lib",
8856
+ "cardCustomeClass": "",
8857
+ "context": {
8858
+ "pageSection": "featuredContents",
8859
+ "position": 3
8860
+ },
8861
+ "review": "Credit",
8862
+ "rating": 5.0,
8863
+ "userDetails": {
8864
+ "firstName": "Agri usertwo",
8865
+ "userId": "f00473e1-54e8-40b7-b541-461250f298d1",
8866
+ "profileImageUrl": null
8867
+ }
8868
+ };
8869
+ this.widgetData = {
8870
+ cardSubType: ''
8871
+ };
8872
+ this.responseData = [
8873
+ {
8874
+ "review": "Credit",
8875
+ "rating": 5.0,
8876
+ "userDetails": {
8877
+ "firstName": "Agri usertwo",
8878
+ "userId": "f00473e1-54e8-40b7-b541-461250f298d1",
8879
+ "profileImageUrl": null
8880
+ },
8881
+ "content": {
8882
+ "identifier": "do_113990515935854592111",
8883
+ "competencies_v5": [
8884
+ {
8885
+ "competencyArea": "Behavioural",
8886
+ "competencyAreaId": 1,
8887
+ "competencyAreaDescription": "Behavioural Competency Area",
8888
+ "competencyTheme": "Collaboration",
8889
+ "competencyThemeId": 25,
8890
+ "competecnyThemeDescription": "Collaboration competency Theme",
8891
+ "competencyThemeType": "Core",
8892
+ "competencySubTheme": "Diversity & Inclusion",
8893
+ "competencySubThemeId": 27,
8894
+ "competecnySubThemeDescription": "Diversity & Inclusion Competency Sub-Theme"
8895
+ }
8896
+ ],
8897
+ "description": "Invite only program",
8898
+ "organisation": [
8899
+ "Ministry of Finance"
8900
+ ],
8901
+ "creatorLogo": null,
8902
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_1139430185765847041226/artifact/do_1139430185765847041226_1702028635111_maxresdefault.jpg",
8903
+ "duration": "2280",
8904
+ "additionalTags": null,
8905
+ "appIcon": "https://static.karmayogiprod.nic.in/igotqa/collection/do_113990515935854592111/artifact/do_1139430185765847041226_1702028635111_maxresdefault.thumb.jpg",
8906
+ "primaryCategory": "Program",
8907
+ "name": "Invite only program",
8908
+ "avgRating": null,
8909
+ "contentType": "Course"
8910
+ },
8911
+ "cardSubType": "card-wide-lib",
8912
+ "cardCustomeClass": "",
8913
+ "context": {
8914
+ "pageSection": "featuredContents",
8915
+ "position": 3
8916
+ }
8917
+ },
8918
+ {
8919
+ "review": "Abc xyz1",
8920
+ "rating": 5.0,
8921
+ "userDetails": {
8922
+ "firstName": "Qa test user one @#$ 123",
8923
+ "userId": "7fd686b6-d5b2-4e0a-a43f-d6e57cd2ea09",
8924
+ "profileImageUrl": null
8925
+ },
8926
+ "cardSubType": "card-wide-lib",
8927
+ "cardCustomeClass": "",
8928
+ "context": {
8929
+ "pageSection": "featuredContents",
8930
+ "position": 3
8931
+ },
8932
+ "content": {
8933
+ "identifier": "do_113987549775609856182_rc",
8934
+ "competencies_v5": [
8935
+ {
8936
+ "competencyArea": "Domain",
8937
+ "competencyAreaId": 145,
8938
+ "competencyAreaDescription": "Domain Competency Area",
8939
+ "competencyTheme": "Account Management",
8940
+ "competencyThemeId": 148,
8941
+ "competecnyThemeDescription": "Account Management competency Theme",
8942
+ "competencyThemeType": "Core",
8943
+ "competencySubTheme": "Account Management",
8944
+ "competencySubThemeId": 149,
8945
+ "competecnySubThemeDescription": "Account Management Competency Sub-Theme"
8946
+ }
8947
+ ],
8948
+ "description": "Course Check for MDO Specific All Users 09 Feb",
8949
+ "organisation": [
8950
+ "Ministry of Finance"
8951
+ ],
8952
+ "creatorLogo": null,
8953
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_11395704427130060819/artifact/do_11395704427130060819_1703740756028_capture71703740758098.png",
8954
+ "duration": "606",
8955
+ "additionalTags": null,
8956
+ "appIcon": "https://static.karmayogiprod.nic.in/igotqa/collection/do_113987549775609856182_rc/artifact/do_11395704427130060819_1703740756028_capture71703740758098.thumb.png",
8957
+ "primaryCategory": "Course",
8958
+ "name": "Course Check for MDO Specific All Users 09 Feb",
8959
+ "avgRating": 5.0,
8960
+ "contentType": "Course"
8961
+ }
8962
+ },
8963
+ {
8964
+ "review": "Testing ratings - Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos eum, assumenda quasi accusamus perferendis voluptas saepe, ducimus architecto animi iste numquam vitae minima sed explica",
8965
+ "rating": 5.0,
8966
+ "userDetails": {
8967
+ "firstName": "Agri usertwo",
8968
+ "userId": "f00473e1-54e8-40b7-b541-461250f298d1",
8969
+ "profileImageUrl": null
8970
+ },
8971
+ "cardSubType": "card-wide-lib",
8972
+ "cardCustomeClass": "",
8973
+ "context": {
8974
+ "pageSection": "featuredContents",
8975
+ "position": 3
8976
+ },
8977
+ "content": {
8978
+ "identifier": "do_114006606955921408144",
8979
+ "competencies_v5": [
8980
+ {
8981
+ "competencyArea": "Behavioural",
8982
+ "competencyAreaId": 1,
8983
+ "competencyAreaDescription": "Behavioural Competency Area",
8984
+ "competencyTheme": "Collaborative Leadership",
8985
+ "competencyThemeId": 46,
8986
+ "competecnyThemeDescription": "Collaborative Leadership competency Theme",
8987
+ "competencyThemeType": "Leadership",
8988
+ "competencySubTheme": "Influencing and Negotiation",
8989
+ "competencySubThemeId": 47,
8990
+ "competecnySubThemeDescription": "Influencing and Negotiation Competency Sub-Theme"
8991
+ }
8992
+ ],
8993
+ "description": "test Scrom",
8994
+ "organisation": [
8995
+ "Ministry of Finance"
8996
+ ],
8997
+ "creatorLogo": null,
8998
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_1139430185765847041226/artifact/do_1139430185765847041226_1702028635111_maxresdefault.jpg",
8999
+ "duration": "180",
9000
+ "additionalTags": null,
9001
+ "appIcon": "https://static.karmayogiprod.nic.in/igotqa/collection/do_114006606955921408144/artifact/do_1139430185765847041226_1702028635111_maxresdefault.thumb.jpg",
9002
+ "primaryCategory": "Course",
9003
+ "name": "Large PDF test Cases",
9004
+ "avgRating": 4.0,
9005
+ "contentType": "Course"
9006
+ }
9007
+ },
9008
+ {
9009
+ "review": "Good courseQA",
9010
+ "rating": 5.0,
9011
+ "userDetails": {
9012
+ "firstName": "Public User QA env",
9013
+ "userId": "0517056e-b57b-49ca-a44c-cdc3a251dd3e",
9014
+ "profileImageUrl": null
9015
+ },
9016
+ "cardSubType": "card-wide-lib",
9017
+ "cardCustomeClass": "",
9018
+ "context": {
9019
+ "pageSection": "featuredContents",
9020
+ "position": 3
9021
+ },
9022
+ "content": {
9023
+ "identifier": "do_113902049969004544112",
9024
+ "competencies_v5": [
9025
+ {
9026
+ "competencyArea": "Domain",
9027
+ "competencyAreaDescription": "Domain Competency Area",
9028
+ "competencyAreaId": 145,
9029
+ "competencyTheme": "Communication Backbone System Maintenance",
9030
+ "competencyThemeDescription": "Communication Backbone System Maintenance competency Theme",
9031
+ "competencyThemeId": 186,
9032
+ "competencyThemeType": "Core",
9033
+ "competencySubTheme": "Communication Backbone System Maintenance",
9034
+ "competencySubThemeId": 187,
9035
+ "competencySubThemeDescription": "Communication Backbone System Maintenance Competency Sub-Theme"
9036
+ },
9037
+ {
9038
+ "competencyArea": "Domain",
9039
+ "competencyAreaDescription": "Domain Competency Area",
9040
+ "competencyAreaId": 145,
9041
+ "competencyTheme": "Communication Auxiliary Systems Maintenance",
9042
+ "competencyThemeDescription": "Communication Auxiliary Systems Maintenance competency Theme",
9043
+ "competencyThemeId": 184,
9044
+ "competencyThemeType": "Core",
9045
+ "competencySubTheme": "Communication Auxiliary Systems Maintenance",
9046
+ "competencySubThemeId": 185,
9047
+ "competencySubThemeDescription": "Communication Auxiliary Systems Maintenance Competency Sub-Theme"
9048
+ }
9049
+ ],
9050
+ "description": "QATestCourse2",
9051
+ "organisation": [
9052
+ "Ministry of Finance"
9053
+ ],
9054
+ "creatorLogo": null,
9055
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9056
+ "duration": "540",
9057
+ "additionalTags": null,
9058
+ "appIcon": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9059
+ "primaryCategory": "Course",
9060
+ "name": "QATestCourse2",
9061
+ "avgRating": 5.0,
9062
+ "contentType": "Course"
9063
+ }
9064
+ },
9065
+ {
9066
+ "review": "ok",
9067
+ "rating": 5.0,
9068
+ "userDetails": {
9069
+ "firstName": "qatestcreator",
9070
+ "userId": "54548483-0708-417c-ac9f-9b2260e13962",
9071
+ "profileImageUrl": null
9072
+ },
9073
+ "cardSubType": "card-wide-lib",
9074
+ "cardCustomeClass": "",
9075
+ "context": {
9076
+ "pageSection": "featuredContents",
9077
+ "position": 3
9078
+ },
9079
+ "content": {
9080
+ "identifier": "do_113902049969004544112",
9081
+ "competencies_v5": [
9082
+ {
9083
+ "competencyArea": "Domain",
9084
+ "competencyAreaDescription": "Domain Competency Area",
9085
+ "competencyAreaId": 145,
9086
+ "competencyTheme": "Communication Backbone System Maintenance",
9087
+ "competencyThemeDescription": "Communication Backbone System Maintenance competency Theme",
9088
+ "competencyThemeId": 186,
9089
+ "competencyThemeType": "Core",
9090
+ "competencySubTheme": "Communication Backbone System Maintenance",
9091
+ "competencySubThemeId": 187,
9092
+ "competencySubThemeDescription": "Communication Backbone System Maintenance Competency Sub-Theme"
9093
+ },
9094
+ {
9095
+ "competencyArea": "Domain",
9096
+ "competencyAreaDescription": "Domain Competency Area",
9097
+ "competencyAreaId": 145,
9098
+ "competencyTheme": "Communication Auxiliary Systems Maintenance",
9099
+ "competencyThemeDescription": "Communication Auxiliary Systems Maintenance competency Theme",
9100
+ "competencyThemeId": 184,
9101
+ "competencyThemeType": "Core",
9102
+ "competencySubTheme": "Communication Auxiliary Systems Maintenance",
9103
+ "competencySubThemeId": 185,
9104
+ "competencySubThemeDescription": "Communication Auxiliary Systems Maintenance Competency Sub-Theme"
9105
+ }
9106
+ ],
9107
+ "description": "QATestCourse2",
9108
+ "organisation": [
9109
+ "Ministry of Finance"
9110
+ ],
9111
+ "creatorLogo": null,
9112
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9113
+ "duration": "540",
9114
+ "additionalTags": null,
9115
+ "appIcon": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9116
+ "primaryCategory": "Course",
9117
+ "name": "QATestCourse2",
9118
+ "avgRating": 5.0,
9119
+ "contentType": "Course"
9120
+ }
9121
+ },
9122
+ {
9123
+ "review": "nic onenic onenic onenic onenic onenic onenic onenic onenic onenic onenic onenic onenic one",
9124
+ "rating": 5.0,
9125
+ "userDetails": {
9126
+ "firstName": "Qa test user one @#$ 123",
9127
+ "userId": "7fd686b6-d5b2-4e0a-a43f-d6e57cd2ea09",
9128
+ "profileImageUrl": null
9129
+ },
9130
+ "cardSubType": "card-wide-lib",
9131
+ "cardCustomeClass": "",
9132
+ "context": {
9133
+ "pageSection": "featuredContents",
9134
+ "position": 3
9135
+ },
9136
+ "content": {
9137
+ "identifier": "do_113902049969004544112",
9138
+ "competencies_v5": [
9139
+ {
9140
+ "competencyArea": "Domain",
9141
+ "competencyAreaDescription": "Domain Competency Area",
9142
+ "competencyAreaId": 145,
9143
+ "competencyTheme": "Communication Backbone System Maintenance",
9144
+ "competencyThemeDescription": "Communication Backbone System Maintenance competency Theme",
9145
+ "competencyThemeId": 186,
9146
+ "competencyThemeType": "Core",
9147
+ "competencySubTheme": "Communication Backbone System Maintenance",
9148
+ "competencySubThemeId": 187,
9149
+ "competencySubThemeDescription": "Communication Backbone System Maintenance Competency Sub-Theme"
9150
+ },
9151
+ {
9152
+ "competencyArea": "Domain",
9153
+ "competencyAreaDescription": "Domain Competency Area",
9154
+ "competencyAreaId": 145,
9155
+ "competencyTheme": "Communication Auxiliary Systems Maintenance",
9156
+ "competencyThemeDescription": "Communication Auxiliary Systems Maintenance competency Theme",
9157
+ "competencyThemeId": 184,
9158
+ "competencyThemeType": "Core",
9159
+ "competencySubTheme": "Communication Auxiliary Systems Maintenance",
9160
+ "competencySubThemeId": 185,
9161
+ "competencySubThemeDescription": "Communication Auxiliary Systems Maintenance Competency Sub-Theme"
9162
+ }
9163
+ ],
9164
+ "description": "QATestCourse2",
9165
+ "organisation": [
9166
+ "Ministry of Finance"
9167
+ ],
9168
+ "creatorLogo": null,
9169
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9170
+ "duration": "540",
9171
+ "additionalTags": null,
9172
+ "appIcon": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9173
+ "primaryCategory": "Course",
9174
+ "name": "QATestCourse2",
9175
+ "avgRating": 5.0,
9176
+ "contentType": "Course"
9177
+ }
9178
+ },
9179
+ {
9180
+ "review": "Checking Ratings and alignment under Overview",
9181
+ "rating": 5.0,
9182
+ "userDetails": {
9183
+ "firstName": "Get Started User Five",
9184
+ "userId": "e6a9d4b6-b30a-405f-9bcb-166038600218",
9185
+ "profileImageUrl": null
9186
+ },
9187
+ "cardSubType": "card-wide-lib",
9188
+ "cardCustomeClass": "",
9189
+ "context": {
9190
+ "pageSection": "featuredContents",
9191
+ "position": 3
9192
+ },
9193
+ "content": {
9194
+ "identifier": "do_113902049969004544112",
9195
+ "competencies_v5": [
9196
+ {
9197
+ "competencyArea": "Domain",
9198
+ "competencyAreaDescription": "Domain Competency Area",
9199
+ "competencyAreaId": 145,
9200
+ "competencyTheme": "Communication Backbone System Maintenance",
9201
+ "competencyThemeDescription": "Communication Backbone System Maintenance competency Theme",
9202
+ "competencyThemeId": 186,
9203
+ "competencyThemeType": "Core",
9204
+ "competencySubTheme": "Communication Backbone System Maintenance",
9205
+ "competencySubThemeId": 187,
9206
+ "competencySubThemeDescription": "Communication Backbone System Maintenance Competency Sub-Theme"
9207
+ },
9208
+ {
9209
+ "competencyArea": "Domain",
9210
+ "competencyAreaDescription": "Domain Competency Area",
9211
+ "competencyAreaId": 145,
9212
+ "competencyTheme": "Communication Auxiliary Systems Maintenance",
9213
+ "competencyThemeDescription": "Communication Auxiliary Systems Maintenance competency Theme",
9214
+ "competencyThemeId": 184,
9215
+ "competencyThemeType": "Core",
9216
+ "competencySubTheme": "Communication Auxiliary Systems Maintenance",
9217
+ "competencySubThemeId": 185,
9218
+ "competencySubThemeDescription": "Communication Auxiliary Systems Maintenance Competency Sub-Theme"
9219
+ }
9220
+ ],
9221
+ "description": "QATestCourse2",
9222
+ "organisation": [
9223
+ "Ministry of Finance"
9224
+ ],
9225
+ "creatorLogo": null,
9226
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9227
+ "duration": "540",
9228
+ "additionalTags": null,
9229
+ "appIcon": "https://portal.karmayogiqa.nic.in/content-store/content/do_113902071254761472117/artifact/do_113902071254761472117_1697030308090_screenshotfrom202310101224021697030170978.png",
9230
+ "primaryCategory": "Course",
9231
+ "name": "QATestCourse2",
9232
+ "avgRating": 5.0,
9233
+ "contentType": "Course"
9234
+ }
9235
+ },
9236
+ {
9237
+ "review": "Testing rating 123",
9238
+ "rating": 5.0,
9239
+ "userDetails": {
9240
+ "firstName": "Qa test user one @#$ 123",
9241
+ "userId": "7fd686b6-d5b2-4e0a-a43f-d6e57cd2ea09",
9242
+ "profileImageUrl": null
9243
+ },
9244
+ "cardSubType": "card-wide-lib",
9245
+ "cardCustomeClass": "",
9246
+ "context": {
9247
+ "pageSection": "featuredContents",
9248
+ "position": 3
9249
+ },
9250
+ "content": {
9251
+ "identifier": "do_1139400923254046721119",
9252
+ "competencies_v5": [
9253
+ {
9254
+ "competencyArea": "Functional",
9255
+ "competencyAreaDescription": "Functional Competency Area",
9256
+ "competencyAreaId": 56,
9257
+ "competencyTheme": "Administration Matters",
9258
+ "competencyThemeDescription": "Administration Matters competency Theme",
9259
+ "competencyThemeId": 140,
9260
+ "competencyThemeType": "Core",
9261
+ "competencySubTheme": "Handling Miscellaneous Matters (Car, Residence, Personal Staff etc.)",
9262
+ "competencySubThemeId": 143,
9263
+ "competencySubThemeDescription": "Handling Miscellaneous Matters (Car, Residence, Personal Staff etc.) Competency Sub-Theme"
9264
+ }
9265
+ ],
9266
+ "description": "Youtube Links",
9267
+ "organisation": [
9268
+ "Ministry of Finance"
9269
+ ],
9270
+ "creatorLogo": null,
9271
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_1139400694644490241113/artifact/do_1139400694644490241113_1701668637063_effective-communication.png",
9272
+ "duration": "420",
9273
+ "additionalTags": null,
9274
+ "appIcon": "https://static.karmayogiprod.nic.in/igotqa/collection/do_1139400923254046721119/artifact/do_1139400694644490241113_1701668637063_effective-communication.thumb.png",
9275
+ "primaryCategory": "Course",
9276
+ "name": "Course New 04 Dec",
9277
+ "avgRating": 5.0,
9278
+ "contentType": "Course"
9279
+ }
9280
+ },
9281
+ {
9282
+ "review": "nice1",
9283
+ "rating": 5.0,
9284
+ "userDetails": {
9285
+ "firstName": "Qa test user one @#$ 123",
9286
+ "userId": "7fd686b6-d5b2-4e0a-a43f-d6e57cd2ea09",
9287
+ "profileImageUrl": null
9288
+ },
9289
+ "cardSubType": "card-wide-lib",
9290
+ "cardCustomeClass": "",
9291
+ "context": {
9292
+ "pageSection": "featuredContents",
9293
+ "position": 3
9294
+ },
9295
+ "content": {
9296
+ "identifier": "do_1139967854457651201519_rc",
9297
+ "competencies_v5": [
9298
+ {
9299
+ "competencyArea": "Behavioural",
9300
+ "competencyAreaId": 1,
9301
+ "competencyAreaDescription": "Behavioural Competency Area",
9302
+ "competencyTheme": "Personal Effectiveness",
9303
+ "competencyThemeId": 7,
9304
+ "competecnyThemeDescription": "Personal Effectiveness competency Theme",
9305
+ "competencyThemeType": "Core",
9306
+ "competencySubTheme": "Resilience",
9307
+ "competencySubThemeId": 9,
9308
+ "competecnySubThemeDescription": "Resilience Competency Sub-Theme"
9309
+ }
9310
+ ],
9311
+ "description": "Sub:- Vikas- New Program '22/02/24' ",
9312
+ "organisation": [
9313
+ "Ministry of Finance"
9314
+ ],
9315
+ "creatorLogo": null,
9316
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_1139946848192430081395/artifact/do_1139946848192430081395_1708335549501_digitalindiaandegovernance1708335549950.jpg",
9317
+ "duration": "12761",
9318
+ "additionalTags": null,
9319
+ "appIcon": "https://static.karmayogiprod.nic.in/igotqa/collection/do_1139967854457651201519_rc/artifact/do_1139946848192430081395_1708335549501_digitalindiaandegovernance1708335549950.thumb.jpg",
9320
+ "primaryCategory": "Program",
9321
+ "name": "Vikas- New Program '22/02/24'",
9322
+ "avgRating": 2.0,
9323
+ "contentType": "Course"
9324
+ }
9325
+ },
9326
+ {
9327
+ "review": "bv",
9328
+ "rating": 5.0,
9329
+ "userDetails": {
9330
+ "firstName": "qa dstuserone",
9331
+ "userId": "31c81730-bf33-437a-a53e-0bd8ac2fc3d6",
9332
+ "profileImageUrl": null
9333
+ },
9334
+ "cardSubType": "card-wide-lib",
9335
+ "cardCustomeClass": "",
9336
+ "context": {
9337
+ "pageSection": "featuredContents",
9338
+ "position": 3
9339
+ },
9340
+ "content": {
9341
+ "identifier": "do_113965740548784128178",
9342
+ "competencies_v5": [
9343
+ {
9344
+ "competencyArea": "Functional",
9345
+ "competencyAreaId": 56,
9346
+ "competencyAreaDescription": "Functional Competency Area",
9347
+ "competencyTheme": "Establishment & HR",
9348
+ "competencyThemeId": 101,
9349
+ "competecnyThemeDescription": "Establishment & HR competency Theme",
9350
+ "competencyThemeType": "Core",
9351
+ "competencySubTheme": "Handling Fundamental Rules /Supplementary Rules",
9352
+ "competencySubThemeId": 104,
9353
+ "competecnySubThemeDescription": "Handling Fundamental Rules /Supplementary Rules Competency Sub-Theme"
9354
+ }
9355
+ ],
9356
+ "description": "Course with more subthemes",
9357
+ "organisation": [
9358
+ "Ministry of Finance"
9359
+ ],
9360
+ "creatorLogo": null,
9361
+ "posterImage": "https://portal.karmayogiqa.nic.in/content-store/content/do_113921119628378112168/artifact/do_113921119628378112168_1699355423624_capture121699355424283.png",
9362
+ "duration": "540",
9363
+ "additionalTags": [
9364
+ "mostEnrolled"
9365
+ ],
9366
+ "appIcon": "https://static.karmayogiprod.nic.in/igotqa/collection/do_113965740548784128178/artifact/do_113921119628378112168_1699355423624_capture121699355424283.thumb.png",
9367
+ "primaryCategory": "Course",
9368
+ "name": "Course with more subthemes",
9369
+ "avgRating": 5.0,
9370
+ "contentType": "Course"
9371
+ }
9372
+ }
9373
+ ];
9374
+ }
9375
+ /**
9376
+ * @return {?}
9377
+ */
9378
+ ngOnInit() {
9379
+ }
9380
+ /**
9381
+ * @param {?} ratingIndex
9382
+ * @param {?} avg
9383
+ * @return {?}
9384
+ */
9385
+ getRatingIcon(ratingIndex, avg) {
9386
+ return this.ratingService.getRatingIcon(ratingIndex, avg);
9387
+ }
9388
+ /**
9389
+ * @param {?} ratingIndex
9390
+ * @param {?} avg
9391
+ * @return {?}
9392
+ */
9393
+ getRatingIconClass(ratingIndex, avg) {
9394
+ return this.ratingService.getRatingIconClass(ratingIndex, avg);
9395
+ }
9396
+ /**
9397
+ * @param {?} indexValue
9398
+ * @return {?}
9399
+ */
9400
+ getCurrentIndex(indexValue) {
9401
+ this.currentIndex = indexValue;
9402
+ }
9403
+ }
9404
+ UserContentRatingComponent.decorators = [
9405
+ { type: Component, args: [{
9406
+ selector: 'sb-uic-user-content-rating',
9407
+ template: "<!-- <sb-uic-sliders [title]=\"'providerName'\" [widgetData]=\"[]\" [styleData]=\"styleData\">\n <div sliderbody>\n <div class=\"flex justify-center\">\n <div class=\"avatar-block mr-3\">\n <sb-uic-avatar-photo [name]=\"contentCard?.userDetails?.firstName\" [photoUrl]=\"contentCard?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n <div class=\"avatar-block mr-3\">\n <sb-uic-avatar-photo [name]=\"contentCard?.userDetails?.firstName\" [photoUrl]=\"contentCard?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n </div>\n <div class=\"user-ratting-wrapper flex flex-wrap justify-center\">\n <p class=\"userName w-full\">Harshit Rao</p>\n\n <div class=\"flex w-full flex-row justify-center gap-2 mb-4\">\n <mat-icon class=\"mat-icon material-icons rating-icon ws-mat-black16-text\"\n [ngClass]=\"{'ws-mat-orange-text': getRatingIconClass(rating, 3.3)}\"\n *ngFor=\"let rating of [1, 2, 3, 4, 5]\">\n {{ getRatingIcon(rating, 3.3) }}\n </mat-icon>\n </div>\n <p class=\"content-feedback w-full\">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua enim ad minim veniam, quis nostrud.</p>\n <div class=\"w-full m-8\">\n <sb-uic-cards [widgetData]=\"contentCard\"></sb-uic-cards>\n </div>\n </div>\n </div>\n</sb-uic-sliders> -->\n\n<sb-uic-sliders-ng-content [title]=\"'providerName'\" (currentIndexValue)=\"getCurrentIndex($event)\" [loadNgContentData]=\"true\" [widgetData]=\"responseData\" [styleData]=\"styleData\">\n <div sliderbody>\n <div *ngFor=\"let data of responseData; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"flex justify-center\">\n <div class=\"avatar-block mr-3\">\n <sb-uic-avatar-photo [name]=\"contentCard?.userDetails?.firstName\" [photoUrl]=\"contentCard?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n <div class=\"avatar-block mr-3\">\n <sb-uic-avatar-photo [name]=\"contentCard?.userDetails?.firstName\" [photoUrl]=\"contentCard?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n </div>\n <div class=\"user-ratting-wrapper flex flex-wrap justify-center\">\n <p class=\"userName w-full\">Harshit Rao</p>\n \n <div class=\"flex w-full flex-row justify-center gap-2 mb-4\">\n <mat-icon class=\"mat-icon material-icons rating-icon ws-mat-black16-text\"\n [ngClass]=\"{'ws-mat-orange-text': getRatingIconClass(rating, 3.3)}\"\n *ngFor=\"let rating of [1, 2, 3, 4, 5]\">\n {{ getRatingIcon(rating, 3.3) }}\n </mat-icon>\n </div>\n <p class=\"content-feedback w-full\">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua enim ad minim veniam, quis nostrud.</p>\n <div class=\"w-full m-8\">\n <sb-uic-cards [widgetData]=\"contentCard\"></sb-uic-cards>\n </div>\n </div>\n </div>\n </div>\n</sb-uic-sliders-ng-content>\n\n",
9408
+ styles: [".user-ratting-wrapper .userName{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:center}.user-ratting-wrapper .content-feedback{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:center;color:rgba(0,0,0,.87)}.avatar-block::before{content:\"\";border:4px solid #f3972e;border-radius:50%;width:41px;height:41px;display:flex;justify-content:center;align-items:center;position:absolute}"]
9409
+ }] }
9410
+ ];
9411
+ /** @nocollapse */
9412
+ UserContentRatingComponent.ctorParameters = () => [
9413
+ { type: RatingService }
9414
+ ];
9415
+ if (false) {
9416
+ /** @type {?} */
9417
+ UserContentRatingComponent.prototype.currentIndex;
9418
+ /** @type {?} */
9419
+ UserContentRatingComponent.prototype.styleData;
9420
+ /** @type {?} */
9421
+ UserContentRatingComponent.prototype.sliders;
9422
+ /** @type {?} */
9423
+ UserContentRatingComponent.prototype.contentCard;
9424
+ /** @type {?} */
9425
+ UserContentRatingComponent.prototype.widgetData;
9426
+ /** @type {?} */
9427
+ UserContentRatingComponent.prototype.responseData;
9428
+ /** @type {?} */
9429
+ UserContentRatingComponent.prototype.ratingService;
9430
+ }
9431
+
9432
+ /**
9433
+ * @fileoverview added by tsickle
9434
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9435
+ */
9436
+ class AvatarPhotoLibComponent {
9437
+ constructor() {
9438
+ this.size = '';
9439
+ this.randomColor = false;
9440
+ this.showBadge = false;
9441
+ this.showInitials = false;
9442
+ this.random = Math.random().toString(36).slice(2);
9443
+ // public initials!: string
9444
+ this.colors = [
9445
+ '#EB7181',
9446
+ '#306933',
9447
+ '#000000',
9448
+ '#3670B2',
9449
+ '#4E9E87',
9450
+ '#7E4C8D',
9451
+ ];
9452
+ this.randomcolors = [
9453
+ '#EB7181',
9454
+ '#006400',
9455
+ '#000000',
9456
+ '#3670B2',
9457
+ '#4E9E87',
9458
+ '#7E4C8D',
9459
+ ];
9460
+ }
9461
+ /**
9462
+ * @return {?}
9463
+ */
9464
+ ngOnInit() {
9465
+ if (!this.photoUrl) {
9466
+ this.showInitials = true;
9467
+ if (!this.initials) {
9468
+ this.createInititals();
9469
+ }
9470
+ if (this.datalen === 1) {
9471
+ this.randomcolors = [
9472
+ '#006400',
9473
+ ];
9474
+ }
9475
+ /** @type {?} */
9476
+ const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));
9477
+ this.circleColor = this.colors[randomIndex];
9478
+ if (this.randomColor) {
9479
+ /** @type {?} */
9480
+ const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomcolors.length));
9481
+ this.circleColor = this.randomcolors[randomIndex1];
9482
+ }
9483
+ }
9484
+ }
9485
+ /**
9486
+ * @param {?} change
9487
+ * @return {?}
9488
+ */
9489
+ ngOnChanges(change) {
9490
+ if (change.name.currentValue !== change.name.previousValue && !change.name.firstChange) {
9491
+ this.createInititals();
9492
+ }
9493
+ }
9494
+ /**
9495
+ * @return {?}
9496
+ */
9497
+ get userInitials() {
9498
+ return this.initials;
9499
+ }
9500
+ /**
9501
+ * @private
9502
+ * @return {?}
9503
+ */
9504
+ createInititals() {
9505
+ /** @type {?} */
9506
+ let initials = '';
9507
+ /** @type {?} */
9508
+ const array = `${this.name} `.toString().split(' ');
9509
+ if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {
9510
+ initials += array[0].charAt(0);
9511
+ initials += array[1].charAt(0);
9512
+ }
9513
+ else {
9514
+ for (let i = 0; i < this.name.length; i += 1) {
9515
+ if (this.name.charAt(i) === ' ') {
9516
+ continue;
9517
+ }
9518
+ if (this.name.charAt(i) === this.name.charAt(i)) {
9519
+ initials += this.name.charAt(i);
9520
+ if (initials.length === 2) {
9521
+ break;
9522
+ }
9523
+ }
9524
+ }
9525
+ }
9526
+ this.initials = initials.toUpperCase();
9527
+ }
9528
+ }
9529
+ AvatarPhotoLibComponent.decorators = [
9530
+ { type: Component, args: [{
9531
+ selector: 'sb-uic-avatar-photo',
9532
+ template: "<div id=\"user_icon\" [ngClass]=\"{'circle-s' : size=== 's',\n'circle-m' : size=== 'm',\n'circle-l' : size=== 'l',\n'circle-xl' : size=== 'xl',\n'circle-xxl' : size=== 'xxl',\n'circle-l-xs' : size=== 'l-xs',\n'circle-l-s' : size=== 'l-s',\n'circle-xl-s' : size=== 'xl-s',\n'circle-r-m': size=== 'round-m',\n'circle-r-p-m': size=== 'profile-round-m',\n'circle-m-side': size=== 'm-side',\n'circle-r-m-48': size=== 'm-side-rating',\n'circle-m-recommended': size==='m-recommended',\n'circle-xxl-s': size=== 'xxl-s'}\" [ngStyle]=\"{'background-color': circleColor }\">\n <img *ngIf=\"!showInitials\" loading=\"lazy\" src=\"{{photoUrl}}\" [alt]=\"photoUrl? '' :(name || userInitials || size || random)\">\n\n <div *ngIf=\"showInitials\" class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n <div *ngIf=\"showBadge\"><span class=\"profile-badge\"> \n <img src=\"fusion-assets/images/profile-badge.png\">\n </span></div>\n\n <!-- <div *ngIf=\"imageType === 'user-photo'\">\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" alt=\"user-image\" class=\"user-image\" [ngClass]=\"{'user-image-small': imageSize === 'small'}\">\n <div class=\"user-image\" [ngClass]=\"{'user-image-small': imageSize === 'small'}\">\n <span class=\"name-initials-image font-normal ws-mat-primary-default-text ws-mat-accent-background\"\n *ngIf=\"!imageUrl\">{{ shortName }}</span>\n </div>\n </div> -->\n</div>",
9533
+ styles: ["@charset \"UTF-8\";.success-checkmark::after{content:\"\u2714\";position:absolute;left:25px;top:20px;width:11px;height:11px;border:1px solid #1d8923;background:#1d8923;border-radius:50%;color:#fff;line-height:11px;text-align:center;font-size:9px}.profile-badge{position:absolute;top:10px;right:0}.profile-badge img{height:15px!important;width:15px!important}.circle-s{border-radius:50%;width:24px;height:24px;display:flex;justify-content:center;align-items:center}.circle-s img{border-radius:50%;width:100%;height:100%}.circle-s .initials{color:#fff;font-size:10px;line-height:12px;letter-spacing:.2625px}.circle-m{border-radius:50%;width:72px!important;height:72px!important;display:flex;justify-content:center;align-items:center;margin-top:-36px}.circle-m img{border-radius:10%;width:40px;height:40px}.circle-m .initials{color:#fff;font-size:14px;line-height:19px;letter-spacing:.2625px}.circle-l{border-radius:50%;width:80px;height:80px;display:flex;justify-content:center;align-items:center}.circle-l img{border-radius:10%;width:80px;height:80px}.circle-l .initials{color:#fff;font-size:20px;line-height:19px;letter-spacing:.2625px}.circle-xl{border-radius:50%;width:105px;height:105px;display:flex;justify-content:center;align-items:center}.circle-xl img{border-radius:10%;width:105px;height:105px}.circle-xl .initials{color:#fff;font-size:20px;line-height:19px;letter-spacing:.2625px}.circle-xxl{border-radius:50%;width:145px;height:145px;display:flex;justify-content:center;align-items:center}.circle-xxl img{border-radius:10%;width:145px;height:145px}.circle-xxl .initials{color:#fff;font-size:20px;line-height:19px;letter-spacing:.2625px}.circle-l-xs{border-radius:50%;width:29px;height:29px;display:flex;justify-content:center;align-items:center}.circle-l-xs img{border-radius:50%;width:100%;height:100%}.circle-l-xs .initials{color:#fff;font-size:12px;line-height:12px;letter-spacing:.2625px}.circle-l-s{border-radius:50%;width:80px;height:80px;display:flex;justify-content:center;align-items:center}.circle-l-s img{border-radius:4px;width:80px;height:80px}.circle-l-s .initials{color:#fff;font-size:24px;line-height:24px;letter-spacing:.2625px}.circle-xl-s{border-radius:50%;width:125px;height:125px;display:flex;justify-content:center;align-items:center}.circle-xl-s img{border-radius:4px;width:152px;height:125px}.circle-xl-s .initials{color:#fff;font-size:32px;line-height:32px;letter-spacing:.2625px}.circle-xxl-s{border-radius:50%;width:208px;height:208px;display:flex;justify-content:center;align-items:center}.circle-xxl-s img{border-radius:50%;width:100%;height:100%}.circle-xxl-s .initials{color:#fff;font-size:40px;line-height:40px;letter-spacing:.2625px}.circle-r-m{border-radius:50%;width:50px;height:50px;display:flex;justify-content:center;align-items:center}.circle-r-m img{border-radius:50%;width:100%;height:100%}.circle-r-m .initials{color:#fff;font-size:16px;line-height:40px;letter-spacing:.2625px}.circle-r-m-48{border-radius:50%;width:48px;height:48px;display:flex;justify-content:center;align-items:center}.circle-r-m-48 img{border-radius:50%;width:100%;height:100%}.circle-r-m-48 .initials{color:#fff;font-size:16px;line-height:40px;letter-spacing:.2625px}.circle-r-p-m{border-radius:50%;width:40px;height:40px;display:flex;justify-content:center;align-items:center}.circle-r-p-m img{border-radius:50%;width:100%;height:100%}.circle-r-p-m .initials{color:#fff;font-size:16px;line-height:40px;letter-spacing:.2625px}.circle-m-side{border-radius:50%;width:72px!important;height:72px!important;display:flex;justify-content:center;align-items:center}.circle-m-side img{border-radius:10%;width:40px;height:40px}.circle-m-side .initials{color:#fff;font-size:14px;line-height:19px;letter-spacing:.2625px}@media only screen and (max-width:960px){.circle-xxl-s{width:100px;height:100px}.circle-xxl-s .initials{font-size:24px;line-height:24px}}.circle-m-recommended{border-radius:50%;width:72px!important;height:72px!important;display:flex;justify-content:center;align-items:center;margin-top:-49px}.circle-m-recommended img{border-radius:10%;width:40px;height:40px}.circle-m-recommended .initials{color:#fff;font-size:14px;line-height:19px;letter-spacing:.2625px}.circle-l-s::before{content:\"\";border:1px solid red}"]
9534
+ }] }
9535
+ ];
9536
+ AvatarPhotoLibComponent.propDecorators = {
9537
+ datalen: [{ type: Input }],
9538
+ photoUrl: [{ type: Input }],
9539
+ name: [{ type: Input }],
9540
+ size: [{ type: Input }],
9541
+ randomColor: [{ type: Input }],
9542
+ initials: [{ type: Input }],
9543
+ showBadge: [{ type: Input }]
9544
+ };
9545
+ if (false) {
9546
+ /** @type {?} */
9547
+ AvatarPhotoLibComponent.prototype.datalen;
9548
+ /** @type {?} */
9549
+ AvatarPhotoLibComponent.prototype.photoUrl;
9550
+ /** @type {?} */
9551
+ AvatarPhotoLibComponent.prototype.name;
9552
+ /** @type {?} */
9553
+ AvatarPhotoLibComponent.prototype.size;
9554
+ /** @type {?} */
9555
+ AvatarPhotoLibComponent.prototype.randomColor;
9556
+ /** @type {?} */
9557
+ AvatarPhotoLibComponent.prototype.initials;
9558
+ /** @type {?} */
9559
+ AvatarPhotoLibComponent.prototype.showBadge;
9560
+ /** @type {?} */
9561
+ AvatarPhotoLibComponent.prototype.showInitials;
9562
+ /** @type {?} */
9563
+ AvatarPhotoLibComponent.prototype.circleColor;
9564
+ /** @type {?} */
9565
+ AvatarPhotoLibComponent.prototype.random;
9566
+ /**
9567
+ * @type {?}
9568
+ * @private
9569
+ */
9570
+ AvatarPhotoLibComponent.prototype.colors;
9571
+ /**
9572
+ * @type {?}
9573
+ * @private
9574
+ */
9575
+ AvatarPhotoLibComponent.prototype.randomcolors;
9576
+ }
9577
+
9578
+ /**
9579
+ * @fileoverview added by tsickle
9580
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9581
+ */
9582
+ class AvatarPhotoLibModule {
9583
+ }
9584
+ AvatarPhotoLibModule.decorators = [
9585
+ { type: NgModule, args: [{
9586
+ declarations: [AvatarPhotoLibComponent],
9587
+ imports: [
9588
+ CommonModule,
9589
+ RouterModule,
9590
+ MatButtonModule,
9591
+ MatIconModule,
9592
+ MatMenuModule,
9593
+ MatRippleModule,
9594
+ SbUiResolverModule,
9595
+ ],
9596
+ exports: [AvatarPhotoLibComponent],
9597
+ entryComponents: [AvatarPhotoLibComponent],
9598
+ },] }
9599
+ ];
9600
+
9601
+ /**
9602
+ * @fileoverview added by tsickle
9603
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9604
+ */
9605
+ class SlidersNgContentLibComponent extends WidgetBaseComponent {
9606
+ /**
9607
+ * @param {?} events
9608
+ * @param {?} valueSvc
9609
+ */
9610
+ constructor(events, valueSvc) {
9611
+ super();
9612
+ this.events = events;
9613
+ this.valueSvc = valueSvc;
9614
+ this.title = '';
9615
+ this.loadNgContentData = false;
9616
+ this.currentIndexValue = new EventEmitter();
9617
+ this.id = `banner_${Math.random()}`;
9618
+ this.defaultMenuSubscribe = null;
9619
+ this.isLtMedium$ = this.valueSvc.isLtMedium$;
9620
+ this.currentIndex = 0;
9621
+ this.slideInterval = null;
9622
+ this.isMobile = false;
9623
+ }
9624
+ /**
9625
+ * @return {?}
9626
+ */
9627
+ ngOnInit() {
9628
+ this.reInitiateSlideInterval();
9629
+ this.defaultMenuSubscribe = this.isLtMedium$.subscribe((/**
9630
+ * @param {?} isLtMedium
9631
+ * @return {?}
9632
+ */
9633
+ (isLtMedium) => {
9634
+ this.isMobile = isLtMedium;
9635
+ }));
9636
+ }
9637
+ /**
9638
+ * @return {?}
9639
+ */
9640
+ reInitiateSlideInterval() {
9641
+ if (this.widgetData && this.widgetData.length > 1) {
9642
+ try {
9643
+ if (this.slideInterval) {
9644
+ this.slideInterval.unsubscribe();
9645
+ }
9646
+ }
9647
+ catch (e) {
9648
+ }
9649
+ finally {
9650
+ this.slideInterval = interval(8000).subscribe((/**
9651
+ * @return {?}
9652
+ */
9653
+ () => {
9654
+ if (this.currentIndex === this.widgetData.length - 1) {
9655
+ this.currentIndex = 0;
9656
+ this.currentIndexValue.emit(this.currentIndex);
9657
+ }
9658
+ else {
9659
+ this.currentIndex += 1;
9660
+ this.currentIndexValue.emit(this.currentIndex);
9661
+ }
9662
+ }));
9663
+ }
9664
+ }
9665
+ }
9666
+ /**
9667
+ * @param {?} index
9668
+ * @return {?}
9669
+ */
9670
+ slideTo(index) {
9671
+ if (index >= 0 && index < this.widgetData.length) {
9672
+ this.currentIndex = index;
9673
+ this.currentIndexValue.emit(this.currentIndex);
9674
+ }
9675
+ else if (index === this.widgetData.length) {
9676
+ this.currentIndex = 0;
9677
+ this.currentIndexValue.emit(this.currentIndex);
9678
+ }
9679
+ else {
9680
+ this.currentIndex = this.widgetData.length + index;
9681
+ this.currentIndexValue.emit(this.currentIndex);
9682
+ }
9683
+ this.reInitiateSlideInterval();
9684
+ }
9685
+ /**
9686
+ * @return {?}
9687
+ */
9688
+ get isOpenInNewTab() {
9689
+ /** @type {?} */
9690
+ const currentData = this.widgetData[this.currentIndex];
9691
+ if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
9692
+ return true;
9693
+ }
9694
+ return false;
9695
+ }
9696
+ /**
9697
+ * @return {?}
9698
+ */
9699
+ openInNewTab() {
9700
+ /** @type {?} */
9701
+ const currentData = this.widgetData[this.currentIndex];
9702
+ if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
9703
+ window.open(currentData.redirectUrl);
9704
+ }
9705
+ }
9706
+ /**
9707
+ * @param {?} bannerUrl
9708
+ * @return {?}
9709
+ */
9710
+ raiseTelemetry(bannerUrl) {
9711
+ this.openInNewTab();
9712
+ /** @type {?} */
9713
+ const path = window.location.pathname.replace('/', '');
9714
+ /** @type {?} */
9715
+ const url = path + window.location.search;
9716
+ this.events.raiseInteractTelemetry({
9717
+ type: 'click',
9718
+ subType: 'banner',
9719
+ }, {
9720
+ pageUrl: url,
9721
+ bannerRedirectUrl: bannerUrl,
9722
+ }, {
9723
+ pageIdExt: 'banner',
9724
+ module: WsEvents.EnumTelemetrymodules.CONTENT,
9725
+ });
9726
+ }
9727
+ /**
9728
+ * @return {?}
9729
+ */
9730
+ ngOnDestroy() {
9731
+ if (this.defaultMenuSubscribe) {
9732
+ this.defaultMenuSubscribe.unsubscribe();
9733
+ }
9734
+ }
9735
+ }
9736
+ SlidersNgContentLibComponent.decorators = [
9737
+ { type: Component, args: [{
9738
+ selector: 'sb-uic-sliders-ng-content',
9739
+ template: "<div class=\"banner-container {{isMobile? styleData?.responsive?.bannerMetaClass : styleData?.bannerMetaClass}}\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length > 1\" [style.height]=\"isMobile? styleData?.responsive?.customHeight : styleData?.customHeight\"\n [ngStyle]=\"{'border-radius': styleData?.borderRadius || '12px'}\">\n <ng-container *ngIf=\"!loadNgContentData\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"loadNgContentData\">\n <!-- <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\"> -->\n <ng-content select=\"[sliderbody]\"></ng-content>\n <!-- </div> -->\n \n </ng-container>\n <div class=\"navigation {{isMobile? styleData?.responsive?.arrowsPlacement : styleData?.arrowsPlacement}}\" \n *ngIf=\"isMobile && styleData?.responsive?.navigationArrows !== 'hidden' || !isMobile && styleData?.navigationArrows !== 'hidden'\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </div>\n</div>\n<div class=\"banner-container-solo margin-top-s\" *ngIf=\"widgetData?.length == 1\">\n <img i18n-alt alt=\"Page Banner\" width=\"100%\" height=\"100%\" [src]=\"widgetData[0].banners\" wsUtilsImageResponsive class=\"banner-image-solo\" />\n</div>\n\n<!-- <ng-container *ngIf=\"!widgetData?.length\">\n <div class=\"slider default-slider h-full\">\n <div class=\"relative h-full\">\n <img class=\"h-full\" src=\"assets/icons/home/default-slider-image.svg\" alt=\"\">\n <div class=\"default-title rounded-full\">\n <p class=\"mat-h1\">{{title}}</p>\n </div>\n </div>\n </div>\n</ng-container> -->\n",
9740
+ styles: [".banner-container{min-height:243px;position:relative;margin:auto;padding-bottom:40px}.banner-container.inline-meta{padding-bottom:0!important}.banner-container.flat .banner .banner-image{border-radius:0!important}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,rgba(0,0,0,.25) 0,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 85%,rgba(0,0,0,.25) 100%);border-radius:inherit}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;border-radius:inherit;height:inherit}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:inherit;height:inherit}.banner-meta{text-align:center;z-index:2;padding:8px 12px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translateX(-50%);box-sizing:border-box}.banner-meta.left{left:0;transform:translateX(0)}.banner-meta.right{left:100%;transform:translateX(-100%)}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:8px;font-size:1.1rem}@media only screen and (max-width:599px){.banner-meta .banner-title{display:none}}.banner-meta .dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:6px;width:6px;margin:0 4px;background-color:rgba(0,0,0,.4);border-radius:50%;display:inline-block;transition:background-color .5s!important}@media only screen and (max-width:599px){.banner-meta .dots-container .dot{height:8px;width:8px;margin:0 4px}}.banner-meta .dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}@keyframes fade{from{opacity:.25}to{opacity:1}}.next,.prev{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-weight:700;background-color:#1b2133!important;border-radius:50%;z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;margin-top:-16px;justify-content:center}.prev{left:0;margin-left:-16px}.next{right:0;margin-right:-16px}.navigation.bottom-right .prev{left:unset;right:45px;bottom:-15px;top:unset}.navigation.bottom-right .next{left:unset;right:15px;bottom:-15px;top:unset}.navigation.bottom-center .prev{left:calc(50% - 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-center .next{left:calc(50% + 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-left .prev{left:15px;right:unset;bottom:-15px;top:unset}.navigation.bottom-left .next{left:60px;right:unset;bottom:-15px;top:unset}.navigation.middle-inline .prev{left:30px}.navigation.middle-inline .next{right:30px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.default-slider{height:100%;background:#d4e2fb}.default-slider .default-title{text-align:center;position:absolute;top:50%;left:0;right:0;margin:auto;transform:translateY(-50%);z-index:999;background:#e6efff;padding:32px;width:500px}.default-slider .default-title p{word-break:break-word;margin:0!important;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;text-transform:uppercase}@media screen and (max-width:768px){.default-slider{height:384px;width:100%}.default-slider .default-title{width:unset!important}}"]
9741
+ }] }
9742
+ ];
9743
+ /** @nocollapse */
9744
+ SlidersNgContentLibComponent.ctorParameters = () => [
9745
+ { type: EventService },
9746
+ { type: ValueService }
9747
+ ];
9748
+ SlidersNgContentLibComponent.propDecorators = {
9749
+ widgetData: [{ type: Input }],
9750
+ styleData: [{ type: Input }],
9751
+ title: [{ type: Input }],
9752
+ loadNgContentData: [{ type: Input }],
9753
+ currentIndexValue: [{ type: Output }],
9754
+ id: [{ type: HostBinding, args: ['id',] }]
9755
+ };
9756
+ if (false) {
9757
+ /** @type {?} */
9758
+ SlidersNgContentLibComponent.prototype.widgetData;
9759
+ /** @type {?} */
9760
+ SlidersNgContentLibComponent.prototype.styleData;
9761
+ /** @type {?} */
9762
+ SlidersNgContentLibComponent.prototype.title;
9763
+ /** @type {?} */
9764
+ SlidersNgContentLibComponent.prototype.loadNgContentData;
9765
+ /** @type {?} */
9766
+ SlidersNgContentLibComponent.prototype.currentIndexValue;
9767
+ /** @type {?} */
9768
+ SlidersNgContentLibComponent.prototype.id;
9769
+ /**
9770
+ * @type {?}
9771
+ * @private
9772
+ */
9773
+ SlidersNgContentLibComponent.prototype.defaultMenuSubscribe;
9774
+ /** @type {?} */
9775
+ SlidersNgContentLibComponent.prototype.isLtMedium$;
9776
+ /** @type {?} */
9777
+ SlidersNgContentLibComponent.prototype.currentIndex;
9778
+ /** @type {?} */
9779
+ SlidersNgContentLibComponent.prototype.slideInterval;
9780
+ /** @type {?} */
9781
+ SlidersNgContentLibComponent.prototype.isMobile;
9782
+ /**
9783
+ * @type {?}
9784
+ * @private
9785
+ */
9786
+ SlidersNgContentLibComponent.prototype.events;
9787
+ /**
9788
+ * @type {?}
9789
+ * @private
9790
+ */
9791
+ SlidersNgContentLibComponent.prototype.valueSvc;
9792
+ }
9793
+
9794
+ /**
9795
+ * @fileoverview added by tsickle
9796
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9797
+ */
9798
+ /* tslint:enable */
9799
+ class MyHammerConfig$1 extends HammerGestureConfig {
9800
+ /**
9801
+ * @param {?} element
9802
+ * @return {?}
9803
+ */
9804
+ buildHammer(element) {
9805
+ /** @type {?} */
9806
+ const mc = new Hammer(element, {
9807
+ touchAction: 'pan-y',
9808
+ });
9809
+ return mc;
9810
+ }
9811
+ }
9812
+ // tslint:disable-next-line: max-classes-per-file
9813
+ class SlidersNgContentLibModule {
9814
+ }
9815
+ SlidersNgContentLibModule.decorators = [
9816
+ { type: NgModule, args: [{
9817
+ declarations: [SlidersNgContentLibComponent],
9818
+ imports: [
9819
+ CommonModule,
9820
+ RouterModule,
9821
+ NavigationModule,
9822
+ ImageResponsiveModule,
9823
+ ],
9824
+ exports: [SlidersNgContentLibComponent],
9825
+ entryComponents: [SlidersNgContentLibComponent],
9826
+ providers: [
9827
+ {
9828
+ provide: HAMMER_GESTURE_CONFIG,
9829
+ useClass: MyHammerConfig$1,
9830
+ },
9831
+ ],
9832
+ },] }
9833
+ ];
9834
+
9835
+ /**
9836
+ * @fileoverview added by tsickle
9837
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9838
+ */
9839
+ class UserContentRatingModule {
9840
+ }
9841
+ UserContentRatingModule.decorators = [
9842
+ { type: NgModule, args: [{
9843
+ declarations: [UserContentRatingComponent],
9844
+ imports: [
9845
+ CommonModule,
9846
+ MatIconModule,
9847
+ MatChipsModule,
9848
+ SkeletonLoaderLibModule,
9849
+ SlidersLibModule,
9850
+ CardsModule,
9851
+ AvatarPhotoLibModule,
9852
+ SlidersNgContentLibModule
9853
+ ],
9854
+ exports: [UserContentRatingComponent],
9855
+ providers: [RatingService],
9856
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
9857
+ },] }
9858
+ ];
9859
+
7979
9860
  /**
7980
9861
  * @fileoverview added by tsickle
7981
9862
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -7986,5 +9867,5 @@ CompetencyPassbookModule.decorators = [
7986
9867
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7987
9868
  */
7988
9869
 
7989
- export { CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentStripWithTabsLibModule, DataPointsModule, HttpLoaderFactory, MyHammerConfig, ROOT_WIDGET_CONFIG, SlidersLibModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, ContentStripWithTabsLibComponent as ɵa, WidgetContentService as ɵb, DisplayContentTypeLibComponent as ɵba, DefaultThumbnailModule as ɵbb, DefaultThumbnailDirective as ɵbc, PipeDurationTransformModule as ɵbd, PipeDurationTransformPipe as ɵbe, CompetencyPassbookComponent as ɵbf, CompetencyPassbookService as ɵbg, PillsModule as ɵbh, PillsComponent as ɵbi, WidgetUserService as ɵc, MultilingualTranslationsService as ɵd, ConfigurationsService as ɵe, HorizontalScrollerV2Module as ɵf, HorizontalScrollerV2Component as ɵg, SlidersLibComponent as ɵh, NavigationModule as ɵi, NavigationDirective as ɵj, ImageResponsiveModule as ɵk, ImageResponsiveDirective as ɵl, DataPointsComponent as ɵm, InsiteDataService as ɵn, SkeletonLoaderLibModule as ɵo, SkeletonLoaderLibComponent as ɵp, CalenderComponent as ɵq, CommonStripComponent as ɵr, CardResourceComponent as ɵs, CardsComponent as ɵt, CardPortraitComponent as ɵu, CardUserComponent as ɵv, CardLandscapeComponent as ɵw, PipePublicURLModule as ɵx, PipePublicURL as ɵy, DisplayContentTypeLibModule as ɵz };
9870
+ export { CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentStripWithTabsLibModule, DataPointsModule, HttpLoaderFactory, MyHammerConfig, ROOT_WIDGET_CONFIG, SlidersLibModule, UserContentRatingModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, ContentStripWithTabsLibComponent as ɵa, WidgetContentService as ɵb, PipePublicURL as ɵba, DisplayContentTypeLibModule as ɵbb, DisplayContentTypeLibComponent as ɵbc, DefaultThumbnailModule as ɵbd, DefaultThumbnailDirective as ɵbe, PipeDurationTransformModule as ɵbf, PipeDurationTransformPipe as ɵbg, CompetencyPassbookComponent as ɵbh, CompetencyPassbookService as ɵbi, PillsModule as ɵbj, PillsComponent as ɵbk, UserContentRatingComponent as ɵbl, RatingService as ɵbm, AvatarPhotoLibModule as ɵbn, AvatarPhotoLibComponent as ɵbo, MyHammerConfig$1 as ɵbp, SlidersNgContentLibModule as ɵbq, SlidersNgContentLibComponent as ɵbr, WidgetUserService as ɵc, MultilingualTranslationsService as ɵd, ConfigurationsService as ɵe, HorizontalScrollerV2Module as ɵf, HorizontalScrollerV2Component as ɵg, SlidersLibComponent as ɵh, NavigationModule as ɵi, NavigationDirective as ɵj, ImageResponsiveModule as ɵk, ImageResponsiveDirective as ɵl, DataPointsComponent as ɵm, InsiteDataService as ɵn, SkeletonLoaderLibModule as ɵo, SkeletonLoaderLibComponent as ɵp, CalenderComponent as ɵq, CalenderDayComponent as ɵr, CommonStripComponent as ɵs, CardResourceComponent as ɵt, CardsComponent as ɵu, CardPortraitComponent as ɵv, CardUserComponent as ɵw, CardLandscapeComponent as ɵx, CardWideComponent as ɵy, PipePublicURLModule as ɵz };
7990
9871
  //# sourceMappingURL=sunbird-cb-consumption.js.map