@sunbird-cb/toc 0.0.9 → 0.0.11

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 (495) hide show
  1. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +55 -55
  2. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -126
  3. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -32
  4. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -85
  5. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -100
  6. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -48
  7. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -120
  8. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -92
  9. package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -48
  10. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -25
  11. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -41
  12. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -89
  13. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -42
  14. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -41
  15. package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -78
  16. package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -45
  17. package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -2
  18. package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -70
  19. package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -28
  20. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -187
  21. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -86
  22. package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -31
  23. package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -941
  24. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -183
  25. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -327
  26. package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -297
  27. package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +272 -248
  28. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +1202 -1148
  29. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -16
  30. package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -43
  31. package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -133
  32. package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -66
  33. package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -278
  34. package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -21
  35. package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -21
  36. package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -847
  37. package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -219
  38. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -209
  39. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -26
  40. package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -19
  41. package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -23
  42. package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -113
  43. package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -110
  44. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -26
  45. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -19
  46. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -67
  47. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -28
  48. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -77
  49. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -2
  50. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -61
  51. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -20
  52. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +67 -67
  53. package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -139
  54. package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -71
  55. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -34
  56. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -56
  57. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -25
  58. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -37
  59. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -32
  60. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -30
  61. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -38
  62. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -51
  63. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -115
  64. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -12
  65. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -51
  66. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -61
  67. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -87
  68. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -36
  69. package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -62
  70. package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -24
  71. package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -192
  72. package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -44
  73. package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -99
  74. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -58
  75. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -67
  76. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -112
  77. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -2
  78. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -69
  79. package/esm2022/lib/_collection-api.mjs +57 -57
  80. package/esm2022/lib/_constants/widget-content.constants.mjs +19 -19
  81. package/esm2022/lib/_directives/tooltip.directive.mjs +68 -68
  82. package/esm2022/lib/_models/common.model.mjs +2 -2
  83. package/esm2022/lib/_models/error.model.mjs +2 -2
  84. package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -24
  85. package/esm2022/lib/_services/rating.service.mjs +89 -89
  86. package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -29
  87. package/esm2022/lib/_services/viewer-route-util.mjs +103 -103
  88. package/esm2022/lib/_services/widget-content.model.mjs +247 -247
  89. package/esm2022/lib/_services/widget-content.service.mjs +594 -594
  90. package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -9
  91. package/esm2022/lib/app-toc-lib.module.mjs +499 -499
  92. package/esm2022/lib/collection.config.mjs +161 -161
  93. package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -37
  94. package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -1436
  95. package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -475
  96. package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -119
  97. package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -80
  98. package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -249
  99. package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -39
  100. package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -58
  101. package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -2229
  102. package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2938 -2907
  103. package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -157
  104. package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -48
  105. package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -47
  106. package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -766
  107. package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -243
  108. package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -116
  109. package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -44
  110. package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -1838
  111. package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -236
  112. package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -213
  113. package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -36
  114. package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -256
  115. package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -133
  116. package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -36
  117. package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -2
  118. package/esm2022/lib/models/app-toc.model.mjs +38 -38
  119. package/esm2022/lib/models/auto-complete.model.mjs +2 -2
  120. package/esm2022/lib/models/card-content.model.mjs +13 -13
  121. package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -2
  122. package/esm2022/lib/models/discussion-forum.model.mjs +14 -14
  123. package/esm2022/lib/models/goal.model.mjs +2 -2
  124. package/esm2022/lib/models/meta-tag.model.mjs +8 -8
  125. package/esm2022/lib/models/playlist.model.mjs +2 -2
  126. package/esm2022/lib/models/profile-revamp.model.mjs +2 -2
  127. package/esm2022/lib/models/rating.model.mjs +2 -2
  128. package/esm2022/lib/models/user-profile.model.mjs +21 -21
  129. package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -24
  130. package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -24
  131. package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -60
  132. package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -25
  133. package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -106
  134. package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -25
  135. package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -25
  136. package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -25
  137. package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -51
  138. package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -16
  139. package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -18
  140. package/esm2022/lib/services/access-control.service.mjs +56 -56
  141. package/esm2022/lib/services/action.service.mjs +23 -23
  142. package/esm2022/lib/services/app-toc-v2.service.mjs +333 -313
  143. package/esm2022/lib/services/app-toc.service.mjs +1647 -1613
  144. package/esm2022/lib/services/certificate.service.mjs +69 -69
  145. package/esm2022/lib/services/discuss-utils.service.mjs +58 -58
  146. package/esm2022/lib/services/editor.service.mjs +34 -34
  147. package/esm2022/lib/services/load-check.service.mjs +21 -21
  148. package/esm2022/lib/services/loader.service.mjs +33 -33
  149. package/esm2022/lib/services/mobile-apps.service.mjs +67 -67
  150. package/esm2022/lib/services/netcore.service.mjs +56 -56
  151. package/esm2022/lib/services/nps-grid.service.mjs +31 -31
  152. package/esm2022/lib/services/otp.service.mjs +43 -43
  153. package/esm2022/lib/services/profile-v2.service.mjs +43 -43
  154. package/esm2022/lib/services/reset-ratings.service.mjs +19 -19
  155. package/esm2022/lib/services/resource-download-helper.service.mjs +64 -64
  156. package/esm2022/lib/services/timer.service.mjs +23 -23
  157. package/esm2022/lib/services/title-tag.service.mjs +71 -71
  158. package/esm2022/lib/services/user-profile.service.mjs +55 -55
  159. package/esm2022/lib/services/viewer-data.service.mjs +64 -64
  160. package/esm2022/lib/services/viewer-util.service.mjs +599 -590
  161. package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -291
  162. package/esm2022/lib/share-toc/share-toc.module.mjs +119 -119
  163. package/esm2022/public-api.mjs +73 -71
  164. package/esm2022/sunbird-cb-toc.mjs +4 -4
  165. package/fesm2022/sunbird-cb-toc.mjs +24942 -24771
  166. package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
  167. package/index.d.ts +6 -5
  168. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +17 -16
  169. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +1 -0
  170. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +32 -31
  171. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +1 -0
  172. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +16 -15
  173. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +1 -0
  174. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +21 -20
  175. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +1 -0
  176. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +23 -22
  177. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +1 -0
  178. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +16 -15
  179. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +1 -0
  180. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +23 -22
  181. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +1 -0
  182. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +23 -22
  183. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +1 -0
  184. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +10 -9
  185. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +1 -0
  186. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +12 -11
  187. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +1 -0
  188. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +13 -12
  189. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +1 -0
  190. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +19 -18
  191. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +1 -0
  192. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +15 -14
  193. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +1 -0
  194. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +12 -11
  195. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +1 -0
  196. package/lib/_collection/_common/connection-name/connection-name.component.d.ts +18 -17
  197. package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +1 -0
  198. package/lib/_collection/_common/connection-name/connection-name.module.d.ts +15 -14
  199. package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +1 -0
  200. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +200 -199
  201. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +1 -0
  202. package/lib/_collection/_common/content-progress/content-progress.component.d.ts +17 -16
  203. package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +1 -0
  204. package/lib/_collection/_common/content-progress/content-progress.module.d.ts +11 -10
  205. package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +1 -0
  206. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +39 -38
  207. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +1 -0
  208. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +20 -19
  209. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +1 -0
  210. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +12 -11
  211. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +1 -0
  212. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +184 -183
  213. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +1 -0
  214. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +42 -41
  215. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +1 -0
  216. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +55 -54
  217. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +1 -0
  218. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +48 -47
  219. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +1 -0
  220. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +57 -49
  221. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +1 -0
  222. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +186 -171
  223. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +1 -0
  224. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +9 -8
  225. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +1 -0
  226. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +17 -16
  227. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +1 -0
  228. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +41 -40
  229. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +1 -0
  230. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +22 -21
  231. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +1 -0
  232. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +46 -45
  233. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +1 -0
  234. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +11 -10
  235. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +1 -0
  236. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +11 -10
  237. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +1 -0
  238. package/lib/_collection/_common/content-toc/content-toc.component.d.ts +129 -128
  239. package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +1 -0
  240. package/lib/_collection/_common/content-toc/content-toc.module.d.ts +52 -51
  241. package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +1 -0
  242. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +30 -29
  243. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +1 -0
  244. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +10 -9
  245. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +1 -0
  246. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +8 -7
  247. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +1 -0
  248. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +8 -7
  249. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +1 -0
  250. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +29 -28
  251. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +1 -0
  252. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +25 -24
  253. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +1 -0
  254. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +15 -14
  255. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +1 -0
  256. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +10 -9
  257. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +1 -0
  258. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +13 -12
  259. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +1 -0
  260. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +11 -10
  261. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +1 -0
  262. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +23 -22
  263. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +1 -0
  264. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +9 -8
  265. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +1 -0
  266. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +19 -18
  267. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +1 -0
  268. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +9 -8
  269. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +1 -0
  270. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +16 -15
  271. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +1 -0
  272. package/lib/_collection/_common/player-brief/player-brief.component.d.ts +36 -35
  273. package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +1 -0
  274. package/lib/_collection/_common/player-brief/player-brief.module.d.ts +20 -19
  275. package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +1 -0
  276. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +15 -14
  277. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +1 -0
  278. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +14 -13
  279. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +1 -0
  280. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +12 -11
  281. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +1 -0
  282. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +12 -11
  283. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +1 -0
  284. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +16 -15
  285. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +1 -0
  286. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +11 -10
  287. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +1 -0
  288. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +17 -16
  289. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +1 -0
  290. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +12 -11
  291. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +1 -0
  292. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +35 -34
  293. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +1 -0
  294. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +18 -17
  295. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +1 -0
  296. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +16 -15
  297. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +1 -0
  298. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +16 -15
  299. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +1 -0
  300. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +22 -21
  301. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +1 -0
  302. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +13 -12
  303. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +1 -0
  304. package/lib/_collection/_common/user-image/user-image.component.d.ts +22 -21
  305. package/lib/_collection/_common/user-image/user-image.component.d.ts.map +1 -0
  306. package/lib/_collection/_common/user-image/user-image.module.d.ts +10 -9
  307. package/lib/_collection/_common/user-image/user-image.module.d.ts.map +1 -0
  308. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +48 -47
  309. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +1 -0
  310. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +15 -14
  311. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +1 -0
  312. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +23 -22
  313. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +1 -0
  314. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +20 -19
  315. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +1 -0
  316. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +16 -15
  317. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +1 -0
  318. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +26 -25
  319. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +1 -0
  320. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +22 -21
  321. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +1 -0
  322. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +19 -18
  323. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +1 -0
  324. package/lib/_collection-api.d.ts +35 -34
  325. package/lib/_collection-api.d.ts.map +1 -0
  326. package/lib/_constants/widget-content.constants.d.ts +8 -7
  327. package/lib/_constants/widget-content.constants.d.ts.map +1 -0
  328. package/lib/_directives/tooltip.directive.d.ts +18 -17
  329. package/lib/_directives/tooltip.directive.d.ts.map +1 -0
  330. package/lib/_models/common.model.d.ts +4 -3
  331. package/lib/_models/common.model.d.ts.map +1 -0
  332. package/lib/_models/error.model.d.ts +6 -5
  333. package/lib/_models/error.model.d.ts.map +1 -0
  334. package/lib/_pipes/highlight.pipe.d.ts +11 -10
  335. package/lib/_pipes/highlight.pipe.d.ts.map +1 -0
  336. package/lib/_services/rating.service.d.ts +19 -18
  337. package/lib/_services/rating.service.d.ts.map +1 -0
  338. package/lib/_services/samuhik-charcha.service.d.ts +14 -13
  339. package/lib/_services/samuhik-charcha.service.d.ts.map +1 -0
  340. package/lib/_services/viewer-route-util.d.ts +9 -8
  341. package/lib/_services/viewer-route-util.d.ts.map +1 -0
  342. package/lib/_services/widget-content.model.d.ts +516 -515
  343. package/lib/_services/widget-content.model.d.ts.map +1 -0
  344. package/lib/_services/widget-content.service.d.ts +102 -101
  345. package/lib/_services/widget-content.service.d.ts.map +1 -0
  346. package/lib/_shared/translate-loader.factory.d.ts +8 -7
  347. package/lib/_shared/translate-loader.factory.d.ts.map +1 -0
  348. package/lib/app-toc-lib.module.d.ts +89 -88
  349. package/lib/app-toc-lib.module.d.ts.map +1 -0
  350. package/lib/collection.config.d.ts +160 -159
  351. package/lib/collection.config.d.ts.map +1 -0
  352. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +18 -17
  353. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +1 -0
  354. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +226 -225
  355. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +1 -0
  356. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +79 -78
  357. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +1 -0
  358. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +23 -22
  359. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +1 -0
  360. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +32 -31
  361. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +1 -0
  362. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +48 -47
  363. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +1 -0
  364. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +15 -14
  365. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +1 -0
  366. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +22 -21
  367. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +1 -0
  368. package/lib/components/app-toc-home/app-toc-home.component.d.ts +315 -314
  369. package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +1 -0
  370. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +415 -408
  371. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +1 -0
  372. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +48 -47
  373. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +1 -0
  374. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +23 -22
  375. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +1 -0
  376. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +15 -14
  377. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +1 -0
  378. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +150 -149
  379. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +1 -0
  380. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +43 -42
  381. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +1 -0
  382. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +28 -27
  383. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +1 -0
  384. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +16 -15
  385. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +1 -0
  386. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +196 -195
  387. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +1 -0
  388. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +45 -44
  389. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +1 -0
  390. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +55 -54
  391. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +1 -0
  392. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +19 -18
  393. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +1 -0
  394. package/lib/components/public-survey-form/public-survey-form.component.d.ts +44 -43
  395. package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +1 -0
  396. package/lib/components/survey-form-question/survey-form-question.component.d.ts +21 -20
  397. package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +1 -0
  398. package/lib/components/survey-form-section/survey-form-section.component.d.ts +14 -13
  399. package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +1 -0
  400. package/lib/models/app-toc-analytics.model.d.ts +153 -152
  401. package/lib/models/app-toc-analytics.model.d.ts.map +1 -0
  402. package/lib/models/app-toc.model.d.ts +85 -84
  403. package/lib/models/app-toc.model.d.ts.map +1 -0
  404. package/lib/models/auto-complete.model.d.ts +28 -27
  405. package/lib/models/auto-complete.model.d.ts.map +1 -0
  406. package/lib/models/card-content.model.d.ts +20 -19
  407. package/lib/models/card-content.model.d.ts.map +1 -0
  408. package/lib/models/content-strip-with-tabs.model.d.ts +45 -44
  409. package/lib/models/content-strip-with-tabs.model.d.ts.map +1 -0
  410. package/lib/models/discussion-forum.model.d.ts +41 -40
  411. package/lib/models/discussion-forum.model.d.ts.map +1 -0
  412. package/lib/models/goal.model.d.ts +23 -22
  413. package/lib/models/goal.model.d.ts.map +1 -0
  414. package/lib/models/meta-tag.model.d.ts +7 -6
  415. package/lib/models/meta-tag.model.d.ts.map +1 -0
  416. package/lib/models/playlist.model.d.ts +24 -23
  417. package/lib/models/playlist.model.d.ts.map +1 -0
  418. package/lib/models/profile-revamp.model.d.ts +15 -14
  419. package/lib/models/profile-revamp.model.d.ts.map +1 -0
  420. package/lib/models/rating.model.d.ts +18 -17
  421. package/lib/models/rating.model.d.ts.map +1 -0
  422. package/lib/models/user-profile.model.d.ts +38 -37
  423. package/lib/models/user-profile.model.d.ts.map +1 -0
  424. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +13 -12
  425. package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +1 -0
  426. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +13 -12
  427. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +1 -0
  428. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +17 -16
  429. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +1 -0
  430. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +13 -12
  431. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +1 -0
  432. package/lib/resolvers/app-toc-resolver.service.d.ts +17 -16
  433. package/lib/resolvers/app-toc-resolver.service.d.ts.map +1 -0
  434. package/lib/resolvers/config-resolver.service.d.ts +12 -11
  435. package/lib/resolvers/config-resolver.service.d.ts.map +1 -0
  436. package/lib/resolvers/profile-resolver.service.d.ts +12 -11
  437. package/lib/resolvers/profile-resolver.service.d.ts.map +1 -0
  438. package/lib/resolvers/restricted-features-resolver.service.d.ts +12 -11
  439. package/lib/resolvers/restricted-features-resolver.service.d.ts.map +1 -0
  440. package/lib/routes/app-toc-home/app-toc-home.component.d.ts +20 -19
  441. package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +1 -0
  442. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +9 -8
  443. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +1 -0
  444. package/lib/routes/app-toc-home/app-toc-home.service.d.ts +9 -8
  445. package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +1 -0
  446. package/lib/services/access-control.service.d.ts +30 -29
  447. package/lib/services/access-control.service.d.ts.map +1 -0
  448. package/lib/services/action.service.d.ts +10 -9
  449. package/lib/services/action.service.d.ts.map +1 -0
  450. package/lib/services/app-toc-v2.service.d.ts +17 -16
  451. package/lib/services/app-toc-v2.service.d.ts.map +1 -0
  452. package/lib/services/app-toc.service.d.ts +241 -235
  453. package/lib/services/app-toc.service.d.ts.map +1 -0
  454. package/lib/services/certificate.service.d.ts +43 -42
  455. package/lib/services/certificate.service.d.ts.map +1 -0
  456. package/lib/services/discuss-utils.service.d.ts +34 -33
  457. package/lib/services/discuss-utils.service.d.ts.map +1 -0
  458. package/lib/services/editor.service.d.ts +18 -17
  459. package/lib/services/editor.service.d.ts.map +1 -0
  460. package/lib/services/load-check.service.d.ts +9 -8
  461. package/lib/services/load-check.service.d.ts.map +1 -0
  462. package/lib/services/loader.service.d.ts +17 -16
  463. package/lib/services/loader.service.d.ts.map +1 -0
  464. package/lib/services/mobile-apps.service.d.ts +39 -38
  465. package/lib/services/mobile-apps.service.d.ts.map +1 -0
  466. package/lib/services/netcore.service.d.ts +34 -33
  467. package/lib/services/netcore.service.d.ts.map +1 -0
  468. package/lib/services/nps-grid.service.d.ts +16 -15
  469. package/lib/services/nps-grid.service.d.ts.map +1 -0
  470. package/lib/services/otp.service.d.ts +21 -20
  471. package/lib/services/otp.service.d.ts.map +1 -0
  472. package/lib/services/profile-v2.service.d.ts +21 -20
  473. package/lib/services/profile-v2.service.d.ts.map +1 -0
  474. package/lib/services/reset-ratings.service.d.ts +9 -8
  475. package/lib/services/reset-ratings.service.d.ts.map +1 -0
  476. package/lib/services/resource-download-helper.service.d.ts +30 -29
  477. package/lib/services/resource-download-helper.service.d.ts.map +1 -0
  478. package/lib/services/timer.service.d.ts +10 -9
  479. package/lib/services/timer.service.d.ts.map +1 -0
  480. package/lib/services/title-tag.service.d.ts +22 -21
  481. package/lib/services/title-tag.service.d.ts.map +1 -0
  482. package/lib/services/user-profile.service.d.ts +25 -24
  483. package/lib/services/user-profile.service.d.ts.map +1 -0
  484. package/lib/services/viewer-data.service.d.ts +59 -58
  485. package/lib/services/viewer-data.service.d.ts.map +1 -0
  486. package/lib/services/viewer-util.service.d.ts +77 -76
  487. package/lib/services/viewer-util.service.d.ts.map +1 -0
  488. package/lib/share-toc/share-toc/share-toc.component.d.ts +57 -56
  489. package/lib/share-toc/share-toc/share-toc.component.d.ts.map +1 -0
  490. package/lib/share-toc/share-toc.module.d.ts +33 -32
  491. package/lib/share-toc/share-toc.module.d.ts.map +1 -0
  492. package/package.json +1 -1
  493. package/public-api.d.ts +59 -56
  494. package/public-api.d.ts.map +1 -0
  495. package/sunbird-cb-toc.d.ts.map +1 -0
@@ -1,133 +1,133 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- import { Component, Input } from '@angular/core';
3
- import { NsContent } from '@sunbird-cb/utils-v2';
4
- import { viewerRouteGenerator } from '../../../../_services/viewer-route-util';
5
- import moment from 'moment';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/material/icon";
10
- import * as i4 from "../../attendance-card/attendance-card.component";
11
- import * as i5 from "@ngx-translate/core";
12
- export class AppTocSessionCardNewComponent {
13
- constructor(router) {
14
- this.router = router;
15
- this.session = null;
16
- this.expandAll = false;
17
- this.forPreview = false;
18
- this.content = null;
19
- this.isEnabled = true;
20
- this.isAllowed = true;
21
- this.viewChildren = true;
22
- }
23
- ngOnInit() {
24
- }
25
- redirectToPage() {
26
- if (this.isAllowed && !this.forPreview && this.isEnabled && this.batchData && this.batchData.enrolled) {
27
- this.router.navigate([this.resourceLink.url], { queryParams: this.resourceLink.queryParams });
28
- }
29
- // [routerLink]="(isAllowed && !forPreview && isEnabled) ? resourceLink.url : null"
30
- // [queryParams]="(isAllowed && !forPreview && isEnabled) ? resourceLink.queryParams : null"
31
- }
32
- raiseTelemetry() { }
33
- progressColor() {
34
- return '#1D8923';
35
- }
36
- progressColor2() {
37
- return '#f27d00';
38
- }
39
- get isCollection() {
40
- if (this.content) {
41
- return this.content.mimeType === NsContent.EMimeTypes.COLLECTION;
42
- }
43
- return false;
44
- }
45
- get isResource() {
46
- if (this.content) {
47
- return (this.content.primaryCategory === NsContent.EPrimaryCategory.OFFLINE_SESSION);
48
- }
49
- return false;
50
- }
51
- get isModule() {
52
- if (this.content) {
53
- return this.content.primaryCategory === NsContent.EPrimaryCategory.MODULE;
54
- }
55
- return false;
56
- }
57
- get resourceLink() {
58
- if (this.content) {
59
- const url = viewerRouteGenerator(this.content.identifier, this.content.mimeType, this.rootId, this.rootContentType, this.forPreview, this.content.primaryCategory, this.batchId);
60
- /* tslint:disable-next-line */
61
- // console.log(this.content.identifier, '------', url,'=====> content card url link <========')
62
- return url;
63
- }
64
- return { url: '', queryParams: {} };
65
- }
66
- get isBatchInProgess() {
67
- if (this.batchData && (this.batchData.content && this.batchData.content.length) && this.batchData.enrolled) {
68
- const batchData = this.batchData.content[0];
69
- if (batchData && batchData.endDate) {
70
- const now = moment().format('YYYY-MM-DD');
71
- const startDate = moment(batchData.startDate).format('YYYY-MM-DD');
72
- const endDate = batchData.endDate ? moment(batchData.endDate).format('YYYY-MM-DD') : now;
73
- return (
74
- // batch.status &&
75
- moment(startDate).isSameOrBefore(now)
76
- && moment(endDate).isSameOrAfter(now));
77
- }
78
- return true;
79
- }
80
- return false;
81
- }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionCardNewComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AppTocSessionCardNewComponent, selector: "ws-widget-app-toc-session-card-new", inputs: { session: "session", expandAll: "expandAll", rootId: "rootId", rootContentType: "rootContentType", forPreview: "forPreview", batchData: "batchData", config: "config", index: "index", batchId: "batchId", content: "content", pathSet: "pathSet", sessionType: "sessionType" }, ngImport: i0, template: "<ng-container *ngIf=\"content\">\r\n <ng-container *ngIf=\"isCollection && !isModule\">\r\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isCollection && isModule\">\r\n <ng-container *ngIf=\"content?.offlineResourseCount\">\r\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <div *ngIf=\"isResource\" class=\"resource-container mt-4\">\r\n <div class=\"resource flex flex-wrap sm:flex-col flex-start width-expand w-100 sm:w-auto\">\r\n <a class=\"w-full\" [class.disabled]=\"(forPreview || !isEnabled || !isBatchInProgess) ? true : null\"\r\n (click)=\"redirectToPage()\">\r\n <div class=\"text-truncate1 \" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\r\n (click)=\"viewChildren = !viewChildren; raiseTelemetry();\">\r\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\r\n <p class=\"margin-remove text-truncate1 mat-body-2 flex-auto font-bold\"\r\n [ngClass]=\"{'text-active': pathSet?.has(content?.identifier)}\">\r\n {{ content?.name }} <span class=\"margin-left-s\"\r\n [ngClass]=\"{'offline': session[content?.identifier]?.sessionType.toLowerCase() === 'offline','online':session[content?.identifier]?.sessionType.toLowerCase() !== 'offline'}\">\r\n {{session[content?.identifier]?.sessionType || ''}}</span>\r\n </p>\r\n <span class=\"content-type optional-span\" *ngIf=\"content?.optionalReading\">optional </span>\r\n\r\n </div>\r\n <div class=\"mat-body-2 ws-mat-black60-text mt-2\">\r\n <div class=\"flex flex-1 flex-row\">\r\n <!-- <div class=\"flex margin-right-s capitalize\">{{session[content?.identifier]?.sessionType || ''}}</div> -->\r\n <div class=\"flex margin-right-s\">{{session[content?.identifier]?.startDate | date: 'MMM d, y' }}\r\n </div>\r\n <div class=\"flex bullet-span\">{{session[content?.identifier]?.sessionDuration || '_'}}\r\n <span class=\"margin-left-s bullet-span\">{{session[content?.identifier]?.startTime || '_' }} -\r\n {{session[content?.identifier]?.endTime || '_'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- {{ content?.sYS_INTERNAL_LAST_UPDATED_ON | date: 'MMM d, y' }} -->\r\n </div>\r\n </a>\r\n <ng-container *ngIf=\"batchData?.enrolled\">\r\n <div *ngIf=\"session[content?.identifier]?.sessionHandouts?.length > 0\">\r\n <div class=\"flex flex-row font-normal py-2\">\r\n {{'apptocsessionscards.sessionHandouts' | translate }}\r\n </div>\r\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\r\n *ngFor=\"let handout of session[content?.identifier]?.sessionHandouts\">\r\n <div class=\"mr-2\">{{handout.title}}</div>\r\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{handout.url}}\">\r\n {{'apptocsessionscards.download' | translate }}\r\n </a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"batchData?.enrolled && session[content?.identifier]?.resources?.length > 0\">\r\n <div class=\"flex flex-row font-normal py-2\">{{'apptocsessionscards.resources' | translate }}</div>\r\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\r\n *ngFor=\"let resource of session[content?.identifier]?.resources\">\r\n <div class=\"mr-2\">{{resource.resourceTitle}}</div>\r\n <a class=\"download-resource-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\r\n *ngIf=\"resource?.resourceType === 'URL'\">\r\n {{'apptocsessionscards.view' | translate }}\r\n </a>\r\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\r\n *ngIf=\"resource?.resourceType !== 'URL'\">\r\n {{'apptocsessionscards.download' | translate }}\r\n </a>\r\n </div>\r\n </ng-container>\r\n <ng-container>\r\n <ws-widget-attendance-card [session]=\"session[content?.identifier]\"\r\n [config]=\"config\"></ws-widget-attendance-card>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #collectionTemplate>\r\n <ng-container *ngIf=\"isCollection\">\r\n <ng-container *ngIf=\"isModule\">\r\n <div class=\"collection-wrapper flex flex-col position-relative\"\r\n [ngClass]=\"{'open': viewChildren, 'close': !viewChildren, 'course':!isModule, ' module': isModule}\">\r\n <div class=\"card-collection w-auto sm:w-100 padding-right-xl\">\r\n <div class=\"flex flex-col flex-wrap flex-between width-expand pr-0 w-100 sm:pr-4 sm:w-auto\">\r\n <div class=\"text-truncate1\" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\r\n (click)=\"viewChildren = !viewChildren\">\r\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\r\n <ng-container *ngFor=\"let sType of sessionType\">\r\n <span class=\"flex\" class=\"margin-right-s\"\r\n [ngClass]=\"sType ==='offline' ? 'offline':'online'\">\r\n {{sType | titlecase}}\r\n </span>\r\n\r\n </ng-container>\r\n\r\n\r\n </div>\r\n <div class=\"flex flex-col sm:flex-row flex-wrap mt-2\">\r\n <p class=\"margin-remove text-truncate1 mat-body-1 flex-auto font-bold\">\r\n {{ content?.name }}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"see-all-container\">\r\n <a href=\"javascript:void(0)\" role=\"button\" (click)=\"viewChildren = !viewChildren\"\r\n class=\"margin-left-m see-all-btn tab custom-chevron customicon\" mat-button>\r\n <mat-icon *ngIf=\"!viewChildren && !isModule\">keyboard_arrow_down</mat-icon>\r\n <mat-icon *ngIf=\"viewChildren && !isModule\">keyboard_arrow_up</mat-icon>\r\n <mat-icon *ngIf=\"!viewChildren && isModule\">arrow_drop_down</mat-icon>\r\n <mat-icon *ngIf=\"viewChildren && isModule\">arrow_drop_up</mat-icon>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"batchData?.enrolled\">\r\n <div *ngIf=\"content?.sessionHandouts?.length > 0\">\r\n <p class=\" font-bold mat-body-1 margin-bottom-xs ws-mat-black60-text\">\r\n {{'apptocsessionscards.sessionHandouts' | translate }}</p>\r\n <div class=\"flex flex-col flex-wrapped margin-bottom-s width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\r\n <ng-container *ngFor=\"let handout of content?.sessionHandouts\">\r\n <div class=\"\">\r\n <span class=\"mr-4\">{{handout.title}}</span>\r\n <a class=\"download-link\" target=\u201D_blank\u201D download\r\n href=\"{{handout.url}}\">{{'apptocsessionscards.download' | translate }}</a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"child-wrapper \" [ngClass]=\"{'open': viewChildren, 'close': !viewChildren}\" *ngIf=\"viewChildren\"\r\n [@panelInOut]>\r\n <div class=\"children-container\" [ngClass]=\"{'module': isModule, '': !isModule}\">\r\n <ws-widget-app-toc-session-card-new [forPreview]=\"forPreview\" [pathSet]=\"pathSet\" [content]=\"child\"\r\n [index]=\"j+1\" [expandAll]=\"expandAll\" [rootId]=\"rootId\" [batchId]=\"batchId\"\r\n [rootContentType]=\"rootContentType\" [batchData]=\"batchData\" [config]=\"config\" [sessionType]=\"sessionType\"\r\n [session]=\"session\"\r\n *ngFor=\"let child of content?.children; trackBy: contentTrackBy; let j= index;let isFirst = first\"\r\n [ngClass]=\"{'moduleCard': true, 'first': isFirst}\"></ws-widget-app-toc-session-card-new>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>", styles: ["@charset \"UTF-8\";.customicon{position:absolute;top:-.5em;right:0}a.disabled{pointer-events:none;cursor:default}.card{background:#e5e9ef;border-radius:5px;padding:10px;margin:10px 0}span.optional-span{margin-left:8px;padding:0 6px;border-radius:2px;display:inline-block;background-color:#0074b6;color:#fff;font-size:12px}.card-collection{display:flex;align-items:center;border-radius:8px}.card-collection .card-thumbnail{height:100%;margin-right:12px;cursor:pointer;border-radius:8px 0 0}@media only screen and (max-width: 469px){.card-collection{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.card-collection .card-thumbnail{height:100%!important;width:100%!important}.card-collection .text-truncate{white-space:unset!important}}.tab:focus{outline:1px solid!important}.resource-container .card-thumbnail{height:100%;cursor:pointer}.resource-container .img-container{position:relative;margin-right:12px}.resource-container .img-container ws-widget-content-progress{position:absolute;left:0;right:0;bottom:5px}@media only screen and (max-width: 469px){.resource-container{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.resource-container .card-thumbnail{height:100%!important;width:100%!important}.resource-container .text-truncate{white-space:unset!important}}.child-meta-container{margin-top:8px;display:flex}.child-meta-container .child-structure{display:flex;align-items:center;flex-wrap:wrap}.child-meta-container .child-structure span{margin-right:12px;text-align:center;margin-bottom:8px}.child-meta-container .child-structure .structure-icon{margin-right:12px}@media only screen and (max-width: 469px){.child-meta-container{margin-left:.5rem;justify-content:space-between}}.resource-container{display:flex;align-items:center;border-radius:8px}.resource-container ws-display-content-type-icon{display:flex;align-items:center}.resource-container .resource-meta{margin-left:12px;display:flex;justify-content:space-between;align-items:center}.children-container .mat-subheading-1{font:400 16px/24px Lato!important}.children-container .resource-container{margin-bottom:20px;margin-right:8px}.children-container .resource-container .card-thumbnail{height:65px;align-self:center}.content-heading{letter-spacing:0px;color:#222}.content-type{letter-spacing:0px}.time-icon{vertical-align:middle}.time-value{letter-spacing:0px;color:#222;text-transform:lowercase}.see-all-container{position:absolute;right:2px;top:5px}.oval-white{background:#fff 0% 0% no-repeat padding-box;border-radius:8px;padding:2px 8px}.type-container{letter-spacing:0px;display:flex;align-items:center}.type-container .rotate-90{transform:rotate(-90deg)}.type-container .custom-icon{width:18px;height:18px;font-size:18px;margin-right:8px}.type-container.resource{color:#00a9f4}.type-container.module{color:#34d6a4}.type-container.course{color:#f58634}.no-mb{margin-bottom:0!important}.w-100{width:100%}.w-auto{width:auto}.progress-bar-thin{height:5px!important}.progress-bar-thin ::ng-deep .mat-progress-bar{height:5px}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-buffer{background-color:transparent!important}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-background{fill:transparent}.radiobtn{color:#00000029}.resicons img{width:22px;opacity:.5;margin-top:2px;vertical-align:sub}.bullet-span:before{content:\"\\2022\";padding-right:12px}.download-link{opacity:1;color:#0074b6;font-size:12px;font-weight:700;font-style:normal;letter-spacing:.5px;line-height:20px;text-transform:uppercase}.offline{border-radius:2px;background-color:#0009;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:-moz-fit-content;width:fit-content}.online{border-radius:2px;background-color:#1d8923;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:-moz-fit-content;width:fit-content}.text-active{color:#1a4ca1}.text-active.font-bold{font-weight:600}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.AttendanceCardComponent, selector: "ws-widget-attendance-card", inputs: ["session", "status", "config", "showInfo"] }, { kind: "component", type: AppTocSessionCardNewComponent, selector: "ws-widget-app-toc-session-card-new", inputs: ["session", "expandAll", "rootId", "rootContentType", "forPreview", "batchData", "config", "index", "batchId", "content", "pathSet", "sessionType"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [
84
- trigger('panelInOut', [
85
- transition('void => *', [
86
- style({ transform: 'translateY(-10%)', opacity: '0' }),
87
- animate(250),
88
- ]),
89
- transition('* => void', [
90
- animate(200, style({ transform: 'translateY(-10%)', opacity: '0' })),
91
- ]),
92
- ])
93
- ] }); }
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionCardNewComponent, decorators: [{
96
- type: Component,
97
- args: [{ selector: 'ws-widget-app-toc-session-card-new', animations: [
98
- trigger('panelInOut', [
99
- transition('void => *', [
100
- style({ transform: 'translateY(-10%)', opacity: '0' }),
101
- animate(250),
102
- ]),
103
- transition('* => void', [
104
- animate(200, style({ transform: 'translateY(-10%)', opacity: '0' })),
105
- ]),
106
- ])
107
- ], template: "<ng-container *ngIf=\"content\">\r\n <ng-container *ngIf=\"isCollection && !isModule\">\r\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isCollection && isModule\">\r\n <ng-container *ngIf=\"content?.offlineResourseCount\">\r\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <div *ngIf=\"isResource\" class=\"resource-container mt-4\">\r\n <div class=\"resource flex flex-wrap sm:flex-col flex-start width-expand w-100 sm:w-auto\">\r\n <a class=\"w-full\" [class.disabled]=\"(forPreview || !isEnabled || !isBatchInProgess) ? true : null\"\r\n (click)=\"redirectToPage()\">\r\n <div class=\"text-truncate1 \" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\r\n (click)=\"viewChildren = !viewChildren; raiseTelemetry();\">\r\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\r\n <p class=\"margin-remove text-truncate1 mat-body-2 flex-auto font-bold\"\r\n [ngClass]=\"{'text-active': pathSet?.has(content?.identifier)}\">\r\n {{ content?.name }} <span class=\"margin-left-s\"\r\n [ngClass]=\"{'offline': session[content?.identifier]?.sessionType.toLowerCase() === 'offline','online':session[content?.identifier]?.sessionType.toLowerCase() !== 'offline'}\">\r\n {{session[content?.identifier]?.sessionType || ''}}</span>\r\n </p>\r\n <span class=\"content-type optional-span\" *ngIf=\"content?.optionalReading\">optional </span>\r\n\r\n </div>\r\n <div class=\"mat-body-2 ws-mat-black60-text mt-2\">\r\n <div class=\"flex flex-1 flex-row\">\r\n <!-- <div class=\"flex margin-right-s capitalize\">{{session[content?.identifier]?.sessionType || ''}}</div> -->\r\n <div class=\"flex margin-right-s\">{{session[content?.identifier]?.startDate | date: 'MMM d, y' }}\r\n </div>\r\n <div class=\"flex bullet-span\">{{session[content?.identifier]?.sessionDuration || '_'}}\r\n <span class=\"margin-left-s bullet-span\">{{session[content?.identifier]?.startTime || '_' }} -\r\n {{session[content?.identifier]?.endTime || '_'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- {{ content?.sYS_INTERNAL_LAST_UPDATED_ON | date: 'MMM d, y' }} -->\r\n </div>\r\n </a>\r\n <ng-container *ngIf=\"batchData?.enrolled\">\r\n <div *ngIf=\"session[content?.identifier]?.sessionHandouts?.length > 0\">\r\n <div class=\"flex flex-row font-normal py-2\">\r\n {{'apptocsessionscards.sessionHandouts' | translate }}\r\n </div>\r\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\r\n *ngFor=\"let handout of session[content?.identifier]?.sessionHandouts\">\r\n <div class=\"mr-2\">{{handout.title}}</div>\r\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{handout.url}}\">\r\n {{'apptocsessionscards.download' | translate }}\r\n </a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"batchData?.enrolled && session[content?.identifier]?.resources?.length > 0\">\r\n <div class=\"flex flex-row font-normal py-2\">{{'apptocsessionscards.resources' | translate }}</div>\r\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\r\n *ngFor=\"let resource of session[content?.identifier]?.resources\">\r\n <div class=\"mr-2\">{{resource.resourceTitle}}</div>\r\n <a class=\"download-resource-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\r\n *ngIf=\"resource?.resourceType === 'URL'\">\r\n {{'apptocsessionscards.view' | translate }}\r\n </a>\r\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\r\n *ngIf=\"resource?.resourceType !== 'URL'\">\r\n {{'apptocsessionscards.download' | translate }}\r\n </a>\r\n </div>\r\n </ng-container>\r\n <ng-container>\r\n <ws-widget-attendance-card [session]=\"session[content?.identifier]\"\r\n [config]=\"config\"></ws-widget-attendance-card>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #collectionTemplate>\r\n <ng-container *ngIf=\"isCollection\">\r\n <ng-container *ngIf=\"isModule\">\r\n <div class=\"collection-wrapper flex flex-col position-relative\"\r\n [ngClass]=\"{'open': viewChildren, 'close': !viewChildren, 'course':!isModule, ' module': isModule}\">\r\n <div class=\"card-collection w-auto sm:w-100 padding-right-xl\">\r\n <div class=\"flex flex-col flex-wrap flex-between width-expand pr-0 w-100 sm:pr-4 sm:w-auto\">\r\n <div class=\"text-truncate1\" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\r\n (click)=\"viewChildren = !viewChildren\">\r\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\r\n <ng-container *ngFor=\"let sType of sessionType\">\r\n <span class=\"flex\" class=\"margin-right-s\"\r\n [ngClass]=\"sType ==='offline' ? 'offline':'online'\">\r\n {{sType | titlecase}}\r\n </span>\r\n\r\n </ng-container>\r\n\r\n\r\n </div>\r\n <div class=\"flex flex-col sm:flex-row flex-wrap mt-2\">\r\n <p class=\"margin-remove text-truncate1 mat-body-1 flex-auto font-bold\">\r\n {{ content?.name }}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"see-all-container\">\r\n <a href=\"javascript:void(0)\" role=\"button\" (click)=\"viewChildren = !viewChildren\"\r\n class=\"margin-left-m see-all-btn tab custom-chevron customicon\" mat-button>\r\n <mat-icon *ngIf=\"!viewChildren && !isModule\">keyboard_arrow_down</mat-icon>\r\n <mat-icon *ngIf=\"viewChildren && !isModule\">keyboard_arrow_up</mat-icon>\r\n <mat-icon *ngIf=\"!viewChildren && isModule\">arrow_drop_down</mat-icon>\r\n <mat-icon *ngIf=\"viewChildren && isModule\">arrow_drop_up</mat-icon>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"batchData?.enrolled\">\r\n <div *ngIf=\"content?.sessionHandouts?.length > 0\">\r\n <p class=\" font-bold mat-body-1 margin-bottom-xs ws-mat-black60-text\">\r\n {{'apptocsessionscards.sessionHandouts' | translate }}</p>\r\n <div class=\"flex flex-col flex-wrapped margin-bottom-s width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\r\n <ng-container *ngFor=\"let handout of content?.sessionHandouts\">\r\n <div class=\"\">\r\n <span class=\"mr-4\">{{handout.title}}</span>\r\n <a class=\"download-link\" target=\u201D_blank\u201D download\r\n href=\"{{handout.url}}\">{{'apptocsessionscards.download' | translate }}</a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"child-wrapper \" [ngClass]=\"{'open': viewChildren, 'close': !viewChildren}\" *ngIf=\"viewChildren\"\r\n [@panelInOut]>\r\n <div class=\"children-container\" [ngClass]=\"{'module': isModule, '': !isModule}\">\r\n <ws-widget-app-toc-session-card-new [forPreview]=\"forPreview\" [pathSet]=\"pathSet\" [content]=\"child\"\r\n [index]=\"j+1\" [expandAll]=\"expandAll\" [rootId]=\"rootId\" [batchId]=\"batchId\"\r\n [rootContentType]=\"rootContentType\" [batchData]=\"batchData\" [config]=\"config\" [sessionType]=\"sessionType\"\r\n [session]=\"session\"\r\n *ngFor=\"let child of content?.children; trackBy: contentTrackBy; let j= index;let isFirst = first\"\r\n [ngClass]=\"{'moduleCard': true, 'first': isFirst}\"></ws-widget-app-toc-session-card-new>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>", styles: ["@charset \"UTF-8\";.customicon{position:absolute;top:-.5em;right:0}a.disabled{pointer-events:none;cursor:default}.card{background:#e5e9ef;border-radius:5px;padding:10px;margin:10px 0}span.optional-span{margin-left:8px;padding:0 6px;border-radius:2px;display:inline-block;background-color:#0074b6;color:#fff;font-size:12px}.card-collection{display:flex;align-items:center;border-radius:8px}.card-collection .card-thumbnail{height:100%;margin-right:12px;cursor:pointer;border-radius:8px 0 0}@media only screen and (max-width: 469px){.card-collection{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.card-collection .card-thumbnail{height:100%!important;width:100%!important}.card-collection .text-truncate{white-space:unset!important}}.tab:focus{outline:1px solid!important}.resource-container .card-thumbnail{height:100%;cursor:pointer}.resource-container .img-container{position:relative;margin-right:12px}.resource-container .img-container ws-widget-content-progress{position:absolute;left:0;right:0;bottom:5px}@media only screen and (max-width: 469px){.resource-container{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.resource-container .card-thumbnail{height:100%!important;width:100%!important}.resource-container .text-truncate{white-space:unset!important}}.child-meta-container{margin-top:8px;display:flex}.child-meta-container .child-structure{display:flex;align-items:center;flex-wrap:wrap}.child-meta-container .child-structure span{margin-right:12px;text-align:center;margin-bottom:8px}.child-meta-container .child-structure .structure-icon{margin-right:12px}@media only screen and (max-width: 469px){.child-meta-container{margin-left:.5rem;justify-content:space-between}}.resource-container{display:flex;align-items:center;border-radius:8px}.resource-container ws-display-content-type-icon{display:flex;align-items:center}.resource-container .resource-meta{margin-left:12px;display:flex;justify-content:space-between;align-items:center}.children-container .mat-subheading-1{font:400 16px/24px Lato!important}.children-container .resource-container{margin-bottom:20px;margin-right:8px}.children-container .resource-container .card-thumbnail{height:65px;align-self:center}.content-heading{letter-spacing:0px;color:#222}.content-type{letter-spacing:0px}.time-icon{vertical-align:middle}.time-value{letter-spacing:0px;color:#222;text-transform:lowercase}.see-all-container{position:absolute;right:2px;top:5px}.oval-white{background:#fff 0% 0% no-repeat padding-box;border-radius:8px;padding:2px 8px}.type-container{letter-spacing:0px;display:flex;align-items:center}.type-container .rotate-90{transform:rotate(-90deg)}.type-container .custom-icon{width:18px;height:18px;font-size:18px;margin-right:8px}.type-container.resource{color:#00a9f4}.type-container.module{color:#34d6a4}.type-container.course{color:#f58634}.no-mb{margin-bottom:0!important}.w-100{width:100%}.w-auto{width:auto}.progress-bar-thin{height:5px!important}.progress-bar-thin ::ng-deep .mat-progress-bar{height:5px}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-buffer{background-color:transparent!important}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-background{fill:transparent}.radiobtn{color:#00000029}.resicons img{width:22px;opacity:.5;margin-top:2px;vertical-align:sub}.bullet-span:before{content:\"\\2022\";padding-right:12px}.download-link{opacity:1;color:#0074b6;font-size:12px;font-weight:700;font-style:normal;letter-spacing:.5px;line-height:20px;text-transform:uppercase}.offline{border-radius:2px;background-color:#0009;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:-moz-fit-content;width:fit-content}.online{border-radius:2px;background-color:#1d8923;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:-moz-fit-content;width:fit-content}.text-active{color:#1a4ca1}.text-active.font-bold{font-weight:600}\n"] }]
108
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { session: [{
109
- type: Input
110
- }], expandAll: [{
111
- type: Input
112
- }], rootId: [{
113
- type: Input
114
- }], rootContentType: [{
115
- type: Input
116
- }], forPreview: [{
117
- type: Input
118
- }], batchData: [{
119
- type: Input
120
- }], config: [{
121
- type: Input
122
- }], index: [{
123
- type: Input
124
- }], batchId: [{
125
- type: Input
126
- }], content: [{
127
- type: Input
128
- }], pathSet: [{
129
- type: Input
130
- }], sessionType: [{
131
- type: Input
132
- }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1zZXNzaW9uLWNhcmQtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL2FwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldy9hcHAtdG9jLXNlc3Npb24tY2FyZC1uZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2MvYXBwLXRvYy1zZXNzaW9uLWNhcmQtbmV3L2FwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRTlFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTs7Ozs7OztBQWdCM0IsTUFBTSxPQUFPLDZCQUE2QjtJQWlCeEMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoQnpCLFlBQU8sR0FBUSxJQUFJLENBQUE7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUdqQixlQUFVLEdBQUcsS0FBSyxDQUFBO1FBS2xCLFlBQU8sR0FBOEIsSUFBSSxDQUFBO1FBR2xELGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDaEIsY0FBUyxHQUFHLElBQUksQ0FBQTtRQUNo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QUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDOzZCQUN2RSxDQUFDO3lCQUNMLENBQUM7cUJBQUM7NkZBR0ksT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInXHJcbmltcG9ydCB7IHZpZXdlclJvdXRlR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vX3NlcnZpY2VzL3ZpZXdlci1yb3V0ZS11dGlsJ1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50J1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3dzLXdpZGdldC1hcHAtdG9jLXNlc3Npb24tY2FyZC1uZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtdG9jLXNlc3Npb24tY2FyZC1uZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3BhbmVsSW5PdXQnLCBbXHJcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xyXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwJSknLCBvcGFjaXR5OiAnMCcgfSksXHJcbiAgICAgICAgICAgIGFuaW1hdGUoMjUwKSxcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXHJcbiAgICAgICAgICAgIGFuaW1hdGUoMjAwLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwJSknLCBvcGFjaXR5OiAnMCcgfSkpLFxyXG4gICAgICAgIF0pLFxyXG4gICAgXSldLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwVG9jU2Vzc2lvbkNhcmROZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHNlc3Npb246IGFueSA9IG51bGxcclxuICBASW5wdXQoKSBleHBhbmRBbGwgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIHJvb3RJZCE6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIHJvb3RDb250ZW50VHlwZSE6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIGZvclByZXZpZXcgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIGJhdGNoRGF0YSE6IGFueVxyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIGluZGV4ITogbnVtYmVyXHJcbiAgQElucHV0KCkgYmF0Y2hJZCE6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCB8IG51bGwgPSBudWxsXHJcbiAgQElucHV0KCkgcGF0aFNldCE6IGFueVxyXG4gIEBJbnB1dCgpIHNlc3Npb25UeXBlOiBhbnlcclxuICBpc0VuYWJsZWQgPSB0cnVlXHJcbiAgaXNBbGxvd2VkID0gdHJ1ZVxyXG4gIHZpZXdDaGlsZHJlbiA9IHRydWVcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUb1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5pc0FsbG93ZWQgJiYgIXRoaXMuZm9yUHJldmlldyAmJiB0aGlzLmlzRW5hYmxlZCAmJiB0aGlzLmJhdGNoRGF0YSAmJiB0aGlzLmJhdGNoRGF0YS5lbnJvbGxlZCkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yZXNvdXJjZUxpbmsudXJsXSwgeyBxdWVyeVBhcmFtczogdGhpcy5yZXNvdXJjZUxpbmsucXVlcnlQYXJhbXMgfSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBbcm91dGVyTGlua109XCIoaXNBbGxvd2VkICYmICFmb3JQcmV2aWV3ICYmIGlzRW5hYmxlZCkgPyByZXNvdXJjZUxpbmsudXJsIDogbnVsbFwiXHJcbiAgICAvLyAgICAgICBbcXVlcnlQYXJhbXNdPVwiKGlzQWxsb3dlZCAmJiAhZm9yUHJldmlldyAmJiBpc0VuYWJsZWQpICA/IHJlc291cmNlTGluay5xdWVyeVBhcmFtcyA6IG51bGxcIlxyXG5cclxuICB9XHJcbiAgcmFpc2VUZWxlbWV0cnkoKSB7IH1cclxuICBwdWJsaWMgcHJvZ3Jlc3NDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICcjMUQ4OTIzJ1xyXG4gIH1cclxuICBwdWJsaWMgcHJvZ3Jlc3NDb2xvcjIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnI2YyN2QwMCdcclxuICB9XHJcbiAgZ2V0IGlzQ29sbGVjdGlvbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29udGVudC5taW1lVHlwZSA9PT0gTnNDb250ZW50LkVNaW1lVHlwZXMuQ09MTEVDVElPTlxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG4gIGdldCBpc1Jlc291cmNlKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5Lk9GRkxJTkVfU0VTU0lPTlxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcbiAgZ2V0IGlzTW9kdWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuTU9EVUxFXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcbiAgZ2V0IHJlc291cmNlTGluaygpOiB7IHVybDogc3RyaW5nOyBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9IHtcclxuXHJcbiAgICBpZiAodGhpcy5jb250ZW50KSB7XHJcbiAgICAgIGNvbnN0IHVybCA9IHZpZXdlclJvdXRlR2VuZXJhdG9yKFxyXG4gICAgICAgIHRoaXMuY29udGVudC5pZGVudGlmaWVyLFxyXG4gICAgICAgIHRoaXMuY29udGVudC5taW1lVHlwZSxcclxuICAgICAgICB0aGlzLnJvb3RJZCxcclxuICAgICAgICB0aGlzLnJvb3RDb250ZW50VHlwZSxcclxuICAgICAgICB0aGlzLmZvclByZXZpZXcsXHJcbiAgICAgICAgdGhpcy5jb250ZW50LnByaW1hcnlDYXRlZ29yeSxcclxuICAgICAgICB0aGlzLmJhdGNoSWRcclxuICAgICAgKVxyXG4gICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgKi9cclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5jb250ZW50LmlkZW50aWZpZXIsICctLS0tLS0nLCB1cmwsJz09PT09PiBjb250ZW50IGNhcmQgdXJsIGxpbmsgPD09PT09PT09JylcclxuICAgICAgcmV0dXJuIHVybFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgdXJsOiAnJywgcXVlcnlQYXJhbXM6IHt9IH1cclxuICB9XHJcbiAgZ2V0IGlzQmF0Y2hJblByb2dlc3MoKSB7XHJcbiAgICBpZiAodGhpcy5iYXRjaERhdGEgJiYgKHRoaXMuYmF0Y2hEYXRhLmNvbnRlbnQgJiYgdGhpcy5iYXRjaERhdGEuY29udGVudC5sZW5ndGgpICYmIHRoaXMuYmF0Y2hEYXRhLmVucm9sbGVkKSB7XHJcbiAgICAgIGNvbnN0IGJhdGNoRGF0YSA9IHRoaXMuYmF0Y2hEYXRhLmNvbnRlbnRbMF1cclxuICAgICAgaWYgKGJhdGNoRGF0YSAmJiBiYXRjaERhdGEuZW5kRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KGJhdGNoRGF0YS5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IGJhdGNoRGF0YS5lbmREYXRlID8gbW9tZW50KGJhdGNoRGF0YS5lbmREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSA6IG5vd1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIC8vIGJhdGNoLnN0YXR1cyAmJlxyXG4gICAgICAgICAgICAgIG1vbWVudChzdGFydERhdGUpLmlzU2FtZU9yQmVmb3JlKG5vdylcclxuICAgICAgICAgICAgICAmJiBtb21lbnQoZW5kRGF0ZSkuaXNTYW1lT3JBZnRlcihub3cpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgfSByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50XCI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbGxlY3Rpb24gJiYgIWlzTW9kdWxlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sbGVjdGlvblRlbXBsYXRlXCI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ29sbGVjdGlvbiAmJiBpc01vZHVsZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8ub2ZmbGluZVJlc291cnNlQ291bnRcIj5cclxuICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2xsZWN0aW9uVGVtcGxhdGVcIj5cclxuICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPGRpdiAqbmdJZj1cImlzUmVzb3VyY2VcIiBjbGFzcz1cInJlc291cmNlLWNvbnRhaW5lciBtdC00XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZXNvdXJjZSBmbGV4IGZsZXgtd3JhcCBzbTpmbGV4LWNvbCBmbGV4LXN0YXJ0IHdpZHRoLWV4cGFuZCB3LTEwMCAgc206dy1hdXRvXCI+XHJcbiAgICAgICAgIDxhIGNsYXNzPVwidy1mdWxsXCIgW2NsYXNzLmRpc2FibGVkXT1cIihmb3JQcmV2aWV3IHx8ICFpc0VuYWJsZWQgfHwgIWlzQmF0Y2hJblByb2dlc3MpID8gdHJ1ZSA6IG51bGxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicmVkaXJlY3RUb1BhZ2UoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10cnVuY2F0ZTEgXCIgW25nQ2xhc3NdPVwieydjdXJzb3ItcG9pbnRlcic6ICFpc0VuYWJsZWR9XCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInZpZXdDaGlsZHJlbiA9ICF2aWV3Q2hpbGRyZW47IHJhaXNlVGVsZW1ldHJ5KCk7XCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUgdGV4dC10cnVuY2F0ZTEgbWF0LWJvZHktMiBmbGV4LWF1dG8gZm9udC1ib2xkXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0ZXh0LWFjdGl2ZSc6IHBhdGhTZXQ/Lmhhcyhjb250ZW50Py5pZGVudGlmaWVyKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAge3sgY29udGVudD8ubmFtZSB9fSA8c3BhbiBjbGFzcz1cIm1hcmdpbi1sZWZ0LXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J29mZmxpbmUnOiBzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5zZXNzaW9uVHlwZS50b0xvd2VyQ2FzZSgpID09PSAnb2ZmbGluZScsJ29ubGluZSc6c2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8uc2Vzc2lvblR5cGUudG9Mb3dlckNhc2UoKSAhPT0gJ29mZmxpbmUnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3Nlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LnNlc3Npb25UeXBlIHx8ICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50LXR5cGUgb3B0aW9uYWwtc3BhblwiICpuZ0lmPVwiY29udGVudD8ub3B0aW9uYWxSZWFkaW5nXCI+b3B0aW9uYWwgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtYm9keS0yIHdzLW1hdC1ibGFjazYwLXRleHQgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgZmxleC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmlnaHQtcyBjYXBpdGFsaXplXCI+e3tzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5zZXNzaW9uVHlwZSB8fCAnJ319PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmlnaHQtc1wiPnt7c2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8uc3RhcnREYXRlIHwgZGF0ZTogJ01NTSBkLCB5JyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYnVsbGV0LXNwYW5cIj57e3Nlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LnNlc3Npb25EdXJhdGlvbiB8fCAnXyd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hcmdpbi1sZWZ0LXMgYnVsbGV0LXNwYW5cIj57e3Nlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LnN0YXJ0VGltZSB8fCAnXycgfX0gLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Nlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LmVuZFRpbWUgfHwgJ18nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDwhLS0ge3sgY29udGVudD8uc1lTX0lOVEVSTkFMX0xBU1RfVVBEQVRFRF9PTiB8IGRhdGU6ICdNTU0gZCwgeScgfX0gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8L2E+XHJcbiAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiYXRjaERhdGE/LmVucm9sbGVkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5zZXNzaW9uSGFuZG91dHM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZm9udC1ub3JtYWwgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydhcHB0b2NzZXNzaW9uc2NhcmRzLnNlc3Npb25IYW5kb3V0cycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC00IGNhcmQganVzdGlmeS1iZXR3ZWVuIGZsZXgtbWlkZGxlIHB5LTIgXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhhbmRvdXQgb2Ygc2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8uc2Vzc2lvbkhhbmRvdXRzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+e3toYW5kb3V0LnRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgdGFyZ2V0PeKAnV9ibGFua+KAnSBkb3dubG9hZCBocmVmPVwie3toYW5kb3V0LnVybH19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIHt7J2FwcHRvY3Nlc3Npb25zY2FyZHMuZG93bmxvYWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJhdGNoRGF0YT8uZW5yb2xsZWQgJiYgc2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8ucmVzb3VyY2VzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZvbnQtbm9ybWFsIHB5LTJcIj57eydhcHB0b2NzZXNzaW9uc2NhcmRzLnJlc291cmNlcycgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTQgY2FyZCBqdXN0aWZ5LWJldHdlZW4gZmxleC1taWRkbGUgcHktMiBcIlxyXG4gICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVzb3VyY2Ugb2Ygc2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8ucmVzb3VyY2VzXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+e3tyZXNvdXJjZS5yZXNvdXJjZVRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1yZXNvdXJjZS1saW5rXCIgdGFyZ2V0PeKAnV9ibGFua+KAnSBkb3dubG9hZCBocmVmPVwie3tyZXNvdXJjZS5yZXNvdXJjZUxpbmt9fVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmVzb3VyY2U/LnJlc291cmNlVHlwZSA9PT0gJ1VSTCdcIj5cclxuICAgICAgICAgICAgICAgICAge3snYXBwdG9jc2Vzc2lvbnNjYXJkcy52aWV3JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZG93bmxvYWQtbGlua1wiIHRhcmdldD3igJ1fYmxhbmvigJ0gZG93bmxvYWQgaHJlZj1cInt7cmVzb3VyY2UucmVzb3VyY2VMaW5rfX1cIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJlc291cmNlPy5yZXNvdXJjZVR5cGUgIT09ICdVUkwnXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2FwcHRvY3Nlc3Npb25zY2FyZHMuZG93bmxvYWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8d3Mtd2lkZ2V0LWF0dGVuZGFuY2UtY2FyZCBbc2Vzc2lvbl09XCJzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdXCJcclxuICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIj48L3dzLXdpZGdldC1hdHRlbmRhbmNlLWNhcmQ+XHJcbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29sbGVjdGlvblRlbXBsYXRlPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb2xsZWN0aW9uXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01vZHVsZVwiPlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi13cmFwcGVyICBmbGV4IGZsZXgtY29sIHBvc2l0aW9uLXJlbGF0aXZlXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydvcGVuJzogdmlld0NoaWxkcmVuLCAnY2xvc2UnOiAhdmlld0NoaWxkcmVuLCAnY291cnNlJzohaXNNb2R1bGUsICcgbW9kdWxlJzogaXNNb2R1bGV9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbGxlY3Rpb24gdy1hdXRvIHNtOnctMTAwIHBhZGRpbmctcmlnaHQteGxcIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC13cmFwIGZsZXgtYmV0d2VlbiB3aWR0aC1leHBhbmQgcHItMCB3LTEwMCBzbTpwci00IHNtOnctYXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10cnVuY2F0ZTFcIiBbbmdDbGFzc109XCJ7J2N1cnNvci1wb2ludGVyJzogIWlzRW5hYmxlZH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0NoaWxkcmVuID0gIXZpZXdDaGlsZHJlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc1R5cGUgb2Ygc2Vzc2lvblR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4XCIgY2xhc3M9XCJtYXJnaW4tcmlnaHQtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNUeXBlID09PSdvZmZsaW5lJyA/ICdvZmZsaW5lJzonb25saW5lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NUeXBlIHwgdGl0bGVjYXNlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGZsZXgtd3JhcCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWFyZ2luLXJlbW92ZSB0ZXh0LXRydW5jYXRlMSBtYXQtYm9keS0xIGZsZXgtYXV0byBmb250LWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29udGVudD8ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlZS1hbGwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInZpZXdDaGlsZHJlbiA9ICF2aWV3Q2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcmdpbi1sZWZ0LW0gc2VlLWFsbC1idG4gdGFiIGN1c3RvbS1jaGV2cm9uIGN1c3RvbWljb25cIiBtYXQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhdmlld0NoaWxkcmVuICYmICFpc01vZHVsZVwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJ2aWV3Q2hpbGRyZW4gJiYgIWlzTW9kdWxlXCI+a2V5Ym9hcmRfYXJyb3dfdXA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhdmlld0NoaWxkcmVuICYmIGlzTW9kdWxlXCI+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwidmlld0NoaWxkcmVuICYmIGlzTW9kdWxlXCI+YXJyb3dfZHJvcF91cDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmF0Y2hEYXRhPy5lbnJvbGxlZFwiPlxyXG4gICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc2Vzc2lvbkhhbmRvdXRzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwiIGZvbnQtYm9sZCBtYXQtYm9keS0xIG1hcmdpbi1ib3R0b20teHMgIHdzLW1hdC1ibGFjazYwLXRleHRcIj5cclxuICAgICAgICAgICAgICAge3snYXBwdG9jc2Vzc2lvbnNjYXJkcy5zZXNzaW9uSGFuZG91dHMnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LXdyYXBwZWQgbWFyZ2luLWJvdHRvbS1zIHdpZHRoLWV4cGFuZCBwci0wIHctMTAwIHNtOnByLTQgc206dy1hdXRvIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGFuZG91dCBvZiBjb250ZW50Py5zZXNzaW9uSGFuZG91dHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTRcIj57e2hhbmRvdXQudGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgdGFyZ2V0PeKAnV9ibGFua+KAnSBkb3dubG9hZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3toYW5kb3V0LnVybH19XCI+e3snYXBwdG9jc2Vzc2lvbnNjYXJkcy5kb3dubG9hZCcgfCB0cmFuc2xhdGUgfX08L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNoaWxkLXdyYXBwZXIgIFwiIFtuZ0NsYXNzXT1cInsnb3Blbic6IHZpZXdDaGlsZHJlbiwgJ2Nsb3NlJzogIXZpZXdDaGlsZHJlbn1cIiAqbmdJZj1cInZpZXdDaGlsZHJlblwiXHJcbiAgICAgICAgIFtAcGFuZWxJbk91dF0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZHJlbi1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J21vZHVsZSc6IGlzTW9kdWxlLCAnJzogIWlzTW9kdWxlfVwiPlxyXG4gICAgICAgICAgICA8d3Mtd2lkZ2V0LWFwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldyBbZm9yUHJldmlld109XCJmb3JQcmV2aWV3XCIgW3BhdGhTZXRdPVwicGF0aFNldFwiIFtjb250ZW50XT1cImNoaWxkXCJcclxuICAgICAgICAgICAgICAgW2luZGV4XT1cImorMVwiIFtleHBhbmRBbGxdPVwiZXhwYW5kQWxsXCIgW3Jvb3RJZF09XCJyb290SWRcIiBbYmF0Y2hJZF09XCJiYXRjaElkXCJcclxuICAgICAgICAgICAgICAgW3Jvb3RDb250ZW50VHlwZV09XCJyb290Q29udGVudFR5cGVcIiBbYmF0Y2hEYXRhXT1cImJhdGNoRGF0YVwiIFtjb25maWddPVwiY29uZmlnXCIgW3Nlc3Npb25UeXBlXT1cInNlc3Npb25UeXBlXCJcclxuICAgICAgICAgICAgICAgW3Nlc3Npb25dPVwic2Vzc2lvblwiXHJcbiAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBjb250ZW50Py5jaGlsZHJlbjsgdHJhY2tCeTogY29udGVudFRyYWNrQnk7IGxldCBqPSBpbmRleDtsZXQgaXNGaXJzdCA9IGZpcnN0XCJcclxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtb2R1bGVDYXJkJzogdHJ1ZSwgJ2ZpcnN0JzogaXNGaXJzdH1cIj48L3dzLXdpZGdldC1hcHAtdG9jLXNlc3Npb24tY2FyZC1uZXc+XHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+Il19
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ import { Component, Input } from '@angular/core';
3
+ import { NsContent } from '@sunbird-cb/utils-v2';
4
+ import { viewerRouteGenerator } from '../../../../_services/viewer-route-util';
5
+ import moment from 'moment';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@angular/material/icon";
10
+ import * as i4 from "../../attendance-card/attendance-card.component";
11
+ import * as i5 from "@ngx-translate/core";
12
+ export class AppTocSessionCardNewComponent {
13
+ constructor(router) {
14
+ this.router = router;
15
+ this.session = null;
16
+ this.expandAll = false;
17
+ this.forPreview = false;
18
+ this.content = null;
19
+ this.isEnabled = true;
20
+ this.isAllowed = true;
21
+ this.viewChildren = true;
22
+ }
23
+ ngOnInit() {
24
+ }
25
+ redirectToPage() {
26
+ if (this.isAllowed && !this.forPreview && this.isEnabled && this.batchData && this.batchData.enrolled) {
27
+ this.router.navigate([this.resourceLink.url], { queryParams: this.resourceLink.queryParams });
28
+ }
29
+ // [routerLink]="(isAllowed && !forPreview && isEnabled) ? resourceLink.url : null"
30
+ // [queryParams]="(isAllowed && !forPreview && isEnabled) ? resourceLink.queryParams : null"
31
+ }
32
+ raiseTelemetry() { }
33
+ progressColor() {
34
+ return '#1D8923';
35
+ }
36
+ progressColor2() {
37
+ return '#f27d00';
38
+ }
39
+ get isCollection() {
40
+ if (this.content) {
41
+ return this.content.mimeType === NsContent.EMimeTypes.COLLECTION;
42
+ }
43
+ return false;
44
+ }
45
+ get isResource() {
46
+ if (this.content) {
47
+ return (this.content.primaryCategory === NsContent.EPrimaryCategory.OFFLINE_SESSION);
48
+ }
49
+ return false;
50
+ }
51
+ get isModule() {
52
+ if (this.content) {
53
+ return this.content.primaryCategory === NsContent.EPrimaryCategory.MODULE;
54
+ }
55
+ return false;
56
+ }
57
+ get resourceLink() {
58
+ if (this.content) {
59
+ const url = viewerRouteGenerator(this.content.identifier, this.content.mimeType, this.rootId, this.rootContentType, this.forPreview, this.content.primaryCategory, this.batchId);
60
+ /* tslint:disable-next-line */
61
+ // console.log(this.content.identifier, '------', url,'=====> content card url link <========')
62
+ return url;
63
+ }
64
+ return { url: '', queryParams: {} };
65
+ }
66
+ get isBatchInProgess() {
67
+ if (this.batchData && (this.batchData.content && this.batchData.content.length) && this.batchData.enrolled) {
68
+ const batchData = this.batchData.content[0];
69
+ if (batchData && batchData.endDate) {
70
+ const now = moment().format('YYYY-MM-DD');
71
+ const startDate = moment(batchData.startDate).format('YYYY-MM-DD');
72
+ const endDate = batchData.endDate ? moment(batchData.endDate).format('YYYY-MM-DD') : now;
73
+ return (
74
+ // batch.status &&
75
+ moment(startDate).isSameOrBefore(now)
76
+ && moment(endDate).isSameOrAfter(now));
77
+ }
78
+ return true;
79
+ }
80
+ return false;
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionCardNewComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AppTocSessionCardNewComponent, selector: "ws-widget-app-toc-session-card-new", inputs: { session: "session", expandAll: "expandAll", rootId: "rootId", rootContentType: "rootContentType", forPreview: "forPreview", batchData: "batchData", config: "config", index: "index", batchId: "batchId", content: "content", pathSet: "pathSet", sessionType: "sessionType" }, ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngIf=\"isCollection && !isModule\">\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isCollection && isModule\">\n <ng-container *ngIf=\"content?.offlineResourseCount\">\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\n </ng-container>\n </ng-container>\n </ng-container>\n <div *ngIf=\"isResource\" class=\"resource-container mt-4\">\n <div class=\"resource flex flex-wrap sm:flex-col flex-start width-expand w-100 sm:w-auto\">\n <a class=\"w-full\" [class.disabled]=\"(forPreview || !isEnabled || !isBatchInProgess) ? true : null\"\n (click)=\"redirectToPage()\">\n <div class=\"text-truncate1 \" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\n (click)=\"viewChildren = !viewChildren; raiseTelemetry();\">\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\n <p class=\"margin-remove text-truncate1 mat-body-2 flex-auto font-bold\"\n [ngClass]=\"{'text-active': pathSet?.has(content?.identifier)}\">\n {{ content?.name }} <span class=\"margin-left-s\"\n [ngClass]=\"{'offline': session[content?.identifier]?.sessionType.toLowerCase() === 'offline','online':session[content?.identifier]?.sessionType.toLowerCase() !== 'offline'}\">\n {{session[content?.identifier]?.sessionType || ''}}</span>\n </p>\n <span class=\"content-type optional-span\" *ngIf=\"content?.optionalReading\">optional </span>\n\n </div>\n <div class=\"mat-body-2 ws-mat-black60-text mt-2\">\n <div class=\"flex flex-1 flex-row\">\n <!-- <div class=\"flex margin-right-s capitalize\">{{session[content?.identifier]?.sessionType || ''}}</div> -->\n <div class=\"flex margin-right-s\">{{session[content?.identifier]?.startDate | date: 'MMM d, y' }}\n </div>\n <div class=\"flex bullet-span\">{{session[content?.identifier]?.sessionDuration || '_'}}\n <span class=\"margin-left-s bullet-span\">{{session[content?.identifier]?.startTime || '_' }} -\n {{session[content?.identifier]?.endTime || '_'}}</span>\n </div>\n </div>\n </div>\n <!-- {{ content?.sYS_INTERNAL_LAST_UPDATED_ON | date: 'MMM d, y' }} -->\n </div>\n </a>\n <ng-container *ngIf=\"batchData?.enrolled\">\n <div *ngIf=\"session[content?.identifier]?.sessionHandouts?.length > 0\">\n <div class=\"flex flex-row font-normal py-2\">\n {{'apptocsessionscards.sessionHandouts' | translate }}\n </div>\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\n *ngFor=\"let handout of session[content?.identifier]?.sessionHandouts\">\n <div class=\"mr-2\">{{handout.title}}</div>\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{handout.url}}\">\n {{'apptocsessionscards.download' | translate }}\n </a>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"batchData?.enrolled && session[content?.identifier]?.resources?.length > 0\">\n <div class=\"flex flex-row font-normal py-2\">{{'apptocsessionscards.resources' | translate }}</div>\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\n *ngFor=\"let resource of session[content?.identifier]?.resources\">\n <div class=\"mr-2\">{{resource.resourceTitle}}</div>\n <a class=\"download-resource-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\n *ngIf=\"resource?.resourceType === 'URL'\">\n {{'apptocsessionscards.view' | translate }}\n </a>\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\n *ngIf=\"resource?.resourceType !== 'URL'\">\n {{'apptocsessionscards.download' | translate }}\n </a>\n </div>\n </ng-container>\n <ng-container>\n <ws-widget-attendance-card [session]=\"session[content?.identifier]\"\n [config]=\"config\"></ws-widget-attendance-card>\n </ng-container>\n\n </div>\n </div>\n</ng-container>\n\n<ng-template #collectionTemplate>\n <ng-container *ngIf=\"isCollection\">\n <ng-container *ngIf=\"isModule\">\n <div class=\"collection-wrapper flex flex-col position-relative\"\n [ngClass]=\"{'open': viewChildren, 'close': !viewChildren, 'course':!isModule, ' module': isModule}\">\n <div class=\"card-collection w-auto sm:w-100 padding-right-xl\">\n <div class=\"flex flex-col flex-wrap flex-between width-expand pr-0 w-100 sm:pr-4 sm:w-auto\">\n <div class=\"text-truncate1\" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\n (click)=\"viewChildren = !viewChildren\">\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\n <ng-container *ngFor=\"let sType of sessionType\">\n <span class=\"flex\" class=\"margin-right-s\"\n [ngClass]=\"sType ==='offline' ? 'offline':'online'\">\n {{sType | titlecase}}\n </span>\n\n </ng-container>\n\n\n </div>\n <div class=\"flex flex-col sm:flex-row flex-wrap mt-2\">\n <p class=\"margin-remove text-truncate1 mat-body-1 flex-auto font-bold\">\n {{ content?.name }}\n </p>\n </div>\n </div>\n <div class=\"see-all-container\">\n <a href=\"javascript:void(0)\" role=\"button\" (click)=\"viewChildren = !viewChildren\"\n class=\"margin-left-m see-all-btn tab custom-chevron customicon\" mat-button>\n <mat-icon *ngIf=\"!viewChildren && !isModule\">keyboard_arrow_down</mat-icon>\n <mat-icon *ngIf=\"viewChildren && !isModule\">keyboard_arrow_up</mat-icon>\n <mat-icon *ngIf=\"!viewChildren && isModule\">arrow_drop_down</mat-icon>\n <mat-icon *ngIf=\"viewChildren && isModule\">arrow_drop_up</mat-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"batchData?.enrolled\">\n <div *ngIf=\"content?.sessionHandouts?.length > 0\">\n <p class=\" font-bold mat-body-1 margin-bottom-xs ws-mat-black60-text\">\n {{'apptocsessionscards.sessionHandouts' | translate }}</p>\n <div class=\"flex flex-col flex-wrapped margin-bottom-s width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\n <ng-container *ngFor=\"let handout of content?.sessionHandouts\">\n <div class=\"\">\n <span class=\"mr-4\">{{handout.title}}</span>\n <a class=\"download-link\" target=\u201D_blank\u201D download\n href=\"{{handout.url}}\">{{'apptocsessionscards.download' | translate }}</a>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n <div class=\"child-wrapper \" [ngClass]=\"{'open': viewChildren, 'close': !viewChildren}\" *ngIf=\"viewChildren\"\n [@panelInOut]>\n <div class=\"children-container\" [ngClass]=\"{'module': isModule, '': !isModule}\">\n <ws-widget-app-toc-session-card-new [forPreview]=\"forPreview\" [pathSet]=\"pathSet\" [content]=\"child\"\n [index]=\"j+1\" [expandAll]=\"expandAll\" [rootId]=\"rootId\" [batchId]=\"batchId\"\n [rootContentType]=\"rootContentType\" [batchData]=\"batchData\" [config]=\"config\" [sessionType]=\"sessionType\"\n [session]=\"session\"\n *ngFor=\"let child of content?.children; trackBy: contentTrackBy; let j= index;let isFirst = first\"\n [ngClass]=\"{'moduleCard': true, 'first': isFirst}\"></ws-widget-app-toc-session-card-new>\n </div>\n </div>\n </ng-container>\n</ng-template>", styles: ["@charset \"UTF-8\";.customicon{position:absolute;top:-.5em;right:0}a.disabled{pointer-events:none;cursor:default}.card{background:#e5e9ef;border-radius:5px;padding:10px;margin:10px 0}span.optional-span{margin-left:8px;padding:0 6px;border-radius:2px;display:inline-block;background-color:#0074b6;color:#fff;font-size:12px}.card-collection{display:flex;align-items:center;border-radius:8px}.card-collection .card-thumbnail{height:100%;margin-right:12px;cursor:pointer;border-radius:8px 0 0}@media only screen and (max-width: 469px){.card-collection{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.card-collection .card-thumbnail{height:100%!important;width:100%!important}.card-collection .text-truncate{white-space:unset!important}}.tab:focus{outline:1px solid!important}.resource-container .card-thumbnail{height:100%;cursor:pointer}.resource-container .img-container{position:relative;margin-right:12px}.resource-container .img-container ws-widget-content-progress{position:absolute;left:0;right:0;bottom:5px}@media only screen and (max-width: 469px){.resource-container{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.resource-container .card-thumbnail{height:100%!important;width:100%!important}.resource-container .text-truncate{white-space:unset!important}}.child-meta-container{margin-top:8px;display:flex}.child-meta-container .child-structure{display:flex;align-items:center;flex-wrap:wrap}.child-meta-container .child-structure span{margin-right:12px;text-align:center;margin-bottom:8px}.child-meta-container .child-structure .structure-icon{margin-right:12px}@media only screen and (max-width: 469px){.child-meta-container{margin-left:.5rem;justify-content:space-between}}.resource-container{display:flex;align-items:center;border-radius:8px}.resource-container ws-display-content-type-icon{display:flex;align-items:center}.resource-container .resource-meta{margin-left:12px;display:flex;justify-content:space-between;align-items:center}.children-container .mat-subheading-1{font:400 16px/24px Lato!important}.children-container .resource-container{margin-bottom:20px;margin-right:8px}.children-container .resource-container .card-thumbnail{height:65px;align-self:center}.content-heading{letter-spacing:0px;color:#222}.content-type{letter-spacing:0px}.time-icon{vertical-align:middle}.time-value{letter-spacing:0px;color:#222;text-transform:lowercase}.see-all-container{position:absolute;right:2px;top:5px}.oval-white{background:#fff 0% 0% no-repeat padding-box;border-radius:8px;padding:2px 8px}.type-container{letter-spacing:0px;display:flex;align-items:center}.type-container .rotate-90{transform:rotate(-90deg)}.type-container .custom-icon{width:18px;height:18px;font-size:18px;margin-right:8px}.type-container.resource{color:#00a9f4}.type-container.module{color:#34d6a4}.type-container.course{color:#f58634}.no-mb{margin-bottom:0!important}.w-100{width:100%}.w-auto{width:auto}.progress-bar-thin{height:5px!important}.progress-bar-thin ::ng-deep .mat-progress-bar{height:5px}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-buffer{background-color:transparent!important}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-background{fill:transparent}.radiobtn{color:#00000029}.resicons img{width:22px;opacity:.5;margin-top:2px;vertical-align:sub}.bullet-span:before{content:\"\\2022\";padding-right:12px}.download-link{opacity:1;color:#0074b6;font-size:12px;font-weight:700;font-style:normal;letter-spacing:.5px;line-height:20px;text-transform:uppercase}.offline{border-radius:2px;background-color:#0009;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:fit-content}.online{border-radius:2px;background-color:#1d8923;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:fit-content}.text-active{color:#1a4ca1}.text-active.font-bold{font-weight:600}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.AttendanceCardComponent, selector: "ws-widget-attendance-card", inputs: ["session", "status", "config", "showInfo"] }, { kind: "component", type: AppTocSessionCardNewComponent, selector: "ws-widget-app-toc-session-card-new", inputs: ["session", "expandAll", "rootId", "rootContentType", "forPreview", "batchData", "config", "index", "batchId", "content", "pathSet", "sessionType"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [
84
+ trigger('panelInOut', [
85
+ transition('void => *', [
86
+ style({ transform: 'translateY(-10%)', opacity: '0' }),
87
+ animate(250),
88
+ ]),
89
+ transition('* => void', [
90
+ animate(200, style({ transform: 'translateY(-10%)', opacity: '0' })),
91
+ ]),
92
+ ])
93
+ ] }); }
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionCardNewComponent, decorators: [{
96
+ type: Component,
97
+ args: [{ selector: 'ws-widget-app-toc-session-card-new', animations: [
98
+ trigger('panelInOut', [
99
+ transition('void => *', [
100
+ style({ transform: 'translateY(-10%)', opacity: '0' }),
101
+ animate(250),
102
+ ]),
103
+ transition('* => void', [
104
+ animate(200, style({ transform: 'translateY(-10%)', opacity: '0' })),
105
+ ]),
106
+ ])
107
+ ], template: "<ng-container *ngIf=\"content\">\n <ng-container *ngIf=\"isCollection && !isModule\">\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isCollection && isModule\">\n <ng-container *ngIf=\"content?.offlineResourseCount\">\n <ng-container [ngTemplateOutlet]=\"collectionTemplate\">\n </ng-container>\n </ng-container>\n </ng-container>\n <div *ngIf=\"isResource\" class=\"resource-container mt-4\">\n <div class=\"resource flex flex-wrap sm:flex-col flex-start width-expand w-100 sm:w-auto\">\n <a class=\"w-full\" [class.disabled]=\"(forPreview || !isEnabled || !isBatchInProgess) ? true : null\"\n (click)=\"redirectToPage()\">\n <div class=\"text-truncate1 \" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\n (click)=\"viewChildren = !viewChildren; raiseTelemetry();\">\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\n <p class=\"margin-remove text-truncate1 mat-body-2 flex-auto font-bold\"\n [ngClass]=\"{'text-active': pathSet?.has(content?.identifier)}\">\n {{ content?.name }} <span class=\"margin-left-s\"\n [ngClass]=\"{'offline': session[content?.identifier]?.sessionType.toLowerCase() === 'offline','online':session[content?.identifier]?.sessionType.toLowerCase() !== 'offline'}\">\n {{session[content?.identifier]?.sessionType || ''}}</span>\n </p>\n <span class=\"content-type optional-span\" *ngIf=\"content?.optionalReading\">optional </span>\n\n </div>\n <div class=\"mat-body-2 ws-mat-black60-text mt-2\">\n <div class=\"flex flex-1 flex-row\">\n <!-- <div class=\"flex margin-right-s capitalize\">{{session[content?.identifier]?.sessionType || ''}}</div> -->\n <div class=\"flex margin-right-s\">{{session[content?.identifier]?.startDate | date: 'MMM d, y' }}\n </div>\n <div class=\"flex bullet-span\">{{session[content?.identifier]?.sessionDuration || '_'}}\n <span class=\"margin-left-s bullet-span\">{{session[content?.identifier]?.startTime || '_' }} -\n {{session[content?.identifier]?.endTime || '_'}}</span>\n </div>\n </div>\n </div>\n <!-- {{ content?.sYS_INTERNAL_LAST_UPDATED_ON | date: 'MMM d, y' }} -->\n </div>\n </a>\n <ng-container *ngIf=\"batchData?.enrolled\">\n <div *ngIf=\"session[content?.identifier]?.sessionHandouts?.length > 0\">\n <div class=\"flex flex-row font-normal py-2\">\n {{'apptocsessionscards.sessionHandouts' | translate }}\n </div>\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\n *ngFor=\"let handout of session[content?.identifier]?.sessionHandouts\">\n <div class=\"mr-2\">{{handout.title}}</div>\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{handout.url}}\">\n {{'apptocsessionscards.download' | translate }}\n </a>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"batchData?.enrolled && session[content?.identifier]?.resources?.length > 0\">\n <div class=\"flex flex-row font-normal py-2\">{{'apptocsessionscards.resources' | translate }}</div>\n <div class=\"flex gap-4 card justify-between flex-middle py-2 \"\n *ngFor=\"let resource of session[content?.identifier]?.resources\">\n <div class=\"mr-2\">{{resource.resourceTitle}}</div>\n <a class=\"download-resource-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\n *ngIf=\"resource?.resourceType === 'URL'\">\n {{'apptocsessionscards.view' | translate }}\n </a>\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{resource.resourceLink}}\"\n *ngIf=\"resource?.resourceType !== 'URL'\">\n {{'apptocsessionscards.download' | translate }}\n </a>\n </div>\n </ng-container>\n <ng-container>\n <ws-widget-attendance-card [session]=\"session[content?.identifier]\"\n [config]=\"config\"></ws-widget-attendance-card>\n </ng-container>\n\n </div>\n </div>\n</ng-container>\n\n<ng-template #collectionTemplate>\n <ng-container *ngIf=\"isCollection\">\n <ng-container *ngIf=\"isModule\">\n <div class=\"collection-wrapper flex flex-col position-relative\"\n [ngClass]=\"{'open': viewChildren, 'close': !viewChildren, 'course':!isModule, ' module': isModule}\">\n <div class=\"card-collection w-auto sm:w-100 padding-right-xl\">\n <div class=\"flex flex-col flex-wrap flex-between width-expand pr-0 w-100 sm:pr-4 sm:w-auto\">\n <div class=\"text-truncate1\" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\n (click)=\"viewChildren = !viewChildren\">\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\n <ng-container *ngFor=\"let sType of sessionType\">\n <span class=\"flex\" class=\"margin-right-s\"\n [ngClass]=\"sType ==='offline' ? 'offline':'online'\">\n {{sType | titlecase}}\n </span>\n\n </ng-container>\n\n\n </div>\n <div class=\"flex flex-col sm:flex-row flex-wrap mt-2\">\n <p class=\"margin-remove text-truncate1 mat-body-1 flex-auto font-bold\">\n {{ content?.name }}\n </p>\n </div>\n </div>\n <div class=\"see-all-container\">\n <a href=\"javascript:void(0)\" role=\"button\" (click)=\"viewChildren = !viewChildren\"\n class=\"margin-left-m see-all-btn tab custom-chevron customicon\" mat-button>\n <mat-icon *ngIf=\"!viewChildren && !isModule\">keyboard_arrow_down</mat-icon>\n <mat-icon *ngIf=\"viewChildren && !isModule\">keyboard_arrow_up</mat-icon>\n <mat-icon *ngIf=\"!viewChildren && isModule\">arrow_drop_down</mat-icon>\n <mat-icon *ngIf=\"viewChildren && isModule\">arrow_drop_up</mat-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"batchData?.enrolled\">\n <div *ngIf=\"content?.sessionHandouts?.length > 0\">\n <p class=\" font-bold mat-body-1 margin-bottom-xs ws-mat-black60-text\">\n {{'apptocsessionscards.sessionHandouts' | translate }}</p>\n <div class=\"flex flex-col flex-wrapped margin-bottom-s width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\n <ng-container *ngFor=\"let handout of content?.sessionHandouts\">\n <div class=\"\">\n <span class=\"mr-4\">{{handout.title}}</span>\n <a class=\"download-link\" target=\u201D_blank\u201D download\n href=\"{{handout.url}}\">{{'apptocsessionscards.download' | translate }}</a>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n <div class=\"child-wrapper \" [ngClass]=\"{'open': viewChildren, 'close': !viewChildren}\" *ngIf=\"viewChildren\"\n [@panelInOut]>\n <div class=\"children-container\" [ngClass]=\"{'module': isModule, '': !isModule}\">\n <ws-widget-app-toc-session-card-new [forPreview]=\"forPreview\" [pathSet]=\"pathSet\" [content]=\"child\"\n [index]=\"j+1\" [expandAll]=\"expandAll\" [rootId]=\"rootId\" [batchId]=\"batchId\"\n [rootContentType]=\"rootContentType\" [batchData]=\"batchData\" [config]=\"config\" [sessionType]=\"sessionType\"\n [session]=\"session\"\n *ngFor=\"let child of content?.children; trackBy: contentTrackBy; let j= index;let isFirst = first\"\n [ngClass]=\"{'moduleCard': true, 'first': isFirst}\"></ws-widget-app-toc-session-card-new>\n </div>\n </div>\n </ng-container>\n</ng-template>", styles: ["@charset \"UTF-8\";.customicon{position:absolute;top:-.5em;right:0}a.disabled{pointer-events:none;cursor:default}.card{background:#e5e9ef;border-radius:5px;padding:10px;margin:10px 0}span.optional-span{margin-left:8px;padding:0 6px;border-radius:2px;display:inline-block;background-color:#0074b6;color:#fff;font-size:12px}.card-collection{display:flex;align-items:center;border-radius:8px}.card-collection .card-thumbnail{height:100%;margin-right:12px;cursor:pointer;border-radius:8px 0 0}@media only screen and (max-width: 469px){.card-collection{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.card-collection .card-thumbnail{height:100%!important;width:100%!important}.card-collection .text-truncate{white-space:unset!important}}.tab:focus{outline:1px solid!important}.resource-container .card-thumbnail{height:100%;cursor:pointer}.resource-container .img-container{position:relative;margin-right:12px}.resource-container .img-container ws-widget-content-progress{position:absolute;left:0;right:0;bottom:5px}@media only screen and (max-width: 469px){.resource-container{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.resource-container .card-thumbnail{height:100%!important;width:100%!important}.resource-container .text-truncate{white-space:unset!important}}.child-meta-container{margin-top:8px;display:flex}.child-meta-container .child-structure{display:flex;align-items:center;flex-wrap:wrap}.child-meta-container .child-structure span{margin-right:12px;text-align:center;margin-bottom:8px}.child-meta-container .child-structure .structure-icon{margin-right:12px}@media only screen and (max-width: 469px){.child-meta-container{margin-left:.5rem;justify-content:space-between}}.resource-container{display:flex;align-items:center;border-radius:8px}.resource-container ws-display-content-type-icon{display:flex;align-items:center}.resource-container .resource-meta{margin-left:12px;display:flex;justify-content:space-between;align-items:center}.children-container .mat-subheading-1{font:400 16px/24px Lato!important}.children-container .resource-container{margin-bottom:20px;margin-right:8px}.children-container .resource-container .card-thumbnail{height:65px;align-self:center}.content-heading{letter-spacing:0px;color:#222}.content-type{letter-spacing:0px}.time-icon{vertical-align:middle}.time-value{letter-spacing:0px;color:#222;text-transform:lowercase}.see-all-container{position:absolute;right:2px;top:5px}.oval-white{background:#fff 0% 0% no-repeat padding-box;border-radius:8px;padding:2px 8px}.type-container{letter-spacing:0px;display:flex;align-items:center}.type-container .rotate-90{transform:rotate(-90deg)}.type-container .custom-icon{width:18px;height:18px;font-size:18px;margin-right:8px}.type-container.resource{color:#00a9f4}.type-container.module{color:#34d6a4}.type-container.course{color:#f58634}.no-mb{margin-bottom:0!important}.w-100{width:100%}.w-auto{width:auto}.progress-bar-thin{height:5px!important}.progress-bar-thin ::ng-deep .mat-progress-bar{height:5px}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-buffer{background-color:transparent!important}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-background{fill:transparent}.radiobtn{color:#00000029}.resicons img{width:22px;opacity:.5;margin-top:2px;vertical-align:sub}.bullet-span:before{content:\"\\2022\";padding-right:12px}.download-link{opacity:1;color:#0074b6;font-size:12px;font-weight:700;font-style:normal;letter-spacing:.5px;line-height:20px;text-transform:uppercase}.offline{border-radius:2px;background-color:#0009;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:fit-content}.online{border-radius:2px;background-color:#1d8923;padding:2px;opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;width:fit-content}.text-active{color:#1a4ca1}.text-active.font-bold{font-weight:600}\n"] }]
108
+ }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { session: [{
109
+ type: Input
110
+ }], expandAll: [{
111
+ type: Input
112
+ }], rootId: [{
113
+ type: Input
114
+ }], rootContentType: [{
115
+ type: Input
116
+ }], forPreview: [{
117
+ type: Input
118
+ }], batchData: [{
119
+ type: Input
120
+ }], config: [{
121
+ type: Input
122
+ }], index: [{
123
+ type: Input
124
+ }], batchId: [{
125
+ type: Input
126
+ }], content: [{
127
+ type: Input
128
+ }], pathSet: [{
129
+ type: Input
130
+ }], sessionType: [{
131
+ type: Input
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1zZXNzaW9uLWNhcmQtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL2FwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldy9hcHAtdG9jLXNlc3Npb24tY2FyZC1uZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2MvYXBwLXRvYy1zZXNzaW9uLWNhcmQtbmV3L2FwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRTlFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTs7Ozs7OztBQWdCM0IsTUFBTSxPQUFPLDZCQUE2QjtJQWlCeEMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoQnpCLFlBQU8sR0FBUSxJQUFJLENBQUE7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUdqQixlQUFVLEdBQUcsS0FBSyxDQUFBO1FBS2xCLFlBQU8sR0FBOEIsSUFBSSxDQUFBO1FBR2xELGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDaEIsY0FBUyxHQUFHLElBQUksQ0FBQTtRQUNoQixpQkFBWSxHQUFHLElBQUksQ0FBQTtJQUVtQixDQUFDO0lBRXZDLFFBQVE7SUFDUixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3JHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7U0FDOUY7UUFFRCxtRkFBbUY7UUFDbkYsbUdBQW1HO0lBRXJHLENBQUM7SUFDRCxjQUFjLEtBQUssQ0FBQztJQUNiLGFBQWE7UUFDbEIsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUNNLGNBQWM7UUFDbkIsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFBO1NBQ2pFO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU8sQ0FDTCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUM1RSxDQUFBO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFBO1NBQzFFO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBRWQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFBO1lBQ0QsOEJBQThCO1lBQzlCLCtGQUErRjtZQUMvRixPQUFPLEdBQUcsQ0FBQTtTQUNYO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ3JDLENBQUM7SUFDRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUMxRyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUMzQyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFO2dCQUNsQyxNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7Z0JBQ3pDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO2dCQUNsRSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO2dCQUNwRixPQUFPO2dCQUNMLGtCQUFrQjtnQkFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7dUJBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQ3RDLENBQUE7YUFDTjtZQUFDLE9BQU8sSUFBSSxDQUFBO1NBQ2Q7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7K0dBM0ZVLDZCQUE2QjttR0FBN0IsNkJBQTZCLG9XQ3JCMUMsNmpSQWlKYyxzMUpENUhELDZCQUE2QiwyWUFYNUI7WUFDVixPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUNsQixVQUFVLENBQUMsV0FBVyxFQUFFO29CQUNwQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO29CQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDO2lCQUNmLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFdBQVcsRUFBRTtvQkFDcEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQ3ZFLENBQUM7YUFDTCxDQUFDO1NBQUM7OzRGQUVNLDZCQUE2QjtrQkFmekMsU0FBUzsrQkFDRSxvQ0FBb0MsY0FHbEM7d0JBQ1YsT0FBTyxDQUFDLFlBQVksRUFBRTs0QkFDbEIsVUFBVSxDQUFDLFdBQVcsRUFBRTtnQ0FDcEIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztnQ0FDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDZixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3BCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDOzZCQUN2RSxDQUFDO3lCQUNMLENBQUM7cUJBQUM7NkZBR0ksT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcbmltcG9ydCB7IHZpZXdlclJvdXRlR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vX3NlcnZpY2VzL3ZpZXdlci1yb3V0ZS11dGlsJ1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy13aWRnZXQtYXBwLXRvYy1zZXNzaW9uLWNhcmQtbmV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC10b2Mtc2Vzc2lvbi1jYXJkLW5ldy5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcigncGFuZWxJbk91dCcsIFtcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMCUpJywgb3BhY2l0eTogJzAnIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgyNTApLFxuICAgICAgICBdKSxcbiAgICAgICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgW1xuICAgICAgICAgICAgYW5pbWF0ZSgyMDAsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMTAlKScsIG9wYWNpdHk6ICcwJyB9KSksXG4gICAgICAgIF0pLFxuICAgIF0pXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVG9jU2Vzc2lvbkNhcmROZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZXNzaW9uOiBhbnkgPSBudWxsXG4gIEBJbnB1dCgpIGV4cGFuZEFsbCA9IGZhbHNlXG4gIEBJbnB1dCgpIHJvb3RJZCE6IHN0cmluZ1xuICBASW5wdXQoKSByb290Q29udGVudFR5cGUhOiBzdHJpbmdcbiAgQElucHV0KCkgZm9yUHJldmlldyA9IGZhbHNlXG4gIEBJbnB1dCgpIGJhdGNoRGF0YSE6IGFueVxuICBASW5wdXQoKSBjb25maWchOiBzdHJpbmdcbiAgQElucHV0KCkgaW5kZXghOiBudW1iZXJcbiAgQElucHV0KCkgYmF0Y2hJZCE6IHN0cmluZ1xuICBASW5wdXQoKSBjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQgfCBudWxsID0gbnVsbFxuICBASW5wdXQoKSBwYXRoU2V0ITogYW55XG4gIEBJbnB1dCgpIHNlc3Npb25UeXBlOiBhbnlcbiAgaXNFbmFibGVkID0gdHJ1ZVxuICBpc0FsbG93ZWQgPSB0cnVlXG4gIHZpZXdDaGlsZHJlbiA9IHRydWVcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIHJlZGlyZWN0VG9QYWdlKCkge1xuICAgIGlmICh0aGlzLmlzQWxsb3dlZCAmJiAhdGhpcy5mb3JQcmV2aWV3ICYmIHRoaXMuaXNFbmFibGVkICYmIHRoaXMuYmF0Y2hEYXRhICYmIHRoaXMuYmF0Y2hEYXRhLmVucm9sbGVkKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yZXNvdXJjZUxpbmsudXJsXSwgeyBxdWVyeVBhcmFtczogdGhpcy5yZXNvdXJjZUxpbmsucXVlcnlQYXJhbXMgfSlcbiAgICB9XG5cbiAgICAvLyBbcm91dGVyTGlua109XCIoaXNBbGxvd2VkICYmICFmb3JQcmV2aWV3ICYmIGlzRW5hYmxlZCkgPyByZXNvdXJjZUxpbmsudXJsIDogbnVsbFwiXG4gICAgLy8gICAgICAgW3F1ZXJ5UGFyYW1zXT1cIihpc0FsbG93ZWQgJiYgIWZvclByZXZpZXcgJiYgaXNFbmFibGVkKSAgPyByZXNvdXJjZUxpbmsucXVlcnlQYXJhbXMgOiBudWxsXCJcblxuICB9XG4gIHJhaXNlVGVsZW1ldHJ5KCkgeyB9XG4gIHB1YmxpYyBwcm9ncmVzc0NvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcjMUQ4OTIzJ1xuICB9XG4gIHB1YmxpYyBwcm9ncmVzc0NvbG9yMigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnI2YyN2QwMCdcbiAgfVxuICBnZXQgaXNDb2xsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQubWltZVR5cGUgPT09IE5zQ29udGVudC5FTWltZVR5cGVzLkNPTExFQ1RJT05cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgZ2V0IGlzUmVzb3VyY2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuT0ZGTElORV9TRVNTSU9OXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGdldCBpc01vZHVsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuTU9EVUxFXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGdldCByZXNvdXJjZUxpbmsoKTogeyB1cmw6IHN0cmluZzsgcXVlcnlQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfSB7XG5cbiAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICBjb25zdCB1cmwgPSB2aWV3ZXJSb3V0ZUdlbmVyYXRvcihcbiAgICAgICAgdGhpcy5jb250ZW50LmlkZW50aWZpZXIsXG4gICAgICAgIHRoaXMuY29udGVudC5taW1lVHlwZSxcbiAgICAgICAgdGhpcy5yb290SWQsXG4gICAgICAgIHRoaXMucm9vdENvbnRlbnRUeXBlLFxuICAgICAgICB0aGlzLmZvclByZXZpZXcsXG4gICAgICAgIHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnksXG4gICAgICAgIHRoaXMuYmF0Y2hJZFxuICAgICAgKVxuICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNvbnRlbnQuaWRlbnRpZmllciwgJy0tLS0tLScsIHVybCwnPT09PT0+IGNvbnRlbnQgY2FyZCB1cmwgbGluayA8PT09PT09PT0nKVxuICAgICAgcmV0dXJuIHVybFxuICAgIH1cbiAgICByZXR1cm4geyB1cmw6ICcnLCBxdWVyeVBhcmFtczoge30gfVxuICB9XG4gIGdldCBpc0JhdGNoSW5Qcm9nZXNzKCkge1xuICAgIGlmICh0aGlzLmJhdGNoRGF0YSAmJiAodGhpcy5iYXRjaERhdGEuY29udGVudCAmJiB0aGlzLmJhdGNoRGF0YS5jb250ZW50Lmxlbmd0aCkgJiYgdGhpcy5iYXRjaERhdGEuZW5yb2xsZWQpIHtcbiAgICAgIGNvbnN0IGJhdGNoRGF0YSA9IHRoaXMuYmF0Y2hEYXRhLmNvbnRlbnRbMF1cbiAgICAgIGlmIChiYXRjaERhdGEgJiYgYmF0Y2hEYXRhLmVuZERhdGUpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gbW9tZW50KCkuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KGJhdGNoRGF0YS5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAgIGNvbnN0IGVuZERhdGUgPSBiYXRjaERhdGEuZW5kRGF0ZSA/IG1vbWVudChiYXRjaERhdGEuZW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJykgOiBub3dcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIC8vIGJhdGNoLnN0YXR1cyAmJlxuICAgICAgICAgICAgICBtb21lbnQoc3RhcnREYXRlKS5pc1NhbWVPckJlZm9yZShub3cpXG4gICAgICAgICAgICAgICYmIG1vbWVudChlbmREYXRlKS5pc1NhbWVPckFmdGVyKG5vdylcbiAgICAgICAgICAgIClcbiAgICAgIH0gcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50XCI+XG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb2xsZWN0aW9uICYmICFpc01vZHVsZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2xsZWN0aW9uVGVtcGxhdGVcIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgPC9uZy1jb250YWluZXI+XG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb2xsZWN0aW9uICYmIGlzTW9kdWxlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8ub2ZmbGluZVJlc291cnNlQ291bnRcIj5cbiAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sbGVjdGlvblRlbXBsYXRlXCI+XG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgPC9uZy1jb250YWluZXI+XG4gICA8ZGl2ICpuZ0lmPVwiaXNSZXNvdXJjZVwiIGNsYXNzPVwicmVzb3VyY2UtY29udGFpbmVyIG10LTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXNvdXJjZSBmbGV4IGZsZXgtd3JhcCBzbTpmbGV4LWNvbCBmbGV4LXN0YXJ0IHdpZHRoLWV4cGFuZCB3LTEwMCAgc206dy1hdXRvXCI+XG4gICAgICAgICA8YSBjbGFzcz1cInctZnVsbFwiIFtjbGFzcy5kaXNhYmxlZF09XCIoZm9yUHJldmlldyB8fCAhaXNFbmFibGVkIHx8ICFpc0JhdGNoSW5Qcm9nZXNzKSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdFRvUGFnZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10cnVuY2F0ZTEgXCIgW25nQ2xhc3NdPVwieydjdXJzb3ItcG9pbnRlcic6ICFpc0VuYWJsZWR9XCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWV3Q2hpbGRyZW4gPSAhdmlld0NoaWxkcmVuOyByYWlzZVRlbGVtZXRyeSgpO1wiPlxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgZmxleC13cmFwXCI+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUgdGV4dC10cnVuY2F0ZTEgbWF0LWJvZHktMiBmbGV4LWF1dG8gZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndGV4dC1hY3RpdmUnOiBwYXRoU2V0Py5oYXMoY29udGVudD8uaWRlbnRpZmllcil9XCI+XG4gICAgICAgICAgICAgICAgICAgICB7eyBjb250ZW50Py5uYW1lIH19IDxzcGFuIGNsYXNzPVwibWFyZ2luLWxlZnQtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J29mZmxpbmUnOiBzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5zZXNzaW9uVHlwZS50b0xvd2VyQ2FzZSgpID09PSAnb2ZmbGluZScsJ29ubGluZSc6c2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8uc2Vzc2lvblR5cGUudG9Mb3dlckNhc2UoKSAhPT0gJ29mZmxpbmUnfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5zZXNzaW9uVHlwZSB8fCAnJ319PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50LXR5cGUgb3B0aW9uYWwtc3BhblwiICpuZ0lmPVwiY29udGVudD8ub3B0aW9uYWxSZWFkaW5nXCI+b3B0aW9uYWwgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtYm9keS0yIHdzLW1hdC1ibGFjazYwLXRleHQgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4IG1hcmdpbi1yaWdodC1zIGNhcGl0YWxpemVcIj57e3Nlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LnNlc3Npb25UeXBlIHx8ICcnfX08L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmlnaHQtc1wiPnt7c2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8uc3RhcnREYXRlIHwgZGF0ZTogJ01NTSBkLCB5JyB9fVxuICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBidWxsZXQtc3BhblwiPnt7c2Vzc2lvbltjb250ZW50Py5pZGVudGlmaWVyXT8uc2Vzc2lvbkR1cmF0aW9uIHx8ICdfJ319XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hcmdpbi1sZWZ0LXMgYnVsbGV0LXNwYW5cIj57e3Nlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LnN0YXJ0VGltZSB8fCAnXycgfX0gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5lbmRUaW1lIHx8ICdfJ319PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgPCEtLSB7eyBjb250ZW50Py5zWVNfSU5URVJOQUxfTEFTVF9VUERBVEVEX09OIHwgZGF0ZTogJ01NTSBkLCB5JyB9fSAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgPC9hPlxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJhdGNoRGF0YT8uZW5yb2xsZWRcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5zZXNzaW9uSGFuZG91dHM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZvbnQtbm9ybWFsIHB5LTJcIj5cbiAgICAgICAgICAgICAgICAgIHt7J2FwcHRvY3Nlc3Npb25zY2FyZHMuc2Vzc2lvbkhhbmRvdXRzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNCBjYXJkIGp1c3RpZnktYmV0d2VlbiBmbGV4LW1pZGRsZSBweS0yIFwiXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaGFuZG91dCBvZiBzZXNzaW9uW2NvbnRlbnQ/LmlkZW50aWZpZXJdPy5zZXNzaW9uSGFuZG91dHNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+e3toYW5kb3V0LnRpdGxlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZG93bmxvYWQtbGlua1wiIHRhcmdldD3igJ1fYmxhbmvigJ0gZG93bmxvYWQgaHJlZj1cInt7aGFuZG91dC51cmx9fVwiPlxuICAgICAgICAgICAgICAgICAgICAge3snYXBwdG9jc2Vzc2lvbnNjYXJkcy5kb3dubG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiYXRjaERhdGE/LmVucm9sbGVkICYmIHNlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LnJlc291cmNlcz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZm9udC1ub3JtYWwgcHktMlwiPnt7J2FwcHRvY3Nlc3Npb25zY2FyZHMucmVzb3VyY2VzJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTQgY2FyZCBqdXN0aWZ5LWJldHdlZW4gZmxleC1taWRkbGUgcHktMiBcIlxuICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlc291cmNlIG9mIHNlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl0/LnJlc291cmNlc1wiPlxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLTJcIj57e3Jlc291cmNlLnJlc291cmNlVGl0bGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1yZXNvdXJjZS1saW5rXCIgdGFyZ2V0PeKAnV9ibGFua+KAnSBkb3dubG9hZCBocmVmPVwie3tyZXNvdXJjZS5yZXNvdXJjZUxpbmt9fVwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJlc291cmNlPy5yZXNvdXJjZVR5cGUgPT09ICdVUkwnXCI+XG4gICAgICAgICAgICAgICAgICB7eydhcHB0b2NzZXNzaW9uc2NhcmRzLnZpZXcnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICA8YSBjbGFzcz1cImRvd25sb2FkLWxpbmtcIiB0YXJnZXQ94oCdX2JsYW5r4oCdIGRvd25sb2FkIGhyZWY9XCJ7e3Jlc291cmNlLnJlc291cmNlTGlua319XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmVzb3VyY2U/LnJlc291cmNlVHlwZSAhPT0gJ1VSTCdcIj5cbiAgICAgICAgICAgICAgICAgIHt7J2FwcHRvY3Nlc3Npb25zY2FyZHMuZG93bmxvYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx3cy13aWRnZXQtYXR0ZW5kYW5jZS1jYXJkIFtzZXNzaW9uXT1cInNlc3Npb25bY29udGVudD8uaWRlbnRpZmllcl1cIlxuICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIj48L3dzLXdpZGdldC1hdHRlbmRhbmNlLWNhcmQ+XG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NvbGxlY3Rpb25UZW1wbGF0ZT5cbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbGxlY3Rpb25cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01vZHVsZVwiPlxuICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxlY3Rpb24td3JhcHBlciAgZmxleCBmbGV4LWNvbCBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J29wZW4nOiB2aWV3Q2hpbGRyZW4sICdjbG9zZSc6ICF2aWV3Q2hpbGRyZW4sICdjb3Vyc2UnOiFpc01vZHVsZSwgJyBtb2R1bGUnOiBpc01vZHVsZX1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbGxlY3Rpb24gdy1hdXRvIHNtOnctMTAwIHBhZGRpbmctcmlnaHQteGxcIj5cbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtd3JhcCBmbGV4LWJldHdlZW4gd2lkdGgtZXhwYW5kIHByLTAgdy0xMDAgc206cHItNCBzbTp3LWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlMVwiIFtuZ0NsYXNzXT1cInsnY3Vyc29yLXBvaW50ZXInOiAhaXNFbmFibGVkfVwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0NoaWxkcmVuID0gIXZpZXdDaGlsZHJlblwiPlxuICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgZmxleC13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzVHlwZSBvZiBzZXNzaW9uVHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4XCIgY2xhc3M9XCJtYXJnaW4tcmlnaHQtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzVHlwZSA9PT0nb2ZmbGluZScgPyAnb2ZmbGluZSc6J29ubGluZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c1R5cGUgfCB0aXRsZWNhc2V9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuXG4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGZsZXgtd3JhcCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUgdGV4dC10cnVuY2F0ZTEgbWF0LWJvZHktMSBmbGV4LWF1dG8gZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250ZW50Py5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlZS1hbGwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJ2aWV3Q2hpbGRyZW4gPSAhdmlld0NoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFyZ2luLWxlZnQtbSBzZWUtYWxsLWJ0biB0YWIgY3VzdG9tLWNoZXZyb24gY3VzdG9taWNvblwiIG1hdC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhdmlld0NoaWxkcmVuICYmICFpc01vZHVsZVwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwidmlld0NoaWxkcmVuICYmICFpc01vZHVsZVwiPmtleWJvYXJkX2Fycm93X3VwPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiF2aWV3Q2hpbGRyZW4gJiYgaXNNb2R1bGVcIj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwidmlld0NoaWxkcmVuICYmIGlzTW9kdWxlXCI+YXJyb3dfZHJvcF91cDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJhdGNoRGF0YT8uZW5yb2xsZWRcIj5cbiAgICAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5zZXNzaW9uSGFuZG91dHM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiIGZvbnQtYm9sZCBtYXQtYm9keS0xIG1hcmdpbi1ib3R0b20teHMgIHdzLW1hdC1ibGFjazYwLXRleHRcIj5cbiAgICAgICAgICAgICAgIHt7J2FwcHRvY3Nlc3Npb25zY2FyZHMuc2Vzc2lvbkhhbmRvdXRzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtd3JhcHBlZCBtYXJnaW4tYm90dG9tLXMgd2lkdGgtZXhwYW5kIHByLTAgdy0xMDAgc206cHItNCBzbTp3LWF1dG8gbWItNFwiPlxuICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGFuZG91dCBvZiBjb250ZW50Py5zZXNzaW9uSGFuZG91dHNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItNFwiPnt7aGFuZG91dC50aXRsZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgdGFyZ2V0PeKAnV9ibGFua+KAnSBkb3dubG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cInt7aGFuZG91dC51cmx9fVwiPnt7J2FwcHRvY3Nlc3Npb25zY2FyZHMuZG93bmxvYWQnIHwgdHJhbnNsYXRlIH19PC9hPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZC13cmFwcGVyICBcIiBbbmdDbGFzc109XCJ7J29wZW4nOiB2aWV3Q2hpbGRyZW4sICdjbG9zZSc6ICF2aWV3Q2hpbGRyZW59XCIgKm5nSWY9XCJ2aWV3Q2hpbGRyZW5cIlxuICAgICAgICAgW0BwYW5lbEluT3V0XT5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZHJlbi1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J21vZHVsZSc6IGlzTW9kdWxlLCAnJzogIWlzTW9kdWxlfVwiPlxuICAgICAgICAgICAgPHdzLXdpZGdldC1hcHAtdG9jLXNlc3Npb24tY2FyZC1uZXcgW2ZvclByZXZpZXddPVwiZm9yUHJldmlld1wiIFtwYXRoU2V0XT1cInBhdGhTZXRcIiBbY29udGVudF09XCJjaGlsZFwiXG4gICAgICAgICAgICAgICBbaW5kZXhdPVwiaisxXCIgW2V4cGFuZEFsbF09XCJleHBhbmRBbGxcIiBbcm9vdElkXT1cInJvb3RJZFwiIFtiYXRjaElkXT1cImJhdGNoSWRcIlxuICAgICAgICAgICAgICAgW3Jvb3RDb250ZW50VHlwZV09XCJyb290Q29udGVudFR5cGVcIiBbYmF0Y2hEYXRhXT1cImJhdGNoRGF0YVwiIFtjb25maWddPVwiY29uZmlnXCIgW3Nlc3Npb25UeXBlXT1cInNlc3Npb25UeXBlXCJcbiAgICAgICAgICAgICAgIFtzZXNzaW9uXT1cInNlc3Npb25cIlxuICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGNvbnRlbnQ/LmNoaWxkcmVuOyB0cmFja0J5OiBjb250ZW50VHJhY2tCeTsgbGV0IGo9IGluZGV4O2xldCBpc0ZpcnN0ID0gZmlyc3RcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtb2R1bGVDYXJkJzogdHJ1ZSwgJ2ZpcnN0JzogaXNGaXJzdH1cIj48L3dzLXdpZGdldC1hcHAtdG9jLXNlc3Npb24tY2FyZC1uZXc+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPiJdfQ==