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