@sunbird-cb/consumption 0.1.23-cbrelease-4.8.27-multilingual → 0.1.23-cbrelease-4.8.28

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 (45) hide show
  1. package/esm2022/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.mjs +3 -3
  2. package/esm2022/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.mjs +54 -0
  3. package/esm2022/lib/_common/microsites/mdo-channels/components/competency/competency.component.mjs +50 -0
  4. package/esm2022/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.mjs +56 -0
  5. package/esm2022/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.mjs +286 -0
  6. package/esm2022/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.mjs +45 -0
  7. package/esm2022/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.mjs +143 -0
  8. package/esm2022/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.mjs +35 -0
  9. package/esm2022/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.mjs +30 -0
  10. package/esm2022/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.mjs +42 -0
  11. package/esm2022/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.mjs +99 -0
  12. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.mjs +986 -2
  13. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.mjs +222 -0
  14. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel.module.mjs +83 -7
  15. package/esm2022/public-api.mjs +2 -1
  16. package/fesm2022/sunbird-cb-consumption.mjs +2053 -34
  17. package/fesm2022/sunbird-cb-consumption.mjs.map +1 -1
  18. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts +20 -0
  19. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts.map +1 -0
  20. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts +16 -0
  21. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts.map +1 -0
  22. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts +16 -0
  23. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts.map +1 -0
  24. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts +61 -0
  25. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts.map +1 -0
  26. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts +17 -0
  27. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts.map +1 -0
  28. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts +32 -0
  29. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts.map +1 -0
  30. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts +15 -0
  31. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts.map +1 -0
  32. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts +10 -0
  33. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts.map +1 -0
  34. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts +13 -0
  35. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts.map +1 -0
  36. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts +23 -0
  37. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts.map +1 -0
  38. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts.map +1 -1
  39. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts +54 -0
  40. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts.map +1 -0
  41. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts +46 -26
  42. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts.map +1 -1
  43. package/package.json +2 -2
  44. package/public-api.d.ts +1 -0
  45. package/public-api.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, EventEmitter, Input, Output, ViewChild, NgModule, Inject, HostBinding, Directive, HostListener, CUSTOM_ELEMENTS_SCHEMA, ViewChildren, Pipe, ContentChild } from '@angular/core';
2
+ import { Injectable, Component, EventEmitter, Input, Output, ViewChild, NgModule, Inject, HostBinding, Directive, HostListener, CUSTOM_ELEMENTS_SCHEMA, ViewChildren, Pipe, Injector, ChangeDetectionStrategy, ContentChild } from '@angular/core';
3
3
  import * as i2$2 from '@angular/common';
4
4
  import { CommonModule, DatePipe } from '@angular/common';
5
5
  import * as i1$1 from '@angular/router';
@@ -49,10 +49,11 @@ import { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip';
49
49
  import * as i7 from '@sunbird-cb/resolver-v2';
50
50
  import { WidgetBaseComponent, SbUiResolverModule } from '@sunbird-cb/resolver-v2';
51
51
  import * as _ from 'lodash';
52
+ import { cloneDeep } from 'lodash';
52
53
  import * as moment from 'moment';
53
54
  import moment__default from 'moment';
54
55
  import * as i1 from '@angular/common/http';
55
- import { HttpHeaders, HttpClient } from '@angular/common/http';
56
+ import { HttpHeaders, HttpClient, HttpClientModule } from '@angular/common/http';
56
57
  import 'rxjs/add/observable/of';
57
58
  import dayjs from 'dayjs';
58
59
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
@@ -66,11 +67,16 @@ import * as i4$1 from '@angular/material/legacy-menu';
66
67
  import { MatLegacyMenuModule } from '@angular/material/legacy-menu';
67
68
  import * as i2$3 from '@angular/material/legacy-progress-bar';
68
69
  import { MatLegacyProgressBarModule } from '@angular/material/legacy-progress-bar';
69
- import * as i1$5 from '@angular/material/dialog';
70
- import * as i1$6 from '@angular/material/snack-bar';
70
+ import * as i3$1 from '@angular/material/dialog';
71
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
72
+ import * as i1$5 from '@angular/material/snack-bar';
71
73
  import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
72
74
  import { MatDividerModule } from '@angular/material/divider';
73
- import * as i4$2 from '@angular/platform-browser';
75
+ import * as i1$6 from '@angular/platform-browser';
76
+ import * as i11 from '@angular/cdk/drag-drop';
77
+ import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
78
+ import * as i10 from '@angular/material/legacy-slide-toggle';
79
+ import { MatLegacySlideToggleModule } from '@angular/material/legacy-slide-toggle';
74
80
 
75
81
  class ConsumptionService {
76
82
  constructor() { }
@@ -5683,7 +5689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5683
5689
  }]
5684
5690
  }] });
5685
5691
 
5686
- class TopLearnersComponent {
5692
+ let TopLearnersComponent$1 = class TopLearnersComponent {
5687
5693
  constructor(insightSvc) {
5688
5694
  this.insightSvc = insightSvc;
5689
5695
  this.slwConfig = {};
@@ -5790,8 +5796,8 @@ class TopLearnersComponent {
5790
5796
  }
5791
5797
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, deps: [{ token: InsiteDataService }], target: i0.ɵɵFactoryTarget.Component }); }
5792
5798
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TopLearnersComponent, selector: "sb-uic-top-learners", inputs: { objectData: "objectData", channelId: "channelId", channnelName: "channnelName", slwConfig: "slwConfig" }, ngImport: i0, template: "<div class=\"flex flex-center\">\n <div class=\"flex items-center flex-wrap justify-center\">\n <div class=\"title-border w-full\"></div>\n <div class=\"title w-full\" [style.color]=\"objectData?.titleFontColor\">{{objectData?.title}} ({{month}})</div>\n <div class=\"title-border w-full\"></div>\n </div> \n</div>\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of results; let i=index\" class=\"flex-container\">\n <div class=\"flex-item user-box {{objectData?.customClass}}\" [style.height]=\"objectData?.cardHeight\" [style.minHeight]=\"objectData?.cardMinHeight\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\" *ngIf=\"obj?.profile_image\">\n <img [src]=\"obj?.profile_image\" class=\"user-image\"/>\n </div>\n <div class=\"initial\" *ngIf=\"!obj?.profile_image\"\n [style.backgroundColor]=\"colors[i]\"\n >\n {{createInititals(obj?.fullName || obj?.fullname)}}\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length >= 24\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.fullName || obj?.fullname}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length < 24\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.designation}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.designation}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length < 32\">{{obj?.designation}}</div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.orgName || obj?.org_name}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.orgName || obj?.org_name}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length < 32\">{{obj?.orgName || obj?.org_name}}</div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">{{getRank(+obj?.row_num)}}</div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\" *ngIf=\"!objectData?.hideEle?.includes('karma-points')\">\n <div class=\"kp-icon\"><img [src]=\"objectData?.kpIcon\" class=\"kp-image\"/></div>\n <div class=\"points\">{{obj?.total_points || 0}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length === 0\">\n <div class=\"margin-top-l noData\">\n No data\n </div>\n</div>\n\n<ng-container>\n <div class=\"top-learners-container\" *ngIf=\"loading\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of [1,2,3]\" class=\"flex-container\">\n <div class=\"flex-item user-box\" >\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"points\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>", styles: [".title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:15px}.title-border{margin:10px;width:240px;height:3px;background:linear-gradient(90deg,#fff0,#ef951e 20% 80%,#fff0)}.noData{border:1px solid #1B4CA1;padding:15px;display:flex;justify-content:center;border-radius:12px}.top-learners-container{overflow:auto}::-webkit-scrollbar{height:10px!important}::-webkit-scrollbar-track{border-radius:10px;background:#eff3f9!important}.user-box{width:360px;height:134px;border-radius:8px;background-color:#fff;padding:16px;position:relative}.flex-container{display:flex}.flex-item{flex:0 0 auto;white-space:nowrap}.img-name-sec{justify-content:space-between}.initial{width:44px;height:44px;border-radius:50%;align-items:center;display:flex;justify-content:center;font-weight:700;color:#fff}.user-image{width:44px;height:44px;border-radius:50%}.name-sec{font-family:Lato;font-size:16px;font-weight:700;line-height:19.2px;text-align:left;width:200px!important;overflow:hidden;text-overflow:ellipsis}.designation-sec{font-family:Lato;font-size:12px;font-weight:400;line-height:14.4px;text-align:left;opacity:.6;width:200px!important;overflow:hidden;text-overflow:ellipsis}.rank-sec{font-family:Montserrat;font-size:36px;font-weight:700;line-height:43.88px;text-align:left;color:#ef951e}.kp-section{justify-content:flex-end;position:absolute;right:18px;bottom:16px;align-items:center}.kp-image{width:32px;height:32px;padding-top:3px}.points{font-family:Lato;font-size:24px;font-weight:700;line-height:28.8px;text-align:left;color:#1b4ca1;padding-bottom:3px}::-webkit-scrollbar{height:4px}::-webkit-scrollbar-track{border-radius:10px;background:#000}::-webkit-scrollbar-thumb{background:#cccc;border-radius:10px}@media screen and (max-width: 768px){.user-box{width:343px}}\n"], dependencies: [{ kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }, { kind: "directive", type: i4.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
5793
- }
5794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, decorators: [{
5799
+ };
5800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent$1, decorators: [{
5795
5801
  type: Component,
5796
5802
  args: [{ selector: 'sb-uic-top-learners', template: "<div class=\"flex flex-center\">\n <div class=\"flex items-center flex-wrap justify-center\">\n <div class=\"title-border w-full\"></div>\n <div class=\"title w-full\" [style.color]=\"objectData?.titleFontColor\">{{objectData?.title}} ({{month}})</div>\n <div class=\"title-border w-full\"></div>\n </div> \n</div>\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of results; let i=index\" class=\"flex-container\">\n <div class=\"flex-item user-box {{objectData?.customClass}}\" [style.height]=\"objectData?.cardHeight\" [style.minHeight]=\"objectData?.cardMinHeight\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\" *ngIf=\"obj?.profile_image\">\n <img [src]=\"obj?.profile_image\" class=\"user-image\"/>\n </div>\n <div class=\"initial\" *ngIf=\"!obj?.profile_image\"\n [style.backgroundColor]=\"colors[i]\"\n >\n {{createInititals(obj?.fullName || obj?.fullname)}}\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length >= 24\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.fullName || obj?.fullname}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length < 24\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.designation}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.designation}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length < 32\">{{obj?.designation}}</div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.orgName || obj?.org_name}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.orgName || obj?.org_name}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length < 32\">{{obj?.orgName || obj?.org_name}}</div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">{{getRank(+obj?.row_num)}}</div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\" *ngIf=\"!objectData?.hideEle?.includes('karma-points')\">\n <div class=\"kp-icon\"><img [src]=\"objectData?.kpIcon\" class=\"kp-image\"/></div>\n <div class=\"points\">{{obj?.total_points || 0}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length === 0\">\n <div class=\"margin-top-l noData\">\n No data\n </div>\n</div>\n\n<ng-container>\n <div class=\"top-learners-container\" *ngIf=\"loading\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of [1,2,3]\" class=\"flex-container\">\n <div class=\"flex-item user-box\" >\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"points\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>", styles: [".title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:15px}.title-border{margin:10px;width:240px;height:3px;background:linear-gradient(90deg,#fff0,#ef951e 20% 80%,#fff0)}.noData{border:1px solid #1B4CA1;padding:15px;display:flex;justify-content:center;border-radius:12px}.top-learners-container{overflow:auto}::-webkit-scrollbar{height:10px!important}::-webkit-scrollbar-track{border-radius:10px;background:#eff3f9!important}.user-box{width:360px;height:134px;border-radius:8px;background-color:#fff;padding:16px;position:relative}.flex-container{display:flex}.flex-item{flex:0 0 auto;white-space:nowrap}.img-name-sec{justify-content:space-between}.initial{width:44px;height:44px;border-radius:50%;align-items:center;display:flex;justify-content:center;font-weight:700;color:#fff}.user-image{width:44px;height:44px;border-radius:50%}.name-sec{font-family:Lato;font-size:16px;font-weight:700;line-height:19.2px;text-align:left;width:200px!important;overflow:hidden;text-overflow:ellipsis}.designation-sec{font-family:Lato;font-size:12px;font-weight:400;line-height:14.4px;text-align:left;opacity:.6;width:200px!important;overflow:hidden;text-overflow:ellipsis}.rank-sec{font-family:Montserrat;font-size:36px;font-weight:700;line-height:43.88px;text-align:left;color:#ef951e}.kp-section{justify-content:flex-end;position:absolute;right:18px;bottom:16px;align-items:center}.kp-image{width:32px;height:32px;padding-top:3px}.points{font-family:Lato;font-size:24px;font-weight:700;line-height:28.8px;text-align:left;color:#1b4ca1;padding-bottom:3px}::-webkit-scrollbar{height:4px}::-webkit-scrollbar-track{border-radius:10px;background:#000}::-webkit-scrollbar-thumb{background:#cccc;border-radius:10px}@media screen and (max-width: 768px){.user-box{width:343px}}\n"] }]
5797
5803
  }], ctorParameters: function () { return [{ type: InsiteDataService }]; }, propDecorators: { objectData: [{
@@ -5806,9 +5812,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5806
5812
 
5807
5813
  class TopLearnersModule {
5808
5814
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5809
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, declarations: [TopLearnersComponent], imports: [CommonModule,
5815
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, declarations: [TopLearnersComponent$1], imports: [CommonModule,
5810
5816
  SkeletonLoaderLibModule,
5811
- MatLegacyTooltipModule], exports: [TopLearnersComponent] }); }
5817
+ MatLegacyTooltipModule], exports: [TopLearnersComponent$1] }); }
5812
5818
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, imports: [CommonModule,
5813
5819
  SkeletonLoaderLibModule,
5814
5820
  MatLegacyTooltipModule] }); }
@@ -5816,13 +5822,13 @@ class TopLearnersModule {
5816
5822
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, decorators: [{
5817
5823
  type: NgModule,
5818
5824
  args: [{
5819
- declarations: [TopLearnersComponent],
5825
+ declarations: [TopLearnersComponent$1],
5820
5826
  imports: [
5821
5827
  CommonModule,
5822
5828
  SkeletonLoaderLibModule,
5823
5829
  MatLegacyTooltipModule
5824
5830
  ],
5825
- exports: [TopLearnersComponent],
5831
+ exports: [TopLearnersComponent$1],
5826
5832
  }]
5827
5833
  }] });
5828
5834
 
@@ -7230,11 +7236,11 @@ class CardAssessmentComponent {
7230
7236
  this.contentData.emit(contentData);
7231
7237
  }
7232
7238
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardAssessmentComponent, deps: [{ token: i2.ConfigurationsService }, { token: WidgetContentLibService }], target: i0.ɵɵFactoryTarget.Component }); }
7233
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardAssessmentComponent, selector: "sb-uic-card-assessment", inputs: { widgetData: "widgetData", isCardLoading: "isCardLoading" }, outputs: { contentData: "contentData" }, ngImport: i0, template: "<ng-container *ngIf=\"!isCardLoading\">\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row px-4 pt-4\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\n\t\t\t\t\t\t\t\t<div class=\"course_widget flex margin-remove \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex flex-end course_v2\">\n\t\t\t\t\t\t\t\t\t <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs nodtranslate\">video_library</mat-icon>\n\t\t\t\t\t\t\t\t\t <sb-uic-display-content-type i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.courseCategory\"\n\t\t\t\t\t\t\t\t\t\tclass=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory? widgetData?.content?.primaryCategory:widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t </sb-uic-display-content-type>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t </div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }} \n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex items-center justify-start margin-remove margin-top-xs font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text ml-2\"> By\n\t\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation &&\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<span>{{ startCountdown(widgetData?.content?.batch) }}</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"flex flex-row\" *ngIf=\"daysPending && eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in</span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"big-text\"><b>{{ days }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">days</span> </span> &nbsp; : &nbsp; <span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"big-text\"><b>{{ hours }} </b><span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">hours</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span> &nbsp; : &nbsp; <span class=\"big-text\"> <b>{{ minutes }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">minutes</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.startDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy HH:mm' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div *ngIf=\"!daysPending\" class=\"flex flex-row\"> \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">{{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}} ends on </span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-btn\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{widgetData?.content?.isEnrolled ? 'Resume':'Start'}} {{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}}</span> \n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.endDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-container>\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\"\n\t\t\t\t\t\t\t\t\t\t\t[height]=\"'155px'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col margin-remove\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'200px'\" [height]=\"'20px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-top-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'250px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-m items-center font-normal\">\n\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'150px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8 ml-2'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>", styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:340px;margin-top:16px;margin-right:12px;border-radius:12px}.image-container{width:119px;height:70px;flex-shrink:0;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.image-container img{border-radius:8px;opacity:1;background-size:100%;width:100%;height:100%;flex-shrink:0;display:flex}.title-container{width:100%}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{color:#000000de;width:90%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{padding:3px;display:inline-block;width:24px;height:24px;border:1px solid #d6d6d6;border-radius:4px;box-sizing:border-box}.course_logo_box img.source-icon{height:100%;width:100%;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green;width:100px}.not-started{background-color:#d13924!important}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:#ef951e29!important;text-align:center;box-sizing:border-box;border-radius:0 0 8px 8px}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}.big-text{font-size:16px}.small-text{font-size:12px!important;vertical-align:top;margin-left:4px}.course_widget{margin-top:10px}.course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.course_widget .course_v2{border:1px solid #EF951E;padding:4px 8px;align-items:end;border-radius:16px}.course_widget .main_icon{font-size:16px;width:16px;height:16px}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6$1.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6$1.MatLegacyCardFooter, selector: "mat-card-footer" }, { kind: "directive", type: i6$1.MatLegacyCardImage, selector: "[mat-card-image], [matCardImage]" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: DisplayContentTypeLibComponent, selector: "sb-uic-display-content-type", inputs: ["useTranslation", "displayContentType"] }, { kind: "directive", type: DefaultThumbnailDirective, selector: "[wsUtilsDefaultThumbnail]", inputs: ["wsUtilsDefaultThumbnail", "src"] }, { kind: "component", type: SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }, { kind: "pipe", type: i2$2.DatePipe, name: "date" }, { kind: "pipe", type: i2.PipePublicURL, name: "pipePublicURL" }] }); }
7239
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardAssessmentComponent, selector: "sb-uic-card-assessment", inputs: { widgetData: "widgetData", isCardLoading: "isCardLoading" }, outputs: { contentData: "contentData" }, ngImport: i0, template: "<ng-container *ngIf=\"!isCardLoading\">\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row px-4 pt-4\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\n\t\t\t\t\t\t\t\t<div class=\"course_widget flex margin-remove \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex flex-end course_v2\">\n\t\t\t\t\t\t\t\t\t <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs nodtranslate\">video_library</mat-icon>\n\t\t\t\t\t\t\t\t\t <sb-uic-display-content-type i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.courseCategory\"\n\t\t\t\t\t\t\t\t\t\tclass=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory? widgetData?.content?.primaryCategory:widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t </sb-uic-display-content-type>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t </div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }} \n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex items-center justify-start margin-remove margin-top-xs font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text ml-2\"> By\n\t\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation &&\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<span>{{ startCountdown(widgetData?.content?.batch) }}</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"flex flex-row\" *ngIf=\"daysPending && eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in</span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"big-text\"><b>{{ days }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">days</span> </span> &nbsp; : &nbsp; <span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"big-text\"><b>{{ hours }} </b><span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">hours</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span> &nbsp; : &nbsp; <span class=\"big-text\"> <b>{{ minutes }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">minutes</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.startDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy HH:mm' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div *ngIf=\"!daysPending\" class=\"flex flex-row\"> \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">{{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}} ends on </span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-btn\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{(widgetData?.content?.isEnrolled && widgetData?.content?.completionPercentage >0) ? 'Resume':'Start'}} {{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}}</span> \n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.endDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-container>\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\"\n\t\t\t\t\t\t\t\t\t\t\t[height]=\"'155px'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col margin-remove\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'200px'\" [height]=\"'20px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-top-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'250px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-m items-center font-normal\">\n\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'150px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8 ml-2'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>", styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:340px;margin-top:16px;margin-right:12px;border-radius:12px}.image-container{width:119px;height:70px;flex-shrink:0;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.image-container img{border-radius:8px;opacity:1;background-size:100%;width:100%;height:100%;flex-shrink:0;display:flex}.title-container{width:100%}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{color:#000000de;width:90%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{padding:3px;display:inline-block;width:24px;height:24px;border:1px solid #d6d6d6;border-radius:4px;box-sizing:border-box}.course_logo_box img.source-icon{height:100%;width:100%;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green;width:100px}.not-started{background-color:#d13924!important}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:#ef951e29!important;text-align:center;box-sizing:border-box;border-radius:0 0 8px 8px}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}.big-text{font-size:16px}.small-text{font-size:12px!important;vertical-align:top;margin-left:4px}.course_widget{margin-top:10px}.course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.course_widget .course_v2{border:1px solid #EF951E;padding:4px 8px;align-items:end;border-radius:16px}.course_widget .main_icon{font-size:16px;width:16px;height:16px}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6$1.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6$1.MatLegacyCardFooter, selector: "mat-card-footer" }, { kind: "directive", type: i6$1.MatLegacyCardImage, selector: "[mat-card-image], [matCardImage]" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: DisplayContentTypeLibComponent, selector: "sb-uic-display-content-type", inputs: ["useTranslation", "displayContentType"] }, { kind: "directive", type: DefaultThumbnailDirective, selector: "[wsUtilsDefaultThumbnail]", inputs: ["wsUtilsDefaultThumbnail", "src"] }, { kind: "component", type: SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }, { kind: "pipe", type: i2$2.DatePipe, name: "date" }, { kind: "pipe", type: i2.PipePublicURL, name: "pipePublicURL" }] }); }
7234
7240
  }
7235
7241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardAssessmentComponent, decorators: [{
7236
7242
  type: Component,
7237
- args: [{ selector: 'sb-uic-card-assessment', template: "<ng-container *ngIf=\"!isCardLoading\">\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row px-4 pt-4\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\n\t\t\t\t\t\t\t\t<div class=\"course_widget flex margin-remove \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex flex-end course_v2\">\n\t\t\t\t\t\t\t\t\t <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs nodtranslate\">video_library</mat-icon>\n\t\t\t\t\t\t\t\t\t <sb-uic-display-content-type i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.courseCategory\"\n\t\t\t\t\t\t\t\t\t\tclass=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory? widgetData?.content?.primaryCategory:widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t </sb-uic-display-content-type>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t </div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }} \n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex items-center justify-start margin-remove margin-top-xs font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text ml-2\"> By\n\t\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation &&\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<span>{{ startCountdown(widgetData?.content?.batch) }}</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"flex flex-row\" *ngIf=\"daysPending && eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in</span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"big-text\"><b>{{ days }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">days</span> </span> &nbsp; : &nbsp; <span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"big-text\"><b>{{ hours }} </b><span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">hours</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span> &nbsp; : &nbsp; <span class=\"big-text\"> <b>{{ minutes }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">minutes</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.startDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy HH:mm' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div *ngIf=\"!daysPending\" class=\"flex flex-row\"> \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">{{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}} ends on </span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-btn\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{widgetData?.content?.isEnrolled ? 'Resume':'Start'}} {{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}}</span> \n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.endDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-container>\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\"\n\t\t\t\t\t\t\t\t\t\t\t[height]=\"'155px'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col margin-remove\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'200px'\" [height]=\"'20px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-top-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'250px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-m items-center font-normal\">\n\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'150px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8 ml-2'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>", styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:340px;margin-top:16px;margin-right:12px;border-radius:12px}.image-container{width:119px;height:70px;flex-shrink:0;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.image-container img{border-radius:8px;opacity:1;background-size:100%;width:100%;height:100%;flex-shrink:0;display:flex}.title-container{width:100%}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{color:#000000de;width:90%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{padding:3px;display:inline-block;width:24px;height:24px;border:1px solid #d6d6d6;border-radius:4px;box-sizing:border-box}.course_logo_box img.source-icon{height:100%;width:100%;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green;width:100px}.not-started{background-color:#d13924!important}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:#ef951e29!important;text-align:center;box-sizing:border-box;border-radius:0 0 8px 8px}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}.big-text{font-size:16px}.small-text{font-size:12px!important;vertical-align:top;margin-left:4px}.course_widget{margin-top:10px}.course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.course_widget .course_v2{border:1px solid #EF951E;padding:4px 8px;align-items:end;border-radius:16px}.course_widget .main_icon{font-size:16px;width:16px;height:16px}\n"] }]
7243
+ args: [{ selector: 'sb-uic-card-assessment', template: "<ng-container *ngIf=\"!isCardLoading\">\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row px-4 pt-4\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\n\t\t\t\t\t\t\t\t<div class=\"course_widget flex margin-remove \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex flex-end course_v2\">\n\t\t\t\t\t\t\t\t\t <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs nodtranslate\">video_library</mat-icon>\n\t\t\t\t\t\t\t\t\t <sb-uic-display-content-type i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.courseCategory\"\n\t\t\t\t\t\t\t\t\t\tclass=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory? widgetData?.content?.primaryCategory:widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t </sb-uic-display-content-type>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t </div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col \">\n\t\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }} \n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex items-center justify-start margin-remove margin-top-xs font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text ml-2\"> By\n\t\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation &&\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<span>{{ startCountdown(widgetData?.content?.batch) }}</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"flex flex-row\" *ngIf=\"daysPending && eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM !== widgetData?.content?.courseCategory\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in</span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"big-text\"><b>{{ days }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">days</span> </span> &nbsp; : &nbsp; <span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"big-text\"><b>{{ hours }} </b><span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">hours</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span> &nbsp; : &nbsp; <span class=\"big-text\"> <b>{{ minutes }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">minutes</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.startDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy HH:mm' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div *ngIf=\"!daysPending\" class=\"flex flex-row\"> \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">{{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}} ends on </span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-btn\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{(widgetData?.content?.isEnrolled && widgetData?.content?.completionPercentage >0) ? 'Resume':'Start'}} {{eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory ? 'Program':'Assessment'}}</span> \n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\" (eCourseCategory?.COMPREHENSIVE_ASSESSMENT_PROGRAM === widgetData?.content?.courseCategory) && !widgetData?.content?.isEnrolled ? 'not-started': ''\">{{widgetData?.content?.batch?.endDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-container>\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\"\n\t\t\t\t\t\t\t\t\t\t\t[height]=\"'155px'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div class=\"p-4 pb-6\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col margin-remove\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'200px'\" [height]=\"'20px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-top-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'250px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-m items-center font-normal\">\n\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'150px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8 ml-2'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>", styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:340px;margin-top:16px;margin-right:12px;border-radius:12px}.image-container{width:119px;height:70px;flex-shrink:0;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.image-container img{border-radius:8px;opacity:1;background-size:100%;width:100%;height:100%;flex-shrink:0;display:flex}.title-container{width:100%}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{color:#000000de;width:90%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{padding:3px;display:inline-block;width:24px;height:24px;border:1px solid #d6d6d6;border-radius:4px;box-sizing:border-box}.course_logo_box img.source-icon{height:100%;width:100%;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green;width:100px}.not-started{background-color:#d13924!important}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:#ef951e29!important;text-align:center;box-sizing:border-box;border-radius:0 0 8px 8px}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}.big-text{font-size:16px}.small-text{font-size:12px!important;vertical-align:top;margin-left:4px}.course_widget{margin-top:10px}.course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.course_widget .course_v2{border:1px solid #EF951E;padding:4px 8px;align-items:end;border-radius:16px}.course_widget .main_icon{font-size:16px;width:16px;height:16px}\n"] }]
7238
7244
  }], ctorParameters: function () { return [{ type: i2.ConfigurationsService }, { type: WidgetContentLibService }]; }, propDecorators: { widgetData: [{
7239
7245
  type: Input
7240
7246
  }], contentData: [{
@@ -8068,20 +8074,20 @@ class AddCompetencyPopupComponent {
8068
8074
  submitCompetency() {
8069
8075
  this.modalRef.close(this.selectedList);
8070
8076
  }
8071
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCompetencyPopupComponent, deps: [{ token: i1$5.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
8077
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCompetencyPopupComponent, deps: [{ token: i3$1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
8072
8078
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AddCompetencyPopupComponent, selector: "sb-uic-add-competency-popup", ngImport: i0, template: "<div class=\"text-center mt-4\">\n <p mat-dialog-title class=\"ff-montserrat font-bold text-xl\">Select skills which you want to learn.</p>\n <p class=\"lato font-normal text-sm\">Based on you choice, We will recommend best suitable content for you.</p>\n</div>\n<mat-dialog-content>\n <div class=\"enrollment-list-wrapper\">\n <div class=\"flex iteams-center justify-between flex-col\">\n <div>\n <div class=\"mat-full-radius\">\n <mat-form-field appearance=\"outline\" class=\"margin-top-xs stakeholders w-full\">\n <mat-icon matPrefix>search</mat-icon>\n <input matInput #search maxlength=\"70\" i18n-placeholder placeholder=\"Search\"\n [formControl]=\"searchTextCtrl\">\n </mat-form-field>\n </div>\n <div class=\"form_item_full\">\n <div class=\"max-height-320\" *ngIf=\"selectedList && selectedList?.length > 0\">\n <div class=\"flex flex-row justify-between w-full\">\n <div class=\"flex flex-row w-90\">\n <div class=\"font-normal mt-5 w-17\">Selected Items <span\n *ngIf=\"selectedList && selectedList?.length\">({{(selectedList) ?\n (selectedList?.length) :\n '0'}})</span>\n :</div>\n <div class=\"flex flex-row flex-wrap\" [ngClass]=\"showMore ? 'w-78':''\">\n <ng-container *ngFor=\"let org of selectedList | slice : 0:sliceCount\">\n <div class=\"flex items-center orgBoxChip margin-bottom-s px-4 py-3 mt-2 ml-4\">\n <div class=\"flex-col flex-1\">\n <h3\n class=\"mat-h2 margin-remove inline-block flex-1 long-text-wrap-new-ui\">\n <span *ngIf=\"org?.orgName?.length > 25\">{{org?.orgName | slice : 0 :\n 25}}...</span>\n <span *ngIf=\"org?.orgName?.length < 25\">{{org?.orgName}}</span>\n </h3>\n </div>\n <mat-icon matPrefix\n class=\"flex items-right justify-right margin-right-0 cursor-pointer close-rounded ml-6\"\n (click)=\"removeSelectedOrg(org)\">close</mat-icon>\n </div>\n </ng-container>\n </div>\n <div class=\"more mt-5 ml-2 w-10\"\n *ngIf=\"selectedList?.length > 0 && sliceCount < selectedList?.length\">\n <a href=\"javascript:void(0)\" (click)=\"showMoreSelectedOrg()\">+{{selectedList?.length\n -\n sliceCount}}\n more</a>\n </div>\n <div class=\"more mt-5 ml-2\"\n *ngIf=\"showMore && selectedList?.length > 0 && selectedList?.length === sliceCount\">\n <a href=\"javascript:void(0)\" (click)=\"showLessSelectedOrg()\">Show less</a>\n </div>\n </div>\n <div class=\"flex flex-row mt-5 w-10 justify-end\">\n <div class=\"more\" *ngIf=\"selectedList?.length > 1 \">\n <a href=\"javascript:void(0)\" (click)=\"clearAll()\">Clear all</a>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"max-height-320 padding-left-s mt-3 border-section\">\n <div *ngFor=\"let value of orgList\" class=\"custome-checkbox margin-bottom-s\">\n <mat-checkbox (change)=\"selectedOrgChange($event.checked, value)\" [checked]=\"value.checked\">\n <div class=\"margin-left-sm\">\n <h3 class=\"margin-remove inline-block flex-1 long-text-wrap\">\n {{value.orgName}}\n </h3>\n </div>\n </mat-checkbox>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex justify-center py-4 gap-4\">\n <button mat-button mat-dialog-close class=\"mat-btn-outline\" (click)=\"cancelModal()\">Cancel</button>\n <button mat-button class=\"mat-btn-flat\" (click)=\"submitCompetency()\">Submit</button>\n</mat-dialog-actions>", styles: [".ff-montserrat{font-family:Montserrat}.section-btn{height:32px;width:100px;background-color:#fff!important;color:#0006!important;font:700 14px Lato;border-radius:16px;border:1px solid rgba(0,0,0,.4)}.section-btn.active-section-btn{background-color:#1b4ca129!important;border:1px solid #1B4CA1;color:#1b4ca1!important}.subtite-color{color:#0009}.border-bottom-c{border-bottom:2px solid rgba(0,0,0,.0784313725)!important}.long-text-wrap{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:14px;font-family:Lato;color:#000000de}.long-text-wrap-new-ui{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:131px;line-height:14px;color:#0000008a;font-size:14px;font-weight:400}.custome-icon-font-size{font-size:12px;line-height:12px}.subheading{font-size:12px;color:#0009}.custome-checkbox ::ng-deep .mat-checkbox-layout{margin-bottom:10px}.orgBox{background-color:#f5f5f5;border-radius:5px}.max-height-320{max-height:230px;overflow-y:auto}.max-height-320::-webkit-scrollbar{width:5px}.max-height-320::-webkit-scrollbar-track{background:#f1f1f1}.max-height-320::-webkit-scrollbar-thumb{background:#888;border-radius:100vw}.max-height-320::-webkit-scrollbar-thumb:hover{background:#555}.custome-slide{font-size:14px;font-weight:400!important;width:auto}.disable{opacity:.3;pointer-events:none;cursor:none}::ng-deep .stakeholders .mat-form-field-wrapper{padding:0}.border-section{border-radius:8px;border:1px solid rgba(0,0,0,.0784313725);padding:16px;background-color:#fff;padding:1.2rem}.orgBoxChip{background-color:#fff;border-radius:27px;border:1px solid rgba(0,0,0,.08);height:23px}.align-center{align-items:center}.more{color:#1b4ca1;margin-left:6px;font-weight:700;font-size:14px}.margin-right-0{margin-right:0!important}.w-90{width:90%}.w-10{width:10%}.w-78{width:78%}.w-17{width:15%}.black-text{color:#000!important}.enrollment-list-wrapper{padding:1rem}.margin-left-sm{margin-left:4px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:30px}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-end{border-radius:0 30px 30px 0!important}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-start{border-radius:30px 0 0 30px!important;flex-grow:1}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-infix{padding:6px 0 15px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(5%)}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-flex{padding:0 16px}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$3.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatLegacyDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i7$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i7$2.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i8$1.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }] }); }
8073
8079
  }
8074
8080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCompetencyPopupComponent, decorators: [{
8075
8081
  type: Component,
8076
8082
  args: [{ selector: "sb-uic-add-competency-popup", template: "<div class=\"text-center mt-4\">\n <p mat-dialog-title class=\"ff-montserrat font-bold text-xl\">Select skills which you want to learn.</p>\n <p class=\"lato font-normal text-sm\">Based on you choice, We will recommend best suitable content for you.</p>\n</div>\n<mat-dialog-content>\n <div class=\"enrollment-list-wrapper\">\n <div class=\"flex iteams-center justify-between flex-col\">\n <div>\n <div class=\"mat-full-radius\">\n <mat-form-field appearance=\"outline\" class=\"margin-top-xs stakeholders w-full\">\n <mat-icon matPrefix>search</mat-icon>\n <input matInput #search maxlength=\"70\" i18n-placeholder placeholder=\"Search\"\n [formControl]=\"searchTextCtrl\">\n </mat-form-field>\n </div>\n <div class=\"form_item_full\">\n <div class=\"max-height-320\" *ngIf=\"selectedList && selectedList?.length > 0\">\n <div class=\"flex flex-row justify-between w-full\">\n <div class=\"flex flex-row w-90\">\n <div class=\"font-normal mt-5 w-17\">Selected Items <span\n *ngIf=\"selectedList && selectedList?.length\">({{(selectedList) ?\n (selectedList?.length) :\n '0'}})</span>\n :</div>\n <div class=\"flex flex-row flex-wrap\" [ngClass]=\"showMore ? 'w-78':''\">\n <ng-container *ngFor=\"let org of selectedList | slice : 0:sliceCount\">\n <div class=\"flex items-center orgBoxChip margin-bottom-s px-4 py-3 mt-2 ml-4\">\n <div class=\"flex-col flex-1\">\n <h3\n class=\"mat-h2 margin-remove inline-block flex-1 long-text-wrap-new-ui\">\n <span *ngIf=\"org?.orgName?.length > 25\">{{org?.orgName | slice : 0 :\n 25}}...</span>\n <span *ngIf=\"org?.orgName?.length < 25\">{{org?.orgName}}</span>\n </h3>\n </div>\n <mat-icon matPrefix\n class=\"flex items-right justify-right margin-right-0 cursor-pointer close-rounded ml-6\"\n (click)=\"removeSelectedOrg(org)\">close</mat-icon>\n </div>\n </ng-container>\n </div>\n <div class=\"more mt-5 ml-2 w-10\"\n *ngIf=\"selectedList?.length > 0 && sliceCount < selectedList?.length\">\n <a href=\"javascript:void(0)\" (click)=\"showMoreSelectedOrg()\">+{{selectedList?.length\n -\n sliceCount}}\n more</a>\n </div>\n <div class=\"more mt-5 ml-2\"\n *ngIf=\"showMore && selectedList?.length > 0 && selectedList?.length === sliceCount\">\n <a href=\"javascript:void(0)\" (click)=\"showLessSelectedOrg()\">Show less</a>\n </div>\n </div>\n <div class=\"flex flex-row mt-5 w-10 justify-end\">\n <div class=\"more\" *ngIf=\"selectedList?.length > 1 \">\n <a href=\"javascript:void(0)\" (click)=\"clearAll()\">Clear all</a>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"max-height-320 padding-left-s mt-3 border-section\">\n <div *ngFor=\"let value of orgList\" class=\"custome-checkbox margin-bottom-s\">\n <mat-checkbox (change)=\"selectedOrgChange($event.checked, value)\" [checked]=\"value.checked\">\n <div class=\"margin-left-sm\">\n <h3 class=\"margin-remove inline-block flex-1 long-text-wrap\">\n {{value.orgName}}\n </h3>\n </div>\n </mat-checkbox>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex justify-center py-4 gap-4\">\n <button mat-button mat-dialog-close class=\"mat-btn-outline\" (click)=\"cancelModal()\">Cancel</button>\n <button mat-button class=\"mat-btn-flat\" (click)=\"submitCompetency()\">Submit</button>\n</mat-dialog-actions>", styles: [".ff-montserrat{font-family:Montserrat}.section-btn{height:32px;width:100px;background-color:#fff!important;color:#0006!important;font:700 14px Lato;border-radius:16px;border:1px solid rgba(0,0,0,.4)}.section-btn.active-section-btn{background-color:#1b4ca129!important;border:1px solid #1B4CA1;color:#1b4ca1!important}.subtite-color{color:#0009}.border-bottom-c{border-bottom:2px solid rgba(0,0,0,.0784313725)!important}.long-text-wrap{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:14px;font-family:Lato;color:#000000de}.long-text-wrap-new-ui{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:131px;line-height:14px;color:#0000008a;font-size:14px;font-weight:400}.custome-icon-font-size{font-size:12px;line-height:12px}.subheading{font-size:12px;color:#0009}.custome-checkbox ::ng-deep .mat-checkbox-layout{margin-bottom:10px}.orgBox{background-color:#f5f5f5;border-radius:5px}.max-height-320{max-height:230px;overflow-y:auto}.max-height-320::-webkit-scrollbar{width:5px}.max-height-320::-webkit-scrollbar-track{background:#f1f1f1}.max-height-320::-webkit-scrollbar-thumb{background:#888;border-radius:100vw}.max-height-320::-webkit-scrollbar-thumb:hover{background:#555}.custome-slide{font-size:14px;font-weight:400!important;width:auto}.disable{opacity:.3;pointer-events:none;cursor:none}::ng-deep .stakeholders .mat-form-field-wrapper{padding:0}.border-section{border-radius:8px;border:1px solid rgba(0,0,0,.0784313725);padding:16px;background-color:#fff;padding:1.2rem}.orgBoxChip{background-color:#fff;border-radius:27px;border:1px solid rgba(0,0,0,.08);height:23px}.align-center{align-items:center}.more{color:#1b4ca1;margin-left:6px;font-weight:700;font-size:14px}.margin-right-0{margin-right:0!important}.w-90{width:90%}.w-10{width:10%}.w-78{width:78%}.w-17{width:15%}.black-text{color:#000!important}.enrollment-list-wrapper{padding:1rem}.margin-left-sm{margin-left:4px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:30px}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-end{border-radius:0 30px 30px 0!important}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-start{border-radius:30px 0 0 30px!important;flex-grow:1}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-infix{padding:6px 0 15px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(5%)}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-flex{padding:0 16px}\n"] }]
8077
- }], ctorParameters: function () { return [{ type: i1$5.MatDialogRef }]; } });
8083
+ }], ctorParameters: function () { return [{ type: i3$1.MatDialogRef }]; } });
8078
8084
 
8079
8085
  class SnackbarComponent {
8080
8086
  constructor(data, snackBarRef) {
8081
8087
  this.data = data;
8082
8088
  this.snackBarRef = snackBarRef;
8083
8089
  }
8084
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SnackbarComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1$6.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component }); }
8090
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SnackbarComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1$5.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component }); }
8085
8091
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SnackbarComponent, selector: "sb-uic-snackbar", ngImport: i0, template: "<div class=\"snackbar-wrapper\">\n <div class=\"flex items-center justify-between\">\n <div class=\"message flex items-center gap-4\">\n <mat-icon *ngIf=\"data?.type === 'success'\" class=\"text-white\">check</mat-icon>\n <!-- <mat-icon *ngIf=\"data?.type === 'error'\" class=\"text-white\">close</mat-icon> -->\n <span *ngIf=\"data?.message\" class=\"text-white\">{{data?.message}}</span>\n </div>\n <div class=\"close\">\n <mat-icon class=\"cursor-pointer\" (click)=\"snackBarRef.dismiss()\" class=\"text-white\">close</mat-icon>\n </div>\n </div>\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
8086
8092
  }
8087
8093
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SnackbarComponent, decorators: [{
@@ -8090,7 +8096,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8090
8096
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
8091
8097
  type: Inject,
8092
8098
  args: [MAT_SNACK_BAR_DATA]
8093
- }] }, { type: i1$6.MatSnackBarRef }]; } });
8099
+ }] }, { type: i1$5.MatSnackBarRef }]; } });
8094
8100
 
8095
8101
  class ConfirmationDialogComponent {
8096
8102
  constructor(dialogRef, data) {
@@ -10965,7 +10971,7 @@ class ContentStripWithTabsPillsComponent extends WidgetBaseComponent {
10965
10971
  this.stripsResultDataMap[strip.key].showOnLoader = false;
10966
10972
  }
10967
10973
  }
10968
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripWithTabsPillsComponent, deps: [{ token: 'environment' }, { token: WidgetContentLibService }, { token: i2.LoggerService }, { token: i2.EventService }, { token: i2.ConfigurationsService }, { token: i2.UtilityService }, { token: i1$1.Router }, { token: WidgetUserServiceLib }, { token: i2$1.TranslateService }, { token: MultilingualTranslationsService }, { token: i2.WidgetEnrollService }, { token: i1$5.MatDialog }, { token: i1$6.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
10974
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripWithTabsPillsComponent, deps: [{ token: 'environment' }, { token: WidgetContentLibService }, { token: i2.LoggerService }, { token: i2.EventService }, { token: i2.ConfigurationsService }, { token: i2.UtilityService }, { token: i1$1.Router }, { token: WidgetUserServiceLib }, { token: i2$1.TranslateService }, { token: MultilingualTranslationsService }, { token: i2.WidgetEnrollService }, { token: i3$1.MatDialog }, { token: i1$5.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
10969
10975
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContentStripWithTabsPillsComponent, selector: "sb-uic-content-strip-with-tabs-pills", inputs: { widgetData: "widgetData", providerId: "providerId", emitViewAll: "emitViewAll", channnelName: "channnelName" }, outputs: { emptyResponse: "emptyResponse", viewAllResponse: "viewAllResponse", telemtryResponse: "telemtryResponse" }, host: { properties: { "id": "this.id" } }, usesInheritance: true, ngImport: i0, 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]) && canShowHeading(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])\" class=\"block md:hidden\">\n <div class=\"ml-4 pl-2 view-more ws-mat-default-text \">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\"\n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n\n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0]?.viewMoreUrl?.viewMoreText,'home')\n || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\"\n color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\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 <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 padding-bottom-tabs\" dynamicHeight\n (selectedIndexChange)=\"tabClicked($event, 0, stripsResultDataMap[key], key)\">\n <ng-container *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;let tabIndex = index\">\n <mat-tab *ngIf=\"!tab?.hideTab\">\n <ng-template mat-tab-label>\n <ng-container *ngIf=\"tab?.value !== sakshamAIEnum.SakshamAI\">\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <span *ngIf=\"tab?.showTabDataCount && tab?.widgets?.length\">({{tab?.widgets?.length}})</span>\n </ng-container>\n <ng-container *ngIf=\"tab?.value === sakshamAIEnum.SakshamAI\">\n <div class=\"flex items-center\">\n <img src=\"/assets/images/sakshamAI/ai-icon.svg\" alt=\"loader\" width=\"16\" height=\"16\"\n class=\"mr-2\">\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <mat-icon svgIcon=\"info-outline\"\n class=\"margin-remove w-16-px cursor-pointer request-id-toolTip m-px\"\n [matTooltip]=\"'home.sakshamAITooltip' | translate\" [matTooltipPosition]=\"'above'\"\n matTooltipClass=\"request-id-toolTip\"></mat-icon>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"wfull wrapper-saksham\"\n *ngIf=\"tab?.pillsData && tab?.pillsData?.length && !tab?.hideTab\"\n [ngClass]=\"{'overlay-max-height': recommendationPopup || sakshamFeedbackPopup}\">\n <div class=\"pt-3 flex justify-between item-center\">\n <ng-container *ngIf=\"tab?.value !== sakshamAIEnum.SakshamAI\">\n <div class=\" flex items-center\">\n <mat-chip-list class=\"content-pill\" aria-label=\"Fish selection\">\n <ng-container *ngFor=\"let pill of tab?.pillsData;let p = index\">\n <mat-chip [selected]=\"pill?.selected\"\n (click)=\"pillClicked($event, stripsResultDataMap[key], key, p, tabIndex)\">\n <span class=\"pill-name\">{{pill?.label}}</span></mat-chip>\n </ng-container>\n </mat-chip-list>\n </div>\n </ng-container>\n <!-- viewAll start-->\n <div\n *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key]) && tab?.value !== sakshamAIEnum.SakshamAI\"\n class=\" hidden md:block\">\n <div class=\"ml-4 pl-2 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\"\n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n\n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0]?.viewMoreUrl?.viewMoreText,'home')\n || 'See all'}}</span>\n <mat-icon\n class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\"\n color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n </div>\n <!-- viewAll end-->\n </div>\n <div *ngIf=\"(stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus) && !sakshamLoader\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [id]=\"key+'-scroller'\" [loadStatus]=\"'fetching'\"\n [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container\n *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 <ng-container\n *ngIf=\"tab?.pillsData && tab?.pillsData.length && tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]\">\n <div\n *ngIf=\"((tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus && tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus === 'done') &&\n (!tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets || !tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets?.length))\">\n <ng-container\n *ngIf=\"tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.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\">{{\n 'contentstripmultiple.getReadyForLearningAdventure' | translate }} -\n <a class=\"click-here\"\n [routerLink]=\"tab?.label === 'Events' ? '/app/event-hub/home':'/page/learn'\">{{\n 'contentstripmultiple.clickHere' | translate }}</a> <span\n *ngIf=\" tab?.label === 'Events'\">{{'contentstripmultiple.toEnrollNextEvents' |\n translate }}</span>\n <span *ngIf=\" tab?.label !== 'Events'\">{{ 'contentstripmultiple.toEnrollNextCourse' |\n translate }}</span>\n </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\">{{\n translateLabels(tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.nodataMsg,\n 'home') }}</div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"(tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus === 'done' || tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.tabLoading\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\"\n [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [widgetsLength]=\"tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.value === sakshamAIEnum.SakshamAI ? maxWidgetsSakshamAI : tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\"\n [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\" [extraMeta]=\"tab\">\n <!-- <ng-container\n *ngFor=\"let widget of tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets| slice:0:(tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container> -->\n <ng-container\n *ngFor=\"let widget of tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets | slice:0:(\n tab?.value === sakshamAIEnum.SakshamAI \n ? maxWidgetsSakshamAI \n : tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || \n defaultMaxWidgets\n ); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n\n </sb-uic-horizontal-scroller-v2>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"tab?.value === sakshamAIEnum.SakshamAI\">\n <ng-container *ngIf=\"recommendationPopup\">\n <div class=\"greet-overlay\" @fadeInOut>\n <img src=\"/assets/images/sakshamAI/lady-greet.svg\" alt=\"greet\" width=\"106\">\n <div class=\"overlay-text mt-4 text-white\">\n {{'home.sakshamaidesc' | translate}}\n </div>\n <button mat-raised-button class=\"overlay-button\"\n (click)=\"recommendationPopup = false\">{{'profileInfo.ok' | translate}}</button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"sakshamFeedbackPopup\" >\n <div class=\"greet-overlay feedback-overlay\" @fadeInOut>\n <div class=\"overlay-text mt-4 text-white\">\n {{'home.sakshamaifeedbackText' | translate}}\n </div>\n <mat-form-field class=\"feedback-text w-4/5 mt-4\" appearance=\"outline\">\n <textarea matInput placeholder=\"Enter your feedback...\" rows=\"4\" #feedback [maxLength]=\"500\"></textarea>\n </mat-form-field>\n <div class=\"action-feedback mt-4 flex gap-4 justify-center items-center\">\n <button mat-raised-button class=\"overlay-button\"\n (click)=\"saveFeedback(feedback.value)\">{{'userProfile.submit' | translate}}\n </button>\n <button mat-raised-button class=\"overlay-button-transparent\"\n (click)=\"cancelFeedbackPopup()\">{{'userProfile.cancel' | translate}}</button>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"sakshamAddCompetency\">\n <div class=\"text-center py-6\">\n <div class=\"saksham-load-text text-sm font-normal lato\">\n Let us know what do you want to learn today!\n </div>\n <button mat-raised-button class=\"overlay-button mt-4\" (click)=\"addCompetency()\">\n <mat-icon class=\"mb-1\">add</mat-icon>\n Add Competency</button>\n\n </div>\n </ng-container>\n\n <!-- Loader and Content -->\n <ng-container *ngIf=\"sakshamLoader\">\n <div class=\"w-full text-center py-6\">\n <img src=\"/assets/images/sakshamAI/saksham_ai_loader-2.gif\" alt=\"loader\" class=\"mb-3\"\n width=\"100\" height=\"100\">\n <div class=\"saksham-load-text text-sm font-normal lato\">\n {{'home.sakshamaiLoaderText' | translate}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n </mat-tab>\n </ng-container>\n </mat-tab-group>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>", 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}.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.padding-bottom-tabs .mat-tab-body{padding: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:0px 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}::ng-deep .mat-tab-header-pagination{display:none!important}.click-here{color:#1b4ca1}.info-content{opacity:1;color:#000000de;font:700 14px/20px Lato-Bold;text-align:center}.active{background:#1b4ca1!important}.active .pill-name{color:#fff!important}::ng-deep .content-pill .mat-chip-selected{background-color:#1b4ca1!important}::ng-deep .content-pill .mat-chip-selected .pill-name{color:#fff!important}.saksham-load-text{line-height:16.8px}.lato{font-family:Lato}.wrapper-saksham{position:relative}.overlay-max-height{min-height:348px}.greet-overlay{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:999;background:#0000008f;border-radius:12px}.overlay-text{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;max-width:454px}.overlay-button,.overlay-button-transparent{margin-top:20px;color:#000!important;height:40px;border-radius:41px;font-size:14px;font-weight:700!important}.overlay-button-transparent{background:transparent!important;border:1px solid #ffffff;color:#fff!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:4px}::ng-deep .request-id-toolTip.mat-icon{width:16px!important;margin-top:-3px!important;vertical-align:middle;height:16px}\n"], dependencies: [{ kind: "directive", type: i7.SbUiResolverDirective, selector: "[sbUiResolverWidget]", inputs: ["sbUiResolverWidget"] }, { kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: HorizontalScrollerV2Component, selector: "sb-uic-horizontal-scroller-v2", inputs: ["loadStatus", "id", "onHover", "sliderConfig", "widgetsLength", "defaultMaxWidgets", "stripConfig", "extraMeta"], outputs: ["loadNext"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i14.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i14.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8$1.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], animations: [fadeAnimation] }); }
10970
10976
  }
10971
10977
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripWithTabsPillsComponent, decorators: [{
@@ -10974,7 +10980,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10974
10980
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
10975
10981
  type: Inject,
10976
10982
  args: ['environment']
10977
- }] }, { type: WidgetContentLibService }, { type: i2.LoggerService }, { type: i2.EventService }, { type: i2.ConfigurationsService }, { type: i2.UtilityService }, { type: i1$1.Router }, { type: WidgetUserServiceLib }, { type: i2$1.TranslateService }, { type: MultilingualTranslationsService }, { type: i2.WidgetEnrollService }, { type: i1$5.MatDialog }, { type: i1$6.MatSnackBar }]; }, propDecorators: { widgetData: [{
10983
+ }] }, { type: WidgetContentLibService }, { type: i2.LoggerService }, { type: i2.EventService }, { type: i2.ConfigurationsService }, { type: i2.UtilityService }, { type: i1$1.Router }, { type: WidgetUserServiceLib }, { type: i2$1.TranslateService }, { type: MultilingualTranslationsService }, { type: i2.WidgetEnrollService }, { type: i3$1.MatDialog }, { type: i1$5.MatSnackBar }]; }, propDecorators: { widgetData: [{
10978
10984
  type: Input
10979
10985
  }], emptyResponse: [{
10980
10986
  type: Output
@@ -12958,7 +12964,991 @@ class MdoChannelV2Component {
12958
12964
  && this.route.snapshot.data.formData.data.result.form
12959
12965
  && this.route.snapshot.data.formData.data.result.form.data
12960
12966
  && this.route.snapshot.data.formData.data.result.form.data.sectionList) {
12961
- this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList;
12967
+ this.sectionList = [
12968
+ {
12969
+ "active": true,
12970
+ "enabled": true,
12971
+ "title": "",
12972
+ "key": "sectionTopBanner",
12973
+ "order": 1,
12974
+ "column": [
12975
+ {
12976
+ "active": true,
12977
+ "enabled": true,
12978
+ "key": "topSection",
12979
+ "title": "",
12980
+ "colspan": 12,
12981
+ "background": "",
12982
+ "bannerBackgroudClass": "web-banner-background",
12983
+ "data": {
12984
+ "background": "#1B4CA1",
12985
+ "logo": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745380667949_Maharashtra Logo Strip.png",
12986
+ "logoMobile": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745380774459_Logo 4.jpeg",
12987
+ "bannerBackgroundWebMobile": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1735299398814_ctd_logo.png",
12988
+ "title": "महाराष्ट्र टेक लर्निंग वीक",
12989
+ "titleClass": "main-title",
12990
+ "titleColor": "#fca311",
12991
+ "subTitle": "",
12992
+ "subTitleClass": "sub-title",
12993
+ "subTitleColor": "#FFFFFF",
12994
+ "subTitleColorMobile": "#000",
12995
+ "subTitleTwo": "महाराष्ट्र",
12996
+ "subTitleColorTwo": "#FFFFFF",
12997
+ "subTitleColorTwoMobile": "#000",
12998
+ "description": "महाराष्ट्र नेहमीच प्रगतीच्या अग्रस्थानी राहिला आहे. शिक्षण, आरोग्य, उद्योग, कृषी आणि प्रशासन या क्षेत्रांमध्ये नवोन्मेषाला प्रोत्साहन देत आला आहे. डिजिटल युगातील परिवर्तनाच्या गतीनुसार त्याच्या बरोबरीने शासकीय कामकाज देखील विकसित होणं आवश्यक आहे. टेक-वारी - महाराष्ट्राचा टेक लर्निंग वीक, हे त्या दृष्टीने एक पाउल आहे. ज्यात तंत्रज्ञान, परंपरा आणि परिवर्तन यांच्या त्रिवेणी संगमाच्या माध्यमातून शासकीय कर्मचारी लोकाभिमुख प्रशासनासाठी सज्ज होईल.",
12999
+ "descriptionColor": "#FFFFFF",
13000
+ "sliderData": {
13001
+ "styleData": {
13002
+ "bannerMetaClass": "",
13003
+ "bannerMeta": "visible",
13004
+ "bannerMetaAlign": "right",
13005
+ "navigationArrows": "visible",
13006
+ "borderRadius": "12px",
13007
+ "customHeight": "334px",
13008
+ "arrowsPlacement": "",
13009
+ "imageBorderWidth": 3,
13010
+ "imageBorderColor": "#FFFFFF",
13011
+ "imageBorderStyle": "solid",
13012
+ "responsive": {
13013
+ "bannerMetaClass": "inline-meta",
13014
+ "customHeight": "232px",
13015
+ "bannerMetaAlign": "center",
13016
+ "navigationArrows": "visible",
13017
+ "dots": "hidden",
13018
+ "arrowsPlacement": "middle-inline"
13019
+ }
13020
+ },
13021
+ "sliders": [
13022
+ {
13023
+ "active": true,
13024
+ "banners": {
13025
+ "l": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13026
+ "m": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13027
+ "s": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13028
+ "xl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13029
+ "xs": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13030
+ "xxl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg"
13031
+ },
13032
+ "redirectUrl": "",
13033
+ "queryParams": {},
13034
+ "title": ""
13035
+ },
13036
+ {
13037
+ "active": true,
13038
+ "banners": {
13039
+ "l": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13040
+ "m": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13041
+ "s": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13042
+ "xl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13043
+ "xs": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13044
+ "xxl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg"
13045
+ },
13046
+ "redirectUrl": "",
13047
+ "queryParams": {},
13048
+ "title": ""
13049
+ }
13050
+ ]
13051
+ },
13052
+ "metrics": {
13053
+ "background": "#1B4CA1",
13054
+ "data": [
13055
+ {
13056
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061821837287424110/artifact/do_114061821837287424110_1716531049564_network.svg",
13057
+ "iconColor": "#FFFFFF",
13058
+ "value": "9876",
13059
+ "valueColor": "#FFFFFF",
13060
+ "label": "Total Users",
13061
+ "labelColor": "#FFFFFF",
13062
+ "linebreak": false,
13063
+ "background": "#1B4CA1"
13064
+ },
13065
+ {
13066
+ "icon": "https://portal.karmayogiqa.nic.in/content-store/orgStore/0135071359030722569/1715676445834_badges.svg",
13067
+ "iconColor": "#FFFFFF",
13068
+ "value": "2678",
13069
+ "valueColor": "#FFFFFF",
13070
+ "label": "Certificates",
13071
+ "labelColor": "#FFFFFF",
13072
+ "linebreak": false,
13073
+ "background": "#1B4CA1"
13074
+ },
13075
+ {
13076
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061824512778240111/artifact/do_114061824512778240111_1716531357219_knowledge-resources.svg",
13077
+ "iconColor": "#FFFFFF",
13078
+ "value": "9867",
13079
+ "valueColor": "#FFFFFF",
13080
+ "label": "Enrolments",
13081
+ "labelColor": "#FFFFFF",
13082
+ "linebreak": false,
13083
+ "background": "#1B4CA1"
13084
+ },
13085
+ {
13086
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061847565107200114/artifact/do_114061847565107200114_1716534165064_program1.svg",
13087
+ "iconColor": "#FFFFFF",
13088
+ "value": "12",
13089
+ "valueColor": "#FFFFFF",
13090
+ "label": "Content Published",
13091
+ "labelColor": "#FFFFFF",
13092
+ "linebreak": false,
13093
+ "background": "#1B4CA1"
13094
+ },
13095
+ {
13096
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061826604261376113/artifact/do_114061826604261376113_1716531614554_percent.svg",
13097
+ "iconColor": "#FFFFFF",
13098
+ "value": "40",
13099
+ "valueColor": "#FFFFFF",
13100
+ "label": "24hr Login",
13101
+ "labelColor": "#FFFFFF",
13102
+ "linebreak": false,
13103
+ "background": "#1B4CA1"
13104
+ }
13105
+ ]
13106
+ }
13107
+ }
13108
+ }
13109
+ ]
13110
+ },
13111
+ {
13112
+ "active": true,
13113
+ "enabled": true,
13114
+ "title": "",
13115
+ "key": "sectionLookerpro",
13116
+ "order": 4,
13117
+ "column": [
13118
+ {
13119
+ "active": true,
13120
+ "enabled": true,
13121
+ "key": "lookerSection",
13122
+ "title": "",
13123
+ "colspan": 12,
13124
+ "background": "banner",
13125
+ "data": {
13126
+ "header": {
13127
+ "headerText": "Performance Dashboard",
13128
+ "description": "View MDO performance based on their learning activities for the week, with real-time insights into progress, engagement, and development across various MDOs."
13129
+ },
13130
+ "disableDynamicHeight": false,
13131
+ "mobileHeight": "500px",
13132
+ "desktopHeight": "280px",
13133
+ "lookerProDesktopUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D",
13134
+ "lookerProMobileUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D"
13135
+ }
13136
+ }
13137
+ ]
13138
+ },
13139
+ {
13140
+ "active": false,
13141
+ "enabled": false,
13142
+ "title": "",
13143
+ "key": "sectionTopLearners",
13144
+ "order": 2,
13145
+ "column": [
13146
+ {
13147
+ "active": true,
13148
+ "enabled": true,
13149
+ "key": "topLearners",
13150
+ "title": "Top 10 Learners",
13151
+ "colspan": 12,
13152
+ "background": "",
13153
+ "data": {
13154
+ "title": "Top 10 Learners",
13155
+ "enableMonth": false,
13156
+ "titleFontColor": "#000000",
13157
+ "kpIcon": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1728035311295_karma-badge.svg",
13158
+ "learners": [],
13159
+ "customClass": "min-h-20",
13160
+ "cardHeight": "64px",
13161
+ "carMinHeight": "100px",
13162
+ "hideEle": [
13163
+ "karma-points"
13164
+ ]
13165
+ }
13166
+ }
13167
+ ]
13168
+ },
13169
+ {
13170
+ "active": true,
13171
+ "enabled": true,
13172
+ "title": "",
13173
+ "key": "sectionMain",
13174
+ "order": 3,
13175
+ "wrapperClass": "",
13176
+ "column": [
13177
+ {
13178
+ "active": true,
13179
+ "enabled": true,
13180
+ "key": "mainContent",
13181
+ "title": "",
13182
+ "colspan": 12,
13183
+ "background": "",
13184
+ "data": {
13185
+ "tabSection": {
13186
+ "colspan": 8,
13187
+ "disable": true,
13188
+ "contentTab": [
13189
+ {
13190
+ "active": false,
13191
+ "enabled": false,
13192
+ "title": "Certifications of the Week",
13193
+ "navigation": true,
13194
+ "key": "sectionCertificationsOfWeeks",
13195
+ "order": 3,
13196
+ "navOrder": 1,
13197
+ "column": [
13198
+ {
13199
+ "active": true,
13200
+ "enabled": true,
13201
+ "key": "contentcertificationsOfWeekStrip",
13202
+ "title": "Recommended Courses",
13203
+ "data": {
13204
+ "sectionImagePosition": "img-left",
13205
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13206
+ "order": 4,
13207
+ "strips": [
13208
+ {
13209
+ "active": true,
13210
+ "key": "certificationsOfWeek",
13211
+ "logo": "school",
13212
+ "title": "Certifications of the Week",
13213
+ "stripTitleLink": {
13214
+ "link": "",
13215
+ "icon": ""
13216
+ },
13217
+ "customeClass": "min-width-763",
13218
+ "sliderConfig": {
13219
+ "showNavs": true,
13220
+ "showDots": true,
13221
+ "maxWidgets": 12,
13222
+ "showNavsSpacing": true,
13223
+ "cerificateCardMargin": true
13224
+ },
13225
+ "loader": true,
13226
+ "stripBackground": "",
13227
+ "titleDescription": "Certifications of the Week",
13228
+ "stripConfig": {
13229
+ "cardSubType": "card-wide-v2"
13230
+ },
13231
+ "loaderConfig": {
13232
+ "cardSubType": "card-wide-v2-skelton"
13233
+ },
13234
+ "viewMoreUrl": {
13235
+ "path": "/app/seeAll",
13236
+ "viewMoreText": "Show all",
13237
+ "queryParams": {
13238
+ "key": "certificationsOfWeek"
13239
+ },
13240
+ "loaderConfig": {
13241
+ "cardSubType": "card-portrait-click-skeleton"
13242
+ },
13243
+ "stripConfig": {
13244
+ "cardSubType": "card-portrait-click"
13245
+ }
13246
+ },
13247
+ "tabs": [],
13248
+ "filters": [],
13249
+ "request": {
13250
+ "trendingSearch": {
13251
+ "request": {
13252
+ "filters": {
13253
+ "contextType": [
13254
+ "certifications"
13255
+ ],
13256
+ "organisation": "<orgID>"
13257
+ },
13258
+ "limit": 5
13259
+ },
13260
+ "responseKey": "certifications"
13261
+ }
13262
+ }
13263
+ }
13264
+ ]
13265
+ }
13266
+ }
13267
+ ]
13268
+ },
13269
+ {
13270
+ "active": false,
13271
+ "enabled": false,
13272
+ "title": "Trending",
13273
+ "navigation": true,
13274
+ "key": "sectionRecommendedProgram",
13275
+ "order": 3,
13276
+ "navOrder": 1,
13277
+ "column": [
13278
+ {
13279
+ "active": true,
13280
+ "enabled": true,
13281
+ "key": "contentRecommendedProgramStrip",
13282
+ "title": "Popular courses",
13283
+ "data": {
13284
+ "sectionImagePosition": "img-left",
13285
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13286
+ "order": 4,
13287
+ "strips": [
13288
+ {
13289
+ "active": true,
13290
+ "customeClass": "width-238",
13291
+ "key": "recommendedProgram",
13292
+ "logo": "school",
13293
+ "disableTranslate": true,
13294
+ "title": "Trending",
13295
+ "stripTitleLink": {
13296
+ "link": "",
13297
+ "icon": ""
13298
+ },
13299
+ "sliderConfig": {
13300
+ "showNavs": true,
13301
+ "showDots": true,
13302
+ "maxWidgets": 12,
13303
+ "showNavsSpacing": true
13304
+ },
13305
+ "stripBackground": "",
13306
+ "titleDescription": "Recently Added",
13307
+ "stripConfig": {
13308
+ "cardSubType": "card-portrait-lib"
13309
+ },
13310
+ "viewMoreUrl": {
13311
+ "path": "/app/seeAll",
13312
+ "viewMoreText": "Show all",
13313
+ "queryParams": {
13314
+ "key": "recentlyAdded"
13315
+ },
13316
+ "loaderConfig": {
13317
+ "cardSubType": "card-portrait-lib-skeleton"
13318
+ },
13319
+ "stripConfig": {
13320
+ "cardSubType": "card-portrait-lib"
13321
+ }
13322
+ },
13323
+ "loader": true,
13324
+ "loaderConfig": {
13325
+ "cardSubType": "card-portrait-lib-skeleton"
13326
+ },
13327
+ "tabsType": "pills-tab",
13328
+ "tabs": [
13329
+ {
13330
+ "label": "Courses",
13331
+ "value": "course",
13332
+ "computeDataOnClick": false,
13333
+ "computeDataOnClickKey": "",
13334
+ "requestRequired": true,
13335
+ "showTabDataCount": false,
13336
+ "maxWidgets": 12,
13337
+ "nodataMsg": "nocontent",
13338
+ "request": {
13339
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13340
+ "playlistRead": {
13341
+ "type": "MDO_RECOMMENDED_COURSES"
13342
+ }
13343
+ }
13344
+ },
13345
+ {
13346
+ "label": "Programs",
13347
+ "value": "program",
13348
+ "computeDataOnClick": false,
13349
+ "computeDataOnClickKey": "",
13350
+ "requestRequired": true,
13351
+ "showTabDataCount": false,
13352
+ "maxWidgets": 12,
13353
+ "nodataMsg": "nocontent",
13354
+ "request": {
13355
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13356
+ "playlistRead": {
13357
+ "type": "MDO_RECOMMENDED_PROGRAMS"
13358
+ }
13359
+ }
13360
+ }
13361
+ ],
13362
+ "filters": [],
13363
+ "request": {
13364
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13365
+ "playlistRead": {
13366
+ "type": "MDO_RECOMMENDED_PROGRAMS"
13367
+ }
13368
+ }
13369
+ }
13370
+ ]
13371
+ }
13372
+ }
13373
+ ]
13374
+ },
13375
+ {
13376
+ "active": false,
13377
+ "enabled": false,
13378
+ "title": "Featured",
13379
+ "navigation": true,
13380
+ "key": "sectionFeatureCourses",
13381
+ "order": 3,
13382
+ "navOrder": 1,
13383
+ "column": [
13384
+ {
13385
+ "active": true,
13386
+ "enabled": true,
13387
+ "key": "contentFeaturedStrip",
13388
+ "title": "Featured",
13389
+ "data": {
13390
+ "sectionImagePosition": "img-left",
13391
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13392
+ "order": 4,
13393
+ "strips": [
13394
+ {
13395
+ "active": true,
13396
+ "customeClass": "width-238",
13397
+ "key": "featuredCourses",
13398
+ "logo": "school",
13399
+ "disableTranslate": true,
13400
+ "title": "Featured",
13401
+ "stripTitleLink": {
13402
+ "link": "",
13403
+ "icon": ""
13404
+ },
13405
+ "sliderConfig": {
13406
+ "showNavs": true,
13407
+ "showDots": true,
13408
+ "maxWidgets": 12,
13409
+ "showNavsSpacing": true
13410
+ },
13411
+ "stripBackground": "",
13412
+ "titleDescription": "Recently Added",
13413
+ "stripConfig": {
13414
+ "cardSubType": "card-portrait-lib"
13415
+ },
13416
+ "viewMoreUrl": {
13417
+ "path": "/app/seeAll",
13418
+ "viewMoreText": "Show all",
13419
+ "queryParams": {
13420
+ "key": "recentlyAdded"
13421
+ },
13422
+ "loaderConfig": {
13423
+ "cardSubType": "card-portrait-lib-skeleton"
13424
+ },
13425
+ "stripConfig": {
13426
+ "cardSubType": "card-portrait-lib"
13427
+ }
13428
+ },
13429
+ "loader": true,
13430
+ "loaderConfig": {
13431
+ "cardSubType": "card-portrait-lib-skeleton"
13432
+ },
13433
+ "tabsType": "pills-tab",
13434
+ "tabs": [
13435
+ {
13436
+ "label": "Courses",
13437
+ "value": "course",
13438
+ "computeDataOnClick": false,
13439
+ "computeDataOnClickKey": "",
13440
+ "requestRequired": true,
13441
+ "showTabDataCount": false,
13442
+ "maxWidgets": 12,
13443
+ "nodataMsg": "nocontent",
13444
+ "request": {
13445
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13446
+ "playlistRead": {
13447
+ "type": "MDO_FEATURED_COURSES"
13448
+ }
13449
+ }
13450
+ },
13451
+ {
13452
+ "label": "Programs",
13453
+ "value": "program",
13454
+ "computeDataOnClick": false,
13455
+ "computeDataOnClickKey": "",
13456
+ "requestRequired": true,
13457
+ "showTabDataCount": false,
13458
+ "maxWidgets": 12,
13459
+ "nodataMsg": "nocontent",
13460
+ "request": {
13461
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13462
+ "playlistRead": {
13463
+ "type": "MDO_FEATURED_PROGRAMS"
13464
+ }
13465
+ }
13466
+ }
13467
+ ],
13468
+ "filters": [],
13469
+ "request": {
13470
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13471
+ "playlistRead": {
13472
+ "type": "MDO_FEATURED_COURSES"
13473
+ }
13474
+ }
13475
+ }
13476
+ ]
13477
+ }
13478
+ }
13479
+ ]
13480
+ }
13481
+ ],
13482
+ "coreAreasTab": [
13483
+ {
13484
+ "active": false,
13485
+ "enabled": false,
13486
+ "title": "Core Expertise",
13487
+ "navigation": true,
13488
+ "key": "sectionCompetency",
13489
+ "order": 5,
13490
+ "navOrder": 3,
13491
+ "column": [
13492
+ {
13493
+ "active": true,
13494
+ "enabled": true,
13495
+ "key": "competency",
13496
+ "title": "",
13497
+ "colspan": 12,
13498
+ "background": "",
13499
+ "data": []
13500
+ }
13501
+ ]
13502
+ }
13503
+ ],
13504
+ "tabs": [
13505
+ {
13506
+ "name": "content"
13507
+ },
13508
+ {
13509
+ "name": "Core Areas"
13510
+ }
13511
+ ]
13512
+ },
13513
+ "announcementSection": {
13514
+ "disable": true,
13515
+ "colspan": 4,
13516
+ "data": {
13517
+ "title": "Key Announcements",
13518
+ "logoUrl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1728035426855_key-announcements1.svg",
13519
+ "mobileIcon": "https://portal.karmayogi.nic.in/content-store/content/do_114061893940887552115/artifact/do_114061893940887552115_1716539807520_campaign_black.svg",
13520
+ "header": {
13521
+ "background": "#1B4CA1",
13522
+ "color": "#FFFFFF"
13523
+ },
13524
+ "panelborder": "#1B4CA1",
13525
+ "panelBackground": "#FFFFFF",
13526
+ "listItem": {
13527
+ "border": "#F3962F",
13528
+ "background": "#FCEEDB"
13529
+ },
13530
+ "ViewMoreColor": "#1B4CA1",
13531
+ "pageSize": 15,
13532
+ "list": [
13533
+ {
13534
+ "value": "Hon. Chief Minister of Gujarat will launch MDO Channel of SPIPA on IGoT Karmayogi Portal on occasion of Good Governance Day.",
13535
+ "expanded": false
13536
+ },
13537
+ {
13538
+ "value": "Hon. Chief Minister of Gujarat will launch MDO Channel of SPIPA on IGoT Karmayogi Portal on occasion of Good Governance Day.",
13539
+ "expanded": false
13540
+ }
13541
+ ]
13542
+ }
13543
+ },
13544
+ "stateLearningWeekSection": {
13545
+ "lookerSection": {
13546
+ "active": true,
13547
+ "enabled": true,
13548
+ "key": "lookerSection",
13549
+ "title": "",
13550
+ "colspan": 12,
13551
+ "background": "banner",
13552
+ "data": {
13553
+ "header": {
13554
+ "headerText": "Performance Dashboard",
13555
+ "description": "View MDO performance based on their learning activities for the week, with real-time insights into progress, engagement, and development across various MDOs."
13556
+ },
13557
+ "lookerProDesktopUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D",
13558
+ "lookerProMobileUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D"
13559
+ }
13560
+ },
13561
+ "keyHighlights": {
13562
+ "enabled": true,
13563
+ "backgroundColor": "#FFFFFF",
13564
+ "titleMaxLength": 200,
13565
+ "content": [
13566
+ {
13567
+ "title": "Enroll in the courses and contribute to your continuous learning journey and growth"
13568
+ },
13569
+ {
13570
+ "title": "Be a learning champion - complete courses and inspire your peers on iGOT!"
13571
+ }
13572
+ ],
13573
+ "sliderData": {
13574
+ "styleData": {
13575
+ "borderRadius": "0",
13576
+ "customHeight": "100px",
13577
+ "bannerMeta": "visible",
13578
+ "dots": "hidden",
13579
+ "arrowsPlacement": "middle-inline",
13580
+ "responsive": {
13581
+ "customHeight": "80px",
13582
+ "bannerMetaAlign": "left",
13583
+ "navigationArrows": "visible",
13584
+ "dots": "hidden",
13585
+ "arrowsPlacement": "middle-inline"
13586
+ }
13587
+ }
13588
+ }
13589
+ },
13590
+ "speakerOftheDay": {
13591
+ "enabled": false,
13592
+ "data": {
13593
+ "title": "Speaker of the day",
13594
+ "infoText": "Join insightful webinars and masterclasses hosted by prominent speakers and thought leaders.",
13595
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13596
+ "sliderData": {
13597
+ "styleData": {
13598
+ "borderRadius": "12px",
13599
+ "customHeight": "",
13600
+ "bannerMeta": "visible",
13601
+ "bannerMetaClass": "cbp-card-1",
13602
+ "responsive": {
13603
+ "bannerMetaClass": "cbp-card-1"
13604
+ }
13605
+ }
13606
+ },
13607
+ "list": [
13608
+ {
13609
+ "title": "Ms Arushi Malhotra",
13610
+ "description": "Beyond the Desk: Using Behavioral Science to Improve Workplace Well-Being",
13611
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742617698083_IMG_9084.jpg",
13612
+ "identifier": "do_1142743067745812481229"
13613
+ },
13614
+ {
13615
+ "title": "Prof Bimlesh Kumar Singh",
13616
+ "description": "Maintenance of Transformers",
13617
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742617868268_Bimlesh.jpg",
13618
+ "identifier": "do_1142743211854888961161"
13619
+ },
13620
+ {
13621
+ "title": "Prof. Dr. Sanjukkta Bhaduril",
13622
+ "description": "Resilient tourism infrastructure for Rajasthan Islands",
13623
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742618016728_Dr. Sanjukkta.jpeg",
13624
+ "identifier": "do_1142743114401218561137"
13625
+ }
13626
+ ]
13627
+ }
13628
+ },
13629
+ "weekHighlights": {
13630
+ "enabled": true,
13631
+ "data": {
13632
+ "title": "Highlights of the week",
13633
+ "sliderData": {
13634
+ "styleData": {
13635
+ "borderRadius": "12px",
13636
+ "customHeight": "",
13637
+ "bannerMetaClass": "cbp-card",
13638
+ "responsive": {
13639
+ "bannerMetaClass": "cbp-card"
13640
+ }
13641
+ }
13642
+ },
13643
+ "list": [
13644
+ {
13645
+ "title": "Get ready for Maharashtra Tech Learning Week",
13646
+ "description": "Tech-Wari, Maharashtra’s Tech Learning Week, blends technology, tradition & transformation—empowering government employees for citizen-first governance through future-ready digital learning.",
13647
+ "videoUrl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745394867601_IMG_8833.MP4"
13648
+ }
13649
+ ]
13650
+ }
13651
+ },
13652
+ "myprogress": {
13653
+ "enabled": true,
13654
+ "data": {
13655
+ "title": "Your week's progress",
13656
+ "infoText": "During Rajya Karmayogi Saptah, stay informed about your learning journey. Monitor your Learning Hours, and earn Certificates.",
13657
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13658
+ "profleDetails": {},
13659
+ "hideEle": [
13660
+ "karma-points"
13661
+ ],
13662
+ "insights": {
13663
+ "data": {
13664
+ "sliderData": {
13665
+ "styleData": {
13666
+ "borderRadius": "12px",
13667
+ "customHeight": "83px",
13668
+ "bannerMeta": "visible",
13669
+ "bannerMetaClass": "cbp-card",
13670
+ "responsive": {
13671
+ "bannerMetaClass": "cbp-card",
13672
+ "customHeight": "83px"
13673
+ }
13674
+ }
13675
+ }
13676
+ }
13677
+ }
13678
+ }
13679
+ },
13680
+ "mdoLeaderboard": {
13681
+ "enabled": true,
13682
+ "data": {
13683
+ "title": "Leaderboard",
13684
+ "infoText": "Celebrate top performers! The leaderboard showcases the Departments and Organizations based on total learning hours earned during State Learning Week.",
13685
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13686
+ "currentTab": "S",
13687
+ "customClass": "",
13688
+ "cardHeight": "",
13689
+ "carMinHeight": "",
13690
+ "searchHint": "Search Departments",
13691
+ "hideEle": [
13692
+ "karma-points"
13693
+ ],
13694
+ "options": [
13695
+ {
13696
+ "label": "1 - 500",
13697
+ "value": "XS"
13698
+ },
13699
+ {
13700
+ "label": "501 - 1000",
13701
+ "value": "S"
13702
+ },
13703
+ {
13704
+ "label": "1001 - 5000",
13705
+ "value": "M"
13706
+ },
13707
+ {
13708
+ "label": "5001 and 20000",
13709
+ "value": "L"
13710
+ },
13711
+ {
13712
+ "label": "20001 and adove",
13713
+ "value": "XL"
13714
+ }
13715
+ ]
13716
+ }
13717
+ },
13718
+ "mandatoryCourse": {
13719
+ "enabled": true,
13720
+ "navigation": true,
13721
+ "key": "sectionMandatoryCourses",
13722
+ "order": 3,
13723
+ "navOrder": 1,
13724
+ "column": [
13725
+ {
13726
+ "active": true,
13727
+ "enabled": true,
13728
+ "key": "contentMandatoryCoursesStrip",
13729
+ "data": {
13730
+ "order": 4,
13731
+ "strips": [
13732
+ {
13733
+ "active": true,
13734
+ "title": "Recommended Courses for Maharashtra Tech Learning Week",
13735
+ "titleClass": "mat-title",
13736
+ "customeClass": "width-238",
13737
+ "key": "Recommended Courses for Maharashtra Tech Learning Week",
13738
+ "logo": "school",
13739
+ "disableTranslate": true,
13740
+ "stripTitleLink": {
13741
+ "link": "",
13742
+ "icon": ""
13743
+ },
13744
+ "sliderConfig": {
13745
+ "showNavs": true,
13746
+ "showDots": true,
13747
+ "maxWidgets": 18,
13748
+ "showNavsSpacing": true
13749
+ },
13750
+ "stripBackground": "",
13751
+ "titleDescription": "Recommended Courses for Rajasthan state learning week",
13752
+ "stripConfig": {
13753
+ "cardSubType": "card-portrait-lib"
13754
+ },
13755
+ "loader": true,
13756
+ "loaderConfig": {
13757
+ "cardSubType": "card-portrait-lib-skeleton"
13758
+ },
13759
+ "filters": [],
13760
+ "request": {
13761
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13762
+ "playlistRead": {
13763
+ "type": "Mdo_RECOMMENDED_COURSES_MAHARASHTRA"
13764
+ }
13765
+ }
13766
+ }
13767
+ ]
13768
+ }
13769
+ }
13770
+ ]
13771
+ },
13772
+ "exploreLearningContent": {
13773
+ "enabled": true,
13774
+ "strips": [
13775
+ {
13776
+ "active": true,
13777
+ "key": "featuredContents",
13778
+ "logo": "school",
13779
+ "title": "Explore Learning Contents",
13780
+ "titleClass": "mat-title",
13781
+ "type": "learningContent",
13782
+ "disableTranslate": true,
13783
+ "stripTitleLink": {
13784
+ "link": "",
13785
+ "icon": ""
13786
+ },
13787
+ "sliderConfig": {
13788
+ "showNavs": true,
13789
+ "showDots": true,
13790
+ "maxWidgets": 100,
13791
+ "showNavsSpacing": true
13792
+ },
13793
+ "stripBackground": "",
13794
+ "titleDescription": "For you",
13795
+ "stripConfig": {
13796
+ "cardSubType": "card-portrait-lib",
13797
+ "hideShowAll": true
13798
+ },
13799
+ "viewMoreUrl": {},
13800
+ "hideViewMoreUrl": true,
13801
+ "loader": true,
13802
+ "loaderConfig": {
13803
+ "cardSubType": "card-portrait-lib-skeleton"
13804
+ },
13805
+ "tabs": [
13806
+ {
13807
+ "label": "Group A",
13808
+ "value": "Group A",
13809
+ "computeDataOnClick": false,
13810
+ "disableTranslate": true,
13811
+ "computeDataOnClickKey": "",
13812
+ "requestRequired": true,
13813
+ "showTabDataCount": false,
13814
+ "maxWidgets": 100,
13815
+ "nodataMsg": "no Data Course",
13816
+ "contentShuffel": true,
13817
+ "request": {
13818
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13819
+ "playlistRead": {
13820
+ "type": "MDO_GROUP_A_MAHARASHTRA"
13821
+ }
13822
+ }
13823
+ },
13824
+ {
13825
+ "label": "Group B",
13826
+ "value": "Group B",
13827
+ "computeDataOnClick": false,
13828
+ "disableTranslate": true,
13829
+ "computeDataOnClickKey": "",
13830
+ "requestRequired": true,
13831
+ "showTabDataCount": false,
13832
+ "maxWidgets": 100,
13833
+ "nodataMsg": "no Data Course",
13834
+ "contentShuffel": true,
13835
+ "request": {
13836
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13837
+ "playlistRead": {
13838
+ "type": "MDO_GROUP_B_MAHARASHTRA"
13839
+ }
13840
+ }
13841
+ },
13842
+ {
13843
+ "label": "Group C",
13844
+ "value": "Group C",
13845
+ "computeDataOnClick": false,
13846
+ "disableTranslate": true,
13847
+ "computeDataOnClickKey": "",
13848
+ "requestRequired": true,
13849
+ "showTabDataCount": false,
13850
+ "maxWidgets": 100,
13851
+ "nodataMsg": "no Data Course",
13852
+ "contentShuffel": true,
13853
+ "request": {
13854
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13855
+ "playlistRead": {
13856
+ "type": "MDO_GROUP_C_MAHARASHTRA"
13857
+ }
13858
+ }
13859
+ }
13860
+ ],
13861
+ "filters": [],
13862
+ "stripRequestType": "post",
13863
+ "stripRequestFor": "search",
13864
+ "onTabClickRequest": false,
13865
+ "request": {
13866
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13867
+ "playlistRead": {
13868
+ "type": "ORG_FEATURED_COURSES"
13869
+ }
13870
+ }
13871
+ }
13872
+ ]
13873
+ },
13874
+ "events": {
13875
+ "active": false,
13876
+ "enabled": false,
13877
+ "title": "Explore events",
13878
+ "navigation": true,
13879
+ "key": "sectionExploreEvents",
13880
+ "order": 3,
13881
+ "navOrder": 1,
13882
+ "column": [
13883
+ {
13884
+ "maxContent": 3,
13885
+ "active": true,
13886
+ "enabled": true,
13887
+ "key": "exploreEventsContent",
13888
+ "title": "Explore events",
13889
+ "defaultImage": "https://portal.dev.karmayogibharat.net/content-store/orgStore/01390354700029132834/1727084157602_Image.svg",
13890
+ "request": {
13891
+ "locale": [
13892
+ "en"
13893
+ ],
13894
+ "query": "",
13895
+ "request": {
13896
+ "query": "",
13897
+ "filters": {
13898
+ "resourceType": [
13899
+ "Karmayogi Saptah",
13900
+ "Karmayogi Talks",
13901
+ "Rajya Karmayogi Saptah"
13902
+ ],
13903
+ "status": [
13904
+ "Live"
13905
+ ],
13906
+ "contentType": "Event",
13907
+ "category": "Event",
13908
+ "startDate": "<startDateObj>"
13909
+ },
13910
+ "sort_by": {
13911
+ "startDate": "desc"
13912
+ }
13913
+ }
13914
+ }
13915
+ }
13916
+ ]
13917
+ }
13918
+ }
13919
+ }
13920
+ }
13921
+ ]
13922
+ },
13923
+ {
13924
+ "active": true,
13925
+ "enabled": true,
13926
+ "title": "",
13927
+ "key": "sectionSupport",
13928
+ "order": 5,
13929
+ "customClass": "contact-us-wrapper mt-20",
13930
+ "column": [
13931
+ {
13932
+ "active": true,
13933
+ "enabled": true,
13934
+ "key": "supportSection",
13935
+ "title": "",
13936
+ "colspan": 12,
13937
+ "background": "banner",
13938
+ "data": {
13939
+ "title": "Maharashtra Tech Learning Week Dedicated Technical Support",
13940
+ "thumbnail": "https://dev.karmayogibharat.net/assets/videoconference/thumbnail.png",
13941
+ "text": "For any support required",
13942
+ "date": "April 01, 2025 - May 09, 2025 ",
13943
+ "time": "9:00am – 5:00pm · Time zone: Asia/Kolkata",
13944
+ "technicalSupport": "For any technical issues please contact",
13945
+ "plsContact": "igot-mh[at]mah[dot]gov[dot]in",
13946
+ "plsContacts": "igot-mh@mah.gov.in"
13947
+ }
13948
+ }
13949
+ ]
13950
+ }
13951
+ ];
12962
13952
  }
12963
13953
  this.langtranslations.languageSelectedObservable.subscribe(() => {
12964
13954
  if (localStorage.getItem('websiteLanguage')) {
@@ -13087,13 +14077,13 @@ class MdoChannelV2Component {
13087
14077
  this.router.navigate([`/app/learn/mdo-channels/${this.channnelName}/${this.orgId}/all-content`], { queryParams: { tabSelected, key: columnData.sectionKey } });
13088
14078
  }
13089
14079
  }
13090
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV2Component, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2.EventService }, { token: i2$1.TranslateService }, { token: i2.MultilingualTranslationsService }, { token: i2.ConfigurationsService }, { token: i4$2.DomSanitizer }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
13091
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MdoChannelV2Component, selector: "sb-uic-mdo-channel-v2", inputs: { sectionList: "sectionList", slwConfiguration: "slwConfiguration" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList | orderBy: 'order'\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 {{section?.customClass}}\"\n [ngClass]=\"{'container': section.wrapperClass}\" >\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerproSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'supportSection'\" [ngTemplateOutlet]=\"supportSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'mobile'\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n\n </div>\n </div>\n\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" sub-title txt-ellipsis-2 break-words \" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwoMobile\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div class=\"hidden md:block\">\n <div class=\"metrics\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleFlexeRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <ng-container *ngIf=\"isMobile\">\n <ng-container>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements [layoutType]=\"'mobile'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [fetchDataFromApi]=\"false\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements [layoutType]=\"'web'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\" >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <ng-container >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div>\n <div\n *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled \n && data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfiguration\"></sb-uic-events>\n </div>\n </ng-container>\n <!-- Tabs Section -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive\n alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' |\n translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n <!-- <div class=\"col-span-12 md:col-span-8\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.events.enabled && data?.stateLearningWeekSection?.events.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events.column[0]\"\n [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div> -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <ng-container >\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n \n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n<!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in\n this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo [dynamicColor]=\"'#999999'\" [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"true\" (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" [channnelName]=\"channnelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners [objectData]=\"data\" [channnelName]=\"channnelName\" [channelId]=\"orgId\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>\n\n<ng-template #lookerproSection let-data=\"data\">\n <div class=\"flex items-center justify-center flex-wrap\">\n <div class=\" w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerProUrl\">\n <iframe class=\"w-full \" height=\"{{iframeHeight}}\"\n [src]=\"lookerProUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n</ng-template>\n<ng-template #supportSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference [videoConf]=\"data\"></sb-uic-video-conference>\n </div>\n </div>\n</ng-template>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AnnouncementsComponent, selector: "sb-uic-announcements", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: TopLearnersComponent, selector: "sb-uic-top-learners", inputs: ["objectData", "channelId", "channnelName", "slwConfig"] }, { kind: "component", type: CbpPlanComponent, selector: "sb-uic-cbp-plan", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: CompetencyPassbookMdoComponent, selector: "sb-uic-competency-passbook-mdo", inputs: ["objectData", "providerId", "cardDisplayCount", "dynamicClass", "dynamicColor", "dynamicAlignPills"], outputs: ["emptyResponse", "temeletryResponse"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "component", type: HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: VideoConferenceComponent, selector: "sb-uic-video-conference", inputs: ["videoConf"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }, { kind: "pipe", type: OrderByPipe, name: "orderBy" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
14080
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV2Component, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2.EventService }, { token: i2$1.TranslateService }, { token: i2.MultilingualTranslationsService }, { token: i2.ConfigurationsService }, { token: i1$6.DomSanitizer }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
14081
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MdoChannelV2Component, selector: "sb-uic-mdo-channel-v2", inputs: { sectionList: "sectionList", slwConfiguration: "slwConfiguration" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList | orderBy: 'order'\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 {{section?.customClass}}\"\n [ngClass]=\"{'container': section.wrapperClass}\" >\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerproSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'supportSection'\" [ngTemplateOutlet]=\"supportSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'mobile'\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n\n </div>\n </div>\n\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" sub-title txt-ellipsis-2 break-words \" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwoMobile\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div class=\"hidden md:block\">\n <div class=\"metrics\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleFlexeRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <ng-container *ngIf=\"isMobile\">\n <ng-container>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements [layoutType]=\"'mobile'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [fetchDataFromApi]=\"false\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements [layoutType]=\"'web'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\" >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <ng-container >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div>\n <div\n *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled \n && data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfiguration\"></sb-uic-events>\n </div>\n </ng-container>\n <!-- Tabs Section -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive\n alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' |\n translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n <!-- <div class=\"col-span-12 md:col-span-8\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.events.enabled && data?.stateLearningWeekSection?.events.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events.column[0]\"\n [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div> -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <ng-container >\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n \n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n<!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in\n this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo [dynamicColor]=\"'#999999'\" [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"true\" (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" [channnelName]=\"channnelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners [objectData]=\"data\" [channnelName]=\"channnelName\" [channelId]=\"orgId\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>\n\n<ng-template #lookerproSection let-data=\"data\">\n <div class=\"flex items-center justify-center flex-wrap\">\n <div class=\" w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerProUrl\">\n <iframe class=\"w-full \" height=\"{{iframeHeight}}\"\n [src]=\"lookerProUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n</ng-template>\n<ng-template #supportSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference [videoConf]=\"data\"></sb-uic-video-conference>\n </div>\n </div>\n</ng-template>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AnnouncementsComponent, selector: "sb-uic-announcements", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: TopLearnersComponent$1, selector: "sb-uic-top-learners", inputs: ["objectData", "channelId", "channnelName", "slwConfig"] }, { kind: "component", type: CbpPlanComponent, selector: "sb-uic-cbp-plan", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: CompetencyPassbookMdoComponent, selector: "sb-uic-competency-passbook-mdo", inputs: ["objectData", "providerId", "cardDisplayCount", "dynamicClass", "dynamicColor", "dynamicAlignPills"], outputs: ["emptyResponse", "temeletryResponse"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "component", type: HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: VideoConferenceComponent, selector: "sb-uic-video-conference", inputs: ["videoConf"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }, { kind: "pipe", type: OrderByPipe, name: "orderBy" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
13092
14082
  }
13093
14083
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV2Component, decorators: [{
13094
14084
  type: Component,
13095
14085
  args: [{ selector: 'sb-uic-mdo-channel-v2', template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList | orderBy: 'order'\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 {{section?.customClass}}\"\n [ngClass]=\"{'container': section.wrapperClass}\" >\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerproSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'supportSection'\" [ngTemplateOutlet]=\"supportSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'mobile'\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n\n </div>\n </div>\n\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" sub-title txt-ellipsis-2 break-words \" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwoMobile\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div class=\"hidden md:block\">\n <div class=\"metrics\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleFlexeRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <ng-container *ngIf=\"isMobile\">\n <ng-container>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements [layoutType]=\"'mobile'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [fetchDataFromApi]=\"false\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements [layoutType]=\"'web'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\" >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <ng-container >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div>\n <div\n *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled \n && data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfiguration\"></sb-uic-events>\n </div>\n </ng-container>\n <!-- Tabs Section -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive\n alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' |\n translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n <!-- <div class=\"col-span-12 md:col-span-8\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.events.enabled && data?.stateLearningWeekSection?.events.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events.column[0]\"\n [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div> -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <ng-container >\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n \n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n<!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in\n this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo [dynamicColor]=\"'#999999'\" [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"true\" (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" [channnelName]=\"channnelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners [objectData]=\"data\" [channnelName]=\"channnelName\" [channelId]=\"orgId\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>\n\n<ng-template #lookerproSection let-data=\"data\">\n <div class=\"flex items-center justify-center flex-wrap\">\n <div class=\" w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerProUrl\">\n <iframe class=\"w-full \" height=\"{{iframeHeight}}\"\n [src]=\"lookerProUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n</ng-template>\n<ng-template #supportSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference [videoConf]=\"data\"></sb-uic-video-conference>\n </div>\n </div>\n</ng-template>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"] }]
13096
- }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2.EventService }, { type: i2$1.TranslateService }, { type: i2.MultilingualTranslationsService }, { type: i2.ConfigurationsService }, { type: i4$2.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
14086
+ }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2.EventService }, { type: i2$1.TranslateService }, { type: i2.MultilingualTranslationsService }, { type: i2.ConfigurationsService }, { type: i1$6.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
13097
14087
  type: Input
13098
14088
  }], slwConfiguration: [{
13099
14089
  type: Input
@@ -13214,7 +14204,7 @@ class SafeUrlPipe {
13214
14204
  transform(url) {
13215
14205
  return this.sanitizer.bypassSecurityTrustResourceUrl(url);
13216
14206
  }
13217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i4$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
14207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
13218
14208
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, name: "safeUrl" }); }
13219
14209
  }
13220
14210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, decorators: [{
@@ -13222,7 +14212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13222
14212
  args: [{
13223
14213
  name: 'safeUrl'
13224
14214
  }]
13225
- }], ctorParameters: function () { return [{ type: i4$2.DomSanitizer }]; } });
14215
+ }], ctorParameters: function () { return [{ type: i1$6.DomSanitizer }]; } });
13226
14216
 
13227
14217
  class SafeUrlPipeModule {
13228
14218
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -13260,9 +14250,994 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13260
14250
  }]
13261
14251
  }] });
13262
14252
 
14253
+ class EditorDialogComponent {
14254
+ constructor(fb, http, dialogRef, data) {
14255
+ this.fb = fb;
14256
+ this.http = http;
14257
+ this.dialogRef = dialogRef;
14258
+ this.data = data;
14259
+ this.uploadStatus = '';
14260
+ this.isUploading = false;
14261
+ // Slider specific properties
14262
+ this.sliderData = {
14263
+ sliders: [],
14264
+ styleData: {
14265
+ dots: true,
14266
+ infinite: true,
14267
+ speed: 500,
14268
+ slidesToShow: 1,
14269
+ slidesToScroll: 1
14270
+ }
14271
+ };
14272
+ this.isEditingSlider = false;
14273
+ this.editingIndex = -1;
14274
+ this.formType = data.fieldType || 'text';
14275
+ }
14276
+ ngOnInit() {
14277
+ this.initForm();
14278
+ this.initSliderItemForm();
14279
+ }
14280
+ initForm() {
14281
+ // Create form based on field type
14282
+ switch (this.formType) {
14283
+ case 'textarea':
14284
+ this.editorForm = this.fb.group({
14285
+ value: [this.data.value, [Validators.required]]
14286
+ });
14287
+ break;
14288
+ case 'color':
14289
+ this.editorForm = this.fb.group({
14290
+ value: [this.data.value, [Validators.required, Validators.pattern(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/)]]
14291
+ });
14292
+ break;
14293
+ case 'image':
14294
+ this.editorForm = this.fb.group({
14295
+ value: [this.data.value, [Validators.required]]
14296
+ });
14297
+ break;
14298
+ case 'boolean':
14299
+ this.editorForm = this.fb.group({
14300
+ value: [!!this.data.value]
14301
+ });
14302
+ break;
14303
+ case 'metrics':
14304
+ this.editorForm = this.fb.group({
14305
+ value: [this.data.value]
14306
+ });
14307
+ break;
14308
+ case 'slider':
14309
+ // Initialize slider data from the input or use defaults
14310
+ if (this.data.value && this.data.value.sliders && this.data.value.styleData) {
14311
+ this.sliderData = this.data.value;
14312
+ }
14313
+ else if (this.data.sliderData) {
14314
+ this.sliderData = this.data.sliderData;
14315
+ }
14316
+ this.editorForm = this.fb.group({
14317
+ value: [this.sliderData]
14318
+ });
14319
+ break;
14320
+ default:
14321
+ this.editorForm = this.fb.group({
14322
+ value: [this.data.value, [Validators.required]]
14323
+ });
14324
+ }
14325
+ }
14326
+ initSliderItemForm(item) {
14327
+ this.sliderItemForm = this.fb.group({
14328
+ active: [item?.active !== undefined ? item.active : true],
14329
+ banners: this.fb.group({
14330
+ l: [item?.banners?.l || '', [Validators.required]],
14331
+ m: [item?.banners?.m || ''],
14332
+ s: [item?.banners?.s || ''],
14333
+ xl: [item?.banners?.xl || ''],
14334
+ xs: [item?.banners?.xs || ''],
14335
+ xxl: [item?.banners?.xxl || '']
14336
+ }),
14337
+ redirectUrl: [item?.redirectUrl || ''],
14338
+ queryParams: [item?.queryParams || {}],
14339
+ title: [item?.title || '']
14340
+ });
14341
+ }
14342
+ // General image upload methods
14343
+ onFileSelected(event) {
14344
+ const file = event.target.files[0];
14345
+ if (file) {
14346
+ this.uploadImage(file);
14347
+ }
14348
+ }
14349
+ uploadImage(file) {
14350
+ this.isUploading = true;
14351
+ this.uploadStatus = 'Uploading...';
14352
+ const formData = new FormData();
14353
+ formData.append('file', file);
14354
+ // Headers as specified in the curl command
14355
+ const headers = new HttpHeaders({
14356
+ 'Accept': 'application/json, text/plain, */*',
14357
+ 'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
14358
+ 'Cache-Control': 'no-cache',
14359
+ 'Pragma': 'no-cache',
14360
+ 'locale': 'en',
14361
+ 'org': 'dopt',
14362
+ 'rootOrg': 'igot'
14363
+ });
14364
+ this.http.post('http://localhost:3000/apis/proxies/v8/storage/orgStoreUpload', formData, { headers })
14365
+ .subscribe({
14366
+ next: (response) => {
14367
+ this.isUploading = false;
14368
+ if (response.responseCode === 'OK' && response.result && response.result.url) {
14369
+ // Transform the URL
14370
+ const transformedUrl = this.transformImageUrl(response.result.url);
14371
+ // Update the form with the new URL
14372
+ this.editorForm.get('value')?.setValue(transformedUrl);
14373
+ this.uploadStatus = 'Upload successful!';
14374
+ // Clear status after 3 seconds
14375
+ setTimeout(() => {
14376
+ this.uploadStatus = '';
14377
+ }, 3000);
14378
+ }
14379
+ else {
14380
+ this.uploadStatus = 'Upload failed. Invalid response.';
14381
+ }
14382
+ },
14383
+ error: (error) => {
14384
+ this.isUploading = false;
14385
+ this.uploadStatus = 'Upload failed. Please try again.';
14386
+ console.error('Upload error:', error);
14387
+ }
14388
+ });
14389
+ }
14390
+ // Slider specific methods
14391
+ onSliderClick(event) {
14392
+ console.log('Slider click:', event);
14393
+ }
14394
+ onSliderImageSelected(event) {
14395
+ const file = event.target.files[0];
14396
+ if (file) {
14397
+ this.uploadSliderImage(file);
14398
+ }
14399
+ }
14400
+ uploadSliderImage(file) {
14401
+ this.uploadStatus = 'Uploading...';
14402
+ const formData = new FormData();
14403
+ formData.append('file', file);
14404
+ const headers = new HttpHeaders({
14405
+ 'Accept': 'application/json, text/plain, */*',
14406
+ 'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
14407
+ 'Cache-Control': 'no-cache',
14408
+ 'Pragma': 'no-cache',
14409
+ 'locale': 'en',
14410
+ 'org': 'dopt',
14411
+ 'rootOrg': 'igot'
14412
+ });
14413
+ this.http.post('http://localhost:3000/apis/proxies/v8/storage/orgStoreUpload', formData, { headers })
14414
+ .subscribe({
14415
+ next: (response) => {
14416
+ if (response.responseCode === 'OK' && response.result && response.result.url) {
14417
+ // Transform the URL
14418
+ const transformedUrl = this.transformImageUrl(response.result.url);
14419
+ // Update all banner sizes with the same URL
14420
+ const bannersControl = this.sliderItemForm.get('banners');
14421
+ if (bannersControl) {
14422
+ bannersControl.get('l')?.setValue(transformedUrl);
14423
+ bannersControl.get('m')?.setValue(transformedUrl);
14424
+ bannersControl.get('s')?.setValue(transformedUrl);
14425
+ bannersControl.get('xl')?.setValue(transformedUrl);
14426
+ bannersControl.get('xs')?.setValue(transformedUrl);
14427
+ bannersControl.get('xxl')?.setValue(transformedUrl);
14428
+ }
14429
+ this.uploadStatus = 'Upload successful!';
14430
+ // Clear status after 3 seconds
14431
+ setTimeout(() => {
14432
+ this.uploadStatus = '';
14433
+ }, 3000);
14434
+ }
14435
+ else {
14436
+ this.uploadStatus = 'Upload failed. Invalid response.';
14437
+ }
14438
+ },
14439
+ error: (error) => {
14440
+ this.uploadStatus = 'Upload failed. Please try again.';
14441
+ console.error('Upload error:', error);
14442
+ }
14443
+ });
14444
+ }
14445
+ addSliderItem() {
14446
+ this.isEditingSlider = true;
14447
+ this.editingIndex = -1;
14448
+ this.initSliderItemForm();
14449
+ }
14450
+ editSliderItem(index) {
14451
+ this.isEditingSlider = true;
14452
+ this.editingIndex = index;
14453
+ this.initSliderItemForm(this.sliderData.sliders[index]);
14454
+ }
14455
+ removeSliderItem(index) {
14456
+ this.sliderData.sliders.splice(index, 1);
14457
+ this.updateEditorFormValue();
14458
+ }
14459
+ saveSliderItem() {
14460
+ if (this.sliderItemForm.valid) {
14461
+ const item = this.sliderItemForm.value;
14462
+ // Ensure all banner sizes have the same URL if not already set
14463
+ const mainImageUrl = item.banners.l;
14464
+ if (mainImageUrl) {
14465
+ item.banners.m = item.banners.m || mainImageUrl;
14466
+ item.banners.s = item.banners.s || mainImageUrl;
14467
+ item.banners.xl = item.banners.xl || mainImageUrl;
14468
+ item.banners.xs = item.banners.xs || mainImageUrl;
14469
+ item.banners.xxl = item.banners.xxl || mainImageUrl;
14470
+ }
14471
+ // Ensure queryParams is an object
14472
+ if (!item.queryParams || typeof item.queryParams !== 'object') {
14473
+ item.queryParams = {};
14474
+ }
14475
+ if (this.editingIndex === -1) {
14476
+ // Add new item
14477
+ this.sliderData.sliders.push(item);
14478
+ }
14479
+ else {
14480
+ // Update existing item
14481
+ this.sliderData.sliders[this.editingIndex] = item;
14482
+ }
14483
+ this.updateEditorFormValue();
14484
+ this.cancelSliderItemEdit();
14485
+ }
14486
+ }
14487
+ cancelSliderItemEdit() {
14488
+ this.isEditingSlider = false;
14489
+ this.editingIndex = -1;
14490
+ }
14491
+ updateEditorFormValue() {
14492
+ // Update the main form with the new slider data
14493
+ this.editorForm.get('value')?.setValue({ ...this.sliderData });
14494
+ }
14495
+ transformImageUrl(originalUrl) {
14496
+ // Replace 'https://storage.googleapis.com/igotqa/' with 'https://portal.qa.karmayogibharat.net/content-store/'
14497
+ return originalUrl.replace('https://storage.googleapis.com/igotqa/', 'https://portal.qa.karmayogibharat.net/content-store/');
14498
+ }
14499
+ onSubmit() {
14500
+ if (this.editorForm.valid) {
14501
+ this.dialogRef.close(this.editorForm.value.value);
14502
+ }
14503
+ }
14504
+ onCancel() {
14505
+ this.dialogRef.close();
14506
+ }
14507
+ dropSliderItem(event) {
14508
+ moveItemInArray(this.sliderData.sliders, event.previousIndex, event.currentIndex);
14509
+ this.updateEditorFormValue();
14510
+ }
14511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorDialogComponent, deps: [{ token: i7$1.FormBuilder }, { token: i1.HttpClient }, { token: i3$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
14512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditorDialogComponent, selector: "app-editor-dialog", ngImport: i0, template: "<h2 mat-dialog-title>Edit {{data.displayName}}</h2>\n<mat-dialog-content>\n <form [formGroup]=\"editorForm\" class=\"editor-form\">\n <div [ngSwitch]=\"formType\">\n <!-- Text input -->\n <mat-form-field *ngSwitchCase=\"'text'\" appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter {{data.displayName}}\">\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">This field is required</mat-error>\n </mat-form-field>\n \n <!-- Textarea -->\n <mat-form-field *ngSwitchCase=\"'textarea'\" appearance=\"outline\" class=\"full-width\">\n <textarea matInput formControlName=\"value\" placeholder=\"Enter {{data.displayName}}\" rows=\"5\"></textarea>\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">This field is required</mat-error>\n </mat-form-field>\n \n <!-- Color picker -->\n <div *ngSwitchCase=\"'color'\" class=\"color-picker-container\">\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter color code (e.g., #FF5733)\">\n <mat-error *ngIf=\"editorForm.get('value')?.hasError('required')\">Color is required</mat-error>\n <mat-error *ngIf=\"editorForm.get('value')?.hasError('pattern')\">Invalid color format</mat-error>\n </mat-form-field>\n <div class=\"color-preview\" [style.background-color]=\"editorForm.get('value')?.value\"></div>\n </div>\n \n <!-- Image URL with upload option -->\n <div *ngSwitchCase=\"'image'\" class=\"image-container\">\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter image URL\">\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">Valid image URL is required</mat-error>\n </mat-form-field>\n \n <div class=\"upload-section\">\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"fileInput.click()\">\n <mat-icon>cloud_upload</mat-icon> Upload Image\n </button>\n <input hidden (change)=\"onFileSelected($event)\" #fileInput type=\"file\" accept=\"image/*\">\n <span *ngIf=\"uploadStatus\" class=\"upload-status\">{{uploadStatus}}</span>\n </div>\n \n <div class=\"image-preview\">\n <img [src]=\"editorForm.get('value')?.value\" alt=\"Image Preview\" *ngIf=\"editorForm.get('value')?.value\">\n </div>\n </div>\n \n <!-- Boolean toggle -->\n <mat-slide-toggle *ngSwitchCase=\"'boolean'\" formControlName=\"value\" color=\"primary\">\n {{editorForm.get('value')?.value ? 'Enabled' : 'Disabled'}}\n </mat-slide-toggle>\n \n <!-- For complex types like metrics -->\n <div *ngSwitchCase=\"'metrics'\" class=\"complex-editor\">\n <p>Metrics editor not yet implemented</p>\n <!-- Implement metrics editor UI here -->\n </div>\n \n <!-- Slider implementation -->\n <div *ngSwitchCase=\"'slider'\" class=\"slider-editor\">\n <!-- Slider Preview -->\n <div class=\"slider-preview-container\">\n <h3>Preview</h3>\n <div class=\"slider-preview\">\n <sb-uic-sliders \n [widgetData]=\"sliderData.sliders\" \n [styleData]=\"sliderData.styleData\"\n (clickEvent)=\"onSliderClick($event)\">\n </sb-uic-sliders>\n </div>\n </div>\n \n <!-- Slider Items Management -->\n <div class=\"slider-items-container\">\n <h3>Slider Items</h3>\n \n <div class=\"slider-items\" *ngIf=\"sliderData.sliders.length\" cdkDropList (cdkDropListDropped)=\"dropSliderItem($event)\">\n <div *ngFor=\"let item of sliderData.sliders; let i = index\" class=\"slider-item\" cdkDrag>\n <div class=\"drag-handle\" cdkDragHandle>\n <mat-icon>drag_indicator</mat-icon>\n </div>\n <div class=\"item-preview\">\n <img [src]=\"item?.banners?.l\" alt=\"Slider image\" class=\"item-image\">\n <div class=\"item-details\">\n <div class=\"item-title\">{{item.title || 'No title'}}</div>\n <div class=\"item-status\" [class.active]=\"item.active\">\n {{item.active ? 'Active' : 'Inactive'}}\n </div>\n </div>\n </div>\n <div class=\"item-actions\">\n <button mat-icon-button color=\"primary\" (click)=\"editSliderItem(i)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-icon-button color=\"warn\" (click)=\"removeSliderItem(i)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n \n <div *ngIf=\"!sliderData.sliders.length\" class=\"no-items\">\n No slider items available. Add some items to see them here.\n </div>\n <button mat-raised-button color=\"primary\" class=\"add-item-btn\" (click)=\"addSliderItem()\">\n <mat-icon>add</mat-icon> Add Slider Item\n </button>\n </div>\n \n <!-- Item Editor (when editing) -->\n <div *ngIf=\"isEditingSlider\" class=\"slider-item-editor\">\n <h3>{{editingIndex === -1 ? 'Add' : 'Edit'}} Slider Item</h3>\n <form [formGroup]=\"sliderItemForm\" class=\"slider-item-form\">\n <div class=\"form-section\">\n <h4>Basic Information</h4>\n \n <div class=\"toggle-container\">\n <label class=\"toggle-label\">Item Status:</label>\n <mat-slide-toggle formControlName=\"active\" color=\"primary\" class=\"active-toggle\">\n <span class=\"toggle-text\">{{sliderItemForm.get('active')?.value ? 'Active' : 'Inactive'}}</span>\n </mat-slide-toggle>\n </div>\n \n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"title\" placeholder=\"Enter title\">\n </mat-form-field>\n </div>\n \n <div class=\"form-section\" formGroupName=\"banners\">\n <h4>Banner Image</h4>\n \n <div class=\"image-container\">\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"l\" placeholder=\"Enter image URL\">\n <mat-error *ngIf=\"sliderItemForm.get('banners.l')?.invalid\">Valid image URL is required</mat-error>\n </mat-form-field>\n \n <div class=\"upload-section\">\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"sliderFileInput.click()\">\n <mat-icon>cloud_upload</mat-icon> Upload Image\n </button>\n <input hidden (change)=\"onSliderImageSelected($event)\" #sliderFileInput type=\"file\" accept=\"image/*\">\n <span *ngIf=\"uploadStatus\" class=\"upload-status\">{{uploadStatus}}</span>\n </div>\n \n <div class=\"image-preview\">\n <img [src]=\"sliderItemForm.get('banners.l')?.value\" alt=\"Image Preview\" *ngIf=\"sliderItemForm.get('banners.l')?.value\">\n </div>\n \n <div class=\"note\">\n <small>\n <mat-icon class=\"small-icon\">info</mat-icon>\n The same image will be used for all banner sizes (L, M, S, XL, XS, XXL)\n </small>\n </div>\n </div>\n </div>\n \n <div class=\"form-section\">\n <h4>Navigation</h4>\n \n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"redirectUrl\" placeholder=\"Enter redirect URL (optional)\">\n </mat-form-field>\n </div>\n \n <div class=\"item-form-actions\">\n <button mat-button (click)=\"cancelSliderItemEdit()\">Cancel</button>\n <button mat-raised-button color=\"primary\" [disabled]=\"sliderItemForm.invalid\" (click)=\"saveSliderItem()\">\n Save Item\n </button>\n </div>\n </form>\n </div>\n </div>\n \n <!-- Default case -->\n <mat-form-field *ngSwitchDefault appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter {{data.displayName}}\">\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">This field is required</mat-error>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button (click)=\"onCancel()\">Cancel</button>\n <button mat-raised-button color=\"primary\" [disabled]=\"editorForm.invalid\" (click)=\"onSubmit()\">Save</button>\n</mat-dialog-actions>", styles: [".editor-form{min-width:150px;width:100%;padding:16px 0}h2.mat-dialog-title{margin-top:0;font-size:20px;font-weight:500;color:#333}mat-dialog-content{padding:0 8px}mat-form-field{margin-bottom:16px}.color-picker-container{display:flex;align-items:center;gap:16px;margin-bottom:16px}.color-preview{width:40px;height:40px;border-radius:4px;border:1px solid #ccc;box-shadow:0 2px 4px #0000001a}.image-container{margin-bottom:16px}.upload-section{display:flex;align-items:center;margin:16px 0;gap:16px}.upload-status{margin-left:12px;font-size:14px;color:#666}.image-preview{margin-top:16px;max-width:100%;background-color:#f5f5f5;border-radius:4px;padding:8px}.image-preview img{max-width:100%;max-height:200px;object-fit:contain;border-radius:4px;box-shadow:0 2px 4px #0000001a}.complex-editor{margin:16px 0;padding:16px;border:1px solid #e0e0e0;border-radius:4px;background-color:#f9f9f9}mat-slide-toggle{margin:16px 0;display:block}mat-dialog-actions{padding:16px 0;margin-bottom:0}button[mat-button],button[mat-raised-button]{min-width:88px;margin-left:8px}.slider-editor{display:flex;flex-direction:column;gap:20px}.slider-preview-container{margin-bottom:20px}.slider-preview{border:1px solid #ddd;border-radius:4px;padding:16px;background-color:#f9f9f9}.slider-items-container{margin-bottom:20px}.slider-items{max-height:300px;overflow-y:auto;margin-bottom:15px}.slider-item{display:flex;align-items:center;padding:10px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;background-color:#fff;cursor:move}.slider-item:hover{border-color:#aaa;background-color:#f8f8f8}.slider-item.cdk-drag-placeholder{opacity:0}.slider-item.cdk-drag-preview{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.item-preview{display:flex;align-items:center;gap:10px;flex:1}.item-image{width:80px;height:50px;object-fit:cover;border-radius:4px}.item-details{display:flex;flex-direction:column}.item-title{font-weight:700}.item-description{font-size:.9em;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.item-actions{display:flex;gap:5px}.no-items{padding:15px;text-align:center;color:#666;background-color:#f9f9f9;border-radius:4px;margin-bottom:15px}.add-item-btn{margin-bottom:15px}.slider-item-editor{border:1px solid #ddd;border-radius:4px;padding:15px;margin-top:20px}.slider-item-form{display:flex;flex-direction:column;gap:15px}.image-container{display:flex;flex-direction:column;gap:10px}.upload-section{display:flex;align-items:center;gap:10px}.upload-status{color:#3f51b5;font-style:italic}.image-preview{margin-top:10px}.image-preview img{max-width:100%;max-height:200px;border-radius:4px;border:1px solid #ddd}.item-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.full-width{width:100%}.toggle-container{display:flex;align-items:center;margin-bottom:16px;padding:10px;border-radius:4px;background-color:#f5f5f5}.toggle-label{margin-right:12px;font-weight:500;color:#333}.active-toggle{display:flex;align-items:center}.active-toggle .mat-slide-toggle-content{font-weight:500}.toggle-text{margin-left:8px;font-weight:500;color:#333}.toggle-text:empty:before{content:\"Inactive\";color:#888}.cdk-drop-list-dragging .slider-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.form-section{margin-bottom:24px}.form-section h4{margin-bottom:12px;font-weight:500;color:#333;border-bottom:1px solid #eee;padding-bottom:8px}.note{margin-top:8px;background-color:#f8f9fa;padding:8px;border-radius:4px;border-left:3px solid #3f51b5}.small-icon{font-size:16px;height:16px;width:16px;vertical-align:middle;margin-right:4px}\n"], dependencies: [{ kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "directive", type: i7$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i5.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8$1.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatLegacySlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i11.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i11.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i11.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
14513
+ }
14514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorDialogComponent, decorators: [{
14515
+ type: Component,
14516
+ args: [{ selector: 'app-editor-dialog', template: "<h2 mat-dialog-title>Edit {{data.displayName}}</h2>\n<mat-dialog-content>\n <form [formGroup]=\"editorForm\" class=\"editor-form\">\n <div [ngSwitch]=\"formType\">\n <!-- Text input -->\n <mat-form-field *ngSwitchCase=\"'text'\" appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter {{data.displayName}}\">\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">This field is required</mat-error>\n </mat-form-field>\n \n <!-- Textarea -->\n <mat-form-field *ngSwitchCase=\"'textarea'\" appearance=\"outline\" class=\"full-width\">\n <textarea matInput formControlName=\"value\" placeholder=\"Enter {{data.displayName}}\" rows=\"5\"></textarea>\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">This field is required</mat-error>\n </mat-form-field>\n \n <!-- Color picker -->\n <div *ngSwitchCase=\"'color'\" class=\"color-picker-container\">\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter color code (e.g., #FF5733)\">\n <mat-error *ngIf=\"editorForm.get('value')?.hasError('required')\">Color is required</mat-error>\n <mat-error *ngIf=\"editorForm.get('value')?.hasError('pattern')\">Invalid color format</mat-error>\n </mat-form-field>\n <div class=\"color-preview\" [style.background-color]=\"editorForm.get('value')?.value\"></div>\n </div>\n \n <!-- Image URL with upload option -->\n <div *ngSwitchCase=\"'image'\" class=\"image-container\">\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter image URL\">\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">Valid image URL is required</mat-error>\n </mat-form-field>\n \n <div class=\"upload-section\">\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"fileInput.click()\">\n <mat-icon>cloud_upload</mat-icon> Upload Image\n </button>\n <input hidden (change)=\"onFileSelected($event)\" #fileInput type=\"file\" accept=\"image/*\">\n <span *ngIf=\"uploadStatus\" class=\"upload-status\">{{uploadStatus}}</span>\n </div>\n \n <div class=\"image-preview\">\n <img [src]=\"editorForm.get('value')?.value\" alt=\"Image Preview\" *ngIf=\"editorForm.get('value')?.value\">\n </div>\n </div>\n \n <!-- Boolean toggle -->\n <mat-slide-toggle *ngSwitchCase=\"'boolean'\" formControlName=\"value\" color=\"primary\">\n {{editorForm.get('value')?.value ? 'Enabled' : 'Disabled'}}\n </mat-slide-toggle>\n \n <!-- For complex types like metrics -->\n <div *ngSwitchCase=\"'metrics'\" class=\"complex-editor\">\n <p>Metrics editor not yet implemented</p>\n <!-- Implement metrics editor UI here -->\n </div>\n \n <!-- Slider implementation -->\n <div *ngSwitchCase=\"'slider'\" class=\"slider-editor\">\n <!-- Slider Preview -->\n <div class=\"slider-preview-container\">\n <h3>Preview</h3>\n <div class=\"slider-preview\">\n <sb-uic-sliders \n [widgetData]=\"sliderData.sliders\" \n [styleData]=\"sliderData.styleData\"\n (clickEvent)=\"onSliderClick($event)\">\n </sb-uic-sliders>\n </div>\n </div>\n \n <!-- Slider Items Management -->\n <div class=\"slider-items-container\">\n <h3>Slider Items</h3>\n \n <div class=\"slider-items\" *ngIf=\"sliderData.sliders.length\" cdkDropList (cdkDropListDropped)=\"dropSliderItem($event)\">\n <div *ngFor=\"let item of sliderData.sliders; let i = index\" class=\"slider-item\" cdkDrag>\n <div class=\"drag-handle\" cdkDragHandle>\n <mat-icon>drag_indicator</mat-icon>\n </div>\n <div class=\"item-preview\">\n <img [src]=\"item?.banners?.l\" alt=\"Slider image\" class=\"item-image\">\n <div class=\"item-details\">\n <div class=\"item-title\">{{item.title || 'No title'}}</div>\n <div class=\"item-status\" [class.active]=\"item.active\">\n {{item.active ? 'Active' : 'Inactive'}}\n </div>\n </div>\n </div>\n <div class=\"item-actions\">\n <button mat-icon-button color=\"primary\" (click)=\"editSliderItem(i)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-icon-button color=\"warn\" (click)=\"removeSliderItem(i)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n \n <div *ngIf=\"!sliderData.sliders.length\" class=\"no-items\">\n No slider items available. Add some items to see them here.\n </div>\n <button mat-raised-button color=\"primary\" class=\"add-item-btn\" (click)=\"addSliderItem()\">\n <mat-icon>add</mat-icon> Add Slider Item\n </button>\n </div>\n \n <!-- Item Editor (when editing) -->\n <div *ngIf=\"isEditingSlider\" class=\"slider-item-editor\">\n <h3>{{editingIndex === -1 ? 'Add' : 'Edit'}} Slider Item</h3>\n <form [formGroup]=\"sliderItemForm\" class=\"slider-item-form\">\n <div class=\"form-section\">\n <h4>Basic Information</h4>\n \n <div class=\"toggle-container\">\n <label class=\"toggle-label\">Item Status:</label>\n <mat-slide-toggle formControlName=\"active\" color=\"primary\" class=\"active-toggle\">\n <span class=\"toggle-text\">{{sliderItemForm.get('active')?.value ? 'Active' : 'Inactive'}}</span>\n </mat-slide-toggle>\n </div>\n \n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"title\" placeholder=\"Enter title\">\n </mat-form-field>\n </div>\n \n <div class=\"form-section\" formGroupName=\"banners\">\n <h4>Banner Image</h4>\n \n <div class=\"image-container\">\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"l\" placeholder=\"Enter image URL\">\n <mat-error *ngIf=\"sliderItemForm.get('banners.l')?.invalid\">Valid image URL is required</mat-error>\n </mat-form-field>\n \n <div class=\"upload-section\">\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"sliderFileInput.click()\">\n <mat-icon>cloud_upload</mat-icon> Upload Image\n </button>\n <input hidden (change)=\"onSliderImageSelected($event)\" #sliderFileInput type=\"file\" accept=\"image/*\">\n <span *ngIf=\"uploadStatus\" class=\"upload-status\">{{uploadStatus}}</span>\n </div>\n \n <div class=\"image-preview\">\n <img [src]=\"sliderItemForm.get('banners.l')?.value\" alt=\"Image Preview\" *ngIf=\"sliderItemForm.get('banners.l')?.value\">\n </div>\n \n <div class=\"note\">\n <small>\n <mat-icon class=\"small-icon\">info</mat-icon>\n The same image will be used for all banner sizes (L, M, S, XL, XS, XXL)\n </small>\n </div>\n </div>\n </div>\n \n <div class=\"form-section\">\n <h4>Navigation</h4>\n \n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"redirectUrl\" placeholder=\"Enter redirect URL (optional)\">\n </mat-form-field>\n </div>\n \n <div class=\"item-form-actions\">\n <button mat-button (click)=\"cancelSliderItemEdit()\">Cancel</button>\n <button mat-raised-button color=\"primary\" [disabled]=\"sliderItemForm.invalid\" (click)=\"saveSliderItem()\">\n Save Item\n </button>\n </div>\n </form>\n </div>\n </div>\n \n <!-- Default case -->\n <mat-form-field *ngSwitchDefault appearance=\"outline\" class=\"full-width\">\n <input matInput formControlName=\"value\" placeholder=\"Enter {{data.displayName}}\">\n <mat-error *ngIf=\"editorForm.get('value')?.invalid\">This field is required</mat-error>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button (click)=\"onCancel()\">Cancel</button>\n <button mat-raised-button color=\"primary\" [disabled]=\"editorForm.invalid\" (click)=\"onSubmit()\">Save</button>\n</mat-dialog-actions>", styles: [".editor-form{min-width:150px;width:100%;padding:16px 0}h2.mat-dialog-title{margin-top:0;font-size:20px;font-weight:500;color:#333}mat-dialog-content{padding:0 8px}mat-form-field{margin-bottom:16px}.color-picker-container{display:flex;align-items:center;gap:16px;margin-bottom:16px}.color-preview{width:40px;height:40px;border-radius:4px;border:1px solid #ccc;box-shadow:0 2px 4px #0000001a}.image-container{margin-bottom:16px}.upload-section{display:flex;align-items:center;margin:16px 0;gap:16px}.upload-status{margin-left:12px;font-size:14px;color:#666}.image-preview{margin-top:16px;max-width:100%;background-color:#f5f5f5;border-radius:4px;padding:8px}.image-preview img{max-width:100%;max-height:200px;object-fit:contain;border-radius:4px;box-shadow:0 2px 4px #0000001a}.complex-editor{margin:16px 0;padding:16px;border:1px solid #e0e0e0;border-radius:4px;background-color:#f9f9f9}mat-slide-toggle{margin:16px 0;display:block}mat-dialog-actions{padding:16px 0;margin-bottom:0}button[mat-button],button[mat-raised-button]{min-width:88px;margin-left:8px}.slider-editor{display:flex;flex-direction:column;gap:20px}.slider-preview-container{margin-bottom:20px}.slider-preview{border:1px solid #ddd;border-radius:4px;padding:16px;background-color:#f9f9f9}.slider-items-container{margin-bottom:20px}.slider-items{max-height:300px;overflow-y:auto;margin-bottom:15px}.slider-item{display:flex;align-items:center;padding:10px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;background-color:#fff;cursor:move}.slider-item:hover{border-color:#aaa;background-color:#f8f8f8}.slider-item.cdk-drag-placeholder{opacity:0}.slider-item.cdk-drag-preview{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.item-preview{display:flex;align-items:center;gap:10px;flex:1}.item-image{width:80px;height:50px;object-fit:cover;border-radius:4px}.item-details{display:flex;flex-direction:column}.item-title{font-weight:700}.item-description{font-size:.9em;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.item-actions{display:flex;gap:5px}.no-items{padding:15px;text-align:center;color:#666;background-color:#f9f9f9;border-radius:4px;margin-bottom:15px}.add-item-btn{margin-bottom:15px}.slider-item-editor{border:1px solid #ddd;border-radius:4px;padding:15px;margin-top:20px}.slider-item-form{display:flex;flex-direction:column;gap:15px}.image-container{display:flex;flex-direction:column;gap:10px}.upload-section{display:flex;align-items:center;gap:10px}.upload-status{color:#3f51b5;font-style:italic}.image-preview{margin-top:10px}.image-preview img{max-width:100%;max-height:200px;border-radius:4px;border:1px solid #ddd}.item-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.full-width{width:100%}.toggle-container{display:flex;align-items:center;margin-bottom:16px;padding:10px;border-radius:4px;background-color:#f5f5f5}.toggle-label{margin-right:12px;font-weight:500;color:#333}.active-toggle{display:flex;align-items:center}.active-toggle .mat-slide-toggle-content{font-weight:500}.toggle-text{margin-left:8px;font-weight:500;color:#333}.toggle-text:empty:before{content:\"Inactive\";color:#888}.cdk-drop-list-dragging .slider-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.form-section{margin-bottom:24px}.form-section h4{margin-bottom:12px;font-weight:500;color:#333;border-bottom:1px solid #eee;padding-bottom:8px}.note{margin-top:8px;background-color:#f8f9fa;padding:8px;border-radius:4px;border-left:3px solid #3f51b5}.small-icon{font-size:16px;height:16px;width:16px;vertical-align:middle;margin-right:4px}\n"] }]
14517
+ }], ctorParameters: function () { return [{ type: i7$1.FormBuilder }, { type: i1.HttpClient }, { type: i3$1.MatDialogRef }, { type: undefined, decorators: [{
14518
+ type: Inject,
14519
+ args: [MAT_DIALOG_DATA]
14520
+ }] }]; } });
14521
+
14522
+ class TopSectionComponent {
14523
+ constructor(data, channelName, orgId, isMobile, slwConfig, isEdit, eventCallback, sanitizer) {
14524
+ this.data = data;
14525
+ this.channelName = channelName;
14526
+ this.orgId = orgId;
14527
+ this.isMobile = isMobile;
14528
+ this.slwConfig = slwConfig;
14529
+ this.isEdit = isEdit;
14530
+ this.eventCallback = eventCallback;
14531
+ this.sanitizer = sanitizer;
14532
+ this.descriptionMaxLength = 500;
14533
+ if (this.isEdit) {
14534
+ console.log('Edit mode active for top section');
14535
+ }
14536
+ }
14537
+ ngOnInit() {
14538
+ this.stripWidth = `${(window.innerWidth - 1200 + 135) / 2}px`;
14539
+ }
14540
+ emitEvent(action, id, data) {
14541
+ this.eventCallback({
14542
+ action,
14543
+ source: 'topSection',
14544
+ id,
14545
+ data: data || this.data
14546
+ });
14547
+ }
14548
+ openEditor(fieldName, displayName, currentValue) {
14549
+ this.eventCallback({
14550
+ action: 'edit',
14551
+ source: 'topSection',
14552
+ id: fieldName,
14553
+ data: {
14554
+ fieldName,
14555
+ displayName,
14556
+ currentValue,
14557
+ path: fieldName,
14558
+ fieldType: this.getFieldType(fieldName, currentValue),
14559
+ parentData: this.data
14560
+ }
14561
+ });
14562
+ }
14563
+ getFieldType(fieldName, value) {
14564
+ if (fieldName === 'logo' || fieldName === 'logoMobile' || fieldName.includes('banner')) {
14565
+ return 'image';
14566
+ }
14567
+ else if (fieldName === 'sliderData') {
14568
+ return 'slider';
14569
+ }
14570
+ else if (fieldName === 'metrics') {
14571
+ return 'metrics';
14572
+ }
14573
+ else if (typeof value === 'string' && value.startsWith('#')) {
14574
+ return 'color';
14575
+ }
14576
+ else if (typeof value === 'boolean') {
14577
+ return 'boolean';
14578
+ }
14579
+ else if (fieldName.includes('description')) {
14580
+ return 'textarea';
14581
+ }
14582
+ else {
14583
+ return 'text';
14584
+ }
14585
+ }
14586
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopSectionComponent, deps: [{ token: 'sectionData' }, { token: 'channelName' }, { token: 'orgId' }, { token: 'isMobile' }, { token: 'slwConfiguration' }, { token: 'isEdit' }, { token: 'eventCallback' }, { token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
14587
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TopSectionComponent, selector: "app-top-section", ngImport: i0, template: "<div class=\"hidden md:block\" *ngIf=\"!isMobile\">\n <div class=\"web-banner-background\" [style.background]=\"data?.background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div *ngIf=\"!isEdit\" class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\"></div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('logo', 'Logo', data?.logo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n <h1 class=\"txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channelName}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('title', 'Title', data?.title || channelName)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitle', 'Subtitle', data?.subTitle)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <h4 *ngIf=\"data?.subTitleTwo\" class=\"sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitleTwo', 'Secondary Subtitle', data?.subTitleTwo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('description', 'Description', data?.description)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n <button *ngIf=\"isEdit\" class=\"edit-icon slider-edit\" (click)=\"openEditor('sliderData', 'Slider Images', data?.sliderData)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"block md:hidden\" *ngIf=\"isMobile\">\n <!-- Mobile view simplified -->\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\" \n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full flex-1 flex flex-col\">\n <h1 class=\"txt-ellipsis-2 break-words\">{{data?.title || channelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"sub-title txt-ellipsis-2 break-words\" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n <p class=\"mat-body-2\">{{data?.description | slice:0:descriptionMaxLength}}</p>\n </div>\n </div>\n</div>\n\n<div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div [class]=\"isMobile ? 'block md:hidden pt-14 px-4' : 'hidden md:block'\">\n <div [class]=\"isMobile ? 'mob-metrics mob-metrics-sec' : 'metrics'\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points \n [providerId]=\"orgId\" \n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" \n [layoutType]=\"isMobile ? 'singleRow' : 'singleFlexeRow'\" \n [pageLayout]=\"'mdo'\" \n [slwConfig]=\"slwConfig\"\n (metricClick)=\"emitEvent('metric-click', $event)\">\n </sb-uic-data-points>\n <button *ngIf=\"isEdit\" class=\"edit-icon metrics-edit\" (click)=\"openEditor('metrics', 'Metrics', data?.metrics)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center;position:relative}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}.edit-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background-color:#00000080;color:#fff;border:none;cursor:pointer;margin-left:8px;transition:all .2s ease;position:relative;z-index:10}.edit-icon:hover{background-color:#000c;transform:scale(1.1)}.edit-icon i{font-size:16px}.slider-edit{position:absolute;top:8px;right:8px;z-index:100}.metrics-edit{position:absolute;top:8px;right:8px}.slider-box,.metrics{position:relative}\n"], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }] }); }
14588
+ }
14589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopSectionComponent, decorators: [{
14590
+ type: Component,
14591
+ args: [{ selector: 'app-top-section', template: "<div class=\"hidden md:block\" *ngIf=\"!isMobile\">\n <div class=\"web-banner-background\" [style.background]=\"data?.background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div *ngIf=\"!isEdit\" class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\"></div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('logo', 'Logo', data?.logo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n <h1 class=\"txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channelName}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('title', 'Title', data?.title || channelName)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitle', 'Subtitle', data?.subTitle)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <h4 *ngIf=\"data?.subTitleTwo\" class=\"sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitleTwo', 'Secondary Subtitle', data?.subTitleTwo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('description', 'Description', data?.description)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n <button *ngIf=\"isEdit\" class=\"edit-icon slider-edit\" (click)=\"openEditor('sliderData', 'Slider Images', data?.sliderData)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"block md:hidden\" *ngIf=\"isMobile\">\n <!-- Mobile view simplified -->\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\" \n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full flex-1 flex flex-col\">\n <h1 class=\"txt-ellipsis-2 break-words\">{{data?.title || channelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"sub-title txt-ellipsis-2 break-words\" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n <p class=\"mat-body-2\">{{data?.description | slice:0:descriptionMaxLength}}</p>\n </div>\n </div>\n</div>\n\n<div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div [class]=\"isMobile ? 'block md:hidden pt-14 px-4' : 'hidden md:block'\">\n <div [class]=\"isMobile ? 'mob-metrics mob-metrics-sec' : 'metrics'\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points \n [providerId]=\"orgId\" \n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" \n [layoutType]=\"isMobile ? 'singleRow' : 'singleFlexeRow'\" \n [pageLayout]=\"'mdo'\" \n [slwConfig]=\"slwConfig\"\n (metricClick)=\"emitEvent('metric-click', $event)\">\n </sb-uic-data-points>\n <button *ngIf=\"isEdit\" class=\"edit-icon metrics-edit\" (click)=\"openEditor('metrics', 'Metrics', data?.metrics)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center;position:relative}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}.edit-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background-color:#00000080;color:#fff;border:none;cursor:pointer;margin-left:8px;transition:all .2s ease;position:relative;z-index:10}.edit-icon:hover{background-color:#000c;transform:scale(1.1)}.edit-icon i{font-size:16px}.slider-edit{position:absolute;top:8px;right:8px;z-index:100}.metrics-edit{position:absolute;top:8px;right:8px}.slider-box,.metrics{position:relative}\n"] }]
14592
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14593
+ type: Inject,
14594
+ args: ['sectionData']
14595
+ }] }, { type: undefined, decorators: [{
14596
+ type: Inject,
14597
+ args: ['channelName']
14598
+ }] }, { type: undefined, decorators: [{
14599
+ type: Inject,
14600
+ args: ['orgId']
14601
+ }] }, { type: undefined, decorators: [{
14602
+ type: Inject,
14603
+ args: ['isMobile']
14604
+ }] }, { type: undefined, decorators: [{
14605
+ type: Inject,
14606
+ args: ['slwConfiguration']
14607
+ }] }, { type: undefined, decorators: [{
14608
+ type: Inject,
14609
+ args: ['isEdit']
14610
+ }] }, { type: undefined, decorators: [{
14611
+ type: Inject,
14612
+ args: ['eventCallback']
14613
+ }] }, { type: i1$6.DomSanitizer }]; } });
14614
+
14615
+ class LookerSectionComponent {
14616
+ constructor(data, isMobile, sanitizer, eventCallback) {
14617
+ this.data = data;
14618
+ this.isMobile = isMobile;
14619
+ this.sanitizer = sanitizer;
14620
+ this.eventCallback = eventCallback;
14621
+ }
14622
+ ngOnInit() {
14623
+ this.iframeHeight = `${window.innerWidth * 0.667}px`;
14624
+ this.setLookerUrl();
14625
+ }
14626
+ setLookerUrl() {
14627
+ const url = this.isMobile ?
14628
+ this.data?.lookerProMobileUrl :
14629
+ this.data?.lookerProDesktopUrl;
14630
+ if (url) {
14631
+ this.lookerUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);
14632
+ this.eventCallback({
14633
+ action: 'looker-loaded',
14634
+ source: 'lookerSection',
14635
+ id: 'looker-dashboard'
14636
+ });
14637
+ }
14638
+ }
14639
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LookerSectionComponent, deps: [{ token: 'sectionData' }, { token: 'isMobile' }, { token: i1$6.DomSanitizer }, { token: 'eventCallback' }], target: i0.ɵɵFactoryTarget.Component }); }
14640
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LookerSectionComponent, selector: "app-looker-section", ngImport: i0, template: "<div class=\"flex items-center justify-center flex-wrap\">\n <div class=\"w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerUrl\">\n <iframe class=\"w-full\" height=\"{{iframeHeight}}\"\n [src]=\"lookerUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\">\n </iframe>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
14641
+ }
14642
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LookerSectionComponent, decorators: [{
14643
+ type: Component,
14644
+ args: [{ selector: 'app-looker-section', template: "<div class=\"flex items-center justify-center flex-wrap\">\n <div class=\"w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerUrl\">\n <iframe class=\"w-full\" height=\"{{iframeHeight}}\"\n [src]=\"lookerUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\">\n </iframe>\n </div>\n</div>" }]
14645
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14646
+ type: Inject,
14647
+ args: ['sectionData']
14648
+ }] }, { type: undefined, decorators: [{
14649
+ type: Inject,
14650
+ args: ['isMobile']
14651
+ }] }, { type: i1$6.DomSanitizer }, { type: undefined, decorators: [{
14652
+ type: Inject,
14653
+ args: ['eventCallback']
14654
+ }] }]; } });
14655
+
14656
+ class TopLearnersComponent {
14657
+ constructor(data, channelName, orgId, slwConfig, eventCallback) {
14658
+ this.data = data;
14659
+ this.channelName = channelName;
14660
+ this.orgId = orgId;
14661
+ this.slwConfig = slwConfig;
14662
+ this.eventCallback = eventCallback;
14663
+ }
14664
+ onEventFromLeaders(event) {
14665
+ this.eventCallback({
14666
+ action: 'top-learners',
14667
+ source: 'topLearners',
14668
+ id: event.id || 'learner-event',
14669
+ data: event
14670
+ });
14671
+ }
14672
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, deps: [{ token: 'sectionData' }, { token: 'channelName' }, { token: 'orgId' }, { token: 'slwConfiguration' }, { token: 'eventCallback' }], target: i0.ɵɵFactoryTarget.Component }); }
14673
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TopLearnersComponent, selector: "app-top-learners", ngImport: i0, template: "<div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners \n [objectData]=\"data\" \n [channnelName]=\"channelName\" \n [channelId]=\"orgId\" \n [slwConfig]=\"slwConfig\"\n (learnerEvent)=\"onEventFromLeaders($event)\">\n </sb-uic-top-learners>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "component", type: TopLearnersComponent$1, selector: "sb-uic-top-learners", inputs: ["objectData", "channelId", "channnelName", "slwConfig"] }] }); }
14674
+ }
14675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, decorators: [{
14676
+ type: Component,
14677
+ args: [{ selector: 'app-top-learners', template: "<div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners \n [objectData]=\"data\" \n [channnelName]=\"channelName\" \n [channelId]=\"orgId\" \n [slwConfig]=\"slwConfig\"\n (learnerEvent)=\"onEventFromLeaders($event)\">\n </sb-uic-top-learners>\n </div>\n</div>" }]
14678
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14679
+ type: Inject,
14680
+ args: ['sectionData']
14681
+ }] }, { type: undefined, decorators: [{
14682
+ type: Inject,
14683
+ args: ['channelName']
14684
+ }] }, { type: undefined, decorators: [{
14685
+ type: Inject,
14686
+ args: ['orgId']
14687
+ }] }, { type: undefined, decorators: [{
14688
+ type: Inject,
14689
+ args: ['slwConfiguration']
14690
+ }] }, { type: undefined, decorators: [{
14691
+ type: Inject,
14692
+ args: ['eventCallback']
14693
+ }] }]; } });
14694
+
14695
+ class CompetencyComponent {
14696
+ constructor(orgId, eventCallback) {
14697
+ this.orgId = orgId;
14698
+ this.eventCallback = eventCallback;
14699
+ this.emptyResponse = new EventEmitter();
14700
+ this.telemetryResponse = new EventEmitter();
14701
+ this.hideCompetencyBlock = false;
14702
+ }
14703
+ hideCompetency(event) {
14704
+ this.hideCompetencyBlock = event;
14705
+ this.emptyResponse.emit(event);
14706
+ this.eventCallback({
14707
+ action: 'hide-competency',
14708
+ source: 'competency',
14709
+ id: 'competency-block'
14710
+ });
14711
+ }
14712
+ raiseCompetencyTelemetry(name) {
14713
+ this.telemetryResponse.emit(name);
14714
+ this.eventCallback({
14715
+ action: 'competency-click',
14716
+ source: 'competency',
14717
+ id: `${name}-core-expertise`
14718
+ });
14719
+ }
14720
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CompetencyComponent, deps: [{ token: 'orgId' }, { token: 'eventCallback' }], target: i0.ɵɵFactoryTarget.Component }); }
14721
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CompetencyComponent, selector: "app-competency", inputs: { competency: "competency" }, outputs: { emptyResponse: "emptyResponse", telemetryResponse: "telemetryResponse" }, ngImport: i0, template: "<div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock; else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">\n This section shows the list of top competencies users in this MDO are learning, \n based on the courses they've completed and enrolled in.\n </p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo \n [dynamicColor]=\"'#999999'\" \n [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" \n (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" \n [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n</div>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CompetencyPassbookMdoComponent, selector: "sb-uic-competency-passbook-mdo", inputs: ["objectData", "providerId", "cardDisplayCount", "dynamicClass", "dynamicColor", "dynamicAlignPills"], outputs: ["emptyResponse", "temeletryResponse"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
14722
+ }
14723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CompetencyComponent, decorators: [{
14724
+ type: Component,
14725
+ args: [{ selector: 'app-competency', template: "<div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock; else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">\n This section shows the list of top competencies users in this MDO are learning, \n based on the courses they've completed and enrolled in.\n </p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo \n [dynamicColor]=\"'#999999'\" \n [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" \n (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" \n [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n</div>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>" }]
14726
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14727
+ type: Inject,
14728
+ args: ['orgId']
14729
+ }] }, { type: undefined, decorators: [{
14730
+ type: Inject,
14731
+ args: ['eventCallback']
14732
+ }] }]; }, propDecorators: { competency: [{
14733
+ type: Input
14734
+ }], emptyResponse: [{
14735
+ type: Output
14736
+ }], telemetryResponse: [{
14737
+ type: Output
14738
+ }] } });
14739
+
14740
+ class ContentStripComponent {
14741
+ constructor(orgId, channelName, eventCallback) {
14742
+ this.orgId = orgId;
14743
+ this.channelName = channelName;
14744
+ this.eventCallback = eventCallback;
14745
+ this.viewAllResponse = new EventEmitter();
14746
+ this.telemetryResponse = new EventEmitter();
14747
+ }
14748
+ showAllContent(event) {
14749
+ this.viewAllResponse.emit({
14750
+ event: event,
14751
+ data: this.data
14752
+ });
14753
+ this.eventCallback({
14754
+ action: 'view-all',
14755
+ source: 'contentStrip',
14756
+ id: this.data?.sectionKey || 'content-section',
14757
+ data: event
14758
+ });
14759
+ }
14760
+ raiseTelemetryInteratEvent(event) {
14761
+ this.telemetryResponse.emit(event);
14762
+ this.eventCallback({
14763
+ action: 'telemetry',
14764
+ source: 'contentStrip',
14765
+ id: event.id || 'content-interaction',
14766
+ data: event
14767
+ });
14768
+ }
14769
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripComponent, deps: [{ token: 'orgId' }, { token: 'channelName' }, { token: 'eventCallback' }], target: i0.ɵɵFactoryTarget.Component }); }
14770
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContentStripComponent, selector: "app-content-strip", inputs: { data: "data" }, outputs: { viewAllResponse: "viewAllResponse", telemetryResponse: "telemetryResponse" }, ngImport: i0, template: "<ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"true\" \n (viewAllResponse)=\"showAllContent($event)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" \n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }] }); }
14771
+ }
14772
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripComponent, decorators: [{
14773
+ type: Component,
14774
+ args: [{ selector: 'app-content-strip', template: "<ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"true\" \n (viewAllResponse)=\"showAllContent($event)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" \n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n</ng-container>" }]
14775
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14776
+ type: Inject,
14777
+ args: ['orgId']
14778
+ }] }, { type: undefined, decorators: [{
14779
+ type: Inject,
14780
+ args: ['channelName']
14781
+ }] }, { type: undefined, decorators: [{
14782
+ type: Inject,
14783
+ args: ['eventCallback']
14784
+ }] }]; }, propDecorators: { data: [{
14785
+ type: Input
14786
+ }], viewAllResponse: [{
14787
+ type: Output
14788
+ }], telemetryResponse: [{
14789
+ type: Output
14790
+ }] } });
14791
+
14792
+ class ColumnSectionDisplayComponent {
14793
+ constructor() {
14794
+ this.data = [];
14795
+ this.competencyEvent = new EventEmitter();
14796
+ this.competencyTelemetry = new EventEmitter();
14797
+ this.contentTelemetry = new EventEmitter();
14798
+ this.viewAllEvent = new EventEmitter();
14799
+ this.filteredData = [];
14800
+ }
14801
+ ngOnInit() {
14802
+ this.filteredData = this.data?.filter(section => section?.enabled) || [];
14803
+ }
14804
+ onCompetencyEvent(event) {
14805
+ this.competencyEvent.emit(event);
14806
+ }
14807
+ onCompetencyTelemetry(event) {
14808
+ this.competencyTelemetry.emit(event);
14809
+ }
14810
+ onContentTelemetry(event) {
14811
+ this.contentTelemetry.emit(event);
14812
+ }
14813
+ onViewAllEvent(event, data) {
14814
+ this.viewAllEvent.emit({
14815
+ event: event,
14816
+ data: data
14817
+ });
14818
+ }
14819
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnSectionDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14820
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnSectionDisplayComponent, selector: "app-column-section-display", inputs: { data: "data", orgId: "orgId", channelName: "channelName" }, outputs: { competencyEvent: "competencyEvent", competencyTelemetry: "competencyTelemetry", contentTelemetry: "contentTelemetry", viewAllEvent: "viewAllEvent" }, ngImport: i0, template: "<ng-container *ngIf=\"filteredData?.length\">\n <ng-container *ngFor=\"let section of filteredData\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}}\">\n <ng-container *ngIf=\"column?.enabled\">\n <!-- Competency component -->\n <app-competency \n *ngIf=\"column?.key === 'competency'\"\n [competency]=\"column\"\n (emptyResponse)=\"onCompetencyEvent($event)\"\n (telemetryResponse)=\"onCompetencyTelemetry($event)\">\n </app-competency>\n \n <!-- Content strip components -->\n <app-content-strip\n *ngIf=\"column?.key.includes('content')\"\n [data]=\"{contentStrip: column?.data, sectionKey: section.key}\"\n (viewAllResponse)=\"onViewAllEvent($event.event, $event.data)\"\n (telemetryResponse)=\"onContentTelemetry($event)\">\n </app-content-strip>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CompetencyComponent, selector: "app-competency", inputs: ["competency"], outputs: ["emptyResponse", "telemetryResponse"] }, { kind: "component", type: ContentStripComponent, selector: "app-content-strip", inputs: ["data"], outputs: ["viewAllResponse", "telemetryResponse"] }] }); }
14821
+ }
14822
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnSectionDisplayComponent, decorators: [{
14823
+ type: Component,
14824
+ args: [{ selector: 'app-column-section-display', template: "<ng-container *ngIf=\"filteredData?.length\">\n <ng-container *ngFor=\"let section of filteredData\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}}\">\n <ng-container *ngIf=\"column?.enabled\">\n <!-- Competency component -->\n <app-competency \n *ngIf=\"column?.key === 'competency'\"\n [competency]=\"column\"\n (emptyResponse)=\"onCompetencyEvent($event)\"\n (telemetryResponse)=\"onCompetencyTelemetry($event)\">\n </app-competency>\n \n <!-- Content strip components -->\n <app-content-strip\n *ngIf=\"column?.key.includes('content')\"\n [data]=\"{contentStrip: column?.data, sectionKey: section.key}\"\n (viewAllResponse)=\"onViewAllEvent($event.event, $event.data)\"\n (telemetryResponse)=\"onContentTelemetry($event)\">\n </app-content-strip>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n</ng-container>" }]
14825
+ }], propDecorators: { data: [{
14826
+ type: Input
14827
+ }], orgId: [{
14828
+ type: Input
14829
+ }], channelName: [{
14830
+ type: Input
14831
+ }], competencyEvent: [{
14832
+ type: Output
14833
+ }], competencyTelemetry: [{
14834
+ type: Output
14835
+ }], contentTelemetry: [{
14836
+ type: Output
14837
+ }], viewAllEvent: [{
14838
+ type: Output
14839
+ }] } });
14840
+
14841
+ class MobileSectionsComponent {
14842
+ constructor() {
14843
+ this.leaderboardTabClicked = new EventEmitter();
14844
+ }
14845
+ onTabClicked(event) {
14846
+ this.leaderboardTabClicked.emit(event);
14847
+ }
14848
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14849
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MobileSectionsComponent, selector: "app-mobile-sections", inputs: { myProgressData: "myProgressData", speakersData: "speakersData", leaderboardData: "leaderboardData", rootOrgId: "rootOrgId", orgId: "orgId", slwConfig: "slwConfig" }, outputs: { leaderboardTabClicked: "leaderboardTabClicked" }, ngImport: i0, template: "<div class=\"block md:hidden\">\n <div *ngIf=\"myProgressData?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"myProgressData?.data\"\n [rootOrgId]=\"rootOrgId\">\n </sb-uic-user-progress>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"speakersData?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"speakersData?.data\">\n </sb-uic-speakers>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"leaderboardData?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"leaderboardData?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"onTabClicked($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }] }); }
14850
+ }
14851
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, decorators: [{
14852
+ type: Component,
14853
+ args: [{ selector: 'app-mobile-sections', template: "<div class=\"block md:hidden\">\n <div *ngIf=\"myProgressData?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"myProgressData?.data\"\n [rootOrgId]=\"rootOrgId\">\n </sb-uic-user-progress>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"speakersData?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"speakersData?.data\">\n </sb-uic-speakers>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"leaderboardData?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"leaderboardData?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"onTabClicked($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n</div>" }]
14854
+ }], propDecorators: { myProgressData: [{
14855
+ type: Input
14856
+ }], speakersData: [{
14857
+ type: Input
14858
+ }], leaderboardData: [{
14859
+ type: Input
14860
+ }], rootOrgId: [{
14861
+ type: Input
14862
+ }], orgId: [{
14863
+ type: Input
14864
+ }], slwConfig: [{
14865
+ type: Input
14866
+ }], leaderboardTabClicked: [{
14867
+ type: Output
14868
+ }] } });
14869
+
14870
+ class MainContentComponent {
14871
+ constructor(data, channelName, orgId, isMobile, providerId, slwConfig, eventCallback, configSvc) {
14872
+ this.data = data;
14873
+ this.channelName = channelName;
14874
+ this.orgId = orgId;
14875
+ this.isMobile = isMobile;
14876
+ this.providerId = providerId;
14877
+ this.slwConfig = slwConfig;
14878
+ this.eventCallback = eventCallback;
14879
+ this.configSvc = configSvc;
14880
+ this.selectedIndex = 0;
14881
+ this.hideCompetencyBlock = false;
14882
+ this.contentTabEmptyResponseCount = 0;
14883
+ this.showModal = false;
14884
+ }
14885
+ ngOnInit() {
14886
+ // Initialization logic
14887
+ }
14888
+ tabClicked(event) {
14889
+ this.selectedIndex = event.index;
14890
+ this.eventCallback({
14891
+ action: 'tab-click',
14892
+ source: 'mainContent',
14893
+ id: `${event.tab.textLabel}-tab`
14894
+ });
14895
+ }
14896
+ raiseTabClick(event) {
14897
+ this.eventCallback({
14898
+ action: 'mdo-leaderboard',
14899
+ source: 'mainContent',
14900
+ id: `${event}-tab`
14901
+ });
14902
+ }
14903
+ hideKeyHightlight(event, data) {
14904
+ if (event) {
14905
+ data.enabled = false;
14906
+ this.eventCallback({
14907
+ action: 'hide-highlight',
14908
+ source: 'mainContent',
14909
+ id: 'key-highlight'
14910
+ });
14911
+ }
14912
+ }
14913
+ triggerOpenDialog(event) {
14914
+ if (event) {
14915
+ this.showModal = true;
14916
+ document.body.style.overflow = 'hidden';
14917
+ }
14918
+ this.eventCallback({
14919
+ action: 'open-dialog',
14920
+ source: 'mainContent',
14921
+ id: 'key-announcements'
14922
+ });
14923
+ }
14924
+ onClose() {
14925
+ this.showModal = false;
14926
+ document.body.style.overflow = 'auto';
14927
+ this.eventCallback({
14928
+ action: 'close-dialog',
14929
+ source: 'mainContent',
14930
+ id: 'key-announcements'
14931
+ });
14932
+ }
14933
+ raiseTelemetryInteratEvent(event) {
14934
+ this.eventCallback({
14935
+ action: 'telemetry',
14936
+ source: 'mainContent',
14937
+ id: event.id || 'content-interaction',
14938
+ data: event
14939
+ });
14940
+ }
14941
+ showAllContent(event, data) {
14942
+ this.eventCallback({
14943
+ action: 'view-all',
14944
+ source: 'mainContent',
14945
+ id: data?.sectionKey || 'content-section',
14946
+ data: event
14947
+ });
14948
+ }
14949
+ hideCompetency(event) {
14950
+ if (event) {
14951
+ this.hideCompetencyBlock = true;
14952
+ this.eventCallback({
14953
+ action: 'hide-competency',
14954
+ source: 'mainContent',
14955
+ id: 'competency-block'
14956
+ });
14957
+ }
14958
+ }
14959
+ raiseCompetencyTelemetry(name) {
14960
+ this.eventCallback({
14961
+ action: 'competency-click',
14962
+ source: 'mainContent',
14963
+ id: `${name}-core-expertise`
14964
+ });
14965
+ }
14966
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContentComponent, deps: [{ token: 'sectionData' }, { token: 'channelName' }, { token: 'orgId' }, { token: 'isMobile' }, { token: 'providerId' }, { token: 'slwConfiguration' }, { token: 'eventCallback' }, { token: i2.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Component }); }
14967
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContentComponent, selector: "app-main-content", ngImport: i0, template: "<div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data?.background}\">\n <div class=\"container\">\n <!-- Mobile view components -->\n <ng-container *ngIf=\"isMobile\">\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'mobile'\">\n </sb-uic-key-highlights>\n </div>\n \n <!-- Other mobile sections (condensed) -->\n <div class=\"block md:hidden\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mobile progress, speakers, leaderboard -->\n <ng-container *ngIf=\"isMobile\">\n <app-mobile-sections \n [myProgressData]=\"data?.stateLearningWeekSection?.myprogress\"\n [speakersData]=\"data?.stateLearningWeekSection?.speakerOftheDay\"\n [leaderboardData]=\"data?.stateLearningWeekSection?.mdoLeaderboard\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\"\n [orgId]=\"orgId\"\n [slwConfig]=\"slwConfig\"\n (leaderboardTabClicked)=\"raiseTabClick($event)\">\n </app-mobile-sections>\n </ng-container>\n \n <!-- Mobile CBP Plan -->\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n \n <!-- Mobile announcements -->\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements \n [layoutType]=\"'mobile'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [fetchDataFromApi]=\"false\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n \n <!-- Announcement dialog -->\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n \n <!-- Desktop Key Highlights -->\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\">\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'desktop'\">\n </sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Main grid layout -->\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <!-- Main tab section -->\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <!-- Week highlights (desktop) -->\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mandatory courses -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && \n data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Learning content -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled && \n data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Events -->\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && \n data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events \n [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfig\">\n </sb-uic-events>\n </div>\n \n <!-- Tabs -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n <mat-tab-group \n animationDuration=\"0ms\" \n class=\"mat-tab-labels mytabs w-full\"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"tabClicked($event)\">\n \n <!-- Content Tab -->\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>Learn</ng-template>\n <!-- Empty state -->\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n </ng-container>\n \n <!-- Content tab content -->\n <div class=\"padding-top-l\">\n <app-column-section-display \n [data]=\"data.tabSection.contentTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n \n <!-- Competency Tab -->\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>Competency</ng-template>\n <div>\n <app-column-section-display \n [data]=\"data.tabSection.coreAreasTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n \n <!-- Sidebar -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <!-- Progress -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n \n <!-- Speakers -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n \n <!-- Leaderboard -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"raiseTabClick($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n </div>\n \n <!-- CBP Plan -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n \n <!-- Announcements -->\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AnnouncementsComponent, selector: "sb-uic-announcements", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: CbpPlanComponent, selector: "sb-uic-cbp-plan", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: ColumnSectionDisplayComponent, selector: "app-column-section-display", inputs: ["data", "orgId", "channelName"], outputs: ["competencyEvent", "competencyTelemetry", "contentTelemetry", "viewAllEvent"] }, { kind: "component", type: MobileSectionsComponent, selector: "app-mobile-sections", inputs: ["myProgressData", "speakersData", "leaderboardData", "rootOrgId", "orgId", "slwConfig"], outputs: ["leaderboardTabClicked"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
14968
+ }
14969
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContentComponent, decorators: [{
14970
+ type: Component,
14971
+ args: [{ selector: 'app-main-content', template: "<div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data?.background}\">\n <div class=\"container\">\n <!-- Mobile view components -->\n <ng-container *ngIf=\"isMobile\">\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'mobile'\">\n </sb-uic-key-highlights>\n </div>\n \n <!-- Other mobile sections (condensed) -->\n <div class=\"block md:hidden\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mobile progress, speakers, leaderboard -->\n <ng-container *ngIf=\"isMobile\">\n <app-mobile-sections \n [myProgressData]=\"data?.stateLearningWeekSection?.myprogress\"\n [speakersData]=\"data?.stateLearningWeekSection?.speakerOftheDay\"\n [leaderboardData]=\"data?.stateLearningWeekSection?.mdoLeaderboard\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\"\n [orgId]=\"orgId\"\n [slwConfig]=\"slwConfig\"\n (leaderboardTabClicked)=\"raiseTabClick($event)\">\n </app-mobile-sections>\n </ng-container>\n \n <!-- Mobile CBP Plan -->\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n \n <!-- Mobile announcements -->\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements \n [layoutType]=\"'mobile'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [fetchDataFromApi]=\"false\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n \n <!-- Announcement dialog -->\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n \n <!-- Desktop Key Highlights -->\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\">\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'desktop'\">\n </sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Main grid layout -->\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <!-- Main tab section -->\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <!-- Week highlights (desktop) -->\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mandatory courses -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && \n data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Learning content -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled && \n data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Events -->\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && \n data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events \n [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfig\">\n </sb-uic-events>\n </div>\n \n <!-- Tabs -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n <mat-tab-group \n animationDuration=\"0ms\" \n class=\"mat-tab-labels mytabs w-full\"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"tabClicked($event)\">\n \n <!-- Content Tab -->\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>Learn</ng-template>\n <!-- Empty state -->\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n </ng-container>\n \n <!-- Content tab content -->\n <div class=\"padding-top-l\">\n <app-column-section-display \n [data]=\"data.tabSection.contentTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n \n <!-- Competency Tab -->\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>Competency</ng-template>\n <div>\n <app-column-section-display \n [data]=\"data.tabSection.coreAreasTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n \n <!-- Sidebar -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <!-- Progress -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n \n <!-- Speakers -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n \n <!-- Leaderboard -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"raiseTabClick($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n </div>\n \n <!-- CBP Plan -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n \n <!-- Announcements -->\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>" }]
14972
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14973
+ type: Inject,
14974
+ args: ['sectionData']
14975
+ }] }, { type: undefined, decorators: [{
14976
+ type: Inject,
14977
+ args: ['channelName']
14978
+ }] }, { type: undefined, decorators: [{
14979
+ type: Inject,
14980
+ args: ['orgId']
14981
+ }] }, { type: undefined, decorators: [{
14982
+ type: Inject,
14983
+ args: ['isMobile']
14984
+ }] }, { type: undefined, decorators: [{
14985
+ type: Inject,
14986
+ args: ['providerId']
14987
+ }] }, { type: undefined, decorators: [{
14988
+ type: Inject,
14989
+ args: ['slwConfiguration']
14990
+ }] }, { type: undefined, decorators: [{
14991
+ type: Inject,
14992
+ args: ['eventCallback']
14993
+ }] }, { type: i2.ConfigurationsService }]; } });
14994
+
14995
+ class SupportSectionComponent {
14996
+ constructor(data, eventCallback) {
14997
+ this.data = data;
14998
+ this.eventCallback = eventCallback;
14999
+ }
15000
+ onVideoEvent(event) {
15001
+ this.eventCallback({
15002
+ action: 'video-conference',
15003
+ source: 'supportSection',
15004
+ id: event.id || 'video-event',
15005
+ data: event
15006
+ });
15007
+ }
15008
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportSectionComponent, deps: [{ token: 'sectionData' }, { token: 'eventCallback' }], target: i0.ɵɵFactoryTarget.Component }); }
15009
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SupportSectionComponent, selector: "app-support-section", ngImport: i0, template: "<div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference \n [videoConf]=\"data\"\n (videoEvent)=\"onVideoEvent($event)\">\n </sb-uic-video-conference>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "component", type: VideoConferenceComponent, selector: "sb-uic-video-conference", inputs: ["videoConf"] }] }); }
15010
+ }
15011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportSectionComponent, decorators: [{
15012
+ type: Component,
15013
+ args: [{ selector: 'app-support-section', template: "<div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference \n [videoConf]=\"data\"\n (videoEvent)=\"onVideoEvent($event)\">\n </sb-uic-video-conference>\n </div>\n</div>" }]
15014
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
15015
+ type: Inject,
15016
+ args: ['sectionData']
15017
+ }] }, { type: undefined, decorators: [{
15018
+ type: Inject,
15019
+ args: ['eventCallback']
15020
+ }] }]; } });
15021
+
15022
+ class MdoChannelV3Component {
15023
+ constructor(route, router, eventSvc, translate, langTranslations, configSvc, sanitizer, utilsSvc, injector, cdr, dialog // Add this
15024
+ ) {
15025
+ this.route = route;
15026
+ this.router = router;
15027
+ this.eventSvc = eventSvc;
15028
+ this.translate = translate;
15029
+ this.langTranslations = langTranslations;
15030
+ this.configSvc = configSvc;
15031
+ this.sanitizer = sanitizer;
15032
+ this.utilsSvc = utilsSvc;
15033
+ this.injector = injector;
15034
+ this.cdr = cdr;
15035
+ this.dialog = dialog;
15036
+ this.sectionList = [];
15037
+ this.isEdit = false;
15038
+ this.activeSections = [];
15039
+ this.providerId = '123456789';
15040
+ this.isMobile = false;
15041
+ this.navigationTitles = [
15042
+ { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },
15043
+ { title: 'MDO Channels', url: '/app/learn/mdo-channels/all-channels', icon: '', disableTranslate: true }
15044
+ ];
15045
+ this.componentRegistry = {
15046
+ 'topSection': TopSectionComponent,
15047
+ 'lookerSection': LookerSectionComponent,
15048
+ 'topLearners': TopLearnersComponent,
15049
+ 'mainContent': MainContentComponent,
15050
+ 'supportSection': SupportSectionComponent
15051
+ };
15052
+ this.injectorCache = new Map();
15053
+ this.isMobile = this.utilsSvc.isMobile;
15054
+ }
15055
+ ngOnInit() {
15056
+ // Get active sections
15057
+ this.activeSections = this.sectionList?.filter(section => section.enabled)
15058
+ .sort((a, b) => (a.order || 0) - (b.order || 0)) || [];
15059
+ // Get channel info from route
15060
+ this.route.params.subscribe(params => {
15061
+ debugger;
15062
+ if (params.channelId) {
15063
+ this.channelName = params.channelName || '';
15064
+ this.orgId = params.channelId;
15065
+ this.cdr.markForCheck();
15066
+ }
15067
+ });
15068
+ }
15069
+ ngOnChanges(changes) {
15070
+ if (changes.sectionList || changes.slwConfiguration) {
15071
+ // Clear injector cache when inputs change
15072
+ this.injectorCache.clear();
15073
+ }
15074
+ }
15075
+ handleSectionEvent(event) {
15076
+ // Handle events from child components
15077
+ console.log('Section event:', event);
15078
+ // Raise telemetry for the event
15079
+ if (event.action) {
15080
+ this.raiseTelemetry(`${event.source}-${event.id}`);
15081
+ }
15082
+ // Handle specific events
15083
+ if (event.action === 'view-all' && event.data?.viewMoreUrl) {
15084
+ this.router.navigateByUrl(event.data.viewMoreUrl);
15085
+ }
15086
+ // Handle edit events
15087
+ if (event.action === 'edit') {
15088
+ this.openEditorDialog(event);
15089
+ }
15090
+ }
15091
+ getSectionComponent(key) {
15092
+ return this.componentRegistry[key] || null;
15093
+ }
15094
+ createInjector(section, column) {
15095
+ // Create a stable reference to the callback function
15096
+ if (!this._eventCallbackFn) {
15097
+ this._eventCallbackFn = (event) => this.handleSectionEvent(event);
15098
+ }
15099
+ // Create a cache key based on section and column keys
15100
+ const cacheKey = `${section.key}-${column.key}`;
15101
+ // Return cached injector if available
15102
+ if (this.injectorCache.has(cacheKey)) {
15103
+ return this.injectorCache.get(cacheKey);
15104
+ }
15105
+ // Create new injector
15106
+ const injector = Injector.create({
15107
+ providers: [
15108
+ { provide: 'sectionData', useValue: column.data },
15109
+ { provide: 'channelName', useValue: this.channelName },
15110
+ { provide: 'orgId', useValue: this.orgId },
15111
+ { provide: 'isMobile', useValue: this.isMobile },
15112
+ ...(this.isEdit ? [{ provide: 'isEdit', useValue: this.isEdit }] : [{ provide: 'isEdit', useValue: this.isEdit }]),
15113
+ { provide: 'slwConfiguration', useValue: this.slwConfiguration },
15114
+ { provide: 'providerId', useValue: this.orgId },
15115
+ { provide: 'eventCallback', useValue: this._eventCallbackFn }
15116
+ ],
15117
+ parent: this.injector
15118
+ });
15119
+ // Cache the injector
15120
+ this.injectorCache.set(cacheKey, injector);
15121
+ return injector;
15122
+ }
15123
+ trackByFn(index, item) {
15124
+ return item.key || index;
15125
+ }
15126
+ raiseTelemetry(name) {
15127
+ this.eventSvc.raiseInteractTelemetry({
15128
+ type: 'click',
15129
+ subType: 'mdo-channel',
15130
+ id: `${_.kebabCase(name).toLowerCase()}`
15131
+ }, {}, { module: 'LEARN' });
15132
+ }
15133
+ // Add new method to handle edit dialog
15134
+ openEditorDialog(event) {
15135
+ const dialogRef = this.dialog.open(EditorDialogComponent, {
15136
+ width: this.getDialogWidth(event.data.fieldType),
15137
+ data: {
15138
+ fieldName: event.data.fieldName,
15139
+ displayName: event.data.displayName,
15140
+ value: event.data.currentValue,
15141
+ fieldType: event.data.fieldType,
15142
+ section: event.source
15143
+ }
15144
+ });
15145
+ dialogRef.afterClosed().subscribe(result => {
15146
+ if (result) {
15147
+ // Update the section data
15148
+ this.updateSectionData(event.source, event.data.fieldName, result);
15149
+ }
15150
+ });
15151
+ }
15152
+ // Helper method to determine dialog width based on field type
15153
+ getDialogWidth(fieldType) {
15154
+ switch (fieldType) {
15155
+ case 'textarea':
15156
+ case 'slider':
15157
+ case 'metrics':
15158
+ return '800px';
15159
+ case 'image':
15160
+ return '600px';
15161
+ default:
15162
+ return '400px';
15163
+ }
15164
+ }
15165
+ // Method to update section data
15166
+ updateSectionData(sectionType, fieldName, newValue) {
15167
+ // Make a deep copy to avoid modifying the original reference
15168
+ const updatedSections = cloneDeep(this.sectionList);
15169
+ // Find the relevant section and column
15170
+ for (const section of updatedSections) {
15171
+ if (!section.enabled)
15172
+ continue;
15173
+ for (const column of section.column) {
15174
+ if (column.key === sectionType && column.data) {
15175
+ // Update the specific field
15176
+ this.updateNestedField(column.data, fieldName, newValue);
15177
+ break;
15178
+ }
15179
+ }
15180
+ }
15181
+ // Clear the injector cache to force component recreation
15182
+ this.injectorCache.clear();
15183
+ // Update the sectionList (this will trigger change detection)
15184
+ this.sectionList = updatedSections;
15185
+ console.log('Updated sectionList:', this.sectionList);
15186
+ // Update active sections
15187
+ this.activeSections = this.sectionList.filter(section => section.enabled)
15188
+ .sort((a, b) => (a.order || 0) - (b.order || 0));
15189
+ // Force change detection to ensure UI updates
15190
+ this.cdr.detectChanges(); // Use detectChanges instead of markForCheck
15191
+ }
15192
+ // Helper method to update nested fields
15193
+ updateNestedField(obj, path, value) {
15194
+ // Handle nested paths (e.g., "sliderData.styleData.borderRadius")
15195
+ const parts = path.split('.');
15196
+ let current = obj;
15197
+ // Navigate to the parent object
15198
+ for (let i = 0; i < parts.length - 1; i++) {
15199
+ if (!current[parts[i]]) {
15200
+ current[parts[i]] = {};
15201
+ }
15202
+ current = current[parts[i]];
15203
+ }
15204
+ // Update the final property
15205
+ current[parts[parts.length - 1]] = value;
15206
+ }
15207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV3Component, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2.EventService }, { token: i2$1.TranslateService }, { token: i2.MultilingualTranslationsService }, { token: i2.ConfigurationsService }, { token: i1$6.DomSanitizer }, { token: i2.UtilityService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i3$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
15208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MdoChannelV3Component, selector: "sb-uic-mdo-channel-v3", inputs: { sectionList: "sectionList", slwConfiguration: "slwConfiguration", isEdit: "isEdit", providerId: "providerId", channelName: "channelName", orgId: "orgId" }, usesOnChanges: true, ngImport: i0, template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: navigationTitles }\"></ws-widget-btn-page-back>\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <ng-container *ngFor=\"let section of activeSections; trackBy: trackByFn\">\n <section [id]=\"section.key\" class=\"w-full grid grid-cols-12 gap-4 {{section.customClass}}\" \n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column; trackBy: trackByFn\">\n <div *ngIf=\"column?.enabled\" [id]=\"column.key\" class=\"col-span-{{column.colspan || 12}}\">\n <ng-container *ngIf=\"getSectionComponent(column.key)\"\n [ngComponentOutlet]=\"getSectionComponent(column.key)\"\n [ngComponentOutletInjector]=\"createInjector(section, column)\">\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n</div>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15209
+ }
15210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV3Component, decorators: [{
15211
+ type: Component,
15212
+ args: [{ selector: 'sb-uic-mdo-channel-v3', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: navigationTitles }\"></ws-widget-btn-page-back>\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <ng-container *ngFor=\"let section of activeSections; trackBy: trackByFn\">\n <section [id]=\"section.key\" class=\"w-full grid grid-cols-12 gap-4 {{section.customClass}}\" \n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column; trackBy: trackByFn\">\n <div *ngIf=\"column?.enabled\" [id]=\"column.key\" class=\"col-span-{{column.colspan || 12}}\">\n <ng-container *ngIf=\"getSectionComponent(column.key)\"\n [ngComponentOutlet]=\"getSectionComponent(column.key)\"\n [ngComponentOutletInjector]=\"createInjector(section, column)\">\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n</div>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"] }]
15213
+ }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2.EventService }, { type: i2$1.TranslateService }, { type: i2.MultilingualTranslationsService }, { type: i2.ConfigurationsService }, { type: i1$6.DomSanitizer }, { type: i2.UtilityService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i3$1.MatDialog }]; }, propDecorators: { sectionList: [{
15214
+ type: Input
15215
+ }], slwConfiguration: [{
15216
+ type: Input
15217
+ }], isEdit: [{
15218
+ type: Input
15219
+ }], providerId: [{
15220
+ type: Input
15221
+ }], channelName: [{
15222
+ type: Input
15223
+ }], orgId: [{
15224
+ type: Input
15225
+ }] } });
15226
+
13263
15227
  class MDOChannelModule {
13264
15228
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13265
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, declarations: [MdoChannelV1Component, MdoChannelV2Component], imports: [CommonModule,
15229
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, declarations: [MdoChannelV1Component, MdoChannelV2Component,
15230
+ MdoChannelV3Component,
15231
+ TopSectionComponent,
15232
+ LookerSectionComponent,
15233
+ TopLearnersComponent,
15234
+ MainContentComponent,
15235
+ SupportSectionComponent,
15236
+ CompetencyComponent,
15237
+ ContentStripComponent,
15238
+ ColumnSectionDisplayComponent,
15239
+ MobileSectionsComponent,
15240
+ EditorDialogComponent], imports: [CommonModule,
13266
15241
  MatIconModule,
13267
15242
  MatLegacyChipsModule,
13268
15243
  SkeletonLoaderLibModule,
@@ -13285,7 +15260,17 @@ class MDOChannelModule {
13285
15260
  MatLegacyTabsModule,
13286
15261
  OrderByPipeModule,
13287
15262
  SafeUrlPipeModule,
13288
- VideoConferenceModule, i2$1.TranslateModule], exports: [MdoChannelV1Component, MdoChannelV2Component] }); }
15263
+ VideoConferenceModule,
15264
+ SbUiResolverModule,
15265
+ FormsModule,
15266
+ ReactiveFormsModule, i2$1.TranslateModule, MatDialogModule,
15267
+ MatLegacyFormFieldModule,
15268
+ MatLegacyInputModule,
15269
+ MatLegacyButtonModule,
15270
+ MatLegacySlideToggleModule,
15271
+ DragDropModule,
15272
+ HttpClientModule,
15273
+ MatIconModule], exports: [MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component] }); }
13289
15274
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, providers: [
13290
15275
  CommonMethodsService
13291
15276
  ], imports: [CommonModule,
@@ -13312,18 +15297,41 @@ class MDOChannelModule {
13312
15297
  OrderByPipeModule,
13313
15298
  SafeUrlPipeModule,
13314
15299
  VideoConferenceModule,
15300
+ SbUiResolverModule,
15301
+ FormsModule,
15302
+ ReactiveFormsModule,
13315
15303
  TranslateModule.forRoot({
13316
15304
  loader: {
13317
15305
  provide: TranslateLoader,
13318
15306
  useFactory: HttpLoaderFactory,
13319
15307
  deps: [HttpClient],
13320
15308
  },
13321
- })] }); }
15309
+ }),
15310
+ MatDialogModule,
15311
+ MatLegacyFormFieldModule,
15312
+ MatLegacyInputModule,
15313
+ MatLegacyButtonModule,
15314
+ MatLegacySlideToggleModule,
15315
+ DragDropModule,
15316
+ HttpClientModule,
15317
+ MatIconModule] }); }
13322
15318
  }
13323
15319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, decorators: [{
13324
15320
  type: NgModule,
13325
15321
  args: [{
13326
- declarations: [MdoChannelV1Component, MdoChannelV2Component],
15322
+ declarations: [MdoChannelV1Component, MdoChannelV2Component,
15323
+ MdoChannelV3Component,
15324
+ TopSectionComponent,
15325
+ LookerSectionComponent,
15326
+ TopLearnersComponent,
15327
+ MainContentComponent,
15328
+ SupportSectionComponent,
15329
+ CompetencyComponent,
15330
+ ContentStripComponent,
15331
+ ColumnSectionDisplayComponent,
15332
+ MobileSectionsComponent,
15333
+ EditorDialogComponent
15334
+ ],
13327
15335
  imports: [
13328
15336
  CommonModule,
13329
15337
  MatIconModule,
@@ -13349,6 +15357,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13349
15357
  OrderByPipeModule,
13350
15358
  SafeUrlPipeModule,
13351
15359
  VideoConferenceModule,
15360
+ SbUiResolverModule,
15361
+ FormsModule,
15362
+ ReactiveFormsModule,
13352
15363
  TranslateModule.forRoot({
13353
15364
  loader: {
13354
15365
  provide: TranslateLoader,
@@ -13356,8 +15367,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13356
15367
  deps: [HttpClient],
13357
15368
  },
13358
15369
  }),
15370
+ MatDialogModule,
15371
+ MatLegacyFormFieldModule,
15372
+ MatLegacyInputModule,
15373
+ MatLegacyButtonModule,
15374
+ MatLegacySlideToggleModule,
15375
+ DragDropModule,
15376
+ HttpClientModule,
15377
+ MatIconModule,
13359
15378
  ],
13360
- exports: [MdoChannelV1Component, MdoChannelV2Component],
15379
+ exports: [MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component],
13361
15380
  providers: [
13362
15381
  CommonMethodsService
13363
15382
  ],
@@ -13653,7 +15672,7 @@ class NationalLearningComponent {
13653
15672
  }
13654
15673
  });
13655
15674
  }
13656
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NationalLearningComponent, deps: [{ token: 'environment' }, { token: i1$1.Router }, { token: i2.EventService }, { token: i4$2.DomSanitizer }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
15675
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NationalLearningComponent, deps: [{ token: 'environment' }, { token: i1$1.Router }, { token: i2.EventService }, { token: i1$6.DomSanitizer }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
13657
15676
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NationalLearningComponent, selector: "sb-uic-national-learning", inputs: { sectionList: "sectionList", configDetails: "configDetails", nwlConfiguration: "nwlConfiguration" }, ngImport: i0, template: "<div class=\"container-fluid white-background nlm-micro-sites micro-white\" id=\"nlm-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 white-bg\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentSection'\" [ngTemplateOutlet]=\"contentSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerTemplate\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"w-full topSection\">\n <div *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n <div *ngIf=\"data && data.metrics\">\n <div class=\"block md:hidden\">\n <sb-uic-data-points\n [providerId]=\"providerId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'nlwCol'\"\n [title]=\"data?.metrics?.title\"\n [pageLayout]=\"'nlw'\">\n </sb-uic-data-points>\n </div>\n <div class=\"hidden md:block\">\n <sb-uic-data-points\n [providerId]=\"providerId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'nlwRow'\"\n [title]=\"data?.metrics?.title\"\n [pageLayout]=\"'nlw'\">\n </sb-uic-data-points>\n </div>\n </div>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"block md:hidden\">\n <sb-uic-key-highlights (emptyResponse)=\"hideKeyHightlight($event, data.keyHighlights)\" [formData]=\"data.keyHighlights\" [providerId]=\"providerId\" [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"hidden md:block\">\n <div class=\"flex flex items-center justify-center gap-10\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-rounded top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.imageUrl\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col pr-3\">\n <div class=\" txt-ellipsis-2 break-words description-title\">{{data?.title}}</div>\n <div class=\"description\">{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden\">\n <div class=\"flex flex-col items-center justify-center margin-bottom-xl px-5\">\n <div class=\"mlogo-box-rounded\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.imageUrl\">\n </div>\n </div>\n <div class=\"flex flex-col px-5\">\n <div class=\" txt-ellipsis-2 break-words description-title\">{{data?.title}}</div>\n <div class=\"mdescription\">{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\">\n <div class=\"hidden md:block\">\n <sb-uic-key-highlights (emptyResponse)=\"hideKeyHightlight($event, data.keyHighlights)\" [formData]=\"data.keyHighlights\" [providerId]=\"providerId\" [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n\n<ng-template #contentSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.leftContent.colspan}}\">\n <div *ngIf=\"data.leftContent.data.weekHighlights.data\">\n <sb-uic-highlights-of-week\n [objectData]=\"data.leftContent.data.weekHighlights.data\">\n </sb-uic-highlights-of-week>\n </div>\n <div class=\"hidden md:block\">\n <div *ngIf=\"data.leftContent.data.mandatoryCourse.enabled && data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"'123456789'\"\n [widgetData]=\"data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"hidden md:block\">\n <div *ngIf=\"data?.leftContent?.data?.exploreLearningContent?.strips[0]\">\n <!-- <sb-uic-content-strip-facet-filter [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"></sb-uic-content-strip-facet-filter> -->\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"environment?.spvorgID\"\n [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n <div class=\"hidden md:block\">\n <div *ngIf=\"data.leftContent.data.events.enabled && data.leftContent.data.events.column[0]\">\n <sb-uic-events [object]=\"data.leftContent.data.events.column[0]\" [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-{{data.rightContent.colspan}}\">\n <div *ngIf=\"data.rightContent.data.myprogress\">\n <sb-uic-user-progress\n [objectData]=\"data.rightContent.data.myprogress.data\" [rootOrgId]=\"configDetails?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n <div *ngIf=\"data.rightContent.data.speakerOftheDay\">\n <sb-uic-speakers\n [objectData]=\"data.rightContent.data.speakerOftheDay.data\">\n </sb-uic-speakers>\n </div>\n <div *ngIf=\"data.rightContent.data.mdoLeaderboard\">\n <sb-uic-mdo-leaderboard\n [object]=\"data.rightContent.data.mdoLeaderboard.data\"\n (tabClicked)=\"raiseTabClick($event)\"></sb-uic-mdo-leaderboard>\n </div>\n\n <div class=\"block md:hidden\">\n <div *ngIf=\"data.leftContent.data.mandatoryCourse.enabled && data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"'123456789'\"\n [widgetData]=\"data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden px-4 md-px-0\">\n <div *ngIf=\"data?.leftContent?.data?.exploreLearningContent?.strips[0]\">\n <sb-uic-content-strip-facet-filter [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"></sb-uic-content-strip-facet-filter>\n </div>\n </div>\n <div class=\"block md:hidden px-4 md-px-0\">\n <div *ngIf=\"data.leftContent.data.events.enabled && data.leftContent.data.events.column[0]\">\n <sb-uic-events [object]=\"data.leftContent.data.events.column[0]\" [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #lookerTemplate let-data=\"data\">\n <div class=\"flex items-center justify-center\" >\n <div class=\"container mt-8\">\n <div class=\"key-speakers flex-wrap flex items-center justify-center\">\n <h1 class=\"featured text-center\">{{data?.header?.headerText}}</h1>\n <p class=\"featured-description p-4 md:p-0 text-center\">{{data?.header?.description}}</p>\n </div>\n <div class=\"lookpro\" *ngIf=\"lookerProUrl\">\n <iframe title=\"{{data?.header?.headerText}}\" width=\"100%\" height=\"520\" [src]=\"lookerProUrl\" frameborder=\"0\" style=\"border:0\" sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n </div>\n</ng-template>", styles: [".white-bg{background:#fff!important}.nlw-mandatoryCourse ::ng-deep .capitalize{font-size:20px;line-height:24.38px}.nlm-micro-sites ::ng-deep .container{max-width:1200px!important}.nlm-micro-sites ::ng-deep .banner-container{padding-bottom:0!important}.topSection ::ng-deep .prev{margin-left:15px!important}.topSection ::ng-deep .next{margin-right:15px!important}.topSection .stats-header{display:flex;align-items:center;justify-content:center;position:absolute;left:43.5%;top:-20px;text-transform:capitalize}.topSection .stats-title{display:flex;align-items:center;justify-content:center;background-color:#f3962f;padding:12px 16px;color:#fff;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;border-radius:35px}.topSection .my-arrow{font-size:12px}.topSection .less-opacity1{opacity:.75}.topSection .less-opacity2{opacity:.5}.topSection .details-wrapper{padding:16px;display:flex;gap:50px}.topSection .logo-box-container{width:180px;position:relative}@media only screen and (max-width: 599px){.topSection .logo-box-container{width:112px;height:72px}}.topSection .logo-box-rounded{height:180px;width:180px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}@media only screen and (max-width: 599px){.topSection .logo-box-rounded{width:112px;height:112px}}.topSection .logo-box-rounded .logo-img{max-width:122px}@media only screen and (max-width: 599px){.topSection .logo-box-rounded .logo-img{max-width:84px}}.topSection .mlogo-box-rounded{height:180px;width:180px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:1px 1px 8px 3px #0000000f}@media only screen and (max-width: 599px){.topSection .mlogo-box-rounded{width:112px;height:112px}}.topSection .mlogo-box-rounded .logo-img{max-width:122px}@media only screen and (max-width: 599px){.topSection .mlogo-box-rounded .logo-img{max-width:84px}}.topSection .txt-ellipsis-2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.topSection .description-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;padding-bottom:16px}.topSection .description{font-family:Lato;font-size:16px;font-weight:400;line-height:24px;text-align:left}.topSection .mdescription{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left}@media screen and (min-width: 320px) and (max-width: 769px){.topSection ::ng-deep .prev{margin-left:15px!important}.topSection ::ng-deep .next{margin-right:15px!important}.topSection ::ng-deep .banner-container{min-height:212px!important}}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "component", type: KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: ContentStripFacetFilterComponent, selector: "sb-uic-content-strip-facet-filter", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryLearningContentResponse"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }] }); }
13658
15677
  }
13659
15678
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NationalLearningComponent, decorators: [{
@@ -13662,7 +15681,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13662
15681
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
13663
15682
  type: Inject,
13664
15683
  args: ['environment']
13665
- }] }, { type: i1$1.Router }, { type: i2.EventService }, { type: i4$2.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
15684
+ }] }, { type: i1$1.Router }, { type: i2.EventService }, { type: i1$6.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
13666
15685
  type: Input
13667
15686
  }], configDetails: [{
13668
15687
  type: Input
@@ -14234,5 +16253,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14234
16253
  * Generated bundle index. Do not edit.
14235
16254
  */
14236
16255
 
14237
- export { AddCompetencyPopupComponent, AnnouncementsComponent, AnnouncementsModule, AvailableLanguagesComponent, AvatarPhotoLibComponent, AvatarPhotoLibModule, CalenderComponent, CalenderModule, CardKarmaProgramsComponent, CardKarmaProgramsV2Component, CardLandscapeComponent, CardMDOChannelComponent, CardPortraitComponent, CardPortraitExtComponent, CardResourceComponent, CardUserComponent, CardWideComponent, CardWideV2Component, CardsComponent, CardsModule, CbpPlanComponent, CbpPlanModule, CertificateDialogComponent, CommonMethodsService, CommonStripComponent, CommonStripModule, CommunitySuggestionsComponent, CommunitySuggestionsModule, CompetencyPassbookComponent, CompetencyPassbookMdoComponent, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConfirmationDialogComponent, ConnectionHoverCardComponent, ConnectionNameComponent, ConnectionNameModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentLanguageService, ContentProgressComponent, ContentProgressModule, ContentStripFacetFilterComponent, ContentStripFacetFilterModule, ContentStripWithTabsLibComponent, ContentStripWithTabsLibModule, ContentStripWithTabsPillsComponent, ContentStripWithTabsPillsModule, DataPointsComponent, DataPointsModule, DialogComponentsModule, EventCardComponent, EventsComponent, EventsModule, HighlightsOfWeekComponent, HighlightsOfWeekModule, HorizontalScrollerV2Component, HorizontalScrollerV2Module, HttpLoaderFactory, HttpLoaderFactory1, KeyHighlightsComponent, KeyHighlightsModule, MDOChannelModule, MdoChannelV1Component, MdoChannelV2Component, MdoLeaderboardComponent, MdoLeaderboardModule, NationalLearningComponent, NationalLearningModule, NbspModule, NbspPipe, ProvidersModule, ProvidersV2Component, ROOT_WIDGET_CONFIG, SakshamAI, SlidersLibComponent, SlidersLibModule, SnackbarComponent, SpeakersComponent, SpeakersModule, TOCMultiLingualDialogComponent, TOCMultiLingualDialogModule, TooltipDirective, TooltipModule, TopLearnersComponent, TopLearnersModule, UserContentRatingLibComponent, UserContentRatingLibModule, UserProgressComponent, UserProgressModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentLibService, WidgetUserServiceLib };
16256
+ export { AddCompetencyPopupComponent, AnnouncementsComponent, AnnouncementsModule, AvailableLanguagesComponent, AvatarPhotoLibComponent, AvatarPhotoLibModule, CalenderComponent, CalenderModule, CardKarmaProgramsComponent, CardKarmaProgramsV2Component, CardLandscapeComponent, CardMDOChannelComponent, CardPortraitComponent, CardPortraitExtComponent, CardResourceComponent, CardUserComponent, CardWideComponent, CardWideV2Component, CardsComponent, CardsModule, CbpPlanComponent, CbpPlanModule, CertificateDialogComponent, CommonMethodsService, CommonStripComponent, CommonStripModule, CommunitySuggestionsComponent, CommunitySuggestionsModule, CompetencyPassbookComponent, CompetencyPassbookMdoComponent, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConfirmationDialogComponent, ConnectionHoverCardComponent, ConnectionNameComponent, ConnectionNameModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentLanguageService, ContentProgressComponent, ContentProgressModule, ContentStripFacetFilterComponent, ContentStripFacetFilterModule, ContentStripWithTabsLibComponent, ContentStripWithTabsLibModule, ContentStripWithTabsPillsComponent, ContentStripWithTabsPillsModule, DataPointsComponent, DataPointsModule, DialogComponentsModule, EventCardComponent, EventsComponent, EventsModule, HighlightsOfWeekComponent, HighlightsOfWeekModule, HorizontalScrollerV2Component, HorizontalScrollerV2Module, HttpLoaderFactory, HttpLoaderFactory1, KeyHighlightsComponent, KeyHighlightsModule, MDOChannelModule, MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component, MdoLeaderboardComponent, MdoLeaderboardModule, NationalLearningComponent, NationalLearningModule, NbspModule, NbspPipe, ProvidersModule, ProvidersV2Component, ROOT_WIDGET_CONFIG, SakshamAI, SlidersLibComponent, SlidersLibModule, SnackbarComponent, SpeakersComponent, SpeakersModule, TOCMultiLingualDialogComponent, TOCMultiLingualDialogModule, TooltipDirective, TooltipModule, TopLearnersComponent$1 as TopLearnersComponent, TopLearnersModule, UserContentRatingLibComponent, UserContentRatingLibModule, UserProgressComponent, UserProgressModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentLibService, WidgetUserServiceLib };
14238
16257
  //# sourceMappingURL=sunbird-cb-consumption.mjs.map