@sunbird-cb/consumption 0.1.21-cbrelease-4.8.27-multilingual → 0.1.21-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/community-suggestions/community-suggestions.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 +1 -1
  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() { }
@@ -5684,7 +5690,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5684
5690
  }]
5685
5691
  }] });
5686
5692
 
5687
- class TopLearnersComponent {
5693
+ let TopLearnersComponent$1 = class TopLearnersComponent {
5688
5694
  constructor(insightSvc) {
5689
5695
  this.insightSvc = insightSvc;
5690
5696
  this.slwConfig = {};
@@ -5791,8 +5797,8 @@ class TopLearnersComponent {
5791
5797
  }
5792
5798
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, deps: [{ token: InsiteDataService }], target: i0.ɵɵFactoryTarget.Component }); }
5793
5799
  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"] }] }); }
5794
- }
5795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, decorators: [{
5800
+ };
5801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent$1, decorators: [{
5796
5802
  type: Component,
5797
5803
  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"] }]
5798
5804
  }], ctorParameters: function () { return [{ type: InsiteDataService }]; }, propDecorators: { objectData: [{
@@ -5807,9 +5813,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5807
5813
 
5808
5814
  class TopLearnersModule {
5809
5815
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5810
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, declarations: [TopLearnersComponent], imports: [CommonModule,
5816
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, declarations: [TopLearnersComponent$1], imports: [CommonModule,
5811
5817
  SkeletonLoaderLibModule,
5812
- MatLegacyTooltipModule], exports: [TopLearnersComponent] }); }
5818
+ MatLegacyTooltipModule], exports: [TopLearnersComponent$1] }); }
5813
5819
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, imports: [CommonModule,
5814
5820
  SkeletonLoaderLibModule,
5815
5821
  MatLegacyTooltipModule] }); }
@@ -5817,13 +5823,13 @@ class TopLearnersModule {
5817
5823
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, decorators: [{
5818
5824
  type: NgModule,
5819
5825
  args: [{
5820
- declarations: [TopLearnersComponent],
5826
+ declarations: [TopLearnersComponent$1],
5821
5827
  imports: [
5822
5828
  CommonModule,
5823
5829
  SkeletonLoaderLibModule,
5824
5830
  MatLegacyTooltipModule
5825
5831
  ],
5826
- exports: [TopLearnersComponent],
5832
+ exports: [TopLearnersComponent$1],
5827
5833
  }]
5828
5834
  }] });
5829
5835
 
@@ -8069,20 +8075,20 @@ class AddCompetencyPopupComponent {
8069
8075
  submitCompetency() {
8070
8076
  this.modalRef.close(this.selectedList);
8071
8077
  }
8072
- 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 }); }
8078
+ 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 }); }
8073
8079
  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" }] }); }
8074
8080
  }
8075
8081
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCompetencyPopupComponent, decorators: [{
8076
8082
  type: Component,
8077
8083
  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"] }]
8078
- }], ctorParameters: function () { return [{ type: i1$5.MatDialogRef }]; } });
8084
+ }], ctorParameters: function () { return [{ type: i3$1.MatDialogRef }]; } });
8079
8085
 
8080
8086
  class SnackbarComponent {
8081
8087
  constructor(data, snackBarRef) {
8082
8088
  this.data = data;
8083
8089
  this.snackBarRef = snackBarRef;
8084
8090
  }
8085
- 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 }); }
8091
+ 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 }); }
8086
8092
  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"] }] }); }
8087
8093
  }
8088
8094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SnackbarComponent, decorators: [{
@@ -8091,7 +8097,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8091
8097
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
8092
8098
  type: Inject,
8093
8099
  args: [MAT_SNACK_BAR_DATA]
8094
- }] }, { type: i1$6.MatSnackBarRef }]; } });
8100
+ }] }, { type: i1$5.MatSnackBarRef }]; } });
8095
8101
 
8096
8102
  class ConfirmationDialogComponent {
8097
8103
  constructor(dialogRef, data) {
@@ -10966,7 +10972,7 @@ class ContentStripWithTabsPillsComponent extends WidgetBaseComponent {
10966
10972
  this.stripsResultDataMap[strip.key].showOnLoader = false;
10967
10973
  }
10968
10974
  }
10969
- 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 }); }
10975
+ 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 }); }
10970
10976
  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] }); }
10971
10977
  }
10972
10978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripWithTabsPillsComponent, decorators: [{
@@ -10975,7 +10981,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10975
10981
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
10976
10982
  type: Inject,
10977
10983
  args: ['environment']
10978
- }] }, { 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: [{
10984
+ }] }, { 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: [{
10979
10985
  type: Input
10980
10986
  }], emptyResponse: [{
10981
10987
  type: Output
@@ -12959,7 +12965,991 @@ class MdoChannelV2Component {
12959
12965
  && this.route.snapshot.data.formData.data.result.form
12960
12966
  && this.route.snapshot.data.formData.data.result.form.data
12961
12967
  && this.route.snapshot.data.formData.data.result.form.data.sectionList) {
12962
- this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList;
12968
+ this.sectionList = [
12969
+ {
12970
+ "active": true,
12971
+ "enabled": true,
12972
+ "title": "",
12973
+ "key": "sectionTopBanner",
12974
+ "order": 1,
12975
+ "column": [
12976
+ {
12977
+ "active": true,
12978
+ "enabled": true,
12979
+ "key": "topSection",
12980
+ "title": "",
12981
+ "colspan": 12,
12982
+ "background": "",
12983
+ "bannerBackgroudClass": "web-banner-background",
12984
+ "data": {
12985
+ "background": "#1B4CA1",
12986
+ "logo": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745380667949_Maharashtra Logo Strip.png",
12987
+ "logoMobile": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745380774459_Logo 4.jpeg",
12988
+ "bannerBackgroundWebMobile": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1735299398814_ctd_logo.png",
12989
+ "title": "महाराष्ट्र टेक लर्निंग वीक",
12990
+ "titleClass": "main-title",
12991
+ "titleColor": "#fca311",
12992
+ "subTitle": "",
12993
+ "subTitleClass": "sub-title",
12994
+ "subTitleColor": "#FFFFFF",
12995
+ "subTitleColorMobile": "#000",
12996
+ "subTitleTwo": "महाराष्ट्र",
12997
+ "subTitleColorTwo": "#FFFFFF",
12998
+ "subTitleColorTwoMobile": "#000",
12999
+ "description": "महाराष्ट्र नेहमीच प्रगतीच्या अग्रस्थानी राहिला आहे. शिक्षण, आरोग्य, उद्योग, कृषी आणि प्रशासन या क्षेत्रांमध्ये नवोन्मेषाला प्रोत्साहन देत आला आहे. डिजिटल युगातील परिवर्तनाच्या गतीनुसार त्याच्या बरोबरीने शासकीय कामकाज देखील विकसित होणं आवश्यक आहे. टेक-वारी - महाराष्ट्राचा टेक लर्निंग वीक, हे त्या दृष्टीने एक पाउल आहे. ज्यात तंत्रज्ञान, परंपरा आणि परिवर्तन यांच्या त्रिवेणी संगमाच्या माध्यमातून शासकीय कर्मचारी लोकाभिमुख प्रशासनासाठी सज्ज होईल.",
13000
+ "descriptionColor": "#FFFFFF",
13001
+ "sliderData": {
13002
+ "styleData": {
13003
+ "bannerMetaClass": "",
13004
+ "bannerMeta": "visible",
13005
+ "bannerMetaAlign": "right",
13006
+ "navigationArrows": "visible",
13007
+ "borderRadius": "12px",
13008
+ "customHeight": "334px",
13009
+ "arrowsPlacement": "",
13010
+ "imageBorderWidth": 3,
13011
+ "imageBorderColor": "#FFFFFF",
13012
+ "imageBorderStyle": "solid",
13013
+ "responsive": {
13014
+ "bannerMetaClass": "inline-meta",
13015
+ "customHeight": "232px",
13016
+ "bannerMetaAlign": "center",
13017
+ "navigationArrows": "visible",
13018
+ "dots": "hidden",
13019
+ "arrowsPlacement": "middle-inline"
13020
+ }
13021
+ },
13022
+ "sliders": [
13023
+ {
13024
+ "active": true,
13025
+ "banners": {
13026
+ "l": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13027
+ "m": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13028
+ "s": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13029
+ "xl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13030
+ "xs": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13031
+ "xxl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg"
13032
+ },
13033
+ "redirectUrl": "",
13034
+ "queryParams": {},
13035
+ "title": ""
13036
+ },
13037
+ {
13038
+ "active": true,
13039
+ "banners": {
13040
+ "l": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13041
+ "m": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13042
+ "s": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13043
+ "xl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13044
+ "xs": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13045
+ "xxl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg"
13046
+ },
13047
+ "redirectUrl": "",
13048
+ "queryParams": {},
13049
+ "title": ""
13050
+ }
13051
+ ]
13052
+ },
13053
+ "metrics": {
13054
+ "background": "#1B4CA1",
13055
+ "data": [
13056
+ {
13057
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061821837287424110/artifact/do_114061821837287424110_1716531049564_network.svg",
13058
+ "iconColor": "#FFFFFF",
13059
+ "value": "9876",
13060
+ "valueColor": "#FFFFFF",
13061
+ "label": "Total Users",
13062
+ "labelColor": "#FFFFFF",
13063
+ "linebreak": false,
13064
+ "background": "#1B4CA1"
13065
+ },
13066
+ {
13067
+ "icon": "https://portal.karmayogiqa.nic.in/content-store/orgStore/0135071359030722569/1715676445834_badges.svg",
13068
+ "iconColor": "#FFFFFF",
13069
+ "value": "2678",
13070
+ "valueColor": "#FFFFFF",
13071
+ "label": "Certificates",
13072
+ "labelColor": "#FFFFFF",
13073
+ "linebreak": false,
13074
+ "background": "#1B4CA1"
13075
+ },
13076
+ {
13077
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061824512778240111/artifact/do_114061824512778240111_1716531357219_knowledge-resources.svg",
13078
+ "iconColor": "#FFFFFF",
13079
+ "value": "9867",
13080
+ "valueColor": "#FFFFFF",
13081
+ "label": "Enrolments",
13082
+ "labelColor": "#FFFFFF",
13083
+ "linebreak": false,
13084
+ "background": "#1B4CA1"
13085
+ },
13086
+ {
13087
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061847565107200114/artifact/do_114061847565107200114_1716534165064_program1.svg",
13088
+ "iconColor": "#FFFFFF",
13089
+ "value": "12",
13090
+ "valueColor": "#FFFFFF",
13091
+ "label": "Content Published",
13092
+ "labelColor": "#FFFFFF",
13093
+ "linebreak": false,
13094
+ "background": "#1B4CA1"
13095
+ },
13096
+ {
13097
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061826604261376113/artifact/do_114061826604261376113_1716531614554_percent.svg",
13098
+ "iconColor": "#FFFFFF",
13099
+ "value": "40",
13100
+ "valueColor": "#FFFFFF",
13101
+ "label": "24hr Login",
13102
+ "labelColor": "#FFFFFF",
13103
+ "linebreak": false,
13104
+ "background": "#1B4CA1"
13105
+ }
13106
+ ]
13107
+ }
13108
+ }
13109
+ }
13110
+ ]
13111
+ },
13112
+ {
13113
+ "active": true,
13114
+ "enabled": true,
13115
+ "title": "",
13116
+ "key": "sectionLookerpro",
13117
+ "order": 4,
13118
+ "column": [
13119
+ {
13120
+ "active": true,
13121
+ "enabled": true,
13122
+ "key": "lookerSection",
13123
+ "title": "",
13124
+ "colspan": 12,
13125
+ "background": "banner",
13126
+ "data": {
13127
+ "header": {
13128
+ "headerText": "Performance Dashboard",
13129
+ "description": "View MDO performance based on their learning activities for the week, with real-time insights into progress, engagement, and development across various MDOs."
13130
+ },
13131
+ "disableDynamicHeight": false,
13132
+ "mobileHeight": "500px",
13133
+ "desktopHeight": "280px",
13134
+ "lookerProDesktopUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D",
13135
+ "lookerProMobileUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D"
13136
+ }
13137
+ }
13138
+ ]
13139
+ },
13140
+ {
13141
+ "active": false,
13142
+ "enabled": false,
13143
+ "title": "",
13144
+ "key": "sectionTopLearners",
13145
+ "order": 2,
13146
+ "column": [
13147
+ {
13148
+ "active": true,
13149
+ "enabled": true,
13150
+ "key": "topLearners",
13151
+ "title": "Top 10 Learners",
13152
+ "colspan": 12,
13153
+ "background": "",
13154
+ "data": {
13155
+ "title": "Top 10 Learners",
13156
+ "enableMonth": false,
13157
+ "titleFontColor": "#000000",
13158
+ "kpIcon": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1728035311295_karma-badge.svg",
13159
+ "learners": [],
13160
+ "customClass": "min-h-20",
13161
+ "cardHeight": "64px",
13162
+ "carMinHeight": "100px",
13163
+ "hideEle": [
13164
+ "karma-points"
13165
+ ]
13166
+ }
13167
+ }
13168
+ ]
13169
+ },
13170
+ {
13171
+ "active": true,
13172
+ "enabled": true,
13173
+ "title": "",
13174
+ "key": "sectionMain",
13175
+ "order": 3,
13176
+ "wrapperClass": "",
13177
+ "column": [
13178
+ {
13179
+ "active": true,
13180
+ "enabled": true,
13181
+ "key": "mainContent",
13182
+ "title": "",
13183
+ "colspan": 12,
13184
+ "background": "",
13185
+ "data": {
13186
+ "tabSection": {
13187
+ "colspan": 8,
13188
+ "disable": true,
13189
+ "contentTab": [
13190
+ {
13191
+ "active": false,
13192
+ "enabled": false,
13193
+ "title": "Certifications of the Week",
13194
+ "navigation": true,
13195
+ "key": "sectionCertificationsOfWeeks",
13196
+ "order": 3,
13197
+ "navOrder": 1,
13198
+ "column": [
13199
+ {
13200
+ "active": true,
13201
+ "enabled": true,
13202
+ "key": "contentcertificationsOfWeekStrip",
13203
+ "title": "Recommended Courses",
13204
+ "data": {
13205
+ "sectionImagePosition": "img-left",
13206
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13207
+ "order": 4,
13208
+ "strips": [
13209
+ {
13210
+ "active": true,
13211
+ "key": "certificationsOfWeek",
13212
+ "logo": "school",
13213
+ "title": "Certifications of the Week",
13214
+ "stripTitleLink": {
13215
+ "link": "",
13216
+ "icon": ""
13217
+ },
13218
+ "customeClass": "min-width-763",
13219
+ "sliderConfig": {
13220
+ "showNavs": true,
13221
+ "showDots": true,
13222
+ "maxWidgets": 12,
13223
+ "showNavsSpacing": true,
13224
+ "cerificateCardMargin": true
13225
+ },
13226
+ "loader": true,
13227
+ "stripBackground": "",
13228
+ "titleDescription": "Certifications of the Week",
13229
+ "stripConfig": {
13230
+ "cardSubType": "card-wide-v2"
13231
+ },
13232
+ "loaderConfig": {
13233
+ "cardSubType": "card-wide-v2-skelton"
13234
+ },
13235
+ "viewMoreUrl": {
13236
+ "path": "/app/seeAll",
13237
+ "viewMoreText": "Show all",
13238
+ "queryParams": {
13239
+ "key": "certificationsOfWeek"
13240
+ },
13241
+ "loaderConfig": {
13242
+ "cardSubType": "card-portrait-click-skeleton"
13243
+ },
13244
+ "stripConfig": {
13245
+ "cardSubType": "card-portrait-click"
13246
+ }
13247
+ },
13248
+ "tabs": [],
13249
+ "filters": [],
13250
+ "request": {
13251
+ "trendingSearch": {
13252
+ "request": {
13253
+ "filters": {
13254
+ "contextType": [
13255
+ "certifications"
13256
+ ],
13257
+ "organisation": "<orgID>"
13258
+ },
13259
+ "limit": 5
13260
+ },
13261
+ "responseKey": "certifications"
13262
+ }
13263
+ }
13264
+ }
13265
+ ]
13266
+ }
13267
+ }
13268
+ ]
13269
+ },
13270
+ {
13271
+ "active": false,
13272
+ "enabled": false,
13273
+ "title": "Trending",
13274
+ "navigation": true,
13275
+ "key": "sectionRecommendedProgram",
13276
+ "order": 3,
13277
+ "navOrder": 1,
13278
+ "column": [
13279
+ {
13280
+ "active": true,
13281
+ "enabled": true,
13282
+ "key": "contentRecommendedProgramStrip",
13283
+ "title": "Popular courses",
13284
+ "data": {
13285
+ "sectionImagePosition": "img-left",
13286
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13287
+ "order": 4,
13288
+ "strips": [
13289
+ {
13290
+ "active": true,
13291
+ "customeClass": "width-238",
13292
+ "key": "recommendedProgram",
13293
+ "logo": "school",
13294
+ "disableTranslate": true,
13295
+ "title": "Trending",
13296
+ "stripTitleLink": {
13297
+ "link": "",
13298
+ "icon": ""
13299
+ },
13300
+ "sliderConfig": {
13301
+ "showNavs": true,
13302
+ "showDots": true,
13303
+ "maxWidgets": 12,
13304
+ "showNavsSpacing": true
13305
+ },
13306
+ "stripBackground": "",
13307
+ "titleDescription": "Recently Added",
13308
+ "stripConfig": {
13309
+ "cardSubType": "card-portrait-lib"
13310
+ },
13311
+ "viewMoreUrl": {
13312
+ "path": "/app/seeAll",
13313
+ "viewMoreText": "Show all",
13314
+ "queryParams": {
13315
+ "key": "recentlyAdded"
13316
+ },
13317
+ "loaderConfig": {
13318
+ "cardSubType": "card-portrait-lib-skeleton"
13319
+ },
13320
+ "stripConfig": {
13321
+ "cardSubType": "card-portrait-lib"
13322
+ }
13323
+ },
13324
+ "loader": true,
13325
+ "loaderConfig": {
13326
+ "cardSubType": "card-portrait-lib-skeleton"
13327
+ },
13328
+ "tabsType": "pills-tab",
13329
+ "tabs": [
13330
+ {
13331
+ "label": "Courses",
13332
+ "value": "course",
13333
+ "computeDataOnClick": false,
13334
+ "computeDataOnClickKey": "",
13335
+ "requestRequired": true,
13336
+ "showTabDataCount": false,
13337
+ "maxWidgets": 12,
13338
+ "nodataMsg": "nocontent",
13339
+ "request": {
13340
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13341
+ "playlistRead": {
13342
+ "type": "MDO_RECOMMENDED_COURSES"
13343
+ }
13344
+ }
13345
+ },
13346
+ {
13347
+ "label": "Programs",
13348
+ "value": "program",
13349
+ "computeDataOnClick": false,
13350
+ "computeDataOnClickKey": "",
13351
+ "requestRequired": true,
13352
+ "showTabDataCount": false,
13353
+ "maxWidgets": 12,
13354
+ "nodataMsg": "nocontent",
13355
+ "request": {
13356
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13357
+ "playlistRead": {
13358
+ "type": "MDO_RECOMMENDED_PROGRAMS"
13359
+ }
13360
+ }
13361
+ }
13362
+ ],
13363
+ "filters": [],
13364
+ "request": {
13365
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13366
+ "playlistRead": {
13367
+ "type": "MDO_RECOMMENDED_PROGRAMS"
13368
+ }
13369
+ }
13370
+ }
13371
+ ]
13372
+ }
13373
+ }
13374
+ ]
13375
+ },
13376
+ {
13377
+ "active": false,
13378
+ "enabled": false,
13379
+ "title": "Featured",
13380
+ "navigation": true,
13381
+ "key": "sectionFeatureCourses",
13382
+ "order": 3,
13383
+ "navOrder": 1,
13384
+ "column": [
13385
+ {
13386
+ "active": true,
13387
+ "enabled": true,
13388
+ "key": "contentFeaturedStrip",
13389
+ "title": "Featured",
13390
+ "data": {
13391
+ "sectionImagePosition": "img-left",
13392
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13393
+ "order": 4,
13394
+ "strips": [
13395
+ {
13396
+ "active": true,
13397
+ "customeClass": "width-238",
13398
+ "key": "featuredCourses",
13399
+ "logo": "school",
13400
+ "disableTranslate": true,
13401
+ "title": "Featured",
13402
+ "stripTitleLink": {
13403
+ "link": "",
13404
+ "icon": ""
13405
+ },
13406
+ "sliderConfig": {
13407
+ "showNavs": true,
13408
+ "showDots": true,
13409
+ "maxWidgets": 12,
13410
+ "showNavsSpacing": true
13411
+ },
13412
+ "stripBackground": "",
13413
+ "titleDescription": "Recently Added",
13414
+ "stripConfig": {
13415
+ "cardSubType": "card-portrait-lib"
13416
+ },
13417
+ "viewMoreUrl": {
13418
+ "path": "/app/seeAll",
13419
+ "viewMoreText": "Show all",
13420
+ "queryParams": {
13421
+ "key": "recentlyAdded"
13422
+ },
13423
+ "loaderConfig": {
13424
+ "cardSubType": "card-portrait-lib-skeleton"
13425
+ },
13426
+ "stripConfig": {
13427
+ "cardSubType": "card-portrait-lib"
13428
+ }
13429
+ },
13430
+ "loader": true,
13431
+ "loaderConfig": {
13432
+ "cardSubType": "card-portrait-lib-skeleton"
13433
+ },
13434
+ "tabsType": "pills-tab",
13435
+ "tabs": [
13436
+ {
13437
+ "label": "Courses",
13438
+ "value": "course",
13439
+ "computeDataOnClick": false,
13440
+ "computeDataOnClickKey": "",
13441
+ "requestRequired": true,
13442
+ "showTabDataCount": false,
13443
+ "maxWidgets": 12,
13444
+ "nodataMsg": "nocontent",
13445
+ "request": {
13446
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13447
+ "playlistRead": {
13448
+ "type": "MDO_FEATURED_COURSES"
13449
+ }
13450
+ }
13451
+ },
13452
+ {
13453
+ "label": "Programs",
13454
+ "value": "program",
13455
+ "computeDataOnClick": false,
13456
+ "computeDataOnClickKey": "",
13457
+ "requestRequired": true,
13458
+ "showTabDataCount": false,
13459
+ "maxWidgets": 12,
13460
+ "nodataMsg": "nocontent",
13461
+ "request": {
13462
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13463
+ "playlistRead": {
13464
+ "type": "MDO_FEATURED_PROGRAMS"
13465
+ }
13466
+ }
13467
+ }
13468
+ ],
13469
+ "filters": [],
13470
+ "request": {
13471
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13472
+ "playlistRead": {
13473
+ "type": "MDO_FEATURED_COURSES"
13474
+ }
13475
+ }
13476
+ }
13477
+ ]
13478
+ }
13479
+ }
13480
+ ]
13481
+ }
13482
+ ],
13483
+ "coreAreasTab": [
13484
+ {
13485
+ "active": false,
13486
+ "enabled": false,
13487
+ "title": "Core Expertise",
13488
+ "navigation": true,
13489
+ "key": "sectionCompetency",
13490
+ "order": 5,
13491
+ "navOrder": 3,
13492
+ "column": [
13493
+ {
13494
+ "active": true,
13495
+ "enabled": true,
13496
+ "key": "competency",
13497
+ "title": "",
13498
+ "colspan": 12,
13499
+ "background": "",
13500
+ "data": []
13501
+ }
13502
+ ]
13503
+ }
13504
+ ],
13505
+ "tabs": [
13506
+ {
13507
+ "name": "content"
13508
+ },
13509
+ {
13510
+ "name": "Core Areas"
13511
+ }
13512
+ ]
13513
+ },
13514
+ "announcementSection": {
13515
+ "disable": true,
13516
+ "colspan": 4,
13517
+ "data": {
13518
+ "title": "Key Announcements",
13519
+ "logoUrl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1728035426855_key-announcements1.svg",
13520
+ "mobileIcon": "https://portal.karmayogi.nic.in/content-store/content/do_114061893940887552115/artifact/do_114061893940887552115_1716539807520_campaign_black.svg",
13521
+ "header": {
13522
+ "background": "#1B4CA1",
13523
+ "color": "#FFFFFF"
13524
+ },
13525
+ "panelborder": "#1B4CA1",
13526
+ "panelBackground": "#FFFFFF",
13527
+ "listItem": {
13528
+ "border": "#F3962F",
13529
+ "background": "#FCEEDB"
13530
+ },
13531
+ "ViewMoreColor": "#1B4CA1",
13532
+ "pageSize": 15,
13533
+ "list": [
13534
+ {
13535
+ "value": "Hon. Chief Minister of Gujarat will launch MDO Channel of SPIPA on IGoT Karmayogi Portal on occasion of Good Governance Day.",
13536
+ "expanded": false
13537
+ },
13538
+ {
13539
+ "value": "Hon. Chief Minister of Gujarat will launch MDO Channel of SPIPA on IGoT Karmayogi Portal on occasion of Good Governance Day.",
13540
+ "expanded": false
13541
+ }
13542
+ ]
13543
+ }
13544
+ },
13545
+ "stateLearningWeekSection": {
13546
+ "lookerSection": {
13547
+ "active": true,
13548
+ "enabled": true,
13549
+ "key": "lookerSection",
13550
+ "title": "",
13551
+ "colspan": 12,
13552
+ "background": "banner",
13553
+ "data": {
13554
+ "header": {
13555
+ "headerText": "Performance Dashboard",
13556
+ "description": "View MDO performance based on their learning activities for the week, with real-time insights into progress, engagement, and development across various MDOs."
13557
+ },
13558
+ "lookerProDesktopUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D",
13559
+ "lookerProMobileUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D"
13560
+ }
13561
+ },
13562
+ "keyHighlights": {
13563
+ "enabled": true,
13564
+ "backgroundColor": "#FFFFFF",
13565
+ "titleMaxLength": 200,
13566
+ "content": [
13567
+ {
13568
+ "title": "Enroll in the courses and contribute to your continuous learning journey and growth"
13569
+ },
13570
+ {
13571
+ "title": "Be a learning champion - complete courses and inspire your peers on iGOT!"
13572
+ }
13573
+ ],
13574
+ "sliderData": {
13575
+ "styleData": {
13576
+ "borderRadius": "0",
13577
+ "customHeight": "100px",
13578
+ "bannerMeta": "visible",
13579
+ "dots": "hidden",
13580
+ "arrowsPlacement": "middle-inline",
13581
+ "responsive": {
13582
+ "customHeight": "80px",
13583
+ "bannerMetaAlign": "left",
13584
+ "navigationArrows": "visible",
13585
+ "dots": "hidden",
13586
+ "arrowsPlacement": "middle-inline"
13587
+ }
13588
+ }
13589
+ }
13590
+ },
13591
+ "speakerOftheDay": {
13592
+ "enabled": false,
13593
+ "data": {
13594
+ "title": "Speaker of the day",
13595
+ "infoText": "Join insightful webinars and masterclasses hosted by prominent speakers and thought leaders.",
13596
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13597
+ "sliderData": {
13598
+ "styleData": {
13599
+ "borderRadius": "12px",
13600
+ "customHeight": "",
13601
+ "bannerMeta": "visible",
13602
+ "bannerMetaClass": "cbp-card-1",
13603
+ "responsive": {
13604
+ "bannerMetaClass": "cbp-card-1"
13605
+ }
13606
+ }
13607
+ },
13608
+ "list": [
13609
+ {
13610
+ "title": "Ms Arushi Malhotra",
13611
+ "description": "Beyond the Desk: Using Behavioral Science to Improve Workplace Well-Being",
13612
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742617698083_IMG_9084.jpg",
13613
+ "identifier": "do_1142743067745812481229"
13614
+ },
13615
+ {
13616
+ "title": "Prof Bimlesh Kumar Singh",
13617
+ "description": "Maintenance of Transformers",
13618
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742617868268_Bimlesh.jpg",
13619
+ "identifier": "do_1142743211854888961161"
13620
+ },
13621
+ {
13622
+ "title": "Prof. Dr. Sanjukkta Bhaduril",
13623
+ "description": "Resilient tourism infrastructure for Rajasthan Islands",
13624
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742618016728_Dr. Sanjukkta.jpeg",
13625
+ "identifier": "do_1142743114401218561137"
13626
+ }
13627
+ ]
13628
+ }
13629
+ },
13630
+ "weekHighlights": {
13631
+ "enabled": true,
13632
+ "data": {
13633
+ "title": "Highlights of the week",
13634
+ "sliderData": {
13635
+ "styleData": {
13636
+ "borderRadius": "12px",
13637
+ "customHeight": "",
13638
+ "bannerMetaClass": "cbp-card",
13639
+ "responsive": {
13640
+ "bannerMetaClass": "cbp-card"
13641
+ }
13642
+ }
13643
+ },
13644
+ "list": [
13645
+ {
13646
+ "title": "Get ready for Maharashtra Tech Learning Week",
13647
+ "description": "Tech-Wari, Maharashtra’s Tech Learning Week, blends technology, tradition & transformation—empowering government employees for citizen-first governance through future-ready digital learning.",
13648
+ "videoUrl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745394867601_IMG_8833.MP4"
13649
+ }
13650
+ ]
13651
+ }
13652
+ },
13653
+ "myprogress": {
13654
+ "enabled": true,
13655
+ "data": {
13656
+ "title": "Your week's progress",
13657
+ "infoText": "During Rajya Karmayogi Saptah, stay informed about your learning journey. Monitor your Learning Hours, and earn Certificates.",
13658
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13659
+ "profleDetails": {},
13660
+ "hideEle": [
13661
+ "karma-points"
13662
+ ],
13663
+ "insights": {
13664
+ "data": {
13665
+ "sliderData": {
13666
+ "styleData": {
13667
+ "borderRadius": "12px",
13668
+ "customHeight": "83px",
13669
+ "bannerMeta": "visible",
13670
+ "bannerMetaClass": "cbp-card",
13671
+ "responsive": {
13672
+ "bannerMetaClass": "cbp-card",
13673
+ "customHeight": "83px"
13674
+ }
13675
+ }
13676
+ }
13677
+ }
13678
+ }
13679
+ }
13680
+ },
13681
+ "mdoLeaderboard": {
13682
+ "enabled": true,
13683
+ "data": {
13684
+ "title": "Leaderboard",
13685
+ "infoText": "Celebrate top performers! The leaderboard showcases the Departments and Organizations based on total learning hours earned during State Learning Week.",
13686
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13687
+ "currentTab": "S",
13688
+ "customClass": "",
13689
+ "cardHeight": "",
13690
+ "carMinHeight": "",
13691
+ "searchHint": "Search Departments",
13692
+ "hideEle": [
13693
+ "karma-points"
13694
+ ],
13695
+ "options": [
13696
+ {
13697
+ "label": "1 - 500",
13698
+ "value": "XS"
13699
+ },
13700
+ {
13701
+ "label": "501 - 1000",
13702
+ "value": "S"
13703
+ },
13704
+ {
13705
+ "label": "1001 - 5000",
13706
+ "value": "M"
13707
+ },
13708
+ {
13709
+ "label": "5001 and 20000",
13710
+ "value": "L"
13711
+ },
13712
+ {
13713
+ "label": "20001 and adove",
13714
+ "value": "XL"
13715
+ }
13716
+ ]
13717
+ }
13718
+ },
13719
+ "mandatoryCourse": {
13720
+ "enabled": true,
13721
+ "navigation": true,
13722
+ "key": "sectionMandatoryCourses",
13723
+ "order": 3,
13724
+ "navOrder": 1,
13725
+ "column": [
13726
+ {
13727
+ "active": true,
13728
+ "enabled": true,
13729
+ "key": "contentMandatoryCoursesStrip",
13730
+ "data": {
13731
+ "order": 4,
13732
+ "strips": [
13733
+ {
13734
+ "active": true,
13735
+ "title": "Recommended Courses for Maharashtra Tech Learning Week",
13736
+ "titleClass": "mat-title",
13737
+ "customeClass": "width-238",
13738
+ "key": "Recommended Courses for Maharashtra Tech Learning Week",
13739
+ "logo": "school",
13740
+ "disableTranslate": true,
13741
+ "stripTitleLink": {
13742
+ "link": "",
13743
+ "icon": ""
13744
+ },
13745
+ "sliderConfig": {
13746
+ "showNavs": true,
13747
+ "showDots": true,
13748
+ "maxWidgets": 18,
13749
+ "showNavsSpacing": true
13750
+ },
13751
+ "stripBackground": "",
13752
+ "titleDescription": "Recommended Courses for Rajasthan state learning week",
13753
+ "stripConfig": {
13754
+ "cardSubType": "card-portrait-lib"
13755
+ },
13756
+ "loader": true,
13757
+ "loaderConfig": {
13758
+ "cardSubType": "card-portrait-lib-skeleton"
13759
+ },
13760
+ "filters": [],
13761
+ "request": {
13762
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13763
+ "playlistRead": {
13764
+ "type": "Mdo_RECOMMENDED_COURSES_MAHARASHTRA"
13765
+ }
13766
+ }
13767
+ }
13768
+ ]
13769
+ }
13770
+ }
13771
+ ]
13772
+ },
13773
+ "exploreLearningContent": {
13774
+ "enabled": true,
13775
+ "strips": [
13776
+ {
13777
+ "active": true,
13778
+ "key": "featuredContents",
13779
+ "logo": "school",
13780
+ "title": "Explore Learning Contents",
13781
+ "titleClass": "mat-title",
13782
+ "type": "learningContent",
13783
+ "disableTranslate": true,
13784
+ "stripTitleLink": {
13785
+ "link": "",
13786
+ "icon": ""
13787
+ },
13788
+ "sliderConfig": {
13789
+ "showNavs": true,
13790
+ "showDots": true,
13791
+ "maxWidgets": 100,
13792
+ "showNavsSpacing": true
13793
+ },
13794
+ "stripBackground": "",
13795
+ "titleDescription": "For you",
13796
+ "stripConfig": {
13797
+ "cardSubType": "card-portrait-lib",
13798
+ "hideShowAll": true
13799
+ },
13800
+ "viewMoreUrl": {},
13801
+ "hideViewMoreUrl": true,
13802
+ "loader": true,
13803
+ "loaderConfig": {
13804
+ "cardSubType": "card-portrait-lib-skeleton"
13805
+ },
13806
+ "tabs": [
13807
+ {
13808
+ "label": "Group A",
13809
+ "value": "Group A",
13810
+ "computeDataOnClick": false,
13811
+ "disableTranslate": true,
13812
+ "computeDataOnClickKey": "",
13813
+ "requestRequired": true,
13814
+ "showTabDataCount": false,
13815
+ "maxWidgets": 100,
13816
+ "nodataMsg": "no Data Course",
13817
+ "contentShuffel": true,
13818
+ "request": {
13819
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13820
+ "playlistRead": {
13821
+ "type": "MDO_GROUP_A_MAHARASHTRA"
13822
+ }
13823
+ }
13824
+ },
13825
+ {
13826
+ "label": "Group B",
13827
+ "value": "Group B",
13828
+ "computeDataOnClick": false,
13829
+ "disableTranslate": true,
13830
+ "computeDataOnClickKey": "",
13831
+ "requestRequired": true,
13832
+ "showTabDataCount": false,
13833
+ "maxWidgets": 100,
13834
+ "nodataMsg": "no Data Course",
13835
+ "contentShuffel": true,
13836
+ "request": {
13837
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13838
+ "playlistRead": {
13839
+ "type": "MDO_GROUP_B_MAHARASHTRA"
13840
+ }
13841
+ }
13842
+ },
13843
+ {
13844
+ "label": "Group C",
13845
+ "value": "Group C",
13846
+ "computeDataOnClick": false,
13847
+ "disableTranslate": true,
13848
+ "computeDataOnClickKey": "",
13849
+ "requestRequired": true,
13850
+ "showTabDataCount": false,
13851
+ "maxWidgets": 100,
13852
+ "nodataMsg": "no Data Course",
13853
+ "contentShuffel": true,
13854
+ "request": {
13855
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13856
+ "playlistRead": {
13857
+ "type": "MDO_GROUP_C_MAHARASHTRA"
13858
+ }
13859
+ }
13860
+ }
13861
+ ],
13862
+ "filters": [],
13863
+ "stripRequestType": "post",
13864
+ "stripRequestFor": "search",
13865
+ "onTabClickRequest": false,
13866
+ "request": {
13867
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13868
+ "playlistRead": {
13869
+ "type": "ORG_FEATURED_COURSES"
13870
+ }
13871
+ }
13872
+ }
13873
+ ]
13874
+ },
13875
+ "events": {
13876
+ "active": false,
13877
+ "enabled": false,
13878
+ "title": "Explore events",
13879
+ "navigation": true,
13880
+ "key": "sectionExploreEvents",
13881
+ "order": 3,
13882
+ "navOrder": 1,
13883
+ "column": [
13884
+ {
13885
+ "maxContent": 3,
13886
+ "active": true,
13887
+ "enabled": true,
13888
+ "key": "exploreEventsContent",
13889
+ "title": "Explore events",
13890
+ "defaultImage": "https://portal.dev.karmayogibharat.net/content-store/orgStore/01390354700029132834/1727084157602_Image.svg",
13891
+ "request": {
13892
+ "locale": [
13893
+ "en"
13894
+ ],
13895
+ "query": "",
13896
+ "request": {
13897
+ "query": "",
13898
+ "filters": {
13899
+ "resourceType": [
13900
+ "Karmayogi Saptah",
13901
+ "Karmayogi Talks",
13902
+ "Rajya Karmayogi Saptah"
13903
+ ],
13904
+ "status": [
13905
+ "Live"
13906
+ ],
13907
+ "contentType": "Event",
13908
+ "category": "Event",
13909
+ "startDate": "<startDateObj>"
13910
+ },
13911
+ "sort_by": {
13912
+ "startDate": "desc"
13913
+ }
13914
+ }
13915
+ }
13916
+ }
13917
+ ]
13918
+ }
13919
+ }
13920
+ }
13921
+ }
13922
+ ]
13923
+ },
13924
+ {
13925
+ "active": true,
13926
+ "enabled": true,
13927
+ "title": "",
13928
+ "key": "sectionSupport",
13929
+ "order": 5,
13930
+ "customClass": "contact-us-wrapper mt-20",
13931
+ "column": [
13932
+ {
13933
+ "active": true,
13934
+ "enabled": true,
13935
+ "key": "supportSection",
13936
+ "title": "",
13937
+ "colspan": 12,
13938
+ "background": "banner",
13939
+ "data": {
13940
+ "title": "Maharashtra Tech Learning Week Dedicated Technical Support",
13941
+ "thumbnail": "https://dev.karmayogibharat.net/assets/videoconference/thumbnail.png",
13942
+ "text": "For any support required",
13943
+ "date": "April 01, 2025 - May 09, 2025 ",
13944
+ "time": "9:00am – 5:00pm · Time zone: Asia/Kolkata",
13945
+ "technicalSupport": "For any technical issues please contact",
13946
+ "plsContact": "igot-mh[at]mah[dot]gov[dot]in",
13947
+ "plsContacts": "igot-mh@mah.gov.in"
13948
+ }
13949
+ }
13950
+ ]
13951
+ }
13952
+ ];
12963
13953
  }
12964
13954
  this.langtranslations.languageSelectedObservable.subscribe(() => {
12965
13955
  if (localStorage.getItem('websiteLanguage')) {
@@ -13088,13 +14078,13 @@ class MdoChannelV2Component {
13088
14078
  this.router.navigate([`/app/learn/mdo-channels/${this.channnelName}/${this.orgId}/all-content`], { queryParams: { tabSelected, key: columnData.sectionKey } });
13089
14079
  }
13090
14080
  }
13091
- 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 }); }
13092
- 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" }] }); }
14081
+ 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 }); }
14082
+ 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" }] }); }
13093
14083
  }
13094
14084
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV2Component, decorators: [{
13095
14085
  type: Component,
13096
14086
  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"] }]
13097
- }], 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: [{
14087
+ }], 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: [{
13098
14088
  type: Input
13099
14089
  }], slwConfiguration: [{
13100
14090
  type: Input
@@ -13215,7 +14205,7 @@ class SafeUrlPipe {
13215
14205
  transform(url) {
13216
14206
  return this.sanitizer.bypassSecurityTrustResourceUrl(url);
13217
14207
  }
13218
- 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 }); }
14208
+ 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 }); }
13219
14209
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, name: "safeUrl" }); }
13220
14210
  }
13221
14211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, decorators: [{
@@ -13223,7 +14213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13223
14213
  args: [{
13224
14214
  name: 'safeUrl'
13225
14215
  }]
13226
- }], ctorParameters: function () { return [{ type: i4$2.DomSanitizer }]; } });
14216
+ }], ctorParameters: function () { return [{ type: i1$6.DomSanitizer }]; } });
13227
14217
 
13228
14218
  class SafeUrlPipeModule {
13229
14219
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -13261,9 +14251,994 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13261
14251
  }]
13262
14252
  }] });
13263
14253
 
14254
+ class EditorDialogComponent {
14255
+ constructor(fb, http, dialogRef, data) {
14256
+ this.fb = fb;
14257
+ this.http = http;
14258
+ this.dialogRef = dialogRef;
14259
+ this.data = data;
14260
+ this.uploadStatus = '';
14261
+ this.isUploading = false;
14262
+ // Slider specific properties
14263
+ this.sliderData = {
14264
+ sliders: [],
14265
+ styleData: {
14266
+ dots: true,
14267
+ infinite: true,
14268
+ speed: 500,
14269
+ slidesToShow: 1,
14270
+ slidesToScroll: 1
14271
+ }
14272
+ };
14273
+ this.isEditingSlider = false;
14274
+ this.editingIndex = -1;
14275
+ this.formType = data.fieldType || 'text';
14276
+ }
14277
+ ngOnInit() {
14278
+ this.initForm();
14279
+ this.initSliderItemForm();
14280
+ }
14281
+ initForm() {
14282
+ // Create form based on field type
14283
+ switch (this.formType) {
14284
+ case 'textarea':
14285
+ this.editorForm = this.fb.group({
14286
+ value: [this.data.value, [Validators.required]]
14287
+ });
14288
+ break;
14289
+ case 'color':
14290
+ this.editorForm = this.fb.group({
14291
+ value: [this.data.value, [Validators.required, Validators.pattern(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/)]]
14292
+ });
14293
+ break;
14294
+ case 'image':
14295
+ this.editorForm = this.fb.group({
14296
+ value: [this.data.value, [Validators.required]]
14297
+ });
14298
+ break;
14299
+ case 'boolean':
14300
+ this.editorForm = this.fb.group({
14301
+ value: [!!this.data.value]
14302
+ });
14303
+ break;
14304
+ case 'metrics':
14305
+ this.editorForm = this.fb.group({
14306
+ value: [this.data.value]
14307
+ });
14308
+ break;
14309
+ case 'slider':
14310
+ // Initialize slider data from the input or use defaults
14311
+ if (this.data.value && this.data.value.sliders && this.data.value.styleData) {
14312
+ this.sliderData = this.data.value;
14313
+ }
14314
+ else if (this.data.sliderData) {
14315
+ this.sliderData = this.data.sliderData;
14316
+ }
14317
+ this.editorForm = this.fb.group({
14318
+ value: [this.sliderData]
14319
+ });
14320
+ break;
14321
+ default:
14322
+ this.editorForm = this.fb.group({
14323
+ value: [this.data.value, [Validators.required]]
14324
+ });
14325
+ }
14326
+ }
14327
+ initSliderItemForm(item) {
14328
+ this.sliderItemForm = this.fb.group({
14329
+ active: [item?.active !== undefined ? item.active : true],
14330
+ banners: this.fb.group({
14331
+ l: [item?.banners?.l || '', [Validators.required]],
14332
+ m: [item?.banners?.m || ''],
14333
+ s: [item?.banners?.s || ''],
14334
+ xl: [item?.banners?.xl || ''],
14335
+ xs: [item?.banners?.xs || ''],
14336
+ xxl: [item?.banners?.xxl || '']
14337
+ }),
14338
+ redirectUrl: [item?.redirectUrl || ''],
14339
+ queryParams: [item?.queryParams || {}],
14340
+ title: [item?.title || '']
14341
+ });
14342
+ }
14343
+ // General image upload methods
14344
+ onFileSelected(event) {
14345
+ const file = event.target.files[0];
14346
+ if (file) {
14347
+ this.uploadImage(file);
14348
+ }
14349
+ }
14350
+ uploadImage(file) {
14351
+ this.isUploading = true;
14352
+ this.uploadStatus = 'Uploading...';
14353
+ const formData = new FormData();
14354
+ formData.append('file', file);
14355
+ // Headers as specified in the curl command
14356
+ const headers = new HttpHeaders({
14357
+ 'Accept': 'application/json, text/plain, */*',
14358
+ 'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
14359
+ 'Cache-Control': 'no-cache',
14360
+ 'Pragma': 'no-cache',
14361
+ 'locale': 'en',
14362
+ 'org': 'dopt',
14363
+ 'rootOrg': 'igot'
14364
+ });
14365
+ this.http.post('http://localhost:3000/apis/proxies/v8/storage/orgStoreUpload', formData, { headers })
14366
+ .subscribe({
14367
+ next: (response) => {
14368
+ this.isUploading = false;
14369
+ if (response.responseCode === 'OK' && response.result && response.result.url) {
14370
+ // Transform the URL
14371
+ const transformedUrl = this.transformImageUrl(response.result.url);
14372
+ // Update the form with the new URL
14373
+ this.editorForm.get('value')?.setValue(transformedUrl);
14374
+ this.uploadStatus = 'Upload successful!';
14375
+ // Clear status after 3 seconds
14376
+ setTimeout(() => {
14377
+ this.uploadStatus = '';
14378
+ }, 3000);
14379
+ }
14380
+ else {
14381
+ this.uploadStatus = 'Upload failed. Invalid response.';
14382
+ }
14383
+ },
14384
+ error: (error) => {
14385
+ this.isUploading = false;
14386
+ this.uploadStatus = 'Upload failed. Please try again.';
14387
+ console.error('Upload error:', error);
14388
+ }
14389
+ });
14390
+ }
14391
+ // Slider specific methods
14392
+ onSliderClick(event) {
14393
+ console.log('Slider click:', event);
14394
+ }
14395
+ onSliderImageSelected(event) {
14396
+ const file = event.target.files[0];
14397
+ if (file) {
14398
+ this.uploadSliderImage(file);
14399
+ }
14400
+ }
14401
+ uploadSliderImage(file) {
14402
+ this.uploadStatus = 'Uploading...';
14403
+ const formData = new FormData();
14404
+ formData.append('file', file);
14405
+ const headers = new HttpHeaders({
14406
+ 'Accept': 'application/json, text/plain, */*',
14407
+ 'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
14408
+ 'Cache-Control': 'no-cache',
14409
+ 'Pragma': 'no-cache',
14410
+ 'locale': 'en',
14411
+ 'org': 'dopt',
14412
+ 'rootOrg': 'igot'
14413
+ });
14414
+ this.http.post('http://localhost:3000/apis/proxies/v8/storage/orgStoreUpload', formData, { headers })
14415
+ .subscribe({
14416
+ next: (response) => {
14417
+ if (response.responseCode === 'OK' && response.result && response.result.url) {
14418
+ // Transform the URL
14419
+ const transformedUrl = this.transformImageUrl(response.result.url);
14420
+ // Update all banner sizes with the same URL
14421
+ const bannersControl = this.sliderItemForm.get('banners');
14422
+ if (bannersControl) {
14423
+ bannersControl.get('l')?.setValue(transformedUrl);
14424
+ bannersControl.get('m')?.setValue(transformedUrl);
14425
+ bannersControl.get('s')?.setValue(transformedUrl);
14426
+ bannersControl.get('xl')?.setValue(transformedUrl);
14427
+ bannersControl.get('xs')?.setValue(transformedUrl);
14428
+ bannersControl.get('xxl')?.setValue(transformedUrl);
14429
+ }
14430
+ this.uploadStatus = 'Upload successful!';
14431
+ // Clear status after 3 seconds
14432
+ setTimeout(() => {
14433
+ this.uploadStatus = '';
14434
+ }, 3000);
14435
+ }
14436
+ else {
14437
+ this.uploadStatus = 'Upload failed. Invalid response.';
14438
+ }
14439
+ },
14440
+ error: (error) => {
14441
+ this.uploadStatus = 'Upload failed. Please try again.';
14442
+ console.error('Upload error:', error);
14443
+ }
14444
+ });
14445
+ }
14446
+ addSliderItem() {
14447
+ this.isEditingSlider = true;
14448
+ this.editingIndex = -1;
14449
+ this.initSliderItemForm();
14450
+ }
14451
+ editSliderItem(index) {
14452
+ this.isEditingSlider = true;
14453
+ this.editingIndex = index;
14454
+ this.initSliderItemForm(this.sliderData.sliders[index]);
14455
+ }
14456
+ removeSliderItem(index) {
14457
+ this.sliderData.sliders.splice(index, 1);
14458
+ this.updateEditorFormValue();
14459
+ }
14460
+ saveSliderItem() {
14461
+ if (this.sliderItemForm.valid) {
14462
+ const item = this.sliderItemForm.value;
14463
+ // Ensure all banner sizes have the same URL if not already set
14464
+ const mainImageUrl = item.banners.l;
14465
+ if (mainImageUrl) {
14466
+ item.banners.m = item.banners.m || mainImageUrl;
14467
+ item.banners.s = item.banners.s || mainImageUrl;
14468
+ item.banners.xl = item.banners.xl || mainImageUrl;
14469
+ item.banners.xs = item.banners.xs || mainImageUrl;
14470
+ item.banners.xxl = item.banners.xxl || mainImageUrl;
14471
+ }
14472
+ // Ensure queryParams is an object
14473
+ if (!item.queryParams || typeof item.queryParams !== 'object') {
14474
+ item.queryParams = {};
14475
+ }
14476
+ if (this.editingIndex === -1) {
14477
+ // Add new item
14478
+ this.sliderData.sliders.push(item);
14479
+ }
14480
+ else {
14481
+ // Update existing item
14482
+ this.sliderData.sliders[this.editingIndex] = item;
14483
+ }
14484
+ this.updateEditorFormValue();
14485
+ this.cancelSliderItemEdit();
14486
+ }
14487
+ }
14488
+ cancelSliderItemEdit() {
14489
+ this.isEditingSlider = false;
14490
+ this.editingIndex = -1;
14491
+ }
14492
+ updateEditorFormValue() {
14493
+ // Update the main form with the new slider data
14494
+ this.editorForm.get('value')?.setValue({ ...this.sliderData });
14495
+ }
14496
+ transformImageUrl(originalUrl) {
14497
+ // Replace 'https://storage.googleapis.com/igotqa/' with 'https://portal.qa.karmayogibharat.net/content-store/'
14498
+ return originalUrl.replace('https://storage.googleapis.com/igotqa/', 'https://portal.qa.karmayogibharat.net/content-store/');
14499
+ }
14500
+ onSubmit() {
14501
+ if (this.editorForm.valid) {
14502
+ this.dialogRef.close(this.editorForm.value.value);
14503
+ }
14504
+ }
14505
+ onCancel() {
14506
+ this.dialogRef.close();
14507
+ }
14508
+ dropSliderItem(event) {
14509
+ moveItemInArray(this.sliderData.sliders, event.previousIndex, event.currentIndex);
14510
+ this.updateEditorFormValue();
14511
+ }
14512
+ 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 }); }
14513
+ 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"] }] }); }
14514
+ }
14515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorDialogComponent, decorators: [{
14516
+ type: Component,
14517
+ 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"] }]
14518
+ }], ctorParameters: function () { return [{ type: i7$1.FormBuilder }, { type: i1.HttpClient }, { type: i3$1.MatDialogRef }, { type: undefined, decorators: [{
14519
+ type: Inject,
14520
+ args: [MAT_DIALOG_DATA]
14521
+ }] }]; } });
14522
+
14523
+ class TopSectionComponent {
14524
+ constructor(data, channelName, orgId, isMobile, slwConfig, isEdit, eventCallback, sanitizer) {
14525
+ this.data = data;
14526
+ this.channelName = channelName;
14527
+ this.orgId = orgId;
14528
+ this.isMobile = isMobile;
14529
+ this.slwConfig = slwConfig;
14530
+ this.isEdit = isEdit;
14531
+ this.eventCallback = eventCallback;
14532
+ this.sanitizer = sanitizer;
14533
+ this.descriptionMaxLength = 500;
14534
+ if (this.isEdit) {
14535
+ console.log('Edit mode active for top section');
14536
+ }
14537
+ }
14538
+ ngOnInit() {
14539
+ this.stripWidth = `${(window.innerWidth - 1200 + 135) / 2}px`;
14540
+ }
14541
+ emitEvent(action, id, data) {
14542
+ this.eventCallback({
14543
+ action,
14544
+ source: 'topSection',
14545
+ id,
14546
+ data: data || this.data
14547
+ });
14548
+ }
14549
+ openEditor(fieldName, displayName, currentValue) {
14550
+ this.eventCallback({
14551
+ action: 'edit',
14552
+ source: 'topSection',
14553
+ id: fieldName,
14554
+ data: {
14555
+ fieldName,
14556
+ displayName,
14557
+ currentValue,
14558
+ path: fieldName,
14559
+ fieldType: this.getFieldType(fieldName, currentValue),
14560
+ parentData: this.data
14561
+ }
14562
+ });
14563
+ }
14564
+ getFieldType(fieldName, value) {
14565
+ if (fieldName === 'logo' || fieldName === 'logoMobile' || fieldName.includes('banner')) {
14566
+ return 'image';
14567
+ }
14568
+ else if (fieldName === 'sliderData') {
14569
+ return 'slider';
14570
+ }
14571
+ else if (fieldName === 'metrics') {
14572
+ return 'metrics';
14573
+ }
14574
+ else if (typeof value === 'string' && value.startsWith('#')) {
14575
+ return 'color';
14576
+ }
14577
+ else if (typeof value === 'boolean') {
14578
+ return 'boolean';
14579
+ }
14580
+ else if (fieldName.includes('description')) {
14581
+ return 'textarea';
14582
+ }
14583
+ else {
14584
+ return 'text';
14585
+ }
14586
+ }
14587
+ 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 }); }
14588
+ 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" }] }); }
14589
+ }
14590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopSectionComponent, decorators: [{
14591
+ type: Component,
14592
+ 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"] }]
14593
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14594
+ type: Inject,
14595
+ args: ['sectionData']
14596
+ }] }, { type: undefined, decorators: [{
14597
+ type: Inject,
14598
+ args: ['channelName']
14599
+ }] }, { type: undefined, decorators: [{
14600
+ type: Inject,
14601
+ args: ['orgId']
14602
+ }] }, { type: undefined, decorators: [{
14603
+ type: Inject,
14604
+ args: ['isMobile']
14605
+ }] }, { type: undefined, decorators: [{
14606
+ type: Inject,
14607
+ args: ['slwConfiguration']
14608
+ }] }, { type: undefined, decorators: [{
14609
+ type: Inject,
14610
+ args: ['isEdit']
14611
+ }] }, { type: undefined, decorators: [{
14612
+ type: Inject,
14613
+ args: ['eventCallback']
14614
+ }] }, { type: i1$6.DomSanitizer }]; } });
14615
+
14616
+ class LookerSectionComponent {
14617
+ constructor(data, isMobile, sanitizer, eventCallback) {
14618
+ this.data = data;
14619
+ this.isMobile = isMobile;
14620
+ this.sanitizer = sanitizer;
14621
+ this.eventCallback = eventCallback;
14622
+ }
14623
+ ngOnInit() {
14624
+ this.iframeHeight = `${window.innerWidth * 0.667}px`;
14625
+ this.setLookerUrl();
14626
+ }
14627
+ setLookerUrl() {
14628
+ const url = this.isMobile ?
14629
+ this.data?.lookerProMobileUrl :
14630
+ this.data?.lookerProDesktopUrl;
14631
+ if (url) {
14632
+ this.lookerUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);
14633
+ this.eventCallback({
14634
+ action: 'looker-loaded',
14635
+ source: 'lookerSection',
14636
+ id: 'looker-dashboard'
14637
+ });
14638
+ }
14639
+ }
14640
+ 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 }); }
14641
+ 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"] }] }); }
14642
+ }
14643
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LookerSectionComponent, decorators: [{
14644
+ type: Component,
14645
+ 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>" }]
14646
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14647
+ type: Inject,
14648
+ args: ['sectionData']
14649
+ }] }, { type: undefined, decorators: [{
14650
+ type: Inject,
14651
+ args: ['isMobile']
14652
+ }] }, { type: i1$6.DomSanitizer }, { type: undefined, decorators: [{
14653
+ type: Inject,
14654
+ args: ['eventCallback']
14655
+ }] }]; } });
14656
+
14657
+ class TopLearnersComponent {
14658
+ constructor(data, channelName, orgId, slwConfig, eventCallback) {
14659
+ this.data = data;
14660
+ this.channelName = channelName;
14661
+ this.orgId = orgId;
14662
+ this.slwConfig = slwConfig;
14663
+ this.eventCallback = eventCallback;
14664
+ }
14665
+ onEventFromLeaders(event) {
14666
+ this.eventCallback({
14667
+ action: 'top-learners',
14668
+ source: 'topLearners',
14669
+ id: event.id || 'learner-event',
14670
+ data: event
14671
+ });
14672
+ }
14673
+ 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 }); }
14674
+ 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"] }] }); }
14675
+ }
14676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, decorators: [{
14677
+ type: Component,
14678
+ 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>" }]
14679
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14680
+ type: Inject,
14681
+ args: ['sectionData']
14682
+ }] }, { type: undefined, decorators: [{
14683
+ type: Inject,
14684
+ args: ['channelName']
14685
+ }] }, { type: undefined, decorators: [{
14686
+ type: Inject,
14687
+ args: ['orgId']
14688
+ }] }, { type: undefined, decorators: [{
14689
+ type: Inject,
14690
+ args: ['slwConfiguration']
14691
+ }] }, { type: undefined, decorators: [{
14692
+ type: Inject,
14693
+ args: ['eventCallback']
14694
+ }] }]; } });
14695
+
14696
+ class CompetencyComponent {
14697
+ constructor(orgId, eventCallback) {
14698
+ this.orgId = orgId;
14699
+ this.eventCallback = eventCallback;
14700
+ this.emptyResponse = new EventEmitter();
14701
+ this.telemetryResponse = new EventEmitter();
14702
+ this.hideCompetencyBlock = false;
14703
+ }
14704
+ hideCompetency(event) {
14705
+ this.hideCompetencyBlock = event;
14706
+ this.emptyResponse.emit(event);
14707
+ this.eventCallback({
14708
+ action: 'hide-competency',
14709
+ source: 'competency',
14710
+ id: 'competency-block'
14711
+ });
14712
+ }
14713
+ raiseCompetencyTelemetry(name) {
14714
+ this.telemetryResponse.emit(name);
14715
+ this.eventCallback({
14716
+ action: 'competency-click',
14717
+ source: 'competency',
14718
+ id: `${name}-core-expertise`
14719
+ });
14720
+ }
14721
+ 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 }); }
14722
+ 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" }] }); }
14723
+ }
14724
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CompetencyComponent, decorators: [{
14725
+ type: Component,
14726
+ 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>" }]
14727
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14728
+ type: Inject,
14729
+ args: ['orgId']
14730
+ }] }, { type: undefined, decorators: [{
14731
+ type: Inject,
14732
+ args: ['eventCallback']
14733
+ }] }]; }, propDecorators: { competency: [{
14734
+ type: Input
14735
+ }], emptyResponse: [{
14736
+ type: Output
14737
+ }], telemetryResponse: [{
14738
+ type: Output
14739
+ }] } });
14740
+
14741
+ class ContentStripComponent {
14742
+ constructor(orgId, channelName, eventCallback) {
14743
+ this.orgId = orgId;
14744
+ this.channelName = channelName;
14745
+ this.eventCallback = eventCallback;
14746
+ this.viewAllResponse = new EventEmitter();
14747
+ this.telemetryResponse = new EventEmitter();
14748
+ }
14749
+ showAllContent(event) {
14750
+ this.viewAllResponse.emit({
14751
+ event: event,
14752
+ data: this.data
14753
+ });
14754
+ this.eventCallback({
14755
+ action: 'view-all',
14756
+ source: 'contentStrip',
14757
+ id: this.data?.sectionKey || 'content-section',
14758
+ data: event
14759
+ });
14760
+ }
14761
+ raiseTelemetryInteratEvent(event) {
14762
+ this.telemetryResponse.emit(event);
14763
+ this.eventCallback({
14764
+ action: 'telemetry',
14765
+ source: 'contentStrip',
14766
+ id: event.id || 'content-interaction',
14767
+ data: event
14768
+ });
14769
+ }
14770
+ 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 }); }
14771
+ 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"] }] }); }
14772
+ }
14773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripComponent, decorators: [{
14774
+ type: Component,
14775
+ 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>" }]
14776
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14777
+ type: Inject,
14778
+ args: ['orgId']
14779
+ }] }, { type: undefined, decorators: [{
14780
+ type: Inject,
14781
+ args: ['channelName']
14782
+ }] }, { type: undefined, decorators: [{
14783
+ type: Inject,
14784
+ args: ['eventCallback']
14785
+ }] }]; }, propDecorators: { data: [{
14786
+ type: Input
14787
+ }], viewAllResponse: [{
14788
+ type: Output
14789
+ }], telemetryResponse: [{
14790
+ type: Output
14791
+ }] } });
14792
+
14793
+ class ColumnSectionDisplayComponent {
14794
+ constructor() {
14795
+ this.data = [];
14796
+ this.competencyEvent = new EventEmitter();
14797
+ this.competencyTelemetry = new EventEmitter();
14798
+ this.contentTelemetry = new EventEmitter();
14799
+ this.viewAllEvent = new EventEmitter();
14800
+ this.filteredData = [];
14801
+ }
14802
+ ngOnInit() {
14803
+ this.filteredData = this.data?.filter(section => section?.enabled) || [];
14804
+ }
14805
+ onCompetencyEvent(event) {
14806
+ this.competencyEvent.emit(event);
14807
+ }
14808
+ onCompetencyTelemetry(event) {
14809
+ this.competencyTelemetry.emit(event);
14810
+ }
14811
+ onContentTelemetry(event) {
14812
+ this.contentTelemetry.emit(event);
14813
+ }
14814
+ onViewAllEvent(event, data) {
14815
+ this.viewAllEvent.emit({
14816
+ event: event,
14817
+ data: data
14818
+ });
14819
+ }
14820
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnSectionDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14821
+ 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"] }] }); }
14822
+ }
14823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnSectionDisplayComponent, decorators: [{
14824
+ type: Component,
14825
+ 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>" }]
14826
+ }], propDecorators: { data: [{
14827
+ type: Input
14828
+ }], orgId: [{
14829
+ type: Input
14830
+ }], channelName: [{
14831
+ type: Input
14832
+ }], competencyEvent: [{
14833
+ type: Output
14834
+ }], competencyTelemetry: [{
14835
+ type: Output
14836
+ }], contentTelemetry: [{
14837
+ type: Output
14838
+ }], viewAllEvent: [{
14839
+ type: Output
14840
+ }] } });
14841
+
14842
+ class MobileSectionsComponent {
14843
+ constructor() {
14844
+ this.leaderboardTabClicked = new EventEmitter();
14845
+ }
14846
+ onTabClicked(event) {
14847
+ this.leaderboardTabClicked.emit(event);
14848
+ }
14849
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14850
+ 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"] }] }); }
14851
+ }
14852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, decorators: [{
14853
+ type: Component,
14854
+ 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>" }]
14855
+ }], propDecorators: { myProgressData: [{
14856
+ type: Input
14857
+ }], speakersData: [{
14858
+ type: Input
14859
+ }], leaderboardData: [{
14860
+ type: Input
14861
+ }], rootOrgId: [{
14862
+ type: Input
14863
+ }], orgId: [{
14864
+ type: Input
14865
+ }], slwConfig: [{
14866
+ type: Input
14867
+ }], leaderboardTabClicked: [{
14868
+ type: Output
14869
+ }] } });
14870
+
14871
+ class MainContentComponent {
14872
+ constructor(data, channelName, orgId, isMobile, providerId, slwConfig, eventCallback, configSvc) {
14873
+ this.data = data;
14874
+ this.channelName = channelName;
14875
+ this.orgId = orgId;
14876
+ this.isMobile = isMobile;
14877
+ this.providerId = providerId;
14878
+ this.slwConfig = slwConfig;
14879
+ this.eventCallback = eventCallback;
14880
+ this.configSvc = configSvc;
14881
+ this.selectedIndex = 0;
14882
+ this.hideCompetencyBlock = false;
14883
+ this.contentTabEmptyResponseCount = 0;
14884
+ this.showModal = false;
14885
+ }
14886
+ ngOnInit() {
14887
+ // Initialization logic
14888
+ }
14889
+ tabClicked(event) {
14890
+ this.selectedIndex = event.index;
14891
+ this.eventCallback({
14892
+ action: 'tab-click',
14893
+ source: 'mainContent',
14894
+ id: `${event.tab.textLabel}-tab`
14895
+ });
14896
+ }
14897
+ raiseTabClick(event) {
14898
+ this.eventCallback({
14899
+ action: 'mdo-leaderboard',
14900
+ source: 'mainContent',
14901
+ id: `${event}-tab`
14902
+ });
14903
+ }
14904
+ hideKeyHightlight(event, data) {
14905
+ if (event) {
14906
+ data.enabled = false;
14907
+ this.eventCallback({
14908
+ action: 'hide-highlight',
14909
+ source: 'mainContent',
14910
+ id: 'key-highlight'
14911
+ });
14912
+ }
14913
+ }
14914
+ triggerOpenDialog(event) {
14915
+ if (event) {
14916
+ this.showModal = true;
14917
+ document.body.style.overflow = 'hidden';
14918
+ }
14919
+ this.eventCallback({
14920
+ action: 'open-dialog',
14921
+ source: 'mainContent',
14922
+ id: 'key-announcements'
14923
+ });
14924
+ }
14925
+ onClose() {
14926
+ this.showModal = false;
14927
+ document.body.style.overflow = 'auto';
14928
+ this.eventCallback({
14929
+ action: 'close-dialog',
14930
+ source: 'mainContent',
14931
+ id: 'key-announcements'
14932
+ });
14933
+ }
14934
+ raiseTelemetryInteratEvent(event) {
14935
+ this.eventCallback({
14936
+ action: 'telemetry',
14937
+ source: 'mainContent',
14938
+ id: event.id || 'content-interaction',
14939
+ data: event
14940
+ });
14941
+ }
14942
+ showAllContent(event, data) {
14943
+ this.eventCallback({
14944
+ action: 'view-all',
14945
+ source: 'mainContent',
14946
+ id: data?.sectionKey || 'content-section',
14947
+ data: event
14948
+ });
14949
+ }
14950
+ hideCompetency(event) {
14951
+ if (event) {
14952
+ this.hideCompetencyBlock = true;
14953
+ this.eventCallback({
14954
+ action: 'hide-competency',
14955
+ source: 'mainContent',
14956
+ id: 'competency-block'
14957
+ });
14958
+ }
14959
+ }
14960
+ raiseCompetencyTelemetry(name) {
14961
+ this.eventCallback({
14962
+ action: 'competency-click',
14963
+ source: 'mainContent',
14964
+ id: `${name}-core-expertise`
14965
+ });
14966
+ }
14967
+ 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 }); }
14968
+ 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" }] }); }
14969
+ }
14970
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContentComponent, decorators: [{
14971
+ type: Component,
14972
+ 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>" }]
14973
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14974
+ type: Inject,
14975
+ args: ['sectionData']
14976
+ }] }, { type: undefined, decorators: [{
14977
+ type: Inject,
14978
+ args: ['channelName']
14979
+ }] }, { type: undefined, decorators: [{
14980
+ type: Inject,
14981
+ args: ['orgId']
14982
+ }] }, { type: undefined, decorators: [{
14983
+ type: Inject,
14984
+ args: ['isMobile']
14985
+ }] }, { type: undefined, decorators: [{
14986
+ type: Inject,
14987
+ args: ['providerId']
14988
+ }] }, { type: undefined, decorators: [{
14989
+ type: Inject,
14990
+ args: ['slwConfiguration']
14991
+ }] }, { type: undefined, decorators: [{
14992
+ type: Inject,
14993
+ args: ['eventCallback']
14994
+ }] }, { type: i2.ConfigurationsService }]; } });
14995
+
14996
+ class SupportSectionComponent {
14997
+ constructor(data, eventCallback) {
14998
+ this.data = data;
14999
+ this.eventCallback = eventCallback;
15000
+ }
15001
+ onVideoEvent(event) {
15002
+ this.eventCallback({
15003
+ action: 'video-conference',
15004
+ source: 'supportSection',
15005
+ id: event.id || 'video-event',
15006
+ data: event
15007
+ });
15008
+ }
15009
+ 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 }); }
15010
+ 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"] }] }); }
15011
+ }
15012
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportSectionComponent, decorators: [{
15013
+ type: Component,
15014
+ 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>" }]
15015
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
15016
+ type: Inject,
15017
+ args: ['sectionData']
15018
+ }] }, { type: undefined, decorators: [{
15019
+ type: Inject,
15020
+ args: ['eventCallback']
15021
+ }] }]; } });
15022
+
15023
+ class MdoChannelV3Component {
15024
+ constructor(route, router, eventSvc, translate, langTranslations, configSvc, sanitizer, utilsSvc, injector, cdr, dialog // Add this
15025
+ ) {
15026
+ this.route = route;
15027
+ this.router = router;
15028
+ this.eventSvc = eventSvc;
15029
+ this.translate = translate;
15030
+ this.langTranslations = langTranslations;
15031
+ this.configSvc = configSvc;
15032
+ this.sanitizer = sanitizer;
15033
+ this.utilsSvc = utilsSvc;
15034
+ this.injector = injector;
15035
+ this.cdr = cdr;
15036
+ this.dialog = dialog;
15037
+ this.sectionList = [];
15038
+ this.isEdit = false;
15039
+ this.activeSections = [];
15040
+ this.providerId = '123456789';
15041
+ this.isMobile = false;
15042
+ this.navigationTitles = [
15043
+ { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },
15044
+ { title: 'MDO Channels', url: '/app/learn/mdo-channels/all-channels', icon: '', disableTranslate: true }
15045
+ ];
15046
+ this.componentRegistry = {
15047
+ 'topSection': TopSectionComponent,
15048
+ 'lookerSection': LookerSectionComponent,
15049
+ 'topLearners': TopLearnersComponent,
15050
+ 'mainContent': MainContentComponent,
15051
+ 'supportSection': SupportSectionComponent
15052
+ };
15053
+ this.injectorCache = new Map();
15054
+ this.isMobile = this.utilsSvc.isMobile;
15055
+ }
15056
+ ngOnInit() {
15057
+ // Get active sections
15058
+ this.activeSections = this.sectionList?.filter(section => section.enabled)
15059
+ .sort((a, b) => (a.order || 0) - (b.order || 0)) || [];
15060
+ // Get channel info from route
15061
+ this.route.params.subscribe(params => {
15062
+ debugger;
15063
+ if (params.channelId) {
15064
+ this.channelName = params.channelName || '';
15065
+ this.orgId = params.channelId;
15066
+ this.cdr.markForCheck();
15067
+ }
15068
+ });
15069
+ }
15070
+ ngOnChanges(changes) {
15071
+ if (changes.sectionList || changes.slwConfiguration) {
15072
+ // Clear injector cache when inputs change
15073
+ this.injectorCache.clear();
15074
+ }
15075
+ }
15076
+ handleSectionEvent(event) {
15077
+ // Handle events from child components
15078
+ console.log('Section event:', event);
15079
+ // Raise telemetry for the event
15080
+ if (event.action) {
15081
+ this.raiseTelemetry(`${event.source}-${event.id}`);
15082
+ }
15083
+ // Handle specific events
15084
+ if (event.action === 'view-all' && event.data?.viewMoreUrl) {
15085
+ this.router.navigateByUrl(event.data.viewMoreUrl);
15086
+ }
15087
+ // Handle edit events
15088
+ if (event.action === 'edit') {
15089
+ this.openEditorDialog(event);
15090
+ }
15091
+ }
15092
+ getSectionComponent(key) {
15093
+ return this.componentRegistry[key] || null;
15094
+ }
15095
+ createInjector(section, column) {
15096
+ // Create a stable reference to the callback function
15097
+ if (!this._eventCallbackFn) {
15098
+ this._eventCallbackFn = (event) => this.handleSectionEvent(event);
15099
+ }
15100
+ // Create a cache key based on section and column keys
15101
+ const cacheKey = `${section.key}-${column.key}`;
15102
+ // Return cached injector if available
15103
+ if (this.injectorCache.has(cacheKey)) {
15104
+ return this.injectorCache.get(cacheKey);
15105
+ }
15106
+ // Create new injector
15107
+ const injector = Injector.create({
15108
+ providers: [
15109
+ { provide: 'sectionData', useValue: column.data },
15110
+ { provide: 'channelName', useValue: this.channelName },
15111
+ { provide: 'orgId', useValue: this.orgId },
15112
+ { provide: 'isMobile', useValue: this.isMobile },
15113
+ ...(this.isEdit ? [{ provide: 'isEdit', useValue: this.isEdit }] : [{ provide: 'isEdit', useValue: this.isEdit }]),
15114
+ { provide: 'slwConfiguration', useValue: this.slwConfiguration },
15115
+ { provide: 'providerId', useValue: this.orgId },
15116
+ { provide: 'eventCallback', useValue: this._eventCallbackFn }
15117
+ ],
15118
+ parent: this.injector
15119
+ });
15120
+ // Cache the injector
15121
+ this.injectorCache.set(cacheKey, injector);
15122
+ return injector;
15123
+ }
15124
+ trackByFn(index, item) {
15125
+ return item.key || index;
15126
+ }
15127
+ raiseTelemetry(name) {
15128
+ this.eventSvc.raiseInteractTelemetry({
15129
+ type: 'click',
15130
+ subType: 'mdo-channel',
15131
+ id: `${_.kebabCase(name).toLowerCase()}`
15132
+ }, {}, { module: 'LEARN' });
15133
+ }
15134
+ // Add new method to handle edit dialog
15135
+ openEditorDialog(event) {
15136
+ const dialogRef = this.dialog.open(EditorDialogComponent, {
15137
+ width: this.getDialogWidth(event.data.fieldType),
15138
+ data: {
15139
+ fieldName: event.data.fieldName,
15140
+ displayName: event.data.displayName,
15141
+ value: event.data.currentValue,
15142
+ fieldType: event.data.fieldType,
15143
+ section: event.source
15144
+ }
15145
+ });
15146
+ dialogRef.afterClosed().subscribe(result => {
15147
+ if (result) {
15148
+ // Update the section data
15149
+ this.updateSectionData(event.source, event.data.fieldName, result);
15150
+ }
15151
+ });
15152
+ }
15153
+ // Helper method to determine dialog width based on field type
15154
+ getDialogWidth(fieldType) {
15155
+ switch (fieldType) {
15156
+ case 'textarea':
15157
+ case 'slider':
15158
+ case 'metrics':
15159
+ return '800px';
15160
+ case 'image':
15161
+ return '600px';
15162
+ default:
15163
+ return '400px';
15164
+ }
15165
+ }
15166
+ // Method to update section data
15167
+ updateSectionData(sectionType, fieldName, newValue) {
15168
+ // Make a deep copy to avoid modifying the original reference
15169
+ const updatedSections = cloneDeep(this.sectionList);
15170
+ // Find the relevant section and column
15171
+ for (const section of updatedSections) {
15172
+ if (!section.enabled)
15173
+ continue;
15174
+ for (const column of section.column) {
15175
+ if (column.key === sectionType && column.data) {
15176
+ // Update the specific field
15177
+ this.updateNestedField(column.data, fieldName, newValue);
15178
+ break;
15179
+ }
15180
+ }
15181
+ }
15182
+ // Clear the injector cache to force component recreation
15183
+ this.injectorCache.clear();
15184
+ // Update the sectionList (this will trigger change detection)
15185
+ this.sectionList = updatedSections;
15186
+ console.log('Updated sectionList:', this.sectionList);
15187
+ // Update active sections
15188
+ this.activeSections = this.sectionList.filter(section => section.enabled)
15189
+ .sort((a, b) => (a.order || 0) - (b.order || 0));
15190
+ // Force change detection to ensure UI updates
15191
+ this.cdr.detectChanges(); // Use detectChanges instead of markForCheck
15192
+ }
15193
+ // Helper method to update nested fields
15194
+ updateNestedField(obj, path, value) {
15195
+ // Handle nested paths (e.g., "sliderData.styleData.borderRadius")
15196
+ const parts = path.split('.');
15197
+ let current = obj;
15198
+ // Navigate to the parent object
15199
+ for (let i = 0; i < parts.length - 1; i++) {
15200
+ if (!current[parts[i]]) {
15201
+ current[parts[i]] = {};
15202
+ }
15203
+ current = current[parts[i]];
15204
+ }
15205
+ // Update the final property
15206
+ current[parts[parts.length - 1]] = value;
15207
+ }
15208
+ 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 }); }
15209
+ 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 }); }
15210
+ }
15211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV3Component, decorators: [{
15212
+ type: Component,
15213
+ 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"] }]
15214
+ }], 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: [{
15215
+ type: Input
15216
+ }], slwConfiguration: [{
15217
+ type: Input
15218
+ }], isEdit: [{
15219
+ type: Input
15220
+ }], providerId: [{
15221
+ type: Input
15222
+ }], channelName: [{
15223
+ type: Input
15224
+ }], orgId: [{
15225
+ type: Input
15226
+ }] } });
15227
+
13264
15228
  class MDOChannelModule {
13265
15229
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13266
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, declarations: [MdoChannelV1Component, MdoChannelV2Component], imports: [CommonModule,
15230
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, declarations: [MdoChannelV1Component, MdoChannelV2Component,
15231
+ MdoChannelV3Component,
15232
+ TopSectionComponent,
15233
+ LookerSectionComponent,
15234
+ TopLearnersComponent,
15235
+ MainContentComponent,
15236
+ SupportSectionComponent,
15237
+ CompetencyComponent,
15238
+ ContentStripComponent,
15239
+ ColumnSectionDisplayComponent,
15240
+ MobileSectionsComponent,
15241
+ EditorDialogComponent], imports: [CommonModule,
13267
15242
  MatIconModule,
13268
15243
  MatLegacyChipsModule,
13269
15244
  SkeletonLoaderLibModule,
@@ -13286,7 +15261,17 @@ class MDOChannelModule {
13286
15261
  MatLegacyTabsModule,
13287
15262
  OrderByPipeModule,
13288
15263
  SafeUrlPipeModule,
13289
- VideoConferenceModule, i2$1.TranslateModule], exports: [MdoChannelV1Component, MdoChannelV2Component] }); }
15264
+ VideoConferenceModule,
15265
+ SbUiResolverModule,
15266
+ FormsModule,
15267
+ ReactiveFormsModule, i2$1.TranslateModule, MatDialogModule,
15268
+ MatLegacyFormFieldModule,
15269
+ MatLegacyInputModule,
15270
+ MatLegacyButtonModule,
15271
+ MatLegacySlideToggleModule,
15272
+ DragDropModule,
15273
+ HttpClientModule,
15274
+ MatIconModule], exports: [MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component] }); }
13290
15275
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, providers: [
13291
15276
  CommonMethodsService
13292
15277
  ], imports: [CommonModule,
@@ -13313,18 +15298,41 @@ class MDOChannelModule {
13313
15298
  OrderByPipeModule,
13314
15299
  SafeUrlPipeModule,
13315
15300
  VideoConferenceModule,
15301
+ SbUiResolverModule,
15302
+ FormsModule,
15303
+ ReactiveFormsModule,
13316
15304
  TranslateModule.forRoot({
13317
15305
  loader: {
13318
15306
  provide: TranslateLoader,
13319
15307
  useFactory: HttpLoaderFactory,
13320
15308
  deps: [HttpClient],
13321
15309
  },
13322
- })] }); }
15310
+ }),
15311
+ MatDialogModule,
15312
+ MatLegacyFormFieldModule,
15313
+ MatLegacyInputModule,
15314
+ MatLegacyButtonModule,
15315
+ MatLegacySlideToggleModule,
15316
+ DragDropModule,
15317
+ HttpClientModule,
15318
+ MatIconModule] }); }
13323
15319
  }
13324
15320
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, decorators: [{
13325
15321
  type: NgModule,
13326
15322
  args: [{
13327
- declarations: [MdoChannelV1Component, MdoChannelV2Component],
15323
+ declarations: [MdoChannelV1Component, MdoChannelV2Component,
15324
+ MdoChannelV3Component,
15325
+ TopSectionComponent,
15326
+ LookerSectionComponent,
15327
+ TopLearnersComponent,
15328
+ MainContentComponent,
15329
+ SupportSectionComponent,
15330
+ CompetencyComponent,
15331
+ ContentStripComponent,
15332
+ ColumnSectionDisplayComponent,
15333
+ MobileSectionsComponent,
15334
+ EditorDialogComponent
15335
+ ],
13328
15336
  imports: [
13329
15337
  CommonModule,
13330
15338
  MatIconModule,
@@ -13350,6 +15358,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13350
15358
  OrderByPipeModule,
13351
15359
  SafeUrlPipeModule,
13352
15360
  VideoConferenceModule,
15361
+ SbUiResolverModule,
15362
+ FormsModule,
15363
+ ReactiveFormsModule,
13353
15364
  TranslateModule.forRoot({
13354
15365
  loader: {
13355
15366
  provide: TranslateLoader,
@@ -13357,8 +15368,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13357
15368
  deps: [HttpClient],
13358
15369
  },
13359
15370
  }),
15371
+ MatDialogModule,
15372
+ MatLegacyFormFieldModule,
15373
+ MatLegacyInputModule,
15374
+ MatLegacyButtonModule,
15375
+ MatLegacySlideToggleModule,
15376
+ DragDropModule,
15377
+ HttpClientModule,
15378
+ MatIconModule,
13360
15379
  ],
13361
- exports: [MdoChannelV1Component, MdoChannelV2Component],
15380
+ exports: [MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component],
13362
15381
  providers: [
13363
15382
  CommonMethodsService
13364
15383
  ],
@@ -13654,7 +15673,7 @@ class NationalLearningComponent {
13654
15673
  }
13655
15674
  });
13656
15675
  }
13657
- 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 }); }
15676
+ 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 }); }
13658
15677
  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" }] }); }
13659
15678
  }
13660
15679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NationalLearningComponent, decorators: [{
@@ -13663,7 +15682,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13663
15682
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
13664
15683
  type: Inject,
13665
15684
  args: ['environment']
13666
- }] }, { type: i1$1.Router }, { type: i2.EventService }, { type: i4$2.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
15685
+ }] }, { type: i1$1.Router }, { type: i2.EventService }, { type: i1$6.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
13667
15686
  type: Input
13668
15687
  }], configDetails: [{
13669
15688
  type: Input
@@ -13853,11 +15872,11 @@ class CommunitySuggestionsComponent {
13853
15872
  });
13854
15873
  }
13855
15874
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommunitySuggestionsComponent, deps: [{ token: i1$1.Router }, { token: i2.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
13856
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommunitySuggestionsComponent, selector: "ws-app-community-suggestions", inputs: { communitySuggestionsList: "communitySuggestionsList", isLoading: "isLoading" }, ngImport: i0, template: "<div class=\"community-suggestions-container\">\n <ng-container *ngIf=\"!isLoading; else skeletonLoader\">\n <mat-card *ngFor=\"let community of communitySuggestionsList\" class=\"community-card mb-4 flex flex-col items-center\">\n <div class=\"flex items-center\">\n <div class=\"mr-4\">\n <ng-container *ngIf=\"community.imageUrl; else defaultImage\">\n <img [src]=\"community.imageUrl\" alt=\"logo\" class=\"community-image\">\n </ng-container>\n <ng-template #defaultImage>\n <img src=\"/assets/instances/eagle/app_logos/default.png\" alt=\"default logo\" class=\"community-image\">\n </ng-template>\n </div>\n <div class=\"flex-grow flex flex-col gap-1\">\n <div class=\"communityName\">{{community?.communityName}}</div>\n <div class=\"community-details flex gap-4 items-center mt-1\">\n <span>{{community?.countOfPeopleJoined | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Member':'Members' }}</span>\n <span>-</span>\n <span>{{community?.countOfPostCreated | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Post':'Posts' }}</span>\n </div>\n <div class=\"flex gap-1 mt-2 items-center\">\n <div class=\"logo flex items-center justify-center\">\n <img src=\"/assets/instances/eagle/app_logos/Karmayogi_logo_icon.svg\" alt=\"Karmayogi Logo\" class=\"karmayogi-logo\">\n </div>\n <div class=\"community-details\">{{community?.orgName}}</div>\n </div>\n </div>\n </div>\n <div class=\"dividing-line mt-2\"></div>\n <div class=\"connect flex justify-center items-center pt-4\" (click)=\"viewCommunity(community)\">\n <a>{{'NetworkV2Profile.viewCommunity' | translate}}</a>\n </div>\n </mat-card>\n </ng-container>\n <ng-template #skeletonLoader>\n <div class=\"flex flex-col gap-4\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n </div> \n </ng-template>\n</div>", styles: [".community-suggestions-container{max-width:400px;margin:0 auto}.community-card{border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem}.community-card .community-image{width:50px;height:64px}.communityName{color:#1b2133;font:600 14px Montserrat;word-break:break-word;overflow-wrap:break-word}.community-details{color:#0009;font:400 12px Lato}.connect a{color:#1b4ca1;cursor:pointer;font:700 14px Lato;text-decoration:none}.dividing-line{width:150px;height:1px;background:linear-gradient(90deg,#fff0,#f3962f,#f3962f,#fff0)}.logo{width:18px;height:18px;border-radius:2px;border:1px solid #999999}.logo img{width:14px;height:14px}\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: i6$1.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NumberShortenerPipe, name: "numberShortener" }, { kind: "pipe", type: PluralPipe, name: "plural" }] }); }
15875
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommunitySuggestionsComponent, selector: "ws-app-community-suggestions", inputs: { communitySuggestionsList: "communitySuggestionsList", isLoading: "isLoading" }, ngImport: i0, template: "<div class=\"community-suggestions-container\">\n <ng-container *ngIf=\"!isLoading; else skeletonLoader\">\n <mat-card *ngFor=\"let community of communitySuggestionsList\" class=\"community-card mb-4 flex flex-col items-center\">\n <div class=\"flex items-center justify-center mb-4\">\n <ng-container *ngIf=\"community?.imageUrl; else defaultImage\">\n <img [src]=\"community?.imageUrl\" alt=\"logo\" class=\"community-image\">\n </ng-container>\n <ng-template #defaultImage>\n <img src=\"/assets/instances/eagle/app_logos/default.png\" alt=\"default logo\" class=\"community-image\">\n </ng-template>\n </div>\n <div class=\"flex items-center\">\n \n <div class=\"flex-grow flex flex-col gap-1\">\n <div class=\"communityName\">{{community?.communityName}}</div>\n <div class=\"community-details flex gap-4 items-center mt-1\">\n <span>{{community?.countOfPeopleJoined | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Member':'Members' }}</span>\n <span>-</span>\n <span>{{community?.countOfPostCreated | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Post':'Posts' }}</span>\n </div>\n <div class=\"flex gap-1 mt-2 items-center\">\n <div class=\"logo flex items-center justify-center\">\n <img src=\"/assets/instances/eagle/app_logos/Karmayogi_logo_icon.svg\" alt=\"Karmayogi Logo\" class=\"karmayogi-logo\">\n </div>\n <div class=\"community-details\">{{community?.orgName}}</div>\n </div>\n </div>\n </div>\n <div class=\"dividing-line mt-2\"></div>\n <div class=\"connect flex justify-center items-center pt-4\" (click)=\"viewCommunity(community)\">\n <a>{{'NetworkV2Profile.viewCommunity' | translate}}</a>\n </div>\n </mat-card>\n </ng-container>\n <ng-template #skeletonLoader>\n <div class=\"flex flex-col gap-4\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n </div> \n </ng-template>\n</div>", styles: [".community-suggestions-container{max-width:400px;margin:0 auto}.community-card{border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem}.community-card .community-image{width:100%}.communityName{color:#1b2133;font:600 14px Montserrat;word-break:break-word;overflow-wrap:break-word}.community-details{color:#0009;font:400 12px Lato}.connect a{color:#1b4ca1;cursor:pointer;font:700 14px Lato;text-decoration:none}.dividing-line{width:150px;height:1px;background:linear-gradient(90deg,#fff0,#f3962f,#f3962f,#fff0)}.logo{width:18px;height:18px;border-radius:2px;border:1px solid #999999}.logo img{width:14px;height:14px}\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: i6$1.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NumberShortenerPipe, name: "numberShortener" }, { kind: "pipe", type: PluralPipe, name: "plural" }] }); }
13857
15876
  }
13858
15877
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommunitySuggestionsComponent, decorators: [{
13859
15878
  type: Component,
13860
- args: [{ selector: 'ws-app-community-suggestions', template: "<div class=\"community-suggestions-container\">\n <ng-container *ngIf=\"!isLoading; else skeletonLoader\">\n <mat-card *ngFor=\"let community of communitySuggestionsList\" class=\"community-card mb-4 flex flex-col items-center\">\n <div class=\"flex items-center\">\n <div class=\"mr-4\">\n <ng-container *ngIf=\"community.imageUrl; else defaultImage\">\n <img [src]=\"community.imageUrl\" alt=\"logo\" class=\"community-image\">\n </ng-container>\n <ng-template #defaultImage>\n <img src=\"/assets/instances/eagle/app_logos/default.png\" alt=\"default logo\" class=\"community-image\">\n </ng-template>\n </div>\n <div class=\"flex-grow flex flex-col gap-1\">\n <div class=\"communityName\">{{community?.communityName}}</div>\n <div class=\"community-details flex gap-4 items-center mt-1\">\n <span>{{community?.countOfPeopleJoined | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Member':'Members' }}</span>\n <span>-</span>\n <span>{{community?.countOfPostCreated | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Post':'Posts' }}</span>\n </div>\n <div class=\"flex gap-1 mt-2 items-center\">\n <div class=\"logo flex items-center justify-center\">\n <img src=\"/assets/instances/eagle/app_logos/Karmayogi_logo_icon.svg\" alt=\"Karmayogi Logo\" class=\"karmayogi-logo\">\n </div>\n <div class=\"community-details\">{{community?.orgName}}</div>\n </div>\n </div>\n </div>\n <div class=\"dividing-line mt-2\"></div>\n <div class=\"connect flex justify-center items-center pt-4\" (click)=\"viewCommunity(community)\">\n <a>{{'NetworkV2Profile.viewCommunity' | translate}}</a>\n </div>\n </mat-card>\n </ng-container>\n <ng-template #skeletonLoader>\n <div class=\"flex flex-col gap-4\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n </div> \n </ng-template>\n</div>", styles: [".community-suggestions-container{max-width:400px;margin:0 auto}.community-card{border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem}.community-card .community-image{width:50px;height:64px}.communityName{color:#1b2133;font:600 14px Montserrat;word-break:break-word;overflow-wrap:break-word}.community-details{color:#0009;font:400 12px Lato}.connect a{color:#1b4ca1;cursor:pointer;font:700 14px Lato;text-decoration:none}.dividing-line{width:150px;height:1px;background:linear-gradient(90deg,#fff0,#f3962f,#f3962f,#fff0)}.logo{width:18px;height:18px;border-radius:2px;border:1px solid #999999}.logo img{width:14px;height:14px}\n"] }]
15879
+ args: [{ selector: 'ws-app-community-suggestions', template: "<div class=\"community-suggestions-container\">\n <ng-container *ngIf=\"!isLoading; else skeletonLoader\">\n <mat-card *ngFor=\"let community of communitySuggestionsList\" class=\"community-card mb-4 flex flex-col items-center\">\n <div class=\"flex items-center justify-center mb-4\">\n <ng-container *ngIf=\"community?.imageUrl; else defaultImage\">\n <img [src]=\"community?.imageUrl\" alt=\"logo\" class=\"community-image\">\n </ng-container>\n <ng-template #defaultImage>\n <img src=\"/assets/instances/eagle/app_logos/default.png\" alt=\"default logo\" class=\"community-image\">\n </ng-template>\n </div>\n <div class=\"flex items-center\">\n \n <div class=\"flex-grow flex flex-col gap-1\">\n <div class=\"communityName\">{{community?.communityName}}</div>\n <div class=\"community-details flex gap-4 items-center mt-1\">\n <span>{{community?.countOfPeopleJoined | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Member':'Members' }}</span>\n <span>-</span>\n <span>{{community?.countOfPostCreated | numberShortener}} {{ community?.countOfPeopleJoined | plural:'Post':'Posts' }}</span>\n </div>\n <div class=\"flex gap-1 mt-2 items-center\">\n <div class=\"logo flex items-center justify-center\">\n <img src=\"/assets/instances/eagle/app_logos/Karmayogi_logo_icon.svg\" alt=\"Karmayogi Logo\" class=\"karmayogi-logo\">\n </div>\n <div class=\"community-details\">{{community?.orgName}}</div>\n </div>\n </div>\n </div>\n <div class=\"dividing-line mt-2\"></div>\n <div class=\"connect flex justify-center items-center pt-4\" (click)=\"viewCommunity(community)\">\n <a>{{'NetworkV2Profile.viewCommunity' | translate}}</a>\n </div>\n </mat-card>\n </ng-container>\n <ng-template #skeletonLoader>\n <div class=\"flex flex-col gap-4\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'270px'\" [height]=\"'147px'\">\n </sb-uic-skeleton-loader>\n </div> \n </ng-template>\n</div>", styles: [".community-suggestions-container{max-width:400px;margin:0 auto}.community-card{border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem}.community-card .community-image{width:100%}.communityName{color:#1b2133;font:600 14px Montserrat;word-break:break-word;overflow-wrap:break-word}.community-details{color:#0009;font:400 12px Lato}.connect a{color:#1b4ca1;cursor:pointer;font:700 14px Lato;text-decoration:none}.dividing-line{width:150px;height:1px;background:linear-gradient(90deg,#fff0,#f3962f,#f3962f,#fff0)}.logo{width:18px;height:18px;border-radius:2px;border:1px solid #999999}.logo img{width:14px;height:14px}\n"] }]
13861
15880
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i2.EventService }]; }, propDecorators: { communitySuggestionsList: [{
13862
15881
  type: Input
13863
15882
  }], isLoading: [{
@@ -14235,5 +16254,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14235
16254
  * Generated bundle index. Do not edit.
14236
16255
  */
14237
16256
 
14238
- 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 };
16257
+ 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 };
14239
16258
  //# sourceMappingURL=sunbird-cb-consumption.mjs.map