@sunbird-cb/consumption 0.0.12 → 0.0.14

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 (82) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +1699 -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 +158 -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 +206 -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-lib.component.js +139 -0
  22. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.module.js +38 -0
  23. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.service.js +45 -0
  24. package/esm2015/lib/_directives/scrollable-item/scrollable-item.directive.js +42 -0
  25. package/esm2015/lib/_directives/scrollable-item/scrollable-item.module.js +19 -0
  26. package/esm2015/lib/_models/rating.model.js +44 -0
  27. package/esm2015/lib/_services/insite-data.service.js +10 -2
  28. package/esm2015/lib/_services/rating.service.js +171 -0
  29. package/esm2015/public-api.js +2 -1
  30. package/esm2015/sunbird-cb-consumption.js +31 -20
  31. package/esm5/lib/_common/avatar-photo-lib/avatar-photo-lib.component.js +175 -0
  32. package/esm5/lib/_common/avatar-photo-lib/avatar-photo-lib.module.js +33 -0
  33. package/esm5/lib/_common/calender/calender-day/calender-day.component.js +101 -0
  34. package/esm5/lib/_common/calender/calender.component.js +305 -9
  35. package/esm5/lib/_common/calender/calender.module.js +15 -5
  36. package/esm5/lib/_common/cards/card-portrait/card-portrait.component.js +5 -1
  37. package/esm5/lib/_common/cards/card-wide/card-wide.component.js +172 -0
  38. package/esm5/lib/_common/cards/cards.component.js +2 -2
  39. package/esm5/lib/_common/cards/cards.module.js +5 -3
  40. package/esm5/lib/_common/common-strip/common-strip.component.js +22 -19
  41. package/esm5/lib/_common/competency-passbook/competency-passbook.component.js +26 -3
  42. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +36 -3
  43. package/esm5/lib/_common/data-points/data-points.component.js +2 -2
  44. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.component.js +233 -0
  45. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.model.js +61 -0
  46. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.module.js +67 -0
  47. package/esm5/lib/_common/user-content-rating/user-content-rating-lib.component.js +162 -0
  48. package/esm5/lib/_common/user-content-rating/user-content-rating-lib.module.js +42 -0
  49. package/esm5/lib/_common/user-content-rating/user-content-rating-lib.service.js +48 -0
  50. package/esm5/lib/_directives/scrollable-item/scrollable-item.directive.js +45 -0
  51. package/esm5/lib/_directives/scrollable-item/scrollable-item.module.js +23 -0
  52. package/esm5/lib/_models/rating.model.js +44 -0
  53. package/esm5/lib/_services/insite-data.service.js +14 -2
  54. package/esm5/lib/_services/rating.service.js +214 -0
  55. package/esm5/public-api.js +2 -1
  56. package/esm5/sunbird-cb-consumption.js +31 -20
  57. package/fesm2015/sunbird-cb-consumption.js +1515 -88
  58. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  59. package/fesm5/sunbird-cb-consumption.js +1673 -58
  60. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  61. package/lib/_common/avatar-photo-lib/avatar-photo-lib.component.d.ts +20 -0
  62. package/lib/_common/avatar-photo-lib/avatar-photo-lib.module.d.ts +2 -0
  63. package/lib/_common/calender/calender-day/calender-day.component.d.ts +18 -0
  64. package/lib/_common/calender/calender.component.d.ts +29 -1
  65. package/lib/_common/cards/card-wide/card-wide.component.d.ts +30 -0
  66. package/lib/_common/competency-passbook/competency-passbook.component.d.ts +1 -0
  67. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +6 -1
  68. package/lib/_common/sliders-ng-content/sliders-ng-content.component.d.ts +29 -0
  69. package/lib/_common/sliders-ng-content/sliders-ng-content.model.d.ts +34 -0
  70. package/lib/_common/sliders-ng-content/sliders-ng-content.module.d.ts +6 -0
  71. package/lib/_common/user-content-rating/user-content-rating-lib.component.d.ts +22 -0
  72. package/lib/_common/user-content-rating/user-content-rating-lib.module.d.ts +2 -0
  73. package/lib/_common/user-content-rating/user-content-rating-lib.service.d.ts +7 -0
  74. package/lib/_directives/scrollable-item/scrollable-item.directive.d.ts +7 -0
  75. package/lib/_directives/scrollable-item/scrollable-item.module.d.ts +2 -0
  76. package/lib/_models/rating.model.d.ts +17 -0
  77. package/lib/_services/insite-data.service.d.ts +1 -0
  78. package/lib/_services/rating.service.d.ts +15 -0
  79. package/package.json +1 -1
  80. package/public-api.d.ts +1 -0
  81. package/sunbird-cb-consumption.d.ts +29 -18
  82. 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, ElementRef, ViewChildren } 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 (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n<ng-template #cardWideLibSkeleton>\n <sb-uic-card-wide [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n\n <ng-template #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}@media screen and (max-width:768px){.card-wide-img{width:167px;height:117px;border-radius:12px}}"]
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,853 @@ 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 ScrollableItemDirective {
8729
+ /**
8730
+ * @param {?} el
8731
+ */
8732
+ constructor(el) {
8733
+ this.el = el;
8734
+ }
8735
+ /**
8736
+ * @param {?} blockValue
8737
+ * @return {?}
8738
+ */
8739
+ scrollIntoView(blockValue) {
8740
+ this.el.nativeElement.scrollIntoView({ behavior: 'smooth', block: blockValue });
8741
+ }
8742
+ }
8743
+ ScrollableItemDirective.decorators = [
8744
+ { type: Directive, args: [{
8745
+ selector: '[sbUicScrollableItem]'
8746
+ },] }
8747
+ ];
8748
+ /** @nocollapse */
8749
+ ScrollableItemDirective.ctorParameters = () => [
8750
+ { type: ElementRef }
8751
+ ];
8752
+ ScrollableItemDirective.propDecorators = {
8753
+ key: [{ type: Input, args: ['sbUicScrollableItem',] }]
8754
+ };
8755
+ if (false) {
8756
+ /** @type {?} */
8757
+ ScrollableItemDirective.prototype.key;
8758
+ /**
8759
+ * @type {?}
8760
+ * @private
8761
+ */
8762
+ ScrollableItemDirective.prototype.el;
8763
+ }
8764
+
8765
+ /**
8766
+ * @fileoverview added by tsickle
8767
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8768
+ */
8769
+ /** @type {?} */
8770
+ const API_END_POINTS$4 = {
8771
+ TOP_REVIEWS: `/apis/proxies/v8/ratings/v1/topReviews`
8772
+ };
8773
+ class UserContentRatingLibService {
8774
+ /**
8775
+ * @param {?} http
8776
+ */
8777
+ constructor(http) {
8778
+ this.http = http;
8779
+ }
8780
+ /**
8781
+ * @param {?} doId
8782
+ * @return {?}
8783
+ */
8784
+ fetchTopReviews(doId) {
8785
+ return this.http.get(`${API_END_POINTS$4.TOP_REVIEWS}/${doId}`);
8786
+ }
8787
+ }
8788
+ UserContentRatingLibService.decorators = [
8789
+ { type: Injectable, args: [{
8790
+ providedIn: 'root'
8791
+ },] }
8792
+ ];
8793
+ /** @nocollapse */
8794
+ UserContentRatingLibService.ctorParameters = () => [
8795
+ { type: HttpClient }
8796
+ ];
8797
+ /** @nocollapse */ UserContentRatingLibService.ngInjectableDef = ɵɵdefineInjectable({ factory: function UserContentRatingLibService_Factory() { return new UserContentRatingLibService(ɵɵinject(HttpClient)); }, token: UserContentRatingLibService, providedIn: "root" });
8798
+ if (false) {
8799
+ /**
8800
+ * @type {?}
8801
+ * @private
8802
+ */
8803
+ UserContentRatingLibService.prototype.http;
8804
+ }
8805
+
8806
+ /**
8807
+ * @fileoverview added by tsickle
8808
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8809
+ */
8810
+ class UserContentRatingLibComponent {
8811
+ /**
8812
+ * @param {?} ratingService
8813
+ * @param {?} userRatingSvc
8814
+ */
8815
+ constructor(ratingService, userRatingSvc) {
8816
+ this.ratingService = ratingService;
8817
+ this.userRatingSvc = userRatingSvc;
8818
+ this.currentIndex = 0;
8819
+ this.providerId = '';
8820
+ this.formData = '';
8821
+ this.emptyResponse = new EventEmitter();
8822
+ this.styleData = {};
8823
+ this.contentdata = [];
8824
+ }
8825
+ /**
8826
+ * @return {?}
8827
+ */
8828
+ ngOnInit() {
8829
+ this.styleData = this.formData && this.formData.sliderData && this.formData.sliderData.styleData;
8830
+ this.getTopReviews();
8831
+ }
8832
+ /**
8833
+ * @return {?}
8834
+ */
8835
+ getTopReviews() {
8836
+ this.contentdata = [];
8837
+ this.userRatingSvc.fetchTopReviews(this.providerId).subscribe((/**
8838
+ * @param {?} response
8839
+ * @return {?}
8840
+ */
8841
+ (response) => {
8842
+ if (response && response.result && response.result.content.length) {
8843
+ response.result.content.forEach((/**
8844
+ * @param {?} contentEle
8845
+ * @return {?}
8846
+ */
8847
+ (contentEle) => {
8848
+ /** @type {?} */
8849
+ let localData = {};
8850
+ localData['content'] = contentEle.contentInfo;
8851
+ localData['rating'] = contentEle.rating;
8852
+ localData['review'] = contentEle.review;
8853
+ localData['userDetails'] = contentEle.userDetails;
8854
+ localData['cardSubType'] = "card-wide-lib";
8855
+ localData['cardCustomeClass'] = "";
8856
+ this.contentdata.push(localData);
8857
+ }));
8858
+ }
8859
+ else {
8860
+ this.emptyResponse.emit(true);
8861
+ }
8862
+ }));
8863
+ }
8864
+ /**
8865
+ * @param {?} ratingIndex
8866
+ * @param {?} avg
8867
+ * @return {?}
8868
+ */
8869
+ getRatingIcon(ratingIndex, avg) {
8870
+ return this.ratingService.getRatingIcon(ratingIndex, avg);
8871
+ }
8872
+ /**
8873
+ * @param {?} ratingIndex
8874
+ * @param {?} avg
8875
+ * @return {?}
8876
+ */
8877
+ getRatingIconClass(ratingIndex, avg) {
8878
+ return this.ratingService.getRatingIconClass(ratingIndex, avg);
8879
+ }
8880
+ /**
8881
+ * @param {?} indexValue
8882
+ * @return {?}
8883
+ */
8884
+ getCurrentIndex(indexValue) {
8885
+ this.currentIndex = indexValue;
8886
+ this.handleScrollClick(indexValue);
8887
+ }
8888
+ /**
8889
+ * @param {?} dataValue
8890
+ * @return {?}
8891
+ */
8892
+ handleScrollClick(dataValue) {
8893
+ /** @type {?} */
8894
+ const item = this.scrollableItems.find((/**
8895
+ * @param {?} x
8896
+ * @return {?}
8897
+ */
8898
+ x => x.key === dataValue));
8899
+ item.scrollIntoView("nearest");
8900
+ }
8901
+ }
8902
+ UserContentRatingLibComponent.decorators = [
8903
+ { type: Component, args: [{
8904
+ selector: 'sb-uic-user-content-rating',
8905
+ template: "<ng-container *ngIf=\"contentdata.length\">\n <sb-uic-sliders-ng-content [title]=\"'providerName'\" [currentIndex]=\"currentIndex\" (currentIndexValue)=\"getCurrentIndex($event)\" [loadNgContentData]=\"true\" [widgetData]=\"contentdata\" [styleData]=\"styleData\">\n <div sliderbody>\n <div class=\"flex justify-start md:justify-center users-block mb-4 \">\n <ng-container *ngFor=\"let userData of contentdata; let j = index\">\n <div class=\"avatar-block mr-1\" [sbUicScrollableItem]=\"j\"\n [ngClass]=\"{'user-active': j === currentIndex}\" (click)=\"handleScrollClick(currentIndex);currentIndex = j\">\n <sb-uic-avatar-photo [defaulfColor]=\"'#1B2133'\" [datalen]=\"1\" [randomColor]=\"true\" [name]=\"userData?.userDetails?.firstName\" [photoUrl]=\"userData?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n </ng-container>\n </div>\n <div *ngFor=\"let ratingData of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"user-ratting-wrapper flex flex-wrap justify-center\">\n <p class=\"userName w-full mb-4\">{{ratingData?.userDetails?.firstName}}</p>\n \n <div class=\"flex w-full flex-row justify-center gap-2 mb-4\">\n <mat-icon class=\"mat-icon material-icons rating-icon ws-mat-black16-text\"\n [ngClass]=\"{'ws-mat-orange-text': getRatingIconClass(rating, ratingData?.rating)}\"\n *ngFor=\"let rating of [1, 2, 3, 4, 5]\">\n {{ getRatingIcon(rating, ratingData?.rating) }}\n </mat-icon>\n </div>\n <p class=\"content-feedback w-full mb-4 pl-0 pr-0 md:pl-12 md:pr-12 \">{{ratingData?.review}}</p>\n \n <hr class=\"divider mb-4\">\n <p class=\"content-info w-full mb-4\">For The Content</p>\n <div class=\"w-full mr-0 md:mr-8 ml-0 md:ml-8\">\n <sb-uic-cards [widgetData]=\"ratingData\"></sb-uic-cards>\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n</ng-container>\n\n",
8906
+ styles: [".user-ratting-wrapper .userName{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:center}.user-ratting-wrapper .content-feedback{font-family:Lato;font-size:16px;font-weight:400;line-height:19.2px;text-align:center;color:rgba(0,0,0,.87)}.user-ratting-wrapper .content-info{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;color:#666}.avatar-block{border:8px solid transparent;position:relative;cursor:pointer;width:48px;height:48px}.user-active{content:\"\";border:5px solid #f3972e;border-radius:50%;display:flex;justify-content:center;align-items:center;margin-bottom:0;width:48px;height:48px}.user-active::after{content:\" \";position:absolute;top:106%;left:50%;margin-left:-10px;border-left:10px solid transparent;border-right:10px solid transparent;border-top:18px solid #f3972e}.users-block{overflow-x:auto;padding:16px;padding-bottom:24px!important;width:100%}hr.divider{border:1px solid #f3972e;width:185px}"]
8907
+ }] }
8908
+ ];
8909
+ /** @nocollapse */
8910
+ UserContentRatingLibComponent.ctorParameters = () => [
8911
+ { type: RatingService },
8912
+ { type: UserContentRatingLibService }
8913
+ ];
8914
+ UserContentRatingLibComponent.propDecorators = {
8915
+ providerId: [{ type: Input }],
8916
+ formData: [{ type: Input }],
8917
+ emptyResponse: [{ type: Output }],
8918
+ scrollableItems: [{ type: ViewChildren, args: [ScrollableItemDirective,] }]
8919
+ };
8920
+ if (false) {
8921
+ /** @type {?} */
8922
+ UserContentRatingLibComponent.prototype.currentIndex;
8923
+ /** @type {?} */
8924
+ UserContentRatingLibComponent.prototype.providerId;
8925
+ /** @type {?} */
8926
+ UserContentRatingLibComponent.prototype.formData;
8927
+ /** @type {?} */
8928
+ UserContentRatingLibComponent.prototype.emptyResponse;
8929
+ /** @type {?} */
8930
+ UserContentRatingLibComponent.prototype.styleData;
8931
+ /** @type {?} */
8932
+ UserContentRatingLibComponent.prototype.contentdata;
8933
+ /** @type {?} */
8934
+ UserContentRatingLibComponent.prototype.scrollableItems;
8935
+ /** @type {?} */
8936
+ UserContentRatingLibComponent.prototype.ratingService;
8937
+ /** @type {?} */
8938
+ UserContentRatingLibComponent.prototype.userRatingSvc;
8939
+ }
8940
+
8941
+ /**
8942
+ * @fileoverview added by tsickle
8943
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8944
+ */
8945
+ class AvatarPhotoLibComponent {
8946
+ constructor() {
8947
+ this.size = '';
8948
+ this.defaulfColor = '';
8949
+ this.randomColor = false;
8950
+ this.showBadge = false;
8951
+ this.showInitials = false;
8952
+ this.random = Math.random().toString(36).slice(2);
8953
+ // public initials!: string
8954
+ this.colors = [
8955
+ '#EB7181',
8956
+ '#306933',
8957
+ '#000000',
8958
+ '#3670B2',
8959
+ '#4E9E87',
8960
+ '#7E4C8D',
8961
+ ];
8962
+ this.randomcolors = [
8963
+ '#EB7181',
8964
+ '#006400',
8965
+ '#000000',
8966
+ '#3670B2',
8967
+ '#4E9E87',
8968
+ '#7E4C8D',
8969
+ ];
8970
+ }
8971
+ /**
8972
+ * @return {?}
8973
+ */
8974
+ ngOnInit() {
8975
+ if (!this.photoUrl) {
8976
+ this.showInitials = true;
8977
+ if (!this.initials) {
8978
+ this.createInititals();
8979
+ }
8980
+ if (this.datalen === 1) {
8981
+ if (this.defaulfColor) {
8982
+ this.randomcolors = [
8983
+ this.defaulfColor
8984
+ ];
8985
+ }
8986
+ else {
8987
+ this.randomcolors = [
8988
+ '#006400',
8989
+ ];
8990
+ }
8991
+ }
8992
+ /** @type {?} */
8993
+ const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));
8994
+ this.circleColor = this.colors[randomIndex];
8995
+ if (this.randomColor) {
8996
+ /** @type {?} */
8997
+ const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomcolors.length));
8998
+ this.circleColor = this.randomcolors[randomIndex1];
8999
+ }
9000
+ }
9001
+ }
9002
+ /**
9003
+ * @param {?} change
9004
+ * @return {?}
9005
+ */
9006
+ ngOnChanges(change) {
9007
+ if (change.name.currentValue !== change.name.previousValue && !change.name.firstChange) {
9008
+ this.createInititals();
9009
+ }
9010
+ }
9011
+ /**
9012
+ * @return {?}
9013
+ */
9014
+ get userInitials() {
9015
+ return this.initials;
9016
+ }
9017
+ /**
9018
+ * @private
9019
+ * @return {?}
9020
+ */
9021
+ createInititals() {
9022
+ /** @type {?} */
9023
+ let initials = '';
9024
+ /** @type {?} */
9025
+ const array = `${this.name} `.toString().split(' ');
9026
+ if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {
9027
+ initials += array[0].charAt(0);
9028
+ initials += array[1].charAt(0);
9029
+ }
9030
+ else {
9031
+ for (let i = 0; i < this.name.length; i += 1) {
9032
+ if (this.name.charAt(i) === ' ') {
9033
+ continue;
9034
+ }
9035
+ if (this.name.charAt(i) === this.name.charAt(i)) {
9036
+ initials += this.name.charAt(i);
9037
+ if (initials.length === 2) {
9038
+ break;
9039
+ }
9040
+ }
9041
+ }
9042
+ }
9043
+ this.initials = initials.toUpperCase();
9044
+ }
9045
+ }
9046
+ AvatarPhotoLibComponent.decorators = [
9047
+ { type: Component, args: [{
9048
+ selector: 'sb-uic-avatar-photo',
9049
+ 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>",
9050
+ 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}"]
9051
+ }] }
9052
+ ];
9053
+ AvatarPhotoLibComponent.propDecorators = {
9054
+ datalen: [{ type: Input }],
9055
+ photoUrl: [{ type: Input }],
9056
+ name: [{ type: Input }],
9057
+ size: [{ type: Input }],
9058
+ defaulfColor: [{ type: Input }],
9059
+ randomColor: [{ type: Input }],
9060
+ initials: [{ type: Input }],
9061
+ showBadge: [{ type: Input }]
9062
+ };
9063
+ if (false) {
9064
+ /** @type {?} */
9065
+ AvatarPhotoLibComponent.prototype.datalen;
9066
+ /** @type {?} */
9067
+ AvatarPhotoLibComponent.prototype.photoUrl;
9068
+ /** @type {?} */
9069
+ AvatarPhotoLibComponent.prototype.name;
9070
+ /** @type {?} */
9071
+ AvatarPhotoLibComponent.prototype.size;
9072
+ /** @type {?} */
9073
+ AvatarPhotoLibComponent.prototype.defaulfColor;
9074
+ /** @type {?} */
9075
+ AvatarPhotoLibComponent.prototype.randomColor;
9076
+ /** @type {?} */
9077
+ AvatarPhotoLibComponent.prototype.initials;
9078
+ /** @type {?} */
9079
+ AvatarPhotoLibComponent.prototype.showBadge;
9080
+ /** @type {?} */
9081
+ AvatarPhotoLibComponent.prototype.showInitials;
9082
+ /** @type {?} */
9083
+ AvatarPhotoLibComponent.prototype.circleColor;
9084
+ /** @type {?} */
9085
+ AvatarPhotoLibComponent.prototype.random;
9086
+ /**
9087
+ * @type {?}
9088
+ * @private
9089
+ */
9090
+ AvatarPhotoLibComponent.prototype.colors;
9091
+ /**
9092
+ * @type {?}
9093
+ * @private
9094
+ */
9095
+ AvatarPhotoLibComponent.prototype.randomcolors;
9096
+ }
9097
+
9098
+ /**
9099
+ * @fileoverview added by tsickle
9100
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9101
+ */
9102
+ class AvatarPhotoLibModule {
9103
+ }
9104
+ AvatarPhotoLibModule.decorators = [
9105
+ { type: NgModule, args: [{
9106
+ declarations: [AvatarPhotoLibComponent],
9107
+ imports: [
9108
+ CommonModule,
9109
+ RouterModule,
9110
+ MatButtonModule,
9111
+ MatIconModule,
9112
+ MatMenuModule,
9113
+ MatRippleModule,
9114
+ SbUiResolverModule,
9115
+ ],
9116
+ exports: [AvatarPhotoLibComponent],
9117
+ entryComponents: [AvatarPhotoLibComponent],
9118
+ },] }
9119
+ ];
9120
+
9121
+ /**
9122
+ * @fileoverview added by tsickle
9123
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9124
+ */
9125
+ class SlidersNgContentLibComponent extends WidgetBaseComponent {
9126
+ /**
9127
+ * @param {?} events
9128
+ * @param {?} valueSvc
9129
+ */
9130
+ constructor(events, valueSvc) {
9131
+ super();
9132
+ this.events = events;
9133
+ this.valueSvc = valueSvc;
9134
+ this.title = '';
9135
+ this.loadNgContentData = false;
9136
+ this.autoScroll = false;
9137
+ this.currentIndexValue = new EventEmitter();
9138
+ this.id = `banner_${Math.random()}`;
9139
+ this.defaultMenuSubscribe = null;
9140
+ this.isLtMedium$ = this.valueSvc.isLtMedium$;
9141
+ this.currentIndex = 0;
9142
+ this.slideInterval = null;
9143
+ this.isMobile = false;
9144
+ }
9145
+ /**
9146
+ * @return {?}
9147
+ */
9148
+ ngOnInit() {
9149
+ if (this.autoScroll) {
9150
+ this.reInitiateSlideInterval();
9151
+ }
9152
+ this.defaultMenuSubscribe = this.isLtMedium$.subscribe((/**
9153
+ * @param {?} isLtMedium
9154
+ * @return {?}
9155
+ */
9156
+ (isLtMedium) => {
9157
+ this.isMobile = isLtMedium;
9158
+ }));
9159
+ }
9160
+ /**
9161
+ * @return {?}
9162
+ */
9163
+ reInitiateSlideInterval() {
9164
+ if (this.widgetData && this.widgetData.length > 1) {
9165
+ try {
9166
+ if (this.slideInterval) {
9167
+ this.slideInterval.unsubscribe();
9168
+ }
9169
+ }
9170
+ catch (e) {
9171
+ }
9172
+ finally {
9173
+ this.slideInterval = interval(8000).subscribe((/**
9174
+ * @return {?}
9175
+ */
9176
+ () => {
9177
+ if (this.currentIndex === this.widgetData.length - 1) {
9178
+ this.currentIndex = 0;
9179
+ this.currentIndexValue.emit(this.currentIndex);
9180
+ }
9181
+ else {
9182
+ this.currentIndex += 1;
9183
+ this.currentIndexValue.emit(this.currentIndex);
9184
+ }
9185
+ }));
9186
+ }
9187
+ }
9188
+ }
9189
+ /**
9190
+ * @param {?} index
9191
+ * @return {?}
9192
+ */
9193
+ slideTo(index) {
9194
+ if (index >= 0 && index < this.widgetData.length) {
9195
+ this.currentIndex = index;
9196
+ this.currentIndexValue.emit(this.currentIndex);
9197
+ }
9198
+ else if (index === this.widgetData.length) {
9199
+ this.currentIndex = 0;
9200
+ this.currentIndexValue.emit(this.currentIndex);
9201
+ }
9202
+ else {
9203
+ this.currentIndex = this.widgetData.length + index;
9204
+ this.currentIndexValue.emit(this.currentIndex);
9205
+ }
9206
+ if (this.autoScroll) {
9207
+ this.reInitiateSlideInterval();
9208
+ }
9209
+ }
9210
+ /**
9211
+ * @return {?}
9212
+ */
9213
+ get isOpenInNewTab() {
9214
+ /** @type {?} */
9215
+ const currentData = this.widgetData[this.currentIndex];
9216
+ if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
9217
+ return true;
9218
+ }
9219
+ return false;
9220
+ }
9221
+ /**
9222
+ * @return {?}
9223
+ */
9224
+ openInNewTab() {
9225
+ /** @type {?} */
9226
+ const currentData = this.widgetData[this.currentIndex];
9227
+ if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {
9228
+ window.open(currentData.redirectUrl);
9229
+ }
9230
+ }
9231
+ /**
9232
+ * @param {?} bannerUrl
9233
+ * @return {?}
9234
+ */
9235
+ raiseTelemetry(bannerUrl) {
9236
+ this.openInNewTab();
9237
+ /** @type {?} */
9238
+ const path = window.location.pathname.replace('/', '');
9239
+ /** @type {?} */
9240
+ const url = path + window.location.search;
9241
+ this.events.raiseInteractTelemetry({
9242
+ type: 'click',
9243
+ subType: 'banner',
9244
+ }, {
9245
+ pageUrl: url,
9246
+ bannerRedirectUrl: bannerUrl,
9247
+ }, {
9248
+ pageIdExt: 'banner',
9249
+ module: WsEvents.EnumTelemetrymodules.CONTENT,
9250
+ });
9251
+ }
9252
+ /**
9253
+ * @return {?}
9254
+ */
9255
+ ngOnDestroy() {
9256
+ if (this.defaultMenuSubscribe) {
9257
+ this.defaultMenuSubscribe.unsubscribe();
9258
+ }
9259
+ }
9260
+ }
9261
+ SlidersNgContentLibComponent.decorators = [
9262
+ { type: Component, args: [{
9263
+ selector: 'sb-uic-sliders-ng-content',
9264
+ template: "<div class=\"banner-container {{isMobile? styleData?.responsive?.bannerMetaClass : styleData?.bannerMetaClass}}\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length > 1\" [style.height]=\"isMobile? styleData?.responsive?.customHeight : styleData?.customHeight\"\n [ngStyle]=\"{'border-radius': styleData?.borderRadius || '12px'}\">\n <ng-container *ngIf=\"!loadNgContentData\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"loadNgContentData\">\n <!-- <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\"> -->\n <ng-content select=\"[sliderbody]\"></ng-content>\n <!-- </div> -->\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n <ng-content select=\"[sliderMeta]\"></ng-content>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <div class=\"navigation {{isMobile? styleData?.responsive?.arrowsPlacement : styleData?.arrowsPlacement}}\" \n *ngIf=\"isMobile && styleData?.responsive?.navigationArrows !== 'hidden' || !isMobile && styleData?.navigationArrows !== 'hidden'\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </div>\n</div>\n<div class=\"banner-container-solo margin-top-s\" *ngIf=\"widgetData?.length == 1\">\n <img i18n-alt alt=\"Page Banner\" width=\"100%\" height=\"100%\" [src]=\"widgetData[0].banners\" wsUtilsImageResponsive class=\"banner-image-solo\" />\n</div>\n\n<!-- <ng-container *ngIf=\"!widgetData?.length\">\n <div class=\"slider default-slider h-full\">\n <div class=\"relative h-full\">\n <img class=\"h-full\" src=\"assets/icons/home/default-slider-image.svg\" alt=\"\">\n <div class=\"default-title rounded-full\">\n <p class=\"mat-h1\">{{title}}</p>\n </div>\n </div>\n </div>\n</ng-container> -->\n",
9265
+ styles: [".banner-container{min-height:243px;position:relative;margin:auto;padding-bottom:40px}.banner-container.inline-meta{padding-bottom:0!important}.banner-container.flat .banner .banner-image{border-radius:0!important}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,rgba(0,0,0,.25) 0,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 85%,rgba(0,0,0,.25) 100%);border-radius:inherit}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;border-radius:inherit;height:inherit}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:inherit;height:inherit}.banner-meta{text-align:center;z-index:2;padding:8px 12px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translateX(-50%);box-sizing:border-box}.banner-meta.left{left:0;transform:translateX(0)}.banner-meta.right{left:100%;transform:translateX(-100%)}.banner-meta.top-center{left:0;bottom:100%;transform:translateX(-100%)}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:8px;font-size:1.1rem}@media only screen and (max-width:599px){.banner-meta .banner-title{display:none}}.banner-meta .dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:6px;width:6px;margin:0 4px;background-color:rgba(0,0,0,.4);border-radius:50%;display:inline-block;transition:background-color .5s!important}@media only screen and (max-width:599px){.banner-meta .dots-container .dot{height:8px;width:8px;margin:0 4px}}.banner-meta .dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}@keyframes fade{from{opacity:.25}to{opacity:1}}.next,.prev{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-weight:700;background-color:#1b2133!important;border-radius:50%;z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;margin-top:-16px;justify-content:center}.prev{left:0;margin-left:-16px}.next{right:0;margin-right:-16px}.navigation.bottom-right .prev{left:unset;right:45px;bottom:-15px;top:unset}.navigation.bottom-right .next{left:unset;right:15px;bottom:-15px;top:unset}.navigation.bottom-center .prev{left:calc(50% - 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-center .next{left:calc(50% + 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-left .prev{left:15px;right:unset;bottom:-15px;top:unset}.navigation.bottom-left .next{left:60px;right:unset;bottom:-15px;top:unset}.navigation.middle-inline .prev{left:30px}.navigation.middle-inline .next{right:30px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.default-slider{height:100%;background:#d4e2fb}.default-slider .default-title{text-align:center;position:absolute;top:50%;left:0;right:0;margin:auto;transform:translateY(-50%);z-index:999;background:#e6efff;padding:32px;width:500px}.default-slider .default-title p{word-break:break-word;margin:0!important;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;text-transform:uppercase}@media screen and (max-width:768px){.default-slider{height:384px;width:100%}.default-slider .default-title{width:unset!important}}"]
9266
+ }] }
9267
+ ];
9268
+ /** @nocollapse */
9269
+ SlidersNgContentLibComponent.ctorParameters = () => [
9270
+ { type: EventService },
9271
+ { type: ValueService }
9272
+ ];
9273
+ SlidersNgContentLibComponent.propDecorators = {
9274
+ widgetData: [{ type: Input }],
9275
+ styleData: [{ type: Input }],
9276
+ title: [{ type: Input }],
9277
+ loadNgContentData: [{ type: Input }],
9278
+ autoScroll: [{ type: Input }],
9279
+ currentIndexValue: [{ type: Output }],
9280
+ id: [{ type: HostBinding, args: ['id',] }],
9281
+ currentIndex: [{ type: Input }]
9282
+ };
9283
+ if (false) {
9284
+ /** @type {?} */
9285
+ SlidersNgContentLibComponent.prototype.widgetData;
9286
+ /** @type {?} */
9287
+ SlidersNgContentLibComponent.prototype.styleData;
9288
+ /** @type {?} */
9289
+ SlidersNgContentLibComponent.prototype.title;
9290
+ /** @type {?} */
9291
+ SlidersNgContentLibComponent.prototype.loadNgContentData;
9292
+ /** @type {?} */
9293
+ SlidersNgContentLibComponent.prototype.autoScroll;
9294
+ /** @type {?} */
9295
+ SlidersNgContentLibComponent.prototype.currentIndexValue;
9296
+ /** @type {?} */
9297
+ SlidersNgContentLibComponent.prototype.id;
9298
+ /**
9299
+ * @type {?}
9300
+ * @private
9301
+ */
9302
+ SlidersNgContentLibComponent.prototype.defaultMenuSubscribe;
9303
+ /** @type {?} */
9304
+ SlidersNgContentLibComponent.prototype.isLtMedium$;
9305
+ /** @type {?} */
9306
+ SlidersNgContentLibComponent.prototype.currentIndex;
9307
+ /** @type {?} */
9308
+ SlidersNgContentLibComponent.prototype.slideInterval;
9309
+ /** @type {?} */
9310
+ SlidersNgContentLibComponent.prototype.isMobile;
9311
+ /**
9312
+ * @type {?}
9313
+ * @private
9314
+ */
9315
+ SlidersNgContentLibComponent.prototype.events;
9316
+ /**
9317
+ * @type {?}
9318
+ * @private
9319
+ */
9320
+ SlidersNgContentLibComponent.prototype.valueSvc;
9321
+ }
9322
+
9323
+ /**
9324
+ * @fileoverview added by tsickle
9325
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9326
+ */
9327
+ /* tslint:enable */
9328
+ class MyHammerConfig$1 extends HammerGestureConfig {
9329
+ /**
9330
+ * @param {?} element
9331
+ * @return {?}
9332
+ */
9333
+ buildHammer(element) {
9334
+ /** @type {?} */
9335
+ const mc = new Hammer(element, {
9336
+ touchAction: 'pan-y',
9337
+ });
9338
+ return mc;
9339
+ }
9340
+ }
9341
+ // tslint:disable-next-line: max-classes-per-file
9342
+ class SlidersNgContentLibModule {
9343
+ }
9344
+ SlidersNgContentLibModule.decorators = [
9345
+ { type: NgModule, args: [{
9346
+ declarations: [SlidersNgContentLibComponent],
9347
+ imports: [
9348
+ CommonModule,
9349
+ RouterModule,
9350
+ NavigationModule,
9351
+ ImageResponsiveModule,
9352
+ ],
9353
+ exports: [SlidersNgContentLibComponent],
9354
+ entryComponents: [SlidersNgContentLibComponent],
9355
+ providers: [
9356
+ {
9357
+ provide: HAMMER_GESTURE_CONFIG,
9358
+ useClass: MyHammerConfig$1,
9359
+ },
9360
+ ],
9361
+ },] }
9362
+ ];
9363
+
9364
+ /**
9365
+ * @fileoverview added by tsickle
9366
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9367
+ */
9368
+ class ScrollableItemModule {
9369
+ }
9370
+ ScrollableItemModule.decorators = [
9371
+ { type: NgModule, args: [{
9372
+ declarations: [ScrollableItemDirective],
9373
+ imports: [
9374
+ CommonModule,
9375
+ ],
9376
+ exports: [ScrollableItemDirective],
9377
+ },] }
9378
+ ];
9379
+
9380
+ /**
9381
+ * @fileoverview added by tsickle
9382
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9383
+ */
9384
+ class UserContentRatingLibModule {
9385
+ }
9386
+ UserContentRatingLibModule.decorators = [
9387
+ { type: NgModule, args: [{
9388
+ declarations: [UserContentRatingLibComponent],
9389
+ imports: [
9390
+ CommonModule,
9391
+ MatIconModule,
9392
+ MatChipsModule,
9393
+ SkeletonLoaderLibModule,
9394
+ SlidersLibModule,
9395
+ CardsModule,
9396
+ AvatarPhotoLibModule,
9397
+ SlidersNgContentLibModule,
9398
+ ScrollableItemModule
9399
+ ],
9400
+ exports: [UserContentRatingLibComponent],
9401
+ providers: [RatingService, UserContentRatingLibService],
9402
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
9403
+ },] }
9404
+ ];
9405
+
7979
9406
  /**
7980
9407
  * @fileoverview added by tsickle
7981
9408
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -7986,5 +9413,5 @@ CompetencyPassbookModule.decorators = [
7986
9413
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7987
9414
  */
7988
9415
 
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 };
9416
+ export { CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentStripWithTabsLibModule, DataPointsModule, HttpLoaderFactory, MyHammerConfig, ROOT_WIDGET_CONFIG, SlidersLibModule, UserContentRatingLibModule, 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, UserContentRatingLibComponent as ɵbl, ScrollableItemDirective as ɵbm, RatingService as ɵbn, UserContentRatingLibService as ɵbo, AvatarPhotoLibModule as ɵbp, AvatarPhotoLibComponent as ɵbq, MyHammerConfig$1 as ɵbr, SlidersNgContentLibModule as ɵbs, SlidersNgContentLibComponent as ɵbt, ScrollableItemModule as ɵbu, 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
9417
  //# sourceMappingURL=sunbird-cb-consumption.js.map