@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,191 @@
1
+ import { Component, Input, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../_services/insite-data.service";
5
+ import * as i3 from "@angular/material/form-field";
6
+ import * as i4 from "@angular/material/select";
7
+ import * as i5 from "@angular/material/core";
8
+ import * as i6 from "./calender-day/calender-day.component";
9
+ import * as i7 from "@angular/forms";
10
+ export class CalenderComponent {
11
+ constructor(datePipe, insightSvc) {
12
+ this.datePipe = datePipe;
13
+ this.insightSvc = insightSvc;
14
+ this.fetchDataFromApi = false;
15
+ this.showHeader = false;
16
+ this.defaultDays = 3;
17
+ this.fullCalendor = false;
18
+ this.days = [];
19
+ this.trainings = {};
20
+ this.isDataLoading = false;
21
+ this.currentDate = new Date();
22
+ this.allMonths = ["January", "February", "March",
23
+ "April", "May", "June", "July",
24
+ "August", "September", "October",
25
+ "November", "December"
26
+ ];
27
+ this.monthsDropdown = [];
28
+ }
29
+ ngOnInit() {
30
+ this.currentMonthAndYear = this.datePipe.transform(this.currentDate, 'MMMM y');
31
+ this.selectedMonth = this.datePipe.transform(this.currentDate, 'LLLL yyyy');
32
+ if (this.fullCalendor) {
33
+ this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
34
+ this.getMonthsDropdownData();
35
+ }
36
+ if (!this.fullCalendor) {
37
+ this.days = this.getDays(this.currentDate, +this.defaultDays);
38
+ }
39
+ this.startDate = this.days[0];
40
+ this.endDate = this.days[this.days.length - 1];
41
+ if (this.fetchDataFromApi) {
42
+ this.isDataLoading = true;
43
+ this.getInsiteData();
44
+ }
45
+ }
46
+ getInsiteData() {
47
+ let request = {
48
+ "locale": [
49
+ "en"
50
+ ],
51
+ "query": "",
52
+ "request": {
53
+ "query": "",
54
+ "filters": {
55
+ "category": [
56
+ "Calendar"
57
+ ],
58
+ "status": [
59
+ "Live",
60
+ "Retired"
61
+ ],
62
+ "contentType": "Event",
63
+ "startDate": {
64
+ ">=": this.startDate,
65
+ "<=": this.endDate
66
+ // ">=": "2024-01-15",
67
+ // "<": "2024-05-31"
68
+ },
69
+ "channel": [this.providerId]
70
+ },
71
+ "sort_by": {
72
+ "lastUpdatedOn": "desc"
73
+ }
74
+ }
75
+ };
76
+ this.insightSvc.fetchTrainingDetails(request).subscribe((res) => {
77
+ if (res && res.result && res.result.Event) {
78
+ res.result.Event.forEach((resp) => {
79
+ if (this.trainings[resp.startDate]) {
80
+ let prevData = this.trainings[resp.startDate];
81
+ let location = resp.eventType;
82
+ if (resp.location && location !== "Online") {
83
+ const jsonResp = JSON.parse(resp.location);
84
+ location = jsonResp['address'];
85
+ }
86
+ const formatObject = {
87
+ location: location,
88
+ startTime: this.convertTo12HourFormat(resp.startTime),
89
+ endTime: this.convertTo12HourFormat(resp.endTime),
90
+ title: resp.name,
91
+ startDate: this.formatDate(resp.startDate),
92
+ endDate: this.formatDate(resp.endDate),
93
+ registrationLink: resp.registrationLink,
94
+ };
95
+ prevData.push(formatObject);
96
+ this.trainings[resp.startDate] = prevData;
97
+ }
98
+ });
99
+ }
100
+ this.isDataLoading = false;
101
+ });
102
+ }
103
+ getKeys(obj) {
104
+ return Object.keys(obj);
105
+ }
106
+ formatDate(date) {
107
+ let formatDate = new Date(date);
108
+ return this.datePipe.transform(formatDate, 'E, dd LLL');
109
+ }
110
+ convertTo12HourFormat(timeString) {
111
+ const time = timeString.split(":");
112
+ let hours = +time[0];
113
+ const minutes = +time[1];
114
+ const ampm = hours >= 12 ? 'PM' : 'AM';
115
+ hours = hours % 12;
116
+ hours = hours ? hours : 12;
117
+ const strHours = hours < 10 ? '0' + hours : hours.toString();
118
+ const strMinutes = minutes < 10 ? '0' + minutes : minutes.toString();
119
+ return `${strHours}:${strMinutes} ${ampm}`;
120
+ }
121
+ getDays(cDate, counter) {
122
+ const days = [];
123
+ let initDate = new Date(cDate);
124
+ initDate = this.datePipe.transform(initDate, 'y-MM-dd');
125
+ days.push(initDate);
126
+ this.trainings[initDate] = [];
127
+ while (counter > 0) {
128
+ let myDate = new Date(cDate);
129
+ myDate = myDate.setDate(myDate.getDate() + 1);
130
+ cDate = myDate;
131
+ myDate = this.datePipe.transform(myDate, 'y-MM-dd');
132
+ days.push(myDate);
133
+ this.trainings[myDate] = [];
134
+ counter = counter - 1;
135
+ }
136
+ return days;
137
+ }
138
+ getDaysInMonth(year, month) {
139
+ const date = new Date(year, month, 1);
140
+ const days = [];
141
+ this.trainings = {};
142
+ while (date.getMonth() === month) {
143
+ let myDate = new Date(date);
144
+ myDate = this.datePipe.transform(myDate, 'y-MM-dd');
145
+ days.push(myDate);
146
+ this.trainings[myDate] = [];
147
+ date.setDate(date.getDate() + 1);
148
+ }
149
+ return days;
150
+ }
151
+ getMonthsDropdownData() {
152
+ this.allMonths.forEach((month) => {
153
+ this.monthsDropdown.push(`${month} ${this.currentDate.getFullYear()}`);
154
+ });
155
+ }
156
+ selectMonth(event) {
157
+ const selectedMonth = new Date(event);
158
+ this.currentDate = selectedMonth;
159
+ this.days = [];
160
+ this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
161
+ this.startDate = this.days[0];
162
+ this.endDate = this.days[this.days.length - 1];
163
+ this.isDataLoading = true;
164
+ this.getInsiteData();
165
+ }
166
+ }
167
+ CalenderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CalenderComponent, deps: [{ token: i1.DatePipe }, { token: i2.InsiteDataService }], target: i0.ɵɵFactoryTarget.Component });
168
+ CalenderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CalenderComponent, selector: "sb-uic-calender", inputs: { objectData: "objectData", layoutType: "layoutType", fetchDataFromApi: "fetchDataFromApi", showHeader: "showHeader", defaultDays: "defaultDays", providerId: "providerId", fullCalendor: "fullCalendor" }, ngImport: i0, template: "<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>", styles: [".calendar-header{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.c-padding{padding:0}.center{align-items:center}::ng-deep .custom-month .mat-form-field-wrapper{padding-bottom:0!important;width:145px}::ng-deep .custom-month .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#000!important}::ng-deep .custom-month .mat-select-value{width:89%}::ng-deep .mat-select-arrow{color:#000!important}::ng-deep .custom-month .mat-select-value-text{font-weight:600}@media screen and (max-width: 768px){.c-padding{padding:0 1.25rem 1rem}.calendar-header{font-size:15px}}\n"], components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i6.CalenderDayComponent, selector: "sb-uic-calender-day", inputs: ["objectData", "layoutType", "day", "dataLoading", "rowId", "eventDate"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CalenderComponent, decorators: [{
170
+ type: Component,
171
+ args: [{
172
+ selector: 'sb-uic-calender',
173
+ templateUrl: './calender.component.html',
174
+ styleUrls: ['./calender.component.scss']
175
+ }]
176
+ }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i2.InsiteDataService }]; }, propDecorators: { objectData: [{
177
+ type: Input
178
+ }], layoutType: [{
179
+ type: Input
180
+ }], fetchDataFromApi: [{
181
+ type: Input
182
+ }], showHeader: [{
183
+ type: Input
184
+ }], defaultDays: [{
185
+ type: Input
186
+ }], providerId: [{
187
+ type: Input
188
+ }], fullCalendor: [{
189
+ type: Input
190
+ }] } });
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NvbnN1bXB0aW9uL3NyYy9saWIvX2NvbW1vbi9jYWxlbmRlci9jYWxlbmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL2NhbGVuZGVyL2NhbGVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFRdkIsTUFBTSxPQUFPLGlCQUFpQjtJQXVCNUIsWUFBb0IsUUFBa0IsRUFBUyxVQUE2QjtRQUF4RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFuQm5FLHFCQUFnQixHQUFZLEtBQUssQ0FBQTtRQUNqQyxlQUFVLEdBQVksS0FBSyxDQUFBO1FBQzNCLGdCQUFXLEdBQVcsQ0FBQyxDQUFBO1FBRXZCLGlCQUFZLEdBQVksS0FBSyxDQUFBO1FBQ3RDLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxjQUFTLEdBQVEsRUFBRSxDQUFBO1FBRW5CLGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQzlCLGdCQUFXLEdBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUc3QixjQUFTLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU87WUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTTtZQUM5QixRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVM7WUFDaEMsVUFBVSxFQUFFLFVBQVU7U0FDdkIsQ0FBQTtRQUNELG1CQUFjLEdBQVEsRUFBRSxDQUFBO0lBRXdELENBQUM7SUFFakYsUUFBUTtRQUNOLElBQUksQ0FBQyxt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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5zaXRlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvaW5zaXRlLWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1jYWxlbmRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG9iamVjdERhdGE6IGFueVxuICBASW5wdXQoKSBsYXlvdXRUeXBlOiBhbnlcbiAgQElucHV0KCkgZmV0Y2hEYXRhRnJvbUFwaTogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIHNob3dIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBkZWZhdWx0RGF5czogbnVtYmVyID0gM1xuICBASW5wdXQoKSBwcm92aWRlcklkOiBhbnlcbiAgQElucHV0KCkgZnVsbENhbGVuZG9yOiBib29sZWFuID0gZmFsc2VcbiAgZGF5cyA9IFtdXG4gIHRyYWluaW5nczogYW55ID0ge31cbiAgY3VycmVudE1vbnRoQW5kWWVhcjogYW55XG4gIGlzRGF0YUxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZVxuICBjdXJyZW50RGF0ZTogYW55ID0gbmV3IERhdGUoKVxuICBlbmREYXRlOiBhbnlcbiAgc3RhcnREYXRlOiBhbnlcbiAgYWxsTW9udGhzID0gW1wiSmFudWFyeVwiLCBcIkZlYnJ1YXJ5XCIsIFwiTWFyY2hcIixcbiAgICBcIkFwcmlsXCIsIFwiTWF5XCIsIFwiSnVuZVwiLCBcIkp1bHlcIixcbiAgICBcIkF1Z3VzdFwiLCBcIlNlcHRlbWJlclwiLCBcIk9jdG9iZXJcIixcbiAgICBcIk5vdmVtYmVyXCIsIFwiRGVjZW1iZXJcIlxuICBdXG4gIG1vbnRoc0Ryb3Bkb3duOiBhbnkgPSBbXVxuICBzZWxlY3RlZE1vbnRoOiBhbnlcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsIHB1YmxpYyBpbnNpZ2h0U3ZjOiBJbnNpdGVEYXRhU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jdXJyZW50TW9udGhBbmRZZWFyID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5jdXJyZW50RGF0ZSwgJ01NTU0geScpXG4gICAgdGhpcy5zZWxlY3RlZE1vbnRoID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5jdXJyZW50RGF0ZSwgJ0xMTEwgeXl5eScpXG4gICAgaWYgKHRoaXMuZnVsbENhbGVuZG9yKSB7XG4gICAgICB0aGlzLmRheXMgPSB0aGlzLmdldERheXNJbk1vbnRoKHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpKVxuICAgICAgdGhpcy5nZXRNb250aHNEcm9wZG93bkRhdGEoKVxuICAgIH1cbiAgICBpZiAoIXRoaXMuZnVsbENhbGVuZG9yKSB7XG4gICAgICB0aGlzLmRheXMgPSB0aGlzLmdldERheXModGhpcy5jdXJyZW50RGF0ZSwgK3RoaXMuZGVmYXVsdERheXMpXG4gICAgfVxuICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5kYXlzWzBdXG4gICAgdGhpcy5lbmREYXRlID0gdGhpcy5kYXlzW3RoaXMuZGF5cy5sZW5ndGggLSAxXVxuICAgIGlmKHRoaXMuZmV0Y2hEYXRhRnJvbUFwaSkge1xuICAgICAgdGhpcy5pc0RhdGFMb2FkaW5nID0gdHJ1ZVxuICAgICAgdGhpcy5nZXRJbnNpdGVEYXRhKClcbiAgICB9XG4gIH1cbiAgZ2V0SW5zaXRlRGF0YSgpIHtcbiAgICBsZXQgcmVxdWVzdCA9IHtcbiAgICAgIFwibG9jYWxlXCI6IFtcbiAgICAgICAgICBcImVuXCJcbiAgICAgIF0sXG4gICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICBcInJlcXVlc3RcIjoge1xuICAgICAgICAgIFwicXVlcnlcIjogXCJcIixcbiAgICAgICAgICBcImZpbHRlcnNcIjoge1xuICAgICAgICAgICAgICBcImNhdGVnb3J5XCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIkxpdmVcIixcbiAgICAgICAgICAgICAgICAgIFwiUmV0aXJlZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgICBcInN0YXJ0RGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCI+PVwiOiB0aGlzLnN0YXJ0RGF0ZSxcbiAgICAgICAgICAgICAgICBcIjw9XCI6IHRoaXMuZW5kRGF0ZVxuICAgICAgICAgICAgICAgIC8vIFwiPj1cIjogXCIyMDI0LTAxLTE1XCIsXG4gICAgICAgICAgICAgICAgLy8gXCI8XCI6IFwiMjAyNC0wNS0zMVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY2hhbm5lbFwiOiBbdGhpcy5wcm92aWRlcklkXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmluc2lnaHRTdmMuZmV0Y2hUcmFpbmluZ0RldGFpbHMocmVxdWVzdCkuc3Vic2NyaWJlKChyZXM6IGFueSk9PiB7XG4gICAgICBpZiAocmVzICYmIHJlcy5yZXN1bHQgJiYgcmVzLnJlc3VsdC5FdmVudCkge1xuICAgICAgICByZXMucmVzdWx0LkV2ZW50LmZvckVhY2goKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnRyYWluaW5nc1tyZXNwLnN0YXJ0RGF0ZV0pIHtcbiAgICAgICAgICAgIGxldCBwcmV2RGF0YSA9IHRoaXMudHJhaW5pbmdzW3Jlc3Auc3RhcnREYXRlXVxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gcmVzcC5ldmVudFR5cGVcbiAgICAgICAgICAgIGlmIChyZXNwLmxvY2F0aW9uICYmIGxvY2F0aW9uICE9PSBcIk9ubGluZVwiKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb25SZXNwID0gSlNPTi5wYXJzZShyZXNwLmxvY2F0aW9uKVxuICAgICAgICAgICAgICBsb2NhdGlvbiA9IGpzb25SZXNwWydhZGRyZXNzJ11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdE9iamVjdCA9IHtcbiAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgICAgICAgICBzdGFydFRpbWU6IHRoaXMuY29udmVydFRvMTJIb3VyRm9ybWF0KHJlc3Auc3RhcnRUaW1lKSxcbiAgICAgICAgICAgICAgZW5kVGltZTogdGhpcy5jb252ZXJ0VG8xMkhvdXJGb3JtYXQocmVzcC5lbmRUaW1lKSxcbiAgICAgICAgICAgICAgdGl0bGU6IHJlc3AubmFtZSxcbiAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmZvcm1hdERhdGUocmVzcC5zdGFydERhdGUpLFxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmZvcm1hdERhdGUocmVzcC5lbmREYXRlKSxcbiAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uTGluazogcmVzcC5yZWdpc3RyYXRpb25MaW5rLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJldkRhdGEucHVzaChmb3JtYXRPYmplY3QpXG4gICAgICAgICAgICB0aGlzLnRyYWluaW5nc1tyZXNwLnN0YXJ0RGF0ZV0gPSBwcmV2RGF0YVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNEYXRhTG9hZGluZyA9IGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIGdldEtleXMob2JqOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaik7XG4gIH1cblxuICBmb3JtYXREYXRlKGRhdGU6IGFueSkge1xuICAgIGxldCBmb3JtYXREYXRlID0gbmV3IERhdGUoZGF0ZSlcbiAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZm9ybWF0RGF0ZSwgJ0UsIGRkIExMTCcpXG4gIH1cblxuICBjb252ZXJ0VG8xMkhvdXJGb3JtYXQodGltZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aW1lID0gdGltZVN0cmluZy5zcGxpdChcIjpcIilcbiAgICBsZXQgaG91cnMgPSArdGltZVswXVxuICAgIGNvbnN0IG1pbnV0ZXMgPSArdGltZVsxXVxuICAgIGNvbnN0IGFtcG0gPSBob3VycyA+PSAxMiA/ICdQTScgOiAnQU0nXG4gICAgaG91cnMgPSBob3VycyAlIDEyXG4gICAgaG91cnMgPSBob3VycyA/IGhvdXJzIDogMTJcbiAgICBjb25zdCBzdHJIb3VycyA9IGhvdXJzIDwgMTAgPyAnMCcgKyBob3VycyA6IGhvdXJzLnRvU3RyaW5nKClcbiAgICBjb25zdCBzdHJNaW51dGVzID0gbWludXRlcyA8IDEwID8gJzAnICsgbWludXRlcyA6IG1pbnV0ZXMudG9TdHJpbmcoKVxuICAgIHJldHVybiBgJHtzdHJIb3Vyc306JHtzdHJNaW51dGVzfSAke2FtcG19YFxuICB9XG5cbiAgZ2V0RGF5cyhjRGF0ZTogYW55LCBjb3VudGVyOiBudW1iZXIpIHtcbiAgICBjb25zdCBkYXlzOiBhbnkgPSBbXVxuICAgIGxldCBpbml0RGF0ZTogYW55ID0gbmV3IERhdGUoY0RhdGUpXG4gICAgaW5pdERhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShpbml0RGF0ZSwgJ3ktTU0tZGQnKVxuICAgIGRheXMucHVzaChpbml0RGF0ZSlcbiAgICB0aGlzLnRyYWluaW5nc1tpbml0RGF0ZV0gPSBbXVxuICAgIHdoaWxlIChjb3VudGVyID4gMCkge1xuICAgICAgbGV0IG15RGF0ZTogYW55ID0gbmV3IERhdGUoY0RhdGUpXG4gICAgICBteURhdGUgPSBteURhdGUuc2V0RGF0ZShteURhdGUuZ2V0RGF0ZSgpICsgMSlcbiAgICAgIGNEYXRlID0gbXlEYXRlXG4gICAgICBteURhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShteURhdGUsICd5LU1NLWRkJylcbiAgICAgIGRheXMucHVzaChteURhdGUpXG4gICAgICB0aGlzLnRyYWluaW5nc1tteURhdGVdID0gW11cbiAgICAgIGNvdW50ZXIgPSBjb3VudGVyIC0gMVxuICAgIH1cbiAgICByZXR1cm4gZGF5c1xuICB9XG5cbiAgZ2V0RGF5c0luTW9udGgoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogRGF0ZVtdIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpXG4gICAgY29uc3QgZGF5czogYW55ID0gW11cbiAgICB0aGlzLnRyYWluaW5ncyA9IHt9XG4gICAgd2hpbGUgKGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGgpIHtcbiAgICAgIGxldCBteURhdGU6IGFueSA9IG5ldyBEYXRlKGRhdGUpXG4gICAgICBteURhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShteURhdGUsICd5LU1NLWRkJylcbiAgICAgIGRheXMucHVzaChteURhdGUpXG4gICAgICB0aGlzLnRyYWluaW5nc1tteURhdGVdID0gW11cbiAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpXG4gICAgfVxuICAgIHJldHVybiBkYXlzXG4gIH1cblxuICBnZXRNb250aHNEcm9wZG93bkRhdGEoKSB7XG4gICAgdGhpcy5hbGxNb250aHMuZm9yRWFjaCgobW9udGg6IGFueSkgPT4ge1xuICAgICAgdGhpcy5tb250aHNEcm9wZG93bi5wdXNoKGAke21vbnRofSAke3RoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKX1gKVxuICAgIH0pXG4gIH1cblxuICBzZWxlY3RNb250aChldmVudDogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRNb250aDogYW55ID0gbmV3IERhdGUoZXZlbnQpXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHNlbGVjdGVkTW9udGhcbiAgICB0aGlzLmRheXMgPSBbXVxuICAgIHRoaXMuZGF5cyA9IHRoaXMuZ2V0RGF5c0luTW9udGgodGhpcy5jdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLmN1cnJlbnREYXRlLmdldE1vbnRoKCkpXG4gICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLmRheXNbMF1cbiAgICB0aGlzLmVuZERhdGUgPSB0aGlzLmRheXNbdGhpcy5kYXlzLmxlbmd0aCAtIDFdXG4gICAgdGhpcy5pc0RhdGFMb2FkaW5nID0gdHJ1ZVxuICAgIHRoaXMuZ2V0SW5zaXRlRGF0YSgpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXIgZmxleCBmbGV4LXJvdyBjLXBhZGRpbmcgY2VudGVyIGdhcC0yXCIgKm5nSWY9XCJzaG93SGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInB0LTNcIj57eyBvYmplY3REYXRhPy50aXRsZSB9fTo8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hvb3NlLW1vbnRoXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImN1c3RvbS1tb250aFwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgbWF0TmF0aXZlQ29udHJvbCBwYW5lbENsYXNzPVwiY3VzdG9tLXNlbGVjdFwiIFtuZ01vZGVsXT1cInNlbGVjdGVkTW9udGhcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RNb250aCgkZXZlbnQpXCIgY2xhc3M9XCJtb250aC1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzRHJvcGRvd25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm1vbnRoXCI+e3ttb250aH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImxheW91dFR5cGU9PT0nZ3JpZCdcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvYmogb2YgZ2V0S2V5cyh0cmFpbmluZ3MpOyAgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8c2ItdWljLWNhbGVuZGVyLWRheSBbZGF5XT1cInRyYWluaW5nc1tvYmpdXCJcbiAgICAgICAgICAgIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIlxuICAgICAgICAgICAgW29iamVjdERhdGFdPVwib2JqZWN0RGF0YVwiXG4gICAgICAgICAgICBbZGF0YUxvYWRpbmddPVwiaXNEYXRhTG9hZGluZ1wiXG4gICAgICAgICAgICBbZXZlbnREYXRlXT1cIm9ialwiXG4gICAgICAgICAgICBbcm93SWRdPVwiaVwiPlxuICAgICAgICA8L3NiLXVpYy1jYWxlbmRlci1kYXk+XG4gICAgPC9kaXY+ICAgIFxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwibGF5b3V0VHlwZT09PSdyb3cnXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgb2JqIG9mIGdldEtleXModHJhaW5pbmdzKTsgbGV0IGogPSBpbmRleFwiPlxuICAgICAgICA8c2ItdWljLWNhbGVuZGVyLWRheSBbZGF5XT1cInRyYWluaW5nc1tvYmpdXCJcbiAgICAgICAgICAgIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIlxuICAgICAgICAgICAgW29iamVjdERhdGFdPVwib2JqZWN0RGF0YVwiXG4gICAgICAgICAgICBbZGF0YUxvYWRpbmddPVwiaXNEYXRhTG9hZGluZ1wiXG4gICAgICAgICAgICBbZXZlbnREYXRlXT1cIm9ialwiXG4gICAgICAgICAgICBbcm93SWRdPVwialwiPlxuICAgICAgICA8L3NiLXVpYy1jYWxlbmRlci1kYXk+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,45 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
+ import { CommonModule, DatePipe } from '@angular/common';
3
+ import { CalenderComponent } from './calender.component';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatSelectModule } from '@angular/material/select';
6
+ import { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';
7
+ import { CalenderDayComponent } from './calender-day/calender-day.component';
8
+ import { InsiteDataService } from '../../_services/insite-data.service';
9
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
+ import * as i0 from "@angular/core";
11
+ export class CalenderModule {
12
+ }
13
+ CalenderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CalenderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ CalenderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CalenderModule, declarations: [CalenderComponent, CalenderDayComponent], imports: [CommonModule,
15
+ MatIconModule,
16
+ FormsModule,
17
+ ReactiveFormsModule,
18
+ MatSelectModule,
19
+ SkeletonLoaderLibModule], exports: [CalenderComponent] });
20
+ CalenderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CalenderModule, providers: [DatePipe, InsiteDataService], imports: [[
21
+ CommonModule,
22
+ MatIconModule,
23
+ FormsModule,
24
+ ReactiveFormsModule,
25
+ MatSelectModule,
26
+ SkeletonLoaderLibModule
27
+ ]] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CalenderModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ imports: [
32
+ CommonModule,
33
+ MatIconModule,
34
+ FormsModule,
35
+ ReactiveFormsModule,
36
+ MatSelectModule,
37
+ SkeletonLoaderLibModule
38
+ ],
39
+ declarations: [CalenderComponent, CalenderDayComponent],
40
+ exports: [CalenderComponent],
41
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
42
+ providers: [DatePipe, InsiteDataService],
43
+ }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NvbnN1bXB0aW9uL3NyYy9saWIvX2NvbW1vbi9jYWxlbmRlci9jYWxlbmRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFvQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFnQmxFLE1BQU0sT0FBTyxjQUFjOzs0R0FBZCxjQUFjOzZHQUFkLGNBQWMsaUJBTFYsaUJBQWlCLEVBQUUsb0JBQW9CLGFBUHBELFlBQVk7UUFDWixhQUFhO1FBQ2IsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsdUJBQXVCLGFBR2YsaUJBQWlCOzZHQUloQixjQUFjLGFBRmYsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsWUFYOUI7WUFDUCxZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLHVCQUF1QjtTQUN4Qjs0RkFNVSxjQUFjO2tCQWQxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsdUJBQXVCO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQztvQkFDdkQsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxTQUFTLEVBQUMsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2FsZW5kZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgU2tlbGV0b25Mb2FkZXJMaWJNb2R1bGUgfSBmcm9tICcuLi9za2VsZXRvbi1sb2FkZXItbGliL3NrZWxldG9uLWxvYWRlci1saWIubW9kdWxlJztcbmltcG9ydCB7IENhbGVuZGVyRGF5Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRlci1kYXkvY2FsZW5kZXItZGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnNpdGVEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9pbnNpdGUtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgU2tlbGV0b25Mb2FkZXJMaWJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbQ2FsZW5kZXJDb21wb25lbnQsIENhbGVuZGVyRGF5Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW0NhbGVuZGVyQ29tcG9uZW50XSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBwcm92aWRlcnM6W0RhdGVQaXBlLCBJbnNpdGVEYXRhU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGVyTW9kdWxlIHt9Il19
@@ -0,0 +1,89 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@sunbird-cb/utils-v2";
4
+ import * as i2 from "../../../../_services/widget-content.service";
5
+ import * as i3 from "@angular/material/card";
6
+ import * as i4 from "../../../skeleton-loader-lib/skeleton-loader-lib.component";
7
+ import * as i5 from "@angular/common";
8
+ import * as i6 from "../../../../_directives/default-thumbnail/default-thumbnail.directive";
9
+ import * as i7 from "../../../../_pipes/pipe-public-URL/pipe-public-URL.pipe";
10
+ // @Directive({
11
+ // selector: '[callFunctionOnInit]'
12
+ // })
13
+ export class CardAssessmentComponent {
14
+ constructor(configSvc, contSvc) {
15
+ this.configSvc = configSvc;
16
+ this.contSvc = contSvc;
17
+ this.contentData = new EventEmitter();
18
+ this.isCardLoading = false;
19
+ this.stripData = [];
20
+ this.enrollList = [];
21
+ this.activeResource = [];
22
+ this.daysRemaining = 0;
23
+ this.daysPending = false;
24
+ this.daysFinish = false;
25
+ }
26
+ ngOnInit() {
27
+ const instanceConfig = this.configSvc.instanceConfig;
28
+ if (instanceConfig) {
29
+ this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
30
+ this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
31
+ }
32
+ }
33
+ startCountdown(data) {
34
+ let startDate = data.startDate;
35
+ this.updateCountdown(startDate);
36
+ // this.intervalId = setInterval(() => {
37
+ // this.updateCountdown(startDate);
38
+ // }, 1000);
39
+ }
40
+ // Method to update the countdown values
41
+ updateCountdown(startDate) {
42
+ let now = new Date().getTime();
43
+ let startingDate = new Date(startDate).getTime();
44
+ // startingDate.setHours(startingDate.getHours() - 5);
45
+ // startingDate.setMinutes(startingDate.getMinutes() - 30);
46
+ // startingDate = startingDate.getTime()
47
+ const distance = startingDate - now;
48
+ if (distance > 0) {
49
+ this.daysPending = true;
50
+ this.days = Math.floor(distance / (1000 * 60 * 60 * 24));
51
+ this.hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
52
+ this.minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
53
+ }
54
+ else {
55
+ this.daysRemaining = 0;
56
+ this.daysPending = false;
57
+ }
58
+ }
59
+ ngOnDestroy() {
60
+ }
61
+ getRedirectUrlData(contentData) {
62
+ // for telemetry
63
+ if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {
64
+ contentData['typeOfTelemetry'] = this.widgetData.context.pageSection;
65
+ }
66
+ this.contSvc.changeTelemetryData(contentData);
67
+ // for redirection
68
+ this.contentData.emit(contentData);
69
+ }
70
+ }
71
+ CardAssessmentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CardAssessmentComponent, deps: [{ token: i1.ConfigurationsService }, { token: i2.WidgetContentService }], target: i0.ɵɵFactoryTarget.Component });
72
+ CardAssessmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CardAssessmentComponent, selector: "sb-uic-card-assessment", inputs: { widgetData: "widgetData", enrollmentMapData: "enrollmentMapData", isCardLoading: "isCardLoading" }, outputs: { contentData: "contentData" }, ngImport: i0, template: "<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>", styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:340px;margin-top:16px;margin-right:12px;border-radius:12px}.image-container{width:145px;height:120px;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.image-container img{border-radius:8px;opacity:1;background-size:100%;width:145px!important;height:120px!important;display:flex}.title-container{width:155px;margin-left:12px}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px / 24px Montserrat}.sub-title-text{width:90%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;margin-right:4px;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.course_logo_box img.source-icon{height:28px;width:28px;padding:5px;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green;width:100px}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:rgba(239,149,30,.16)!important;text-align:center;box-sizing:border-box;border-radius:0 0 8px 8px}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}.big-text{font-size:16px}.small-text{font-size:12px!important;vertical-align:top;margin-left:4px}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i4.SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i3.MatCardImage, selector: "[mat-card-image], [matCardImage]" }, { type: i6.DefaultThumbnailDirective, selector: "[wsUtilsDefaultThumbnail]", inputs: ["wsUtilsDefaultThumbnail", "src"] }, { type: i3.MatCardFooter, selector: "mat-card-footer" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "pipePublicURL": i7.PipePublicURL, "date": i5.DatePipe } });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CardAssessmentComponent, decorators: [{
74
+ type: Component,
75
+ args: [{
76
+ selector: 'sb-uic-card-assessment',
77
+ templateUrl: './card-assessment.component.html',
78
+ styleUrls: ['./card-assessment.component.css']
79
+ }]
80
+ }], ctorParameters: function () { return [{ type: i1.ConfigurationsService }, { type: i2.WidgetContentService }]; }, propDecorators: { widgetData: [{
81
+ type: Input
82
+ }], enrollmentMapData: [{
83
+ type: Input
84
+ }], contentData: [{
85
+ type: Output
86
+ }], isCardLoading: [{
87
+ type: Input
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hc3Nlc3NtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vY2FyZHMvY2FyZC1hc3Nlc3NtZW50L2NhcmQtYXNzZXNzbWVudC9jYXJkLWFzc2Vzc21lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NvbnN1bXB0aW9uL3NyYy9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLWFzc2Vzc21lbnQvY2FyZC1hc3Nlc3NtZW50L2NhcmQtYXNzZXNzbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFXL0UsZUFBZTtBQUNmLHFDQUFxQztBQUNyQyxLQUFLO0FBQ0wsTUFBTSxPQUFPLHVCQUF1QjtJQW1CbEMsWUFBb0IsU0FBZ0MsRUFBVSxPQUE2QjtRQUF2RSxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBaEJqRixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFDdEMsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDdkMsY0FBUyxHQUFRLEVBQUUsQ0FBQTtRQUNuQixlQUFVLEdBQVEsRUFBRSxDQUFBO1FBQ3BCLG1CQUFjLEdBQVEsRUFBRSxDQUFBO1FBR3hCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRzFCLGdCQUFXLEdBQVksS0FBSyxDQUFBO1FBQzVCLGVBQVUsR0FBWSxLQUFLLENBQUE7SUFLcUUsQ0FBQztJQUVqRyxRQUFRO1FBQ04sTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUE7UUFDcEQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQTtZQUNqRSxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFBO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTO1FBQ3RCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyx3Q0FBd0M7UUFDeEMscUNBQXFDO1FBQ3JDLFlBQVk7SUFDZCxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGVBQWUsQ0FBQyxTQUFjO1FBQzVCLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDOUIsSUFBSSxZQUFZLEdBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDckQsc0RBQXNEO1FBQ3RELDJEQUEyRDtRQUMzRCx3Q0FBd0M7UUFDeEMsTUFBTSxRQUFRLEdBQUcsWUFBWSxHQUFHLEdBQUcsQ0FBQztRQUNwQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN4RTthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7U0FDekI7SUFFSCxDQUFDO0lBRUQsV0FBVztJQUNYLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUFnQjtRQUNqQyxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNyRixXQUFXLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUE7U0FDckU7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzdDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNwQyxDQUFDOztxSEFwRVUsdUJBQXVCO3lHQUF2Qix1QkFBdUIscU5DZHBDLHMrTkEwSWM7NEZENUhELHVCQUF1QjtrQkFUbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUsa0NBQWtDO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztpQkFDL0M7K0lBTVUsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgV2lkZ2V0VXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LXVzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIE5zQ29udGVudCB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY2FyZC1hc3Nlc3NtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtYXNzZXNzbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtYXNzZXNzbWVudC5jb21wb25lbnQuY3NzJ11cbn0pXG5cbi8vIEBEaXJlY3RpdmUoe1xuLy8gICBzZWxlY3RvcjogJ1tjYWxsRnVuY3Rpb25PbkluaXRdJ1xuLy8gfSlcbmV4cG9ydCBjbGFzcyBDYXJkQXNzZXNzbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBOc0NvbnRlbnQuSUNvbnRlbnQ7XG4gIEBJbnB1dCgpIGVucm9sbG1lbnRNYXBEYXRhOiBhbnlcbiAgQE91dHB1dCgpIGNvbnRlbnREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQElucHV0KCkgaXNDYXJkTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIHN0cmlwRGF0YTogYW55ID0gW11cbiAgZW5yb2xsTGlzdDogYW55ID0gW11cbiAgYWN0aXZlUmVzb3VyY2U6IGFueSA9IFtdXG4gIGRlZmF1bHRUaHVtYm5haWw6IGFueVxuICBkZWZhdWx0U0xvZ286IGFueVxuICBkYXlzUmVtYWluaW5nOiBudW1iZXIgPSAwO1xuICBzdGFydERhdGU6IGFueVxuICBlbmREYXRlOiBhbnlcbiAgZGF5c1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZVxuICBkYXlzRmluaXNoOiBib29sZWFuID0gZmFsc2VcbiAgcHJpdmF0ZSBpbnRlcnZhbElkOiBhbnk7XG4gIGRheXM6IG51bWJlcjtcbiAgaG91cnM6IG51bWJlcjtcbiAgbWludXRlczogbnVtYmVyO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIGNvbnRTdmM6IFdpZGdldENvbnRlbnRTZXJ2aWNlLCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5zdGFuY2VDb25maWcgPSB0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZ1xuICAgIGlmIChpbnN0YW5jZUNvbmZpZykge1xuICAgICAgdGhpcy5kZWZhdWx0VGh1bWJuYWlsID0gaW5zdGFuY2VDb25maWcubG9nb3MuZGVmYXVsdENvbnRlbnQgfHwgJydcbiAgICAgIHRoaXMuZGVmYXVsdFNMb2dvID0gaW5zdGFuY2VDb25maWcubG9nb3MuZGVmYXVsdFNvdXJjZUxvZ28gfHwgJydcbiAgICB9XG4gIH1cblxuICBzdGFydENvdW50ZG93bihkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgc3RhcnREYXRlID0gZGF0YS5zdGFydERhdGVcbiAgICB0aGlzLnVwZGF0ZUNvdW50ZG93bihzdGFydERhdGUpO1xuICAgIC8vIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAvLyAgIHRoaXMudXBkYXRlQ291bnRkb3duKHN0YXJ0RGF0ZSk7XG4gICAgLy8gfSwgMTAwMCk7XG4gIH1cblxuICAvLyBNZXRob2QgdG8gdXBkYXRlIHRoZSBjb3VudGRvd24gdmFsdWVzXG4gIHVwZGF0ZUNvdW50ZG93bihzdGFydERhdGU6IGFueSk6IHZvaWQge1xuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgIGxldCBzdGFydGluZ0RhdGU6IGFueSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSkuZ2V0VGltZSgpXG4gICAgLy8gc3RhcnRpbmdEYXRlLnNldEhvdXJzKHN0YXJ0aW5nRGF0ZS5nZXRIb3VycygpIC0gNSk7XG4gICAgLy8gc3RhcnRpbmdEYXRlLnNldE1pbnV0ZXMoc3RhcnRpbmdEYXRlLmdldE1pbnV0ZXMoKSAtIDMwKTtcbiAgICAvLyBzdGFydGluZ0RhdGUgPSBzdGFydGluZ0RhdGUuZ2V0VGltZSgpXG4gICAgY29uc3QgZGlzdGFuY2UgPSBzdGFydGluZ0RhdGUgLSBub3c7IFxuICAgIGlmIChkaXN0YW5jZSA+IDApIHtcbiAgICAgIHRoaXMuZGF5c1BlbmRpbmcgPSB0cnVlXG4gICAgICB0aGlzLmRheXMgPSBNYXRoLmZsb29yKGRpc3RhbmNlIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcbiAgICAgIHRoaXMuaG91cnMgPSBNYXRoLmZsb29yKChkaXN0YW5jZSAlICgxMDAwICogNjAgKiA2MCAqIDI0KSkgLyAoMTAwMCAqIDYwICogNjApKTtcbiAgICAgIHRoaXMubWludXRlcyA9IE1hdGguZmxvb3IoKGRpc3RhbmNlICUgKDEwMDAgKiA2MCAqIDYwKSkgLyAoMTAwMCAqIDYwKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF5c1JlbWFpbmluZyA9IDA7XG4gICAgICB0aGlzLmRheXNQZW5kaW5nID0gZmFsc2VcbiAgICB9XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICB9XG5cbiAgZ2V0UmVkaXJlY3RVcmxEYXRhKGNvbnRlbnREYXRhOiBhbnkpIHtcbiAgICAvLyBmb3IgdGVsZW1ldHJ5XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dCAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dC5wYWdlU2VjdGlvbikge1xuICAgICAgY29udGVudERhdGFbJ3R5cGVPZlRlbGVtZXRyeSddID0gdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb25cbiAgICB9XG4gICAgdGhpcy5jb250U3ZjLmNoYW5nZVRlbGVtZXRyeURhdGEoY29udGVudERhdGEpXG4gICAgLy8gZm9yIHJlZGlyZWN0aW9uXG4gICAgdGhpcy5jb250ZW50RGF0YS5lbWl0KGNvbnRlbnREYXRhKVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNDYXJkTG9hZGluZ1wiPlxuXHQ8bWF0LWNhcmRcblx0XHRjbGFzcz1cImNhcmQtYXNzZXNzbWVudCBjYXJkLXNjaGVkdWxlZC1hc3Nlc3NtZW50IGNhcmQtdXNlcnMtY29udGFpbmVyICBwYWRkaW5nLXJlbW92ZSBjdXJzb3ItcG9pbnRlciBtci00XCI+XG5cdFx0PGEgKGNsaWNrKT1cImdldFJlZGlyZWN0VXJsRGF0YSh3aWRnZXREYXRhPy5jb250ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZGlzcGxheS1jb250ZW50c1wiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0RGF0YVwiPlxuXHRcdFx0XHRcdDxtYXQtY2FyZC1jb250ZW50PlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaC1mdWxsXCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LXJvdyBwYWRkaW5nLXNcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpbWFnZS1jb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXREYXRhPy5jb250ZW50Py5wb3N0ZXJJbWFnZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1nIG1hdC1jYXJkLWltYWdlIGNsYXNzPVwibWFyZ2luLXJlbW92ZSBhc3Nlc3MtaW1nXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIndpZGdldERhdGE/LmNvbnRlbnQ/LnBvc3RlckltYWdlIHwgcGlwZVB1YmxpY1VSTFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2FsdF09XCJ3aWRnZXREYXRhPy5jb250ZW50Py5uYW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhd2lkZ2V0RGF0YT8uY29udGVudD8ucG9zdGVySW1hZ2VcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0SW1nPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWcgbWF0LWNhcmQtaW1hZ2UgW3NyY109XCJkZWZhdWx0VGh1bWJuYWlsXCIgbG9hZGluZz1cImxhenlcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjYXJkLXdpZGUtaW1nIHdzLW1hdC1wcmltYXJ5LWxpdGUtYmFja2dyb3VuZCBtYXJnaW4tcmVtb3ZlIGFzc2Vzcy1pbWdcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2FsdF09XCJ3aWRnZXREYXRhPy5jb250ZW50Py5uYW1lXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggdGl0bGUtY29udGFpbmVyIGZsZXgtY29sXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCB0aXRsZS10ZXh0IG1hdC1zdWJoZWFkaW5nLTFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgd2lkZ2V0RGF0YT8uY29udGVudD8ubmFtZSB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmVtb3ZlIG1hcmdpbi10b3AtcyBmb250LW5vcm1hbCBtYXQtY2FwdGlvbiBzdWItdGl0bGUtdGV4dFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY291cnNlX2xvZ29fYm94XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltZyBbc3JjXT1cIndpZGdldERhdGE/LmNvbnRlbnQ/LmNyZWF0b3JMb2dvIHwgcGlwZVB1YmxpY1VSTCBcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzb3VyY2UtaWNvblwiIFt3c1V0aWxzRGVmYXVsdFRodW1ibmFpbF09XCJkZWZhdWx0U0xvZ29cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2FsdF09XCIod2lkZ2V0RGF0YT8uY29udGVudD8uc291cmNlTmFtZSArICdfJyArIHdpZGdldERhdGE/LmNvbnRlbnQ/LmlkZW50aWZpZXIpXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlLXRleHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyAod2lkZ2V0RGF0YT8uY29udGVudD8ub3JnYW5pc2F0aW9uICYmXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0d2lkZ2V0RGF0YT8uY29udGVudD8ub3JnYW5pc2F0aW9uWzBdKSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0d2lkZ2V0RGF0YT8uY29udGVudD8ub3JnYW5pc2F0aW9uWzBdIDogJ0thcm1heW9naSBCaGFyYXQnIH19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdDxtYXQtY2FyZC1mb290ZXIgY2xhc3M9XCJhc3Nlc3NtZW50LWNhcmQtZm9vdGVyICBwYWRkaW5nLW1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGNvbC1yb3cgbWFyZ2luLXRvcC1tXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmlnaHQtbVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBzdGFydENvdW50ZG93bih3aWRnZXREYXRhPy5jb250ZW50Py5iYXRjaCkgfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4ICBmbGV4LXJvd1wiICpuZ0lmPVwiZGF5c1BlbmRpbmdcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInN0YXJ0LXNwYW5cIj5Bc3Nlc3NtZW50IHN0YXJ0cyBpbjwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmlnaHQtc1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJiaWctdGV4dFwiPjxiPnt7IGRheXMgfX08L2I+IDxzcGFuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzbWFsbC10ZXh0XCI+ZGF5czwvc3Bhbj4gPC9zcGFuPiAmbmJzcDsgOiAmbmJzcDsgPHNwYW5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJiaWctdGV4dFwiPjxiPnt7IGhvdXJzIH19IDwvYj48c3BhblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwic21hbGwtdGV4dFwiPmhvdXJzPC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9zcGFuPiAmbmJzcDsgOiAmbmJzcDsgPHNwYW4gY2xhc3M9XCJiaWctdGV4dFwiPiA8Yj57eyBtaW51dGVzIH19PC9iPiA8c3BhblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwic21hbGwtdGV4dFwiPm1pbnV0ZXM8L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwidGltZS1zcGFuIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+e3t3aWRnZXREYXRhPy5jb250ZW50Py5iYXRjaD8uc3RhcnREYXRlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHwgZGF0ZTogJ2RkIE1NTSB5eXkgSEg6bW0nIH19PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cIiFkYXlzUGVuZGluZ1wiIGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPiBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInN0YXJ0LXNwYW5cIj5Bc3Nlc3NtZW50IGVuZHMgb24gPC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IG1hcmdpbi1yaWdodC1zXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInN0YXJ0LWJ0blwiPlN0YXJ0IEFzc2Vzc21lbnQ8L3NwYW4+IFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInRpbWUtc3BhbiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPnt7d2lkZ2V0RGF0YT8uY29udGVudD8uYmF0Y2g/LmVuZERhdGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fCBkYXRlOiAnZGQgTU1NIHl5eSBISDptbScgfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9tYXQtY2FyZC1mb290ZXI+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L21hdC1jYXJkLWNvbnRlbnQ+XG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9hPlxuXHQ8L21hdC1jYXJkPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NhcmRMb2FkaW5nXCI+XG5cdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2tlbHRvbkxvYWRlclwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc2tlbHRvbkxvYWRlcj5cblx0PG1hdC1jYXJkXG5cdFx0Y2xhc3M9XCJjYXJkLWFzc2Vzc21lbnQgY2FyZC1zY2hlZHVsZWQtYXNzZXNzbWVudCBjYXJkLXVzZXJzLWNvbnRhaW5lciAgcGFkZGluZy1yZW1vdmUgY3Vyc29yLXBvaW50ZXIgbXItNFwiPlxuXHRcdDxhPlxuXHRcdFx0PGRpdiBjbGFzcz1cImRpc3BsYXktY29udGVudHNcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8bWF0LWNhcmQtY29udGVudD5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgZmxleC1yb3cgcGFkZGluZy1zXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggaW1hZ2UtY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c2ItdWljLXNrZWxldG9uLWxvYWRlciBbd2lkdGhdPVwiJzMwMHB4J1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2hlaWdodF09XCInMTU1cHgnXCI+PC9zYi11aWMtc2tlbGV0b24tbG9hZGVyPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCB0aXRsZS1jb250YWluZXIgZmxleC1jb2wgbWFyZ2luLXRvcC1tXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c2ItdWljLXNrZWxldG9uLWxvYWRlciBbd2lkdGhdPVwiJzEwMHB4J1wiIFtoZWlnaHRdPVwiJzE2cHgnXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbYmluZGluZ0NsYXNzXT1cIidmbGV4IHJvdW5kZWQgYnItOCdcIj48L3NiLXVpYy1za2VsZXRvbi1sb2FkZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IG1hcmdpbi1yZW1vdmUgbWFyZ2luLXRvcC1sIGZvbnQtbm9ybWFsXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzYi11aWMtc2tlbGV0b24tbG9hZGVyIFt3aWR0aF09XCInMTAwcHgnXCIgW2hlaWdodF09XCInMTZweCdcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtiaW5kaW5nQ2xhc3NdPVwiJ2ZsZXggcm91bmRlZCBici04J1wiPjwvc2ItdWljLXNrZWxldG9uLWxvYWRlcj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PCEtLSA8c3BhbiBjbGFzcz1cInRleHQtY2VudGVyXCI+PHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgW3dpZHRoXT1cIic5MHB4J1wiIFtoZWlnaHRdPVwiJzE2cHgnXCJcblx0XHRcdFx0XHRcdFx0XHRcdFtiaW5kaW5nQ2xhc3NdPVwiJ2ZsZXggcm91bmRlZCBici04J1wiPjwvc2ItdWljLXNrZWxldG9uLWxvYWRlcj4gPC9zcGFuPiAtLT5cblx0XHRcdFx0XHRcdFx0PG1hdC1jYXJkLWZvb3RlciBjbGFzcz1cImFzc2Vzc21lbnQtY2FyZC1mb290ZXIgY29sLXJvdyBwYWRkaW5nLWxcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGNvbC1yb3cgbWFyZ2luLXRvcC1tXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmlnaHQtbVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c2ItdWljLXNrZWxldG9uLWxvYWRlciBbd2lkdGhdPVwiJzEwMHB4J1wiIFtoZWlnaHRdPVwiJzE2cHgnXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbYmluZGluZ0NsYXNzXT1cIidmbGV4IHJvdW5kZWQgYnItOCdcIj48L3NiLXVpYy1za2VsZXRvbi1sb2FkZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzYi11aWMtc2tlbGV0b24tbG9hZGVyIFt3aWR0aF09XCInMTAwcHgnXCIgW2hlaWdodF09XCInMTZweCdcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtiaW5kaW5nQ2xhc3NdPVwiJ2ZsZXggcm91bmRlZCBici04J1wiPjwvc2ItdWljLXNrZWxldG9uLWxvYWRlcj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L21hdC1jYXJkLWZvb3Rlcj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvbWF0LWNhcmQtY29udGVudD5cblx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2E+XG5cdDwvbWF0LWNhcmQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -0,0 +1,96 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@sunbird-cb/utils-v2";
4
+ import * as i2 from "@ngx-translate/core";
5
+ import * as i3 from "../../../_services/widget-content.service";
6
+ import * as i4 from "@angular/router";
7
+ import * as i5 from "@angular/material/card";
8
+ import * as i6 from "../../avatar-photo-lib/avatar-photo-lib.component";
9
+ import * as i7 from "../../skeleton-loader-lib/skeleton-loader-lib.component";
10
+ import * as i8 from "@angular/common";
11
+ import * as i9 from "../../../_directives/default-thumbnail/default-thumbnail.directive";
12
+ export class CardKarmaProgramsComponent {
13
+ constructor(events, translate, langtranslations, configSvc, contSvc, router) {
14
+ this.events = events;
15
+ this.translate = translate;
16
+ this.langtranslations = langtranslations;
17
+ this.configSvc = configSvc;
18
+ this.contSvc = contSvc;
19
+ this.router = router;
20
+ this.randomColorApply = false;
21
+ this.userData = new EventEmitter();
22
+ this.isCardLoading = false;
23
+ this.widgetType = '';
24
+ this.widgetSubType = '';
25
+ this.randomColors = [
26
+ '#EF941D',
27
+ '#F97440',
28
+ '#35B5B0',
29
+ '#9988FF',
30
+ '#254092',
31
+ '#926525',
32
+ '#4F72DF'
33
+ ];
34
+ this.langtranslations.languageSelectedObservable.subscribe(() => {
35
+ if (localStorage.getItem('websiteLanguage')) {
36
+ this.translate.setDefaultLang('en');
37
+ const lang = localStorage.getItem('websiteLanguage');
38
+ this.translate.use(lang);
39
+ }
40
+ });
41
+ }
42
+ ngOnInit() {
43
+ const instanceConfig = this.configSvc.instanceConfig;
44
+ if (instanceConfig) {
45
+ this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
46
+ this.sourceLogos = instanceConfig.sources;
47
+ this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
48
+ }
49
+ else {
50
+ this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
51
+ this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
52
+ }
53
+ this.setRandomColor();
54
+ }
55
+ setRandomColor() {
56
+ if (this.widgetData && this.widgetData.content) {
57
+ if (this.randomColorApply) {
58
+ const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomColors.length));
59
+ this.widgetData.content['bgColor'] = this.randomColors[randomIndex1];
60
+ }
61
+ else {
62
+ this.widgetData.content['bgColor'] = '#1a4ca1';
63
+ }
64
+ }
65
+ }
66
+ get getRandomColors() {
67
+ const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomColors.length));
68
+ return this.randomColors[randomIndex1];
69
+ }
70
+ redirectTo(data) {
71
+ if (this.widgetData && this.widgetData.context && this.widgetData.context.pageSection) {
72
+ data['typeOfTelemetry'] = 'karma-programs';
73
+ }
74
+ this.contSvc.changeTelemetryData(data);
75
+ this.router.navigate([`/app/learn/karma-programs/${data.title}/${data.playListKey}/${data.orgId}/micro-sites`]);
76
+ }
77
+ }
78
+ CardKarmaProgramsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CardKarmaProgramsComponent, deps: [{ token: i1.EventService }, { token: i2.TranslateService }, { token: i1.MultilingualTranslationsService }, { token: i1.ConfigurationsService }, { token: i3.WidgetContentService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
79
+ CardKarmaProgramsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CardKarmaProgramsComponent, selector: "sb-uic-card-karma-programs", inputs: { widgetData: "widgetData", randomColorApply: "randomColorApply", isCardLoading: "isCardLoading" }, outputs: { userData: "userData" }, ngImport: i0, template: "<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>", styles: [".card-channels-container{position:relative;width:245px;box-sizing:border-box;box-shadow:0 10px 30px #9993;overflow:hidden;min-height:217px;height:217px;max-height:217px;margin:20px 8px;background:#1a4ca1;border-radius:12px}.card-channels-container .min-top{background:inherit;margin-bottom:0;height:inherit}.card-channels-container .image-container{background-color:#fff;width:inherit;height:139px;max-height:139px;overflow:hidden;display:flex;align-items:center;justify-content:center;border-top-left-radius:12px;border-top-right-radius:12px}.card-channels-container .card-img{max-height:100%;min-height:100%;display:block;object-fit:fill}.card-channels-container .mat-subheading-1{font:600 14px/24px Montserrat}.card-channels-container .title-container{background:inherit}.card-channels-container .title-text{margin:12px 0;position:relative;overflow:hidden}.card-channels-container .description-text{position:relative;overflow:hidden;height:51px}.card-channels-container .title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;min-height:24px}\n"], components: [{ type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i6.AvatarPhotoLibComponent, selector: "sb-uic-avatar-photo", inputs: ["datalen", "photoUrl", "name", "size", "defaulfColor", "randomColor", "initials", "showBadge"] }, { type: i7.SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i5.MatCardImage, selector: "[mat-card-image], [matCardImage]" }, { type: i9.DefaultThumbnailDirective, selector: "[wsUtilsDefaultThumbnail]", inputs: ["wsUtilsDefaultThumbnail", "src"] }] });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CardKarmaProgramsComponent, decorators: [{
81
+ type: Component,
82
+ args: [{
83
+ selector: 'sb-uic-card-karma-programs',
84
+ templateUrl: './card-karma-programs.component.html',
85
+ styleUrls: ['./card-karma-programs.component.scss']
86
+ }]
87
+ }], ctorParameters: function () { return [{ type: i1.EventService }, { type: i2.TranslateService }, { type: i1.MultilingualTranslationsService }, { type: i1.ConfigurationsService }, { type: i3.WidgetContentService }, { type: i4.Router }]; }, propDecorators: { widgetData: [{
88
+ type: Input
89
+ }], randomColorApply: [{
90
+ type: Input
91
+ }], userData: [{
92
+ type: Output
93
+ }], isCardLoading: [{
94
+ type: Input
95
+ }] } });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1rYXJtYS1wcm9ncmFtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQta2FybWEtcHJvZ3JhbXMvY2FyZC1rYXJtYS1wcm9ncmFtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQta2FybWEtcHJvZ3JhbXMvY2FyZC1rYXJtYS1wcm9ncmFtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVkvRSxNQUFNLE9BQU8sMEJBQTBCO0lBcUJyQyxZQUNVLE1BQW9CLEVBQ3BCLFNBQTJCLEVBQzNCLGdCQUFpRCxFQUNqRCxTQUFnQyxFQUNoQyxPQUE2QixFQUM3QixNQUFjO1FBTGQsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlDO1FBQ2pELGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUF4QmYscUJBQWdCLEdBQVksS0FBSyxDQUFBO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ25DLGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBSXZDLGVBQVUsR0FBUSxFQUFFLENBQUE7UUFDcEIsa0JBQWEsR0FBTyxFQUFFLENBQUE7UUFDdEIsaUJBQVksR0FBUTtZQUNsQixTQUFTO1lBQ1QsU0FBUztZ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O21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUNwRDs0UUFHVSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSwgRXZlbnRTZXJ2aWNlLCBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLCBOc0NvbnRlbnQgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12Mic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1jYXJkLWthcm1hLXByb2dyYW1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQta2FybWEtcHJvZ3JhbXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWthcm1hLXByb2dyYW1zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZEthcm1hUHJvZ3JhbXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBOc0NvbnRlbnQuSUNvbnRlbnQ7XG4gIEBJbnB1dCgpIHJhbmRvbUNvbG9yQXBwbHk6IGJvb2xlYW4gPSBmYWxzZVxuICBAT3V0cHV0KCkgdXNlckRhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBASW5wdXQoKSBpc0NhcmRMb2FkaW5nOiBib29sZWFuID0gZmFsc2VcbiAgZGVmYXVsdFRodW1ibmFpbDogYW55XG4gIHNvdXJjZUxvZ29zOiBhbnlcbiAgZGVmYXVsdFNMb2dvOiBhbnlcbiAgd2lkZ2V0VHlwZTogYW55ID0gJydcbiAgd2lkZ2V0U3ViVHlwZTogYW55ID0nJ1xuICByYW5kb21Db2xvcnM6IGFueSA9IFtcbiAgICAnI0VGOTQxRCcsXG4gICAgJyNGOTc0NDAnLFxuICAgICcjMzVCNUIwJyxcbiAgICAnIzk5ODhGRicsXG4gICAgJyMyNTQwOTInLFxuICAgICcjOTI2NTI1JyxcbiAgICAnIzRGNzJERidcbiAgXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXZlbnRzOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250U3ZjOiBXaWRnZXRDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgICB0aGlzLmxhbmd0cmFuc2xhdGlvbnMubGFuZ3VhZ2VTZWxlY3RlZE9ic2VydmFibGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSkge1xuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdlbicpXG4gICAgICAgICAgY29uc3QgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSFcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgaW5zdGFuY2VDb25maWcgPSB0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZ1xuICAgIGlmIChpbnN0YW5jZUNvbmZpZykge1xuICAgICAgdGhpcy5kZWZhdWx0VGh1bWJuYWlsID0gaW5zdGFuY2VDb25maWcubG9nb3MuZGVmYXVsdENvbnRlbnQgfHwgJydcbiAgICAgIHRoaXMuc291cmNlTG9nb3MgPSBpbnN0YW5jZUNvbmZpZy5zb3VyY2VzXG4gICAgICB0aGlzLmRlZmF1bHRTTG9nbyA9IGluc3RhbmNlQ29uZmlnLmxvZ29zLmRlZmF1bHRTb3VyY2VMb2dvIHx8ICcnXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdFRodW1ibmFpbCA9ICcvYXNzZXRzL2luc3RhbmNlcy9lYWdsZS9hcHBfbG9nb3MvZGVmYXVsdC5wbmcnXG4gICAgICB0aGlzLmRlZmF1bHRTTG9nbyA9ICAnL2Fzc2V0cy9pbnN0YW5jZXMvZWFnbGUvYXBwX2xvZ29zL0thcm1heW9naUJoYXJhdF9Mb2dvLnN2ZydcbiAgICB9XG4gICAgdGhpcy5zZXRSYW5kb21Db2xvcigpXG4gIH1cblxuICBzZXRSYW5kb21Db2xvcigpe1xuICAgIGlmKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuY29udGVudCkge1xuICAgICAgaWYodGhpcy5yYW5kb21Db2xvckFwcGx5KXtcbiAgICAgICAgY29uc3QgcmFuZG9tSW5kZXgxID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcih0aGlzLnJhbmRvbUNvbG9ycy5sZW5ndGgpKVxuICAgICAgICB0aGlzLndpZGdldERhdGEuY29udGVudFsnYmdDb2xvciddID0gdGhpcy5yYW5kb21Db2xvcnNbcmFuZG9tSW5kZXgxXVxuICAgICAgfWVsc2Uge1xuICAgICAgICB0aGlzLndpZGdldERhdGEuY29udGVudFsnYmdDb2xvciddID0gJyMxYTRjYTEnXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiBcblxuICBnZXQgZ2V0UmFuZG9tQ29sb3JzKCl7XG4gICAgY29uc3QgcmFuZG9tSW5kZXgxID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcih0aGlzLnJhbmRvbUNvbG9ycy5sZW5ndGgpKVxuICAgIHJldHVybiB0aGlzLnJhbmRvbUNvbG9yc1tyYW5kb21JbmRleDFdXG4gIH1cblxuICByZWRpcmVjdFRvKGRhdGE6IGFueSkge1xuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb24pIHtcbiAgICAgIGRhdGFbJ3R5cGVPZlRlbGVtZXRyeSddID0gJ2thcm1hLXByb2dyYW1zJ1xuICAgIH1cbiAgICB0aGlzLmNvbnRTdmMuY2hhbmdlVGVsZW1ldHJ5RGF0YShkYXRhKVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgW2AvYXBwL2xlYXJuL2thcm1hLXByb2dyYW1zLyR7ZGF0YS50aXRsZX0vJHtkYXRhLnBsYXlMaXN0S2V5fS8ke2RhdGEub3JnSWR9L21pY3JvLXNpdGVzYF0sXG4gICAgKVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ2FyZExvYWRpbmdcIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJjaGFubmVscy1jYXJkIGNhcmQtY2hhbm5lbHMtY29udGFpbmVyIG1yLTUgcGFkZGluZy1yZW1vdmUgY3Vyc29yLXBvaW50ZXJcIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnOiB3aWRnZXREYXRhPy5jb250ZW50Py5iZ0NvbG9yfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheS1jb250ZW50c1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldERhdGE/LmNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwicmVkaXJlY3RUbyh3aWRnZXREYXRhPy5jb250ZW50KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cIm1pbi10b3BcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldERhdGE/LmNvbnRlbnQ/LmltZ1NvdXJjZSAmJiB3aWRnZXREYXRhPy5jb250ZW50Py5pbWdTb3VyY2U/Lmxlbmd0aCA7IGVsc2UgZGVmYXVsdEltZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgbWF0LWNhcmQtaW1hZ2UgW3NyY109XCJ3aWRnZXREYXRhPy5jb250ZW50Py5pbWdTb3VyY2VbMF1cIiBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWltZyB3cy1tYXQtcHJpbWFyeS1saXRlLWJhY2tncm91bmQgbWFyZ2luLXJlbW92ZVwiICBbd3NVdGlsc0RlZmF1bHRUaHVtYm5haWxdPVwiZGVmYXVsdFRodW1ibmFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJ3aWRnZXREYXRhPy5jb250ZW50Py50aXRsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEltZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ItdWljLWF2YXRhci1waG90byBbcmFuZG9tQ29sb3JdPVwidHJ1ZVwiIFtuYW1lXT1cIndpZGdldERhdGE/LmNvbnRlbnQ/LnRpdGxlXCIgIHNpemU9XCJtLXNpZGUtcmF0aW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYi11aWMtYXZhdGFyLXBob3RvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4ICAgcHgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2lkXT1cIidtLWMtJysgd2lkZ2V0RGF0YT8uY29udGVudD8uaWRlbnRpZmllclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC0xIHRleHQtc3RhcnQgIG1hdC1zdWJoZWFkaW5nLTIgdGl0bGUtdGV4dCB3cy1tYXQtd2hpdGUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB3aWRnZXREYXRhPy5jb250ZW50Py50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCAgcHgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2lkXT1cIidtLWMtJysgd2lkZ2V0RGF0YT8uY29udGVudD8uaWRlbnRpZmllclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC0xIHRleHQtc3RhcnQgbWFyZ2luLXJlbW92ZSAgbWFyZ2luLXRvcC14eHMgbWF0LXN1YmhlYWRpbmctMiB0aXRsZS10ZXh0IHdzLW1hdC13aGl0ZS10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdpZGdldERhdGE/LmNvbnRlbnQ/LmNoaWxkcmVuPy5sZW5ndGh9fSBQcm9ncmFtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZD5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ2FyZExvYWRpbmdcIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJjaGFubmVscy1jYXJkIGNhcmQtY2hhbm5lbHMtY29udGFpbmVyIG1yLTUgcGFkZGluZy1yZW1vdmUgY3Vyc29yLXBvaW50ZXJcIiA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXNwbGF5LWNvbnRlbnRzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyID5cbiAgICAgICAgICAgICAgICA8YSA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cIm1pbi10b3BcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgW3dpZHRoXT1cIicxMDAlJ1wiIFtoZWlnaHRdPVwiJzEwMCUnXCIgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsXCIgW2JpbmRpbmdDbGFzc109XCInZmxleCByb3VuZGVkJ1wiPjwvc2ItdWljLXNrZWxldG9uLWxvYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggICBweC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSB0ZXh0LXN0YXJ0ICBtYXQtc3ViaGVhZGluZy0yIHRpdGxlLXRleHQgd3MtbWF0LXdoaXRlLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgW3dpZHRoXT1cIicxMDAlJ1wiIFtoZWlnaHRdPVwiJzEwMCUnXCIgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsXCIgW2JpbmRpbmdDbGFzc109XCInZmxleCByb3VuZGVkJ1wiPjwvc2ItdWljLXNrZWxldG9uLWxvYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggIHB4LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIHRleHQtc3RhcnQgbWFyZ2luLXJlbW92ZSAgbWFyZ2luLXRvcC14eHMgbWF0LXN1YmhlYWRpbmctMiB0aXRsZS10ZXh0IHdzLW1hdC13aGl0ZS10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgW3dpZHRoXT1cIicxMjBweCdcIiBbaGVpZ2h0XT1cIicxMDAlJ1wiIGNsYXNzPVwidy1mdWxsIGgtZnVsbFwiIFtiaW5kaW5nQ2xhc3NdPVwiJ2ZsZXggcm91bmRlZCdcIj48L3NiLXVpYy1za2VsZXRvbi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkPlxuPC9uZy1jb250YWluZXI+Il19