@sunbird-cb/consumption 0.0.45 → 0.0.47

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 (36) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +2004 -47
  2. package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-consumption.umd.min.js +1 -1
  4. package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +34 -24
  6. package/esm2015/lib/_common/cards/card-landscape/card-landscape.component.js +2 -2
  7. package/esm2015/lib/_common/cards/card-portrait/card-portrait.component.js +2 -2
  8. package/esm2015/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +2 -2
  9. package/esm2015/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +2 -2
  10. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +1613 -0
  11. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.js +218 -0
  12. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.js +69 -0
  13. package/esm2015/public-api.js +2 -1
  14. package/esm2015/sunbird-cb-consumption.js +16 -15
  15. package/esm5/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +46 -30
  16. package/esm5/lib/_common/cards/card-landscape/card-landscape.component.js +2 -2
  17. package/esm5/lib/_common/cards/card-portrait/card-portrait.component.js +2 -2
  18. package/esm5/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +2 -2
  19. package/esm5/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +2 -2
  20. package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +1892 -0
  21. package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.js +218 -0
  22. package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.js +73 -0
  23. package/esm5/public-api.js +2 -1
  24. package/esm5/sunbird-cb-consumption.js +16 -15
  25. package/fesm2015/sunbird-cb-consumption.js +1695 -28
  26. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  27. package/fesm5/sunbird-cb-consumption.js +1988 -34
  28. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  29. package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts +4 -3
  30. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.d.ts +161 -0
  31. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.d.ts +149 -0
  32. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.d.ts +5 -0
  33. package/package.json +1 -1
  34. package/public-api.d.ts +1 -0
  35. package/sunbird-cb-consumption.d.ts +14 -13
  36. package/sunbird-cb-consumption.metadata.json +1 -1
@@ -7853,7 +7853,7 @@ class CardPortraitComponent {
7853
7853
  CardPortraitComponent.decorators = [
7854
7854
  { type: Component, args: [{
7855
7855
  selector: 'sb-uic-card-portrait',
7856
- 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\">\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\">\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\" 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]\">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.identifier]\n }}\"></ng-container>\n </ng-container>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">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?.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\">\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 <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\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 </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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n</ng-template>",
7856
+ 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\">\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\">\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\" 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 <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">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?.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\">\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 <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\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 </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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n</ng-template>",
7857
7857
  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;min-height:346px;border-radius:8px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;height:346px;margin:20px 8px}.card-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 .course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.card-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;-o-object-fit:fill;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-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:48px}.card-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,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 100%);position:absolute;top:0;padding:8px}.cbp-mark p{opacity:1;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;opacity:1;background-color:#1b4ca1;top:4px;left:4px;opacity:1;color:rgba(255,255,255,.95);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}"]
7858
7858
  }] }
7859
7859
  ];
@@ -8547,7 +8547,7 @@ class CardLandscapeComponent {
8547
8547
  CardLandscapeComponent.decorators = [
8548
8548
  { type: Component, args: [{
8549
8549
  selector: 'sb-uic-card-landscape',
8550
- template: "<ng-container *ngIf=\"!isCardLoading\">\n <a class=\"cursor-pointer\" (click)=\"raiseTelemetry(widgetData?.content);getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" \n role=\"link\" i18n-aria-label>\n <mat-card class=\"card-portrait mr-2 card-portrait-clickable min-height-remove\" [ngClass]=\"widgetData.cardCustomeClass ? widgetData.cardCustomeClass : ''\">\n <div class=\"course_widget portrait_widget flex margin-bottom-xs\">\n <div class=\"flex flex-end flex-middle course_port\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">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 \" [useTranslation]=\"false\" [displayContentType]=\"widgetData.content?.primaryCategory==='Course Unit'\n ?'Module'\n :widgetData.content?.primaryCategory\">\n </sb-uic-display-content-type>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <div class=\" img-block-portrait position-relative\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-image ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData.content.name\" />\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.identifier]\">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.identifier]\n }}\"></ng-container>\n </ng-container>\n </div>\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-image 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-image ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"portrait-subheading mat-subheading-2 title-text\">\n {{ widgetData?.content?.name }}\n </div>\n <div class=\"flex w-full flex-middle\">\n <div class=\"portrait_course_logo_box margin-right-xs\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\" loading=\"lazy\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <span class=\"portrait-org-name font-normal mat-caption\">By {{ (widgetData.content.organisation && widgetData.content.organisation[0]) ? widgetData.content.organisation[0] : 'Karmayogi Bharat' }}</span>\n <!-- <span class=\"portrait-org-name font-normal mat-caption\">{{'cardcontentv2.by' | translate}} {{ (widgetData.content.organisation && widgetData.content.organisation[0]) ? widgetData.content.organisation[0] : 'Karmayogi Bharat' }}</span> -->\n </div>\n\n <div class=\"flex flex-middle rating-session margin-top-xs\">\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 <!-- <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostEnrolled')\">\n <span class=\"most-enrolled-text margin-left-xs\">{{ 'cardcontentv2.mostEnrolled' | translate }}</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\">{{ 'cardcontentv2.mostTrending' | translate }}</span>\n </ng-container> -->\n </div>\n </div>\n </div>\n </mat-card>\n </a>\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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>\n\n<ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-portrait mr-2 card-portrait-clickable\" [ngClass]=\"widgetData.cardCustomeClass ? widgetData.cardCustomeClass : ''\">\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'100px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div class=\"portrait-subheading title-text\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded width-1-1'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\" [bindingClass]=\"'flex rounded margin-right-xs'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"portrait_widget flex margin-top-xs\">\n <div class=\"flex flex-end flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </mat-card>\n</ng-container>",
8550
+ template: "<ng-container *ngIf=\"!isCardLoading\">\n <a class=\"cursor-pointer\" (click)=\"raiseTelemetry(widgetData?.content);getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" \n role=\"link\" i18n-aria-label>\n <mat-card class=\"card-portrait mr-2 card-portrait-clickable min-height-remove\" [ngClass]=\"widgetData.cardCustomeClass ? widgetData.cardCustomeClass : ''\">\n <div class=\"course_widget portrait_widget flex margin-bottom-xs\">\n <div class=\"flex flex-end flex-middle course_port\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">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 \" [useTranslation]=\"false\" [displayContentType]=\"widgetData.content?.primaryCategory==='Course Unit'\n ?'Module'\n :widgetData.content?.primaryCategory\">\n </sb-uic-display-content-type>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <div class=\" img-block-portrait position-relative\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-image ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData.content.name\" />\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\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 </div>\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-image 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-image ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"portrait-subheading mat-subheading-2 title-text\">\n {{ widgetData?.content?.name }}\n </div>\n <div class=\"flex w-full flex-middle\">\n <div class=\"portrait_course_logo_box margin-right-xs\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\" loading=\"lazy\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <span class=\"portrait-org-name font-normal mat-caption\">By {{ (widgetData.content.organisation && widgetData.content.organisation[0]) ? widgetData.content.organisation[0] : 'Karmayogi Bharat' }}</span>\n <!-- <span class=\"portrait-org-name font-normal mat-caption\">{{'cardcontentv2.by' | translate}} {{ (widgetData.content.organisation && widgetData.content.organisation[0]) ? widgetData.content.organisation[0] : 'Karmayogi Bharat' }}</span> -->\n </div>\n\n <div class=\"flex flex-middle rating-session margin-top-xs\">\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 <!-- <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostEnrolled')\">\n <span class=\"most-enrolled-text margin-left-xs\">{{ 'cardcontentv2.mostEnrolled' | translate }}</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\">{{ 'cardcontentv2.mostTrending' | translate }}</span>\n </ng-container> -->\n </div>\n </div>\n </div>\n </mat-card>\n </a>\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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>\n\n<ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-portrait mr-2 card-portrait-clickable\" [ngClass]=\"widgetData.cardCustomeClass ? widgetData.cardCustomeClass : ''\">\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'100px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div class=\"portrait-subheading title-text\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded width-1-1'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\" [bindingClass]=\"'flex rounded margin-right-xs'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"portrait_widget flex margin-top-xs\">\n <div class=\"flex flex-end flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </mat-card>\n</ng-container>",
8551
8551
  styles: [".card-portrait{border-radius:12px;border:1px solid rgba(0,0,0,.08);opacity:1;width:350px;min-height:154px;padding:16px}.card-portrait .img-block-portrait{line-height:10px}.card-portrait .card-image{border-radius:8px;opacity:1;background-size:100%;width:147px;height:100px}.card-portrait .portrait-subheading{opacity:1;color:rgba(0,0,0,.87);font-weight:700;font-style:normal;letter-spacing:.25px;text-align:left;word-break:break-word;white-space:initial;margin:0 0 8px;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:40px}.card-portrait .portrait_course_logo_box img{padding:3px;display:inline-block;width:24px;height:24px;border:1px solid #d6d6d6;border-radius:4px;box-sizing:border-box}.card-portrait span.portrait-org-name{width:75%;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.card-portrait .portrait_widget{align-items:center;margin-top:0}.card-portrait .portrait_widget .course_port{border:1px solid #ef951e;padding:4px 8px;align-items:center;border-radius:16px}.card-portrait .portrait_widget .video-icon{opacity:1;color:#ef951e;width:15px;height:15px;font-size:15px}.card-portrait .portrait_widget .portrait-category{color:rgba(0,0,0,.6)!important;font-size:.75rem;opacity:1;font-family:Lato-Regular;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:20px}.card-portrait .progress-wrapper .progress-block{width:60%}.card-portrait .progress-wrapper .progress-block .completed-time{color:#ef951e;display:flex;padding:8px 0}.card-portrait .progress-wrapper .progress-block .completed-time mat-icon{width:1rem;height:1rem;font-size:1rem}.card-portrait .progress-wrapper .progress-block .completed-time span{opacity:1;color:rgba(0,0,0,.87);font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:16px}.card-portrait .progress-wrapper .progress-btn .resume-btn{opacity:1;color:#fff;font-family:Lato-Bold;font-size:14px;font-weight:700;font-style:normal;letter-spacing:.5px;text-align:left;line-height:20px;background:#1a4ca1;border-radius:63px;padding:6px 16px;border:none;width:100%;cursor:pointer}.card-portrait .progress-wrapper .progress-btn .resume-btn .textwrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:82px}.card-portrait .progress-wrapper .progress-btn .resume-btn:hover{background-color:#253379}.card-portrait .progress-bar-new{color:#ef951e!important;height:10px;border-radius:5px}.card-portrait .rating-session mat-icon{font-size:20px;height:20px;width:20px;color:#ef951e}.card-portrait .rating-session .rating-number{font-size:14px}.card-portrait .rating-session .most-enrolled-text{font-size:10px;font-weight:400;padding:4px;background:#ffea9e;border-radius:4px;line-height:12px}.card-portrait .right-corner-portrait{right:8px;bottom:8px}.card-portrait-clickable{min-height:146px!important}.card-portrait-clickable .right-corner-portrait{right:8px;bottom:8px}.card-portrait-clickable:hover{transform:scale(1.02)}.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}.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}@media only screen and (max-width:768px){.card-portrait{width:calc(100vw - 66px)}.card-wide-v2{min-height:356px}.card-wide-v2 .imageholder img{border-radius:12px 12px 0 0!important}.cbpwidth{width:calc(100vw - 100px)}}.cbp-mark{border-radius:12px 0;opacity:1;background-image:linear-gradient(90deg,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 100%);position:absolute;top:0;padding:8px}.cbp-mark p{opacity:1;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;opacity:1;background-color:#1b4ca1;top:4px;left:4px;opacity:1;color:rgba(255,255,255,.95);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}"]
8552
8552
  }] }
8553
8553
  ];
@@ -9683,7 +9683,7 @@ class CardPortraitExtComponent {
9683
9683
  CardPortraitExtComponent.decorators = [
9684
9684
  { type: Component, args: [{
9685
9685
  selector: 'sb-uic-card-portrait-ext',
9686
- 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\">\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\">\n <ng-container *ngIf=\"widgetData.content.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData.content.appIcon \" 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\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData.content?.contentId)\" />\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=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.contentId]\">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.contentId]\n }}\"></ng-container>\n </ng-container>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">video_library</mat-icon>\n <sb-uic-display-content-type [useTranslation]=\"false\" i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.topic\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"widgetData?.content?.primaryCategory==='Course Unit'\n ?'Module'\n :widgetData?.content?.primaryCategory? widgetData?.content?.primaryCategory : 'Course'\">\n \n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.contentId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n {{ widgetData.content.name }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData.content.creatorLogo | pipePublicURL \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData.content.sourceName + '_' + widgetData.content.contentId)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\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 </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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>",
9686
+ 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\">\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\">\n <ng-container *ngIf=\"widgetData.content.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData.content.appIcon \" 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\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData.content?.contentId)\" />\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=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.contentId] && cbPlanMapData[widgetData?.content?.identifier]?.contentStatus < 2 \">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.contentId]\n }}\"></ng-container>\n </ng-container>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\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\">video_library</mat-icon>\n <sb-uic-display-content-type [useTranslation]=\"false\" i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.topic\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"widgetData?.content?.primaryCategory==='Course Unit'\n ?'Module'\n :widgetData?.content?.primaryCategory? widgetData?.content?.primaryCategory : 'Course'\">\n \n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.contentId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n {{ widgetData.content.name }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData.content.creatorLogo | pipePublicURL \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData.content.sourceName + '_' + widgetData.content.contentId)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\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 </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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>",
9687
9687
  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;min-height:346px;border-radius:8px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;height:346px;margin:20px 8px}.card-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 .course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.card-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;-o-object-fit:fill;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-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:48px}.card-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,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 100%);position:absolute;top:0;padding:8px}.cbp-mark p{opacity:1;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;opacity:1;background-color:#1b4ca1;top:4px;left:4px;opacity:1;color:rgba(255,255,255,.95);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}"]
9688
9688
  }] }
9689
9689
  ];
@@ -9784,6 +9784,7 @@ class CardAssessmentComponent {
9784
9784
  this.activeResource = [];
9785
9785
  this.daysRemaining = 0;
9786
9786
  this.daysPending = false;
9787
+ this.daysFinish = false;
9787
9788
  }
9788
9789
  /**
9789
9790
  * @return {?}
@@ -9793,49 +9794,47 @@ class CardAssessmentComponent {
9793
9794
  const instanceConfig = this.configSvc.instanceConfig;
9794
9795
  if (instanceConfig) {
9795
9796
  this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
9796
- this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
9797
- }
9798
- else {
9799
- this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
9800
- this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
9797
+ this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
9801
9798
  }
9799
+ // console.log( this.daysPending, " this.daysPending===")
9802
9800
  }
9801
+ // updateStartDate(data: any ):void {
9802
+ // // this.startDate = startDate;
9803
+ // this.startCountdown(data)
9804
+ // }
9803
9805
  /**
9804
- * @param {?} startDate
9805
- * @return {?}
9806
- */
9807
- updateStartDate(startDate) {
9808
- this.startDate = startDate;
9809
- this.startCountdown(this.startDate);
9810
- }
9811
- /**
9812
- * @param {?} date
9806
+ * @param {?} data
9813
9807
  * @return {?}
9814
9808
  */
9815
- startCountdown(date) {
9816
- // Update the countdown immediately on start
9817
- this.updateCountdown(date);
9809
+ startCountdown(data) {
9810
+ this.updateCountdown(data.startDate, data.endDate);
9818
9811
  // Update the countdown every second
9819
9812
  this.intervalId = setInterval((/**
9820
9813
  * @return {?}
9821
9814
  */
9822
9815
  () => {
9823
- this.updateCountdown(date);
9816
+ this.updateCountdown(data.startDate, data.endDate);
9824
9817
  }), 1000);
9825
9818
  }
9826
9819
  // Method to update the countdown values
9827
9820
  /**
9828
- * @param {?} targetDate
9821
+ * @param {?} startDate
9822
+ * @param {?} endDate
9829
9823
  * @return {?}
9830
9824
  */
9831
- updateCountdown(targetDate) {
9825
+ updateCountdown(startDate, endDate) {
9832
9826
  /** @type {?} */
9833
9827
  const now = new Date().getTime();
9834
9828
  // Current time in milliseconds
9835
9829
  /** @type {?} */
9836
- const targetTime = new Date(targetDate).getTime();
9830
+ const targetTime = new Date(startDate).getTime();
9831
+ /** @type {?} */
9832
+ const targetEndDate = new Date(endDate).getTime();
9837
9833
  /** @type {?} */
9838
9834
  const distance = targetTime - now;
9835
+ // Distance in milliseconds
9836
+ /** @type {?} */
9837
+ const endDistance = now - targetEndDate;
9839
9838
  if (distance > 0) {
9840
9839
  this.daysRemaining = Math.ceil(distance / (1000 * 60 * 60 * 24));
9841
9840
  this.daysPending = true;
@@ -9845,6 +9844,13 @@ class CardAssessmentComponent {
9845
9844
  this.daysPending = false;
9846
9845
  this.clearTimer();
9847
9846
  }
9847
+ if (endDistance > 0) {
9848
+ this.daysFinish = true;
9849
+ this.clearTimer();
9850
+ }
9851
+ else {
9852
+ this.daysFinish = false;
9853
+ }
9848
9854
  }
9849
9855
  // Method to clear the interval
9850
9856
  /**
@@ -9876,8 +9882,8 @@ class CardAssessmentComponent {
9876
9882
  CardAssessmentComponent.decorators = [
9877
9883
  { type: Component, args: [{
9878
9884
  selector: 'sb-uic-card-assessment',
9879
- template: "<ng-container *ngIf=\"!isCardLoading\">\n<ng-container >\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t<div class=\"display-contents\">\n\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t<mat-card-content>\n\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\" [src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-s font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\"\n\t\t\t\t\t\t\t\t\t\t\t[wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in </span>\n\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"daysPending\"> {{ startCountdown(widgetData?.content?.batch?.startDate) }}<div id=\"demo\"></div> </span>\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"!daysPending\" class=\"start-btn\"> Start Assessment\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<span class=\"time-span flex items-center justify-center\">{{widgetData?.content?.batch?.startDate | date: 'd MMM, y' }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t</div>\n\t\t\t\t</mat-card-content>\n\t\t\t</ng-container>\n\t\t</div>\n\t</a>\n</mat-card>\n</ng-container>\n</ng-container>\n\n\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\" [height]=\"'155px'\"\n\t\t\t\t\t\t\t\t\t\t\t></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-l font-normal\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer\n\t\t\t\t\t\t\t\tclass=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>",
9880
- styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:335px;margin-top:16px}.image-container{width:155px;height:120px;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.title-container{margin-left:12px}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{width:75%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;margin-right:4px;box-shadow:0 2px 1px -1px rgb(0 0 0 / 20%),0 1px 1px 0 rgb(0 0 0 / 14%),0 1px 3px 0 rgb(0 0 0 / 12%)}.course_logo_box img.source-icon{height:28px;width:28px;padding:5px;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:rgba(239,149,30,.16)!important;text-align:center;box-sizing:border-box}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}"]
9885
+ template: "\n<ng-container *ngIf=\"!isCardLoading\">\n\t<ng-container *ngIf=\"!daysFinish\">\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t<div class=\"display-contents\">\n\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t<mat-card-content>\n\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\" [src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-s font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\"\n\t\t\t\t\t\t\t\t\t\t\t[wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in </span>\n\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"daysPending\"> {{ startCountdown(widgetData?.content?.batch?.startDate) }}<div id=\"demo\"></div> </span>\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"!daysPending\" class=\"start-btn\"> Start Assessment </span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<span class=\"time-span flex items-center justify-center\">{{widgetData?.content?.batch?.startDate | date: 'd MMM, y' }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t</div>\n\t\t\t\t</mat-card-content>\n\t\t\t</ng-container>\n\t\t</div>\n\t</a>\n</mat-card>\n</ng-container>\n</ng-container>\n\n\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\" [height]=\"'155px'\"\n\t\t\t\t\t\t\t\t\t\t\t></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-l font-normal\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer\n\t\t\t\t\t\t\t\tclass=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>\n\n",
9886
+ styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:340px;margin-top:16px;margin-right:12px;border-radius:12px}.image-container{width:145px;height:120px;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.image-container img{border-radius:8px;opacity:1;background-size:100%;width:145px!important;height:120px!important;display:flex}.title-container{width:155px;margin-left:12px}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{width:75%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;margin-right:4px;box-shadow:0 2px 1px -1px rgb(0 0 0 / 20%),0 1px 1px 0 rgb(0 0 0 / 14%),0 1px 3px 0 rgb(0 0 0 / 12%)}.course_logo_box img.source-icon{height:28px;width:28px;padding:5px;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green;width:75px}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:rgba(239,149,30,.16)!important;text-align:center;box-sizing:border-box;border-radius:0 0 8px 8px}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}"]
9881
9887
  }] }
9882
9888
  ];
9883
9889
  /** @nocollapse */
@@ -9915,7 +9921,11 @@ if (false) {
9915
9921
  /** @type {?} */
9916
9922
  CardAssessmentComponent.prototype.startDate;
9917
9923
  /** @type {?} */
9924
+ CardAssessmentComponent.prototype.endDate;
9925
+ /** @type {?} */
9918
9926
  CardAssessmentComponent.prototype.daysPending;
9927
+ /** @type {?} */
9928
+ CardAssessmentComponent.prototype.daysFinish;
9919
9929
  /**
9920
9930
  * @type {?}
9921
9931
  * @private
@@ -10362,7 +10372,7 @@ class CardProgressPortraitLibComponent {
10362
10372
  CardProgressPortraitLibComponent.decorators = [
10363
10373
  { type: Component, args: [{
10364
10374
  selector: 'sb-uic-card-progress-portrait-lib',
10365
- template: "<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-portrait card-progress-portrait-lib cursor-pointer\" [ngClass]=\"widgetData?.cardCustomeClass ? widgetData?.cardCustomeClass : ''\" (click)=\"raiseTelemetry();getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" >\n <div class=\"course_widget portrait_widget flex margin-bottom-xs\">\n <div class=\"flex flex-end flex-middle course_port\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">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?.primaryCategory\">\n </sb-uic-display-content-type>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <div class=\" img-block-portrait position-relative\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-image ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.identifier]\">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.identifier]\n }}\"></ng-container>\n </ng-container>\n </div>\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-image 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-image ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"portrait-subheading mat-subheading-2 title-text\">\n {{ widgetData?.content?.name }}\n </div>\n <div class=\"flex w-full flex-middle\">\n <div class=\"portrait_course_logo_box margin-right-xs\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\" loading=\"lazy\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <span class=\"portrait-org-name font-normal mat-caption\">{{'cardcontentv2.by' | translate}} {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n\n </div>\n </div>\n <ng-container *ngIf=\"widgetData?.content?.completionPercentage < 100\">\n <div class=\"flex flex-align-end progress-wrapper flex-between\" >\n <div class=\"progress-block\" >\n <div class=\"completed-time\">\n <mat-icon class=\"mat-icon schedule margin-right-xs\">schedule</mat-icon>\n <span>{{widgetData?.content?.completionPercentage}}%</span>\n </div>\n <div>\n <ng-container *ngIf=\"widgetData?.content?.completionStatus < 2\">\n <sb-uic-content-progress class=\"progress-bar-new\" [customClassName]=\"'course-progress-bar'\" *ngIf=\"widgetData?.content?.identifier\"\n [contentId]=\"widgetData?.content?.identifier\" [progress]=\"widgetData?.content?.completionPercentage\"\n [progressType]=\"'percentage'\">\n </sb-uic-content-progress>\n </ng-container>\n </div>\n </div>\n <div class=\"progress-btn\">\n <button class=\"resume-btn flex flex-middle flex-between\" [routerLink]=\"['/app/toc/',widgetData?.content?.identifier,'overview']\"\n [queryParams]=\"{primaryCategory: widgetData?.content?.primaryCategory}\" [state]=\"widgetData?.stateData\" \n [matTooltipPosition]=\"'below'\"\n [matTooltipDisabled]=\"(!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')).length < 11\"\n matTooltip=\"{{!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')}}\">\n <span class=\"textwrap margin-right-xs\">\n {{!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')}}</span>\n <img class=\"stats-icon\" height=\"20\" width=\"20\" src=\"/assets/icons/home/play.svg\">\n </button>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"widgetData?.content?.completionPercentage === 100\">\n <div class=\"flex flex-align-end progress-wrapper flex-end mt-1\">\n <div class=\"progress-btn\">\n <button class=\"resume-btn flex flex-middle flex-between view-btn\" [ngClass]=\"{'disable-btn': downloadCertificateLoading || widgetData?.content?.issuedCertificates?.length === 0}\" (click)=\"!downloadCertificateLoading && downloadCertificate(widgetData?.content);$event.stopPropagation()\" \n [matTooltipPosition]=\"'below'\"\n [matTooltipDisabled]=\"(translateLabels('viewCertificate', 'cardcontentv2')).length < 11\"\n matTooltip=\"{{'cardcontentv2.viewCertificate' | translate }}\">\n <span class=\"margin-right-xs textwrap\">{{'cardcontentv2.viewCertificate' | translate }}</span>\n <img class=\"stats-icon\" *ngIf=\"!downloadCertificateLoading\" height=\"20\" width=\"20\" src=\"/assets/icons/home/eye-white.svg\">\n <div class=\"center flex flex-middle\" *ngIf=\"downloadCertificateLoading\">\n <mat-spinner strokeWidth=\"2\" stroke=\"'red'\" class=\"white-spinner\" [diameter]=\"16\"></mat-spinner>\n </div>\n </button>\n </div>\n </div>\n </ng-container>\n </mat-card>\n</ng-container>\n\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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-portrait\" [ngClass]=\"widgetData.cardCustomeClass ? widgetData.cardCustomeClass : ''\">\n <div class=\"margin-bottom-xs\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'26px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'98px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div class=\"portrait-subheading title-text\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded width-1-1'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\" margin-right-xs\">\n <sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <span class=\"\"><sb-uic-skeleton-loader [width]=\"'133px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></span>\n </div>\n <div class=\"portrait_widget flex margin-top-xs\">\n <div class=\"flex flex-end flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex flex-align-end progress-wrapper flex-between\">\n <div class=\"progress-block\">\n <div class=\"completed-time\">\n <sb-uic-skeleton-loader [width]=\"'211px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded margin-top-xs md:w-211'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"progress-btn\">\n <sb-uic-skeleton-loader [width]=\"'117px'\" [height]=\"'32px'\" [bindingClass]=\"'flex rounded margin-top-xs'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </mat-card>\n</ng-container>",
10375
+ template: "<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-portrait card-progress-portrait-lib cursor-pointer\" [ngClass]=\"widgetData?.cardCustomeClass ? widgetData?.cardCustomeClass : ''\" (click)=\"raiseTelemetry();getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" >\n <div class=\"course_widget portrait_widget flex margin-bottom-xs\">\n <div class=\"flex flex-end flex-middle course_port\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">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?.primaryCategory\">\n </sb-uic-display-content-type>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <div class=\" img-block-portrait position-relative\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-image ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner-portrait\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\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 </div>\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-image 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-image ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"portrait-subheading mat-subheading-2 title-text\">\n {{ widgetData?.content?.name }}\n </div>\n <div class=\"flex w-full flex-middle\">\n <div class=\"portrait_course_logo_box margin-right-xs\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\" loading=\"lazy\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <span class=\"portrait-org-name font-normal mat-caption\">{{'cardcontentv2.by' | translate}} {{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ? widgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}</span>\n </div>\n\n </div>\n </div>\n <ng-container *ngIf=\"widgetData?.content?.completionPercentage < 100\">\n <div class=\"flex flex-align-end progress-wrapper flex-between\" >\n <div class=\"progress-block\" >\n <div class=\"completed-time\">\n <mat-icon class=\"mat-icon schedule margin-right-xs\">schedule</mat-icon>\n <span>{{widgetData?.content?.completionPercentage}}%</span>\n </div>\n <div>\n <ng-container *ngIf=\"widgetData?.content?.completionStatus < 2\">\n <sb-uic-content-progress class=\"progress-bar-new\" [customClassName]=\"'course-progress-bar'\" *ngIf=\"widgetData?.content?.identifier\"\n [contentId]=\"widgetData?.content?.identifier\" [progress]=\"widgetData?.content?.completionPercentage\"\n [progressType]=\"'percentage'\">\n </sb-uic-content-progress>\n </ng-container>\n </div>\n </div>\n <div class=\"progress-btn\">\n <button class=\"resume-btn flex flex-middle flex-between\" [routerLink]=\"['/app/toc/',widgetData?.content?.identifier,'overview']\"\n [queryParams]=\"{primaryCategory: widgetData?.content?.primaryCategory}\" [state]=\"widgetData?.stateData\" \n [matTooltipPosition]=\"'below'\"\n [matTooltipDisabled]=\"(!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')).length < 11\"\n matTooltip=\"{{!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')}}\">\n <span class=\"textwrap margin-right-xs\">\n {{!widgetData?.content?.completionPercentage ? translateLabels('start', 'cardcontentv2') : translateLabels('resume', 'cardcontentv2')}}</span>\n <img class=\"stats-icon\" height=\"20\" width=\"20\" src=\"/assets/icons/home/play.svg\">\n </button>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"widgetData?.content?.completionPercentage === 100\">\n <div class=\"flex flex-align-end progress-wrapper flex-end mt-1\">\n <div class=\"progress-btn\">\n <button class=\"resume-btn flex flex-middle flex-between view-btn\" [ngClass]=\"{'disable-btn': downloadCertificateLoading || widgetData?.content?.issuedCertificates?.length === 0}\" (click)=\"!downloadCertificateLoading && downloadCertificate(widgetData?.content);$event.stopPropagation()\" \n [matTooltipPosition]=\"'below'\"\n [matTooltipDisabled]=\"(translateLabels('viewCertificate', 'cardcontentv2')).length < 11\"\n matTooltip=\"{{'cardcontentv2.viewCertificate' | translate }}\">\n <span class=\"margin-right-xs textwrap\">{{'cardcontentv2.viewCertificate' | translate }}</span>\n <img class=\"stats-icon\" *ngIf=\"!downloadCertificateLoading\" height=\"20\" width=\"20\" src=\"/assets/icons/home/eye-white.svg\">\n <div class=\"center flex flex-middle\" *ngIf=\"downloadCertificateLoading\">\n <mat-spinner strokeWidth=\"2\" stroke=\"'red'\" class=\"white-spinner\" [diameter]=\"16\"></mat-spinner>\n </div>\n </button>\n </div>\n </div>\n </ng-container>\n </mat-card>\n</ng-container>\n\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\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-portrait\" [ngClass]=\"widgetData.cardCustomeClass ? widgetData.cardCustomeClass : ''\">\n <div class=\"margin-bottom-xs\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'26px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"flex\">\n <div class=\"margin-right-s\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'147px'\" [height]=\"'98px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"width-1-1\">\n <div class=\"portrait-subheading title-text\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded width-1-1'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\" margin-right-xs\">\n <sb-uic-skeleton-loader [width]=\"'24px'\" [height]=\"'24px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <span class=\"\"><sb-uic-skeleton-loader [width]=\"'133px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></span>\n </div>\n <div class=\"portrait_widget flex margin-top-xs\">\n <div class=\"flex flex-end flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex flex-align-end progress-wrapper flex-between\">\n <div class=\"progress-block\">\n <div class=\"completed-time\">\n <sb-uic-skeleton-loader [width]=\"'211px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded margin-top-xs md:w-211'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"progress-btn\">\n <sb-uic-skeleton-loader [width]=\"'117px'\" [height]=\"'32px'\" [bindingClass]=\"'flex rounded margin-top-xs'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </mat-card>\n</ng-container>",
10366
10376
  styles: [".card-portrait{border-radius:12px;border:1px solid rgba(0,0,0,.08);opacity:1;width:318px;min-height:154px;padding:16px}.card-portrait .img-block-portrait{line-height:10px}.card-portrait .card-image{border-radius:8px;opacity:1;background-size:100%;width:147px;height:100px}.card-portrait .portrait-subheading{opacity:1;color:rgba(0,0,0,.87);font-weight:700;font-style:normal;letter-spacing:.25px;text-align:left;word-break:break-word;white-space:initial;margin:0 0 8px;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:40px}.card-portrait .portrait_course_logo_box img{padding:3px;display:inline-block;width:24px;height:24px;border:1px solid #d6d6d6;border-radius:4px;box-sizing:border-box}.card-portrait span.portrait-org-name{width:75%;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.card-portrait .portrait_widget{align-items:center;margin-top:0}.card-portrait .portrait_widget .course_port{border:1px solid #ef951e;padding:4px 8px;align-items:center;border-radius:16px}.card-portrait .portrait_widget .video-icon{opacity:1;color:#ef951e;width:15px;height:15px;font-size:15px}.card-portrait .portrait_widget .portrait-category{color:rgba(0,0,0,.6)!important;font-size:.75rem;opacity:1;font-family:Lato-Regular;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:20px}.card-portrait .progress-wrapper .progress-block{width:60%}.card-portrait .progress-wrapper .progress-block .completed-time{color:#ef951e;display:flex;padding:8px 0}.card-portrait .progress-wrapper .progress-block .completed-time mat-icon{width:1rem;height:1rem;font-size:1rem}.card-portrait .progress-wrapper .progress-block .completed-time span{opacity:1;color:rgba(0,0,0,.87);font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:16px}.card-portrait .progress-wrapper .progress-btn .resume-btn{opacity:1;color:#fff;font-family:Lato-Bold;font-size:14px;font-weight:700;font-style:normal;letter-spacing:.5px;text-align:left;line-height:20px;background:#1a4ca1;border-radius:63px;padding:6px 16px;border:none;width:100%;cursor:pointer}.card-portrait .progress-wrapper .progress-btn .resume-btn .textwrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:82px}.card-portrait .progress-wrapper .progress-btn .resume-btn:hover{background-color:#253379}.card-portrait .progress-bar-new{color:#ef951e!important;height:10px;border-radius:5px}.card-portrait .rating-session mat-icon{font-size:20px;height:20px;width:20px;color:#ef951e}.card-portrait .rating-session .rating-number{font-size:14px}.card-portrait .rating-session .most-enrolled-text{font-size:10px;font-weight:400;padding:4px;background:#ffea9e;border-radius:4px;line-height:12px}.card-portrait .right-corner-portrait{right:8px;bottom:8px}.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}.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}"]
10367
10377
  }] }
10368
10378
  ];
@@ -11010,6 +11020,1663 @@ const WIDGET_REGISTRATION_LIB_CONFIG = [
11010
11020
  }
11011
11021
  ];
11012
11022
 
11023
+ /**
11024
+ * @fileoverview added by tsickle
11025
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
11026
+ */
11027
+ /**
11028
+ * @record
11029
+ */
11030
+ function IStripUnitContentData$1() { }
11031
+ if (false) {
11032
+ /** @type {?} */
11033
+ IStripUnitContentData$1.prototype.key;
11034
+ /** @type {?} */
11035
+ IStripUnitContentData$1.prototype.canHideStrip;
11036
+ /** @type {?|undefined} */
11037
+ IStripUnitContentData$1.prototype.mode;
11038
+ /** @type {?} */
11039
+ IStripUnitContentData$1.prototype.showStrip;
11040
+ /** @type {?} */
11041
+ IStripUnitContentData$1.prototype.disableTranslate;
11042
+ /** @type {?|undefined} */
11043
+ IStripUnitContentData$1.prototype.widgets;
11044
+ /** @type {?} */
11045
+ IStripUnitContentData$1.prototype.stripTitle;
11046
+ /** @type {?|undefined} */
11047
+ IStripUnitContentData$1.prototype.stripTitleLink;
11048
+ /** @type {?|undefined} */
11049
+ IStripUnitContentData$1.prototype.sliderConfig;
11050
+ /** @type {?} */
11051
+ IStripUnitContentData$1.prototype.stripConfig;
11052
+ /** @type {?|undefined} */
11053
+ IStripUnitContentData$1.prototype.tabs;
11054
+ /** @type {?|undefined} */
11055
+ IStripUnitContentData$1.prototype.stripName;
11056
+ /** @type {?|undefined} */
11057
+ IStripUnitContentData$1.prototype.stripLogo;
11058
+ /** @type {?|undefined} */
11059
+ IStripUnitContentData$1.prototype.description;
11060
+ /** @type {?|undefined} */
11061
+ IStripUnitContentData$1.prototype.stripInfo;
11062
+ /** @type {?|undefined} */
11063
+ IStripUnitContentData$1.prototype.noDataWidget;
11064
+ /** @type {?|undefined} */
11065
+ IStripUnitContentData$1.prototype.errorWidget;
11066
+ /** @type {?} */
11067
+ IStripUnitContentData$1.prototype.showOnNoData;
11068
+ /** @type {?} */
11069
+ IStripUnitContentData$1.prototype.showOnLoader;
11070
+ /** @type {?} */
11071
+ IStripUnitContentData$1.prototype.showOnError;
11072
+ /** @type {?|undefined} */
11073
+ IStripUnitContentData$1.prototype.loaderWidgets;
11074
+ /** @type {?|undefined} */
11075
+ IStripUnitContentData$1.prototype.stripBackground;
11076
+ /** @type {?|undefined} */
11077
+ IStripUnitContentData$1.prototype.secondaryHeading;
11078
+ /** @type {?} */
11079
+ IStripUnitContentData$1.prototype.viewMoreUrl;
11080
+ /** @type {?|undefined} */
11081
+ IStripUnitContentData$1.prototype.request;
11082
+ }
11083
+ class ContentStripWithTabsPillsComponent extends WidgetBaseComponent {
11084
+ /**
11085
+ * @param {?} environment
11086
+ * @param {?} contentSvc
11087
+ * @param {?} loggerSvc
11088
+ * @param {?} eventSvc
11089
+ * @param {?} configSvc
11090
+ * @param {?} utilitySvc
11091
+ * @param {?} router
11092
+ * @param {?} userSvc
11093
+ * @param {?} translate
11094
+ * @param {?} langtranslations
11095
+ */
11096
+ constructor(
11097
+ // private contentStripSvc: ContentStripNewMultipleService,
11098
+ environment, contentSvc, loggerSvc, eventSvc, configSvc, utilitySvc, router, userSvc, translate, langtranslations) {
11099
+ super();
11100
+ this.contentSvc = contentSvc;
11101
+ this.loggerSvc = loggerSvc;
11102
+ this.eventSvc = eventSvc;
11103
+ this.configSvc = configSvc;
11104
+ this.utilitySvc = utilitySvc;
11105
+ this.router = router;
11106
+ this.userSvc = userSvc;
11107
+ this.translate = translate;
11108
+ this.langtranslations = langtranslations;
11109
+ this.emptyResponse = new EventEmitter();
11110
+ this.viewAllResponse = new EventEmitter();
11111
+ this.telemtryResponse = new EventEmitter();
11112
+ this.providerId = '';
11113
+ this.emitViewAll = false;
11114
+ this.channnelName = '';
11115
+ this.id = `ws-strip-miltiple_${Math.random()}`;
11116
+ this.stripsResultDataMap = {};
11117
+ this.stripsKeyOrder = [];
11118
+ this.showAccordionData = true;
11119
+ this.showParentLoader = false;
11120
+ this.showParentError = false;
11121
+ this.showParentNoData = false;
11122
+ this.errorDataCount = 0;
11123
+ this.noDataCount = 0;
11124
+ this.successDataCount = 0;
11125
+ this.contentAvailable = true;
11126
+ this.baseUrl = this.configSvc.sitePath || '';
11127
+ this.veifiedKarmayogi = false;
11128
+ this.changeEventSubscription = null;
11129
+ this.defaultMaxWidgets = 12;
11130
+ this.todaysEvents = [];
11131
+ if (localStorage.getItem('websiteLanguage')) {
11132
+ this.translate.setDefaultLang('en');
11133
+ /** @type {?} */
11134
+ let lang = JSON.stringify(localStorage.getItem('websiteLanguage'));
11135
+ lang = lang.replace(/\"/g, '');
11136
+ this.translate.use(lang);
11137
+ }
11138
+ this.environment = environment;
11139
+ }
11140
+ /**
11141
+ * @return {?}
11142
+ */
11143
+ ngOnInit() {
11144
+ // const url = window.location.href
11145
+ this.initData();
11146
+ this.contentSvc.telemetryData$.subscribe((/**
11147
+ * @param {?} data
11148
+ * @return {?}
11149
+ */
11150
+ (data) => {
11151
+ this.telemtryResponse.emit(data);
11152
+ }));
11153
+ }
11154
+ /**
11155
+ * @return {?}
11156
+ */
11157
+ ngOnDestroy() {
11158
+ if (this.changeEventSubscription) {
11159
+ this.changeEventSubscription.unsubscribe();
11160
+ }
11161
+ }
11162
+ /**
11163
+ * @param {?} key
11164
+ * @return {?}
11165
+ */
11166
+ showAccordion(key) {
11167
+ if (this.utilitySvc.isMobile && this.stripsResultDataMap[key].mode === 'accordion') {
11168
+ return this.showAccordionData;
11169
+ }
11170
+ return true;
11171
+ }
11172
+ /**
11173
+ * @param {?} key
11174
+ * @return {?}
11175
+ */
11176
+ setHiddenForStrip(key) {
11177
+ this.stripsResultDataMap[key].showStrip = false;
11178
+ sessionStorage.setItem(`cstrip_${key}`, '1');
11179
+ }
11180
+ /**
11181
+ * @private
11182
+ * @param {?} key
11183
+ * @return {?}
11184
+ */
11185
+ getIfStripHidden(key) {
11186
+ /** @type {?} */
11187
+ const storageItem = sessionStorage.getItem(`cstrip_${key}`);
11188
+ return Boolean(storageItem !== '1');
11189
+ }
11190
+ /**
11191
+ * @private
11192
+ * @return {?}
11193
+ */
11194
+ initData() {
11195
+ this.stripsKeyOrder = this.widgetData && this.widgetData.strips && this.widgetData.strips.map((/**
11196
+ * @param {?} strip
11197
+ * @return {?}
11198
+ */
11199
+ strip => strip.key)) || [];
11200
+ if (this.widgetData.loader && this.widgetData.strips.length) {
11201
+ this.showParentLoader = true;
11202
+ }
11203
+ // Fetch the data
11204
+ for (const strip of this.widgetData.strips) {
11205
+ if (this.checkForEmptyWidget(strip)) {
11206
+ this.fetchStripFromRequestData(strip, false);
11207
+ }
11208
+ else {
11209
+ this.processStrip(strip, [], 'done', true, null);
11210
+ }
11211
+ }
11212
+ // Subscription for changes
11213
+ /** @type {?} */
11214
+ const keyAndEvent = this.widgetData.strips
11215
+ .map((/**
11216
+ * @param {?} strip
11217
+ * @return {?}
11218
+ */
11219
+ strip => ({
11220
+ key: strip.key,
11221
+ type: (strip.refreshEvent && strip.refreshEvent.eventType) || '',
11222
+ from: (strip.refreshEvent && strip.refreshEvent.from.toString()) || '',
11223
+ })))
11224
+ .filter((/**
11225
+ * @param {?} __0
11226
+ * @return {?}
11227
+ */
11228
+ ({ key, type, from }) => key && type && from));
11229
+ /** @type {?} */
11230
+ const eventTypeSet = new Set(keyAndEvent.map((/**
11231
+ * @param {?} e
11232
+ * @return {?}
11233
+ */
11234
+ e => e.type)));
11235
+ this.changeEventSubscription = this.eventSvc.events$
11236
+ .pipe(filter((/**
11237
+ * @param {?} event
11238
+ * @return {?}
11239
+ */
11240
+ event => eventTypeSet.has(event.eventType))))
11241
+ .subscribe((/**
11242
+ * @param {?} event
11243
+ * @return {?}
11244
+ */
11245
+ event => {
11246
+ keyAndEvent
11247
+ .filter((/**
11248
+ * @param {?} e
11249
+ * @return {?}
11250
+ */
11251
+ e => e.type === event.eventType && e.from === event.from))
11252
+ .map((/**
11253
+ * @param {?} e
11254
+ * @return {?}
11255
+ */
11256
+ e => e.key))
11257
+ .forEach((/**
11258
+ * @param {?} k
11259
+ * @return {?}
11260
+ */
11261
+ k => this.fetchStripFromKey(k, false)));
11262
+ }));
11263
+ }
11264
+ /**
11265
+ * @private
11266
+ * @param {?} key
11267
+ * @param {?=} calculateParentStatus
11268
+ * @return {?}
11269
+ */
11270
+ fetchStripFromKey(key, calculateParentStatus = true) {
11271
+ /** @type {?} */
11272
+ const stripData = this.widgetData.strips.find((/**
11273
+ * @param {?} strip
11274
+ * @return {?}
11275
+ */
11276
+ strip => strip.key === key));
11277
+ if (stripData) {
11278
+ this.fetchStripFromRequestData(stripData, calculateParentStatus);
11279
+ }
11280
+ }
11281
+ /**
11282
+ * @param {?} data
11283
+ * @return {?}
11284
+ */
11285
+ isStripShowing(data) {
11286
+ /** @type {?} */
11287
+ let count = 0;
11288
+ if (data && data.key === this.environment.programStripKey && (!data.tabs || !data.tabs.length) &&
11289
+ data.stripTitle === this.environment.programStripName && data.widgets.length > 0) {
11290
+ data.widgets.forEach((/**
11291
+ * @param {?} key
11292
+ * @return {?}
11293
+ */
11294
+ (key) => {
11295
+ if (key && key.widgetData.content.primaryCategory === this.environment.programStripPrimaryCategory) {
11296
+ count = count + 1;
11297
+ }
11298
+ }));
11299
+ if (count > 0) {
11300
+ data.showStrip = true;
11301
+ }
11302
+ else {
11303
+ data.showStrip = false;
11304
+ }
11305
+ }
11306
+ // console.log('data.key', data, data.key, data.widgets);
11307
+ return data.showStrip;
11308
+ }
11309
+ /**
11310
+ * @return {?}
11311
+ */
11312
+ get isMobile() {
11313
+ return this.utilitySvc.isMobile || false;
11314
+ }
11315
+ /**
11316
+ * @param {?} data
11317
+ * @return {?}
11318
+ */
11319
+ getdata(data) {
11320
+ if (data.stripInfo) {
11321
+ return data.stripInfo.widget;
11322
+ }
11323
+ return {};
11324
+ }
11325
+ /**
11326
+ * @param {?} wData
11327
+ * @param {?} data
11328
+ * @return {?}
11329
+ */
11330
+ checkCondition(wData, data) {
11331
+ if (wData.strips[0].stripConfig && wData.strips[0].stripConfig.hideShowAll) {
11332
+ return !wData.strips[0].stripConfig.hideShowAll;
11333
+ }
11334
+ return wData.strips[0].viewMoreUrl && data.widgets && data.widgets.length >= 4;
11335
+ }
11336
+ /**
11337
+ * @param {?} data
11338
+ * @return {?}
11339
+ */
11340
+ checkVisible(data) {
11341
+ return data.stripInfo && data.stripInfo.visibilityMode === 'visible';
11342
+ }
11343
+ /**
11344
+ * @param {?} data
11345
+ * @return {?}
11346
+ */
11347
+ getContineuLearningLenth(data) {
11348
+ return data.widgets ? data.widgets.length : 0;
11349
+ }
11350
+ /**
11351
+ * @param {?} data
11352
+ * @return {?}
11353
+ */
11354
+ getLength(data) {
11355
+ if (!data.tabs || !data.tabs.length) {
11356
+ return data.widgets ? data.widgets.length : 0;
11357
+ }
11358
+ {
11359
+ // if tabs are there check if each tab has widgets and get the tab with max widgets
11360
+ /** @type {?} */
11361
+ let tabWithMaxWidgets = {};
11362
+ data.tabs.forEach((/**
11363
+ * @param {?} tab
11364
+ * @return {?}
11365
+ */
11366
+ (tab) => {
11367
+ if (tab.pillsData && tab.pillsData.length) {
11368
+ tabWithMaxWidgets = tab.pillsData.reduce((/**
11369
+ * @param {?} prev
11370
+ * @param {?} current
11371
+ * @return {?}
11372
+ */
11373
+ (prev, current) => {
11374
+ if (!prev.widgets && !current.widgets) {
11375
+ return current;
11376
+ }
11377
+ if (prev.widgets && current.widgets) {
11378
+ return (prev.widgets.length > current.widgets.length) ? prev : current;
11379
+ }
11380
+ if (current.widgets && !prev.widgets) {
11381
+ return current;
11382
+ }
11383
+ if (!current.widgets && prev.widgets) {
11384
+ return prev;
11385
+ }
11386
+ return current;
11387
+ // return (prev.widgets && current.widgets && (prev.widgets.length > current.widgets.length) ) ? prev : current
11388
+ // tslint:disable-next-line: align
11389
+ }), data.tabs[0]);
11390
+ }
11391
+ }));
11392
+ // if tabs has atleast 1 widgets then strip will show or else not
11393
+ return tabWithMaxWidgets.widgets ? tabWithMaxWidgets.widgets.length : 0;
11394
+ }
11395
+ }
11396
+ /**
11397
+ * @private
11398
+ * @param {?} v6filters
11399
+ * @return {?}
11400
+ */
11401
+ getFiltersFromArray(v6filters) {
11402
+ /** @type {?} */
11403
+ const filters = {};
11404
+ if (v6filters.constructor === Array) {
11405
+ v6filters.forEach(((/**
11406
+ * @param {?} f
11407
+ * @return {?}
11408
+ */
11409
+ (f) => {
11410
+ Object.keys(f).forEach((/**
11411
+ * @param {?} key
11412
+ * @return {?}
11413
+ */
11414
+ key => {
11415
+ filters[key] = f[key];
11416
+ }));
11417
+ })));
11418
+ return filters;
11419
+ }
11420
+ return v6filters;
11421
+ }
11422
+ /**
11423
+ * @private
11424
+ * @param {?} v6filters
11425
+ * @return {?}
11426
+ */
11427
+ transformSearchV6FiltersV2(v6filters) {
11428
+ /** @type {?} */
11429
+ const filters = {};
11430
+ if (v6filters.constructor === Array) {
11431
+ v6filters.forEach(((/**
11432
+ * @param {?} f
11433
+ * @return {?}
11434
+ */
11435
+ (f) => {
11436
+ Object.keys(f).forEach((/**
11437
+ * @param {?} key
11438
+ * @return {?}
11439
+ */
11440
+ key => {
11441
+ filters[key] = f[key];
11442
+ }));
11443
+ })));
11444
+ return filters;
11445
+ }
11446
+ return v6filters;
11447
+ }
11448
+ /**
11449
+ * @param {?} filters
11450
+ * @return {?}
11451
+ */
11452
+ checkForDateFilters(filters) {
11453
+ /** @type {?} */
11454
+ let userData;
11455
+ if (this.configSvc.userProfile) {
11456
+ userData = this.configSvc.userProfile;
11457
+ }
11458
+ if (filters && filters.hasOwnProperty('batches.endDate')) {
11459
+ // tslint:disable-next-line
11460
+ filters['batches.endDate']['>='] = eval(filters['batches.endDate']['>=']);
11461
+ }
11462
+ else if (filters && filters.hasOwnProperty('batches.enrollmentEndDate')) {
11463
+ // tslint:disable-next-line
11464
+ filters['batches.enrollmentEndDate']['>='] = eval(filters['batches.enrollmentEndDate']['>=']);
11465
+ }
11466
+ else if (filters.organisation &&
11467
+ filters.organisation.indexOf('<orgID>') >= 0) {
11468
+ if (this.providerId) {
11469
+ filters.organisation = this.providerId;
11470
+ }
11471
+ else {
11472
+ filters.organisation = userData && userData.rootOrgId;
11473
+ if (filters && filters.hasOwnProperty('designation')) {
11474
+ filters.designation = userData.professionalDetails.length > 0 ?
11475
+ userData.professionalDetails[0].designation : '';
11476
+ }
11477
+ }
11478
+ }
11479
+ return filters;
11480
+ }
11481
+ /**
11482
+ * @private
11483
+ * @param {?} strip
11484
+ * @param {?=} calculateParentStatus
11485
+ * @return {?}
11486
+ */
11487
+ fetchStripFromRequestData(strip, calculateParentStatus = true) {
11488
+ // setting initial values
11489
+ strip.loaderWidgets = this.transformSkeletonToWidgets(strip);
11490
+ this.processStrip(strip, [], 'fetching', false, null);
11491
+ this.fetchFromSearchV6(strip, calculateParentStatus);
11492
+ this.fetchForYouData(strip, calculateParentStatus);
11493
+ this.fetchAllCbpPlans(strip, calculateParentStatus);
11494
+ // this.enrollInterval = setInterval(() => {
11495
+ // this.fetchAllCbpPlans(strip, calculateParentStatus)
11496
+ // }, 1000)
11497
+ }
11498
+ /**
11499
+ * @param {?} data
11500
+ * @return {?}
11501
+ */
11502
+ toggleInfo(data) {
11503
+ /** @type {?} */
11504
+ const stripInfo = this.stripsResultDataMap[data.key].stripInfo;
11505
+ if (stripInfo) {
11506
+ if (stripInfo.mode !== 'below') {
11507
+ this.loggerSvc.warn(`strip info mode: ${stripInfo.mode} not implemented yet`);
11508
+ stripInfo.mode = 'below';
11509
+ }
11510
+ if (stripInfo.mode === 'below') {
11511
+ this.stripsResultDataMap[data.key].stripInfo = Object.assign({}, stripInfo, { visibilityMode: stripInfo.visibilityMode === 'hidden' ? 'visible' : 'hidden' });
11512
+ }
11513
+ }
11514
+ }
11515
+ /**
11516
+ * @private
11517
+ * @param {?} contents
11518
+ * @param {?} strip
11519
+ * @return {?}
11520
+ */
11521
+ transformContentsToWidgets(contents, strip) {
11522
+ return (contents || []).map((/**
11523
+ * @param {?} content
11524
+ * @param {?} idx
11525
+ * @return {?}
11526
+ */
11527
+ (content, idx) => (content ? {
11528
+ widgetType: 'cardLib',
11529
+ widgetSubType: 'cardContentLib',
11530
+ widgetHostClass: 'mb-2',
11531
+ widgetData: Object.assign({ content }, (content.batch && { batch: content.batch }), { cardSubType: strip.stripConfig && strip.stripConfig.cardSubType, cardCustomeClass: strip.customeClass ? strip.customeClass : '', context: { pageSection: strip.key, position: idx }, intranetMode: strip.stripConfig && strip.stripConfig.intranetMode, deletedMode: strip.stripConfig && strip.stripConfig.deletedMode, contentTags: strip.stripConfig && strip.stripConfig.contentTags }),
11532
+ } : {
11533
+ widgetType: 'card',
11534
+ widgetSubType: 'cardContent',
11535
+ widgetHostClass: 'mb-2',
11536
+ widgetData: {},
11537
+ })));
11538
+ }
11539
+ /**
11540
+ * @private
11541
+ * @param {?} contents
11542
+ * @param {?} strip
11543
+ * @return {?}
11544
+ */
11545
+ transformEventsToWidgets(contents, strip) {
11546
+ this.eventSvc.setEventListData(contents);
11547
+ return (this.eventSvc.todaysEvents || []).map((/**
11548
+ * @param {?} content
11549
+ * @param {?} idx
11550
+ * @return {?}
11551
+ */
11552
+ (content, idx) => (content ? {
11553
+ widgetType: 'card',
11554
+ widgetSubType: 'eventHubCard',
11555
+ widgetHostClass: 'mb-2',
11556
+ widgetData: {
11557
+ content,
11558
+ cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,
11559
+ cardCustomeClass: strip.customeClass ? strip.customeClass : '',
11560
+ context: { pageSection: strip.key, position: idx },
11561
+ intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,
11562
+ deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,
11563
+ contentTags: strip.stripConfig && strip.stripConfig.contentTags,
11564
+ },
11565
+ } : {
11566
+ widgetType: 'card',
11567
+ widgetSubType: 'eventHubCard',
11568
+ widgetHostClass: 'mb-2',
11569
+ widgetData: {},
11570
+ })));
11571
+ }
11572
+ /**
11573
+ * @private
11574
+ * @param {?} strip
11575
+ * @return {?}
11576
+ */
11577
+ transformSkeletonToWidgets(strip) {
11578
+ return [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10].map((/**
11579
+ * @param {?} _content
11580
+ * @return {?}
11581
+ */
11582
+ _content => ({
11583
+ widgetType: 'cardLib',
11584
+ widgetSubType: 'cardContentLib',
11585
+ widgetHostClass: 'mb-2',
11586
+ widgetData: {
11587
+ cardSubType: strip.loaderConfig && strip.loaderConfig.cardSubType || 'card-standard-skeleton',
11588
+ cardCustomeClass: strip.customeClass ? strip.customeClass : '',
11589
+ },
11590
+ })));
11591
+ }
11592
+ /**
11593
+ * @private
11594
+ * @param {?} strip
11595
+ * @param {?=} results
11596
+ * @param {?=} fetchStatus
11597
+ * @param {?=} calculateParentStatus
11598
+ * @param {?=} _viewMoreUrl
11599
+ * @param {?=} tabsResults
11600
+ * @return {?}
11601
+ */
11602
+ processStrip(strip, results = [], fetchStatus, calculateParentStatus = true, _viewMoreUrl, tabsResults) {
11603
+ return __awaiter(this, void 0, void 0, function* () {
11604
+ /** @type {?} */
11605
+ const stripData = {
11606
+ viewMoreUrl: strip.viewMoreUrl,
11607
+ key: strip.key,
11608
+ canHideStrip: Boolean(strip.canHideStrip),
11609
+ showStrip: this.getIfStripHidden(strip.key),
11610
+ noDataWidget: strip.noDataWidget,
11611
+ errorWidget: strip.errorWidget,
11612
+ stripInfo: strip.info,
11613
+ stripTitle: strip.title,
11614
+ stripTitleLink: strip.stripTitleLink,
11615
+ disableTranslate: strip.disableTranslate,
11616
+ sliderConfig: strip.sliderConfig,
11617
+ tabs: tabsResults ? tabsResults : strip.tabs,
11618
+ stripName: strip.name,
11619
+ mode: strip.mode,
11620
+ stripConfig: strip.stripConfig,
11621
+ stripBackground: strip.stripBackground,
11622
+ secondaryHeading: strip.secondaryHeading,
11623
+ loaderWidgets: strip.loaderWidgets || [],
11624
+ widgets: fetchStatus === 'done'
11625
+ ? [
11626
+ ...(strip.preWidgets || []).map((/**
11627
+ * @param {?} w
11628
+ * @return {?}
11629
+ */
11630
+ w => (Object.assign({}, w, { widgetHostClass: `mb-2 ${w.widgetHostClass}` })))),
11631
+ ...results,
11632
+ ...(strip.postWidgets || []).map((/**
11633
+ * @param {?} w
11634
+ * @return {?}
11635
+ */
11636
+ w => (Object.assign({}, w, { widgetHostClass: `mb-2 ${w.widgetHostClass}` })))),
11637
+ ]
11638
+ : [],
11639
+ showOnNoData: Boolean(strip.noDataWidget &&
11640
+ !((strip.preWidgets || []).length + results.length + (strip.postWidgets || []).length) &&
11641
+ fetchStatus === 'done'),
11642
+ showOnLoader: Boolean(strip.loader && fetchStatus === 'fetching'),
11643
+ showOnError: Boolean(strip.errorWidget && fetchStatus === 'error'),
11644
+ };
11645
+ // const stripData = this.stripsResultDataMap[strip.key]
11646
+ this.stripsResultDataMap = Object.assign({}, this.stripsResultDataMap, { [strip.key]: stripData });
11647
+ if (!tabsResults) {
11648
+ if (calculateParentStatus &&
11649
+ (fetchStatus === 'done' || fetchStatus === 'error') &&
11650
+ stripData.widgets) {
11651
+ this.checkParentStatus(fetchStatus, stripData.widgets.length);
11652
+ }
11653
+ if (calculateParentStatus && !(results && results.length > 0)) {
11654
+ this.contentAvailable = false;
11655
+ }
11656
+ else if (results && results.length > 0) {
11657
+ this.contentAvailable = true;
11658
+ }
11659
+ }
11660
+ else {
11661
+ this.contentAvailable = true;
11662
+ }
11663
+ });
11664
+ }
11665
+ /**
11666
+ * @private
11667
+ * @param {?} fetchStatus
11668
+ * @param {?} stripWidgetsCount
11669
+ * @return {?}
11670
+ */
11671
+ checkParentStatus(fetchStatus, stripWidgetsCount) {
11672
+ if (fetchStatus === 'done' && !stripWidgetsCount) {
11673
+ this.noDataCount += 1;
11674
+ }
11675
+ else if (fetchStatus === 'done' && stripWidgetsCount) {
11676
+ this.successDataCount += 1;
11677
+ }
11678
+ else if (fetchStatus === 'error') {
11679
+ this.errorDataCount += 1;
11680
+ }
11681
+ /** @type {?} */
11682
+ const settledCount = this.noDataCount + this.successDataCount + this.errorDataCount;
11683
+ /** @type {?} */
11684
+ const totalCount = this.widgetData.strips.length;
11685
+ if (this.successDataCount > 0 && settledCount < totalCount) {
11686
+ return;
11687
+ }
11688
+ this.showParentLoader = settledCount !== totalCount;
11689
+ this.showParentNoData =
11690
+ this.noDataCount > 0 && this.noDataCount + this.errorDataCount === totalCount;
11691
+ this.showParentError = this.errorDataCount === totalCount;
11692
+ }
11693
+ /**
11694
+ * @param {?} strip
11695
+ * @return {?}
11696
+ */
11697
+ checkForEmptyWidget(strip) {
11698
+ if (strip.request &&
11699
+ ((strip.request.api && Object.keys(strip.request.api).length) ||
11700
+ (strip.request.search && Object.keys(strip.request.search).length) ||
11701
+ (strip.request.searchRegionRecommendation &&
11702
+ Object.keys(strip.request.searchRegionRecommendation).length) ||
11703
+ (strip.request.cbpList && Object.keys(strip.request.cbpList).length) ||
11704
+ (strip && strip.tabs.length))) {
11705
+ return true;
11706
+ }
11707
+ return false;
11708
+ }
11709
+ /**
11710
+ * @param {?} strip
11711
+ * @param {?} currentTab
11712
+ * @param {?} calculateParentStatus
11713
+ * @return {?}
11714
+ */
11715
+ getTabDataByfilter(strip, currentTab, calculateParentStatus) {
11716
+ // tslint:disable:no-console
11717
+ console.log('strip -- ', strip);
11718
+ // tslint:disable:no-console
11719
+ console.log('currentTab -- ', currentTab);
11720
+ // tslint:disable:no-console
11721
+ console.log('calculateParentStatus-- ', calculateParentStatus);
11722
+ // TODO: Write logic for individual filter if passed in config
11723
+ // add switch case based on config key passed
11724
+ }
11725
+ /**
11726
+ * @param {?} stripsResultDataMap
11727
+ * @param {?} key
11728
+ * @return {?}
11729
+ */
11730
+ getSelectedIndex(stripsResultDataMap, key) {
11731
+ /** @type {?} */
11732
+ let returnValue = 0;
11733
+ return returnValue;
11734
+ }
11735
+ /**
11736
+ * @param {?} label
11737
+ * @param {?} type
11738
+ * @return {?}
11739
+ */
11740
+ translateLabels(label, type) {
11741
+ return this.langtranslations.translateLabel(label, type, '');
11742
+ }
11743
+ /**
11744
+ * @param {?} index
11745
+ * @param {?} item
11746
+ * @return {?}
11747
+ */
11748
+ identify(index, item) {
11749
+ if (index >= 0) { }
11750
+ return item;
11751
+ }
11752
+ /**
11753
+ * @param {?} index
11754
+ * @param {?} item
11755
+ * @return {?}
11756
+ */
11757
+ tracker(index, item) {
11758
+ if (index >= 0) { }
11759
+ return get(item, 'widgetData.content.identifier');
11760
+ }
11761
+ /**
11762
+ * @param {?} stripData
11763
+ * @return {?}
11764
+ */
11765
+ raiseTelemetry(stripData) {
11766
+ this.telemtryResponse.emit(stripData);
11767
+ }
11768
+ /**
11769
+ * @param {?} stripData
11770
+ * @param {?} path
11771
+ * @param {?} queryParamsData
11772
+ * @return {?}
11773
+ */
11774
+ redirectViewAll(stripData, path, queryParamsData) {
11775
+ if (this.emitViewAll) {
11776
+ this.viewAllResponse.emit(stripData);
11777
+ }
11778
+ else {
11779
+ this.router.navigate([path], { queryParams: queryParamsData });
11780
+ }
11781
+ }
11782
+ // new code writting from here====new====
11783
+ /**
11784
+ * @param {?} strip
11785
+ * @param {?=} calculateParentStatus
11786
+ * @return {?}
11787
+ */
11788
+ fetchForYouData(strip, calculateParentStatus = true) {
11789
+ if (strip && strip.type === 'forYou') {
11790
+ if (strip.tabs && strip.tabs.length) {
11791
+ /** @type {?} */
11792
+ const firstTab = strip.tabs[0];
11793
+ /** @type {?} */
11794
+ const pillData = firstTab.pillsData[0];
11795
+ if (pillData.requestRequired) {
11796
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
11797
+ /** @type {?} */
11798
+ const allPills = this.stripsResultDataMap[strip.key].tabs[0].pillsData;
11799
+ /** @type {?} */
11800
+ const currenPillsFromMap = (/** @type {?} */ ((allPills && allPills.length && allPills[0])));
11801
+ this.getTabDataByNewReqTrending(strip, 0, 0, currenPillsFromMap, calculateParentStatus);
11802
+ if (this.stripsResultDataMap[strip.key] && currenPillsFromMap) {
11803
+ this.stripsResultDataMap[strip.key].viewMoreUrl.queryParams = Object.assign({}, this.stripsResultDataMap[strip.key].viewMoreUrl.queryParams, { key: strip.key, tabSelected: firstTab.value, pillSelected: pillData.value });
11804
+ }
11805
+ }
11806
+ }
11807
+ }
11808
+ }
11809
+ }
11810
+ /**
11811
+ * @param {?} strip
11812
+ * @param {?=} calculateParentStatus
11813
+ * @return {?}
11814
+ */
11815
+ fetchFromSearchV6(strip, calculateParentStatus = true) {
11816
+ return __awaiter(this, void 0, void 0, function* () {
11817
+ if (strip.request && strip.request.searchV6 && Object.keys(strip.request.searchV6).length) {
11818
+ // if (!(strip.request.searchV6.locale && strip.request.searchV6.locale.length > 0)) {
11819
+ // if (this.configSvc.activeLocale) {
11820
+ // strip.request.searchV6.locale = [this.configSvc.activeLocale.locals[0]]
11821
+ // } else {
11822
+ // strip.request.searchV6.locale = ['en']
11823
+ // }
11824
+ // }
11825
+ /** @type {?} */
11826
+ let originalFilters = [];
11827
+ // tslint:disable:no-console
11828
+ if (strip.request &&
11829
+ strip.request.searchV6 &&
11830
+ strip.request.searchV6.request &&
11831
+ strip.request.searchV6.request.filters) {
11832
+ originalFilters = strip.request.searchV6.request.filters;
11833
+ strip.request.searchV6.request.filters = this.checkForDateFilters(strip.request.searchV6.request.filters);
11834
+ strip.request.searchV6.request.filters = this.getFiltersFromArray(strip.request.searchV6.request.filters);
11835
+ }
11836
+ if (strip.tabs && strip.tabs.length) {
11837
+ // TODO: Have to extract requestRequired to outer level of tabs config
11838
+ /** @type {?} */
11839
+ const firstTab = strip.tabs[0];
11840
+ if (firstTab.requestRequired) {
11841
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
11842
+ /** @type {?} */
11843
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
11844
+ /** @type {?} */
11845
+ const currentTabFromMap = (/** @type {?} */ ((allTabs && allTabs.length && allTabs[0])));
11846
+ this.getTabDataByNewReqSearchV6(strip, 0, 0, currentTabFromMap, calculateParentStatus);
11847
+ }
11848
+ }
11849
+ }
11850
+ else {
11851
+ try {
11852
+ /** @type {?} */
11853
+ const response = yield this.searchV6Request(strip, strip.request, calculateParentStatus);
11854
+ // console.log('calling after - response, ', response)
11855
+ if (response && response.results) {
11856
+ // console.log('calling after-- ')
11857
+ if (response.results.result.content) {
11858
+ this.processStrip(strip, this.transformContentsToWidgets(response.results.result.content, strip), 'done', calculateParentStatus, response.viewMoreUrl);
11859
+ }
11860
+ else if (response.results.result.Event) {
11861
+ this.processStrip(strip, this.transformEventsToWidgets(response.results.result.Event, strip), 'done', calculateParentStatus, response.viewMoreUrl);
11862
+ }
11863
+ else {
11864
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
11865
+ }
11866
+ }
11867
+ else {
11868
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
11869
+ }
11870
+ }
11871
+ catch (error) {
11872
+ // Handle errors
11873
+ // console.error('Error:', error);
11874
+ }
11875
+ }
11876
+ }
11877
+ });
11878
+ }
11879
+ /**
11880
+ * @param {?} strip
11881
+ * @param {?} tabIndex
11882
+ * @param {?} pillIndex
11883
+ * @param {?} currentTab
11884
+ * @param {?} calculateParentStatus
11885
+ * @return {?}
11886
+ */
11887
+ getTabDataByNewReqTrending(strip, tabIndex, pillIndex, currentTab, calculateParentStatus) {
11888
+ return __awaiter(this, void 0, void 0, function* () {
11889
+ try {
11890
+ /** @type {?} */
11891
+ const response = yield this.trendingSearchRequest(strip, currentTab.request, calculateParentStatus);
11892
+ /** @type {?} */
11893
+ let tabResults = [];
11894
+ if (response && response.results && response.results.response) {
11895
+ /** @type {?} */
11896
+ const content = response.results.response[currentTab.value] || [];
11897
+ /** @type {?} */
11898
+ const widgets = this.transformContentsToWidgets(content, strip);
11899
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
11900
+ /** @type {?} */
11901
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
11902
+ /** @type {?} */
11903
+ const allPills = this.stripsResultDataMap[strip.key].tabs[tabIndex].pillsData;
11904
+ this.resetSelectedPill(allPills);
11905
+ if (allTabs && allTabs.length && allTabs[tabIndex]) {
11906
+ if (allPills && allPills.length && allPills[pillIndex]) {
11907
+ allPills[pillIndex] = Object.assign({}, allPills[pillIndex], { widgets, fetchTabStatus: 'done', selected: true });
11908
+ }
11909
+ allTabs[tabIndex] = Object.assign({}, allTabs[tabIndex], { widgets, fetchTabStatus: 'done' });
11910
+ tabResults = allTabs;
11911
+ }
11912
+ }
11913
+ this.processStrip(strip, widgets, 'done', calculateParentStatus, response.viewMoreUrl, tabResults // tabResults as widgets
11914
+ );
11915
+ }
11916
+ else {
11917
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
11918
+ /** @type {?} */
11919
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
11920
+ /** @type {?} */
11921
+ const allPills = this.stripsResultDataMap[strip.key].tabs[tabIndex].pillsData;
11922
+ this.resetSelectedPill(allPills);
11923
+ if (allTabs && allTabs.length && allTabs[tabIndex]) {
11924
+ if (allPills && allPills.length && allPills[pillIndex]) {
11925
+ allPills[pillIndex] = Object.assign({}, allPills[pillIndex], { widgets: [], fetchTabStatus: 'done', selected: true });
11926
+ }
11927
+ allTabs[tabIndex] = Object.assign({}, allTabs[tabIndex], { widgets: [], fetchTabStatus: 'done' });
11928
+ tabResults = allTabs;
11929
+ }
11930
+ }
11931
+ this.processStrip(strip, [], 'done', calculateParentStatus, null);
11932
+ }
11933
+ }
11934
+ catch (error) {
11935
+ // Handle errors
11936
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
11937
+ }
11938
+ });
11939
+ }
11940
+ /**
11941
+ * @param {?} strip
11942
+ * @param {?} tabIndex
11943
+ * @param {?} pillIndex
11944
+ * @param {?} currentTab
11945
+ * @param {?} calculateParentStatus
11946
+ * @return {?}
11947
+ */
11948
+ getTabDataByNewReqSearchV6(strip, tabIndex, pillIndex, currentTab, calculateParentStatus) {
11949
+ return __awaiter(this, void 0, void 0, function* () {
11950
+ try {
11951
+ /** @type {?} */
11952
+ const response = yield this.searchV6Request(strip, currentTab.request, calculateParentStatus);
11953
+ if (response && response.results) {
11954
+ /** @type {?} */
11955
+ const widgets = this.transformContentsToWidgets(response.results.result.content, strip);
11956
+ /** @type {?} */
11957
+ let tabResults = [];
11958
+ if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {
11959
+ /** @type {?} */
11960
+ const allTabs = this.stripsResultDataMap[strip.key].tabs;
11961
+ /** @type {?} */
11962
+ const allPills = this.stripsResultDataMap[strip.key].tabs[tabIndex].pillsData;
11963
+ this.resetSelectedPill(allPills);
11964
+ if (allTabs && allTabs.length && allTabs[tabIndex]) {
11965
+ if (allPills && allPills.length && allPills[pillIndex]) {
11966
+ allPills[pillIndex] = Object.assign({}, allPills[pillIndex], { widgets, fetchTabStatus: 'done', selected: true });
11967
+ }
11968
+ allTabs[tabIndex] = Object.assign({}, allTabs[tabIndex], { widgets, fetchTabStatus: 'done' });
11969
+ tabResults = allTabs;
11970
+ }
11971
+ }
11972
+ this.processStrip(strip, widgets, 'done', calculateParentStatus, response.viewMoreUrl, tabResults // tabResults as widgets
11973
+ );
11974
+ }
11975
+ else {
11976
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
11977
+ }
11978
+ }
11979
+ catch (error) {
11980
+ // Handle errors
11981
+ // console.error('Error:', error);
11982
+ }
11983
+ });
11984
+ }
11985
+ /**
11986
+ * @param {?} strip
11987
+ * @param {?} request
11988
+ * @param {?} calculateParentStatus
11989
+ * @return {?}
11990
+ */
11991
+ trendingSearchRequest(strip, request, calculateParentStatus) {
11992
+ return __awaiter(this, void 0, void 0, function* () {
11993
+ /** @type {?} */
11994
+ const originalFilters = [];
11995
+ return new Promise((/**
11996
+ * @param {?} resolve
11997
+ * @param {?} reject
11998
+ * @return {?}
11999
+ */
12000
+ (resolve, reject) => {
12001
+ if (request && request.trendingSearch) {
12002
+ // check for the request if it has dynamic values]
12003
+ if (request.trendingSearch.request.filters.organisation &&
12004
+ request.trendingSearch.request.filters.organisation.indexOf('<orgID>') >= 0) {
12005
+ /** @type {?} */
12006
+ let userRootOrgId;
12007
+ if (this.configSvc.userProfile) {
12008
+ userRootOrgId = this.configSvc.userProfile.rootOrgId;
12009
+ }
12010
+ request.trendingSearch.request.filters.organisation = userRootOrgId;
12011
+ }
12012
+ this.contentSvc.trendingContentSearch(request.trendingSearch).subscribe((/**
12013
+ * @param {?} results
12014
+ * @return {?}
12015
+ */
12016
+ results => {
12017
+ /** @type {?} */
12018
+ const showViewMore = Boolean(results.result &&
12019
+ strip.request &&
12020
+ results.result[strip.request.trendingSearch.responseKey] &&
12021
+ results.result[strip.request.trendingSearch.responseKey].length > 5 &&
12022
+ strip.stripConfig && strip.stripConfig.postCardForSearch);
12023
+ /** @type {?} */
12024
+ const viewMoreUrl = showViewMore
12025
+ ? {
12026
+ path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',
12027
+ queryParams: {
12028
+ tab: 'Learn',
12029
+ q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,
12030
+ f: request &&
12031
+ request.trendingSearch &&
12032
+ request.trendingSearch.request &&
12033
+ request.trendingSearch.request.filters
12034
+ ? JSON.stringify(this.transformSearchV6FiltersV2(originalFilters))
12035
+ : {},
12036
+ },
12037
+ }
12038
+ : null;
12039
+ /** @type {?} */
12040
+ let proccesedResult = [];
12041
+ if (results && results.response && results.response.certifications) {
12042
+ results.response.certifications.map((/**
12043
+ * @param {?} result
12044
+ * @return {?}
12045
+ */
12046
+ (result) => {
12047
+ if (result.source === this.channnelName) {
12048
+ proccesedResult.push(result);
12049
+ }
12050
+ }));
12051
+ results = { response: { certifications: proccesedResult } };
12052
+ }
12053
+ resolve({ results, viewMoreUrl });
12054
+ }), (/**
12055
+ * @param {?} error
12056
+ * @return {?}
12057
+ */
12058
+ (error) => {
12059
+ if (error.error && error.error.status === 400) {
12060
+ this.processStrip(strip, [], 'done', calculateParentStatus, null);
12061
+ }
12062
+ // this.processStrip(strip, [], 'done', calculateParentStatus, null)
12063
+ reject(error);
12064
+ }));
12065
+ }
12066
+ }));
12067
+ });
12068
+ }
12069
+ /**
12070
+ * @param {?} tabEvent
12071
+ * @param {?} pillIndex
12072
+ * @param {?} stripMap
12073
+ * @param {?} stripKey
12074
+ * @return {?}
12075
+ */
12076
+ tabClicked(tabEvent, pillIndex, stripMap, stripKey) {
12077
+ if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {
12078
+ stripMap.tabs[tabEvent.index].pillsData[pillIndex].fetchTabStatus = 'inprogress';
12079
+ stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = true;
12080
+ stripMap.showOnLoader = true;
12081
+ }
12082
+ /** @type {?} */
12083
+ const data = {
12084
+ label: `${tabEvent.tab.textLabel}`,
12085
+ index: tabEvent.index,
12086
+ };
12087
+ this.eventSvc.raiseInteractTelemetry({
12088
+ type: WsEvents.EnumInteractTypes.CLICK,
12089
+ subType: WsEvents.EnumInteractSubTypes.HOME_PAGE_STRIP_TABS,
12090
+ id: `${camelCase(data.label)}-tab`,
12091
+ }, {}, {
12092
+ module: WsEvents.EnumTelemetrymodules.HOME,
12093
+ });
12094
+ /** @type {?} */
12095
+ const currentTabFromMap = stripMap.tabs && stripMap.tabs[tabEvent.index];
12096
+ /** @type {?} */
12097
+ const currentPillFromMap = stripMap.tabs && stripMap.tabs[tabEvent.index].pillsData[pillIndex];
12098
+ /** @type {?} */
12099
+ const currentStrip = this.widgetData.strips.find((/**
12100
+ * @param {?} s
12101
+ * @return {?}
12102
+ */
12103
+ s => s.key === stripKey));
12104
+ if (this.stripsResultDataMap[stripKey] && currentTabFromMap) {
12105
+ this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams = Object.assign({}, this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams, { tabSelected: currentTabFromMap.value, pillSelected: currentPillFromMap.value });
12106
+ }
12107
+ if (currentStrip && currentTabFromMap && !currentTabFromMap.computeDataOnClick && currentPillFromMap) {
12108
+ if (currentPillFromMap.requestRequired && currentPillFromMap.request) {
12109
+ // call API to get tab data and process
12110
+ // this.processStrip(currentStrip, [], 'fetching', true, null)
12111
+ if (currentPillFromMap.request.searchV6) {
12112
+ this.getTabDataByNewReqSearchV6(currentStrip, tabEvent.index, 0, currentPillFromMap, true);
12113
+ }
12114
+ else if (currentPillFromMap.request.trendingSearch) {
12115
+ this.getTabDataByNewReqTrending(currentStrip, tabEvent.index, 0, currentPillFromMap, true);
12116
+ }
12117
+ // if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {
12118
+ // stripMap.tabs[tabEvent.index].tabLoading = false;
12119
+ // }
12120
+ stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = false;
12121
+ }
12122
+ else {
12123
+ // this.getTabDataByfilter(currentStrip, currentTabFromMap, true);
12124
+ // setTimeout(() => {
12125
+ // if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {
12126
+ // stripMap.tabs[tabEvent.index].tabLoading = false;
12127
+ // stripMap.tabs[tabEvent.index].fetchTabStatus = 'done';
12128
+ // stripMap.showOnLoader = false;
12129
+ // }
12130
+ // }, 200);
12131
+ }
12132
+ }
12133
+ }
12134
+ /**
12135
+ * @param {?} event
12136
+ * @param {?} stripMap
12137
+ * @param {?} stripKey
12138
+ * @param {?} pillIndex
12139
+ * @param {?} tabIndex
12140
+ * @return {?}
12141
+ */
12142
+ pillClicked(event, stripMap, stripKey, pillIndex, tabIndex) {
12143
+ if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {
12144
+ stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';
12145
+ stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = true;
12146
+ stripMap.showOnLoader = true;
12147
+ }
12148
+ /** @type {?} */
12149
+ const currentTabFromMap = stripMap.tabs && stripMap.tabs[tabIndex];
12150
+ /** @type {?} */
12151
+ const currentPillFromMap = stripMap.tabs && stripMap.tabs[tabIndex].pillsData[pillIndex];
12152
+ /** @type {?} */
12153
+ const currentStrip = this.widgetData.strips.find((/**
12154
+ * @param {?} s
12155
+ * @return {?}
12156
+ */
12157
+ s => s.key === stripKey));
12158
+ if (this.stripsResultDataMap[stripKey] && currentTabFromMap) {
12159
+ this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams = Object.assign({}, this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams, { tabSelected: currentTabFromMap.value, pillSelected: currentPillFromMap.value });
12160
+ }
12161
+ if (currentStrip && currentTabFromMap && !currentTabFromMap.computeDataOnClick && currentPillFromMap) {
12162
+ if (currentPillFromMap.requestRequired && currentPillFromMap.request) {
12163
+ // call API to get tab data and process
12164
+ // this.processStrip(currentStrip, [], 'fetching', true, null)
12165
+ if (currentPillFromMap.request.searchV6) {
12166
+ this.getTabDataByNewReqSearchV6(currentStrip, tabIndex, pillIndex, currentPillFromMap, true);
12167
+ }
12168
+ else if (currentPillFromMap.request.trendingSearch) {
12169
+ this.getTabDataByNewReqTrending(currentStrip, tabIndex, pillIndex, currentPillFromMap, true);
12170
+ }
12171
+ // if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {
12172
+ // stripMap.tabs[tabEvent.index].tabLoading = false;
12173
+ // }
12174
+ stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;
12175
+ }
12176
+ else {
12177
+ this.getTabDataByfilter(currentStrip, currentTabFromMap, true);
12178
+ if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {
12179
+ stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';
12180
+ stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;
12181
+ stripMap.showOnLoader = true;
12182
+ }
12183
+ setTimeout((/**
12184
+ * @return {?}
12185
+ */
12186
+ () => {
12187
+ if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {
12188
+ stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'done';
12189
+ stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;
12190
+ stripMap.showOnLoader = false;
12191
+ this.resetSelectedPill(stripMap.tabs[tabIndex].pillsData);
12192
+ stripMap.tabs[tabIndex].pillsData[pillIndex]['selected'] = true;
12193
+ }
12194
+ }), 200);
12195
+ }
12196
+ }
12197
+ }
12198
+ /**
12199
+ * @param {?} strip
12200
+ * @param {?} request
12201
+ * @param {?} calculateParentStatus
12202
+ * @return {?}
12203
+ */
12204
+ searchV6Request(strip, request, calculateParentStatus) {
12205
+ return __awaiter(this, void 0, void 0, function* () {
12206
+ /** @type {?} */
12207
+ const originalFilters = [];
12208
+ return new Promise((/**
12209
+ * @param {?} resolve
12210
+ * @param {?} reject
12211
+ * @return {?}
12212
+ */
12213
+ (resolve, reject) => {
12214
+ if (request && request.searchV6) {
12215
+ this.contentSvc.searchV6(request.searchV6).subscribe((/**
12216
+ * @param {?} results
12217
+ * @return {?}
12218
+ */
12219
+ results => {
12220
+ /** @type {?} */
12221
+ const showViewMore = Boolean(results.result.content && results.result.content.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch);
12222
+ /** @type {?} */
12223
+ const viewMoreUrl = showViewMore
12224
+ ? {
12225
+ path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',
12226
+ queryParams: {
12227
+ tab: 'Learn',
12228
+ q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,
12229
+ f: request &&
12230
+ request.searchV6 &&
12231
+ request.searchV6.request &&
12232
+ request.searchV6.request.filters
12233
+ ? JSON.stringify(this.transformSearchV6FiltersV2(originalFilters))
12234
+ : {},
12235
+ },
12236
+ }
12237
+ : null;
12238
+ // if (viewMoreUrl && viewMoreUrl.queryParams) {
12239
+ // viewMoreUrl.queryParams = viewMoreUrl.queryParams
12240
+ // }
12241
+ resolve({ results, viewMoreUrl });
12242
+ }), (/**
12243
+ * @param {?} error
12244
+ * @return {?}
12245
+ */
12246
+ (error) => {
12247
+ this.processStrip(strip, [], 'error', calculateParentStatus, null);
12248
+ reject(error);
12249
+ }));
12250
+ }
12251
+ }));
12252
+ });
12253
+ }
12254
+ /**
12255
+ * @param {?} tabdata
12256
+ * @param {?} tabIndex
12257
+ * @return {?}
12258
+ */
12259
+ getSelectedPillIndex(tabdata, tabIndex) {
12260
+ if (tabdata.pillsData && tabdata.pillsData.length) {
12261
+ /** @type {?} */
12262
+ let index = tabdata.pillsData.findIndex((/**
12263
+ * @param {?} pill
12264
+ * @return {?}
12265
+ */
12266
+ (pill) => {
12267
+ return pill.selected;
12268
+ }));
12269
+ return index;
12270
+ }
12271
+ return 0;
12272
+ }
12273
+ // cbp plans
12274
+ /**
12275
+ * @param {?} strip
12276
+ * @param {?=} calculateParentStatus
12277
+ * @return {?}
12278
+ */
12279
+ fetchAllCbpPlans(strip, calculateParentStatus = true) {
12280
+ return __awaiter(this, void 0, void 0, function* () {
12281
+ if (strip.request && strip.request.cbpList && Object.keys(strip.request.cbpList).length) {
12282
+ /** @type {?} */
12283
+ let courses;
12284
+ /** @type {?} */
12285
+ let tabResults = [];
12286
+ /** @type {?} */
12287
+ const response = yield this.userSvc.fetchCbpPlanList().toPromise();
12288
+ if (response) {
12289
+ courses = response;
12290
+ if (strip.tabs && strip.tabs.length) {
12291
+ tabResults = this.splitCbpTabsData(courses, strip);
12292
+ /** @type {?} */
12293
+ let countOfWidget = true;
12294
+ if (strip && strip.tabs && strip.tabs.length) {
12295
+ strip.tabs.forEach((/**
12296
+ * @param {?} tab
12297
+ * @return {?}
12298
+ */
12299
+ (tab) => {
12300
+ if (tab.pillsData && tab.pillsData.length) {
12301
+ tab.pillsData.forEach((/**
12302
+ * @param {?} pill
12303
+ * @return {?}
12304
+ */
12305
+ (pill) => {
12306
+ if (pill && pill.widgets && pill.widgets.length) {
12307
+ if (countOfWidget) {
12308
+ pill.selected = true;
12309
+ countOfWidget = false;
12310
+ }
12311
+ }
12312
+ }));
12313
+ }
12314
+ }));
12315
+ }
12316
+ yield this.processStrip(strip, this.transformContentsToWidgets(courses, strip), 'done', calculateParentStatus, '', tabResults);
12317
+ }
12318
+ else {
12319
+ this.processStrip(strip, this.transformContentsToWidgets(courses, strip), 'done', calculateParentStatus, 'viewMoreUrl');
12320
+ }
12321
+ }
12322
+ clearInterval(this.enrollInterval);
12323
+ }
12324
+ });
12325
+ }
12326
+ /**
12327
+ * @param {?} contentNew
12328
+ * @param {?} strip
12329
+ * @return {?}
12330
+ */
12331
+ splitCbpTabsData(contentNew, strip) {
12332
+ /** @type {?} */
12333
+ let tabResults = [];
12334
+ /** @type {?} */
12335
+ const splitData = this.getTabsList(contentNew, strip);
12336
+ if (strip.tabs && strip.tabs.length) {
12337
+ for (let i = 0; i < strip.tabs.length; i += 1) {
12338
+ if (strip.tabs[i].value === "myIgotPlans") {
12339
+ /** @type {?} */
12340
+ let checkWidgetAndActivePill = true;
12341
+ if (strip.tabs[i].pillsData && strip.tabs[i].pillsData.length) {
12342
+ for (let j = 0; j < strip.tabs[i].pillsData.length; j += 1) {
12343
+ // if(j === 0 ){
12344
+ // if(strip.tabs[i].pillsData[j].widgets && strip.tabs[i].pillsData[j].widgets.length ) {
12345
+ // strip.tabs[i].pillsData[j].selected = true
12346
+ // checkWidgetAndActivePill = false
12347
+ // }
12348
+ // strip.tabs[i].pillsData[j].selected = true
12349
+ // }
12350
+ if (strip.tabs[i].pillsData[j]) {
12351
+ tabResults.push(Object.assign({}, strip.tabs[i].pillsData[j], { fetchTabStatus: 'done' }, (splitData.find((/**
12352
+ * @param {?} itmInner
12353
+ * @return {?}
12354
+ */
12355
+ itmInner => {
12356
+ if (strip.tabs[i].pillsData && strip.tabs[i].pillsData[j] && itmInner.value === strip.tabs[i].pillsData[j].value) {
12357
+ return itmInner;
12358
+ }
12359
+ return undefined;
12360
+ })))));
12361
+ }
12362
+ }
12363
+ strip.tabs[i].pillsData = tabResults;
12364
+ }
12365
+ }
12366
+ }
12367
+ }
12368
+ return strip.tabs;
12369
+ }
12370
+ /**
12371
+ * @param {?} array
12372
+ * @param {?} strip
12373
+ * @return {?}
12374
+ */
12375
+ getTabsList(array, strip) {
12376
+ /** @type {?} */
12377
+ let all = [];
12378
+ /** @type {?} */
12379
+ let upcoming = [];
12380
+ /** @type {?} */
12381
+ let overdue = [];
12382
+ array.forEach((/**
12383
+ * @param {?} e
12384
+ * @return {?}
12385
+ */
12386
+ (e) => {
12387
+ all.push(e);
12388
+ if (e.planDuration === NsCardContent.ACBPConst.OVERDUE) {
12389
+ overdue.push(e);
12390
+ }
12391
+ else if (e.planDuration === NsCardContent.ACBPConst.UPCOMING) {
12392
+ upcoming.push(e);
12393
+ }
12394
+ }));
12395
+ /** @type {?} */
12396
+ const allCompleted = all.filter((/**
12397
+ * @param {?} allData
12398
+ * @return {?}
12399
+ */
12400
+ (allData) => allData.contentStatus === 2));
12401
+ /** @type {?} */
12402
+ let allInCompleted = all.filter((/**
12403
+ * @param {?} allData
12404
+ * @return {?}
12405
+ */
12406
+ (allData) => allData.contentStatus < 2));
12407
+ /** @type {?} */
12408
+ let allCompletedOverDue = allCompleted.filter((/**
12409
+ * @param {?} allData
12410
+ * @return {?}
12411
+ */
12412
+ (allData) => allData.planDuration === NsCardContent.ACBPConst.OVERDUE));
12413
+ /** @type {?} */
12414
+ const allCompletedAll = allCompleted.filter((/**
12415
+ * @param {?} allData
12416
+ * @return {?}
12417
+ */
12418
+ (allData) => allData.planDuration !== NsCardContent.ACBPConst.OVERDUE));
12419
+ allCompletedOverDue = allCompletedOverDue.sort((/**
12420
+ * @param {?} a
12421
+ * @param {?} b
12422
+ * @return {?}
12423
+ */
12424
+ (a, b) => {
12425
+ if (a.planDuration === NsCardContent.ACBPConst.OVERDUE && b.planDuration === NsCardContent.ACBPConst.OVERDUE) {
12426
+ /** @type {?} */
12427
+ const firstDate = new Date(a.endDate);
12428
+ /** @type {?} */
12429
+ const secondDate = new Date(b.endDate);
12430
+ return firstDate > secondDate ? -1 : 1;
12431
+ }
12432
+ }));
12433
+ allInCompleted = allInCompleted.sort((/**
12434
+ * @param {?} a
12435
+ * @param {?} b
12436
+ * @return {?}
12437
+ */
12438
+ (a, b) => {
12439
+ if (a.planDuration === NsCardContent.ACBPConst.OVERDUE && b.planDuration === NsCardContent.ACBPConst.OVERDUE) {
12440
+ /** @type {?} */
12441
+ const firstDate = new Date(a.endDate);
12442
+ /** @type {?} */
12443
+ const secondDate = new Date(b.endDate);
12444
+ return firstDate > secondDate ? -1 : 1;
12445
+ }
12446
+ }));
12447
+ all = [...allInCompleted, ...allCompletedAll, ...allCompletedOverDue];
12448
+ overdue = overdue.filter((/**
12449
+ * @param {?} data
12450
+ * @return {?}
12451
+ */
12452
+ (data) => {
12453
+ return data.contentStatus < 2;
12454
+ }));
12455
+ overdue = overdue.sort((/**
12456
+ * @param {?} a
12457
+ * @param {?} b
12458
+ * @return {?}
12459
+ */
12460
+ (a, b) => {
12461
+ /** @type {?} */
12462
+ const firstDate = new Date(a.endDate);
12463
+ /** @type {?} */
12464
+ const secondDate = new Date(b.endDate);
12465
+ return firstDate > secondDate ? -1 : 1;
12466
+ }));
12467
+ upcoming = upcoming.filter((/**
12468
+ * @param {?} data
12469
+ * @return {?}
12470
+ */
12471
+ (data) => {
12472
+ return data.contentStatus < 2;
12473
+ }));
12474
+ return [
12475
+ { value: 'all', widgets: this.transformContentsToWidgets(all, strip) },
12476
+ { value: 'upcoming', widgets: this.transformContentsToWidgets(upcoming, strip) },
12477
+ { value: 'completed', widgets: this.transformContentsToWidgets(allCompleted, strip) },
12478
+ { value: 'overdue', widgets: this.transformContentsToWidgets(overdue, strip) }
12479
+ ];
12480
+ }
12481
+ /**
12482
+ * @param {?} pillData
12483
+ * @return {?}
12484
+ */
12485
+ resetSelectedPill(pillData) {
12486
+ if (pillData && pillData.length) {
12487
+ pillData.forEach((/**
12488
+ * @param {?} pill
12489
+ * @return {?}
12490
+ */
12491
+ (pill) => {
12492
+ pill['selected'] = false;
12493
+ }));
12494
+ }
12495
+ }
12496
+ }
12497
+ ContentStripWithTabsPillsComponent.decorators = [
12498
+ { type: Component, args: [{
12499
+ selector: 'sb-uic-content-strip-with-tabs-pills',
12500
+ template: "<ng-container *ngIf=\"!contentAvailable; else otherTemplate\"></ng-container>\n<ng-template #otherTemplate>\n <!-- <div *ngIf=\"showParentLoader\" class=\"text-center my-2\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div> -->\n <ng-container *ngIf=\"showParentError\" [sbUiResolverWidget]=\"widgetData.errorWidget\"></ng-container>\n <ng-container *ngIf=\"showParentNoData\" [sbUiResolverWidget]=\"widgetData.noDataWidget\"></ng-container>\n <ng-container *ngFor=\"let key of stripsKeyOrder; let i = index; trackBy: identify\">\n <ng-container *ngIf=\"isStripShowing(stripsResultDataMap[key])\">\n <a name=\"{{stripsResultDataMap[key]?.stripTitle}}\" [class]=\"key\">\n <div *ngIf=\"stripsResultDataMap && (getLength(stripsResultDataMap[key]) ||\n stripsResultDataMap[key]?.showOnNoData ||\n stripsResultDataMap[key]?.showOnLoader ||\n stripsResultDataMap[key]?.showOnError)\n \" [ngClass]=\"\n !widgetData?.isChannelStrip ? 'xs:px-8 sx:px-10ss' : i > 0 ? 'mt-12' : ''\n \" [id]=\"key\" [ngClass]=\"!widgetData?.isChannelStrip ? margin-bottom-custom : margin-bottom-xs\">\n <div [ngClass]=\"{ pad: stripsResultDataMap[key]?.stripBackground }\"\n [ngStyle]=\"{ 'background-color': stripsResultDataMap[key]?.stripBackground }\">\n <div class=\"flex flex-col pl-4 pr-4 md:pr-0 md:pl-0 \" [ngClass]=\"\n !widgetData?.isChannelStrip\n ? ''\n : stripsResultDataMap[key]?.stripTitle\n ? 'mb-8'\n : ''\n \">\n <div class=\"flex flex-1 items-center\">\n <p class=\"mat-subheading-1 margin-remove inline-block \" *ngIf=\"stripsResultDataMap[key]?.stripTitle\">\n <span class=\"capitalize\" *ngIf=\"stripsResultDataMap[key]?.disableTranslate\">\n {{stripsResultDataMap[key]?.stripTitle}}\n </span>\n <span *ngIf=\"!stripsResultDataMap[key]?.disableTranslate\">\n {{ translateLabels(stripsResultDataMap[key]?.stripTitle, 'home') }}\n </span>\n </p>\n\n <button *ngIf=\"stripsResultDataMap[key]?.stripInfo?.icon\" type=\"button\" mat-icon-button\n (click)=\"toggleInfo(stripsResultDataMap[key])\" i18n-matTooltip matTooltip=\"info\"\n class=\"margin-left-xs\">\n <mat-icon>{{ stripsResultDataMap[key]?.stripInfo?.icon.icon }}</mat-icon>\n </button>\n <a *ngIf=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [routerLink]=\"stripsResultDataMap[key]?.stripTitleLink?.link\"\n [queryParams]=\"stripsResultDataMap[key]?.stripTitleLink?.link?.queryParams\">\n <mat-icon class=\"ws-mat-primary-primary-text ws-mat-default-text\" [color]=\"'accent'\">{{\n stripsResultDataMap[key]?.stripTitleLink?.icon }}</mat-icon>\n </a>\n <span class=\"spacer\"></span>\n <!-- viewAll start-->\n <!-- <div *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key])\"\n class=\"ml-4 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 class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0].viewMoreUrl.viewMoreText,'home') || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\" color=\"accent\">navigate_next</mat-icon>\n </a>\n </div> -->\n <!-- viewAll end-->\n </div>\n <button mat-icon-button (click)=\"setHiddenForStrip(key)\" *ngIf=\"stripsResultDataMap[key]?.canHideStrip\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"stripsResultDataMap[key]?.mode === 'accordion' && isMobile\"\n (click)=\"showAccordionData = !showAccordionData\">{{ showAccordionData ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n\n <div class=\"mb-4\" *ngIf=\"checkVisible(stripsResultDataMap[key])\">\n <ng-container [sbUiResolverWidget]=\"getdata(stripsResultDataMap[key])\">\n </ng-container>\n </div>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnNoData\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.noDataWidget\"></ng-container>\n <ng-container *ngIf=\"stripsResultDataMap[key]?.showOnError\"\n [sbUiResolverWidget]=\"stripsResultDataMap[key]?.errorWidget\"></ng-container>\n <!-- IF no errors then proceed to show tabs or non tabs strip -->\n <ng-container *ngIf=\"!stripsResultDataMap[key]?.showOnNoData && !stripsResultDataMap[key]?.showOnError\">\n <ng-container *ngIf=\"stripsResultDataMap[key].tabs && stripsResultDataMap[key].tabs.length\">\n <mat-tab-group animationDuration=\"0ms\" [selectedIndex]=\"getSelectedIndex(stripsResultDataMap[key], key)\"\n class=\"mat-tab-labels w-full strips-tabgroup\" dynamicHeight\n (selectedTabChange)=\"tabClicked($event, 0, stripsResultDataMap[key], key)\">\n <mat-tab label=\"{{tab?.label}}\" *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;let tabIndex = index\">\n <ng-template mat-tab-label>\n <span>{{ translateLabels(tab?.label, 'home') }} &nbsp;</span>\n <span *ngIf=\"tab?.showTabDataCount && tab?.widgets?.length\">({{tab?.widgets?.length}})</span>\n </ng-template>\n\n <div class=\"wfull\" *ngIf=\"tab?.pillsData && tab?.pillsData?.length\">\n <div class=\"flex justify-between\">\n <div>\n <ng-container >\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\" (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 </ng-container>\n </div>\n <!-- viewAll start-->\n <div *ngIf=\"checkCondition(widgetData , stripsResultDataMap[key])\"\n 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 class=\"ws-mat-default-text\">{{translateLabels(widgetData.strips[0].viewMoreUrl.viewMoreText,'home') || 'See all'}}</span>\n <mat-icon class=\"ws-mat-default-text mat-icon notranslate material-icons mat-icon-no-color\" color=\"accent\">navigate_next</mat-icon>\n </a>\n </div>\n <!-- viewAll end-->\n </div>\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.fetchTabStatus\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [id]=\"key+'-scroller'\"\n [loadStatus]=\"'fetching'\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.loaderWidgets; trackBy: tracker\">\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n <ng-container *ngIf=\"tab?.pillsData && tab?.pillsData.length && tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]\">\n <div *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 *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\">{{ 'contentstripmultiple.getReadyForLearningAdventure' | translate }} -\n <a class=\"click-here\" [routerLink]=\"'/page/learn'\">{{ 'contentstripmultiple.clickHere' | translate }}</a> {{ 'contentstripmultiple.toEnrollNextCourse' | translate }}</div>\n </div>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"w-full flex flex-col items-center justify-center\">\n <img alt=\"\" class=\"mt-4 mb-4\" src=\"assets/icons/home/nodataDefault.png\">\n <div class=\"mat-subheading-1 text-center\">{{ translateLabels(tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.nodataMsg, 'home') }}</div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *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'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [widgetsLength]=\"tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.pillsData[getSelectedPillIndex(tab ,tabIndex)]?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *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 </sb-uic-horizontal-scroller-v2>\n </ng-container>\n </ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>",
12501
+ styles: [".view-more{display:flex;align-items:center;text-align:center;height:40px;justify-content:center}.view-more .icon{font-size:24px;width:24px;height:24px;border:1px solid;border-radius:50%;padding:8px;margin-bottom:8px}.margin-bottom-custom{margin-bottom:60px}.view-more:hover{background-color:#dcdfe5}::ng-deep.strips-tabgroup .mat-tab-header{border-bottom:2px solid rgba(0,0,0,.12)}::ng-deep.strips-tabgroup .mat-tab-body{padding:20px 0!important;box-sizing:border-box;overflow-y:initial!important}::ng-deep.strips-tabgroup .mat-tab-body-wrapper{overflow:inherit!important}::ng-deep.strips-tabgroup .mat-tab-label{border-bottom:0 solid rgba(0,0,0,.1);margin-right:0;opacity:1}::ng-deep.strips-tabgroup .mat-tab-label .mat-tab-label-content{text-transform:inherit;font:400 14px/20px Lato}::ng-deep.strips-tabgroup .mat-tab-label-active .mat-tab-label-content{font-weight:700!important}.click-here{color:#1b4ca1}.info-content{opacity:1;color:rgba(0,0,0,.87);font:700 14px/20px Lato-Bold;text-align:center}.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}"]
12502
+ }] }
12503
+ ];
12504
+ /** @nocollapse */
12505
+ ContentStripWithTabsPillsComponent.ctorParameters = () => [
12506
+ { type: undefined, decorators: [{ type: Inject, args: ['environment',] }] },
12507
+ { type: WidgetContentService },
12508
+ { type: LoggerService },
12509
+ { type: EventService },
12510
+ { type: ConfigurationsService$1 },
12511
+ { type: UtilityService },
12512
+ { type: Router },
12513
+ { type: WidgetUserService },
12514
+ { type: TranslateService },
12515
+ { type: MultilingualTranslationsService }
12516
+ ];
12517
+ ContentStripWithTabsPillsComponent.propDecorators = {
12518
+ widgetData: [{ type: Input }],
12519
+ emptyResponse: [{ type: Output }],
12520
+ viewAllResponse: [{ type: Output }],
12521
+ telemtryResponse: [{ type: Output }],
12522
+ providerId: [{ type: Input }],
12523
+ emitViewAll: [{ type: Input }],
12524
+ channnelName: [{ type: Input }],
12525
+ id: [{ type: HostBinding, args: ['id',] }]
12526
+ };
12527
+ if (false) {
12528
+ /** @type {?} */
12529
+ ContentStripWithTabsPillsComponent.prototype.widgetData;
12530
+ /** @type {?} */
12531
+ ContentStripWithTabsPillsComponent.prototype.emptyResponse;
12532
+ /** @type {?} */
12533
+ ContentStripWithTabsPillsComponent.prototype.viewAllResponse;
12534
+ /** @type {?} */
12535
+ ContentStripWithTabsPillsComponent.prototype.telemtryResponse;
12536
+ /** @type {?} */
12537
+ ContentStripWithTabsPillsComponent.prototype.providerId;
12538
+ /** @type {?} */
12539
+ ContentStripWithTabsPillsComponent.prototype.emitViewAll;
12540
+ /** @type {?} */
12541
+ ContentStripWithTabsPillsComponent.prototype.channnelName;
12542
+ /** @type {?} */
12543
+ ContentStripWithTabsPillsComponent.prototype.id;
12544
+ /** @type {?} */
12545
+ ContentStripWithTabsPillsComponent.prototype.stripsResultDataMap;
12546
+ /** @type {?} */
12547
+ ContentStripWithTabsPillsComponent.prototype.stripsKeyOrder;
12548
+ /** @type {?} */
12549
+ ContentStripWithTabsPillsComponent.prototype.showAccordionData;
12550
+ /** @type {?} */
12551
+ ContentStripWithTabsPillsComponent.prototype.showParentLoader;
12552
+ /** @type {?} */
12553
+ ContentStripWithTabsPillsComponent.prototype.showParentError;
12554
+ /** @type {?} */
12555
+ ContentStripWithTabsPillsComponent.prototype.showParentNoData;
12556
+ /** @type {?} */
12557
+ ContentStripWithTabsPillsComponent.prototype.errorDataCount;
12558
+ /** @type {?} */
12559
+ ContentStripWithTabsPillsComponent.prototype.noDataCount;
12560
+ /** @type {?} */
12561
+ ContentStripWithTabsPillsComponent.prototype.successDataCount;
12562
+ /** @type {?} */
12563
+ ContentStripWithTabsPillsComponent.prototype.contentAvailable;
12564
+ /** @type {?} */
12565
+ ContentStripWithTabsPillsComponent.prototype.baseUrl;
12566
+ /** @type {?} */
12567
+ ContentStripWithTabsPillsComponent.prototype.veifiedKarmayogi;
12568
+ /** @type {?} */
12569
+ ContentStripWithTabsPillsComponent.prototype.environment;
12570
+ /** @type {?} */
12571
+ ContentStripWithTabsPillsComponent.prototype.changeEventSubscription;
12572
+ /** @type {?} */
12573
+ ContentStripWithTabsPillsComponent.prototype.defaultMaxWidgets;
12574
+ /** @type {?} */
12575
+ ContentStripWithTabsPillsComponent.prototype.enrollInterval;
12576
+ /** @type {?} */
12577
+ ContentStripWithTabsPillsComponent.prototype.todaysEvents;
12578
+ /** @type {?} */
12579
+ ContentStripWithTabsPillsComponent.prototype.enrollmentMapData;
12580
+ /**
12581
+ * @type {?}
12582
+ * @private
12583
+ */
12584
+ ContentStripWithTabsPillsComponent.prototype.contentSvc;
12585
+ /**
12586
+ * @type {?}
12587
+ * @private
12588
+ */
12589
+ ContentStripWithTabsPillsComponent.prototype.loggerSvc;
12590
+ /**
12591
+ * @type {?}
12592
+ * @private
12593
+ */
12594
+ ContentStripWithTabsPillsComponent.prototype.eventSvc;
12595
+ /**
12596
+ * @type {?}
12597
+ * @private
12598
+ */
12599
+ ContentStripWithTabsPillsComponent.prototype.configSvc;
12600
+ /** @type {?} */
12601
+ ContentStripWithTabsPillsComponent.prototype.utilitySvc;
12602
+ /** @type {?} */
12603
+ ContentStripWithTabsPillsComponent.prototype.router;
12604
+ /**
12605
+ * @type {?}
12606
+ * @private
12607
+ */
12608
+ ContentStripWithTabsPillsComponent.prototype.userSvc;
12609
+ /**
12610
+ * @type {?}
12611
+ * @private
12612
+ */
12613
+ ContentStripWithTabsPillsComponent.prototype.translate;
12614
+ /**
12615
+ * @type {?}
12616
+ * @private
12617
+ */
12618
+ ContentStripWithTabsPillsComponent.prototype.langtranslations;
12619
+ }
12620
+
12621
+ /**
12622
+ * @fileoverview added by tsickle
12623
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
12624
+ */
12625
+ // tslint:disable-next-line:function-name
12626
+ /**
12627
+ * @param {?} http
12628
+ * @return {?}
12629
+ */
12630
+ function HttpLoaderFactory1(http) {
12631
+ return new TranslateHttpLoader(http);
12632
+ }
12633
+ class ContentStripWithTabsPillsModule {
12634
+ }
12635
+ ContentStripWithTabsPillsModule.decorators = [
12636
+ { type: NgModule, args: [{
12637
+ declarations: [ContentStripWithTabsPillsComponent],
12638
+ imports: [
12639
+ SbUiResolverModule,
12640
+ CommonModule,
12641
+ RouterModule,
12642
+ HorizontalScrollerV2Module,
12643
+ MatProgressSpinnerModule,
12644
+ MatToolbarModule,
12645
+ MatIconModule,
12646
+ MatButtonModule,
12647
+ MatTooltipModule,
12648
+ MatListModule,
12649
+ MatSidenavModule,
12650
+ MatCardModule,
12651
+ MatExpansionModule,
12652
+ MatRadioModule,
12653
+ MatChipsModule,
12654
+ MatInputModule,
12655
+ MatFormFieldModule,
12656
+ MatDialogModule,
12657
+ MatSnackBarModule,
12658
+ MatSelectModule,
12659
+ MatDatepickerModule,
12660
+ MatNativeDateModule,
12661
+ MatTableModule,
12662
+ MatCheckboxModule,
12663
+ MatProgressSpinnerModule,
12664
+ MatButtonToggleModule,
12665
+ MatTabsModule,
12666
+ MatAutocompleteModule,
12667
+ TranslateModule.forRoot({
12668
+ loader: {
12669
+ provide: TranslateLoader,
12670
+ useFactory: HttpLoaderFactory1,
12671
+ deps: [HttpClient],
12672
+ },
12673
+ }),
12674
+ ],
12675
+ entryComponents: [ContentStripWithTabsPillsComponent],
12676
+ exports: [ContentStripWithTabsPillsComponent],
12677
+ },] }
12678
+ ];
12679
+
11013
12680
  /**
11014
12681
  * @fileoverview added by tsickle
11015
12682
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -12612,5 +14279,5 @@ UserContentRatingLibModule.decorators = [
12612
14279
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
12613
14280
  */
12614
14281
 
12615
- export { AnnouncementsModule, CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentProgressModule, ContentStripWithTabsLibModule, DataPointsModule, HttpLoaderFactory, MyHammerConfig, ROOT_WIDGET_CONFIG, SlidersLibModule, UserContentRatingLibModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentService, ContentStripWithTabsLibComponent as ɵa, WidgetUserService as ɵb, CardWideV2Component as ɵba, CardKarmaProgramsComponent as ɵbb, CardKarmaProgramsV2Component as ɵbc, ProviderCardComponent as ɵbd, CardPortraitExtComponent as ɵbe, CardAssessmentComponent as ɵbf, CardProgressPortraitLibComponent as ɵbg, CertificateService as ɵbh, CardMdoChannelV1Component as ɵbi, PipePublicURLModule as ɵbj, PipePublicURL as ɵbk, ObjectToArrayPipeModule as ɵbl, ObjectToArrayPipe as ɵbm, DisplayContentTypeLibModule as ɵbn, DisplayContentTypeLibComponent as ɵbo, DefaultThumbnailModule as ɵbp, DefaultThumbnailDirective as ɵbq, PipeDurationTransformModule as ɵbr, PipeDurationTransformPipe as ɵbs, ContentProgressComponent as ɵbt, DialogComponentsModule as ɵbu, CertificateDialogComponent as ɵbv, AvatarPhotoLibModule as ɵbw, AvatarPhotoLibComponent as ɵbx, CompetencyPassbookComponent as ɵby, CompetencyPassbookService as ɵbz, MultilingualTranslationsService as ɵc, PillsModule as ɵca, PillsComponent as ɵcb, CompetencyPassbookMdoComponent as ɵcc, CompetencyPassbookMdoService as ɵcd, UserContentRatingLibComponent as ɵce, ScrollableItemDirective as ɵcf, RatingService as ɵcg, UserContentRatingLibService as ɵch, MyHammerConfig$1 as ɵci, SlidersNgContentLibModule as ɵcj, SlidersNgContentLibComponent as ɵck, ScrollableItemModule as ɵcl, ConfigurationsService as ɵd, HorizontalScrollerV2Module as ɵe, HorizontalScrollerV2Component as ɵf, SlidersLibComponent as ɵg, NavigationModule as ɵh, NavigationDirective as ɵi, ImageResponsiveModule as ɵj, ImageResponsiveDirective as ɵk, DataPointsComponent as ɵl, InsiteDataService as ɵm, SkeletonLoaderLibModule as ɵn, SkeletonLoaderLibComponent as ɵo, CalenderComponent as ɵp, CalenderDayComponent as ɵq, CommonStripComponent as ɵr, AnnouncementsComponent as ɵs, CardResourceComponent as ɵt, CardsComponent as ɵu, CardPortraitComponent as ɵv, CardUserComponent as ɵw, CardLandscapeComponent as ɵx, CardWideComponent as ɵy, CardMDOChannelComponent as ɵz };
14282
+ export { AnnouncementsModule, CalenderModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookMdoModule, CompetencyPassbookModule, ConsumptionComponent, ConsumptionModule, ConsumptionService, ContentProgressModule, ContentStripWithTabsLibModule, ContentStripWithTabsPillsModule, DataPointsModule, HttpLoaderFactory, HttpLoaderFactory1, MyHammerConfig, ROOT_WIDGET_CONFIG, SlidersLibModule, UserContentRatingLibModule, WIDGET_REGISTERED_LIB_MODULES, WIDGET_REGISTRATION_LIB_CONFIG, WidgetContentService, ContentStripWithTabsLibComponent as ɵa, WidgetUserService as ɵb, CardWideV2Component as ɵba, CardKarmaProgramsComponent as ɵbb, CardKarmaProgramsV2Component as ɵbc, ProviderCardComponent as ɵbd, CardPortraitExtComponent as ɵbe, CardAssessmentComponent as ɵbf, CardProgressPortraitLibComponent as ɵbg, CertificateService as ɵbh, CardMdoChannelV1Component as ɵbi, PipePublicURLModule as ɵbj, PipePublicURL as ɵbk, ObjectToArrayPipeModule as ɵbl, ObjectToArrayPipe as ɵbm, DisplayContentTypeLibModule as ɵbn, DisplayContentTypeLibComponent as ɵbo, DefaultThumbnailModule as ɵbp, DefaultThumbnailDirective as ɵbq, PipeDurationTransformModule as ɵbr, PipeDurationTransformPipe as ɵbs, ContentProgressComponent as ɵbt, DialogComponentsModule as ɵbu, CertificateDialogComponent as ɵbv, AvatarPhotoLibModule as ɵbw, AvatarPhotoLibComponent as ɵbx, ContentStripWithTabsPillsComponent as ɵby, CompetencyPassbookComponent as ɵbz, MultilingualTranslationsService as ɵc, CompetencyPassbookService as ɵca, PillsModule as ɵcb, PillsComponent as ɵcc, CompetencyPassbookMdoComponent as ɵcd, CompetencyPassbookMdoService as ɵce, UserContentRatingLibComponent as ɵcf, ScrollableItemDirective as ɵcg, RatingService as ɵch, UserContentRatingLibService as ɵci, MyHammerConfig$1 as ɵcj, SlidersNgContentLibModule as ɵck, SlidersNgContentLibComponent as ɵcl, ScrollableItemModule as ɵcm, ConfigurationsService as ɵd, HorizontalScrollerV2Module as ɵe, HorizontalScrollerV2Component as ɵf, SlidersLibComponent as ɵg, NavigationModule as ɵh, NavigationDirective as ɵi, ImageResponsiveModule as ɵj, ImageResponsiveDirective as ɵk, DataPointsComponent as ɵl, InsiteDataService as ɵm, SkeletonLoaderLibModule as ɵn, SkeletonLoaderLibComponent as ɵo, CalenderComponent as ɵp, CalenderDayComponent as ɵq, CommonStripComponent as ɵr, AnnouncementsComponent as ɵs, CardResourceComponent as ɵt, CardsComponent as ɵu, CardPortraitComponent as ɵv, CardUserComponent as ɵw, CardLandscapeComponent as ɵx, CardWideComponent as ɵy, CardMDOChannelComponent as ɵz };
12616
14283
  //# sourceMappingURL=sunbird-cb-consumption.js.map