@sunbird-cb/consumption 0.1.24-cbrelease-4.8.27-multilingual → 0.1.24-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 (57) hide show
  1. package/esm2022/lib/_common/cards/card-portrait/card-portrait.component.mjs +4 -1
  2. package/esm2022/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.mjs +2 -1
  3. package/esm2022/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.mjs +1 -1
  4. package/esm2022/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.mjs +2 -2
  5. package/esm2022/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.mjs +54 -0
  6. package/esm2022/lib/_common/microsites/mdo-channels/components/competency/competency.component.mjs +50 -0
  7. package/esm2022/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.mjs +56 -0
  8. package/esm2022/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.mjs +286 -0
  9. package/esm2022/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.mjs +45 -0
  10. package/esm2022/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.mjs +143 -0
  11. package/esm2022/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.mjs +35 -0
  12. package/esm2022/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.mjs +30 -0
  13. package/esm2022/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.mjs +42 -0
  14. package/esm2022/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.mjs +99 -0
  15. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.mjs +986 -2
  16. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.mjs +222 -0
  17. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel.module.mjs +83 -7
  18. package/esm2022/lib/_models/card-content.model.mjs +1 -1
  19. package/esm2022/lib/_services/widget-content-lib.service.mjs +5 -1
  20. package/esm2022/public-api.mjs +2 -1
  21. package/fesm2022/sunbird-cb-consumption.mjs +2061 -34
  22. package/fesm2022/sunbird-cb-consumption.mjs.map +1 -1
  23. package/lib/_common/cards/card-portrait/card-portrait.component.d.ts.map +1 -1
  24. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts.map +1 -1
  25. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts +1 -0
  26. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts.map +1 -1
  27. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts +20 -0
  28. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts.map +1 -0
  29. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts +16 -0
  30. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts.map +1 -0
  31. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts +16 -0
  32. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts.map +1 -0
  33. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts +61 -0
  34. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts.map +1 -0
  35. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts +17 -0
  36. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts.map +1 -0
  37. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts +32 -0
  38. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts.map +1 -0
  39. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts +15 -0
  40. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts.map +1 -0
  41. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts +10 -0
  42. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts.map +1 -0
  43. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts +13 -0
  44. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts.map +1 -0
  45. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts +23 -0
  46. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts.map +1 -0
  47. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts.map +1 -1
  48. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts +54 -0
  49. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts.map +1 -0
  50. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts +46 -26
  51. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts.map +1 -1
  52. package/lib/_models/card-content.model.d.ts +1 -0
  53. package/lib/_models/card-content.model.d.ts.map +1 -1
  54. package/lib/_services/widget-content-lib.service.d.ts.map +1 -1
  55. package/package.json +2 -2
  56. package/public-api.d.ts +1 -0
  57. 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() { }
@@ -1681,6 +1687,10 @@ class WidgetContentLibService {
1681
1687
  return [];
1682
1688
  }
1683
1689
  async getResourseLink(content, enrollmentList, checkForResume, baseContentRead, multilingualId) {
1690
+ if (content && content.publicCard && content.publicCard.baseUrl) {
1691
+ window.open(content.publicCard.baseUrl +
1692
+ '/public/toc/' + content?.identifier + '/overview', '_blank');
1693
+ }
1684
1694
  if (content && content.content && content.content.category === 'Event') {
1685
1695
  const urlData = {
1686
1696
  url: `app/event-hub/home/${content.content.identifier}`,
@@ -3589,6 +3599,7 @@ class ContentStripWithTabsLibComponent extends WidgetBaseComponent {
3589
3599
  content,
3590
3600
  ...(content.batch && { batch: content.batch }),
3591
3601
  cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,
3602
+ ...(strip.stripConfig && strip.stripConfig.publicCard && { publicCard: strip.stripConfig.publicCard }),
3592
3603
  cardCustomeClass: strip.customeClass ? strip.customeClass : '',
3593
3604
  context: { pageSection: strip.key, position: idx },
3594
3605
  intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,
@@ -5683,7 +5694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5683
5694
  }]
5684
5695
  }] });
5685
5696
 
5686
- class TopLearnersComponent {
5697
+ let TopLearnersComponent$1 = class TopLearnersComponent {
5687
5698
  constructor(insightSvc) {
5688
5699
  this.insightSvc = insightSvc;
5689
5700
  this.slwConfig = {};
@@ -5790,8 +5801,8 @@ class TopLearnersComponent {
5790
5801
  }
5791
5802
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, deps: [{ token: InsiteDataService }], target: i0.ɵɵFactoryTarget.Component }); }
5792
5803
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TopLearnersComponent, selector: "sb-uic-top-learners", inputs: { objectData: "objectData", channelId: "channelId", channnelName: "channnelName", slwConfig: "slwConfig" }, ngImport: i0, template: "<div class=\"flex flex-center\">\n <div class=\"flex items-center flex-wrap justify-center\">\n <div class=\"title-border w-full\"></div>\n <div class=\"title w-full\" [style.color]=\"objectData?.titleFontColor\">{{objectData?.title}} ({{month}})</div>\n <div class=\"title-border w-full\"></div>\n </div> \n</div>\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of results; let i=index\" class=\"flex-container\">\n <div class=\"flex-item user-box {{objectData?.customClass}}\" [style.height]=\"objectData?.cardHeight\" [style.minHeight]=\"objectData?.cardMinHeight\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\" *ngIf=\"obj?.profile_image\">\n <img [src]=\"obj?.profile_image\" class=\"user-image\"/>\n </div>\n <div class=\"initial\" *ngIf=\"!obj?.profile_image\"\n [style.backgroundColor]=\"colors[i]\"\n >\n {{createInititals(obj?.fullName || obj?.fullname)}}\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length >= 24\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.fullName || obj?.fullname}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length < 24\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.designation}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.designation}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length < 32\">{{obj?.designation}}</div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.orgName || obj?.org_name}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.orgName || obj?.org_name}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length < 32\">{{obj?.orgName || obj?.org_name}}</div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">{{getRank(+obj?.row_num)}}</div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\" *ngIf=\"!objectData?.hideEle?.includes('karma-points')\">\n <div class=\"kp-icon\"><img [src]=\"objectData?.kpIcon\" class=\"kp-image\"/></div>\n <div class=\"points\">{{obj?.total_points || 0}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length === 0\">\n <div class=\"margin-top-l noData\">\n No data\n </div>\n</div>\n\n<ng-container>\n <div class=\"top-learners-container\" *ngIf=\"loading\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of [1,2,3]\" class=\"flex-container\">\n <div class=\"flex-item user-box\" >\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"points\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>", styles: [".title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:15px}.title-border{margin:10px;width:240px;height:3px;background:linear-gradient(90deg,#fff0,#ef951e 20% 80%,#fff0)}.noData{border:1px solid #1B4CA1;padding:15px;display:flex;justify-content:center;border-radius:12px}.top-learners-container{overflow:auto}::-webkit-scrollbar{height:10px!important}::-webkit-scrollbar-track{border-radius:10px;background:#eff3f9!important}.user-box{width:360px;height:134px;border-radius:8px;background-color:#fff;padding:16px;position:relative}.flex-container{display:flex}.flex-item{flex:0 0 auto;white-space:nowrap}.img-name-sec{justify-content:space-between}.initial{width:44px;height:44px;border-radius:50%;align-items:center;display:flex;justify-content:center;font-weight:700;color:#fff}.user-image{width:44px;height:44px;border-radius:50%}.name-sec{font-family:Lato;font-size:16px;font-weight:700;line-height:19.2px;text-align:left;width:200px!important;overflow:hidden;text-overflow:ellipsis}.designation-sec{font-family:Lato;font-size:12px;font-weight:400;line-height:14.4px;text-align:left;opacity:.6;width:200px!important;overflow:hidden;text-overflow:ellipsis}.rank-sec{font-family:Montserrat;font-size:36px;font-weight:700;line-height:43.88px;text-align:left;color:#ef951e}.kp-section{justify-content:flex-end;position:absolute;right:18px;bottom:16px;align-items:center}.kp-image{width:32px;height:32px;padding-top:3px}.points{font-family:Lato;font-size:24px;font-weight:700;line-height:28.8px;text-align:left;color:#1b4ca1;padding-bottom:3px}::-webkit-scrollbar{height:4px}::-webkit-scrollbar-track{border-radius:10px;background:#000}::-webkit-scrollbar-thumb{background:#cccc;border-radius:10px}@media screen and (max-width: 768px){.user-box{width:343px}}\n"], dependencies: [{ kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }, { kind: "directive", type: i4.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
5793
- }
5794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, decorators: [{
5804
+ };
5805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent$1, decorators: [{
5795
5806
  type: Component,
5796
5807
  args: [{ selector: 'sb-uic-top-learners', template: "<div class=\"flex flex-center\">\n <div class=\"flex items-center flex-wrap justify-center\">\n <div class=\"title-border w-full\"></div>\n <div class=\"title w-full\" [style.color]=\"objectData?.titleFontColor\">{{objectData?.title}} ({{month}})</div>\n <div class=\"title-border w-full\"></div>\n </div> \n</div>\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of results; let i=index\" class=\"flex-container\">\n <div class=\"flex-item user-box {{objectData?.customClass}}\" [style.height]=\"objectData?.cardHeight\" [style.minHeight]=\"objectData?.cardMinHeight\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\" *ngIf=\"obj?.profile_image\">\n <img [src]=\"obj?.profile_image\" class=\"user-image\"/>\n </div>\n <div class=\"initial\" *ngIf=\"!obj?.profile_image\"\n [style.backgroundColor]=\"colors[i]\"\n >\n {{createInititals(obj?.fullName || obj?.fullname)}}\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length >= 24\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.fullName || obj?.fullname}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"name-sec\" *ngIf=\"(obj?.fullName || obj?.fullname)?.length < 24\">\n {{obj?.fullName || obj?.fullname}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.designation}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.designation}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length < 32\">{{obj?.designation}}</div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.orgName || obj?.org_name}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.orgName || obj?.org_name}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"(obj?.orgName || obj?.org_name)?.length < 32\">{{obj?.orgName || obj?.org_name}}</div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">{{getRank(+obj?.row_num)}}</div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\" *ngIf=\"!objectData?.hideEle?.includes('karma-points')\">\n <div class=\"kp-icon\"><img [src]=\"objectData?.kpIcon\" class=\"kp-image\"/></div>\n <div class=\"points\">{{obj?.total_points || 0}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length === 0\">\n <div class=\"margin-top-l noData\">\n No data\n </div>\n</div>\n\n<ng-container>\n <div class=\"top-learners-container\" *ngIf=\"loading\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of [1,2,3]\" class=\"flex-container\">\n <div class=\"flex-item user-box\" >\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"points\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>", styles: [".title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:center;padding:15px}.title-border{margin:10px;width:240px;height:3px;background:linear-gradient(90deg,#fff0,#ef951e 20% 80%,#fff0)}.noData{border:1px solid #1B4CA1;padding:15px;display:flex;justify-content:center;border-radius:12px}.top-learners-container{overflow:auto}::-webkit-scrollbar{height:10px!important}::-webkit-scrollbar-track{border-radius:10px;background:#eff3f9!important}.user-box{width:360px;height:134px;border-radius:8px;background-color:#fff;padding:16px;position:relative}.flex-container{display:flex}.flex-item{flex:0 0 auto;white-space:nowrap}.img-name-sec{justify-content:space-between}.initial{width:44px;height:44px;border-radius:50%;align-items:center;display:flex;justify-content:center;font-weight:700;color:#fff}.user-image{width:44px;height:44px;border-radius:50%}.name-sec{font-family:Lato;font-size:16px;font-weight:700;line-height:19.2px;text-align:left;width:200px!important;overflow:hidden;text-overflow:ellipsis}.designation-sec{font-family:Lato;font-size:12px;font-weight:400;line-height:14.4px;text-align:left;opacity:.6;width:200px!important;overflow:hidden;text-overflow:ellipsis}.rank-sec{font-family:Montserrat;font-size:36px;font-weight:700;line-height:43.88px;text-align:left;color:#ef951e}.kp-section{justify-content:flex-end;position:absolute;right:18px;bottom:16px;align-items:center}.kp-image{width:32px;height:32px;padding-top:3px}.points{font-family:Lato;font-size:24px;font-weight:700;line-height:28.8px;text-align:left;color:#1b4ca1;padding-bottom:3px}::-webkit-scrollbar{height:4px}::-webkit-scrollbar-track{border-radius:10px;background:#000}::-webkit-scrollbar-thumb{background:#cccc;border-radius:10px}@media screen and (max-width: 768px){.user-box{width:343px}}\n"] }]
5797
5808
  }], ctorParameters: function () { return [{ type: InsiteDataService }]; }, propDecorators: { objectData: [{
@@ -5806,9 +5817,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5806
5817
 
5807
5818
  class TopLearnersModule {
5808
5819
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5809
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, declarations: [TopLearnersComponent], imports: [CommonModule,
5820
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, declarations: [TopLearnersComponent$1], imports: [CommonModule,
5810
5821
  SkeletonLoaderLibModule,
5811
- MatLegacyTooltipModule], exports: [TopLearnersComponent] }); }
5822
+ MatLegacyTooltipModule], exports: [TopLearnersComponent$1] }); }
5812
5823
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, imports: [CommonModule,
5813
5824
  SkeletonLoaderLibModule,
5814
5825
  MatLegacyTooltipModule] }); }
@@ -5816,13 +5827,13 @@ class TopLearnersModule {
5816
5827
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersModule, decorators: [{
5817
5828
  type: NgModule,
5818
5829
  args: [{
5819
- declarations: [TopLearnersComponent],
5830
+ declarations: [TopLearnersComponent$1],
5820
5831
  imports: [
5821
5832
  CommonModule,
5822
5833
  SkeletonLoaderLibModule,
5823
5834
  MatLegacyTooltipModule
5824
5835
  ],
5825
- exports: [TopLearnersComponent],
5836
+ exports: [TopLearnersComponent$1],
5826
5837
  }]
5827
5838
  }] });
5828
5839
 
@@ -6461,6 +6472,9 @@ class CardPortraitComponent {
6461
6472
  if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {
6462
6473
  contentData['typeOfTelemetry'] = this.widgetData.context.pageSection;
6463
6474
  }
6475
+ if (this.widgetData && this.widgetData.publicCard) {
6476
+ contentData['publicCard'] = this.widgetData.publicCard;
6477
+ }
6464
6478
  if (this.widgetData && this.widgetData.sakshamAIGenerated) {
6465
6479
  contentData['sakshamAIGenerated'] = this.widgetData.sakshamAIGenerated;
6466
6480
  }
@@ -7347,11 +7361,11 @@ class CertificateDialogComponent {
7347
7361
  });
7348
7362
  }
7349
7363
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CertificateDialogComponent, deps: [{ token: 'environment' }, { token: i2.EventService }, { token: i2$1.TranslateService }, { token: i2.MultilingualTranslationsService }, { token: i1$3.MatLegacyDialogRef }, { token: MAT_LEGACY_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
7350
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CertificateDialogComponent, selector: "sb-uic-certificate-dialog", host: { classAttribute: "certificate-inner-dialog-panel" }, ngImport: i0, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex gap-4 flex-row-reverse\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button (click)=\"shareCert()\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n", styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}@media only screen and (max-width: 1279px){.certificate-banner-image{width:100%;height:auto;flex:1}}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:#0009;font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important}.close-icon{transition:1s ease-in-out;color:#fff!important}.close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;top:-52px;right:-52px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width: 1279px){.certificate-banner-image svg{width:auto;height:auto;flex:1}}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important;border-radius:50%!important}.ws-mat-accent-border{border:1px solid rgba(255,255,255,.08)}.ws-mat-accent-border-active{border:1px solid rgb(27,76,161);color:#1b4ca1}.mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button,.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-icon{position:absolute!important;top:19px!important;right:18px!important}\n"], dependencies: [{ kind: "component", type: i4$1.MatLegacyMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatLegacyMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatLegacyMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6$1.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6$1.MatLegacyCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { 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: "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: i8.MatLegacyAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: i2.PipeSafeSanitizerPipe, name: "pipeSafeSanitizer" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
7364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CertificateDialogComponent, selector: "sb-uic-certificate-dialog", host: { classAttribute: "certificate-inner-dialog-panel" }, ngImport: i0, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex gap-4 flex-row-reverse\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button (click)=\"shareCert()\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n", styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}@media only screen and (max-width: 1279px){.certificate-banner-image{width:100%;height:auto;flex:1}}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:#0009;font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important}.close-icon{transition:1s ease-in-out;color:#fff!important}.close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;top:-52px;right:-52px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width: 1279px){.certificate-banner-image svg{width:auto;height:auto;flex:1}}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important;border-radius:60%!important;min-width:0!important}.ws-mat-accent-border{border:1px solid rgba(255,255,255,.08)}.ws-mat-accent-border-active{border:1px solid rgb(27,76,161);color:#1b4ca1}.mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button,.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-icon{position:absolute!important;top:4px!important;right:4px!important;color:#fff!important;vertical-align:middle}\n"], dependencies: [{ kind: "component", type: i4$1.MatLegacyMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatLegacyMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatLegacyMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6$1.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6$1.MatLegacyCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { 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: "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: i8.MatLegacyAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: i2.PipeSafeSanitizerPipe, name: "pipeSafeSanitizer" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
7351
7365
  }
7352
7366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CertificateDialogComponent, decorators: [{
7353
7367
  type: Component,
7354
- args: [{ selector: 'sb-uic-certificate-dialog', host: { class: 'certificate-inner-dialog-panel' }, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex gap-4 flex-row-reverse\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button (click)=\"shareCert()\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n", styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}@media only screen and (max-width: 1279px){.certificate-banner-image{width:100%;height:auto;flex:1}}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:#0009;font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important}.close-icon{transition:1s ease-in-out;color:#fff!important}.close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;top:-52px;right:-52px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width: 1279px){.certificate-banner-image svg{width:auto;height:auto;flex:1}}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important;border-radius:50%!important}.ws-mat-accent-border{border:1px solid rgba(255,255,255,.08)}.ws-mat-accent-border-active{border:1px solid rgb(27,76,161);color:#1b4ca1}.mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button,.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-icon{position:absolute!important;top:19px!important;right:18px!important}\n"] }]
7368
+ args: [{ selector: 'sb-uic-certificate-dialog', host: { class: 'certificate-inner-dialog-panel' }, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex gap-4 flex-row-reverse\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button (click)=\"shareCert()\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n", styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}@media only screen and (max-width: 1279px){.certificate-banner-image{width:100%;height:auto;flex:1}}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:#0009;font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important}.close-icon{transition:1s ease-in-out;color:#fff!important}.close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;top:-52px;right:-52px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width: 1279px){.certificate-banner-image svg{width:auto;height:auto;flex:1}}.close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important;border-radius:60%!important;min-width:0!important}.ws-mat-accent-border{border:1px solid rgba(255,255,255,.08)}.ws-mat-accent-border-active{border:1px solid rgb(27,76,161);color:#1b4ca1}.mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button,.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-icon{position:absolute!important;top:4px!important;right:4px!important;color:#fff!important;vertical-align:middle}\n"] }]
7355
7369
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
7356
7370
  type: Inject,
7357
7371
  args: ['environment']
@@ -8068,20 +8082,20 @@ class AddCompetencyPopupComponent {
8068
8082
  submitCompetency() {
8069
8083
  this.modalRef.close(this.selectedList);
8070
8084
  }
8071
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCompetencyPopupComponent, deps: [{ token: i1$5.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
8085
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCompetencyPopupComponent, deps: [{ token: i3$1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
8072
8086
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AddCompetencyPopupComponent, selector: "sb-uic-add-competency-popup", ngImport: i0, template: "<div class=\"text-center mt-4\">\n <p mat-dialog-title class=\"ff-montserrat font-bold text-xl\">Select skills which you want to learn.</p>\n <p class=\"lato font-normal text-sm\">Based on you choice, We will recommend best suitable content for you.</p>\n</div>\n<mat-dialog-content>\n <div class=\"enrollment-list-wrapper\">\n <div class=\"flex iteams-center justify-between flex-col\">\n <div>\n <div class=\"mat-full-radius\">\n <mat-form-field appearance=\"outline\" class=\"margin-top-xs stakeholders w-full\">\n <mat-icon matPrefix>search</mat-icon>\n <input matInput #search maxlength=\"70\" i18n-placeholder placeholder=\"Search\"\n [formControl]=\"searchTextCtrl\">\n </mat-form-field>\n </div>\n <div class=\"form_item_full\">\n <div class=\"max-height-320\" *ngIf=\"selectedList && selectedList?.length > 0\">\n <div class=\"flex flex-row justify-between w-full\">\n <div class=\"flex flex-row w-90\">\n <div class=\"font-normal mt-5 w-17\">Selected Items <span\n *ngIf=\"selectedList && selectedList?.length\">({{(selectedList) ?\n (selectedList?.length) :\n '0'}})</span>\n :</div>\n <div class=\"flex flex-row flex-wrap\" [ngClass]=\"showMore ? 'w-78':''\">\n <ng-container *ngFor=\"let org of selectedList | slice : 0:sliceCount\">\n <div class=\"flex items-center orgBoxChip margin-bottom-s px-4 py-3 mt-2 ml-4\">\n <div class=\"flex-col flex-1\">\n <h3\n class=\"mat-h2 margin-remove inline-block flex-1 long-text-wrap-new-ui\">\n <span *ngIf=\"org?.orgName?.length > 25\">{{org?.orgName | slice : 0 :\n 25}}...</span>\n <span *ngIf=\"org?.orgName?.length < 25\">{{org?.orgName}}</span>\n </h3>\n </div>\n <mat-icon matPrefix\n class=\"flex items-right justify-right margin-right-0 cursor-pointer close-rounded ml-6\"\n (click)=\"removeSelectedOrg(org)\">close</mat-icon>\n </div>\n </ng-container>\n </div>\n <div class=\"more mt-5 ml-2 w-10\"\n *ngIf=\"selectedList?.length > 0 && sliceCount < selectedList?.length\">\n <a href=\"javascript:void(0)\" (click)=\"showMoreSelectedOrg()\">+{{selectedList?.length\n -\n sliceCount}}\n more</a>\n </div>\n <div class=\"more mt-5 ml-2\"\n *ngIf=\"showMore && selectedList?.length > 0 && selectedList?.length === sliceCount\">\n <a href=\"javascript:void(0)\" (click)=\"showLessSelectedOrg()\">Show less</a>\n </div>\n </div>\n <div class=\"flex flex-row mt-5 w-10 justify-end\">\n <div class=\"more\" *ngIf=\"selectedList?.length > 1 \">\n <a href=\"javascript:void(0)\" (click)=\"clearAll()\">Clear all</a>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"max-height-320 padding-left-s mt-3 border-section\">\n <div *ngFor=\"let value of orgList\" class=\"custome-checkbox margin-bottom-s\">\n <mat-checkbox (change)=\"selectedOrgChange($event.checked, value)\" [checked]=\"value.checked\">\n <div class=\"margin-left-sm\">\n <h3 class=\"margin-remove inline-block flex-1 long-text-wrap\">\n {{value.orgName}}\n </h3>\n </div>\n </mat-checkbox>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex justify-center py-4 gap-4\">\n <button mat-button mat-dialog-close class=\"mat-btn-outline\" (click)=\"cancelModal()\">Cancel</button>\n <button mat-button class=\"mat-btn-flat\" (click)=\"submitCompetency()\">Submit</button>\n</mat-dialog-actions>", styles: [".ff-montserrat{font-family:Montserrat}.section-btn{height:32px;width:100px;background-color:#fff!important;color:#0006!important;font:700 14px Lato;border-radius:16px;border:1px solid rgba(0,0,0,.4)}.section-btn.active-section-btn{background-color:#1b4ca129!important;border:1px solid #1B4CA1;color:#1b4ca1!important}.subtite-color{color:#0009}.border-bottom-c{border-bottom:2px solid rgba(0,0,0,.0784313725)!important}.long-text-wrap{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:14px;font-family:Lato;color:#000000de}.long-text-wrap-new-ui{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:131px;line-height:14px;color:#0000008a;font-size:14px;font-weight:400}.custome-icon-font-size{font-size:12px;line-height:12px}.subheading{font-size:12px;color:#0009}.custome-checkbox ::ng-deep .mat-checkbox-layout{margin-bottom:10px}.orgBox{background-color:#f5f5f5;border-radius:5px}.max-height-320{max-height:230px;overflow-y:auto}.max-height-320::-webkit-scrollbar{width:5px}.max-height-320::-webkit-scrollbar-track{background:#f1f1f1}.max-height-320::-webkit-scrollbar-thumb{background:#888;border-radius:100vw}.max-height-320::-webkit-scrollbar-thumb:hover{background:#555}.custome-slide{font-size:14px;font-weight:400!important;width:auto}.disable{opacity:.3;pointer-events:none;cursor:none}::ng-deep .stakeholders .mat-form-field-wrapper{padding:0}.border-section{border-radius:8px;border:1px solid rgba(0,0,0,.0784313725);padding:16px;background-color:#fff;padding:1.2rem}.orgBoxChip{background-color:#fff;border-radius:27px;border:1px solid rgba(0,0,0,.08);height:23px}.align-center{align-items:center}.more{color:#1b4ca1;margin-left:6px;font-weight:700;font-size:14px}.margin-right-0{margin-right:0!important}.w-90{width:90%}.w-10{width:10%}.w-78{width:78%}.w-17{width:15%}.black-text{color:#000!important}.enrollment-list-wrapper{padding:1rem}.margin-left-sm{margin-left:4px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:30px}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-end{border-radius:0 30px 30px 0!important}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-start{border-radius:30px 0 0 30px!important;flex-grow:1}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-infix{padding:6px 0 15px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(5%)}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-flex{padding:0 16px}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$3.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatLegacyDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i7$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i7$2.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i8$1.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }] }); }
8073
8087
  }
8074
8088
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddCompetencyPopupComponent, decorators: [{
8075
8089
  type: Component,
8076
8090
  args: [{ selector: "sb-uic-add-competency-popup", template: "<div class=\"text-center mt-4\">\n <p mat-dialog-title class=\"ff-montserrat font-bold text-xl\">Select skills which you want to learn.</p>\n <p class=\"lato font-normal text-sm\">Based on you choice, We will recommend best suitable content for you.</p>\n</div>\n<mat-dialog-content>\n <div class=\"enrollment-list-wrapper\">\n <div class=\"flex iteams-center justify-between flex-col\">\n <div>\n <div class=\"mat-full-radius\">\n <mat-form-field appearance=\"outline\" class=\"margin-top-xs stakeholders w-full\">\n <mat-icon matPrefix>search</mat-icon>\n <input matInput #search maxlength=\"70\" i18n-placeholder placeholder=\"Search\"\n [formControl]=\"searchTextCtrl\">\n </mat-form-field>\n </div>\n <div class=\"form_item_full\">\n <div class=\"max-height-320\" *ngIf=\"selectedList && selectedList?.length > 0\">\n <div class=\"flex flex-row justify-between w-full\">\n <div class=\"flex flex-row w-90\">\n <div class=\"font-normal mt-5 w-17\">Selected Items <span\n *ngIf=\"selectedList && selectedList?.length\">({{(selectedList) ?\n (selectedList?.length) :\n '0'}})</span>\n :</div>\n <div class=\"flex flex-row flex-wrap\" [ngClass]=\"showMore ? 'w-78':''\">\n <ng-container *ngFor=\"let org of selectedList | slice : 0:sliceCount\">\n <div class=\"flex items-center orgBoxChip margin-bottom-s px-4 py-3 mt-2 ml-4\">\n <div class=\"flex-col flex-1\">\n <h3\n class=\"mat-h2 margin-remove inline-block flex-1 long-text-wrap-new-ui\">\n <span *ngIf=\"org?.orgName?.length > 25\">{{org?.orgName | slice : 0 :\n 25}}...</span>\n <span *ngIf=\"org?.orgName?.length < 25\">{{org?.orgName}}</span>\n </h3>\n </div>\n <mat-icon matPrefix\n class=\"flex items-right justify-right margin-right-0 cursor-pointer close-rounded ml-6\"\n (click)=\"removeSelectedOrg(org)\">close</mat-icon>\n </div>\n </ng-container>\n </div>\n <div class=\"more mt-5 ml-2 w-10\"\n *ngIf=\"selectedList?.length > 0 && sliceCount < selectedList?.length\">\n <a href=\"javascript:void(0)\" (click)=\"showMoreSelectedOrg()\">+{{selectedList?.length\n -\n sliceCount}}\n more</a>\n </div>\n <div class=\"more mt-5 ml-2\"\n *ngIf=\"showMore && selectedList?.length > 0 && selectedList?.length === sliceCount\">\n <a href=\"javascript:void(0)\" (click)=\"showLessSelectedOrg()\">Show less</a>\n </div>\n </div>\n <div class=\"flex flex-row mt-5 w-10 justify-end\">\n <div class=\"more\" *ngIf=\"selectedList?.length > 1 \">\n <a href=\"javascript:void(0)\" (click)=\"clearAll()\">Clear all</a>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"max-height-320 padding-left-s mt-3 border-section\">\n <div *ngFor=\"let value of orgList\" class=\"custome-checkbox margin-bottom-s\">\n <mat-checkbox (change)=\"selectedOrgChange($event.checked, value)\" [checked]=\"value.checked\">\n <div class=\"margin-left-sm\">\n <h3 class=\"margin-remove inline-block flex-1 long-text-wrap\">\n {{value.orgName}}\n </h3>\n </div>\n </mat-checkbox>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex justify-center py-4 gap-4\">\n <button mat-button mat-dialog-close class=\"mat-btn-outline\" (click)=\"cancelModal()\">Cancel</button>\n <button mat-button class=\"mat-btn-flat\" (click)=\"submitCompetency()\">Submit</button>\n</mat-dialog-actions>", styles: [".ff-montserrat{font-family:Montserrat}.section-btn{height:32px;width:100px;background-color:#fff!important;color:#0006!important;font:700 14px Lato;border-radius:16px;border:1px solid rgba(0,0,0,.4)}.section-btn.active-section-btn{background-color:#1b4ca129!important;border:1px solid #1B4CA1;color:#1b4ca1!important}.subtite-color{color:#0009}.border-bottom-c{border-bottom:2px solid rgba(0,0,0,.0784313725)!important}.long-text-wrap{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:14px;font-family:Lato;color:#000000de}.long-text-wrap-new-ui{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:131px;line-height:14px;color:#0000008a;font-size:14px;font-weight:400}.custome-icon-font-size{font-size:12px;line-height:12px}.subheading{font-size:12px;color:#0009}.custome-checkbox ::ng-deep .mat-checkbox-layout{margin-bottom:10px}.orgBox{background-color:#f5f5f5;border-radius:5px}.max-height-320{max-height:230px;overflow-y:auto}.max-height-320::-webkit-scrollbar{width:5px}.max-height-320::-webkit-scrollbar-track{background:#f1f1f1}.max-height-320::-webkit-scrollbar-thumb{background:#888;border-radius:100vw}.max-height-320::-webkit-scrollbar-thumb:hover{background:#555}.custome-slide{font-size:14px;font-weight:400!important;width:auto}.disable{opacity:.3;pointer-events:none;cursor:none}::ng-deep .stakeholders .mat-form-field-wrapper{padding:0}.border-section{border-radius:8px;border:1px solid rgba(0,0,0,.0784313725);padding:16px;background-color:#fff;padding:1.2rem}.orgBoxChip{background-color:#fff;border-radius:27px;border:1px solid rgba(0,0,0,.08);height:23px}.align-center{align-items:center}.more{color:#1b4ca1;margin-left:6px;font-weight:700;font-size:14px}.margin-right-0{margin-right:0!important}.w-90{width:90%}.w-10{width:10%}.w-78{width:78%}.w-17{width:15%}.black-text{color:#000!important}.enrollment-list-wrapper{padding:1rem}.margin-left-sm{margin-left:4px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:30px}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-end{border-radius:0 30px 30px 0!important}::ng-deep .mat-full-radius .mat-form-field .mat-form-field-outline-start{border-radius:30px 0 0 30px!important;flex-grow:1}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-infix{padding:6px 0 15px}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(5%)}::ng-deep .mat-full-radius .mat-form-field-appearance-outline .mat-form-field-flex{padding:0 16px}\n"] }]
8077
- }], ctorParameters: function () { return [{ type: i1$5.MatDialogRef }]; } });
8091
+ }], ctorParameters: function () { return [{ type: i3$1.MatDialogRef }]; } });
8078
8092
 
8079
8093
  class SnackbarComponent {
8080
8094
  constructor(data, snackBarRef) {
8081
8095
  this.data = data;
8082
8096
  this.snackBarRef = snackBarRef;
8083
8097
  }
8084
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SnackbarComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1$6.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component }); }
8098
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SnackbarComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1$5.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component }); }
8085
8099
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SnackbarComponent, selector: "sb-uic-snackbar", ngImport: i0, template: "<div class=\"snackbar-wrapper\">\n <div class=\"flex items-center justify-between\">\n <div class=\"message flex items-center gap-4\">\n <mat-icon *ngIf=\"data?.type === 'success'\" class=\"text-white\">check</mat-icon>\n <!-- <mat-icon *ngIf=\"data?.type === 'error'\" class=\"text-white\">close</mat-icon> -->\n <span *ngIf=\"data?.message\" class=\"text-white\">{{data?.message}}</span>\n </div>\n <div class=\"close\">\n <mat-icon class=\"cursor-pointer\" (click)=\"snackBarRef.dismiss()\" class=\"text-white\">close</mat-icon>\n </div>\n </div>\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
8086
8100
  }
8087
8101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SnackbarComponent, decorators: [{
@@ -8090,7 +8104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8090
8104
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
8091
8105
  type: Inject,
8092
8106
  args: [MAT_SNACK_BAR_DATA]
8093
- }] }, { type: i1$6.MatSnackBarRef }]; } });
8107
+ }] }, { type: i1$5.MatSnackBarRef }]; } });
8094
8108
 
8095
8109
  class ConfirmationDialogComponent {
8096
8110
  constructor(dialogRef, data) {
@@ -10965,7 +10979,7 @@ class ContentStripWithTabsPillsComponent extends WidgetBaseComponent {
10965
10979
  this.stripsResultDataMap[strip.key].showOnLoader = false;
10966
10980
  }
10967
10981
  }
10968
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripWithTabsPillsComponent, deps: [{ token: 'environment' }, { token: WidgetContentLibService }, { token: i2.LoggerService }, { token: i2.EventService }, { token: i2.ConfigurationsService }, { token: i2.UtilityService }, { token: i1$1.Router }, { token: WidgetUserServiceLib }, { token: i2$1.TranslateService }, { token: MultilingualTranslationsService }, { token: i2.WidgetEnrollService }, { token: i1$5.MatDialog }, { token: i1$6.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
10982
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripWithTabsPillsComponent, deps: [{ token: 'environment' }, { token: WidgetContentLibService }, { token: i2.LoggerService }, { token: i2.EventService }, { token: i2.ConfigurationsService }, { token: i2.UtilityService }, { token: i1$1.Router }, { token: WidgetUserServiceLib }, { token: i2$1.TranslateService }, { token: MultilingualTranslationsService }, { token: i2.WidgetEnrollService }, { token: i3$1.MatDialog }, { token: i1$5.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
10969
10983
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContentStripWithTabsPillsComponent, selector: "sb-uic-content-strip-with-tabs-pills", inputs: { widgetData: "widgetData", providerId: "providerId", emitViewAll: "emitViewAll", channnelName: "channnelName" }, outputs: { emptyResponse: "emptyResponse", viewAllResponse: "viewAllResponse", telemtryResponse: "telemtryResponse" }, host: { properties: { "id": "this.id" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!contentAvailable; else otherTemplate\"></ng-container>\n<ng-template #otherTemplate>\n <!-- <div *ngIf=\"showParentLoader\" class=\"text-center my-2\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div> -->\n <ng-container *ngIf=\"showParentError\" [sbUiResolverWidget]=\"widgetData.errorWidget\"></ng-container>\n <ng-container *ngIf=\"showParentNoData\" [sbUiResolverWidget]=\"widgetData.noDataWidget\"></ng-container>\n <ng-container *ngFor=\"let key of stripsKeyOrder; let i = index; trackBy: identify\">\n <ng-container *ngIf=\"isStripShowing(stripsResultDataMap[key]) && canShowHeading(stripsResultDataMap[key])\">\n <a name=\"{{stripsResultDataMap[key]?.stripTitle}}\" [class]=\"key\">\n <div *ngIf=\"stripsResultDataMap && (getLength(stripsResultDataMap[key]) ||\n stripsResultDataMap[key]?.showOnNoData ||\n stripsResultDataMap[key]?.showOnLoader ||\n stripsResultDataMap[key]?.showOnError)\n \" [ngClass]=\"\n !widgetData?.isChannelStrip ? 'xs:px-8 sx:px-10ss' : i > 0 ? 'mt-12' : ''\n \" [id]=\"key\" [ngClass]=\"!widgetData?.isChannelStrip ? 'margin-bottom-custom' : 'margin-bottom-xs'\">\n <div [ngClass]=\"{ pad: stripsResultDataMap[key]?.stripBackground }\"\n [ngStyle]=\"{ 'background-color': stripsResultDataMap[key]?.stripBackground }\">\n <div class=\"flex flex-col pl-4 pr-4 md:pr-0 md:pl-0 \" [ngClass]=\"\n !widgetData?.isChannelStrip\n ? ''\n : stripsResultDataMap[key]?.stripTitle\n ? 'mb-8'\n : ''\n \">\n <div class=\"flex flex-1 items-center\">\n <p class=\"mat-subheading-1 margin-remove inline-block \" *ngIf=\"stripsResultDataMap[key]?.stripTitle\">\n <span class=\"capitalize\" *ngIf=\"stripsResultDataMap[key]?.disableTranslate\">\n {{stripsResultDataMap[key]?.stripTitle}}\n </span>\n <span *ngIf=\"!stripsResultDataMap[key]?.disableTranslate\">\n {{ translateLabels(stripsResultDataMap[key]?.stripTitle, 'home') }}\n </span>\n </p>\n\n <button *ngIf=\"stripsResultDataMap[key]?.stripInfo?.icon\" type=\"button\" mat-icon-button\n (click)=\"toggleInfo(stripsResultDataMap[key])\" i18n-matTooltip matTooltip=\"info\"\n class=\"margin-left-xs\">\n <mat-icon>{{ stripsResultDataMap[key]?.stripInfo?.icon.icon }}</mat-icon>\n </button>\n <a *ngIf=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [routerLink]=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [queryParams]=\"stripsResultDataMap[key]?.stripTitleLink?.link?.queryParams\">\n <mat-icon class=\"ws-mat-primary-primary-text ws-mat-default-text\" [color]=\"'accent'\">{{\n stripsResultDataMap[key]?.stripTitleLink?.icon }}</mat-icon>\n </a>\n <span class=\"spacer\"></span>\n <!-- viewAll start-->\n <div *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key])\" class=\"block md:hidden\">\n <div class=\"ml-4 pl-2 view-more ws-mat-default-text \">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\"\n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n\n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0]?.viewMoreUrl?.viewMoreText,'home')\n || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\"\n color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n </div>\n <!-- viewAll end-->\n </div>\n <button mat-icon-button (click)=\"setHiddenForStrip(key)\" *ngIf=\"stripsResultDataMap[key]?.canHideStrip\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"stripsResultDataMap[key]?.mode === 'accordion' && isMobile\"\n (click)=\"showAccordionData = !showAccordionData\">{{ showAccordionData ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n\n <div class=\"mb-4\" *ngIf=\"checkVisible(stripsResultDataMap[key])\">\n <ng-container [sbUiResolverWidget]=\"getdata(stripsResultDataMap[key])\">\n </ng-container>\n </div>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnNoData\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.noDataWidget\"></ng-container>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnError\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.errorWidget\"></ng-container>\n <!-- IF no errors then proceed to show tabs or non tabs strip -->\n <ng-container *ngIf=\"!stripsResultDataMap[key]?.showOnNoData && !stripsResultDataMap[key]?.showOnError\">\n <ng-container *ngIf=\"stripsResultDataMap[key].tabs && stripsResultDataMap[key].tabs.length\">\n <mat-tab-group animationDuration=\"0ms\" [selectedIndex]=\"getSelectedIndex(stripsResultDataMap[key], key)\"\n class=\"mat-tab-labels w-full strips-tabgroup padding-bottom-tabs\" dynamicHeight\n (selectedIndexChange)=\"tabClicked($event, 0, stripsResultDataMap[key], key)\">\n <ng-container *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;let tabIndex = index\">\n <mat-tab *ngIf=\"!tab?.hideTab\">\n <ng-template mat-tab-label>\n <ng-container *ngIf=\"tab?.value !== sakshamAIEnum.SakshamAI\">\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <span *ngIf=\"tab?.showTabDataCount && tab?.widgets?.length\">({{tab?.widgets?.length}})</span>\n </ng-container>\n <ng-container *ngIf=\"tab?.value === sakshamAIEnum.SakshamAI\">\n <div class=\"flex items-center\">\n <img src=\"/assets/images/sakshamAI/ai-icon.svg\" alt=\"loader\" width=\"16\" height=\"16\"\n class=\"mr-2\">\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <mat-icon svgIcon=\"info-outline\"\n class=\"margin-remove w-16-px cursor-pointer request-id-toolTip m-px\"\n [matTooltip]=\"'home.sakshamAITooltip' | translate\" [matTooltipPosition]=\"'above'\"\n matTooltipClass=\"request-id-toolTip\"></mat-icon>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"wfull wrapper-saksham\"\n *ngIf=\"tab?.pillsData && tab?.pillsData?.length && !tab?.hideTab\"\n [ngClass]=\"{'overlay-max-height': recommendationPopup || sakshamFeedbackPopup}\">\n <div class=\"pt-3 flex justify-between item-center\">\n <ng-container *ngIf=\"tab?.value !== sakshamAIEnum.SakshamAI\">\n <div class=\" flex items-center\">\n <mat-chip-list class=\"content-pill\" aria-label=\"Fish selection\">\n <ng-container *ngFor=\"let pill of tab?.pillsData;let p = index\">\n <mat-chip [selected]=\"pill?.selected\"\n (click)=\"pillClicked($event, stripsResultDataMap[key], key, p, tabIndex)\">\n <span class=\"pill-name\">{{pill?.label}}</span></mat-chip>\n </ng-container>\n </mat-chip-list>\n </div>\n </ng-container>\n <!-- viewAll start-->\n <div\n *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key]) && tab?.value !== sakshamAIEnum.SakshamAI\"\n class=\" hidden md:block\">\n <div class=\"ml-4 pl-2 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\"\n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n\n class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0]?.viewMoreUrl?.viewMoreText,'home')\n || 'See all'}}</span>\n <mat-icon\n class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\"\n color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n </div>\n <!-- viewAll end-->\n </div>\n <div *ngIf=\"(stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus) && !sakshamLoader\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [id]=\"key+'-scroller'\" [loadStatus]=\"'fetching'\"\n [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container\n *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <ng-container\n *ngIf=\"tab?.pillsData && tab?.pillsData.length && tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]\">\n <div\n *ngIf=\"((tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus && tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus === 'done') &&\n (!tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets || !tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets?.length))\">\n <ng-container\n *ngIf=\"tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.value === 'inprogress'; else msgTemp\">\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.svg\">\n <div class=\"mat-subheading-1 text-center info-content\">{{\n 'contentstripmultiple.getReadyForLearningAdventure' | translate }} -\n <a class=\"click-here\"\n [routerLink]=\"tab?.label === 'Events' ? '/app/event-hub/home':'/page/learn'\">{{\n 'contentstripmultiple.clickHere' | translate }}</a> <span\n *ngIf=\" tab?.label === 'Events'\">{{'contentstripmultiple.toEnrollNextEvents' |\n translate }}</span>\n <span *ngIf=\" tab?.label !== 'Events'\">{{ 'contentstripmultiple.toEnrollNextCourse' |\n translate }}</span>\n </div>\n </div>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.png\">\n <div class=\"mat-subheading-1 text-center\">{{\n translateLabels(tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.nodataMsg,\n 'home') }}</div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"(tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus === 'done' || tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.tabLoading\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\"\n [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n [widgetsLength]=\"tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.value === sakshamAIEnum.SakshamAI ? maxWidgetsSakshamAI : tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\"\n [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\" [extraMeta]=\"tab\">\n <!-- <ng-container\n *ngFor=\"let widget of tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets| slice:0:(tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container> -->\n <ng-container\n *ngFor=\"let widget of tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets | slice:0:(\n tab?.value === sakshamAIEnum.SakshamAI \n ? maxWidgetsSakshamAI \n : tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || \n defaultMaxWidgets\n ); trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n\n </sb-uic-horizontal-scroller-v2>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"tab?.value === sakshamAIEnum.SakshamAI\">\n <ng-container *ngIf=\"recommendationPopup\">\n <div class=\"greet-overlay\" @fadeInOut>\n <img src=\"/assets/images/sakshamAI/lady-greet.svg\" alt=\"greet\" width=\"106\">\n <div class=\"overlay-text mt-4 text-white\">\n {{'home.sakshamaidesc' | translate}}\n </div>\n <button mat-raised-button class=\"overlay-button\"\n (click)=\"recommendationPopup = false\">{{'profileInfo.ok' | translate}}</button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"sakshamFeedbackPopup\" >\n <div class=\"greet-overlay feedback-overlay\" @fadeInOut>\n <div class=\"overlay-text mt-4 text-white\">\n {{'home.sakshamaifeedbackText' | translate}}\n </div>\n <mat-form-field class=\"feedback-text w-4/5 mt-4\" appearance=\"outline\">\n <textarea matInput placeholder=\"Enter your feedback...\" rows=\"4\" #feedback [maxLength]=\"500\"></textarea>\n </mat-form-field>\n <div class=\"action-feedback mt-4 flex gap-4 justify-center items-center\">\n <button mat-raised-button class=\"overlay-button\"\n (click)=\"saveFeedback(feedback.value)\">{{'userProfile.submit' | translate}}\n </button>\n <button mat-raised-button class=\"overlay-button-transparent\"\n (click)=\"cancelFeedbackPopup()\">{{'userProfile.cancel' | translate}}</button>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"sakshamAddCompetency\">\n <div class=\"text-center py-6\">\n <div class=\"saksham-load-text text-sm font-normal lato\">\n Let us know what do you want to learn today!\n </div>\n <button mat-raised-button class=\"overlay-button mt-4\" (click)=\"addCompetency()\">\n <mat-icon class=\"mb-1\">add</mat-icon>\n Add Competency</button>\n\n </div>\n </ng-container>\n\n <!-- Loader and Content -->\n <ng-container *ngIf=\"sakshamLoader\">\n <div class=\"w-full text-center py-6\">\n <img src=\"/assets/images/sakshamAI/saksham_ai_loader-2.gif\" alt=\"loader\" class=\"mb-3\"\n width=\"100\" height=\"100\">\n <div class=\"saksham-load-text text-sm font-normal lato\">\n {{'home.sakshamaiLoaderText' | translate}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n </mat-tab>\n </ng-container>\n </mat-tab-group>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>", styles: [".view-more{display:flex;align-items:center;text-align:center;height:40px;justify-content:center}.view-more .icon{font-size:24px;width:24px;height:24px;border:1px solid;border-radius:50%;padding:8px;margin-bottom:8px}.view-more:hover{background-color:#dcdfe5}::ng-deep .strips-tabgroup .mat-tab-header{border-bottom:2px solid rgba(0,0,0,.12)}::ng-deep .strips-tabgroup.padding-bottom-tabs .mat-tab-body{padding:0!important;box-sizing:border-box;overflow-y:initial!important}::ng-deep .strips-tabgroup .mat-tab-body-wrapper{overflow:inherit!important}::ng-deep .strips-tabgroup .mat-tab-label{border-bottom:0px solid rgba(0,0,0,.1);margin-right:0;opacity:1}::ng-deep .strips-tabgroup .mat-tab-label .mat-tab-label-content{text-transform:inherit;font:400 14px/20px Lato}::ng-deep .strips-tabgroup .mat-tab-label-active .mat-tab-label-content{font-weight:700!important}::ng-deep .mat-tab-header-pagination{display:none!important}.click-here{color:#1b4ca1}.info-content{opacity:1;color:#000000de;font:700 14px/20px Lato-Bold;text-align:center}.active{background:#1b4ca1!important}.active .pill-name{color:#fff!important}::ng-deep .content-pill .mat-chip-selected{background-color:#1b4ca1!important}::ng-deep .content-pill .mat-chip-selected .pill-name{color:#fff!important}.saksham-load-text{line-height:16.8px}.lato{font-family:Lato}.wrapper-saksham{position:relative}.overlay-max-height{min-height:348px}.greet-overlay{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:999;background:#0000008f;border-radius:12px}.overlay-text{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;max-width:454px}.overlay-button,.overlay-button-transparent{margin-top:20px;color:#000!important;height:40px;border-radius:41px;font-size:14px;font-weight:700!important}.overlay-button-transparent{background:transparent!important;border:1px solid #ffffff;color:#fff!important}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{border-radius:4px}::ng-deep .request-id-toolTip.mat-icon{width:16px!important;margin-top:-3px!important;vertical-align:middle;height:16px}\n"], dependencies: [{ kind: "directive", type: i7.SbUiResolverDirective, selector: "[sbUiResolverWidget]", inputs: ["sbUiResolverWidget"] }, { kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: HorizontalScrollerV2Component, selector: "sb-uic-horizontal-scroller-v2", inputs: ["loadStatus", "id", "onHover", "sliderConfig", "widgetsLength", "defaultMaxWidgets", "stripConfig", "extraMeta"], outputs: ["loadNext"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i14.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i14.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8$1.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], animations: [fadeAnimation] }); }
10970
10984
  }
10971
10985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripWithTabsPillsComponent, decorators: [{
@@ -10974,7 +10988,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10974
10988
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
10975
10989
  type: Inject,
10976
10990
  args: ['environment']
10977
- }] }, { type: WidgetContentLibService }, { type: i2.LoggerService }, { type: i2.EventService }, { type: i2.ConfigurationsService }, { type: i2.UtilityService }, { type: i1$1.Router }, { type: WidgetUserServiceLib }, { type: i2$1.TranslateService }, { type: MultilingualTranslationsService }, { type: i2.WidgetEnrollService }, { type: i1$5.MatDialog }, { type: i1$6.MatSnackBar }]; }, propDecorators: { widgetData: [{
10991
+ }] }, { type: WidgetContentLibService }, { type: i2.LoggerService }, { type: i2.EventService }, { type: i2.ConfigurationsService }, { type: i2.UtilityService }, { type: i1$1.Router }, { type: WidgetUserServiceLib }, { type: i2$1.TranslateService }, { type: MultilingualTranslationsService }, { type: i2.WidgetEnrollService }, { type: i3$1.MatDialog }, { type: i1$5.MatSnackBar }]; }, propDecorators: { widgetData: [{
10978
10992
  type: Input
10979
10993
  }], emptyResponse: [{
10980
10994
  type: Output
@@ -12958,7 +12972,991 @@ class MdoChannelV2Component {
12958
12972
  && this.route.snapshot.data.formData.data.result.form
12959
12973
  && this.route.snapshot.data.formData.data.result.form.data
12960
12974
  && this.route.snapshot.data.formData.data.result.form.data.sectionList) {
12961
- this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList;
12975
+ this.sectionList = [
12976
+ {
12977
+ "active": true,
12978
+ "enabled": true,
12979
+ "title": "",
12980
+ "key": "sectionTopBanner",
12981
+ "order": 1,
12982
+ "column": [
12983
+ {
12984
+ "active": true,
12985
+ "enabled": true,
12986
+ "key": "topSection",
12987
+ "title": "",
12988
+ "colspan": 12,
12989
+ "background": "",
12990
+ "bannerBackgroudClass": "web-banner-background",
12991
+ "data": {
12992
+ "background": "#1B4CA1",
12993
+ "logo": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745380667949_Maharashtra Logo Strip.png",
12994
+ "logoMobile": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745380774459_Logo 4.jpeg",
12995
+ "bannerBackgroundWebMobile": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1735299398814_ctd_logo.png",
12996
+ "title": "महाराष्ट्र टेक लर्निंग वीक",
12997
+ "titleClass": "main-title",
12998
+ "titleColor": "#fca311",
12999
+ "subTitle": "",
13000
+ "subTitleClass": "sub-title",
13001
+ "subTitleColor": "#FFFFFF",
13002
+ "subTitleColorMobile": "#000",
13003
+ "subTitleTwo": "महाराष्ट्र",
13004
+ "subTitleColorTwo": "#FFFFFF",
13005
+ "subTitleColorTwoMobile": "#000",
13006
+ "description": "महाराष्ट्र नेहमीच प्रगतीच्या अग्रस्थानी राहिला आहे. शिक्षण, आरोग्य, उद्योग, कृषी आणि प्रशासन या क्षेत्रांमध्ये नवोन्मेषाला प्रोत्साहन देत आला आहे. डिजिटल युगातील परिवर्तनाच्या गतीनुसार त्याच्या बरोबरीने शासकीय कामकाज देखील विकसित होणं आवश्यक आहे. टेक-वारी - महाराष्ट्राचा टेक लर्निंग वीक, हे त्या दृष्टीने एक पाउल आहे. ज्यात तंत्रज्ञान, परंपरा आणि परिवर्तन यांच्या त्रिवेणी संगमाच्या माध्यमातून शासकीय कर्मचारी लोकाभिमुख प्रशासनासाठी सज्ज होईल.",
13007
+ "descriptionColor": "#FFFFFF",
13008
+ "sliderData": {
13009
+ "styleData": {
13010
+ "bannerMetaClass": "",
13011
+ "bannerMeta": "visible",
13012
+ "bannerMetaAlign": "right",
13013
+ "navigationArrows": "visible",
13014
+ "borderRadius": "12px",
13015
+ "customHeight": "334px",
13016
+ "arrowsPlacement": "",
13017
+ "imageBorderWidth": 3,
13018
+ "imageBorderColor": "#FFFFFF",
13019
+ "imageBorderStyle": "solid",
13020
+ "responsive": {
13021
+ "bannerMetaClass": "inline-meta",
13022
+ "customHeight": "232px",
13023
+ "bannerMetaAlign": "center",
13024
+ "navigationArrows": "visible",
13025
+ "dots": "hidden",
13026
+ "arrowsPlacement": "middle-inline"
13027
+ }
13028
+ },
13029
+ "sliders": [
13030
+ {
13031
+ "active": true,
13032
+ "banners": {
13033
+ "l": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13034
+ "m": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13035
+ "s": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13036
+ "xl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13037
+ "xs": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg",
13038
+ "xxl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381273661_Maharashtra SLW 1.jpeg"
13039
+ },
13040
+ "redirectUrl": "",
13041
+ "queryParams": {},
13042
+ "title": ""
13043
+ },
13044
+ {
13045
+ "active": true,
13046
+ "banners": {
13047
+ "l": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13048
+ "m": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13049
+ "s": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13050
+ "xl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13051
+ "xs": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg",
13052
+ "xxl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745381330450_Maharashtra SLW 4.jpeg"
13053
+ },
13054
+ "redirectUrl": "",
13055
+ "queryParams": {},
13056
+ "title": ""
13057
+ }
13058
+ ]
13059
+ },
13060
+ "metrics": {
13061
+ "background": "#1B4CA1",
13062
+ "data": [
13063
+ {
13064
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061821837287424110/artifact/do_114061821837287424110_1716531049564_network.svg",
13065
+ "iconColor": "#FFFFFF",
13066
+ "value": "9876",
13067
+ "valueColor": "#FFFFFF",
13068
+ "label": "Total Users",
13069
+ "labelColor": "#FFFFFF",
13070
+ "linebreak": false,
13071
+ "background": "#1B4CA1"
13072
+ },
13073
+ {
13074
+ "icon": "https://portal.karmayogiqa.nic.in/content-store/orgStore/0135071359030722569/1715676445834_badges.svg",
13075
+ "iconColor": "#FFFFFF",
13076
+ "value": "2678",
13077
+ "valueColor": "#FFFFFF",
13078
+ "label": "Certificates",
13079
+ "labelColor": "#FFFFFF",
13080
+ "linebreak": false,
13081
+ "background": "#1B4CA1"
13082
+ },
13083
+ {
13084
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061824512778240111/artifact/do_114061824512778240111_1716531357219_knowledge-resources.svg",
13085
+ "iconColor": "#FFFFFF",
13086
+ "value": "9867",
13087
+ "valueColor": "#FFFFFF",
13088
+ "label": "Enrolments",
13089
+ "labelColor": "#FFFFFF",
13090
+ "linebreak": false,
13091
+ "background": "#1B4CA1"
13092
+ },
13093
+ {
13094
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061847565107200114/artifact/do_114061847565107200114_1716534165064_program1.svg",
13095
+ "iconColor": "#FFFFFF",
13096
+ "value": "12",
13097
+ "valueColor": "#FFFFFF",
13098
+ "label": "Content Published",
13099
+ "labelColor": "#FFFFFF",
13100
+ "linebreak": false,
13101
+ "background": "#1B4CA1"
13102
+ },
13103
+ {
13104
+ "icon": "https://portal.karmayogi.nic.in/content-store/content/do_114061826604261376113/artifact/do_114061826604261376113_1716531614554_percent.svg",
13105
+ "iconColor": "#FFFFFF",
13106
+ "value": "40",
13107
+ "valueColor": "#FFFFFF",
13108
+ "label": "24hr Login",
13109
+ "labelColor": "#FFFFFF",
13110
+ "linebreak": false,
13111
+ "background": "#1B4CA1"
13112
+ }
13113
+ ]
13114
+ }
13115
+ }
13116
+ }
13117
+ ]
13118
+ },
13119
+ {
13120
+ "active": true,
13121
+ "enabled": true,
13122
+ "title": "",
13123
+ "key": "sectionLookerpro",
13124
+ "order": 4,
13125
+ "column": [
13126
+ {
13127
+ "active": true,
13128
+ "enabled": true,
13129
+ "key": "lookerSection",
13130
+ "title": "",
13131
+ "colspan": 12,
13132
+ "background": "banner",
13133
+ "data": {
13134
+ "header": {
13135
+ "headerText": "Performance Dashboard",
13136
+ "description": "View MDO performance based on their learning activities for the week, with real-time insights into progress, engagement, and development across various MDOs."
13137
+ },
13138
+ "disableDynamicHeight": false,
13139
+ "mobileHeight": "500px",
13140
+ "desktopHeight": "280px",
13141
+ "lookerProDesktopUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D",
13142
+ "lookerProMobileUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D"
13143
+ }
13144
+ }
13145
+ ]
13146
+ },
13147
+ {
13148
+ "active": false,
13149
+ "enabled": false,
13150
+ "title": "",
13151
+ "key": "sectionTopLearners",
13152
+ "order": 2,
13153
+ "column": [
13154
+ {
13155
+ "active": true,
13156
+ "enabled": true,
13157
+ "key": "topLearners",
13158
+ "title": "Top 10 Learners",
13159
+ "colspan": 12,
13160
+ "background": "",
13161
+ "data": {
13162
+ "title": "Top 10 Learners",
13163
+ "enableMonth": false,
13164
+ "titleFontColor": "#000000",
13165
+ "kpIcon": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1728035311295_karma-badge.svg",
13166
+ "learners": [],
13167
+ "customClass": "min-h-20",
13168
+ "cardHeight": "64px",
13169
+ "carMinHeight": "100px",
13170
+ "hideEle": [
13171
+ "karma-points"
13172
+ ]
13173
+ }
13174
+ }
13175
+ ]
13176
+ },
13177
+ {
13178
+ "active": true,
13179
+ "enabled": true,
13180
+ "title": "",
13181
+ "key": "sectionMain",
13182
+ "order": 3,
13183
+ "wrapperClass": "",
13184
+ "column": [
13185
+ {
13186
+ "active": true,
13187
+ "enabled": true,
13188
+ "key": "mainContent",
13189
+ "title": "",
13190
+ "colspan": 12,
13191
+ "background": "",
13192
+ "data": {
13193
+ "tabSection": {
13194
+ "colspan": 8,
13195
+ "disable": true,
13196
+ "contentTab": [
13197
+ {
13198
+ "active": false,
13199
+ "enabled": false,
13200
+ "title": "Certifications of the Week",
13201
+ "navigation": true,
13202
+ "key": "sectionCertificationsOfWeeks",
13203
+ "order": 3,
13204
+ "navOrder": 1,
13205
+ "column": [
13206
+ {
13207
+ "active": true,
13208
+ "enabled": true,
13209
+ "key": "contentcertificationsOfWeekStrip",
13210
+ "title": "Recommended Courses",
13211
+ "data": {
13212
+ "sectionImagePosition": "img-left",
13213
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13214
+ "order": 4,
13215
+ "strips": [
13216
+ {
13217
+ "active": true,
13218
+ "key": "certificationsOfWeek",
13219
+ "logo": "school",
13220
+ "title": "Certifications of the Week",
13221
+ "stripTitleLink": {
13222
+ "link": "",
13223
+ "icon": ""
13224
+ },
13225
+ "customeClass": "min-width-763",
13226
+ "sliderConfig": {
13227
+ "showNavs": true,
13228
+ "showDots": true,
13229
+ "maxWidgets": 12,
13230
+ "showNavsSpacing": true,
13231
+ "cerificateCardMargin": true
13232
+ },
13233
+ "loader": true,
13234
+ "stripBackground": "",
13235
+ "titleDescription": "Certifications of the Week",
13236
+ "stripConfig": {
13237
+ "cardSubType": "card-wide-v2"
13238
+ },
13239
+ "loaderConfig": {
13240
+ "cardSubType": "card-wide-v2-skelton"
13241
+ },
13242
+ "viewMoreUrl": {
13243
+ "path": "/app/seeAll",
13244
+ "viewMoreText": "Show all",
13245
+ "queryParams": {
13246
+ "key": "certificationsOfWeek"
13247
+ },
13248
+ "loaderConfig": {
13249
+ "cardSubType": "card-portrait-click-skeleton"
13250
+ },
13251
+ "stripConfig": {
13252
+ "cardSubType": "card-portrait-click"
13253
+ }
13254
+ },
13255
+ "tabs": [],
13256
+ "filters": [],
13257
+ "request": {
13258
+ "trendingSearch": {
13259
+ "request": {
13260
+ "filters": {
13261
+ "contextType": [
13262
+ "certifications"
13263
+ ],
13264
+ "organisation": "<orgID>"
13265
+ },
13266
+ "limit": 5
13267
+ },
13268
+ "responseKey": "certifications"
13269
+ }
13270
+ }
13271
+ }
13272
+ ]
13273
+ }
13274
+ }
13275
+ ]
13276
+ },
13277
+ {
13278
+ "active": false,
13279
+ "enabled": false,
13280
+ "title": "Trending",
13281
+ "navigation": true,
13282
+ "key": "sectionRecommendedProgram",
13283
+ "order": 3,
13284
+ "navOrder": 1,
13285
+ "column": [
13286
+ {
13287
+ "active": true,
13288
+ "enabled": true,
13289
+ "key": "contentRecommendedProgramStrip",
13290
+ "title": "Popular courses",
13291
+ "data": {
13292
+ "sectionImagePosition": "img-left",
13293
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13294
+ "order": 4,
13295
+ "strips": [
13296
+ {
13297
+ "active": true,
13298
+ "customeClass": "width-238",
13299
+ "key": "recommendedProgram",
13300
+ "logo": "school",
13301
+ "disableTranslate": true,
13302
+ "title": "Trending",
13303
+ "stripTitleLink": {
13304
+ "link": "",
13305
+ "icon": ""
13306
+ },
13307
+ "sliderConfig": {
13308
+ "showNavs": true,
13309
+ "showDots": true,
13310
+ "maxWidgets": 12,
13311
+ "showNavsSpacing": true
13312
+ },
13313
+ "stripBackground": "",
13314
+ "titleDescription": "Recently Added",
13315
+ "stripConfig": {
13316
+ "cardSubType": "card-portrait-lib"
13317
+ },
13318
+ "viewMoreUrl": {
13319
+ "path": "/app/seeAll",
13320
+ "viewMoreText": "Show all",
13321
+ "queryParams": {
13322
+ "key": "recentlyAdded"
13323
+ },
13324
+ "loaderConfig": {
13325
+ "cardSubType": "card-portrait-lib-skeleton"
13326
+ },
13327
+ "stripConfig": {
13328
+ "cardSubType": "card-portrait-lib"
13329
+ }
13330
+ },
13331
+ "loader": true,
13332
+ "loaderConfig": {
13333
+ "cardSubType": "card-portrait-lib-skeleton"
13334
+ },
13335
+ "tabsType": "pills-tab",
13336
+ "tabs": [
13337
+ {
13338
+ "label": "Courses",
13339
+ "value": "course",
13340
+ "computeDataOnClick": false,
13341
+ "computeDataOnClickKey": "",
13342
+ "requestRequired": true,
13343
+ "showTabDataCount": false,
13344
+ "maxWidgets": 12,
13345
+ "nodataMsg": "nocontent",
13346
+ "request": {
13347
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13348
+ "playlistRead": {
13349
+ "type": "MDO_RECOMMENDED_COURSES"
13350
+ }
13351
+ }
13352
+ },
13353
+ {
13354
+ "label": "Programs",
13355
+ "value": "program",
13356
+ "computeDataOnClick": false,
13357
+ "computeDataOnClickKey": "",
13358
+ "requestRequired": true,
13359
+ "showTabDataCount": false,
13360
+ "maxWidgets": 12,
13361
+ "nodataMsg": "nocontent",
13362
+ "request": {
13363
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13364
+ "playlistRead": {
13365
+ "type": "MDO_RECOMMENDED_PROGRAMS"
13366
+ }
13367
+ }
13368
+ }
13369
+ ],
13370
+ "filters": [],
13371
+ "request": {
13372
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13373
+ "playlistRead": {
13374
+ "type": "MDO_RECOMMENDED_PROGRAMS"
13375
+ }
13376
+ }
13377
+ }
13378
+ ]
13379
+ }
13380
+ }
13381
+ ]
13382
+ },
13383
+ {
13384
+ "active": false,
13385
+ "enabled": false,
13386
+ "title": "Featured",
13387
+ "navigation": true,
13388
+ "key": "sectionFeatureCourses",
13389
+ "order": 3,
13390
+ "navOrder": 1,
13391
+ "column": [
13392
+ {
13393
+ "active": true,
13394
+ "enabled": true,
13395
+ "key": "contentFeaturedStrip",
13396
+ "title": "Featured",
13397
+ "data": {
13398
+ "sectionImagePosition": "img-left",
13399
+ "sectionImage": "assets/icons/microsite/left_arrow.svg",
13400
+ "order": 4,
13401
+ "strips": [
13402
+ {
13403
+ "active": true,
13404
+ "customeClass": "width-238",
13405
+ "key": "featuredCourses",
13406
+ "logo": "school",
13407
+ "disableTranslate": true,
13408
+ "title": "Featured",
13409
+ "stripTitleLink": {
13410
+ "link": "",
13411
+ "icon": ""
13412
+ },
13413
+ "sliderConfig": {
13414
+ "showNavs": true,
13415
+ "showDots": true,
13416
+ "maxWidgets": 12,
13417
+ "showNavsSpacing": true
13418
+ },
13419
+ "stripBackground": "",
13420
+ "titleDescription": "Recently Added",
13421
+ "stripConfig": {
13422
+ "cardSubType": "card-portrait-lib"
13423
+ },
13424
+ "viewMoreUrl": {
13425
+ "path": "/app/seeAll",
13426
+ "viewMoreText": "Show all",
13427
+ "queryParams": {
13428
+ "key": "recentlyAdded"
13429
+ },
13430
+ "loaderConfig": {
13431
+ "cardSubType": "card-portrait-lib-skeleton"
13432
+ },
13433
+ "stripConfig": {
13434
+ "cardSubType": "card-portrait-lib"
13435
+ }
13436
+ },
13437
+ "loader": true,
13438
+ "loaderConfig": {
13439
+ "cardSubType": "card-portrait-lib-skeleton"
13440
+ },
13441
+ "tabsType": "pills-tab",
13442
+ "tabs": [
13443
+ {
13444
+ "label": "Courses",
13445
+ "value": "course",
13446
+ "computeDataOnClick": false,
13447
+ "computeDataOnClickKey": "",
13448
+ "requestRequired": true,
13449
+ "showTabDataCount": false,
13450
+ "maxWidgets": 12,
13451
+ "nodataMsg": "nocontent",
13452
+ "request": {
13453
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13454
+ "playlistRead": {
13455
+ "type": "MDO_FEATURED_COURSES"
13456
+ }
13457
+ }
13458
+ },
13459
+ {
13460
+ "label": "Programs",
13461
+ "value": "program",
13462
+ "computeDataOnClick": false,
13463
+ "computeDataOnClickKey": "",
13464
+ "requestRequired": true,
13465
+ "showTabDataCount": false,
13466
+ "maxWidgets": 12,
13467
+ "nodataMsg": "nocontent",
13468
+ "request": {
13469
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13470
+ "playlistRead": {
13471
+ "type": "MDO_FEATURED_PROGRAMS"
13472
+ }
13473
+ }
13474
+ }
13475
+ ],
13476
+ "filters": [],
13477
+ "request": {
13478
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13479
+ "playlistRead": {
13480
+ "type": "MDO_FEATURED_COURSES"
13481
+ }
13482
+ }
13483
+ }
13484
+ ]
13485
+ }
13486
+ }
13487
+ ]
13488
+ }
13489
+ ],
13490
+ "coreAreasTab": [
13491
+ {
13492
+ "active": false,
13493
+ "enabled": false,
13494
+ "title": "Core Expertise",
13495
+ "navigation": true,
13496
+ "key": "sectionCompetency",
13497
+ "order": 5,
13498
+ "navOrder": 3,
13499
+ "column": [
13500
+ {
13501
+ "active": true,
13502
+ "enabled": true,
13503
+ "key": "competency",
13504
+ "title": "",
13505
+ "colspan": 12,
13506
+ "background": "",
13507
+ "data": []
13508
+ }
13509
+ ]
13510
+ }
13511
+ ],
13512
+ "tabs": [
13513
+ {
13514
+ "name": "content"
13515
+ },
13516
+ {
13517
+ "name": "Core Areas"
13518
+ }
13519
+ ]
13520
+ },
13521
+ "announcementSection": {
13522
+ "disable": true,
13523
+ "colspan": 4,
13524
+ "data": {
13525
+ "title": "Key Announcements",
13526
+ "logoUrl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1728035426855_key-announcements1.svg",
13527
+ "mobileIcon": "https://portal.karmayogi.nic.in/content-store/content/do_114061893940887552115/artifact/do_114061893940887552115_1716539807520_campaign_black.svg",
13528
+ "header": {
13529
+ "background": "#1B4CA1",
13530
+ "color": "#FFFFFF"
13531
+ },
13532
+ "panelborder": "#1B4CA1",
13533
+ "panelBackground": "#FFFFFF",
13534
+ "listItem": {
13535
+ "border": "#F3962F",
13536
+ "background": "#FCEEDB"
13537
+ },
13538
+ "ViewMoreColor": "#1B4CA1",
13539
+ "pageSize": 15,
13540
+ "list": [
13541
+ {
13542
+ "value": "Hon. Chief Minister of Gujarat will launch MDO Channel of SPIPA on IGoT Karmayogi Portal on occasion of Good Governance Day.",
13543
+ "expanded": false
13544
+ },
13545
+ {
13546
+ "value": "Hon. Chief Minister of Gujarat will launch MDO Channel of SPIPA on IGoT Karmayogi Portal on occasion of Good Governance Day.",
13547
+ "expanded": false
13548
+ }
13549
+ ]
13550
+ }
13551
+ },
13552
+ "stateLearningWeekSection": {
13553
+ "lookerSection": {
13554
+ "active": true,
13555
+ "enabled": true,
13556
+ "key": "lookerSection",
13557
+ "title": "",
13558
+ "colspan": 12,
13559
+ "background": "banner",
13560
+ "data": {
13561
+ "header": {
13562
+ "headerText": "Performance Dashboard",
13563
+ "description": "View MDO performance based on their learning activities for the week, with real-time insights into progress, engagement, and development across various MDOs."
13564
+ },
13565
+ "lookerProDesktopUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D",
13566
+ "lookerProMobileUrl": "https://lookerstudio.google.com/embed/reporting/17028145-cdd5-459d-bb13-b3de2ef62aee/page/fyd9D"
13567
+ }
13568
+ },
13569
+ "keyHighlights": {
13570
+ "enabled": true,
13571
+ "backgroundColor": "#FFFFFF",
13572
+ "titleMaxLength": 200,
13573
+ "content": [
13574
+ {
13575
+ "title": "Enroll in the courses and contribute to your continuous learning journey and growth"
13576
+ },
13577
+ {
13578
+ "title": "Be a learning champion - complete courses and inspire your peers on iGOT!"
13579
+ }
13580
+ ],
13581
+ "sliderData": {
13582
+ "styleData": {
13583
+ "borderRadius": "0",
13584
+ "customHeight": "100px",
13585
+ "bannerMeta": "visible",
13586
+ "dots": "hidden",
13587
+ "arrowsPlacement": "middle-inline",
13588
+ "responsive": {
13589
+ "customHeight": "80px",
13590
+ "bannerMetaAlign": "left",
13591
+ "navigationArrows": "visible",
13592
+ "dots": "hidden",
13593
+ "arrowsPlacement": "middle-inline"
13594
+ }
13595
+ }
13596
+ }
13597
+ },
13598
+ "speakerOftheDay": {
13599
+ "enabled": false,
13600
+ "data": {
13601
+ "title": "Speaker of the day",
13602
+ "infoText": "Join insightful webinars and masterclasses hosted by prominent speakers and thought leaders.",
13603
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13604
+ "sliderData": {
13605
+ "styleData": {
13606
+ "borderRadius": "12px",
13607
+ "customHeight": "",
13608
+ "bannerMeta": "visible",
13609
+ "bannerMetaClass": "cbp-card-1",
13610
+ "responsive": {
13611
+ "bannerMetaClass": "cbp-card-1"
13612
+ }
13613
+ }
13614
+ },
13615
+ "list": [
13616
+ {
13617
+ "title": "Ms Arushi Malhotra",
13618
+ "description": "Beyond the Desk: Using Behavioral Science to Improve Workplace Well-Being",
13619
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742617698083_IMG_9084.jpg",
13620
+ "identifier": "do_1142743067745812481229"
13621
+ },
13622
+ {
13623
+ "title": "Prof Bimlesh Kumar Singh",
13624
+ "description": "Maintenance of Transformers",
13625
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742617868268_Bimlesh.jpg",
13626
+ "identifier": "do_1142743211854888961161"
13627
+ },
13628
+ {
13629
+ "title": "Prof. Dr. Sanjukkta Bhaduril",
13630
+ "description": "Resilient tourism infrastructure for Rajasthan Islands",
13631
+ "profileImage": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1742618016728_Dr. Sanjukkta.jpeg",
13632
+ "identifier": "do_1142743114401218561137"
13633
+ }
13634
+ ]
13635
+ }
13636
+ },
13637
+ "weekHighlights": {
13638
+ "enabled": true,
13639
+ "data": {
13640
+ "title": "Highlights of the week",
13641
+ "sliderData": {
13642
+ "styleData": {
13643
+ "borderRadius": "12px",
13644
+ "customHeight": "",
13645
+ "bannerMetaClass": "cbp-card",
13646
+ "responsive": {
13647
+ "bannerMetaClass": "cbp-card"
13648
+ }
13649
+ }
13650
+ },
13651
+ "list": [
13652
+ {
13653
+ "title": "Get ready for Maharashtra Tech Learning Week",
13654
+ "description": "Tech-Wari, Maharashtra’s Tech Learning Week, blends technology, tradition & transformation—empowering government employees for citizen-first governance through future-ready digital learning.",
13655
+ "videoUrl": "https://portal.igotkarmayogi.gov.in/content-store/orgStore/0133783095823810560/1745394867601_IMG_8833.MP4"
13656
+ }
13657
+ ]
13658
+ }
13659
+ },
13660
+ "myprogress": {
13661
+ "enabled": true,
13662
+ "data": {
13663
+ "title": "Your week's progress",
13664
+ "infoText": "During Rajya Karmayogi Saptah, stay informed about your learning journey. Monitor your Learning Hours, and earn Certificates.",
13665
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13666
+ "profleDetails": {},
13667
+ "hideEle": [
13668
+ "karma-points"
13669
+ ],
13670
+ "insights": {
13671
+ "data": {
13672
+ "sliderData": {
13673
+ "styleData": {
13674
+ "borderRadius": "12px",
13675
+ "customHeight": "83px",
13676
+ "bannerMeta": "visible",
13677
+ "bannerMetaClass": "cbp-card",
13678
+ "responsive": {
13679
+ "bannerMetaClass": "cbp-card",
13680
+ "customHeight": "83px"
13681
+ }
13682
+ }
13683
+ }
13684
+ }
13685
+ }
13686
+ }
13687
+ },
13688
+ "mdoLeaderboard": {
13689
+ "enabled": true,
13690
+ "data": {
13691
+ "title": "Leaderboard",
13692
+ "infoText": "Celebrate top performers! The leaderboard showcases the Departments and Organizations based on total learning hours earned during State Learning Week.",
13693
+ "infoIcon": "https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726652230008_info_icon.svg",
13694
+ "currentTab": "S",
13695
+ "customClass": "",
13696
+ "cardHeight": "",
13697
+ "carMinHeight": "",
13698
+ "searchHint": "Search Departments",
13699
+ "hideEle": [
13700
+ "karma-points"
13701
+ ],
13702
+ "options": [
13703
+ {
13704
+ "label": "1 - 500",
13705
+ "value": "XS"
13706
+ },
13707
+ {
13708
+ "label": "501 - 1000",
13709
+ "value": "S"
13710
+ },
13711
+ {
13712
+ "label": "1001 - 5000",
13713
+ "value": "M"
13714
+ },
13715
+ {
13716
+ "label": "5001 and 20000",
13717
+ "value": "L"
13718
+ },
13719
+ {
13720
+ "label": "20001 and adove",
13721
+ "value": "XL"
13722
+ }
13723
+ ]
13724
+ }
13725
+ },
13726
+ "mandatoryCourse": {
13727
+ "enabled": true,
13728
+ "navigation": true,
13729
+ "key": "sectionMandatoryCourses",
13730
+ "order": 3,
13731
+ "navOrder": 1,
13732
+ "column": [
13733
+ {
13734
+ "active": true,
13735
+ "enabled": true,
13736
+ "key": "contentMandatoryCoursesStrip",
13737
+ "data": {
13738
+ "order": 4,
13739
+ "strips": [
13740
+ {
13741
+ "active": true,
13742
+ "title": "Recommended Courses for Maharashtra Tech Learning Week",
13743
+ "titleClass": "mat-title",
13744
+ "customeClass": "width-238",
13745
+ "key": "Recommended Courses for Maharashtra Tech Learning Week",
13746
+ "logo": "school",
13747
+ "disableTranslate": true,
13748
+ "stripTitleLink": {
13749
+ "link": "",
13750
+ "icon": ""
13751
+ },
13752
+ "sliderConfig": {
13753
+ "showNavs": true,
13754
+ "showDots": true,
13755
+ "maxWidgets": 18,
13756
+ "showNavsSpacing": true
13757
+ },
13758
+ "stripBackground": "",
13759
+ "titleDescription": "Recommended Courses for Rajasthan state learning week",
13760
+ "stripConfig": {
13761
+ "cardSubType": "card-portrait-lib"
13762
+ },
13763
+ "loader": true,
13764
+ "loaderConfig": {
13765
+ "cardSubType": "card-portrait-lib-skeleton"
13766
+ },
13767
+ "filters": [],
13768
+ "request": {
13769
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13770
+ "playlistRead": {
13771
+ "type": "Mdo_RECOMMENDED_COURSES_MAHARASHTRA"
13772
+ }
13773
+ }
13774
+ }
13775
+ ]
13776
+ }
13777
+ }
13778
+ ]
13779
+ },
13780
+ "exploreLearningContent": {
13781
+ "enabled": true,
13782
+ "strips": [
13783
+ {
13784
+ "active": true,
13785
+ "key": "featuredContents",
13786
+ "logo": "school",
13787
+ "title": "Explore Learning Contents",
13788
+ "titleClass": "mat-title",
13789
+ "type": "learningContent",
13790
+ "disableTranslate": true,
13791
+ "stripTitleLink": {
13792
+ "link": "",
13793
+ "icon": ""
13794
+ },
13795
+ "sliderConfig": {
13796
+ "showNavs": true,
13797
+ "showDots": true,
13798
+ "maxWidgets": 100,
13799
+ "showNavsSpacing": true
13800
+ },
13801
+ "stripBackground": "",
13802
+ "titleDescription": "For you",
13803
+ "stripConfig": {
13804
+ "cardSubType": "card-portrait-lib",
13805
+ "hideShowAll": true
13806
+ },
13807
+ "viewMoreUrl": {},
13808
+ "hideViewMoreUrl": true,
13809
+ "loader": true,
13810
+ "loaderConfig": {
13811
+ "cardSubType": "card-portrait-lib-skeleton"
13812
+ },
13813
+ "tabs": [
13814
+ {
13815
+ "label": "Group A",
13816
+ "value": "Group A",
13817
+ "computeDataOnClick": false,
13818
+ "disableTranslate": true,
13819
+ "computeDataOnClickKey": "",
13820
+ "requestRequired": true,
13821
+ "showTabDataCount": false,
13822
+ "maxWidgets": 100,
13823
+ "nodataMsg": "no Data Course",
13824
+ "contentShuffel": true,
13825
+ "request": {
13826
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13827
+ "playlistRead": {
13828
+ "type": "MDO_GROUP_A_MAHARASHTRA"
13829
+ }
13830
+ }
13831
+ },
13832
+ {
13833
+ "label": "Group B",
13834
+ "value": "Group B",
13835
+ "computeDataOnClick": false,
13836
+ "disableTranslate": true,
13837
+ "computeDataOnClickKey": "",
13838
+ "requestRequired": true,
13839
+ "showTabDataCount": false,
13840
+ "maxWidgets": 100,
13841
+ "nodataMsg": "no Data Course",
13842
+ "contentShuffel": true,
13843
+ "request": {
13844
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13845
+ "playlistRead": {
13846
+ "type": "MDO_GROUP_B_MAHARASHTRA"
13847
+ }
13848
+ }
13849
+ },
13850
+ {
13851
+ "label": "Group C",
13852
+ "value": "Group C",
13853
+ "computeDataOnClick": false,
13854
+ "disableTranslate": true,
13855
+ "computeDataOnClickKey": "",
13856
+ "requestRequired": true,
13857
+ "showTabDataCount": false,
13858
+ "maxWidgets": 100,
13859
+ "nodataMsg": "no Data Course",
13860
+ "contentShuffel": true,
13861
+ "request": {
13862
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13863
+ "playlistRead": {
13864
+ "type": "MDO_GROUP_C_MAHARASHTRA"
13865
+ }
13866
+ }
13867
+ }
13868
+ ],
13869
+ "filters": [],
13870
+ "stripRequestType": "post",
13871
+ "stripRequestFor": "search",
13872
+ "onTabClickRequest": false,
13873
+ "request": {
13874
+ "apiUrl": "/apis/proxies/v8/playList/read/<playlistKey>/<orgID>",
13875
+ "playlistRead": {
13876
+ "type": "ORG_FEATURED_COURSES"
13877
+ }
13878
+ }
13879
+ }
13880
+ ]
13881
+ },
13882
+ "events": {
13883
+ "active": false,
13884
+ "enabled": false,
13885
+ "title": "Explore events",
13886
+ "navigation": true,
13887
+ "key": "sectionExploreEvents",
13888
+ "order": 3,
13889
+ "navOrder": 1,
13890
+ "column": [
13891
+ {
13892
+ "maxContent": 3,
13893
+ "active": true,
13894
+ "enabled": true,
13895
+ "key": "exploreEventsContent",
13896
+ "title": "Explore events",
13897
+ "defaultImage": "https://portal.dev.karmayogibharat.net/content-store/orgStore/01390354700029132834/1727084157602_Image.svg",
13898
+ "request": {
13899
+ "locale": [
13900
+ "en"
13901
+ ],
13902
+ "query": "",
13903
+ "request": {
13904
+ "query": "",
13905
+ "filters": {
13906
+ "resourceType": [
13907
+ "Karmayogi Saptah",
13908
+ "Karmayogi Talks",
13909
+ "Rajya Karmayogi Saptah"
13910
+ ],
13911
+ "status": [
13912
+ "Live"
13913
+ ],
13914
+ "contentType": "Event",
13915
+ "category": "Event",
13916
+ "startDate": "<startDateObj>"
13917
+ },
13918
+ "sort_by": {
13919
+ "startDate": "desc"
13920
+ }
13921
+ }
13922
+ }
13923
+ }
13924
+ ]
13925
+ }
13926
+ }
13927
+ }
13928
+ }
13929
+ ]
13930
+ },
13931
+ {
13932
+ "active": true,
13933
+ "enabled": true,
13934
+ "title": "",
13935
+ "key": "sectionSupport",
13936
+ "order": 5,
13937
+ "customClass": "contact-us-wrapper mt-20",
13938
+ "column": [
13939
+ {
13940
+ "active": true,
13941
+ "enabled": true,
13942
+ "key": "supportSection",
13943
+ "title": "",
13944
+ "colspan": 12,
13945
+ "background": "banner",
13946
+ "data": {
13947
+ "title": "Maharashtra Tech Learning Week Dedicated Technical Support",
13948
+ "thumbnail": "https://dev.karmayogibharat.net/assets/videoconference/thumbnail.png",
13949
+ "text": "For any support required",
13950
+ "date": "April 01, 2025 - May 09, 2025 ",
13951
+ "time": "9:00am – 5:00pm · Time zone: Asia/Kolkata",
13952
+ "technicalSupport": "For any technical issues please contact",
13953
+ "plsContact": "igot-mh[at]mah[dot]gov[dot]in",
13954
+ "plsContacts": "igot-mh@mah.gov.in"
13955
+ }
13956
+ }
13957
+ ]
13958
+ }
13959
+ ];
12962
13960
  }
12963
13961
  this.langtranslations.languageSelectedObservable.subscribe(() => {
12964
13962
  if (localStorage.getItem('websiteLanguage')) {
@@ -13087,13 +14085,13 @@ class MdoChannelV2Component {
13087
14085
  this.router.navigate([`/app/learn/mdo-channels/${this.channnelName}/${this.orgId}/all-content`], { queryParams: { tabSelected, key: columnData.sectionKey } });
13088
14086
  }
13089
14087
  }
13090
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV2Component, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2.EventService }, { token: i2$1.TranslateService }, { token: i2.MultilingualTranslationsService }, { token: i2.ConfigurationsService }, { token: i4$2.DomSanitizer }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
13091
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MdoChannelV2Component, selector: "sb-uic-mdo-channel-v2", inputs: { sectionList: "sectionList", slwConfiguration: "slwConfiguration" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList | orderBy: 'order'\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 {{section?.customClass}}\"\n [ngClass]=\"{'container': section.wrapperClass}\" >\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerproSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'supportSection'\" [ngTemplateOutlet]=\"supportSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'mobile'\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n\n </div>\n </div>\n\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" sub-title txt-ellipsis-2 break-words \" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwoMobile\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div class=\"hidden md:block\">\n <div class=\"metrics\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleFlexeRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <ng-container *ngIf=\"isMobile\">\n <ng-container>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements [layoutType]=\"'mobile'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [fetchDataFromApi]=\"false\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements [layoutType]=\"'web'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\" >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <ng-container >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div>\n <div\n *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled \n && data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfiguration\"></sb-uic-events>\n </div>\n </ng-container>\n <!-- Tabs Section -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive\n alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' |\n translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n <!-- <div class=\"col-span-12 md:col-span-8\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.events.enabled && data?.stateLearningWeekSection?.events.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events.column[0]\"\n [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div> -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <ng-container >\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n \n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n<!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in\n this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo [dynamicColor]=\"'#999999'\" [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"true\" (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" [channnelName]=\"channnelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners [objectData]=\"data\" [channnelName]=\"channnelName\" [channelId]=\"orgId\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>\n\n<ng-template #lookerproSection let-data=\"data\">\n <div class=\"flex items-center justify-center flex-wrap\">\n <div class=\" w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerProUrl\">\n <iframe class=\"w-full \" height=\"{{iframeHeight}}\"\n [src]=\"lookerProUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n</ng-template>\n<ng-template #supportSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference [videoConf]=\"data\"></sb-uic-video-conference>\n </div>\n </div>\n</ng-template>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AnnouncementsComponent, selector: "sb-uic-announcements", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: TopLearnersComponent, selector: "sb-uic-top-learners", inputs: ["objectData", "channelId", "channnelName", "slwConfig"] }, { kind: "component", type: CbpPlanComponent, selector: "sb-uic-cbp-plan", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: CompetencyPassbookMdoComponent, selector: "sb-uic-competency-passbook-mdo", inputs: ["objectData", "providerId", "cardDisplayCount", "dynamicClass", "dynamicColor", "dynamicAlignPills"], outputs: ["emptyResponse", "temeletryResponse"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "component", type: HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: VideoConferenceComponent, selector: "sb-uic-video-conference", inputs: ["videoConf"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }, { kind: "pipe", type: OrderByPipe, name: "orderBy" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
14088
+ 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 }); }
14089
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MdoChannelV2Component, selector: "sb-uic-mdo-channel-v2", inputs: { sectionList: "sectionList", slwConfiguration: "slwConfiguration" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList | orderBy: 'order'\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 {{section?.customClass}}\"\n [ngClass]=\"{'container': section.wrapperClass}\" >\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerproSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'supportSection'\" [ngTemplateOutlet]=\"supportSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'mobile'\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n\n </div>\n </div>\n\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" sub-title txt-ellipsis-2 break-words \" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwoMobile\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div class=\"hidden md:block\">\n <div class=\"metrics\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleFlexeRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <ng-container *ngIf=\"isMobile\">\n <ng-container>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements [layoutType]=\"'mobile'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [fetchDataFromApi]=\"false\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements [layoutType]=\"'web'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\" >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <ng-container >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div>\n <div\n *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled \n && data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfiguration\"></sb-uic-events>\n </div>\n </ng-container>\n <!-- Tabs Section -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive\n alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' |\n translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n <!-- <div class=\"col-span-12 md:col-span-8\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.events.enabled && data?.stateLearningWeekSection?.events.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events.column[0]\"\n [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div> -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <ng-container >\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n \n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n<!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in\n this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo [dynamicColor]=\"'#999999'\" [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"true\" (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" [channnelName]=\"channnelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners [objectData]=\"data\" [channnelName]=\"channnelName\" [channelId]=\"orgId\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>\n\n<ng-template #lookerproSection let-data=\"data\">\n <div class=\"flex items-center justify-center flex-wrap\">\n <div class=\" w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerProUrl\">\n <iframe class=\"w-full \" height=\"{{iframeHeight}}\"\n [src]=\"lookerProUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n</ng-template>\n<ng-template #supportSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference [videoConf]=\"data\"></sb-uic-video-conference>\n </div>\n </div>\n</ng-template>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AnnouncementsComponent, selector: "sb-uic-announcements", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: TopLearnersComponent$1, selector: "sb-uic-top-learners", inputs: ["objectData", "channelId", "channnelName", "slwConfig"] }, { kind: "component", type: CbpPlanComponent, selector: "sb-uic-cbp-plan", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: CompetencyPassbookMdoComponent, selector: "sb-uic-competency-passbook-mdo", inputs: ["objectData", "providerId", "cardDisplayCount", "dynamicClass", "dynamicColor", "dynamicAlignPills"], outputs: ["emptyResponse", "temeletryResponse"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "component", type: HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: VideoConferenceComponent, selector: "sb-uic-video-conference", inputs: ["videoConf"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }, { kind: "pipe", type: OrderByPipe, name: "orderBy" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
13092
14090
  }
13093
14091
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV2Component, decorators: [{
13094
14092
  type: Component,
13095
14093
  args: [{ selector: 'sb-uic-mdo-channel-v2', template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList | orderBy: 'order'\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 {{section?.customClass}}\"\n [ngClass]=\"{'container': section.wrapperClass}\" >\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerproSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'supportSection'\" [ngTemplateOutlet]=\"supportSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'mobile'\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n\n </div>\n </div>\n\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData && data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\" sub-title txt-ellipsis-2 break-words \" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n\n <h4 *ngIf=\"data?.subTitleTwo\" class=\" sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwoMobile\">\n {{data?.subTitleTwo}}</h4>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div class=\"hidden md:block\">\n <div class=\"metrics\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleFlexeRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points [providerId]=\"orgId\" [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow'\" [pageLayout]=\"'mdo'\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <ng-container *ngIf=\"isMobile\">\n <ng-container>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"block md:hidden \">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements [layoutType]=\"'mobile'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [fetchDataFromApi]=\"false\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements [layoutType]=\"'web'\" (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\" >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" [providerId]=\"providerId\"\n [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <ng-container >\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\">\n </sb-uic-highlights-of-week>\n </div>\n\n <div>\n <div\n *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled \n && data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfiguration\"></sb-uic-events>\n </div>\n </ng-container>\n <!-- Tabs Section -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive\n alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' |\n translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n <!-- <div class=\"col-span-12 md:col-span-8\">\n <div\n *ngIf=\"data?.stateLearningWeekSection?.events.enabled && data?.stateLearningWeekSection?.events.column[0]\">\n <sb-uic-events [object]=\"data?.stateLearningWeekSection?.events.column[0]\"\n [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div> -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <ng-container >\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers [layoutType]=\"'web'\" [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" [slwConfig]=\"slwConfiguration\"\n (tabClicked)=\"raiseTabClick($event)\" [orgId]=\"orgId\"></sb-uic-mdo-leaderboard>\n </div>\n </div>\n </ng-container>\n \n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements [layoutType]=\"'web'\" [mobileHeight]=\"false\" [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n<!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\"\n [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\"\n [ngTemplateOutlet]=\"contentStripTemplate\" [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\"\n *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in\n this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo [dynamicColor]=\"'#999999'\" [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\" (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\" [objectData]=\"competency\"\n [providerId]=\"orgId\">\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs [emitViewAll]=\"true\" (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\" [channnelName]=\"channnelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners [objectData]=\"data\" [channnelName]=\"channnelName\" [channelId]=\"orgId\" [slwConfig]=\"slwConfiguration\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>\n\n<ng-template #lookerproSection let-data=\"data\">\n <div class=\"flex items-center justify-center flex-wrap\">\n <div class=\" w-full flex flex-col items-center justify-center\">\n <h2 *ngIf=\"data?.header?.headerText\" class=\"pt-4\">{{data?.header?.headerText}}</h2>\n <p *ngIf=\"data?.header?.description\">{{data?.header?.description}}</p>\n </div>\n <div class=\"container mt-4 mb-4\" *ngIf=\"lookerProUrl\">\n <iframe class=\"w-full \" height=\"{{iframeHeight}}\"\n [src]=\"lookerProUrl\"\n frameborder=\"0\" style=\"border:0\" allowfullscreen\n sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n</ng-template>\n<ng-template #supportSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference [videoConf]=\"data\"></sb-uic-video-conference>\n </div>\n </div>\n</ng-template>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}\n"] }]
13096
- }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2.EventService }, { type: i2$1.TranslateService }, { type: i2.MultilingualTranslationsService }, { type: i2.ConfigurationsService }, { type: i4$2.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
14094
+ }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2.EventService }, { type: i2$1.TranslateService }, { type: i2.MultilingualTranslationsService }, { type: i2.ConfigurationsService }, { type: i1$6.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
13097
14095
  type: Input
13098
14096
  }], slwConfiguration: [{
13099
14097
  type: Input
@@ -13214,7 +14212,7 @@ class SafeUrlPipe {
13214
14212
  transform(url) {
13215
14213
  return this.sanitizer.bypassSecurityTrustResourceUrl(url);
13216
14214
  }
13217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i4$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
14215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
13218
14216
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, name: "safeUrl" }); }
13219
14217
  }
13220
14218
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipe, decorators: [{
@@ -13222,7 +14220,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13222
14220
  args: [{
13223
14221
  name: 'safeUrl'
13224
14222
  }]
13225
- }], ctorParameters: function () { return [{ type: i4$2.DomSanitizer }]; } });
14223
+ }], ctorParameters: function () { return [{ type: i1$6.DomSanitizer }]; } });
13226
14224
 
13227
14225
  class SafeUrlPipeModule {
13228
14226
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeUrlPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -13260,9 +14258,994 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13260
14258
  }]
13261
14259
  }] });
13262
14260
 
14261
+ class EditorDialogComponent {
14262
+ constructor(fb, http, dialogRef, data) {
14263
+ this.fb = fb;
14264
+ this.http = http;
14265
+ this.dialogRef = dialogRef;
14266
+ this.data = data;
14267
+ this.uploadStatus = '';
14268
+ this.isUploading = false;
14269
+ // Slider specific properties
14270
+ this.sliderData = {
14271
+ sliders: [],
14272
+ styleData: {
14273
+ dots: true,
14274
+ infinite: true,
14275
+ speed: 500,
14276
+ slidesToShow: 1,
14277
+ slidesToScroll: 1
14278
+ }
14279
+ };
14280
+ this.isEditingSlider = false;
14281
+ this.editingIndex = -1;
14282
+ this.formType = data.fieldType || 'text';
14283
+ }
14284
+ ngOnInit() {
14285
+ this.initForm();
14286
+ this.initSliderItemForm();
14287
+ }
14288
+ initForm() {
14289
+ // Create form based on field type
14290
+ switch (this.formType) {
14291
+ case 'textarea':
14292
+ this.editorForm = this.fb.group({
14293
+ value: [this.data.value, [Validators.required]]
14294
+ });
14295
+ break;
14296
+ case 'color':
14297
+ this.editorForm = this.fb.group({
14298
+ value: [this.data.value, [Validators.required, Validators.pattern(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/)]]
14299
+ });
14300
+ break;
14301
+ case 'image':
14302
+ this.editorForm = this.fb.group({
14303
+ value: [this.data.value, [Validators.required]]
14304
+ });
14305
+ break;
14306
+ case 'boolean':
14307
+ this.editorForm = this.fb.group({
14308
+ value: [!!this.data.value]
14309
+ });
14310
+ break;
14311
+ case 'metrics':
14312
+ this.editorForm = this.fb.group({
14313
+ value: [this.data.value]
14314
+ });
14315
+ break;
14316
+ case 'slider':
14317
+ // Initialize slider data from the input or use defaults
14318
+ if (this.data.value && this.data.value.sliders && this.data.value.styleData) {
14319
+ this.sliderData = this.data.value;
14320
+ }
14321
+ else if (this.data.sliderData) {
14322
+ this.sliderData = this.data.sliderData;
14323
+ }
14324
+ this.editorForm = this.fb.group({
14325
+ value: [this.sliderData]
14326
+ });
14327
+ break;
14328
+ default:
14329
+ this.editorForm = this.fb.group({
14330
+ value: [this.data.value, [Validators.required]]
14331
+ });
14332
+ }
14333
+ }
14334
+ initSliderItemForm(item) {
14335
+ this.sliderItemForm = this.fb.group({
14336
+ active: [item?.active !== undefined ? item.active : true],
14337
+ banners: this.fb.group({
14338
+ l: [item?.banners?.l || '', [Validators.required]],
14339
+ m: [item?.banners?.m || ''],
14340
+ s: [item?.banners?.s || ''],
14341
+ xl: [item?.banners?.xl || ''],
14342
+ xs: [item?.banners?.xs || ''],
14343
+ xxl: [item?.banners?.xxl || '']
14344
+ }),
14345
+ redirectUrl: [item?.redirectUrl || ''],
14346
+ queryParams: [item?.queryParams || {}],
14347
+ title: [item?.title || '']
14348
+ });
14349
+ }
14350
+ // General image upload methods
14351
+ onFileSelected(event) {
14352
+ const file = event.target.files[0];
14353
+ if (file) {
14354
+ this.uploadImage(file);
14355
+ }
14356
+ }
14357
+ uploadImage(file) {
14358
+ this.isUploading = true;
14359
+ this.uploadStatus = 'Uploading...';
14360
+ const formData = new FormData();
14361
+ formData.append('file', file);
14362
+ // Headers as specified in the curl command
14363
+ const headers = new HttpHeaders({
14364
+ 'Accept': 'application/json, text/plain, */*',
14365
+ 'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
14366
+ 'Cache-Control': 'no-cache',
14367
+ 'Pragma': 'no-cache',
14368
+ 'locale': 'en',
14369
+ 'org': 'dopt',
14370
+ 'rootOrg': 'igot'
14371
+ });
14372
+ this.http.post('http://localhost:3000/apis/proxies/v8/storage/orgStoreUpload', formData, { headers })
14373
+ .subscribe({
14374
+ next: (response) => {
14375
+ this.isUploading = false;
14376
+ if (response.responseCode === 'OK' && response.result && response.result.url) {
14377
+ // Transform the URL
14378
+ const transformedUrl = this.transformImageUrl(response.result.url);
14379
+ // Update the form with the new URL
14380
+ this.editorForm.get('value')?.setValue(transformedUrl);
14381
+ this.uploadStatus = 'Upload successful!';
14382
+ // Clear status after 3 seconds
14383
+ setTimeout(() => {
14384
+ this.uploadStatus = '';
14385
+ }, 3000);
14386
+ }
14387
+ else {
14388
+ this.uploadStatus = 'Upload failed. Invalid response.';
14389
+ }
14390
+ },
14391
+ error: (error) => {
14392
+ this.isUploading = false;
14393
+ this.uploadStatus = 'Upload failed. Please try again.';
14394
+ console.error('Upload error:', error);
14395
+ }
14396
+ });
14397
+ }
14398
+ // Slider specific methods
14399
+ onSliderClick(event) {
14400
+ console.log('Slider click:', event);
14401
+ }
14402
+ onSliderImageSelected(event) {
14403
+ const file = event.target.files[0];
14404
+ if (file) {
14405
+ this.uploadSliderImage(file);
14406
+ }
14407
+ }
14408
+ uploadSliderImage(file) {
14409
+ this.uploadStatus = 'Uploading...';
14410
+ const formData = new FormData();
14411
+ formData.append('file', file);
14412
+ const headers = new HttpHeaders({
14413
+ 'Accept': 'application/json, text/plain, */*',
14414
+ 'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
14415
+ 'Cache-Control': 'no-cache',
14416
+ 'Pragma': 'no-cache',
14417
+ 'locale': 'en',
14418
+ 'org': 'dopt',
14419
+ 'rootOrg': 'igot'
14420
+ });
14421
+ this.http.post('http://localhost:3000/apis/proxies/v8/storage/orgStoreUpload', formData, { headers })
14422
+ .subscribe({
14423
+ next: (response) => {
14424
+ if (response.responseCode === 'OK' && response.result && response.result.url) {
14425
+ // Transform the URL
14426
+ const transformedUrl = this.transformImageUrl(response.result.url);
14427
+ // Update all banner sizes with the same URL
14428
+ const bannersControl = this.sliderItemForm.get('banners');
14429
+ if (bannersControl) {
14430
+ bannersControl.get('l')?.setValue(transformedUrl);
14431
+ bannersControl.get('m')?.setValue(transformedUrl);
14432
+ bannersControl.get('s')?.setValue(transformedUrl);
14433
+ bannersControl.get('xl')?.setValue(transformedUrl);
14434
+ bannersControl.get('xs')?.setValue(transformedUrl);
14435
+ bannersControl.get('xxl')?.setValue(transformedUrl);
14436
+ }
14437
+ this.uploadStatus = 'Upload successful!';
14438
+ // Clear status after 3 seconds
14439
+ setTimeout(() => {
14440
+ this.uploadStatus = '';
14441
+ }, 3000);
14442
+ }
14443
+ else {
14444
+ this.uploadStatus = 'Upload failed. Invalid response.';
14445
+ }
14446
+ },
14447
+ error: (error) => {
14448
+ this.uploadStatus = 'Upload failed. Please try again.';
14449
+ console.error('Upload error:', error);
14450
+ }
14451
+ });
14452
+ }
14453
+ addSliderItem() {
14454
+ this.isEditingSlider = true;
14455
+ this.editingIndex = -1;
14456
+ this.initSliderItemForm();
14457
+ }
14458
+ editSliderItem(index) {
14459
+ this.isEditingSlider = true;
14460
+ this.editingIndex = index;
14461
+ this.initSliderItemForm(this.sliderData.sliders[index]);
14462
+ }
14463
+ removeSliderItem(index) {
14464
+ this.sliderData.sliders.splice(index, 1);
14465
+ this.updateEditorFormValue();
14466
+ }
14467
+ saveSliderItem() {
14468
+ if (this.sliderItemForm.valid) {
14469
+ const item = this.sliderItemForm.value;
14470
+ // Ensure all banner sizes have the same URL if not already set
14471
+ const mainImageUrl = item.banners.l;
14472
+ if (mainImageUrl) {
14473
+ item.banners.m = item.banners.m || mainImageUrl;
14474
+ item.banners.s = item.banners.s || mainImageUrl;
14475
+ item.banners.xl = item.banners.xl || mainImageUrl;
14476
+ item.banners.xs = item.banners.xs || mainImageUrl;
14477
+ item.banners.xxl = item.banners.xxl || mainImageUrl;
14478
+ }
14479
+ // Ensure queryParams is an object
14480
+ if (!item.queryParams || typeof item.queryParams !== 'object') {
14481
+ item.queryParams = {};
14482
+ }
14483
+ if (this.editingIndex === -1) {
14484
+ // Add new item
14485
+ this.sliderData.sliders.push(item);
14486
+ }
14487
+ else {
14488
+ // Update existing item
14489
+ this.sliderData.sliders[this.editingIndex] = item;
14490
+ }
14491
+ this.updateEditorFormValue();
14492
+ this.cancelSliderItemEdit();
14493
+ }
14494
+ }
14495
+ cancelSliderItemEdit() {
14496
+ this.isEditingSlider = false;
14497
+ this.editingIndex = -1;
14498
+ }
14499
+ updateEditorFormValue() {
14500
+ // Update the main form with the new slider data
14501
+ this.editorForm.get('value')?.setValue({ ...this.sliderData });
14502
+ }
14503
+ transformImageUrl(originalUrl) {
14504
+ // Replace 'https://storage.googleapis.com/igotqa/' with 'https://portal.qa.karmayogibharat.net/content-store/'
14505
+ return originalUrl.replace('https://storage.googleapis.com/igotqa/', 'https://portal.qa.karmayogibharat.net/content-store/');
14506
+ }
14507
+ onSubmit() {
14508
+ if (this.editorForm.valid) {
14509
+ this.dialogRef.close(this.editorForm.value.value);
14510
+ }
14511
+ }
14512
+ onCancel() {
14513
+ this.dialogRef.close();
14514
+ }
14515
+ dropSliderItem(event) {
14516
+ moveItemInArray(this.sliderData.sliders, event.previousIndex, event.currentIndex);
14517
+ this.updateEditorFormValue();
14518
+ }
14519
+ 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 }); }
14520
+ 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"] }] }); }
14521
+ }
14522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorDialogComponent, decorators: [{
14523
+ type: Component,
14524
+ 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"] }]
14525
+ }], ctorParameters: function () { return [{ type: i7$1.FormBuilder }, { type: i1.HttpClient }, { type: i3$1.MatDialogRef }, { type: undefined, decorators: [{
14526
+ type: Inject,
14527
+ args: [MAT_DIALOG_DATA]
14528
+ }] }]; } });
14529
+
14530
+ class TopSectionComponent {
14531
+ constructor(data, channelName, orgId, isMobile, slwConfig, isEdit, eventCallback, sanitizer) {
14532
+ this.data = data;
14533
+ this.channelName = channelName;
14534
+ this.orgId = orgId;
14535
+ this.isMobile = isMobile;
14536
+ this.slwConfig = slwConfig;
14537
+ this.isEdit = isEdit;
14538
+ this.eventCallback = eventCallback;
14539
+ this.sanitizer = sanitizer;
14540
+ this.descriptionMaxLength = 500;
14541
+ if (this.isEdit) {
14542
+ console.log('Edit mode active for top section');
14543
+ }
14544
+ }
14545
+ ngOnInit() {
14546
+ this.stripWidth = `${(window.innerWidth - 1200 + 135) / 2}px`;
14547
+ }
14548
+ emitEvent(action, id, data) {
14549
+ this.eventCallback({
14550
+ action,
14551
+ source: 'topSection',
14552
+ id,
14553
+ data: data || this.data
14554
+ });
14555
+ }
14556
+ openEditor(fieldName, displayName, currentValue) {
14557
+ this.eventCallback({
14558
+ action: 'edit',
14559
+ source: 'topSection',
14560
+ id: fieldName,
14561
+ data: {
14562
+ fieldName,
14563
+ displayName,
14564
+ currentValue,
14565
+ path: fieldName,
14566
+ fieldType: this.getFieldType(fieldName, currentValue),
14567
+ parentData: this.data
14568
+ }
14569
+ });
14570
+ }
14571
+ getFieldType(fieldName, value) {
14572
+ if (fieldName === 'logo' || fieldName === 'logoMobile' || fieldName.includes('banner')) {
14573
+ return 'image';
14574
+ }
14575
+ else if (fieldName === 'sliderData') {
14576
+ return 'slider';
14577
+ }
14578
+ else if (fieldName === 'metrics') {
14579
+ return 'metrics';
14580
+ }
14581
+ else if (typeof value === 'string' && value.startsWith('#')) {
14582
+ return 'color';
14583
+ }
14584
+ else if (typeof value === 'boolean') {
14585
+ return 'boolean';
14586
+ }
14587
+ else if (fieldName.includes('description')) {
14588
+ return 'textarea';
14589
+ }
14590
+ else {
14591
+ return 'text';
14592
+ }
14593
+ }
14594
+ 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 }); }
14595
+ 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" }] }); }
14596
+ }
14597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopSectionComponent, decorators: [{
14598
+ type: Component,
14599
+ 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"] }]
14600
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14601
+ type: Inject,
14602
+ args: ['sectionData']
14603
+ }] }, { type: undefined, decorators: [{
14604
+ type: Inject,
14605
+ args: ['channelName']
14606
+ }] }, { type: undefined, decorators: [{
14607
+ type: Inject,
14608
+ args: ['orgId']
14609
+ }] }, { type: undefined, decorators: [{
14610
+ type: Inject,
14611
+ args: ['isMobile']
14612
+ }] }, { type: undefined, decorators: [{
14613
+ type: Inject,
14614
+ args: ['slwConfiguration']
14615
+ }] }, { type: undefined, decorators: [{
14616
+ type: Inject,
14617
+ args: ['isEdit']
14618
+ }] }, { type: undefined, decorators: [{
14619
+ type: Inject,
14620
+ args: ['eventCallback']
14621
+ }] }, { type: i1$6.DomSanitizer }]; } });
14622
+
14623
+ class LookerSectionComponent {
14624
+ constructor(data, isMobile, sanitizer, eventCallback) {
14625
+ this.data = data;
14626
+ this.isMobile = isMobile;
14627
+ this.sanitizer = sanitizer;
14628
+ this.eventCallback = eventCallback;
14629
+ }
14630
+ ngOnInit() {
14631
+ this.iframeHeight = `${window.innerWidth * 0.667}px`;
14632
+ this.setLookerUrl();
14633
+ }
14634
+ setLookerUrl() {
14635
+ const url = this.isMobile ?
14636
+ this.data?.lookerProMobileUrl :
14637
+ this.data?.lookerProDesktopUrl;
14638
+ if (url) {
14639
+ this.lookerUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);
14640
+ this.eventCallback({
14641
+ action: 'looker-loaded',
14642
+ source: 'lookerSection',
14643
+ id: 'looker-dashboard'
14644
+ });
14645
+ }
14646
+ }
14647
+ 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 }); }
14648
+ 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"] }] }); }
14649
+ }
14650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LookerSectionComponent, decorators: [{
14651
+ type: Component,
14652
+ 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>" }]
14653
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14654
+ type: Inject,
14655
+ args: ['sectionData']
14656
+ }] }, { type: undefined, decorators: [{
14657
+ type: Inject,
14658
+ args: ['isMobile']
14659
+ }] }, { type: i1$6.DomSanitizer }, { type: undefined, decorators: [{
14660
+ type: Inject,
14661
+ args: ['eventCallback']
14662
+ }] }]; } });
14663
+
14664
+ class TopLearnersComponent {
14665
+ constructor(data, channelName, orgId, slwConfig, eventCallback) {
14666
+ this.data = data;
14667
+ this.channelName = channelName;
14668
+ this.orgId = orgId;
14669
+ this.slwConfig = slwConfig;
14670
+ this.eventCallback = eventCallback;
14671
+ }
14672
+ onEventFromLeaders(event) {
14673
+ this.eventCallback({
14674
+ action: 'top-learners',
14675
+ source: 'topLearners',
14676
+ id: event.id || 'learner-event',
14677
+ data: event
14678
+ });
14679
+ }
14680
+ 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 }); }
14681
+ 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"] }] }); }
14682
+ }
14683
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, decorators: [{
14684
+ type: Component,
14685
+ 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>" }]
14686
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14687
+ type: Inject,
14688
+ args: ['sectionData']
14689
+ }] }, { type: undefined, decorators: [{
14690
+ type: Inject,
14691
+ args: ['channelName']
14692
+ }] }, { type: undefined, decorators: [{
14693
+ type: Inject,
14694
+ args: ['orgId']
14695
+ }] }, { type: undefined, decorators: [{
14696
+ type: Inject,
14697
+ args: ['slwConfiguration']
14698
+ }] }, { type: undefined, decorators: [{
14699
+ type: Inject,
14700
+ args: ['eventCallback']
14701
+ }] }]; } });
14702
+
14703
+ class CompetencyComponent {
14704
+ constructor(orgId, eventCallback) {
14705
+ this.orgId = orgId;
14706
+ this.eventCallback = eventCallback;
14707
+ this.emptyResponse = new EventEmitter();
14708
+ this.telemetryResponse = new EventEmitter();
14709
+ this.hideCompetencyBlock = false;
14710
+ }
14711
+ hideCompetency(event) {
14712
+ this.hideCompetencyBlock = event;
14713
+ this.emptyResponse.emit(event);
14714
+ this.eventCallback({
14715
+ action: 'hide-competency',
14716
+ source: 'competency',
14717
+ id: 'competency-block'
14718
+ });
14719
+ }
14720
+ raiseCompetencyTelemetry(name) {
14721
+ this.telemetryResponse.emit(name);
14722
+ this.eventCallback({
14723
+ action: 'competency-click',
14724
+ source: 'competency',
14725
+ id: `${name}-core-expertise`
14726
+ });
14727
+ }
14728
+ 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 }); }
14729
+ 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" }] }); }
14730
+ }
14731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CompetencyComponent, decorators: [{
14732
+ type: Component,
14733
+ 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>" }]
14734
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14735
+ type: Inject,
14736
+ args: ['orgId']
14737
+ }] }, { type: undefined, decorators: [{
14738
+ type: Inject,
14739
+ args: ['eventCallback']
14740
+ }] }]; }, propDecorators: { competency: [{
14741
+ type: Input
14742
+ }], emptyResponse: [{
14743
+ type: Output
14744
+ }], telemetryResponse: [{
14745
+ type: Output
14746
+ }] } });
14747
+
14748
+ class ContentStripComponent {
14749
+ constructor(orgId, channelName, eventCallback) {
14750
+ this.orgId = orgId;
14751
+ this.channelName = channelName;
14752
+ this.eventCallback = eventCallback;
14753
+ this.viewAllResponse = new EventEmitter();
14754
+ this.telemetryResponse = new EventEmitter();
14755
+ }
14756
+ showAllContent(event) {
14757
+ this.viewAllResponse.emit({
14758
+ event: event,
14759
+ data: this.data
14760
+ });
14761
+ this.eventCallback({
14762
+ action: 'view-all',
14763
+ source: 'contentStrip',
14764
+ id: this.data?.sectionKey || 'content-section',
14765
+ data: event
14766
+ });
14767
+ }
14768
+ raiseTelemetryInteratEvent(event) {
14769
+ this.telemetryResponse.emit(event);
14770
+ this.eventCallback({
14771
+ action: 'telemetry',
14772
+ source: 'contentStrip',
14773
+ id: event.id || 'content-interaction',
14774
+ data: event
14775
+ });
14776
+ }
14777
+ 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 }); }
14778
+ 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"] }] }); }
14779
+ }
14780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContentStripComponent, decorators: [{
14781
+ type: Component,
14782
+ 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>" }]
14783
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14784
+ type: Inject,
14785
+ args: ['orgId']
14786
+ }] }, { type: undefined, decorators: [{
14787
+ type: Inject,
14788
+ args: ['channelName']
14789
+ }] }, { type: undefined, decorators: [{
14790
+ type: Inject,
14791
+ args: ['eventCallback']
14792
+ }] }]; }, propDecorators: { data: [{
14793
+ type: Input
14794
+ }], viewAllResponse: [{
14795
+ type: Output
14796
+ }], telemetryResponse: [{
14797
+ type: Output
14798
+ }] } });
14799
+
14800
+ class ColumnSectionDisplayComponent {
14801
+ constructor() {
14802
+ this.data = [];
14803
+ this.competencyEvent = new EventEmitter();
14804
+ this.competencyTelemetry = new EventEmitter();
14805
+ this.contentTelemetry = new EventEmitter();
14806
+ this.viewAllEvent = new EventEmitter();
14807
+ this.filteredData = [];
14808
+ }
14809
+ ngOnInit() {
14810
+ this.filteredData = this.data?.filter(section => section?.enabled) || [];
14811
+ }
14812
+ onCompetencyEvent(event) {
14813
+ this.competencyEvent.emit(event);
14814
+ }
14815
+ onCompetencyTelemetry(event) {
14816
+ this.competencyTelemetry.emit(event);
14817
+ }
14818
+ onContentTelemetry(event) {
14819
+ this.contentTelemetry.emit(event);
14820
+ }
14821
+ onViewAllEvent(event, data) {
14822
+ this.viewAllEvent.emit({
14823
+ event: event,
14824
+ data: data
14825
+ });
14826
+ }
14827
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnSectionDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14828
+ 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"] }] }); }
14829
+ }
14830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnSectionDisplayComponent, decorators: [{
14831
+ type: Component,
14832
+ 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>" }]
14833
+ }], propDecorators: { data: [{
14834
+ type: Input
14835
+ }], orgId: [{
14836
+ type: Input
14837
+ }], channelName: [{
14838
+ type: Input
14839
+ }], competencyEvent: [{
14840
+ type: Output
14841
+ }], competencyTelemetry: [{
14842
+ type: Output
14843
+ }], contentTelemetry: [{
14844
+ type: Output
14845
+ }], viewAllEvent: [{
14846
+ type: Output
14847
+ }] } });
14848
+
14849
+ class MobileSectionsComponent {
14850
+ constructor() {
14851
+ this.leaderboardTabClicked = new EventEmitter();
14852
+ }
14853
+ onTabClicked(event) {
14854
+ this.leaderboardTabClicked.emit(event);
14855
+ }
14856
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14857
+ 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"] }] }); }
14858
+ }
14859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, decorators: [{
14860
+ type: Component,
14861
+ 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>" }]
14862
+ }], propDecorators: { myProgressData: [{
14863
+ type: Input
14864
+ }], speakersData: [{
14865
+ type: Input
14866
+ }], leaderboardData: [{
14867
+ type: Input
14868
+ }], rootOrgId: [{
14869
+ type: Input
14870
+ }], orgId: [{
14871
+ type: Input
14872
+ }], slwConfig: [{
14873
+ type: Input
14874
+ }], leaderboardTabClicked: [{
14875
+ type: Output
14876
+ }] } });
14877
+
14878
+ class MainContentComponent {
14879
+ constructor(data, channelName, orgId, isMobile, providerId, slwConfig, eventCallback, configSvc) {
14880
+ this.data = data;
14881
+ this.channelName = channelName;
14882
+ this.orgId = orgId;
14883
+ this.isMobile = isMobile;
14884
+ this.providerId = providerId;
14885
+ this.slwConfig = slwConfig;
14886
+ this.eventCallback = eventCallback;
14887
+ this.configSvc = configSvc;
14888
+ this.selectedIndex = 0;
14889
+ this.hideCompetencyBlock = false;
14890
+ this.contentTabEmptyResponseCount = 0;
14891
+ this.showModal = false;
14892
+ }
14893
+ ngOnInit() {
14894
+ // Initialization logic
14895
+ }
14896
+ tabClicked(event) {
14897
+ this.selectedIndex = event.index;
14898
+ this.eventCallback({
14899
+ action: 'tab-click',
14900
+ source: 'mainContent',
14901
+ id: `${event.tab.textLabel}-tab`
14902
+ });
14903
+ }
14904
+ raiseTabClick(event) {
14905
+ this.eventCallback({
14906
+ action: 'mdo-leaderboard',
14907
+ source: 'mainContent',
14908
+ id: `${event}-tab`
14909
+ });
14910
+ }
14911
+ hideKeyHightlight(event, data) {
14912
+ if (event) {
14913
+ data.enabled = false;
14914
+ this.eventCallback({
14915
+ action: 'hide-highlight',
14916
+ source: 'mainContent',
14917
+ id: 'key-highlight'
14918
+ });
14919
+ }
14920
+ }
14921
+ triggerOpenDialog(event) {
14922
+ if (event) {
14923
+ this.showModal = true;
14924
+ document.body.style.overflow = 'hidden';
14925
+ }
14926
+ this.eventCallback({
14927
+ action: 'open-dialog',
14928
+ source: 'mainContent',
14929
+ id: 'key-announcements'
14930
+ });
14931
+ }
14932
+ onClose() {
14933
+ this.showModal = false;
14934
+ document.body.style.overflow = 'auto';
14935
+ this.eventCallback({
14936
+ action: 'close-dialog',
14937
+ source: 'mainContent',
14938
+ id: 'key-announcements'
14939
+ });
14940
+ }
14941
+ raiseTelemetryInteratEvent(event) {
14942
+ this.eventCallback({
14943
+ action: 'telemetry',
14944
+ source: 'mainContent',
14945
+ id: event.id || 'content-interaction',
14946
+ data: event
14947
+ });
14948
+ }
14949
+ showAllContent(event, data) {
14950
+ this.eventCallback({
14951
+ action: 'view-all',
14952
+ source: 'mainContent',
14953
+ id: data?.sectionKey || 'content-section',
14954
+ data: event
14955
+ });
14956
+ }
14957
+ hideCompetency(event) {
14958
+ if (event) {
14959
+ this.hideCompetencyBlock = true;
14960
+ this.eventCallback({
14961
+ action: 'hide-competency',
14962
+ source: 'mainContent',
14963
+ id: 'competency-block'
14964
+ });
14965
+ }
14966
+ }
14967
+ raiseCompetencyTelemetry(name) {
14968
+ this.eventCallback({
14969
+ action: 'competency-click',
14970
+ source: 'mainContent',
14971
+ id: `${name}-core-expertise`
14972
+ });
14973
+ }
14974
+ 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 }); }
14975
+ 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" }] }); }
14976
+ }
14977
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContentComponent, decorators: [{
14978
+ type: Component,
14979
+ 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>" }]
14980
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14981
+ type: Inject,
14982
+ args: ['sectionData']
14983
+ }] }, { type: undefined, decorators: [{
14984
+ type: Inject,
14985
+ args: ['channelName']
14986
+ }] }, { type: undefined, decorators: [{
14987
+ type: Inject,
14988
+ args: ['orgId']
14989
+ }] }, { type: undefined, decorators: [{
14990
+ type: Inject,
14991
+ args: ['isMobile']
14992
+ }] }, { type: undefined, decorators: [{
14993
+ type: Inject,
14994
+ args: ['providerId']
14995
+ }] }, { type: undefined, decorators: [{
14996
+ type: Inject,
14997
+ args: ['slwConfiguration']
14998
+ }] }, { type: undefined, decorators: [{
14999
+ type: Inject,
15000
+ args: ['eventCallback']
15001
+ }] }, { type: i2.ConfigurationsService }]; } });
15002
+
15003
+ class SupportSectionComponent {
15004
+ constructor(data, eventCallback) {
15005
+ this.data = data;
15006
+ this.eventCallback = eventCallback;
15007
+ }
15008
+ onVideoEvent(event) {
15009
+ this.eventCallback({
15010
+ action: 'video-conference',
15011
+ source: 'supportSection',
15012
+ id: event.id || 'video-event',
15013
+ data: event
15014
+ });
15015
+ }
15016
+ 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 }); }
15017
+ 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"] }] }); }
15018
+ }
15019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportSectionComponent, decorators: [{
15020
+ type: Component,
15021
+ 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>" }]
15022
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
15023
+ type: Inject,
15024
+ args: ['sectionData']
15025
+ }] }, { type: undefined, decorators: [{
15026
+ type: Inject,
15027
+ args: ['eventCallback']
15028
+ }] }]; } });
15029
+
15030
+ class MdoChannelV3Component {
15031
+ constructor(route, router, eventSvc, translate, langTranslations, configSvc, sanitizer, utilsSvc, injector, cdr, dialog // Add this
15032
+ ) {
15033
+ this.route = route;
15034
+ this.router = router;
15035
+ this.eventSvc = eventSvc;
15036
+ this.translate = translate;
15037
+ this.langTranslations = langTranslations;
15038
+ this.configSvc = configSvc;
15039
+ this.sanitizer = sanitizer;
15040
+ this.utilsSvc = utilsSvc;
15041
+ this.injector = injector;
15042
+ this.cdr = cdr;
15043
+ this.dialog = dialog;
15044
+ this.sectionList = [];
15045
+ this.isEdit = false;
15046
+ this.activeSections = [];
15047
+ this.providerId = '123456789';
15048
+ this.isMobile = false;
15049
+ this.navigationTitles = [
15050
+ { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },
15051
+ { title: 'MDO Channels', url: '/app/learn/mdo-channels/all-channels', icon: '', disableTranslate: true }
15052
+ ];
15053
+ this.componentRegistry = {
15054
+ 'topSection': TopSectionComponent,
15055
+ 'lookerSection': LookerSectionComponent,
15056
+ 'topLearners': TopLearnersComponent,
15057
+ 'mainContent': MainContentComponent,
15058
+ 'supportSection': SupportSectionComponent
15059
+ };
15060
+ this.injectorCache = new Map();
15061
+ this.isMobile = this.utilsSvc.isMobile;
15062
+ }
15063
+ ngOnInit() {
15064
+ // Get active sections
15065
+ this.activeSections = this.sectionList?.filter(section => section.enabled)
15066
+ .sort((a, b) => (a.order || 0) - (b.order || 0)) || [];
15067
+ // Get channel info from route
15068
+ this.route.params.subscribe(params => {
15069
+ debugger;
15070
+ if (params.channelId) {
15071
+ this.channelName = params.channelName || '';
15072
+ this.orgId = params.channelId;
15073
+ this.cdr.markForCheck();
15074
+ }
15075
+ });
15076
+ }
15077
+ ngOnChanges(changes) {
15078
+ if (changes.sectionList || changes.slwConfiguration) {
15079
+ // Clear injector cache when inputs change
15080
+ this.injectorCache.clear();
15081
+ }
15082
+ }
15083
+ handleSectionEvent(event) {
15084
+ // Handle events from child components
15085
+ console.log('Section event:', event);
15086
+ // Raise telemetry for the event
15087
+ if (event.action) {
15088
+ this.raiseTelemetry(`${event.source}-${event.id}`);
15089
+ }
15090
+ // Handle specific events
15091
+ if (event.action === 'view-all' && event.data?.viewMoreUrl) {
15092
+ this.router.navigateByUrl(event.data.viewMoreUrl);
15093
+ }
15094
+ // Handle edit events
15095
+ if (event.action === 'edit') {
15096
+ this.openEditorDialog(event);
15097
+ }
15098
+ }
15099
+ getSectionComponent(key) {
15100
+ return this.componentRegistry[key] || null;
15101
+ }
15102
+ createInjector(section, column) {
15103
+ // Create a stable reference to the callback function
15104
+ if (!this._eventCallbackFn) {
15105
+ this._eventCallbackFn = (event) => this.handleSectionEvent(event);
15106
+ }
15107
+ // Create a cache key based on section and column keys
15108
+ const cacheKey = `${section.key}-${column.key}`;
15109
+ // Return cached injector if available
15110
+ if (this.injectorCache.has(cacheKey)) {
15111
+ return this.injectorCache.get(cacheKey);
15112
+ }
15113
+ // Create new injector
15114
+ const injector = Injector.create({
15115
+ providers: [
15116
+ { provide: 'sectionData', useValue: column.data },
15117
+ { provide: 'channelName', useValue: this.channelName },
15118
+ { provide: 'orgId', useValue: this.orgId },
15119
+ { provide: 'isMobile', useValue: this.isMobile },
15120
+ ...(this.isEdit ? [{ provide: 'isEdit', useValue: this.isEdit }] : [{ provide: 'isEdit', useValue: this.isEdit }]),
15121
+ { provide: 'slwConfiguration', useValue: this.slwConfiguration },
15122
+ { provide: 'providerId', useValue: this.orgId },
15123
+ { provide: 'eventCallback', useValue: this._eventCallbackFn }
15124
+ ],
15125
+ parent: this.injector
15126
+ });
15127
+ // Cache the injector
15128
+ this.injectorCache.set(cacheKey, injector);
15129
+ return injector;
15130
+ }
15131
+ trackByFn(index, item) {
15132
+ return item.key || index;
15133
+ }
15134
+ raiseTelemetry(name) {
15135
+ this.eventSvc.raiseInteractTelemetry({
15136
+ type: 'click',
15137
+ subType: 'mdo-channel',
15138
+ id: `${_.kebabCase(name).toLowerCase()}`
15139
+ }, {}, { module: 'LEARN' });
15140
+ }
15141
+ // Add new method to handle edit dialog
15142
+ openEditorDialog(event) {
15143
+ const dialogRef = this.dialog.open(EditorDialogComponent, {
15144
+ width: this.getDialogWidth(event.data.fieldType),
15145
+ data: {
15146
+ fieldName: event.data.fieldName,
15147
+ displayName: event.data.displayName,
15148
+ value: event.data.currentValue,
15149
+ fieldType: event.data.fieldType,
15150
+ section: event.source
15151
+ }
15152
+ });
15153
+ dialogRef.afterClosed().subscribe(result => {
15154
+ if (result) {
15155
+ // Update the section data
15156
+ this.updateSectionData(event.source, event.data.fieldName, result);
15157
+ }
15158
+ });
15159
+ }
15160
+ // Helper method to determine dialog width based on field type
15161
+ getDialogWidth(fieldType) {
15162
+ switch (fieldType) {
15163
+ case 'textarea':
15164
+ case 'slider':
15165
+ case 'metrics':
15166
+ return '800px';
15167
+ case 'image':
15168
+ return '600px';
15169
+ default:
15170
+ return '400px';
15171
+ }
15172
+ }
15173
+ // Method to update section data
15174
+ updateSectionData(sectionType, fieldName, newValue) {
15175
+ // Make a deep copy to avoid modifying the original reference
15176
+ const updatedSections = cloneDeep(this.sectionList);
15177
+ // Find the relevant section and column
15178
+ for (const section of updatedSections) {
15179
+ if (!section.enabled)
15180
+ continue;
15181
+ for (const column of section.column) {
15182
+ if (column.key === sectionType && column.data) {
15183
+ // Update the specific field
15184
+ this.updateNestedField(column.data, fieldName, newValue);
15185
+ break;
15186
+ }
15187
+ }
15188
+ }
15189
+ // Clear the injector cache to force component recreation
15190
+ this.injectorCache.clear();
15191
+ // Update the sectionList (this will trigger change detection)
15192
+ this.sectionList = updatedSections;
15193
+ console.log('Updated sectionList:', this.sectionList);
15194
+ // Update active sections
15195
+ this.activeSections = this.sectionList.filter(section => section.enabled)
15196
+ .sort((a, b) => (a.order || 0) - (b.order || 0));
15197
+ // Force change detection to ensure UI updates
15198
+ this.cdr.detectChanges(); // Use detectChanges instead of markForCheck
15199
+ }
15200
+ // Helper method to update nested fields
15201
+ updateNestedField(obj, path, value) {
15202
+ // Handle nested paths (e.g., "sliderData.styleData.borderRadius")
15203
+ const parts = path.split('.');
15204
+ let current = obj;
15205
+ // Navigate to the parent object
15206
+ for (let i = 0; i < parts.length - 1; i++) {
15207
+ if (!current[parts[i]]) {
15208
+ current[parts[i]] = {};
15209
+ }
15210
+ current = current[parts[i]];
15211
+ }
15212
+ // Update the final property
15213
+ current[parts[parts.length - 1]] = value;
15214
+ }
15215
+ 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 }); }
15216
+ 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 }); }
15217
+ }
15218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdoChannelV3Component, decorators: [{
15219
+ type: Component,
15220
+ 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"] }]
15221
+ }], 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: [{
15222
+ type: Input
15223
+ }], slwConfiguration: [{
15224
+ type: Input
15225
+ }], isEdit: [{
15226
+ type: Input
15227
+ }], providerId: [{
15228
+ type: Input
15229
+ }], channelName: [{
15230
+ type: Input
15231
+ }], orgId: [{
15232
+ type: Input
15233
+ }] } });
15234
+
13263
15235
  class MDOChannelModule {
13264
15236
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13265
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, declarations: [MdoChannelV1Component, MdoChannelV2Component], imports: [CommonModule,
15237
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, declarations: [MdoChannelV1Component, MdoChannelV2Component,
15238
+ MdoChannelV3Component,
15239
+ TopSectionComponent,
15240
+ LookerSectionComponent,
15241
+ TopLearnersComponent,
15242
+ MainContentComponent,
15243
+ SupportSectionComponent,
15244
+ CompetencyComponent,
15245
+ ContentStripComponent,
15246
+ ColumnSectionDisplayComponent,
15247
+ MobileSectionsComponent,
15248
+ EditorDialogComponent], imports: [CommonModule,
13266
15249
  MatIconModule,
13267
15250
  MatLegacyChipsModule,
13268
15251
  SkeletonLoaderLibModule,
@@ -13285,7 +15268,17 @@ class MDOChannelModule {
13285
15268
  MatLegacyTabsModule,
13286
15269
  OrderByPipeModule,
13287
15270
  SafeUrlPipeModule,
13288
- VideoConferenceModule, i2$1.TranslateModule], exports: [MdoChannelV1Component, MdoChannelV2Component] }); }
15271
+ VideoConferenceModule,
15272
+ SbUiResolverModule,
15273
+ FormsModule,
15274
+ ReactiveFormsModule, i2$1.TranslateModule, MatDialogModule,
15275
+ MatLegacyFormFieldModule,
15276
+ MatLegacyInputModule,
15277
+ MatLegacyButtonModule,
15278
+ MatLegacySlideToggleModule,
15279
+ DragDropModule,
15280
+ HttpClientModule,
15281
+ MatIconModule], exports: [MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component] }); }
13289
15282
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, providers: [
13290
15283
  CommonMethodsService
13291
15284
  ], imports: [CommonModule,
@@ -13312,18 +15305,41 @@ class MDOChannelModule {
13312
15305
  OrderByPipeModule,
13313
15306
  SafeUrlPipeModule,
13314
15307
  VideoConferenceModule,
15308
+ SbUiResolverModule,
15309
+ FormsModule,
15310
+ ReactiveFormsModule,
13315
15311
  TranslateModule.forRoot({
13316
15312
  loader: {
13317
15313
  provide: TranslateLoader,
13318
15314
  useFactory: HttpLoaderFactory,
13319
15315
  deps: [HttpClient],
13320
15316
  },
13321
- })] }); }
15317
+ }),
15318
+ MatDialogModule,
15319
+ MatLegacyFormFieldModule,
15320
+ MatLegacyInputModule,
15321
+ MatLegacyButtonModule,
15322
+ MatLegacySlideToggleModule,
15323
+ DragDropModule,
15324
+ HttpClientModule,
15325
+ MatIconModule] }); }
13322
15326
  }
13323
15327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MDOChannelModule, decorators: [{
13324
15328
  type: NgModule,
13325
15329
  args: [{
13326
- declarations: [MdoChannelV1Component, MdoChannelV2Component],
15330
+ declarations: [MdoChannelV1Component, MdoChannelV2Component,
15331
+ MdoChannelV3Component,
15332
+ TopSectionComponent,
15333
+ LookerSectionComponent,
15334
+ TopLearnersComponent,
15335
+ MainContentComponent,
15336
+ SupportSectionComponent,
15337
+ CompetencyComponent,
15338
+ ContentStripComponent,
15339
+ ColumnSectionDisplayComponent,
15340
+ MobileSectionsComponent,
15341
+ EditorDialogComponent
15342
+ ],
13327
15343
  imports: [
13328
15344
  CommonModule,
13329
15345
  MatIconModule,
@@ -13349,6 +15365,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13349
15365
  OrderByPipeModule,
13350
15366
  SafeUrlPipeModule,
13351
15367
  VideoConferenceModule,
15368
+ SbUiResolverModule,
15369
+ FormsModule,
15370
+ ReactiveFormsModule,
13352
15371
  TranslateModule.forRoot({
13353
15372
  loader: {
13354
15373
  provide: TranslateLoader,
@@ -13356,8 +15375,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13356
15375
  deps: [HttpClient],
13357
15376
  },
13358
15377
  }),
15378
+ MatDialogModule,
15379
+ MatLegacyFormFieldModule,
15380
+ MatLegacyInputModule,
15381
+ MatLegacyButtonModule,
15382
+ MatLegacySlideToggleModule,
15383
+ DragDropModule,
15384
+ HttpClientModule,
15385
+ MatIconModule,
13359
15386
  ],
13360
- exports: [MdoChannelV1Component, MdoChannelV2Component],
15387
+ exports: [MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component],
13361
15388
  providers: [
13362
15389
  CommonMethodsService
13363
15390
  ],
@@ -13653,7 +15680,7 @@ class NationalLearningComponent {
13653
15680
  }
13654
15681
  });
13655
15682
  }
13656
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NationalLearningComponent, deps: [{ token: 'environment' }, { token: i1$1.Router }, { token: i2.EventService }, { token: i4$2.DomSanitizer }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
15683
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NationalLearningComponent, deps: [{ token: 'environment' }, { token: i1$1.Router }, { token: i2.EventService }, { token: i1$6.DomSanitizer }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
13657
15684
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NationalLearningComponent, selector: "sb-uic-national-learning", inputs: { sectionList: "sectionList", configDetails: "configDetails", nwlConfiguration: "nwlConfiguration" }, ngImport: i0, template: "<div class=\"container-fluid white-background nlm-micro-sites micro-white\" id=\"nlm-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4 white-bg\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentSection'\" [ngTemplateOutlet]=\"contentSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'lookerSection'\" [ngTemplateOutlet]=\"lookerTemplate\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"w-full topSection\">\n <div *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n <div *ngIf=\"data && data.metrics\">\n <div class=\"block md:hidden\">\n <sb-uic-data-points\n [providerId]=\"providerId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'nlwCol'\"\n [title]=\"data?.metrics?.title\"\n [pageLayout]=\"'nlw'\">\n </sb-uic-data-points>\n </div>\n <div class=\"hidden md:block\">\n <sb-uic-data-points\n [providerId]=\"providerId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'nlwRow'\"\n [title]=\"data?.metrics?.title\"\n [pageLayout]=\"'nlw'\">\n </sb-uic-data-points>\n </div>\n </div>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"block md:hidden\">\n <sb-uic-key-highlights (emptyResponse)=\"hideKeyHightlight($event, data.keyHighlights)\" [formData]=\"data.keyHighlights\" [providerId]=\"providerId\" [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"hidden md:block\">\n <div class=\"flex flex items-center justify-center gap-10\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-rounded top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.imageUrl\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col pr-3\">\n <div class=\" txt-ellipsis-2 break-words description-title\">{{data?.title}}</div>\n <div class=\"description\">{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden\">\n <div class=\"flex flex-col items-center justify-center margin-bottom-xl px-5\">\n <div class=\"mlogo-box-rounded\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.imageUrl\">\n </div>\n </div>\n <div class=\"flex flex-col px-5\">\n <div class=\" txt-ellipsis-2 break-words description-title\">{{data?.title}}</div>\n <div class=\"mdescription\">{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\">\n <div class=\"hidden md:block\">\n <sb-uic-key-highlights (emptyResponse)=\"hideKeyHightlight($event, data.keyHighlights)\" [formData]=\"data.keyHighlights\" [providerId]=\"providerId\" [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n\n<ng-template #contentSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.leftContent.colspan}}\">\n <div *ngIf=\"data.leftContent.data.weekHighlights.data\">\n <sb-uic-highlights-of-week\n [objectData]=\"data.leftContent.data.weekHighlights.data\">\n </sb-uic-highlights-of-week>\n </div>\n <div class=\"hidden md:block\">\n <div *ngIf=\"data.leftContent.data.mandatoryCourse.enabled && data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"'123456789'\"\n [widgetData]=\"data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"hidden md:block\">\n <div *ngIf=\"data?.leftContent?.data?.exploreLearningContent?.strips[0]\">\n <!-- <sb-uic-content-strip-facet-filter [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"></sb-uic-content-strip-facet-filter> -->\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"environment?.spvorgID\"\n [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n <div class=\"hidden md:block\">\n <div *ngIf=\"data.leftContent.data.events.enabled && data.leftContent.data.events.column[0]\">\n <sb-uic-events [object]=\"data.leftContent.data.events.column[0]\" [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-{{data.rightContent.colspan}}\">\n <div *ngIf=\"data.rightContent.data.myprogress\">\n <sb-uic-user-progress\n [objectData]=\"data.rightContent.data.myprogress.data\" [rootOrgId]=\"configDetails?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n <div *ngIf=\"data.rightContent.data.speakerOftheDay\">\n <sb-uic-speakers\n [objectData]=\"data.rightContent.data.speakerOftheDay.data\">\n </sb-uic-speakers>\n </div>\n <div *ngIf=\"data.rightContent.data.mdoLeaderboard\">\n <sb-uic-mdo-leaderboard\n [object]=\"data.rightContent.data.mdoLeaderboard.data\"\n (tabClicked)=\"raiseTabClick($event)\"></sb-uic-mdo-leaderboard>\n </div>\n\n <div class=\"block md:hidden\">\n <div *ngIf=\"data.leftContent.data.mandatoryCourse.enabled && data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"'123456789'\"\n [widgetData]=\"data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden px-4 md-px-0\">\n <div *ngIf=\"data?.leftContent?.data?.exploreLearningContent?.strips[0]\">\n <sb-uic-content-strip-facet-filter [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"></sb-uic-content-strip-facet-filter>\n </div>\n </div>\n <div class=\"block md:hidden px-4 md-px-0\">\n <div *ngIf=\"data.leftContent.data.events.enabled && data.leftContent.data.events.column[0]\">\n <sb-uic-events [object]=\"data.leftContent.data.events.column[0]\" [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #lookerTemplate let-data=\"data\">\n <div class=\"flex items-center justify-center\" >\n <div class=\"container mt-8\">\n <div class=\"key-speakers flex-wrap flex items-center justify-center\">\n <h1 class=\"featured text-center\">{{data?.header?.headerText}}</h1>\n <p class=\"featured-description p-4 md:p-0 text-center\">{{data?.header?.description}}</p>\n </div>\n <div class=\"lookpro\" *ngIf=\"lookerProUrl\">\n <iframe title=\"{{data?.header?.headerText}}\" width=\"100%\" height=\"520\" [src]=\"lookerProUrl\" frameborder=\"0\" style=\"border:0\" sandbox=\"allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\"></iframe>\n </div>\n </div>\n </div>\n</ng-template>", styles: [".white-bg{background:#fff!important}.nlw-mandatoryCourse ::ng-deep .capitalize{font-size:20px;line-height:24.38px}.nlm-micro-sites ::ng-deep .container{max-width:1200px!important}.nlm-micro-sites ::ng-deep .banner-container{padding-bottom:0!important}.topSection ::ng-deep .prev{margin-left:15px!important}.topSection ::ng-deep .next{margin-right:15px!important}.topSection .stats-header{display:flex;align-items:center;justify-content:center;position:absolute;left:43.5%;top:-20px;text-transform:capitalize}.topSection .stats-title{display:flex;align-items:center;justify-content:center;background-color:#f3962f;padding:12px 16px;color:#fff;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;border-radius:35px}.topSection .my-arrow{font-size:12px}.topSection .less-opacity1{opacity:.75}.topSection .less-opacity2{opacity:.5}.topSection .details-wrapper{padding:16px;display:flex;gap:50px}.topSection .logo-box-container{width:180px;position:relative}@media only screen and (max-width: 599px){.topSection .logo-box-container{width:112px;height:72px}}.topSection .logo-box-rounded{height:180px;width:180px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}@media only screen and (max-width: 599px){.topSection .logo-box-rounded{width:112px;height:112px}}.topSection .logo-box-rounded .logo-img{max-width:122px}@media only screen and (max-width: 599px){.topSection .logo-box-rounded .logo-img{max-width:84px}}.topSection .mlogo-box-rounded{height:180px;width:180px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:1px 1px 8px 3px #0000000f}@media only screen and (max-width: 599px){.topSection .mlogo-box-rounded{width:112px;height:112px}}.topSection .mlogo-box-rounded .logo-img{max-width:122px}@media only screen and (max-width: 599px){.topSection .mlogo-box-rounded .logo-img{max-width:84px}}.topSection .txt-ellipsis-2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.topSection .description-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;padding-bottom:16px}.topSection .description{font-family:Lato;font-size:16px;font-weight:400;line-height:24px;text-align:left}.topSection .mdescription{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left}@media screen and (min-width: 320px) and (max-width: 769px){.topSection ::ng-deep .prev{margin-left:15px!important}.topSection ::ng-deep .next{margin-right:15px!important}.topSection ::ng-deep .banner-container{min-height:212px!important}}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "component", type: KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: ContentStripFacetFilterComponent, selector: "sb-uic-content-strip-facet-filter", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryLearningContentResponse"] }, { kind: "pipe", type: i2$2.SlicePipe, name: "slice" }] }); }
13658
15685
  }
13659
15686
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NationalLearningComponent, decorators: [{
@@ -13662,7 +15689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13662
15689
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
13663
15690
  type: Inject,
13664
15691
  args: ['environment']
13665
- }] }, { type: i1$1.Router }, { type: i2.EventService }, { type: i4$2.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
15692
+ }] }, { type: i1$1.Router }, { type: i2.EventService }, { type: i1$6.DomSanitizer }, { type: i2.UtilityService }]; }, propDecorators: { sectionList: [{
13666
15693
  type: Input
13667
15694
  }], configDetails: [{
13668
15695
  type: Input
@@ -14234,5 +16261,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14234
16261
  * Generated bundle index. Do not edit.
14235
16262
  */
14236
16263
 
14237
- export { AddCompetencyPopupComponent, AnnouncementsComponent, AnnouncementsModule, AvailableLanguagesComponent, AvatarPhotoLibComponent, AvatarPhotoLibModule, CalenderComponent, CalenderModule, CardKarmaProgramsComponent, CardKarmaProgramsV2Component, CardLandscapeComponent, CardMDOChannelComponent, CardPortraitComponent, CardPortraitExtComponent, CardResourceComponent, CardUserComponent, CardWideComponent, CardWideV2Component, CardsComponent, CardsModule, CbpPlanComponent, CbpPlanModule, CertificateDialogComponent, CommonMethodsService, CommonStripComponent, CommonStripModule, CommunitySuggestionsComponent, CommunitySuggestionsModule, CompetencyPassbookComponent, CompetencyPassbookMdoComponent, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConfirmationDialogComponent, ConnectionHoverCardComponent, ConnectionNameComponent, ConnectionNameModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentLanguageService, ContentProgressComponent, ContentProgressModule, ContentStripFacetFilterComponent, ContentStripFacetFilterModule, ContentStripWithTabsLibComponent, ContentStripWithTabsLibModule, ContentStripWithTabsPillsComponent, ContentStripWithTabsPillsModule, DataPointsComponent, DataPointsModule, DialogComponentsModule, EventCardComponent, EventsComponent, EventsModule, HighlightsOfWeekComponent, HighlightsOfWeekModule, HorizontalScrollerV2Component, HorizontalScrollerV2Module, HttpLoaderFactory, HttpLoaderFactory1, KeyHighlightsComponent, KeyHighlightsModule, MDOChannelModule, MdoChannelV1Component, MdoChannelV2Component, MdoLeaderboardComponent, MdoLeaderboardModule, NationalLearningComponent, NationalLearningModule, NbspModule, NbspPipe, ProvidersModule, ProvidersV2Component, ROOT_WIDGET_CONFIG, SakshamAI, SlidersLibComponent, SlidersLibModule, SnackbarComponent, SpeakersComponent, SpeakersModule, TOCMultiLingualDialogComponent, TOCMultiLingualDialogModule, TooltipDirective, TooltipModule, TopLearnersComponent, TopLearnersModule, UserContentRatingLibComponent, UserContentRatingLibModule, UserProgressComponent, UserProgressModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentLibService, WidgetUserServiceLib };
16264
+ export { AddCompetencyPopupComponent, AnnouncementsComponent, AnnouncementsModule, AvailableLanguagesComponent, AvatarPhotoLibComponent, AvatarPhotoLibModule, CalenderComponent, CalenderModule, CardKarmaProgramsComponent, CardKarmaProgramsV2Component, CardLandscapeComponent, CardMDOChannelComponent, CardPortraitComponent, CardPortraitExtComponent, CardResourceComponent, CardUserComponent, CardWideComponent, CardWideV2Component, CardsComponent, CardsModule, CbpPlanComponent, CbpPlanModule, CertificateDialogComponent, CommonMethodsService, CommonStripComponent, CommonStripModule, CommunitySuggestionsComponent, CommunitySuggestionsModule, CompetencyPassbookComponent, CompetencyPassbookMdoComponent, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConfirmationDialogComponent, ConnectionHoverCardComponent, ConnectionNameComponent, ConnectionNameModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentLanguageService, ContentProgressComponent, ContentProgressModule, ContentStripFacetFilterComponent, ContentStripFacetFilterModule, ContentStripWithTabsLibComponent, ContentStripWithTabsLibModule, ContentStripWithTabsPillsComponent, ContentStripWithTabsPillsModule, DataPointsComponent, DataPointsModule, DialogComponentsModule, EventCardComponent, EventsComponent, EventsModule, HighlightsOfWeekComponent, HighlightsOfWeekModule, HorizontalScrollerV2Component, HorizontalScrollerV2Module, HttpLoaderFactory, HttpLoaderFactory1, KeyHighlightsComponent, KeyHighlightsModule, MDOChannelModule, MdoChannelV1Component, MdoChannelV2Component, MdoChannelV3Component, MdoLeaderboardComponent, MdoLeaderboardModule, NationalLearningComponent, NationalLearningModule, NbspModule, NbspPipe, ProvidersModule, ProvidersV2Component, ROOT_WIDGET_CONFIG, SakshamAI, SlidersLibComponent, SlidersLibModule, SnackbarComponent, SpeakersComponent, SpeakersModule, TOCMultiLingualDialogComponent, TOCMultiLingualDialogModule, TooltipDirective, TooltipModule, TopLearnersComponent$1 as TopLearnersComponent, TopLearnersModule, UserContentRatingLibComponent, UserContentRatingLibModule, UserProgressComponent, UserProgressModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentLibService, WidgetUserServiceLib };
14238
16265
  //# sourceMappingURL=sunbird-cb-consumption.mjs.map