@sunbird-cb/consumption 0.0.0-watch

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 (394) hide show
  1. package/README.md +24 -0
  2. package/esm2015/lib/_common/announcements/announcements.component.js +98 -0
  3. package/esm2015/lib/_common/announcements/announcements.module.js +30 -0
  4. package/esm2015/lib/_common/avatar-photo-lib/avatar-photo-lib.component.js +113 -0
  5. package/esm2015/lib/_common/avatar-photo-lib/avatar-photo-lib.module.js +47 -0
  6. package/esm2015/lib/_common/calender/calender-day/calender-day.component.js +51 -0
  7. package/esm2015/lib/_common/calender/calender.component.js +191 -0
  8. package/esm2015/lib/_common/calender/calender.module.js +45 -0
  9. package/esm2015/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +89 -0
  10. package/esm2015/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +96 -0
  11. package/esm2015/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.js +90 -0
  12. package/esm2015/lib/_common/cards/card-landscape/card-landscape.component.js +109 -0
  13. package/esm2015/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +77 -0
  14. package/esm2015/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.js +77 -0
  15. package/esm2015/lib/_common/cards/card-portrait/card-portrait.component.js +95 -0
  16. package/esm2015/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +97 -0
  17. package/esm2015/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +150 -0
  18. package/esm2015/lib/_common/cards/card-resource/card-resource.component.js +23 -0
  19. package/esm2015/lib/_common/cards/card-user/card-user.component.js +74 -0
  20. package/esm2015/lib/_common/cards/card-wide/card-wide.component.js +92 -0
  21. package/esm2015/lib/_common/cards/card-wide-v2/card-wide-v2.component.js +91 -0
  22. package/esm2015/lib/_common/cards/cards.component.js +104 -0
  23. package/esm2015/lib/_common/cards/cards.module.js +168 -0
  24. package/esm2015/lib/_common/cards/provider-card/provider-card.component.js +52 -0
  25. package/esm2015/lib/_common/cbp-plan/cbp-plan.component.js +95 -0
  26. package/esm2015/lib/_common/cbp-plan/cbp-plan.module.js +38 -0
  27. package/esm2015/lib/_common/common-strip/common-strip.component.js +323 -0
  28. package/esm2015/lib/_common/common-strip/common-strip.model.js +2 -0
  29. package/esm2015/lib/_common/common-strip/common-strip.module.js +147 -0
  30. package/esm2015/lib/_common/competency-passbook/competency-passbook.component.js +366 -0
  31. package/esm2015/lib/_common/competency-passbook/competency-passbook.module.js +36 -0
  32. package/esm2015/lib/_common/competency-passbook/competency-passbook.service.js +30 -0
  33. package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.js +190 -0
  34. package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.module.js +36 -0
  35. package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.service.js +30 -0
  36. package/esm2015/lib/_common/content-progress/content-progress.component.js +76 -0
  37. package/esm2015/lib/_common/content-progress/content-progress.module.js +30 -0
  38. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +1661 -0
  39. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +2 -0
  40. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module.js +152 -0
  41. package/esm2015/lib/_common/data-points/data-points.component.js +119 -0
  42. package/esm2015/lib/_common/data-points/data-points.module.js +28 -0
  43. package/esm2015/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.js +138 -0
  44. package/esm2015/lib/_common/dialog-components/dialog-components.module.js +65 -0
  45. package/esm2015/lib/_common/display-content-type-lib/display-content-type-lib.component.js +33 -0
  46. package/esm2015/lib/_common/display-content-type-lib/display-content-type-lib.module.js +19 -0
  47. package/esm2015/lib/_common/events/event-card/event-card.component.js +46 -0
  48. package/esm2015/lib/_common/events/events.component.js +111 -0
  49. package/esm2015/lib/_common/events/events.module.js +35 -0
  50. package/esm2015/lib/_common/highlights-of-week/highlights-of-week.component.js +50 -0
  51. package/esm2015/lib/_common/highlights-of-week/highlights-of-week.module.js +40 -0
  52. package/esm2015/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +258 -0
  53. package/esm2015/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.module.js +34 -0
  54. package/esm2015/lib/_common/key-highlights/key-highlights.component.js +45 -0
  55. package/esm2015/lib/_common/key-highlights/key-highlights.module.js +37 -0
  56. package/esm2015/lib/_common/mdo-leaderboard/mdo-leaderboard.component.js +103 -0
  57. package/esm2015/lib/_common/mdo-leaderboard/mdo-leaderboard.module.js +42 -0
  58. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.js +18 -0
  59. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.js +158 -0
  60. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel.module.js +93 -0
  61. package/esm2015/lib/_common/microsites/national-learning-week/national-learning/national-learning.component.js +85 -0
  62. package/esm2015/lib/_common/microsites/national-learning-week/national-learning.module.js +87 -0
  63. package/esm2015/lib/_common/microsites/providers/providers-v2/providers-v2.component.js +156 -0
  64. package/esm2015/lib/_common/microsites/providers/providers.module.js +90 -0
  65. package/esm2015/lib/_common/pills/pills.component.js +44 -0
  66. package/esm2015/lib/_common/pills/pills.module.js +34 -0
  67. package/esm2015/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.js +29 -0
  68. package/esm2015/lib/_common/skeleton-loader-lib/skeleton-loader-lib.module.js +40 -0
  69. package/esm2015/lib/_common/sliders/sliders.component.js +117 -0
  70. package/esm2015/lib/_common/sliders/sliders.model.js +2 -0
  71. package/esm2015/lib/_common/sliders/sliders.module.js +53 -0
  72. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.component.js +138 -0
  73. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.model.js +2 -0
  74. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.module.js +53 -0
  75. package/esm2015/lib/_common/speakers/speakers.component.js +73 -0
  76. package/esm2015/lib/_common/speakers/speakers.module.js +40 -0
  77. package/esm2015/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.js +684 -0
  78. package/esm2015/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.model.js +5 -0
  79. package/esm2015/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.module.js +152 -0
  80. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +957 -0
  81. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.js +2 -0
  82. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.js +152 -0
  83. package/esm2015/lib/_common/top-learners/top-learners.component.js +104 -0
  84. package/esm2015/lib/_common/top-learners/top-learners.module.js +30 -0
  85. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.component.js +83 -0
  86. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.module.js +58 -0
  87. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.service.js +23 -0
  88. package/esm2015/lib/_common/user-progress/user-progress.component.js +111 -0
  89. package/esm2015/lib/_common/user-progress/user-progress.module.js +40 -0
  90. package/esm2015/lib/_constants/misc.constants.js +2 -0
  91. package/esm2015/lib/_directives/default-thumbnail/default-thumbnail.directive.js +40 -0
  92. package/esm2015/lib/_directives/default-thumbnail/default-thumbnail.module.js +22 -0
  93. package/esm2015/lib/_directives/image-responsive/image-responsive.directive.js +87 -0
  94. package/esm2015/lib/_directives/image-responsive/image-responsive.module.js +22 -0
  95. package/esm2015/lib/_directives/navigation/navigation.directive.js +43 -0
  96. package/esm2015/lib/_directives/navigation/navigation.module.js +22 -0
  97. package/esm2015/lib/_directives/scrollable-item/scrollable-item.directive.js +22 -0
  98. package/esm2015/lib/_directives/scrollable-item/scrollable-item.module.js +22 -0
  99. package/esm2015/lib/_models/card-content-v2.model.js +23 -0
  100. package/esm2015/lib/_models/card-content.model.js +23 -0
  101. package/esm2015/lib/_models/card-users.model.js +2 -0
  102. package/esm2015/lib/_models/compentencies.model.js +2 -0
  103. package/esm2015/lib/_models/content-strip-multiple.model.js +2 -0
  104. package/esm2015/lib/_models/event.js +2 -0
  105. package/esm2015/lib/_models/profile-v3.models.js +2 -0
  106. package/esm2015/lib/_models/rating.model.js +2 -0
  107. package/esm2015/lib/_models/widget-content.model.js +241 -0
  108. package/esm2015/lib/_models/widget-search.model.js +2 -0
  109. package/esm2015/lib/_models/widget-user.model.js +2 -0
  110. package/esm2015/lib/_pipes/object-to-array/object-to-array.pipe.js +24 -0
  111. package/esm2015/lib/_pipes/object-to-array/object-to-array.pipe.module.js +22 -0
  112. package/esm2015/lib/_pipes/pipe-duration-transform/pipe-duration-transform.module.js +22 -0
  113. package/esm2015/lib/_pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +84 -0
  114. package/esm2015/lib/_pipes/pipe-public-URL/pipe-public-URL.module.js +22 -0
  115. package/esm2015/lib/_pipes/pipe-public-URL/pipe-public-URL.pipe.js +24 -0
  116. package/esm2015/lib/_services/certificate.service.js +27 -0
  117. package/esm2015/lib/_services/common-methods.service.js +52 -0
  118. package/esm2015/lib/_services/configurations.service.js +106 -0
  119. package/esm2015/lib/_services/insite-data.service.js +56 -0
  120. package/esm2015/lib/_services/multilingual-translations.service.js +134 -0
  121. package/esm2015/lib/_services/rating.service.js +90 -0
  122. package/esm2015/lib/_services/viewer-route-util.js +100 -0
  123. package/esm2015/lib/_services/widget-content.service.js +477 -0
  124. package/esm2015/lib/_services/widget-user.service.js +300 -0
  125. package/esm2015/lib/consumption.component.js +26 -0
  126. package/esm2015/lib/consumption.config.js +7 -0
  127. package/esm2015/lib/consumption.module.js +56 -0
  128. package/esm2015/lib/consumption.service.js +14 -0
  129. package/esm2015/lib/registration-lib.config.js +15 -0
  130. package/esm2015/public-api.js +73 -0
  131. package/esm2015/sunbird-cb-consumption.js +5 -0
  132. package/fesm2015/sunbird-cb-consumption.js +11436 -0
  133. package/fesm2015/sunbird-cb-consumption.js.map +1 -0
  134. package/lib/_common/announcements/announcements.component.d.ts +25 -0
  135. package/lib/_common/announcements/announcements.component.d.ts.map +1 -0
  136. package/lib/_common/announcements/announcements.module.d.ts +11 -0
  137. package/lib/_common/announcements/announcements.module.d.ts.map +1 -0
  138. package/lib/_common/avatar-photo-lib/avatar-photo-lib.component.d.ts +24 -0
  139. package/lib/_common/avatar-photo-lib/avatar-photo-lib.component.d.ts.map +1 -0
  140. package/lib/_common/avatar-photo-lib/avatar-photo-lib.module.d.ts +15 -0
  141. package/lib/_common/avatar-photo-lib/avatar-photo-lib.module.d.ts.map +1 -0
  142. package/lib/_common/calender/calender-day/calender-day.component.d.ts +22 -0
  143. package/lib/_common/calender/calender-day/calender-day.component.d.ts.map +1 -0
  144. package/lib/_common/calender/calender.component.d.ts +38 -0
  145. package/lib/_common/calender/calender.component.d.ts.map +1 -0
  146. package/lib/_common/calender/calender.module.d.ts +14 -0
  147. package/lib/_common/calender/calender.module.d.ts.map +1 -0
  148. package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts +35 -0
  149. package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts.map +1 -0
  150. package/lib/_common/cards/card-karma-programs/card-karma-programs.component.d.ts +32 -0
  151. package/lib/_common/cards/card-karma-programs/card-karma-programs.component.d.ts.map +1 -0
  152. package/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.d.ts +30 -0
  153. package/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.d.ts.map +1 -0
  154. package/lib/_common/cards/card-landscape/card-landscape.component.d.ts +40 -0
  155. package/lib/_common/cards/card-landscape/card-landscape.component.d.ts.map +1 -0
  156. package/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.d.ts +31 -0
  157. package/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.d.ts.map +1 -0
  158. package/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.d.ts +31 -0
  159. package/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.d.ts.map +1 -0
  160. package/lib/_common/cards/card-portrait/card-portrait.component.d.ts +37 -0
  161. package/lib/_common/cards/card-portrait/card-portrait.component.d.ts.map +1 -0
  162. package/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.d.ts +37 -0
  163. package/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.d.ts.map +1 -0
  164. package/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.d.ts +46 -0
  165. package/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.d.ts.map +1 -0
  166. package/lib/_common/cards/card-resource/card-resource.component.d.ts +12 -0
  167. package/lib/_common/cards/card-resource/card-resource.component.d.ts.map +1 -0
  168. package/lib/_common/cards/card-user/card-user.component.d.ts +28 -0
  169. package/lib/_common/cards/card-user/card-user.component.d.ts.map +1 -0
  170. package/lib/_common/cards/card-wide/card-wide.component.d.ts +34 -0
  171. package/lib/_common/cards/card-wide/card-wide.component.d.ts.map +1 -0
  172. package/lib/_common/cards/card-wide-v2/card-wide-v2.component.d.ts +38 -0
  173. package/lib/_common/cards/card-wide-v2/card-wide-v2.component.d.ts.map +1 -0
  174. package/lib/_common/cards/cards.component.d.ts +30 -0
  175. package/lib/_common/cards/cards.component.d.ts.map +1 -0
  176. package/lib/_common/cards/cards.module.d.ts +39 -0
  177. package/lib/_common/cards/cards.module.d.ts.map +1 -0
  178. package/lib/_common/cards/provider-card/provider-card.component.d.ts +18 -0
  179. package/lib/_common/cards/provider-card/provider-card.component.d.ts.map +1 -0
  180. package/lib/_common/cbp-plan/cbp-plan.component.d.ts +29 -0
  181. package/lib/_common/cbp-plan/cbp-plan.component.d.ts.map +1 -0
  182. package/lib/_common/cbp-plan/cbp-plan.module.d.ts +13 -0
  183. package/lib/_common/cbp-plan/cbp-plan.module.d.ts.map +1 -0
  184. package/lib/_common/common-strip/common-strip.component.d.ts +108 -0
  185. package/lib/_common/common-strip/common-strip.component.d.ts.map +1 -0
  186. package/lib/_common/common-strip/common-strip.model.d.ts +143 -0
  187. package/lib/_common/common-strip/common-strip.model.d.ts.map +1 -0
  188. package/lib/_common/common-strip/common-strip.module.d.ts +36 -0
  189. package/lib/_common/common-strip/common-strip.module.d.ts.map +1 -0
  190. package/lib/_common/competency-passbook/competency-passbook.component.d.ts +52 -0
  191. package/lib/_common/competency-passbook/competency-passbook.component.d.ts.map +1 -0
  192. package/lib/_common/competency-passbook/competency-passbook.module.d.ts +12 -0
  193. package/lib/_common/competency-passbook/competency-passbook.module.d.ts.map +1 -0
  194. package/lib/_common/competency-passbook/competency-passbook.service.d.ts +13 -0
  195. package/lib/_common/competency-passbook/competency-passbook.service.d.ts.map +1 -0
  196. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.d.ts +50 -0
  197. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.d.ts.map +1 -0
  198. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.module.d.ts +12 -0
  199. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.module.d.ts.map +1 -0
  200. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.service.d.ts +13 -0
  201. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.service.d.ts.map +1 -0
  202. package/lib/_common/content-progress/content-progress.component.d.ts +17 -0
  203. package/lib/_common/content-progress/content-progress.component.d.ts.map +1 -0
  204. package/lib/_common/content-progress/content-progress.module.d.ts +11 -0
  205. package/lib/_common/content-progress/content-progress.module.d.ts.map +1 -0
  206. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +207 -0
  207. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts.map +1 -0
  208. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts +151 -0
  209. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts.map +1 -0
  210. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module.d.ts +39 -0
  211. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module.d.ts.map +1 -0
  212. package/lib/_common/data-points/data-points.component.d.ts +24 -0
  213. package/lib/_common/data-points/data-points.component.d.ts.map +1 -0
  214. package/lib/_common/data-points/data-points.module.d.ts +10 -0
  215. package/lib/_common/data-points/data-points.module.d.ts.map +1 -0
  216. package/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.d.ts +26 -0
  217. package/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.d.ts.map +1 -0
  218. package/lib/_common/dialog-components/dialog-components.module.d.ts +15 -0
  219. package/lib/_common/dialog-components/dialog-components.module.d.ts.map +1 -0
  220. package/lib/_common/display-content-type-lib/display-content-type-lib.component.d.ts +16 -0
  221. package/lib/_common/display-content-type-lib/display-content-type-lib.component.d.ts.map +1 -0
  222. package/lib/_common/display-content-type-lib/display-content-type-lib.module.d.ts +10 -0
  223. package/lib/_common/display-content-type-lib/display-content-type-lib.module.d.ts.map +1 -0
  224. package/lib/_common/events/event-card/event-card.component.d.ts +17 -0
  225. package/lib/_common/events/event-card/event-card.component.d.ts.map +1 -0
  226. package/lib/_common/events/events.component.d.ts +21 -0
  227. package/lib/_common/events/events.component.d.ts.map +1 -0
  228. package/lib/_common/events/events.module.d.ts +13 -0
  229. package/lib/_common/events/events.module.d.ts.map +1 -0
  230. package/lib/_common/highlights-of-week/highlights-of-week.component.d.ts +18 -0
  231. package/lib/_common/highlights-of-week/highlights-of-week.component.d.ts.map +1 -0
  232. package/lib/_common/highlights-of-week/highlights-of-week.module.d.ts +13 -0
  233. package/lib/_common/highlights-of-week/highlights-of-week.module.d.ts.map +1 -0
  234. package/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.d.ts +37 -0
  235. package/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.d.ts.map +1 -0
  236. package/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.module.d.ts +12 -0
  237. package/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.module.d.ts.map +1 -0
  238. package/lib/_common/key-highlights/key-highlights.component.d.ts +20 -0
  239. package/lib/_common/key-highlights/key-highlights.component.d.ts.map +1 -0
  240. package/lib/_common/key-highlights/key-highlights.module.d.ts +12 -0
  241. package/lib/_common/key-highlights/key-highlights.module.d.ts.map +1 -0
  242. package/lib/_common/mdo-leaderboard/mdo-leaderboard.component.d.ts +24 -0
  243. package/lib/_common/mdo-leaderboard/mdo-leaderboard.component.d.ts.map +1 -0
  244. package/lib/_common/mdo-leaderboard/mdo-leaderboard.module.d.ts +13 -0
  245. package/lib/_common/mdo-leaderboard/mdo-leaderboard.module.d.ts.map +1 -0
  246. package/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.d.ts +9 -0
  247. package/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.d.ts.map +1 -0
  248. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts +46 -0
  249. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts.map +1 -0
  250. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts +25 -0
  251. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts.map +1 -0
  252. package/lib/_common/microsites/national-learning-week/national-learning/national-learning.component.d.ts +24 -0
  253. package/lib/_common/microsites/national-learning-week/national-learning/national-learning.component.d.ts.map +1 -0
  254. package/lib/_common/microsites/national-learning-week/national-learning.module.d.ts +23 -0
  255. package/lib/_common/microsites/national-learning-week/national-learning.module.d.ts.map +1 -0
  256. package/lib/_common/microsites/providers/providers-v2/providers-v2.component.d.ts +40 -0
  257. package/lib/_common/microsites/providers/providers-v2/providers-v2.component.d.ts.map +1 -0
  258. package/lib/_common/microsites/providers/providers.module.d.ts +23 -0
  259. package/lib/_common/microsites/providers/providers.module.d.ts.map +1 -0
  260. package/lib/_common/pills/pills.component.d.ts +17 -0
  261. package/lib/_common/pills/pills.component.d.ts.map +1 -0
  262. package/lib/_common/pills/pills.module.d.ts +12 -0
  263. package/lib/_common/pills/pills.module.d.ts.map +1 -0
  264. package/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.d.ts +12 -0
  265. package/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.d.ts.map +1 -0
  266. package/lib/_common/skeleton-loader-lib/skeleton-loader-lib.module.d.ts +12 -0
  267. package/lib/_common/skeleton-loader-lib/skeleton-loader-lib.module.d.ts.map +1 -0
  268. package/lib/_common/sliders/sliders.component.d.ts +31 -0
  269. package/lib/_common/sliders/sliders.component.d.ts.map +1 -0
  270. package/lib/_common/sliders/sliders.model.d.ts +41 -0
  271. package/lib/_common/sliders/sliders.model.d.ts.map +1 -0
  272. package/lib/_common/sliders/sliders.module.d.ts +13 -0
  273. package/lib/_common/sliders/sliders.module.d.ts.map +1 -0
  274. package/lib/_common/sliders-ng-content/sliders-ng-content.component.d.ts +34 -0
  275. package/lib/_common/sliders-ng-content/sliders-ng-content.component.d.ts.map +1 -0
  276. package/lib/_common/sliders-ng-content/sliders-ng-content.model.d.ts +35 -0
  277. package/lib/_common/sliders-ng-content/sliders-ng-content.model.d.ts.map +1 -0
  278. package/lib/_common/sliders-ng-content/sliders-ng-content.module.d.ts +13 -0
  279. package/lib/_common/sliders-ng-content/sliders-ng-content.module.d.ts.map +1 -0
  280. package/lib/_common/speakers/speakers.component.d.ts +19 -0
  281. package/lib/_common/speakers/speakers.component.d.ts.map +1 -0
  282. package/lib/_common/speakers/speakers.module.d.ts +13 -0
  283. package/lib/_common/speakers/speakers.module.d.ts.map +1 -0
  284. package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.d.ts +135 -0
  285. package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.d.ts.map +1 -0
  286. package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.model.d.ts +159 -0
  287. package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.model.d.ts.map +1 -0
  288. package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.module.d.ts +37 -0
  289. package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.module.d.ts.map +1 -0
  290. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.d.ts +165 -0
  291. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.d.ts.map +1 -0
  292. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.d.ts +151 -0
  293. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.d.ts.map +1 -0
  294. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.d.ts +39 -0
  295. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.d.ts.map +1 -0
  296. package/lib/_common/top-learners/top-learners.component.d.ts +22 -0
  297. package/lib/_common/top-learners/top-learners.component.d.ts.map +1 -0
  298. package/lib/_common/top-learners/top-learners.module.d.ts +11 -0
  299. package/lib/_common/top-learners/top-learners.module.d.ts.map +1 -0
  300. package/lib/_common/user-content-rating/user-content-rating-lib.component.d.ts +26 -0
  301. package/lib/_common/user-content-rating/user-content-rating-lib.component.d.ts.map +1 -0
  302. package/lib/_common/user-content-rating/user-content-rating-lib.module.d.ts +17 -0
  303. package/lib/_common/user-content-rating/user-content-rating-lib.module.d.ts.map +1 -0
  304. package/lib/_common/user-content-rating/user-content-rating-lib.service.d.ts +11 -0
  305. package/lib/_common/user-content-rating/user-content-rating-lib.service.d.ts.map +1 -0
  306. package/lib/_common/user-progress/user-progress.component.d.ts +28 -0
  307. package/lib/_common/user-progress/user-progress.component.d.ts.map +1 -0
  308. package/lib/_common/user-progress/user-progress.module.d.ts +13 -0
  309. package/lib/_common/user-progress/user-progress.module.d.ts.map +1 -0
  310. package/lib/_constants/misc.constants.d.ts +3 -0
  311. package/lib/_constants/misc.constants.d.ts.map +1 -0
  312. package/lib/_directives/default-thumbnail/default-thumbnail.directive.d.ts +13 -0
  313. package/lib/_directives/default-thumbnail/default-thumbnail.directive.d.ts.map +1 -0
  314. package/lib/_directives/default-thumbnail/default-thumbnail.module.d.ts +9 -0
  315. package/lib/_directives/default-thumbnail/default-thumbnail.module.d.ts.map +1 -0
  316. package/lib/_directives/image-responsive/image-responsive.directive.d.ts +21 -0
  317. package/lib/_directives/image-responsive/image-responsive.directive.d.ts.map +1 -0
  318. package/lib/_directives/image-responsive/image-responsive.module.d.ts +9 -0
  319. package/lib/_directives/image-responsive/image-responsive.module.d.ts.map +1 -0
  320. package/lib/_directives/navigation/navigation.directive.d.ts +13 -0
  321. package/lib/_directives/navigation/navigation.directive.d.ts.map +1 -0
  322. package/lib/_directives/navigation/navigation.module.d.ts +9 -0
  323. package/lib/_directives/navigation/navigation.module.d.ts.map +1 -0
  324. package/lib/_directives/scrollable-item/scrollable-item.directive.d.ts +11 -0
  325. package/lib/_directives/scrollable-item/scrollable-item.directive.d.ts.map +1 -0
  326. package/lib/_directives/scrollable-item/scrollable-item.module.d.ts +9 -0
  327. package/lib/_directives/scrollable-item/scrollable-item.module.d.ts.map +1 -0
  328. package/lib/_models/card-content-v2.model.d.ts +45 -0
  329. package/lib/_models/card-content-v2.model.d.ts.map +1 -0
  330. package/lib/_models/card-content.model.d.ts +42 -0
  331. package/lib/_models/card-content.model.d.ts.map +1 -0
  332. package/lib/_models/card-users.model.d.ts +51 -0
  333. package/lib/_models/card-users.model.d.ts.map +1 -0
  334. package/lib/_models/compentencies.model.d.ts +10 -0
  335. package/lib/_models/compentencies.model.d.ts.map +1 -0
  336. package/lib/_models/content-strip-multiple.model.d.ts +130 -0
  337. package/lib/_models/content-strip-multiple.model.d.ts.map +1 -0
  338. package/lib/_models/event.d.ts +19 -0
  339. package/lib/_models/event.d.ts.map +1 -0
  340. package/lib/_models/profile-v3.models.d.ts +92 -0
  341. package/lib/_models/profile-v3.models.d.ts.map +1 -0
  342. package/lib/_models/rating.model.d.ts +18 -0
  343. package/lib/_models/rating.model.d.ts.map +1 -0
  344. package/lib/_models/widget-content.model.d.ts +499 -0
  345. package/lib/_models/widget-content.model.d.ts.map +1 -0
  346. package/lib/_models/widget-search.model.d.ts +253 -0
  347. package/lib/_models/widget-search.model.d.ts.map +1 -0
  348. package/lib/_models/widget-user.model.d.ts +6 -0
  349. package/lib/_models/widget-user.model.d.ts.map +1 -0
  350. package/lib/_pipes/object-to-array/object-to-array.pipe.d.ts +8 -0
  351. package/lib/_pipes/object-to-array/object-to-array.pipe.d.ts.map +1 -0
  352. package/lib/_pipes/object-to-array/object-to-array.pipe.module.d.ts +9 -0
  353. package/lib/_pipes/object-to-array/object-to-array.pipe.module.d.ts.map +1 -0
  354. package/lib/_pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts +9 -0
  355. package/lib/_pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts.map +1 -0
  356. package/lib/_pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +10 -0
  357. package/lib/_pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts.map +1 -0
  358. package/lib/_pipes/pipe-public-URL/pipe-public-URL.module.d.ts +9 -0
  359. package/lib/_pipes/pipe-public-URL/pipe-public-URL.module.d.ts.map +1 -0
  360. package/lib/_pipes/pipe-public-URL/pipe-public-URL.pipe.d.ts +10 -0
  361. package/lib/_pipes/pipe-public-URL/pipe-public-URL.pipe.d.ts.map +1 -0
  362. package/lib/_services/certificate.service.d.ts +12 -0
  363. package/lib/_services/certificate.service.d.ts.map +1 -0
  364. package/lib/_services/common-methods.service.d.ts +43 -0
  365. package/lib/_services/common-methods.service.d.ts.map +1 -0
  366. package/lib/_services/configurations.service.d.ts +75 -0
  367. package/lib/_services/configurations.service.d.ts.map +1 -0
  368. package/lib/_services/insite-data.service.d.ts +19 -0
  369. package/lib/_services/insite-data.service.d.ts.map +1 -0
  370. package/lib/_services/multilingual-translations.service.d.ts +24 -0
  371. package/lib/_services/multilingual-translations.service.d.ts.map +1 -0
  372. package/lib/_services/rating.service.d.ts +19 -0
  373. package/lib/_services/rating.service.d.ts.map +1 -0
  374. package/lib/_services/viewer-route-util.d.ts +9 -0
  375. package/lib/_services/viewer-route-util.d.ts.map +1 -0
  376. package/lib/_services/widget-content.service.d.ts +91 -0
  377. package/lib/_services/widget-content.service.d.ts.map +1 -0
  378. package/lib/_services/widget-user.service.d.ts +37 -0
  379. package/lib/_services/widget-user.service.d.ts.map +1 -0
  380. package/lib/consumption.component.d.ts +9 -0
  381. package/lib/consumption.component.d.ts.map +1 -0
  382. package/lib/consumption.config.d.ts +7 -0
  383. package/lib/consumption.config.d.ts.map +1 -0
  384. package/lib/consumption.module.d.ts +16 -0
  385. package/lib/consumption.module.d.ts.map +1 -0
  386. package/lib/consumption.service.d.ts +7 -0
  387. package/lib/consumption.service.d.ts.map +1 -0
  388. package/lib/registration-lib.config.d.ts +5 -0
  389. package/lib/registration-lib.config.d.ts.map +1 -0
  390. package/package.json +21 -0
  391. package/public-api.d.ts +70 -0
  392. package/public-api.d.ts.map +1 -0
  393. package/sunbird-cb-consumption.d.ts +6 -0
  394. package/sunbird-cb-consumption.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sunbird-cb-consumption.js","sources":["../../../../library/sunbird-cb/consumption/src/lib/consumption.service.ts","../../../../library/sunbird-cb/consumption/src/lib/consumption.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_models/card-content-v2.model.ts","../../../../library/sunbird-cb/consumption/src/lib/_models/widget-content.model.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/viewer-route-util.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/widget-content.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/widget-user.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/configurations.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/multilingual-translations.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_directives/image-responsive/image-responsive.directive.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/sliders/sliders.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/sliders/sliders.component.html","../../../../library/sunbird-cb/consumption/src/lib/_directives/image-responsive/image-responsive.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_directives/navigation/navigation.directive.ts","../../../../library/sunbird-cb/consumption/src/lib/_directives/navigation/navigation.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/sliders/sliders.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/insite-data.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/data-points/data-points.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/data-points/data-points.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/skeleton-loader-lib/skeleton-loader-lib.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/data-points/data-points.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/calender/calender-day/calender-day.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/calender/calender-day/calender-day.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/calender/calender.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/calender/calender.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/calender/calender.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/common-methods.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/common-strip/common-strip.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/common-strip/common-strip.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/common-strip/common-strip.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/announcements/announcements.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/announcements/announcements.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/announcements/announcements.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/top-learners/top-learners.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/top-learners/top-learners.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/top-learners/top-learners.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_directives/scrollable-item/scrollable-item.directive.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/sliders-ng-content/sliders-ng-content.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/sliders-ng-content/sliders-ng-content.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cbp-plan/cbp-plan.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cbp-plan/cbp-plan.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/sliders-ng-content/sliders-ng-content.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_directives/scrollable-item/scrollable-item.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cbp-plan/cbp-plan.module.ts","../../../../library/sunbird-cb/consumption/src/lib/consumption.module.ts","../../../../library/sunbird-cb/consumption/src/lib/consumption.config.ts","../../../../library/sunbird-cb/consumption/src/lib/_models/card-content.model.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/display-content-type-lib/display-content-type-lib.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/display-content-type-lib/display-content-type-lib.component.html","../../../../library/sunbird-cb/consumption/src/lib/_directives/default-thumbnail/default-thumbnail.directive.ts","../../../../library/sunbird-cb/consumption/src/lib/_pipes/pipe-public-URL/pipe-public-URL.pipe.ts","../../../../library/sunbird-cb/consumption/src/lib/_pipes/pipe-duration-transform/pipe-duration-transform.pipe.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-portrait/card-portrait.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-portrait/card-portrait.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-landscape/card-landscape.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-landscape/card-landscape.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-wide/card-wide.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-wide/card-wide.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-wide-v2/card-wide-v2.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-wide-v2/card-wide-v2.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-user/card-user.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-user/card-user.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/avatar-photo-lib/avatar-photo-lib.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/avatar-photo-lib/avatar-photo-lib.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-karma-programs/card-karma-programs.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-karma-programs/card-karma-programs.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.html","../../../../library/sunbird-cb/consumption/src/lib/_services/certificate.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/content-progress/content-progress.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/content-progress/content-progress.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/provider-card/provider-card.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/provider-card/provider-card.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/cards.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/cards.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-resource/card-resource.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-resource/card-resource.component.html","../../../../library/sunbird-cb/consumption/src/lib/_pipes/pipe-public-URL/pipe-public-URL.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_pipes/object-to-array/object-to-array.pipe.ts","../../../../library/sunbird-cb/consumption/src/lib/_pipes/object-to-array/object-to-array.pipe.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/display-content-type-lib/display-content-type-lib.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_directives/default-thumbnail/default-thumbnail.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_pipes/pipe-duration-transform/pipe-duration-transform.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/content-progress/content-progress.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/dialog-components/dialog-components.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/avatar-photo-lib/avatar-photo-lib.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/cards/cards.module.ts","../../../../library/sunbird-cb/consumption/src/lib/registration-lib.config.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.model.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook/competency-passbook.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/pills/pills.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/pills/pills.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook/competency-passbook.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook/competency-passbook.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/pills/pills.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook/competency-passbook.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook-mdo/competency-passbook-mdo.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/competency-passbook-mdo/competency-passbook-mdo.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_services/rating.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/user-content-rating/user-content-rating-lib.service.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/user-content-rating/user-content-rating-lib.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/user-content-rating/user-content-rating-lib.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/user-content-rating/user-content-rating-lib.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/mdo-channels/mdo-channel.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/providers/providers-v2/providers-v2.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/providers/providers-v2/providers-v2.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/providers/providers.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/key-highlights/key-highlights.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/key-highlights/key-highlights.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/highlights-of-week/highlights-of-week.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/highlights-of-week/highlights-of-week.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/events/event-card/event-card.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/events/event-card/event-card.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/events/events.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/events/events.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/user-progress/user-progress.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/user-progress/user-progress.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/speakers/speakers.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/speakers/speakers.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/mdo-leaderboard/mdo-leaderboard.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/mdo-leaderboard/mdo-leaderboard.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/national-learning-week/national-learning/national-learning.component.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/national-learning-week/national-learning/national-learning.component.html","../../../../library/sunbird-cb/consumption/src/lib/_common/key-highlights/key-highlights.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/events/events.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/mdo-leaderboard/mdo-leaderboard.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/highlights-of-week/highlights-of-week.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/speakers/speakers.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/user-progress/user-progress.module.ts","../../../../library/sunbird-cb/consumption/src/lib/_common/microsites/national-learning-week/national-learning.module.ts","../../../../library/sunbird-cb/consumption/src/public-api.ts","../../../../library/sunbird-cb/consumption/src/sunbird-cb-consumption.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsumptionService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'sb-uic-consumption',\n template: `\n <p>\n consumption works!\n </p>\n `,\n styles: []\n})\nexport class ConsumptionComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, OnChanges, OnDestroy, Input, Output, ViewChild, EventEmitter, ElementRef } from '@angular/core';\nimport {\n fromEvent,\n Subscription,\n timer,\n} from 'rxjs';\nimport { debounceTime, throttleTime } from 'rxjs/operators';\nimport { TFetchStatus } from '../../_constants/misc.constants';\nimport { ValueService } from '@sunbird-cb/utils-v2';\nimport { NsCommonStrip } from '../common-strip/common-strip.model';\nimport { NsContentStripMultiple } from '../../_models/content-strip-multiple.model';\n\n@Component({\n selector: 'sb-uic-horizontal-scroller-v2',\n templateUrl: './horizontal-scroller-v2.component.html',\n styleUrls: ['./horizontal-scroller-v2.component.scss'],\n})\n\nexport class HorizontalScrollerV2Component implements OnInit, OnChanges, OnDestroy {\n\n @Input() loadStatus: TFetchStatus = 'fetching';\n @Input() id: string = '';\n @Input() onHover = false;\n @Input() sliderConfig: any = {\n showNavs: true,\n showDots: true,\n cerificateCardMargin: false,\n };\n @Output() loadNext = new EventEmitter();\n @Input() widgetsLength: any;\n @Input() defaultMaxWidgets: any;\n @Input() stripConfig: any;\n @ViewChild('horizontalScrollElem', { static: true })\n horizontalScrollElem: ElementRef | null = null;\n\n enablePrev = false;\n enableNext = false;\n activeNav = 0;\n cardSubType = 'standard';\n bottomDotsArray: any = [];\n private scrollObserver: Subscription | null = null;\n isMobile = false\n private defaultMenuSubscribe: Subscription | null = null\n isLtMedium$ = this.valueSvc.isLtMedium$\n\n constructor(private valueSvc: ValueService) { }\n\n ngOnInit() {\n this.cardSubType = this.stripConfig && this.stripConfig.cardSubType ? this.stripConfig.cardSubType : 'standard';\n if (this.horizontalScrollElem) {\n const horizontalScrollElem = this.horizontalScrollElem;\n this.scrollObserver = fromEvent(\n horizontalScrollElem.nativeElement,\n 'scroll',\n )\n .pipe(debounceTime(100), throttleTime(100))\n .subscribe(_ => {\n this.updateNavigationBtnStatus(horizontalScrollElem\n .nativeElement as HTMLElement);\n });\n setTimeout(() => {\n this.getBottomDotsArray();\n }, 700);\n }\n this.defaultMenuSubscribe = this.isLtMedium$.subscribe((isLtMedium: boolean) => {\n this.isMobile = isLtMedium\n })\n }\n\n ngOnChanges() {\n timer(100).subscribe(() => {\n if (this.horizontalScrollElem) {\n this.updateNavigationBtnStatus(this.horizontalScrollElem\n .nativeElement as HTMLElement);\n }\n });\n setTimeout(() => {\n this.getBottomDotsArray();\n }, 700);\n }\n\n ngOnDestroy() {\n if (this.scrollObserver) {\n this.scrollObserver.unsubscribe();\n }\n if (this.defaultMenuSubscribe) {\n this.defaultMenuSubscribe.unsubscribe()\n }\n }\n\n showPrev() {\n // const elem = this.horizontalScrollElem.nativeElement\n // elem.scrollLeft -= 0.20 * elem.clientWidth\n if (this.horizontalScrollElem) {\n // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth * 0.24)\n const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth);\n this.horizontalScrollElem.nativeElement.scrollTo({\n left: this.horizontalScrollElem.nativeElement.scrollLeft - clientWidth,\n behavior: 'smooth',\n });\n \n const elem = this.horizontalScrollElem.nativeElement\n if (elem.scrollLeft !== 0 && (elem.scrollWidth !== elem.clientWidth + elem.scrollLeft)) {\n this.activeNav -= 1;\n } else {\n if(this.sliderConfig.arrowsAlwaysOn) {\n if(this.horizontalScrollElem.nativeElement.scrollLeft === 0){\n this.horizontalScrollElem.nativeElement.scrollTo({\n left: elem.scrollWidth,\n behavior: 'smooth',\n });\n this.activeNav = this.bottomDotsArray.length - 1;\n }\n }\n }\n }\n }\n\n showNext() {\n // const elem = this.horizontalScrollElem.nativeElement\n // elem.scrollLeft += 0.20 * elem.clientWidth\n if (this.horizontalScrollElem) {\n // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth * 0.24)\n const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth);\n this.horizontalScrollElem.nativeElement.scrollTo({\n left: this.horizontalScrollElem.nativeElement.scrollLeft + clientWidth,\n behavior: 'smooth',\n });\n const elem = this.horizontalScrollElem.nativeElement\n if (elem.scrollLeft !== 0 && (elem.scrollWidth !== elem.clientWidth + elem.scrollLeft)) {\n this.activeNav += 1;\n } else {\n if(this.sliderConfig.arrowsAlwaysOn) {\n if(this.horizontalScrollElem.nativeElement.scrollLeft !== 0 && elem.clientWidth + elem.scrollLeft >= elem.scrollWidth ){\n this.horizontalScrollElem.nativeElement.scrollTo({\n left: 0,\n behavior: 'smooth',\n });\n this.activeNav = 0;\n }\n }\n }\n }\n }\n\n private updateNavigationBtnStatus(elem: HTMLElement) {\n this.enablePrev = true;\n this.enableNext = true;\n if (elem.scrollLeft === 0) {\n if(!this.sliderConfig.arrowsAlwaysOn) {\n this.enablePrev = false;\n }\n this.activeNav = 0;\n }\n // if (elem.scrollWidth === Math.round(elem.clientWidth + elem.scrollLeft)) {\n // if (this.loadStatus === 'hasMore') {\n // this.loadNext.emit();\n // } else {\n // if(!this.sliderConfig.arrowsAlwaysOn) {\n // this.enableNext = false;\n // }\n // if (this.bottomDotsArray.length) {\n // this.activeNav = this.bottomDotsArray.length - 1;\n // }\n // }\n // }\n // if (elem.scrollLeft !== 0 && (elem.scrollWidth !== elem.clientWidth + elem.scrollLeft)) {\n // this.activeNav = Math.ceil(elem.scrollLeft / elem.clientWidth);\n // }\n\n\n const widthDiff = Math.abs(elem.scrollWidth - Math.round(elem.clientWidth + elem.scrollLeft))\n if (widthDiff === 0 || widthDiff === 1) {\n if (this.loadStatus === 'hasMore') {\n this.loadNext.emit()\n } else {\n this.enableNext = false\n if (this.bottomDotsArray.length) {\n this.activeNav = this.bottomDotsArray.length - 1\n }\n }\n }\n if (elem.scrollLeft !== 0 && (elem.scrollWidth !== elem.clientWidth + elem.scrollLeft)) {\n this.activeNav = Math.ceil(elem.scrollLeft / elem.clientWidth)\n }\n }\n\n slideTo(ele: any) {\n const diff = ele - this.activeNav;\n // if (ele > this.activeNav && ele !== this.activeNav) {\n // if (this.horizontalScrollElem) {\n // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\n // this.horizontalScrollElem.nativeElement.scrollTo({\n // left: this.horizontalScrollElem.nativeElement.scrollLeft + (clientWidth*diff),\n // behavior: 'smooth',\n // })\n // }\n // this.activeNav = ele\n // } else {\n // if (this.horizontalScrollElem && ele >= 0 && ele !== this.activeNav) {\n // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\n // this.horizontalScrollElem.nativeElement.scrollTo({\n // left: this.horizontalScrollElem.nativeElement.scrollLeft - (clientWidth*diff),\n // behavior: 'smooth',\n // })\n // }\n // this.activeNav = ele\n // }\n if (this.horizontalScrollElem) {\n const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth);\n this.horizontalScrollElem.nativeElement.scrollTo({\n left: this.horizontalScrollElem.nativeElement.scrollLeft + (clientWidth * diff),\n behavior: 'smooth',\n });\n }\n this.activeNav = ele;\n }\n\n getBottomDotsArray() {\n if (this.horizontalScrollElem) {\n this.bottomDotsArray = [];\n let cardWidth;\n let arrLength;\n if (this.cardSubType !== 'card-wide-v2') {\n cardWidth = this.cardSubType === 'standard' ? 245 :\n ((document.getElementsByClassName(this.cardSubType) &&\n document.getElementsByClassName(this.cardSubType)[0] !== undefined)\n ? document.getElementsByClassName(this.cardSubType)[0].clientWidth : 245);\n if (document.getElementById(`${this.id}`)) {\n const scrollerWidth = document.getElementById(`${this.id}`).clientWidth;\n const totalCardsLength = cardWidth * this.widgetsLength;\n if (totalCardsLength > scrollerWidth) {\n arrLength = Math.round(scrollerWidth / cardWidth);\n this.defaultMaxWidgets = this.defaultMaxWidgets ? this.widgetsLength < this.defaultMaxWidgets ?\n this.widgetsLength : this.defaultMaxWidgets : this.defaultMaxWidgets;\n arrLength = this.defaultMaxWidgets / arrLength;\n for (let i = 0; i < arrLength; i += 1) {\n this.bottomDotsArray.push(i);\n }\n }\n }\n } else {\n setTimeout(() => {\n this.bottomDotsArray = []\n arrLength = document.getElementsByClassName(this.cardSubType).length;\n for (let i = 0; i < arrLength; i += 1) {\n this.bottomDotsArray.push(i);\n }\n }, 1000);\n }\n }\n }\n}\n","\n<section class=\"horizontal-scroll-container h-full\" [id]=\"id\"\n[ngClass]=\"{'px-4': sliderConfig.showNavs && sliderConfig.showNavsSpacing, 'mt-5':sliderConfig.cerificateCardMargin}\">\n <div name=\"horizontal-scroll-content-strip\" class=\"horizontal-scroll-content\" #horizontalScrollElem>\n <ng-content></ng-content>\n </div>\n <div class=\"navigation {{isMobile? sliderConfig?.responsive?.arrowsPlacement : sliderConfig?.arrowsPlacement}}\">\n <ng-container *ngIf=\"sliderConfig?.showNavs\">\n <button i18n-aria-label aria-label=\"back\" name=\"content-backward-button\" mat-mini-fab color=\"\" \n (click)=\"showPrev()\" class=\"prevBtn mat-elevation-z\" [hidden]=\"!enablePrev\"\n [ngClass]=\"{'prevBtnHover': onHover}\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"sliderConfig?.showNavs\">\n <button i18n-aria-label aria-label=\"next\" name=\"content-forward-button\" mat-mini-fab (click)=\"showNext()\"\n color=\"\" class=\"nextBtn mat-elevation-z\" [ngClass]=\"{'nextBtnHover': onHover}\"\n [hidden]=\"!enableNext || loadStatus === 'fetching'\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n </ng-container>\n </div>\n <!-- <div class=\"nextLoading\" *ngIf=\"loadStatus === 'fetching'\">\n <mat-spinner></mat-spinner>\n </div> --> \n</section>\n\n<div class=\"dots-container {{isMobile? sliderConfig?.responsive?.dotsAlign : sliderConfig?.dotsAlign}}\" \n*ngIf=\"(isMobile && sliderConfig?.responsive?.showDots) || (!isMobile && sliderConfig?.showDots)\">\n <!-- <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" -->\n <span class=\"dot\" [ngClass]=\"{ active: j === activeNav }\" *ngFor=\"let slide of bottomDotsArray; let j = index\" (click)=\"slideTo(j)\"></span>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HorizontalScrollerV2Component } from './horizontal-scroller-v2.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@NgModule({\n declarations: [HorizontalScrollerV2Component],\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatProgressSpinnerModule,\n ],\n exports: [HorizontalScrollerV2Component],\n})\nexport class HorizontalScrollerV2Module { }\n","import { NsContent } from './widget-content.model';\n\nexport namespace NsCardContent {\n export interface ICard {\n content: NsContent.IContent;\n cardSubType: TCardSubType;\n context: { pageSection: string; position?: number };\n intranetMode?: 'greyOut' | 'hide';\n deletedMode?: 'greyOut' | 'hide';\n likes?: number;\n contentTags?: IContentTags;\n stateData: any;\n }\n\n export interface IContentTags {\n daysSpan?: number;\n excludeContentType?: NsContent.EContentTypes[];\n excludeMimeType?: string[];\n tag: string;\n criteriaField?: string;\n }\n\n export interface ICompetency extends ICard {\n competencyArea: '';\n competencyObject: {};\n }\n\n export type TCardSubType =\n | 'standard'\n | 'minimal'\n | 'space-saving'\n | 'card-user-details'\n | 'basic-info'\n | 'basic-details'\n | 'card-description-back'\n | 'network-card';\n\n export enum EContentStatus {\n LIVE = 'Live',\n EXPIRED = 'Expired',\n DELETED = 'Deleted',\n MARK_FOR_DELETION = 'MarkedForDeletion',\n }\n\n export enum ACBPConst {\n UPCOMING = 'upcoming',\n ALL = 'All',\n OVERDUE = 'overdue',\n SUCCESS = 'success',\n }\n\n export enum IGOTConst {\n COMPETENCIES = 'competencies_v5',\n RETIRED = 'Retired',\n }\n\n}\n","export namespace NsContent {\n export interface IContinueLearningData extends IContent {\n continueData: any;\n }\n\n export interface IContinueLearningDataReq {\n request: {\n userId: string | undefined,\n courseId: string,\n contentIds: string[],\n batchId: string | undefined | null\n fields?: string[]\n };\n }\n\n export interface IContent {\n platform?: any;\n addedOn: string;\n appIcon: string;\n artifactUrl: string;\n averageRating?: any;\n // this will be used to content form enrollment user list\n batches?: any;\n batch?: any;\n body?: string;\n certificationList?: IRelatedContentMeta[];\n certificationStatus?: TCertificationStatus;\n certificationSubmissionDate?: string;\n certificationUrl: string;\n childNodes?: string[];\n children: IContent[];\n childrenClassifiers?: string[];\n clients?: IClient[];\n collections?: IContent[];\n completionPercentage?: number | null;\n completionStatus?: number;\n difficultyLevel: string;\n contentId: string;\n contentType: EContentTypes;\n contentUrlAtSource: string;\n creatorContacts: ICreator[];\n\n creatorDetails: ICreator[];\n creatorLogo: string;\n creatorPosterImage: string;\n creatorThumbnail: string;\n\n curatedTags: string[];\n description: string;\n displayContentType: EDisplayContentTypes; // For UI\n downloadUrl?: string;\n duration: number;\n enrolledDate?: string;\n exclusiveContent?: boolean;\n expiryDate?: string;\n equivalentCertifications?: IRelatedContentMeta[];\n hasAccess: boolean;\n hasAssessment?: string;\n idealScreenSize?: string;\n identifier: string;\n introductoryVideo?: string;\n introductoryVideoIcon?: string;\n learningTrack?: string;\n isExternal: boolean;\n isIframeSupported: 'Yes' | 'No' | 'Maybe';\n isInIntranet?: boolean;\n keywords?: string[];\n kArtifacts?: IRelatedContentMeta[];\n lastContentAccessTime?: string;\n lastUpdatedOn: string;\n learningMode?: TLearningMode;\n learningObjective: string;\n labels?: string[];\n locale?: string;\n hasTranslations?: { identifier: string; locale: string }[];\n isTranslationOf?: { identifier: string; locale: string }[];\n me_totalSessionsCount: number;\n mediaType: string;\n mimeType: EMimeTypes;\n msArtifactDetails?: IMSArtifactDetails;\n mode?: ETagType;\n name: string;\n nextCertificationAttemptDate?: string;\n playgroundInstructions?: string;\n playgroundResources?: IResourcePlayground[];\n postContents?: IPrePostContent[];\n posterImage?: string;\n preContents?: IPrePostContent[];\n preRequisites: string;\n price?: {\n currency: string\n value: number\n };\n primaryCategory: EPrimaryCategory;\n proctorUrl?: string;\n progress?: IMarkAsCompleteProgress;\n publishedOn: string;\n recentCertificationAttemptScore?: number;\n recommendationReasons?: string[];\n region?: string[];\n registrationUrl?: string;\n registrationInstructions?: string;\n resourceCategory?: string[];\n resourceType: string;\n size?: number;\n skills: ISkill[];\n softwareRequirements?: IResourceDetail[];\n sourceName: string;\n sourceShortName: string;\n sourceIconUrl?: string;\n sourceUrl?: string;\n ssoEnabled?: boolean;\n lastReadContentId?: string;\n status:\n | 'Draft'\n | 'InReview'\n | 'QualityReview'\n | 'Reviewed'\n | 'Processing'\n | 'Live'\n | 'Deleted'\n | 'MarkedForDeletion'\n | 'Expired';\n subTitle?: string;\n subTitles?: ISubtitle[];\n studyMaterials?: IRelatedContentMeta[];\n systemRequirements?: string[];\n tags: ITag[];\n topics: IContentTopic[];\n totalLikes?: { [key: string]: number };\n totalRating?: number;\n track: ITrack[];\n uniqueLearners?: number;\n viewCount?: { [key: string]: number };\n reason?: string; // required for Knowledge board\n trainingLHubCount?: number; // for LHub trainings\n verifiers?: {\n // required for External Certifications\n name: string\n email: string\n id: string\n }[];\n references?: { url: string; title: string }[];\n resumePage?: number; // For player WebModule in UI\n [key: string]: any;\n optionalReading: boolean;\n additionalTags?: string[];\n }\n\n export interface IContentResponse {\n id: string;\n params: any;\n responseCode: string;\n result: {\n content: IContent\n };\n ts: string;\n ver: string;\n }\n\n export interface IBatch {\n batchId: string;\n createdBy: string;\n endDate: string | null;\n enrollmentType: string;\n identifier: string;\n name: string;\n startDate: string;\n status: number;\n cert_templates?: null;\n collectionId: string;\n courseId: string;\n createdDate: string;\n createdFor: string[];\n description?: null;\n enrollmentEndDate: string | null;\n id: string;\n mentors?: string[] | null;\n tandc?: null;\n updatedDate?: string | null;\n }\n\n export interface IBatchListResponse {\n content?: IBatch[];\n count?: number;\n enrolled?: boolean;\n workFlow?: {\n wfInitiated?: boolean\n batch?: any\n wfItem?: any\n };\n }\n\n export interface ICourse {\n active: true;\n addedBy: string;\n batch: IBatch;\n batchId: string;\n certificates: [];\n collectionId: string;\n completedOn: string | null;\n completionPercentage: number | null;\n completionStatus?: number;\n content: IContent;\n contentId: string;\n contentStatus: any;\n courseId: string;\n courseLogoUrl: string;\n courseName: string;\n dateTime: number;\n description: string;\n enrolledDate: string;\n issuedCertificates: [];\n lastContentAccessTime?: string;\n lastReadContentId?: string;\n lastReadContentStatus: string | null;\n leafNodesCount: number;\n progress: number;\n status: number;\n userId: string;\n }\n\n export interface IContentMinimal {\n appIcon: string;\n artifactUrl: string;\n difficultyLevel: string;\n contentType: EContentTypes;\n description: string;\n displayContentType?: EDisplayContentTypes;\n duration: number;\n identifier: string;\n hasAccess?: boolean;\n isInIntranet?: boolean;\n learningMode?: TLearningMode;\n mimeType: EMimeTypes;\n name: string;\n creatorDetails: ICreator[];\n creatorContacts: ICreator[];\n posterImage: string;\n primaryCategory: EPrimaryCategory;\n resourceType?: string;\n totalRating?: number;\n }\n\n export interface ICollectionHierarchyResponse {\n data: IContent;\n hasMore: boolean;\n totalContents: number;\n }\n\n export interface IRelatedContentMeta {\n identifier: string;\n name: string;\n }\n\n type TCertificationStatus = 'ongoing' | 'passed' | 'canAttempt' | 'cannotAttempt';\n export type TLearningMode = 'Self-Paced' | 'Instructor-Led' | 'Open' | 'Closed';\n\n interface IMarkAsCompleteProgress {\n progressStatus: 'open' | 'started' | 'completed';\n showMarkAsComplete: boolean;\n markAsCompleteReason: string;\n progressSupported: boolean;\n progress: number | null;\n }\n\n interface ITag {\n id: string;\n type: string;\n value: string;\n }\n interface IMSArtifactDetails {\n channelId: string;\n videoId: string;\n }\n interface IClient {\n displayName: string;\n id: string;\n name: string;\n }\n interface ISubtitle {\n srclang: string;\n label: string;\n url: string;\n }\n interface IPrePostContent {\n identifier: string;\n name: string;\n }\n interface IResourceDetail {\n title?: string;\n url?: string;\n }\n interface IResourcePlayground {\n appIcon: string;\n artifactUrl: string;\n identifier: string;\n name: string;\n }\n interface ITrack {\n id: string;\n name: string;\n status: string;\n visibility: string;\n }\n interface ISkill {\n id: string;\n category: string;\n skill: string;\n name: string;\n }\n export interface ICreator {\n id: string;\n name: string;\n email: string;\n }\n export interface IContentTopic {\n identifier: string;\n name: string;\n }\n // API Based\n\n export interface IContact {\n id: string;\n name: string;\n email: string;\n }\n\n export interface IViewerContinueLearningRequest {\n resourceId: string;\n contextPathId: string;\n data: string;\n dateAccessed: number;\n contextType?: string;\n }\n /**\n * @deprecated Enum EContentTypes should not be used in future\n */\n export enum EContentTypes {\n PROGRAMV2 = 'Program',\n PROGRAM = 'Learning Path',\n CHANNEL = 'Channel',\n COURSE = 'Course',\n KNOWLEDGE_ARTIFACT = 'Knowledge Artifact',\n KNOWLEDGE_BOARD = 'Knowledge Board',\n LEARNING_JOURNEY = 'Learning Journeys',\n MODULE = 'CourseUnit',\n RESOURCE = 'Resource',\n }\n export enum EPrimaryCategory {\n PROGRAM = 'Program',\n COURSE = 'Course',\n MODULE = 'Course Unit',\n RESOURCE = 'Learning Resource',\n GOALS = 'GOALS',\n PLAYLIST = 'PLAYLIST',\n PRACTICE_RESOURCE = 'Practice Question Set',\n FINAL_ASSESSMENT = 'Course Assessment',\n COMP_ASSESSMENT = 'Competency Assessment',\n FTB_QUESTION = 'FTB Question',\n MTF_QUESTION = 'MTF Question',\n MULTIPLE_CHOICE_QUESTION = 'Multiple Choice Question',\n SINGLE_CHOICE_QUESTION = 'Single Choice Question',\n MANDATORY_COURSE_GOAL = 'Mandatory Course Goal',\n STANDALONE_ASSESSMENT = 'Standalone Assessment',\n BLENDED_PROGRAM = 'Blended Program',\n OFFLINE_SESSION = 'Offline Session',\n CURATED_PROGRAM = 'Curated Program',\n // following will not be available soon\n /**\n * @deprecated The type should not be used\n */\n KNOWLEDGE_ARTIFACT = 'Knowledge Artifact',\n /**\n * @deprecated The type should not be used\n */\n KNOWLEDGE_BOARD = 'Knowledge Board',\n /**\n * @deprecated The type should not be used\n */\n LEARNING_JOURNEY = 'Learning Journeys',\n /**\n * @deprecated The type should not be used\n */\n CHANNEL = 'Channel',\n }\n\n export enum ECourseCategory {\n INVITE_ONLY_PROGRAM = 'Invite-Only Program',\n MODERATED_PROGRAM = 'Moderated Program',\n BLENDED_PROGRAM = 'Blended Program',\n CURATED_PROGRAM = 'Curated Program',\n COURSE = 'Course',\n MODERATED_COURSE = 'Moderated Course',\n STANDALONE_ASSESSMENT = 'Standalone Assessment',\n MODERATED_ASSESSEMENT = 'Moderated Assessment',\n }\n\n export enum WFBlendedProgramStatus {\n INITIATE = 'INITIATE',\n SEND_FOR_MDO_APPROVAL = 'SEND_FOR_MDO_APPROVAL',\n SEND_FOR_PC_APPROVAL = 'SEND_FOR_PC_APPROVAL',\n APPROVED = 'APPROVED',\n REJECTED = 'REJECTED',\n WITHDRAWN = 'WITHDRAWN',\n REMOVED = 'REMOVED',\n WITHDRAW = 'WITHDRAW',\n }\n export enum WFBlendedProgramApprovalTypes {\n ONE_STEP_PC = 'oneStepPCApproval',\n ONE_STEP_MDO = 'oneStepMDOApproval',\n TWO_STEP_MDO_PC = 'twoStepMDOAndPCApproval',\n TWO_STEP_PC_MDO = 'twoStepPCAndMDOApproval',\n }\n\n export const WFSTATUS_MSG_MAPPING: any = {\n INITIATE: '',\n SEND_FOR_MDO_APPROVAL: 'BatchEnrollL1Msg',\n SEND_FOR_PC_APPROVAL: 'BatchEnrollL2Msg',\n APPROVED: 'BatchEnrollApprovedMsg',\n REJECTED: 'BatchEnrollRejectedMsg',\n WITHDRAWN: 'BatchEnrollWithdrawMsg',\n REMOVED: 'BatchEnrollRemoveMsg',\n EXPIRED: 'BatchListExpiredMsg',\n };\n\n export enum EResourcePrimaryCategories {\n LEARNING_RESOURCE = 'Learning Resource',\n PRACTICE_RESOURCE = 'Practice Question Set',\n FINAL_ASSESSMENT = 'Course Assessment',\n COMP_ASSESSMENT = 'Competency Assessment',\n OFFLINE_SESSION = 'Offline Session',\n }\n\n export enum EMiscPlayerSupportedCollectionTypes {\n PLAYLIST = 'Playlist',\n }\n export const PLAYER_SUPPORTED_COLLECTION_TYPES: string[] = [\n EPrimaryCategory.COURSE,\n EPrimaryCategory.MODULE,\n EPrimaryCategory.PROGRAM,\n EPrimaryCategory.CURATED_PROGRAM,\n EPrimaryCategory.BLENDED_PROGRAM,\n EPrimaryCategory.STANDALONE_ASSESSMENT,\n EMiscPlayerSupportedCollectionTypes.PLAYLIST,\n ];\n export const KB_SUPPORTED_CONTENT_TYPES: EPrimaryCategory[] = [\n EPrimaryCategory.COURSE,\n EPrimaryCategory.MODULE,\n EPrimaryCategory.PROGRAM,\n EPrimaryCategory.RESOURCE,\n ];\n export const PLAYLIST_SUPPORTED_CONTENT_TYPES: EPrimaryCategory[] = [\n EPrimaryCategory.COURSE,\n EPrimaryCategory.MODULE,\n EPrimaryCategory.PROGRAM,\n EPrimaryCategory.RESOURCE,\n ];\n export enum EMimeTypes {\n COLLECTION = 'application/vnd.ekstep.content-collection',\n ZIP = 'application/vnd.ekstep.html-archive',\n ZIP2 = 'application/vnd.ekstep.ecml-archive',\n HTML = 'application/html',\n HTML_TEXT = 'text/html',\n ILP_FP = 'application/ilpfp',\n IAP = 'application/iap-assessment',\n M4A = 'audio/m4a',\n MP3 = 'audio/mpeg',\n MP4 = 'video/mp4',\n M3U8 = 'application/x-mpegURL',\n INTERACTION = 'video/interactive',\n PDF = 'application/pdf',\n QUIZ = 'application/quiz',\n DRAG_DROP = 'application/drag-drop',\n HTML_PICKER = 'application/htmlpicker',\n WEB_MODULE = 'application/web-module',\n WEB_MODULE_EXERCISE = 'application/web-module-exercise',\n YOUTUBE = 'video/x-youtube',\n HANDS_ON = 'application/integrated-hands-on',\n RDBMS_HANDS_ON = 'application/rdbms',\n CLASS_DIAGRAM = 'application/class-diagram',\n CHANNEL = 'application/channel',\n COLLECTION_RESOURCE = 'resource/collection',\n APPLICATION_JSON = 'application/json',\n PRACTICE_RESOURCE = 'application/vnd.sunbird.questionset',\n FINAL_ASSESSMENT = 'application/vnd.sunbird.questionset',\n OFFLINE_SESSION = 'application/offline',\n // Added on UI Only\n CERTIFICATION = 'application/certification',\n PLAYLIST = 'application/playlist',\n TEXT_WEB = 'text/x-url',\n SURVEY = 'application/survey',\n QUESTION_SET = 'application/vnd.sunbird.questionset',\n QUESTION = 'application/vnd.sunbird.question',\n UNKNOWN = 'application/unknown',\n }\n export enum EDisplayContentTypes {\n ASSESSMENT = 'ASSESSMENT',\n STANDALONE_ASSESSMENT = 'STANDALONE ASSESSMENT',\n PRACTICE_RESOURCE = 'Practice Question Set',\n FINAL_ASSESSMENT = 'Course Assessment',\n AUDIO = 'AUDIO',\n CERTIFICATION = 'CERTIFICATION',\n CHANNEL = 'Channel',\n CLASS_DIAGRAM = 'CLASS_DIAGRAM',\n COURSE = 'COURSE',\n DEFAULT = 'DEFAULT',\n DRAG_DROP = 'DRAG_DROP',\n EXTERNAL_CERTIFICATION = 'EXTERNAL_CERTIFICATION',\n EXTERNAL_COURSE = 'EXTERNAL_COURSE',\n GOALS = 'GOALS',\n HANDS_ON = 'HANDS_ON',\n IAP = 'IAP',\n INSTRUCTOR_LED = 'INSTRUCTOR_LED',\n INTERACTIVE_VIDEO = 'INTERACTIVE_VIDEO',\n KNOWLEDGE_ARTIFACT = 'KNOWLEDGE_ARTIFACT',\n MODULE = 'MODULE',\n PDF = 'PDF',\n SURVEY = 'SURVEY',\n PLAYLIST = 'PLAYLIST',\n PROGRAM = 'PROGRAM',\n QUIZ = 'QUIZ',\n RESOURCE = 'RESOURCE',\n RDBMS_HANDS_ON = 'RDBMS_HANDS_ON',\n VIDEO = 'VIDEO',\n WEB_MODULE = 'WEB_MODULE',\n WEB_PAGE = 'WEB_PAGE',\n YOUTUBE = 'YOUTUBE',\n LINK = 'LINK',\n KNOWLEDGE_BOARD = 'Knowledge Board',\n LEARNING_JOURNEY = 'Learning Journeys',\n BLENDED_PROGRAM = 'BLENDED PROGRAM',\n CURATED_PROGRAM = 'CURATED PROGRAM',\n }\n // for UI\n export enum EFilterCategory {\n ALL = 'ALL',\n LEARN = 'LEARN',\n PRACTICE = 'PRACTICE',\n ASSESS = 'ASSESS',\n }\n\n // for UI\n export enum ETagType {\n NEWLY_ADDED = 'NEWLY ADDED',\n }\n\n export const UN_SUPPORTED_DATA_TYPES_FOR_NON_BATCH_USERS: string[] = [\n // this is comment now for enabling links in the toc page for enrolled users\n // EMimeTypes.QUIZ,\n // EMimeTypes.APPLICATION_JSON,\n // EMimeTypes.WEB_MODULE_EXERCISE,\n\n ];\n export const PUBLIC_SUPPORTED_CONTENT_TYPES: EMimeTypes[] = [\n EMimeTypes.APPLICATION_JSON,\n EMimeTypes.FINAL_ASSESSMENT,\n EMimeTypes.HTML,\n EMimeTypes.HTML_TEXT,\n EMimeTypes.ZIP,\n EMimeTypes.ZIP2,\n EMimeTypes.M4A,\n EMimeTypes.MP3,\n EMimeTypes.MP4,\n EMimeTypes.PDF,\n EMimeTypes.YOUTUBE,\n EMimeTypes.TEXT_WEB,\n EMimeTypes.SURVEY,\n ];\n}\n","import { NsContent } from '../_models/widget-content.model';\n\nexport const VIEWER_ROUTE_FROM_MIME = (mimeType: NsContent.EMimeTypes) => {\n switch (mimeType) {\n case NsContent.EMimeTypes.MP3:\n return 'audio';\n case NsContent.EMimeTypes.M4A:\n return 'audio-native';\n case NsContent.EMimeTypes.COLLECTION:\n return 'html';\n case NsContent.EMimeTypes.CHANNEL:\n // case 'application/json' as any:\n // return 'channel'\n case NsContent.EMimeTypes.CERTIFICATION:\n return 'certification';\n case NsContent.EMimeTypes.HTML_TEXT:\n case NsContent.EMimeTypes.HTML:\n case NsContent.EMimeTypes.ZIP:\n if (window.location.href.includes('mobile/html')) {\n return 'mobile/html';\n }\n return 'html';\n case NsContent.EMimeTypes.TEXT_WEB:\n return 'youtube';\n case NsContent.EMimeTypes.SURVEY:\n return 'survey';\n case NsContent.EMimeTypes.IAP:\n return 'iap';\n case NsContent.EMimeTypes.ILP_FP:\n return 'ilp-fp';\n case NsContent.EMimeTypes.PDF:\n return 'pdf';\n case NsContent.EMimeTypes.MP4:\n case NsContent.EMimeTypes.M3U8:\n return 'video';\n case NsContent.EMimeTypes.YOUTUBE:\n return 'youtube';\n // return 'html'\n case NsContent.EMimeTypes.WEB_MODULE:\n return 'web-module';\n case NsContent.EMimeTypes.WEB_MODULE_EXERCISE:\n return 'web-module';\n case NsContent.EMimeTypes.CLASS_DIAGRAM:\n return 'class-diagram';\n case NsContent.EMimeTypes.HANDS_ON:\n return 'hands-on';\n case NsContent.EMimeTypes.RDBMS_HANDS_ON:\n return 'rdbms-hands-on';\n case NsContent.EMimeTypes.HTML_PICKER:\n return 'html-picker';\n case NsContent.EMimeTypes.QUIZ:\n case NsContent.EMimeTypes.APPLICATION_JSON:\n return 'quiz';\n case NsContent.EMimeTypes.PRACTICE_RESOURCE:\n return 'practice';\n case NsContent.EMimeTypes.COLLECTION_RESOURCE:\n return 'resource-collection';\n case NsContent.EMimeTypes.OFFLINE_SESSION:\n return 'offline-session';\n default:\n return 'html';\n }\n};\n\nexport function viewerRouteGenerator(\n id: string,\n mimeType: NsContent.EMimeTypes,\n collectionId?: string,\n collectionType?: string,\n forPreview = false,\n primaryCategory?: string,\n batchId?: string,\n courseName?: string,\n): { url: string; queryParams: { [key: string]: any } } {\n let collId = collectionId;\n let collType = collectionType;\n if (collType && !NsContent.PLAYER_SUPPORTED_COLLECTION_TYPES.includes(collType)) {\n collId = undefined;\n collType = undefined;\n }\n const url = `/viewer/${VIEWER_ROUTE_FROM_MIME(mimeType)}/${id}`;\n // tslint:disable-next-line\n // console.log(url,'========>Route from MIME TYPE<==========')\n const forcreator = window.location.href.includes('editMode=true');\n let queryParams = {};\n if (primaryCategory) {\n queryParams = {\n primaryCategory,\n };\n }\n if (collectionId && collectionType) {\n queryParams = { ...queryParams, collectionId: collId, collectionType: collType };\n }\n if (batchId) {\n queryParams = { ...queryParams, batchId };\n }\n if (courseName) {\n queryParams = { ...queryParams, courseName };\n }\n if (forPreview) {\n queryParams = { ...queryParams, preview: true };\n }\n if (forcreator) {\n queryParams = { ...queryParams, editMode: true };\n }\n return {\n queryParams,\n url,\n };\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ConfigurationsService } from '@sunbird-cb/utils-v2';\nimport { Observable, of, EMPTY, BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, retry, map, shareReplay } from 'rxjs/operators';\nimport { NsContentStripMultiple } from '../_models/content-strip-multiple.model';\nimport { NsContent } from '../_models/widget-content.model';\nimport { NSSearch } from '../_models/widget-search.model';\n// tslint:disable\nimport * as _ from 'lodash'\nimport { viewerRouteGenerator } from './viewer-route-util'\nimport * as moment_ from 'moment';\nconst moment = moment_;\n// tslint:enable\n\n// TODO: move this in some common place\nconst PROTECTED_SLAG_V8 = '/apis/protected/v8';\n\nconst API_END_POINTS = {\n CONTENT: `${PROTECTED_SLAG_V8}/content`,\n AUTHORING_CONTENT: `/api/course/v1/hierarchy`,\n CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,\n SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,\n SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,\n FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,\n FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,\n MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,\n CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,\n CONTENT_SEARCH_V6: `/apis/proxies/v8/sunbirdigot/search`,\n TRENDING_CONTENT_SEARCH: `apis/proxies/v8/trending/content/search`,\n CONTENT_SEARCH_RELATED_CBP_V6: `/apis/proxies/v8/sunbirdigot/search`,\n CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,\n CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,\n CONTENT_HISTORYV2: `/apis/proxies/v8/read/content-progres`,\n COURSE_BATCH_LIST: `/apis/proxies/v8/learner/course/v1/batch/list`,\n COURSE_BATCH: `/apis/proxies/v8/course/v1/batch/read`,\n AUTO_ASSIGN_BATCH: `/apis/protected/v8/cohorts/user/autoenrollment/`,\n AUTO_ASSIGN_CURATED_BATCH: `/apis/proxies/v8/curatedprogram/v1/enrol`,\n AUTO_ASSIGN_OPEN_PROGRAM: `/apis/proxies/v8/openprogram/v1/enrol`,\n USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,\n CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,\n COLLECTION_HIERARCHY: (type: string, id: string) =>\n `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`,\n REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,\n MARK_AS_COMPLETE_META: (contentId: string) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`,\n ENROLL_BATCH: `/apis/proxies/v8/learner/course/v1/enrol`,\n ENROLL_BATCH_WF: `/apis/proxies/v8/workflow/blendedprogram/enrol`,\n WITHDRAW_BATCH_WF: `/apis/proxies/v8/workflow/blendedprogram/unenrol`,\n BLENDED_USER_WF: `/apis/proxies/v8/workflow/blendedprogram/user/search`,\n BLENDED_USER_COUNT: `apis/proxies/v8/workflow/blendedprogram/enrol/status/count`,\n CERT_ADD_TEMPLATE: `${PROTECTED_SLAG_V8}/cohorts/course/batch/cert/template/add`,\n CERT_ISSUE: `${PROTECTED_SLAG_V8}/cohorts/course/batch/cert/issue`,\n CERT_DOWNLOAD: (certId: any) => `${PROTECTED_SLAG_V8}/cohorts/course/batch/cert/download/${certId}`,\n READ_KARMAPOINTS: `/apis/proxies/v8/karmapoints/read`,\n CONTENT_READ: (contentId: any) => `/apis/proxies/v8/action/content/v3/read/${contentId}`,\n READ_COURSE_KARMAPOINTS: '/apis/proxies/v8/karmapoints/user/course/read',\n CLAIM_KARMAPOINTS: '/apis/proxies/v8/claimkarmapoints',\n USER_KARMA_POINTS: '/apis/proxies/v8/user/totalkarmapoints',\n AGGREGATION_SEARCH: '/apis/proxies/v8/content/aggregation/search',\n FEATURE_SEARCH: '/apis/proxies/v8/featured/content/search',\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetContentService {\n constructor(\n private http: HttpClient,\n private configSvc: ConfigurationsService,\n ) {\n }\n\n tocConfigData: any = new BehaviorSubject<any>({});\n tocConfigData$ = this.tocConfigData.asObservable();\n\n private telemetryData: any = new Subject<any>()\n public telemetryData$ = this.telemetryData.asObservable()\n currentMetaData!: NsContent.IContent;\n currentContentReadMetaData!: NsContent.IContent;\n currentBatchEnrollmentList!: NsContent.ICourse[];\n programChildCourseResumeData = new BehaviorSubject<any>({});\n programChildCourseResumeData$ = this.programChildCourseResumeData.asObservable();\n\n changeTelemetryData(message: string) {\n this.telemetryData.next(message);\n }\n isResource(primaryCategory: string) {\n if (primaryCategory) {\n const isResource = (primaryCategory === NsContent.EResourcePrimaryCategories.LEARNING_RESOURCE) ||\n (primaryCategory === NsContent.EResourcePrimaryCategories.PRACTICE_RESOURCE) ||\n (primaryCategory === NsContent.EResourcePrimaryCategories.FINAL_ASSESSMENT) ||\n (primaryCategory === NsContent.EResourcePrimaryCategories.COMP_ASSESSMENT) ||\n (primaryCategory === NsContent.EResourcePrimaryCategories.OFFLINE_SESSION);\n return isResource;\n }\n return false;\n }\n\n fetchMarkAsCompleteMeta(identifier: string): Promise<any> {\n // tslint:disable-next-line\n const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier)\n // return this.http.get(url).toPromise()\n if (url) { }\n return of().toPromise();\n }\n\n updateTocConfig(data: any) {\n this.tocConfigData.next(data);\n }\n\n fetchContent(\n contentId: string,\n hierarchyType: 'all' | 'minimal' | 'detail' = 'detail',\n _additionalFields: string[] = [],\n primaryCategory?: string | null,\n ): Observable<NsContent.IContent> {\n // const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`\n let url = '';\n const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true');\n if (primaryCategory && this.isResource(primaryCategory)) {\n if (!forPreview) {\n url = `/apis/proxies/v8/action/content/v3/read/${contentId}`;\n } else {\n url = `/api/content/v1/read/${contentId}`;\n }\n } else {\n if (!forPreview) {\n url = `/apis/proxies/v8/action/content/v3/hierarchy/${contentId}?hierarchyType=${hierarchyType}`;\n } else {\n const forcreator = window.location.href.includes('editMode=true');\n if (forcreator) {\n url = `apis/proxies/v8/action/content/v3/hierarchy/${contentId}?mode=edit`;\n } else {\n url = `/api/course/v1/hierarchy/${contentId}?hierarchyType=${hierarchyType}`;\n }\n }\n }\n // return this.http\n // .post<NsContent.IContent>(url, { additionalFields })\n // .pipe(retry(1))\n return this.http\n .get<NsContent.IContent>(url)\n .pipe(shareReplay(1));\n // if (apiData && apiData.result) {\n // return apiData.result.content\n // }\n }\n fetchAuthoringContent(contentId: string): Observable<NsContent.IContent> {\n const forcreator = window.location.href.includes('editMode=true');\n let url = '';\n if (forcreator) {\n url = `apis/proxies/v8/action/content/v3/hierarchy/${contentId}?mode=edit`;\n } else {\n url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}?hierarchyType=detail`;\n }\n return this.http.get<NsContent.IContent>(url).pipe(shareReplay(1), r => r);\n }\n fetchMultipleContent(ids: string[]): Observable<NsContent.IContent[]> {\n return this.http.get<NsContent.IContent[]>(\n `${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`,\n );\n }\n fetchCollectionHierarchy(type: string, id: string, pageNumber: number = 0, pageSize: number = 1) {\n return this.http.get<NsContent.ICollectionHierarchyResponse>(\n `${API_END_POINTS.COLLECTION_HIERARCHY(\n type,\n id,\n )}?pageNumber=${pageNumber}&pageSize=${pageSize}`,\n );\n }\n\n fetchBlendedCourse() {\n\n }\n\n fetchCourseBatches(req: any): Observable<NsContent.IBatchListResponse> {\n return this.http\n .post<NsContent.IBatchListResponse>(API_END_POINTS.COURSE_BATCH_LIST, req)\n .pipe(\n retry(1),\n map(\n (data: any) => data.result.response\n )\n );\n }\n\n // fetch individual batch\n fetchCourseBatch(batchId: string): Observable<NsContent.IContinueLearningData> {\n return this.http.get<NsContent.IContinueLearningData>(\n `${API_END_POINTS.COURSE_BATCH}/${batchId}`,\n );\n }\n\n autoAssignBatchApi(identifier: any): Observable<NsContent.IBatchListResponse> {\n return this.http.get<NsContent.IBatchListResponse>(`${API_END_POINTS.AUTO_ASSIGN_BATCH}${identifier}`)\n .pipe(\n retry(1),\n map(\n (data: any) => data.result.response\n )\n );\n }\n\n autoAssignCuratedBatchApi(request: any, programType: any): Observable<NsContent.IBatchListResponse> {\n const url = programType === NsContent.ECourseCategory.MODERATED_PROGRAM ?\n API_END_POINTS.AUTO_ASSIGN_OPEN_PROGRAM : API_END_POINTS.AUTO_ASSIGN_CURATED_BATCH;\n return this.http.post<NsContent.IBatchListResponse>(`${url}`, request)\n .pipe(\n retry(1),\n map(\n (data: any) => data.result.response\n )\n );\n }\n\n enrollUserToBatch(req: any) {\n return this.http\n .post(API_END_POINTS.ENROLL_BATCH, req)\n .toPromise();\n }\n\n enrollAndUnenrollUserToBatchWF(req: any, type: any) {\n const url: any = type === 'WITHDRAW' ? API_END_POINTS.WITHDRAW_BATCH_WF : API_END_POINTS.ENROLL_BATCH_WF;\n return this.http\n .post(url, req)\n .toPromise();\n }\n\n fetchBlendedUserWF(req: any) {\n return this.http\n .post(API_END_POINTS.BLENDED_USER_WF, req)\n .toPromise();\n }\n\n fetchBlendedUserCOUNT(req: any) {\n return this.http\n .post(API_END_POINTS.BLENDED_USER_COUNT, req)\n .toPromise();\n }\n\n fetchContentLikes(contentIds: { content_id: string[] }) {\n return this.http\n .post<{ [identifier: string]: number }>(API_END_POINTS.CONTENT_LIKES, contentIds)\n .toPromise();\n }\n fetchContentRatings(contentIds: { contentIds: string[] }) {\n if (contentIds) { }\n // return this.http\n // .post(`${API_END_POINTS.CONTENT_RATING}/rating`, contentIds)\n // .toPromise()\n return of().toPromise();\n }\n\n fetchContentHistory(contentId: string): Observable<NsContent.IContinueLearningData> {\n return this.http.get<NsContent.IContinueLearningData>(\n `${API_END_POINTS.CONTENT_HISTORY}/${contentId}`,\n );\n }\n\n fetchContentHistoryV2(req: NsContent.IContinueLearningDataReq): Observable<NsContent.IContinueLearningData> {\n req.request.fields = ['progressdetails'];\n const data = this.http.post<NsContent.IContinueLearningData>(\n `${API_END_POINTS.CONTENT_HISTORYV2}/${req.request.courseId}`, req\n );\n data.subscribe((subscribeData: any) => {\n this.programChildCourseResumeData.next({ resumeData: subscribeData.result.contentList, courseId: req.request.courseId });\n });\n return data;\n }\n\n async continueLearning(id: string, collectionId?: string, collectionType?: string): Promise<any> {\n return new Promise(async resolve => {\n if (collectionType &&\n collectionType.toLowerCase() === 'playlist') {\n const reqBody = {\n contextPathId: collectionId ? collectionId : id,\n resourceId: id,\n data: JSON.stringify({\n timestamp: Date.now(),\n contextFullPath: [collectionId, id],\n }),\n dateAccessed: Date.now(),\n contextType: 'playlist',\n };\n await this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {\n resolve(true);\n }\n );\n } else {\n const reqBody = {\n contextPathId: collectionId ? collectionId : id,\n resourceId: id,\n data: JSON.stringify({ timestamp: Date.now() }),\n dateAccessed: Date.now(),\n };\n await this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {\n resolve(true);\n });\n }\n });\n }\n saveContinueLearning(content: NsContent.IViewerContinueLearningRequest): Observable<any> {\n // const url = API_END_POINTS.USER_CONTINUE_LEARNING\n // return this.http.post<any>(url, content)\n if (content) {\n\n }\n return of() as any;\n }\n\n setS3Cookie(\n _contentId: string,\n // _path: string,\n ): Observable<any> {\n // return this.http\n // .post(API_END_POINTS.SET_S3_COOKIE, { contentId })\n // .pipe(catchError(_err => of(true)))\n\n return EMPTY;\n }\n\n setS3ImageCookie(): Observable<any> {\n return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError(_err => of(true)));\n }\n\n fetchManifest(url: string): Observable<any> {\n return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url });\n }\n fetchWebModuleContent(url: string): Observable<any> {\n return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`);\n }\n search(req: NSSearch.ISearchRequest): Observable<NSSearch.ISearchApiResult> {\n req.query = req.query || '';\n return this.http.post<NSSearch.ISearchApiResult>(API_END_POINTS.CONTENT_SEARCH_V5, {\n request: req,\n });\n }\n searchRegionRecommendation(\n req: NSSearch.ISearchOrgRegionRecommendationRequest,\n ): Observable<NsContentStripMultiple.IContentStripResponseApi> {\n req.query = req.query || '';\n req.preLabelValue =\n (req.preLabelValue || '') +\n ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '');\n req.filters = {\n ...req.filters,\n labels: [req.preLabelValue || ''],\n };\n return this.http.post<NsContentStripMultiple.IContentStripResponseApi>(\n API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION,\n { request: req },\n );\n }\n searchV6(req: NSSearch.ISearchV6Request): Observable<NSSearch.ISearchV6ApiResultV2> {\n const apiPath = _.get(req, 'api.path');\n req.query = req.query || '';\n if (apiPath) {\n return this.http.get<NSSearch.ISearchV6ApiResultV2>(apiPath);\n }\n return this.http.post<NSSearch.ISearchV6ApiResultV2>(API_END_POINTS.CONTENT_SEARCH_V6, req);\n }\n\n searchRelatedCBPV6(req: NSSearch.ISearchV6RequestV2): Observable<NSSearch.ISearchV6ApiResultV2> {\n return this.http.post<NSSearch.ISearchV6ApiResultV2>(API_END_POINTS.CONTENT_SEARCH_RELATED_CBP_V6, req);\n }\n\n fetchContentRating(contentId: string): Observable<{ rating: number }> {\n return this.http.get<{ rating: number }>(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);\n }\n deleteContentRating(contentId: string): Observable<any> {\n return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);\n }\n addContentRating(contentId: string, data: { rating: number }): Observable<any> {\n return this.http.post<any>(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data);\n }\n\n getFirstChildInHierarchy(content: NsContent.IContent): NsContent.IContent {\n if (!(content.children || []).length) {\n return content;\n }\n if (\n (content.primaryCategory === NsContent.EPrimaryCategory.PROGRAM &&\n !(content.artifactUrl && content.artifactUrl.length)) ||\n content.primaryCategory === NsContent.EPrimaryCategory.MANDATORY_COURSE_GOAL ||\n (content.primaryCategory === NsContent.EPrimaryCategory.BLENDED_PROGRAM &&\n !(content.artifactUrl && content.artifactUrl.length)) ||\n (content.primaryCategory === NsContent.EPrimaryCategory.MODULE &&\n !(content.artifactUrl && content.artifactUrl.length))\n ) {\n const child = content.children[0];\n return this.getFirstChildInHierarchy(child);\n }\n if (\n content.primaryCategory === NsContent.EPrimaryCategory.RESOURCE ||\n content.primaryCategory === NsContent.EPrimaryCategory.KNOWLEDGE_ARTIFACT ||\n content.primaryCategory === NsContent.EPrimaryCategory.PROGRAM ||\n content.primaryCategory === NsContent.EPrimaryCategory.PRACTICE_RESOURCE ||\n content.primaryCategory === NsContent.EPrimaryCategory.FINAL_ASSESSMENT ||\n content.primaryCategory === NsContent.EPrimaryCategory.COMP_ASSESSMENT ||\n content.primaryCategory === NsContent.EPrimaryCategory.BLENDED_PROGRAM ||\n content.primaryCategory === NsContent.EPrimaryCategory.OFFLINE_SESSION\n ) {\n return content;\n }\n const firstChild = content.children[0];\n const resultContent = this.getFirstChildInHierarchy(firstChild);\n return resultContent;\n }\n\n getRegistrationStatus(source: string): Promise<{ hasAccess: boolean; registrationUrl?: string }> {\n return this.http.get<any>(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise();\n }\n\n fetchConfig(url: string) {\n return this.http.get<any>(url);\n }\n\n addCertTemplate(body: any) {\n return this.http.patch<any>(`${API_END_POINTS.CERT_ADD_TEMPLATE}`, body);\n }\n\n issueCert(body: any) {\n return this.http.post<any>(`${API_END_POINTS.CERT_ISSUE}`, body);\n }\n downloadCert(certId: any) {\n return this.http.get<any>(`${API_END_POINTS.CERT_DOWNLOAD(certId)}`);\n }\n\n trendingContentSearch(req: any): Observable<any> {\n req.query = req.query || '';\n return this.http.post<any>(API_END_POINTS.TRENDING_CONTENT_SEARCH, req);\n }\n\n getKarmaPoitns(limit: number, offset: any) {\n return this.http.post(API_END_POINTS.READ_KARMAPOINTS, { limit, offset }).pipe(catchError(_err => of(true)));\n }\n fetchProgramContent(contentId: string[]): Observable<NsContent.IContent[]> {\n let url = '';\n const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true');\n if (!forPreview) {\n return this.http.get<NsContent.IContent[]>(\n API_END_POINTS.CONTENT_READ(contentId),\n );\n }\n url = `/api/content/v1/read/${contentId}`;\n return this.http.get<NsContent.IContent[]>(url);\n // return this.http.get<NsContent.IContent[]>(API_END_POINTS.CONTENT_READ(contentId))\n }\n\n getCourseKarmaPoints(request: any) {\n return this.http.post<any>(API_END_POINTS.READ_COURSE_KARMAPOINTS, request);\n }\n\n claimKarmapoints(request: any) {\n return this.http.post<any>(API_END_POINTS.CLAIM_KARMAPOINTS, request);\n }\n\n userKarmaPoints() {\n return this.http.post<any>(API_END_POINTS.USER_KARMA_POINTS, {});\n }\n\n getEnrolledData(doId: string) {\n const enrollmentMapData = JSON.parse(localStorage.getItem('enrollmentMapData') || '{}');\n const enrolledCourseData = enrollmentMapData[doId];\n return enrolledCourseData;\n }\n\n async getResourseLink(content: any) {\n const enrolledCourseData: any = this.getEnrolledData(content.identifier);\n if (enrolledCourseData) {\n if (enrolledCourseData.content.courseCategory === NsContent.ECourseCategory.BLENDED_PROGRAM ||\n enrolledCourseData.content.courseCategory === NsContent.ECourseCategory.INVITE_ONLY_PROGRAM ||\n enrolledCourseData.content.courseCategory === NsContent.ECourseCategory.MODERATED_PROGRAM ||\n enrolledCourseData.content.primaryCategory === NsContent.EPrimaryCategory.BLENDED_PROGRAM ||\n enrolledCourseData.content.primaryCategory === NsContent.EPrimaryCategory.PROGRAM) {\n if (!this.isBatchInProgress(enrolledCourseData.batch)) {\n return this.gotoTocPage(content);\n }\n const data = await this.checkForDataToFormUrl(content, enrolledCourseData);\n return data;\n } {\n const data = await this.checkForDataToFormUrl(content, enrolledCourseData);\n return data;\n }\n\n }\n return this.gotoTocPage(content);\n\n }\n async checkForDataToFormUrl(content: any, enrollData: any) {\n let urlData: any;\n if (enrollData.completionPercentage === 100) {\n return this.gotoTocPage(enrollData);\n }\n if (enrollData.lrcProgressDetails && enrollData.lrcProgressDetails.mimeType) {\n const modifyEnrollData = {\n ...enrollData,\n identifier: enrollData.collectionId,\n primaryCategory: enrollData.content.primaryCategory,\n name: enrollData.content.name,\n };\n if (modifyEnrollData.lastReadContentId) {\n return this.getResourseDataWithData(modifyEnrollData,\n enrollData.lastReadContentId, enrollData.lrcProgressDetails.mimeType);\n }\n if (modifyEnrollData.firstChildId) {\n return this.getResourseDataWithData(modifyEnrollData,\n enrollData.firstChildId,\n enrollData.lrcProgressDetails.mimeType);\n }\n }\n if (enrollData.firstChildId || enrollData.lastReadContentId) {\n const doId = enrollData.firstChildId || enrollData.lastReadContentId;\n const responseData = await this.fetchProgramContent(doId).toPromise().then(async (res: any) => {\n if (res && res.result && res.result.content) {\n const contentData: any = res.result.content;\n const modifyEnrollData = {\n ...enrollData,\n identifier: enrollData.collectionId,\n primaryCategory: enrollData.content.primaryCategory,\n name: enrollData.content.name,\n };\n urlData = this.getResourseDataWithData(modifyEnrollData, contentData.identifier, contentData.mimeType);\n if (urlData) {\n return urlData;\n }\n }\n });\n return responseData ? responseData : this.gotoTocPage(content);\n }\n return this.gotoTocPage(content);\n\n }\n\n getResourseDataWithData(content: any, resourseId: any, mimeType: any) {\n if (content) {\n const url = viewerRouteGenerator(\n resourseId,\n mimeType,\n content.identifier,\n 'Course',\n false,\n 'Learning Resource',\n content.batchId,\n content.name,\n );\n return url;\n }\n return this.gotoTocPage(content);\n }\n gotoTocPage(content: any) {\n const urlData: any = {\n url: `/app/toc/${content.identifier ? content.identifier : content.collectionId}/overview`,\n queryParams: { batchId: content.batchId },\n };\n if (content.endDate) {\n urlData.queryParams = { ...urlData.queryParams, planType: 'cbPlan', endDate: content.endDate };\n }\n return urlData;\n }\n isBatchInProgress(batchData: any) {\n // if (this.content && this.content['batches']) {\n // const batches = this.content['batches'] as NsContent.IBatch\n if (batchData && batchData.endDate) {\n const now = moment().format('YYYY-MM-DD');\n const startDate = moment(batchData.startDate).format('YYYY-MM-DD');\n const endDate = batchData.endDate ? moment(batchData.endDate).format('YYYY-MM-DD') : now;\n return (\n // batch.status &&\n moment(startDate).isSameOrBefore(now)\n && moment(endDate).isSameOrAfter(now)\n );\n } return true;\n }\n postApiMethod(apiUrl: any, req: any): Observable<NsContent.IContent> {\n return this.http.post<NsContent.IContent>(apiUrl, req);\n }\n getApiMethod(apiUrl: any): Observable<NsContent.IContent> {\n // req.query = req.query || '';\n return this.http.get<NsContent.IContent>(apiUrl);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable, throwError, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { IUserGroupDetails } from '../_models/widget-user.model';\nimport { NsContent } from '../_models/widget-content.model';\nimport 'rxjs/add/observable/of'\nimport * as dayjs_ from 'dayjs';\nconst dayjs = dayjs_\n// import { environment } from 'src/environments/environment'\nimport { NsCardContent } from '../_models/card-content-v2.model';\nimport * as lodash from 'lodash';\n\n\nconst PROTECTED_SLAG_V8 = '/apis/protected/v8';\nconst API_END_POINTS = {\n FETCH_USER_GROUPS: (userId: string) =>\n `${PROTECTED_SLAG_V8}/user/group/fetchUserGroup?userId=${userId}`,\n FETCH_CPB_PLANS: `/apis/proxies/v8/user/v1/cbplan`,\n FETCH_USER_ENROLLMENT_LIST: (userId: string | undefined) =>\n // tslint:disable-next-line: max-line-length\n `/apis/proxies/v8/learner/course/v2/user/enrollment/list/${userId}?orgdetails=orgName,email&licenseDetails=name,description,url&fields=contentType,primaryCategory,courseCategory,topic,name,channel,mimeType,appIcon,gradeLevel,resourceType,identifier,medium,pkgVersion,board,subject,trackable,posterImage,duration,creatorLogo,license,version,versionKey,avgRating,additionalTags,${NsCardContent.IGOTConst.COMPETENCIES}&batchDetails=name,endDate,startDate,status,enrollmentType,createdBy,certificates,batchAttributes`,\n FETCH_USER_ENROLLMENT_LIST_PROFILE: (userId: string | undefined) =>\n // tslint:disable-next-line: max-line-length\n `/apis/proxies/v8/learner/course/v2/user/enrollment/list/${userId}?orgdetails=orgName,email&licenseDetails=name,description,url&fields=contentType,primaryCategory,courseCategory,topic,name,channel,mimeType,appIcon,gradeLevel,resourceType,identifier,medium,pkgVersion,board,subject,trackable,posterImage,duration,creatorLogo,license,version,versionKey,avgRating,additionalTags,${NsCardContent.IGOTConst.COMPETENCIES}&batchDetails=name,endDate,startDate,status,enrollmentType,createdBy,certificates,batchAttributes&retiredCoursesEnabled=true`,\n // tslint:disable-next-line: max-line-length\n FETCH_USER_ENROLLMENT_LIST_V2: (userId: string | undefined, orgdetails: string, licenseDetails: string, fields: string, batchDetails: string) =>\n // tslint:disable-next-line: max-line-length\n `apis/proxies/v8/learner/course/v2/user/enrollment/list/${userId}?orgdetails=${orgdetails}&licenseDetails=${licenseDetails}&fields=${fields},courseCategory,${NsCardContent.IGOTConst.COMPETENCIES}&batchDetails=${batchDetails}`,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetUserService {\n environment: any;\n constructor(\n @Inject('environment') environment: any,\n private http: HttpClient) {\n this.environment = environment;\n }\n\n handleError(error: ErrorEvent) {\n let errorMessage = ''\n if (error.error instanceof ErrorEvent) {\n errorMessage = `Error: ${error.error.message}`\n }\n return throwError(errorMessage)\n }\n\n fetchUserGroupDetails(userId: string): Observable<IUserGroupDetails[]> {\n return this.http\n .get<IUserGroupDetails[]>(API_END_POINTS.FETCH_USER_GROUPS(userId))\n .pipe(catchError(this.handleError))\n }\n // tslint:disable-next-line: max-line-length\n fetchUserBatchList(userId: string | undefined, queryParams?: { orgdetails: any, licenseDetails: any, fields: any, batchDetails: any }): Observable<NsContent.ICourse[]> {\n let path = ''\n if (queryParams) {\n // tslint:disable-next-line: max-line-length\n path = API_END_POINTS.FETCH_USER_ENROLLMENT_LIST_V2(userId, queryParams.orgdetails, queryParams.licenseDetails, queryParams.fields, queryParams.batchDetails)\n } else {\n path = API_END_POINTS.FETCH_USER_ENROLLMENT_LIST(userId)\n }\n const headers = new HttpHeaders({\n 'Cache-Control': 'no-cache, no-store, must-revalidate, post-check=0, pre-check=0',\n Pragma: 'no-cache',\n Expires: '0',\n })\n if (this.checkStorageData('enrollmentService', 'enrollmentData')) {\n const result: any = this.http.get(path, { headers }).pipe(catchError(this.handleError), map(\n (data: any) => {\n\n const coursesData: any = []\n if (data && data.result && data.result.courses) {\n data.result.courses.forEach((content: any) => {\n if (content.contentStatus) {\n delete content.contentStatus\n }\n coursesData.push(content)\n })\n this.storeUserEnrollmentInfo(data.result.userCourseEnrolmentInfo,\n data.result.courses.length)\n data.result.courses = coursesData\n if (data.result.courses.length < 200) {\n localStorage.removeItem('enrollmentData')\n this.setTime('enrollmentService')\n localStorage.setItem('enrollmentData', JSON.stringify(data.result))\n this.mapEnrollmentData(data.result)\n return data.result\n }\n }\n this.mapEnrollmentData(data.result)\n return data.result\n }\n )\n )\n return result\n }\n return this.getData('enrollmentData')\n\n }\n\n // tslint:disable-next-line: max-line-length\n fetchProfileUserBatchList(userId: string | undefined, queryParams?: { orgdetails: any, licenseDetails: any, fields: any, batchDetails: any }): Observable<NsContent.ICourse[]> {\n let path = ''\n if (queryParams) {\n // tslint:disable-next-line: max-line-length\n path = API_END_POINTS.FETCH_USER_ENROLLMENT_LIST_V2(userId, queryParams.orgdetails, queryParams.licenseDetails, queryParams.fields, queryParams.batchDetails)\n } else {\n path = API_END_POINTS.FETCH_USER_ENROLLMENT_LIST_PROFILE(userId)\n }\n const headers = new HttpHeaders({\n 'Cache-Control': 'no-cache, no-store, must-revalidate, post-check=0, pre-check=0',\n Pragma: 'no-cache',\n Expires: '0',\n })\n return this.http\n .get(path, { headers })\n .pipe(\n catchError(this.handleError),\n map(\n (data: any) => data.result\n )\n )\n // if (this.checkStorageData('enrollmentService')) {\n // const result: any = this.http.get(path, { headers }).pipe(catchError(this.handleError), map(\n // (data: any) => {\n // localStorage.setItem('enrollmentData', JSON.stringify(data.result))\n // this.mapEnrollmentData(data.result)\n // return data.result\n // }\n // )\n // )\n // this.setTime('enrollmentService')\n // return result\n // }\n // return this.getData('enrollmentData')\n }\n\n checkStorageData(key: any, dataKey: any) {\n const checkTime = localStorage.getItem('timeCheck')\n if (checkTime) {\n const parsedData = JSON.parse(checkTime)\n if (parsedData[key]) {\n const date = dayjs()\n const diffMin = date.diff(parsedData[key], 'minute')\n const timeCheck = this.environment.apiCache || 0\n if (diffMin >= timeCheck) {\n return true\n }\n return localStorage.getItem(dataKey) ? false : true\n }\n return true\n }\n return true\n }\n\n getData(key: any): Observable<any> {\n return Observable.of(JSON.parse(localStorage.getItem(key) || '{}'))\n }\n getSavedData(key: any): Observable<any> {\n return JSON.parse(localStorage.getItem(key) || '')\n }\n\n setTime(key: any) {\n const checkTime = localStorage.getItem('timeCheck')\n if (checkTime) {\n const parsedData = JSON.parse(checkTime)\n parsedData[key] = new Date().getTime()\n localStorage.setItem('timeCheck', JSON.stringify(parsedData))\n } else {\n const data: any = {}\n data[key] = new Date().getTime()\n localStorage.setItem('timeCheck', JSON.stringify(data))\n }\n }\n\n resetTime(key: any) {\n const checkTime = localStorage.getItem('timeCheck')\n if (checkTime) {\n const parsedData = JSON.parse(checkTime)\n if (parsedData[key]) {\n delete parsedData[key]\n localStorage.setItem('timeCheck', JSON.stringify(parsedData))\n }\n }\n }\n\n fetchCbpPlanList() {\n\n // let data = JSON.parse(localStorage.getItem('cbpData')|| '')\n // if(!data) {\n // this.http.get(API_END_POINTS.FETCH_CPB_PLANS).pipe(catchError(this.handleError), map(\n // (data: any) => {\n // const courseData = this.mapData(data.result)\n // return courseData\n // }\n // )\n // )\n // } else {\n // return this.getData('cbpData')\n\n // }\n if (this.checkStorageData('cbpService', 'cbpData')) {\n const result: any = this.http.get(API_END_POINTS.FETCH_CPB_PLANS).pipe(catchError(this.handleError), map(\n async (data: any) => {\n return await this.mapData(data.result)\n }\n )\n )\n this.setTime('cbpService')\n return result\n }\n return this.getData('cbpData')\n }\n\n async mapData(data: any) {\n const contentNew: any = []\n const todayDate = dayjs().format('YYYY-MM-DD')\n\n const enrollList: any = JSON.parse(localStorage.getItem('enrollmentMapData') || '{}')\n\n if (data && data.count) {\n data.content.forEach((c: any) => {\n c.contentList.forEach((childData: any) => {\n const childEnrollData = enrollList[childData.identifier]\n const endDate = dayjs(c.endDate).format('YYYY-MM-DD')\n const daysCount = dayjs(endDate).diff(todayDate, 'day')\n childData['planDuration'] = daysCount < 0 ? NsCardContent.ACBPConst.OVERDUE : daysCount > 29\n ? NsCardContent.ACBPConst.SUCCESS : NsCardContent.ACBPConst.UPCOMING\n childData['endDate'] = c.endDate\n childData['parentId'] = c.id\n childData['planType'] = 'cbPlan'\n if (childData.status !== NsCardContent.IGOTConst.RETIRED) {\n contentNew.push(childData)\n } else {\n if (childEnrollData && childEnrollData.status === 2) {\n contentNew.push(childData)\n }\n }\n\n const competencyArea: any = []\n const competencyTheme: any = []\n const competencyThemeType: any = []\n const competencySubTheme: any = []\n const competencyAreaId: any = []\n const competencyThemeId: any = []\n const competencySubThemeId: any = []\n childData['contentStatus'] = 0\n if (childEnrollData) {\n childData['contentStatus'] = childEnrollData.status\n }\n if (childData.competencies_v5) {\n childData.competencies_v5.forEach((element: any) => {\n if (!competencyArea.includes(element.competencyArea)) {\n competencyArea.push(element.competencyArea)\n competencyAreaId.push(element.competencyAreaId)\n }\n if (!competencyTheme.includes(element.competencyTheme)) {\n competencyTheme.push(element.competencyTheme)\n competencyThemeId.push(element.competencyThemeId)\n }\n if (!competencyThemeType.includes(element.competencyThemeType)) {\n competencyThemeType.push(element.competencyThemeType)\n }\n if (!competencySubTheme.includes(element.competencySubTheme)) {\n competencySubTheme.push(element.competencySubTheme)\n competencySubThemeId.push(element.competencySubThemeId)\n }\n })\n }\n\n childData['competencyArea'] = competencyArea\n childData['competencyTheme'] = competencyTheme\n childData['competencyThemeType'] = competencyThemeType\n childData['competencySubTheme'] = competencySubTheme\n childData['competencyAreaId'] = competencyAreaId\n childData['competencyThemeId'] = competencyThemeId\n childData['competencySubThemeId'] = competencySubThemeId\n })\n })\n if (contentNew.length > 1) {\n const sortedData: any = contentNew.sort((a: any, b: any) => {\n const firstDate: any = new Date(a.endDate)\n const secondDate: any = new Date(b.endDate)\n\n return secondDate > firstDate ? 1 : -1\n })\n const uniqueUsersByID = lodash.uniqBy(sortedData, 'identifier')\n const sortedByEndDate = lodash.orderBy(uniqueUsersByID, ['endDate'], ['asc'])\n const sortedByStatus = lodash.orderBy(sortedByEndDate, ['contentStatus'], ['asc'])\n localStorage.setItem('cbpData', JSON.stringify(sortedByStatus))\n return sortedByStatus\n }\n localStorage.setItem('cbpData', JSON.stringify(contentNew))\n return contentNew\n }\n localStorage.setItem('cbpData', JSON.stringify([]))\n return []\n }\n\n mapEnrollmentData(courseData: any) {\n const enrollData: any = {}\n if (courseData && courseData.courses.length) {\n courseData.courses.forEach((data: any) => {\n enrollData[data.collectionId] = data\n })\n }\n localStorage.removeItem('enrollmentMapData')\n localStorage.setItem('enrollmentMapData', JSON.stringify(enrollData))\n }\n storeUserEnrollmentInfo(enrollmentData: any, enrolledCourseCount: number) {\n const userData = {\n enrolledCourseCount,\n userCourseEnrolmentInfo: enrollmentData,\n }\n localStorage.removeItem('userEnrollmentCount')\n localStorage.setItem('userEnrollmentCount', JSON.stringify(userData))\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\nimport { IPortalUrls, IUserPreference, NsAppsConfig, NsInstanceConfig, NsPage, NsUser } from '@sunbird-cb/utils-v2';\nimport { NSProfileDataV3 } from '../_models/profile-v3.models';\n// const instanceConfigPath: string | null = window.location.host\n// const locationHost: string | null = window.location.host\n\n// if (!environment.production && Boolean(environment.sitePath)) {\n// locationHost = environment.sitePath\n// instanceConfigPath = environment.sitePath\n// }\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigurationsService {\n // update as the single source of truth\n constructor() {\n // @Inject('env') env: any\n // if (!env.production && Boolean(env.sitePath)) {\n // locationHost = env.sitePath\n // instanceConfigPath = env.sitePath\n // }\n }\n appSetup = true;\n // The url the user tried to access while landing in the app before accepting tnc\n userUrl = '';\n baseUrl = `assets/configurations`;\n sitePath = `assets/configurations`;\n hostPath = (window.location.host).replace(':', '_');\n\n userRoles: Set<string> | null = null;\n userGroups: Set<string> | null = null;\n restrictedFeatures: Set<string> | null = null;\n restrictedWidgets: Set<string> | null = null;\n instanceConfig: NsInstanceConfig.IConfig | null = null;\n appsConfig: NsAppsConfig.IAppsConfig | null = null;\n rootOrg: string | null = null;\n courseContentPath?: string;\n org: string[] | null = null;\n activeOrg: string | null = '';\n isProduction = false;\n hasAcceptedTnc = false;\n profileDetailsStatus = false;\n isActive = true;\n userPreference: IUserPreference | null = null;\n userProfile: NsUser.IUserProfile | null = null;\n userProfileV2: NsUser.IUserProfile | null = null;\n nodebbUserProfile: NsUser.INodebbUserProfile | null = null;\n // created to store complete user details sent by pid\n unMappedUser: any;\n isAuthenticated = false;\n isNewUser = false;\n portalUrls: IPortalUrls | undefined;\n positions: any;\n overrideThemeChanges: any;\n profileTimelyNudges: any;\n\n // pinnedApps\n pinnedApps = new BehaviorSubject<Set<string>>(new Set());\n\n // Notifier\n prefChangeNotifier = new ReplaySubject<Partial<IUserPreference>>(1);\n tourGuideNotifier = new ReplaySubject<boolean>();\n authChangeNotifier = new ReplaySubject<boolean>(1);\n\n private updateProfile = new BehaviorSubject(false);\n updateProfileObservable = this.updateProfile.asObservable();\n\n updateTourGuide = new BehaviorSubject(true);\n updateTourGuideObservable = this.updateTourGuide.asObservable();\n\n // platform rating\n updatePlatformRating = new BehaviorSubject({ bottom: '120px' });\n updatePlatformRatingObservable$ = this.updatePlatformRating.asObservable();\n\n languageTranslationFlag = new Subject();\n\n // Preference Related Values\n activeThemeObject: NsInstanceConfig.ITheme | null = null;\n activeFontObject: NsInstanceConfig.IFontSize | null = null;\n isDarkMode = false;\n isIntranetAllowed = false;\n isRTL = false;\n activeLocale: NsInstanceConfig.ILocalsConfig | null = null;\n activeLocaleGroup = '';\n completedActivity: string[] | null = null;\n completedTour = false;\n profileSettings = ['profilePicture', 'learningTime', 'learningPoints'];\n\n primaryNavBar: Partial<NsPage.INavBackground> = {\n color: 'primary',\n };\n pageNavBar: Partial<NsPage.INavBackground> = {\n color: 'primary',\n };\n primaryNavBarConfig: NsInstanceConfig.IPrimaryNavbarConfig | null = null;\n /* for temp Fix */\n // setBaseUrl = (sitePath: string) => `assets/configurations/${(sitePath).replace(':', '_')}`\n // setSitePath = (sitePath: string) => `assets/configurations/${(sitePath).replace(\n // ':',\n // '_',\n // )}`\n // setHostPath = (sitePath: string) => (sitePath).replace(':', '_')\n welcomeTabs: NSProfileDataV3.IProfileTab | null = null;\n\n // variable setting for csJwtToken\n cstoken = '';\n\n changeNavBarFullView = new Subject();\n openExploreMenuForMWeb = new Subject();\n updateGlobalProfile(state: boolean) {\n this.updateProfile.next(state);\n }\n updateTourGuideMethod(state: boolean) {\n this.updateTourGuide.next(state);\n }\n\n updatePlatformRatingMethod(state: any) {\n this.updatePlatformRating.next(state);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConfigurationsService } from './configurations.service';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class MultilingualTranslationsService {\n selectedLang = '';\n // website lang change\n languageSelected = new BehaviorSubject(true);\n languageSelectedObservable = this.languageSelected.asObservable();\n editProfileDetails = '/apis/proxies/v8/user/v1/extPatch';\n\n constructor(private translate: TranslateService, private http: HttpClient, private configSvc: ConfigurationsService) {\n // this.getLanguage()\n }\n\n getLanguage() {\n if (this.configSvc.unMappedUser) {\n if (this.configSvc.unMappedUser.profileDetails &&\n this.configSvc.unMappedUser.profileDetails.additionalProperties &&\n this.configSvc.unMappedUser.profileDetails.additionalProperties.webPortalLang) {\n const lang = this.configSvc.unMappedUser.profileDetails.additionalProperties.webPortalLang;\n this.translate.use(lang);\n localStorage.setItem('websiteLanguage', lang);\n } else {\n if (localStorage.getItem('websiteLanguage')) {\n // this.translate.setDefaultLang('en')\n let lang = JSON.stringify(localStorage.getItem('websiteLanguage'));\n lang = lang.replace(/\\\"/g, '');\n this.translate.use(lang);\n } else {\n this.translate.setDefaultLang('en');\n localStorage.setItem('websiteLanguage', 'en');\n }\n }\n } else {\n if (localStorage.getItem('websiteLanguage')) {\n // this.translate.setDefaultLang('en')\n let lang = JSON.stringify(localStorage.getItem('websiteLanguage'));\n lang = lang.replace(/\\\"/g, '');\n this.translate.use(lang);\n }\n }\n }\n\n translateLabelWithoutspace(label: string, type: any, subtype: any) {\n let nlabel = label;\n nlabel = nlabel && nlabel.replace(/\\s/g, '');\n if (subtype) {\n // tslint:disable-next-line: prefer-template\n const translationKey = type + '.' + nlabel + subtype;\n return this.translate.instant(translationKey);\n }\n // tslint:disable-next-line: prefer-template\n const translationKeyn = type + '.' + nlabel;\n return this.translate.instant(translationKeyn);\n }\n\n translateLabel(label: string, type: any, subtype: any) {\n if(label) {\n let nlabel = label;\n \n \n nlabel = nlabel && nlabel.toLowerCase() ;\n const sl = nlabel.split(' ');\n sl.forEach((w: any, index: any) => {\n if (index !== 0) {\n sl[index] = w[0].toUpperCase() + w.slice(1);\n }\n });\n nlabel = sl.join('');\n nlabel = nlabel.replace(/\\s/g, '');\n if (subtype) {\n // tslint:disable-next-line: prefer-template\n const translationKey = type + '.' + nlabel + subtype;\n return this.translate.instant(translationKey);\n }\n // tslint:disable-next-line: prefer-template\n const translationKeyn = type + '.' + nlabel;\n return this.translate.instant(translationKeyn);\n } \n return label\n }\n\n translateActualLabel(label: string, type: any, subtype: any) {\n let nlabel = label;\n const sl = nlabel.split(' ');\n sl.forEach((w: any, index: any) => {\n if (index !== 0) {\n sl[index] = w[0].toUpperCase() + w.slice(1);\n }\n });\n nlabel = sl.join('');\n nlabel = nlabel.replace(/\\s/g, '');\n if (subtype) {\n // tslint:disable-next-line: prefer-template\n const translationKey = type + '.' + nlabel + subtype;\n return this.translate.instant(translationKey);\n }\n // tslint:disable-next-line: prefer-template\n const translationKeyn = type + '.' + nlabel;\n return this.translate.instant(translationKeyn);\n }\n\n editProfileDetailsAPI(data: any) {\n return this.http.post<any>(this.editProfileDetails, data);\n }\n\n updatelanguageSelected(state: any, lang: any, userid: any) {\n this.languageSelected.next(state);\n this.translate.use(lang);\n this.selectedLang = lang;\n\n if (userid) {\n const reqUpdates = {\n request: {\n userId: userid,\n profileDetails: {\n additionalProperties: {\n webPortalLang: this.selectedLang,\n },\n },\n },\n };\n this.editProfileDetailsAPI(reqUpdates).subscribe();\n }\n }\n}\n","import { Component, OnInit, Input, OnDestroy, HostBinding, Inject, EventEmitter, Output } from '@angular/core';\nimport { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver-v2';\nimport { NsContentStripWithTabs } from './content-strip-with-tabs-lib.model';\n// import { HttpClient } from '@angular/common/http'\nimport { WidgetContentService } from '../../_services/widget-content.service';\nimport { NsContent } from '../../_models/widget-content.model';\nimport { MultilingualTranslationsService } from '../../_services/multilingual-translations.service';\nimport {\n TFetchStatus,\n LoggerService,\n EventService,\n ConfigurationsService,\n UtilityService,\n WsEvents,\n} from '@sunbird-cb/utils-v2';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { WidgetUserService } from '../../_services/widget-user.service';\n// import { environment } from 'src/environments/environment'\n// tslint:disable-next-line\nimport * as _ from 'lodash'\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { NsCardContent } from '../../_models/card-content-v2.model';\nimport { ITodayEvents } from '../../_models/event';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\ninterface IStripUnitContentData {\n key: string;\n canHideStrip: boolean;\n mode?: string;\n showStrip: boolean;\n disableTranslate: boolean;\n widgets?: NsWidgetResolver.IRenderConfigWithAnyData[];\n stripTitle: string;\n stripTitleLink?: {\n link: {\n queryParams: string\n },\n icon: string,\n queryParams: string\n };\n sliderConfig?: {\n showNavs: boolean,\n showDots: boolean,\n maxWidgets?: number\n cerificateCardMargin?: boolean\n };\n stripConfig: any;\n tabsType?: string;\n tabs?: NsContentStripWithTabs.IContentStripTab[] | undefined;\n stripName?: string;\n stripLogo?: string;\n description?: string;\n stripInfo?: NsContentStripWithTabs.IStripInfo;\n noDataWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n errorWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n showOnNoData: boolean;\n showOnLoader: boolean;\n showOnError: boolean;\n loaderWidgets?: any;\n stripBackground?: string;\n secondaryHeading?: any;\n viewMoreUrl: any;\n request?: any\n\n}\n\n@Component({\n selector: 'sb-uic-content-strip-with-tabs',\n templateUrl: './content-strip-with-tabs-lib.component.html',\n styleUrls: ['./content-strip-with-tabs-lib.component.scss'],\n})\nexport class ContentStripWithTabsLibComponent extends WidgetBaseComponent\n implements\n OnInit,\n OnDestroy,\n NsWidgetResolver.IWidgetData<NsContentStripWithTabs.IContentStripMultiple> {\n @Input() widgetData!: NsContentStripWithTabs.IContentStripMultiple;\n @Output() emptyResponse = new EventEmitter<any>()\n @Output() viewAllResponse = new EventEmitter<any>()\n @Output() telemtryResponse = new EventEmitter<any>()\n @Input() providerId: any = ''\n @Input() emitViewAll: boolean = false\n @Input() channnelName: any = ''\n @HostBinding('id')\n public id = `ws-strip-miltiple_${Math.random()}`;\n stripsResultDataMap: { [key: string]: IStripUnitContentData } = {};\n stripsKeyOrder: string[] = [];\n showAccordionData = true;\n showParentLoader = false;\n showParentError = false;\n showParentNoData = false;\n errorDataCount = 0;\n noDataCount = 0;\n successDataCount = 0;\n contentAvailable = true;\n baseUrl = this.configSvc.sitePath || '';\n veifiedKarmayogi = false;\n environment!: any;\n changeEventSubscription: Subscription | null = null;\n defaultMaxWidgets = 12;\n enrollInterval: any;\n todaysEvents: any = [];\n enrollmentMapData: any\n\n constructor(\n // private contentStripSvc: ContentStripNewMultipleService,\n @Inject('environment') environment: any,\n private contentSvc: WidgetContentService,\n private loggerSvc: LoggerService,\n private eventSvc: EventService,\n private configSvc: ConfigurationsService,\n public utilitySvc: UtilityService,\n // private http: HttpClient,\n // private searchServSvc: SearchServService,\n public router: Router,\n private userSvc: WidgetUserService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService\n ) {\n super();\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en');\n let lang = JSON.stringify(localStorage.getItem('websiteLanguage'));\n lang = lang.replace(/\\\"/g, '');\n this.translate.use(lang);\n }\n this.environment = environment\n }\n\n ngOnInit() {\n // const url = window.location.href\n this.initData();\n this.contentSvc.telemetryData$.subscribe((data: any) => {\n this.telemtryResponse.emit(data)\n })\n\n\n }\n\n ngOnDestroy() {\n if (this.changeEventSubscription) {\n this.changeEventSubscription.unsubscribe();\n }\n }\n\n showAccordion(key: string) {\n if (this.utilitySvc.isMobile && this.stripsResultDataMap[key].mode === 'accordion') {\n return this.showAccordionData;\n }\n return true;\n }\n\n setHiddenForStrip(key: string) {\n this.stripsResultDataMap[key].showStrip = false;\n sessionStorage.setItem(`cstrip_${key}`, '1');\n }\n private getIfStripHidden(key: string): boolean {\n const storageItem = sessionStorage.getItem(`cstrip_${key}`);\n return Boolean(storageItem !== '1');\n }\n\n private initData() {\n this.stripsKeyOrder = this.widgetData && this.widgetData.strips && this.widgetData.strips.map(strip => strip.key) || [];\n if (this.widgetData.loader && this.widgetData.strips.length) {\n this.showParentLoader = true;\n }\n // Fetch the data\n for (const strip of this.widgetData.strips) {\n if (this.checkForEmptyWidget(strip)) {\n this.fetchStripFromRequestData(strip, false);\n } else {\n this.processStrip(strip, [], 'done', true, null);\n }\n }\n // Subscription for changes\n const keyAndEvent: { key: string; type: string; from: string }[] = this.widgetData.strips\n .map(strip => ({\n key: strip.key,\n type: (strip.refreshEvent && strip.refreshEvent.eventType) || '',\n from: (strip.refreshEvent && strip.refreshEvent.from.toString()) || '',\n }))\n .filter(({ key, type, from }) => key && type && from);\n const eventTypeSet = new Set(keyAndEvent.map(e => e.type));\n this.changeEventSubscription = this.eventSvc.events$\n .pipe(filter(event => eventTypeSet.has(event.eventType)))\n .subscribe(event => {\n keyAndEvent\n .filter(e => e.type === event.eventType && e.from === event.from)\n .map(e => e.key)\n .forEach(k => this.fetchStripFromKey(k, false));\n });\n }\n\n private fetchStripFromKey(key: string, calculateParentStatus = true) {\n const stripData = this.widgetData.strips.find(strip => strip.key === key);\n if (stripData) {\n this.fetchStripFromRequestData(stripData, calculateParentStatus);\n }\n }\n\n isStripShowing(data: any) {\n let count = 0;\n if (data && data.key === this.environment.programStripKey && (!data.tabs || !data.tabs.length) &&\n data.stripTitle === this.environment.programStripName && data.widgets.length > 0) {\n data.widgets.forEach((key: any) => {\n if (key && key.widgetData.content.primaryCategory === this.environment.programStripPrimaryCategory) {\n count = count + 1;\n }\n });\n if (count > 0) {\n data.showStrip = true;\n } else {\n data.showStrip = false;\n }\n }\n // console.log('data.key', data, data.key, data.widgets);\n return data.showStrip;\n }\n\n get isMobile() {\n return this.utilitySvc.isMobile || false;\n }\n\n getdata(data: IStripUnitContentData) {\n if (data.stripInfo) {\n return data.stripInfo.widget;\n }\n return {};\n\n }\n checkCondition(wData: NsContentStripWithTabs.IContentStripMultiple, data: IStripUnitContentData) {\n if (wData.strips[0].stripConfig && wData.strips[0].stripConfig.hideShowAll) {\n return !wData.strips[0].stripConfig.hideShowAll;\n }\n return wData.strips[0].viewMoreUrl && data.widgets && data.widgets.length >= 4;\n }\n checkVisible(data: IStripUnitContentData) {\n return data.stripInfo && data.stripInfo.visibilityMode === 'visible';\n }\n\n getContineuLearningLenth(data: IStripUnitContentData) {\n return data.widgets ? data.widgets.length : 0;\n }\n getLength(data: IStripUnitContentData) {\n if (!data.tabs || !data.tabs.length) {\n return data.widgets ? data.widgets.length : 0;\n } {\n // if tabs are there check if each tab has widgets and get the tab with max widgets\n const tabWithMaxWidgets = data.tabs.reduce(\n (prev, current) => {\n if (!prev.widgets && !current.widgets) {\n return current;\n }\n if (prev.widgets && current.widgets) {\n return (prev.widgets.length > current.widgets.length) ? prev : current;\n }\n if (current.widgets && !prev.widgets) {\n return current;\n }\n if (!current.widgets && prev.widgets) {\n return prev;\n }\n return current;\n // return (prev.widgets && current.widgets && (prev.widgets.length > current.widgets.length) ) ? prev : current\n // tslint:disable-next-line: align\n }, data.tabs[0]);\n // if tabs has atleast 1 widgets then strip will show or else not\n return tabWithMaxWidgets.widgets ? tabWithMaxWidgets.widgets.length : 0;\n }\n }\n\n private getFiltersFromArray(v6filters: any) {\n const filters: any = {};\n if (v6filters.constructor === Array) {\n v6filters.forEach(((f: any) => {\n Object.keys(f).forEach(key => {\n filters[key] = f[key];\n });\n }));\n return filters;\n }\n return v6filters;\n }\n\n private transformSearchV6FiltersV2(v6filters: any) {\n const filters: any = {};\n if (v6filters.constructor === Array) {\n v6filters.forEach(((f: any) => {\n Object.keys(f).forEach(key => {\n filters[key] = f[key];\n });\n }));\n return filters;\n }\n return v6filters;\n }\n\n checkForDateFilters(filters: any) {\n let userData: any;\n if (this.configSvc.userProfile) {\n userData = this.configSvc.userProfile;\n }\n\n if (filters && filters.hasOwnProperty('batches.endDate')) {\n // tslint:disable-next-line\n filters['batches.endDate']['>='] = eval(filters['batches.endDate']['>='])\n } else if (filters && filters.hasOwnProperty('batches.enrollmentEndDate')) {\n // tslint:disable-next-line\n filters['batches.enrollmentEndDate']['>='] = eval(filters['batches.enrollmentEndDate']['>='])\n } else if (filters.organisation &&\n filters.organisation.indexOf('<orgID>') >= 0\n ) {\n if (this.providerId) {\n filters.organisation = this.providerId;\n } else {\n filters.organisation = userData && userData.rootOrgId;\n\n if (filters && filters.hasOwnProperty('designation')) {\n filters.designation = userData.professionalDetails.length > 0 ?\n userData.professionalDetails[0].designation : '';\n }\n }\n\n }\n return filters;\n }\n\n private fetchStripFromRequestData(\n strip: NsContentStripWithTabs.IContentStripUnit,\n calculateParentStatus = true,\n ) {\n // setting initial values\n strip.loaderWidgets = this.transformSkeletonToWidgets(strip);\n this.processStrip(strip, [], 'fetching', false, null);\n this.fetchFromEnrollmentList(strip, calculateParentStatus);\n this.fetchFromSearchV6(strip, calculateParentStatus);\n this.fetchFromTrendingContent(strip, calculateParentStatus);\n this.fetchAllCbpPlans(strip, calculateParentStatus);\n this.fetchAllTopContent(strip, calculateParentStatus);\n this.fetchAllFeaturedContent(strip, calculateParentStatus);\n this.fetchAllBookMarkData(strip, calculateParentStatus);\n this.fetchAllPlaylistSearch(strip, calculateParentStatus);\n this.fetchPlaylistReadData(strip, calculateParentStatus);\n this.fetchCiosContentData(strip, calculateParentStatus);\n\n // this.enrollInterval = setInterval(() => {\n // this.fetchAllCbpPlans(strip, calculateParentStatus)\n // }, 1000)\n }\n\n fetchFromEnrollmentList(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.enrollmentList && Object.keys(strip.request.enrollmentList).length) {\n let userId = '';\n let content: NsContent.IContent[];\n let contentNew: NsContent.IContent[];\n let tabResults: any[] = [];\n const queryParams = _.get(strip.request.enrollmentList, 'queryParams');\n // if (queryParams && queryParams.batchDetails) {\n // if (!queryParams.batchDetails.includes('&retiredCoursesEnabled=true')) {\n // queryParams.batchDetails += '&retiredCoursesEnabled=true'\n // }\n // }\n if (this.configSvc.userProfile) {\n userId = this.configSvc.userProfile.userId;\n }\n // this.userSvc.resetTime('enrollmentService')\n // tslint:disable-next-line: deprecation\n this.userSvc.fetchUserBatchList(userId, queryParams).subscribe(\n (result: any) => {\n const courses = result && result.courses;\n const showViewMore = Boolean(\n courses.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore\n ? {\n path: (strip.viewMoreUrl && strip.viewMoreUrl.path) || '',\n queryParams: {\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f:\n strip.request && strip.request.searchV6 && strip.request.searchV6.filters\n ? JSON.stringify(\n // this.searchServSvc.transformSearchV6Filters(\n strip.request.searchV6.filters\n // ),\n )\n : {},\n },\n }\n : null;\n if (courses && courses.length) {\n content = courses.map((c: any) => {\n const contentTemp: NsContent.IContent = c.content;\n contentTemp.completionPercentage = c.completionPercentage || c.progress || 0;\n contentTemp.completionStatus = c.completionStatus || c.status || 0;\n contentTemp.enrolledDate = c.enrolledDate || '';\n contentTemp.lastContentAccessTime = c.lastContentAccessTime || '';\n contentTemp.lastReadContentStatus = c.lastReadContentStatus || '';\n contentTemp.lastReadContentId = c.lastReadContentId || '';\n contentTemp.lrcProgressDetails = c.lrcProgressDetails || '';\n contentTemp.issuedCertificates = c.issuedCertificates || [];\n contentTemp.batchId = c.batchId || '';\n return contentTemp;\n });\n }\n // To filter content with completionPercentage > 0,\n // so that only those content will show in home page\n // continue learing strip\n // if (content && content.length) {\n // contentNew = content.filter((c: any) => {\n // /** commented as both are 0 after enrolll */\n // if (c.completionPercentage && c.completionPercentage > 0) {\n // return c\n // }\n // })\n // }\n\n // To sort in descending order of the enrolled date\n contentNew = (content || []).sort((a: any, b: any) => {\n const dateA: any = new Date(a.lastContentAccessTime || 0);\n const dateB: any = new Date(b.lastContentAccessTime || 0);\n return dateB - dateA;\n });\n\n if (strip.tabs && strip.tabs.length) {\n tabResults = this.splitEnrollmentTabsData(contentNew, strip);\n this.processStrip(\n strip,\n this.transformContentsToWidgets(contentNew, strip),\n 'done',\n calculateParentStatus,\n viewMoreUrl,\n tabResults\n );\n } else {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(contentNew, strip),\n 'done',\n calculateParentStatus,\n viewMoreUrl,\n );\n }\n },\n () => {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n );\n }\n }\n\n splitEnrollmentTabsData(contentNew: NsContent.IContent[], strip: NsContentStripWithTabs.IContentStripUnit) {\n const tabResults: any[] = [];\n const splitData = this.getInprogressAndCompleted(\n contentNew,\n (e: any) => e.completionStatus === 1 || e.completionPercentage < 100,\n strip,\n );\n\n if (strip.tabs && strip.tabs.length) {\n for (let i = 0; i < strip.tabs.length; i += 1) {\n if (strip.tabs[i]) {\n tabResults.push(\n {\n ...strip.tabs[i],\n fetchTabStatus: 'done',\n ...(splitData.find(itmInner => {\n if (strip.tabs && strip.tabs[i] && itmInner.value === strip.tabs[i].value) {\n return itmInner;\n }\n return undefined;\n })),\n }\n );\n }\n }\n }\n return tabResults;\n }\n\n getInprogressAndCompleted(array: NsContent.IContent[],\n customFilter: any,\n strip: NsContentStripWithTabs.IContentStripUnit) {\n const inprogress: any[] = []\n const completed: any[] = []\n // array.forEach((e: any, idx: number, arr: any[]) => (customFilter(e, idx, arr) ? inprogress : completed).push(e))\n array.forEach((e, idx, arr) => {\n const status = e.status ? (e.status as string).toLowerCase() : ''\n const statusRetired = status === 'retired'\n if (customFilter(e, idx, arr)) {\n if (!statusRetired) {\n inprogress.push(e)\n }\n } else {\n completed.push(e)\n }\n })\n // Sort the completed array with 'Live' status first and 'Retired' status second\n completed.sort((a: any, b: any) => {\n const statusA = a.status ? a.status.toLowerCase() : ''\n const statusB = b.status ? b.status.toLowerCase() : ''\n if (statusA === 'live' && statusB !== 'live') {\n return -1\n }\n if (statusA !== 'live' && statusB === 'live') {\n return 1\n }\n if (statusA === 'retired' && statusB !== 'retired') {\n return 1\n }\n if (statusA !== 'retired' && statusB === 'retired') {\n return -1\n }\n return 0\n })\n return [\n { value: 'inprogress', widgets: this.transformContentsToWidgets(inprogress, strip) },\n { value: 'completed', widgets: this.transformContentsToWidgets(completed, strip) }];\n }\n\n async fetchFromSearchV6(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.searchV6 && Object.keys(strip.request.searchV6).length) {\n // if (!(strip.request.searchV6.locale && strip.request.searchV6.locale.length > 0)) {\n // if (this.configSvc.activeLocale) {\n // strip.request.searchV6.locale = [this.configSvc.activeLocale.locals[0]]\n // } else {\n // strip.request.searchV6.locale = ['en']\n // }\n // }\n let originalFilters: any = [];\n // tslint:disable:no-console\n console.log(originalFilters);\n if (strip.request &&\n strip.request.searchV6 &&\n strip.request.searchV6.request &&\n strip.request.searchV6.request.filters) {\n originalFilters = strip.request.searchV6.request.filters;\n strip.request.searchV6.request.filters = this.checkForDateFilters(strip.request.searchV6.request.filters);\n strip.request.searchV6.request.filters = this.getFiltersFromArray(\n strip.request.searchV6.request.filters,\n );\n }\n if (strip.tabs && strip.tabs.length) {\n // TODO: Have to extract requestRequired to outer level of tabs config\n const firstTab = strip.tabs[0];\n if (firstTab.requestRequired) {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const currentTabFromMap = (allTabs && allTabs.length && allTabs[0]) as NsContentStripWithTabs.IContentStripTab;\n\n this.getTabDataByNewReqSearchV6(strip, 0, currentTabFromMap, calculateParentStatus);\n }\n }\n\n } else {\n try {\n const response = await this.searchV6Request(strip, strip.request, calculateParentStatus);\n // console.log('calling after - response, ', response)\n if (response && response.results) {\n // console.log('calling after-- ')\n if (response.results.result.content) {\n if (strip.key === 'scheduledAssessment') {\n this.enrollInterval = setInterval(() => {\n this.checkInvitOnlyAssessments(response.results.result.content, strip, calculateParentStatus, response.viewMoreUrl)\n\n // tslint:disable-next-line\n }, 1000)\n\n\n } else {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(response.results.result.content, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n }\n\n } else if (response.results.result.Event) {\n this.processStrip(\n strip,\n this.transformEventsToWidgets(response.results.result.Event, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n }\n\n checkInvitOnlyAssessments(content: any, strip: any, calculateParentStatus: any, viewMoreUrl: any) {\n if (localStorage.getItem('enrollmentMapData')) {\n this.enrollmentMapData = JSON.parse(localStorage.getItem('enrollmentMapData') || '{}')\n let filteredArray: any = []\n let now = new Date().getTime()\n content.forEach((data: any) => {\n if (this.enrollmentMapData[data.identifier]) {\n if(this.enrollmentMapData[data.identifier].status !== 2 && this.enrollmentMapData[data.identifier].batch) {\n const enrollData = this.enrollmentMapData[data.identifier].batch\n let endDate:any = new Date(enrollData.endDate).getTime()\n // let endDate:any = '2024-07-7T00:00:00.000Z'\n let timeDuration = endDate - now\n if(timeDuration > 0 ) {\n data['batch'] = this.enrollmentMapData[data.identifier].batch\n data['completionPercentage'] = this.enrollmentMapData[data.identifier].completionPercentage\n filteredArray.push(data)\n }\n }\n \n }\n })\n filteredArray = filteredArray.sort((a: any, b: any) => {\n const dateA: any = new Date(a.batch.startDate || 0)\n const dateB: any = new Date(b.batch.startDate || 0)\n return dateA - dateB\n })\n this.processStrip(\n strip,\n this.transformContentsToWidgets(filteredArray, strip),\n 'done',\n calculateParentStatus,\n viewMoreUrl,\n );\n clearInterval(this.enrollInterval)\n }\n }\n\n async searchV6Request(strip: NsContentStripWithTabs.IContentStripUnit,\n request: NsContentStripWithTabs.IContentStripUnit['request'],\n calculateParentStatus: boolean\n ): Promise<any> {\n const originalFilters: any = [];\n return new Promise<any>((resolve, reject) => {\n if (request && request.searchV6) {\n this.contentSvc.searchV6(request.searchV6).subscribe(results => {\n const showViewMore = Boolean(\n results.result.content && results.result.content.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore\n ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f:\n request &&\n request.searchV6 &&\n request.searchV6.request &&\n request.searchV6.request.filters\n ? JSON.stringify(\n this.transformSearchV6FiltersV2(\n originalFilters,\n )\n )\n : {},\n },\n }\n : null;\n // if (viewMoreUrl && viewMoreUrl.queryParams) {\n // viewMoreUrl.queryParams = viewMoreUrl.queryParams\n // }\n resolve({ results, viewMoreUrl });\n }, (error: any) => {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n reject(error);\n },\n );\n }\n });\n }\n\n async fetchFromTrendingContent(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.trendingSearch && Object.keys(strip.request.trendingSearch).length) {\n // if (!(strip.request.searchV6.locale && strip.request.searchV6.locale.length > 0)) {\n // if (this.configSvc.activeLocale) {\n // strip.request.searchV6.locale = [this.configSvc.activeLocale.locals[0]]\n // } else {\n // strip.request.searchV6.locale = ['en']\n // }\n // }\n let originalFilters: any = [];\n // tslint:disable:no-console\n console.log(originalFilters);\n if (strip.request &&\n strip.request.trendingSearch &&\n strip.request.trendingSearch.request &&\n strip.request.trendingSearch.request.filters) {\n originalFilters = strip.request.trendingSearch.request.filters;\n strip.request.trendingSearch.request.filters = this.checkForDateFilters(strip.request.trendingSearch.request.filters);\n strip.request.trendingSearch.request.filters = this.getFiltersFromArray(\n strip.request.trendingSearch.request.filters,\n );\n }\n if (strip.tabs && strip.tabs.length) {\n // TODO: Have to extract requestRequired to outer level of tabs config\n const firstTab = strip.tabs[0];\n if (firstTab.requestRequired) {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const currentTabFromMap = (allTabs && allTabs.length && allTabs[0]) as NsContentStripWithTabs.IContentStripTab;\n\n this.getTabDataByNewReqTrending(strip, 0, currentTabFromMap, calculateParentStatus);\n }\n }\n\n } else {\n try {\n const response = await this.trendingSearchRequest(strip, strip.request, calculateParentStatus);\n if (response && response.results && response.results.response) {\n const content = response.results.response[strip.request.trendingSearch.responseKey] || [];\n this.processStrip(\n strip,\n this.transformContentsToWidgets(content, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl || '',\n );\n if (!content.length) {\n this.emptyResponse.emit(true)\n }\n } else {\n this.emptyResponse.emit(true)\n this.processStrip(strip, [], 'done', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n this.emptyResponse.emit(true)\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n }\n }\n }\n\n async trendingSearchRequest(strip: NsContentStripWithTabs.IContentStripUnit,\n request: NsContentStripWithTabs.IContentStripUnit['request'],\n calculateParentStatus: boolean\n ): Promise<any> {\n const originalFilters: any = [];\n return new Promise<any>((resolve, reject) => {\n if (request && request.trendingSearch) {\n // check for the request if it has dynamic values]\n if (request.trendingSearch.request.filters.organisation &&\n request.trendingSearch.request.filters.organisation.indexOf('<orgID>') >= 0\n ) {\n let userRootOrgId;\n if (this.configSvc.userProfile) {\n userRootOrgId = this.configSvc.userProfile.rootOrgId;\n }\n request.trendingSearch.request.filters.organisation = userRootOrgId;\n }\n this.contentSvc.trendingContentSearch(request.trendingSearch).subscribe(results => {\n const showViewMore = Boolean(\n results.result &&\n strip.request &&\n results.result[strip.request.trendingSearch.responseKey] &&\n results.result[strip.request.trendingSearch.responseKey].length > 5 &&\n strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore\n ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f:\n request &&\n request.trendingSearch &&\n request.trendingSearch.request &&\n request.trendingSearch.request.filters\n ? JSON.stringify(\n this.transformSearchV6FiltersV2(\n originalFilters,\n )\n )\n : {},\n },\n }\n : null;\n let proccesedResult: any = []\n if (results && results.response && results.response.certifications) {\n results.response.certifications.map((result: any) => {\n if (result.source === this.channnelName) {\n proccesedResult.push(result)\n }\n })\n }\n results = { response: { certifications: proccesedResult } }\n resolve({ results, viewMoreUrl });\n }, (error: any) => {\n if (error.error && error.error.status === 400) {\n this.processStrip(strip, [], 'done', calculateParentStatus, null);\n }\n // this.processStrip(strip, [], 'done', calculateParentStatus, null)\n reject(error);\n },\n );\n }\n });\n }\n\n toggleInfo(data: IStripUnitContentData) {\n const stripInfo = this.stripsResultDataMap[data.key].stripInfo;\n if (stripInfo) {\n if (stripInfo.mode !== 'below') {\n this.loggerSvc.warn(`strip info mode: ${stripInfo.mode} not implemented yet`);\n stripInfo.mode = 'below';\n }\n if (stripInfo.mode === 'below') {\n this.stripsResultDataMap[data.key].stripInfo = {\n ...stripInfo,\n visibilityMode: stripInfo.visibilityMode === 'hidden' ? 'visible' : 'hidden',\n };\n }\n }\n }\n\n private transformContentsToWidgets(\n contents: NsContent.IContent[],\n strip: NsContentStripWithTabs.IContentStripUnit,\n ) {\n return (contents || []).map((content, idx) => (\n content ? {\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n ...(content.batch && { batch: content.batch }),\n cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n context: { pageSection: strip.key, position: idx },\n intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,\n deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,\n contentTags: strip.stripConfig && strip.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'cardContent',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n\n private transformEventsToWidgets(\n contents: ITodayEvents[],\n strip: NsContentStripWithTabs.IContentStripUnit,\n ) {\n this.eventSvc.setEventListData(contents);\n return (this.eventSvc.todaysEvents || []).map((content: any, idx: any) => (content ? {\n widgetType: 'card',\n widgetSubType: 'eventHubCard',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n context: { pageSection: strip.key, position: idx },\n intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,\n deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,\n contentTags: strip.stripConfig && strip.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'eventHubCard',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n private transformSkeletonToWidgets(\n strip: any\n ) {\n return [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10].map(_content => ({\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n cardSubType: strip.loaderConfig && strip.loaderConfig.cardSubType || 'card-standard-skeleton',\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n },\n }));\n }\n\n private async processStrip(\n strip: NsContentStripWithTabs.IContentStripUnit,\n results: NsWidgetResolver.IRenderConfigWithAnyData[] = [],\n fetchStatus: TFetchStatus,\n calculateParentStatus = true,\n _viewMoreUrl: any,\n tabsResults?: NsContentStripWithTabs.IContentStripTab[] | undefined,\n // calculateParentStatus is used so that parents' status is not re-calculated if the API is called again coz of filters, etc.\n ) {\n const stripData = {\n viewMoreUrl: strip.viewMoreUrl,\n key: strip.key,\n canHideStrip: Boolean(strip.canHideStrip),\n showStrip: this.getIfStripHidden(strip.key),\n noDataWidget: strip.noDataWidget,\n errorWidget: strip.errorWidget,\n stripInfo: strip.info,\n stripTitle: strip.title,\n stripTitleLink: strip.stripTitleLink,\n disableTranslate: strip.disableTranslate,\n sliderConfig: strip.sliderConfig,\n tabs: tabsResults ? tabsResults : strip.tabs,\n tabsType: strip.tabsType ? strip.tabsType : '',\n stripName: strip.name,\n mode: strip.mode,\n stripConfig: strip.stripConfig,\n stripBackground: strip.stripBackground,\n secondaryHeading: strip.secondaryHeading,\n loaderWidgets: strip.loaderWidgets || [],\n widgets:\n fetchStatus === 'done'\n ? [\n ...(strip.preWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ...results,\n ...(strip.postWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ]\n : [],\n showOnNoData: Boolean(\n strip.noDataWidget &&\n !((strip.preWidgets || []).length + results.length + (strip.postWidgets || []).length) &&\n fetchStatus === 'done',\n ),\n showOnLoader: Boolean(strip.loader && fetchStatus === 'fetching'),\n showOnError: Boolean(strip.errorWidget && fetchStatus === 'error'),\n };\n // const stripData = this.stripsResultDataMap[strip.key]\n this.stripsResultDataMap = {\n ...this.stripsResultDataMap,\n [strip.key]: stripData,\n };\n if (!tabsResults) {\n if (\n calculateParentStatus &&\n (fetchStatus === 'done' || fetchStatus === 'error') &&\n stripData.widgets\n ) {\n this.checkParentStatus(fetchStatus, stripData.widgets.length);\n }\n if (calculateParentStatus && !(results && results.length > 0)) {\n this.contentAvailable = false;\n } else if (results && results.length > 0) {\n this.contentAvailable = true;\n }\n } else {\n this.contentAvailable = true;\n }\n }\n private checkParentStatus(fetchStatus: TFetchStatus, stripWidgetsCount: number): void {\n if (fetchStatus === 'done' && !stripWidgetsCount) {\n this.noDataCount += 1;\n } else if (fetchStatus === 'done' && stripWidgetsCount) {\n this.successDataCount += 1;\n } else if (fetchStatus === 'error') {\n this.errorDataCount += 1;\n }\n const settledCount = this.noDataCount + this.successDataCount + this.errorDataCount;\n const totalCount = this.widgetData.strips.length;\n if (this.successDataCount > 0 && settledCount < totalCount) {\n return;\n }\n this.showParentLoader = settledCount !== totalCount;\n this.showParentNoData =\n this.noDataCount > 0 && this.noDataCount + this.errorDataCount === totalCount;\n this.showParentError = this.errorDataCount === totalCount;\n }\n checkForEmptyWidget(strip: NsContentStripWithTabs.IContentStripUnit): boolean {\n if (\n strip.request &&\n ((strip.request.api && Object.keys(strip.request.api).length) ||\n (strip.request.search && Object.keys(strip.request.search).length) ||\n (strip.request.searchRegionRecommendation &&\n Object.keys(strip.request.searchRegionRecommendation).length) ||\n (strip.request.searchV6 && Object.keys(strip.request.searchV6).length) ||\n (strip.request.enrollmentList && Object.keys(strip.request.enrollmentList).length) ||\n (strip.request.cbpList && Object.keys(strip.request.cbpList).length) ||\n (strip.request.trendingSearch && Object.keys(strip.request.trendingSearch).length) ||\n (strip.request.topContent && Object.keys(strip.request.topContent).length) ||\n (strip.request.featureContent && Object.keys(strip.request.featureContent).length) ||\n (strip.request.bookmarkRead && Object.keys(strip.request.bookmarkRead).length) ||\n (strip.request.playlistSearch && Object.keys(strip.request.playlistSearch).length) ||\n (strip.request.playlistRead && Object.keys(strip.request.playlistRead).length) ||\n (strip.request.ciosContent && Object.keys(strip.request.ciosContent).length)\n )\n ) {\n return true;\n }\n return false;\n }\n\n public tabClicked(tabEvent: MatTabChangeEvent, stripMap: IStripUnitContentData, stripKey: string) {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n stripMap.tabs[tabEvent.index].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabEvent.index].tabLoading = true;\n stripMap.showOnLoader = true;\n }\n const data: WsEvents.ITelemetryTabData = {\n label: `${tabEvent.tab.textLabel}`,\n index: tabEvent.index,\n };\n this.eventSvc.raiseInteractTelemetry(\n {\n type: WsEvents.EnumInteractTypes.CLICK,\n subType: WsEvents.EnumInteractSubTypes.HOME_PAGE_STRIP_TABS,\n id: `${_.camelCase(data.label)}-tab`,\n },\n {},\n {\n module: WsEvents.EnumTelemetrymodules.HOME,\n }\n );\n const currentTabFromMap: any = stripMap.tabs && stripMap.tabs[tabEvent.index];\n const currentStrip = this.widgetData.strips.find(s => s.key === stripKey);\n if (this.stripsResultDataMap[stripKey] && currentTabFromMap) {\n this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams = {\n ...this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams,\n tabSelected: currentTabFromMap.label,\n };\n }\n if (currentStrip && currentTabFromMap && !currentTabFromMap.computeDataOnClick) {\n if (currentTabFromMap.requestRequired && currentTabFromMap.request) {\n // call API to get tab data and process\n // this.processStrip(currentStrip, [], 'fetching', true, null)\n if (currentTabFromMap.request.searchV6) {\n this.getTabDataByNewReqSearchV6(currentStrip, tabEvent.index, currentTabFromMap, true);\n } else if (currentTabFromMap.request.trendingSearch) {\n this.getTabDataByNewReqTrending(currentStrip, tabEvent.index, currentTabFromMap, true);\n } else if (currentTabFromMap.request.topContent) {\n this.getTabDataByNewReqTopContent(currentStrip, tabEvent.index, currentTabFromMap, true);\n } else if (currentTabFromMap.request.playlistRead) {\n this.getTabDataByNewReqPlaylistReadContent(currentStrip, tabEvent.index, currentTabFromMap, true);\n } else if (currentTabFromMap.request.ciosContent) {\n this.getTabDataByCiosSearch(currentStrip, tabEvent.index, currentTabFromMap, true)\n }\n if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n stripMap.tabs[tabEvent.index].tabLoading = false;\n }\n } else {\n this.getTabDataByfilter(currentStrip, currentTabFromMap, true);\n setTimeout(() => {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n stripMap.tabs[tabEvent.index].tabLoading = false;\n stripMap.tabs[tabEvent.index].fetchTabStatus = 'done';\n stripMap.showOnLoader = false;\n }\n }, 200);\n }\n }\n }\n\n\n async getTabDataByNewReqSearchV6(\n strip: NsContentStripWithTabs.IContentStripUnit,\n tabIndex: number,\n currentTab: NsContentStripWithTabs.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n try {\n const response = await this.searchV6Request(strip, currentTab.request, calculateParentStatus);\n if (response && response.results) {\n const widgets = this.transformContentsToWidgets(response.results.result.content, strip);\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets,\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(\n strip,\n widgets,\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n tabResults // tabResults as widgets\n );\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n\n async getTabDataByNewReqTrending(\n strip: NsContentStripWithTabs.IContentStripUnit,\n tabIndex: number,\n currentTab: NsContentStripWithTabs.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n try {\n const response = await this.trendingSearchRequest(strip, currentTab.request, calculateParentStatus);\n if (response && response.results && response.results.response) {\n const content = response.results.response[currentTab.value] || [];\n const widgets = this.transformContentsToWidgets(content, strip);\n // console.log('currentTab --- widgets', widgets)\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets,\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n // console.log('tabResults -++++***--', tabResults)\n // console.log('calling after-- ')\n this.processStrip(\n strip,\n widgets,\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n tabResults // tabResults as widgets\n );\n } else {\n this.processStrip(strip, [], 'done', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n }\n\n getTabDataByfilter(\n strip: NsContentStripWithTabs.IContentStripUnit,\n currentTab: NsContentStripWithTabs.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n // tslint:disable:no-console\n console.log('strip -- ', strip);\n // tslint:disable:no-console\n console.log('currentTab -- ', currentTab);\n // tslint:disable:no-console\n console.log('calculateParentStatus-- ', calculateParentStatus);\n // TODO: Write logic for individual filter if passed in config\n // add switch case based on config key passed\n }\n\n async fetchAllCbpPlans(strip: any, calculateParentStatus = true) {\n\n if (strip.request && strip.request.cbpList && Object.keys(strip.request.cbpList).length) {\n\n let courses: NsContent.IContent[];\n let tabResults: any[] = [];\n const response = await this.userSvc.fetchCbpPlanList().toPromise();\n if (response) {\n courses = response;\n if (strip.tabs && strip.tabs.length) {\n tabResults = this.splitCbpTabsData(courses, strip);\n await this.processStrip(\n strip,\n this.transformContentsToWidgets(courses, strip),\n 'done',\n calculateParentStatus,\n '',\n tabResults\n );\n } else {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(courses, strip),\n 'done',\n calculateParentStatus,\n 'viewMoreUrl',\n );\n }\n }\n // this.userSvc.fetchCbpPlanList().subscribe( async (res: any) => {\n // if (res) {\n // console.log(res,'===============================>')\n // courses = res\n // if (strip.tabs && strip.tabs.length) {\n // tabResults = this.splitCbpTabsData(courses, strip)\n // await this.processStrip(\n // strip,\n // this.transformContentsToWidgets(courses, strip),\n // 'done',\n // calculateParentStatus,\n // '',\n // tabResults\n // )\n // } else {\n // this.processStrip(\n // strip,\n // this.transformContentsToWidgets(courses, strip),\n // 'done',\n // calculateParentStatus,\n // 'viewMoreUrl',\n // )\n // }\n // }\n // }, (_err: any) => {\n\n // })\n\n clearInterval(this.enrollInterval);\n }\n }\n splitCbpTabsData(contentNew: NsContent.IContent[], strip: NsContentStripWithTabs.IContentStripUnit) {\n const tabResults: any[] = [];\n const splitData = this.getTabsList(\n contentNew,\n strip,\n );\n if (strip.tabs && strip.tabs.length) {\n for (let i = 0; i < strip.tabs.length; i += 1) {\n if (strip.tabs[i]) {\n tabResults.push(\n {\n ...strip.tabs[i],\n fetchTabStatus: 'done',\n ...(splitData.find(itmInner => {\n if (strip.tabs && strip.tabs[i] && itmInner.value === strip.tabs[i].value) {\n return itmInner;\n }\n return undefined;\n })),\n }\n );\n }\n }\n }\n return tabResults;\n }\n\n getTabsList(array: NsContent.IContent[],\n strip: NsContentStripWithTabs.IContentStripUnit) {\n let all: any[] = [];\n let upcoming: any[] = [];\n let overdue: any[] = [];\n array.forEach((e: any) => {\n all.push(e);\n if (e.planDuration === NsCardContent.ACBPConst.OVERDUE) {\n overdue.push(e);\n } else if (e.planDuration === NsCardContent.ACBPConst.UPCOMING) {\n upcoming.push(e);\n }\n });\n const allCompleted = all.filter((allData: any) => allData.contentStatus === 2);\n let allInCompleted = all.filter((allData: any) => allData.contentStatus < 2);\n\n let allCompletedOverDue = allCompleted.filter((allData: any) => allData.planDuration === NsCardContent.ACBPConst.OVERDUE);\n const allCompletedAll = allCompleted.filter((allData: any) => allData.planDuration !== NsCardContent.ACBPConst.OVERDUE);\n\n allCompletedOverDue = allCompletedOverDue.sort((a: any, b: any): any => {\n if (a.planDuration === NsCardContent.ACBPConst.OVERDUE && b.planDuration === NsCardContent.ACBPConst.OVERDUE) {\n const firstDate: any = new Date(a.endDate);\n const secondDate: any = new Date(b.endDate);\n return firstDate > secondDate ? -1 : 1;\n }\n });\n\n allInCompleted = allInCompleted.sort((a: any, b: any): any => {\n if (a.planDuration === NsCardContent.ACBPConst.OVERDUE && b.planDuration === NsCardContent.ACBPConst.OVERDUE) {\n const firstDate: any = new Date(a.endDate);\n const secondDate: any = new Date(b.endDate);\n return firstDate > secondDate ? -1 : 1;\n }\n });\n\n all = [...allInCompleted, ...allCompletedAll, ...allCompletedOverDue];\n\n overdue = overdue.filter((data: any): any => {\n return data.contentStatus < 2;\n });\n\n overdue = overdue.sort((a: any, b: any): any => {\n const firstDate: any = new Date(a.endDate);\n const secondDate: any = new Date(b.endDate);\n return firstDate > secondDate ? -1 : 1;\n });\n\n upcoming = upcoming.filter((data: any): any => {\n return data.contentStatus < 2;\n });\n // this.getSelectedIndex(1)\n return [\n { value: 'all', widgets: this.transformContentsToWidgets(all, strip) },\n { value: 'upcoming', widgets: this.transformContentsToWidgets(upcoming, strip) },\n { value: 'overdue', widgets: this.transformContentsToWidgets(overdue, strip) }];\n }\n\n getSelectedIndex(stripsResultDataMap: any, key: any): number {\n let returnValue = 0;\n if (key === 'cbpPlan') {\n if (stripsResultDataMap.tabs.length) {\n const data = stripsResultDataMap.tabs.filter((ele: any) => ele.value === 'upcoming');\n returnValue = data[0].widgets && data[0].widgets.length > 0 ? 1 : 0;\n }\n }\n return returnValue;\n }\n\n translateLabels(label: string, type: any) {\n return this.langtranslations.translateLabel(label, type, '');\n }\n\n identify(index: number, item: any) {\n if (index >= 0) { }\n return item;\n }\n tracker(index: number, item: any) {\n if (index >= 0) { }\n return _.get(item, 'widgetData.content.identifier')\n }\n\n async fetchAllTopContent(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.topContent && Object.keys(strip.request.topContent).length) {\n let originalFilters: any = [];\n if (strip.request &&\n strip.request.topContent &&\n strip.request.topContent.request &&\n strip.request.topContent.request.filters) {\n originalFilters = strip.request.topContent.request.filters;\n strip.request.topContent.request.filters = this.postMethodFilters(strip.request.topContent.request.filters);\n }\n if (strip.tabs && strip.tabs.length) {\n // TODO: Have to extract requestRequired to outer level of tabs config\n const firstTab = strip.tabs[0];\n if (firstTab.requestRequired) {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const currentTabFromMap = (allTabs && allTabs.length && allTabs[0]) as NsContentStripWithTabs.IContentStripTab;\n\n this.getTabDataByNewReqTopContent(strip, 0, currentTabFromMap, calculateParentStatus);\n }\n }\n\n } else {\n try {\n const response = await this.postRequestMethod(strip, strip.request.topContent, strip.request.apiUrl, calculateParentStatus);\n // console.log('calling after - response, ', response)\n if (response && response.results) {\n // console.log('calling after-- ')\n if (response.results.result.content && response.results.result.content.length) {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(response.results.result.content, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n }\n\n async fetchAllFeaturedContent(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.featureContent && Object.keys(strip.request.featureContent).length) {\n let originalFilters: any = [];\n if (strip.request &&\n strip.request.featureContent &&\n strip.request.featureContent.request &&\n strip.request.featureContent.request.filters) {\n originalFilters = strip.request.featureContent.request.filters;\n strip.request.featureContent.request.filters = this.postMethodFilters(strip.request.featureContent.request.filters);\n }\n try {\n const response = await this.postRequestMethod(strip, strip.request.featureContent, strip.request.apiUrl, calculateParentStatus);\n // console.log('calling after - response, ', response)\n if (response && response.results) {\n // console.log('calling after-- ')\n if (response.results.result.content && response.results.result.content.length) {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(response.results.result.content, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n } catch (error) {\n this.emptyResponse.emit(true)\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n\n\n async getTabDataByNewReqTopContent(\n strip: NsContentStripWithTabs.IContentStripUnit,\n tabIndex: number,\n currentTab: NsContentStripWithTabs.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n if (currentTab.request &&\n currentTab.request.topContent &&\n currentTab.request.topContent.request &&\n currentTab.request.topContent.request.filters) {\n currentTab.request.topContent.request.filters = this.postMethodFilters(currentTab.request.topContent.request.filters);\n }\n try {\n // const response = await this.searchV6Request(strip, currentTab.request, calculateParentStatus);\n const response = await this.postRequestMethod(strip, currentTab.request.topContent, currentTab.request.apiUrl, calculateParentStatus);\n if (response.results && response.results.result) {\n const widgets = this.transformContentsToWidgets(response.results.result.content, strip);\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets,\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(\n strip,\n widgets,\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n tabResults // tabResults as widgets\n );\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n\n raiseTelemetry(stripData: any) {\n this.telemtryResponse.emit(stripData)\n }\n\n async postRequestMethod(strip: NsContentStripWithTabs.IContentStripUnit,\n request: NsContentStripWithTabs.IContentStripUnit['request'],\n apiUrl: string,\n calculateParentStatus: boolean\n ): Promise<any> {\n return new Promise<any>((resolve, reject) => {\n if (request && request) {\n this.contentSvc.postApiMethod(apiUrl, request).subscribe(results => {\n if (results.result && results.result.content) {\n const showViewMore = Boolean(\n results.result.content && results.result.content.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore\n ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f: {},\n },\n }\n : null;\n resolve({ results, viewMoreUrl });\n } else if (results && results.data) {\n const showViewMore = Boolean(\n results.data && results.data.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f: {},\n },\n }\n : null;\n resolve({ results, viewMoreUrl });\n } else if (results.result && results.result.data) {\n const showViewMore = Boolean(\n results.data && results.result.data && results.result.data.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f: {},\n },\n }\n : null;\n resolve({ results, viewMoreUrl });\n }\n\n }, (error: any) => {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n reject(error);\n },\n );\n }\n });\n }\n\n async getRequestMethod(strip: NsContentStripWithTabs.IContentStripUnit,\n request: NsContentStripWithTabs.IContentStripUnit['request'],\n apiUrl: string,\n calculateParentStatus: boolean\n ): Promise<any> {\n const originalFilters: any = [];\n return new Promise<any>((resolve, reject) => {\n if (request && request) {\n this.contentSvc.getApiMethod(apiUrl).subscribe(results => {\n let showViewMore: any\n if(results.result.data){\n showViewMore = Boolean(\n results.result.data && results.result.data.orgList.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n } else if(results.result.content){\n let featuredProvider = JSON.parse(results.result.content.featuredProviders || '[]')\n showViewMore = Boolean(\n featuredProvider && featuredProvider.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n }\n const viewMoreUrl = showViewMore\n ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n }\n : null;\n resolve({ results, viewMoreUrl });\n }, (error: any) => {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n reject(error);\n },\n );\n }\n });\n }\n\n postMethodFilters(filters: any) {\n if (filters.organisation &&\n filters.organisation.indexOf('<orgID>') >= 0\n ) {\n filters.organisation = filters.organisation.replace('<orgID>', this.providerId)\n }\n return filters\n }\n getFullUrl(apiUrl: any, id: string) {\n let formedUrl: string = apiUrl\n if (apiUrl.indexOf('<bookmarkId>') >= 0) {\n formedUrl = apiUrl.replace('<bookmarkId>', this.environment.mdoChannelsBookmarkId)\n } else if (apiUrl.indexOf('<playlistKey>') >= 0 && apiUrl.indexOf('<orgID>') >= 0) {\n formedUrl = apiUrl.replace('<playlistKey>', this.providerId + id) \n formedUrl = formedUrl.replace('<orgID>', this.providerId) \n } else if(apiUrl.indexOf('<doId>') >= 0) {\n formedUrl = apiUrl.replace('<doId>', this.environment.providerDataKey) \n } \n return formedUrl\n }\n\n redirectViewAll(stripData: any, path: string, queryParamsData: any) {\n if (this.emitViewAll) {\n this.viewAllResponse.emit(stripData)\n } else {\n this.router.navigate([path], { queryParams: queryParamsData })\n }\n }\n\n async fetchAllBookMarkData(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.bookmarkRead && Object.keys(strip.request.bookmarkRead).length) {\n let originalFilters: any = [];\n if (strip.request &&\n strip.request.bookmarkRead &&\n strip.request.bookmarkRead.bookmarkId) {\n strip.request.apiUrl = this.getFullUrl(strip.request.apiUrl, strip.request.bookmarkRead.bookmarkId);\n }\n try {\n const response = await this.getRequestMethod(strip, strip.request.bookmarkRead, strip.request.apiUrl, calculateParentStatus);\n let content = response.results.result.data.orgList\n if (response) {\n this.processStrip(\n strip,\n this.transformAllContentsToWidgets(content, strip),\n 'done',\n calculateParentStatus,\n response,\n );\n\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n } catch (error) {\n this.emptyResponse.emit(true)\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n\n private transformAllContentsToWidgets(\n contents: any,\n strip: NsContentStripWithTabs.IContentStripUnit,\n ) {\n return (contents || []).map((content, idx) => (\n content ? {\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n ...(content.batch && { batch: content.batch }),\n cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n context: { pageSection: strip.key, position: idx },\n intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,\n deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,\n contentTags: strip.stripConfig && strip.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'cardContent',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n\n private transformAllTabContentsToWidgets(\n contents: any,\n currentTab: NsContentStripWithTabs.IContentStripTab,\n ) {\n return (contents || []).map((content, idx) => (\n content ? {\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n ...(content.batch && { batch: content.batch }),\n cardSubType: currentTab.stripConfig && currentTab.stripConfig.cardSubType,\n cardCustomeClass: currentTab.customeClass ? currentTab.customeClass : '',\n context: { pageSection: currentTab.value, position: idx },\n intranetMode: currentTab.stripConfig && currentTab.stripConfig.intranetMode,\n deletedMode: currentTab.stripConfig && currentTab.stripConfig.deletedMode,\n contentTags: currentTab.stripConfig && currentTab.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'cardContent',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n\n async fetchAllPlaylistSearch(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.playlistSearch && Object.keys(strip.request.playlistSearch).length) {\n let originalFilters: any = [];\n if (strip.request &&\n strip.request.playlistSearch &&\n strip.request.playlistSearch.request &&\n strip.request.playlistSearch.request.filters) {\n originalFilters = strip.request.playlistSearch.request.filters;\n strip.request.playlistSearch.request.filters = this.postMethodFilters(strip.request.playlistSearch.request.filters);\n }\n try {\n const response = await this.postRequestMethod(strip, strip.request.playlistSearch.request, strip.request.apiUrl, calculateParentStatus);\n // console.log('calling after - response, ', response)\n if (response && response.results) {\n // console.log('calling after-- ')\n if (response.results.result.data && response.results.result.data.length) {\n let finalPlaylistData: any = []\n let programData: any = response.results.result.data\n programData.forEach((prgData: any) => {\n if (prgData.children && prgData.children.length) {\n finalPlaylistData.push(prgData)\n }\n })\n if (finalPlaylistData.length) {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(finalPlaylistData, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n } else {\n this.emptyResponse.emit(true)\n }\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n } catch (error) {\n this.emptyResponse.emit(true)\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n\n async fetchPlaylistReadData(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.playlistRead && Object.keys(strip.request.playlistRead).length) {\n let originalFilters: any = [];\n if (strip.request &&\n strip.request.playlistRead &&\n strip.request.playlistRead.type) {\n strip.request.apiUrl = this.getFullUrl(strip.request.apiUrl, strip.request.playlistRead.type);\n }\n if (strip.tabs && strip.tabs.length) {\n // TODO: Have to extract requestRequired to outer level of tabs config\n const firstTab = strip.tabs[0];\n if (firstTab.requestRequired) {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const currentTabFromMap = (allTabs && allTabs.length && allTabs[0]) as NsContentStripWithTabs.IContentStripTab;\n\n this.getTabDataByNewReqPlaylistReadContent(strip, 0, currentTabFromMap, calculateParentStatus);\n }\n }\n\n } else {\n try {\n const response = await this.getRequestMethod(strip, strip.request.playlistRead, strip.request.apiUrl, calculateParentStatus);\n \n if (response && response.results.result.content) { \n let content = response.results.result.content\n if(strip.key === 'providers'){\n let featuredProviders : any = JSON.parse(content.featuredProviders|| '[]')\n this.processStrip(\n strip,\n this.transformAllContentsToWidgets(featuredProviders, strip),\n 'done',\n calculateParentStatus,\n response,\n );\n } else {\n this.processStrip(\n strip,\n this.transformAllContentsToWidgets(content, strip),\n 'done',\n calculateParentStatus,\n response,\n );\n }\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n } catch (error) {\n this.emptyResponse.emit(true)\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n }\n async getTabDataByNewReqPlaylistReadContent(\n strip: NsContentStripWithTabs.IContentStripUnit,\n tabIndex: number,\n currentTab: NsContentStripWithTabs.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n if (currentTab.request &&\n currentTab.request.playlistRead &&\n currentTab.request.playlistRead.type) {\n currentTab.request.apiUrl = this.getFullUrl(currentTab.request.apiUrl, currentTab.request.playlistRead.type);\n }\n try {\n const response = await this.getRequestMethod(strip, currentTab.request.playlistRead, currentTab.request.apiUrl, calculateParentStatus);\n // if (response && response.results.result.content) { \n // let content = response.results.result.content\n // if(strip.key === 'providers'){\n // let featuredProviders : any = JSON.parse(content.featuredProviders|| '[]')\n // this.processStrip(\n // strip,\n // this.transformAllContentsToWidgets(featuredProviders, strip),\n // 'done',\n // calculateParentStatus,\n // response,\n // );\n // } else {\n // this.processStrip(\n // strip,\n // this.transformAllContentsToWidgets(content, strip),\n // 'done',\n // calculateParentStatus,\n // response,\n // );\n // }\n // } else {\n // this.processStrip(strip, [], 'error', calculateParentStatus, null);\n // this.emptyResponse.emit(true)\n // }\n if (response.results && response.results.result) {\n let content = response.results.result.content\n let widgets = []\n if(currentTab.value === 'providers'){\n let featuredProviders : any = JSON.parse(content.featuredProviders|| '[]')\n widgets = this.transformAllTabContentsToWidgets(featuredProviders, currentTab)\n } else {\n widgets = this.transformAllTabContentsToWidgets(content, currentTab)\n }\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets,\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(\n strip,\n widgets,\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n tabResults // tabResults as widgets\n );\n } else {\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(strip, [], 'error', calculateParentStatus, null, tabResults);\n }\n } catch (error) {\n console.error('Error:', error)\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs && this.stripsResultDataMap[strip.key].tabs.length) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n this.processStrip(strip, [], 'error', calculateParentStatus, null, tabResults)\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n }\n }\n\n async fetchCiosContentData(strip: NsContentStripWithTabs.IContentStripUnit, calculateParentStatus = true) {\n if (strip && strip.request.ciosContent && Object.keys(strip.request.ciosContent).length) {\n if (strip.tabs && strip.tabs.length) {\n // TODO: Have to extract requestRequired to outer level of tabs config\n const firstTab = strip.tabs[0];\n if (firstTab.requestRequired && firstTab.value === 'extCourse') {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const currentTabFromMap = (allTabs && allTabs.length && allTabs[0]) as NsContentStripWithTabs.IContentStripTab;\n this.getTabDataByCiosSearch(strip, 0, currentTabFromMap, calculateParentStatus);\n }\n }\n if (firstTab.requestRequired && firstTab.value === 'providers') {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const currentTabFromMap = (allTabs && allTabs.length && allTabs[0]) as NsContentStripWithTabs.IContentStripTab;\n this.getTabDataByNewReqPlaylistReadContent(strip, 0, currentTabFromMap, calculateParentStatus);\n }\n }\n } else {\n try {\n const response = await this.postRequestMethod(strip, strip.request.ciosContent, strip.request.apiUrl, calculateParentStatus);\n // console.log('calling after - response, ', response)\n if (response && response.results) {\n // console.log('calling after-- ')\n if (response.results.data && response.results.data.length) {\n let extContentData: any = response.results.data\n if (extContentData.length) {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(extContentData, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n } else {\n this.emptyResponse.emit(true)\n }\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n \n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n this.emptyResponse.emit(true)\n }\n } catch (error) {\n this.emptyResponse.emit(true)\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n }\n\n async getTabDataByCiosSearch(\n strip: NsContentStripWithTabs.IContentStripUnit,\n tabIndex: number,\n _currentTab: NsContentStripWithTabs.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n try {\n const response = await this.contentSvc.postApiMethod(strip.request.apiUrl,strip.request.ciosContent).toPromise();;\n if (response && response.data && response.data.length) {\n const widgets = this.transformContentsToWidgets(response.data, strip);\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets,\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(\n strip,\n widgets,\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n tabResults // tabResults as widgets\n );\n } else {\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(strip, [], 'error', calculateParentStatus, null, tabResults);\n }\n } catch (error) {\n console.error('Error:', error)\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs && this.stripsResultDataMap[strip.key].tabs.length) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n this.processStrip(strip, [], 'error', calculateParentStatus, null, tabResults)\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n }\n }\n\n}\n","<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 min-height-40 \" [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\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 [ngClass]=\"stripsResultDataMap[key]?.tabsType ? stripsResultDataMap[key]?.tabsType : ''\"\n (selectedTabChange)=\"tabClicked($event, stripsResultDataMap[key], key)\">\n <mat-tab label=\"{{tab?.label}}\" *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;\">\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 <div>\n <!-- <ng-container [ngTemplateOutlet]=\"loader\" *ngIf=\"stripsResultDataMap[key]?.showOnLoader\">\n </ng-container> -->\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab.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 <div *ngIf=\"((tab?.fetchTabStatus && tab?.fetchTabStatus === 'done') &&\n (!tab?.widgets || !tab?.widgets?.length))\">\n <ng-container *ngIf=\"tab?.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.nodataMsg, 'home') }}</div>\n </div>\n </ng-template>\n </div>\n <ng-container *ngIf=\"(tab?.fetchTabStatus === 'done' || tab?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.tabLoading\">\n\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [widgetsLength]=\"tab?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of tab?.widgets| slice:0:(tab?.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 *ngIf=\"!stripsResultDataMap[key].tabs || !stripsResultDataMap[key].tabs.length\">\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader\" class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\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 <div class=\"\">\n <sb-uic-horizontal-scroller-v2 [id]=\"key+'-scroller'\" [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\" [widgetsLength]=\"stripsResultDataMap[key]?.widgets?.length\" [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.widgets| slice:0:(stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <!-- <ng-container *ngIf=\"widget.widgetData.context.pageSection === 'continueLearning' \"> -->\n <!-- <ng-container *ngIf=\"widget.widgetData.content.completionPercentage !== 100\"\n [sbUiResolverWidget]=\"widget\"></ng-container> -->\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n <!-- </ng-container> -->\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { HorizontalScrollerV2Module } from '../horizontal-scroller-v2/horizontal-scroller-v2.module';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ContentStripWithTabsLibComponent } from './content-strip-with-tabs-lib.component';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { SbUiResolverModule } from '@sunbird-cb/resolver-v2';\n\n// tslint:disable-next-line:function-name\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http);\n}\n\n@NgModule({\n declarations: [ContentStripWithTabsLibComponent],\n imports: [\n SbUiResolverModule,\n CommonModule,\n RouterModule,\n HorizontalScrollerV2Module,\n MatProgressSpinnerModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatListModule,\n MatSidenavModule,\n MatCardModule,\n MatExpansionModule,\n MatRadioModule,\n MatChipsModule,\n MatInputModule,\n MatFormFieldModule,\n MatDialogModule,\n MatSnackBarModule,\n MatSelectModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressSpinnerModule,\n MatButtonToggleModule,\n MatTabsModule,\n MatAutocompleteModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n ],\n entryComponents: [ContentStripWithTabsLibComponent],\n exports: [ContentStripWithTabsLibComponent],\n})\nexport class ContentStripWithTabsLibModule { }\n","import { BreakpointObserver } from '@angular/cdk/layout'\r\nimport { Directive, HostBinding, Input, OnChanges, OnDestroy } from '@angular/core'\r\nimport { Subscription } from 'rxjs'\r\nimport { distinctUntilChanged } from 'rxjs/operators'\r\n\r\nexport interface IImageResponsiveUnit {\r\n [key: string]: string\r\n}\r\n\r\nconst customBreakPoints = {\r\n xs: '(max-width: 450px)',\r\n s: '(min-width: 450.001px) and (max-width: 768px)',\r\n m: '(min-width: 768.001px) and (max-width: 1024px)',\r\n l: '(min-width: 1024.001px) and (max-width: 1400px)',\r\n xl: '(min-width: 1400.001px) and (max-width: 1920px)',\r\n xxl: '(min-width: 1920.001px)',\r\n}\r\n\r\n@Directive({\r\n selector: '[wsUtilsImageResponsive]',\r\n})\r\nexport class ImageResponsiveDirective implements OnChanges, OnDestroy {\r\n\r\n @Input() src: IImageResponsiveUnit | null = null\r\n @HostBinding('src') srcBindUrl = ''\r\n\r\n currentSize = ''\r\n breakpointSubscription: Subscription | null = null\r\n constructor(\r\n private breakpointObserver: BreakpointObserver,\r\n ) {\r\n this.breakpointSubscription = this.breakpointObserver\r\n .observe([\r\n customBreakPoints.xs,\r\n customBreakPoints.s,\r\n customBreakPoints.m,\r\n customBreakPoints.l,\r\n customBreakPoints.xl,\r\n customBreakPoints.xxl,\r\n ])\r\n .pipe(distinctUntilChanged())\r\n .subscribe(data => {\r\n // //console.log('data >', data)\r\n if (data.breakpoints[customBreakPoints.xxl]) {\r\n this.currentSize = 'xxl'\r\n } else if (data.breakpoints[customBreakPoints.xl]) {\r\n this.currentSize = 'xl'\r\n } else if (data.breakpoints[customBreakPoints.l]) {\r\n this.currentSize = 'l'\r\n } else if (data.breakpoints[customBreakPoints.m]) {\r\n this.currentSize = 'm'\r\n } else if (data.breakpoints[customBreakPoints.s]) {\r\n this.currentSize = 's'\r\n } else if (data.breakpoints[customBreakPoints.xs]) {\r\n this.currentSize = 'xs'\r\n } else {\r\n this.currentSize = 'xl'\r\n }\r\n this.setSrc()\r\n })\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.src) {\r\n this.setSrc()\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.breakpointSubscription) {\r\n this.breakpointSubscription.unsubscribe()\r\n }\r\n }\r\n\r\n private setSrc() {\r\n if (\r\n this.currentSize &&\r\n this.src &&\r\n this.src[this.currentSize]\r\n ) {\r\n this.srcBindUrl = this.src[this.currentSize]\r\n }\r\n }\r\n\r\n}\r\n","import { Component, HostBinding, Input, OnDestroy, OnInit } from '@angular/core'\nimport { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver-v2'\nimport { ICarousel, ICarouselStyle } from './sliders.model'\nimport { Subscription, interval } from 'rxjs'\nimport { EventService, WsEvents, ValueService } from '@sunbird-cb/utils-v2'\n\n@Component({\n selector: 'sb-uic-sliders',\n templateUrl: './sliders.component.html',\n styleUrls: ['./sliders.component.scss'],\n})\nexport class SlidersLibComponent extends WidgetBaseComponent\n implements OnInit, OnDestroy, NsWidgetResolver.IWidgetData<ICarousel[]> {\n @Input() widgetData!: ICarousel[]\n @Input() styleData!: ICarouselStyle\n @Input() title: any = ''\n @Input() type: any\n @HostBinding('id')\n public id = `banner_${Math.random()}`\n private defaultMenuSubscribe: Subscription | null = null\n isLtMedium$ = this.valueSvc.isLtMedium$\n currentIndex = 0\n slideInterval: Subscription | null = null\n isMobile = false\n\n constructor(\n private events: EventService,\n private valueSvc: ValueService\n ) {\n super()\n }\n\n ngOnInit() {\n this.reInitiateSlideInterval()\n this.defaultMenuSubscribe = this.isLtMedium$.subscribe((isLtMedium: boolean) => {\n this.isMobile = isLtMedium\n })\n }\n reInitiateSlideInterval() {\n if (this.widgetData && this.widgetData.length > 1) {\n try {\n if (this.slideInterval) {\n this.slideInterval.unsubscribe()\n }\n } catch (e) {\n } finally {\n this.slideInterval = interval(8000).subscribe(() => {\n if (this.currentIndex === this.widgetData.length - 1) {\n this.currentIndex = 0\n } else {\n this.currentIndex += 1\n }\n })\n }\n }\n }\n slideTo(index: number) {\n if (index >= 0 && index < this.widgetData.length) {\n this.currentIndex = index\n } else if (index === this.widgetData.length) {\n this.currentIndex = 0\n } else {\n this.currentIndex = this.widgetData.length + index\n }\n this.reInitiateSlideInterval()\n }\n\n get isOpenInNewTab() {\n const currentData = this.widgetData[this.currentIndex]\n if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {\n return true\n } return false\n }\n\n openInNewTab() {\n const currentData = this.widgetData[this.currentIndex]\n if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {\n window.open(currentData.redirectUrl)\n }\n }\n raiseTelemetry(bannerUrl: string | undefined) {\n this.openInNewTab()\n const path = window.location.pathname.replace('/', '')\n const url = path + window.location.search\n\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'banner',\n },\n {\n pageUrl: url,\n bannerRedirectUrl: bannerUrl,\n },\n {\n pageIdExt: 'banner',\n module: WsEvents.EnumTelemetrymodules.CONTENT,\n })\n }\n\n ngOnDestroy() {\n if (this.defaultMenuSubscribe) {\n this.defaultMenuSubscribe.unsubscribe()\n }\n }\n}\n","<div class=\"banner-container {{isMobile? styleData?.responsive?.bannerMetaClass : styleData?.bannerMetaClass}} {{type === 'atictitop' ? 'atictitopbanner' : ''}}\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length > 1\" [style.height]=\"isMobile? styleData?.responsive?.customHeight : styleData?.customHeight\"\n [ngStyle]=\"{'border-radius': styleData?.borderRadius || '12px'}\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n class=\"banner-overlay {{widgetData[currentIndex] && widgetData[currentIndex].redirectUrl ? '' : 'pointer-events-none'}}\"\n [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\"\n [ngClass]=\"{'cursor-auto': !widgetData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" \n *ngFor=\"let slide of widgetData; let i = index\" \n [hidden]=\"i !== currentIndex\" \n [ngStyle]=\"{\n 'border-width': isMobile? styleData?.responsive?.imageBorderWidth : styleData?.imageBorderWidth,\n 'border-color': isMobile? styleData?.responsive?.imageBorderColor : styleData?.imageBorderColor,\n 'border-style': isMobile? styleData?.responsive?.imageBorderStyle: styleData?.imageBorderStyle}\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"{{type === 'atictitopbanner' ? 'banner-image' : 'bannerimage-mdo'}}\" />\n </div>\n </a>\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\"\n class=\"banner-title text-truncate {{widgetData[currentIndex] && widgetData[currentIndex].redirectUrl ? '' : 'pointer-events-none'}}\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n <div class=\"navigation {{isMobile? styleData?.responsive?.arrowsPlacement : styleData?.arrowsPlacement}}\" \n *ngIf=\"isMobile && styleData?.responsive?.navigationArrows !== 'hidden' || !isMobile && styleData?.navigationArrows !== 'hidden'\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </div>\n</div>\n<div class=\"banner-container-solo {{type === 'atictitop' ? 'atictitopbanner' : ''}}\" [style.height]=\"isMobile? styleData?.responsive?.customHeight : styleData?.customHeight\" *ngIf=\"widgetData?.length == 1\">\n <img i18n-alt alt=\"Page Banner\" width=\"100%\" height=\"100%\" [src]=\"widgetData[0].banners\" wsUtilsImageResponsive class=\"banner-image-solo\" />\n</div>\n<!-- <div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [queryParams]=\"widgetData[currentIndex].queryParams || {}\"\n [routerLink]=\"!isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\" class=\"banner-overlay\"\n [ngClass]=\"{ 'cursor-auto': !widgetData[currentIndex].redirectUrl }\"></a>\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n <div class=\"banner-meta\">\n <a [routerLink]=\"!isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n <button *ngIf=\"widgetData?.length > 1\" class=\"prev\" aria-label=\"Previous slide\" (click)=\"slideTo(currentIndex - 1)\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\">&#10094;</a>\n </button>\n <button *ngIf=\"widgetData?.length > 1\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\" aria-label=\"Next slide\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\">&#10095;</a>\n </button>\n\n</div> -->\n<ng-container *ngIf=\"!widgetData?.length\">\n <div class=\"slider default-slider h-full\">\n <div class=\"relative h-full\">\n <img class=\"h-full\" src=\"assets/icons/home/default-slider-image.svg\" alt=\"\">\n <div class=\"default-title rounded-full\">\n <p class=\"mat-h1\">{{title}}</p>\n </div>\n </div>\n </div>\n</ng-container>\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ImageResponsiveDirective } from './image-responsive.directive'\r\n\r\n@NgModule({\r\n declarations: [ImageResponsiveDirective],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [ImageResponsiveDirective],\r\n})\r\nexport class ImageResponsiveModule { }\r\n","import { Directive, OnChanges, Input, HostBinding, HostListener } from '@angular/core'\r\n\r\n@Directive({\r\n selector: '[wsUtilsNavigation]',\r\n})\r\nexport class NavigationDirective implements OnChanges {\r\n @Input() wsUtilsNavigation = ''\r\n @Input() openInNewTab = false\r\n @Input()\r\n @HostBinding('attr.routerLink') routeUrl = ''\r\n @HostListener('mousedown', ['$event']) onMouseEnter($event: Event) {\r\n if (this.openInNewTab || this.wsUtilsNavigation.includes('mailto')) {\r\n $event.preventDefault()\r\n $event.stopPropagation()\r\n this.routeUrl = './'\r\n window.open(this.wsUtilsNavigation)\r\n }\r\n }\r\n constructor() { }\r\n\r\n ngOnChanges() {\r\n if (this.openInNewTab || this.wsUtilsNavigation.includes('mailto')) {\r\n this.routeUrl = './'\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { NavigationDirective } from './navigation.directive'\r\n\r\n@NgModule({\r\n declarations: [NavigationDirective],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [NavigationDirective],\r\n})\r\nexport class NavigationModule { }\r\n","import { NgModule, Injectable } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { SlidersLibComponent } from './sliders.component'\nimport { RouterModule } from '@angular/router'\nimport { ImageResponsiveModule } from './../../_directives/image-responsive/image-responsive.module'\n// import { HAMMER_GESTURE_CONFIG, HammerGestureConfig } from '@angular/platform-browser'\n/* tslint:disable */\n// import Hammer from 'hammerjs'\nimport { NavigationModule } from '../../_directives/navigation/navigation.module'\n/* tslint:enable */\n@Injectable()\n// export class MyHammerConfig extends HammerGestureConfig {\n// buildHammer(element: HTMLElement) {\n// const mc = new Hammer(element, {\n// touchAction: 'pan-y',\n// })\n// return mc\n// }\n// }\n\n// tslint:disable-next-line: max-classes-per-file\n@NgModule({\n declarations: [SlidersLibComponent],\n imports: [\n CommonModule,\n RouterModule,\n NavigationModule,\n ImageResponsiveModule,\n ],\n exports: [SlidersLibComponent],\n entryComponents: [SlidersLibComponent],\n providers: [\n // {\n // provide: HAMMER_GESTURE_CONFIG,\n // useClass: MyHammerConfig,\n // },\n ],\n})\nexport class SlidersLibModule { }\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nconst API_END_POINTS = {\n PROVIDER_INSIGHTS: `/apis/proxies/v8/microsite/read/insights`,\n TRAINING_DETAILS: `apis/proxies/v8/sunbirdigot/search`,\n ANNOUNCEMENTS_DETAILS: `apis/proxies/v8/announcements/v1/search`,\n LEARNERS: `apis/proxies/v8/halloffame/top/learners`,\n LEADERBOARD: 'apis/proxies/v8/halloffame/v1/mdoleaderboard',\n LEADERBOARD_USERS: `apis/proxies/v8/halloffame/v1/userleaderboard`,\n NLW_LEADERBOARD: `apis/proxies/v8/national/learning/week/insights`,\n INSIGHTS: `apis/proxies/v8/read/user/insights`,\n USER_PROGRESS: `apis/proxies/v8/halloffame/v1/userleaderboard`,\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InsiteDataService {\n\n constructor(\n private http: HttpClient\n ) {}\n fetchSearchData(request: any): Observable<any> {\n return this.http.post<any>(API_END_POINTS.PROVIDER_INSIGHTS, request)\n }\n\n fetchAnnouncementsData(request: any): Observable<any> {\n return this.http.post<any>(API_END_POINTS.ANNOUNCEMENTS_DETAILS, request)\n }\n\n\n fetchTrainingDetails(request: any): Observable<any> {\n return this.http.post<any>(API_END_POINTS.TRAINING_DETAILS, request)\n }\n\n fetchLearner(channelId: any): Observable<any> {\n return this.http.get(`${API_END_POINTS.LEARNERS}/${channelId}`)\n }\n\n fetchLeaderboard() {\n return this.http.get(`${API_END_POINTS.LEADERBOARD}`)\n }\n\n fetchMdoUsers(orgId: any): Observable<any> {\n return this.http.get(`${API_END_POINTS.LEADERBOARD_USERS}/${orgId}`)\n }\n\n fetchNwlStats() {\n return this.http.get(`${API_END_POINTS.NLW_LEADERBOARD}`)\n }\n\n fetchInsightsData(payload: any) {\n const result = this.http.post(API_END_POINTS.INSIGHTS, payload)\n return result\n }\n\n fetchUserProgress() {\n return this.http.get(`${API_END_POINTS.USER_PROGRESS}`)\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core'\n\n@Component({\n selector: 'sb-uic-skeleton-loader',\n templateUrl: './skeleton-loader-lib.component.html',\n styleUrls: ['./skeleton-loader-lib.component.scss'],\n})\nexport class SkeletonLoaderLibComponent implements OnInit {\n\n @Input() bindingClass = ''\n @Input() height = ''\n @Input() width = ''\n constructor() { }\n\n ngOnInit() {\n }\n}\n","<div [ngClass]=\"bindingClass\" class=\"skeleton-box\" [style.height]=\"height\" [style.width]=\"width\"></div>","import { Component, Input, OnInit } from '@angular/core';\nimport { InsiteDataService } from '../../_services/insite-data.service';\n\n@Component({\n selector: 'sb-uic-data-points',\n templateUrl: './data-points.component.html',\n styleUrls: ['./data-points.component.css']\n})\nexport class DataPointsComponent implements OnInit {\n @Input() objectData: any\n @Input() layoutType: string = ''\n @Input() fetchDataFromApi: boolean = false\n @Input() providerId : any = ''\n @Input() pageLayout: any = ''\n @Input() title: any\n customArray: any[][] = []\n isDataLoading: boolean = false\n apiResults: any\n \n constructor(public insightSvc: InsiteDataService) { }\n\n ngOnInit() {\n if (this.objectData && this.layoutType === 'gridLayout') {\n this.customArray = this.createCustomArray(this.objectData.metrics)\n }\n if(this.fetchDataFromApi) {\n this.isDataLoading = true\n if (this.pageLayout === 'nlw') {\n this.getStats()\n } else {\n this.getInsiteData()\n }\n }\n } \n\n createCustomArray(arr: any[]): any[][] {\n const nByn: any[][] = []\n for (let i = 0; i < arr.length; i += this.objectData.dataColSpan) {\n nByn.push(arr.slice(i, i + this.objectData.dataColSpan))\n }\n return nByn \n }\n\n getInsiteData(){\n let request: any = {}\n request = {\n \"request\": {\n \"filters\": {\n \"organisations\": [\n this.providerId\n ]\n }\n }\n }\n if (this.pageLayout && this.pageLayout === 'mdo') {\n request = {\n \"request\": {\n \"filters\": {\n \"requestType\": \"MDO_INSIGHT\",\n \"organisations\": [\n this.providerId\n ]\n }\n }\n }\n }\n this.insightSvc.fetchSearchData(request).subscribe((res: any)=> {\n if(res && res.result && res.result.response && res.result.response.nudges && res.result.response.nudges.length) {\n res.result.response.nudges.forEach((nudgeData: any) => {\n if(this.providerId && this.providerId === nudgeData.orgId) {\n this.objectData = nudgeData.data\n }\n })\n }\n this.isDataLoading = false\n })\n\n }\n\n getStats() {\n this.insightSvc.fetchNwlStats().subscribe((res: any) => {\n if(res && res.result && res.result.data) {\n this.objectData = res.result.data\n }\n this.isDataLoading = false\n }, error => {\n console.log(error)\n this.isDataLoading = false\n })\n }\n\n converToIndianSystem(value: any) {\n if (value) {\n let numStr = value.toString()\n let [integerPart, decimalPart] = numStr.split('.')\n let lastThree = integerPart.slice(-3);\n let otherNumbers = integerPart.slice(0, -3);\n if (otherNumbers !== '') {\n lastThree = ',' + lastThree;\n }\n let formattedIntegerPart = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, ',') + lastThree;\n const result = decimalPart ? `${formattedIntegerPart}.${decimalPart.substr(0,2)}` : formattedIntegerPart;\n return result\n }\n }\n}\n","<div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'multipleRows' && !isDataLoading\">\n <div *ngFor=\"let obj of objectData; let last = last\" class=\"\">\n <div class=\"element-div\" [ngClass]=\"{'linebreak': obj?.linebreak && !last}\">\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <img class=\"objIcon\" [src]=\"obj.icon\" [style.color]=\"obj?.iconColor\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"objHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{obj.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"objDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full pl-5 margin-top-l\" *ngIf=\"layoutType === 'multipleRows-V2' && !isDataLoading\">\n <!-- <div class=\"logodiv margin-bottom-s\">\n <img alt=\"Application Logo\" class=\"logoimg\" src=\"/assets/instances/eagle/app_logos/KarmayogiBharat_Logo_Horizontal.svg\">\n </div> -->\n <div *ngFor=\"let obj of objectData; let i = index\">\n <div class=\"flex flex-row gap-3 {{(i+1 === objectData.length ? '' : 'pb-5')}}\">\n <div class=\"v2-icons-div\">\n <div class=\"v2-icon-contaier\"\n [style.background]=\"obj?.iconBackgroupColorV2\"\n [style.borderColor]=\"obj?.valueColorV2\">\n <img class=\"v2-objIcon\" [src]=\"obj.icon\" />\n </div>\n </div>\n <div class=\"v2-content-div\">\n <div class=\"flex flex-col\">\n <div class=\"v2-value\" [style.color]=\"obj?.valueColorV2\" *ngIf=\"!(obj && obj?.value)\">0</div>\n <div class=\"v2-value\" [style.color]=\"obj?.valueColorV2\">\n {{converToIndianSystem(obj?.value)}}\n </div>\n <div class=\"v2-label\" [style.color]=\"obj?.labelColorV2\">\n {{obj?.label}}\n </div>\n <div class=\"flex flex-row dot-container\" *ngIf=\"i+1 !== objectData?.length\">\n <div class=\"v2-dot\"\n [style.background]=\"obj?.valueColorV2\"\n [style.borderColor]=\"obj?.labelColorV2\"></div>\n <div class=\"v2-border\" [style.background]=\"obj?.labelColorV2\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleRow-v2' && !isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div flex-item\" [style.background]=\"obj?.backgroundV2\" >\n <div class=\"flex flex-row gap-3\">\n <div class=\"mob-image-container-v2\" [style.borderColor]=\"obj?.valueColorV2\">\n <img [style.color]=\"obj?.iconColor\" class=\"mobjIcon-v2\" [src]=\"obj.icon\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColorMobV2\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColorMobV2\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{converToIndianSystem(obj?.value)}}\n </div>\n <div [style.color]=\"obj?.labelColorV2\" class=\"mobjDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleRow' && !isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\" [style.background]=\"obj?.background\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"mobjIcon\" [src]=\"obj.icon\">\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n {{obj?.value | number: obj.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"w-full\" *ngIf=\"layoutType === 'gridLayout'\">\n <div class=\"top-container\">\n <div class=\"flex-container\" *ngFor=\"let chunk of customArray\">\n <div *ngFor=\"let item of chunk\">\n <div class=\"flex-item\">\n <div class=\"flex flex-row gap-5 infra-element-div\">\n <div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\" *ngIf=\"!(item && item.value)\">0</div>\n <div [style.color]=\"item?.valueColor\" class=\"infra-objHeader\" *ngIf=\"(item && item.value)\">\n {{item?.value | number: item.value % 1 === 0 ? '1.0-0' : '1.1-2'}}\n </div>\n <div [style.color]=\"item?.labelColor\" class=\"custom-opacity infra-objDescription padding-top-s\">{{item?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div> \n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'singleFlexeRow' && !isDataLoading\">\n <div class=\"flex space-around\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"singleFlexeRow-div singleFlexeRow flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"singleFlexeRowIcon\" [src]=\"obj.icon\">\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n {{converToIndianSystem(obj?.value)}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"pageLayout === 'nlw' && !isDataLoading\">\n <div class=\"stats-header\">\n <div class=\"flex items-center justify-center stats-title\">\n <span class=\"my-arrow\">&#10094;</span>\n <span class=\"my-arrow less-opacity1\">&#10094;</span>\n <span class=\"my-arrow less-opacity2\">&#10094;</span>\n <span class=\"px-4\">{{title}}</span>\n <span class=\"my-arrow less-opacity2\">&#10095;</span>\n <span class=\"my-arrow less-opacity1\">&#10095;</span>\n <span class=\"my-arrow\">&#10095;</span>\n </div>\n </div>\n <div class=\"nlw-status\" *ngIf=\"layoutType === 'nlwRow'\">\n <div class=\"flex space-around pt-5\">\n <div *ngFor=\"let obj of objectData; index as i\" class=\"flex-container\">\n <div class=\"nlw-div singleFlexeRow flex-item {{i === 0 ? '' : 'divider'}} \">\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"singleFlexeRowIcon\" [src]=\"obj.icon\">\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n {{converToIndianSystem(obj?.value)}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"nlw-status-mob\" *ngIf=\"layoutType === 'nlwCol'\">\n <div *ngFor=\"let obj of objectData; index as i\" class=\"flex-container\">\n <div class=\"nlw-div singleFlexeRow flex-item {{i === 0 ? '' : 'divider'}} \">\n <div class=\"flex flex-row gap-3\">\n <div>\n <img [style.color]=\"obj?.iconColor\" class=\"singleFlexeRowIcon\" [src]=\"obj.icon\">\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">0</div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n {{converToIndianSystem(obj?.value)}}\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">{{obj?.label}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<!-- skeleton loaders -->\n\n<ng-container>\n <div class=\"w-full metrics-web customdiv\" *ngIf=\"layoutType === 'multipleRows-V2' && isDataLoading\">\n <div *ngFor=\"let obj of [1,2,3,4]l let i = index\">\n <div class=\"flex flex-row gap-4 {{(i+1 === objectData.length ? '' : 'pb-5')}}\">\n <div class=\"v2-icons-div\">\n <div class=\"v2-icon-contaier\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'55px'\"\n [height]=\"'55px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"v2-content-div\">\n <div class=\"flex flex-col\">\n <div class=\"v2-value\" [style.color]=\"obj?.valueColor\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"v2-label\" [style.color]=\"obj?.labelColor\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div> \n </div>\n </div>\n</ng-container>\n\n<ng-container>\n <div class=\"w-full metrics-web customdiv\" *ngIf=\"layoutType === 'multipleRows' && isDataLoading\">\n <div *ngFor=\"let obj of [0,1,2,3]\" class=\"\">\n <div class=\"element-div linebreak\" >\n <div class=\"flex flex-row gap-3 items-top\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-1'\" [width]=\"'150px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-full metrics-web\" *ngIf=\"layoutType === 'singleFlexeRow' && isDataLoading\">\n <div class=\"flex\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"singleFlexeRow-div flex-item\">\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col\">\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"singleFlexeRowHeader pb-2\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"singleFlexeRowDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'20px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-full\" *ngIf=\"layoutType === 'singleRow' && isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div {{obj?.background}} flex-item\" [style.background]=\"obj?.background\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'20px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'18px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"w-full\" *ngIf=\"layoutType === 'singleRow-v2' && isDataLoading\">\n <div class=\"flex gap-4\">\n <div *ngFor=\"let obj of objectData\" class=\"flex-container\">\n <div class=\"melement-div flex-item\" [style.background]=\"obj?.backgroundV2\" >\n <div class=\"flex flex-row gap-3\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"!(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.valueColor\" class=\"mobjHeader pb-1\" *ngIf=\"(obj && obj.value)\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'24px'\" [height]=\"'19px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div [style.color]=\"obj?.labelColor\" class=\"mobjDescription\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'100px'\" [height]=\"'18px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { SkeletonLoaderLibComponent } from './skeleton-loader-lib.component'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [SkeletonLoaderLibComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatDialogModule,\n MatIconModule,\n ],\n exports: [\n SkeletonLoaderLibComponent,\n ],\n entryComponents: [SkeletonLoaderLibComponent],\n})\nexport class SkeletonLoaderLibModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataPointsComponent } from './data-points.component';\nimport { InsiteDataService } from '../../_services/insite-data.service';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\n\n\n\n@NgModule({\n declarations: [DataPointsComponent],\n imports: [\n CommonModule,\n SkeletonLoaderLibModule\n ],\n exports: [DataPointsComponent],\n providers:[InsiteDataService]\n})\nexport class DataPointsModule { }\n","import { DatePipe } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'sb-uic-calender-day',\n templateUrl: './calender-day.component.html',\n styleUrls: ['./calender-day.component.scss']\n})\nexport class CalenderDayComponent implements OnInit {\n\n @Input() objectData: any\n @Input() layoutType: any\n @Input() day: any\n @Input() dataLoading: boolean\n @Input() rowId: any\n @Input() eventDate: any\n webDisplayDate: string = \"\"\n mobileDisplayDate: string = \"\"\n currentDate: any = new Date()\n\n constructor(private datePipe: DatePipe) { }\n\n ngOnInit() {\n this.currentDate = this.datePipe.transform(this.currentDate, 'y-MM-dd')\n }\n\n openLink(link: string) {\n window.open(link, \"_blank\")\n }\n\n formatDate(date: any, type: string) {\n let fDate = new Date(date)\n if (type === 'web') {\n return this.datePipe.transform(fDate, 'E, dd LLL')\n }\n if (type === 'mob') {\n return this.datePipe.transform(fDate, 'E dd LLL')\n }\n }\n}\n","<div *ngIf=\"layoutType==='grid' && !dataLoading\">\n <div class=\"p-3 event-day my-3\"\n [style.backgroundColor]=\"objectData?.webBackgroundColor\"\n [style.borderColor]=\"currentDate === eventDate ? objectData?.activeBackgroudColor: ''\">\n \n <div class=\"flex item-top gap-8 {{ day.length ? '' : 'aliginCenter'}}\">\n <div class=\"event-date\">\n <div class=\"currentDay\"\n [style.backgroundColor]=\"currentDate === eventDate ? objectData?.activeBackgroudColor: ''\"\n [style.color]=\"currentDate === eventDate ? objectData?.activeColor: ''\">\n {{formatDate(eventDate, 'web')}}\n </div>\n </div>\n <div class=\"details w-full\" *ngIf=\"day.length\">\n <div class=\"flex p-4 item-center events-list mb-{{day.length === (i+1) ? '0' : '2'}} gap-20\" [style.backgroundColor]=\"objectData?.eventBackgroundColor\"\n *ngFor=\"let event of day; let i = index\" >\n <div>\n <div class=\"flex flex-row item-center gap-10 pb-2\">\n <div class=\"flex item-center gap-1 row1 col1 range-width\">\n <div><mat-icon class=\"icon-web\">schedule</mat-icon> </div>\n <div>{{event.startTime}} to {{event.endTime}}</div>\n </div>\n <div class=\"flex item-center col1 \">{{event.title}}</div>\n </div>\n <div class=\"flex flex-row item-center gap-10\">\n <div class=\"flex item-center gap-1 row1 col1\" *ngIf=\"event.startDate && event.endDate && event.startDate !== event.endDate\">\n <div><mat-icon class=\"icon-web\">date_range</mat-icon> </div>\n <div class=\"upcase\">{{event.startDate}} - {{event.endDate}}</div>\n </div>\n <div class=\"flex item-center col1\">\n <div><mat-icon class=\"icon-web\">location_on</mat-icon> </div>\n <div class=\"flex item-center\">{{event.location}}</div>\n </div>\n </div>\n </div>\n <div class=\"visit-link flex gap-2\"\n *ngIf=\"event?.registrationLink\">\n <div (click)=\"openLink(event?.registrationLink)\">Visit</div>\n <div (click)=\"openLink(event?.registrationLink)\"><mat-icon class=\"visit-icon\">open_in_new</mat-icon> </div>\n </div>\n </div>\n </div>\n <div class=\"details w-full\" *ngIf=\"!day.length\">\n No trainings.\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"layoutType==='row' && !dataLoading\">\n <div class=\"pl-5 pr-5 mb-{{day?.length === (rowId+1) ? '0' : '3'}}\"\n >\n <div class=\"flex item-center gap-4\">\n <div class=\"event-date\">\n <div class=\"flex flex-col\">\n <div> {{formatDate(eventDate, 'mob').split(' ')[0]}}</div>\n <div class=\"mob-currentDay\"\n [style.backgroundColor]=\"currentDate === eventDate ? objectData?.activeBackgroudColor: ''\"\n [style.color]=\"currentDate === eventDate ? objectData?.activeColor: ''\">\n {{formatDate(eventDate, 'mob').split(' ')[1]}}\n </div>\n <div> {{formatDate(eventDate, 'mob').split(' ')[2]}}</div>\n </div>\n </div>\n <div class=\"details w-full\" *ngIf=\"day.length\">\n <div class=\"flex flex-col mob-events-list p-3 mb-{{day.length === (i+1) ? '0' : '2'}}\"\n *ngFor=\"let event of day; let i = index\" [style.backgroundColor]=\"objectData?.eventBackgroundColor\">\n <div>\n <div class=\"flex pb-2\">{{event.title}}</div>\n <div class=\"flex pb-1\">\n <div><mat-icon class=\"mob-icon\">schedule</mat-icon> </div>\n <div>{{event.startTime}} to {{event.endTime}}</div>\n </div>\n <div class=\"flex pb-1\" *ngIf=\"event.startDate && event.endDate && event.startDate !== event.endDate\">\n <div><mat-icon class=\"mob-icon\">date_range</mat-icon> </div>\n <div class=\"upcase\">{{event.startDate}} - {{event.endDate}}</div>\n </div>\n <div class=\"flex\">\n <div><mat-icon class=\"mob-icon\">location_on</mat-icon> </div>\n <div class=\"flex item-center\">{{event.location}}</div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"details w-full p-3 flex no-data\" *ngIf=\"!day.length\" \n [style.backgroundColor]=\"objectData?.mobileBackground\">\n No trainings.\n </div>\n </div> \n </div> \n</div>\n\n<!-- skeleton loaders -->\n<div *ngIf=\"dataLoading\">\n <div *ngIf=\"layoutType==='grid'\">\n <div class=\"hidden md:block\">\n <div class=\"p-3 event-day my-3\"\n [style.backgroundColor]=\"'#FFF'\">\n <div class=\"flex item-top gap-8\">\n <div class=\"event-date\">\n <div class=\"currentDay\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'90px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n </div>\n <div class=\"details w-full\">\n <div class=\"flex p-4 item-center events-list mb-2 gap-20\">\n <div>\n <div class=\"flex flex-row item-center gap-20 pb-2\">\n <div class=\"flex item-center gap-2 row1 col1\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'50px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex item-center col1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> </div>\n </div>\n <div class=\"flex flex-row item-center gap-20 pb-2\">\n <div class=\"flex item-center gap-2 row1 col1\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'50px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex item-center col1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'250px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> </div>\n </div>\n </div>\n <div class=\"visit-link flex gap-2\">\n <div><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"layoutType==='row'\">\n <div class=\"block md:hidden\">\n <div class=\"p-5\" \n [style.backgroundColor]=\"'#FFFFFF'\">\n <div class=\"flex item-center gap-4\">\n <div class=\"event-date\">\n <div class=\"flex flex-col\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'90px'\"></sb-uic-skeleton-loader> \n </div>\n </div>\n <div class=\"details w-full\">\n <div class=\"flex flex-col mob-events-list p-3 mb-2\">\n <div>\n <div class=\"flex pb-2\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'265px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"flex pb-1 gap-2\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'230px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex pb-1 gap-2\">\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'230px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex gap-2\">\n <div><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'30px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex item-center\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'230px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div> \n</div>","import { DatePipe } from '@angular/common';\nimport {\n Component,\n Input,\n OnInit,\n \n} from '@angular/core';\nimport { InsiteDataService } from '../../_services/insite-data.service';\n\n@Component({\n selector: 'sb-uic-calender',\n templateUrl: './calender.component.html',\n styleUrls: ['./calender.component.scss']\n})\nexport class CalenderComponent implements OnInit {\n\n @Input() objectData: any\n @Input() layoutType: any\n @Input() fetchDataFromApi: boolean = false\n @Input() showHeader: boolean = false\n @Input() defaultDays: number = 3\n @Input() providerId: any\n @Input() fullCalendor: boolean = false\n days = []\n trainings: any = {}\n currentMonthAndYear: any\n isDataLoading: boolean = false\n currentDate: any = new Date()\n endDate: any\n startDate: any\n allMonths = [\"January\", \"February\", \"March\",\n \"April\", \"May\", \"June\", \"July\",\n \"August\", \"September\", \"October\",\n \"November\", \"December\"\n ]\n monthsDropdown: any = []\n selectedMonth: any\n constructor(private datePipe: DatePipe, public insightSvc: InsiteDataService) { }\n\n ngOnInit() {\n this.currentMonthAndYear = this.datePipe.transform(this.currentDate, 'MMMM y')\n this.selectedMonth = this.datePipe.transform(this.currentDate, 'LLLL yyyy')\n if (this.fullCalendor) {\n this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth())\n this.getMonthsDropdownData()\n }\n if (!this.fullCalendor) {\n this.days = this.getDays(this.currentDate, +this.defaultDays)\n }\n this.startDate = this.days[0]\n this.endDate = this.days[this.days.length - 1]\n if(this.fetchDataFromApi) {\n this.isDataLoading = true\n this.getInsiteData()\n }\n }\n getInsiteData() {\n let request = {\n \"locale\": [\n \"en\"\n ],\n \"query\": \"\",\n \"request\": {\n \"query\": \"\",\n \"filters\": {\n \"category\": [\n \"Calendar\"\n ],\n \"status\": [\n \"Live\",\n \"Retired\"\n ],\n \"contentType\": \"Event\",\n \"startDate\": {\n \">=\": this.startDate,\n \"<=\": this.endDate\n // \">=\": \"2024-01-15\",\n // \"<\": \"2024-05-31\"\n },\n \"channel\": [this.providerId]\n },\n \"sort_by\": {\n \"lastUpdatedOn\": \"desc\"\n }\n }\n }\n this.insightSvc.fetchTrainingDetails(request).subscribe((res: any)=> {\n if (res && res.result && res.result.Event) {\n res.result.Event.forEach((resp: any) => {\n if (this.trainings[resp.startDate]) {\n let prevData = this.trainings[resp.startDate]\n let location = resp.eventType\n if (resp.location && location !== \"Online\") {\n const jsonResp = JSON.parse(resp.location)\n location = jsonResp['address']\n }\n const formatObject = {\n location: location,\n startTime: this.convertTo12HourFormat(resp.startTime),\n endTime: this.convertTo12HourFormat(resp.endTime),\n title: resp.name,\n startDate: this.formatDate(resp.startDate),\n endDate: this.formatDate(resp.endDate),\n registrationLink: resp.registrationLink,\n }\n prevData.push(formatObject)\n this.trainings[resp.startDate] = prevData\n }\n })\n }\n this.isDataLoading = false\n })\n }\n\n getKeys(obj: any): string[] {\n return Object.keys(obj);\n }\n\n formatDate(date: any) {\n let formatDate = new Date(date)\n return this.datePipe.transform(formatDate, 'E, dd LLL')\n }\n\n convertTo12HourFormat(timeString: string): string {\n const time = timeString.split(\":\")\n let hours = +time[0]\n const minutes = +time[1]\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12\n const strHours = hours < 10 ? '0' + hours : hours.toString()\n const strMinutes = minutes < 10 ? '0' + minutes : minutes.toString()\n return `${strHours}:${strMinutes} ${ampm}`\n }\n\n getDays(cDate: any, counter: number) {\n const days: any = []\n let initDate: any = new Date(cDate)\n initDate = this.datePipe.transform(initDate, 'y-MM-dd')\n days.push(initDate)\n this.trainings[initDate] = []\n while (counter > 0) {\n let myDate: any = new Date(cDate)\n myDate = myDate.setDate(myDate.getDate() + 1)\n cDate = myDate\n myDate = this.datePipe.transform(myDate, 'y-MM-dd')\n days.push(myDate)\n this.trainings[myDate] = []\n counter = counter - 1\n }\n return days\n }\n\n getDaysInMonth(year: number, month: number): Date[] {\n const date = new Date(year, month, 1)\n const days: any = []\n this.trainings = {}\n while (date.getMonth() === month) {\n let myDate: any = new Date(date)\n myDate = this.datePipe.transform(myDate, 'y-MM-dd')\n days.push(myDate)\n this.trainings[myDate] = []\n date.setDate(date.getDate() + 1)\n }\n return days\n }\n\n getMonthsDropdownData() {\n this.allMonths.forEach((month: any) => {\n this.monthsDropdown.push(`${month} ${this.currentDate.getFullYear()}`)\n })\n }\n\n selectMonth(event: any) {\n const selectedMonth: any = new Date(event)\n this.currentDate = selectedMonth\n this.days = []\n this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth())\n this.startDate = this.days[0]\n this.endDate = this.days[this.days.length - 1]\n this.isDataLoading = true\n this.getInsiteData()\n }\n}\n","<div class=\"calendar-header flex flex-row c-padding center gap-2\" *ngIf=\"showHeader\">\n <div class=\"pt-3\">{{ objectData?.title }}:</div>\n <div class=\"choose-month\">\n <mat-form-field class=\"custom-month\">\n <mat-select matNativeControl panelClass=\"custom-select\" [ngModel]=\"selectedMonth\" (ngModelChange)=\"selectMonth($event)\" class=\"month-select\">\n <span *ngFor=\"let month of monthsDropdown\">\n <mat-option [value]=\"month\">{{month}}</mat-option>\n </span>\n </mat-select>\n </mat-form-field>\n </div>\n</div>\n<div *ngIf=\"layoutType==='grid'\">\n <div *ngFor=\"let obj of getKeys(trainings); let i = index\">\n <sb-uic-calender-day [day]=\"trainings[obj]\"\n [layoutType]=\"layoutType\"\n [objectData]=\"objectData\"\n [dataLoading]=\"isDataLoading\"\n [eventDate]=\"obj\"\n [rowId]=\"i\">\n </sb-uic-calender-day>\n </div> \n</div>\n<div *ngIf=\"layoutType==='row'\">\n <div *ngFor=\"let obj of getKeys(trainings); let j = index\">\n <sb-uic-calender-day [day]=\"trainings[obj]\"\n [layoutType]=\"layoutType\"\n [objectData]=\"objectData\"\n [dataLoading]=\"isDataLoading\"\n [eventDate]=\"obj\"\n [rowId]=\"j\">\n </sb-uic-calender-day>\n </div>\n</div>","import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { CalenderComponent } from './calender.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { CalenderDayComponent } from './calender-day/calender-day.component';\nimport { InsiteDataService } from '../../_services/insite-data.service';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FormsModule,\n ReactiveFormsModule,\n MatSelectModule,\n SkeletonLoaderLibModule\n ],\n declarations: [CalenderComponent, CalenderDayComponent],\n exports: [CalenderComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n providers:[DatePipe, InsiteDataService],\n})\nexport class CalenderModule {}","import { Injectable } from '@angular/core';\nimport { NsContent } from '../_models/widget-content.model';\nimport { NsContentStripWithTabs } from '../_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model';\nimport { NsCommonStrip } from '../_common/common-strip/common-strip.model'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonMethodsService {\n\n constructor() { }\n\n transformContentsToWidgets(\n contents: NsContent.IContent[],\n strip: NsContentStripWithTabs.IContentStripUnit | NsCommonStrip.ICommonStripUnit,\n ) {\n return (contents || []).map((content, idx) => (\n content ? {\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n ...(content.batch && { batch: content.batch }),\n cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n context: { pageSection: strip.key, position: idx },\n intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,\n deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,\n contentTags: strip.stripConfig && strip.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'cardContent',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n transformSkeletonToWidgets(\n strip: any\n ) {\n return [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10].map(_content => ({\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n cardSubType: strip.loaderConfig && strip.loaderConfig.cardSubType || 'card-standard-skeleton',\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n },\n }));\n }\n\n handleCapitalize(str: string, type?: string): string {\n let returnValue = ''\n if (str) {\n if (type === 'name') {\n returnValue = str.split(' ').map(_str => {\n return _str.charAt(0).toUpperCase() + _str.slice(1)\n }).join(' ')\n } else {\n\n returnValue = str && (str.charAt(0).toUpperCase() + str.slice(1))\n }\n }\n return returnValue\n }\n}\n","import { Component, OnInit, Input, OnDestroy, HostBinding, Inject } from '@angular/core';\nimport { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver-v2';\nimport { NsCommonStrip } from './common-strip.model';\n// import { HttpClient } from '@angular/common/http'\nimport { WidgetContentService } from '../../_services/widget-content.service';\nimport { NsContent } from '../../_models/widget-content.model';\nimport { MultilingualTranslationsService } from '../../_services/multilingual-translations.service';\nimport {\n TFetchStatus,\n LoggerService,\n EventService,\n ConfigurationsService,\n UtilityService,\n} from '@sunbird-cb/utils-v2';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { WidgetUserService } from '../../_services/widget-user.service';\n// import { environment } from 'src/environments/environment'\n// tslint:disable-next-line\nimport * as _ from 'lodash'\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CommonMethodsService } from '../../_services/common-methods.service';\n\n\ninterface IStripUnitCommonData {\n key: string;\n canHideStrip: boolean;\n mode?: string;\n showStrip: boolean;\n disableTranslate: boolean;\n widgets?: NsWidgetResolver.IRenderConfigWithAnyData[];\n stripTitle: string;\n stripTitleLink?: {\n link: {\n queryParams: string\n },\n icon: string,\n queryParams: string\n };\n sliderConfig?: {\n showNavs: boolean,\n showDots: boolean,\n maxWidgets?: number\n cerificateCardMargin?: boolean\n };\n stripConfig: any;\n tabs?: NsCommonStrip.ICommonStripTab[] | undefined;\n stripName?: string;\n stripLogo?: string;\n description?: string;\n stripInfo?: NsCommonStrip.IStripInfo;\n noDataWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n errorWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n showOnNoData: boolean;\n showOnLoader: boolean;\n showOnError: boolean;\n loaderWidgets?: any;\n stripBackground?: string;\n secondaryHeading?: any;\n viewMoreUrl: any;\n}\n\n@Component({\n selector: 'sb-uic-common-strip',\n templateUrl: './common-strip.component.html',\n styleUrls: ['./common-strip.component.scss']\n})\nexport class CommonStripComponent extends WidgetBaseComponent\nimplements\nOnInit,\nOnDestroy,\nNsWidgetResolver.IWidgetData<NsCommonStrip.ICommonStrip> {\n @Input() widgetData!: NsCommonStrip.ICommonStrip;\n @HostBinding('id')\n public id = `ws-strip-miltiple_${Math.random()}`;\n stripsResultDataMap: { [key: string]: IStripUnitCommonData } = {};\n stripsKeyOrder: string[] = [];\n showAccordionData = true;\n showParentLoader = false;\n showParentError = false;\n showParentNoData = false;\n errorDataCount = 0;\n noDataCount = 0;\n successDataCount = 0;\n contentAvailable = true;\n baseUrl = this.configSvc.sitePath || '';\n veifiedKarmayogi = false;\n environment!: any;\n changeEventSubscription: Subscription | null = null;\n defaultMaxWidgets = 12;\n enrollInterval: any;\n todaysEvents: any = [];\n\n constructor(\n @Inject('environment') environment: any,\n private contentSvc: WidgetContentService,\n private loggerSvc: LoggerService,\n private eventSvc: EventService,\n private configSvc: ConfigurationsService,\n public utilitySvc: UtilityService,\n // private http: HttpClient,\n // private searchServSvc: SearchServService,\n private userSvc: WidgetUserService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private commonMethodsSvc: CommonMethodsService\n ) {\n super();\n this.environment = environment\n }\n\n ngOnInit() {\n // const url = window.location.href\n this.initData();\n }\n\n ngOnDestroy() {\n if (this.changeEventSubscription) {\n this.changeEventSubscription.unsubscribe();\n }\n }\n\n showAccordion(key: string) {\n if (this.utilitySvc.isMobile && this.stripsResultDataMap[key].mode === 'accordion') {\n return this.showAccordionData;\n }\n return true;\n }\n\n setHiddenForStrip(key: string) {\n this.stripsResultDataMap[key].showStrip = false;\n sessionStorage.setItem(`cstrip_${key}`, '1');\n }\n private getIfStripHidden(key: string): boolean {\n const storageItem = sessionStorage.getItem(`cstrip_${key}`);\n return Boolean(storageItem !== '1');\n }\n\n private initData() {\n this.stripsKeyOrder = this.widgetData && this.widgetData.strips && this.widgetData.strips.map(strip => strip.key) || [];\n if (this.widgetData.loader && this.widgetData.strips.length) {\n this.showParentLoader = true;\n }\n // null check if in case no strips key in config\n if(this.widgetData && this.widgetData.strips) {\n // Fetch the data\n for (const strip of this.widgetData.strips) {\n this.processStrip(strip, [], 'fetching', false, null);\n if(strip.dataType === 'in-hand' && this.widgetData[strip.dataKey]){\n this.processStrip(\n strip,\n this.commonMethodsSvc.transformContentsToWidgets(this.widgetData[strip.dataKey], strip),\n 'done',\n true,\n strip.viewMoreUrl || '',\n );\n } else {\n if (this.checkForEmptyWidget(strip)) {\n // this.fetchStripFromRequestData(strip, false);\n } else {\n this.processStrip(strip, [], 'done', true, null);\n }\n }\n }\n }\n // Subscription for changes\n const keyAndEvent: { key: string; type: string; from: string }[] = this.widgetData.strips\n .map(strip => ({\n key: strip.key,\n type: (strip.refreshEvent && strip.refreshEvent.eventType) || '',\n from: (strip.refreshEvent && strip.refreshEvent.from.toString()) || '',\n }))\n .filter(({ key, type, from }) => key && type && from);\n const eventTypeSet = new Set(keyAndEvent.map(e => e.type));\n this.changeEventSubscription = this.eventSvc.events$\n .pipe(filter(event => eventTypeSet.has(event.eventType)))\n .subscribe(event => {\n keyAndEvent\n .filter(e => e.type === event.eventType && e.from === event.from)\n .map(e => e.key)\n .forEach(k => this.fetchStripFromKey(k, false));\n });\n }\n\n private fetchStripFromKey(key: string, calculateParentStatus = true) {\n const stripData = this.widgetData.strips.find(strip => strip.key === key);\n if (stripData) {\n // this.fetchStripFromRequestData(stripData, calculateParentStatus);\n }\n }\n\n isStripShowing(data: any) {\n let count = 0;\n if (data && data.key === this.environment.programStripKey && (!data.tabs || !data.tabs.length) &&\n data.stripTitle === this.environment.programStripName && data.widgets.length > 0) {\n data.widgets.forEach((key: any) => {\n if (key && key.widgetData.content.primaryCategory === this.environment.programStripPrimaryCategory) {\n count = count + 1;\n }\n });\n if (count > 0) {\n data.showStrip = true;\n } else {\n data.showStrip = false;\n }\n }\n return data.showStrip;\n }\n\n get isMobile() {\n return this.utilitySvc.isMobile || false;\n }\n\n getdata(data: IStripUnitCommonData) {\n if (data.stripInfo) {\n return data.stripInfo.widget;\n }\n return {};\n\n }\n checkCondition(wData: NsCommonStrip.ICommonStrip, data: IStripUnitCommonData) {\n if (wData.strips[0].stripConfig && wData.strips[0].stripConfig.hideShowAll) {\n return !wData.strips[0].stripConfig.hideShowAll;\n }\n return wData.strips[0].viewMoreUrl && data.widgets && data.widgets.length >= 4;\n }\n checkVisible(data: IStripUnitCommonData) {\n return data.stripInfo && data.stripInfo.visibilityMode === 'visible';\n }\n\n getContineuLearningLenth(data: IStripUnitCommonData) {\n return data.widgets ? data.widgets.length : 0;\n }\n getLength(data: IStripUnitCommonData) {\n if (!data.tabs || !data.tabs.length) {\n return data.widgets ? data.widgets.length : 0;\n } {\n // if tabs are there check if each tab has widgets and get the tab with max widgets\n const tabWithMaxWidgets = data.tabs.reduce(\n (prev, current) => {\n if (!prev.widgets && !current.widgets) {\n return current;\n }\n if (prev.widgets && current.widgets) {\n return (prev.widgets.length > current.widgets.length) ? prev : current;\n }\n if (current.widgets && !prev.widgets) {\n return current;\n }\n if (!current.widgets && prev.widgets) {\n return prev;\n }\n return current;\n // return (prev.widgets && current.widgets && (prev.widgets.length > current.widgets.length) ) ? prev : current\n // tslint:disable-next-line: align\n }, data.tabs[0]);\n // if tabs has atleast 1 widgets then strip will show or else not\n return tabWithMaxWidgets.widgets ? tabWithMaxWidgets.widgets.length : 0;\n }\n }\n \n private async processStrip(\n strip: NsCommonStrip.ICommonStripUnit,\n results: NsWidgetResolver.IRenderConfigWithAnyData[] = [],\n fetchStatus: TFetchStatus,\n calculateParentStatus = true,\n _viewMoreUrl: any,\n tabsResults?: NsCommonStrip.ICommonStripTab[] | undefined,\n // calculateParentStatus is used so that parents' status is not re-calculated if the API is called again coz of filters, etc.\n ) {\n const stripData = {\n viewMoreUrl: strip.viewMoreUrl,\n key: strip.key,\n canHideStrip: Boolean(strip.canHideStrip),\n showStrip: this.getIfStripHidden(strip.key),\n noDataWidget: strip.noDataWidget,\n errorWidget: strip.errorWidget,\n stripInfo: strip.info,\n stripTitle: strip.title,\n stripTitleLink: strip.stripTitleLink,\n dataType: strip.dataType,\n dataKey: strip.dataKey,\n disableTranslate: strip.disableTranslate,\n sliderConfig: strip.sliderConfig,\n tabs: tabsResults ? tabsResults : strip.tabs,\n stripName: strip.name,\n mode: strip.mode,\n stripConfig: strip.stripConfig,\n stripBackground: strip.stripBackground,\n secondaryHeading: strip.secondaryHeading,\n loaderWidgets: strip.loaderWidgets || [],\n widgets:\n fetchStatus === 'done'\n ? [\n ...(strip.preWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ...results,\n ...(strip.postWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ]\n : [],\n showOnNoData: Boolean(\n strip.noDataWidget &&\n !((strip.preWidgets || []).length + results.length + (strip.postWidgets || []).length) &&\n fetchStatus === 'done',\n ),\n showOnLoader: Boolean(strip.loader && fetchStatus === 'fetching'),\n showOnError: Boolean(strip.errorWidget && fetchStatus === 'error'),\n };\n // const stripData = this.stripsResultDataMap[strip.key]\n this.stripsResultDataMap = {\n ...this.stripsResultDataMap,\n [strip.key]: stripData,\n };\n if (!tabsResults) {\n if (\n calculateParentStatus &&\n (fetchStatus === 'done' || fetchStatus === 'error') &&\n stripData.widgets\n ) {\n this.checkParentStatus(fetchStatus, stripData.widgets.length);\n }\n if (calculateParentStatus && !(results && results.length > 0)) {\n this.contentAvailable = false;\n } else if (results && results.length > 0) {\n this.contentAvailable = true;\n }\n } else {\n this.contentAvailable = true;\n }\n }\n\n getSelectedIndex(stripsResultDataMap: any, key: any): number {\n let returnValue = 0;\n if (key === 'cbpPlan') {\n if (stripsResultDataMap.tabs.length) {\n const data = stripsResultDataMap.tabs.filter((ele: any) => ele.value === 'upcoming');\n returnValue = data[0].widgets && data[0].widgets.length > 0 ? 1 : 0;\n }\n }\n return returnValue;\n }\n \n private checkParentStatus(fetchStatus: TFetchStatus, stripWidgetsCount: number): void {\n if (fetchStatus === 'done' && !stripWidgetsCount) {\n this.noDataCount += 1;\n } else if (fetchStatus === 'done' && stripWidgetsCount) {\n this.successDataCount += 1;\n } else if (fetchStatus === 'error') {\n this.errorDataCount += 1;\n }\n const settledCount = this.noDataCount + this.successDataCount + this.errorDataCount;\n const totalCount = this.widgetData.strips.length;\n if (this.successDataCount > 0 && settledCount < totalCount) {\n return;\n }\n this.showParentLoader = settledCount !== totalCount;\n this.showParentNoData =\n this.noDataCount > 0 && this.noDataCount + this.errorDataCount === totalCount;\n this.showParentError = this.errorDataCount === totalCount;\n }\n checkForEmptyWidget(strip: NsCommonStrip.ICommonStripUnit): boolean {\n if (\n strip.request &&\n ((strip.request.api && Object.keys(strip.request.api).length) ||\n (strip.request.search && Object.keys(strip.request.search).length) ||\n (strip.request.searchRegionRecommendation &&\n Object.keys(strip.request.searchRegionRecommendation).length) ||\n (strip.request.searchV6 && Object.keys(strip.request.searchV6).length) ||\n (strip.request.enrollmentList && Object.keys(strip.request.enrollmentList).length) ||\n (strip.request.cbpList && Object.keys(strip.request.cbpList).length) ||\n (strip.request.trendingSearch && Object.keys(strip.request.trendingSearch).length)\n )\n ) {\n return true;\n }\n return false;\n }\n\n public tabClicked(tabEvent: MatTabChangeEvent, stripMap: IStripUnitCommonData, stripKey: string) {\n\n }\n\n translateLabels(label: string, type: any) {\n return this.langtranslations.translateLabel(label, type, '');\n }\n\n identify(index: number, item: any) {\n if (index >= 0) { }\n return item;\n }\n tracker(index: number, item: any) {\n if (index >= 0) { }\n return _.get(item, 'widgetData.content.identifier')\n }\n\n}\n","<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 <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 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1\" [routerLink]=\"stripsResultDataMap[key]?.viewMoreUrl?.path\"\n [queryParams]=\"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\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, stripsResultDataMap[key], key)\">\n <mat-tab label=\"{{tab?.label}}\" *ngFor=\"let tab of stripsResultDataMap[key].tabs; let last = last;\">\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 <div>\n <!-- <ng-container [ngTemplateOutlet]=\"loader\" *ngIf=\"stripsResultDataMap[key]?.showOnLoader\">\n </ng-container> -->\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader ||\n !tab.fetchTabStatus\"\n class=\"text-center my-2\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\"\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 <div *ngIf=\"((tab?.fetchTabStatus && tab?.fetchTabStatus === 'done') &&\n (!tab?.widgets || !tab?.widgets?.length))\">\n <ng-container *ngIf=\"tab?.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.nodataMsg, 'home') }}</div>\n </div>\n </ng-template>\n </div>\n <ng-container *ngIf=\"(tab?.fetchTabStatus === 'done' || tab?.widgets?.length)\">\n <ng-container *ngIf=\"!tab?.tabLoading\">\n\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [widgetsLength]=\"tab?.widgets?.length\"\n *ngIf=\"getContineuLearningLenth(stripsResultDataMap[key]) && showAccordion(key)\"\n [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"tab?.maxWidgets ||\n stripsResultDataMap[key]?.sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of tab?.widgets| slice:0:(tab?.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 *ngIf=\"!stripsResultDataMap[key].tabs || !stripsResultDataMap[key].tabs.length\">\n <div *ngIf=\"stripsResultDataMap && stripsResultDataMap[key]?.showOnLoader\" 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 <div class=\"\">\n <sb-uic-horizontal-scroller-v2 [sliderConfig]=\"stripsResultDataMap[key]?.sliderConfig\" [id]=\"key+'-scroller'\"\n [widgetsLength]=\"stripsResultDataMap[key]?.widgets?.length\" [loadStatus]=\"'done'\" [defaultMaxWidgets]=\"stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets\" [stripConfig]=\"stripsResultDataMap[key]?.stripConfig\">\n <ng-container *ngFor=\"let widget of stripsResultDataMap[key]?.widgets| slice:0:(stripsResultDataMap[key].sliderConfig?.maxWidgets || defaultMaxWidgets); trackBy: tracker\">\n <!-- <ng-container *ngIf=\"widget.widgetData.context.pageSection === 'continueLearning' \"> -->\n <!-- <ng-container *ngIf=\"widget.widgetData.content.completionPercentage !== 100\"\n [sbUiResolverWidget]=\"widget\"></ng-container> -->\n <ng-container [sbUiResolverWidget]=\"widget\"></ng-container>\n <!-- </ng-container> -->\n </ng-container>\n </sb-uic-horizontal-scroller-v2>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </a>\n\n </ng-container>\n </ng-container>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CommonStripComponent } from './common-strip.component';\nimport { SbUiResolverModule } from '@sunbird-cb/resolver-v2';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { HttpClient } from '@angular/common/http';\nimport { HttpLoaderFactory } from '../content-strip-with-tabs-lib/content-strip-with-tabs-lib.module';\nimport { HorizontalScrollerV2Module } from '../horizontal-scroller-v2/horizontal-scroller-v2.module';\n\n@NgModule({\n declarations: [CommonStripComponent],\n imports: [\n SbUiResolverModule,\n CommonModule,\n RouterModule,\n HorizontalScrollerV2Module,\n MatProgressSpinnerModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatListModule,\n MatSidenavModule,\n MatCardModule,\n MatExpansionModule,\n MatRadioModule,\n MatChipsModule,\n MatInputModule,\n MatFormFieldModule,\n MatDialogModule,\n MatSnackBarModule,\n MatSelectModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressSpinnerModule,\n MatButtonToggleModule,\n MatTabsModule,\n MatAutocompleteModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n ],\n exports: [CommonStripComponent]\n})\nexport class CommonStripModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { InsiteDataService } from '../../_services/insite-data.service';\n\n@Component({\n selector: 'sb-uic-announcements',\n templateUrl: './announcements.component.html',\n styleUrls: ['./announcements.component.scss']\n})\nexport class AnnouncementsComponent implements OnInit {\n\n @Input() objectData: any\n @Input() layoutType: any\n @Input() mobileHeight: boolean = false\n @Input() fetchDataFromApi: boolean = false\n @Input() channelId: any\n @Output() openDialog = new EventEmitter<any>()\n isLoading: boolean = false\n announcements: any = []\n expand = false\n expanded: boolean = false\n\n constructor(public insightSvc: InsiteDataService) {\n }\n\n ngOnInit() {\n if (this.fetchDataFromApi) {\n this.isLoading = true\n this.fetchData()\n }\n }\n\n fetchData() {\n let request = {\n filterCriteriaMap: {\n channel: [this.channelId],\n //channel: [\"01381906916850892825\"],\n },\n requestedFields: [\n \"name\",\n \"description\",\n \"createdOn\",\n \"updatedOn\",\n \"category\"\n ],\n orderBy: \"createdOn\",\n orderDirection: \"ASC\",\n facets: [\n \"channel\"\n ],\n pageSize: this.objectData.pageSize\n }\n this.insightSvc.fetchAnnouncementsData(request).subscribe((res: any)=> {\n if(res && res.result && res.result.data) {\n res.result.data.forEach((resp: any) => {\n this.announcements.push({\n value: resp.description,\n expanded: false\n })\n })\n }\n if (this.announcements.length > 3) {\n this.expand = true\n }\n this.objectData.list = this.announcements\n this.isLoading = false\n }, error => {\n console.log(error)\n this.objectData.list = []\n this.isLoading = false\n })\n }\n\n viewMoreOrLess(item: any) {\n if (item.value.length > 152) {\n item.expanded = !item.expanded\n }\n }\n\n openAnnouncements() {\n this.openDialog.emit(true)\n }\n\n showMoreOrLess() {\n this.expanded = !this.expanded\n }\n\n}\n","<div class=\"w-full\" *ngIf=\"layoutType === 'web' && !isLoading\">\n <div class=\"flex item-center key-logo\">\n <img class=\"\" [src]=\"objectData?.logoUrl\">\n </div>\n <div class=\"flex item-center key-logo\">\n <div class=\"key-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n <div class=\"key-list-container\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <div class=\"{{mobileHeight ? 'mob-key-list' : expand && expanded ? 'exp-key-list' : 'key-list'}}\" *ngIf=\"objectData?.list?.length\">\n <div *ngFor=\"let item of objectData?.list; let i = index\">\n <div class=\"key-list-item mb-{{ objectData?.list?.length === (i+1) ? '' : '4'}}\" \n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"key-list-item-content {{item?.value?.length > 152 && !item?.expanded ? 'expand' : 'un-expand'}}\" [innerHTML]=\"item?.value\"></div>\n <div class=\"more-or-less\" *ngIf=\"item?.value?.length > 152\" [style.color]=\"objectData?.panelborder\">\n <div class=\"cursor-pointer\" (click)=\"viewMoreOrLess(item)\" *ngIf=\"!item?.expanded\">View more</div>\n <div class=\"cursor-pointer\" (click)=\"viewMoreOrLess(item)\" *ngIf=\"item?.expanded\">View less</div>\n </div>\n </div>\n </div> \n </div>\n <div class=\"{{mobileHeight ? 'mob-key-list' : 'key-list'}}\" *ngIf=\"!objectData?.list?.length\">\n <div class=\"text-center\">No announcements yet!</div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!mobileHeight && expand\">\n <div (click)=\"showMoreOrLess()\" class=\"announcements-expand\" *ngIf=\"!expanded\">\n <mat-icon>expand_more</mat-icon>\n </div>\n <div (click)=\"showMoreOrLess()\" class=\"announcements-expand\" *ngIf=\"expanded\">\n <mat-icon>expand_less</mat-icon>\n </div>\n</ng-container>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'mobile'\">\n <div class=\"flex item-center key-logo \">\n <div class=\"mob-key-heading\" (click)=\"openAnnouncements()\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n <div class=\"flex key-button gap-3\">\n <div>\n <img [src]=\"objectData?.mobileIcon\">\n </div>\n <div>{{objectData?.title}}</div> \n <div><mat-icon class=\"key-mob-icon\">arrow_forward_ios</mat-icon></div>\n </div> \n </div>\n </div>\n</div>\n\n<div class=\"w-full\" *ngIf=\"layoutType === 'web' && isLoading\">\n <div class=\"flex item-center key-logo\">\n <img class=\"\" [src]=\"objectData?.logoUrl\">\n </div>\n <div class=\"flex item-center key-logo pt-1\">\n <div class=\"key-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n <div class=\"key-list-container\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <div class=\"{{mobileHeight ? 'mob-key-list' : 'key-list'}}\" > \n <div class=\"key-list-item mb-4\" \n *ngFor=\"let item of[0,1,2,3,4]; let i = index\"\n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"key-list-item-content un-expand\">\n <div class=\"py-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'350px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"py-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'350px'\" [height]=\"'24px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div> \n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { AnnouncementsComponent } from './announcements.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n\n\n@NgModule({\n declarations: [AnnouncementsComponent],\n imports: [\n CommonModule,\n MatIconModule,\n SkeletonLoaderLibModule\n ],\n exports: [AnnouncementsComponent],\n})\nexport class AnnouncementsModule { }","import { Component, Input, OnInit } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { InsiteDataService } from '../../_services/insite-data.service';\nconst moment = moment_;\n@Component({\n selector: 'sb-uic-top-learners',\n templateUrl: './top-learners.component.html',\n styleUrls: ['./top-learners.component.scss']\n})\nexport class TopLearnersComponent implements OnInit {\n\n @Input() objectData: any\n @Input() channelId: any\n @Input() channnelName: any\n loading: boolean = false\n month: string = ''\n results: any = []\n\n colors: any = [\n '#EB7181', // red\n '#306933', // green\n '#000000', // black\n '#3670B2', // blue\n '#4E9E87',\n '#7E4C8D',\n '#EB7181', // red\n '#306933', // green\n '#000000', // black\n '#3670B2', // blue\n ]\n\n constructor(public insightSvc: InsiteDataService,) { }\n\n ngOnInit() {\n this.getData()\n this.month = new Date().toLocaleString('default', { month: 'long' })\n }\n\n getData() {\n this.loading = true\n this.insightSvc.fetchLearner(this.channelId).subscribe((res: any)=> {\n if (res && res.result && res.result.result && res.result.result.length) {\n this.results = res.result.result\n this.month = moment().month(Number(res.result.result[0].month) - 1).format('MMMM')\n }\n this.loading = false\n }, (_error: any) => {\n // tslint:disable-next-line: align\n this.loading = false\n })\n }\n\n getRank(rank: number) {\n if (rank === 1) {\n return \"1st\"\n } \n if (rank === 2) {\n return \"2nd\"\n } \n if (rank === 3) {\n return \"3rd\"\n } else {\n return `${rank}th`\n } \n }\n\n getColor() {\n let circleColor = ''\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length))\n circleColor = this.colors[randomIndex]\n return circleColor\n }\n\n createInititals(name: string) {\n let initials = ''\n const array = name.toString().split(' ')\n if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {\n initials += array[0].charAt(0)\n initials += array[1].charAt(0)\n } else {\n for (let i = 0; i < name.length; i += 1) {\n if (name.charAt(i) === ' ') {\n continue\n }\n if (name.charAt(i) === name.charAt(i)) {\n initials += name.charAt(i)\n\n if (initials.length === 2) {\n break\n }\n }\n }\n }\n return initials.toUpperCase()\n }\n\n}\n","<div class=\"flex flex-center\">\n <div>\n <div class=\"title-border\"></div>\n <div class=\"title\" [style.color]=\"objectData?.titleFontColor\">{{objectData?.title}} ({{month}})</div>\n <div class=\"title-border\"></div>\n </div> \n</div>\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of results; let i=index\" class=\"flex-container\">\n <div class=\"flex-item user-box\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\" *ngIf=\"obj?.profile_image\">\n <img [src]=\"obj?.profile_image\" class=\"user-image\"/>\n </div>\n <div class=\"initial\" *ngIf=\"!obj?.profile_image\"\n [style.backgroundColor]=\"colors[i]\"\n >\n {{createInititals(obj?.fullname)}}\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\" *ngIf=\"obj?.fullname?.length >= 24\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.fullname}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.fullname}}\n </div>\n <div class=\"name-sec\" *ngIf=\"obj?.fullname?.length < 24\">\n {{obj?.fullname}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.designation}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.designation}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.designation?.length < 32\">{{obj?.designation}}</div>\n <div class=\"designation-sec\" *ngIf=\"obj?.org_name?.length >= 32\"\n #tooltip=\"matTooltip\"\n [matTooltipClass]=\"'below'\"\n matTooltip=\"{{obj?.org_name}}\"\n [matTooltipPosition]=\"'below'\">\n {{obj?.org_name}}\n </div>\n <div class=\"designation-sec\" *ngIf=\"obj?.org_name?.length < 32\">{{obj?.org_name}}</div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">{{getRank(+obj?.row_num)}}</div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\"><img [src]=\"objectData?.kpIcon\" class=\"kp-image\"/></div>\n <div class=\"points\">{{obj?.total_points || 0}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"top-learners-container\" *ngIf=\"!loading && results.length === 0\">\n <div class=\"margin-top-l noData\">\n No data\n </div>\n</div>\n\n<ng-container>\n <div class=\"top-learners-container\" *ngIf=\"loading\">\n <div class=\"w-full margin-bottom-l margin-top-l\">\n <div class=\"flex gap-3\">\n <div *ngFor=\"let obj of [1,2,3]\" class=\"flex-container\">\n <div class=\"flex-item user-box\">\n <div class=\"flex gap-3 img-name-sec\">\n <div class=\"flex gap-3\">\n <div class=\"profile-pic\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col gap-1\">\n <div class=\"name-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"designation-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'200px'\"\n [height]=\"'16px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"flex gap-3\"> \n <div class=\"rank-sec\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'44px'\"\n [height]=\"'44px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n <div class=\"flex gap-2 kp-section\">\n <div class=\"kp-icon\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader> \n </div>\n <div class=\"points\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon'\" [width]=\"'32px'\"\n [height]=\"'32px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TopLearnersComponent } from './top-learners.component';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [TopLearnersComponent],\n imports: [\n CommonModule,\n SkeletonLoaderLibModule,\n MatTooltipModule\n ],\n exports: [TopLearnersComponent],\n})\nexport class TopLearnersModule { }","import { Directive, Input, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[sbUicScrollableItem]'\n})\nexport class ScrollableItemDirective {\n\n @Input('sbUicScrollableItem') public key: string\n constructor(private el: ElementRef<HTMLElement>) {}\n\n public scrollIntoView(blockValue: any) {\n this.el.nativeElement.scrollIntoView({ behavior: 'smooth', block: blockValue });\n }\n\n\n}\n","import { Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from '@angular/core'\nimport { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver-v2'\nimport { ICarousel, ICarouselStyle } from './sliders-ng-content.model'\nimport { Subscription, interval } from 'rxjs'\nimport { EventService, WsEvents, ValueService } from '@sunbird-cb/utils-v2'\n\n@Component({\n selector: 'sb-uic-sliders-ng-content',\n templateUrl: './sliders-ng-content.component.html',\n styleUrls: ['./sliders-ng-content.component.scss'],\n})\nexport class SlidersNgContentLibComponent extends WidgetBaseComponent\n implements OnInit, OnDestroy, NsWidgetResolver.IWidgetData<ICarousel[]> {\n @Input() widgetData!: ICarousel[]\n @Input() styleData!: ICarouselStyle\n @Input() title: any = ''\n @Input() loadNgContentData: boolean = false\n @Input() autoScroll: boolean = false\n @Input() customBanner: boolean = false\n @Output() currentIndexValue = new EventEmitter<any>()\n \n @HostBinding('id')\n public id = `banner_${Math.random()}`\n private defaultMenuSubscribe: Subscription | null = null\n isLtMedium$ = this.valueSvc.isLtMedium$\n @Input() currentIndex = 0\n slideInterval: Subscription | null = null\n isMobile = false\n\n constructor(\n private events: EventService,\n private valueSvc: ValueService\n ) {\n super()\n }\n\n ngOnInit() {\n if(this.autoScroll) {\n this.reInitiateSlideInterval()\n }\n this.defaultMenuSubscribe = this.isLtMedium$.subscribe((isLtMedium: boolean) => {\n this.isMobile = isLtMedium\n })\n }\n reInitiateSlideInterval() {\n if (this.widgetData && this.widgetData.length > 1) {\n try {\n if (this.slideInterval) {\n this.slideInterval.unsubscribe()\n }\n } catch (e) {\n } finally {\n this.slideInterval = interval(8000).subscribe(() => {\n if (this.currentIndex === this.widgetData.length - 1) {\n this.currentIndex = 0\n this.currentIndexValue.emit(this.currentIndex)\n } else {\n this.currentIndex += 1\n this.currentIndexValue.emit(this.currentIndex)\n }\n })\n }\n }\n }\n slideTo(index: number) {\n if (index >= 0 && index < this.widgetData.length) {\n this.currentIndex = index\n this.currentIndexValue.emit(this.currentIndex)\n } else if (index === this.widgetData.length) {\n this.currentIndex = 0\n this.currentIndexValue.emit(this.currentIndex)\n } else {\n this.currentIndex = this.widgetData.length + index\n this.currentIndexValue.emit(this.currentIndex)\n }\n if(this.autoScroll) {\n this.reInitiateSlideInterval()\n }\n }\n\n get isOpenInNewTab() {\n const currentData = this.widgetData[this.currentIndex]\n if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {\n return true\n } return false\n }\n\n openInNewTab() {\n const currentData = this.widgetData[this.currentIndex]\n if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.widgetData[this.currentIndex].openInNewTab) {\n window.open(currentData.redirectUrl)\n }\n }\n raiseTelemetry(bannerUrl: string | undefined) {\n this.openInNewTab()\n const path = window.location.pathname.replace('/', '')\n const url = path + window.location.search\n\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'banner',\n },\n {\n pageUrl: url,\n bannerRedirectUrl: bannerUrl,\n },\n {\n pageIdExt: 'banner',\n module: WsEvents.EnumTelemetrymodules.CONTENT,\n })\n }\n\n ngOnDestroy() {\n if (this.defaultMenuSubscribe) {\n this.defaultMenuSubscribe.unsubscribe()\n }\n }\n}\n","<div class=\"{{customBanner ? 'keybanner' : 'banner-container'}} {{isMobile? styleData?.responsive?.bannerMetaClass : styleData?.bannerMetaClass}}\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"widgetData?.length > 1\" [style.height]=\"isMobile? styleData?.responsive?.customHeight : styleData?.customHeight\"\n [ngStyle]=\"{'border-radius': styleData?.borderRadius || '12px'}\">\n <ng-container *ngIf=\"!loadNgContentData\">\n <a (click)=\"raiseTelemetry(widgetData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"loadNgContentData\">\n <!-- <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData; let i = index\" [hidden]=\"i !== currentIndex\"> -->\n <ng-content select=\"[sliderbody]\"></ng-content>\n <!-- </div> -->\n <ng-container *ngIf=\"isMobile && styleData?.responsive?.dots !== 'hidden' || !isMobile && styleData?.dots !== 'hidden'\">\n <div class=\"banner-meta {{isMobile? styleData?.responsive?.bannerMetaAlign : styleData?.bannerMetaAlign}}\">\n <a [routerLink]=\" !isOpenInNewTab && widgetData[currentIndex].redirectUrl? widgetData[currentIndex].redirectUrl : null\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData[currentIndex].title\" [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a>\n <div class=\"dots-container\" *ngIf=\"widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n <ng-content select=\"[sliderMeta]\"></ng-content>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <div class=\"navigation {{isMobile? styleData?.responsive?.arrowsPlacement : styleData?.arrowsPlacement}}\" \n *ngIf=\"isMobile && styleData?.responsive?.navigationArrows !== 'hidden' || !isMobile && styleData?.navigationArrows !== 'hidden'\">\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </div>\n</div>\n<div class=\"{{customBanner ? 'keybanner' : 'banner-container-solo'}} margin-top-s\" *ngIf=\"widgetData?.length == 1\">\n <img i18n-alt alt=\"Page Banner\" width=\"100%\" height=\"100%\" [src]=\"widgetData[0].banners\" wsUtilsImageResponsive class=\"banner-image-solo\" />\n</div>\n\n<!-- <ng-container *ngIf=\"!widgetData?.length\">\n <div class=\"slider default-slider h-full\">\n <div class=\"relative h-full\">\n <img class=\"h-full\" src=\"assets/icons/home/default-slider-image.svg\" alt=\"\">\n <div class=\"default-title rounded-full\">\n <p class=\"mat-h1\">{{title}}</p>\n </div>\n </div>\n </div>\n</ng-container> -->\n","import { HttpClient } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { ScrollableItemDirective } from '../../_directives/scrollable-item/scrollable-item.directive';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../_services/multilingual-translations.service';\n\n@Component({\n selector: 'sb-uic-cbp-plan',\n templateUrl: './cbp-plan.component.html',\n styleUrls: ['./cbp-plan.component.scss']\n})\nexport class CbpPlanComponent implements OnInit {\n\n @Input() objectData: any\n @Input() layoutType: any\n @Input() mobileHeight: boolean = false\n @Input() fetchDataFromApi: boolean = false\n @Input() channelId: any\n @Output() openDialog = new EventEmitter<any>()\n isLoading: boolean = false\n currentIndex = 0\n styleData: any = {}\n contentdata: any = []\n\n @ViewChildren(ScrollableItemDirective) scrollableItems: QueryList<ScrollableItemDirective>\n constructor(private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService) { }\n\n ngOnInit() {\n this.styleData = this.objectData && this.objectData.sliderData && this.objectData.sliderData.styleData\n if (this.objectData && this.objectData.list) {\n this.objectData.list.forEach((contentEle: any) => {\n let localData = {}\n localData['title'] = contentEle.title\n localData['downloaUrl'] = contentEle.downloaUrl\n localData['cardSubType'] = \"card-wide-lib\"\n localData['cardCustomeClass'] = \"\"\n this.contentdata.push(localData)\n })\n }\n }\n\n getCurrentIndex(indexValue: any) {\n this.currentIndex = indexValue\n }\n\n getFileName(item: any) {\n console.log(item.downloadUrl)\n return item.downloadUrl.split(\"/\").at(-1)\n }\n\n translateLabels(label: string, type: any) {\n return this.langtranslations.translateActualLabel(label, type, '');\n }\n\n downloadCBPPlan(item: any) {\n const downloadUrl = item.downloaUrl\n const xhr = new XMLHttpRequest()\n xhr.open('GET', downloadUrl, true)\n xhr.responseType = 'blob'\n\n xhr.onload = function() {\n if (xhr.status === 200) {\n const blob = new Blob([xhr.response], { type: 'application/pdf' })\n const url = window.URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n a.download = downloadUrl.split(\"/\").at(-1)\n document.body.appendChild(a)\n a.click()\n document.body.removeChild(a)\n window.URL.revokeObjectURL(url)\n } else {\n console.error('Error downloading the PDF', xhr.statusText)\n }\n }\n xhr.onerror = function() {\n console.error('Network error')\n }\n xhr.send()\n }\n}\n","<div class=\"w-full\">\n <div class=\"flex item-center cbp-logo\">\n <div class=\"cbp-heading\"\n [style.backgroundColor]=\"objectData?.header?.background\"\n [style.color]=\"objectData?.header?.color\">\n {{objectData?.title}}\n </div>\n </div>\n \n <div class=\"cbp-list-container\" *ngIf=\"contentdata.length\"\n [style.borderColor]=\"objectData?.panelborder\"\n [style.backgroundColor]=\"objectData?.panelBackground\">\n <ng-container *ngIf=\"contentdata.length; else msgTemp\">\n <sb-uic-sliders-ng-content\n [title]=\"'providerName'\"\n [currentIndex]=\"currentIndex\"\n (currentIndexValue)=\"getCurrentIndex($event)\"\n [loadNgContentData]=\"true\" [widgetData]=\"contentdata\"\n [styleData]=\"styleData\">\n <div sliderbody>\n <div *ngFor=\"let item of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"cbp-list-item\"\n [style.borderColor]=\"objectData?.listItem?.border\"\n [style.color]=\"objectData?.listItem?.border\"\n [style.backgroundColor]=\"objectData?.listItem?.background\">\n <div class=\"cbp-item-title\">{{item?.title}}</div>\n <div class=\"flex download-sec\">\n <div class=\"flex gap-3 cbp-download\" (click)=\"downloadCBPPlan(item)\">\n <img [src]=\"objectData?.downloadIcon\">Download\n </div>\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </ng-container>\n <ng-template #msgTemp>\n <div class=\"padding-bottom-m\">\n {{ translateLabels(objectData?.noData, 'home') }}\n </div>\n </ng-template>\n </div>\n</div>","import { NgModule, Injectable } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { SlidersNgContentLibComponent } from './sliders-ng-content.component'\nimport { RouterModule } from '@angular/router'\nimport { ImageResponsiveModule } from '../../_directives/image-responsive/image-responsive.module'\n// import { HAMMER_GESTURE_CONFIG, HammerGestureConfig } from '@angular/platform-browser'\n/* tslint:disable */\n// import Hammer from 'hammerjs'\nimport { NavigationModule } from '../../_directives/navigation/navigation.module'\n/* tslint:enable */\n@Injectable()\n// export class MyHammerConfig extends HammerGestureConfig {\n// buildHammer(element: HTMLElement) {\n// const mc = new Hammer(element, {\n// touchAction: 'pan-y',\n// })\n// return mc\n// }\n// }\n\n// tslint:disable-next-line: max-classes-per-file\n@NgModule({\n declarations: [SlidersNgContentLibComponent],\n imports: [\n CommonModule,\n RouterModule,\n NavigationModule,\n ImageResponsiveModule,\n ],\n exports: [SlidersNgContentLibComponent],\n entryComponents: [SlidersNgContentLibComponent],\n providers: [\n // {\n // provide: HAMMER_GESTURE_CONFIG,\n // useClass: MyHammerConfig,\n // },\n ],\n})\nexport class SlidersNgContentLibModule { }\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { ScrollableItemDirective } from './scrollable-item.directive'\n\n@NgModule({\n declarations: [ScrollableItemDirective],\n imports: [\n CommonModule,\n ],\n exports: [ScrollableItemDirective],\n})\nexport class ScrollableItemModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CbpPlanComponent } from './cbp-plan.component';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SlidersNgContentLibModule } from '../sliders-ng-content/sliders-ng-content.module';\nimport { ScrollableItemModule } from '../../_directives/scrollable-item/scrollable-item.module';\n\n\n\n@NgModule({\n declarations: [CbpPlanComponent],\n imports: [\n CommonModule,\n SkeletonLoaderLibModule,\n MatIconModule,\n ScrollableItemModule,\n SlidersNgContentLibModule,\n ],\n exports: [CbpPlanComponent]\n})\nexport class CbpPlanModule { }\n","import { NgModule } from '@angular/core';\nimport { ConsumptionComponent } from './consumption.component';\nimport { ContentStripWithTabsLibModule } from './_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module';\nimport { SlidersLibModule } from '../lib/_common/sliders/sliders.module';\nimport { DataPointsModule } from './_common/data-points/data-points.module';\nimport { CalenderModule } from './_common/calender/calender.module';\nimport { CommonStripModule } from './_common/common-strip/common-strip.module';\nimport { AnnouncementsModule } from './_common/announcements/announcements.module';\nimport { TopLearnersModule } from './_common/top-learners/top-learners.module';\nimport { CbpPlanModule } from './_common/cbp-plan/cbp-plan.module';\n\n@NgModule({\n declarations: [ConsumptionComponent],\n imports: [\n ContentStripWithTabsLibModule,\n SlidersLibModule\n ],\n exports: [ConsumptionComponent,\n ContentStripWithTabsLibModule,\n SlidersLibModule,\n DataPointsModule,\n CalenderModule,\n CommonStripModule,\n AnnouncementsModule,\n TopLearnersModule,\n CbpPlanModule,\n ],\n})\nexport class ConsumptionModule { }\n","export const ROOT_WIDGET_CONFIG = {\n \n card: {\n _type: 'cardLib',\n cardResource: 'cardContentLib'\n },\n}\n","import { NsContent } from './widget-content.model';\n\nexport namespace NsCardContent {\n export interface ICard {\n content: NsContent.IContent;\n cardSubType: TCardSubType;\n context: { pageSection: string; position?: number };\n intranetMode?: 'greyOut' | 'hide';\n deletedMode?: 'greyOut' | 'hide';\n likes?: number;\n contentTags?: IContentTags;\n stateData: any;\n cardCustomeClass?: any;\n }\n\n export interface IContentTags {\n daysSpan?: number;\n excludeContentType?: NsContent.EContentTypes[];\n excludeMimeType?: string[];\n tag: string;\n criteriaField?: string;\n }\n\n export type TCardSubType =\n | 'standard'\n | 'minimal'\n | 'space-saving'\n | 'card-user-details'\n | 'basic-info'\n | 'basic-details'\n | 'card-description-back'\n | 'network-card'\n | 'user-card';\n\n export enum EContentStatus {\n LIVE = 'Live',\n EXPIRED = 'Expired',\n DELETED = 'Deleted',\n MARK_FOR_DELETION = 'MarkedForDeletion',\n }\n export enum ACBPConst {\n UPCOMING = 'upcoming',\n ALL = 'All',\n OVERDUE = 'overdue',\n SUCCESS = 'success',\n }\n\n export enum IGOTConst {\n COMPETENCIES = 'competencies_v5',\n RETIRED = 'Retired',\n }\n}\n","import { Component, OnInit, Input } from '@angular/core'\nimport { NsContent } from '../../_models/widget-content.model'\nimport { MultilingualTranslationsService } from '../../_services/multilingual-translations.service'\n\n@Component({\n selector: 'sb-uic-display-content-type',\n templateUrl: './display-content-type-lib.component.html',\n styleUrls: ['./display-content-type-lib.component.scss'],\n})\nexport class DisplayContentTypeLibComponent implements OnInit {\n @Input() useTranslation: boolean = true\n @Input() displayContentType: NsContent.EDisplayContentTypes = NsContent.EDisplayContentTypes.DEFAULT\n displayContentTypeEnum = NsContent.EDisplayContentTypes\n constructor(private langtranslations: MultilingualTranslationsService) { }\n\n ngOnInit() {\n }\n\n translateLabels(label: string, type: any) {\n return this.langtranslations.translateLabel(label, type, '')\n }\n}\n","<ng-container *ngIf=\"displayContentType\">\n <span [ngSwitch]=\"displayContentType\" class=\"content-type-class\">\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.ASSESSMENT\" i18n>Assessment</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.AUDIO\" i18n>Audio</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.CHANNEL\" i18n>Channel</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.CERTIFICATION\" i18n\n >Certification</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.CLASS_DIAGRAM\" i18n\n >Class Diagram</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.COURSE\" i18n>Course</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.DEFAULT\" i18n>Content</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.DRAG_DROP\" i18n>Drag & Drop</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.EXTERNAL_CERTIFICATION\" i18n\n >External Certification</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.EXTERNAL_COURSE\" i18n\n >External Course</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.HANDS_ON\" i18n>Hands-On</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.IAP\" i18n>Hands-On Assessment</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.INSTRUCTOR_LED\" i18n\n >Instructor-Led</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.INTERACTIVE_VIDEO\" i18n\n >Interactive Video</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.KNOWLEDGE_ARTIFACT\" i18n\n >Knowledge Artifact</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.KNOWLEDGE_BOARD\" i18n\n >Knowledge Board</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.LEARNING_JOURNEY\" i18n\n >Learning Journey</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.MODULE\" i18n>Module</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.PDF\" i18n>Pdf</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.PROGRAM\" i18n>Program</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.QUIZ\" i18n>Quiz</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.RESOURCE\" i18n>Resource</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.VIDEO\" i18n>Video</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.WEB_MODULE\" i18n>Web Module</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.WEB_PAGE\" i18n>Web Page</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.YOUTUBE\" i18n>Youtube</ng-container>\n <ng-container *ngSwitchDefault i18n>\n <span *ngIf=\"useTranslation\">\n {{ translateLabels(displayContentType, 'searchfilters') }}\n </span>\n <span *ngIf=\"!useTranslation\">\n {{ displayContentType }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n<!-- <ng-container *ngIf=\"displayContentType\">{{displayContentType}}</ng-container> -->\n<!-- <span [ngSwitch]=\"displayContentType\">\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.ASSESSMENT\" i18n>Assessment</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.AUDIO\" i18n>Audio</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.CHANNEL\" i18n>Channel</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.CERTIFICATION\" i18n\n >Certification</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.CLASS_DIAGRAM\" i18n\n >Class Diagram</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.COURSE\" i18n>Course</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.DEFAULT\" i18n>Content</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.DRAG_DROP\" i18n>Drag & Drop</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.EXTERNAL_CERTIFICATION\" i18n\n >External Certification</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.EXTERNAL_COURSE\" i18n\n >External Course</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.HANDS_ON\" i18n>Hands-On</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.IAP\" i18n>Hands-On Assessment</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.INSTRUCTOR_LED\" i18n\n >Instructor-Led</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.INTERACTIVE_VIDEO\" i18n\n >Interactive Video</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.KNOWLEDGE_ARTIFACT\" i18n\n >Knowledge Artifact</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.KNOWLEDGE_BOARD\" i18n\n >Knowledge Board</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.LEARNING_JOURNEY\" i18n\n >Learning Journey</ng-container\n >\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.MODULE\" i18n>Module</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.PDF\" i18n>Pdf</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.PROGRAM\" i18n>Program</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.QUIZ\" i18n>Quiz</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.RESOURCE\" i18n>Resource</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.VIDEO\" i18n>Video</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.WEB_MODULE\" i18n>Web Module</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.WEB_PAGE\" i18n>Web Page</ng-container>\n <ng-container *ngSwitchCase=\"displayContentTypeEnum?.YOUTUBE\" i18n>Youtube</ng-container>\n <ng-container *ngSwitchDefault i18n>Content</ng-container>\n</span> -->\n","import { Directive, Input, HostListener, HostBinding, OnChanges } from '@angular/core'\r\n\r\n@Directive({\r\n selector: '[wsUtilsDefaultThumbnail]',\r\n})\r\nexport class DefaultThumbnailDirective implements OnChanges {\r\n\r\n @Input() wsUtilsDefaultThumbnail = ''\r\n @Input() src = ''\r\n isSrcUpdateAttemptedForDefault = false\r\n\r\n @HostBinding('src') srcUrl = ''\r\n @HostListener('error') updateSrc() {\r\n if (!this.isSrcUpdateAttemptedForDefault) {\r\n this.srcUrl = this.wsUtilsDefaultThumbnail\r\n this.isSrcUpdateAttemptedForDefault = true\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.src) {\r\n this.srcUrl = this.src\r\n }\r\n }\r\n\r\n}\r\n","import { Inject, Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n name: 'pipePublicURL',\n})\nexport class PipePublicURL implements PipeTransform {\n environment: any\n constructor(\n @Inject('environment') environment: any,){\n this.environment = environment\n }\n\n transform(value: string): any {\n const mainUrl = value && value.split('/content').pop() || ''\n const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}/content${mainUrl}`\n return value ? finalURL : ''\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport * as moment from 'moment'\r\n\r\n@Pipe({\r\n name: 'pipeDurationTransform',\r\n})\r\nexport class PipeDurationTransformPipe implements PipeTransform {\r\n\r\n transform(data: number, type: 'time24' | 'hms' | 'hour' | 'hms2H' | 'hms2M'| 'day'): any {\r\n if (data <= 0) {\r\n return ''\r\n }\r\n const h = Math.floor(data / 3600)\r\n const m = Math.floor((data % 3600) / 60)\r\n const s = Math.floor((data % 3600) % 60)\r\n let duration = ''\r\n switch (type) {\r\n case 'time24':\r\n return this.defaultDuration(h, m, s)\r\n case 'hms':\r\n return this.hmsCalculation(h, m, s, duration, type)\r\n case 'hms2H':\r\n /**to Print HH:mm:ss */\r\n const duration2 = moment.duration(data, 'seconds')\r\n const resultstring = moment.utc(duration2.asMilliseconds()).format('HH:mm:ss')\r\n return resultstring\r\n case 'hms2M': /**to Print mm:ss */\r\n const duration2H = moment.duration(data, 'seconds')\r\n const resultstring2H = moment.utc(duration2H.asMilliseconds()).format('mm:ss')\r\n\r\n return resultstring2H\r\n case 'hour':\r\n if (h === 0) {\r\n duration += 'less than an hour'\r\n }\r\n if (h === 1) {\r\n duration += `${h} hour`\r\n }\r\n if (h > 1) {\r\n duration += `${h} hours`\r\n }\r\n return duration\r\n case 'day':\r\n if (h > 24) {\r\n const duration3 = moment.duration(data, 'seconds')\r\n return `${duration3.days()} day(s)`\r\n }\r\n return this.hmsCalculation(h, m, s, duration, type)\r\n\r\n default:\r\n return this.defaultDuration(h, m, s)\r\n }\r\n }\r\n\r\n defaultDuration(h: number, m: number, s: number) {\r\n let duration = ''\r\n duration += h > 0 ? `${h.toString().padStart(2)}:` : ''\r\n duration += m > 0 ? `${m.toString().padStart(2)}:` : '00:'\r\n duration += s > 0 ? s.toString().padStart(2) : '00'\r\n return duration\r\n }\r\n hmsCalculation(h: number, m: number, s: number, dur: string, type: string) {\r\n let space = ''\r\n let duration = dur\r\n if (h > 0) {\r\n duration += type === 'hms' ? `${h}h` : `${h} hr`\r\n }\r\n if (m > 0) {\r\n if (h > 0) {\r\n space = ' '\r\n }\r\n duration += type === 'hms' ? `${space}${m}m` : `${space}${m} min`\r\n }\r\n if (s > 0 && h === 0) {\r\n if (m > 0) {\r\n space = ' '\r\n }\r\n duration += type === 'hms' ? `${space}${s}s` : `${space}${s} sec`\r\n }\r\n return duration\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NsCardContent } from '../../../_models/card-content.model';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\nimport { WidgetContentService } from '../../../_services/widget-content.service';\n\n@Component({\n selector: 'sb-uic-card-portrait',\n templateUrl: './card-portrait.component.html',\n styleUrls: ['./card-portrait.component.scss']\n})\nexport class CardPortraitComponent implements OnInit {\n @Input() widgetData!: NsCardContent.ICard;\n @Input() isLiveOrMarkForDeletion: any\n @Input() showIntranetContent: any\n @Input() isIntranetAllowedSettings: any\n @Input() isCardLoading: boolean = false\n @Output() contentData = new EventEmitter<any>()\n @Input() cbPlanMapData: any\n isCardFlipped:boolean = false\n acbpConstants = NsCardContent.ACBPConst\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n showFlip = false\n widgetType: any = 'df'\n widgetSubType: any ='sdf'\n constructor(\n private snackBar: MatSnackBar,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,\n private contSvc: WidgetContentService,) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n }\n\n showSnackbar() {\n if (this.showIntranetContent) {\n this.snackBar.open('Content is only available in intranet', 'X', { duration: 2000 })\n } else if (!this.isLiveOrMarkForDeletion) {\n this.snackBar.open('Content may be expired or deleted', 'X', { duration: 2000 })\n }\n }\n getRedirectUrlData(contentData: any){\n // for telemetry\n if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {\n contentData['typeOfTelemetry'] = this.widgetData.context.pageSection\n }\n this.contSvc.changeTelemetryData(contentData)\n // for redirection\n this.contentData.emit(contentData)\n }\n}\n","<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 | pipePublicURL\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData.content.sourceName + '_' + widgetData.content.identifier)\" />\n </div>\n <ng-container *ngIf=\"widgetData?.content?.cbPlanEndDate\">\n <div class=\"cbp-mark\">\n <span>{{widgetData?.content?.cbPlanEndDate | date: 'd MMM, y'}}</span>\n </div>\n </ng-container>\n <!-- <ng-container *ngIf=\"widgetData?.content?.endDate\">\n <div class=\"cbp-mark\">\n <p *ngIf=\"widgetData?.content?.planDuration === acbpConstants?.UPCOMING\" class=\"cbp-warning\">{{widgetData?.content?.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"widgetData?.content?.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{widgetData?.content?.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"widgetData?.content?.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">Over due</p>\n </div>\n </ng-container> -->\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.identifier] && cbPlanMapData[widgetData?.content?.identifier]?.contentStatus < 2\">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.identifier]\n }}\"></ng-container>\n </ng-container>\n <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>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NsCardContent } from '../../../_models/card-content.model';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\n \n@Component({\n selector: 'sb-uic-card-landscape',\n templateUrl: './card-landscape.component.html',\n styleUrls: ['./card-landscape.component.scss']\n})\nexport class CardLandscapeComponent implements OnInit {\n\n @Input() widgetData!: NsCardContent.ICard;\n @Input() isLiveOrMarkForDeletion: any\n @Input() showIntranetContent: any\n @Input() isIntranetAllowedSettings: any\n @Input() isCardLoading: boolean = false\n @Output() contentData = new EventEmitter<any>()\n @Output() triggerTelemetry = new EventEmitter<any>()\n @Input() cbPlanMapData: any\n isCardFlipped:boolean = false\n defaultThumbnail: any\n acbpConstants = NsCardContent.ACBPConst\n sourceLogos: any\n defaultSLogo: any\n showFlip = false\n widgetType: any = 'df'\n widgetSubType: any ='sdf'\n cbPlanInterval: any\n \n constructor(\n private snackBar: MatSnackBar,\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n this.cbPlanInterval = setInterval(() => {\n this.getCbPlanData()\n }, 1000)\n }\n\n showSnackbar() {\n if (this.showIntranetContent) {\n this.snackBar.open('Content is only available in intranet', 'X', { duration: 2000 })\n } else if (!this.isLiveOrMarkForDeletion) {\n this.snackBar.open('Content may be expired or deleted', 'X', { duration: 2000 })\n }\n }\n getRedirectUrlData(contentData: any){\n this.contentData.emit(contentData)\n }\n raiseTelemetry(content: any) {\n this.triggerTelemetry.emit(content)\n }\n\n\n getCbPlanData() {\n let cbpList: any={}\n if (localStorage.getItem('cbpData')) {\n let cbpListArr = JSON.parse(localStorage.getItem('cbpData') || '')\n if (cbpListArr && cbpListArr.length) {\n cbpListArr.forEach((data: any) => {\n cbpList[data.identifier] = data\n })\n }\n // this.cbPlanMapData = cbpList\n // this.karmaPointLoading = false\n clearInterval(this.cbPlanInterval)\n }\n }\n\n\n}\n","<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>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NsCardContent } from '../../../_models/card-content.model';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\n\n@Component({\n selector: 'sb-uic-card-wide',\n templateUrl: './card-wide.component.html',\n styleUrls: ['./card-wide.component.scss']\n})\nexport class CardWideComponent implements OnInit {\n @Input() widgetData!: NsCardContent.ICard;\n @Input() isLiveOrMarkForDeletion: any\n @Input() showIntranetContent: any\n @Input() isIntranetAllowedSettings: any\n @Input() isCardLoading: boolean = false\n @Output() contentData = new EventEmitter<any>()\n isCardFlipped:boolean = false\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n showFlip = false\n widgetType: any = 'df'\n widgetSubType: any ='sdf'\n constructor(\n private snackBar: MatSnackBar,\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n \n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n }\n\n getRedirectUrlData(contentData: any){\n this.contentData.emit(contentData)\n }\n raiseTelemetry() {\n // if(this.forPreview){\n // return\n // }\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: `${this.widgetType}-${this.widgetSubType}`,\n id: `${_.camelCase(this.widgetData.content.primaryCategory)}-card`,\n },\n {\n id: this.widgetData.content.identifier,\n type: this.widgetData.content.primaryCategory,\n //context: this.widgetData.context,\n rollup: {},\n ver: `${this.widgetData.content.version}${''}`,\n },\n {\n pageIdExt: `${_.camelCase(this.widgetData.content.primaryCategory)}-card`,\n module: _.camelCase(this.widgetData.content.primaryCategory),\n })\n }\n\n}\n","<mat-card class=\"card-wide-lib\">\n <a (click)=\"raiseTelemetry();getRedirectUrlData(widgetData?.content); $event.stopPropagation()\" \n role=\"link\" i18n-aria-label>\n <div class=\"flex\">\n <div>\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <img mat-card-image [src]=\"widgetData?.content?.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-wide-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-wide-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-wide-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n </div>\n <div>\n <div class=\"pl-4 pr-4 w-full\">\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 </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"mat-subheading-1 title-text break-words ws-mat-text-block-fade-gradient\">\n {{ widgetData?.content?.name }}\n </div>\n\n <div class=\"flex w-full 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>\n </div>\n </div>\n </a>\n</mat-card>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NsCardContent } from '../../../_models/card-content.model';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\n\n@Component({\n selector: 'sb-uic-card-wide-v2',\n templateUrl: './card-wide-v2.component.html',\n styleUrls: ['./card-wide-v2.component.scss']\n})\nexport class CardWideV2Component implements OnInit {\n\n @Input() widgetData!: NsCardContent.ICard;\n @Input() isLiveOrMarkForDeletion: any\n @Input() showIntranetContent: any\n @Input() isIntranetAllowedSettings: any\n @Input() cbPlanMapData: any\n @Input() isCardLoading: boolean = false\n @Output() contentData = new EventEmitter<any>()\n @Output() triggerTelemetry = new EventEmitter<any>()\n isCardFlipped:boolean = false\n acbpConstants = NsCardContent.ACBPConst\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n showFlip = false\n widgetType: any = 'df'\n widgetSubType: any ='sdf'\n constructor(\n private snackBar: MatSnackBar,\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n }\n\n showSnackbar() {\n if (this.showIntranetContent) {\n this.snackBar.open('Content is only available in intranet', 'X', { duration: 2000 })\n } else if (!this.isLiveOrMarkForDeletion) {\n this.snackBar.open('Content may be expired or deleted', 'X', { duration: 2000 })\n }\n }\n getRedirectUrlData(contentData: any){\n this.contentData.emit(contentData)\n }\n raiseTelemetry(contentData: any) {\n this.triggerTelemetry.emit(contentData)\n }\n\n}\n","<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-wide-v2 padding-remove position-relative flex {{widgetData?.cardCustomeClass}}\">\n <div class=\"imageholder \">\n <img mat-card-image class=\"margin-remove\"\n [src]=\"widgetData?.content?.posterImage || widgetData?.content?.appIcon | pipePublicURL\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\">\n <div class=\"source-div\" [hidden]=\"true\">\n <img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n </div>\n <div class=\"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\"> {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}</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 <mat-card-content class=\"mat-text-box mb-0\">\n <div class=\"course_widget flex flex-between margin-remove\">\n <div class=\"flex flex-end course_v2\">\n <ng-container *ngIf=\"widgetData?.content?.contentType === 'Resource' || widgetData?.content?.contentType === 'Course' || widgetData?.content?.contentType === 'Module'\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <span class=\"ws-mat-black60-text font-normal mat-caption \">\n {{widgetData?.content?.primaryCategory || widgetData?.content?.contentType}}\n <!-- {{ translateLabel(widgetData.content.primaryCategory || widgetData.content.contentType, 'searchfilters') }} -->\n </span>\n </ng-container>\n </div>\n </div>\n\n <div class=\"flex main_title_box\">\n <p class=\"mat-subheading-1 title-text font-bold-imp cursor-pointer content-title\">\n <a (click)=\"raiseTelemetry(widgetData?.content);getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n {{widgetData?.content?.name}}\n </a>\n </p>\n </div>\n\n <div class=\"bottomsection\">\n <div class=\"flex w-full flex-wrap flex-middle provider\">\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\">By&nbsp;\n <!-- {{'cardcontentv2.by' | translate}} -->\n {{widgetData?.content?.organisation[0] }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-xs\">\n <div class=\"flex flex-middle\" *ngIf=\"widgetData?.content?.avgRating\">\n <mat-icon>star</mat-icon>\n <span class=\"rating-number\">{{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\">{{ '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 </mat-card-content>\n </mat-card>\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</ng-container>\n <ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-wide-v2 padding-remove position-relative flex\">\n <div class=\"\">\n <sb-uic-skeleton-loader [width]=\"'300px'\" [height]=\"'100%'\" class=\"h-full\" [bindingClass]=\"'flex rounded h-full min-height-width'\"></sb-uic-skeleton-loader>\n </div>\n <mat-card-content class=\"mat-text-box\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end \">\n <sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'21px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n \n <div class=\"flex main_title_box\">\n <!-- <p class=\"mat-subheading-1 title-text font-bold-imp cursor-pointer content-title\"> -->\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'21px'\" class=\"w-full h-full mt-2\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n <!-- </p> -->\n </div>\n \n <div class=\"bottomsection\">\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box mr-2\">\n <sb-uic-skeleton-loader [width]=\"'28px'\" [height]=\"'28px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-xs\">\n <div class=\"flex flex-middle mr-2\">\n <sb-uic-skeleton-loader [width]=\"'50px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <sb-uic-skeleton-loader [width]=\"'80px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NsCardUser } from '../../../_models/card-users.model';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\n\n@Component({\n selector: 'sb-uic-card-user',\n templateUrl: './card-user.component.html',\n styleUrls: ['./card-user.component.scss']\n})\nexport class CardUserComponent implements OnInit {\n @Input() widgetData!: NsCardUser.ICard;\n @Output() userData = new EventEmitter<any>()\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n widgetType: any = 'df'\n widgetSubType: any ='sdf'\n constructor(\n private snackBar: MatSnackBar,\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n }\n }\n\n getRedirectUrlData(userData: any){\n this.userData.emit(userData)\n }\n raiseTelemetry() {\n // if(this.forPreview){\n // return\n // }\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: `${this.widgetType}-${this.widgetSubType}`,\n id: `${_.camelCase(this.widgetData.content.userId)}-card`,\n },\n {\n id: this.widgetData.content.userId,\n // type: this.widgetData.user.primaryCategory,\n //context: this.widgetData.context,\n rollup: {},\n // ver: `${this.widgetData.user.version}${''}`,\n },\n {\n pageIdExt: `${_.camelCase('user')}-card`,\n module: _.camelCase('user'),\n })\n }\n\n}\n","<mat-card class=\"user-card card-users-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData.content\">\n <a (click)=\"raiseTelemetry();$event.stopPropagation()\" role=\"link\"\n i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container *ngIf=\"widgetData.content.image\">\n <img mat-card-image [src]=\"widgetData.content.image\"\n loading=\"lazy\" class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [wsUtilsDefaultThumbnail]=\"defaultThumbnail\" [alt]=\"widgetData.content.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData.content.image\">\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>\n <div class=\"padding-m\">\n <div class=\"user_widget flex margin-remove\">\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.userId\"\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 <p class=\"whitespace-normal description-text mat-body-2\">\n {{ widgetData?.content?.description }}\n </p>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n</mat-card>","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core'\n\n@Component({\n selector: 'sb-uic-avatar-photo',\n templateUrl: './avatar-photo-lib.component.html',\n styleUrls: ['./avatar-photo-lib.component.scss'],\n})\nexport class AvatarPhotoLibComponent implements OnInit, OnChanges {\n @Input() datalen: any\n\n @Input()\n public photoUrl!: string\n\n @Input()\n public name!: string\n @Input() public size = ''\n @Input() public defaulfColor = ''\n @Input() randomColor = false\n @Input() initials?: string\n @Input() showBadge = false\n public showInitials = false\n public circleColor!: string\n random = Math.random().toString(36).slice(2)\n\n // public initials!: string\n\n private colors = [\n '#EB7181', // red\n '#306933', // green\n '#000000', // black\n '#3670B2', // blue\n '#4E9E87',\n '#7E4C8D',\n ]\n\n private randomcolors = [\n '#EB7181', // red\n '#006400', // green\n '#000000', // black\n '#3670B2', // blue\n '#4E9E87',\n '#7E4C8D',\n ]\n\n ngOnInit() {\n if (!this.photoUrl) {\n this.showInitials = true\n if (!this.initials) {\n this.createInititals()\n }\n if (this.datalen === 1) {\n if(this.defaulfColor) {\n this.randomcolors = [\n this.defaulfColor\n ]\n } else {\n this.randomcolors = [\n '#006400', // green\n ]\n }\n }\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length))\n this.circleColor = this.colors[randomIndex]\n if (this.randomColor) {\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomcolors.length))\n this.circleColor = this.randomcolors[randomIndex1]\n }\n }\n\n }\n ngOnChanges(change: SimpleChanges) {\n if (change.name.currentValue !== change.name.previousValue && !change.name.firstChange) {\n this.createInititals()\n }\n }\n get userInitials() {\n return this.initials\n }\n private createInititals(): void {\n let initials = ''\n const array = `${this.name} `.toString().split(' ')\n if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {\n initials += array[0].charAt(0)\n initials += array[1].charAt(0)\n } else {\n for (let i = 0; i < this.name.length; i += 1) {\n if (this.name.charAt(i) === ' ') {\n continue\n }\n\n if (this.name.charAt(i) === this.name.charAt(i)) {\n initials += this.name.charAt(i)\n\n if (initials.length === 2) {\n break\n }\n }\n }\n }\n this.initials = initials.toUpperCase()\n }\n}\n","<div id=\"user_icon\" [ngClass]=\"{'circle-s' : size=== 's',\n'circle-m' : size=== 'm',\n'circle-l' : size=== 'l',\n'circle-xl' : size=== 'xl',\n'circle-xxl' : size=== 'xxl',\n'circle-l-xs' : size=== 'l-xs',\n'circle-l-s' : size=== 'l-s',\n'circle-xl-s' : size=== 'xl-s',\n'circle-r-m': size=== 'round-m',\n'circle-r-p-m': size=== 'profile-round-m',\n'circle-m-side': size=== 'm-side',\n'circle-r-m-48': size=== 'm-side-rating',\n'circle-m-recommended': size==='m-recommended',\n'circle-xxl-s': size=== 'xxl-s'}\" [ngStyle]=\"{'background-color': circleColor }\">\n <img *ngIf=\"!showInitials\" loading=\"lazy\" src=\"{{photoUrl}}\" [alt]=\"photoUrl? '' :(name || userInitials || size || random)\">\n\n <div *ngIf=\"showInitials\" class=\"initials\" i18n-aria-label>\n {{ userInitials }} \n </div>\n <div *ngIf=\"showBadge\"><span class=\"profile-badge\"> \n <img src=\"fusion-assets/images/profile-badge.png\">\n </span></div>\n\n <!-- <div *ngIf=\"imageType === 'user-photo'\">\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" alt=\"user-image\" class=\"user-image\" [ngClass]=\"{'user-image-small': imageSize === 'small'}\">\n <div class=\"user-image\" [ngClass]=\"{'user-image-small': imageSize === 'small'}\">\n <span class=\"name-initials-image font-normal ws-mat-primary-default-text ws-mat-accent-background\"\n *ngIf=\"!imageUrl\">{{ shortName }}</span>\n </div>\n </div> -->\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigurationsService, EventService, MultilingualTranslationsService, NsContent } from '@sunbird-cb/utils-v2';\nimport { WidgetContentService } from '../../../_services/widget-content.service';\nimport { Router } from '@angular/router';\n\n\n@Component({\n selector: 'sb-uic-card-mdo-channel-v1',\n templateUrl: './card-mdo-channel-v1.component.html',\n styleUrls: ['./card-mdo-channel-v1.component.scss']\n})\nexport class CardMdoChannelV1Component implements OnInit {\n @Input() widgetData!: NsContent.IContent;\n @Output() channelData = new EventEmitter<any>()\n @Output() emitTelemetry = new EventEmitter<any>()\n @Input() isCardLoading: boolean = false\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n widgetType: any = ''\n widgetSubType: any =''\n\n constructor(\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,\n private contSvc: WidgetContentService,\n public router: Router) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n }\n\n raiseTelemetry(contentData: any) {\n this.emitTelemetry.emit(contentData)\n if (this.widgetData) {\n contentData['typeOfTelemetry'] = 'mdo-channel'\n }\n this.contSvc.changeTelemetryData(contentData)\n }\n channelClick(channeldata:any) {\n this.channelData.emit(channeldata)\n }\n\n redirectTo(content: any) {\n this.router.navigate([`/app/learn/mdo-channels/${content.orgName}/${content.identifier}/micro-sites`])\n }\n\n}\n","\n<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"raiseTelemetry(widgetData?.content); redirectTo(widgetData?.content); $event.stopPropagation()\"\n i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <ng-container *ngIf=\"widgetData?.content?.imgUrl; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.imgUrl\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.orgName\" />\n </ng-container>\n <ng-template #defaultImg>\n <sb-uic-avatar-photo [randomColor]=\"true\" [name]=\"widgetData?.content?.orgName\" [photoUrl]=\"widgetData?.content?.imgUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </ng-template>\n </div>\n <div class=\"flex title-container px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-center mat-subheading-2 title-text ws-mat-black-text\">\n {{ widgetData?.content?.orgName }}\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n</ng-container>\n\n\n<ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container >\n <a i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <sb-uic-skeleton-loader class=\"w-full\" [width]=\"'100%'\" [height]=\"'140px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex title-container px-2\">\n <div class=\"flex-1 text-center mat-subheading-2 title-text ws-mat-black-text\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded mb-2'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigurationsService, EventService, MultilingualTranslationsService, NsContent } from '@sunbird-cb/utils-v2';\nimport { WidgetContentService } from '../../../_services/widget-content.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'sb-uic-card-mdo-channel',\n templateUrl: './card-mdo-channel.component.html',\n styleUrls: ['./card-mdo-channel.component.scss']\n})\nexport class CardMDOChannelComponent implements OnInit {\n @Input() widgetData!: NsContent.IContent;\n @Output() channelData = new EventEmitter<any>()\n @Output() emitTelemetry = new EventEmitter<any>()\n @Input() isCardLoading: boolean = false\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n widgetType: any = ''\n widgetSubType: any =''\n\n constructor(\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,\n private contSvc: WidgetContentService,\n public router: Router) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n }\n\n raiseTelemetry(contentData: any) {\n this.emitTelemetry.emit(contentData)\n if (this.widgetData) {\n contentData['typeOfTelemetry'] = 'mdo-channel'\n }\n this.contSvc.changeTelemetryData(contentData)\n }\n channelClick(channeldata:any) {\n this.channelData.emit(channeldata)\n }\n\n redirectTo(content: any) {\n this.router.navigate([`/app/learn/mdo-channels/${content.orgName}/${content.identifier}/micro-sites`])\n }\n\n}\n","<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"raiseTelemetry(widgetData?.content); redirectTo(widgetData?.content); $event.stopPropagation()\"\n i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <ng-container *ngIf=\"widgetData?.content?.imgUrl; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.imgUrl\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.orgName\" />\n </ng-container>\n <ng-template #defaultImg>\n <sb-uic-avatar-photo [randomColor]=\"true\" [name]=\"widgetData?.content?.orgName\" [photoUrl]=\"widgetData?.content?.imgUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </ng-template>\n </div>\n <div class=\"flex title-container px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-center mat-subheading-2 title-text ws-mat-black-text\">\n {{ widgetData?.content?.orgName }}\n </div>\n </div>\n </div>\n </mat-card-content>\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=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\">\n <div class=\"display-contents\">\n <ng-container >\n <a i18n-aria-label>\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'140px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex title-container px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-center mat-subheading-2 title-text ws-mat-black-text\">\n {{ widgetData?.content?.orgName }}\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigurationsService, EventService, MultilingualTranslationsService, NsContent } from '@sunbird-cb/utils-v2';\nimport { Router } from '@angular/router';\nimport { WidgetContentService } from '../../../_services/widget-content.service';\n\n@Component({\n selector: 'sb-uic-card-karma-programs',\n templateUrl: './card-karma-programs.component.html',\n styleUrls: ['./card-karma-programs.component.scss']\n})\nexport class CardKarmaProgramsComponent implements OnInit {\n\n @Input() widgetData!: NsContent.IContent;\n @Input() randomColorApply: boolean = false\n @Output() userData = new EventEmitter<any>()\n @Input() isCardLoading: boolean = false\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n widgetType: any = ''\n widgetSubType: any =''\n randomColors: any = [\n '#EF941D',\n '#F97440',\n '#35B5B0',\n '#9988FF',\n '#254092',\n '#926525',\n '#4F72DF'\n ]\n\n constructor(\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,\n private contSvc: WidgetContentService,\n private router: Router) {\n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n this.setRandomColor()\n }\n\n setRandomColor(){\n if(this.widgetData && this.widgetData.content) {\n if(this.randomColorApply){\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomColors.length))\n this.widgetData.content['bgColor'] = this.randomColors[randomIndex1]\n }else {\n this.widgetData.content['bgColor'] = '#1a4ca1'\n }\n }\n }\n\n \n\n get getRandomColors(){\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomColors.length))\n return this.randomColors[randomIndex1]\n }\n\n redirectTo(data: any) {\n if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {\n data['typeOfTelemetry'] = 'karma-programs'\n }\n this.contSvc.changeTelemetryData(data)\n this.router.navigate(\n [`/app/learn/karma-programs/${data.title}/${data.playListKey}/${data.orgId}/micro-sites`],\n )\n }\n}\n","<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\" [ngStyle]=\"{'background': widgetData?.content?.bgColor}\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"redirectTo(widgetData?.content);$event.stopPropagation();\">\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <ng-container *ngIf=\"widgetData?.content?.imgSource && widgetData?.content?.imgSource?.length ; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.imgSource[0]\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.title\" />\n </ng-container>\n <ng-template #defaultImg>\n <sb-uic-avatar-photo [randomColor]=\"true\" [name]=\"widgetData?.content?.title\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </ng-template>\n </div>\n <div class=\"title-container\">\n <div class=\"flex px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-start mat-subheading-2 title-text ws-mat-white-text\">\n {{ widgetData?.content?.title }}\n </div>\n </div>\n <div class=\"flex px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-start margin-remove margin-top-xxs mat-subheading-2 title-text ws-mat-white-text\">\n {{ widgetData?.content?.children?.length}} Programs\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n</ng-container>\n<ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\" >\n <div class=\"display-contents\">\n <ng-container >\n <a >\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-col h-full\">\n <div class=\"image-container\">\n <ng-container >\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'100%'\" class=\"w-full h-full\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"title-container\">\n <div class=\"flex px-2\">\n <div class=\"flex-1 text-start mat-subheading-2 title-text ws-mat-white-text\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'100%'\" class=\"w-full h-full\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"flex px-2\">\n <div class=\"flex-1 text-start margin-remove margin-top-xxs mat-subheading-2 title-text ws-mat-white-text\">\n <sb-uic-skeleton-loader [width]=\"'120px'\" [height]=\"'100%'\" class=\"w-full h-full\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n// import { WidgetUserService } from '../../../../_services/widget-user.service';\nimport { ConfigurationsService, NsContent } from '@sunbird-cb/utils-v2';\nimport { WidgetContentService } from '../../../../_services/widget-content.service';\n\n@Component({\n selector: 'sb-uic-card-assessment',\n templateUrl: './card-assessment.component.html',\n styleUrls: ['./card-assessment.component.css']\n})\n\n// @Directive({\n// selector: '[callFunctionOnInit]'\n// })\nexport class CardAssessmentComponent implements OnInit {\n @Input() widgetData!: NsContent.IContent;\n @Input() enrollmentMapData: any\n @Output() contentData = new EventEmitter<any>()\n @Input() isCardLoading: boolean = false\n stripData: any = []\n enrollList: any = []\n activeResource: any = []\n defaultThumbnail: any\n defaultSLogo: any\n daysRemaining: number = 0;\n startDate: any\n endDate: any\n daysPending: boolean = false\n daysFinish: boolean = false\n private intervalId: any;\n days: number;\n hours: number;\n minutes: number;\n constructor(private configSvc: ConfigurationsService, private contSvc: WidgetContentService,) { }\n\n ngOnInit(): void {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n }\n }\n\n startCountdown(data: any): void {\n let startDate = data.startDate\n this.updateCountdown(startDate);\n // this.intervalId = setInterval(() => {\n // this.updateCountdown(startDate);\n // }, 1000);\n }\n\n // Method to update the countdown values\n updateCountdown(startDate: any): void {\n let now = new Date().getTime()\n let startingDate: any = new Date(startDate).getTime()\n // startingDate.setHours(startingDate.getHours() - 5);\n // startingDate.setMinutes(startingDate.getMinutes() - 30);\n // startingDate = startingDate.getTime()\n const distance = startingDate - now; \n if (distance > 0) {\n this.daysPending = true\n this.days = Math.floor(distance / (1000 * 60 * 60 * 24));\n this.hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n this.minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n } else {\n this.daysRemaining = 0;\n this.daysPending = false\n }\n\n }\n\n ngOnDestroy(): void {\n }\n\n getRedirectUrlData(contentData: any) {\n // for telemetry\n if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {\n contentData['typeOfTelemetry'] = this.widgetData.context.pageSection\n }\n this.contSvc.changeTelemetryData(contentData)\n // for redirection\n this.contentData.emit(contentData)\n }\n\n}\n","<ng-container *ngIf=\"!isCardLoading\">\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row 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 *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-s font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation &&\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<span>{{ startCountdown(widgetData?.content?.batch) }}</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"flex flex-row\" *ngIf=\"daysPending\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in</span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"big-text\"><b>{{ days }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">days</span> </span> &nbsp; : &nbsp; <span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"big-text\"><b>{{ hours }} </b><span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">hours</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span> &nbsp; : &nbsp; <span class=\"big-text\"> <b>{{ minutes }}</b> <span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"small-text\">minutes</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\">{{widgetData?.content?.batch?.startDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy HH:mm' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div *ngIf=\"!daysPending\" class=\"flex flex-row\"> \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-span\">Assessment ends on </span>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-s\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"start-btn\">Start Assessment</span> \n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"time-span flex items-center justify-center\">{{widgetData?.content?.batch?.endDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t| date: 'dd MMM yyy HH:mm' }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-container>\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\t<mat-card\n\t\tclass=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\"\n\t\t\t\t\t\t\t\t\t\t\t[height]=\"'155px'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\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 class=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>","import { Component, Inject, OnInit } from '@angular/core'\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core'\nimport { EventService, MultilingualTranslationsService, WsEvents } from '@sunbird-cb/utils-v2'\nimport { jsPDF } from 'jspdf'\n\n@Component({\n selector: 'sb-uic-certificate-dialog',\n templateUrl: './certificate-dialog.component.html',\n styleUrls: ['./certificate-dialog.component.scss'],\n /* tslint:disable */\n host: { class: 'certificate-inner-dialog-panel' },\n /* tslint:enable */\n})\nexport class CertificateDialogComponent implements OnInit {\n url!: string\n navUrl = ''\n environment: any\n constructor(\n @Inject('environment') environment: any,\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n public dialogRef: MatDialogRef<CertificateDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n this.environment = environment\n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n this.url = this.data.cet\n // tslint:disable-next-line:max-line-length\n this.navUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${this.environment.contentHost}/apis/public/v8/cert/download/${this.data.certId}`\n }\n\n downloadCert() {\n this.raiseIntreactTelemetry('svg')\n const a: any = document.createElement('a')\n a.href = this.data.cet\n a.download = 'Certificate'\n document.body.appendChild(a)\n a.style = 'display: none'\n a.click()\n a.remove()\n }\n\n downloadCertPng() {\n this.raiseIntreactTelemetry('png')\n const uriData = this.data.cet\n const img = new Image()\n img.src = uriData\n img.width = 1820\n img.height = 1000\n img.onload = () => {\n const canvas = document.createElement('canvas');\n [canvas.width, canvas.height] = [img.width, img.height]\n const ctx = canvas.getContext('2d')\n if (ctx) {\n // ctx.imageSmoothingEnabled = true\n ctx.drawImage(img, 0, 0, img.width, img.height)\n const a = document.createElement('a')\n const quality = 1.0 // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality\n a.href = canvas.toDataURL('image/png', quality)\n a.download = 'Certificate'\n a.append(canvas)\n a.click()\n a.remove()\n }\n }\n }\n async downloadCertPdf() {\n this.raiseIntreactTelemetry('pdf')\n const uriData = this.data.cet\n const img = new Image()\n img.src = uriData\n img.width = 1820\n img.height = 1000\n img.onload = () => {\n const canvas = document.createElement('canvas');\n [canvas.width, canvas.height] = [img.width, img.height]\n const ctx = canvas.getContext('2d')\n if (ctx) {\n ctx.drawImage(img, 0, 0, img.width, img.height)\n const quality = 1.0 // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality\n const dataImg = canvas.toDataURL('application/pdf', quality)\n const pdf = new jsPDF('landscape', 'px', 'a4')\n\n // add the image to the PDF\n pdf.addImage(dataImg, 10, 20, 600, 350)\n\n // download the PDF\n pdf.save('Certificate.pdf')\n }\n }\n }\n\n shareCert() {\n this.raiseShareIntreactTelemetry('share')\n return window.open(this.navUrl, '_blank')\n }\n\n raiseShareIntreactTelemetry(type?: string, action?: string) {\n this.events.raiseInteractTelemetry(\n {\n type: WsEvents.EnumInteractTypes.CLICK,\n id: `${type}-${WsEvents.EnumInteractSubTypes.CERTIFICATE}`,\n subType: action && action,\n },\n {\n id: this.data.certId, // id of the certificate\n type: WsEvents.EnumInteractSubTypes.CERTIFICATE,\n }\n )\n }\n\n raiseIntreactTelemetry(action?: string) {\n this.events.raiseInteractTelemetry(\n {\n type: WsEvents.EnumInteractTypes.CLICK,\n id: 'download-certificate',\n subType: action && action,\n },\n {\n id: this.data.certId, // id of the certificate\n type: WsEvents.EnumInteractSubTypes.CERTIFICATE,\n }\n )\n }\n\n}\n","<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex gap-4 flex-row-reverse\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button (click)=\"shareCert()\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n","import { Injectable } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { HttpClient } from '@angular/common/http'\n\nconst urls = {\n DOWNLOAD_CERTIFICATE: (id: string) => `certreg/v2/certs/download/${id}`,\n DOWNLOAD_CERTIFICATE_v2: (id: string) => `apis/protected/v8/cohorts/course/batch/cert/download/${id}`,\n}\n\n@Injectable({\n providedIn: 'root'\n})\n\n\nexport class CertificateService {\n\n constructor(private http: HttpClient) { }\n downloadCertificate(id: string): Observable<any> {\n return this.http.get<any>(urls.DOWNLOAD_CERTIFICATE(id))\n }\n\n downloadCertificate_v2(id: string): Observable<any> {\n return this.http.get<any>(urls.DOWNLOAD_CERTIFICATE_v2(id))\n }\n}\n","import { Component, HostBinding, Input, OnChanges } from '@angular/core'\n\n@Component({\n selector: 'sb-uic-content-progress',\n templateUrl: './content-progress.component.html',\n styleUrls: ['./content-progress.component.scss'],\n /* tslint:disable */\n host: {\n // Sets the role for this component to \"progressbar\"\n role: 'progressbar',\n // Sets the minimum and maximum values for the progressbar role.\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n 'title': 'progres',\n // Binding that updates the current value of the progressbar.\n '[attr.aria-valuenow]': 'progress',\n },\n /* tslint:enable */\n})\nexport class ContentProgressComponent implements OnChanges {\n @Input()\n contentId = ''\n\n @Input()\n progress = 0\n\n @Input()\n progressType = ''\n\n @Input()\n forPreview = false\n\n @Input()\n className = ''\n @Input()\n customClassName: any = 'accent-progress'\n\n rendom = Math.random()\n @HostBinding('id')\n public id = `progress_${Math.random()}`\n constructor(\n // private progressSvc: ContentProgressService\n ) {\n if (this.contentId) {\n this.id = this.contentId\n }\n }\n\n ngOnChanges() {\n if (this.contentId && !this.progress && !this.forPreview) {\n // this.progressSvc.getProgressFor(this.contentId).subscribe(data => {\n // this.progress = data\n // if (this.progress) {\n // this.progress = Math.round(this.progress * 10000) / 100\n // }\n // })\n }\n\n if (this.progress) {\n if (this.progressType === 'percentage') {\n this.progress = this.progress\n } else {\n this.progress = Math.round(this.progress * 10000) / 100\n }\n }\n }\n}\n","<mat-progress-bar [mode]=\"'determinate'\" [matTooltip]=\"progress + ' %'\" [value]=\"progress\" class=\"new-w content-progress {{customClassName}}\"\n [attr.aria-labelledby]=\"'m-c-'+ contentId\" [ngClass]=\"{ 'visibility-0': progress === undefined, 'thick': className}\"\n i18n-aria-label> {{ progress }} % </mat-progress-bar>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NsCardContent } from '../../../_models/card-content.model';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\nimport { WidgetContentService } from '../../../_services/widget-content.service';\nimport { ConfigurationsService, EventService, WsEvents } from '@sunbird-cb/utils-v2';\nimport * as _ from \"lodash\";\nimport { CertificateService } from '../../../_services/certificate.service';\nimport { CertificateDialogComponent } from '../../dialog-components/certificate-dialog/certificate-dialog.component';\n\n@Component({\n selector: 'sb-uic-card-progress-portrait-lib',\n templateUrl: './card-progress-portrait-lib.component.html',\n styleUrls: ['./card-progress-portrait-lib.component.scss']\n})\nexport class CardProgressPortraitLibComponent implements OnInit {\n\n @Input() widgetData!: NsCardContent.ICard;\n @Input() isLiveOrMarkForDeletion: any\n @Input() showIntranetContent: any\n @Input() isIntranetAllowedSettings: any\n @Input() isCardLoading: boolean = false\n @Output() contentData = new EventEmitter<any>()\n @Input() cbPlanMapData: any\n isCardFlipped:boolean = false\n acbpConstants = NsCardContent.ACBPConst\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n showFlip = false\n widgetType: any = 'df'\n widgetSubType: any ='sdf'\n downloadCertificateLoading: boolean = false\n\n constructor(\n private snackBar: MatSnackBar,\n private translate: TranslateService,\n private events: EventService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,\n private contSvc: WidgetContentService,\n private certificateService: CertificateService,\n private dialog: MatDialog,\n ) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n }\n\n showSnackbar() {\n if (this.showIntranetContent) {\n this.snackBar.open('Content is only available in intranet', 'X', { duration: 2000 })\n } else if (!this.isLiveOrMarkForDeletion) {\n this.snackBar.open('Content may be expired or deleted', 'X', { duration: 2000 })\n }\n }\n getRedirectUrlData(contentData: any){\n // for telemetry\n if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {\n contentData['typeOfTelemetry'] = this.widgetData.context.pageSection\n }\n this.contSvc.changeTelemetryData(contentData)\n // for redirection\n this.contentData.emit(contentData)\n }\n\n translateLabels(label: string, type: any, subtype?: any) {\n return this.langtranslations.translateLabelWithoutspace(label, type, subtype)\n }\n raiseTelemetry() {\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: `${this.widgetType}-${this.widgetSubType}`,\n id: `${_.camelCase(this.widgetData.content.primaryCategory)}-card`,\n },\n {\n id: this.widgetData.content.identifier,\n type: this.widgetData.content.primaryCategory,\n //context: this.widgetData.context,\n rollup: {},\n ver: `${this.widgetData.content.version}${''}`,\n },\n {\n pageIdExt: `${_.camelCase(this.widgetData.content.primaryCategory)}-card`,\n module: _.camelCase(this.widgetData.content.primaryCategory),\n })\n }\n\n downloadCertificate(certificateData: any) {\n this.events.raiseInteractTelemetry(\n {\n type: WsEvents.EnumInteractTypes.CLICK,\n id: 'view-certificate',\n subType: WsEvents.EnumInteractSubTypes.CERTIFICATE,\n },\n {\n id: certificateData.issuedCertificates[0].identifier, // id of the certificate\n type: WsEvents.EnumInteractSubTypes.CERTIFICATE,\n })\n if(certificateData.issuedCertificates.length > 0) {\n this.downloadCertificateLoading = true\n let certData: any = certificateData.issuedCertificates[0]\n this.certificateService.downloadCertificate_v2(certData.identifier).subscribe((res: any)=>{\n this.downloadCertificateLoading = false\n const cet = res.result.printUri\n this.dialog.open(CertificateDialogComponent, {\n width: '1300px',\n data: { cet, certId: certData.identifier },\n })\n })\n } else {\n this.downloadCertificateLoading = false\n }\n }\n\n}\n","<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\" [ngClass]=\"{'retiredCards': widgetData?.content?.status === 'Retired' && widgetData?.content?.completionPercentage === 100}\">\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\" [ngClass]=\"{'retiredCards': widgetData?.content?.status === 'Retired' && widgetData?.content?.completionPercentage === 100}\">\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>","import { Component, Input, OnInit } from '@angular/core';\nimport { NsCardContent } from '../../../_models/card-content.model';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'sb-uic-provider-card',\n templateUrl: './provider-card.component.html',\n styleUrls: ['./provider-card.component.scss']\n})\nexport class ProviderCardComponent implements OnInit {\n @Input() widgetData!: NsCardContent.ICard;\n @Input() randomColorApply: boolean = true\n @Input() isCardLoading: boolean = false\n\n colors = [\n '#EF941D', '#F97440', '#35B5B0', '#9988FF', '#816FEC',\n '#254092', '#926525', '#4F72DF'\n ];\n\n constructor(private router: Router) {}\n\n ngOnInit() {\n this.setRandomColor()\n }\n\n setRandomColor(){\n if(this.widgetData && this.widgetData.content) {\n if(this.randomColorApply){\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.colors.length))\n this.widgetData.content['bgColor'] = this.colors[randomIndex1]\n }else {\n this.widgetData.content['bgColor'] = '#1a4ca1'\n }\n }\n }\n \n\n redirectTo(content: any) { \n this.router.navigate([`/app/learn/browse-by/provider/${content.name}/${content.orgId}/micro-sites`])\n }\n\n\n}","<!-- <div class=\"providers-container\">\n <div class=\"provider-card\" *ngFor=\"let provider of providers; let i = index\" [ngStyle]=\"{'border-top': '72px solid ' + colors[i % colors.length]}\">\n <div class=\"circle-wrapper\">\n <div class=\"circle\">\n <div class=\"background-circle\">\n <img [src]=\"provider.logo\" alt=\"{{ provider.name }}\">\n </div>\n </div>\n </div>\n <div class=\"provider-content\">\n <p>{{ provider.name }}</p>\n <div class=\"view-provider-button\" (click)=\"redirectTo(provider)\">View Provider ></div>\n </div>\n </div>\n </div> -->\n <!-- {{widgetData|json}} -->\n\n\n<ng-container *ngIf=\"!isCardLoading\">\n <ng-container *ngIf=\"widgetData && widgetData?.content\">\n <div class=\"providers-container\">\n <div class=\"provider-card\" [ngStyle]=\"{'border-top': '72px solid ' + widgetData?.content?.bgColor || 'transparent'}\">\n <div class=\"circle-wrapper\">\n <div class=\"circle\">\n <div class=\"background-circle\">\n <ng-container *ngIf=\"widgetData?.content?.logoUrl; else defaultImg\">\n <img [src]=\"widgetData?.content?.logoUrl\" alt=\"{{ widgetData?.content?.name }}\">\n </ng-container>\n <ng-template #defaultImg>\n <sb-uic-avatar-photo [randomColor]=\"true\" [name]=\"widgetData?.content?.name\" [photoUrl]=\"widgetData?.content?.logoUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </ng-template>\n \n </div>\n </div>\n </div>\n <div class=\"provider-content\">\n <p>{{ widgetData?.content?.name }}</p>\n <div class=\"view-provider-button flex items-center\" (click)=\"redirectTo(widgetData.content)\">View Provider \n <mat-icon class=\"\" color=\"accent\">navigate_next</mat-icon></div>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"isCardLoading\">\n <div class=\"providers-container\">\n <div class=\"provider-card\" [ngStyle]=\"{'border-top': '72px solid gray'}\">\n <div class=\"circle-wrapper\">\n <div class=\"circle\">\n <div class=\"background-circle\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'100%'\" class=\"w-full h-full\" [bindingClass]=\"'flex rounded rounded-full'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"w-full p-4 provider-content\">\n <p class=\"w-full pl-4\"> <sb-uic-skeleton-loader [width]=\"'200px'\" [height]=\"'12px'\" class=\"w-full h-full\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></p>\n <div class=\"w-full pl-4 view-provider-button\" (click)=\"redirectTo(widgetData.content)\"><sb-uic-skeleton-loader [width]=\"'200px'\" [height]=\"'12px'\" class=\"w-full h-full\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></div>\n </div>\n </div>\n </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NsCardContent } from '../../../_models/card-content.model';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\nimport { WidgetContentService } from '../../../_services/widget-content.service';\n\n@Component({\n selector: 'sb-uic-card-portrait-ext',\n templateUrl: './card-portrait-ext.component.html',\n styleUrls: ['./card-portrait-ext.component.scss']\n})\nexport class CardPortraitExtComponent implements OnInit {\n @Input() widgetData!: NsCardContent.ICard;\n @Input() isLiveOrMarkForDeletion: any\n @Input() showIntranetContent: any\n @Input() isIntranetAllowedSettings: any\n @Input() isCardLoading: boolean = false\n @Output() contentData = new EventEmitter<any>()\n @Input() cbPlanMapData: any\n isCardFlipped:boolean = false\n acbpConstants = NsCardContent.ACBPConst\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n showFlip = false\n widgetType: any = 'df'\n widgetSubType: any ='sdf'\n constructor(\n private snackBar: MatSnackBar,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,\n private contSvc: WidgetContentService,) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n if (this.widgetData && this.widgetData.content) {\n this.widgetData.content.duration = this.widgetData.content.duration * 60\n }\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n }\n\n showSnackbar() {\n if (this.showIntranetContent) {\n this.snackBar.open('Content is only available in intranet', 'X', { duration: 2000 })\n } else if (!this.isLiveOrMarkForDeletion) {\n this.snackBar.open('Content may be expired or deleted', 'X', { duration: 2000 })\n }\n }\n getRedirectUrlData(contentData: any){\n // for telemetry\n if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {\n contentData['typeOfTelemetry'] = this.widgetData.context.pageSection\n }\n this.contSvc.changeTelemetryData(contentData)\n // for redirection\n this.contentData.emit(contentData)\n }\n}\n","<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?.contentPartner?.link\" 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]=\"'External 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\" [matTooltip]=\"widgetData?.content?.name\">\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?.contentPartner?.link \" 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?.contentPartner?.contentPartnerName) ? widgetData?.content?.contentPartner?.contentPartnerName : '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>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { WidgetBaseComponent, NsWidgetResolver } from '@sunbird-cb/resolver-v2';\nimport { NsCardContent } from '../../_models/card-content.model';\nimport { UtilityService } from '@sunbird-cb/utils-v2';\nimport { WidgetContentService } from '../../_services/widget-content.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'sb-uic-cards',\n templateUrl: './cards.component.html',\n styleUrls: ['./cards.component.scss']\n})\nexport class CardsComponent extends WidgetBaseComponent\nimplements OnInit, NsWidgetResolver.IWidgetData<NsCardContent.ICard> {\n\n @Input() widgetData!: NsCardContent.ICard;\n @Output() triggerTelemetry = new EventEmitter<any>()\n isIntranetAllowedSettings = false\n cbPlanMapData: any\n cbPlanInterval: any\n enrollInterval: any\n enrollmentMapData: any\n constructor(private utilitySvc: UtilityService,\n private contSvc: WidgetContentService,\n public router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n this.cbPlanInterval = setInterval(() => {\n this.getCbPlanData()\n }, 1000)\n \n this.enrollInterval = setInterval(() => {\n this.getEnrollmentData()\n // tslint:disable-next-line\n }, 1000)\n }\n\n get isLiveOrMarkForDeletion() {\n if (\n !this.widgetData.content.status ||\n this.widgetData.content.status === 'Live' ||\n this.widgetData.content.status === 'MarkedForDeletion'\n ) {\n return true\n }\n return false\n }\n\n get showIntranetContent() {\n if (this.widgetData.content.isInIntranet && this.utilitySvc.isMobile) {\n return !this.isIntranetAllowedSettings\n }\n return false\n }\n async getRedirectUrlData(content: any){\n if(content.externalId) {\n this.router.navigate(\n [`app/toc/ext/${content.contentId}`])\n } else {\n let urlData = await this.contSvc.getResourseLink(content)\n this.router.navigate(\n [urlData.url],\n {\n queryParams: urlData.queryParams\n })\n }\n \n }\n getCbPlanData() {\n let cbpList: any={}\n if (localStorage.getItem('cbpData')) {\n let cbpListArr = JSON.parse(localStorage.getItem('cbpData') || '')\n if (cbpListArr && cbpListArr.length) {\n cbpListArr.forEach((data: any) => {\n cbpList[data.identifier] = data\n })\n }\n this.cbPlanMapData = cbpList\n // this.karmaPointLoading = false\n clearInterval(this.cbPlanInterval)\n }\n }\n\n getEnrollmentData() {\n if (localStorage.getItem('enrollmentMapData')) {\n this.enrollmentMapData = JSON.parse(localStorage.getItem('enrollmentMapData') || '{}')\n clearInterval(this.enrollInterval)\n }\n }\n\n raiseCardClick(data: any) {\n this.triggerTelemetry.emit(data)\n }\n}\n","<div class=\"widget-card-content-new\">\n <ng-container *ngIf=\"widgetData && (((widgetData?.deletedMode || 'none') === 'hide' && !!!isLiveOrMarkForDeletion)\n ? false\n : !((widgetData?.intranetMode || 'none') === 'hide' && !!showIntranetContent))\"\n [ngSwitch]=\"( (widgetData && widgetData?.cardSubType) || 'cardPortraitLib')\">\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"cardPortraitLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'user-card'\" [ngTemplateOutlet]=\"cardUser\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-lib-skeleton'\" [ngTemplateOutlet]=\"cardPortraitLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-lib'\" [ngTemplateOutlet]=\"cardPortraitLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-landscape-lib-skeleton'\" [ngTemplateOutlet]=\"cardLandscapeLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-landscape-lib'\" [ngTemplateOutlet]=\"cardLandscapeLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-lib-skeleton'\" [ngTemplateOutlet]=\"cardWideLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-lib'\" [ngTemplateOutlet]=\"cardWideLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-v2'\" [ngTemplateOutlet]=\"cardWideV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-wide-v2-skeleton'\" [ngTemplateOutlet]=\"cardWideV2Skeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-lib'\" [ngTemplateOutlet]=\"cardMdo\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-home-lib'\" [ngTemplateOutlet]=\"cardMdoHome\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-home-lib-skeleton'\" [ngTemplateOutlet]=\"cardMdoHomeSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-mdo-lib-skeleton'\" [ngTemplateOutlet]=\"cardMdoSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-scheduled-assessment'\" [ngTemplateOutlet]=\"cardScheduledAssessment\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-scheduled-assessment-skeleton'\" [ngTemplateOutlet]=\"cardScheduledAssessmentSkelton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib'\" [ngTemplateOutlet]=\"cardKarmaProgram\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-skeleton'\" [ngTemplateOutlet]=\"cardKarmaProgramSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-progress-portrait-lib'\" [ngTemplateOutlet]=\"cardProgressLib\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-progress-portrait-lib-skeleton'\" [ngTemplateOutlet]=\"cardProgressLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-v2'\" [ngTemplateOutlet]=\"cardKarmaProgramV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-karma-program-lib-v2-skeleton'\" [ngTemplateOutlet]=\"cardKarmaProgramV2\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-providers-lib'\" [ngTemplateOutlet]=\"cardProvider\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-providers-lib-skeleton'\" [ngTemplateOutlet]=\"cardProviderSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-ext-lib-skeleton'\" [ngTemplateOutlet]=\"cardPortraitExtLibSkeleton\"></ng-container>\n <ng-container *ngSwitchCase=\"'card-portrait-ext-lib'\" [ngTemplateOutlet]=\"cardPortraitExtLib\"></ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #cardPortraitLibSkeleton>\n <sb-uic-card-portrait [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-portrait>\n</ng-template>\n<ng-template #cardPortraitLib>\n <sb-uic-card-portrait \n [cbPlanMapData]=\"cbPlanMapData\"\n (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-portrait>\n</ng-template>\n<ng-template #cardLandscapeLibSkeleton>\n <sb-uic-card-landscape [widgetData]=\"widgetData\" \n [cbPlanMapData]=\"cbPlanMapData\" [isCardLoading]=\"true\"></sb-uic-card-landscape>\n</ng-template>\n<ng-template #cardLandscapeLib>\n <sb-uic-card-landscape\n (contentData)=\"getRedirectUrlData($event)\"\n (triggerTelemetry)=\"raiseCardClick($event)\"\n [widgetData]=\"widgetData\"\n [cbPlanMapData]=\"cbPlanMapData\"\n [isCardLoading]=\"false\">\n </sb-uic-card-landscape>\n</ng-template>\n\n<ng-template #cardWideLib>\n <sb-uic-card-wide (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n<ng-template #cardWideLibSkeleton>\n <sb-uic-card-wide [widgetData]=\"widgetData\"></sb-uic-card-wide>\n</ng-template>\n\n<ng-template #cardWideV2Skeleton>\n <sb-uic-card-wide-v2 [widgetData]=\"widgetData\" [isCardLoading]=\"true\" ></sb-uic-card-wide-v2>\n</ng-template>\n<ng-template #cardWideV2>\n <sb-uic-card-wide-v2\n (contentData)=\"getRedirectUrlData($event)\"\n (triggerTelemetry)=\"raiseCardClick($event)\"\n [cbPlanMapData]=\"cbPlanMapData\"\n [isCardLoading]=\"false\"\n [widgetData]=\"widgetData\">\n </sb-uic-card-wide-v2>\n</ng-template>\n\n<ng-template #cardUser>\n <sb-uic-card-user [widgetData]=\"widgetData\"></sb-uic-card-user>\n</ng-template>\n<ng-template #cardMdoHome>\n <sb-uic-card-mdo-channel-v1 [isCardLoading]=\"false\" [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel-v1>\n</ng-template>\n<ng-template #cardMdoHomeSkeleton>\n <sb-uic-card-mdo-channel-v1 [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel-v1>\n</ng-template>\n<ng-template #cardMdo>\n <sb-uic-card-mdo-channel [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel>\n</ng-template>\n<ng-template #cardMdoSkeleton>\n <sb-uic-card-mdo-channel [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-mdo-channel>\n</ng-template>\n<ng-template #cardKarmaProgramSkeleton>\n <sb-uic-card-karma-programs [randomColorApply]=\"true\" \n [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-karma-programs>\n</ng-template>\n<ng-template #cardKarmaProgram>\n <sb-uic-card-karma-programs [randomColorApply]=\"true\" \n [isCardLoading]=\"false\" [widgetData]=\"widgetData\"></sb-uic-card-karma-programs>\n</ng-template>\n<ng-template #cardScheduledAssessmentSkelton>\n <sb-uic-card-assessment [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-assessment>\n</ng-template>\n<ng-template #cardScheduledAssessment>\n <sb-uic-card-assessment [widgetData]=\"widgetData\" (contentData)=\"getRedirectUrlData($event)\" [isCardLoading]=\"false\" [enrollmentMapData]=\"enrollmentMapData\"></sb-uic-card-assessment>\n</ng-template>\n<ng-template #cardProgressLibSkeleton>\n <sb-uic-card-progress-portrait-lib \n [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-card-progress-portrait-lib>\n</ng-template>\n<ng-template #cardProgressLib>\n <sb-uic-card-progress-portrait-lib \n [isCardLoading]=\"false\" (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\"></sb-uic-card-progress-portrait-lib>\n</ng-template>\n<ng-template #cardKarmaProgramV2>\n <!-- <sb-uic-card-karma-programs-v2 [widgetData]=\"widgetData\"><sb-uic-card-karma-programs-v2> -->\n</ng-template>\n<ng-template #cardProvider>\n <sb-uic-provider-card [isCardLoading]=\"false\" [widgetData]=\"widgetData\"></sb-uic-provider-card>\n</ng-template>\n<ng-template #cardProviderSkeleton>\n <sb-uic-provider-card [isCardLoading]=\"true\" [widgetData]=\"widgetData\"></sb-uic-provider-card>\n</ng-template>\n\n<!-- cios card -->\n<ng-template #cardPortraitExtLibSkeleton>\n <sb-uic-card-portrait-ext [widgetData]=\"widgetData\" [isCardLoading]=\"true\"></sb-uic-card-portrait-ext>\n</ng-template>\n<ng-template #cardPortraitExtLib>\n <sb-uic-card-portrait-ext \n [cbPlanMapData]=\"cbPlanMapData\"\n (contentData)=\"getRedirectUrlData($event)\" [widgetData]=\"widgetData\" [isCardLoading]=\"false\"></sb-uic-card-portrait-ext>\n</ng-template>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver-v2';\nimport { NsCardContent } from '../../../_models/card-content.model';\n\n@Component({\n selector: 'ws-cb-widget-card-resource',\n templateUrl: './card-resource.component.html',\n styleUrls: ['./card-resource.component.scss'],\n})\nexport class CardResourceComponent extends WidgetBaseComponent\nimplements OnInit, NsWidgetResolver.IWidgetData<NsCardContent.ICard> {\n\n @Input() widgetData!: NsCardContent.ICard;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n"," <!-- <mat-card class=\"card-resource-container mr-5 padding-remove cursor-pointer \" [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)=\"raiseTelemetry();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=\"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 <ws-widget-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 </ws-widget-display-content-type>\n </div>\n <div class=\"flex ml-5 flex-end course_v2\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <ws-widget-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 </ws-widget-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 [id]=\"'m-c-'+ widgetData.content?.identifier\"\n class=\"mat-subheading-1 description-text font-medium 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}} {{ (widgetData.content.organisation && widgetData.content.organisation[0]) ? widgetData.content.organisation[0] : 'Karmayogi Bharat' }}</span>\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","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipePublicURL } from './pipe-public-URL.pipe'\n\n@NgModule({\n declarations: [PipePublicURL],\n imports: [\n CommonModule,\n ],\n exports: [PipePublicURL],\n})\nexport class PipePublicURLModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'objectToArray'\n})\nexport class ObjectToArrayPipe implements PipeTransform {\n // transform(value: any, ...args: any[]): any[] {\n // console.log(\"function called\")\n // if (!value) {\n // return [];\n // }\n // console.log(Object.keys(value).map(key => ({ key, value: value[key] })), \"Object.keys(value).map(key => ({ key, value: value[key] }))==----------\")\n // return Object.keys(value).map(key => ({ key, value: value[key] }));\n // }\n transform(...args: any[]): any[] { \n return args; \n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { ObjectToArrayPipe } from './object-to-array.pipe'\n\n@NgModule({\n declarations: [ObjectToArrayPipe],\n imports: [\n CommonModule,\n ],\n exports: [ObjectToArrayPipe],\n})\nexport class ObjectToArrayPipeModule { }","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { DisplayContentTypeLibComponent } from './display-content-type-lib.component'\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms'\n\n@NgModule({\n declarations: [DisplayContentTypeLibComponent],\n imports: [CommonModule, ReactiveFormsModule, FormsModule],\n exports: [DisplayContentTypeLibComponent],\n})\nexport class DisplayContentTypeLibModule {}\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { DefaultThumbnailDirective } from './default-thumbnail.directive'\r\n\r\n@NgModule({\r\n declarations: [DefaultThumbnailDirective],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [DefaultThumbnailDirective],\r\n})\r\nexport class DefaultThumbnailModule { }\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeDurationTransformPipe } from './pipe-duration-transform.pipe'\r\n\r\n@NgModule({\r\n declarations: [PipeDurationTransformPipe],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [PipeDurationTransformPipe],\r\n})\r\nexport class PipeDurationTransformModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport * as _ from \"lodash\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigurationsService, EventService, MultilingualTranslationsService, NsContent } from '@sunbird-cb/utils-v2';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'sb-uic-card-karma-programs-v2',\n templateUrl: './card-karma-programs-v2.component.html',\n styleUrls: ['./card-karma-programs-v2.component.scss']\n})\nexport class CardKarmaProgramsV2Component implements OnInit {\n\n @Input() widgetData!: NsContent.IContent;\n @Input() randomColorApply: boolean = false\n @Output() userData = new EventEmitter<any>()\n @Output() raiseTemeletry = new EventEmitter<any>()\n defaultThumbnail: any\n sourceLogos: any\n defaultSLogo: any\n widgetType: any = ''\n widgetSubType: any =''\n randomColors: any = [\n '#EF941D',\n '#F97440',\n '#35B5B0',\n '#9988FF',\n '#254092',\n '#926525',\n '#4F72DF'\n ]\n\n constructor(\n private events: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private configSvc: ConfigurationsService,\n private router : Router,) { \n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n ngOnInit() {\n const instanceConfig = this.configSvc.instanceConfig\n if (instanceConfig) {\n this.defaultThumbnail = instanceConfig.logos.defaultContent || ''\n this.sourceLogos = instanceConfig.sources\n this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || ''\n } else {\n this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png'\n this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg'\n }\n this.setRandomColor()\n }\n\n setRandomColor(){\n if(this.widgetData && this.widgetData.content) {\n if(this.randomColorApply){\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomColors.length))\n this.widgetData.content['bgColor'] = this.randomColors[randomIndex1]\n }else {\n this.widgetData.content['bgColor'] = '#1a4ca1'\n }\n }\n }\n\n redirectTo(content: any) {\n this.raiseTemeletry.emit(content)\n this.router.navigate(\n [`/app/learn/karma-programs/${content.title}/${content.playListKey}/${content.orgId}/micro-sites`],\n )\n }\n\n get getRandomColors(){\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomColors.length))\n return this.randomColors[randomIndex1]\n }\n}\n","<mat-card class=\"channels-card card-channels-container mr-5 padding-remove cursor-pointer\" [ngStyle]=\"{'background': widgetData?.content?.bgColor}\">\n <div class=\"display-contents\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"redirectTo(widgetData?.content);$event.stopPropagation()\">\n <ng-container>\n <mat-card-content class=\"min-top\">\n <div class=\"flex flex-row md:flex-col h-full\">\n <div class=\"image-container\">\n <ng-container *ngIf=\"widgetData?.content?.imgSource && widgetData?.content?.imgSource?.length ; else defaultImg\">\n <img mat-card-image [src]=\"widgetData?.content?.imgSource[0]\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.title\" />\n </ng-container>\n <ng-template #defaultImg>\n <sb-uic-avatar-photo [randomColor]=\"true\" [name]=\"widgetData?.content?.title\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </ng-template>\n </div>\n <div class=\"flex items-center\">\n <div class=\"title-container\">\n <div class=\"flex px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-start mat-subheading-2 title-text ws-mat-white-text\">\n {{ widgetData?.content?.title }}\n </div>\n </div>\n <div class=\"flex px-2\">\n <div [id]=\"'m-c-'+ widgetData?.content?.identifier\"\n class=\"flex-1 text-start margin-remove margin-top-xxs mat-subheading-2 title-text ws-mat-white-text\">\n {{ widgetData?.content?.children?.length}} Programs\n </div>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </a>\n </ng-container>\n </div>\n</mat-card>","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { ContentProgressComponent } from './content-progress.component'\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [ContentProgressComponent],\n imports: [\n CommonModule,\n MatProgressBarModule,\n MatTooltipModule,\n ],\n exports: [ContentProgressComponent],\n})\nexport class ContentProgressModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CertificateDialogComponent } from './certificate-dialog/certificate-dialog.component';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { HttpLoaderFactory } from '../content-strip-with-tabs-lib/content-strip-with-tabs-lib.module';\nimport { HttpClient } from '@angular/common/http';\nimport { PipeSafeSanitizerModule } from '@sunbird-cb/utils-v2';\n\n\n\n@NgModule({\n declarations: [\n CertificateDialogComponent\n ],\n imports: [\n CommonModule,\n MatMenuModule,\n MatCardModule,\n MatIconModule,\n MatDialogModule,\n PipeSafeSanitizerModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n ],\n exports:[\n CertificateDialogComponent\n ],\n entryComponents: [CertificateDialogComponent],\n})\nexport class DialogComponentsModule { }\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { RouterModule } from '@angular/router'\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { SbUiResolverModule } from '@sunbird-cb/resolver-v2'\nimport { AvatarPhotoLibComponent } from './avatar-photo-lib.component'\n\n@NgModule({\n declarations: [AvatarPhotoLibComponent],\n imports: [\n CommonModule,\n RouterModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n MatRippleModule,\n SbUiResolverModule,\n ],\n exports: [AvatarPhotoLibComponent],\n entryComponents: [AvatarPhotoLibComponent],\n})\nexport class AvatarPhotoLibModule { }\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CardResourceComponent } from './card-resource/card-resource.component';\r\nimport { CardsComponent } from './cards.component';\r\nimport { CardPortraitComponent } from './card-portrait/card-portrait.component';\r\nimport { PipePublicURLModule } from '../../_pipes/pipe-public-URL/pipe-public-URL.module';\r\nimport { ObjectToArrayPipeModule } from '../../_pipes/object-to-array/object-to-array.pipe.module';\r\nimport { DisplayContentTypeLibModule } from '../display-content-type-lib/display-content-type-lib.module';\r\nimport { DefaultThumbnailModule } from '../../_directives/default-thumbnail/default-thumbnail.module';\r\nimport { PipeDurationTransformModule } from '../../_pipes/pipe-duration-transform/pipe-duration-transform.module';\r\nimport { CardUserComponent } from './card-user/card-user.component';\r\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\r\nimport { CardLandscapeComponent } from './card-landscape/card-landscape.component';\r\nimport { CardWideComponent } from './card-wide/card-wide.component';\r\nimport { CardMDOChannelComponent } from './card-mdo-channel/card-mdo-channel.component';\r\nimport { CardWideV2Component } from './card-wide-v2/card-wide-v2.component';\r\nimport { CardKarmaProgramsComponent } from './card-karma-programs/card-karma-programs.component';\r\nimport { CardKarmaProgramsV2Component } from './card-karma-programs-v2/card-karma-programs-v2.component';\r\nimport { ProviderCardComponent } from './provider-card/provider-card.component';\r\nimport { CardPortraitExtComponent } from './card-portrait-ext/card-portrait-ext.component';\r\nimport { CardAssessmentComponent } from './card-assessment/card-assessment/card-assessment.component';\r\nimport { CardProgressPortraitLibComponent } from './card-progress-portrait-lib/card-progress-portrait-lib.component';\r\n// import { ContentProgressComponent } from './content-progress/content-progress.component';\r\nimport { ContentProgressModule } from './../content-progress/content-progress.module';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core'\r\nimport { HttpLoaderFactory } from '../content-strip-with-tabs-lib/content-strip-with-tabs-lib.module';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DialogComponentsModule } from '../dialog-components/dialog-components.module';\r\nimport { CardMdoChannelV1Component } from './card-mdo-channel-v1/card-mdo-channel-v1.component';\r\nimport { AvatarPhotoLibModule } from '../avatar-photo-lib/avatar-photo-lib.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CardResourceComponent,\r\n CardsComponent,CardPortraitComponent,\r\n CardUserComponent,\r\n CardLandscapeComponent,\r\n CardWideComponent,\r\n CardMDOChannelComponent,\r\n CardWideV2Component,\r\n CardKarmaProgramsComponent,\r\n CardKarmaProgramsV2Component,\r\n ProviderCardComponent,\r\n CardPortraitExtComponent,\r\n CardAssessmentComponent,\r\n CardProgressPortraitLibComponent,\r\n CardMdoChannelV1Component\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatCardModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n RouterModule,\r\n PipePublicURLModule,\r\n ObjectToArrayPipeModule,\r\n DisplayContentTypeLibModule,\r\n DefaultThumbnailModule,\r\n PipeDurationTransformModule,\r\n SkeletonLoaderLibModule,\r\n MatProgressSpinnerModule,\r\n ContentProgressModule,\r\n DialogComponentsModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient],\r\n },\r\n }),\r\n AvatarPhotoLibModule\r\n ],\r\n entryComponents:[CardsComponent],\r\n exports: [\r\n CardsComponent,\r\n CardResourceComponent,\r\n CardPortraitComponent, \r\n CardLandscapeComponent,\r\n CardUserComponent,\r\n CardWideComponent,\r\n CardMDOChannelComponent,\r\n CardWideV2Component,\r\n CardKarmaProgramsComponent,\r\n CardKarmaProgramsV2Component,\r\n CardPortraitExtComponent,\r\n ],\r\n})\r\nexport class CardsModule { }\r\n","import { NsWidgetResolver } from '@sunbird-cb/resolver-v2'\nimport { ROOT_WIDGET_CONFIG } from './consumption.config'\n// Components\nimport { CardsComponent } from './_common/cards/cards.component'\nimport { CardsModule } from './_common/cards/cards.module'\n\n\nexport const WIDGET_REGISTERED_LIB_MODULES = [\n CardsModule\n]\n\nexport const WIDGET_REGISTRATION_LIB_CONFIG: NsWidgetResolver.IRegistrationConfig[] = [\n {\n widgetType: ROOT_WIDGET_CONFIG.card._type,\n widgetSubType: ROOT_WIDGET_CONFIG.card.cardResource,\n component: CardsComponent,\n }\n]\n","import { NsWidgetResolver } from '@sunbird-cb/resolver-v2';\nimport { NSSearch } from '../../../_models/widget-search.model';\nimport { NsContent } from '../../../_models/widget-content.model';\nimport { NsCardContent } from '../../../_models/card-content.model';\n\nexport namespace NsContentStripWithFacets {\n export interface IContentStripMultiple {\n errorWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n loader?: boolean;\n noDataWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n strips: IContentStripUnit[];\n isChannelStrip?: boolean;\n }\n export interface IContentStripUnit {\n stripRequestFor?: string;\n onTabClickRequest?: boolean;\n hideViewMoreUrl?: boolean;\n type: string;\n disableTranslate?: any;\n key: string;\n title: string;\n customeClass?: string;\n nodataMsg?: string;\n stripTitleLink?: {\n link: {\n queryParams: string\n },\n icon: string,\n queryParams: string\n };\n sliderConfig?: {\n showNavs: boolean,\n showDots: boolean,\n maxWidgets?: number\n cerificateCardMargin?: boolean,\n dotsAlign?: \"right\" | \"left\",\n arrowsPlacement?: \"bottom-right\" | \"bottom-center\" | \"bottom-left\" | \"middle-inline\",\n responsive?: {\n showNavs: boolean,\n showDots: boolean,\n dotsAlign?: \"right\" | \"left\",\n arrowsPlacement?: \"bottom-right\" | \"bottom-center\" | \"bottom-left\" | \"middle-inline\",\n };\n };\n tabs?: NsContentStripWithFacets.IContentStripTab[] | undefined;\n titleDescription?: string;\n name?: string;\n mode?: string |'accordion';\n info?: IStripInfo;\n logo?: string;\n preWidgets?: NsWidgetResolver.IRenderConfigWithAnyData[];\n postWidgets?: NsWidgetResolver.IRenderConfigWithAnyData[];\n stripConfig?: IStripConfig;\n canHideStrip?: boolean;\n showStrip: boolean;\n filters?: any[];\n selectAll?: boolean | null;\n request?: {\n requestBody: any\n playlistRead: any;\n playlistSearch?: any;\n ciosContent?:any;\n search?: NSSearch.ISearchRequest\n searchV6?: NSSearch.ISearchV6Request\n topContent?: any\n featureContent?: any\n bookmarkRead?: any\n enrollmentList?: any\n cbpList?: any,\n apiUrl: string\n searchRegionRecommendation?: NSSearch.ISearchOrgRegionRecommendationRequest\n api?: IStripRequestApi\n networkApi?: INetworkRequestApi\n ids?: string[]\n recommendedCourses?: any,\n masterCompetency?: any\n trendingSearch?: any\n };\n searchV6Type?: 'KB' | 'Collections' | 'searchQuery' | null;\n stripBackground?: string;\n noDataWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n loader?: boolean;\n loaderWidgets?: any;\n errorWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n refreshEvent?: Record<'eventType' | 'from', string>;\n fetchLikes?: boolean;\n secondaryHeading?: any;\n viewMoreUrl?: {\n queryParams?: any\n viewMoreText: string\n path: string\n };\n data?: [];\n }\n\n export interface IStripRequestApi {\n path: string;\n queryParams?: {\n pageNo?: number\n pageSize?: number\n pageState?: string\n sourceFields?: string\n };\n }\n export interface INetworkRequestApi {\n path: string;\n data?: any;\n }\n export interface IStripInfo {\n mode: 'below' | 'popup' | 'modal';\n visibilityMode?: 'hidden' | 'visible';\n icon: {\n icon: string\n scale: number\n style?: any // added for UI\n };\n widget: NsWidgetResolver.IRenderConfigWithAnyData;\n }\n interface IStripConfig {\n // card subType key is used to determine the content Card display type\n cardSubType: NsCardContent.TCardSubType;\n // to show view more card for a search strip\n postCardForSearch?: boolean;\n intranetMode?: 'greyOut' | 'hide';\n deletedMode?: 'greyOut' | 'hide';\n contentTags?: IContentTags;\n hideShowAll?: boolean;\n }\n\n export interface IContentTags {\n daysSpan?: number;\n excludeContentType?: NsContent.EContentTypes[];\n excludeMimeType?: string[];\n tag: string;\n criteriaField: string;\n }\n export interface IContentStripResponseApi {\n contents: NsContent.IContent[];\n hasMore?: boolean;\n pageState?: string;\n totalHits?: number;\n }\n\n export interface IContentStripTab {\n pillsData?: any;\n label: string;\n value: string;\n showTabDataCount: boolean;\n requestRequired?: boolean;\n computeDataOnClick?: boolean;\n computeDataOnClickKey?: string;\n request?: any;\n widgets?: NsWidgetResolver.IRenderConfigWithAnyData[];\n maxWidgets?: number;\n fetchTabStatus?: string;\n nodataMsg?: string;\n tabLoading?: boolean;\n facets?: any;\n }\n\n \n}\n\nexport enum ApiRequestFor {\n SEARCH= 'search'\n}\n","import { Component, OnInit, Input, OnDestroy, HostBinding, Inject, EventEmitter, Output } from '@angular/core';\nimport { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver-v2';\nimport { NsContentStripWithFacets, ApiRequestFor } from './content-strip-facet-filter.model';\n// import { HttpClient } from '@angular/common/http'\nimport { WidgetContentService } from '../../../_services/widget-content.service';\nimport { NsContent } from '../../../_models/widget-content.model';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\nimport {\n TFetchStatus,\n LoggerService,\n EventService,\n ConfigurationsService,\n UtilityService,\n WsEvents,\n} from '@sunbird-cb/utils-v2';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { WidgetUserService } from '../../../_services/widget-user.service';\n// import { environment } from 'src/environments/environment'\n// tslint:disable-next-line\nimport * as _ from 'lodash'\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { NsCardContent } from '../../../_models/card-content-v2.model';\nimport { ITodayEvents } from '../../../_models/event';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\nimport { FormBuilder } from '@angular/forms';\n\ninterface IStripUnitContentData {\n key: string;\n canHideStrip: boolean;\n mode?: string;\n showStrip: boolean;\n disableTranslate: boolean;\n widgets?: NsWidgetResolver.IRenderConfigWithAnyData[];\n stripTitle: string;\n hideViewMoreUrl?: boolean;\n stripTitleLink?: {\n link: {\n queryParams: string\n },\n icon: string,\n queryParams: string\n };\n sliderConfig?: {\n showNavs: boolean,\n showDots: boolean,\n maxWidgets?: number\n cerificateCardMargin?: boolean\n };\n stripConfig: any;\n tabs?: NsContentStripWithFacets.IContentStripTab[] | undefined;\n stripName?: string;\n stripLogo?: string;\n description?: string;\n stripInfo?: NsContentStripWithFacets.IStripInfo;\n noDataWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n errorWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n showOnNoData: boolean;\n showOnLoader: boolean;\n showOnError: boolean;\n loaderWidgets?: any;\n stripBackground?: string;\n secondaryHeading?: any;\n viewMoreUrl: any;\n request?: any\n \n}\n\n\n@Component({\n selector: 'sb-uic-content-strip-facet-filter',\n templateUrl: './content-strip-facet-filter.component.html',\n styleUrls: ['./content-strip-facet-filter.component.scss']\n})\nexport class ContentStripFacetFilterComponent extends WidgetBaseComponent\nimplements\nOnInit,\nOnDestroy,\nNsWidgetResolver.IWidgetData<NsContentStripWithFacets.IContentStripMultiple> {\n @Input() widgetData!: NsContentStripWithFacets.IContentStripMultiple;\n @Output() emptyResponse = new EventEmitter<any>()\n @Output() viewAllResponse = new EventEmitter<any>()\n @Output() telemtryResponse = new EventEmitter<any>()\n @Input() providerId : any = ''\n @Input() emitViewAll : boolean = false\n @Input() channnelName: any = ''\n @HostBinding('id')\n public id = `ws-strip-miltiple_${Math.random()}`;\n stripsResultDataMap: { [key: string]: IStripUnitContentData } = {};\n stripsKeyOrder: string[] = [];\n showAccordionData = true;\n showParentLoader = false;\n showParentError = false;\n showParentNoData = false;\n errorDataCount = 0;\n noDataCount = 0;\n successDataCount = 0;\n contentAvailable = true;\n baseUrl = this.configSvc.sitePath || '';\n veifiedKarmayogi = false;\n environment!: any;\n changeEventSubscription: Subscription | null = null;\n defaultMaxWidgets = 12;\n enrollInterval: any;\n todaysEvents: any = [];\n enrollmentMapData: any\n facetForm: any\n constructor(\n @Inject('environment') environment: any,\n private contentSvc: WidgetContentService,\n private loggerSvc: LoggerService,\n private eventSvc: EventService,\n private configSvc: ConfigurationsService,\n public utilitySvc: UtilityService,\n public router: Router,\n private userSvc: WidgetUserService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n private _fb: FormBuilder\n ) {\n super();\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en');\n let lang = JSON.stringify(localStorage.getItem('websiteLanguage'));\n lang = lang.replace(/\\\"/g, '');\n this.translate.use(lang);\n }\n this.environment = environment\n }\n ngOnDestroy(): void {\n \n }\n\n ngOnInit() {\n this.initData();\n this.contentSvc.telemetryData$.subscribe((data: any) => {\n this.telemtryResponse.emit(data)\n })\n this.facetForm = this._fb.group({\n org: ['0']\n })\n }\n\n private initData() {\n this.stripsKeyOrder = this.widgetData && this.widgetData.strips && this.widgetData.strips.map(strip => strip.key) || [];\n if (this.widgetData.loader && this.widgetData.strips.length) {\n this.showParentLoader = true;\n }\n // Fetch the data\n for (const strip of this.widgetData.strips) {\n if (this.checkForEmptyWidget(strip)) {\n this.fetchStripFromRequestData(strip, false);\n } else {\n this.processStrip(strip, [], 'done', true, null);\n }\n }\n // Subscription for changes\n const keyAndEvent: { key: string; type: string; from: string }[] = this.widgetData.strips\n .map(strip => ({\n key: strip.key,\n type: (strip.refreshEvent && strip.refreshEvent.eventType) || '',\n from: (strip.refreshEvent && strip.refreshEvent.from.toString()) || '',\n }))\n .filter(({ key, type, from }) => key && type && from);\n const eventTypeSet = new Set(keyAndEvent.map(e => e.type));\n this.changeEventSubscription = this.eventSvc.events$\n .pipe(filter(event => eventTypeSet.has(event.eventType)))\n .subscribe(event => {\n keyAndEvent\n .filter(e => e.type === event.eventType && e.from === event.from)\n .map(e => e.key)\n .forEach(k => this.fetchStripFromKey(k, false));\n });\n }\n\n private fetchStripFromKey(key: string, calculateParentStatus = true) {\n const stripData = this.widgetData.strips.find(strip => strip.key === key);\n if (stripData) {\n this.fetchStripFromRequestData(stripData, calculateParentStatus);\n }\n }\n \n private fetchStripFromRequestData(\n strip: NsContentStripWithFacets.IContentStripUnit,\n calculateParentStatus = true,\n ) {\n // setting initial values\n strip.loaderWidgets = this.transformSkeletonToWidgets(strip);\n this.processStrip(strip, [], 'fetching', false, null);\n if(strip && strip.stripRequestFor === ApiRequestFor.SEARCH && !strip.onTabClickRequest) {\n this.fetchFromSearch(strip, calculateParentStatus);\n }\n }\n\n private transformSkeletonToWidgets(\n strip: any\n ) {\n return [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10].map(_content => ({\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n cardSubType: strip.loaderConfig && strip.loaderConfig.cardSubType || 'card-standard-skeleton',\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n },\n }));\n }\n\n private async processStrip(\n strip: NsContentStripWithFacets.IContentStripUnit,\n results: NsWidgetResolver.IRenderConfigWithAnyData[] = [],\n fetchStatus: TFetchStatus,\n calculateParentStatus = true,\n _viewMoreUrl: any,\n tabsResults?: NsContentStripWithFacets.IContentStripTab[] | undefined,\n // calculateParentStatus is used so that parents' status is not re-calculated if the API is called again coz of filters, etc.\n ) {\n const stripData = {\n viewMoreUrl: strip.viewMoreUrl,\n key: strip.key,\n canHideStrip: Boolean(strip.canHideStrip),\n showStrip: this.getIfStripHidden(strip.key),\n noDataWidget: strip.noDataWidget,\n errorWidget: strip.errorWidget,\n stripInfo: strip.info,\n stripTitle: strip.title,\n stripTitleLink: strip.stripTitleLink,\n disableTranslate: strip.disableTranslate,\n sliderConfig: strip.sliderConfig,\n tabs: tabsResults ? tabsResults : strip.tabs,\n stripName: strip.name,\n mode: strip.mode,\n stripConfig: strip.stripConfig,\n stripBackground: strip.stripBackground,\n secondaryHeading: strip.secondaryHeading,\n loaderWidgets: strip.loaderWidgets || [],\n hideViewMoreUrl:strip.hideViewMoreUrl || false,\n widgets:\n fetchStatus === 'done'\n ? [\n ...(strip.preWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ...results,\n ...(strip.postWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ]\n : [],\n showOnNoData: Boolean(\n strip.noDataWidget &&\n !((strip.preWidgets || []).length + results.length + (strip.postWidgets || []).length) &&\n fetchStatus === 'done',\n ),\n showOnLoader: Boolean(strip.loader && fetchStatus === 'fetching'),\n showOnError: Boolean(strip.errorWidget && fetchStatus === 'error'),\n };\n // const stripData = this.stripsResultDataMap[strip.key]\n this.stripsResultDataMap = {\n ...this.stripsResultDataMap,\n [strip.key]: stripData,\n };\n if (!tabsResults) {\n if (\n calculateParentStatus &&\n (fetchStatus === 'done' || fetchStatus === 'error') &&\n stripData.widgets\n ) {\n this.checkParentStatus(fetchStatus, stripData.widgets.length);\n }\n if (calculateParentStatus && !(results && results.length > 0)) {\n this.contentAvailable = false;\n } else if (results && results.length > 0) {\n this.contentAvailable = true;\n }\n } else {\n this.contentAvailable = true;\n }\n }\n\n private checkParentStatus(fetchStatus: TFetchStatus, stripWidgetsCount: number): void {\n if (fetchStatus === 'done' && !stripWidgetsCount) {\n this.noDataCount += 1;\n } else if (fetchStatus === 'done' && stripWidgetsCount) {\n this.successDataCount += 1;\n } else if (fetchStatus === 'error') {\n this.errorDataCount += 1;\n }\n const settledCount = this.noDataCount + this.successDataCount + this.errorDataCount;\n const totalCount = this.widgetData.strips.length;\n if (this.successDataCount > 0 && settledCount < totalCount) {\n return;\n }\n this.showParentLoader = settledCount !== totalCount;\n this.showParentNoData =\n this.noDataCount > 0 && this.noDataCount + this.errorDataCount === totalCount;\n this.showParentError = this.errorDataCount === totalCount;\n }\n checkForEmptyWidget(strip: NsContentStripWithFacets.IContentStripUnit): boolean {\n if (\n strip.request &&\n ((strip.request.requestBody && Object.keys(strip.request.requestBody).length))\n ) {\n return true;\n }\n return false;\n }\n // strip settings\n toggleInfo(data: IStripUnitContentData) {\n const stripInfo = this.stripsResultDataMap[data.key].stripInfo;\n if (stripInfo) {\n if (stripInfo.mode !== 'below') {\n this.loggerSvc.warn(`strip info mode: ${stripInfo.mode} not implemented yet`);\n stripInfo.mode = 'below';\n }\n if (stripInfo.mode === 'below') {\n this.stripsResultDataMap[data.key].stripInfo = {\n ...stripInfo,\n visibilityMode: stripInfo.visibilityMode === 'hidden' ? 'visible' : 'hidden',\n };\n }\n }\n }\n\n raiseTelemetry(stripData: any){\n this.telemtryResponse.emit(stripData)\n }\n setHiddenForStrip(key: string) {\n this.stripsResultDataMap[key].showStrip = false;\n sessionStorage.setItem(`cstrip_${key}`, '1');\n }\n // selected pills data\n getSelectedPillIndex(tabdata: any, tabIndex: any) {\n if(tabdata.pillsData && tabdata.pillsData.length) {\n let index = tabdata.pillsData.findIndex((pill: any) => {\n return pill.selected\n });\n return index\n }\n return 0\n }\n\n getdata(data: IStripUnitContentData) {\n if (data.stripInfo) {\n return data.stripInfo.widget;\n }\n return {};\n\n }\n\n public tabClicked(tabEvent: MatTabChangeEvent, pillIndex: any, stripMap: IStripUnitContentData, stripKey: string) {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = true;\n stripMap.showOnLoader = true;\n }\n const data: WsEvents.ITelemetryTabData = {\n label: `${tabEvent.tab.textLabel}`,\n index: tabEvent.index,\n };\n this.eventSvc.raiseInteractTelemetry(\n {\n type: WsEvents.EnumInteractTypes.CLICK,\n subType: WsEvents.EnumInteractSubTypes.HOME_PAGE_STRIP_TABS,\n id: `${_.camelCase(data.label)}-tab`,\n },\n {},\n {\n module: WsEvents.EnumTelemetrymodules.HOME,\n }\n );\n\n const currentTabFromMap: any = stripMap.tabs && stripMap.tabs[tabEvent.index];\n const currentPillFromMap: any = stripMap.tabs && stripMap.tabs[tabEvent.index].pillsData[pillIndex];\n const currentStrip = this.widgetData.strips.find(s => s.key === stripKey);\n if (this.stripsResultDataMap[stripKey] && currentTabFromMap) {\n this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams = {\n ...this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams,\n tabSelected: currentTabFromMap.value,\n pillSelected: currentPillFromMap.value,\n };\n }\n\n if (currentStrip && currentTabFromMap && !currentTabFromMap.computeDataOnClick && currentPillFromMap) {\n if (currentPillFromMap.requestRequired && currentPillFromMap.request) {\n if (currentPillFromMap.request.searchV6) {\n // this.getTabDataByNewReqSearchV6(currentStrip, tabEvent.index, currentTabFromMap, true);\n }\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = false;\n } else {\n this.getTabDataByfilter(currentStrip, currentTabFromMap, true);\n if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = true;\n this.resetFilter(stripMap, tabEvent.index ,pillIndex)\n }\n setTimeout(() => {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].fetchTabStatus = 'done';\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = false;\n this.resetSelectedPill(stripMap.tabs[tabEvent.index].pillsData)\n stripMap.tabs[tabEvent.index].pillsData[pillIndex]['selected']=true\n }\n }, 200);\n }\n }\n }\n\n pillClicked(event: any, stripMap: IStripUnitContentData, stripKey: any, pillIndex: any, tabIndex: any) {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = true;\n stripMap.showOnLoader = true;\n }\n const currentTabFromMap: any = stripMap.tabs && stripMap.tabs[tabIndex];\n const currentPillFromMap: any = stripMap.tabs && stripMap.tabs[tabIndex].pillsData[pillIndex];\n const currentStrip = this.widgetData.strips.find(s => s.key === stripKey);\n if (this.stripsResultDataMap[stripKey] && currentTabFromMap) {\n this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams = {\n ...this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams,\n tabSelected: currentTabFromMap.value,\n pillSelected: currentPillFromMap.value,\n };\n }\n if (currentStrip && currentTabFromMap && !currentTabFromMap.computeDataOnClick && currentPillFromMap) {\n if (currentPillFromMap.requestRequired && currentPillFromMap.request) {\n // call API to get tab data and process\n // this.processStrip(currentStrip, [], 'fetching', true, null)\n if (currentPillFromMap.request.searchV6) {\n // this.getTabDataByNewReqSearchV6(currentStrip, tabIndex, pillIndex, currentPillFromMap, true);\n } else if (currentPillFromMap.request.trendingSearch) {\n // this.getTabDataByNewReqTrending(currentStrip, tabIndex, pillIndex, currentPillFromMap, true);\n }\n // if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n // stripMap.tabs[tabEvent.index].tabLoading = false;\n // }\n\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n } else {\n this.getTabDataByfilter(currentStrip, currentTabFromMap, true);\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = true;\n this.resetFilter(stripMap, tabIndex ,pillIndex)\n }\n setTimeout(() => {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'done';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = false;\n this.resetSelectedPill(stripMap.tabs[tabIndex].pillsData)\n stripMap.tabs[tabIndex].pillsData[pillIndex]['selected']=true\n }\n }, 200);\n }\n }\n }\n\n resetSelectedPill(pillData: any){\n if(pillData && pillData.length){\n pillData.forEach((pill: any) => {\n pill['selected'] = false\n });\n }\n }\n\n getTabDataByfilter(\n strip: NsContentStripWithFacets.IContentStripUnit,\n currentTab: NsContentStripWithFacets.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n // tslint:disable:no-console\n console.log('strip -- ', strip);\n // tslint:disable:no-console\n console.log('currentTab -- ', currentTab);\n // tslint:disable:no-console\n console.log('calculateParentStatus-- ', calculateParentStatus);\n // TODO: Write logic for individual filter if passed in config\n // add switch case based on config key passed\n }\n\n private getIfStripHidden(key: string): boolean {\n const storageItem = sessionStorage.getItem(`cstrip_${key}`);\n return Boolean(storageItem !== '1');\n }\n\n // translate labes\n translateLabels(label: string, type: any) {\n return this.langtranslations.translateLabel(label, type, '');\n }\n\n redirectViewAll(stripData: any, path: string, queryParamsData: any) {\n if(this.emitViewAll) {\n this.viewAllResponse.emit(stripData)\n } else {\n this.router.navigate([path], { queryParams: queryParamsData })\n }\n }\n identify(index: number, item: any) {\n if (index >= 0) { }\n return item;\n }\n tracker(index: number, item: any) {\n if (index >= 0) { }\n return _.get(item, 'widgetData.content.identifier')\n }\n\n getContineuLearningLenth(data: IStripUnitContentData) {\n return data.widgets ? data.widgets.length : 0;\n }\n\n showAccordion(key: string) {\n if (this.utilitySvc.isMobile && this.stripsResultDataMap[key].mode === 'accordion') {\n return this.showAccordionData;\n }\n return true;\n }\n\n checkCondition(wData: NsContentStripWithFacets.IContentStripMultiple, data: IStripUnitContentData) {\n if (wData.strips[0].stripConfig && wData.strips[0].stripConfig.hideShowAll) {\n return !wData.strips[0].stripConfig.hideShowAll;\n }\n return wData.strips[0].viewMoreUrl && data.widgets && data.widgets.length >= 4;\n }\n checkVisible(data: IStripUnitContentData) {\n return data.stripInfo && data.stripInfo.visibilityMode === 'visible';\n }\n\n getSelectedIndex(stripsResultDataMap: any, key: any): number {\n let returnValue = 0;\n return returnValue;\n }\n\n getLength(data: IStripUnitContentData) {\n if (!data.tabs || !data.tabs.length) {\n return data.widgets ? data.widgets.length : 0;\n } {\n // if tabs are there check if each tab has widgets and get the tab with max widgets\n let tabWithMaxWidgets: any = {}\n data.tabs.forEach((tab: any)=>{\n if(tab.pillsData && tab.pillsData.length){\n tabWithMaxWidgets = tab.pillsData.reduce(\n (prev: any, current: any) => {\n if (!prev.widgets && !current.widgets) {\n return current;\n }\n if (prev.widgets && current.widgets) {\n return (prev.widgets.length > current.widgets.length) ? prev : current;\n }\n if (current.widgets && !prev.widgets) {\n return current;\n }\n if (!current.widgets && prev.widgets) {\n return prev;\n }\n return current;\n // return (prev.widgets && current.widgets && (prev.widgets.length > current.widgets.length) ) ? prev : current\n // tslint:disable-next-line: align\n }, data.tabs[0]);\n\n }\n })\n // if tabs has atleast 1 widgets then strip will show or else not\n return tabWithMaxWidgets.widgets ? tabWithMaxWidgets.widgets.length : 0;\n }\n }\n isStripShowing(data: any) {\n let count = 0;\n \n if (data && data.key === this.environment.programStripKey && (!data.tabs || !data.tabs.length) &&\n data.stripTitle === this.environment.programStripName && data.widgets.length > 0) {\n data.widgets.forEach((key: any) => {\n if (key && key.widgetData.content.primaryCategory === this.environment.programStripPrimaryCategory) {\n count = count + 1;\n }\n });\n if (count > 0) {\n data.showStrip = true;\n } else {\n data.showStrip = false;\n }\n }\n // console.log('data.key', data, data.key, data.widgets);\n return data.showStrip;\n }\n get isMobile() {\n return this.utilitySvc.isMobile || false;\n }\n\n\n\n // search api with facets\n async postRequestMethod(strip: NsContentStripWithFacets.IContentStripUnit,\n request: NsContentStripWithFacets.IContentStripUnit['request'],\n apiUrl: string,\n calculateParentStatus: boolean\n ): Promise<any> {\n return new Promise<any>((resolve, reject) => {\n if (request && request) {\n this.contentSvc.postApiMethod(apiUrl, request).subscribe(results => {\n if (results.result && results.result.content) {\n const showViewMore = Boolean(\n results.result.content && results.result.content.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore\n ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f: {},\n },\n }\n : null;\n resolve({ results, viewMoreUrl });\n }\n }, (error: any) => {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n reject(error);\n },\n );\n }\n });\n }\n\n async fetchFromSearch(strip: NsContentStripWithFacets.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && Object.keys(strip.request.requestBody).length) {\n try {\n const response = await this.postRequestMethod(strip, strip.request.requestBody, strip.request.apiUrl, calculateParentStatus);\n let tabIndex=0\n let pillIndex= 0\n if (response.results && response.results.result) {\n this.mapAllDataWithFacets(strip, response.results.result.content, response.results.result.facets, calculateParentStatus)\n const widgets = this.transformContentsToWidgets(response.results.result.content, strip);\n let tabResults: any[] = [];\n // if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n // const allTabs = this.stripsResultDataMap[strip.key].tabs;\n // const allPills = this.stripsResultDataMap[strip.key].tabs[tabIndex].pillsData;\n // this.resetSelectedPill(allPills)\n // if (allTabs && allTabs.length && allTabs[tabIndex]) {\n // if(allPills && allPills.length && allPills[pillIndex]){\n // allPills[pillIndex] = {\n // ...allPills[pillIndex],\n // widgets,\n // fetchTabStatus: 'done',\n // selected: true\n // };\n // }\n // allTabs[tabIndex] = {\n // ...allTabs[tabIndex],\n // widgets,\n // fetchTabStatus: 'done',\n // };\n // tabResults = allTabs;\n // }\n // }\n // this.processStrip(\n // strip,\n // widgets,\n // 'done',\n // calculateParentStatus,\n // response.viewMoreUrl,\n // tabResults // tabResults as widgets\n // );\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n \n }\n }\n\n mapAllDataWithFacets(strip :any, content : any, facets:any, calculateParentStatus: any) {\n console.log(strip, content)\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n let facet: any = []\n allTabs.forEach((ele: any)=> {\n ele['fetchTabStatus']= 'done'\n let filteredData = content.filter((contEle: any) => contEle.nlwUserExp.includes(ele.value))\n // filteredData.forEach(element => {\n // facet = [...facet,..._.difference(element.nlwOrgs ,facet)];\n // });\n ele['widgets'] = filteredData\n ele.pillsData.forEach((pill: any) => {\n if(pill.value === 'all') {\n pill['widgets'] = this.transformContentsToWidgets(filteredData, strip);\n pill['fetchTabStatus']= 'done'\n } else if(pill.value === 'course') {\n let contentFilteredData = filteredData.filter((contEle: any) => contEle.courseCategory.toLowerCase() === pill.value)\n pill['widgets'] = this.transformContentsToWidgets(contentFilteredData, strip);\n pill['fetchTabStatus']= 'done'\n } else {\n let contentFilteredData = filteredData.filter((contEle: any) => contEle.courseCategory.toLowerCase() !== 'course')\n pill['widgets'] = this.transformContentsToWidgets(contentFilteredData, strip);\n pill['fetchTabStatus']= 'done'\n }\n })\n\n // ele['facets'] = [{\n // name:'nlwOrgs',\n // values: facet\n // }]\n ele['facets'] = facets\n })\n strip.tabs[0].pillsData[0].fetchTabStatus = 'done';\n strip.tabs[0].pillsData[0].tabLoading = false;\n strip.showOnLoader = false;\n this.resetSelectedPill(strip.tabs[0].pillsData)\n strip.tabs[0].pillsData[0]['selected']=true\n this.processStrip(\n strip,\n [],\n 'done',\n calculateParentStatus,\n strip.viewMoreUrl,\n allTabs // tabResults as widgets\n );\n }\n\n private transformContentsToWidgets(\n contents: NsContent.IContent[],\n strip: NsContentStripWithFacets.IContentStripUnit,\n ) {\n return (contents || []).map((content, idx) => (\n content ? {\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n ...(content.batch && { batch: content.batch }),\n cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n context: { pageSection: strip.key, position: idx },\n intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,\n deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,\n contentTags: strip.stripConfig && strip.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'cardContent',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n\n getorgData(eventData: any, stripMap: any, tabIndex: any) {\n console.log(eventData)\n let selectedValue = eventData.target.value\n let pillIndex: any = this.getSelectedPillIndex(stripMap.tabs[tabIndex], tabIndex)\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = true;\n let returnedValues = stripMap.tabs[tabIndex].widgets.filter((ele: any) => {\n var words = ele.nlwOrgs.map(v => v.toLowerCase());\n return words.includes(selectedValue)\n })\n stripMap.tabs[tabIndex].pillsData[pillIndex]['widgets'] = this.transformContentsToWidgets(returnedValues, stripMap);\n }\n setTimeout(() => {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'done';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = false;\n this.resetSelectedPill(stripMap.tabs[tabIndex].pillsData)\n stripMap.tabs[tabIndex].pillsData[pillIndex]['selected']=true\n }\n }, 200);\n }\n\n resetFilter(stripMap: any, tabIndex: any, pillIndex: any) {\n // let selectedValue = eventData.target.value\n if(pillIndex) {\n pillIndex = this.getSelectedPillIndex(stripMap.tabs[tabIndex], tabIndex)\n }\n this.facetForm.reset({\n org: 0\n });\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = true;\n // let returnedValues = stripMap.tabs[tabIndex].widgets.filter((ele: any) => {\n // var words = ele.nlwOrgs.map(v => v.toLowerCase());\n // return words.includes(selectedValue)\n // })\n let contentData: any = stripMap.tabs[tabIndex].widgets || []\n stripMap.tabs[tabIndex].pillsData[pillIndex]['widgets'] = this.transformContentsToWidgets(contentData, stripMap);\n }\n setTimeout(() => {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'done';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = false;\n this.resetSelectedPill(stripMap.tabs[tabIndex].pillsData)\n stripMap.tabs[tabIndex].pillsData[pillIndex]['selected']=true\n }\n }, 200);\n }\n}\n","<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])\" class=\"block md:hidden\">\n <div \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 </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><span *ngIf=\"!tab?.disableTranslate\">{{ translateLabels(tab?.label, 'home') }}</span>\n <span class=\"tab-highlight\" *ngIf=\"tab?.disableTranslate\">{{tab?.label}}</span> &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 item-center flex-wrap gap-4\">\n <div class=\"\">\n <ng-container *ngFor=\"let facet of tab?.facets\">\n <form [formGroup]=\"facetForm\">\n <div class=\"facets-select\">\n <select formControlName=\"org\" (change)=\"getorgData($event, stripsResultDataMap[key], tabIndex)\">\n <option value=\"0\" selected disabled>Choose by organisation</option>\n <option value=\"{{d.name}}\" *ngFor=\"let d of facet.values\" >{{d.name}}</option>\n </select>\n </div>\n </form>\n </ng-container>\n </div>\n <div>\n <ng-container >\n <mat-chip-list class=\"content-pill-data\" 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=\"!stripsResultDataMap[key]?.hideViewMoreUrl && checkCondition(widgetData , stripsResultDataMap[key])\" class=\" hidden md:block\">\n <div class=\"ml-4 pl-2 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\" \n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n 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 </div>\n \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 [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>","import { Component, OnInit, Input, OnDestroy, HostBinding, Inject, EventEmitter, Output } from '@angular/core';\nimport { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver-v2';\nimport { NsContentStripWithTabsAndPills } from './content-strip-with-tabs-pills.model';\n// import { HttpClient } from '@angular/common/http'\nimport { WidgetContentService } from '../../../_services/widget-content.service';\nimport { NsContent } from '../../../_models/widget-content.model';\nimport { MultilingualTranslationsService } from '../../../_services/multilingual-translations.service';\nimport {\n TFetchStatus,\n LoggerService,\n EventService,\n ConfigurationsService,\n UtilityService,\n WsEvents,\n} from '@sunbird-cb/utils-v2';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { WidgetUserService } from '../../../_services/widget-user.service';\n// import { environment } from 'src/environments/environment'\n// tslint:disable-next-line\nimport * as _ from 'lodash'\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { NsCardContent } from '../../../_models/card-content-v2.model';\nimport { ITodayEvents } from '../../../_models/event';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\ninterface IStripUnitContentData {\n key: string;\n canHideStrip: boolean;\n mode?: string;\n showStrip: boolean;\n disableTranslate: boolean;\n widgets?: NsWidgetResolver.IRenderConfigWithAnyData[];\n stripTitle: string;\n stripTitleLink?: {\n link: {\n queryParams: string\n },\n icon: string,\n queryParams: string\n };\n sliderConfig?: {\n showNavs: boolean,\n showDots: boolean,\n maxWidgets?: number\n cerificateCardMargin?: boolean\n };\n stripConfig: any;\n tabs?: NsContentStripWithTabsAndPills.IContentStripTab[] | undefined;\n stripName?: string;\n stripLogo?: string;\n description?: string;\n stripInfo?: NsContentStripWithTabsAndPills.IStripInfo;\n noDataWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n errorWidget?: NsWidgetResolver.IRenderConfigWithAnyData;\n showOnNoData: boolean;\n showOnLoader: boolean;\n showOnError: boolean;\n loaderWidgets?: any;\n stripBackground?: string;\n secondaryHeading?: any;\n viewMoreUrl: any;\n request?: any\n \n}\n\n\n@Component({\n selector: 'sb-uic-content-strip-with-tabs-pills',\n templateUrl: './content-strip-with-tabs-pills.component.html',\n styleUrls: ['./content-strip-with-tabs-pills.component.scss']\n})\nexport class ContentStripWithTabsPillsComponent extends WidgetBaseComponent\nimplements\nOnInit,\nOnDestroy,\nNsWidgetResolver.IWidgetData<NsContentStripWithTabsAndPills.IContentStripMultiple> {\n @Input() widgetData!: NsContentStripWithTabsAndPills.IContentStripMultiple;\n @Output() emptyResponse = new EventEmitter<any>()\n @Output() viewAllResponse = new EventEmitter<any>()\n @Output() telemtryResponse = new EventEmitter<any>()\n @Input() providerId : any = ''\n @Input() emitViewAll : boolean = false\n @Input() channnelName: any = ''\n @HostBinding('id')\n public id = `ws-strip-miltiple_${Math.random()}`;\n stripsResultDataMap: { [key: string]: IStripUnitContentData } = {};\n stripsKeyOrder: string[] = [];\n showAccordionData = true;\n showParentLoader = false;\n showParentError = false;\n showParentNoData = false;\n errorDataCount = 0;\n noDataCount = 0;\n successDataCount = 0;\n contentAvailable = true;\n baseUrl = this.configSvc.sitePath || '';\n veifiedKarmayogi = false;\n environment!: any;\n changeEventSubscription: Subscription | null = null;\n defaultMaxWidgets = 12;\n enrollInterval: any;\n todaysEvents: any = [];\n enrollmentMapData: any\n\n constructor(\n // private contentStripSvc: ContentStripNewMultipleService,\n @Inject('environment') environment: any,\n private contentSvc: WidgetContentService,\n private loggerSvc: LoggerService,\n private eventSvc: EventService,\n private configSvc: ConfigurationsService,\n public utilitySvc: UtilityService,\n // private http: HttpClient,\n // private searchServSvc: SearchServService,\n public router: Router,\n private userSvc: WidgetUserService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService\n ) {\n super();\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en');\n let lang = JSON.stringify(localStorage.getItem('websiteLanguage'));\n lang = lang.replace(/\\\"/g, '');\n this.translate.use(lang);\n }\n this.environment = environment\n }\n\n ngOnInit() {\n // const url = window.location.href\n this.initData();\n this.contentSvc.telemetryData$.subscribe((data: any) => {\n this.telemtryResponse.emit(data)\n })\n\n \n }\n\n ngOnDestroy() {\n if (this.changeEventSubscription) {\n this.changeEventSubscription.unsubscribe();\n }\n }\n\n showAccordion(key: string) {\n if (this.utilitySvc.isMobile && this.stripsResultDataMap[key].mode === 'accordion') {\n return this.showAccordionData;\n }\n return true;\n }\n\n setHiddenForStrip(key: string) {\n this.stripsResultDataMap[key].showStrip = false;\n sessionStorage.setItem(`cstrip_${key}`, '1');\n }\n private getIfStripHidden(key: string): boolean {\n const storageItem = sessionStorage.getItem(`cstrip_${key}`);\n return Boolean(storageItem !== '1');\n }\n\n private initData() {\n this.stripsKeyOrder = this.widgetData && this.widgetData.strips && this.widgetData.strips.map(strip => strip.key) || [];\n if (this.widgetData.loader && this.widgetData.strips.length) {\n this.showParentLoader = true;\n }\n // Fetch the data\n for (const strip of this.widgetData.strips) {\n if (this.checkForEmptyWidget(strip)) {\n this.fetchStripFromRequestData(strip, false);\n } else {\n this.processStrip(strip, [], 'done', true, null);\n }\n }\n // Subscription for changes\n const keyAndEvent: { key: string; type: string; from: string }[] = this.widgetData.strips\n .map(strip => ({\n key: strip.key,\n type: (strip.refreshEvent && strip.refreshEvent.eventType) || '',\n from: (strip.refreshEvent && strip.refreshEvent.from.toString()) || '',\n }))\n .filter(({ key, type, from }) => key && type && from);\n const eventTypeSet = new Set(keyAndEvent.map(e => e.type));\n this.changeEventSubscription = this.eventSvc.events$\n .pipe(filter(event => eventTypeSet.has(event.eventType)))\n .subscribe(event => {\n keyAndEvent\n .filter(e => e.type === event.eventType && e.from === event.from)\n .map(e => e.key)\n .forEach(k => this.fetchStripFromKey(k, false));\n });\n }\n\n private fetchStripFromKey(key: string, calculateParentStatus = true) {\n const stripData = this.widgetData.strips.find(strip => strip.key === key);\n if (stripData) {\n this.fetchStripFromRequestData(stripData, calculateParentStatus);\n }\n }\n\n isStripShowing(data: any) {\n let count = 0;\n \n if (data && data.key === this.environment.programStripKey && (!data.tabs || !data.tabs.length) &&\n data.stripTitle === this.environment.programStripName && data.widgets.length > 0) {\n data.widgets.forEach((key: any) => {\n if (key && key.widgetData.content.primaryCategory === this.environment.programStripPrimaryCategory) {\n count = count + 1;\n }\n });\n if (count > 0) {\n data.showStrip = true;\n } else {\n data.showStrip = false;\n }\n }\n // console.log('data.key', data, data.key, data.widgets);\n return data.showStrip;\n }\n\n get isMobile() {\n return this.utilitySvc.isMobile || false;\n }\n\n getdata(data: IStripUnitContentData) {\n if (data.stripInfo) {\n return data.stripInfo.widget;\n }\n return {};\n\n }\n checkCondition(wData: NsContentStripWithTabsAndPills.IContentStripMultiple, data: IStripUnitContentData) {\n if (wData.strips[0].stripConfig && wData.strips[0].stripConfig.hideShowAll) {\n return !wData.strips[0].stripConfig.hideShowAll;\n }\n return wData.strips[0].viewMoreUrl && data.widgets && data.widgets.length >= 4;\n }\n checkVisible(data: IStripUnitContentData) {\n return data.stripInfo && data.stripInfo.visibilityMode === 'visible';\n }\n\n getContineuLearningLenth(data: IStripUnitContentData) {\n return data.widgets ? data.widgets.length : 0;\n }\n getLength(data: IStripUnitContentData) {\n if (!data.tabs || !data.tabs.length) {\n return data.widgets ? data.widgets.length : 0;\n } {\n // if tabs are there check if each tab has widgets and get the tab with max widgets\n let tabWithMaxWidgets: any = {}\n data.tabs.forEach((tab: any)=>{\n if(tab.pillsData && tab.pillsData.length){\n tabWithMaxWidgets = tab.pillsData.reduce(\n (prev: any, current: any) => {\n if (!prev.widgets && !current.widgets) {\n return current;\n }\n if (prev.widgets && current.widgets) {\n return (prev.widgets.length > current.widgets.length) ? prev : current;\n }\n if (current.widgets && !prev.widgets) {\n return current;\n }\n if (!current.widgets && prev.widgets) {\n return prev;\n }\n return current;\n // return (prev.widgets && current.widgets && (prev.widgets.length > current.widgets.length) ) ? prev : current\n // tslint:disable-next-line: align\n }, data.tabs[0]);\n\n }\n })\n // if tabs has atleast 1 widgets then strip will show or else not\n return tabWithMaxWidgets.widgets ? tabWithMaxWidgets.widgets.length : 0;\n }\n }\n\n private getFiltersFromArray(v6filters: any) {\n const filters: any = {};\n if (v6filters.constructor === Array) {\n v6filters.forEach(((f: any) => {\n Object.keys(f).forEach(key => {\n filters[key] = f[key];\n });\n }));\n return filters;\n }\n return v6filters;\n }\n\n private transformSearchV6FiltersV2(v6filters: any) {\n const filters: any = {};\n if (v6filters.constructor === Array) {\n v6filters.forEach(((f: any) => {\n Object.keys(f).forEach(key => {\n filters[key] = f[key];\n });\n }));\n return filters;\n }\n return v6filters;\n }\n\n checkForDateFilters(filters: any) {\n let userData: any;\n if (this.configSvc.userProfile) {\n userData = this.configSvc.userProfile;\n }\n\n if (filters && filters.hasOwnProperty('batches.endDate')) {\n // tslint:disable-next-line\n filters['batches.endDate']['>='] = eval(filters['batches.endDate']['>='])\n } else if (filters && filters.hasOwnProperty('batches.enrollmentEndDate')) {\n // tslint:disable-next-line\n filters['batches.enrollmentEndDate']['>='] = eval(filters['batches.enrollmentEndDate']['>='])\n } else if (filters.organisation &&\n filters.organisation.indexOf('<orgID>') >= 0\n ) {\n if(this.providerId) {\n filters.organisation = this.providerId;\n } else {\n filters.organisation = userData && userData.rootOrgId;\n\n if (filters && filters.hasOwnProperty('designation')) {\n filters.designation = userData.professionalDetails.length > 0 ?\n userData.professionalDetails[0].designation : '';\n }\n }\n \n }\n return filters;\n }\n\n private fetchStripFromRequestData(\n strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n calculateParentStatus = true,\n ) {\n // setting initial values\n strip.loaderWidgets = this.transformSkeletonToWidgets(strip);\n this.processStrip(strip, [], 'fetching', false, null);\n this.fetchFromSearchV6(strip, calculateParentStatus);\n this.fetchForYouData(strip, calculateParentStatus)\n this.fetchAllCbpPlans(strip, calculateParentStatus);\n \n // this.enrollInterval = setInterval(() => {\n // this.fetchAllCbpPlans(strip, calculateParentStatus)\n // }, 1000)\n }\n\n toggleInfo(data: IStripUnitContentData) {\n const stripInfo = this.stripsResultDataMap[data.key].stripInfo;\n if (stripInfo) {\n if (stripInfo.mode !== 'below') {\n this.loggerSvc.warn(`strip info mode: ${stripInfo.mode} not implemented yet`);\n stripInfo.mode = 'below';\n }\n if (stripInfo.mode === 'below') {\n this.stripsResultDataMap[data.key].stripInfo = {\n ...stripInfo,\n visibilityMode: stripInfo.visibilityMode === 'hidden' ? 'visible' : 'hidden',\n };\n }\n }\n }\n\n private transformContentsToWidgets(\n contents: NsContent.IContent[],\n strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n ) {\n return (contents || []).map((content, idx) => (\n content ? {\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n ...(content.batch && { batch: content.batch }),\n cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n context: { pageSection: strip.key, position: idx },\n intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,\n deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,\n contentTags: strip.stripConfig && strip.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'cardContent',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n\n private transformEventsToWidgets(\n contents: ITodayEvents[],\n strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n ) {\n this.eventSvc.setEventListData(contents);\n return (this.eventSvc.todaysEvents || []).map((content: any, idx: any) => (content ? {\n widgetType: 'card',\n widgetSubType: 'eventHubCard',\n widgetHostClass: 'mb-2',\n widgetData: {\n content,\n cardSubType: strip.stripConfig && strip.stripConfig.cardSubType,\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n context: { pageSection: strip.key, position: idx },\n intranetMode: strip.stripConfig && strip.stripConfig.intranetMode,\n deletedMode: strip.stripConfig && strip.stripConfig.deletedMode,\n contentTags: strip.stripConfig && strip.stripConfig.contentTags,\n },\n } : {\n widgetType: 'card',\n widgetSubType: 'eventHubCard',\n widgetHostClass: 'mb-2',\n widgetData: {},\n }\n ));\n }\n private transformSkeletonToWidgets(\n strip: any\n ) {\n return [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10].map(_content => ({\n widgetType: 'cardLib',\n widgetSubType: 'cardContentLib',\n widgetHostClass: 'mb-2',\n widgetData: {\n cardSubType: strip.loaderConfig && strip.loaderConfig.cardSubType || 'card-standard-skeleton',\n cardCustomeClass: strip.customeClass ? strip.customeClass : '',\n },\n }));\n }\n\n private async processStrip(\n strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n results: NsWidgetResolver.IRenderConfigWithAnyData[] = [],\n fetchStatus: TFetchStatus,\n calculateParentStatus = true,\n _viewMoreUrl: any,\n tabsResults?: NsContentStripWithTabsAndPills.IContentStripTab[] | undefined,\n // calculateParentStatus is used so that parents' status is not re-calculated if the API is called again coz of filters, etc.\n ) {\n const stripData = {\n viewMoreUrl: strip.viewMoreUrl,\n key: strip.key,\n canHideStrip: Boolean(strip.canHideStrip),\n showStrip: this.getIfStripHidden(strip.key),\n noDataWidget: strip.noDataWidget,\n errorWidget: strip.errorWidget,\n stripInfo: strip.info,\n stripTitle: strip.title,\n stripTitleLink: strip.stripTitleLink,\n disableTranslate: strip.disableTranslate,\n sliderConfig: strip.sliderConfig,\n tabs: tabsResults ? tabsResults : strip.tabs,\n stripName: strip.name,\n mode: strip.mode,\n stripConfig: strip.stripConfig,\n stripBackground: strip.stripBackground,\n secondaryHeading: strip.secondaryHeading,\n loaderWidgets: strip.loaderWidgets || [],\n widgets:\n fetchStatus === 'done'\n ? [\n ...(strip.preWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ...results,\n ...(strip.postWidgets || []).map(w => ({\n ...w,\n widgetHostClass: `mb-2 ${w.widgetHostClass}`,\n })),\n ]\n : [],\n showOnNoData: Boolean(\n strip.noDataWidget &&\n !((strip.preWidgets || []).length + results.length + (strip.postWidgets || []).length) &&\n fetchStatus === 'done',\n ),\n showOnLoader: Boolean(strip.loader && fetchStatus === 'fetching'),\n showOnError: Boolean(strip.errorWidget && fetchStatus === 'error'),\n };\n // const stripData = this.stripsResultDataMap[strip.key]\n this.stripsResultDataMap = {\n ...this.stripsResultDataMap,\n [strip.key]: stripData,\n };\n if (!tabsResults) {\n if (\n calculateParentStatus &&\n (fetchStatus === 'done' || fetchStatus === 'error') &&\n stripData.widgets\n ) {\n this.checkParentStatus(fetchStatus, stripData.widgets.length);\n }\n if (calculateParentStatus && !(results && results.length > 0)) {\n this.contentAvailable = false;\n } else if (results && results.length > 0) {\n this.contentAvailable = true;\n }\n } else {\n this.contentAvailable = true;\n }\n }\n private checkParentStatus(fetchStatus: TFetchStatus, stripWidgetsCount: number): void {\n if (fetchStatus === 'done' && !stripWidgetsCount) {\n this.noDataCount += 1;\n } else if (fetchStatus === 'done' && stripWidgetsCount) {\n this.successDataCount += 1;\n } else if (fetchStatus === 'error') {\n this.errorDataCount += 1;\n }\n const settledCount = this.noDataCount + this.successDataCount + this.errorDataCount;\n const totalCount = this.widgetData.strips.length;\n if (this.successDataCount > 0 && settledCount < totalCount) {\n return;\n }\n this.showParentLoader = settledCount !== totalCount;\n this.showParentNoData =\n this.noDataCount > 0 && this.noDataCount + this.errorDataCount === totalCount;\n this.showParentError = this.errorDataCount === totalCount;\n }\n checkForEmptyWidget(strip: NsContentStripWithTabsAndPills.IContentStripUnit): boolean {\n if (\n strip.request &&\n ((strip.request.api && Object.keys(strip.request.api).length) ||\n (strip.request.search && Object.keys(strip.request.search).length) ||\n (strip.request.searchRegionRecommendation &&\n Object.keys(strip.request.searchRegionRecommendation).length) ||\n (strip.request.cbpList && Object.keys(strip.request.cbpList).length) ||\n (strip && strip.tabs.length)\n )\n ) {\n return true;\n }\n return false;\n }\n\n\n getTabDataByfilter(\n strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n currentTab: NsContentStripWithTabsAndPills.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n // tslint:disable:no-console\n console.log('strip -- ', strip);\n // tslint:disable:no-console\n console.log('currentTab -- ', currentTab);\n // tslint:disable:no-console\n console.log('calculateParentStatus-- ', calculateParentStatus);\n // TODO: Write logic for individual filter if passed in config\n // add switch case based on config key passed\n }\n\n getSelectedIndex(stripsResultDataMap: any, key: any): number {\n let returnValue = 0;\n return returnValue;\n }\n\n translateLabels(label: string, type: any) {\n return this.langtranslations.translateLabel(label, type, '');\n }\n\n identify(index: number, item: any) {\n if (index >= 0) { }\n return item;\n }\n tracker(index: number, item: any) {\n if (index >= 0) { }\n return _.get(item, 'widgetData.content.identifier')\n }\n\n raiseTelemetry(stripData: any){\n this.telemtryResponse.emit(stripData)\n }\n\n redirectViewAll(stripData: any, path: string, queryParamsData: any) {\n if(this.emitViewAll) {\n this.viewAllResponse.emit(stripData)\n } else {\n this.router.navigate([path], { queryParams: queryParamsData })\n }\n }\n\n // new code writting from here====new====\n\n fetchForYouData(strip: NsContentStripWithTabsAndPills.IContentStripUnit, calculateParentStatus = true) {\n if (strip && strip.type === 'forYou') {\n if (strip.tabs && strip.tabs.length) {\n const firstTab = strip.tabs[0];\n const pillData = firstTab.pillsData[0]\n if (pillData.requestRequired) {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allPills = this.stripsResultDataMap[strip.key].tabs[0].pillsData;\n const currenPillsFromMap = (allPills && allPills.length && allPills[0]) as NsContentStripWithTabsAndPills.IContentStripTab;\n this.getTabDataByNewReqTrending(strip, 0, 0, currenPillsFromMap, calculateParentStatus);\n if (this.stripsResultDataMap[strip.key] && currenPillsFromMap) {\n this.stripsResultDataMap[strip.key].viewMoreUrl.queryParams = {\n ...this.stripsResultDataMap[strip.key].viewMoreUrl.queryParams,\n key:strip.key,\n tabSelected: firstTab.value,\n pillSelected: pillData.value,\n };\n }\n }\n }\n \n }\n }\n }\n\n async fetchFromSearchV6(strip: NsContentStripWithTabsAndPills.IContentStripUnit, calculateParentStatus = true) {\n if (strip.request && strip.request.searchV6 && Object.keys(strip.request.searchV6).length) {\n // if (!(strip.request.searchV6.locale && strip.request.searchV6.locale.length > 0)) {\n // if (this.configSvc.activeLocale) {\n // strip.request.searchV6.locale = [this.configSvc.activeLocale.locals[0]]\n // } else {\n // strip.request.searchV6.locale = ['en']\n // }\n // }\n let originalFilters: any = [];\n // tslint:disable:no-console\n if (strip.request &&\n strip.request.searchV6 &&\n strip.request.searchV6.request &&\n strip.request.searchV6.request.filters) {\n originalFilters = strip.request.searchV6.request.filters;\n strip.request.searchV6.request.filters = this.checkForDateFilters(strip.request.searchV6.request.filters);\n strip.request.searchV6.request.filters = this.getFiltersFromArray(\n strip.request.searchV6.request.filters,\n );\n }\n if (strip.tabs && strip.tabs.length) {\n // TODO: Have to extract requestRequired to outer level of tabs config\n const firstTab = strip.tabs[0];\n if (firstTab.requestRequired) {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const currentTabFromMap = (allTabs && allTabs.length && allTabs[0]) as NsContentStripWithTabsAndPills.IContentStripTab;\n\n this.getTabDataByNewReqSearchV6(strip, 0, 0, currentTabFromMap, calculateParentStatus);\n }\n }\n\n } else {\n try {\n const response = await this.searchV6Request(strip, strip.request, calculateParentStatus);\n // console.log('calling after - response, ', response)\n if (response && response.results) {\n // console.log('calling after-- ')\n if (response.results.result.content) {\n \n this.processStrip(\n strip,\n this.transformContentsToWidgets(response.results.result.content, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n \n \n } else if (response.results.result.Event) {\n this.processStrip(\n strip,\n this.transformEventsToWidgets(response.results.result.Event, strip),\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n );\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n }\n }\n\n async getTabDataByNewReqTrending(\n strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n tabIndex: number,\n pillIndex: number,\n currentTab: NsContentStripWithTabsAndPills.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n try {\n const response = await this.trendingSearchRequest(strip, currentTab.request, calculateParentStatus);\n let tabResults: any[] = [];\n if (response && response.results && response.results.response) {\n const content = response.results.response[currentTab.value] || [];\n const widgets = this.transformContentsToWidgets(content, strip);\n \n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const allPills = this.stripsResultDataMap[strip.key].tabs[tabIndex].pillsData;\n this.resetSelectedPill(allPills)\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n if(allPills && allPills.length && allPills[pillIndex]){\n allPills[pillIndex] = {\n ...allPills[pillIndex],\n widgets,\n fetchTabStatus: 'done',\n selected: true\n };\n }\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets,\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(\n strip,\n widgets,\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n tabResults // tabResults as widgets\n );\n } else {\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const allPills = this.stripsResultDataMap[strip.key].tabs[tabIndex].pillsData;\n this.resetSelectedPill(allPills)\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n if(allPills && allPills.length && allPills[pillIndex]){\n allPills[pillIndex] = {\n ...allPills[pillIndex],\n widgets:[],\n fetchTabStatus: 'done',\n selected: true\n };\n }\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets:[],\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(strip, [], 'done', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n }\n\n async getTabDataByNewReqSearchV6(\n strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n tabIndex: number,\n pillIndex: number,\n currentTab: NsContentStripWithTabsAndPills.IContentStripTab,\n calculateParentStatus: boolean\n ) {\n try {\n const response = await this.searchV6Request(strip, currentTab.request, calculateParentStatus);\n if (response && response.results) {\n const widgets = this.transformContentsToWidgets(response.results.result.content, strip);\n let tabResults: any[] = [];\n if (this.stripsResultDataMap[strip.key] && this.stripsResultDataMap[strip.key].tabs) {\n const allTabs = this.stripsResultDataMap[strip.key].tabs;\n const allPills = this.stripsResultDataMap[strip.key].tabs[tabIndex].pillsData;\n this.resetSelectedPill(allPills)\n if (allTabs && allTabs.length && allTabs[tabIndex]) {\n if(allPills && allPills.length && allPills[pillIndex]){\n allPills[pillIndex] = {\n ...allPills[pillIndex],\n widgets,\n fetchTabStatus: 'done',\n selected: true\n };\n }\n allTabs[tabIndex] = {\n ...allTabs[tabIndex],\n widgets,\n fetchTabStatus: 'done',\n };\n tabResults = allTabs;\n }\n }\n this.processStrip(\n strip,\n widgets,\n 'done',\n calculateParentStatus,\n response.viewMoreUrl,\n tabResults // tabResults as widgets\n );\n } else {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n\n async trendingSearchRequest(strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n request: NsContentStripWithTabsAndPills.IContentStripUnit['request'],\n calculateParentStatus: boolean\n ): Promise<any> {\n const originalFilters: any = [];\n return new Promise<any>((resolve, reject) => {\n if (request && request.trendingSearch) {\n // check for the request if it has dynamic values]\n if (request.trendingSearch.request.filters.organisation &&\n request.trendingSearch.request.filters.organisation.indexOf('<orgID>') >= 0\n ) {\n let userRootOrgId;\n if (this.configSvc.userProfile) {\n userRootOrgId = this.configSvc.userProfile.rootOrgId;\n }\n request.trendingSearch.request.filters.organisation = userRootOrgId;\n }\n this.contentSvc.trendingContentSearch(request.trendingSearch).subscribe(results => {\n const showViewMore = Boolean(\n results.result &&\n strip.request &&\n results.result[strip.request.trendingSearch.responseKey] &&\n results.result[strip.request.trendingSearch.responseKey].length > 5 &&\n strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n\n const viewMoreUrl = showViewMore\n ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f:\n request &&\n request.trendingSearch &&\n request.trendingSearch.request &&\n request.trendingSearch.request.filters\n ? JSON.stringify(\n this.transformSearchV6FiltersV2(\n originalFilters,\n )\n )\n : {},\n },\n }\n : null;\n\n let proccesedResult: any = []\n if (results && results.response && results.response.certifications) {\n results.response.certifications.map((result: any) => {\n if (result.source === this.channnelName) {\n proccesedResult.push(result)\n }\n })\n results = {response: {certifications: proccesedResult}}\n }\n resolve({ results, viewMoreUrl });\n }, (error: any) => {\n if (error.error && error.error.status === 400) {\n this.processStrip(strip, [], 'done', calculateParentStatus, null);\n }\n // this.processStrip(strip, [], 'done', calculateParentStatus, null)\n reject(error);\n },);\n }\n });\n }\n\n public tabClicked(tabEvent: MatTabChangeEvent, pillIndex: any, stripMap: IStripUnitContentData, stripKey: string) {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = true;\n stripMap.showOnLoader = true;\n }\n const data: WsEvents.ITelemetryTabData = {\n label: `${tabEvent.tab.textLabel}`,\n index: tabEvent.index,\n };\n this.eventSvc.raiseInteractTelemetry(\n {\n type: WsEvents.EnumInteractTypes.CLICK,\n subType: WsEvents.EnumInteractSubTypes.HOME_PAGE_STRIP_TABS,\n id: `${_.camelCase(data.label)}-tab`,\n },\n {},\n {\n module: WsEvents.EnumTelemetrymodules.HOME,\n }\n );\n\n const currentTabFromMap: any = stripMap.tabs && stripMap.tabs[tabEvent.index];\n const currentPillFromMap: any = stripMap.tabs && stripMap.tabs[tabEvent.index].pillsData[pillIndex];\n const currentStrip = this.widgetData.strips.find(s => s.key === stripKey);\n if (this.stripsResultDataMap[stripKey] && currentTabFromMap) {\n this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams = {\n ...this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams,\n tabSelected: currentTabFromMap.value,\n pillSelected: currentPillFromMap.value,\n };\n }\n\n if (currentStrip && currentTabFromMap && !currentTabFromMap.computeDataOnClick && currentPillFromMap) {\n if (currentPillFromMap.requestRequired && currentPillFromMap.request) {\n // call API to get tab data and process\n // this.processStrip(currentStrip, [], 'fetching', true, null)\n if (currentPillFromMap.request.searchV6) {\n this.getTabDataByNewReqSearchV6(currentStrip, tabEvent.index, 0, currentPillFromMap, true);\n } else if (currentPillFromMap.request.trendingSearch) {\n this.getTabDataByNewReqTrending(currentStrip, tabEvent.index, 0, currentPillFromMap, true);\n }\n // if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n // stripMap.tabs[tabEvent.index].tabLoading = false;\n // }\n\n stripMap.tabs[tabEvent.index].pillsData[pillIndex].tabLoading = false;\n } else {\n // this.getTabDataByfilter(currentStrip, currentTabFromMap, true);\n // setTimeout(() => {\n // if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n // stripMap.tabs[tabEvent.index].tabLoading = false;\n // stripMap.tabs[tabEvent.index].fetchTabStatus = 'done';\n // stripMap.showOnLoader = false;\n // }\n // }, 200);\n }\n }\n }\n\n pillClicked(event: any, stripMap: IStripUnitContentData, stripKey: any, pillIndex: any, tabIndex: any) {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = true;\n stripMap.showOnLoader = true;\n }\n const currentTabFromMap: any = stripMap.tabs && stripMap.tabs[tabIndex];\n const currentPillFromMap: any = stripMap.tabs && stripMap.tabs[tabIndex].pillsData[pillIndex];\n const currentStrip = this.widgetData.strips.find(s => s.key === stripKey);\n if (this.stripsResultDataMap[stripKey] && currentTabFromMap) {\n this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams = {\n ...this.stripsResultDataMap[stripKey].viewMoreUrl.queryParams,\n tabSelected: currentTabFromMap.value,\n pillSelected: currentPillFromMap.value,\n };\n }\n if (currentStrip && currentTabFromMap && !currentTabFromMap.computeDataOnClick && currentPillFromMap) {\n if (currentPillFromMap.requestRequired && currentPillFromMap.request) {\n // call API to get tab data and process\n // this.processStrip(currentStrip, [], 'fetching', true, null)\n if (currentPillFromMap.request.searchV6) {\n this.getTabDataByNewReqSearchV6(currentStrip, tabIndex, pillIndex, currentPillFromMap, true);\n } else if (currentPillFromMap.request.trendingSearch) {\n this.getTabDataByNewReqTrending(currentStrip, tabIndex, pillIndex, currentPillFromMap, true);\n }\n // if (stripMap && stripMap.tabs && stripMap.tabs[tabEvent.index]) {\n // stripMap.tabs[tabEvent.index].tabLoading = false;\n // }\n\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n } else {\n this.getTabDataByfilter(currentStrip, currentTabFromMap, true);\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'inprogress';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = true;\n }\n setTimeout(() => {\n if (stripMap && stripMap.tabs && stripMap.tabs[tabIndex]) {\n stripMap.tabs[tabIndex].pillsData[pillIndex].fetchTabStatus = 'done';\n stripMap.tabs[tabIndex].pillsData[pillIndex].tabLoading = false;\n stripMap.showOnLoader = false;\n this.resetSelectedPill(stripMap.tabs[tabIndex].pillsData)\n stripMap.tabs[tabIndex].pillsData[pillIndex]['selected']=true\n }\n }, 200);\n }\n }\n }\n\n async searchV6Request(strip: NsContentStripWithTabsAndPills.IContentStripUnit,\n request: NsContentStripWithTabsAndPills.IContentStripUnit['request'],\n calculateParentStatus: boolean\n ): Promise<any> {\n const originalFilters: any = [];\n return new Promise<any>((resolve, reject) => {\n if (request && request.searchV6) {\n this.contentSvc.searchV6(request.searchV6).subscribe(results => {\n const showViewMore = Boolean(\n results.result.content && results.result.content.length > 5 && strip.stripConfig && strip.stripConfig.postCardForSearch,\n );\n const viewMoreUrl = showViewMore\n ? {\n path: strip.viewMoreUrl && strip.viewMoreUrl.path || '',\n queryParams: {\n tab: 'Learn',\n q: strip.viewMoreUrl && strip.viewMoreUrl.queryParams,\n f:\n request &&\n request.searchV6 &&\n request.searchV6.request &&\n request.searchV6.request.filters\n ? JSON.stringify(\n this.transformSearchV6FiltersV2(\n originalFilters,\n )\n )\n : {},\n },\n }\n : null;\n // if (viewMoreUrl && viewMoreUrl.queryParams) {\n // viewMoreUrl.queryParams = viewMoreUrl.queryParams\n // }\n resolve({ results, viewMoreUrl });\n }, (error: any) => {\n this.processStrip(strip, [], 'error', calculateParentStatus, null);\n reject(error);\n },\n );\n }\n });\n }\n\n\n getSelectedPillIndex(tabdata: any, tabIndex: any) {\n if(tabdata.pillsData && tabdata.pillsData.length) {\n let index = tabdata.pillsData.findIndex((pill: any) => {\n return pill.selected\n });\n return index\n }\n return 0\n }\n\n\n\n\n\n // cbp plans\n\n async fetchAllCbpPlans(strip: any, calculateParentStatus = true) {\n if (strip.request && strip.request.cbpList && Object.keys(strip.request.cbpList).length) {\n\n let courses: NsContent.IContent[];\n let tabResults: any[] = [];\n const response = await this.userSvc.fetchCbpPlanList().toPromise();\n if (response) {\n courses = response;\n if (strip.tabs && strip.tabs.length) {\n tabResults = this.splitCbpTabsData(courses, strip);\n let countOfWidget = true\n if(strip && strip.tabs && strip.tabs.length) {\n strip.tabs.forEach((tab:any)=> {\n if(tab.pillsData && tab.pillsData.length) {\n tab.pillsData.forEach((pill: any) => {\n if(pill && pill.widgets && pill.widgets.length){\n if(countOfWidget){\n pill.selected = true\n countOfWidget= false\n }\n }\n });\n }\n })\n }\n await this.processStrip(\n strip,\n this.transformContentsToWidgets(courses, strip),\n 'done',\n calculateParentStatus,\n '',\n tabResults\n );\n } else {\n this.processStrip(\n strip,\n this.transformContentsToWidgets(courses, strip),\n 'done',\n calculateParentStatus,\n 'viewMoreUrl',\n );\n }\n }\n clearInterval(this.enrollInterval);\n }\n }\n\n splitCbpTabsData(contentNew: NsContent.IContent[], strip: NsContentStripWithTabsAndPills.IContentStripUnit) {\n let tabResults: any[] = [];\n const splitData = this.getTabsList(\n contentNew,\n strip,\n );\n if (strip.tabs && strip.tabs.length) {\n for (let i = 0; i < strip.tabs.length; i += 1) {\n if( strip.tabs[i].value === \"myIgotPlans\") {\n let checkWidgetAndActivePill = true\n if (strip.tabs[i].pillsData && strip.tabs[i].pillsData.length) {\n for (let j = 0; j < strip.tabs[i].pillsData.length; j += 1) {\n // if(j === 0 ){\n // if(strip.tabs[i].pillsData[j].widgets && strip.tabs[i].pillsData[j].widgets.length ) {\n // strip.tabs[i].pillsData[j].selected = true\n // checkWidgetAndActivePill = false\n // }\n // strip.tabs[i].pillsData[j].selected = true\n // }\n if (strip.tabs[i].pillsData[j]) {\n tabResults.push(\n {\n ...strip.tabs[i].pillsData[j],\n fetchTabStatus: 'done',\n ...(splitData.find(itmInner => {\n if (strip.tabs[i].pillsData&& strip.tabs[i].pillsData[j] && itmInner.value === strip.tabs[i].pillsData[j].value) {\n return itmInner;\n }\n return undefined;\n })),\n }\n );\n }\n }\n strip.tabs[i].pillsData = tabResults\n }\n }\n }\n }\n \n return strip.tabs;\n }\n\n getTabsList(array: NsContent.IContent[],\n strip: NsContentStripWithTabsAndPills.IContentStripUnit) {\n let all: any[] = [];\n let upcoming: any[] = [];\n let overdue: any[] = [];\n array.forEach((e: any) => {\n all.push(e);\n if (e.planDuration === NsCardContent.ACBPConst.OVERDUE) {\n overdue.push(e);\n } else if (e.planDuration === NsCardContent.ACBPConst.UPCOMING) {\n upcoming.push(e);\n }\n });\n const allCompleted = all.filter((allData: any) => allData.contentStatus === 2);\n let allInCompleted = all.filter((allData: any) => allData.contentStatus < 2);\n\n let allCompletedOverDue = allCompleted.filter((allData: any) => allData.planDuration === NsCardContent.ACBPConst.OVERDUE);\n const allCompletedAll = allCompleted.filter((allData: any) => allData.planDuration !== NsCardContent.ACBPConst.OVERDUE);\n\n allCompletedOverDue = allCompletedOverDue.sort((a: any, b: any): any => {\n if (a.planDuration === NsCardContent.ACBPConst.OVERDUE && b.planDuration === NsCardContent.ACBPConst.OVERDUE) {\n const firstDate: any = new Date(a.endDate);\n const secondDate: any = new Date(b.endDate);\n return firstDate > secondDate ? -1 : 1;\n }\n });\n\n allInCompleted = allInCompleted.sort((a: any, b: any): any => {\n if (a.planDuration === NsCardContent.ACBPConst.OVERDUE && b.planDuration === NsCardContent.ACBPConst.OVERDUE) {\n const firstDate: any = new Date(a.endDate);\n const secondDate: any = new Date(b.endDate);\n return firstDate > secondDate ? -1 : 1;\n }\n });\n\n all = [...allInCompleted, ...allCompletedAll, ...allCompletedOverDue];\n\n overdue = overdue.filter((data: any): any => {\n return data.contentStatus < 2;\n });\n\n overdue = overdue.sort((a: any, b: any): any => {\n const firstDate: any = new Date(a.endDate);\n const secondDate: any = new Date(b.endDate);\n return firstDate > secondDate ? -1 : 1;\n });\n\n upcoming = upcoming.filter((data: any): any => {\n return data.contentStatus < 2;\n });\n \n return [\n { value: 'all', widgets: this.transformContentsToWidgets(all, strip) },\n { value: 'upcoming', widgets: this.transformContentsToWidgets(upcoming, strip) },\n { value: 'completed', widgets: this.transformContentsToWidgets(allCompleted, strip) },\n { value: 'overdue', widgets: this.transformContentsToWidgets(overdue, strip) }];\n }\n resetSelectedPill(pillData: any){\n if(pillData && pillData.length){\n pillData.forEach((pill: any) => {\n pill['selected'] = false\n });\n }\n }\n\n}\n","<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])\" class=\"block md:hidden\">\n <div \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 </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 item-center\">\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])\" class=\" hidden md:block\">\n <div class=\"ml-4 pl-2 view-more ws-mat-default-text\">\n <a class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer\" \n (click)=\"raiseTelemetry(stripsResultDataMap[key]);redirectViewAll(stripsResultDataMap[key], stripsResultDataMap[key]?.viewMoreUrl?.path, stripsResultDataMap[key]?.viewMoreUrl?.queryParams )\">\n <span i18n 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 </div>\n \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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { HorizontalScrollerV2Module } from '../../horizontal-scroller-v2/horizontal-scroller-v2.module';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ContentStripWithTabsPillsComponent } from './content-strip-with-tabs-pills.component';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { SbUiResolverModule } from '@sunbird-cb/resolver-v2';\n\n// tslint:disable-next-line:function-name\nexport function HttpLoaderFactory1(http: HttpClient) {\n return new TranslateHttpLoader(http);\n}\n\n@NgModule({\n declarations: [ContentStripWithTabsPillsComponent],\n imports: [\n SbUiResolverModule,\n CommonModule,\n RouterModule,\n HorizontalScrollerV2Module,\n MatProgressSpinnerModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatListModule,\n MatSidenavModule,\n MatCardModule,\n MatExpansionModule,\n MatRadioModule,\n MatChipsModule,\n MatInputModule,\n MatFormFieldModule,\n MatDialogModule,\n MatSnackBarModule,\n MatSelectModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressSpinnerModule,\n MatButtonToggleModule,\n MatTabsModule,\n MatAutocompleteModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory1,\n deps: [HttpClient],\n },\n }),\n ],\n entryComponents: [ContentStripWithTabsPillsComponent],\n exports: [ContentStripWithTabsPillsComponent],\n})\nexport class ContentStripWithTabsPillsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { HorizontalScrollerV2Module } from '../../horizontal-scroller-v2/horizontal-scroller-v2.module';\n\nimport { ContentStripFacetFilterComponent } from './content-strip-facet-filter.component';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { SbUiResolverModule } from '@sunbird-cb/resolver-v2';\nimport { HttpLoaderFactory1 } from '../content-strip-with-tabs-pills/content-strip-with-tabs-pills.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n declarations: [ContentStripFacetFilterComponent],\n imports: [\n SbUiResolverModule,\n CommonModule,\n RouterModule,\n HorizontalScrollerV2Module,\n MatProgressSpinnerModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatListModule,\n MatSidenavModule,\n MatCardModule,\n MatExpansionModule,\n MatRadioModule,\n MatChipsModule,\n MatInputModule,\n MatFormFieldModule,\n MatDialogModule,\n MatSnackBarModule,\n MatSelectModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressSpinnerModule,\n MatButtonToggleModule,\n MatTabsModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory1,\n deps: [HttpClient],\n },\n }),\n ],\n entryComponents: [ContentStripFacetFilterComponent],\n exports: [ContentStripFacetFilterComponent],\n})\nexport class ContentStripFacetFilterModule { }\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { Observable } from 'rxjs'\n\nconst API_POINTS = {\n COMPETENCY_LIST: `apis/proxies/v8/competency/v4/search`,\n COMPETENCY_LIST_V2: `apis/proxies/v8/searchBy/v2/competency`,\n CERTIFICATE_URL: `apis/protected/v8/cohorts/course/batch/cert/download/`,\n}\n\n@Injectable({ providedIn: 'root' })\n\nexport class CompetencyPassbookService {\n // tslint: disable-next-line: whitespace\n constructor(private http: HttpClient) { }\n getCompetencyList(payload: any): Observable<any> {\n return this.http.post(API_POINTS.COMPETENCY_LIST, payload)\n }\n getCompetencyListv_V2(): Observable<any> {\n return this.http.get(API_POINTS.COMPETENCY_LIST_V2)\n }\n\n fetchCertificate(certId: string): Observable<any> {\n return this.http.get(API_POINTS.CERTIFICATE_URL + certId)\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'sb-uic-pills',\n templateUrl: './pills.component.html',\n styleUrls: ['./pills.component.scss']\n})\nexport class PillsComponent implements OnInit {\n\n @Input() pillsData: any\n @Input() selectedValue: any\n @Input() isLoading: boolean = false\n @Output() pillClick = new EventEmitter<any>()\n @Input() dynamicClass: any = ''\n @Input() dynamicColor: any = ''\n @Input() requiredTitlecase: boolean = true\n\n constructor() { }\n\n ngOnInit() {\n }\n selectedPill(pillData: any) {\n this.pillClick.emit(pillData)\n }\n\n\n}\n","<ng-container *ngIf=\"!isLoading\">\n <mat-chip-list >\n <ng-container *ngFor=\"let pill of pillsData\">\n <mat-chip class=\"competency-chip\" (click)=\"selectedPill(pill)\" [style.color]=\"dynamicColor\" [style.borderColor]=\"'#999999'\"\n [ngClass]=\"{'active': selectedValue === pill?.name}\">\n <span [style.color]=\"dynamicColor\" class=\"pill-name\" *ngIf=\"requiredTitlecase\">{{pill?.name | titlecase}} <span *ngIf=\"pill?.count\">({{pill?.count}})</span></span>\n <span [style.color]=\"dynamicColor\" class=\"pill-name\" *ngIf=\"!requiredTitlecase\">{{pill?.name }} <span *ngIf=\"pill?.count\">({{pill?.count}})</span></span>\n </mat-chip>\n </ng-container>\n </mat-chip-list>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <div class=\"flex gap-4\">\n <ng-container *ngFor=\"let pill of [0,1,2]\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n</ng-container>\n","\nimport { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport { WidgetContentService } from '../../_services/widget-content.service';\nimport { CompetencyPassbookService } from './competency-passbook.service';\nimport { Router } from '@angular/router';\nimport { NsCompentency } from '../../_models/compentencies.model'\n\n@Component({\n selector: 'sb-uic-competency-passbook',\n templateUrl: './competency-passbook.component.html',\n styleUrls: ['./competency-passbook.component.scss']\n})\nexport class CompetencyPassbookComponent implements OnInit {\n\n @Input() objectData: any\n @Input() providerId: any\n @Input() cardDisplayCount: any = 3\n @Input() dynamicClass: any\n @Input() dynamicColor: any\n @Input() dynamicAlignPills: any = 'center'\n @Output() emptyResponse = new EventEmitter<any>()\n @Output() temeletryResponse = new EventEmitter<any>()\n loadCometency: boolean = false\n loadCompetencyArea: boolean = false\n originalCompetencyArray: any\n competencyArea: any []\n selectedValue: any;\n competencyVersion:string = ''\n competencyTheme: any = []\n allcompetencyTheme: any ={}\n competencyStrength: any = 0\n competencyThemeLength: any = 6\n showAllTheme : any = [{name:'Show all', showAll: false}]\n environment!: any;\n comeptencyKeys: NsCompentency.CompentencyKeys;\n // subTheme = ['Behavioural']\n // currentFilter = 'Behavioural'\n // currentCompetencies: any = []\n // competencyData: any\n constructor(public configSvc: ConfigurationsService,\n public contentSvc:WidgetContentService,\n public competencySvc: CompetencyPassbookService,\n public router : Router,\n @Inject('environment') environment: any,\n ) { \n this.environment = environment\n }\n\n \n ngOnInit() {\n this.comeptencyKeys = this.configSvc.compentency[this.environment.compentencyVersionKey]\n \n this.getAllCompetencies()\n // this.competencyData = this.objectData\n // this.filter(this.currentFilter)\n }\n // filter(filterValue: string) {\n // this.currentFilter = filterValue\n // this.currentCompetencies = this.competencyData.data.filter((item: any) => item.type === filterValue)\n // }\n showMore() {\n this.objectData.viewMore = !this.objectData.viewMore\n }\n\n // to get competency area from facets\n async getCompetencyArea(){\n let addfilter: any = {}\n if(this.providerId) {\n addfilter = {\n \"createdFor\": [\n this.providerId\n ],\n }\n }\n this.loadCompetencyArea = true\n let request = {\n \"request\": {\n \"query\": \"\",\n \"filters\": {\n \"contentType\":\"Course\",\n ...addfilter,\n \"status\": [\n \"Live\"\n ]\n },\n \"sort_by\": {\n \"lastUpdatedOn\": \"desc\"\n },\n \"facets\": [\n `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`\n ],\n \"limit\": 0,\n \"offset\": 0,\n \"fields\": [\n ]\n }\n }\n \n try {\n this.competencyStrength = 0\n const response = await this.callCompetencySearch(request);\n if (response && response.results) {\n if(response.results.result.facets){\n response.results.result.facets.forEach((fact: any) => {\n\n if(fact.name === `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`) {\n this.competencyArea = fact.values\n }\n });\n this.selectedValue = this.competencyArea[0].name.toLowerCase()\n this.competencyArea.forEach(async (area: any, indexValue: any)=> {\n let addFilter = {\n \"createdFor\": [\n this.providerId\n ]\n }\n let data = await this.getcompetencyThemeCount(area, addFilter)\n area['themeData'] = data\n area['count'] = data.length\n\n this.competencyStrength = this.competencyStrength + data.length\n if(indexValue === 0) {\n \n this.getThemeDataByArea(area)\n }\n })\n this.loadCompetencyArea = false\n }\n }\n } catch (error) {\n this.loadCompetencyArea = false\n this.emptyResponse.emit(true)\n // Handle errors\n // console.error('Error:', error);\n }\n }\n\n async callCompetencySearch(request){\n return new Promise<any>((resolve, reject) => {\n if (request && request) {\n this.contentSvc.searchV6(request).subscribe(results => {\n resolve({ results });\n },(error: any) => {\n reject(error);\n },\n );\n }\n });\n }\n\n // competency theam change\n competencyChange(e){\n let addfilter: any = {}\n if(this.providerId) {\n addfilter = {\n \"createdFor\": [\n this.providerId\n ],\n }\n }\n\n this.temeletryResponse.emit(e.name)\n \n this.getThemeDataByArea(e)\n this.selectedValue = e.name\n }\n getAllCompetencies(){\n this.loadCometency = true\n this.competencySvc.getCompetencyListv_V2().subscribe((response: any) => {\n this.allcompetencyTheme = {}\n if(response && response.result && response.result.content) {\n this.originalCompetencyArray = response.result.content\n this.getCompetencyArea()\n response.result.content.forEach(element => {\n element.children.forEach((childEle) => {\n let name = childEle.name.toLowerCase()\n this.allcompetencyTheme[name] = childEle\n this.allcompetencyTheme[name]['viewMore'] = false\n });\n });\n }\n this.loadCometency = false\n })\n }\n\n async getcompetencyTheme(value: any,addFilter?: any) {\n let request = {\n \"request\": {\n \"query\": \"\",\n \"filters\": {\n \"contentType\":\"Course\",\n ...addFilter,\n [`${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`] : value,\n \"status\": [\n \"Live\"\n ]\n },\n \"sort_by\": {\n \"lastUpdatedOn\": \"desc\"\n },\n \"facets\": [\n `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyTheme}`\n ],\n \"limit\": 0,\n \"offset\": 0,\n \"fields\": [\n ]\n }\n }\n \n try {\n this.loadCometency = true\n const response = await this.callCompetencySearch(request);\n if (response && response.results) {\n if(response.results.result.facets){\n let competencyThemeData : any = response.results.result.facets[0].values \n this.originalCompetencyArray.forEach((element: any) => {\n if(element.name.toLowerCase() === value) {\n this.competencyTheme = competencyThemeData.filter((ele1: any) => {\n return element.children.find((ele2: any) => ele2.name.toLowerCase() === ele1.name.toLowerCase())\n })\n this.showAllTheme = [{name:'Show all', showAll: false}]\n this.competencyThemeLength = 6\n }\n });\n this.resetViewMore()\n }\n this.loadCometency = false\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n\n getThemeDataByArea(areaData: any){\n let competencyThemeData : any = areaData.themeData\n this.originalCompetencyArray.forEach((element: any) => {\n if(element.name.toLowerCase() === areaData.name) {\n this.competencyTheme = competencyThemeData.filter((ele1: any) => {\n return element.children.find((ele2: any) => ele2.name.toLowerCase() === ele1.name.toLowerCase())\n })\n this.showAllTheme = [{name:'Show all', showAll: false}]\n this.competencyThemeLength = 6\n }\n });\n let addfilter: any = {}\n if(this.providerId) {\n addfilter = {\n \"createdFor\": [\n this.providerId\n ],\n }\n }\n this.getcompetencySubTheme(areaData,addfilter)\n }\n\n async getcompetencyThemeCount(area: any,addFilter?: any) {\n let request = {\n \"request\": {\n \"query\": \"\",\n \"filters\": {\n \"contentType\":\"Course\",\n ...addFilter,\n [`${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`] : area.name,\n \"status\": [\n \"Live\"\n ]\n },\n \"sort_by\": {\n \"lastUpdatedOn\": \"desc\"\n },\n \"facets\": [\n `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyTheme}`\n ],\n \"limit\": 0,\n \"offset\": 0,\n \"fields\": [\n ]\n }\n }\n \n try {\n let returnedData : any = \n this.loadCometency = true\n const response = await this.callCompetencySearch(request);\n if (response && response.results) {\n if(response.results.result.facets){\n let competencyThemeData : any = response.results.result.facets[0].values \n this.originalCompetencyArray.forEach((element: any) => {\n if(element.name.toLowerCase() === area.name) {\n returnedData = competencyThemeData.filter((ele1: any) => {\n return element.children.find((ele2: any) => ele2.name.toLowerCase() === ele1.name.toLowerCase())\n })\n this.showAllTheme = [{name:'Show all', showAll: false}]\n this.competencyThemeLength = 6\n }\n });\n }\n this.loadCometency = false\n return returnedData\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n\n resetViewMore(){\n Object.keys(this.allcompetencyTheme).forEach((comp: any) => {\n this.allcompetencyTheme[comp]['viewMore'] = false\n })\n }\n viewMoreChildren(data: any) {\n data.viewMore = !data.viewMore\n this.allcompetencyTheme[data.name.toLowerCase()].viewMore = data.viewMore\n }\n displayAllTheme(event: any) {\n this.showAllTheme[0]['showAll'] = !event.showAll \n this.competencyThemeLength = event.showAll ? this.competencyTheme.length : 6\n this.showAllTheme[0]['name'] = event.showAll ? 'Show less' : 'Show all'\n this.temeletryResponse.emit(event.name)\n }\n\n navigateToCompetency(compData: any){\n this.router.navigateByUrl(`/app/learn/browse-by/competency/${compData.name}`)\n }\n\n\n async getcompetencySubTheme(compArea: any,addFilter?: any) {\n let request = {\n \"request\": {\n \"query\": \"\",\n \"filters\": {\n \"contentType\":\"Course\",\n ...addFilter,\n [`${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`] : compArea.name,\n \"status\": [\n \"Live\"\n ]\n },\n \"sort_by\": {\n \"lastUpdatedOn\": \"desc\"\n },\n \"facets\": [\n `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencySubTheme}`\n ],\n \"limit\": 0,\n \"offset\": 0,\n \"fields\": [\n ]\n }\n }\n \n try {\n this.loadCometency = true\n const response = await this.callCompetencySearch(request);\n if (response && response.results) {\n if(response.results.result.facets){\n let competencySubThemeData : any = response.results.result.facets[0].values \n this.competencyArea.forEach((areaEle: any) => {\n if(areaEle.name === compArea.name) {\n areaEle.themeData.forEach((themeEle) => {\n if(this.allcompetencyTheme[themeEle.name.toLowerCase()] &&\n this.allcompetencyTheme[themeEle.name.toLowerCase()].children && \n this.allcompetencyTheme[themeEle.name.toLowerCase()].children.length) {\n let data = this.allcompetencyTheme[themeEle.name.toLowerCase()].children.filter(obj1 => \n competencySubThemeData.some(obj2 => \n Object.keys(obj1).every(key => obj1['name'] === (obj2['name']))\n )\n );\n \n this.allcompetencyTheme[themeEle.name.toLowerCase()]['children'] = data\n }\n });\n }\n })\n }\n\n this.loadCometency = false\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n }\n }\n}\n"," <div class=\"competency-title\" *ngIf=\"objectData?.title\">{{objectData?.title}} \n <span class=\"competency-count\">\n ({{competencyStrength}})\n </span>\n</div>\n<div class=\"flex items-center justify-{{dynamicAlignPills}} gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"competencyArea\" [dynamicColor]=\"dynamicColor\"\n [isLoading]=\"loadCompetencyArea\" (pillClick)=\"competencyChange($event)\" [selectedValue]=\"selectedValue\"></sb-uic-pills>\n</div>\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\" *ngIf=\"!loadCometency\">\n <div class=\"competency-card\" *ngFor=\"let obj of competencyTheme| slice:0:competencyThemeLength\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center\">\n <div class=\"name\">{{allcompetencyTheme[obj?.name]?.displayName}}</div>\n <!-- <div class=\"flex items-baseline\">\n <img src=\"assets/icons/competency/cp-arrow.svg\" class=\"arrow-img cursor-pointer\" alt=\"cp arrow img\" (click)=\"navigateToCompetency(obj)\" />\n </div> -->\n </div>\n </div>\n <div class=\"flex flex-row pt-3 pb-3 description\">\n {{ allcompetencyTheme[obj.name]?.description }} \n </div>\n <!-- <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\">school</mat-icon>\n <div class=\"no-of-contents\" *ngIf=\"obj.count === 1\">{{obj.count}} Content</div>\n <div class=\"no-of-contents\" *ngIf=\"obj.count !== 1\">{{obj.count}} Contents</div>\n </div> -->\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <ng-container *ngFor=\"let child of allcompetencyTheme[obj.name]?.children| slice:0: allcompetencyTheme[obj.name]?.viewMore ? allcompetencyTheme[obj.name]?.children?.length : 3; let i = index\">\n <div class=\"chip rounded-full p-2 text-xs chip-ellipsis\" [title]=\"child?.displayName\" >\n {{ child?.displayName }}\n </div>\n </ng-container>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && !allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View more\n </div>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View less\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"competencyTheme.length > 6 && !loadCometency\">\n <div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"showAllTheme\" [requiredTitlecase]=\"false\" [dynamicColor]=\"dynamicColor\" (pillClick)=\"displayAllTheme($event)\"></sb-uic-pills>\n </div>\n</ng-container> \n\n<ng-container *ngIf=\"loadCometency\">\n\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\">\n <div *ngFor=\"let obj of [0,1,2,3,4,5]\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center w-full\">\n <div class=\"name w-full\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"pt-3 pb-3 description\">\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'24px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></mat-icon>\n <div class=\"no-of-contents\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PillsComponent } from './pills.component';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\n\n\n\n@NgModule({\n declarations: [PillsComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatChipsModule,\n SkeletonLoaderLibModule\n ],\n exports: [PillsComponent]\n})\nexport class PillsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CompetencyPassbookComponent } from './competency-passbook.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PillsModule } from './../pills/pills.module';\nimport { CompetencyPassbookService } from './competency-passbook.service';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\n\n\n\n@NgModule({\n declarations: [CompetencyPassbookComponent],\n imports: [\n CommonModule,\n MatIconModule,\n PillsModule,\n SkeletonLoaderLibModule\n ],\n exports: [CompetencyPassbookComponent],\n providers:[CompetencyPassbookService]\n})\nexport class CompetencyPassbookModule { }\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { Observable } from 'rxjs'\n\nconst API_POINTS = {\n COMPETENCY_LIST: `apis/proxies/v8/competency/v4/search`,\n competency_URL: `apis/proxies/v8/v1/search/competenciesByOrg/`,\n COMPETENCY_LIST_V2: `apis/proxies/v8/searchBy/v2/competency`,\n}\n\n@Injectable({ providedIn: 'root' })\n\nexport class CompetencyPassbookMdoService {\n // tslint: disable-next-line: whitespace\n constructor(private http: HttpClient) { }\n getCompetencyList(payload: any): Observable<any> {\n return this.http.post(API_POINTS.COMPETENCY_LIST, payload)\n }\n getCompetencyListv_V2(): Observable<any> {\n return this.http.get(API_POINTS.COMPETENCY_LIST_V2)\n }\n mdoCompetency(providerId: string): Observable<any> {\n return this.http.get(API_POINTS.competency_URL + providerId)\n }\n}\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';\nimport { WidgetContentService } from '../../_services/widget-content.service';\nimport { CompetencyPassbookMdoService } from './competency-passbook-mdo.service';\nimport { Router } from '@angular/router';\nimport { NsCompentency } from '../../_models/compentencies.model';\n@Component({\n selector: 'sb-uic-competency-passbook-mdo',\n templateUrl: './competency-passbook-mdo.component.html',\n styleUrls: ['./competency-passbook-mdo.component.scss']\n})\nexport class CompetencyPassbookMdoComponent implements OnInit {\n\n @Input() objectData: any\n @Input() providerId: any\n @Input() cardDisplayCount: any = 3\n @Input() dynamicClass: any\n @Input() dynamicColor: any\n @Input() dynamicAlignPills: any = 'center'\n @Output() emptyResponse = new EventEmitter<any>()\n @Output() temeletryResponse = new EventEmitter<any>()\n loadCometency: boolean = false\n loadCompetencyArea: boolean = false\n originalCompetencyArray: any\n competencyArea: any []\n selectedValue: any = 'functional';\n competencyVersion:string = ''\n competencyThemeData: any\n competencyTheme: any = []\n allcompetencyTheme: any ={}\n competencyStrength: any = 0\n competencyThemeLength: any = 6\n showAllTheme : any = [{name:'Show all', showAll: false}]\n\n environment!: any;\n comeptencyKeys: NsCompentency.CompentencyKeys;\n \n // subTheme = ['Behavioural']\n // currentFilter = 'Behavioural'\n // currentCompetencies: any = []\n // competencyData: any\n constructor(public configSvc: ConfigurationsService,\n public contentSvc:WidgetContentService,\n public competencySvc: CompetencyPassbookMdoService,\n public router : Router,\n @Inject('environment') environment: any,\n\n ) {\n this.environment = environment\n }\n\n \n ngOnInit() {\n this.comeptencyKeys = this.configSvc.compentency[this.environment.compentencyVersionKey]\n \n this.getAllCompetencies()\n }\n\n\n getAllCompetencies(){\n this.loadCometency = true\n let request = {\"search\":{\"type\":\"Competency Area\"},\"filter\":{\"isDetail\":true}}\n this.competencySvc.getCompetencyListv_V2().subscribe((response: any) => {\n this.allcompetencyTheme = {}\n if(response && response.result && response.result.content) {\n this.originalCompetencyArray = response.result.content\n this.getMdoCompetencies()\n // this.getCompetencyArea()\n response.result.content.forEach(element => {\n element.children.forEach((childEle) => {\n let name = childEle.name.toLowerCase()\n this.allcompetencyTheme[name] = childEle\n this.allcompetencyTheme[name]['viewMore'] = false\n });\n });\n }\n this.loadCometency = false\n })\n }\n \n\n\n async getMdoCompetencies(){\n try {\n this.loadCometency = true\n const response = await this.getMdoCompetency();\n if (response && response.results) {\n if(response.results.result.facets && response.results.result.facets.length){\n let facetData = response.results.result.facets\n facetData.forEach((facet: any) => {\n if(facet.name === `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`) {\n this.competencyArea = facet.values\n this.selectedValue = facet.values[0].name\n } else if(facet.name === `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyTheme}`) {\n this.competencyThemeData = facet.values\n this.getCompetencyTheme()\n }\n });\n\n } else {\n this.emptyResponse.emit(true)\n }\n this.loadCometency = false\n }\n } catch (error) {\n // Handle errors\n // console.error('Error:', error);\n this.emptyResponse.emit(true)\n }\n }\n\n getCompetencyTheme(){\n this.originalCompetencyArray.forEach((element: any) => {\n if(element.name.toLowerCase() === this.selectedValue) {\n this.competencyTheme = this.competencyThemeData.filter((ele1: any) => {\n return element.children.find((ele2: any) => ele2.name.toLowerCase() === ele1.name.toLowerCase())\n })\n this.showAllTheme = [{name:'Show all', showAll: false}]\n this.competencyThemeLength = 6\n } else if('Behavioral'.toLowerCase() === this.selectedValue) {\n this.competencyTheme = this.competencyThemeData.filter((ele1: any) => {\n return element.children.find((ele2: any) => ele2.name.toLowerCase() === ele1.name.toLowerCase())\n })\n this.showAllTheme = [{name:'Show all', showAll: false}]\n this.competencyThemeLength = 6\n }\n });\n this.resetViewMore()\n }\n\n\n async getMdoCompetency(){\n return new Promise<any>((resolve, reject) => {\n if (this.providerId) {\n this.competencySvc.mdoCompetency(this.providerId).subscribe(results => {\n resolve({ results });\n },(error: any) => {\n reject(error);\n },\n );\n }\n });\n }\n\n // competency theam change\n competencyChange(e){\n let addfilter: any = {}\n if(this.providerId) {\n addfilter = {\n \"createdFor\": [\n this.providerId\n ],\n }\n }\n\n this.temeletryResponse.emit(e.name)\n this.selectedValue = e.name\n this.getCompetencyTheme()\n }\n\n\n\n resetViewMore(){\n Object.keys(this.allcompetencyTheme).forEach((comp: any) => {\n this.allcompetencyTheme[comp]['viewMore'] = false\n })\n }\n viewMoreChildren(data: any) {\n data.viewMore = !data.viewMore\n this.allcompetencyTheme[data.name.toLowerCase()].viewMore = data.viewMore\n }\n displayAllTheme(event: any) {\n this.showAllTheme[0]['showAll'] = !event.showAll \n this.competencyThemeLength = event.showAll ? this.competencyTheme.length : 6\n this.showAllTheme[0]['name'] = event.showAll ? 'Show less' : 'Show all'\n this.temeletryResponse.emit(event.name)\n }\n\n navigateToCompetency(compData: any){\n this.router.navigateByUrl(`app/learn/browse-by/competency/${compData.name}`)\n }\n\n showMore() {\n this.objectData.viewMore = !this.objectData.viewMore\n }\n}\n","<div class=\"competency-title\" *ngIf=\"objectData?.title\">{{objectData?.title}} \n <span class=\"competency-count\">\n ({{competencyStrength}})\n </span>\n</div>\n<div class=\"flex items-center justify-{{dynamicAlignPills}} gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"competencyArea\" [dynamicColor]=\"dynamicColor\"\n [isLoading]=\"loadCompetencyArea\" (pillClick)=\"competencyChange($event)\" [selectedValue]=\"selectedValue\"></sb-uic-pills>\n</div>\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\" *ngIf=\"!loadCometency\">\n <div class=\"competency-card\" *ngFor=\"let obj of competencyTheme| slice:0:competencyThemeLength\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center\">\n <div class=\"name\">{{allcompetencyTheme[obj?.name]?.displayName}}</div>\n <!-- <div class=\"flex items-baseline\">\n <img src=\"assets/icons/competency/cp-arrow.svg\" class=\"arrow-img cursor-pointer\" alt=\"cp arrow img\" (click)=\"navigateToCompetency(obj)\" />\n </div> -->\n </div>\n </div>\n <div class=\"flex flex-row pt-3 pb-3 description\">\n {{ allcompetencyTheme[obj.name]?.description }} \n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\">school</mat-icon>\n <div class=\"no-of-contents\">{{obj.count}} Contents</div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <ng-container *ngFor=\"let child of allcompetencyTheme[obj.name]?.children| slice:0: allcompetencyTheme[obj.name]?.viewMore ? allcompetencyTheme[obj.name]?.children?.length : 3; let i = index\">\n <div class=\"chip rounded-full p-2 text-xs chip-ellipsis\" [title]=\"child?.displayName\" >\n {{ child?.displayName }}\n </div>\n </ng-container>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && !allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View more\n </div>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View less\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"competencyTheme.length > 6 && !loadCometency\">\n <div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"showAllTheme\" [requiredTitlecase]=\"false\" [dynamicColor]=\"dynamicColor\" (pillClick)=\"displayAllTheme($event)\"></sb-uic-pills>\n </div>\n</ng-container> \n\n<ng-container *ngIf=\"loadCometency\">\n\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\">\n <div *ngFor=\"let obj of [0,1,2,3,4,5]\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center w-full\">\n <div class=\"name w-full\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"pt-3 pb-3 description\">\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'24px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></mat-icon>\n <div class=\"no-of-contents\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CompetencyPassbookMdoComponent } from './competency-passbook-mdo.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PillsModule } from './../pills/pills.module';\nimport { CompetencyPassbookMdoService } from './competency-passbook-mdo.service';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\n\n\n\n@NgModule({\n declarations: [CompetencyPassbookMdoComponent],\n imports: [\n CommonModule,\n MatIconModule,\n PillsModule,\n SkeletonLoaderLibModule\n ],\n exports: [CompetencyPassbookMdoComponent],\n providers:[CompetencyPassbookMdoService]\n})\nexport class CompetencyPassbookMdoModule { }\n","import { Injectable } from '@angular/core'\nimport { Observable, of } from 'rxjs'\nimport { HttpClient } from '@angular/common/http'\nimport { NsAppRating } from '../_models/rating.model'\n\nconst PROXY_SLAG_V8 = '/apis/proxies/v8'\nconst API_END_POINTS = {\n GET_RATING: (contentId: string, contentType: string, userId: string) =>\n `${PROXY_SLAG_V8}/ratings/v1/read/${contentId}/${contentType}/${userId}`,\n ADD_OR_UPDATE: `${PROXY_SLAG_V8}/ratings/v1/upsert`,\n GET_RATING_SUMMARY: (contentId: string, contentType: string) =>\n `${PROXY_SLAG_V8}/ratings/v1/summary/${contentId}/${contentType}`,\n GET_RATING_LOOKUP: `${PROXY_SLAG_V8}/ratings/v1/ratingLookUp`,\n GET_AUTHOR_REPLY: (contentId: string, userID: string) =>\n `${PROXY_SLAG_V8}/ratings/v1/read/${contentId}/Course/${userID}`,\n POST_AUTHOR_REPLY: `${PROXY_SLAG_V8}/ratings/v2/read`,\n}\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class RatingService {\n\n constructor(public http: HttpClient) { }\n\n getRating(contentId: string, contentType: string, userId: string): Observable<any> {\n const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true')\n if (!forPreview) {\n return this.http.get<any>(\n API_END_POINTS.GET_RATING(contentId, contentType, userId)\n )\n }\n return of({})\n }\n\n addOrUpdateRating(req: NsAppRating.IRating): Observable<any> {\n return this.http.post<any>(\n API_END_POINTS.ADD_OR_UPDATE, req\n )\n }\n\n getRatingSummary(contentId: string, contentType: string): Observable<any> {\n const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true')\n if (!forPreview) {\n return this.http.get<any>(\n API_END_POINTS.GET_RATING_SUMMARY(contentId, contentType)\n )\n }\n return of({})\n }\n\n getRatingLookup(req: NsAppRating.ILookupRequest): Observable<any> {\n return this.http.post<any>(\n API_END_POINTS.GET_RATING_LOOKUP, req\n )\n }\n\n getRatingReply(req: any): Observable<any> {\n const forPreview = window.location.href.includes('/public/') || window.location.href.includes('&preview=true')\n if (!forPreview) {\n return this.http.post<any>(\n API_END_POINTS.POST_AUTHOR_REPLY, req\n )\n }\n return of({})\n }\n\n getRatingIcon(ratingIndex: number, avg: number): 'star' | 'star_border' | 'star_half' {\n if (avg) {\n const avgRating = avg\n const ratingFloor = Math.floor(avgRating)\n // const difference = avgRating - ratingIndex\n if (ratingIndex <= ratingFloor) {\n return 'star'\n }\n if (ratingFloor === ratingIndex - 1 && avgRating % 1 >= 0.29 && avgRating % 1 < 0.71) {\n return 'star_half'\n }\n }\n return 'star'\n }\n\n getRatingIconClass(ratingIndex: number, avg: number): boolean {\n if (avg) {\n const avgRating = avg\n const ratingFloor = Math.floor(avgRating)\n if (ratingIndex <= ratingFloor) {\n return true\n }\n if (ratingFloor === ratingIndex - 1 && avgRating % 1 >= 0.29 && avgRating % 1 < 0.71) {\n return true\n }\n if (ratingFloor === ratingIndex - 1 && avgRating % 1 > 0.71) {\n return true\n }\n if (ratingFloor === ratingIndex - 1 && avgRating % 1 < 0.29) {\n return false\n }\n }\n return false\n }\n\n getAuthorReply(contentId: string, userID: string): Observable<any> {\n return this.http.get<any>(\n API_END_POINTS.GET_AUTHOR_REPLY(contentId, userID)\n )\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nconst API_END_POINTS = {\n TOP_REVIEWS: `/apis/proxies/v8/ratings/v1/topReviews`\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class UserContentRatingLibService {\n\n constructor(private http: HttpClient) { }\n fetchTopReviews(doId: any): Observable<any> {\n return this.http.get<any>(`${API_END_POINTS.TOP_REVIEWS}/${doId}`)\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { RatingService } from '../../_services/rating.service';\nimport { ScrollableItemDirective } from './../../_directives/scrollable-item/scrollable-item.directive';\nimport { UserContentRatingLibService } from './user-content-rating-lib.service';\n\n@Component({\n selector: 'sb-uic-user-content-rating',\n templateUrl: './user-content-rating-lib.component.html',\n styleUrls: ['./user-content-rating-lib.component.scss']\n})\nexport class UserContentRatingLibComponent implements OnInit {\n currentIndex: any =0\n @Input() providerId : any = ''\n @Input() formData : any = ''\n @Output() emptyResponse = new EventEmitter<any>()\n styleData: any = {} \n contentdata: any = []\n\n\n @ViewChildren(ScrollableItemDirective) scrollableItems: QueryList<ScrollableItemDirective>\n constructor(public ratingService: RatingService,\n public userRatingSvc: UserContentRatingLibService\n ) { }\n\n ngOnInit() {\n this.styleData = this.formData && this.formData.sliderData && this.formData.sliderData.styleData\n this.getTopReviews();\n }\n\n getTopReviews() {\n this.contentdata = []\n this.userRatingSvc.fetchTopReviews(this.providerId).subscribe((response: any) => {\n if(response && response.result && response.result.content.length) {\n response.result.content.forEach((contentEle: any) => {\n let localData = {}\n localData['content'] = contentEle.contentInfo\n localData['rating'] = contentEle.rating\n localData['review'] = contentEle.review\n localData['userDetails'] = contentEle.userDetails\n localData['cardSubType'] = \"card-wide-lib\"\n localData['cardCustomeClass'] = \"\"\n this.contentdata.push(localData)\n });\n } else {\n this.emptyResponse.emit(true)\n }\n },(_error: any)=> {\n this.emptyResponse.emit(true)\n })\n }\n\n getRatingIcon(ratingIndex: number, avg: number): 'star' | 'star_border' | 'star_half' {\n return this.ratingService.getRatingIcon(ratingIndex, avg)\n }\n getRatingIconClass(ratingIndex: number, avg: number): boolean {\n return this.ratingService.getRatingIconClass(ratingIndex, avg)\n }\n\n getCurrentIndex(indexValue: any) {\n this.currentIndex = indexValue\n this.handleScrollClick(indexValue)\n }\n\n handleScrollClick(dataValue: string) {\n const item = this.scrollableItems.find(x => x.key === dataValue)\n item.scrollIntoView(\"nearest\");\n }\n\n}\n","<ng-container *ngIf=\"contentdata.length\">\n <div class=\"user-rating-section\">\n <sb-uic-sliders-ng-content [title]=\"'providerName'\" [currentIndex]=\"currentIndex\" (currentIndexValue)=\"getCurrentIndex($event)\" [loadNgContentData]=\"true\" [widgetData]=\"contentdata\" [styleData]=\"styleData\">\n <div sliderbody>\n <div class=\"flex users-block\">\n <ng-container *ngFor=\"let userData of contentdata; let j = index\">\n <div class=\"avatar-block mr-1\" [sbUicScrollableItem]=\"j\"\n [ngClass]=\"{'user-active': j === currentIndex}\" (click)=\"handleScrollClick(currentIndex);currentIndex = j\">\n <sb-uic-avatar-photo [defaulfColor]=\"'#1B2133'\" [datalen]=\"1\" [randomColor]=\"true\" [name]=\"userData?.userDetails?.firstName\" [photoUrl]=\"userData?.userDetails?.profileImageUrl\" size=\"m-side-rating\">\n </sb-uic-avatar-photo>\n </div>\n </ng-container>\n </div>\n <div *ngFor=\"let ratingData of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"user-ratting-wrapper flex flex-wrap justify-center\">\n <div class=\"w-full mr-0 md:mr-8 ml-0 md:ml-8 pb-5\">\n <sb-uic-cards [widgetData]=\"ratingData\"></sb-uic-cards>\n </div>\n <div class=\"title-border-v2\"></div>\n <p class=\"userName w-full mb-4 pt-2\">{{ratingData?.userDetails?.firstName}}</p>\n <div class=\"flex w-full flex-row justify-center gap-2 mb-4\">\n <mat-icon class=\"mat-icon material-icons rating-icon ws-mat-black16-text\"\n [ngClass]=\"{'ws-mat-orange-text': getRatingIconClass(rating, ratingData?.rating)}\"\n *ngFor=\"let rating of [1, 2, 3, 4, 5]\">\n {{ getRatingIcon(rating, ratingData?.rating) }}\n </mat-icon>\n </div>\n <p class=\"content-feedback w-full mb-4 px-4 md:px-8\">{{ratingData?.review}}</p>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </div>\n</ng-container>\n\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UserContentRatingLibComponent } from './user-content-rating-lib.component';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { SlidersLibModule } from '../sliders/sliders.module';\nimport { RatingService } from '../../_services/rating.service';\nimport { CardsModule } from '../cards/cards.module';\nimport { AvatarPhotoLibModule } from '../avatar-photo-lib/avatar-photo-lib.module';\nimport { SlidersNgContentLibModule } from '../sliders-ng-content/sliders-ng-content.module';\nimport { ScrollableItemModule } from '../../_directives/scrollable-item/scrollable-item.module';\nimport { UserContentRatingLibService } from './user-content-rating-lib.service';\n\n\n\n@NgModule({\n declarations: [UserContentRatingLibComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatChipsModule,\n SkeletonLoaderLibModule,\n SlidersLibModule,\n CardsModule,\n AvatarPhotoLibModule,\n SlidersNgContentLibModule,\n ScrollableItemModule\n ],\n exports: [UserContentRatingLibComponent],\n providers: [RatingService, UserContentRatingLibService],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class UserContentRatingLibModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'sb-uic-mdo-channel-v1',\n templateUrl: './mdo-channel-v1.component.html',\n styleUrls: ['./mdo-channel-v1.component.scss']\n})\nexport class MdoChannelV1Component implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<p>mdo-channel-v1 works!</p>\n","import { Component, HostListener, Input, OnInit } from '@angular/core'\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { ActivatedRoute, Router } from '@angular/router'\nimport { EventService, WsEvents } from '@sunbird-cb/utils-v2'\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { TranslateService } from '@ngx-translate/core'\nimport { MultilingualTranslationsService } from '@sunbird-cb/utils-v2'\n\n@Component({\n selector: 'sb-uic-mdo-channel-v2',\n templateUrl: './mdo-channel-v2.component.html',\n styleUrls: ['./mdo-channel-v2.component.scss']\n})\nexport class MdoChannelV2Component implements OnInit {\n @Input() sectionList:any = []\n channnelName = ''\n orgId = ''\n selectedIndex = 0\n hideCompetencyBlock: boolean = false\n contentTabEmptyResponseCount: number = 0\n titles = [\n { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },\n {\n title: `MDO Channels`,\n url: `/app/learn/mdo-channels/all-channels`,\n icon: '', disableTranslate: true,\n },\n ]\n showModal: boolean = false\n descriptionMaxLength = 500\n isTelemetryRaised: boolean = false\n stripWidth: any\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private eventSvc: EventService,\n private translate: TranslateService,\n private langtranslations: MultilingualTranslationsService,\n ) { \n if (this.route.snapshot.data && this.route.snapshot.data.formData\n && this.route.snapshot.data.formData.data\n && this.route.snapshot.data.formData.data.result\n && this.route.snapshot.data.formData.data.result.form\n && this.route.snapshot.data.formData.data.result.form.data\n && this.route.snapshot.data.formData.data.result.form.data.sectionList\n ) {\n this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList\n }\n this.langtranslations.languageSelectedObservable.subscribe(() => {\n if (localStorage.getItem('websiteLanguage')) {\n this.translate.setDefaultLang('en')\n const lang = localStorage.getItem('websiteLanguage')!\n this.translate.use(lang)\n }\n })\n }\n\n @HostListener('window:resize')\n onResize() {\n this.setWidth()\n }\n\n setWidth() {\n this.stripWidth = `${(window.innerWidth - 1200 + 135)/2}px`\n\n }\n\n ngOnInit() {\n this.route.params.subscribe(params => {\n this.channnelName = params['channel']\n this.orgId = params['orgId']\n this.titles.push({\n title: this.channnelName, icon: '', url: 'none', disableTranslate: true,\n })\n })\n this.setWidth()\n }\n\n public tabClicked(tabEvent: MatTabChangeEvent) {\n this.raiseTelemetry(`${tabEvent.tab.textLabel} tab`)\n }\n hideContentStrip(event: any, colData: any) {\n if (event) {\n colData.contentStripData['hideSection'] = true\n this.contentTabEmptyResponseCount = this.contentTabEmptyResponseCount + 1\n // if(this.contentTabEmptyResponseCount === 4 ) {\n // this.selectedIndex = 1\n // }\n }\n }\n\n triggerOpenDialog(event: boolean) {\n if(event) {\n this.showModal = true\n document.body.style.overflow = 'hidden'\n }\n this.raiseTelemetry('btn open key annoucements')\n }\n\n onClose() {\n this.showModal = false\n document.body.style.overflow = 'auto'\n this.raiseTelemetry('btn close key annoucements')\n }\n\n raiseTelemetryInteratEvent(event: any) {\n if (event && event.viewMoreUrl) {\n this.raiseTelemetry(`${event.stripTitle} ${event.viewMoreUrl.viewMoreText}`)\n }\n if (!this.isTelemetryRaised && event && !event.viewMoreUrl) {\n this.eventSvc.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'mdo-channel',\n id: `${_.kebabCase(event.typeOfTelemetry.toLocaleLowerCase())}-card`,\n },\n {\n id: event.identifier,\n type: event.primaryCategory,\n },\n {\n pageIdExt: `${_.kebabCase(event.primaryCategory.toLocaleLowerCase())}-card`,\n module: WsEvents.EnumTelemetrymodules.LEARN,\n }\n )\n this.isTelemetryRaised = true\n }\n }\n\n raiseCompetencyTelemetry(name: string) {\n this.raiseTelemetry(`${name} core expertise`)\n }\n\n raiseTelemetry(name: string) {\n this.eventSvc.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'mdo-channel',\n id: `${_.kebabCase(name).toLocaleLowerCase()}`,\n },\n {},\n {\n module: WsEvents.EnumTelemetrymodules.LEARN,\n }\n )\n }\n\n hideCompetency(event: any) {\n if (event) {\n this.hideCompetencyBlock = true\n }\n }\n\n showAllContent(_stripData: any, columnData: any) {\n if (columnData && columnData.contentStrip && columnData.contentStrip.strips && columnData.contentStrip.strips.length) {\n const stripData: any = _stripData\n let tabSelected = stripData.viewMoreUrl && stripData.viewMoreUrl.queryParams && stripData.viewMoreUrl.queryParams.tabSelected && stripData.viewMoreUrl.queryParams.tabSelected || ''\n this.router.navigate(\n [`/app/learn/mdo-channels/${this.channnelName}/${this.orgId}/all-content`],\n { queryParams: { tabSelected, key: columnData.sectionKey } })\n }\n }\n\n}\n","<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10\"\n [style.color]=\"data.titleColor\">{{data.title || channnelName}}</h1>\n <p class=\"mat-body-1\" [style.color]=\"data.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n </div>\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\" >\n <div class=\"hidden md:block\">\n <div class=\"metrics\"\n [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points\n [providerId]=\"orgId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'singleFlexeRow'\"\n [pageLayout]=\"'mdo'\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points\n [providerId]=\"orgId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'singleRow'\"\n [pageLayout]=\"'mdo'\">\n </sb-uic-data-points>\n </div>\n \n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\">\n <sb-uic-announcements\n [layoutType]=\"'mobile'\"\n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\"\n [fetchDataFromApi]=\"false\"\n [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements\n [layoutType]=\"'web'\"\n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\"\n [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <!-- Tabs Section -->\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\" (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\" >\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data.tabSection.contentTab.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\" >\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div class=\"col-span-12 md:col-span-4\">\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\"\n *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div> \n </div>\n <div class=\"hidden md:block\" \n *ngIf=\"data?.announcementSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-announcements\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div> \n </div>\n </div> \n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n <!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\" *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo\n [dynamicColor]=\"'#999999'\"\n [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\"\n (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\"\n [objectData]=\"competency\"\n [providerId]=\"orgId\"\n >\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n{{contentTabEmptyResponseCount}}hiiii\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"true\"\n (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"hideContentStrip($event, data)\"\n [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\"\n [channnelName]=\"channnelName\"\n >\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\" >\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners\n [objectData]=\"data\"\n [channnelName]=\"channnelName\"\n [channelId]=\"orgId\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MdoChannelV1Component } from './mdo-channel-v1/mdo-channel-v1.component';\nimport { SkeletonLoaderLibModule } from '../../skeleton-loader-lib/skeleton-loader-lib.module';\n\nimport {\n AnnouncementsModule,\n CardsModule,\n CommonMethodsService,\n CommonStripModule,\n CompetencyPassbookModule,\n CompetencyPassbookMdoModule,\n ContentStripWithTabsLibModule,\n DataPointsModule,\n SlidersLibModule,\n HttpLoaderFactory,\n TopLearnersModule,\n CbpPlanModule,\n} from './../../../../public-api'\nimport { MdoChannelV2Component } from './mdo-channel-v2/mdo-channel-v2.component';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n declarations: [MdoChannelV1Component, MdoChannelV2Component],\n imports: [\n CommonModule,\n MatIconModule,\n MatChipsModule,\n SkeletonLoaderLibModule,\n AnnouncementsModule,\n TopLearnersModule,\n CbpPlanModule,\n CardsModule,\n CommonStripModule,\n CompetencyPassbookModule,\n CompetencyPassbookMdoModule,\n ContentStripWithTabsLibModule,\n DataPointsModule,\n SlidersLibModule,\n MatTabsModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n ],\n exports: [MdoChannelV1Component, MdoChannelV2Component],\n providers:[\n CommonMethodsService],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class MDOChannelModule { }\n","import { DatePipe } from '@angular/common'\nimport { Component, Input, OnInit } from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\nimport { EventService, WsEvents } from '@sunbird-cb/utils-v2'\nimport * as _ from 'lodash'\n\n@Component({\n selector: 'sb-uic-providers-v2',\n templateUrl: './providers-v2.component.html',\n styleUrls: ['./providers-v2.component.scss']\n})\nexport class ProvidersV2Component implements OnInit {\n\n @Input() sectionList:any = []\n providerName = ''\n providerId = ''\n navList: any\n hideCompetencyBlock = false\n // sectionList: any = []\n currentMonthAndYear: any\n titles = [\n { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },\n { title: `All Providers`,\n url: `/app/learn/browse-by/provider/all-providers`,\n icon: '', disableTranslate: true,\n },\n ]\n\n descriptionMaxLength = 500\n isTelemetryRaised = false\n\n constructor(private route: ActivatedRoute,\n public router: Router, private datePipe: DatePipe, private events: EventService) {\n\n }\n\n ngOnInit() {\n if (this.route.snapshot.data && this.route.snapshot.data.formData\n && this.route.snapshot.data.formData.data\n && this.route.snapshot.data.formData.data.result\n && this.route.snapshot.data.formData.data.result.form\n && this.route.snapshot.data.formData.data.result.form.data\n && this.route.snapshot.data.formData.data.result.form.data.sectionList\n ) {\n this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList\n }\n this.route.params.subscribe(params => {\n this.providerName = params['provider']\n this.providerId = params['orgId']\n this.titles.push({\n title: this.providerName, icon: '', url: 'none', disableTranslate: true,\n })\n })\n this.getNavitems()\n this.currentMonthAndYear = this.datePipe.transform(new Date(), 'MMMM y')\n }\n\n getNavitems() {\n this.navList = this.sectionList.filter(\n (obj: any) => obj.enabled && obj.navigation && obj.navOrder).sort(\n (a: any, b: any) => a.navOrder - b.navOrder)\n }\n\n scrollToSection(name: string) {\n let section: HTMLElement | any\n section = document.getElementById(name)\n if (section) {\n // section.scrollIntoView({ behavior: 'smooth', block: 'start',inline: 'nearest', offsetTop: yOffset })\n window.scrollTo({\n top: section.offsetTop - 121,\n behavior: 'smooth',\n })\n }\n }\n hideCompetency(event: any, columnData: any) {\n if (event) {\n this.hideCompetencyBlock = true\n columnData['navigation'] = false\n columnData['enabled'] = false\n this.navList.forEach((navItem: any) => {\n navItem.column.forEach((colEle: any) => {\n if (colEle.key === columnData.key) {\n navItem['navigation'] = false\n }\n })\n })\n }\n }\n hideContentStrip(event: any, contentStripData: any) {\n if (event) {\n contentStripData.contentStrip['hideSection'] = true\n }\n }\n hideLearnerReview(event: any, learnerReview: any) {\n if (event) {\n learnerReview['hideSection'] = true\n }\n }\n\n showAllContent(_stripData: any, columnData: any) {\n if (columnData && columnData.contentStrip && columnData.contentStrip.strips && columnData.contentStrip.strips.length) {\n const stripData: any = _stripData\n let tabSelected = stripData.viewMoreUrl && stripData.viewMoreUrl.queryParams && stripData.viewMoreUrl.queryParams.tabSelected && stripData.viewMoreUrl.queryParams.tabSelected || ''\n this.router.navigate(\n [`/app/learn/browse-by/provider/${this.providerName}/${this.providerId}/all-content`],\n { queryParams: { pageDetails: true, tabSelected, key: columnData.sectionKey } })\n\n } else {\n this.router.navigate(\n [`/app/learn/browse-by/provider/${this.providerName}/${this.providerId}/all-CBP`],\n { queryParams: { pageDetails: true } })\n }\n }\n\n raiseTelemetryInteratEvent(event: any) {\n if (event && event.viewMoreUrl) {\n this.raiseTelemetry(`${event.stripTitle} ${event.viewMoreUrl.viewMoreText}`)\n }\n if (!this.isTelemetryRaised && event && !event.viewMoreUrl) {\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'ATI/CTI',\n id: `${_.kebabCase(event.typeOfTelemetry.toLocaleLowerCase())}-card`,\n },\n {\n id: event.identifier,\n type: event.primaryCategory,\n },\n {\n pageIdExt: `${_.kebabCase(event.primaryCategory.toLocaleLowerCase())}-card`,\n module: WsEvents.EnumTelemetrymodules.LEARN,\n }\n )\n this.isTelemetryRaised = true\n }\n }\n\n raiseCompetencyTelemetry(name: string) {\n this.raiseTelemetry(`${name} core expertise`)\n }\n\n raiseTelemetry(name: string) {\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'ATI/CTI',\n id: `${_.kebabCase(name).toLocaleLowerCase()}`,\n },\n {},\n {\n module: WsEvents.EnumTelemetrymodules.LEARN,\n }\n )\n }\n\n raiseNavTelemetry(name: string) {\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'ATI/CTI',\n id: `${_.kebabCase(name).toLocaleLowerCase()}-navigation`,\n },\n {},\n {\n module: WsEvents.EnumTelemetrymodules.LEARN,\n }\n )\n }\n}\n","<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'trainingCalendar'\" [ngTemplateOutlet]=\"trainingCalendar\"\n [ngTemplateOutletContext]=\"{trainingCalendar: column.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contributors'\" [ngTemplateOutlet]=\"contributors\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'infra'\" [ngTemplateOutlet]=\"infra\"\n [ngTemplateOutletContext]=\"{infra: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentTopStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container> \n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container> \n <ng-container *ngSwitchCase=\"'learnerReview'\" [ngTemplateOutlet]=\"learnerReviewBlock\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container> \n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<div class=\"container-fluid\" *ngIf=\"navList?.length\">\n <div class=\"flex sticky-navigator gap-4\">\n <mat-icon class=\"nav-up-arrow cursor-pointer\" (click)=\"scrollToSection('section-micro-sites')\">arrow_upwards</mat-icon>\n <ng-container *ngFor=\"let section of navList\">\n <ng-container *ngIf=\"section.navigation\">\n <div class=\"nav-button\" (click)=\"scrollToSection(section?.key); raiseNavTelemetry(section?.title)\">{{section?.title}}</div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #topSection let-data=\"data\">\n <!-- <div class=\"w-full grid grid-cols-12 gap-4\"> -->\n <div class=\"col-span-12 \">\n <div class=\"grid grid-cols-12 auto-rows-max\">\n \n <div class=\"col-span-3 custombgsection\">\n <div class=\"hidden md:block py-5 h-full \">\n <sb-uic-data-points [providerId]=\"providerId\" [fetchDataFromApi]=\"true\" [objectData]=\"data?.metrics?.data\" [layoutType]=\"'multipleRows-V2'\"></sb-uic-data-points>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-9\">\n <div class=\"slider h-full\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [title]=\"providerName\" [widgetData]=\"data?.sliderData?.sliders\" [styleData]=\"data?.sliderData?.styleData\" [type]=\"'atictitop'\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 title-section px-5 md:py-5 mob-container\">\n <div class=\"container flex flex-col md:flex-row\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-rounded top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || providerName}}</h1>\n <p>{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n <div class=\"block md:hidden overflow-y-auto mb-3\">\n <sb-uic-data-points [providerId]=\"providerId\" [fetchDataFromApi]=\"true\" [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow-v2'\"></sb-uic-data-points>\n </div>\n <button\n (click)=\"raiseTelemetry(data?.contentButton?.title)\"\n [routerLink]=\"[data?.contentButton?.redirectUrl, providerName, providerId, 'all-CBP']\"\n [queryParams]=\"{pageDetails: true}\" mat-button type=\"button\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{data?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n </div>\n <!-- </div> -->\n</ng-template>\n\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex justify-center relative\">\n <img class=\"absolute {{data?.contentStrip?.sectionImagePosition}}\" src=\"{{data?.contentStrip?.sectionImage}}\" alt=\"\">\n <div class=\"container \">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"true\"\n (viewAllResponse)=\"showAllContent($event,data)\"\n (emptyResponse)=\"hideContentStrip($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n [providerId]=\"providerId\"\n [widgetData]=\"data?.contentStrip\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #contributors let-data=\"data\">\n <div class=\"contributors-background px-5 py-5\" [style.background]=\"data?.background\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 padding-top-l mb-6\">\n <div class=\"col-span-12 md:col-span-3 contributor-desc\">\n <div class=\"infra-box flex flex-col\">\n <div class=\"infra-title-v2 hidden md:block\">\n {{data.detaulTitle}}<span class=\"infra-title2-v2\">{{data.defaultTitle1}}</span>\n </div>\n <div class=\"infra-title-v2 hidden md:block\">\n {{data.myTitle}}<span class=\"infra-title2-v2\">{{data.myTitle1}}</span>\n </div>\n <div class=\"block md:hidden\">\n <span class=\"infra-title-v2\">{{data.detaulTitle}}</span>\n <span class=\"infra-title2-v2\">{{data.defaultTitle1}}</span>\n <span class=\"infra-title-v2\"> {{data.myTitle}}</span>\n <span class=\"infra-title2-v2\">{{data.myTitle1}}</span>\n </div>\n <div class=\"infra-description padding-top-s\">\n {{data.description}}\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-9\">\n <sb-uic-common-strip [widgetData]=\"data\"></sb-uic-common-strip>\n </div>\n </div>\n <div class=\"w-full section-divider pt-6\">\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infra let-infra=\"infra\">\n <div class=\"infra-background px-5\" [style.background]=\"infra?.background\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 infra-sec margin-bottom-xl\">\n <div class=\"col-span-12 md:col-span-4 infra-sec-desc margin-bottom-xl\">\n <div class=\"infra-box flex flex-col\">\n <div class=\"infra-title2 hidden md:block\">\n {{infra?.detaulTitle}}\n </div>\n <div class=\"block md:hidden\">\n <span class=\"infra-title2\">{{infra?.detaulTitle}}</span>\n </div>\n <div class=\"infra-description padding-top-s\">\n {{infra?.description}}\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-8 margin-bottom-xl\">\n <sb-uic-data-points [objectData]=\"infra\" [layoutType]=\"'gridLayout'\"></sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n <div class=\"infra-background slider-background\" [style.background]=\"infra?.background\">\n </div>\n <div class=\"slider-background1 mb-8\">\n <div class=\"container-balanced w-full slider-background-2\">\n <div class=\"info-slider\">\n <sb-uic-sliders class=\"infobanner\" [widgetData]=\"infra?.sliderData?.sliders\" [styleData]=\"infra?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\" *ngIf=\"!hideCompetencyBlock\">\n <div class=\"w-full container-balanced\">\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook\n (emptyResponse)=\"hideCompetency($event, competency)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\"\n [objectData]=\"competency\"\n [providerId]=\"providerId\">\n </sb-uic-competency-passbook>\n </div>\n </div>\n <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\">\n </div>\n</ng-template>\n<!-- End Competencies -->\n\n<ng-template #trainingCalendar let-trainingCalendar=\"trainingCalendar\">\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 px-8 py-8\" [style.background]=\"trainingCalendar?.background\">\n <div class=\"container-balanced flex flex-col\">\n <div class=\"col-span-12 mat-subheading-1 margin-remove\">{{trainingCalendar?.title}}: {{currentMonthAndYear}}</div>\n <sb-uic-calender\n [objectData]=\"trainingCalendar\"\n [fetchDataFromApi]=\"true\"\n [layoutType]=\"'grid'\"\n [defaultDays]=\"trainingCalendar?.defaultDays\"\n [providerId]=\"providerId\">\n </sb-uic-calender>\n </div>\n <div class=\"flex item-center justify-center\">\n <button mat-button type=\"button\"\n (click)=\"raiseTelemetry(trainingCalendar?.contentButton?.title)\"\n [routerLink]=\"[trainingCalendar?.contentButton?.redirectUrl, providerName, providerId, 'training-calendar']\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{trainingCalendar?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden\">\n <div class=\"col-span-12 px-5 py-3 mob-header\">{{trainingCalendar?.title}}: {{currentMonthAndYear}}</div>\n <div class=\"col-span-12\">\n <sb-uic-calender\n [objectData]=\"trainingCalendar\"\n [fetchDataFromApi]=\"true\"\n [layoutType]=\"'row'\"\n [defaultDays]=\"trainingCalendar?.defaultDays\"\n [providerId]=\"providerId\">\n </sb-uic-calender>\n </div>\n <div class=\"col-span-12 flex item-center justify-center\">\n <button mat-button type=\"button\"\n (click)=\"raiseTelemetry(trainingCalendar?.contentButton?.title)\"\n [routerLink]=\"[trainingCalendar?.contentButton?.redirectUrl, providerName, providerId, 'training-calendar']\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{trainingCalendar?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n</ng-template>\n<ng-template #learnerReviewBlock let-data=\"data\">\n <div class=\"contributors-background px-5 py-5\" [style.background]=\"data?.background\" *ngIf=\"!data?.hideSection\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 padding-top-l mb-6\">\n <div class=\"col-span-12 md:col-span-4 contributor-desc\">\n <div class=\"infra-box-review flex flex-col\">\n <div class=\"learner-title hidden md:block\">\n {{data?.detaulTitle}}\n </div>\n <div class=\"infra-title2 hidden md:block\">\n {{data?.myTitle}}\n </div>\n <div class=\"block md:hidden\">\n <span class=\"learner-title\">{{data?.detaulTitle}}</span> <span class=\"infra-title2\"> {{data?.myTitle}}</span>\n </div> \n </div> \n </div>\n <div class=\"col-span-12 md:col-span-8\">\n <sb-uic-user-content-rating (emptyResponse)=\"hideLearnerReview($event, data)\" [formData]=\"data\" [providerId]=\"providerId\"></sb-uic-user-content-rating>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { SkeletonLoaderLibModule } from '../../skeleton-loader-lib/skeleton-loader-lib.module';\nimport {\n CalenderModule,\n CardsModule, \n CommonMethodsService, \n CommonStripModule, \n CompetencyPassbookModule, \n ContentStripWithTabsLibModule,\n DataPointsModule, \n HttpLoaderFactory, \n SlidersLibModule, \n UserContentRatingLibModule \n} from './../../../../public-api'\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ProvidersV2Component } from './providers-v2/providers-v2.component';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ProvidersV2Component],\n imports: [\n CommonModule,\n MatIconModule,\n RouterModule,\n MatChipsModule,\n SkeletonLoaderLibModule,\n CalenderModule,\n CardsModule,\n CommonStripModule,\n CompetencyPassbookModule,\n UserContentRatingLibModule,\n ContentStripWithTabsLibModule,\n DataPointsModule,\n SlidersLibModule,\n MatTabsModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n ],\n exports: [ProvidersV2Component],\n providers:[\n CommonMethodsService],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ProvidersModule { }\n","import { Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { ScrollableItemDirective } from '../../_directives/scrollable-item/scrollable-item.directive';\n\n@Component({\n selector: 'sb-uic-key-highlights',\n templateUrl: './key-highlights.component.html',\n styleUrls: ['./key-highlights.component.scss']\n})\nexport class KeyHighlightsComponent implements OnInit {\n currentIndex: any = 0\n @Input() providerId : any = ''\n @Input() formData : any = ''\n @Input() mode: any\n @Output() emptyResponse = new EventEmitter<any>()\n titleMaxLength = 100\n\n styleData: any = {} \n contentdata: any = []\n @ViewChildren(ScrollableItemDirective) scrollableItems: QueryList<ScrollableItemDirective>\n constructor() { }\n\n ngOnInit() {\n this.styleData = this.formData && this.formData.sliderData && this.formData.sliderData.styleData\n this.contentdata = this.formData && this.formData.content ? this.formData.content : []\n }\n\n getCurrentIndex(indexValue: any) {\n this.currentIndex = indexValue\n }\n}\n","<ng-container *ngIf=\"contentdata?.length && mode === 'desktop'\">\n <div class=\"key-highlighs-container\">\n <sb-uic-sliders-ng-content\n [title]=\"'providerName'\"\n [autoScroll]=\"true\"\n [currentIndex]=\"currentIndex\" \n (currentIndexValue)=\"getCurrentIndex($event)\"\n [loadNgContentData]=\"true\"\n [customBanner]=\"true\"\n [widgetData]=\"contentdata\" [styleData]=\"styleData\">\n <div sliderbody>\n <div *ngFor=\"let content of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"flex flex-row key-wrapper items-center justify-center\">\n <div class=\"kh-description\">\n {{content?.title | slice:0:titleMaxLength}}\n <span *ngIf=\"content?.title?.length > titleMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div> \n </sb-uic-sliders-ng-content>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"contentdata?.length && mode === 'mobile'\">\n <div class=\"p-5\">\n <div class=\"mob-key-highlighs-container\">\n <sb-uic-sliders-ng-content\n [title]=\"'providerName'\"\n [autoScroll]=\"true\"\n [currentIndex]=\"currentIndex\" \n (currentIndexValue)=\"getCurrentIndex($event)\"\n [loadNgContentData]=\"true\"\n [customBanner]=\"true\"\n [widgetData]=\"contentdata\" [styleData]=\"styleData\">\n <div sliderbody>\n <div *ngFor=\"let content of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"flex flex-row mkey-wrapper items-center justify-center\">\n <div class=\"mkh-description\">\n {{content?.title | slice:0:titleMaxLength }}\n <span *ngIf=\"content?.title?.length > titleMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </div>\n </div>\n</ng-container>","import { Component, Input, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ScrollableItemDirective } from '../../_directives/scrollable-item/scrollable-item.directive';\n\n@Component({\n selector: 'sb-uic-highlights-of-week',\n templateUrl: './highlights-of-week.component.html',\n styleUrls: ['./highlights-of-week.component.scss']\n})\nexport class HighlightsOfWeekComponent implements OnInit {\n\n @Input() objectData: any\n currentIndex = 0\n contentdata: any = []\n styleData: any = {}\n expand: boolean = true\n \n @ViewChildren(ScrollableItemDirective) scrollableItems: QueryList<ScrollableItemDirective>\n constructor() { }\n\n ngOnInit() {\n this.styleData = this.objectData && this.objectData.sliderData && this.objectData.sliderData.styleData\n if (this.objectData && this.objectData.list) {\n this.objectData.list.forEach((contentEle: any) => {\n let localData = {}\n localData['title'] = contentEle.title\n localData['videoUrl'] = contentEle.videoUrl\n localData['cardSubType'] = \"card-wide-lib\"\n localData['description'] = contentEle.description\n this.contentdata.push(localData)\n })\n }\n }\n\n toggleWeekHightlits() {\n this.expand = !this.expand\n }\n\n getCurrentIndex(indexValue: any) {\n this.currentIndex = indexValue\n }\n\n\n}\n","<div *ngIf=\"contentdata.length\" class=\"highlights-of-the-week-container {{expand ? 'mb-4' : ''}}\">\n <ng-container *ngIf=\"contentdata.length\">\n <div class=\"flex title pb-3 no-radius items-center justify-between\">\n <div class=\"flex gap-2\">\n {{objectData?.title}}\n <div class=\"block md:hidden\">\n <img [src]=\"objectData?.infoIcon\" alt=\"\" i18n-matTooltip [matTooltip]=\"objectData?.infoText\">\n </div> \n </div>\n <div class=\"block md:hidden\">\n <mat-icon (click)=\"toggleWeekHightlits()\">expand_more</mat-icon>\n </div>\n </div>\n <div *ngIf=\"expand\">\n <sb-uic-sliders-ng-content\n [title]=\"'providerName'\"\n [currentIndex]=\"currentIndex\"\n (currentIndexValue)=\"getCurrentIndex($event)\"\n [loadNgContentData]=\"true\" [widgetData]=\"contentdata\"\n [styleData]=\"styleData\">\n <div sliderbody>\n <div *ngFor=\"let item of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"wh-wrapper no-radius\">\n <div class=\"player\">\n <video width=\"100%\" height=\"100%\" controls *ngIf=\"i === currentIndex\">\n <source [src]=\"item.videoUrl\" type=\"video/mp4\">\n <source [src]=\"item.videoUrl\" type=\"application/x-mpegURL\" />\n </video>\n </div>\n <div class=\"player-title py-3\">\n {{item?.title}}\n </div>\n <div class=\"player-body\">\n {{item?.description}}\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </div>\n </ng-container>\n</div>\n\n","import { Component, Inject, Input } from '@angular/core'\nimport { Router } from '@angular/router'\nimport * as moment_ from 'moment'\nconst moment = moment_\n\n@Component({\n selector: 'sb-uic-event-card',\n templateUrl: './event-card.component.html',\n styleUrls: ['./event-card.component.scss']\n})\nexport class EventCardComponent {\n\n @Input() objectData: any\n @Input() eventDetails: any\n environment!: any\n @Input() loader: any\n descriptionMaxLength: number = 50\n constructor(@Inject('environment') environment: any, private router: Router) {\n this.environment = environment\n }\n\n getEventDate(event: any) {\n let timeString = event.startTime.split(\":\")\n let dataString = `${moment(event.startDate).format('MMM DD, YYYY')} ${timeString[0]}:${timeString[1]}`\n return dataString\n }\n\n getPublicUrl(url: string): string {\n const mainUrl = url.split('/content').pop() || ''\n return `${this.environment.contentHost}/${this.environment.contentBucket}/content${mainUrl}`\n }\n\n redirectTo(event: any) {\n this.router.navigate([\"/app/event-hub/home/\", event.identifier]);\n }\n\n}\n","<div class=\"events-card margin-bottom-m cursor-pointer\" *ngIf=\"!loader\" (click)=\"redirectTo(eventDetails)\">\n <div class=\"flex gap-4\">\n <div class=\"event-poster\">\n <img class='poster' [src]=\"eventDetails.appIcon ? getPublicUrl(eventDetails.appIcon) : objectData?.defaultImage\" alt=\"\" />\n </div>\n <div class=\"flex flex-col\">\n <div class=\"flex\">\n <div class=\"flex event-label\">{{eventDetails?.resourceType}}</div>\n </div>\n <div class=\"orgName pt-2 pb-1\">\n {{eventDetails?.owner}}\n </div>\n <div class=\"event-title pt-1\">\n {{eventDetails?.name | slice:0:descriptionMaxLength}}\n <span *ngIf=\"eventDetails?.name?.length > descriptionMaxLength\">...</span>\n </div>\n <div class=\"event-date pt-2\">{{getEventDate(eventDetails)}}</div>\n </div>\n </div>\n</div>\n<div *ngIf=\"loader\">\n <div class=\"events-card margin-bottom-m\">\n <div class=\"flex gap-4\">\n <div class=\"event-poster\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'180px'\" [height]=\"'107px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-col\">\n <div class=\"flex\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'60px'\" [height]=\"'21px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"flex orgName pt-2 pb-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'355px'\" [height]=\"'21px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"flex event-title pt-1\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'355px'\" [height]=\"'21px'\">\n </sb-uic-skeleton-loader>\n </div>\n <div class=\"event-date pt-2\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded objIcon '\" [width]=\"'355px'\" [height]=\"'21px'\">\n </sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core'\nimport { InsiteDataService } from '../../_services/insite-data.service'\nimport * as moment_ from 'moment';\nconst moment = moment_;\n\n@Component({\n selector: 'sb-uic-events',\n templateUrl: './events.component.html',\n styleUrls: ['./events.component.scss']\n})\nexport class EventsComponent implements OnInit {\n\n @Input() object: any\n @Input() nwlEventsConfig: any\n daysBetween: any = []\n events: any = []\n requestBody: any\n currentDay: any\n loader: boolean = false\n constructor(public insightSvc: InsiteDataService) { }\n\n ngOnInit() {\n this.requestBody = {\n locale: [\n 'en',\n ],\n query: '',\n request: {\n query: '',\n filters: {\n status: ['Live'],\n contentType: 'Event',\n category: 'Event',\n startDate\t: {\n \">=\": '',\n \"<\": ''\n }\n },\n sort_by: {\n startDate: 'desc',\n },\n },\n }\n this.getEventsList()\n }\n getDaysBetweenDates() {\n let currentDate = moment(this.nwlEventsConfig.startDate, 'DD-MM-YYYY')\n const endDate = moment(this.nwlEventsConfig.endDate, 'DD-MM-YYYY')\n while (currentDate.isSameOrBefore(endDate)) {\n let localObj = {}\n localObj['startDate'] = currentDate.format('YYYY-MM-DD')\n localObj['diplayFormat'] = currentDate.format('MMM DD, YYYY')\n if(currentDate.isSame(moment(), 'day')){\n this.currentDay = currentDate.format('YYYY-MM-DD')\n }\n currentDate.add(1, 'days').format('YYYY-MM-DD')\n this.daysBetween.push(localObj)\n }\n console.log(\"currentDay \", this.currentDay)\n }\n\n getEvents(slectedDate: any) {\n this.currentDay = slectedDate.target.value\n let nextDay = moment(slectedDate.target.value, 'YYYY-MM-DD')\n nextDay.add(1, 'days')\n this.requestBody.request.filters.startDate[\">=\"] = this.currentDay\n this.requestBody.request.filters.startDate[\"<\"] = nextDay.format('YYYY-MM-DD')\n this.loader = true\n this.insightSvc.fetchTrainingDetails(this.requestBody).subscribe((res: any)=> {\n this.events = []\n if (res && res.result && res.result.count > 0) {\n this.events = res.result.Event\n this.loader = false\n } else {\n this.loader = false\n }\n }, error => {\n this.loader = false\n })\n }\n\n getEventsList() {\n this.getDaysBetweenDates()\n let nextDay = moment(this.currentDay, 'YYYY-MM-DD')\n nextDay.add(1, 'days')\n this.requestBody.request.filters.startDate[\">=\"] = this.currentDay\n this.requestBody.request.filters.startDate[\"<\"] = nextDay.format('YYYY-MM-DD')\n this.loader = true\n this.insightSvc.fetchTrainingDetails(this.requestBody).subscribe((res: any)=> {\n this.events = []\n if (res && res.result && res.result.count > 0) {\n this.events = res.result.Event\n this.loader = false\n } else {\n this.loader = false\n }\n }, error => {\n this.loader = false\n })\n }\n\n}\n","<div class=\"flex items-center mb-4 mt-2 e-header\">\n <div class=\"event-title\">\n {{object?.title}}\n </div>\n <div class=\"flex gap-4\">\n <div class=\"events-select\">\n <select (change)=\"getEvents($event)\">\n <option value=\"{{d?.startDate}}\" *ngFor=\"let d of daysBetween\" [selected]=\"currentDay === d.startDate\">{{d?.diplayFormat}}</option>\n </select>\n </div>\n <div class=\"flex gap-4\">\n <a [routerLink]=\"'/app/event-hub/home'\" class=\"flex ws-mat-default-text items-center justify-center mat-body-1 cursor-pointer \">Show All <mat-icon>chevron_right</mat-icon></a>\n </div>\n </div>\n</div>\n<div class=\"grid grid-cols-1 gap-4\">\n <div class=\"events-card-wrapper\">\n <div *ngIf=\"!loader\">\n <div *ngIf=\"events?.length > 0\">\n <div *ngFor=\"let event of events\">\n <sb-uic-event-card [objectData]=\"object\" [eventDetails]=\"event\" [loader]=\"loader\"></sb-uic-event-card>\n </div>\n </div>\n <div *ngIf=\"events?.length === 0\">\n <div class=\"flex item-center justify-center p-5 no-events\">\n No events exist.\n </div>\n </div>\n </div>\n <div *ngIf=\"loader && events?.length === 0\">\n <div *ngFor=\"let event of [1,2,3]\">\n <sb-uic-event-card [objectData]=\"object\" [eventDetails]=\"event\" [loader]=\"loader\"></sb-uic-event-card>\n </div>\n </div>\n </div>\n</div>","import { Component, Input, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { InsiteDataService } from '../../_services/insite-data.service';\nimport { ScrollableItemDirective } from '../../_directives/scrollable-item/scrollable-item.directive';\nimport { ConfigurationsService } from '@sunbird-cb/utils-v2';\n\n@Component({\n selector: 'sb-uic-user-progress',\n templateUrl: './user-progress.component.html',\n styleUrls: ['./user-progress.component.scss']\n})\nexport class UserProgressComponent implements OnInit {\n\n @Input() objectData: any\n @Input() rootOrgId: any\n insitesData = []\n currentIndex = 0\n styleData: any = {}\n userProgress: any = {}\n expand: boolean = true\n @ViewChildren(ScrollableItemDirective) scrollableItems: QueryList<ScrollableItemDirective>\n constructor(public insightSvc: InsiteDataService, private configSvc: ConfigurationsService,\n ) { }\n\n ngOnInit() {\n this.styleData = this.objectData.insights.data.sliderData.styleData\n this.getUserProgress()\n this.getInsightsData()\n }\n\n getUserProgress() {\n debugger\n this.insightSvc.fetchUserProgress().subscribe((res: any) => {\n if(res && res.result && res.result.userLeaderBoard) {\n this.userProgress = res.result.userLeaderBoard\n if (!this.userProgress.fullname && this.configSvc && this.configSvc.userProfile && this.configSvc.userProfile.firstName) {\n this.userProgress['fullname'] = this.configSvc.userProfile.firstName\n this.userProgress['profile_image'] = this.configSvc.userProfile.profileImageUrl\n }\n }\n }, error => {\n this.userProgress['fullname'] = this.configSvc.userProfile.firstName\n this.userProgress['profile_image'] = this.configSvc.userProfile.profileImageUrl\n })\n }\n getInsightsData() {\n const request = {\n request: {\n filters: {\n primaryCategory: 'programs',\n organisations: [\n 'across',\n this.rootOrgId,\n //\"01390354700029132834\"\n ],\n },\n },\n }\n this.insightSvc.fetchInsightsData(request).subscribe((res: any) => {\n if (res && res.result && res.result.response && res.result.response.nudges) {\n this.insitesData = res.result.response.nudges\n this.insitesData = this.insitesData.map((obj: any) => {\n return {...obj, cardSubType: 'card-wide-lib'}\n })\n }\n })\n }\n\n roundTo(number: any) {\n return Math.round(number * 100 /100)\n }\n\n getCurrentIndex(indexValue: any) {\n this.currentIndex = indexValue\n }\n\n createInititals(name: string) {\n let initials = ''\n const array = name.toString().split(' ')\n if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {\n initials += array[0].charAt(0)\n initials += array[1].charAt(0)\n } else {\n for (let i = 0; i < name.length; i += 1) {\n if (name.charAt(i) === ' ') {\n continue\n }\n if (name.charAt(i) === name.charAt(i)) {\n initials += name.charAt(i)\n\n if (initials.length === 2) {\n break\n }\n }\n }\n }\n return initials.toUpperCase()\n }\n\n toggleWeekHightlits() {\n this.expand = !this.expand\n }\n\n}\n","<div class=\"px-4 md:px-0 pt-4 md:pt-0 week-progress {{expand ? 'pb-4' : 'pb-1'}}\">\n <div class=\"flex user-progress-title gap-2 margin-bottom-xs items-center justify-between\">\n <div class=\"flex gap-2\">\n {{objectData?.title}}\n <div><img [src]=\"objectData?.infoIcon\" alt=\"\" i18n-matTooltip [matTooltip]=\"objectData?.infoText\"></div>\n </div>\n <div class=\"block md:hidden\">\n <mat-icon (click)=\"toggleWeekHightlits()\">expand_more</mat-icon>\n </div>\n </div>\n <div class=\"user-progress-wrapper\" *ngIf=\"expand\">\n <div class=\"user-rank flex items-center\">\n <div class=\"flex item-center\">\n <div class=\"current-rank\" *ngIf=\"userProgress?.rank > 0\">#{{userProgress?.rank}} Rank</div>\n </div>\n </div>\n <div class=\"user-details-wrapper\">\n <div class=\"user-details flex gap-2\">\n <div class=\"user-initial\" *ngIf=\"userProgress?.profile_image\">\n <img class=\"user-profile\" [src]=\"userProgress?.profile_image\" alt=\"\"/>\n </div>\n <div class=\"user-initial\" *ngIf=\"!userProgress?.profile_image && userProgress?.fullname\">{{createInititals(userProgress?.fullname)}}</div>\n <div class=\"user-name pt-3\">{{userProgress?.fullname}}</div>\n </div>\n <div class=\"user-stats my-3\">\n <div class=\"flex gap-2 items-center justify-center\">\n <div class=\"my-hours\">\n <div class=\"flex items-center gap-3\">\n <img class=\"hours-icon\"\n src=\"https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726808794219_InProgress_Icon.svg\" alt=\"\">\n <div>\n <div class=\"counter\">{{userProgress?.total_learning_hours || 0}}</div>\n <div class=\"counter-title pt-1\">Learning Hours</div>\n </div>\n </div>\n </div>\n <div class=\"my-certificates\">\n <div class=\"flex items-center gap-3\">\n <img class=\"cert-icon\"\n src=\"https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726808775795_Certificate_icon.svg\" alt=\"\">\n <div>\n <div class=\"counter\">{{userProgress?.count || 0}}</div>\n <div class=\"counter-title pt-1\">Certificates</div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex gap-2 items-center justify-center pt-3\">\n <div class=\"k-points\">\n <div class=\"flex items-center gap-3\">\n <img class=\"kp-point-icon\"\n src=\"https://portal.dev.karmayogibharat.net/content-store/orgStore/0135071359030722569/1726808815206_karma-badge.svg\" alt=\"\">\n <div>\n <div class=\"counter\">{{userProgress?.total_points || 0}}</div>\n <div class=\"counter-title pt-1\">Karma Points</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"insights-wrapper\">\n <div class=\"insights-container\">\n <sb-uic-sliders-ng-content\n [title]=\"'p1'\"\n [currentIndex]=\"currentIndex\"\n (currentIndexValue)=\"getCurrentIndex($event)\"\n [loadNgContentData]=\"true\" [widgetData]=\"insitesData\"\n [customBanner]=\"true\" [autoScroll]=\"true\"\n [styleData]=\"styleData\">\n <div sliderbody>\n <div class=\"insights-item\" *ngFor=\"let item of insitesData; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"flex gap-4\">\n <div class=\"insights-lable\">{{item?.label}}</div>\n <div class=\"flex items-center growth-positive\" *ngIf=\"item?.growth === 'positive'\">\n <mat-icon class=\"positive-icon\">arrow_upward</mat-icon>\n <span class=\"positive-note pt-1\">+{{roundTo(item?.progress)}}%</span>\n </div>\n <div class=\"flex items-center growth-negative\" *ngIf=\"item?.growth === 'negative' && item?.progress > 0\">\n <mat-icon class=\"negative-icon\">arrow_downward</mat-icon>\n <span class=\"negative-note\">-{{roundTo(item?.progress)}}%</span>\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ScrollableItemDirective } from '../../_directives/scrollable-item/scrollable-item.directive';\n\n@Component({\n selector: 'sb-uic-speakers',\n templateUrl: './speakers.component.html',\n styleUrls: ['./speakers.component.scss']\n})\nexport class SpeakersComponent implements OnInit {\n @Input() objectData: any\n currentIndex = 0\n contentdata: any = []\n styleData: any = {}\n expand: boolean = true\n \n @ViewChildren(ScrollableItemDirective) scrollableItems: QueryList<ScrollableItemDirective>\n\n constructor() { }\n\n ngOnInit() {\n this.styleData = this.objectData && this.objectData.sliderData && this.objectData.sliderData.styleData\n if (this.objectData && this.objectData.list) {\n this.objectData.list.forEach((contentEle: any) => {\n let localData = {}\n localData['name'] = contentEle.title\n localData['cardSubType'] = \"card-wide-lib\"\n localData['description'] = contentEle.description\n localData['initial'] = this.createInititals(contentEle.title)\n localData['profileImage'] = contentEle.profileImage ? contentEle.profileImage : ''\n this.contentdata.push(localData)\n })\n }\n }\n\n createInititals(name: string) {\n let initials = ''\n const array = name.toString().split(' ')\n if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {\n initials += array[0].charAt(0)\n initials += array[1].charAt(0)\n } else {\n for (let i = 0; i < name.length; i += 1) {\n if (name.charAt(i) === ' ') {\n continue\n }\n if (name.charAt(i) === name.charAt(i)) {\n initials += name.charAt(i)\n\n if (initials.length === 2) {\n break\n }\n }\n }\n }\n return initials.toUpperCase()\n }\n \n getCurrentIndex(indexValue: any) {\n this.currentIndex = indexValue\n }\n\n toggleWeekHightlits() {\n this.expand = !this.expand\n }\n\n}\n","<div class=\"nlw-speakers-wrapper px-4 md:px-0 my-4 md:my-0\">\n <div class=\"flex speakers-title gap-2 justify-between pb-1\" *ngIf=\"contentdata.length\">\n <div class=\"flex gap-2\">\n {{objectData?.title}}\n <div><img [src]=\"objectData?.infoIcon\" alt=\"\" i18n-matTooltip [matTooltip]=\"objectData?.infoText\"></div>\n </div>\n <div class=\"block md:hidden\">\n <mat-icon (click)=\"toggleWeekHightlits()\">expand_more</mat-icon>\n </div>\n </div>\n <div *ngIf=\"expand\" class=\"speakers-container margin-bottom-xs\" >\n <ng-container *ngIf=\"contentdata.length\">\n <sb-uic-sliders-ng-content\n [title]=\"'providerName'\"\n [currentIndex]=\"currentIndex\"\n (currentIndexValue)=\"getCurrentIndex($event)\"\n [loadNgContentData]=\"true\" [widgetData]=\"contentdata\"\n [styleData]=\"styleData\">\n <div sliderbody>\n <div *ngFor=\"let item of contentdata; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"speakers-wrapper\">\n <div class=\"flex items-center justify-center pb-2\">\n <div class=\"speaker-initial\" *ngIf=\"!item.profileImage\">{{item?.initial}}</div>\n <img class='speaker-icon' [src]=\"item?.profileImage\" alt=\"\" *ngIf=\"item.profileImage\"/>\n </div>\n <div class=\"flex items-center justify-center pb-2\">\n <div class=\"speaker-title\">{{item.name}}</div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"speaker-description\">{{item.description}}</div>\n </div>\n </div>\n </div>\n </div>\n </sb-uic-sliders-ng-content>\n </ng-container>\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { InsiteDataService } from '../../_services/insite-data.service';\n\n@Component({\n selector: 'sb-uic-mdo-leaderboard',\n templateUrl: './mdo-leaderboard.component.html',\n styleUrls: ['./mdo-leaderboard.component.scss']\n})\nexport class MdoLeaderboardComponent implements OnInit {\n\n currentTab: any = 'XL'\n result: any = []\n filteredData: any\n searchTerm: string = ''\n expand: boolean = true\n\n @Input() object: any\n @Output() tabClicked = new EventEmitter<any>()\n constructor(private insiteDataService: InsiteDataService) { }\n\n ngOnInit() {\n this.getData()\n }\n\n getData() {\n this.insiteDataService.fetchLeaderboard().subscribe((res: any) => {\n if (res && res.result) {\n this.result = res.result\n this.filteredData = this.result.mdoLeaderBoard\n .filter(user => user.size === this.currentTab) \n .map(user => ({ ...user, children: [], selected: false })).slice(0, 5)\n }\n \n }, error => {\n console.log(error)\n })\n }\n\n getTabData(name: any) {\n this.currentTab = name\n this.searchTerm = ''\n this.filteredData = this.result.mdoLeaderBoard\n .filter(user => user.size === this.currentTab) \n .map(user => ({ ...user, children: [], selected: false })).slice(0, 5)\n let nameStr: any = ''\n switch (name) {\n case 'XL':\n nameStr = 'greater-than-50K'\n break\n case 'L':\n nameStr = '10K-50K'\n break\n case 'M':\n nameStr = '1K-10K'\n break\n case 'S':\n nameStr = '500-1K'\n break\n default:\n nameStr = 'less-than-500'\n break\n }\n this.tabClicked.emit(nameStr)\n }\n\n getRank(rank: number) {\n return [1,2,3].includes(rank) ? `rank${rank}` : 'rank0'\n }\n\n getMedal(rank: number) {\n if (rank === 1) {\n return 'assets/images/national-learning/Medal1.svg'\n } else if(rank === 2) {\n return 'assets/images/national-learning/Medal2.svg'\n } else {\n return 'assets/images/national-learning/Medal3.svg'\n }\n }\n\n handleSearchQuery(e: any) {\n if (e.target.value && e.target.value.length > 0) {\n this.searchTerm = e.target.value\n this.filteredData = this.result.mdoLeaderBoard\n .filter(user => user.size === this.currentTab && user.org_name.toLowerCase().includes(e.target.value))\n .map(user => ({ ...user, children: []})).slice(0, 5)\n } else {\n this.filteredData = this.result.mdoLeaderBoard\n .filter(user => user.size === this.currentTab)\n .map(user => ({ ...user, children: []})).slice(0, 5)\n }\n }\n\n toggleWeekHightlits() {\n this.expand = !this.expand\n }\n\n}\n","<div class=\"mdo-leaderboard-container\">\n <div class=\"flex l-title gap-2 items-center justify-between px-4 md:px-0 py-4 md:py-0\">\n <div class=\"flex gap-2\">\n {{object?.title}} <div><img [src]=\"object?.infoIcon\" alt=\"\" i18n-matTooltip [matTooltip]=\"object?.infoText\"></div>\n </div>\n <div class=\"block md:hidden\">\n <mat-icon (click)=\"toggleWeekHightlits()\">expand_more</mat-icon>\n </div>\n </div>\n <div class=\"flex item-center justify-center\" *ngIf=\"expand\">\n <div class=\"flex fl-div\">\n <div class=\"pointer\">\n <span class=\"dot-dot\"></span>\n </div>\n </div>\n </div>\n <div class=\"l-content\" *ngIf=\"expand\">\n <div class=\"horizontal-scroll-container\">\n <div class=\"scroll-content\">\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XL' }\" (click)=\"getTabData('XL')\">Greater than 50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'L' }\" (click)=\"getTabData('L')\">10K-50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'M' }\" (click)=\"getTabData('M')\">1K-10K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'S' }\" (click)=\"getTabData('S')\">500-1K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XS' }\" (click)=\"getTabData('XS')\">Less than 500</span>\n </div>\n </div>\n <div class=\"relative search-wrapper margin-top-m mb-5\">\n <mat-icon matPrefix class=\"flex absolute items-center justify-center mr-2 icon-search\">search\n </mat-icon>\n <input type=\"search\" name=\"searchKey\" class=\"search-field\" i18-aria-label\n aria-label=\"Search\" i18n-placeholder=\"search\" [(ngModel)]=\"searchTerm\"\n placeholder=\"Search your MDO\" (keyup)=\"handleSearchQuery($event)\" />\n </div>\n <div class=\"l-tab-data\">\n <div *ngFor=\"let user of filteredData; let i = index\">\n <div class=\"flex flex-row item mb-{{filteredData.length - 1 === i ? 0 : 5}} gap-3 {{user.row_num === 1 ? 'relative' : ''}}\" >\n <div><img class=\"crown absolute\" src=\"assets/images/national-learning/rank-crown.svg\" *ngIf=\"user.row_num === 1\"/></div>\n <div class=\"{{getRank(user.row_num)}}\">{{user.row_num}}</div>\n <div class=\"w-full\">\n <div class=\"flex flex-between gap-2\">\n <div>\n <div class=\"rank-name\">{{user.org_name}}</div>\n <div class=\"rank-points flex mt-1 gap-1\">\n <img class=\"nlw-kb\" src=\"assets/icons/home/karma-badge.svg\"/>\n <div class=\"points\">{{user.total_points || 0 }} points</div>\n </div>\n </div>\n <div class=\"rank-crown\" *ngIf=\"[1,2,3].includes(user.row_num)\">\n <img class=\"nlw-animation\" [src]=\"getMedal(user.row_num)\"/>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"no-data px-1\" *ngIf=\"filteredData?.length === 0\">\n No data found!\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { EventService, WsEvents } from '@sunbird-cb/utils-v2';\nimport * as _ from 'lodash'\n\n@Component({\n selector: 'sb-uic-national-learning',\n templateUrl: './national-learning.component.html',\n styleUrls: ['./national-learning.component.scss']\n})\nexport class NationalLearningComponent implements OnInit {\n @Input() sectionList:any = []\n @Input() configDetails: any\n @Input() nwlConfiguration: any\n providerId: string = '123456789'\n providerName: ''\n descriptionMaxLength = 500\n constructor(public router: Router, private events: EventService) {\n }\n\n ngOnInit(): void {\n }\n\n\n hideKeyHightlight(event: any, learnerReview: any) {\n if (event) {\n learnerReview['hideSection'] = true\n }\n }\n\n showAllContent(_stripData: any, columnData: any) {\n if (columnData && columnData.contentStrip && columnData.contentStrip.strips && columnData.contentStrip.strips.length) {\n const stripData: any = _stripData\n let tabSelected = stripData.viewMoreUrl && stripData.viewMoreUrl.queryParams && stripData.viewMoreUrl.queryParams.tabSelected && stripData.viewMoreUrl.queryParams.tabSelected || ''\n this.router.navigate(\n [`app/learn/national-learning-week/see-all`],\n { queryParams: { pageDetails: true, tabSelected, key: columnData.sectionKey } })\n\n } else {\n this.router.navigate(\n [`/app/learn/browse-by/provider/${this.providerName}/${this.providerId}/all-CBP`],\n { queryParams: { pageDetails: true } })\n }\n }\n\n hideContentStrip(event: any, contentStripData: any) {\n if (event) {\n contentStripData.contentStrip['hideSection'] = true\n }\n }\n\n raiseTabClick(event) {\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'mdo-leaderboard',\n id: `${event}-tab`,\n },\n {\n },\n {\n module: 'National Learning Week',\n }\n )\n }\n\n raiseTelemetryInteratEvent(event: any) {\n this.events.raiseInteractTelemetry(\n {\n type: 'click',\n subType: 'mandatory-courses',\n id: `mandatory-courses-card`,\n },\n {\n id: event.identifier,\n type: event.primaryCategory,\n },\n {\n pageIdExt: `mandatory-courses-card`,\n module: 'National Learning Week',\n }\n )\n }\n\n}\n","<div class=\"container-fluid white-background nlm-micro-sites micro-white\" id=\"nlm-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentSection'\" [ngTemplateOutlet]=\"contentSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"w-full topSection\">\n <div *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n <div *ngIf=\"data && data.metrics\">\n <div class=\"block md:hidden\">\n <sb-uic-data-points\n [providerId]=\"providerId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'nlwCol'\"\n [title]=\"data?.metrics?.title\"\n [pageLayout]=\"'nlw'\">\n </sb-uic-data-points>\n </div>\n <div class=\"hidden md:block\">\n <sb-uic-data-points\n [providerId]=\"providerId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'nlwRow'\"\n [title]=\"data?.metrics?.title\"\n [pageLayout]=\"'nlw'\">\n </sb-uic-data-points>\n </div>\n </div>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"block md:hidden\">\n <sb-uic-key-highlights (emptyResponse)=\"hideKeyHightlight($event, data.keyHighlights)\" [formData]=\"data.keyHighlights\" [providerId]=\"providerId\" [mode]=\"'mobile'\"></sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"hidden md:block\">\n <div class=\"flex flex items-center justify-center gap-10\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-rounded top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.imageUrl\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col pr-3\">\n <div class=\" txt-ellipsis-2 break-words description-title\">{{data?.title}}</div>\n <div class=\"description\">{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden\">\n <div class=\"flex flex-col items-center justify-center margin-bottom-xl px-5\">\n <div class=\"mlogo-box-rounded\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.imageUrl\">\n </div>\n </div>\n <div class=\"flex flex-col px-5\">\n <div class=\" txt-ellipsis-2 break-words description-title\">{{data?.title}}</div>\n <div class=\"mdescription\">{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\">\n <div class=\"hidden md:block\">\n <sb-uic-key-highlights (emptyResponse)=\"hideKeyHightlight($event, data.keyHighlights)\" [formData]=\"data.keyHighlights\" [providerId]=\"providerId\" [mode]=\"'desktop'\"></sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n\n<ng-template #contentSection let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.leftContent.colspan}}\">\n <div *ngIf=\"data.leftContent.data.weekHighlights.data\">\n <sb-uic-highlights-of-week\n [objectData]=\"data.leftContent.data.weekHighlights.data\">\n </sb-uic-highlights-of-week>\n </div>\n <div class=\"hidden md:block\">\n <div *ngIf=\"data.leftContent.data.mandatoryCourse.enabled && data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"'123456789'\"\n [widgetData]=\"data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n\n <div class=\"hidden md:block\">\n <div *ngIf=\"data?.leftContent?.data?.exploreLearningContent?.strips[0]\">\n <sb-uic-content-strip-facet-filter [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"></sb-uic-content-strip-facet-filter>\n </div>\n </div>\n <div class=\"hidden md:block\">\n <div *ngIf=\"data.leftContent.data.events.enabled && data.leftContent.data.events.column[0]\">\n <sb-uic-events [object]=\"data.leftContent.data.events.column[0]\" [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-{{data.rightContent.colspan}}\">\n <div *ngIf=\"data.rightContent.data.myprogress\">\n <sb-uic-user-progress\n [objectData]=\"data.rightContent.data.myprogress.data\" [rootOrgId]=\"configDetails?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n <div *ngIf=\"data.rightContent.data.speakerOftheDay\">\n <sb-uic-speakers\n [objectData]=\"data.rightContent.data.speakerOftheDay.data\">\n </sb-uic-speakers>\n </div>\n <div *ngIf=\"data.rightContent.data.mdoLeaderboard\">\n <sb-uic-mdo-leaderboard\n [object]=\"data.rightContent.data.mdoLeaderboard.data\"\n (tabClicked)=\"raiseTabClick($event)\"></sb-uic-mdo-leaderboard>\n </div>\n\n <div class=\"block md:hidden\">\n <div *ngIf=\"data.leftContent.data.mandatoryCourse.enabled && data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"false\"\n (viewAllResponse)=\"''\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"''\"\n [providerId]=\"'123456789'\"\n [widgetData]=\"data?.leftContent?.data?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"'channnelName'\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden px-4 md-px-0\">\n <div *ngIf=\"data?.leftContent?.data?.exploreLearningContent?.strips[0]\">\n <sb-uic-content-strip-facet-filter [widgetData]=\"data?.leftContent?.data?.exploreLearningContent\"></sb-uic-content-strip-facet-filter>\n </div>\n </div>\n <div class=\"block md:hidden px-4 md-px-0\">\n <div *ngIf=\"data.leftContent.data.events.enabled && data.leftContent.data.events.column[0]\">\n <sb-uic-events [object]=\"data.leftContent.data.events.column[0]\" [nwlEventsConfig]=\"nwlConfiguration\"></sb-uic-events>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { KeyHighlightsComponent } from './key-highlights.component';\nimport { SlidersNgContentLibModule } from '../sliders-ng-content/sliders-ng-content.module';\nimport { ScrollableItemModule } from '../../_directives/scrollable-item/scrollable-item.module';\nimport { MatIconModule } from '@angular/material/icon';\n\n\n\n@NgModule({\n declarations: [KeyHighlightsComponent],\n imports: [\n CommonModule,\n MatIconModule,\n SlidersNgContentLibModule,\n ScrollableItemModule\n ],\n exports: [\n KeyHighlightsComponent\n ],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class KeyHighlightsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EventsComponent } from './events.component';\nimport { EventCardComponent } from './event-card/event-card.component';\nimport { RouterModule } from '@angular/router';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { MatIconModule } from '@angular/material/icon';\n\n\n\n@NgModule({\n declarations: [EventsComponent, EventCardComponent],\n imports: [\n CommonModule,\n RouterModule,\n SkeletonLoaderLibModule,\n MatIconModule\n ],\n exports: [EventsComponent, EventCardComponent]\n})\nexport class EventsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MdoLeaderboardComponent } from './mdo-leaderboard.component';\nimport { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { InsiteDataService } from '../../_services/insite-data.service';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n\n@NgModule({\n declarations: [MdoLeaderboardComponent],\n imports: [\n CommonModule,\n MatIconModule,\n SkeletonLoaderLibModule,\n FormsModule,\n MatTooltipModule\n ],\n exports: [\n MdoLeaderboardComponent\n ],\n providers: [InsiteDataService]\n})\nexport class MdoLeaderboardModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HighlightsOfWeekComponent } from './highlights-of-week.component';\nimport { ScrollableItemModule } from '../../_directives/scrollable-item/scrollable-item.module';\nimport { SlidersNgContentLibModule } from '../sliders-ng-content/sliders-ng-content.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n\n@NgModule({\n declarations: [HighlightsOfWeekComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatTooltipModule,\n ScrollableItemModule,\n SlidersNgContentLibModule\n ],\n exports: [\n HighlightsOfWeekComponent\n ]\n})\nexport class HighlightsOfWeekModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpeakersComponent } from './speakers.component';\nimport { ScrollableItemModule } from '../../_directives/scrollable-item/scrollable-item.module';\nimport { SlidersNgContentLibModule } from '../sliders-ng-content/sliders-ng-content.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n\n@NgModule({\n declarations: [SpeakersComponent],\n imports: [\n CommonModule,\n ScrollableItemModule,\n SlidersNgContentLibModule,\n MatTooltipModule,\n MatIconModule,\n ],\n exports: [\n SpeakersComponent\n ]\n})\nexport class SpeakersModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserProgressComponent } from './user-progress.component';\nimport { ScrollableItemModule } from '../../_directives/scrollable-item/scrollable-item.module';\nimport { SlidersNgContentLibModule } from '../sliders-ng-content/sliders-ng-content.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n\n@NgModule({\n declarations: [UserProgressComponent],\n imports: [\n CommonModule,\n MatTooltipModule,\n MatIconModule,\n ScrollableItemModule,\n SlidersNgContentLibModule,\n ],\n exports: [\n UserProgressComponent\n ]\n})\nexport class UserProgressModule { }\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkeletonLoaderLibModule } from '../../skeleton-loader-lib/skeleton-loader-lib.module';\nimport { NationalLearningComponent } from './national-learning/national-learning.component';\nimport { CommonMethodsService } from '../../../_services/common-methods.service';\nimport { SlidersLibModule } from '../../sliders/sliders.module';\nimport { KeyHighlightsModule } from '../../key-highlights/key-highlights.module';\nimport { ContentStripWithTabsLibModule } from '../../content-strip-with-tabs-lib/content-strip-with-tabs-lib.module';\nimport { EventsModule } from '../../events/events.module';\nimport { MdoLeaderboardModule } from '../../mdo-leaderboard/mdo-leaderboard.module';\nimport { DataPointsModule } from '../../data-points/data-points.module';\nimport { HighlightsOfWeekModule } from '../../highlights-of-week/highlights-of-week.module';\nimport { SpeakersModule } from '../../speakers/speakers.module';\nimport { UserProgressModule } from '../../user-progress/user-progress.module';\nimport { ContentStripFacetFilterModule } from '../../strips/content-strip-facet-filter/content-strip-facet-filter.module';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\n\n\n\n@NgModule({\n declarations: [NationalLearningComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatChipsModule,\n SkeletonLoaderLibModule,\n SlidersLibModule,\n MatTabsModule,\n KeyHighlightsModule,\n ContentStripWithTabsLibModule,\n DataPointsModule,\n EventsModule,\n MdoLeaderboardModule,\n HighlightsOfWeekModule,\n SpeakersModule,\n UserProgressModule,\n ContentStripFacetFilterModule\n ],\n exports: [\n NationalLearningComponent,\n ],\n providers:[\n CommonMethodsService\n ],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class NationalLearningModule { }\n","/*\n * Public API Surface of consumption\n */\n\nexport * from './lib/consumption.service'\nexport * from './lib/consumption.component'\nexport * from './lib/consumption.module'\nexport * from './lib/registration-lib.config'\nexport * from './lib/consumption.config'\n\nexport * from './lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.module'\nexport * from './lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module'\nexport * from './lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module'\nexport * from './lib/_common/common-strip/common-strip.module'\nexport * from './lib/_common/sliders/sliders.module'\nexport * from './lib/_common/data-points/data-points.module'\nexport * from './lib/_common/cards/cards.module'\nexport * from './lib/_common/competency-passbook/competency-passbook.module'\nexport * from './lib/_common/competency-passbook-mdo/competency-passbook-mdo.module'\nexport * from './lib/_common/calender/calender.module'\nexport * from './lib/_common/user-content-rating/user-content-rating-lib.module'\nexport * from './lib/_common/announcements/announcements.module'\nexport * from './lib/_common/content-progress/content-progress.module'\n\nexport * from './lib/_common/microsites/mdo-channels/mdo-channel.module'\nexport * from './lib/_common/microsites/providers/providers.module'\nexport * from './lib/_common/microsites/national-learning-week/national-learning.module'\nexport * from './lib/_services/widget-content.service'\n\nexport * from './lib/_services/common-methods.service'\nexport * from './lib/_common/top-learners/top-learners.module'\nexport * from './lib/_common/cbp-plan/cbp-plan.module'\nexport * from './lib/_common/mdo-leaderboard/mdo-leaderboard.module'\nexport * from './lib/_common/highlights-of-week/highlights-of-week.module'\nexport * from './lib/_common/speakers/speakers.module'\nexport * from './lib/_common/user-progress/user-progress.module'\n\n\nexport * from './lib/_common/dialog-components/dialog-components.module'\n\nexport * from './lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component'\nexport * from './lib/_common/sliders/sliders.component'\nexport * from './lib/_common/data-points/data-points.component'\nexport * from './lib/_common/calender/calender.component'\nexport * from './lib/_common/common-strip/common-strip.component'\nexport * from './lib/_common/announcements/announcements.component'\nexport * from './lib/_common/top-learners/top-learners.component'\nexport * from './lib/_common/cbp-plan/cbp-plan.component'\nexport * from './lib/_common/cards/cards.component'\nexport * from './lib/_common/cards/card-resource/card-resource.component'\nexport * from './lib/_common/cards/card-portrait/card-portrait.component'\nexport * from './lib/_common/cards/card-user/card-user.component'\nexport * from './lib/_common/cards/card-landscape/card-landscape.component'\nexport * from './lib/_common/cards/card-wide/card-wide.component'\nexport * from './lib/_common/cards/card-mdo-channel/card-mdo-channel.component'\nexport * from './lib/_common/cards/card-wide-v2/card-wide-v2.component'\nexport * from './lib/_common/cards/card-karma-programs/card-karma-programs.component'\nexport * from './lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component'\nexport * from './lib/_common/cards/card-portrait-ext/card-portrait-ext.component'\nexport * from './lib/_common/dialog-components/certificate-dialog/certificate-dialog.component'\nexport * from './lib/_common/content-progress/content-progress.component'\nexport * from './lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component'\nexport * from './lib/_common/competency-passbook/competency-passbook.component'\nexport * from './lib/_common/competency-passbook-mdo/competency-passbook-mdo.component'\nexport * from './lib/_common/user-content-rating/user-content-rating-lib.component'\nexport * from './lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component'\nexport * from './lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component'\nexport * from './lib/_common/microsites/providers/providers-v2/providers-v2.component'\nexport * from './lib/_common/key-highlights/key-highlights.module'\nexport * from './lib/_common/events/events.module'\n\nexport * from './lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component'\nexport * from './lib/_common/microsites/national-learning-week/national-learning/national-learning.component'\nexport * from './lib/_common/key-highlights/key-highlights.component'\nexport * from './lib/_common/events/events.component'\nexport * from './lib/_common/events/event-card/event-card.component'\nexport * from './lib/_common/mdo-leaderboard/mdo-leaderboard.component'\nexport * from './lib/_common/highlights-of-week/highlights-of-week.component'\nexport * from './lib/_common/speakers/speakers.component'\nexport * from './lib/_common/user-progress/user-progress.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","NsCardContent","moment","moment_","PROTECTED_SLAG_V8","API_END_POINTS","lodash","i3.ConfigurationsService","i1.WidgetContentService","i4.WidgetUserService","i5","i6.MultilingualTranslationsService","i8","i10.HorizontalScrollerV2Component","i11","i13","i4.ImageResponsiveDirective","i1.InsiteDataService","i2.SkeletonLoaderLibComponent","i3.SkeletonLoaderLibComponent","i2.InsiteDataService","i6.CalenderDayComponent","i7","i3.WidgetUserService","i5.MultilingualTranslationsService","i6.CommonMethodsService","i2.MultilingualTranslationsService","i3.SlidersNgContentLibComponent","i1.MultilingualTranslationsService","i3.MultilingualTranslationsService","i5.WidgetContentService","i6","i9.DisplayContentTypeLibComponent","i10.SkeletonLoaderLibComponent","i12","i13.DefaultThumbnailDirective","i14.PipePublicURL","i15.PipeDurationTransformPipe","i4.MultilingualTranslationsService","i7.DisplayContentTypeLibComponent","i8.SkeletonLoaderLibComponent","i9","i10.DefaultThumbnailDirective","i11.PipePublicURL","i12.PipeDurationTransformPipe","i9.DefaultThumbnailDirective","i10.PipePublicURL","i7.SkeletonLoaderLibComponent","i11.PipeDurationTransformPipe","i7.DefaultThumbnailDirective","i3.WidgetContentService","i6.AvatarPhotoLibComponent","i2.WidgetContentService","i4.SkeletonLoaderLibComponent","i6.DefaultThumbnailDirective","i7.PipePublicURL","i6.CertificateService","i10.DisplayContentTypeLibComponent","i11.ContentProgressComponent","i13.SkeletonLoaderLibComponent","i14","i15.DefaultThumbnailDirective","i16","i17","i18.PipePublicURL","i19.PipeDurationTransformPipe","i2.AvatarPhotoLibComponent","i9.SkeletonLoaderLibComponent","i10","i12.DefaultThumbnailDirective","i13.PipePublicURL","i14.PipeDurationTransformPipe","i4.CardPortraitComponent","i5.CardLandscapeComponent","i6.CardWideComponent","i7.CardWideV2Component","i8.CardUserComponent","i9.CardMdoChannelV1Component","i10.CardMDOChannelComponent","i11.CardKarmaProgramsComponent","i12.CardAssessmentComponent","i13.CardProgressPortraitLibComponent","i14.ProviderCardComponent","i15.CardPortraitExtComponent","i5.AvatarPhotoLibComponent","i12.HorizontalScrollerV2Component","i15","i11.HorizontalScrollerV2Component","API_POINTS","i5.PillsComponent","i6.SkeletonLoaderLibComponent","i1.RatingService","i2.UserContentRatingLibService","i4.AvatarPhotoLibComponent","i5.CardsComponent","i8.ScrollableItemDirective","i4.SlidersLibComponent","i5.DataPointsComponent","i6.CbpPlanComponent","i7.AnnouncementsComponent","i10.CompetencyPassbookMdoComponent","i11.ContentStripWithTabsLibComponent","i12.TopLearnersComponent","i6.SlidersLibComponent","i7.ContentStripWithTabsLibComponent","i8.CommonStripComponent","i9.CompetencyPassbookComponent","i10.CalenderComponent","i11.UserContentRatingLibComponent","i1.SlidersNgContentLibComponent","i2.SlidersNgContentLibComponent","i3.EventCardComponent","i4.SlidersNgContentLibComponent","i3.SlidersLibComponent","i4.DataPointsComponent","i5.KeyHighlightsComponent","i6.HighlightsOfWeekComponent","i8.ContentStripFacetFilterComponent","i9.EventsComponent","i10.UserProgressComponent","i11.SpeakersComponent","i12.MdoLeaderboardComponent"],"mappings":"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"}