@sunbird-cb/consumption 0.0.11 → 0.0.12

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 (57) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +1180 -272
  2. package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-consumption.umd.min.js +2 -2
  4. package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/calender/calender.component.js +34 -0
  6. package/esm2015/lib/_common/calender/calender.module.js +21 -0
  7. package/esm2015/lib/_common/cards/card-user/card-user.component.js +5 -5
  8. package/esm2015/lib/_common/common-strip/common-strip.component.js +643 -0
  9. package/esm2015/lib/_common/common-strip/common-strip.model.js +216 -0
  10. package/esm2015/lib/_common/common-strip/common-strip.module.js +62 -0
  11. package/esm2015/lib/_common/competency-passbook/competency-passbook.component.js +3 -3
  12. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +7 -5
  13. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +1 -1
  14. package/esm2015/lib/_common/data-points/data-points.component.js +2 -2
  15. package/esm2015/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +63 -12
  16. package/esm2015/lib/_common/pills/pills.component.js +2 -2
  17. package/esm2015/lib/_common/sliders/sliders.component.js +3 -3
  18. package/esm2015/lib/_models/card-users.model.js +7 -5
  19. package/esm2015/lib/_services/common-methods.service.js +1 -1
  20. package/esm2015/lib/consumption.module.js +6 -2
  21. package/esm2015/public-api.js +3 -1
  22. package/esm2015/sunbird-cb-consumption.js +21 -19
  23. package/esm5/lib/_common/calender/calender.component.js +39 -0
  24. package/esm5/lib/_common/calender/calender.module.js +25 -0
  25. package/esm5/lib/_common/cards/card-user/card-user.component.js +5 -5
  26. package/esm5/lib/_common/common-strip/common-strip.component.js +757 -0
  27. package/esm5/lib/_common/common-strip/common-strip.model.js +216 -0
  28. package/esm5/lib/_common/common-strip/common-strip.module.js +66 -0
  29. package/esm5/lib/_common/competency-passbook/competency-passbook.component.js +3 -3
  30. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +7 -5
  31. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +1 -1
  32. package/esm5/lib/_common/data-points/data-points.component.js +2 -2
  33. package/esm5/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +60 -12
  34. package/esm5/lib/_common/pills/pills.component.js +2 -2
  35. package/esm5/lib/_common/sliders/sliders.component.js +3 -3
  36. package/esm5/lib/_models/card-users.model.js +7 -5
  37. package/esm5/lib/_services/common-methods.service.js +1 -1
  38. package/esm5/lib/consumption.module.js +6 -2
  39. package/esm5/public-api.js +3 -1
  40. package/esm5/sunbird-cb-consumption.js +21 -19
  41. package/fesm2015/sunbird-cb-consumption.js +974 -190
  42. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  43. package/fesm5/sunbird-cb-consumption.js +1157 -253
  44. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  45. package/lib/_common/calender/calender.component.d.ts +6 -0
  46. package/lib/_common/calender/calender.module.d.ts +2 -0
  47. package/lib/_common/common-strip/common-strip.component.d.ts +104 -0
  48. package/lib/_common/common-strip/common-strip.model.d.ts +141 -0
  49. package/lib/_common/common-strip/common-strip.module.d.ts +2 -0
  50. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts +8 -0
  51. package/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.d.ts +8 -6
  52. package/lib/_models/card-users.model.d.ts +5 -4
  53. package/lib/_services/common-methods.service.d.ts +3 -2
  54. package/package.json +1 -1
  55. package/public-api.d.ts +2 -0
  56. package/sunbird-cb-consumption.d.ts +19 -17
  57. package/sunbird-cb-consumption.metadata.json +1 -1
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { RouterModule, Router } 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
+ import { ValueService, ConfigurationsService as ConfigurationsService$1, WsEvents, LoggerService, EventService, UtilityService } from '@sunbird-cb/utils-v2';
6
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
8
  import { __awaiter } from 'tslib';
8
9
  import { WidgetBaseComponent, SbUiResolverModule } from '@sunbird-cb/resolver-v2';
9
10
  import { HttpClient, HttpHeaders } from '@angular/common/http';
10
- import { ConfigurationsService as ConfigurationsService$1, WsEvents, LoggerService, EventService, UtilityService, ValueService } from '@sunbird-cb/utils-v2';
11
11
  import { get, uniqBy, orderBy, camelCase } from 'lodash';
12
12
  import * as moment$1 from 'moment';
13
13
  import { duration, utc } from 'moment';
@@ -65,8 +65,13 @@ ConsumptionComponent.ctorParameters = () => [];
65
65
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
66
66
  */
67
67
  class HorizontalScrollerV2Component {
68
- constructor() {
68
+ /**
69
+ * @param {?} valueSvc
70
+ */
71
+ constructor(valueSvc) {
72
+ this.valueSvc = valueSvc;
69
73
  this.loadStatus = 'fetching';
74
+ this.id = '';
70
75
  this.onHover = false;
71
76
  this.sliderConfig = {
72
77
  showNavs: true,
@@ -81,6 +86,9 @@ class HorizontalScrollerV2Component {
81
86
  this.cardSubType = 'standard';
82
87
  this.bottomDotsArray = [];
83
88
  this.scrollObserver = null;
89
+ this.isMobile = false;
90
+ this.defaultMenuSubscribe = null;
91
+ this.isLtMedium$ = this.valueSvc.isLtMedium$;
84
92
  }
85
93
  /**
86
94
  * @return {?}
@@ -100,8 +108,20 @@ class HorizontalScrollerV2Component {
100
108
  this.updateNavigationBtnStatus((/** @type {?} */ (horizontalScrollElem
101
109
  .nativeElement)));
102
110
  }));
103
- this.getBottomDotsArray();
111
+ setTimeout((/**
112
+ * @return {?}
113
+ */
114
+ () => {
115
+ this.getBottomDotsArray();
116
+ }), 700);
104
117
  }
118
+ this.defaultMenuSubscribe = this.isLtMedium$.subscribe((/**
119
+ * @param {?} isLtMedium
120
+ * @return {?}
121
+ */
122
+ (isLtMedium) => {
123
+ this.isMobile = isLtMedium;
124
+ }));
105
125
  }
106
126
  /**
107
127
  * @return {?}
@@ -116,7 +136,12 @@ class HorizontalScrollerV2Component {
116
136
  .nativeElement)));
117
137
  }
118
138
  }));
119
- this.getBottomDotsArray();
139
+ setTimeout((/**
140
+ * @return {?}
141
+ */
142
+ () => {
143
+ this.getBottomDotsArray();
144
+ }), 700);
120
145
  }
121
146
  /**
122
147
  * @return {?}
@@ -125,6 +150,9 @@ class HorizontalScrollerV2Component {
125
150
  if (this.scrollObserver) {
126
151
  this.scrollObserver.unsubscribe();
127
152
  }
153
+ if (this.defaultMenuSubscribe) {
154
+ this.defaultMenuSubscribe.unsubscribe();
155
+ }
128
156
  }
129
157
  /**
130
158
  * @return {?}
@@ -169,7 +197,9 @@ class HorizontalScrollerV2Component {
169
197
  this.enablePrev = true;
170
198
  this.enableNext = true;
171
199
  if (elem.scrollLeft === 0) {
172
- this.enablePrev = false;
200
+ if (!this.sliderConfig.arrowsAlwaysOn) {
201
+ this.enablePrev = false;
202
+ }
173
203
  this.activeNav = 0;
174
204
  }
175
205
  if (elem.scrollWidth === Math.round(elem.clientWidth + elem.scrollLeft)) {
@@ -177,7 +207,9 @@ class HorizontalScrollerV2Component {
177
207
  this.loadNext.emit();
178
208
  }
179
209
  else {
180
- this.enableNext = false;
210
+ if (!this.sliderConfig.arrowsAlwaysOn) {
211
+ this.enableNext = false;
212
+ }
181
213
  if (this.bottomDotsArray.length) {
182
214
  this.activeNav = this.bottomDotsArray.length - 1;
183
215
  }
@@ -238,10 +270,9 @@ class HorizontalScrollerV2Component {
238
270
  ((document.getElementsByClassName(this.cardSubType) &&
239
271
  document.getElementsByClassName(this.cardSubType)[0] !== undefined)
240
272
  ? document.getElementsByClassName(this.cardSubType)[0].clientWidth : 245);
241
- if (document.getElementsByClassName('horizontal-scroll-container') &&
242
- document.getElementsByClassName('horizontal-scroll-container')[0]) {
273
+ if (document.getElementById(`${this.id}`)) {
243
274
  /** @type {?} */
244
- const scrollerWidth = document.getElementsByClassName('horizontal-scroll-container')[0].clientWidth;
275
+ const scrollerWidth = document.getElementById(`${this.id}`).clientWidth;
245
276
  /** @type {?} */
246
277
  const totalCardsLength = cardWidth * this.widgetsLength;
247
278
  if (totalCardsLength > scrollerWidth) {
@@ -274,14 +305,17 @@ class HorizontalScrollerV2Component {
274
305
  HorizontalScrollerV2Component.decorators = [
275
306
  { type: Component, args: [{
276
307
  selector: 'sb-uic-horizontal-scroller-v2',
277
- template: "\n<section class=\"horizontal-scroll-container h-full\" [ngClass]=\"{'px-4': sliderConfig.showNavs, 'mt-5':sliderConfig.cerificateCardMargin}\">\n <ng-container *ngIf=\"sliderConfig?.showNavs\">\n <button i18n-aria-label aria-label=\"back\" name=\"content-backward-button\" mat-mini-fab color=\"\" \n (click)=\"showPrev()\" class=\"prevBtn mat-elevation-z\" [hidden]=\"!enablePrev\"\n [ngClass]=\"{'prevBtnHover': onHover}\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <div name=\"horizontal-scroll-content-strip\" class=\"horizontal-scroll-content\" #horizontalScrollElem>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"sliderConfig?.showNavs\">\n <button i18n-aria-label aria-label=\"next\" name=\"content-forward-button\" mat-mini-fab (click)=\"showNext()\"\n color=\"\" class=\"nextBtn mat-elevation-z\" [ngClass]=\"{'nextBtnHover': onHover}\"\n [hidden]=\"!enableNext || loadStatus === 'fetching'\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n </ng-container>\n <!-- <div class=\"nextLoading\" *ngIf=\"loadStatus === 'fetching'\">\n <mat-spinner></mat-spinner>\n </div> --> \n</section>\n\n<div class=\"dots-container\" *ngIf=\"sliderConfig?.showDots\">\n <!-- <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" -->\n <span class=\"dot\" [ngClass]=\"{ active: j === activeNav }\" *ngFor=\"let slide of bottomDotsArray; let j = index\" (click)=\"slideTo(j)\"></span>\n</div>",
278
- styles: [".horizontal-scroll-container{position:relative;width:100%;width:inherit}.nextBtn,.nextLoading,.prevBtn{position:absolute;top:50%;transform:translateY(-50%);z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;justify-content:center}.nextBtn,.prevBtn{border-radius:50%;background-color:#1b2133!important;color:#fff!important}.border-radius-xs{border-radius:8px!important}.prevBtn{left:0}.nextBtn{right:0}.nextLoading{padding:0;right:0}.horizontal-scroll-content{overflow-y:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;height:100%;flex-wrap:nowrap;display:flex;align-items:stretch;-ms-overflow-style:none;scrollbar-width:none}.horizontal-scroll-content::-webkit-scrollbar{width:0;height:0}.dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.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}.dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}"]
308
+ template: "\n<section class=\"horizontal-scroll-container h-full\" [id]=\"id\"\n[ngClass]=\"{'px-4': sliderConfig.showNavs && sliderConfig.showNavsSpacing, 'mt-5':sliderConfig.cerificateCardMargin}\">\n <div name=\"horizontal-scroll-content-strip\" class=\"horizontal-scroll-content\" #horizontalScrollElem>\n <ng-content></ng-content>\n </div>\n <div class=\"navigation {{isMobile? sliderConfig?.responsive?.arrowsPlacement : sliderConfig?.arrowsPlacement}}\">\n <ng-container *ngIf=\"sliderConfig?.showNavs\">\n <button i18n-aria-label aria-label=\"back\" name=\"content-backward-button\" mat-mini-fab color=\"\" \n (click)=\"showPrev()\" class=\"prevBtn mat-elevation-z\" [hidden]=\"!enablePrev\"\n [ngClass]=\"{'prevBtnHover': onHover}\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"sliderConfig?.showNavs\">\n <button i18n-aria-label aria-label=\"next\" name=\"content-forward-button\" mat-mini-fab (click)=\"showNext()\"\n color=\"\" class=\"nextBtn mat-elevation-z\" [ngClass]=\"{'nextBtnHover': onHover}\"\n [hidden]=\"!enableNext || loadStatus === 'fetching'\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n </ng-container>\n </div>\n <!-- <div class=\"nextLoading\" *ngIf=\"loadStatus === 'fetching'\">\n <mat-spinner></mat-spinner>\n </div> --> \n</section>\n\n<div class=\"dots-container {{isMobile? sliderConfig?.responsive?.dotsAlign : sliderConfig?.dotsAlign}}\" \n*ngIf=\"(isMobile && sliderConfig?.responsive?.showDots) || (!isMobile && sliderConfig?.showDots)\">\n <!-- <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" -->\n <span class=\"dot\" [ngClass]=\"{ active: j === activeNav }\" *ngFor=\"let slide of bottomDotsArray; let j = index\" (click)=\"slideTo(j)\"></span>\n</div>",
309
+ styles: [".horizontal-scroll-container{position:relative;width:100%;width:inherit}.nextBtn,.nextLoading,.prevBtn{position:absolute;top:50%;transform:translateY(-50%);z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;justify-content:center}.nextBtn,.prevBtn{border-radius:50%;background-color:#1b2133!important;color:#fff!important}.border-radius-xs{border-radius:8px!important}.prevBtn{left:0}.nextBtn{right:0}.nextLoading{padding:0;right:0}.navigation.bottom-right .prevBtn{left:unset;right:56px;bottom:-44px;top:unset}.navigation.bottom-right .nextBtn{left:unset;right:8px;bottom:-44px;top:unset}.navigation.bottom-center .prevBtn{left:calc(50% - 24px);right:unset;bottom:-44px;top:unset}.navigation.bottom-center .nextBtn{left:calc(50% + 24px);right:unset;bottom:-44px;top:unset}.navigation.bottom-left .prevBtn{left:8px;right:unset;bottom:-44px;top:unset}.navigation.bottom-left .nextBtn{left:62px;right:unset;bottom:-44px;top:unset}.navigation.middle-inline .prevBtn{left:30px}.navigation.middle-inline .nextBtn{right:30px}.horizontal-scroll-content{overflow-y:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;height:100%;flex-wrap:nowrap;display:flex;align-items:stretch;-ms-overflow-style:none;scrollbar-width:none}.horizontal-scroll-content::-webkit-scrollbar{width:0;height:0}.dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.dots-container.left{align-items:start;justify-content:start}.dots-container.right{align-items:end;justify-content:end}.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}.dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}"]
279
310
  }] }
280
311
  ];
281
312
  /** @nocollapse */
282
- HorizontalScrollerV2Component.ctorParameters = () => [];
313
+ HorizontalScrollerV2Component.ctorParameters = () => [
314
+ { type: ValueService }
315
+ ];
283
316
  HorizontalScrollerV2Component.propDecorators = {
284
317
  loadStatus: [{ type: Input }],
318
+ id: [{ type: Input }],
285
319
  onHover: [{ type: Input }],
286
320
  sliderConfig: [{ type: Input }],
287
321
  loadNext: [{ type: Output }],
@@ -294,6 +328,8 @@ if (false) {
294
328
  /** @type {?} */
295
329
  HorizontalScrollerV2Component.prototype.loadStatus;
296
330
  /** @type {?} */
331
+ HorizontalScrollerV2Component.prototype.id;
332
+ /** @type {?} */
297
333
  HorizontalScrollerV2Component.prototype.onHover;
298
334
  /** @type {?} */
299
335
  HorizontalScrollerV2Component.prototype.sliderConfig;
@@ -322,6 +358,20 @@ if (false) {
322
358
  * @private
323
359
  */
324
360
  HorizontalScrollerV2Component.prototype.scrollObserver;
361
+ /** @type {?} */
362
+ HorizontalScrollerV2Component.prototype.isMobile;
363
+ /**
364
+ * @type {?}
365
+ * @private
366
+ */
367
+ HorizontalScrollerV2Component.prototype.defaultMenuSubscribe;
368
+ /** @type {?} */
369
+ HorizontalScrollerV2Component.prototype.isLtMedium$;
370
+ /**
371
+ * @type {?}
372
+ * @private
373
+ */
374
+ HorizontalScrollerV2Component.prototype.valueSvc;
325
375
  }
326
376
 
327
377
  /**
@@ -4662,12 +4712,11 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4662
4712
  strip.request.featureContent.request &&
4663
4713
  strip.request.featureContent.request.filters) {
4664
4714
  originalFilters = strip.request.featureContent.request.filters;
4665
- strip.request.featureContent.request.filters = this.checkForDateFilters(strip.request.featureContent.request.filters);
4666
- strip.request.featureContent.request.filters = this.getFiltersFromArray(strip.request.featureContent.request.filters);
4715
+ strip.request.featureContent.request.filters = this.postMethodFilters(strip.request.featureContent.request.filters);
4667
4716
  }
4668
4717
  try {
4669
4718
  /** @type {?} */
4670
- const response = yield this.postRequestMethod(strip, strip.request.featureContent.request, strip.request.featureContent.path, calculateParentStatus);
4719
+ const response = yield this.postRequestMethod(strip, strip.request.featureContent, strip.request.apiUrl, calculateParentStatus);
4671
4720
  // console.log('calling after - response, ', response)
4672
4721
  if (response && response.results) {
4673
4722
  // console.log('calling after-- ')
@@ -4676,13 +4725,16 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4676
4725
  }
4677
4726
  else {
4678
4727
  this.processStrip(strip, [], 'error', calculateParentStatus, null);
4728
+ this.emptyResponse.emit(true);
4679
4729
  }
4680
4730
  }
4681
4731
  else {
4682
4732
  this.processStrip(strip, [], 'error', calculateParentStatus, null);
4733
+ this.emptyResponse.emit(true);
4683
4734
  }
4684
4735
  }
4685
4736
  catch (error) {
4737
+ this.emptyResponse.emit(true);
4686
4738
  // Handle errors
4687
4739
  // console.error('Error:', error);
4688
4740
  }
@@ -4758,7 +4810,7 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
4758
4810
  ContentStripWithTabsLibComponent.decorators = [
4759
4811
  { type: Component, args: [{
4760
4812
  selector: 'sb-uic-content-strip-with-tabs',
4761
- 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\"\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 [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 [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 [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>",
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>",
4762
4814
  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}"]
4763
4815
  }] }
4764
4816
  ];
@@ -5052,8 +5104,8 @@ class SlidersLibComponent extends WidgetBaseComponent {
5052
5104
  SlidersLibComponent.decorators = [
5053
5105
  { type: Component, args: [{
5054
5106
  selector: 'sb-uic-sliders',
5055
- 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 <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\" 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 : './'\" 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 <div class=\"navigation {{isMobile? styleData?.responsive?.arrowsPlacement : styleData?.bannerMetaAlign}}\" \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<!-- <div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [queryParams]=\"widgetData[currentIndex].queryParams || {}\"\n [routerLink]=\"!isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\" class=\"banner-overlay\"\n [ngClass]=\"{ 'cursor-auto': !widgetData[currentIndex].redirectUrl }\"></a>\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 <div class=\"banner-meta\">\n <a [routerLink]=\"!isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\" 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 <button *ngIf=\"widgetData?.length > 1\" class=\"prev\" aria-label=\"Previous slide\" (click)=\"slideTo(currentIndex - 1)\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\">&#10094;</a>\n </button>\n <button *ngIf=\"widgetData?.length > 1\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\" aria-label=\"Next slide\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\">&#10095;</a>\n </button>\n\n</div> -->\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\">\n <p>{{title}}</p>\n </div>\n </div>\n </div>\n</ng-container>\n",
5056
- styles: [".banner-container{min-height:243px;position:relative;margin:auto;padding-bottom:40px}.banner-container.inline-meta{padding-bottom:0!important}.banner-container.flat .banner .banner-image{border-radius:0!important}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,rgba(0,0,0,.25) 0,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 85%,rgba(0,0,0,.25) 100%);border-radius:inherit}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;border-radius:inherit;height:inherit}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:inherit;height:inherit}.banner-meta{text-align:center;z-index:2;padding:8px 12px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translateX(-50%);box-sizing:border-box}.banner-meta.left{left:0;transform:translateX(0)}.banner-meta.right{left:100%;transform:translateX(-100%)}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:8px;font-size:1.1rem}@media only screen and (max-width:599px){.banner-meta .banner-title{display:none}}.banner-meta .dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:6px;width:6px;margin:0 4px;background-color:rgba(0,0,0,.4);border-radius:50%;display:inline-block;transition:background-color .5s!important}@media only screen and (max-width:599px){.banner-meta .dots-container .dot{height:8px;width:8px;margin:0 4px}}.banner-meta .dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}@keyframes fade{from{opacity:.25}to{opacity:1}}.next,.prev{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-weight:700;background-color:#1b2133!important;border-radius:50%;z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;margin-top:-16px;justify-content:center}.prev{left:0;margin-left:-16px}.next{right:0;margin-right:-16px}.navigation.bottom-right .prev{left:unset;right:45px;bottom:-15px;top:unset}.navigation.bottom-right .next{left:unset;right:15px;bottom:-15px;top:unset}.navigation.bottom-center .prev{left:calc(50% - 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-center .next{left:calc(50% + 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-left .prev{left:15px;right:unset;bottom:-15px;top:unset}.navigation.bottom-left .next{left:60px;right:unset;bottom:-15px;top:unset}.navigation.middle-inline .prev{left:30px}.navigation.middle-inline .next{right:30px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.default-slider{height:100%;background:#d4e2fb}.default-slider .default-title{text-align:center;position:absolute;top:50%;left:0;right:0;margin:auto;transform:translateY(-50%);z-index:999;background:#e6efff;width:-moz-fit-content;width:fit-content;padding:16px;gap:8px;border-radius:40px}.default-slider .default-title p{margin:0!important}"]
5107
+ 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 <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 <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<!-- <div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [queryParams]=\"widgetData[currentIndex].queryParams || {}\"\n [routerLink]=\"!isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\" class=\"banner-overlay\"\n [ngClass]=\"{ 'cursor-auto': !widgetData[currentIndex].redirectUrl }\"></a>\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 <div class=\"banner-meta\">\n <a [routerLink]=\"!isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\" 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 <button *ngIf=\"widgetData?.length > 1\" class=\"prev\" aria-label=\"Previous slide\" (click)=\"slideTo(currentIndex - 1)\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\">&#10094;</a>\n </button>\n <button *ngIf=\"widgetData?.length > 1\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\" aria-label=\"Next slide\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\">&#10095;</a>\n </button>\n\n</div> -->\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",
5108
+ styles: [".banner-container{min-height:243px;position:relative;margin:auto;padding-bottom:40px}.banner-container.inline-meta{padding-bottom:0!important}.banner-container.flat .banner .banner-image{border-radius:0!important}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,rgba(0,0,0,.25) 0,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 85%,rgba(0,0,0,.25) 100%);border-radius:inherit}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;border-radius:inherit;height:inherit}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:inherit;height:inherit}.banner-meta{text-align:center;z-index:2;padding:8px 12px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translateX(-50%);box-sizing:border-box}.banner-meta.left{left:0;transform:translateX(0)}.banner-meta.right{left:100%;transform:translateX(-100%)}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:8px;font-size:1.1rem}@media only screen and (max-width:599px){.banner-meta .banner-title{display:none}}.banner-meta .dots-container{padding:8px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:6px;width:6px;margin:0 4px;background-color:rgba(0,0,0,.4);border-radius:50%;display:inline-block;transition:background-color .5s!important}@media only screen and (max-width:599px){.banner-meta .dots-container .dot{height:8px;width:8px;margin:0 4px}}.banner-meta .dots-container .dot.active{border-radius:4px;background-color:#f3962f;width:16px}@keyframes fade{from{opacity:.25}to{opacity:1}}.next,.prev{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-weight:700;background-color:#1b2133!important;border-radius:50%;z-index:999;height:32px!important;width:32px!important;display:flex;align-items:center;margin-top:-16px;justify-content:center}.prev{left:0;margin-left:-16px}.next{right:0;margin-right:-16px}.navigation.bottom-right .prev{left:unset;right:45px;bottom:-15px;top:unset}.navigation.bottom-right .next{left:unset;right:15px;bottom:-15px;top:unset}.navigation.bottom-center .prev{left:calc(50% - 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-center .next{left:calc(50% + 20px);right:unset;bottom:-15px;top:unset}.navigation.bottom-left .prev{left:15px;right:unset;bottom:-15px;top:unset}.navigation.bottom-left .next{left:60px;right:unset;bottom:-15px;top:unset}.navigation.middle-inline .prev{left:30px}.navigation.middle-inline .next{right:30px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.default-slider{height:100%;background:#d4e2fb}.default-slider .default-title{text-align:center;position:absolute;top:50%;left:0;right:0;margin:auto;transform:translateY(-50%);z-index:999;background:#e6efff;padding:32px;width:500px}.default-slider .default-title p{word-break:break-word;margin:0!important;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;text-transform:uppercase}@media screen and (max-width:768px){.default-slider{height:384px;width:100%}.default-slider .default-title{width:unset!important}}"]
5057
5109
  }] }
5058
5110
  ];
5059
5111
  /** @nocollapse */
@@ -5469,7 +5521,7 @@ class DataPointsComponent {
5469
5521
  DataPointsComponent.decorators = [
5470
5522
  { type: Component, args: [{
5471
5523
  selector: 'sb-uic-data-points',
5472
- 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: '1.1-2'}}</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>",
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>",
5473
5525
  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}}"]
5474
5526
  }] }
5475
5527
  ];
@@ -5584,139 +5636,929 @@ DataPointsModule.decorators = [
5584
5636
  * @fileoverview added by tsickle
5585
5637
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5586
5638
  */
5587
- class ConsumptionModule {
5639
+ class CalenderComponent {
5640
+ constructor() {
5641
+ this.toDay = new Date();
5642
+ }
5643
+ /**
5644
+ * @return {?}
5645
+ */
5646
+ ngOnInit() {
5647
+ console.log("data ===== ", this.objectData);
5648
+ console.log("toDay ", this.toDay);
5649
+ }
5588
5650
  }
5589
- ConsumptionModule.decorators = [
5590
- { type: NgModule, args: [{
5591
- declarations: [ConsumptionComponent],
5592
- imports: [
5593
- ContentStripWithTabsLibModule,
5594
- SlidersLibModule
5595
- ],
5596
- exports: [ConsumptionComponent,
5597
- ContentStripWithTabsLibModule,
5598
- SlidersLibModule,
5599
- DataPointsModule
5600
- ],
5601
- },] }
5651
+ CalenderComponent.decorators = [
5652
+ { type: Component, args: [{
5653
+ 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}"]
5656
+ }] }
5602
5657
  ];
5658
+ CalenderComponent.propDecorators = {
5659
+ objectData: [{ type: Input }]
5660
+ };
5661
+ if (false) {
5662
+ /** @type {?} */
5663
+ CalenderComponent.prototype.objectData;
5664
+ /** @type {?} */
5665
+ CalenderComponent.prototype.toDay;
5666
+ }
5603
5667
 
5604
5668
  /**
5605
5669
  * @fileoverview added by tsickle
5606
5670
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5607
5671
  */
5608
- /** @type {?} */
5609
- const ROOT_WIDGET_CONFIG = {
5610
- card: {
5611
- _type: 'cardLib',
5612
- cardResource: 'cardContentLib'
5613
- },
5614
- };
5672
+ class CalenderModule {
5673
+ }
5674
+ CalenderModule.decorators = [
5675
+ { type: NgModule, args: [{
5676
+ imports: [
5677
+ CommonModule,
5678
+ MatIconModule,
5679
+ ],
5680
+ declarations: [CalenderComponent],
5681
+ exports: [CalenderComponent],
5682
+ },] }
5683
+ ];
5615
5684
 
5616
5685
  /**
5617
5686
  * @fileoverview added by tsickle
5618
5687
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5619
5688
  */
5620
- var NsCardContent$1;
5621
- (function (NsCardContent) {
5689
+ class CommonMethodsService {
5690
+ constructor() { }
5622
5691
  /**
5623
- * @record
5692
+ * @param {?} contents
5693
+ * @param {?} strip
5694
+ * @return {?}
5624
5695
  */
5625
- function ICard() { }
5626
- NsCardContent.ICard = ICard;
5627
- if (false) {
5628
- /** @type {?} */
5629
- ICard.prototype.content;
5630
- /** @type {?} */
5631
- ICard.prototype.cardSubType;
5632
- /** @type {?} */
5633
- ICard.prototype.context;
5634
- /** @type {?|undefined} */
5635
- ICard.prototype.intranetMode;
5636
- /** @type {?|undefined} */
5637
- ICard.prototype.deletedMode;
5638
- /** @type {?|undefined} */
5639
- ICard.prototype.likes;
5640
- /** @type {?|undefined} */
5641
- ICard.prototype.contentTags;
5642
- /** @type {?} */
5643
- ICard.prototype.stateData;
5644
- /** @type {?|undefined} */
5645
- ICard.prototype.cardCustomeClass;
5696
+ transformContentsToWidgets(contents, strip) {
5697
+ return (contents || []).map((/**
5698
+ * @param {?} content
5699
+ * @param {?} idx
5700
+ * @return {?}
5701
+ */
5702
+ (content, idx) => (content ? {
5703
+ widgetType: 'cardLib',
5704
+ widgetSubType: 'cardContentLib',
5705
+ widgetHostClass: 'mb-2',
5706
+ widgetData: Object.assign({ content }, (content.batch && { batch: content.batch }), { cardSubType: strip.stripConfig && strip.stripConfig.cardSubType, cardCustomeClass: strip.customeClass ? strip.customeClass : '', context: { pageSection: strip.key, position: idx }, intranetMode: strip.stripConfig && strip.stripConfig.intranetMode, deletedMode: strip.stripConfig && strip.stripConfig.deletedMode, contentTags: strip.stripConfig && strip.stripConfig.contentTags }),
5707
+ } : {
5708
+ widgetType: 'card',
5709
+ widgetSubType: 'cardContent',
5710
+ widgetHostClass: 'mb-2',
5711
+ widgetData: {},
5712
+ })));
5646
5713
  }
5647
5714
  /**
5648
- * @record
5715
+ * @param {?} strip
5716
+ * @return {?}
5649
5717
  */
5650
- function IContentTags() { }
5651
- NsCardContent.IContentTags = IContentTags;
5652
- if (false) {
5653
- /** @type {?|undefined} */
5654
- IContentTags.prototype.daysSpan;
5655
- /** @type {?|undefined} */
5656
- IContentTags.prototype.excludeContentType;
5657
- /** @type {?|undefined} */
5658
- IContentTags.prototype.excludeMimeType;
5659
- /** @type {?} */
5660
- IContentTags.prototype.tag;
5661
- /** @type {?|undefined} */
5662
- IContentTags.prototype.criteriaField;
5718
+ transformSkeletonToWidgets(strip) {
5719
+ return [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10].map((/**
5720
+ * @param {?} _content
5721
+ * @return {?}
5722
+ */
5723
+ _content => ({
5724
+ widgetType: 'cardLib',
5725
+ widgetSubType: 'cardContentLib',
5726
+ widgetHostClass: 'mb-2',
5727
+ widgetData: {
5728
+ cardSubType: strip.loaderConfig && strip.loaderConfig.cardSubType || 'card-standard-skeleton',
5729
+ cardCustomeClass: strip.customeClass ? strip.customeClass : '',
5730
+ },
5731
+ })));
5663
5732
  }
5664
- let EContentStatus;
5665
- (function (EContentStatus) {
5666
- EContentStatus["LIVE"] = "Live";
5667
- EContentStatus["EXPIRED"] = "Expired";
5668
- EContentStatus["DELETED"] = "Deleted";
5669
- EContentStatus["MARK_FOR_DELETION"] = "MarkedForDeletion";
5670
- })(EContentStatus = NsCardContent.EContentStatus || (NsCardContent.EContentStatus = {}));
5671
- let ACBPConst;
5672
- (function (ACBPConst) {
5673
- ACBPConst["UPCOMING"] = "upcoming";
5674
- ACBPConst["ALL"] = "All";
5675
- ACBPConst["OVERDUE"] = "overdue";
5676
- ACBPConst["SUCCESS"] = "success";
5677
- })(ACBPConst = NsCardContent.ACBPConst || (NsCardContent.ACBPConst = {}));
5678
- let IGOTConst;
5679
- (function (IGOTConst) {
5680
- IGOTConst["COMPETENCIES"] = "competencies_v5";
5681
- IGOTConst["RETIRED"] = "Retired";
5682
- })(IGOTConst = NsCardContent.IGOTConst || (NsCardContent.IGOTConst = {}));
5683
- })(NsCardContent$1 || (NsCardContent$1 = {}));
5733
+ }
5734
+ CommonMethodsService.decorators = [
5735
+ { type: Injectable, args: [{
5736
+ providedIn: 'root'
5737
+ },] }
5738
+ ];
5739
+ /** @nocollapse */
5740
+ CommonMethodsService.ctorParameters = () => [];
5741
+ /** @nocollapse */ CommonMethodsService.ngInjectableDef = ɵɵdefineInjectable({ factory: function CommonMethodsService_Factory() { return new CommonMethodsService(); }, token: CommonMethodsService, providedIn: "root" });
5684
5742
 
5685
5743
  /**
5686
5744
  * @fileoverview added by tsickle
5687
5745
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5688
5746
  */
5689
- class CardsComponent extends WidgetBaseComponent {
5747
+ /**
5748
+ * @record
5749
+ */
5750
+ function IStripUnitCommonData() { }
5751
+ if (false) {
5752
+ /** @type {?} */
5753
+ IStripUnitCommonData.prototype.key;
5754
+ /** @type {?} */
5755
+ IStripUnitCommonData.prototype.canHideStrip;
5756
+ /** @type {?|undefined} */
5757
+ IStripUnitCommonData.prototype.mode;
5758
+ /** @type {?} */
5759
+ IStripUnitCommonData.prototype.showStrip;
5760
+ /** @type {?} */
5761
+ IStripUnitCommonData.prototype.disableTranslate;
5762
+ /** @type {?|undefined} */
5763
+ IStripUnitCommonData.prototype.widgets;
5764
+ /** @type {?} */
5765
+ IStripUnitCommonData.prototype.stripTitle;
5766
+ /** @type {?|undefined} */
5767
+ IStripUnitCommonData.prototype.stripTitleLink;
5768
+ /** @type {?|undefined} */
5769
+ IStripUnitCommonData.prototype.sliderConfig;
5770
+ /** @type {?} */
5771
+ IStripUnitCommonData.prototype.stripConfig;
5772
+ /** @type {?|undefined} */
5773
+ IStripUnitCommonData.prototype.tabs;
5774
+ /** @type {?|undefined} */
5775
+ IStripUnitCommonData.prototype.stripName;
5776
+ /** @type {?|undefined} */
5777
+ IStripUnitCommonData.prototype.stripLogo;
5778
+ /** @type {?|undefined} */
5779
+ IStripUnitCommonData.prototype.description;
5780
+ /** @type {?|undefined} */
5781
+ IStripUnitCommonData.prototype.stripInfo;
5782
+ /** @type {?|undefined} */
5783
+ IStripUnitCommonData.prototype.noDataWidget;
5784
+ /** @type {?|undefined} */
5785
+ IStripUnitCommonData.prototype.errorWidget;
5786
+ /** @type {?} */
5787
+ IStripUnitCommonData.prototype.showOnNoData;
5788
+ /** @type {?} */
5789
+ IStripUnitCommonData.prototype.showOnLoader;
5790
+ /** @type {?} */
5791
+ IStripUnitCommonData.prototype.showOnError;
5792
+ /** @type {?|undefined} */
5793
+ IStripUnitCommonData.prototype.loaderWidgets;
5794
+ /** @type {?|undefined} */
5795
+ IStripUnitCommonData.prototype.stripBackground;
5796
+ /** @type {?|undefined} */
5797
+ IStripUnitCommonData.prototype.secondaryHeading;
5798
+ /** @type {?} */
5799
+ IStripUnitCommonData.prototype.viewMoreUrl;
5800
+ }
5801
+ class CommonStripComponent extends WidgetBaseComponent {
5690
5802
  /**
5691
- * @param {?} utilitySvc
5803
+ * @param {?} environment
5804
+ * @param {?} contentSvc
5805
+ * @param {?} loggerSvc
5806
+ * @param {?} eventSvc
5692
5807
  * @param {?} configSvc
5693
- * @param {?} contSvc
5694
- * @param {?} router
5808
+ * @param {?} utilitySvc
5809
+ * @param {?} userSvc
5810
+ * @param {?} translate
5811
+ * @param {?} langtranslations
5812
+ * @param {?} commonMethodsSvc
5695
5813
  */
5696
- constructor(utilitySvc, configSvc, contSvc, router) {
5814
+ constructor(environment, contentSvc, loggerSvc, eventSvc, configSvc, utilitySvc, userSvc, translate, langtranslations, commonMethodsSvc) {
5697
5815
  super();
5698
- this.utilitySvc = utilitySvc;
5816
+ this.contentSvc = contentSvc;
5817
+ this.loggerSvc = loggerSvc;
5818
+ this.eventSvc = eventSvc;
5699
5819
  this.configSvc = configSvc;
5700
- this.contSvc = contSvc;
5701
- this.router = router;
5702
- this.isIntranetAllowedSettings = false;
5703
- }
5704
- /**
5705
- * @return {?}
5706
- */
5707
- ngOnInit() {
5708
- }
5709
- /**
5710
- * @return {?}
5711
- */
5712
- get isLiveOrMarkForDeletion() {
5713
- if (!this.widgetData.content.status ||
5714
- this.widgetData.content.status === 'Live' ||
5715
- this.widgetData.content.status === 'MarkedForDeletion') {
5716
- return true;
5717
- }
5718
- return false;
5719
- }
5820
+ this.utilitySvc = utilitySvc;
5821
+ this.userSvc = userSvc;
5822
+ this.translate = translate;
5823
+ this.langtranslations = langtranslations;
5824
+ this.commonMethodsSvc = commonMethodsSvc;
5825
+ this.id = `ws-strip-miltiple_${Math.random()}`;
5826
+ this.stripsResultDataMap = {};
5827
+ this.stripsKeyOrder = [];
5828
+ this.showAccordionData = true;
5829
+ this.showParentLoader = false;
5830
+ this.showParentError = false;
5831
+ this.showParentNoData = false;
5832
+ this.errorDataCount = 0;
5833
+ this.noDataCount = 0;
5834
+ this.successDataCount = 0;
5835
+ this.contentAvailable = true;
5836
+ this.baseUrl = this.configSvc.sitePath || '';
5837
+ this.veifiedKarmayogi = false;
5838
+ this.changeEventSubscription = null;
5839
+ this.defaultMaxWidgets = 12;
5840
+ this.todaysEvents = [];
5841
+ this.environment = environment;
5842
+ }
5843
+ /**
5844
+ * @return {?}
5845
+ */
5846
+ ngOnInit() {
5847
+ // const url = window.location.href
5848
+ this.initData();
5849
+ }
5850
+ /**
5851
+ * @return {?}
5852
+ */
5853
+ ngOnDestroy() {
5854
+ if (this.changeEventSubscription) {
5855
+ this.changeEventSubscription.unsubscribe();
5856
+ }
5857
+ }
5858
+ /**
5859
+ * @param {?} key
5860
+ * @return {?}
5861
+ */
5862
+ showAccordion(key) {
5863
+ if (this.utilitySvc.isMobile && this.stripsResultDataMap[key].mode === 'accordion') {
5864
+ return this.showAccordionData;
5865
+ }
5866
+ return true;
5867
+ }
5868
+ /**
5869
+ * @param {?} key
5870
+ * @return {?}
5871
+ */
5872
+ setHiddenForStrip(key) {
5873
+ this.stripsResultDataMap[key].showStrip = false;
5874
+ sessionStorage.setItem(`cstrip_${key}`, '1');
5875
+ }
5876
+ /**
5877
+ * @private
5878
+ * @param {?} key
5879
+ * @return {?}
5880
+ */
5881
+ getIfStripHidden(key) {
5882
+ /** @type {?} */
5883
+ const storageItem = sessionStorage.getItem(`cstrip_${key}`);
5884
+ return Boolean(storageItem !== '1');
5885
+ }
5886
+ /**
5887
+ * @private
5888
+ * @return {?}
5889
+ */
5890
+ initData() {
5891
+ this.stripsKeyOrder = this.widgetData && this.widgetData.strips && this.widgetData.strips.map((/**
5892
+ * @param {?} strip
5893
+ * @return {?}
5894
+ */
5895
+ strip => strip.key)) || [];
5896
+ if (this.widgetData.loader && this.widgetData.strips.length) {
5897
+ this.showParentLoader = true;
5898
+ }
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);
5908
+ }
5909
+ else {
5910
+ this.processStrip(strip, [], 'done', true, null);
5911
+ }
5912
+ }
5913
+ }
5914
+ // Subscription for changes
5915
+ /** @type {?} */
5916
+ const keyAndEvent = this.widgetData.strips
5917
+ .map((/**
5918
+ * @param {?} strip
5919
+ * @return {?}
5920
+ */
5921
+ strip => ({
5922
+ key: strip.key,
5923
+ type: (strip.refreshEvent && strip.refreshEvent.eventType) || '',
5924
+ from: (strip.refreshEvent && strip.refreshEvent.from.toString()) || '',
5925
+ })))
5926
+ .filter((/**
5927
+ * @param {?} __0
5928
+ * @return {?}
5929
+ */
5930
+ ({ key, type, from }) => key && type && from));
5931
+ /** @type {?} */
5932
+ const eventTypeSet = new Set(keyAndEvent.map((/**
5933
+ * @param {?} e
5934
+ * @return {?}
5935
+ */
5936
+ e => e.type)));
5937
+ this.changeEventSubscription = this.eventSvc.events$
5938
+ .pipe(filter((/**
5939
+ * @param {?} event
5940
+ * @return {?}
5941
+ */
5942
+ event => eventTypeSet.has(event.eventType))))
5943
+ .subscribe((/**
5944
+ * @param {?} event
5945
+ * @return {?}
5946
+ */
5947
+ event => {
5948
+ keyAndEvent
5949
+ .filter((/**
5950
+ * @param {?} e
5951
+ * @return {?}
5952
+ */
5953
+ e => e.type === event.eventType && e.from === event.from))
5954
+ .map((/**
5955
+ * @param {?} e
5956
+ * @return {?}
5957
+ */
5958
+ e => e.key))
5959
+ .forEach((/**
5960
+ * @param {?} k
5961
+ * @return {?}
5962
+ */
5963
+ k => this.fetchStripFromKey(k, false)));
5964
+ }));
5965
+ }
5966
+ /**
5967
+ * @private
5968
+ * @param {?} key
5969
+ * @param {?=} calculateParentStatus
5970
+ * @return {?}
5971
+ */
5972
+ fetchStripFromKey(key, calculateParentStatus = true) {
5973
+ /** @type {?} */
5974
+ const stripData = this.widgetData.strips.find((/**
5975
+ * @param {?} strip
5976
+ * @return {?}
5977
+ */
5978
+ strip => strip.key === key));
5979
+ if (stripData) {
5980
+ // this.fetchStripFromRequestData(stripData, calculateParentStatus);
5981
+ }
5982
+ }
5983
+ /**
5984
+ * @param {?} data
5985
+ * @return {?}
5986
+ */
5987
+ isStripShowing(data) {
5988
+ /** @type {?} */
5989
+ let count = 0;
5990
+ if (data && data.key === this.environment.programStripKey && (!data.tabs || !data.tabs.length) &&
5991
+ data.stripTitle === this.environment.programStripName && data.widgets.length > 0) {
5992
+ data.widgets.forEach((/**
5993
+ * @param {?} key
5994
+ * @return {?}
5995
+ */
5996
+ (key) => {
5997
+ if (key && key.widgetData.content.primaryCategory === this.environment.programStripPrimaryCategory) {
5998
+ count = count + 1;
5999
+ }
6000
+ }));
6001
+ if (count > 0) {
6002
+ data.showStrip = true;
6003
+ }
6004
+ else {
6005
+ data.showStrip = false;
6006
+ }
6007
+ }
6008
+ return data.showStrip;
6009
+ }
6010
+ /**
6011
+ * @return {?}
6012
+ */
6013
+ get isMobile() {
6014
+ return this.utilitySvc.isMobile || false;
6015
+ }
6016
+ /**
6017
+ * @param {?} data
6018
+ * @return {?}
6019
+ */
6020
+ getdata(data) {
6021
+ if (data.stripInfo) {
6022
+ return data.stripInfo.widget;
6023
+ }
6024
+ return {};
6025
+ }
6026
+ /**
6027
+ * @param {?} wData
6028
+ * @param {?} data
6029
+ * @return {?}
6030
+ */
6031
+ checkCondition(wData, data) {
6032
+ if (wData.strips[0].stripConfig && wData.strips[0].stripConfig.hideShowAll) {
6033
+ return !wData.strips[0].stripConfig.hideShowAll;
6034
+ }
6035
+ return wData.strips[0].viewMoreUrl && data.widgets && data.widgets.length >= 4;
6036
+ }
6037
+ /**
6038
+ * @param {?} data
6039
+ * @return {?}
6040
+ */
6041
+ checkVisible(data) {
6042
+ return data.stripInfo && data.stripInfo.visibilityMode === 'visible';
6043
+ }
6044
+ /**
6045
+ * @param {?} data
6046
+ * @return {?}
6047
+ */
6048
+ getContineuLearningLenth(data) {
6049
+ return data.widgets ? data.widgets.length : 0;
6050
+ }
6051
+ /**
6052
+ * @param {?} data
6053
+ * @return {?}
6054
+ */
6055
+ getLength(data) {
6056
+ if (!data.tabs || !data.tabs.length) {
6057
+ return data.widgets ? data.widgets.length : 0;
6058
+ }
6059
+ {
6060
+ // if tabs are there check if each tab has widgets and get the tab with max widgets
6061
+ /** @type {?} */
6062
+ const tabWithMaxWidgets = data.tabs.reduce((/**
6063
+ * @param {?} prev
6064
+ * @param {?} current
6065
+ * @return {?}
6066
+ */
6067
+ (prev, current) => {
6068
+ if (!prev.widgets && !current.widgets) {
6069
+ return current;
6070
+ }
6071
+ if (prev.widgets && current.widgets) {
6072
+ return (prev.widgets.length > current.widgets.length) ? prev : current;
6073
+ }
6074
+ if (current.widgets && !prev.widgets) {
6075
+ return current;
6076
+ }
6077
+ if (!current.widgets && prev.widgets) {
6078
+ return prev;
6079
+ }
6080
+ return current;
6081
+ // return (prev.widgets && current.widgets && (prev.widgets.length > current.widgets.length) ) ? prev : current
6082
+ // tslint:disable-next-line: align
6083
+ }), data.tabs[0]);
6084
+ // if tabs has atleast 1 widgets then strip will show or else not
6085
+ return tabWithMaxWidgets.widgets ? tabWithMaxWidgets.widgets.length : 0;
6086
+ }
6087
+ }
6088
+ /**
6089
+ * @private
6090
+ * @param {?} strip
6091
+ * @param {?=} results
6092
+ * @param {?=} fetchStatus
6093
+ * @param {?=} calculateParentStatus
6094
+ * @param {?=} _viewMoreUrl
6095
+ * @param {?=} tabsResults
6096
+ * @return {?}
6097
+ */
6098
+ processStrip(strip, results = [], fetchStatus, calculateParentStatus = true, _viewMoreUrl, tabsResults) {
6099
+ return __awaiter(this, void 0, void 0, function* () {
6100
+ /** @type {?} */
6101
+ const stripData = {
6102
+ viewMoreUrl: strip.viewMoreUrl,
6103
+ key: strip.key,
6104
+ canHideStrip: Boolean(strip.canHideStrip),
6105
+ showStrip: this.getIfStripHidden(strip.key),
6106
+ noDataWidget: strip.noDataWidget,
6107
+ errorWidget: strip.errorWidget,
6108
+ stripInfo: strip.info,
6109
+ stripTitle: strip.title,
6110
+ stripTitleLink: strip.stripTitleLink,
6111
+ dataType: strip.dataType,
6112
+ dataKey: strip.dataKey,
6113
+ disableTranslate: strip.disableTranslate,
6114
+ sliderConfig: strip.sliderConfig,
6115
+ tabs: tabsResults ? tabsResults : strip.tabs,
6116
+ stripName: strip.name,
6117
+ mode: strip.mode,
6118
+ stripConfig: strip.stripConfig,
6119
+ stripBackground: strip.stripBackground,
6120
+ secondaryHeading: strip.secondaryHeading,
6121
+ loaderWidgets: strip.loaderWidgets || [],
6122
+ widgets: fetchStatus === 'done'
6123
+ ? [
6124
+ ...(strip.preWidgets || []).map((/**
6125
+ * @param {?} w
6126
+ * @return {?}
6127
+ */
6128
+ w => (Object.assign({}, w, { widgetHostClass: `mb-2 ${w.widgetHostClass}` })))),
6129
+ ...results,
6130
+ ...(strip.postWidgets || []).map((/**
6131
+ * @param {?} w
6132
+ * @return {?}
6133
+ */
6134
+ w => (Object.assign({}, w, { widgetHostClass: `mb-2 ${w.widgetHostClass}` })))),
6135
+ ]
6136
+ : [],
6137
+ showOnNoData: Boolean(strip.noDataWidget &&
6138
+ !((strip.preWidgets || []).length + results.length + (strip.postWidgets || []).length) &&
6139
+ fetchStatus === 'done'),
6140
+ showOnLoader: Boolean(strip.loader && fetchStatus === 'fetching'),
6141
+ showOnError: Boolean(strip.errorWidget && fetchStatus === 'error'),
6142
+ };
6143
+ // const stripData = this.stripsResultDataMap[strip.key]
6144
+ this.stripsResultDataMap = Object.assign({}, this.stripsResultDataMap, { [strip.key]: stripData });
6145
+ if (!tabsResults) {
6146
+ if (calculateParentStatus &&
6147
+ (fetchStatus === 'done' || fetchStatus === 'error') &&
6148
+ stripData.widgets) {
6149
+ this.checkParentStatus(fetchStatus, stripData.widgets.length);
6150
+ }
6151
+ if (calculateParentStatus && !(results && results.length > 0)) {
6152
+ this.contentAvailable = false;
6153
+ }
6154
+ else if (results && results.length > 0) {
6155
+ this.contentAvailable = true;
6156
+ }
6157
+ }
6158
+ else {
6159
+ this.contentAvailable = true;
6160
+ }
6161
+ });
6162
+ }
6163
+ /**
6164
+ * @param {?} stripsResultDataMap
6165
+ * @param {?} key
6166
+ * @return {?}
6167
+ */
6168
+ getSelectedIndex(stripsResultDataMap, key) {
6169
+ /** @type {?} */
6170
+ let returnValue = 0;
6171
+ if (key === 'cbpPlan') {
6172
+ if (stripsResultDataMap.tabs.length) {
6173
+ /** @type {?} */
6174
+ const data = stripsResultDataMap.tabs.filter((/**
6175
+ * @param {?} ele
6176
+ * @return {?}
6177
+ */
6178
+ (ele) => ele.value === 'upcoming'));
6179
+ returnValue = data[0].widgets && data[0].widgets.length > 0 ? 1 : 0;
6180
+ }
6181
+ }
6182
+ return returnValue;
6183
+ }
6184
+ /**
6185
+ * @private
6186
+ * @param {?} fetchStatus
6187
+ * @param {?} stripWidgetsCount
6188
+ * @return {?}
6189
+ */
6190
+ checkParentStatus(fetchStatus, stripWidgetsCount) {
6191
+ if (fetchStatus === 'done' && !stripWidgetsCount) {
6192
+ this.noDataCount += 1;
6193
+ }
6194
+ else if (fetchStatus === 'done' && stripWidgetsCount) {
6195
+ this.successDataCount += 1;
6196
+ }
6197
+ else if (fetchStatus === 'error') {
6198
+ this.errorDataCount += 1;
6199
+ }
6200
+ /** @type {?} */
6201
+ const settledCount = this.noDataCount + this.successDataCount + this.errorDataCount;
6202
+ /** @type {?} */
6203
+ const totalCount = this.widgetData.strips.length;
6204
+ if (this.successDataCount > 0 && settledCount < totalCount) {
6205
+ return;
6206
+ }
6207
+ this.showParentLoader = settledCount !== totalCount;
6208
+ this.showParentNoData =
6209
+ this.noDataCount > 0 && this.noDataCount + this.errorDataCount === totalCount;
6210
+ this.showParentError = this.errorDataCount === totalCount;
6211
+ }
6212
+ /**
6213
+ * @param {?} strip
6214
+ * @return {?}
6215
+ */
6216
+ checkForEmptyWidget(strip) {
6217
+ if (strip.request &&
6218
+ ((strip.request.api && Object.keys(strip.request.api).length) ||
6219
+ (strip.request.search && Object.keys(strip.request.search).length) ||
6220
+ (strip.request.searchRegionRecommendation &&
6221
+ Object.keys(strip.request.searchRegionRecommendation).length) ||
6222
+ (strip.request.searchV6 && Object.keys(strip.request.searchV6).length) ||
6223
+ (strip.request.enrollmentList && Object.keys(strip.request.enrollmentList).length) ||
6224
+ (strip.request.cbpList && Object.keys(strip.request.cbpList).length) ||
6225
+ (strip.request.trendingSearch && Object.keys(strip.request.trendingSearch).length))) {
6226
+ return true;
6227
+ }
6228
+ return false;
6229
+ }
6230
+ /**
6231
+ * @param {?} tabEvent
6232
+ * @param {?} stripMap
6233
+ * @param {?} stripKey
6234
+ * @return {?}
6235
+ */
6236
+ tabClicked(tabEvent, stripMap, stripKey) {
6237
+ }
6238
+ /**
6239
+ * @param {?} label
6240
+ * @param {?} type
6241
+ * @return {?}
6242
+ */
6243
+ translateLabels(label, type) {
6244
+ return this.langtranslations.translateLabel(label, type, '');
6245
+ }
6246
+ /**
6247
+ * @param {?} index
6248
+ * @param {?} item
6249
+ * @return {?}
6250
+ */
6251
+ identify(index, item) {
6252
+ if (index >= 0) { }
6253
+ return item;
6254
+ }
6255
+ /**
6256
+ * @param {?} index
6257
+ * @param {?} item
6258
+ * @return {?}
6259
+ */
6260
+ tracker(index, item) {
6261
+ if (index >= 0) { }
6262
+ return get(item, 'widgetData.content.identifier');
6263
+ }
6264
+ }
6265
+ CommonStripComponent.decorators = [
6266
+ { type: Component, args: [{
6267
+ selector: 'sb-uic-common-strip',
6268
+ 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 <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\"\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 [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 [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 class=\"\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [id]=\"key+'-scroller'\"\n [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>",
6269
+ 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}"]
6270
+ }] }
6271
+ ];
6272
+ /** @nocollapse */
6273
+ CommonStripComponent.ctorParameters = () => [
6274
+ { type: undefined, decorators: [{ type: Inject, args: ['environment',] }] },
6275
+ { type: WidgetContentService },
6276
+ { type: LoggerService },
6277
+ { type: EventService },
6278
+ { type: ConfigurationsService$1 },
6279
+ { type: UtilityService },
6280
+ { type: WidgetUserService },
6281
+ { type: TranslateService },
6282
+ { type: MultilingualTranslationsService },
6283
+ { type: CommonMethodsService }
6284
+ ];
6285
+ CommonStripComponent.propDecorators = {
6286
+ widgetData: [{ type: Input }],
6287
+ id: [{ type: HostBinding, args: ['id',] }]
6288
+ };
6289
+ if (false) {
6290
+ /** @type {?} */
6291
+ CommonStripComponent.prototype.widgetData;
6292
+ /** @type {?} */
6293
+ CommonStripComponent.prototype.id;
6294
+ /** @type {?} */
6295
+ CommonStripComponent.prototype.stripsResultDataMap;
6296
+ /** @type {?} */
6297
+ CommonStripComponent.prototype.stripsKeyOrder;
6298
+ /** @type {?} */
6299
+ CommonStripComponent.prototype.showAccordionData;
6300
+ /** @type {?} */
6301
+ CommonStripComponent.prototype.showParentLoader;
6302
+ /** @type {?} */
6303
+ CommonStripComponent.prototype.showParentError;
6304
+ /** @type {?} */
6305
+ CommonStripComponent.prototype.showParentNoData;
6306
+ /** @type {?} */
6307
+ CommonStripComponent.prototype.errorDataCount;
6308
+ /** @type {?} */
6309
+ CommonStripComponent.prototype.noDataCount;
6310
+ /** @type {?} */
6311
+ CommonStripComponent.prototype.successDataCount;
6312
+ /** @type {?} */
6313
+ CommonStripComponent.prototype.contentAvailable;
6314
+ /** @type {?} */
6315
+ CommonStripComponent.prototype.baseUrl;
6316
+ /** @type {?} */
6317
+ CommonStripComponent.prototype.veifiedKarmayogi;
6318
+ /** @type {?} */
6319
+ CommonStripComponent.prototype.environment;
6320
+ /** @type {?} */
6321
+ CommonStripComponent.prototype.changeEventSubscription;
6322
+ /** @type {?} */
6323
+ CommonStripComponent.prototype.defaultMaxWidgets;
6324
+ /** @type {?} */
6325
+ CommonStripComponent.prototype.enrollInterval;
6326
+ /** @type {?} */
6327
+ CommonStripComponent.prototype.todaysEvents;
6328
+ /**
6329
+ * @type {?}
6330
+ * @private
6331
+ */
6332
+ CommonStripComponent.prototype.contentSvc;
6333
+ /**
6334
+ * @type {?}
6335
+ * @private
6336
+ */
6337
+ CommonStripComponent.prototype.loggerSvc;
6338
+ /**
6339
+ * @type {?}
6340
+ * @private
6341
+ */
6342
+ CommonStripComponent.prototype.eventSvc;
6343
+ /**
6344
+ * @type {?}
6345
+ * @private
6346
+ */
6347
+ CommonStripComponent.prototype.configSvc;
6348
+ /** @type {?} */
6349
+ CommonStripComponent.prototype.utilitySvc;
6350
+ /**
6351
+ * @type {?}
6352
+ * @private
6353
+ */
6354
+ CommonStripComponent.prototype.userSvc;
6355
+ /**
6356
+ * @type {?}
6357
+ * @private
6358
+ */
6359
+ CommonStripComponent.prototype.translate;
6360
+ /**
6361
+ * @type {?}
6362
+ * @private
6363
+ */
6364
+ CommonStripComponent.prototype.langtranslations;
6365
+ /**
6366
+ * @type {?}
6367
+ * @private
6368
+ */
6369
+ CommonStripComponent.prototype.commonMethodsSvc;
6370
+ }
6371
+
6372
+ /**
6373
+ * @fileoverview added by tsickle
6374
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6375
+ */
6376
+ const ɵ0$2 = HttpLoaderFactory;
6377
+ class CommonStripModule {
6378
+ }
6379
+ CommonStripModule.decorators = [
6380
+ { type: NgModule, args: [{
6381
+ declarations: [CommonStripComponent],
6382
+ imports: [
6383
+ SbUiResolverModule,
6384
+ CommonModule,
6385
+ RouterModule,
6386
+ HorizontalScrollerV2Module,
6387
+ MatProgressSpinnerModule,
6388
+ MatToolbarModule,
6389
+ MatIconModule,
6390
+ MatButtonModule,
6391
+ MatTooltipModule,
6392
+ MatListModule,
6393
+ MatSidenavModule,
6394
+ MatCardModule,
6395
+ MatExpansionModule,
6396
+ MatRadioModule,
6397
+ MatChipsModule,
6398
+ MatInputModule,
6399
+ MatFormFieldModule,
6400
+ MatDialogModule,
6401
+ MatSnackBarModule,
6402
+ MatSelectModule,
6403
+ MatDatepickerModule,
6404
+ MatNativeDateModule,
6405
+ MatTableModule,
6406
+ MatCheckboxModule,
6407
+ MatProgressSpinnerModule,
6408
+ MatButtonToggleModule,
6409
+ MatTabsModule,
6410
+ MatAutocompleteModule,
6411
+ TranslateModule.forRoot({
6412
+ loader: {
6413
+ provide: TranslateLoader,
6414
+ useFactory: ɵ0$2,
6415
+ deps: [HttpClient],
6416
+ },
6417
+ }),
6418
+ ],
6419
+ exports: [CommonStripComponent]
6420
+ },] }
6421
+ ];
6422
+
6423
+ /**
6424
+ * @fileoverview added by tsickle
6425
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6426
+ */
6427
+ class ConsumptionModule {
6428
+ }
6429
+ ConsumptionModule.decorators = [
6430
+ { type: NgModule, args: [{
6431
+ declarations: [ConsumptionComponent],
6432
+ imports: [
6433
+ ContentStripWithTabsLibModule,
6434
+ SlidersLibModule
6435
+ ],
6436
+ exports: [ConsumptionComponent,
6437
+ ContentStripWithTabsLibModule,
6438
+ SlidersLibModule,
6439
+ DataPointsModule,
6440
+ CalenderModule,
6441
+ CommonStripModule
6442
+ ],
6443
+ },] }
6444
+ ];
6445
+
6446
+ /**
6447
+ * @fileoverview added by tsickle
6448
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6449
+ */
6450
+ /** @type {?} */
6451
+ const ROOT_WIDGET_CONFIG = {
6452
+ card: {
6453
+ _type: 'cardLib',
6454
+ cardResource: 'cardContentLib'
6455
+ },
6456
+ };
6457
+
6458
+ /**
6459
+ * @fileoverview added by tsickle
6460
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6461
+ */
6462
+ var NsCardContent$1;
6463
+ (function (NsCardContent) {
6464
+ /**
6465
+ * @record
6466
+ */
6467
+ function ICard() { }
6468
+ NsCardContent.ICard = ICard;
6469
+ if (false) {
6470
+ /** @type {?} */
6471
+ ICard.prototype.content;
6472
+ /** @type {?} */
6473
+ ICard.prototype.cardSubType;
6474
+ /** @type {?} */
6475
+ ICard.prototype.context;
6476
+ /** @type {?|undefined} */
6477
+ ICard.prototype.intranetMode;
6478
+ /** @type {?|undefined} */
6479
+ ICard.prototype.deletedMode;
6480
+ /** @type {?|undefined} */
6481
+ ICard.prototype.likes;
6482
+ /** @type {?|undefined} */
6483
+ ICard.prototype.contentTags;
6484
+ /** @type {?} */
6485
+ ICard.prototype.stateData;
6486
+ /** @type {?|undefined} */
6487
+ ICard.prototype.cardCustomeClass;
6488
+ }
6489
+ /**
6490
+ * @record
6491
+ */
6492
+ function IContentTags() { }
6493
+ NsCardContent.IContentTags = IContentTags;
6494
+ if (false) {
6495
+ /** @type {?|undefined} */
6496
+ IContentTags.prototype.daysSpan;
6497
+ /** @type {?|undefined} */
6498
+ IContentTags.prototype.excludeContentType;
6499
+ /** @type {?|undefined} */
6500
+ IContentTags.prototype.excludeMimeType;
6501
+ /** @type {?} */
6502
+ IContentTags.prototype.tag;
6503
+ /** @type {?|undefined} */
6504
+ IContentTags.prototype.criteriaField;
6505
+ }
6506
+ let EContentStatus;
6507
+ (function (EContentStatus) {
6508
+ EContentStatus["LIVE"] = "Live";
6509
+ EContentStatus["EXPIRED"] = "Expired";
6510
+ EContentStatus["DELETED"] = "Deleted";
6511
+ EContentStatus["MARK_FOR_DELETION"] = "MarkedForDeletion";
6512
+ })(EContentStatus = NsCardContent.EContentStatus || (NsCardContent.EContentStatus = {}));
6513
+ let ACBPConst;
6514
+ (function (ACBPConst) {
6515
+ ACBPConst["UPCOMING"] = "upcoming";
6516
+ ACBPConst["ALL"] = "All";
6517
+ ACBPConst["OVERDUE"] = "overdue";
6518
+ ACBPConst["SUCCESS"] = "success";
6519
+ })(ACBPConst = NsCardContent.ACBPConst || (NsCardContent.ACBPConst = {}));
6520
+ let IGOTConst;
6521
+ (function (IGOTConst) {
6522
+ IGOTConst["COMPETENCIES"] = "competencies_v5";
6523
+ IGOTConst["RETIRED"] = "Retired";
6524
+ })(IGOTConst = NsCardContent.IGOTConst || (NsCardContent.IGOTConst = {}));
6525
+ })(NsCardContent$1 || (NsCardContent$1 = {}));
6526
+
6527
+ /**
6528
+ * @fileoverview added by tsickle
6529
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6530
+ */
6531
+ class CardsComponent extends WidgetBaseComponent {
6532
+ /**
6533
+ * @param {?} utilitySvc
6534
+ * @param {?} configSvc
6535
+ * @param {?} contSvc
6536
+ * @param {?} router
6537
+ */
6538
+ constructor(utilitySvc, configSvc, contSvc, router) {
6539
+ super();
6540
+ this.utilitySvc = utilitySvc;
6541
+ this.configSvc = configSvc;
6542
+ this.contSvc = contSvc;
6543
+ this.router = router;
6544
+ this.isIntranetAllowedSettings = false;
6545
+ }
6546
+ /**
6547
+ * @return {?}
6548
+ */
6549
+ ngOnInit() {
6550
+ }
6551
+ /**
6552
+ * @return {?}
6553
+ */
6554
+ get isLiveOrMarkForDeletion() {
6555
+ if (!this.widgetData.content.status ||
6556
+ this.widgetData.content.status === 'Live' ||
6557
+ this.widgetData.content.status === 'MarkedForDeletion') {
6558
+ return true;
6559
+ }
6560
+ return false;
6561
+ }
5720
6562
  /**
5721
6563
  * @return {?}
5722
6564
  */
@@ -6361,9 +7203,9 @@ class CardUserComponent {
6361
7203
  this.events.raiseInteractTelemetry({
6362
7204
  type: 'click',
6363
7205
  subType: `${this.widgetType}-${this.widgetSubType}`,
6364
- id: `${camelCase(this.widgetData.user.userId)}-card`,
7206
+ id: `${camelCase(this.widgetData.content.userId)}-card`,
6365
7207
  }, {
6366
- id: this.widgetData.user.userId,
7208
+ id: this.widgetData.content.userId,
6367
7209
  // type: this.widgetData.user.primaryCategory,
6368
7210
  //context: this.widgetData.context,
6369
7211
  rollup: {},
@@ -6376,8 +7218,8 @@ class CardUserComponent {
6376
7218
  CardUserComponent.decorators = [
6377
7219
  { type: Component, args: [{
6378
7220
  selector: 'sb-uic-card-user',
6379
- template: "<mat-card class=\"card-users-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData.user\">\n <a (click)=\"raiseTelemetry();$event.stopPropagation()\" role=\"link\"\n i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container *ngIf=\"widgetData.user.profileImage\">\n <img mat-card-image [src]=\"widgetData.user.profileImage\"\n loading=\"lazy\" class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [wsUtilsDefaultThumbnail]=\"defaultThumbnail\" [alt]=\"widgetData.user.firstName\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData.user.profileImage\">\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData.user.firstName\" />\n </ng-template>\n </ng-container>\n </div>\n <div class=\"padding-m\">\n <div class=\"user_widget flex margin-remove\">\n </div>\n <div [id]=\"'m-c-'+ widgetData.user?.userId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n {{ widgetData?.user?.firstName }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <p>\n {{ widgetData?.user?.description }}\n </p>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n</mat-card>",
6380
- styles: [".card-users-container{position:relative;width:268px;min-height:346px;border-radius:8px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;height:346px;margin:20px 8px}.card-users-container .progress-bar{width:101%;margin-left:-15px;display:flex;margin-top:0;background:bisque;position:absolute;bottom:0}.card-users-container ::ng-deep .mat-progress-bar{height:8px!important}.card-users-container .icon_text{font-size:12px;line-height:16px;text-transform:uppercase}.card-users-container .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-users-container .course_logo_box img{height:28px;width:28px;padding:5px;display:inline-block}.card-users-container .course_logo_box p{display:inline-block;vertical-align:top}.card-users-container .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}.card-users-container .source-div{position:relative;top:100px;background:#fff;z-index:3;border:1px solid #dedfe0;min-width:72px;min-height:72px;max-width:72px;max-height:72px;display:flex;border-radius:8px}.card-users-container .source-div .source-icon{border-radius:8px;display:block;margin:auto;max-width:58px;max-height:-webkit-fill-available}.card-users-container mat-card-content{background:#fff}.card-users-container .card-img{min-width:245px;max-height:140px;min-height:140px;display:block;-o-object-fit:fill;object-fit:fill;border-top-left-radius:8px;border-top-right-radius:8px;width:100%}.card-users-container .mat-subheading-1{font:600 14px/24px Montserrat}.card-users-container .complexity{padding-top:70px;display:flex;font-size:14px;line-height:21px;padding-bottom:10px}.card-users-container .complexity .mode-tag{border-radius:5px;order:2;margin-left:auto;color:#fff;font-size:10px}.card-users-container .complexity .duration{display:flex;margin-left:auto;order:3;font-weight:700}.card-users-container .complexity .time-text{margin:0 5px 0 6px;font-weight:700}.card-users-container .basic{margin:auto 0}.card-users-container .title-text{word-break:break-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:48px}.card-users-container .description-text{position:relative;overflow:hidden;height:42px;white-space:normal;text-overflow:ellipsis}.duration-box{background:#000;position:absolute;border:none;display:flex;align-items:center;padding:4px;border-radius:4px}.duration-box.right-corner{right:4px;bottom:4px}.duration-box .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.duration-box .duration{font:700 12px/16px Lato;display:inline-block;margin:0;padding:0}"]
7221
+ template: "<mat-card class=\"user-card card-users-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData.content\">\n <a (click)=\"raiseTelemetry();$event.stopPropagation()\" role=\"link\"\n i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container *ngIf=\"widgetData.content.image\">\n <img mat-card-image [src]=\"widgetData.content.image\"\n loading=\"lazy\" class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [wsUtilsDefaultThumbnail]=\"defaultThumbnail\" [alt]=\"widgetData.content.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData.content.image\">\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData.content.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div class=\"padding-m\">\n <div class=\"user_widget flex margin-remove\">\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.userId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n {{ widgetData?.content?.name }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <p class=\"whitespace-normal description-text\">\n {{ widgetData?.content?.description }}\n </p>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n</mat-card>",
7222
+ styles: [".card-users-container{position:relative;width:282px;min-height:281px;border-radius:8px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;height:281px;margin:16px 8px}.card-users-container .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-users-container .course_logo_box img{height:28px;width:28px;padding:5px;display:inline-block}.card-users-container .course_logo_box p{display:inline-block;vertical-align:top}.card-users-container .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}.card-users-container mat-card-content{background:#fff}.card-users-container .card-img{min-width:245px;max-height:140px;min-height:140px;display:block;-o-object-fit:fill;object-fit:fill;border-top-left-radius:8px;border-top-right-radius:8px;width:100%}.card-users-container .mat-subheading-1{font:600 14px/24px Montserrat}.card-users-container .complexity{padding-top:70px;display:flex;font-size:14px;line-height:21px;padding-bottom:10px}.card-users-container .complexity .mode-tag{border-radius:5px;order:2;margin-left:auto;color:#fff;font-size:10px}.card-users-container .complexity .duration{display:flex;margin-left:auto;order:3;font-weight:700}.card-users-container .complexity .time-text{margin:0 5px 0 6px;font-weight:700}.card-users-container .basic{margin:auto 0}.card-users-container .title-text{word-break:break-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;min-height:24px}.card-users-container .description-text{position:relative;overflow:hidden;height:63px;white-space:normal;text-overflow:ellipsis}.duration-box{background:#000;position:absolute;border:none;display:flex;align-items:center;padding:4px;border-radius:4px}.duration-box.right-corner{right:4px;bottom:4px}.duration-box .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.duration-box .duration{font:700 12px/16px Lato;display:inline-block;margin:0;padding:0}"]
6381
7223
  }] }
6382
7224
  ];
6383
7225
  /** @nocollapse */
@@ -6994,8 +7836,8 @@ class CompetencyPassbookComponent {
6994
7836
  CompetencyPassbookComponent.decorators = [
6995
7837
  { type: Component, args: [{
6996
7838
  selector: 'sb-uic-competency-passbook',
6997
- template: " <div class=\"competency-title\">{{objectData?.title}} \n <span class=\"competency-count\">\n ({{competencyStrength}})\n </span>\n</div>\n<div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"competencyArea\" \n [isLoading]=\"loadCompetencyArea\" (pillClick)=\"competencyChange($event)\" [selectedValue]=\"selectedValue\"></sb-uic-pills>\n</div>\n<div class=\"grid grid-cols-1 md:grid-cols-3 w-full grid-flow-row gap-5\" *ngIf=\"!loadCometency\">\n <div *ngFor=\"let obj of competencyTheme| slice:0:competencyThemeLength\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center\">\n <div class=\"name\">{{allcompetencyTheme[obj?.name]?.name}}</div>\n <!-- <div class=\"flex items-baseline\">\n <img src=\"assets/icons/competency/cp-arrow.svg\" class=\"arrow-img cursor-pointer\" alt=\"cp arrow img\" (click)=\"navigateToCompetency(obj)\" />\n </div> -->\n </div>\n </div>\n <div class=\"flex flex-row pt-3 pb-3 description\">\n {{ allcompetencyTheme[obj.name]?.description }} \n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\">school</mat-icon>\n <div class=\"no-of-contents\">{{obj.count}} Contents</div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <ng-container *ngFor=\"let child of allcompetencyTheme[obj.name]?.children| slice:0: allcompetencyTheme[obj.name]?.viewMore ? allcompetencyTheme[obj.name]?.children?.length : 3; let i = index\">\n <div class=\"chip rounded-full p-2 text-xs chip-ellipsis\" [title]=\"child?.name\" >\n {{ child.name }}\n </div>\n </ng-container>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && !allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View more\n </div>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View less\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"competencyTheme.length > 6 && !loadCometency\">\n <div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"showAllTheme\" (pillClick)=\"displayAllTheme($event)\"></sb-uic-pills>\n </div>\n</ng-container> \n\n<ng-container *ngIf=\"loadCometency\">\n\n<div class=\"grid grid-cols-1 md:grid-cols-3 w-full grid-flow-row gap-5\">\n <div *ngFor=\"let obj of [0,1,2,3,4,5]\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center w-full\">\n <div class=\"name w-full\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"pt-3 pb-3 description\">\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'24px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></mat-icon>\n <div class=\"no-of-contents\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n</ng-container>",
6998
- styles: [".competencies-backgroud{background-color:#1b2133}.competency-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;color:#fff}.competency-count{color:#f3962f}.filter-button{padding:12px 16px;border-radius:50px;border:1px solid #fff;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;background-color:transparent;color:#fff;cursor:pointer}.filter-button.active{background:#1b4ca1}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-background{background:#1b4ca1}.competency-theme{height:16px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:#f8b861}.details{background-color:#fff;border-radius:12px;position:relative;top:-8px;min-height:278px}.name{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.description{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left;height:42px;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.no-of-contents{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;color:#1b4ca1}.content-icon{color:#1b4ca1}.line{border-top:1px solid #e2dddd}.chip{padding:8px 16px;gap:8px;border-radius:50px;border:1px solid #1b4ca1;color:#1b4ca1;font-family:Lato;font-size:14px;font-weight:700;text-align:center}.chip-ellipsis{white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}.info-btn{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;opacity:.7;padding:12px 5px}.hide{display:none}.behavioral{background-color:#f8b861}.functional{background-color:#e24577}.domain{background-color:#7b47a4}"]
7839
+ template: " <div class=\"competency-title\">{{objectData?.title}} \n <span class=\"competency-count\">\n ({{competencyStrength}})\n </span>\n</div>\n<div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"competencyArea\" \n [isLoading]=\"loadCompetencyArea\" (pillClick)=\"competencyChange($event)\" [selectedValue]=\"selectedValue\"></sb-uic-pills>\n</div>\n<div class=\"grid grid-cols-1 md:grid-cols-3 w-full grid-flow-row gap-5\" *ngIf=\"!loadCometency\">\n <div class=\"competency-card\" *ngFor=\"let obj of competencyTheme| slice:0:competencyThemeLength\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center\">\n <div class=\"name\">{{allcompetencyTheme[obj?.name]?.name}}</div>\n <!-- <div class=\"flex items-baseline\">\n <img src=\"assets/icons/competency/cp-arrow.svg\" class=\"arrow-img cursor-pointer\" alt=\"cp arrow img\" (click)=\"navigateToCompetency(obj)\" />\n </div> -->\n </div>\n </div>\n <div class=\"flex flex-row pt-3 pb-3 description\">\n {{ allcompetencyTheme[obj.name]?.description }} \n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\">school</mat-icon>\n <div class=\"no-of-contents\">{{obj.count}} Contents</div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <ng-container *ngFor=\"let child of allcompetencyTheme[obj.name]?.children| slice:0: allcompetencyTheme[obj.name]?.viewMore ? allcompetencyTheme[obj.name]?.children?.length : 3; let i = index\">\n <div class=\"chip rounded-full p-2 text-xs chip-ellipsis\" [title]=\"child?.name\" >\n {{ child.name }}\n </div>\n </ng-container>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && !allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View more\n </div>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View less\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"competencyTheme.length > 6 && !loadCometency\">\n <div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"showAllTheme\" (pillClick)=\"displayAllTheme($event)\"></sb-uic-pills>\n </div>\n</ng-container> \n\n<ng-container *ngIf=\"loadCometency\">\n\n<div class=\"grid grid-cols-1 md:grid-cols-3 w-full grid-flow-row gap-5\">\n <div *ngFor=\"let obj of [0,1,2,3,4,5]\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center w-full\">\n <div class=\"name w-full\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"pt-3 pb-3 description\">\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'24px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></mat-icon>\n <div class=\"no-of-contents\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n</ng-container>",
7840
+ styles: [".competencies-backgroud{background-color:#1b2133}.competency-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;color:#fff}.competency-count{color:#f3962f}.filter-button{padding:12px 16px;border-radius:50px;border:1px solid #fff;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;background-color:transparent;color:#fff;cursor:pointer}.filter-button.active{background:#1b4ca1}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-background{background:#1b4ca1}.competency-theme{height:16px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:#f8b861}.details{background-color:#fff;border-radius:12px;position:relative;top:-8px;min-height:278px}.name{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.description{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left;height:42px;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.no-of-contents{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;color:#1b4ca1}.content-icon{color:#1b4ca1}.line{border-top:1px solid #e2dddd}.chip{padding:8px 16px;gap:8px;border-radius:50px;border:1px solid #1b4ca1;color:#1b4ca1;font-family:Lato;font-size:14px;font-weight:700;text-align:center}.chip-ellipsis{white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}.info-btn{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;opacity:.7;padding:12px 5px}.hide{display:none}.behavioral{background-color:#f8b861}.functional{background-color:#e24577}.domain{background-color:#7b47a4}.competency-card{z-index:999}"]
6999
7841
  }] }
7000
7842
  ];
7001
7843
  /** @nocollapse */
@@ -7072,7 +7914,7 @@ class PillsComponent {
7072
7914
  PillsComponent.decorators = [
7073
7915
  { type: Component, args: [{
7074
7916
  selector: 'sb-uic-pills',
7075
- template: "<ng-container *ngIf=\"!isLoading\">\n <mat-chip-list >\n <ng-container *ngFor=\"let pill of pillsData\">\n <mat-chip class=\"competency-chip\" (click)=\"selectedPill(pill)\" \n [ngClass]=\"{'active': selectedValue === pill?.name}\">\n <span class=\"pill-name\">{{pill?.name | titlecase}} <span>{{pill?.count}}</span></span>\n </mat-chip>\n </ng-container>\n </mat-chip-list>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <div class=\"flex gap-4\">\n <ng-container *ngFor=\"let pill of [0,1,2]\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n</ng-container>\n",
7917
+ template: "<ng-container *ngIf=\"!isLoading\">\n <mat-chip-list >\n <ng-container *ngFor=\"let pill of pillsData\">\n <mat-chip class=\"competency-chip\" (click)=\"selectedPill(pill)\" \n [ngClass]=\"{'active': selectedValue === pill?.name}\">\n <span class=\"pill-name\">{{pill?.name | titlecase}} <span *ngIf=\"pill?.count\">({{pill?.count}})</span></span>\n </mat-chip>\n </ng-container>\n </mat-chip-list>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <div class=\"flex gap-4\">\n <ng-container *ngFor=\"let pill of [0,1,2]\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n</ng-container>\n",
7076
7918
  styles: [".competency-chip{padding:12px 16px;border-radius:50px;border:1px solid #fff;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;background-color:transparent!important;cursor:pointer}.competency-chip .pill-name{color:#fff!important}.active{background-color:#1b4ca1!important}"]
7077
7919
  }] }
7078
7920
  ];
@@ -7134,64 +7976,6 @@ CompetencyPassbookModule.decorators = [
7134
7976
  },] }
7135
7977
  ];
7136
7978
 
7137
- /**
7138
- * @fileoverview added by tsickle
7139
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7140
- */
7141
- class CommonMethodsService {
7142
- constructor() { }
7143
- /**
7144
- * @param {?} contents
7145
- * @param {?} strip
7146
- * @return {?}
7147
- */
7148
- transformContentsToWidgets(contents, strip) {
7149
- return (contents || []).map((/**
7150
- * @param {?} content
7151
- * @param {?} idx
7152
- * @return {?}
7153
- */
7154
- (content, idx) => (content ? {
7155
- widgetType: 'cardLib',
7156
- widgetSubType: 'cardContentLib',
7157
- widgetHostClass: 'mb-2',
7158
- widgetData: Object.assign({ content }, (content.batch && { batch: content.batch }), { cardSubType: strip.stripConfig && strip.stripConfig.cardSubType, cardCustomeClass: strip.customeClass ? strip.customeClass : '', context: { pageSection: strip.key, position: idx }, intranetMode: strip.stripConfig && strip.stripConfig.intranetMode, deletedMode: strip.stripConfig && strip.stripConfig.deletedMode, contentTags: strip.stripConfig && strip.stripConfig.contentTags }),
7159
- } : {
7160
- widgetType: 'card',
7161
- widgetSubType: 'cardContent',
7162
- widgetHostClass: 'mb-2',
7163
- widgetData: {},
7164
- })));
7165
- }
7166
- /**
7167
- * @param {?} strip
7168
- * @return {?}
7169
- */
7170
- transformSkeletonToWidgets(strip) {
7171
- return [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10].map((/**
7172
- * @param {?} _content
7173
- * @return {?}
7174
- */
7175
- _content => ({
7176
- widgetType: 'cardLib',
7177
- widgetSubType: 'cardContentLib',
7178
- widgetHostClass: 'mb-2',
7179
- widgetData: {
7180
- cardSubType: strip.loaderConfig && strip.loaderConfig.cardSubType || 'card-standard-skeleton',
7181
- cardCustomeClass: strip.customeClass ? strip.customeClass : '',
7182
- },
7183
- })));
7184
- }
7185
- }
7186
- CommonMethodsService.decorators = [
7187
- { type: Injectable, args: [{
7188
- providedIn: 'root'
7189
- },] }
7190
- ];
7191
- /** @nocollapse */
7192
- CommonMethodsService.ctorParameters = () => [];
7193
- /** @nocollapse */ CommonMethodsService.ngInjectableDef = ɵɵdefineInjectable({ factory: function CommonMethodsService_Factory() { return new CommonMethodsService(); }, token: CommonMethodsService, providedIn: "root" });
7194
-
7195
7979
  /**
7196
7980
  * @fileoverview added by tsickle
7197
7981
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -7202,5 +7986,5 @@ CommonMethodsService.ctorParameters = () => [];
7202
7986
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7203
7987
  */
7204
7988
 
7205
- export { CardsModule, CommonMethodsService, 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, DefaultThumbnailDirective as ɵba, PipeDurationTransformModule as ɵbb, PipeDurationTransformPipe as ɵbc, CompetencyPassbookComponent as ɵbd, CompetencyPassbookService as ɵbe, PillsModule as ɵbf, PillsComponent as ɵbg, 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, CardResourceComponent as ɵq, CardsComponent as ɵr, CardPortraitComponent as ɵs, CardUserComponent as ɵt, CardLandscapeComponent as ɵu, PipePublicURLModule as ɵv, PipePublicURL as ɵw, DisplayContentTypeLibModule as ɵx, DisplayContentTypeLibComponent as ɵy, DefaultThumbnailModule as ɵz };
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 };
7206
7990
  //# sourceMappingURL=sunbird-cb-consumption.js.map