@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,103 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../_services/insite-data.service";
4
+ import * as i2 from "@angular/material/icon";
5
+ import * as i3 from "@angular/material/tooltip";
6
+ import * as i4 from "@angular/common";
7
+ import * as i5 from "@angular/forms";
8
+ export class MdoLeaderboardComponent {
9
+ constructor(insiteDataService) {
10
+ this.insiteDataService = insiteDataService;
11
+ this.currentTab = 'XL';
12
+ this.result = [];
13
+ this.searchTerm = '';
14
+ this.expand = true;
15
+ this.tabClicked = new EventEmitter();
16
+ }
17
+ ngOnInit() {
18
+ this.getData();
19
+ }
20
+ getData() {
21
+ this.insiteDataService.fetchLeaderboard().subscribe((res) => {
22
+ if (res && res.result) {
23
+ this.result = res.result;
24
+ this.filteredData = this.result.mdoLeaderBoard
25
+ .filter(user => user.size === this.currentTab)
26
+ .map(user => (Object.assign(Object.assign({}, user), { children: [], selected: false }))).slice(0, 5);
27
+ }
28
+ }, error => {
29
+ console.log(error);
30
+ });
31
+ }
32
+ getTabData(name) {
33
+ this.currentTab = name;
34
+ this.searchTerm = '';
35
+ this.filteredData = this.result.mdoLeaderBoard
36
+ .filter(user => user.size === this.currentTab)
37
+ .map(user => (Object.assign(Object.assign({}, user), { children: [], selected: false }))).slice(0, 5);
38
+ let nameStr = '';
39
+ switch (name) {
40
+ case 'XL':
41
+ nameStr = 'greater-than-50K';
42
+ break;
43
+ case 'L':
44
+ nameStr = '10K-50K';
45
+ break;
46
+ case 'M':
47
+ nameStr = '1K-10K';
48
+ break;
49
+ case 'S':
50
+ nameStr = '500-1K';
51
+ break;
52
+ default:
53
+ nameStr = 'less-than-500';
54
+ break;
55
+ }
56
+ this.tabClicked.emit(nameStr);
57
+ }
58
+ getRank(rank) {
59
+ return [1, 2, 3].includes(rank) ? `rank${rank}` : 'rank0';
60
+ }
61
+ getMedal(rank) {
62
+ if (rank === 1) {
63
+ return 'assets/images/national-learning/Medal1.svg';
64
+ }
65
+ else if (rank === 2) {
66
+ return 'assets/images/national-learning/Medal2.svg';
67
+ }
68
+ else {
69
+ return 'assets/images/national-learning/Medal3.svg';
70
+ }
71
+ }
72
+ handleSearchQuery(e) {
73
+ if (e.target.value && e.target.value.length > 0) {
74
+ this.searchTerm = e.target.value;
75
+ this.filteredData = this.result.mdoLeaderBoard
76
+ .filter(user => user.size === this.currentTab && user.org_name.toLowerCase().includes(e.target.value))
77
+ .map(user => (Object.assign(Object.assign({}, user), { children: [] }))).slice(0, 5);
78
+ }
79
+ else {
80
+ this.filteredData = this.result.mdoLeaderBoard
81
+ .filter(user => user.size === this.currentTab)
82
+ .map(user => (Object.assign(Object.assign({}, user), { children: [] }))).slice(0, 5);
83
+ }
84
+ }
85
+ toggleWeekHightlits() {
86
+ this.expand = !this.expand;
87
+ }
88
+ }
89
+ MdoLeaderboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoLeaderboardComponent, deps: [{ token: i1.InsiteDataService }], target: i0.ɵɵFactoryTarget.Component });
90
+ MdoLeaderboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: { object: "object" }, outputs: { tabClicked: "tabClicked" }, ngImport: i0, template: "<div class=\"mdo-leaderboard-container\">\n <div class=\"flex l-title gap-2 items-center justify-between px-4 md:px-0 py-4 md:py-0\">\n <div class=\"flex gap-2\">\n {{object?.title}} <div><img [src]=\"object?.infoIcon\" alt=\"\" i18n-matTooltip [matTooltip]=\"object?.infoText\"></div>\n </div>\n <div class=\"block md:hidden\">\n <mat-icon (click)=\"toggleWeekHightlits()\">expand_more</mat-icon>\n </div>\n </div>\n <div class=\"flex item-center justify-center\" *ngIf=\"expand\">\n <div class=\"flex fl-div\">\n <div class=\"pointer\">\n <span class=\"dot-dot\"></span>\n </div>\n </div>\n </div>\n <div class=\"l-content\" *ngIf=\"expand\">\n <div class=\"horizontal-scroll-container\">\n <div class=\"scroll-content\">\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XL' }\" (click)=\"getTabData('XL')\">Greater than 50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'L' }\" (click)=\"getTabData('L')\">10K-50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'M' }\" (click)=\"getTabData('M')\">1K-10K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'S' }\" (click)=\"getTabData('S')\">500-1K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XS' }\" (click)=\"getTabData('XS')\">Less than 500</span>\n </div>\n </div>\n <div class=\"relative search-wrapper margin-top-m mb-5\">\n <mat-icon matPrefix class=\"flex absolute items-center justify-center mr-2 icon-search\">search\n </mat-icon>\n <input type=\"search\" name=\"searchKey\" class=\"search-field\" i18-aria-label\n aria-label=\"Search\" i18n-placeholder=\"search\" [(ngModel)]=\"searchTerm\"\n placeholder=\"Search your MDO\" (keyup)=\"handleSearchQuery($event)\" />\n </div>\n <div class=\"l-tab-data\">\n <div *ngFor=\"let user of filteredData; let i = index\">\n <div class=\"flex flex-row item mb-{{filteredData.length - 1 === i ? 0 : 5}} gap-3 {{user.row_num === 1 ? 'relative' : ''}}\" >\n <div><img class=\"crown absolute\" src=\"assets/images/national-learning/rank-crown.svg\" *ngIf=\"user.row_num === 1\"/></div>\n <div class=\"{{getRank(user.row_num)}}\">{{user.row_num}}</div>\n <div class=\"w-full\">\n <div class=\"flex flex-between gap-2\">\n <div>\n <div class=\"rank-name\">{{user.org_name}}</div>\n <div class=\"rank-points flex mt-1 gap-1\">\n <img class=\"nlw-kb\" src=\"assets/icons/home/karma-badge.svg\"/>\n <div class=\"points\">{{user.total_points || 0 }} points</div>\n </div>\n </div>\n <div class=\"rank-crown\" *ngIf=\"[1,2,3].includes(user.row_num)\">\n <img class=\"nlw-animation\" [src]=\"getMedal(user.row_num)\"/>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"no-data px-1\" *ngIf=\"filteredData?.length === 0\">\n No data found!\n </div>\n </div>\n </div>\n</div>\n", styles: [".l-title{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:left}.l-content{background-color:#e9eef6;border-radius:16px;padding:16px}.horizontal-scroll-container{overflow-x:auto;white-space:nowrap;-ms-overflow-style:none;scrollbar-width:none;height:32px}.horizontal-scroll-container::-webkit-scrollbar{display:none}.scroll-content{display:inline-block}.tab-title{font-family:Lato;font-size:14px;line-height:16.8px;text-align:left;cursor:pointer;padding:0 15px 8px;border-bottom:2px solid #c3c3c3}.active{font-weight:700;border-bottom:2px solid #1b4ca1}.search-field{height:34px;padding:0 16px 0 40px;border-radius:52px;background:#fff;border:2px solid rgba(0,0,0,.0784313725);width:100%}.icon-search{top:10px;left:15px;height:15px;width:17px}.item{border-radius:12px;background-color:#fff;padding:16px;align-items:flex-start}.rank1{background:#ffca28;font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px}.rank2{background:#1B4CA1;font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px;color:#fff}.rank3{background:#FF8228;font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px}.rank0{font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px;border:1px solid #c3c3c3}.rank-name{font-family:Montserrat;line-height:1.5em;font-size:16px;font-weight:600;text-align:left;align-items:center;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2}.rank-points{align-items:center}.nlw-kb{height:24px;width:24px}.points{font-family:Lato;font-size:14px;font-weight:600;line-height:16.8px;text-align:right}.crown{left:10px;top:0px;width:36px;height:36px}.l-tab-data{height:520px;overflow:auto;padding-bottom:16px}.l-tab-data::-webkit-scrollbar{display:none}.pointer{margin-bottom:-59px;border-radius:41px;background:#c3c3c3;border:35px solid #e9eef6}.dot-dot{width:7px;display:flex;height:7px;background:#c3c3c3;margin-top:-25px;border-radius:10px}@media screen and (min-width: 320px) and (max-width: 769px){.mdo-leaderboard-container{background-color:#d1dbec}}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoLeaderboardComponent, decorators: [{
92
+ type: Component,
93
+ args: [{
94
+ selector: 'sb-uic-mdo-leaderboard',
95
+ templateUrl: './mdo-leaderboard.component.html',
96
+ styleUrls: ['./mdo-leaderboard.component.scss']
97
+ }]
98
+ }], ctorParameters: function () { return [{ type: i1.InsiteDataService }]; }, propDecorators: { object: [{
99
+ type: Input
100
+ }], tabClicked: [{
101
+ type: Output
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRvLWxlYWRlcmJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWRvLWxlYWRlcmJvYXJkL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL21kby1sZWFkZXJib2FyZC9tZG8tbGVhZGVyYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVEvRSxNQUFNLE9BQU8sdUJBQXVCO0lBVWxDLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUnhELGVBQVUsR0FBUSxJQUFJLENBQUE7UUFDdEIsV0FBTSxHQUFRLEVBQUUsQ0FBQTtRQUVoQixlQUFVLEdBQVcsRUFBRSxDQUFBO1FBQ3ZCLFdBQU0sR0FBWSxJQUFJLENBQUE7UUFHWixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtJQUNjLENBQUM7SUFFN0QsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQzdELElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtnQkFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxD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QUFDLEVBQUUsQ0FBQyxpQ0FBTSxJQUFJLEtBQUUsUUFBUSxFQUFFLEVBQUUsSUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtTQUMzRDthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7aUJBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDN0MsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQU0sSUFBSSxLQUFFLFFBQVEsRUFBRSxFQUFFLElBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDM0Q7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQzVCLENBQUM7O3FIQXRGVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixtSUNScEMsOGpIQTREQTs0RkRwRGEsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNoRDt3R0FTVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluc2l0ZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL2luc2l0ZS1kYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtbWRvLWxlYWRlcmJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1kb0xlYWRlcmJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjdXJyZW50VGFiOiBhbnkgPSAnWEwnXG4gIHJlc3VsdDogYW55ID0gW11cbiAgZmlsdGVyZWREYXRhOiBhbnlcbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJydcbiAgZXhwYW5kOiBib29sZWFuID0gdHJ1ZVxuXG4gIEBJbnB1dCgpIG9iamVjdDogYW55XG4gIEBPdXRwdXQoKSB0YWJDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnNpdGVEYXRhU2VydmljZTogSW5zaXRlRGF0YVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0RGF0YSgpXG4gIH1cblxuICBnZXREYXRhKCkge1xuICAgIHRoaXMuaW5zaXRlRGF0YVNlcnZpY2UuZmV0Y2hMZWFkZXJib2FyZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcyAmJiByZXMucmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdCA9IHJlcy5yZXN1bHRcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5yZXN1bHQubWRvTGVhZGVyQm9hcmRcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci5zaXplID09PSB0aGlzLmN1cnJlbnRUYWIpIFxuICAgICAgICAgICAgICAgIC5tYXAodXNlciA9PiAoeyAuLi51c2VyLCBjaGlsZHJlbjogW10sIHNlbGVjdGVkOiBmYWxzZSB9KSkuc2xpY2UoMCwgNSlcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIH0pXG4gIH1cblxuICBnZXRUYWJEYXRhKG5hbWU6IGFueSkge1xuICAgIHRoaXMuY3VycmVudFRhYiA9IG5hbWVcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJ1xuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5yZXN1bHQubWRvTGVhZGVyQm9hcmRcbiAgICAgICAgLmZpbHRlcih1c2VyID0+IHVzZXIuc2l6ZSA9PT0gdGhpcy5jdXJyZW50VGFiKSBcbiAgICAgICAgICAgIC5tYXAodXNlciA9PiAoeyAuLi51c2VyLCBjaGlsZHJlbjogW10sIHNlbGVjdGVkOiBmYWxzZSB9KSkuc2xpY2UoMCwgNSlcbiAgICBsZXQgbmFtZVN0cjogYW55ID0gJydcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ1hMJzpcbiAgICAgICAgbmFtZVN0ciA9ICdncmVhdGVyLXRoYW4tNTBLJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnTCc6XG4gICAgICAgIG5hbWVTdHIgPSAgJzEwSy01MEsnXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdNJzpcbiAgICAgICAgbmFtZVN0ciA9ICAnMUstMTBLJ1xuICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdTJzpcbiAgICAgICAgICBuYW1lU3RyID0gJzUwMC0xSydcbiAgICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbmFtZVN0ciA9ICdsZXNzLXRoYW4tNTAwJ1xuICAgICAgICBicmVha1xuICAgIH1cbiAgICB0aGlzLnRhYkNsaWNrZWQuZW1pdChuYW1lU3RyKVxuICB9XG5cbiAgZ2V0UmFuayhyYW5rOiBudW1iZXIpIHtcbiAgICByZXR1cm4gWzEsMiwzXS5pbmNsdWRlcyhyYW5rKSA/IGByYW5rJHtyYW5rfWAgOiAncmFuazAnXG4gIH1cblxuICBnZXRNZWRhbChyYW5rOiBudW1iZXIpIHtcbiAgICBpZiAocmFuayA9PT0gMSkge1xuICAgICAgICByZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvbmF0aW9uYWwtbGVhcm5pbmcvTWVkYWwxLnN2ZydcbiAgICB9IGVsc2UgaWYocmFuayA9PT0gMikge1xuICAgICAgICByZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvbmF0aW9uYWwtbGVhcm5pbmcvTWVkYWwyLnN2ZydcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvbmF0aW9uYWwtbGVhcm5pbmcvTWVkYWwzLnN2ZydcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWFyY2hRdWVyeShlOiBhbnkpIHtcbiAgICBpZiAoZS50YXJnZXQudmFsdWUgJiYgZS50YXJnZXQudmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSBlLnRhcmdldC52YWx1ZVxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMucmVzdWx0Lm1kb0xlYWRlckJvYXJkXG4gICAgICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci5zaXplID09PSB0aGlzLmN1cnJlbnRUYWIgJiYgdXNlci5vcmdfbmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGUudGFyZ2V0LnZhbHVlKSlcbiAgICAgICAgICAgIC5tYXAodXNlciA9PiAoeyAuLi51c2VyLCBjaGlsZHJlbjogW119KSkuc2xpY2UoMCwgNSlcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMucmVzdWx0Lm1kb0xlYWRlckJvYXJkXG4gICAgICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci5zaXplID09PSB0aGlzLmN1cnJlbnRUYWIpXG4gICAgICAgICAgICAubWFwKHVzZXIgPT4gKHsgLi4udXNlciwgY2hpbGRyZW46IFtdfSkpLnNsaWNlKDAsIDUpXG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlV2Vla0hpZ2h0bGl0cygpIHtcbiAgICB0aGlzLmV4cGFuZCA9ICF0aGlzLmV4cGFuZFxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZG8tbGVhZGVyYm9hcmQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggbC10aXRsZSBnYXAtMiBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB4LTQgbWQ6cHgtMCBweS00IG1kOnB5LTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgIHt7b2JqZWN0Py50aXRsZX19IDxkaXY+PGltZyBbc3JjXT1cIm9iamVjdD8uaW5mb0ljb25cIiBhbHQ9XCJcIiBpMThuLW1hdFRvb2x0aXAgW21hdFRvb2x0aXBdPVwib2JqZWN0Py5pbmZvVGV4dFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIG1kOmhpZGRlblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJ0b2dnbGVXZWVrSGlnaHRsaXRzKClcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW0tY2VudGVyIGp1c3RpZnktY2VudGVyXCIgKm5nSWY9XCJleHBhbmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmwtZGl2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9pbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90LWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibC1jb250ZW50XCIgKm5nSWY9XCJleHBhbmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtc2Nyb2xsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItdGl0bGVcIiAgW25nQ2xhc3NdPVwieydhY3RpdmUnIDogY3VycmVudFRhYiA9PT0gJ1hMJyB9XCIgKGNsaWNrKT1cImdldFRhYkRhdGEoJ1hMJylcIj5HcmVhdGVyIHRoYW4gNTBLPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLXRpdGxlXCIgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJyA6IGN1cnJlbnRUYWIgPT09ICdMJyB9XCIgKGNsaWNrKT1cImdldFRhYkRhdGEoJ0wnKVwiPjEwSy01MEs8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItdGl0bGVcIiAgW25nQ2xhc3NdPVwieydhY3RpdmUnIDogY3VycmVudFRhYiA9PT0gJ00nIH1cIiAoY2xpY2spPVwiZ2V0VGFiRGF0YSgnTScpXCI+MUstMTBLPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLXRpdGxlXCIgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJyA6IGN1cnJlbnRUYWIgPT09ICdTJyB9XCIgKGNsaWNrKT1cImdldFRhYkRhdGEoJ1MnKVwiPjUwMC0xSzwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYi10aXRsZVwiICBbbmdDbGFzc109XCJ7J2FjdGl2ZScgOiBjdXJyZW50VGFiID09PSAnWFMnIH1cIiAoY2xpY2spPVwiZ2V0VGFiRGF0YSgnWFMnKVwiPkxlc3MgdGhhbiA1MDA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBzZWFyY2gtd3JhcHBlciBtYXJnaW4tdG9wLW0gbWItNVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdFByZWZpeCBjbGFzcz1cImZsZXggYWJzb2x1dGUgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1yLTIgaWNvbi1zZWFyY2hcIj5zZWFyY2hcbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInNlYXJjaFwiIG5hbWU9XCJzZWFyY2hLZXlcIiBjbGFzcz1cInNlYXJjaC1maWVsZFwiIGkxOC1hcmlhLWxhYmVsXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaFwiIGkxOG4tcGxhY2Vob2xkZXI9XCJzZWFyY2hcIiAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCB5b3VyIE1ET1wiIChrZXl1cCk9XCJoYW5kbGVTZWFyY2hRdWVyeSgkZXZlbnQpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsLXRhYi1kYXRhXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1c2VyIG9mIGZpbHRlcmVkRGF0YTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW0gbWIte3tmaWx0ZXJlZERhdGEubGVuZ3RoIC0gMSA9PT0gaSA/IDAgOiA1fX0gZ2FwLTMge3t1c2VyLnJvd19udW0gPT09IDEgPyAncmVsYXRpdmUnIDogJyd9fVwiID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj48aW1nIGNsYXNzPVwiY3Jvd24gYWJzb2x1dGVcIiBzcmM9XCJhc3NldHMvaW1hZ2VzL25hdGlvbmFsLWxlYXJuaW5nL3JhbmstY3Jvd24uc3ZnXCIgKm5nSWY9XCJ1c2VyLnJvd19udW0gPT09IDFcIi8+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ7e2dldFJhbmsodXNlci5yb3dfbnVtKX19XCI+e3t1c2VyLnJvd19udW19fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWJldHdlZW4gZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFuay1uYW1lXCI+e3t1c2VyLm9yZ19uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmstcG9pbnRzIGZsZXggbXQtMSBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm5sdy1rYlwiIHNyYz1cImFzc2V0cy9pY29ucy9ob21lL2thcm1hLWJhZGdlLnN2Z1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2ludHNcIj57e3VzZXIudG90YWxfcG9pbnRzIHx8IDAgfX0gcG9pbnRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYW5rLWNyb3duXCIgKm5nSWY9XCJbMSwyLDNdLmluY2x1ZGVzKHVzZXIucm93X251bSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm5sdy1hbmltYXRpb25cIiBbc3JjXT1cImdldE1lZGFsKHVzZXIucm93X251bSlcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1kYXRhIHB4LTFcIiAqbmdJZj1cImZpbHRlcmVkRGF0YT8ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgTm8gZGF0YSBmb3VuZCFcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,42 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MdoLeaderboardComponent } from './mdo-leaderboard.component';
4
+ import { SkeletonLoaderLibModule } from '../skeleton-loader-lib/skeleton-loader-lib.module';
5
+ import { InsiteDataService } from '../../_services/insite-data.service';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { MatIconModule } from '@angular/material/icon';
8
+ import { MatTooltipModule } from '@angular/material/tooltip';
9
+ import * as i0 from "@angular/core";
10
+ export class MdoLeaderboardModule {
11
+ }
12
+ MdoLeaderboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoLeaderboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ MdoLeaderboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoLeaderboardModule, declarations: [MdoLeaderboardComponent], imports: [CommonModule,
14
+ MatIconModule,
15
+ SkeletonLoaderLibModule,
16
+ FormsModule,
17
+ MatTooltipModule], exports: [MdoLeaderboardComponent] });
18
+ MdoLeaderboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoLeaderboardModule, providers: [InsiteDataService], imports: [[
19
+ CommonModule,
20
+ MatIconModule,
21
+ SkeletonLoaderLibModule,
22
+ FormsModule,
23
+ MatTooltipModule
24
+ ]] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoLeaderboardModule, decorators: [{
26
+ type: NgModule,
27
+ args: [{
28
+ declarations: [MdoLeaderboardComponent],
29
+ imports: [
30
+ CommonModule,
31
+ MatIconModule,
32
+ SkeletonLoaderLibModule,
33
+ FormsModule,
34
+ MatTooltipModule
35
+ ],
36
+ exports: [
37
+ MdoLeaderboardComponent
38
+ ],
39
+ providers: [InsiteDataService]
40
+ }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRvLWxlYWRlcmJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWRvLWxlYWRlcmJvYXJkL21kby1sZWFkZXJib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFrQjdELE1BQU0sT0FBTyxvQkFBb0I7O2tIQUFwQixvQkFBb0I7bUhBQXBCLG9CQUFvQixpQkFiaEIsdUJBQXVCLGFBRXBDLFlBQVk7UUFDWixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLFdBQVc7UUFDWCxnQkFBZ0IsYUFHaEIsdUJBQXVCO21IQUlkLG9CQUFvQixhQUZwQixDQUFDLGlCQUFpQixDQUFDLFlBVnJCO1lBQ1AsWUFBWTtZQUNaLGFBQWE7WUFDYix1QkFBdUI7WUFDdkIsV0FBVztZQUNYLGdCQUFnQjtTQUNqQjs0RkFNVSxvQkFBb0I7a0JBZGhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixXQUFXO3dCQUNYLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1QjtxQkFDeEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNZG9MZWFkZXJib2FyZENvbXBvbmVudCB9IGZyb20gJy4vbWRvLWxlYWRlcmJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa2VsZXRvbkxvYWRlckxpYk1vZHVsZSB9IGZyb20gJy4uL3NrZWxldG9uLWxvYWRlci1saWIvc2tlbGV0b24tbG9hZGVyLWxpYi5tb2R1bGUnO1xuaW1wb3J0IHsgSW5zaXRlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvaW5zaXRlLWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW01kb0xlYWRlcmJvYXJkQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFNrZWxldG9uTG9hZGVyTGliTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1kb0xlYWRlcmJvYXJkQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW0luc2l0ZURhdGFTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZG9MZWFkZXJib2FyZE1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class MdoChannelV1Component {
4
+ constructor() { }
5
+ ngOnInit() {
6
+ }
7
+ }
8
+ MdoChannelV1Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoChannelV1Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ MdoChannelV1Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MdoChannelV1Component, selector: "sb-uic-mdo-channel-v1", ngImport: i0, template: "<p>mdo-channel-v1 works!</p>\n", styles: [""] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoChannelV1Component, decorators: [{
11
+ type: Component,
12
+ args: [{
13
+ selector: 'sb-uic-mdo-channel-v1',
14
+ templateUrl: './mdo-channel-v1.component.html',
15
+ styleUrls: ['./mdo-channel-v1.component.scss']
16
+ }]
17
+ }], ctorParameters: function () { return []; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRvLWNoYW5uZWwtdjEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NvbnN1bXB0aW9uL3NyYy9saWIvX2NvbW1vbi9taWNyb3NpdGVzL21kby1jaGFubmVscy9tZG8tY2hhbm5lbC12MS9tZG8tY2hhbm5lbC12MS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL21pY3Jvc2l0ZXMvbWRvLWNoYW5uZWxzL21kby1jaGFubmVsLXYxL21kby1jaGFubmVsLXYxLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7O21IQUxVLHFCQUFxQjt1R0FBckIscUJBQXFCLDZEQ1BsQyxnQ0FDQTs0RkRNYSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLW1kby1jaGFubmVsLXYxJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21kby1jaGFubmVsLXYxLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWRvLWNoYW5uZWwtdjEuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZG9DaGFubmVsVjFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPHA+bWRvLWNoYW5uZWwtdjEgd29ya3MhPC9wPlxuIl19
@@ -0,0 +1,158 @@
1
+ import { Component, HostListener, Input } from '@angular/core';
2
+ import { WsEvents } from '@sunbird-cb/utils-v2';
3
+ /* tslint:disable */
4
+ import * as _ from 'lodash';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ import * as i2 from "@sunbird-cb/utils-v2";
8
+ import * as i3 from "@ngx-translate/core";
9
+ import * as i4 from "../../../sliders/sliders.component";
10
+ import * as i5 from "../../../data-points/data-points.component";
11
+ import * as i6 from "../../../cbp-plan/cbp-plan.component";
12
+ import * as i7 from "../../../announcements/announcements.component";
13
+ import * as i8 from "@angular/material/icon";
14
+ import * as i9 from "@angular/material/tabs";
15
+ import * as i10 from "../../../competency-passbook-mdo/competency-passbook-mdo.component";
16
+ import * as i11 from "../../../content-strip-with-tabs-lib/content-strip-with-tabs-lib.component";
17
+ import * as i12 from "../../../top-learners/top-learners.component";
18
+ import * as i13 from "@angular/common";
19
+ export class MdoChannelV2Component {
20
+ constructor(route, router, eventSvc, translate, langtranslations) {
21
+ this.route = route;
22
+ this.router = router;
23
+ this.eventSvc = eventSvc;
24
+ this.translate = translate;
25
+ this.langtranslations = langtranslations;
26
+ this.sectionList = [];
27
+ this.channnelName = '';
28
+ this.orgId = '';
29
+ this.selectedIndex = 0;
30
+ this.hideCompetencyBlock = false;
31
+ this.contentTabEmptyResponseCount = 0;
32
+ this.titles = [
33
+ { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false },
34
+ {
35
+ title: `MDO Channels`,
36
+ url: `/app/learn/mdo-channels/all-channels`,
37
+ icon: '', disableTranslate: true,
38
+ },
39
+ ];
40
+ this.showModal = false;
41
+ this.descriptionMaxLength = 500;
42
+ this.isTelemetryRaised = false;
43
+ if (this.route.snapshot.data && this.route.snapshot.data.formData
44
+ && this.route.snapshot.data.formData.data
45
+ && this.route.snapshot.data.formData.data.result
46
+ && this.route.snapshot.data.formData.data.result.form
47
+ && this.route.snapshot.data.formData.data.result.form.data
48
+ && this.route.snapshot.data.formData.data.result.form.data.sectionList) {
49
+ this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList;
50
+ }
51
+ this.langtranslations.languageSelectedObservable.subscribe(() => {
52
+ if (localStorage.getItem('websiteLanguage')) {
53
+ this.translate.setDefaultLang('en');
54
+ const lang = localStorage.getItem('websiteLanguage');
55
+ this.translate.use(lang);
56
+ }
57
+ });
58
+ }
59
+ onResize() {
60
+ this.setWidth();
61
+ }
62
+ setWidth() {
63
+ this.stripWidth = `${(window.innerWidth - 1200 + 135) / 2}px`;
64
+ }
65
+ ngOnInit() {
66
+ this.route.params.subscribe(params => {
67
+ this.channnelName = params['channel'];
68
+ this.orgId = params['orgId'];
69
+ this.titles.push({
70
+ title: this.channnelName, icon: '', url: 'none', disableTranslate: true,
71
+ });
72
+ });
73
+ this.setWidth();
74
+ }
75
+ tabClicked(tabEvent) {
76
+ this.raiseTelemetry(`${tabEvent.tab.textLabel} tab`);
77
+ }
78
+ hideContentStrip(event, colData) {
79
+ if (event) {
80
+ colData.contentStripData['hideSection'] = true;
81
+ this.contentTabEmptyResponseCount = this.contentTabEmptyResponseCount + 1;
82
+ // if(this.contentTabEmptyResponseCount === 4 ) {
83
+ // this.selectedIndex = 1
84
+ // }
85
+ }
86
+ }
87
+ triggerOpenDialog(event) {
88
+ if (event) {
89
+ this.showModal = true;
90
+ document.body.style.overflow = 'hidden';
91
+ }
92
+ this.raiseTelemetry('btn open key annoucements');
93
+ }
94
+ onClose() {
95
+ this.showModal = false;
96
+ document.body.style.overflow = 'auto';
97
+ this.raiseTelemetry('btn close key annoucements');
98
+ }
99
+ raiseTelemetryInteratEvent(event) {
100
+ if (event && event.viewMoreUrl) {
101
+ this.raiseTelemetry(`${event.stripTitle} ${event.viewMoreUrl.viewMoreText}`);
102
+ }
103
+ if (!this.isTelemetryRaised && event && !event.viewMoreUrl) {
104
+ this.eventSvc.raiseInteractTelemetry({
105
+ type: 'click',
106
+ subType: 'mdo-channel',
107
+ id: `${_.kebabCase(event.typeOfTelemetry.toLocaleLowerCase())}-card`,
108
+ }, {
109
+ id: event.identifier,
110
+ type: event.primaryCategory,
111
+ }, {
112
+ pageIdExt: `${_.kebabCase(event.primaryCategory.toLocaleLowerCase())}-card`,
113
+ module: WsEvents.EnumTelemetrymodules.LEARN,
114
+ });
115
+ this.isTelemetryRaised = true;
116
+ }
117
+ }
118
+ raiseCompetencyTelemetry(name) {
119
+ this.raiseTelemetry(`${name} core expertise`);
120
+ }
121
+ raiseTelemetry(name) {
122
+ this.eventSvc.raiseInteractTelemetry({
123
+ type: 'click',
124
+ subType: 'mdo-channel',
125
+ id: `${_.kebabCase(name).toLocaleLowerCase()}`,
126
+ }, {}, {
127
+ module: WsEvents.EnumTelemetrymodules.LEARN,
128
+ });
129
+ }
130
+ hideCompetency(event) {
131
+ if (event) {
132
+ this.hideCompetencyBlock = true;
133
+ }
134
+ }
135
+ showAllContent(_stripData, columnData) {
136
+ if (columnData && columnData.contentStrip && columnData.contentStrip.strips && columnData.contentStrip.strips.length) {
137
+ const stripData = _stripData;
138
+ let tabSelected = stripData.viewMoreUrl && stripData.viewMoreUrl.queryParams && stripData.viewMoreUrl.queryParams.tabSelected && stripData.viewMoreUrl.queryParams.tabSelected || '';
139
+ this.router.navigate([`/app/learn/mdo-channels/${this.channnelName}/${this.orgId}/all-content`], { queryParams: { tabSelected, key: columnData.sectionKey } });
140
+ }
141
+ }
142
+ }
143
+ MdoChannelV2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoChannelV2Component, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.EventService }, { token: i3.TranslateService }, { token: i2.MultilingualTranslationsService }], target: i0.ɵɵFactoryTarget.Component });
144
+ MdoChannelV2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MdoChannelV2Component, selector: "sb-uic-mdo-channel-v2", inputs: { sectionList: "sectionList" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'topLearners'\" [ngTemplateOutlet]=\"topLearners\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'mainContent'\" [ngTemplateOutlet]=\"mainContent\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n\n<ng-template #topSection let-data=\"data\">\n <!-- top section desktop layout -->\n <div class=\"hidden md:block\">\n <div class=\"web-banner-background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\">\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square \">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n <h1 class=\" txt-ellipsis-2 break-words pt-10\"\n [style.color]=\"data.titleColor\">{{data.title || channnelName}}</h1>\n <p class=\"mat-body-1\" [style.color]=\"data.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n </div>\n <!-- top section m-site layout -->\n <div class=\"block md:hidden\">\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data.sliderData && data.sliderData.sliders\">\n <sb-uic-sliders [widgetData]=\"data.sliderData.sliders\" [styleData]=\"data.sliderData.styleData\" ></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || channnelName}}</h1>\n <p class=\"mat-body-2\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n </div>\n </div>\n </div>\n <div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\" >\n <div class=\"hidden md:block\">\n <div class=\"metrics\"\n [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points\n [providerId]=\"orgId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'singleFlexeRow'\"\n [pageLayout]=\"'mdo'\">\n </sb-uic-data-points>\n </div>\n </div>\n <div class=\"block md:hidden pt-14 px-4\">\n <div class=\"mob-metrics mob-metrics-sec\">\n <sb-uic-data-points\n [providerId]=\"orgId\"\n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\"\n [layoutType]=\"'singleRow'\"\n [pageLayout]=\"'mdo'\">\n </sb-uic-data-points>\n </div>\n \n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #mainContent let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"container\">\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n <div class=\"block md:hidden col-span-12 mt-6\">\n <sb-uic-announcements\n [layoutType]=\"'mobile'\"\n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\"\n [fetchDataFromApi]=\"false\"\n [channelId]=\"orgId\">\n </sb-uic-announcements>\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements\n [layoutType]=\"'web'\"\n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\"\n [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <!-- Tabs Section -->\n <mat-tab-group animationDuration=\"0ms\" class=\"mat-tab-labels mytabs w-full \"\n [selectedIndex]=\"selectedIndex\" (selectedTabChange)=\"selectedIndex = $event.index; tabClicked($event)\">\n <mat-tab label=\"Content\" >\n <ng-template mat-tab-label i18n>\n Learn\n </ng-template>\n <ng-container *ngIf=\"data.tabSection.contentTab.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\" >\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n </ng-container>\n <div class=\"padding-top-l \">\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.contentTab}\"></ng-container>\n </div>\n </mat-tab>\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>\n Competency\n </ng-template>\n <div>\n <ng-container [ngTemplateOutlet]=\"columnSectionDisplay\"\n [ngTemplateOutletContext]=\"{data: data.tabSection.coreAreasTab}\"></ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div class=\"col-span-12 md:col-span-4\">\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\"\n *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div> \n </div>\n <div class=\"hidden md:block\" \n *ngIf=\"data?.announcementSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-announcements\n [layoutType]=\"'web'\"\n [mobileHeight]=\"false\"\n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\"\n [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div> \n </div>\n </div> \n </div>\n </div>\n </div>\n</ng-template>\n<!-- \n<ng-template #announcement let-data=\"data\">\n <div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data.background}\">\n <div class=\"w-full\">\n Announcement Section -->\n <!-- <h1>Announcement</h1>\n </div>\n </div>\n</ng-template> -->\n\n\n<ng-template #columnSectionDisplay let-data=\"data\">\n <ng-container *ngIf=\"data?.length\">\n <ng-container *ngFor=\"let section of data\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\" [ngClass]=\"{'container': section.wrapperClass}\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedProgramStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentRecommendedCoursesStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentcertificationsOfWeekStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\" *ngIf=\"!hideCompetencyBlock;else noData\">\n <div class=\"w-full container-balanced\">\n <p class=\"mat-body-1 pl-5 pr-4 md:pl-0 md:pr-0\">This section shows the list of top competencies users in this MDO are learning, based on the courses they've completed and enrolled in.</p>\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook-mdo\n [dynamicColor]=\"'#999999'\"\n [dynamicAlignPills]=\"'start'\"\n [cardDisplayCount]=\"2\"\n (emptyResponse)=\"hideCompetency($event)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\"\n [objectData]=\"competency\"\n [providerId]=\"orgId\"\n >\n </sb-uic-competency-passbook-mdo>\n </div>\n </div>\n <!-- <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\"> -->\n </div>\n</ng-template>\n<!-- End Competencies -->\n{{contentTabEmptyResponseCount}}hiiii\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex mb-8\">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"true\"\n (viewAllResponse)=\"showAllContent($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n (emptyResponse)=\"hideContentStrip($event, data)\"\n [providerId]=\"orgId\"\n [widgetData]=\"data?.contentStrip\"\n [channnelName]=\"channnelName\"\n >\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #noData>\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\" >\n <img src=\"/assets/common/error-pages/empty_search.svg\" wsUtilsImageResponsive alt=\"No results\"\n class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\" i18n=\"search route no result\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n</ng-template>\n\n<ng-template #topLearners let-data=\"data\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners\n [objectData]=\"data\"\n [channnelName]=\"channnelName\"\n [channelId]=\"orgId\">\n </sb-uic-top-learners>\n </div>\n </div>\n</ng-template>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;grid-gap:2.5rem;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:112px;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.metrics{border:3px solid #fff;border-radius:10px;align-items:center}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:rgba(19,19,19,.6392156863);width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}\n"], components: [{ type: i4.SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { type: i5.DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title"] }, { type: i6.CbpPlanComponent, selector: "sb-uic-cbp-plan", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { type: i7.AnnouncementsComponent, selector: "sb-uic-announcements", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i9.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i10.CompetencyPassbookMdoComponent, selector: "sb-uic-competency-passbook-mdo", inputs: ["objectData", "providerId", "cardDisplayCount", "dynamicClass", "dynamicColor", "dynamicAlignPills"], outputs: ["emptyResponse", "temeletryResponse"] }, { type: i11.ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { type: i12.TopLearnersComponent, selector: "sb-uic-top-learners", inputs: ["objectData", "channelId", "channnelName"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i13.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i13.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i9.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }], pipes: { "slice": i13.SlicePipe, "translate": i3.TranslatePipe } });
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MdoChannelV2Component, decorators: [{
146
+ type: Component,
147
+ args: [{
148
+ selector: 'sb-uic-mdo-channel-v2',
149
+ templateUrl: './mdo-channel-v2.component.html',
150
+ styleUrls: ['./mdo-channel-v2.component.scss']
151
+ }]
152
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.EventService }, { type: i3.TranslateService }, { type: i2.MultilingualTranslationsService }]; }, propDecorators: { sectionList: [{
153
+ type: Input
154
+ }], onResize: [{
155
+ type: HostListener,
156
+ args: ['window:resize']
157
+ }] } });
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRvLWNoYW5uZWwtdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NvbnN1bXB0aW9uL3NyYy9saWIvX2NvbW1vbi9taWNyb3NpdGVzL21kby1jaGFubmVscy9tZG8tY2hhbm5lbC12Mi9tZG8tY2hhbm5lbC12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL21pY3Jvc2l0ZXMvbWRvLWNoYW5uZWxzL21kby1jaGFubmVsLXYyL21kby1jaGFubmVsLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUd0RSxPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzdELG9CQUFvQjtBQUNwQixPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7O0FBUzNCLE1BQU0sT0FBTyxxQkFBcUI7SUFvQmhDLFlBQ1UsS0FBcUIsRUFDckIsTUFBYyxFQUNkLFFBQXNCLEVBQ3RCLFNBQTJCLEVBQzNCLGdCQUFpRDtRQUpqRCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlDO1FBeEJsRCxnQkFBVyxHQUFPLEVBQUUsQ0FBQTtRQUM3QixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQUNqQixVQUFLLEdBQUcsRUFBRSxDQUFBO1FBQ1Ysa0JBQWEsR0FBRyxDQUFDLENBQUE7UUFDakIsd0JBQW1C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QUFBO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUFlLEVBQUUsVUFBZTtRQUM3QyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsWUFBWSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNwSCxNQUFNLFNBQVMsR0FBUSxVQUFVLENBQUE7WUFDL0IsSUFBSSxXQUFXLEdBQUksU0FBUyxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQTtZQUNyTCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDbEIsQ0FBQywyQkFBMkIsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxjQUFjLENBQUMsRUFDMUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUcsRUFBRSxDQUFDLENBQUE7U0FDbkU7SUFDSCxDQUFDOzttSEFySlUscUJBQXFCO3VHQUFyQixxQkFBcUIsNkpDZGxDLHM0aUJBcVVjOzRGRHZURCxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQy9DO2tPQUVVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBNkNOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBFdmVudFNlcnZpY2UsIFdzRXZlbnRzIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInXG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLW1kby1jaGFubmVsLXYyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21kby1jaGFubmVsLXYyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWRvLWNoYW5uZWwtdjIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZG9DaGFubmVsVjJDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2VjdGlvbkxpc3Q6YW55ID0gW11cbiAgY2hhbm5uZWxOYW1lID0gJydcbiAgb3JnSWQgPSAnJ1xuICBzZWxlY3RlZEluZGV4ID0gMFxuICBoaWRlQ29tcGV0ZW5jeUJsb2NrOiBib29sZWFuID0gZmFsc2VcbiAgY29udGVudFRhYkVtcHR5UmVzcG9uc2VDb3VudDogbnVtYmVyID0gMFxuICB0aXRsZXMgPSBbXG4gICAgeyB0aXRsZTogJ0xlYXJuJywgdXJsOiAnL3BhZ2UvbGVhcm4nLCBpY29uOiAnc2Nob29sJywgZGlzYWJsZVRyYW5zbGF0ZTogZmFsc2UgfSxcbiAgICB7XG4gICAgICB0aXRsZTogYE1ETyBDaGFubmVsc2AsXG4gICAgICB1cmw6IGAvYXBwL2xlYXJuL21kby1jaGFubmVscy9hbGwtY2hhbm5lbHNgLFxuICAgICAgaWNvbjogJycsIGRpc2FibGVUcmFuc2xhdGU6IHRydWUsXG4gICAgfSxcbiAgXVxuICBzaG93TW9kYWw6IGJvb2xlYW4gPSBmYWxzZVxuICBkZXNjcmlwdGlvbk1heExlbmd0aCA9IDUwMFxuICBpc1RlbGVtZXRyeVJhaXNlZDogYm9vbGVhbiA9IGZhbHNlXG4gIHN0cmlwV2lkdGg6IGFueVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBldmVudFN2YzogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSxcbiAgKSB7IFxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmZvcm1EYXRhXG4gICAgICAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZm9ybURhdGEuZGF0YVxuICAgICAgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmZvcm1EYXRhLmRhdGEucmVzdWx0XG4gICAgICAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZm9ybURhdGEuZGF0YS5yZXN1bHQuZm9ybVxuICAgICAgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmZvcm1EYXRhLmRhdGEucmVzdWx0LmZvcm0uZGF0YVxuICAgICAgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmZvcm1EYXRhLmRhdGEucmVzdWx0LmZvcm0uZGF0YS5zZWN0aW9uTGlzdFxuICAgICkge1xuICAgICAgdGhpcy5zZWN0aW9uTGlzdCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5mb3JtRGF0YS5kYXRhLnJlc3VsdC5mb3JtLmRhdGEuc2VjdGlvbkxpc3RcbiAgICB9XG4gICAgdGhpcy5sYW5ndHJhbnNsYXRpb25zLmxhbmd1YWdlU2VsZWN0ZWRPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYnNpdGVMYW5ndWFnZScpKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdlbicpXG4gICAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5nKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25SZXNpemUoKSB7XG4gICAgdGhpcy5zZXRXaWR0aCgpXG4gIH1cblxuICBzZXRXaWR0aCgpIHtcbiAgICB0aGlzLnN0cmlwV2lkdGggPSBgJHsod2luZG93LmlubmVyV2lkdGggLSAxMjAwICsgMTM1KS8yfXB4YFxuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMuY2hhbm5uZWxOYW1lID0gcGFyYW1zWydjaGFubmVsJ11cbiAgICAgIHRoaXMub3JnSWQgPSBwYXJhbXNbJ29yZ0lkJ11cbiAgICAgIHRoaXMudGl0bGVzLnB1c2goe1xuICAgICAgICB0aXRsZTogdGhpcy5jaGFubm5lbE5hbWUsIGljb246ICcnLCB1cmw6ICdub25lJywgZGlzYWJsZVRyYW5zbGF0ZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgfSlcbiAgICB0aGlzLnNldFdpZHRoKClcbiAgfVxuXG4gIHB1YmxpYyB0YWJDbGlja2VkKHRhYkV2ZW50OiBNYXRUYWJDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMucmFpc2VUZWxlbWV0cnkoYCR7dGFiRXZlbnQudGFiLnRleHRMYWJlbH0gdGFiYClcbiAgfVxuICBoaWRlQ29udGVudFN0cmlwKGV2ZW50OiBhbnksIGNvbERhdGE6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgY29sRGF0YS5jb250ZW50U3RyaXBEYXRhWydoaWRlU2VjdGlvbiddID0gdHJ1ZVxuICAgICAgdGhpcy5jb250ZW50VGFiRW1wdHlSZXNwb25zZUNvdW50ID0gdGhpcy5jb250ZW50VGFiRW1wdHlSZXNwb25zZUNvdW50ICsgMVxuICAgICAgLy8gaWYodGhpcy5jb250ZW50VGFiRW1wdHlSZXNwb25zZUNvdW50ID09PSA0ICkge1xuICAgICAgLy8gICB0aGlzLnNlbGVjdGVkSW5kZXggPSAxXG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlck9wZW5EaWFsb2coZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICBpZihldmVudCkge1xuICAgICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbidcbiAgICB9XG4gICAgdGhpcy5yYWlzZVRlbGVtZXRyeSgnYnRuIG9wZW4ga2V5IGFubm91Y2VtZW50cycpXG4gIH1cblxuICBvbkNsb3NlKCkge1xuICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2VcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nXG4gICAgdGhpcy5yYWlzZVRlbGVtZXRyeSgnYnRuIGNsb3NlIGtleSBhbm5vdWNlbWVudHMnKVxuICB9XG5cbiAgcmFpc2VUZWxlbWV0cnlJbnRlcmF0RXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCAmJiBldmVudC52aWV3TW9yZVVybCkge1xuICAgICAgdGhpcy5yYWlzZVRlbGVtZXRyeShgJHtldmVudC5zdHJpcFRpdGxlfSAke2V2ZW50LnZpZXdNb3JlVXJsLnZpZXdNb3JlVGV4dH1gKVxuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNUZWxlbWV0cnlSYWlzZWQgJiYgZXZlbnQgJiYgIWV2ZW50LnZpZXdNb3JlVXJsKSB7XG4gICAgICB0aGlzLmV2ZW50U3ZjLnJhaXNlSW50ZXJhY3RUZWxlbWV0cnkoXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY2xpY2snLFxuICAgICAgICAgIHN1YlR5cGU6ICdtZG8tY2hhbm5lbCcsXG4gICAgICAgICAgaWQ6IGAke18ua2ViYWJDYXNlKGV2ZW50LnR5cGVPZlRlbGVtZXRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpKX0tY2FyZGAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogZXZlbnQuaWRlbnRpZmllcixcbiAgICAgICAgICB0eXBlOiBldmVudC5wcmltYXJ5Q2F0ZWdvcnksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYWdlSWRFeHQ6IGAke18ua2ViYWJDYXNlKGV2ZW50LnByaW1hcnlDYXRlZ29yeS50b0xvY2FsZUxvd2VyQ2FzZSgpKX0tY2FyZGAsXG4gICAgICAgICAgbW9kdWxlOiBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5bW9kdWxlcy5MRUFSTixcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgdGhpcy5pc1RlbGVtZXRyeVJhaXNlZCA9IHRydWVcbiAgICB9XG4gIH1cblxuICByYWlzZUNvbXBldGVuY3lUZWxlbWV0cnkobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yYWlzZVRlbGVtZXRyeShgJHtuYW1lfSBjb3JlIGV4cGVydGlzZWApXG4gIH1cblxuICByYWlzZVRlbGVtZXRyeShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmV2ZW50U3ZjLnJhaXNlSW50ZXJhY3RUZWxlbWV0cnkoXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjbGljaycsXG4gICAgICAgIHN1YlR5cGU6ICdtZG8tY2hhbm5lbCcsXG4gICAgICAgIGlkOiBgJHtfLmtlYmFiQ2FzZShuYW1lKS50b0xvY2FsZUxvd2VyQ2FzZSgpfWAsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIG1vZHVsZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeW1vZHVsZXMuTEVBUk4sXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgaGlkZUNvbXBldGVuY3koZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5oaWRlQ29tcGV0ZW5jeUJsb2NrID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHNob3dBbGxDb250ZW50KF9zdHJpcERhdGE6IGFueSwgY29sdW1uRGF0YTogYW55KSB7XG4gICAgaWYgKGNvbHVtbkRhdGEgJiYgY29sdW1uRGF0YS5jb250ZW50U3RyaXAgJiYgY29sdW1uRGF0YS5jb250ZW50U3RyaXAuc3RyaXBzICYmIGNvbHVtbkRhdGEuY29udGVudFN0cmlwLnN0cmlwcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN0cmlwRGF0YTogYW55ID0gX3N0cmlwRGF0YVxuICAgICAgICBsZXQgdGFiU2VsZWN0ZWQgPSAgc3RyaXBEYXRhLnZpZXdNb3JlVXJsICYmIHN0cmlwRGF0YS52aWV3TW9yZVVybC5xdWVyeVBhcmFtcyAmJiBzdHJpcERhdGEudmlld01vcmVVcmwucXVlcnlQYXJhbXMudGFiU2VsZWN0ZWQgJiYgc3RyaXBEYXRhLnZpZXdNb3JlVXJsLnF1ZXJ5UGFyYW1zLnRhYlNlbGVjdGVkIHx8ICcnXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgICAgIFtgL2FwcC9sZWFybi9tZG8tY2hhbm5lbHMvJHt0aGlzLmNoYW5ubmVsTmFtZX0vJHt0aGlzLm9yZ0lkfS9hbGwtY29udGVudGBdLFxuICAgICAgICAgIHsgcXVlcnlQYXJhbXM6IHsgdGFiU2VsZWN0ZWQsIGtleTogY29sdW1uRGF0YS5zZWN0aW9uS2V5ICB9IH0pXG4gICAgfVxuICB9XG5cbn1cbiIsIjx3cy13aWRnZXQtYnRuLXBhZ2UtYmFjayBbd2lkZ2V0RGF0YV09XCJ7IHVybDogJ2hvbWUnLCB0aXRsZXM6IHRpdGxlcyB9XCI+XG48L3dzLXdpZGdldC1idG4tcGFnZS1iYWNrPlxuXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgaWQ9XCJzZWN0aW9uLW1pY3JvLXNpdGVzXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC0xXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWN0aW9uTGlzdD8ubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNlY3Rpb25MaXN0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlY3Rpb24/LmVuYWJsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gaWQ9XCJ7e3NlY3Rpb24/LmtleX19XCIgY2xhc3M9XCJ3LWZ1bGwgZ3JpZCBncmlkLWNvbHMtMTIgZ2FwLTRcIiBbbmdDbGFzc109XCJ7J2NvbnRhaW5lcic6IHNlY3Rpb24ud3JhcHBlckNsYXNzfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHNlY3Rpb24uY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInt7Y29sdW1uPy5rZXl9fVwiIGNsYXNzPVwiY29sLXNwYW4te3tjb2x1bW4uY29sc3BhbiB8fCAxMn19IFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uPy5lbmFibGVkXCIgW25nU3dpdGNoXT1cImNvbHVtbj8ua2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndG9wU2VjdGlvbidcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b3BTZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2RhdGE6IGNvbHVtbj8uZGF0YX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0b3BMZWFybmVycydcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b3BMZWFybmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntkYXRhOiBjb2x1bW4/LmRhdGF9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWFpbkNvbnRlbnQnXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWFpbkNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ZGF0YTogY29sdW1uPy5kYXRhfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuXG48bmctdGVtcGxhdGUgI3RvcFNlY3Rpb24gbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgPCEtLSB0b3Agc2VjdGlvbiBkZXNrdG9wIGxheW91dCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWItYmFubmVyLWJhY2tncm91bmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4ICBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHN0aWNreS1sb2dvLXNxdWFyZVwiIFtzdHlsZS53aWR0aF09XCJzdHJpcFdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMTIgZ2FwLTQgcGFkZGluZy10b3AteHh4bCBtYi0xMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTEyIG1kOmNvbC1zcGFuLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXggZmxleC1jb2wgbXItNCB3cy1tYXQtYmxhY2stdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbG9nby1zcXVhcmUgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJBcHBsaWNhdGlvbiBMb2dvXCIgY2xhc3M9XCJsb2dvLWltZ1wiIFtzcmNdPVwiZGF0YT8ubG9nb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgIGNsYXNzPVwiIHR4dC1lbGxpcHNpcy0yIGJyZWFrLXdvcmRzIHB0LTEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YS50aXRsZUNvbG9yXCI+e3tkYXRhLnRpdGxlIHx8IGNoYW5ubmVsTmFtZX19PC9oMT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWF0LWJvZHktMVwiIFtzdHlsZS5jb2xvcl09XCJkYXRhLmRlc2NyaXB0aW9uQ29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGE/LmRlc2NyaXB0aW9uIHwgc2xpY2U6MDpkZXNjcmlwdGlvbk1heExlbmd0aH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhPy5kZXNjcmlwdGlvbj8ubGVuZ3RoID4gZGVzY3JpcHRpb25NYXhMZW5ndGhcIj4uLi48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMTIgbWQ6Y29sLXNwYW4tNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgc2xpZGVyLWJveFwiICpuZ0lmPVwiZGF0YS5zbGlkZXJEYXRhICYmIGRhdGEuc2xpZGVyRGF0YS5zbGlkZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYi11aWMtc2xpZGVycyBbd2lkZ2V0RGF0YV09XCJkYXRhLnNsaWRlckRhdGEuc2xpZGVyc1wiIFtzdHlsZURhdGFdPVwiZGF0YS5zbGlkZXJEYXRhLnN0eWxlRGF0YVwiID48L3NiLXVpYy1zbGlkZXJzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICA8L2Rpdj5cbiAgICA8IS0tIHRvcCBzZWN0aW9uIG0tc2l0ZSBsYXlvdXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrIG1kOmhpZGRlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgc2xpZGVyLWJveFwiICpuZ0lmPVwiZGF0YS5zbGlkZXJEYXRhICYmIGRhdGEuc2xpZGVyRGF0YS5zbGlkZXJzXCI+XG4gICAgICAgICAgICAgICAgPHNiLXVpYy1zbGlkZXJzIFt3aWRnZXREYXRhXT1cImRhdGEuc2xpZGVyRGF0YS5zbGlkZXJzXCIgW3N0eWxlRGF0YV09XCJkYXRhLnNsaWRlckRhdGEuc3R5bGVEYXRhXCIgPjwvc2ItdWljLXNsaWRlcnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcHgtNCBmbGV4IGZsZXgtY29sIG1vYi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci00IGxvZ28tYm94LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGxvZ28tYm94LXNxdWFyZSB0b3AgbXItNFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cIkFwcGxpY2F0aW9uIExvZ29cIiBjbGFzcz1cImxvZ28taW1nXCIgW3NyY109XCJkYXRhPy5sb2dvXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy05LzEyIGZsZXgtMSBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiIHR4dC1lbGxpcHNpcy0yIGJyZWFrLXdvcmRzXCI+e3tkYXRhPy50aXRsZSB8fCBjaGFubm5lbE5hbWV9fTwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keS0yXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ZGF0YT8uZGVzY3JpcHRpb24gfCBzbGljZTowOmRlc2NyaXB0aW9uTWF4TGVuZ3RofX1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhPy5kZXNjcmlwdGlvbj8ubGVuZ3RoID4gZGVzY3JpcHRpb25NYXhMZW5ndGhcIj4uLi48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIG1ldHJpY3Mtc2VjdGlvblwiID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0cmljc1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCc6IGRhdGE/Lm1ldHJpY3M/LmJhY2tncm91bmR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzYi11aWMtZGF0YS1wb2ludHNcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm92aWRlcklkXT1cIm9yZ0lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZXRjaERhdGFGcm9tQXBpXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdERhdGFdPVwiZGF0YT8ubWV0cmljcz8uZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGF5b3V0VHlwZV09XCInc2luZ2xlRmxleGVSb3cnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlTGF5b3V0XT1cIidtZG8nXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvc2ItdWljLWRhdGEtcG9pbnRzPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgbWQ6aGlkZGVuICBwdC0xNCBweC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYi1tZXRyaWNzIG1vYi1tZXRyaWNzLXNlY1wiPlxuICAgICAgICAgICAgICAgICAgICA8c2ItdWljLWRhdGEtcG9pbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvdmlkZXJJZF09XCJvcmdJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmV0Y2hEYXRhRnJvbUFwaV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3REYXRhXT1cImRhdGE/Lm1ldHJpY3M/LmRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xheW91dFR5cGVdPVwiJ3NpbmdsZVJvdydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VMYXlvdXRdPVwiJ21kbydcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9zYi11aWMtZGF0YS1wb2ludHM+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21haW5Db250ZW50IGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCc6IGRhdGEuYmFja2dyb3VuZH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIG1kOmhpZGRlbiBjb2wtc3Bhbi0xMiBwYWRkaW5nLWxlZnQtbSBwYWRkaW5nLXJpZ2h0LW0gcGFkZGluZy10b3AtbSBwYWRkaW5nLWJvdHRvbS1tXCI+XG4gICAgICAgICAgICAgICAgPHNiLXVpYy1jYnAtcGxhblxuICAgICAgICAgICAgICAgICAgICBbbGF5b3V0VHlwZV09XCInd2ViJ1wiXG4gICAgICAgICAgICAgICAgICAgIFttb2JpbGVIZWlnaHRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbZmV0Y2hEYXRhRnJvbUFwaV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYW5uZWxJZF09XCJvcmdJZFwiXG4gICAgICAgICAgICAgICAgICAgIFtvYmplY3REYXRhXT1cImRhdGE/LmNicFBsYW5TZWN0aW9uPy5kYXRhXCI+XG4gICAgICAgICAgICAgICAgPC9zYi11aWMtY2JwLXBsYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJibG9jayBtZDpoaWRkZW4gY29sLXNwYW4tMTIgbXQtNlwiPlxuICAgICAgICAgICAgICAgIDxzYi11aWMtYW5ub3VuY2VtZW50c1xuICAgICAgICAgICAgICAgICAgICBbbGF5b3V0VHlwZV09XCInbW9iaWxlJ1wiXG4gICAgICAgICAgICAgICAgICAgIChvcGVuRGlhbG9nKT1cInRyaWdnZXJPcGVuRGlhbG9nKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbb2JqZWN0RGF0YV09XCJkYXRhPy5hbm5vdW5jZW1lbnRTZWN0aW9uPy5kYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZldGNoRGF0YUZyb21BcGldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbElkXT1cIm9yZ0lkXCI+XG4gICAgICAgICAgICAgICAgPC9zYi11aWMtYW5ub3VuY2VtZW50cz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5ub3VuY2VtZW50cy1jb250YWluZXJcIiAqbmdJZj1cInNob3dNb2RhbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgY2xvc2Utc2hhcmUtZGlhbG9nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIGNsYXNzPVwiY2xvc2UtaWNvblwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1tb2RhbCBweC0zIHB0LThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYi11aWMtYW5ub3VuY2VtZW50c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYXlvdXRUeXBlXT1cIid3ZWInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3BlbkRpYWxvZyk9XCJ0cmlnZ2VyT3BlbkRpYWxvZygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2JqZWN0RGF0YV09XCJkYXRhPy5hbm5vdW5jZW1lbnRTZWN0aW9uPy5kYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9iaWxlSGVpZ2h0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZXRjaERhdGFGcm9tQXBpXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGFubmVsSWRdPVwib3JnSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2ItdWljLWFubm91bmNlbWVudHM+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMTIgZ2FwLTQgcGFkZGluZy10b3AtbSBtYi02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTEyIG1kOmNvbC1zcGFuLXt7ZGF0YS50YWJTZWN0aW9uLmNvbHNwYW59fVwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRhYnMgU2VjdGlvbiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgYW5pbWF0aW9uRHVyYXRpb249XCIwbXNcIiBjbGFzcz1cIm1hdC10YWItbGFiZWxzIG15dGFicyB3LWZ1bGwgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIiAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwic2VsZWN0ZWRJbmRleCA9ICRldmVudC5pbmRleDsgdGFiQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkNvbnRlbnRcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWwgaTE4bj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVhcm5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLnRhYlNlY3Rpb24uY29udGVudFRhYi5sZW5ndGggPT09IGNvbnRlbnRUYWJFbXB0eVJlc3BvbnNlQ291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLXhsIHRleHQtY2VudGVyXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9jb21tb24vZXJyb3ItcGFnZXMvZW1wdHlfc2VhcmNoLnN2Z1wiIHdzVXRpbHNJbWFnZVJlc3BvbnNpdmUgYWx0PVwiTm8gcmVzdWx0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFyZ2luLXRvcC1sIG1hcmdpbi1ib3R0b20tc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIm1hdC1oMlwiIGkxOG49XCJzZWFyY2ggcm91dGUgbm8gcmVzdWx0XCI+e3snbGVhcm5zZWFyY2gubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZX19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkZGluZy10b3AtbCBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW5TZWN0aW9uRGlzcGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2RhdGE6IGRhdGEudGFiU2VjdGlvbi5jb250ZW50VGFifVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJDb3JlIEFyZWFzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWwgaTE4bj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGV0ZW5jeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW5TZWN0aW9uRGlzcGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2RhdGE6IGRhdGEudGFiU2VjdGlvbi5jb3JlQXJlYXNUYWJ9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMTIgbWQ6Y29sLXNwYW4tNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIHBhZGRpbmctdG9wLXhsIHBhZGRpbmctYm90dG9tLW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhPy5jYnBQbGFuU2VjdGlvbj8uZGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ItdWljLWNicC1wbGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYXlvdXRUeXBlXT1cIid3ZWInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vYmlsZUhlaWdodF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZXRjaERhdGFGcm9tQXBpXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbElkXT1cIm9yZ0lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdERhdGFdPVwiZGF0YT8uY2JwUGxhblNlY3Rpb24/LmRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NiLXVpYy1jYnAtcGxhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCIgXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YT8uYW5ub3VuY2VtZW50U2VjdGlvbj8uZGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNiLXVpYy1hbm5vdW5jZW1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xheW91dFR5cGVdPVwiJ3dlYidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2JpbGVIZWlnaHRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZXRjaERhdGFGcm9tQXBpXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGFubmVsSWRdPVwib3JnSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3REYXRhXT1cImRhdGE/LmFubm91bmNlbWVudFNlY3Rpb24/LmRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2ItdWljLWFubm91bmNlbWVudHM+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPCEtLSBcbjxuZy10ZW1wbGF0ZSAjYW5ub3VuY2VtZW50IGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4ICBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnOiBkYXRhLmJhY2tncm91bmR9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICAgIEFubm91bmNlbWVudCBTZWN0aW9uIC0tPlxuICAgICAgICAgICAgPCEtLSA8aDE+QW5ub3VuY2VtZW50PC9oMT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiAtLT5cblxuXG48bmctdGVtcGxhdGUgI2NvbHVtblNlY3Rpb25EaXNwbGF5ICBsZXQtZGF0YT1cImRhdGFcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgZGF0YVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlY3Rpb24/LmVuYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8c2VjdGlvbiBpZD1cInt7c2VjdGlvbj8ua2V5fX1cIiBjbGFzcz1cInctZnVsbCBncmlkIGdyaWQtY29scy0xMiBnYXAtNFwiIFtuZ0NsYXNzXT1cInsnY29udGFpbmVyJzogc2VjdGlvbi53cmFwcGVyQ2xhc3N9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBzZWN0aW9uLmNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInt7Y29sdW1uPy5rZXl9fVwiIGNsYXNzPVwiY29sLXNwYW4te3tjb2x1bW4uY29sc3BhbiB8fCAxMn19IFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmVuYWJsZWRcIiBbbmdTd2l0Y2hdPVwiY29sdW1uPy5rZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbXBldGVuY3knXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29tcGV0ZW5jeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7Y29tcGV0ZW5jeTogY29sdW1ufVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29udGVudFJlY29tbWVuZGVkUHJvZ3JhbVN0cmlwJ1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRTdHJpcFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7Y29udGVudFN0cmlwOiBjb2x1bW4/LmRhdGEsIHNlY3Rpb25LZXk6IHNlY3Rpb24ua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbnRlbnRSZWNvbW1lbmRlZENvdXJzZXNTdHJpcCdcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50U3RyaXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge2NvbnRlbnRTdHJpcDogY29sdW1uPy5kYXRhLCBzZWN0aW9uS2V5OiBzZWN0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb250ZW50RmVhdHVyZWRTdHJpcCdcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50U3RyaXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge2NvbnRlbnRTdHJpcDogY29sdW1uPy5kYXRhLCBzZWN0aW9uS2V5OiBzZWN0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb250ZW50Y2VydGlmaWNhdGlvbnNPZldlZWtTdHJpcCdcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50U3RyaXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge2NvbnRlbnRTdHJpcDogY29sdW1uPy5kYXRhLCBzZWN0aW9uS2V5OiBzZWN0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48IS0tIFN0YXJ0IENvbXBldGVuY2llcyAtLT5cbjxuZy10ZW1wbGF0ZSAjY29tcGV0ZW5jeSBsZXQtY29tcGV0ZW5jeT1cImNvbXBldGVuY3lcIj5cbiAgICA8ZGl2IGNsYXNzPVwicGFkZGluZy10b3AtbCBwYWRkaW5nLWJvdHRvbS1sIHJlbGF0aXZlXCIgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbXBldGVuY3k/LmJhY2tncm91bmRcIiAqbmdJZj1cIiFoaWRlQ29tcGV0ZW5jeUJsb2NrO2Vsc2Ugbm9EYXRhXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgY29udGFpbmVyLWJhbGFuY2VkXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cIm1hdC1ib2R5LTEgcGwtNSBwci00IG1kOnBsLTAgbWQ6cHItMFwiPlRoaXMgc2VjdGlvbiBzaG93cyB0aGUgbGlzdCBvZiB0b3AgY29tcGV0ZW5jaWVzIHVzZXJzIGluIHRoaXMgTURPIGFyZSBsZWFybmluZywgYmFzZWQgb24gdGhlIGNvdXJzZXMgdGhleSd2ZSBjb21wbGV0ZWQgYW5kIGVucm9sbGVkIGluLjwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC00IHByLTQgbWQ6cGwtMCBtZDpwci0wXCI+XG4gICAgICAgICAgICAgICAgPHNiLXVpYy1jb21wZXRlbmN5LXBhc3Nib29rLW1kb1xuICAgICAgICAgICAgICAgICAgICBbZHluYW1pY0NvbG9yXT1cIicjOTk5OTk5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtkeW5hbWljQWxpZ25QaWxsc109XCInc3RhcnQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhcmREaXNwbGF5Q291bnRdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIChlbXB0eVJlc3BvbnNlKT1cImhpZGVDb21wZXRlbmN5KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAodGVtZWxldHJ5UmVzcG9uc2UpPVwicmFpc2VDb21wZXRlbmN5VGVsZW1ldHJ5KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbb2JqZWN0RGF0YV09XCJjb21wZXRlbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgW3Byb3ZpZGVySWRdPVwib3JnSWRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zYi11aWMtY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gPGltZyBjbGFzcz1cImFic29sdXRlIGNvbXAtYmFjay1pbWdcIiBzcmM9XCJhc3NldHMvaWNvbnMvbWljcm9zaXRlL2NvbXBldGVuY3kuc3ZnXCIgYWx0PVwiXCI+IC0tPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjwhLS0gRW5kIENvbXBldGVuY2llcyAtLT5cbnt7Y29udGVudFRhYkVtcHR5UmVzcG9uc2VDb3VudH19aGlpaWlcbjxuZy10ZW1wbGF0ZSAjY29udGVudFN0cmlwVGVtcGxhdGUgbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhPy5jb250ZW50U3RyaXA/LmhpZGVTZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG1iLThcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8c2ItdWljLWNvbnRlbnQtc3RyaXAtd2l0aC10YWJzXG4gICAgICAgICAgICAgICAgICAgIFtlbWl0Vmlld0FsbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKHZpZXdBbGxSZXNwb25zZSk9XCJzaG93QWxsQ29udGVudCgkZXZlbnQsIGRhdGEpXCJcbiAgICAgICAgICAgICAgICAgICAgKHRlbGVtdHJ5UmVzcG9uc2UpPVwicmFpc2VUZWxlbWV0cnlJbnRlcmF0RXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChlbXB0eVJlc3BvbnNlKT1cImhpZGVDb250ZW50U3RyaXAoJGV2ZW50LCBkYXRhKVwiXG4gICAgICAgICAgICAgICAgICAgIFtwcm92aWRlcklkXT1cIm9yZ0lkXCJcbiAgICAgICAgICAgICAgICAgICAgW3dpZGdldERhdGFdPVwiZGF0YT8uY29udGVudFN0cmlwXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYW5ubmVsTmFtZV09XCJjaGFubm5lbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zYi11aWMtY29udGVudC1zdHJpcC13aXRoLXRhYnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLXhsIHRleHQtY2VudGVyXCIgPlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9jb21tb24vZXJyb3ItcGFnZXMvZW1wdHlfc2VhcmNoLnN2Z1wiIHdzVXRpbHNJbWFnZVJlc3BvbnNpdmUgYWx0PVwiTm8gcmVzdWx0c1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFyZ2luLXRvcC1sIG1hcmdpbi1ib3R0b20tc1wiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIm1hdC1oMlwiIGkxOG49XCJzZWFyY2ggcm91dGUgbm8gcmVzdWx0XCI+e3snbGVhcm5zZWFyY2gubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZX19PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdG9wTGVhcm5lcnMgbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgdG9wLWxlYXJuZXJzIG1hcmdpbi1ib3R0b20tbCBtYXJnaW4tdG9wLWxcIj5cbiAgICAgICAgICAgIDxzYi11aWMtdG9wLWxlYXJuZXJzXG4gICAgICAgICAgICAgICAgW29iamVjdERhdGFdPVwiZGF0YVwiXG4gICAgICAgICAgICAgICAgW2NoYW5ubmVsTmFtZV09XCJjaGFubm5lbE5hbWVcIlxuICAgICAgICAgICAgICAgIFtjaGFubmVsSWRdPVwib3JnSWRcIj5cbiAgICAgICAgICAgIDwvc2ItdWljLXRvcC1sZWFybmVycz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -0,0 +1,93 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatChipsModule } from '@angular/material/chips';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatTabsModule } from '@angular/material/tabs';
6
+ import { MdoChannelV1Component } from './mdo-channel-v1/mdo-channel-v1.component';
7
+ import { SkeletonLoaderLibModule } from '../../skeleton-loader-lib/skeleton-loader-lib.module';
8
+ import { AnnouncementsModule, CardsModule, CommonMethodsService, CommonStripModule, CompetencyPassbookModule, CompetencyPassbookMdoModule, ContentStripWithTabsLibModule, DataPointsModule, SlidersLibModule, HttpLoaderFactory, TopLearnersModule, CbpPlanModule, } from './../../../../public-api';
9
+ import { MdoChannelV2Component } from './mdo-channel-v2/mdo-channel-v2.component';
10
+ import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
11
+ import { HttpClient } from '@angular/common/http';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@ngx-translate/core";
14
+ export class MDOChannelModule {
15
+ }
16
+ MDOChannelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MDOChannelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ MDOChannelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MDOChannelModule, declarations: [MdoChannelV1Component, MdoChannelV2Component], imports: [CommonModule,
18
+ MatIconModule,
19
+ MatChipsModule,
20
+ SkeletonLoaderLibModule,
21
+ AnnouncementsModule,
22
+ TopLearnersModule,
23
+ CbpPlanModule,
24
+ CardsModule,
25
+ CommonStripModule,
26
+ CompetencyPassbookModule,
27
+ CompetencyPassbookMdoModule,
28
+ ContentStripWithTabsLibModule,
29
+ DataPointsModule,
30
+ SlidersLibModule,
31
+ MatTabsModule, i1.TranslateModule], exports: [MdoChannelV1Component, MdoChannelV2Component] });
32
+ MDOChannelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MDOChannelModule, providers: [
33
+ CommonMethodsService
34
+ ], imports: [[
35
+ CommonModule,
36
+ MatIconModule,
37
+ MatChipsModule,
38
+ SkeletonLoaderLibModule,
39
+ AnnouncementsModule,
40
+ TopLearnersModule,
41
+ CbpPlanModule,
42
+ CardsModule,
43
+ CommonStripModule,
44
+ CompetencyPassbookModule,
45
+ CompetencyPassbookMdoModule,
46
+ ContentStripWithTabsLibModule,
47
+ DataPointsModule,
48
+ SlidersLibModule,
49
+ MatTabsModule,
50
+ TranslateModule.forRoot({
51
+ loader: {
52
+ provide: TranslateLoader,
53
+ useFactory: HttpLoaderFactory,
54
+ deps: [HttpClient],
55
+ },
56
+ }),
57
+ ]] });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MDOChannelModule, decorators: [{
59
+ type: NgModule,
60
+ args: [{
61
+ declarations: [MdoChannelV1Component, MdoChannelV2Component],
62
+ imports: [
63
+ CommonModule,
64
+ MatIconModule,
65
+ MatChipsModule,
66
+ SkeletonLoaderLibModule,
67
+ AnnouncementsModule,
68
+ TopLearnersModule,
69
+ CbpPlanModule,
70
+ CardsModule,
71
+ CommonStripModule,
72
+ CompetencyPassbookModule,
73
+ CompetencyPassbookMdoModule,
74
+ ContentStripWithTabsLibModule,
75
+ DataPointsModule,
76
+ SlidersLibModule,
77
+ MatTabsModule,
78
+ TranslateModule.forRoot({
79
+ loader: {
80
+ provide: TranslateLoader,
81
+ useFactory: HttpLoaderFactory,
82
+ deps: [HttpClient],
83
+ },
84
+ }),
85
+ ],
86
+ exports: [MdoChannelV1Component, MdoChannelV2Component],
87
+ providers: [
88
+ CommonMethodsService
89
+ ],
90
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
91
+ }]
92
+ }] });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRvLWNoYW5uZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NvbnN1bXB0aW9uL3NyYy9saWIvX2NvbW1vbi9taWNyb3NpdGVzL21kby1jaGFubmVscy9tZG8tY2hhbm5lbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFL0YsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsYUFBYSxHQUNkLE1BQU0sMEJBQTBCLENBQUE7QUFDakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQWtDbEQsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQTlCWixxQkFBcUIsRUFBRSxxQkFBcUIsYUFFekQsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsdUJBQXVCO1FBQ3ZCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsYUFBYTtRQUNiLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixhQUFhLGlDQVNMLHFCQUFxQixFQUFFLHFCQUFxQjsrR0FLM0MsZ0JBQWdCLGFBSmpCO1FBQ1Isb0JBQW9CO0tBQUMsWUExQmQ7WUFDUCxZQUFZO1lBQ1osYUFBYTtZQUNiLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsV0FBVztZQUNYLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsMkJBQTJCO1lBQzNCLDZCQUE2QjtZQUM3QixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixlQUFlLENBQUMsT0FBTyxDQUFDO2dCQUN0QixNQUFNLEVBQUU7b0JBQ04sT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7b0JBQzdCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDbkI7YUFDRixDQUFDO1NBQ0g7NEZBTVUsZ0JBQWdCO2tCQS9CNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDNUQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQiw2QkFBNkI7d0JBQzdCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWUsQ0FBQyxPQUFPLENBQUM7NEJBQ3RCLE1BQU0sRUFBRTtnQ0FDTixPQUFPLEVBQUUsZUFBZTtnQ0FDeEIsVUFBVSxFQUFFLGlCQUFpQjtnQ0FDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDOzZCQUNuQjt5QkFDRixDQUFDO3FCQUNIO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO29CQUN2RCxTQUFTLEVBQUM7d0JBQ1Isb0JBQW9CO3FCQUFDO29CQUNyQixPQUFPLEVBQUMsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgTWRvQ2hhbm5lbFYxQ29tcG9uZW50IH0gZnJvbSAnLi9tZG8tY2hhbm5lbC12MS9tZG8tY2hhbm5lbC12MS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25Mb2FkZXJMaWJNb2R1bGUgfSBmcm9tICcuLi8uLi9za2VsZXRvbi1sb2FkZXItbGliL3NrZWxldG9uLWxvYWRlci1saWIubW9kdWxlJztcblxuaW1wb3J0IHtcbiAgQW5ub3VuY2VtZW50c01vZHVsZSxcbiAgQ2FyZHNNb2R1bGUsXG4gIENvbW1vbk1ldGhvZHNTZXJ2aWNlLFxuICBDb21tb25TdHJpcE1vZHVsZSxcbiAgQ29tcGV0ZW5jeVBhc3Nib29rTW9kdWxlLFxuICBDb21wZXRlbmN5UGFzc2Jvb2tNZG9Nb2R1bGUsXG4gIENvbnRlbnRTdHJpcFdpdGhUYWJzTGliTW9kdWxlLFxuICBEYXRhUG9pbnRzTW9kdWxlLFxuICBTbGlkZXJzTGliTW9kdWxlLFxuICBIdHRwTG9hZGVyRmFjdG9yeSxcbiAgVG9wTGVhcm5lcnNNb2R1bGUsXG4gIENicFBsYW5Nb2R1bGUsXG59IGZyb20gJy4vLi4vLi4vLi4vLi4vcHVibGljLWFwaSdcbmltcG9ydCB7IE1kb0NoYW5uZWxWMkNvbXBvbmVudCB9IGZyb20gJy4vbWRvLWNoYW5uZWwtdjIvbWRvLWNoYW5uZWwtdjIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW01kb0NoYW5uZWxWMUNvbXBvbmVudCwgTWRvQ2hhbm5lbFYyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIFNrZWxldG9uTG9hZGVyTGliTW9kdWxlLFxuICAgIEFubm91bmNlbWVudHNNb2R1bGUsXG4gICAgVG9wTGVhcm5lcnNNb2R1bGUsXG4gICAgQ2JwUGxhbk1vZHVsZSxcbiAgICBDYXJkc01vZHVsZSxcbiAgICBDb21tb25TdHJpcE1vZHVsZSxcbiAgICBDb21wZXRlbmN5UGFzc2Jvb2tNb2R1bGUsXG4gICAgQ29tcGV0ZW5jeVBhc3Nib29rTWRvTW9kdWxlLFxuICAgIENvbnRlbnRTdHJpcFdpdGhUYWJzTGliTW9kdWxlLFxuICAgIERhdGFQb2ludHNNb2R1bGUsXG4gICAgU2xpZGVyc0xpYk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JSb290KHtcbiAgICAgIGxvYWRlcjoge1xuICAgICAgICBwcm92aWRlOiBUcmFuc2xhdGVMb2FkZXIsXG4gICAgICAgIHVzZUZhY3Rvcnk6IEh0dHBMb2FkZXJGYWN0b3J5LFxuICAgICAgICBkZXBzOiBbSHR0cENsaWVudF0sXG4gICAgICB9LFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbTWRvQ2hhbm5lbFYxQ29tcG9uZW50LCBNZG9DaGFubmVsVjJDb21wb25lbnRdLFxuICBwcm92aWRlcnM6W1xuICAgIENvbW1vbk1ldGhvZHNTZXJ2aWNlXSxcbiAgICBzY2hlbWFzOltDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxufSlcbmV4cG9ydCBjbGFzcyBNRE9DaGFubmVsTW9kdWxlIHsgfVxuIl19