@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,147 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CommonStripComponent } from './common-strip.component';
4
+ import { SbUiResolverModule } from '@sunbird-cb/resolver-v2';
5
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
8
+ import { MatCardModule } from '@angular/material/card';
9
+ import { MatCheckboxModule } from '@angular/material/checkbox';
10
+ import { MatChipsModule } from '@angular/material/chips';
11
+ import { MatNativeDateModule } from '@angular/material/core';
12
+ import { MatDatepickerModule } from '@angular/material/datepicker';
13
+ import { MatDialogModule } from '@angular/material/dialog';
14
+ import { MatExpansionModule } from '@angular/material/expansion';
15
+ import { MatFormFieldModule } from '@angular/material/form-field';
16
+ import { MatIconModule } from '@angular/material/icon';
17
+ import { MatInputModule } from '@angular/material/input';
18
+ import { MatListModule } from '@angular/material/list';
19
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
20
+ import { MatRadioModule } from '@angular/material/radio';
21
+ import { MatSelectModule } from '@angular/material/select';
22
+ import { MatSidenavModule } from '@angular/material/sidenav';
23
+ import { MatSnackBarModule } from '@angular/material/snack-bar';
24
+ import { MatTableModule } from '@angular/material/table';
25
+ import { MatTabsModule } from '@angular/material/tabs';
26
+ import { MatToolbarModule } from '@angular/material/toolbar';
27
+ import { MatTooltipModule } from '@angular/material/tooltip';
28
+ import { RouterModule } from '@angular/router';
29
+ import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
30
+ import { HttpClient } from '@angular/common/http';
31
+ import { HttpLoaderFactory } from '../content-strip-with-tabs-lib/content-strip-with-tabs-lib.module';
32
+ import { HorizontalScrollerV2Module } from '../horizontal-scroller-v2/horizontal-scroller-v2.module';
33
+ import * as i0 from "@angular/core";
34
+ import * as i1 from "@ngx-translate/core";
35
+ export class CommonStripModule {
36
+ }
37
+ CommonStripModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonStripModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
38
+ CommonStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonStripModule, declarations: [CommonStripComponent], imports: [SbUiResolverModule,
39
+ CommonModule,
40
+ RouterModule,
41
+ HorizontalScrollerV2Module,
42
+ MatProgressSpinnerModule,
43
+ MatToolbarModule,
44
+ MatIconModule,
45
+ MatButtonModule,
46
+ MatTooltipModule,
47
+ MatListModule,
48
+ MatSidenavModule,
49
+ MatCardModule,
50
+ MatExpansionModule,
51
+ MatRadioModule,
52
+ MatChipsModule,
53
+ MatInputModule,
54
+ MatFormFieldModule,
55
+ MatDialogModule,
56
+ MatSnackBarModule,
57
+ MatSelectModule,
58
+ MatDatepickerModule,
59
+ MatNativeDateModule,
60
+ MatTableModule,
61
+ MatCheckboxModule,
62
+ MatProgressSpinnerModule,
63
+ MatButtonToggleModule,
64
+ MatTabsModule,
65
+ MatAutocompleteModule, i1.TranslateModule], exports: [CommonStripComponent] });
66
+ CommonStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonStripModule, imports: [[
67
+ SbUiResolverModule,
68
+ CommonModule,
69
+ RouterModule,
70
+ HorizontalScrollerV2Module,
71
+ MatProgressSpinnerModule,
72
+ MatToolbarModule,
73
+ MatIconModule,
74
+ MatButtonModule,
75
+ MatTooltipModule,
76
+ MatListModule,
77
+ MatSidenavModule,
78
+ MatCardModule,
79
+ MatExpansionModule,
80
+ MatRadioModule,
81
+ MatChipsModule,
82
+ MatInputModule,
83
+ MatFormFieldModule,
84
+ MatDialogModule,
85
+ MatSnackBarModule,
86
+ MatSelectModule,
87
+ MatDatepickerModule,
88
+ MatNativeDateModule,
89
+ MatTableModule,
90
+ MatCheckboxModule,
91
+ MatProgressSpinnerModule,
92
+ MatButtonToggleModule,
93
+ MatTabsModule,
94
+ MatAutocompleteModule,
95
+ TranslateModule.forRoot({
96
+ loader: {
97
+ provide: TranslateLoader,
98
+ useFactory: HttpLoaderFactory,
99
+ deps: [HttpClient],
100
+ },
101
+ }),
102
+ ]] });
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonStripModule, decorators: [{
104
+ type: NgModule,
105
+ args: [{
106
+ declarations: [CommonStripComponent],
107
+ imports: [
108
+ SbUiResolverModule,
109
+ CommonModule,
110
+ RouterModule,
111
+ HorizontalScrollerV2Module,
112
+ MatProgressSpinnerModule,
113
+ MatToolbarModule,
114
+ MatIconModule,
115
+ MatButtonModule,
116
+ MatTooltipModule,
117
+ MatListModule,
118
+ MatSidenavModule,
119
+ MatCardModule,
120
+ MatExpansionModule,
121
+ MatRadioModule,
122
+ MatChipsModule,
123
+ MatInputModule,
124
+ MatFormFieldModule,
125
+ MatDialogModule,
126
+ MatSnackBarModule,
127
+ MatSelectModule,
128
+ MatDatepickerModule,
129
+ MatNativeDateModule,
130
+ MatTableModule,
131
+ MatCheckboxModule,
132
+ MatProgressSpinnerModule,
133
+ MatButtonToggleModule,
134
+ MatTabsModule,
135
+ MatAutocompleteModule,
136
+ TranslateModule.forRoot({
137
+ loader: {
138
+ provide: TranslateLoader,
139
+ useFactory: HttpLoaderFactory,
140
+ deps: [HttpClient],
141
+ },
142
+ }),
143
+ ],
144
+ exports: [CommonStripComponent]
145
+ }]
146
+ }] });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXN0cmlwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vY29tbW9uLXN0cmlwL2NvbW1vbi1zdHJpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0Is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QkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsZUFBZSxDQUFDLE9BQU8sQ0FBQzs0QkFDdEIsTUFBTSxFQUFFO2dDQUNOLE9BQU8sRUFBRSxlQUFlO2dDQUN4QixVQUFVLEVBQUUsaUJBQWlCO2dDQUM3QixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7NkJBQ25CO3lCQUNGLENBQUM7cUJBQ0g7b0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21tb25TdHJpcENvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uLXN0cmlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYlVpUmVzb2x2ZXJNb2R1bGUgfSBmcm9tICdAc3VuYmlyZC1jYi9yZXNvbHZlci12Mic7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUh0dHBMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9odHRwLWxvYWRlcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSHR0cExvYWRlckZhY3RvcnkgfSBmcm9tICcuLi9jb250ZW50LXN0cmlwLXdpdGgtdGFicy1saWIvY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliLm1vZHVsZSc7XG5pbXBvcnQgeyBIb3Jpem9udGFsU2Nyb2xsZXJWMk1vZHVsZSB9IGZyb20gJy4uL2hvcml6b250YWwtc2Nyb2xsZXItdjIvaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb21tb25TdHJpcENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBTYlVpUmVzb2x2ZXJNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBIb3Jpem9udGFsU2Nyb2xsZXJWMk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICBNYXRDYXJkTW9kdWxlLFxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBsb2FkZXI6IHtcbiAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICB1c2VGYWN0b3J5OiBIdHRwTG9hZGVyRmFjdG9yeSxcbiAgICAgICAgZGVwczogW0h0dHBDbGllbnRdLFxuICAgICAgfSxcbiAgICB9KSxcbiAgXSxcbiAgZXhwb3J0czogW0NvbW1vblN0cmlwQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBDb21tb25TdHJpcE1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,366 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@sunbird-cb/utils-v2";
5
+ import * as i2 from "../../_services/widget-content.service";
6
+ import * as i3 from "./competency-passbook.service";
7
+ import * as i4 from "@angular/router";
8
+ import * as i5 from "../pills/pills.component";
9
+ import * as i6 from "../skeleton-loader-lib/skeleton-loader-lib.component";
10
+ import * as i7 from "@angular/material/icon";
11
+ import * as i8 from "@angular/common";
12
+ export class CompetencyPassbookComponent {
13
+ // subTheme = ['Behavioural']
14
+ // currentFilter = 'Behavioural'
15
+ // currentCompetencies: any = []
16
+ // competencyData: any
17
+ constructor(configSvc, contentSvc, competencySvc, router, environment) {
18
+ this.configSvc = configSvc;
19
+ this.contentSvc = contentSvc;
20
+ this.competencySvc = competencySvc;
21
+ this.router = router;
22
+ this.cardDisplayCount = 3;
23
+ this.dynamicAlignPills = 'center';
24
+ this.emptyResponse = new EventEmitter();
25
+ this.temeletryResponse = new EventEmitter();
26
+ this.loadCometency = false;
27
+ this.loadCompetencyArea = false;
28
+ this.competencyVersion = '';
29
+ this.competencyTheme = [];
30
+ this.allcompetencyTheme = {};
31
+ this.competencyStrength = 0;
32
+ this.competencyThemeLength = 6;
33
+ this.showAllTheme = [{ name: 'Show all', showAll: false }];
34
+ this.environment = environment;
35
+ }
36
+ ngOnInit() {
37
+ this.comeptencyKeys = this.configSvc.compentency[this.environment.compentencyVersionKey];
38
+ this.getAllCompetencies();
39
+ // this.competencyData = this.objectData
40
+ // this.filter(this.currentFilter)
41
+ }
42
+ // filter(filterValue: string) {
43
+ // this.currentFilter = filterValue
44
+ // this.currentCompetencies = this.competencyData.data.filter((item: any) => item.type === filterValue)
45
+ // }
46
+ showMore() {
47
+ this.objectData.viewMore = !this.objectData.viewMore;
48
+ }
49
+ // to get competency area from facets
50
+ getCompetencyArea() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ let addfilter = {};
53
+ if (this.providerId) {
54
+ addfilter = {
55
+ "createdFor": [
56
+ this.providerId
57
+ ],
58
+ };
59
+ }
60
+ this.loadCompetencyArea = true;
61
+ let request = {
62
+ "request": {
63
+ "query": "",
64
+ "filters": Object.assign(Object.assign({ "contentType": "Course" }, addfilter), { "status": [
65
+ "Live"
66
+ ] }),
67
+ "sort_by": {
68
+ "lastUpdatedOn": "desc"
69
+ },
70
+ "facets": [
71
+ `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`
72
+ ],
73
+ "limit": 0,
74
+ "offset": 0,
75
+ "fields": []
76
+ }
77
+ };
78
+ try {
79
+ this.competencyStrength = 0;
80
+ const response = yield this.callCompetencySearch(request);
81
+ if (response && response.results) {
82
+ if (response.results.result.facets) {
83
+ response.results.result.facets.forEach((fact) => {
84
+ if (fact.name === `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`) {
85
+ this.competencyArea = fact.values;
86
+ }
87
+ });
88
+ this.selectedValue = this.competencyArea[0].name.toLowerCase();
89
+ this.competencyArea.forEach((area, indexValue) => __awaiter(this, void 0, void 0, function* () {
90
+ let addFilter = {
91
+ "createdFor": [
92
+ this.providerId
93
+ ]
94
+ };
95
+ let data = yield this.getcompetencyThemeCount(area, addFilter);
96
+ area['themeData'] = data;
97
+ area['count'] = data.length;
98
+ this.competencyStrength = this.competencyStrength + data.length;
99
+ if (indexValue === 0) {
100
+ this.getThemeDataByArea(area);
101
+ }
102
+ }));
103
+ this.loadCompetencyArea = false;
104
+ }
105
+ }
106
+ }
107
+ catch (error) {
108
+ this.loadCompetencyArea = false;
109
+ this.emptyResponse.emit(true);
110
+ // Handle errors
111
+ // console.error('Error:', error);
112
+ }
113
+ });
114
+ }
115
+ callCompetencySearch(request) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ return new Promise((resolve, reject) => {
118
+ if (request && request) {
119
+ this.contentSvc.searchV6(request).subscribe(results => {
120
+ resolve({ results });
121
+ }, (error) => {
122
+ reject(error);
123
+ });
124
+ }
125
+ });
126
+ });
127
+ }
128
+ // competency theam change
129
+ competencyChange(e) {
130
+ let addfilter = {};
131
+ if (this.providerId) {
132
+ addfilter = {
133
+ "createdFor": [
134
+ this.providerId
135
+ ],
136
+ };
137
+ }
138
+ this.temeletryResponse.emit(e.name);
139
+ this.getThemeDataByArea(e);
140
+ this.selectedValue = e.name;
141
+ }
142
+ getAllCompetencies() {
143
+ this.loadCometency = true;
144
+ this.competencySvc.getCompetencyListv_V2().subscribe((response) => {
145
+ this.allcompetencyTheme = {};
146
+ if (response && response.result && response.result.content) {
147
+ this.originalCompetencyArray = response.result.content;
148
+ this.getCompetencyArea();
149
+ response.result.content.forEach(element => {
150
+ element.children.forEach((childEle) => {
151
+ let name = childEle.name.toLowerCase();
152
+ this.allcompetencyTheme[name] = childEle;
153
+ this.allcompetencyTheme[name]['viewMore'] = false;
154
+ });
155
+ });
156
+ }
157
+ this.loadCometency = false;
158
+ });
159
+ }
160
+ getcompetencyTheme(value, addFilter) {
161
+ return __awaiter(this, void 0, void 0, function* () {
162
+ let request = {
163
+ "request": {
164
+ "query": "",
165
+ "filters": Object.assign(Object.assign({ "contentType": "Course" }, addFilter), { [`${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`]: value, "status": [
166
+ "Live"
167
+ ] }),
168
+ "sort_by": {
169
+ "lastUpdatedOn": "desc"
170
+ },
171
+ "facets": [
172
+ `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyTheme}`
173
+ ],
174
+ "limit": 0,
175
+ "offset": 0,
176
+ "fields": []
177
+ }
178
+ };
179
+ try {
180
+ this.loadCometency = true;
181
+ const response = yield this.callCompetencySearch(request);
182
+ if (response && response.results) {
183
+ if (response.results.result.facets) {
184
+ let competencyThemeData = response.results.result.facets[0].values;
185
+ this.originalCompetencyArray.forEach((element) => {
186
+ if (element.name.toLowerCase() === value) {
187
+ this.competencyTheme = competencyThemeData.filter((ele1) => {
188
+ return element.children.find((ele2) => ele2.name.toLowerCase() === ele1.name.toLowerCase());
189
+ });
190
+ this.showAllTheme = [{ name: 'Show all', showAll: false }];
191
+ this.competencyThemeLength = 6;
192
+ }
193
+ });
194
+ this.resetViewMore();
195
+ }
196
+ this.loadCometency = false;
197
+ }
198
+ }
199
+ catch (error) {
200
+ // Handle errors
201
+ // console.error('Error:', error);
202
+ }
203
+ });
204
+ }
205
+ getThemeDataByArea(areaData) {
206
+ let competencyThemeData = areaData.themeData;
207
+ this.originalCompetencyArray.forEach((element) => {
208
+ if (element.name.toLowerCase() === areaData.name) {
209
+ this.competencyTheme = competencyThemeData.filter((ele1) => {
210
+ return element.children.find((ele2) => ele2.name.toLowerCase() === ele1.name.toLowerCase());
211
+ });
212
+ this.showAllTheme = [{ name: 'Show all', showAll: false }];
213
+ this.competencyThemeLength = 6;
214
+ }
215
+ });
216
+ let addfilter = {};
217
+ if (this.providerId) {
218
+ addfilter = {
219
+ "createdFor": [
220
+ this.providerId
221
+ ],
222
+ };
223
+ }
224
+ this.getcompetencySubTheme(areaData, addfilter);
225
+ }
226
+ getcompetencyThemeCount(area, addFilter) {
227
+ return __awaiter(this, void 0, void 0, function* () {
228
+ let request = {
229
+ "request": {
230
+ "query": "",
231
+ "filters": Object.assign(Object.assign({ "contentType": "Course" }, addFilter), { [`${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`]: area.name, "status": [
232
+ "Live"
233
+ ] }),
234
+ "sort_by": {
235
+ "lastUpdatedOn": "desc"
236
+ },
237
+ "facets": [
238
+ `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyTheme}`
239
+ ],
240
+ "limit": 0,
241
+ "offset": 0,
242
+ "fields": []
243
+ }
244
+ };
245
+ try {
246
+ let returnedData = this.loadCometency = true;
247
+ const response = yield this.callCompetencySearch(request);
248
+ if (response && response.results) {
249
+ if (response.results.result.facets) {
250
+ let competencyThemeData = response.results.result.facets[0].values;
251
+ this.originalCompetencyArray.forEach((element) => {
252
+ if (element.name.toLowerCase() === area.name) {
253
+ returnedData = competencyThemeData.filter((ele1) => {
254
+ return element.children.find((ele2) => ele2.name.toLowerCase() === ele1.name.toLowerCase());
255
+ });
256
+ this.showAllTheme = [{ name: 'Show all', showAll: false }];
257
+ this.competencyThemeLength = 6;
258
+ }
259
+ });
260
+ }
261
+ this.loadCometency = false;
262
+ return returnedData;
263
+ }
264
+ }
265
+ catch (error) {
266
+ // Handle errors
267
+ // console.error('Error:', error);
268
+ }
269
+ });
270
+ }
271
+ resetViewMore() {
272
+ Object.keys(this.allcompetencyTheme).forEach((comp) => {
273
+ this.allcompetencyTheme[comp]['viewMore'] = false;
274
+ });
275
+ }
276
+ viewMoreChildren(data) {
277
+ data.viewMore = !data.viewMore;
278
+ this.allcompetencyTheme[data.name.toLowerCase()].viewMore = data.viewMore;
279
+ }
280
+ displayAllTheme(event) {
281
+ this.showAllTheme[0]['showAll'] = !event.showAll;
282
+ this.competencyThemeLength = event.showAll ? this.competencyTheme.length : 6;
283
+ this.showAllTheme[0]['name'] = event.showAll ? 'Show less' : 'Show all';
284
+ this.temeletryResponse.emit(event.name);
285
+ }
286
+ navigateToCompetency(compData) {
287
+ this.router.navigateByUrl(`/app/learn/browse-by/competency/${compData.name}`);
288
+ }
289
+ getcompetencySubTheme(compArea, addFilter) {
290
+ return __awaiter(this, void 0, void 0, function* () {
291
+ let request = {
292
+ "request": {
293
+ "query": "",
294
+ "filters": Object.assign(Object.assign({ "contentType": "Course" }, addFilter), { [`${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencyArea}`]: compArea.name, "status": [
295
+ "Live"
296
+ ] }),
297
+ "sort_by": {
298
+ "lastUpdatedOn": "desc"
299
+ },
300
+ "facets": [
301
+ `${this.environment.compentencyVersionKey}.${this.comeptencyKeys.vCompetencySubTheme}`
302
+ ],
303
+ "limit": 0,
304
+ "offset": 0,
305
+ "fields": []
306
+ }
307
+ };
308
+ try {
309
+ this.loadCometency = true;
310
+ const response = yield this.callCompetencySearch(request);
311
+ if (response && response.results) {
312
+ if (response.results.result.facets) {
313
+ let competencySubThemeData = response.results.result.facets[0].values;
314
+ this.competencyArea.forEach((areaEle) => {
315
+ if (areaEle.name === compArea.name) {
316
+ areaEle.themeData.forEach((themeEle) => {
317
+ if (this.allcompetencyTheme[themeEle.name.toLowerCase()] &&
318
+ this.allcompetencyTheme[themeEle.name.toLowerCase()].children &&
319
+ this.allcompetencyTheme[themeEle.name.toLowerCase()].children.length) {
320
+ let data = this.allcompetencyTheme[themeEle.name.toLowerCase()].children.filter(obj1 => competencySubThemeData.some(obj2 => Object.keys(obj1).every(key => obj1['name'] === (obj2['name']))));
321
+ this.allcompetencyTheme[themeEle.name.toLowerCase()]['children'] = data;
322
+ }
323
+ });
324
+ }
325
+ });
326
+ }
327
+ this.loadCometency = false;
328
+ }
329
+ }
330
+ catch (error) {
331
+ // Handle errors
332
+ // console.error('Error:', error);
333
+ }
334
+ });
335
+ }
336
+ }
337
+ CompetencyPassbookComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CompetencyPassbookComponent, deps: [{ token: i1.ConfigurationsService }, { token: i2.WidgetContentService }, { token: i3.CompetencyPassbookService }, { token: i4.Router }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component });
338
+ CompetencyPassbookComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CompetencyPassbookComponent, selector: "sb-uic-competency-passbook", inputs: { objectData: "objectData", providerId: "providerId", cardDisplayCount: "cardDisplayCount", dynamicClass: "dynamicClass", dynamicColor: "dynamicColor", dynamicAlignPills: "dynamicAlignPills" }, outputs: { emptyResponse: "emptyResponse", temeletryResponse: "temeletryResponse" }, ngImport: i0, template: " <div class=\"competency-title\" *ngIf=\"objectData?.title\">{{objectData?.title}} \n <span class=\"competency-count\">\n ({{competencyStrength}})\n </span>\n</div>\n<div class=\"flex items-center justify-{{dynamicAlignPills}} gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"competencyArea\" [dynamicColor]=\"dynamicColor\"\n [isLoading]=\"loadCompetencyArea\" (pillClick)=\"competencyChange($event)\" [selectedValue]=\"selectedValue\"></sb-uic-pills>\n</div>\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\" *ngIf=\"!loadCometency\">\n <div class=\"competency-card\" *ngFor=\"let obj of competencyTheme| slice:0:competencyThemeLength\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center\">\n <div class=\"name\">{{allcompetencyTheme[obj?.name]?.displayName}}</div>\n <!-- <div class=\"flex items-baseline\">\n <img src=\"assets/icons/competency/cp-arrow.svg\" class=\"arrow-img cursor-pointer\" alt=\"cp arrow img\" (click)=\"navigateToCompetency(obj)\" />\n </div> -->\n </div>\n </div>\n <div class=\"flex flex-row pt-3 pb-3 description\">\n {{ allcompetencyTheme[obj.name]?.description }} \n </div>\n <!-- <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\">school</mat-icon>\n <div class=\"no-of-contents\" *ngIf=\"obj.count === 1\">{{obj.count}} Content</div>\n <div class=\"no-of-contents\" *ngIf=\"obj.count !== 1\">{{obj.count}} Contents</div>\n </div> -->\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <ng-container *ngFor=\"let child of allcompetencyTheme[obj.name]?.children| slice:0: allcompetencyTheme[obj.name]?.viewMore ? allcompetencyTheme[obj.name]?.children?.length : 3; let i = index\">\n <div class=\"chip rounded-full p-2 text-xs chip-ellipsis\" [title]=\"child?.displayName\" >\n {{ child?.displayName }}\n </div>\n </ng-container>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && !allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View more\n </div>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View less\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"competencyTheme.length > 6 && !loadCometency\">\n <div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"showAllTheme\" [requiredTitlecase]=\"false\" [dynamicColor]=\"dynamicColor\" (pillClick)=\"displayAllTheme($event)\"></sb-uic-pills>\n </div>\n</ng-container> \n\n<ng-container *ngIf=\"loadCometency\">\n\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\">\n <div *ngFor=\"let obj of [0,1,2,3,4,5]\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center w-full\">\n <div class=\"name w-full\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"pt-3 pb-3 description\">\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'24px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></mat-icon>\n <div class=\"no-of-contents\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n</ng-container>", styles: [".competencies-backgroud{background-color:#1b2133}.competency-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;color:#fff}.competency-count{color:#f3962f}.filter-button{padding:12px 16px;border-radius:50px;border:1px solid #fff;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;background-color:transparent;color:#fff;cursor:pointer}.filter-button.active{background:#1B4CA1}.banner-metrics{background:linear-gradient(180deg,#F9CB97 -107.59%,#EF951E 110.74%)}.infra-background{background:#1B4CA1}.competency-theme{height:16px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:#f8b861}.details{background-color:#fff;border-radius:12px;position:relative;top:-8px;min-height:278px}.name{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.description{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left;height:42px;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.no-of-contents{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;color:#1b4ca1}.content-icon{color:#1b4ca1}.line{border-top:1px solid #e2dddd}.chip{padding:8px 16px;grid-gap:8px;gap:8px;border-radius:50px;border:1px solid #1b4ca1;color:#1b4ca1;font-family:Lato;font-size:14px;font-weight:700;text-align:center}.chip-ellipsis{white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}.info-btn{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;opacity:.7;padding:12px 5px}.hide{display:none}.behavioral{background-color:#f8b861}.functional{background-color:#e24577}.domain{background-color:#7b47a4}.competency-card{z-index:999}\n"], components: [{ type: i5.PillsComponent, selector: "sb-uic-pills", inputs: ["pillsData", "selectedValue", "isLoading", "dynamicClass", "dynamicColor", "requiredTitlecase"], outputs: ["pillClick"] }, { type: i6.SkeletonLoaderLibComponent, selector: "sb-uic-skeleton-loader", inputs: ["bindingClass", "height", "width"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "slice": i8.SlicePipe } });
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CompetencyPassbookComponent, decorators: [{
340
+ type: Component,
341
+ args: [{
342
+ selector: 'sb-uic-competency-passbook',
343
+ templateUrl: './competency-passbook.component.html',
344
+ styleUrls: ['./competency-passbook.component.scss']
345
+ }]
346
+ }], ctorParameters: function () { return [{ type: i1.ConfigurationsService }, { type: i2.WidgetContentService }, { type: i3.CompetencyPassbookService }, { type: i4.Router }, { type: undefined, decorators: [{
347
+ type: Inject,
348
+ args: ['environment']
349
+ }] }]; }, propDecorators: { objectData: [{
350
+ type: Input
351
+ }], providerId: [{
352
+ type: Input
353
+ }], cardDisplayCount: [{
354
+ type: Input
355
+ }], dynamicClass: [{
356
+ type: Input
357
+ }], dynamicColor: [{
358
+ type: Input
359
+ }], dynamicAlignPills: [{
360
+ type: Input
361
+ }], emptyResponse: [{
362
+ type: Output
363
+ }], temeletryResponse: [{
364
+ type: Output
365
+ }] } });
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2svY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2svY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFZdkYsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEMsNkJBQTZCO0lBQzdCLGdDQUFnQztJQUNoQyxnQ0FBZ0M7SUFDaEMsc0JBQXNCO0lBQ3RCLFlBQW1CLFNBQWdDLEVBQzFDLFVBQStCLEVBQy9CLGFBQXdDLEVBQ3hDLE1BQWUsRUFDQyxXQUFnQjtRQUp0QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQTFCZixxQkFBZ0IsR0FBUSxDQUFDLENBQUE7UUFHekIsc0JBQWlCLEdBQVEsUUFBUSxDQUFBO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUN2QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3JELGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQzlCLHVCQUFrQixHQUFZLEtBQUssQ0FBQTtRQUluQyxzQkFBaUIsR0FBVSxFQUFF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QUFDLEdBQUcsSUFBSSxDQUFBO3FDQUN4RTtnQ0FDSCxDQUFDLENBQUMsQ0FBQzs2QkFDSjt3QkFDSCxDQUFDLENBQUMsQ0FBQTtxQkFDSDtvQkFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtpQkFDM0I7YUFDRjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLGdCQUFnQjtnQkFDaEIsa0NBQWtDO2FBQ25DO1FBQ0QsQ0FBQztLQUFBOzt5SEFyWFUsMkJBQTJCLDBKQStCNUIsYUFBYTs2R0EvQlosMkJBQTJCLGlXQ2J4QyxvbU5Bc0dlOzRGRHpGRiwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsV0FBVyxFQUFFLHNDQUFzQztvQkFDbkQsU0FBUyxFQUFFLENBQUMsc0NBQXNDLENBQUM7aUJBQ3BEOzswQkFnQ0ksTUFBTTsyQkFBQyxhQUFhOzRDQTdCZCxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlLCBFdmVudFNlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12Mic7XG5pbXBvcnQgeyBXaWRnZXRDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBldGVuY3lQYXNzYm9va1NlcnZpY2UgfSBmcm9tICcuL2NvbXBldGVuY3ktcGFzc2Jvb2suc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTnNDb21wZW50ZW5jeSB9IGZyb20gJy4uLy4uL19tb2RlbHMvY29tcGVudGVuY2llcy5tb2RlbCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLWNvbXBldGVuY3ktcGFzc2Jvb2snLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbXBldGVuY3ktcGFzc2Jvb2suY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wZXRlbmN5UGFzc2Jvb2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG9iamVjdERhdGE6IGFueVxuICBASW5wdXQoKSBwcm92aWRlcklkOiBhbnlcbiAgQElucHV0KCkgY2FyZERpc3BsYXlDb3VudDogYW55ID0gM1xuICBASW5wdXQoKSBkeW5hbWljQ2xhc3M6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQ29sb3I6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQWxpZ25QaWxsczogYW55ID0gJ2NlbnRlcidcbiAgQE91dHB1dCgpIGVtcHR5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgdGVtZWxldHJ5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBsb2FkQ29tZXRlbmN5OiBib29sZWFuID0gZmFsc2VcbiAgbG9hZENvbXBldGVuY3lBcmVhOiBib29sZWFuID0gZmFsc2VcbiAgb3JpZ2luYWxDb21wZXRlbmN5QXJyYXk6IGFueVxuICBjb21wZXRlbmN5QXJlYTogYW55IFtdXG4gIHNlbGVjdGVkVmFsdWU6IGFueTtcbiAgY29tcGV0ZW5jeVZlcnNpb246c3RyaW5nID0gJydcbiAgY29tcGV0ZW5jeVRoZW1lOiBhbnkgPSBbXVxuICBhbGxjb21wZXRlbmN5VGhlbWU6IGFueSA9e31cbiAgY29tcGV0ZW5jeVN0cmVuZ3RoOiBhbnkgPSAwXG4gIGNvbXBldGVuY3lUaGVtZUxlbmd0aDogYW55ID0gNlxuICBzaG93QWxsVGhlbWUgOiBhbnkgPSBbe25hbWU6J1Nob3cgYWxsJywgc2hvd0FsbDogZmFsc2V9XVxuICBlbnZpcm9ubWVudCE6IGFueTtcbiAgY29tZXB0ZW5jeUtleXM6IE5zQ29tcGVudGVuY3kuQ29tcGVudGVuY3lLZXlzO1xuICAvLyBzdWJUaGVtZSA9IFsnQmVoYXZpb3VyYWwnXVxuICAvLyBjdXJyZW50RmlsdGVyID0gJ0JlaGF2aW91cmFsJ1xuICAvLyBjdXJyZW50Q29tcGV0ZW5jaWVzOiBhbnkgPSBbXVxuICAvLyBjb21wZXRlbmN5RGF0YTogYW55XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgY29udGVudFN2YzpXaWRnZXRDb250ZW50U2VydmljZSxcbiAgICBwdWJsaWMgY29tcGV0ZW5jeVN2YzogQ29tcGV0ZW5jeVBhc3Nib29rU2VydmljZSxcbiAgICBwdWJsaWMgcm91dGVyIDogUm91dGVyLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgZW52aXJvbm1lbnQ6IGFueSxcbiAgKSB7IFxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICB9XG5cbiBcbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb21lcHRlbmN5S2V5cyA9IHRoaXMuY29uZmlnU3ZjLmNvbXBlbnRlbmN5W3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5XVxuICAgIFxuICAgIHRoaXMuZ2V0QWxsQ29tcGV0ZW5jaWVzKClcbiAgICAvLyB0aGlzLmNvbXBldGVuY3lEYXRhID0gdGhpcy5vYmplY3REYXRhXG4gICAgLy8gdGhpcy5maWx0ZXIodGhpcy5jdXJyZW50RmlsdGVyKVxuICB9XG4gIC8vIGZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XG4gIC8vICAgdGhpcy5jdXJyZW50RmlsdGVyID0gZmlsdGVyVmFsdWVcbiAgLy8gICB0aGlzLmN1cnJlbnRDb21wZXRlbmNpZXMgPSB0aGlzLmNvbXBldGVuY3lEYXRhLmRhdGEuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0udHlwZSA9PT0gZmlsdGVyVmFsdWUpXG4gIC8vIH1cbiAgc2hvd01vcmUoKSB7XG4gICAgdGhpcy5vYmplY3REYXRhLnZpZXdNb3JlID0gIXRoaXMub2JqZWN0RGF0YS52aWV3TW9yZVxuICB9XG5cbiAgLy8gdG8gZ2V0IGNvbXBldGVuY3kgYXJlYSBmcm9tIGZhY2V0c1xuICBhc3luYyBnZXRDb21wZXRlbmN5QXJlYSgpe1xuICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICBpZih0aGlzLnByb3ZpZGVySWQpIHtcbiAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICB0aGlzLnByb3ZpZGVySWRcbiAgICAgXSxcbiAgICB9XG4gIH1cbiAgICB0aGlzLmxvYWRDb21wZXRlbmN5QXJlYSA9IHRydWVcbiAgICBsZXQgcmVxdWVzdCA9IHtcbiAgICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgIFwicXVlcnlcIjogXCJcIixcbiAgICAgICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJjb250ZW50VHlwZVwiOlwiQ291cnNlXCIsXG4gICAgICAgICAgICAgICAgLi4uYWRkZmlsdGVyLFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkT25cIjogXCJkZXNjXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeUFyZWF9YFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibGltaXRcIjogMCxcbiAgICAgICAgICAgIFwib2Zmc2V0XCI6IDAsXG4gICAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb21wZXRlbmN5U3RyZW5ndGggPSAgMFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxDb21wZXRlbmN5U2VhcmNoKHJlcXVlc3QpO1xuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdHMpIHtcbiAgICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgICByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMuZm9yRWFjaCgoZmFjdDogYW55KSA9PiB7XG5cbiAgICAgICAgICAgIGlmKGZhY3QubmFtZSA9PT0gICBgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5QXJlYX1gKSB7XG4gICAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeUFyZWEgPSBmYWN0LnZhbHVlc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSAgPSB0aGlzLmNvbXBldGVuY3lBcmVhWzBdLm5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeUFyZWEuZm9yRWFjaChhc3luYyAoYXJlYTogYW55LCBpbmRleFZhbHVlOiBhbnkpPT4ge1xuICAgICAgICAgICAgbGV0IGFkZEZpbHRlciA9IHtcbiAgICAgICAgICAgICAgXCJjcmVhdGVkRm9yXCI6IFtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3ZpZGVySWRcbiAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMuZ2V0Y29tcGV0ZW5jeVRoZW1lQ291bnQoYXJlYSwgYWRkRmlsdGVyKVxuICAgICAgICAgICAgYXJlYVsndGhlbWVEYXRhJ10gPSBkYXRhXG4gICAgICAgICAgICBhcmVhWydjb3VudCddID0gZGF0YS5sZW5ndGhcblxuICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5U3RyZW5ndGggPSB0aGlzLmNvbXBldGVuY3lTdHJlbmd0aCArIGRhdGEubGVuZ3RoXG4gICAgICAgICAgICBpZihpbmRleFZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB0aGlzLmdldFRoZW1lRGF0YUJ5QXJlYShhcmVhKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5sb2FkQ29tcGV0ZW5jeUFyZWEgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubG9hZENvbXBldGVuY3lBcmVhID0gZmFsc2VcbiAgICAgIHRoaXMuZW1wdHlSZXNwb25zZS5lbWl0KHRydWUpXG4gICAgICAvLyBIYW5kbGUgZXJyb3JzXG4gICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCl7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHJlcXVlc3QgJiYgcmVxdWVzdCkge1xuICAgICAgICB0aGlzLmNvbnRlbnRTdmMuc2VhcmNoVjYocmVxdWVzdCkuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdHMgfSk7XG4gICAgICAgICAgfSwoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gY29tcGV0ZW5jeSB0aGVhbSBjaGFuZ2VcbiAgY29tcGV0ZW5jeUNoYW5nZShlKXtcbiAgICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICAgIGlmKHRoaXMucHJvdmlkZXJJZCkge1xuICAgICAgYWRkZmlsdGVyID0ge1xuICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICAgIF0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZW1lbGV0cnlSZXNwb25zZS5lbWl0KGUubmFtZSlcbiAgICBcbiAgICB0aGlzLmdldFRoZW1lRGF0YUJ5QXJlYShlKVxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGUubmFtZVxuICB9XG4gIGdldEFsbENvbXBldGVuY2llcygpe1xuICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IHRydWVcbiAgICB0aGlzLmNvbXBldGVuY3lTdmMuZ2V0Q29tcGV0ZW5jeUxpc3R2X1YyKCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZSA9IHt9XG4gICAgICBpZihyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHQgJiYgcmVzcG9uc2UucmVzdWx0LmNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5hbENvbXBldGVuY3lBcnJheSA9IHJlc3BvbnNlLnJlc3VsdC5jb250ZW50XG4gICAgICAgIHRoaXMuZ2V0Q29tcGV0ZW5jeUFyZWEoKVxuICAgICAgICByZXNwb25zZS5yZXN1bHQuY29udGVudC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGVsZW1lbnQuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRFbGUpID0+IHtcbiAgICAgICAgICAgIGxldCBuYW1lID0gY2hpbGRFbGUubmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtuYW1lXSA9IGNoaWxkRWxlXG4gICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtuYW1lXVsndmlld01vcmUnXSA9IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0Y29tcGV0ZW5jeVRoZW1lKHZhbHVlOiBhbnksYWRkRmlsdGVyPzogYW55KSB7XG4gICAgbGV0IHJlcXVlc3QgPSB7XG4gICAgICBcInJlcXVlc3RcIjoge1xuICAgICAgICAgIFwicXVlcnlcIjogXCJcIixcbiAgICAgICAgICBcImZpbHRlcnNcIjoge1xuICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6XCJDb3Vyc2VcIixcbiAgICAgICAgICAgICAgLi4uYWRkRmlsdGVyLFxuICAgICAgICAgICAgICBbYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeUFyZWF9YF0gOiB2YWx1ZSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgIGAke3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lUaGVtZX1gXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcImxpbWl0XCI6IDAsXG4gICAgICAgICAgXCJvZmZzZXRcIjogMCxcbiAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXG4gIHRyeSB7XG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgbGV0IGNvbXBldGVuY3lUaGVtZURhdGEgOiBhbnkgPSByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHNbMF0udmFsdWVzIFxuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGVsZW1lbnQubmFtZS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSBjb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAgZWxlbWVudC5jaGlsZHJlbi5maW5kKChlbGUyOiBhbnkpID0+IGVsZTIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBlbGUxLm5hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IDZcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2V0Vmlld01vcmUoKVxuICAgICAgfVxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gSGFuZGxlIGVycm9yc1xuICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgfVxuICB9XG5cbiAgZ2V0VGhlbWVEYXRhQnlBcmVhKGFyZWFEYXRhOiBhbnkpe1xuICAgIGxldCBjb21wZXRlbmN5VGhlbWVEYXRhIDogYW55ID0gYXJlYURhdGEudGhlbWVEYXRhXG4gICAgICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYoZWxlbWVudC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFyZWFEYXRhLm5hbWUpIHtcbiAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSBjb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAgZWxlbWVudC5jaGlsZHJlbi5maW5kKChlbGUyOiBhbnkpID0+IGVsZTIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBlbGUxLm5hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IDZcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICAgICAgICBpZih0aGlzLnByb3ZpZGVySWQpIHtcbiAgICAgICAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgICAgICB0aGlzLnByb3ZpZGVySWRcbiAgICAgICAgICAgXSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nZXRjb21wZXRlbmN5U3ViVGhlbWUoYXJlYURhdGEsYWRkZmlsdGVyKVxuICB9XG5cbiAgYXN5bmMgZ2V0Y29tcGV0ZW5jeVRoZW1lQ291bnQoYXJlYTogYW55LGFkZEZpbHRlcj86IGFueSkge1xuICAgIGxldCByZXF1ZXN0ID0ge1xuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjb250ZW50VHlwZVwiOlwiQ291cnNlXCIsXG4gICAgICAgICAgICAgIC4uLmFkZEZpbHRlcixcbiAgICAgICAgICAgICAgW2Ake3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lBcmVhfWBdIDogYXJlYS5uYW1lLFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIkxpdmVcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkT25cIjogXCJkZXNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFjZXRzXCI6IFtcbiAgICAgICAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeVRoZW1lfWBcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibGltaXRcIjogMCxcbiAgICAgICAgICBcIm9mZnNldFwiOiAwLFxuICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBcbiAgdHJ5IHtcbiAgICBsZXQgcmV0dXJuZWREYXRhIDogYW55ID0gXG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgbGV0IGNvbXBldGVuY3lUaGVtZURhdGEgOiBhbnkgPSByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHNbMF0udmFsdWVzIFxuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGVsZW1lbnQubmFtZS50b0xvd2VyQ2FzZSgpID09PSBhcmVhLm5hbWUpIHtcbiAgICAgICAgICAgcmV0dXJuZWREYXRhID0gY29tcGV0ZW5jeVRoZW1lRGF0YS5maWx0ZXIoKGVsZTE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gIGVsZW1lbnQuY2hpbGRyZW4uZmluZCgoZWxlMjogYW55KSA9PiBlbGUyLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gZWxlMS5uYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5zaG93QWxsVGhlbWUgPSBbe25hbWU6J1Nob3cgYWxsJywgc2hvd0FsbDogZmFsc2V9XVxuICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWVMZW5ndGggPSA2XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgICByZXR1cm4gcmV0dXJuZWREYXRhXG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gIH1cbiAgfVxuXG4gIHJlc2V0Vmlld01vcmUoKXtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmFsbGNvbXBldGVuY3lUaGVtZSkuZm9yRWFjaCgoY29tcDogYW55KSA9PiB7XG4gICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtjb21wXVsndmlld01vcmUnXSA9IGZhbHNlXG4gICAgfSlcbiAgfVxuICB2aWV3TW9yZUNoaWxkcmVuKGRhdGE6IGFueSkge1xuICAgIGRhdGEudmlld01vcmUgPSAhZGF0YS52aWV3TW9yZVxuICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW2RhdGEubmFtZS50b0xvd2VyQ2FzZSgpXS52aWV3TW9yZSA9IGRhdGEudmlld01vcmVcbiAgfVxuICBkaXNwbGF5QWxsVGhlbWUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2hvd0FsbFRoZW1lWzBdWydzaG93QWxsJ10gPSAhZXZlbnQuc2hvd0FsbCBcbiAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IGV2ZW50LnNob3dBbGwgPyAgdGhpcy5jb21wZXRlbmN5VGhlbWUubGVuZ3RoIDogNlxuICAgIHRoaXMuc2hvd0FsbFRoZW1lWzBdWyduYW1lJ10gPSBldmVudC5zaG93QWxsID8gJ1Nob3cgbGVzcycgOiAnU2hvdyBhbGwnXG4gICAgdGhpcy50ZW1lbGV0cnlSZXNwb25zZS5lbWl0KGV2ZW50Lm5hbWUpXG4gIH1cblxuICBuYXZpZ2F0ZVRvQ29tcGV0ZW5jeShjb21wRGF0YTogYW55KXtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvYXBwL2xlYXJuL2Jyb3dzZS1ieS9jb21wZXRlbmN5LyR7Y29tcERhdGEubmFtZX1gKVxuICB9XG5cblxuICBhc3luYyBnZXRjb21wZXRlbmN5U3ViVGhlbWUoY29tcEFyZWE6IGFueSxhZGRGaWx0ZXI/OiBhbnkpIHtcbiAgICBsZXQgcmVxdWVzdCA9IHtcbiAgICAgIFwicmVxdWVzdFwiOiB7XG4gICAgICAgICAgXCJxdWVyeVwiOiBcIlwiLFxuICAgICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjpcIkNvdXJzZVwiLFxuICAgICAgICAgICAgICAuLi5hZGRGaWx0ZXIsXG4gICAgICAgICAgICAgW2Ake3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lBcmVhfWBdIDogY29tcEFyZWEubmFtZSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgICBgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5U3ViVGhlbWV9YFxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJsaW1pdFwiOiAwLFxuICAgICAgICAgIFwib2Zmc2V0XCI6IDAsXG4gICAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIFxuICB0cnkge1xuICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IHRydWVcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCk7XG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdHMpIHtcbiAgICAgIGlmKHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0cyl7XG4gICAgICAgIGxldCBjb21wZXRlbmN5U3ViVGhlbWVEYXRhIDogYW55ID0gcmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzWzBdLnZhbHVlcyBcbiAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYS5mb3JFYWNoKChhcmVhRWxlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZihhcmVhRWxlLm5hbWUgPT09IGNvbXBBcmVhLm5hbWUpIHtcbiAgICAgICAgICAgIGFyZWFFbGUudGhlbWVEYXRhLmZvckVhY2goKHRoZW1lRWxlKSA9PiB7XG4gICAgICAgICAgICAgIGlmKHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV0gJiZcbiAgICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbdGhlbWVFbGUubmFtZS50b0xvd2VyQ2FzZSgpXS5jaGlsZHJlbiAmJiBcbiAgICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbdGhlbWVFbGUubmFtZS50b0xvd2VyQ2FzZSgpXS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV0uY2hpbGRyZW4uZmlsdGVyKG9iajEgPT4gXG4gICAgICAgICAgICAgICAgICBjb21wZXRlbmN5U3ViVGhlbWVEYXRhLnNvbWUob2JqMiA9PiBcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMob2JqMSkuZXZlcnkoa2V5ID0+IG9iajFbJ25hbWUnXSA9PT0gKG9iajJbJ25hbWUnXSkpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVt0aGVtZUVsZS5uYW1lLnRvTG93ZXJDYXNlKCldWydjaGlsZHJlbiddID0gZGF0YVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gIH1cbiAgfVxufVxuIiwiIDxkaXYgY2xhc3M9XCJjb21wZXRlbmN5LXRpdGxlXCIgKm5nSWY9XCJvYmplY3REYXRhPy50aXRsZVwiPnt7b2JqZWN0RGF0YT8udGl0bGV9fSBcbiAgICA8c3BhbiBjbGFzcz1cImNvbXBldGVuY3ktY291bnRcIj5cbiAgICAgICAgKHt7Y29tcGV0ZW5jeVN0cmVuZ3RofX0pXG4gICAgPC9zcGFuPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS17e2R5bmFtaWNBbGlnblBpbGxzfX0gZ2FwLTggbXQtNSBtYi01IGNvbXBldGVuY3ktZmlsdGVyc1wiPlxuICAgIDxzYi11aWMtcGlsbHMgW3BpbGxzRGF0YV09XCJjb21wZXRlbmN5QXJlYVwiIFtkeW5hbWljQ29sb3JdPVwiZHluYW1pY0NvbG9yXCJcbiAgICBbaXNMb2FkaW5nXT1cImxvYWRDb21wZXRlbmN5QXJlYVwiIChwaWxsQ2xpY2spPVwiY29tcGV0ZW5jeUNoYW5nZSgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiPjwvc2ItdWljLXBpbGxzPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMte3tjYXJkRGlzcGxheUNvdW50fX0gdy1mdWxsIGdyaWQtZmxvdy1yb3cgZ2FwLTVcIiAqbmdJZj1cIiFsb2FkQ29tZXRlbmN5XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbXBldGVuY3ktY2FyZFwiICpuZ0Zvcj1cImxldCBvYmogb2YgY29tcGV0ZW5jeVRoZW1lfCBzbGljZTowOmNvbXBldGVuY3lUaGVtZUxlbmd0aFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcGV0ZW5jeS10aGVtZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTIgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e2FsbGNvbXBldGVuY3lUaGVtZVtvYmo/Lm5hbWVdPy5kaXNwbGF5TmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1iYXNlbGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pY29ucy9jb21wZXRlbmN5L2NwLWFycm93LnN2Z1wiIGNsYXNzPVwiYXJyb3ctaW1nIGN1cnNvci1wb2ludGVyXCIgYWx0PVwiY3AgYXJyb3cgaW1nXCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9Db21wZXRlbmN5KG9iailcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcHQtMyBwYi0zIGRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgIHt7IGFsbGNvbXBldGVuY3lUaGVtZVtvYmoubmFtZV0/LmRlc2NyaXB0aW9uIH19IFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMyBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNvbnRlbnQtaWNvblwiPnNjaG9vbDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8tb2YtY29udGVudHNcIiAqbmdJZj1cIm9iai5jb3VudCA9PT0gMVwiPnt7b2JqLmNvdW50fX0gQ29udGVudDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vLW9mLWNvbnRlbnRzXCIgKm5nSWY9XCJvYmouY291bnQgIT09IDFcIj57e29iai5jb3VudH19IENvbnRlbnRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUgbXQtMyBtdC0yXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMyBwdC00IGNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBhbGxjb21wZXRlbmN5VGhlbWVbb2JqLm5hbWVdPy5jaGlsZHJlbnwgc2xpY2U6MDogYWxsY29tcGV0ZW5jeVRoZW1lW29iai5uYW1lXT8udmlld01vcmUgPyBhbGxjb21wZXRlbmN5VGhlbWVbb2JqLm5hbWVdPy5jaGlsZHJlbj8ubGVuZ3RoIDogMzsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwIHJvdW5kZWQtZnVsbCBwLTIgdGV4dC14cyBjaGlwLWVsbGlwc2lzXCIgW3RpdGxlXT1cImNoaWxkPy5kaXNwbGF5TmFtZVwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hpbGQ/LmRpc3BsYXlOYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTIgaW5mby1idG4gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsY29tcGV0ZW5jeVRoZW1lW29iai5uYW1lXT8uY2hpbGRyZW4ubGVuZ3RoID4gMyAmJiAhYWxsY29tcGV0ZW5jeVRoZW1lW29iai5uYW1lXT8udmlld01vcmVcIiAoY2xpY2spPVwidmlld01vcmVDaGlsZHJlbihhbGxjb21wZXRlbmN5VGhlbWVbb2JqLm5hbWVdKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgbW9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0yIGluZm8tYnRuIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFsbGNvbXBldGVuY3lUaGVtZVtvYmoubmFtZV0/LmNoaWxkcmVuLmxlbmd0aCA+IDMgJiYgYWxsY29tcGV0ZW5jeVRoZW1lW29iai5uYW1lXT8udmlld01vcmVcIiAoY2xpY2spPVwidmlld01vcmVDaGlsZHJlbihhbGxjb21wZXRlbmN5VGhlbWVbb2JqLm5hbWVdKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgbGVzc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb21wZXRlbmN5VGhlbWUubGVuZ3RoID4gNiAmJiAhbG9hZENvbWV0ZW5jeVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtOCBtdC01IG1iLTUgY29tcGV0ZW5jeS1maWx0ZXJzXCI+XG4gICAgICAgIDxzYi11aWMtcGlsbHMgW3BpbGxzRGF0YV09XCJzaG93QWxsVGhlbWVcIiBbcmVxdWlyZWRUaXRsZWNhc2VdPVwiZmFsc2VcIiBbZHluYW1pY0NvbG9yXT1cImR5bmFtaWNDb2xvclwiIChwaWxsQ2xpY2spPVwiZGlzcGxheUFsbFRoZW1lKCRldmVudClcIj48L3NiLXVpYy1waWxscz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiBcblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRDb21ldGVuY3lcIj5cblxuPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLXt7Y2FyZERpc3BsYXlDb3VudH19IHctZnVsbCBncmlkLWZsb3ctcm93IGdhcC01XCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgb2JqIG9mIFswLDEsMiwzLDQsNV1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBldGVuY3ktdGhlbWVcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzIGZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgW2JpbmRpbmdDbGFzc109XCInZmxleCByb3VuZGVkIG1iLTInXCIgW3dpZHRoXT1cIicxMDAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiJzI0cHgnXCI+PC9zYi11aWMtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ItdWljLXNrZWxldG9uLWxvYWRlciBbYmluZGluZ0NsYXNzXT1cIidmbGV4IHJvdW5kZWQnXCIgW3dpZHRoXT1cIic4MCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCInMjRweCdcIj48L3NiLXVpYy1za2VsZXRvbi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0zIHBiLTMgZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYi11aWMtc2tlbGV0b24tbG9hZGVyIGNsYXNzPVwidy1mdWxsXCIgW2JpbmRpbmdDbGFzc109XCInZmxleCByb3VuZGVkIG1iLTInXCIgW3dpZHRoXT1cIicxMDAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIicyNHB4J1wiPjwvc2ItdWljLXNrZWxldG9uLWxvYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYi11aWMtc2tlbGV0b24tbG9hZGVyIGNsYXNzPVwidy1mdWxsXCIgW2JpbmRpbmdDbGFzc109XCInZmxleCByb3VuZGVkJ1wiIFt3aWR0aF09XCInODAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIicyNHB4J1wiPjwvc2ItdWljLXNrZWxldG9uLWxvYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0zIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY29udGVudC1pY29uXCI+PHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgIFtiaW5kaW5nQ2xhc3NdPVwiJ2ZsZXggcm91bmRlZCBtYi0yJ1wiIFt3aWR0aF09XCInMjRweCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiJzI0cHgnXCI+PC9zYi11aWMtc2tlbGV0b24tbG9hZGVyPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8tb2YtY29udGVudHNcIj48c2ItdWljLXNrZWxldG9uLWxvYWRlciAgW2JpbmRpbmdDbGFzc109XCInZmxleCByb3VuZGVkICdcIiBbd2lkdGhdPVwiJzEwMHB4J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCInMjRweCdcIj48L3NiLXVpYy1za2VsZXRvbi1sb2FkZXI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZSBtdC0zIG10LTJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0zIHB0LTQgY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYi11aWMtc2tlbGV0b24tbG9hZGVyIGNsYXNzPVwidy0yLzVcIiBbYmluZGluZ0NsYXNzXT1cIidmbGV4IHJvdW5kZWQgJ1wiIFt3aWR0aF09XCInMTAwcHgnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiJzI0cHgnXCI+PC9zYi11aWMtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgY2xhc3M9XCJ3LTIvNVwiICBbYmluZGluZ0NsYXNzXT1cIidmbGV4IHJvdW5kZWQgJ1wiIFt3aWR0aF09XCInMTAwcHgnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiJzI0cHgnXCI+PC9zYi11aWMtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNiLXVpYy1za2VsZXRvbi1sb2FkZXIgY2xhc3M9XCJ3LTIvNVwiIFtiaW5kaW5nQ2xhc3NdPVwiJ2ZsZXggcm91bmRlZCAnXCIgW3dpZHRoXT1cIicxMDBweCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCInMjRweCdcIj48L3NiLXVpYy1za2VsZXRvbi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==