@sunbird-cb/toc 0.0.1

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 -0
  2. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -0
  3. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -0
  4. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -0
  5. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -0
  6. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -0
  7. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -0
  8. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -0
  9. package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -0
  10. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -0
  11. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -0
  12. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -0
  13. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -0
  14. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -0
  15. package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -0
  16. package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -0
  17. package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -0
  18. package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -0
  19. package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -0
  20. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -0
  21. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -0
  22. package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -0
  23. package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -0
  24. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -0
  25. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -0
  26. package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -0
  27. package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +223 -0
  28. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +591 -0
  29. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -0
  30. package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -0
  31. package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -0
  32. package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -0
  33. package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -0
  34. package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -0
  35. package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -0
  36. package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -0
  37. package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -0
  38. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -0
  39. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -0
  40. package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -0
  41. package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -0
  42. package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -0
  43. package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -0
  44. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -0
  45. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -0
  46. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -0
  47. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -0
  48. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -0
  49. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -0
  50. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -0
  51. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -0
  52. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +73 -0
  53. package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -0
  54. package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -0
  55. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -0
  56. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -0
  57. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -0
  58. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -0
  59. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -0
  60. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -0
  61. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -0
  62. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -0
  63. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -0
  64. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -0
  65. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -0
  66. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -0
  67. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -0
  68. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -0
  69. package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -0
  70. package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -0
  71. package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -0
  72. package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -0
  73. package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -0
  74. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -0
  75. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -0
  76. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -0
  77. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -0
  78. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -0
  79. package/esm2022/lib/_collection-api.mjs +57 -0
  80. package/esm2022/lib/_constants/widget-content.constants.mjs +19 -0
  81. package/esm2022/lib/_directives/tooltip.directive.mjs +68 -0
  82. package/esm2022/lib/_models/common.model.mjs +2 -0
  83. package/esm2022/lib/_models/error.model.mjs +2 -0
  84. package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -0
  85. package/esm2022/lib/_services/rating.service.mjs +89 -0
  86. package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -0
  87. package/esm2022/lib/_services/viewer-route-util.mjs +103 -0
  88. package/esm2022/lib/_services/widget-content.model.mjs +246 -0
  89. package/esm2022/lib/_services/widget-content.service.mjs +589 -0
  90. package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -0
  91. package/esm2022/lib/app-toc-lib.module.mjs +499 -0
  92. package/esm2022/lib/collection.config.mjs +161 -0
  93. package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -0
  94. package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -0
  95. package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -0
  96. package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -0
  97. package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -0
  98. package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -0
  99. package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -0
  100. package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -0
  101. package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -0
  102. package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2796 -0
  103. package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -0
  104. package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -0
  105. package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -0
  106. package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -0
  107. package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -0
  108. package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -0
  109. package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -0
  110. package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -0
  111. package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -0
  112. package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -0
  113. package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -0
  114. package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -0
  115. package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -0
  116. package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -0
  117. package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -0
  118. package/esm2022/lib/models/app-toc.model.mjs +38 -0
  119. package/esm2022/lib/models/auto-complete.model.mjs +2 -0
  120. package/esm2022/lib/models/card-content.model.mjs +13 -0
  121. package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -0
  122. package/esm2022/lib/models/discussion-forum.model.mjs +14 -0
  123. package/esm2022/lib/models/goal.model.mjs +2 -0
  124. package/esm2022/lib/models/meta-tag.model.mjs +8 -0
  125. package/esm2022/lib/models/playlist.model.mjs +2 -0
  126. package/esm2022/lib/models/profile-revamp.model.mjs +2 -0
  127. package/esm2022/lib/models/rating.model.mjs +2 -0
  128. package/esm2022/lib/models/user-profile.model.mjs +21 -0
  129. package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -0
  130. package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -0
  131. package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -0
  132. package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -0
  133. package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -0
  134. package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -0
  135. package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -0
  136. package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -0
  137. package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -0
  138. package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -0
  139. package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -0
  140. package/esm2022/lib/services/access-control.service.mjs +56 -0
  141. package/esm2022/lib/services/action.service.mjs +23 -0
  142. package/esm2022/lib/services/app-toc-v2.service.mjs +47 -0
  143. package/esm2022/lib/services/app-toc.service.mjs +1001 -0
  144. package/esm2022/lib/services/certificate.service.mjs +69 -0
  145. package/esm2022/lib/services/discuss-utils.service.mjs +58 -0
  146. package/esm2022/lib/services/editor.service.mjs +34 -0
  147. package/esm2022/lib/services/load-check.service.mjs +21 -0
  148. package/esm2022/lib/services/loader.service.mjs +33 -0
  149. package/esm2022/lib/services/mobile-apps.service.mjs +67 -0
  150. package/esm2022/lib/services/netcore.service.mjs +56 -0
  151. package/esm2022/lib/services/nps-grid.service.mjs +31 -0
  152. package/esm2022/lib/services/otp.service.mjs +43 -0
  153. package/esm2022/lib/services/profile-v2.service.mjs +43 -0
  154. package/esm2022/lib/services/reset-ratings.service.mjs +19 -0
  155. package/esm2022/lib/services/resource-download-helper.service.mjs +64 -0
  156. package/esm2022/lib/services/timer.service.mjs +23 -0
  157. package/esm2022/lib/services/title-tag.service.mjs +71 -0
  158. package/esm2022/lib/services/user-profile.service.mjs +55 -0
  159. package/esm2022/lib/services/viewer-data.service.mjs +64 -0
  160. package/esm2022/lib/services/viewer-util.service.mjs +500 -0
  161. package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -0
  162. package/esm2022/lib/share-toc/share-toc.module.mjs +119 -0
  163. package/esm2022/public-api.mjs +56 -0
  164. package/esm2022/sunbird-cb-toc.mjs +5 -0
  165. package/fesm2022/sunbird-cb-toc.mjs +23517 -0
  166. package/fesm2022/sunbird-cb-toc.mjs.map +1 -0
  167. package/index.d.ts +6 -0
  168. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +17 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 +49 -0
  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 +92 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 +17 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  323. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +1 -0
  324. package/lib/_collection-api.d.ts +35 -0
  325. package/lib/_collection-api.d.ts.map +1 -0
  326. package/lib/_constants/widget-content.constants.d.ts +8 -0
  327. package/lib/_constants/widget-content.constants.d.ts.map +1 -0
  328. package/lib/_directives/tooltip.directive.d.ts +18 -0
  329. package/lib/_directives/tooltip.directive.d.ts.map +1 -0
  330. package/lib/_models/common.model.d.ts +4 -0
  331. package/lib/_models/common.model.d.ts.map +1 -0
  332. package/lib/_models/error.model.d.ts +6 -0
  333. package/lib/_models/error.model.d.ts.map +1 -0
  334. package/lib/_pipes/highlight.pipe.d.ts +11 -0
  335. package/lib/_pipes/highlight.pipe.d.ts.map +1 -0
  336. package/lib/_services/rating.service.d.ts +19 -0
  337. package/lib/_services/rating.service.d.ts.map +1 -0
  338. package/lib/_services/samuhik-charcha.service.d.ts +14 -0
  339. package/lib/_services/samuhik-charcha.service.d.ts.map +1 -0
  340. package/lib/_services/viewer-route-util.d.ts +9 -0
  341. package/lib/_services/viewer-route-util.d.ts.map +1 -0
  342. package/lib/_services/widget-content.model.d.ts +515 -0
  343. package/lib/_services/widget-content.model.d.ts.map +1 -0
  344. package/lib/_services/widget-content.service.d.ts +101 -0
  345. package/lib/_services/widget-content.service.d.ts.map +1 -0
  346. package/lib/_shared/translate-loader.factory.d.ts +8 -0
  347. package/lib/_shared/translate-loader.factory.d.ts.map +1 -0
  348. package/lib/app-toc-lib.module.d.ts +89 -0
  349. package/lib/app-toc-lib.module.d.ts.map +1 -0
  350. package/lib/collection.config.d.ts +160 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 +386 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  401. package/lib/models/app-toc-analytics.model.d.ts.map +1 -0
  402. package/lib/models/app-toc.model.d.ts +85 -0
  403. package/lib/models/app-toc.model.d.ts.map +1 -0
  404. package/lib/models/auto-complete.model.d.ts +28 -0
  405. package/lib/models/auto-complete.model.d.ts.map +1 -0
  406. package/lib/models/card-content.model.d.ts +20 -0
  407. package/lib/models/card-content.model.d.ts.map +1 -0
  408. package/lib/models/content-strip-with-tabs.model.d.ts +45 -0
  409. package/lib/models/content-strip-with-tabs.model.d.ts.map +1 -0
  410. package/lib/models/discussion-forum.model.d.ts +41 -0
  411. package/lib/models/discussion-forum.model.d.ts.map +1 -0
  412. package/lib/models/goal.model.d.ts +23 -0
  413. package/lib/models/goal.model.d.ts.map +1 -0
  414. package/lib/models/meta-tag.model.d.ts +7 -0
  415. package/lib/models/meta-tag.model.d.ts.map +1 -0
  416. package/lib/models/playlist.model.d.ts +24 -0
  417. package/lib/models/playlist.model.d.ts.map +1 -0
  418. package/lib/models/profile-revamp.model.d.ts +15 -0
  419. package/lib/models/profile-revamp.model.d.ts.map +1 -0
  420. package/lib/models/rating.model.d.ts +18 -0
  421. package/lib/models/rating.model.d.ts.map +1 -0
  422. package/lib/models/user-profile.model.d.ts +38 -0
  423. package/lib/models/user-profile.model.d.ts.map +1 -0
  424. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +13 -0
  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 -0
  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 -0
  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 -0
  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 -0
  433. package/lib/resolvers/app-toc-resolver.service.d.ts.map +1 -0
  434. package/lib/resolvers/config-resolver.service.d.ts +12 -0
  435. package/lib/resolvers/config-resolver.service.d.ts.map +1 -0
  436. package/lib/resolvers/profile-resolver.service.d.ts +12 -0
  437. package/lib/resolvers/profile-resolver.service.d.ts.map +1 -0
  438. package/lib/resolvers/restricted-features-resolver.service.d.ts +12 -0
  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 -0
  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 -0
  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 -0
  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 -0
  447. package/lib/services/access-control.service.d.ts.map +1 -0
  448. package/lib/services/action.service.d.ts +10 -0
  449. package/lib/services/action.service.d.ts.map +1 -0
  450. package/lib/services/app-toc-v2.service.d.ts +8 -0
  451. package/lib/services/app-toc-v2.service.d.ts.map +1 -0
  452. package/lib/services/app-toc.service.d.ts +131 -0
  453. package/lib/services/app-toc.service.d.ts.map +1 -0
  454. package/lib/services/certificate.service.d.ts +43 -0
  455. package/lib/services/certificate.service.d.ts.map +1 -0
  456. package/lib/services/discuss-utils.service.d.ts +34 -0
  457. package/lib/services/discuss-utils.service.d.ts.map +1 -0
  458. package/lib/services/editor.service.d.ts +18 -0
  459. package/lib/services/editor.service.d.ts.map +1 -0
  460. package/lib/services/load-check.service.d.ts +9 -0
  461. package/lib/services/load-check.service.d.ts.map +1 -0
  462. package/lib/services/loader.service.d.ts +17 -0
  463. package/lib/services/loader.service.d.ts.map +1 -0
  464. package/lib/services/mobile-apps.service.d.ts +39 -0
  465. package/lib/services/mobile-apps.service.d.ts.map +1 -0
  466. package/lib/services/netcore.service.d.ts +34 -0
  467. package/lib/services/netcore.service.d.ts.map +1 -0
  468. package/lib/services/nps-grid.service.d.ts +16 -0
  469. package/lib/services/nps-grid.service.d.ts.map +1 -0
  470. package/lib/services/otp.service.d.ts +21 -0
  471. package/lib/services/otp.service.d.ts.map +1 -0
  472. package/lib/services/profile-v2.service.d.ts +21 -0
  473. package/lib/services/profile-v2.service.d.ts.map +1 -0
  474. package/lib/services/reset-ratings.service.d.ts +9 -0
  475. package/lib/services/reset-ratings.service.d.ts.map +1 -0
  476. package/lib/services/resource-download-helper.service.d.ts +30 -0
  477. package/lib/services/resource-download-helper.service.d.ts.map +1 -0
  478. package/lib/services/timer.service.d.ts +10 -0
  479. package/lib/services/timer.service.d.ts.map +1 -0
  480. package/lib/services/title-tag.service.d.ts +22 -0
  481. package/lib/services/title-tag.service.d.ts.map +1 -0
  482. package/lib/services/user-profile.service.d.ts +25 -0
  483. package/lib/services/user-profile.service.d.ts.map +1 -0
  484. package/lib/services/viewer-data.service.d.ts +59 -0
  485. package/lib/services/viewer-data.service.d.ts.map +1 -0
  486. package/lib/services/viewer-util.service.d.ts +63 -0
  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 -0
  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 -0
  491. package/lib/share-toc/share-toc.module.d.ts.map +1 -0
  492. package/package.json +36 -0
  493. package/public-api.d.ts +44 -0
  494. package/public-api.d.ts.map +1 -0
  495. package/sunbird-cb-toc.d.ts.map +1 -0
@@ -0,0 +1,77 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/legacy-dialog";
5
+ import * as i2 from "./../../../_services/widget-content.service";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/material/legacy-card";
8
+ import * as i5 from "@angular/material/icon";
9
+ import * as i6 from "@angular/material/divider";
10
+ import * as i7 from "@angular/router";
11
+ export class MarkAsCompleteComponent {
12
+ constructor(dialog,
13
+ // private appTocSvc: AppTocService,
14
+ contentSvc) {
15
+ this.dialog = dialog;
16
+ this.contentSvc = contentSvc;
17
+ this.forPreview = false;
18
+ }
19
+ confirm() {
20
+ if (!this.forPreview) {
21
+ const dialogRef = this.dialog.open(ConfirmDialogComponent, {
22
+ width: '450px',
23
+ data: {
24
+ body: this.reqBody,
25
+ contentId: this.content.identifier,
26
+ },
27
+ });
28
+ dialogRef.afterClosed().subscribe(result => {
29
+ if (result === 'Marked' && this.content.progress) {
30
+ this.content.progress.progressStatus = 'completed';
31
+ this.content.progress.showMarkAsComplete = false;
32
+ this.content.progress.markAsCompleteReason = 'already.completed';
33
+ }
34
+ });
35
+ }
36
+ }
37
+ get showStart() {
38
+ return { show: true };
39
+ // return this.appTocSvc.showStartButton(this.content)
40
+ }
41
+ ngOnInit() {
42
+ }
43
+ ngOnChanges(props) {
44
+ for (const prop in props) {
45
+ if (prop === 'content') {
46
+ if (this.content) {
47
+ if (!this.forPreview) {
48
+ this.contentSvc
49
+ .fetchMarkAsCompleteMeta(this.content.identifier)
50
+ .then(progress => {
51
+ this.content.progress = progress;
52
+ })
53
+ .catch(() => { });
54
+ this.reqBody = {
55
+ content_type: this.content.contentType,
56
+ current: ['1'],
57
+ max_size: 1,
58
+ mime_type: this.content.mimeType,
59
+ user_id_type: 'uuid',
60
+ };
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkAsCompleteComponent, deps: [{ token: i1.MatLegacyDialog }, { token: i2.WidgetContentService }], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MarkAsCompleteComponent, selector: "ws-widget-mark-as-complete", inputs: { content: "content", forPreview: "forPreview" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"content?.progress?.progressSupported && showStart.show\">\n <mat-card class=\"mb-4 block\">\n <h2 class=\"margin-remove-bottom\"><span >Learning Progress </span>\n <a i18n-aria-label aria-label=\"Learning Progress FAQ\" [routerLink]=\"'/app/info/faq'\"\n [queryParams]=\"{tab: 'mark_as_complete'}\">\n <mat-icon class=\"align-text-top ws-mat-primary-text\">help</mat-icon>\n </a>\n </h2>\n <h3><span >Status: </span>\n <ng-container *ngIf=\"content?.progress?.progressStatus; let status\">\n <span *ngIf=\"status === 'open'\">Open</span>\n <span *ngIf=\"status === 'started'\">Started</span>\n <span *ngIf=\"status === 'completed'\">Completed</span>\n </ng-container>\n </h3>\n <ng-container *ngIf=\"content?.progress?.markAsCompleteReason !== 'not.supported'\">\n <mat-divider></mat-divider>\n <!-- <ng-container *ngIf=\"content?.progress?.showMarkAsComplete\">\n <h4 class=\"pt-3\">I confirm that I have gone through this content and want to mark it as complete.</h4>\n <div class=\"flex justify-center\">\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">Mark as Complete</button>\n </div>\n </ng-container> -->\n <ng-container *ngIf=\"!content?.progress?.showMarkAsComplete\">\n <h4 class=\"pt-3\" *ngIf=\"content?.progress?.markAsCompleteReason; let msg\">\n <span *ngIf=\"msg === 'pass.required'\">Content will be marked as complete once you pass this\n assessment.</span>\n <span *ngIf=\"msg === 'submission.required'\">Content will be marked as complete once you submit this\n quiz/exercise.</span>\n <span i18n\n *ngIf=\"msg === 'external.vendor.provided' && content?.progress?.progressStatus !== 'completed'\">Your\n learning progress for this content is captured externally and will be updated in this portal once it is\n received.</span>\n <span i18n\n *ngIf=\"msg === 'external.vendor.provided' && content?.progress?.progressStatus === 'completed'\">Your\n progress was automatically captured from its source.</span>\n <span *ngIf=\"msg === 'has.children'\">This content is hierarchical. Progress will be calculated on the\n basis\n of children resources</span>\n <span *ngIf=\"msg === 'already.completed'\">Completed</span>\n <span *ngIf=\"msg === 'instructor.led'\">Progress will be calculated based on your classroom\n attendance.</span>\n </h4>\n </ng-container>\n </ng-container>\n </mat-card>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkAsCompleteComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'ws-widget-mark-as-complete', template: "<ng-container *ngIf=\"content?.progress?.progressSupported && showStart.show\">\n <mat-card class=\"mb-4 block\">\n <h2 class=\"margin-remove-bottom\"><span >Learning Progress </span>\n <a i18n-aria-label aria-label=\"Learning Progress FAQ\" [routerLink]=\"'/app/info/faq'\"\n [queryParams]=\"{tab: 'mark_as_complete'}\">\n <mat-icon class=\"align-text-top ws-mat-primary-text\">help</mat-icon>\n </a>\n </h2>\n <h3><span >Status: </span>\n <ng-container *ngIf=\"content?.progress?.progressStatus; let status\">\n <span *ngIf=\"status === 'open'\">Open</span>\n <span *ngIf=\"status === 'started'\">Started</span>\n <span *ngIf=\"status === 'completed'\">Completed</span>\n </ng-container>\n </h3>\n <ng-container *ngIf=\"content?.progress?.markAsCompleteReason !== 'not.supported'\">\n <mat-divider></mat-divider>\n <!-- <ng-container *ngIf=\"content?.progress?.showMarkAsComplete\">\n <h4 class=\"pt-3\">I confirm that I have gone through this content and want to mark it as complete.</h4>\n <div class=\"flex justify-center\">\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">Mark as Complete</button>\n </div>\n </ng-container> -->\n <ng-container *ngIf=\"!content?.progress?.showMarkAsComplete\">\n <h4 class=\"pt-3\" *ngIf=\"content?.progress?.markAsCompleteReason; let msg\">\n <span *ngIf=\"msg === 'pass.required'\">Content will be marked as complete once you pass this\n assessment.</span>\n <span *ngIf=\"msg === 'submission.required'\">Content will be marked as complete once you submit this\n quiz/exercise.</span>\n <span i18n\n *ngIf=\"msg === 'external.vendor.provided' && content?.progress?.progressStatus !== 'completed'\">Your\n learning progress for this content is captured externally and will be updated in this portal once it is\n received.</span>\n <span i18n\n *ngIf=\"msg === 'external.vendor.provided' && content?.progress?.progressStatus === 'completed'\">Your\n progress was automatically captured from its source.</span>\n <span *ngIf=\"msg === 'has.children'\">This content is hierarchical. Progress will be calculated on the\n basis\n of children resources</span>\n <span *ngIf=\"msg === 'already.completed'\">Completed</span>\n <span *ngIf=\"msg === 'instructor.led'\">Progress will be calculated based on your classroom\n attendance.</span>\n </h4>\n </ng-container>\n </ng-container>\n </mat-card>\n</ng-container>" }]
72
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }, { type: i2.WidgetContentService }]; }, propDecorators: { content: [{
73
+ type: Input
74
+ }], forPreview: [{
75
+ type: Input
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1hcy1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9tYXJrLWFzLWNvbXBsZXRlL21hcmstYXMtY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vbWFyay1hcy1jb21wbGV0ZS9tYXJrLWFzLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQTtBQUlsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7Ozs7O0FBU25GLE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFDUyxNQUFpQjtJQUN4QixvQ0FBb0M7SUFDNUIsVUFBZ0M7UUFGakMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUVoQixlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUxqQyxlQUFVLEdBQUcsS0FBSyxDQUFBO0lBTXZCLENBQUM7SUFFTCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQ3pELEtBQUssRUFBRSxPQUFPO2dCQUNkLElBQUksRUFBRTtvQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87b0JBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7aUJBQ25DO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDekMsSUFBSSxNQUFNLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO29CQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFBO29CQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUE7b0JBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFBO2lCQUNqRTtZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQTtRQUNyQixzREFBc0Q7SUFDeEQsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQW9CO1FBQzlCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3hCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTt3QkFDcEIsSUFBSSxDQUFDLFVBQVU7NkJBQ1osdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7NkJBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTs0QkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7d0JBQ2xDLENBQUMsQ0FBQzs2QkFDRCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7d0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUc7NEJBQ2IsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVzs0QkFDdEMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDOzRCQUNkLFFBQVEsRUFBRSxDQUFDOzRCQUNYLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7NEJBQ2hDLFlBQVksRUFBRSxNQUFNO3lCQUNyQixDQUFBO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7K0dBOURVLHVCQUF1QjttR0FBdkIsdUJBQXVCLGlKQ2JwQywrbkZBOENlOzs0RkRqQ0YsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLDRCQUE0Qjt5SUFNdEMsT0FBTztzQkFETixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZydcbi8vIGltcG9ydCB7IEFwcFRvY1NlcnZpY2UgfSBmcm9tICdAd3MvYXBwL3NyYy9saWIvcm91dGVzL2FwcC10b2Mvc2VydmljZXMvYXBwLXRvYy5zZXJ2aWNlJ1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQubW9kZWwnXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50J1xuaW1wb3J0IHsgSVJlcU1hcmtBc0NvbXBsZXRlIH0gZnJvbSAnLi9tYXJrLWFzLWNvbXBsZXRlLm1vZGVsJ1xuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy13aWRnZXQtbWFyay1hcy1jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrLWFzLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFyay1hcy1jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNYXJrQXNDb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgY29udGVudCE6IE5zQ29udGVudC5JQ29udGVudFxuICByZXFCb2R5ITogSVJlcU1hcmtBc0NvbXBsZXRlXG4gIEBJbnB1dCgpIGZvclByZXZpZXcgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAvLyBwcml2YXRlIGFwcFRvY1N2YzogQXBwVG9jU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRlbnRTdmM6IFdpZGdldENvbnRlbnRTZXJ2aWNlLFxuICApIHsgfVxuXG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZvclByZXZpZXcpIHtcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogJzQ1MHB4JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGJvZHk6IHRoaXMucmVxQm9keSxcbiAgICAgICAgICBjb250ZW50SWQ6IHRoaXMuY29udGVudC5pZGVudGlmaWVyLFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09ICdNYXJrZWQnICYmIHRoaXMuY29udGVudC5wcm9ncmVzcykge1xuICAgICAgICAgIHRoaXMuY29udGVudC5wcm9ncmVzcy5wcm9ncmVzc1N0YXR1cyA9ICdjb21wbGV0ZWQnXG4gICAgICAgICAgdGhpcy5jb250ZW50LnByb2dyZXNzLnNob3dNYXJrQXNDb21wbGV0ZSA9IGZhbHNlXG4gICAgICAgICAgdGhpcy5jb250ZW50LnByb2dyZXNzLm1hcmtBc0NvbXBsZXRlUmVhc29uID0gJ2FscmVhZHkuY29tcGxldGVkJ1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93U3RhcnQoKSB7XG4gICAgcmV0dXJuIHsgc2hvdzogdHJ1ZSB9XG4gICAgLy8gcmV0dXJuIHRoaXMuYXBwVG9jU3ZjLnNob3dTdGFydEJ1dHRvbih0aGlzLmNvbnRlbnQpXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHByb3BzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgZm9yIChjb25zdCBwcm9wIGluIHByb3BzKSB7XG4gICAgICBpZiAocHJvcCA9PT0gJ2NvbnRlbnQnKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuZm9yUHJldmlldykge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U3ZjXG4gICAgICAgICAgICAgIC5mZXRjaE1hcmtBc0NvbXBsZXRlTWV0YSh0aGlzLmNvbnRlbnQuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgLnRoZW4ocHJvZ3Jlc3MgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5wcm9ncmVzcyA9IHByb2dyZXNzXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7IH0pXG4gICAgICAgICAgICB0aGlzLnJlcUJvZHkgPSB7XG4gICAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogdGhpcy5jb250ZW50LmNvbnRlbnRUeXBlLFxuICAgICAgICAgICAgICBjdXJyZW50OiBbJzEnXSxcbiAgICAgICAgICAgICAgbWF4X3NpemU6IDEsXG4gICAgICAgICAgICAgIG1pbWVfdHlwZTogdGhpcy5jb250ZW50Lm1pbWVUeXBlLFxuICAgICAgICAgICAgICB1c2VyX2lkX3R5cGU6ICd1dWlkJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5wcm9ncmVzcz8ucHJvZ3Jlc3NTdXBwb3J0ZWQgJiYgc2hvd1N0YXJ0LnNob3dcIj5cbiAgPG1hdC1jYXJkIGNsYXNzPVwibWItNCBibG9ja1wiPlxuICAgIDxoMiBjbGFzcz1cIm1hcmdpbi1yZW1vdmUtYm90dG9tXCI+PHNwYW4gPkxlYXJuaW5nIFByb2dyZXNzIDwvc3Bhbj5cbiAgICAgIDxhIGkxOG4tYXJpYS1sYWJlbCBhcmlhLWxhYmVsPVwiTGVhcm5pbmcgUHJvZ3Jlc3MgRkFRXCIgW3JvdXRlckxpbmtdPVwiJy9hcHAvaW5mby9mYXEnXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInt0YWI6ICdtYXJrX2FzX2NvbXBsZXRlJ31cIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWxpZ24tdGV4dC10b3Agd3MtbWF0LXByaW1hcnktdGV4dFwiPmhlbHA8L21hdC1pY29uPlxuICAgICAgPC9hPlxuICAgIDwvaDI+XG4gICAgPGgzPjxzcGFuID5TdGF0dXM6IDwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5wcm9ncmVzcz8ucHJvZ3Jlc3NTdGF0dXM7IGxldCBzdGF0dXNcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0dXMgPT09ICdvcGVuJ1wiPk9wZW48L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic3RhdHVzID09PSAnc3RhcnRlZCdcIj5TdGFydGVkPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIj5Db21wbGV0ZWQ8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2gzPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5wcm9ncmVzcz8ubWFya0FzQ29tcGxldGVSZWFzb24gIT09ICdub3Quc3VwcG9ydGVkJ1wiPlxuICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5wcm9ncmVzcz8uc2hvd01hcmtBc0NvbXBsZXRlXCI+XG4gICAgICAgIDxoNCBjbGFzcz1cInB0LTNcIj5JIGNvbmZpcm0gdGhhdCBJIGhhdmUgZ29uZSB0aHJvdWdoIHRoaXMgY29udGVudCBhbmQgd2FudCB0byBtYXJrIGl0IGFzIGNvbXBsZXRlLjwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybSgpXCI+TWFyayBhcyBDb21wbGV0ZTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGVudD8ucHJvZ3Jlc3M/LnNob3dNYXJrQXNDb21wbGV0ZVwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJwdC0zXCIgKm5nSWY9XCJjb250ZW50Py5wcm9ncmVzcz8ubWFya0FzQ29tcGxldGVSZWFzb247IGxldCBtc2dcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1zZyA9PT0gJ3Bhc3MucmVxdWlyZWQnXCI+Q29udGVudCB3aWxsIGJlIG1hcmtlZCBhcyBjb21wbGV0ZSBvbmNlIHlvdSBwYXNzIHRoaXNcbiAgICAgICAgICAgIGFzc2Vzc21lbnQuPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibXNnID09PSAnc3VibWlzc2lvbi5yZXF1aXJlZCdcIj5Db250ZW50IHdpbGwgYmUgbWFya2VkIGFzIGNvbXBsZXRlIG9uY2UgeW91IHN1Ym1pdCB0aGlzXG4gICAgICAgICAgICBxdWl6L2V4ZXJjaXNlLjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBpMThuXG4gICAgICAgICAgICAqbmdJZj1cIm1zZyA9PT0gJ2V4dGVybmFsLnZlbmRvci5wcm92aWRlZCcgJiYgY29udGVudD8ucHJvZ3Jlc3M/LnByb2dyZXNzU3RhdHVzICE9PSAnY29tcGxldGVkJ1wiPllvdXJcbiAgICAgICAgICAgIGxlYXJuaW5nIHByb2dyZXNzIGZvciB0aGlzIGNvbnRlbnQgaXMgY2FwdHVyZWQgZXh0ZXJuYWxseSBhbmQgd2lsbCBiZSB1cGRhdGVkIGluIHRoaXMgcG9ydGFsIG9uY2UgaXQgaXNcbiAgICAgICAgICAgIHJlY2VpdmVkLjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBpMThuXG4gICAgICAgICAgICAqbmdJZj1cIm1zZyA9PT0gJ2V4dGVybmFsLnZlbmRvci5wcm92aWRlZCcgJiYgY29udGVudD8ucHJvZ3Jlc3M/LnByb2dyZXNzU3RhdHVzID09PSAnY29tcGxldGVkJ1wiPllvdXJcbiAgICAgICAgICAgIHByb2dyZXNzIHdhcyBhdXRvbWF0aWNhbGx5IGNhcHR1cmVkIGZyb20gaXRzIHNvdXJjZS48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJtc2cgPT09ICdoYXMuY2hpbGRyZW4nXCI+VGhpcyBjb250ZW50IGlzIGhpZXJhcmNoaWNhbC4gUHJvZ3Jlc3Mgd2lsbCBiZSBjYWxjdWxhdGVkIG9uIHRoZVxuICAgICAgICAgICAgYmFzaXNcbiAgICAgICAgICAgIG9mIGNoaWxkcmVuIHJlc291cmNlczwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1zZyA9PT0gJ2FscmVhZHkuY29tcGxldGVkJ1wiPkNvbXBsZXRlZDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1zZyA9PT0gJ2luc3RydWN0b3IubGVkJ1wiPlByb2dyZXNzIHdpbGwgYmUgY2FsY3VsYXRlZCBiYXNlZCBvbiB5b3VyIGNsYXNzcm9vbVxuICAgICAgICAgICAgYXR0ZW5kYW5jZS48L3NwYW4+XG4gICAgICAgIDwvaDQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtY2FyZD5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1hcy1jb21wbGV0ZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL21hcmstYXMtY29tcGxldGUvbWFyay1hcy1jb21wbGV0ZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQubW9kZWwnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlcU1hcmtBc0NvbXBsZXRlIHtcbiAgY29udGVudF90eXBlOiBOc0NvbnRlbnQuRUNvbnRlbnRUeXBlcyxcbiAgY3VycmVudDogWycxJ10sXG4gIG1heF9zaXplOiAxLFxuICBtaW1lX3R5cGU6IE5zQ29udGVudC5FTWltZVR5cGVzLFxuICB1c2VyX2lkX3R5cGU6ICd1dWlkJyxcbn1cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MarkAsCompleteComponent } from './mark-as-complete.component';
4
+ import { ConfirmDialogModule } from '../confirm-dialog/confirm-dialog.module';
5
+ import { RouterModule } from '@angular/router';
6
+ import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';
7
+ import { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card';
8
+ import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog';
9
+ import { MatDividerModule } from '@angular/material/divider';
10
+ import { MatIconModule } from '@angular/material/icon';
11
+ import { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';
12
+ import { MatLegacySnackBarModule as MatSnackBarModule } from '@angular/material/legacy-snack-bar';
13
+ import { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';
14
+ import * as i0 from "@angular/core";
15
+ // import { AppTocService } from '@ws/app/src/lib/routes/app-toc/services/app-toc.service'
16
+ export class MarkAsCompleteModule {
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkAsCompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MarkAsCompleteModule, declarations: [MarkAsCompleteComponent], imports: [CommonModule,
19
+ MatCardModule,
20
+ MatIconModule,
21
+ MatDividerModule,
22
+ MatButtonModule,
23
+ MatDialogModule,
24
+ MatProgressSpinnerModule,
25
+ MatSnackBarModule,
26
+ MatTooltipModule,
27
+ RouterModule,
28
+ ConfirmDialogModule], exports: [MarkAsCompleteComponent] }); }
29
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkAsCompleteModule, imports: [CommonModule,
30
+ MatCardModule,
31
+ MatIconModule,
32
+ MatDividerModule,
33
+ MatButtonModule,
34
+ MatDialogModule,
35
+ MatProgressSpinnerModule,
36
+ MatSnackBarModule,
37
+ MatTooltipModule,
38
+ RouterModule,
39
+ ConfirmDialogModule] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkAsCompleteModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [MarkAsCompleteComponent],
45
+ imports: [
46
+ CommonModule,
47
+ MatCardModule,
48
+ MatIconModule,
49
+ MatDividerModule,
50
+ MatButtonModule,
51
+ MatDialogModule,
52
+ MatProgressSpinnerModule,
53
+ MatSnackBarModule,
54
+ MatTooltipModule,
55
+ RouterModule,
56
+ ConfirmDialogModule,
57
+ ],
58
+ exports: [MarkAsCompleteComponent]
59
+ }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1hcy1jb21wbGV0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9tYXJrLWFzLWNvbXBsZXRlL21hcmstYXMtY29tcGxldGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ3BGLE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLDhCQUE4QixJQUFJLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDdEgsT0FBTyxFQUFFLHVCQUF1QixJQUFJLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDakcsT0FBTyxFQUFFLHNCQUFzQixJQUFJLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7O0FBQzdGLDBGQUEwRjtBQW1CMUYsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsaUJBaEJkLHVCQUF1QixhQUVsQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGVBQWU7WUFDZix3QkFBd0I7WUFDeEIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osbUJBQW1CLGFBRWIsdUJBQXVCO2dIQUV4QixvQkFBb0IsWUFkekIsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLG1CQUFtQjs7NEZBSWQsb0JBQW9CO2tCQWpCaEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osbUJBQW1CO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBNYXJrQXNDb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vbWFyay1hcy1jb21wbGV0ZS5jb21wb25lbnQnXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cubW9kdWxlJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgTWF0TGVnYWN5QnV0dG9uTW9kdWxlIGFzIE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1idXR0b24nXG5pbXBvcnQgeyBNYXRMZWdhY3lDYXJkTW9kdWxlIGFzIE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktY2FyZCdcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ01vZHVsZSBhcyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJ1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdExlZ2FjeVByb2dyZXNzU3Bpbm5lck1vZHVsZSBhcyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktcHJvZ3Jlc3Mtc3Bpbm5lcidcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyTW9kdWxlIGFzIE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNuYWNrLWJhcidcbmltcG9ydCB7IE1hdExlZ2FjeVRvb2x0aXBNb2R1bGUgYXMgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS10b29sdGlwJ1xuLy8gaW1wb3J0IHsgQXBwVG9jU2VydmljZSB9IGZyb20gJ0B3cy9hcHAvc3JjL2xpYi9yb3V0ZXMvYXBwLXRvYy9zZXJ2aWNlcy9hcHAtdG9jLnNlcnZpY2UnXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbTWFya0FzQ29tcGxldGVDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBDb25maXJtRGlhbG9nTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW01hcmtBc0NvbXBsZXRlQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBNYXJrQXNDb21wbGV0ZU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PipeContentRoutePipe } from './pipe-content-route.pipe';
4
+ import * as i0 from "@angular/core";
5
+ export class PipeContentRouteModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRouteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRouteModule, declarations: [PipeContentRoutePipe], imports: [CommonModule], exports: [PipeContentRoutePipe] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRouteModule, imports: [CommonModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRouteModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [PipeContentRoutePipe],
14
+ imports: [
15
+ CommonModule,
16
+ ],
17
+ exports: [PipeContentRoutePipe],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1jb250ZW50LXJvdXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL3BpcGUtY29udGVudC1yb3V0ZS9waXBlLWNvbnRlbnQtcm91dGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQVNoRSxNQUFNLE9BQU8sc0JBQXNCOytHQUF0QixzQkFBc0I7Z0hBQXRCLHNCQUFzQixpQkFObEIsb0JBQW9CLGFBRWpDLFlBQVksYUFFSixvQkFBb0I7Z0hBRW5CLHNCQUFzQixZQUovQixZQUFZOzs0RkFJSCxzQkFBc0I7a0JBUGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFBpcGVDb250ZW50Um91dGVQaXBlIH0gZnJvbSAnLi9waXBlLWNvbnRlbnQtcm91dGUucGlwZSdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUGlwZUNvbnRlbnRSb3V0ZVBpcGVdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbUGlwZUNvbnRlbnRSb3V0ZVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBQaXBlQ29udGVudFJvdXRlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,73 @@
1
+ import { Pipe, Injectable } from '@angular/core';
2
+ import { NsContent } from '../../../_services/widget-content.model';
3
+ import * as i0 from "@angular/core";
4
+ export class PipeContentRoutePipe {
5
+ constructor() { }
6
+ transform(content, forPreview = false) {
7
+ // commercial_begin
8
+ const location = forPreview ? '/public' : '/app';
9
+ // commercial_end
10
+ if (content.contentType === 'Knowledge Board') {
11
+ return {
12
+ url: forPreview
13
+ ? `${location}/toc/${content.identifier}/overview`
14
+ : `${location}/knowledge-board/${content.identifier}`,
15
+ queryParams: this.getQueryParams(),
16
+ };
17
+ }
18
+ if (content.primaryCategory === NsContent.EPrimaryCategory.CHANNEL) {
19
+ return {
20
+ url: `/${forPreview ? 'author/viewer/channel' : 'page'}/${content.identifier}`,
21
+ queryParams: this.getQueryParams(),
22
+ };
23
+ }
24
+ if (content.contentType === 'Learning Journeys') {
25
+ if (content.resourceType === 'Dynamic Learning Paths') {
26
+ return {
27
+ url: `/app/learning-journey/dlp/${content.identifier}/0`,
28
+ queryParams: this.getQueryParams(),
29
+ };
30
+ }
31
+ return {
32
+ url: `/app/learning-journey/cdp/${content.identifier}`,
33
+ queryParams: this.getQueryParams(),
34
+ };
35
+ }
36
+ if (content.continueLearningData
37
+ && content.continueLearningData.contextType === 'playlist'
38
+ && content.continueLearningData.contextPathId) {
39
+ return {
40
+ url: `/app/playlist/me/${content.continueLearningData.contextPathId}`,
41
+ queryParams: this.getQueryParams(),
42
+ };
43
+ }
44
+ if (content.planType === 'cbPlan') {
45
+ return {
46
+ url: `${location}/toc/${content.identifier}/overview`,
47
+ queryParams: { planType: 'cbPlan', endDate: content.endDate },
48
+ };
49
+ }
50
+ return {
51
+ url: `${location}/toc/${content.identifier}/overview`,
52
+ queryParams: this.getQueryParams(),
53
+ };
54
+ }
55
+ getQueryParams() {
56
+ return {};
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRoutePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
59
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRoutePipe, name: "pipeContentRoute" }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRoutePipe, providedIn: 'root' }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipeContentRoutePipe, decorators: [{
63
+ type: Injectable,
64
+ args: [{
65
+ providedIn: 'root'
66
+ }]
67
+ }, {
68
+ type: Pipe,
69
+ args: [{
70
+ name: 'pipeContentRoute',
71
+ }]
72
+ }], ctorParameters: function () { return []; } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1jb250ZW50LXJvdXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9waXBlLWNvbnRlbnQtcm91dGUvcGlwZS1jb250ZW50LXJvdXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7QUFPbkUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixnQkFBZ0IsQ0FBQztJQUVqQixTQUFTLENBQ1AsT0FBMkIsRUFDM0IsVUFBVSxHQUFHLEtBQUs7UUFFbEIsbUJBQW1CO1FBQ25CLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDaEQsaUJBQWlCO1FBQ2pCLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxpQkFBaUIsRUFBRTtZQUM3QyxPQUFPO2dCQUNMLEdBQUcsRUFBRSxVQUFVO29CQUNiLENBQUMsQ0FBQyxHQUFHLFFBQVEsUUFBUSxPQUFPLENBQUMsVUFBVSxXQUFXO29CQUNsRCxDQUFDLENBQUMsR0FBRyxRQUFRLG9CQUFvQixPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN2RCxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTthQUNuQyxDQUFBO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLEtBQUssU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtZQUNsRSxPQUFPO2dCQUNMLEdBQUcsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUM5RSxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTthQUNuQyxDQUFBO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssbUJBQW1CLEVBQUU7WUFDL0MsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLHdCQUF3QixFQUFFO2dCQUNyRCxPQUFPO29CQUNMLEdBQUcsRUFBRSw2QkFBNkIsT0FBTyxDQUFDLFVBQVUsSUFBSTtvQkFDeEQsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7aUJBQ25DLENBQUE7YUFDRjtZQUNELE9BQU87Z0JBQ0wsR0FBRyxFQUFFLDZCQUE2QixPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN0RCxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTthQUNuQyxDQUFBO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sQ0FBQyxvQkFBb0I7ZUFDM0IsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsS0FBSyxVQUFVO2VBQ3ZELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUU7WUFDL0MsT0FBTztnQkFDTCxHQUFHLEVBQUUsb0JBQW9CLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3JFLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO2FBQ25DLENBQUE7U0FDRjtRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDakMsT0FBTztnQkFDTCxHQUFHLEVBQUUsR0FBRyxRQUFRLFFBQVEsT0FBTyxDQUFDLFVBQVUsV0FBVztnQkFDckQsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRTthQUM5RCxDQUFBO1NBQ0Y7UUFDRCxPQUFPO1lBQ0wsR0FBRyxFQUFFLEdBQUcsUUFBUSxRQUFRLE9BQU8sQ0FBQyxVQUFVLFdBQVc7WUFDckQsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7U0FDbkMsQ0FBQTtJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQzsrR0ExRFUsb0JBQW9COzZHQUFwQixvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUxuQixNQUFNOzs0RkFLUCxvQkFBb0I7a0JBTmhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztrQkFDQSxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxrQkFBa0I7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQubW9kZWwnXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBQaXBlKHtcbiAgbmFtZTogJ3BpcGVDb250ZW50Um91dGUnLFxufSlcbmV4cG9ydCBjbGFzcyBQaXBlQ29udGVudFJvdXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHRyYW5zZm9ybShcbiAgICBjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQsXG4gICAgZm9yUHJldmlldyA9IGZhbHNlLFxuICApOiB7IHVybDogc3RyaW5nOyBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9IHtcbiAgICAvLyBjb21tZXJjaWFsX2JlZ2luXG4gICAgY29uc3QgbG9jYXRpb24gPSBmb3JQcmV2aWV3ID8gJy9wdWJsaWMnIDogJy9hcHAnXG4gICAgLy8gY29tbWVyY2lhbF9lbmRcbiAgICBpZiAoY29udGVudC5jb250ZW50VHlwZSA9PT0gJ0tub3dsZWRnZSBCb2FyZCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVybDogZm9yUHJldmlld1xuICAgICAgICAgID8gYCR7bG9jYXRpb259L3RvYy8ke2NvbnRlbnQuaWRlbnRpZmllcn0vb3ZlcnZpZXdgXG4gICAgICAgICAgOiBgJHtsb2NhdGlvbn0va25vd2xlZGdlLWJvYXJkLyR7Y29udGVudC5pZGVudGlmaWVyfWAsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLmdldFF1ZXJ5UGFyYW1zKCksXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuQ0hBTk5FTCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBgLyR7Zm9yUHJldmlldyA/ICdhdXRob3Ivdmlld2VyL2NoYW5uZWwnIDogJ3BhZ2UnfS8ke2NvbnRlbnQuaWRlbnRpZmllcn1gLFxuICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpLFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29udGVudC5jb250ZW50VHlwZSA9PT0gJ0xlYXJuaW5nIEpvdXJuZXlzJykge1xuICAgICAgaWYgKGNvbnRlbnQucmVzb3VyY2VUeXBlID09PSAnRHluYW1pYyBMZWFybmluZyBQYXRocycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1cmw6IGAvYXBwL2xlYXJuaW5nLWpvdXJuZXkvZGxwLyR7Y29udGVudC5pZGVudGlmaWVyfS8wYCxcbiAgICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1cmw6IGAvYXBwL2xlYXJuaW5nLWpvdXJuZXkvY2RwLyR7Y29udGVudC5pZGVudGlmaWVyfWAsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLmdldFF1ZXJ5UGFyYW1zKCksXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjb250ZW50LmNvbnRpbnVlTGVhcm5pbmdEYXRhXG4gICAgICAmJiBjb250ZW50LmNvbnRpbnVlTGVhcm5pbmdEYXRhLmNvbnRleHRUeXBlID09PSAncGxheWxpc3QnXG4gICAgICAmJiBjb250ZW50LmNvbnRpbnVlTGVhcm5pbmdEYXRhLmNvbnRleHRQYXRoSWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVybDogYC9hcHAvcGxheWxpc3QvbWUvJHtjb250ZW50LmNvbnRpbnVlTGVhcm5pbmdEYXRhLmNvbnRleHRQYXRoSWR9YCxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHRoaXMuZ2V0UXVlcnlQYXJhbXMoKSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbnRlbnQucGxhblR5cGUgPT09ICdjYlBsYW4nKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1cmw6IGAke2xvY2F0aW9ufS90b2MvJHtjb250ZW50LmlkZW50aWZpZXJ9L292ZXJ2aWV3YCxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHsgcGxhblR5cGU6ICdjYlBsYW4nLCBlbmREYXRlOiBjb250ZW50LmVuZERhdGUgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHVybDogYCR7bG9jYXRpb259L3RvYy8ke2NvbnRlbnQuaWRlbnRpZmllcn0vb3ZlcnZpZXdgLFxuICAgICAgcXVlcnlQYXJhbXM6IHRoaXMuZ2V0UXVlcnlQYXJhbXMoKSxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1zKCkge1xuICAgIHJldHVybiB7fVxuICB9XG59XG4iXX0=
@@ -0,0 +1,139 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@sunbird-cb/utils-v2";
4
+ import * as i2 from "@angular/router";
5
+ import * as i3 from "../../../_services/widget-content.service";
6
+ import * as i4 from "@angular/common";
7
+ import * as i5 from "../display-content-type/display-content-type.component";
8
+ import * as i6 from "@angular/material/divider";
9
+ import * as i7 from "@angular/material/legacy-chips";
10
+ import * as i8 from "@angular/material/icon";
11
+ import * as i9 from "@angular/material/legacy-card";
12
+ import * as i10 from "../user-image/user-image.component";
13
+ import * as i11 from "@angular/material/legacy-button";
14
+ import * as i12 from "../mark-as-complete/mark-as-complete.component";
15
+ import * as i13 from "@ngx-translate/core";
16
+ export class PlayerBriefComponent {
17
+ constructor(configSvc, utilitySvc, router, widgetContentSvc, langtranslations) {
18
+ this.configSvc = configSvc;
19
+ this.utilitySvc = utilitySvc;
20
+ this.router = router;
21
+ this.widgetContentSvc = widgetContentSvc;
22
+ this.langtranslations = langtranslations;
23
+ this.content = null;
24
+ this.hasTocStructure = false;
25
+ this.tocStructure = null;
26
+ this.isPreviewMode = false;
27
+ this.forPreview = false;
28
+ this.askAuthorEnabled = false;
29
+ this.tocConfig = null;
30
+ this.showMoreGlance = false;
31
+ this.isDownloadableDesktop = false;
32
+ this.isDownloadableIos = false;
33
+ this.isDownloadableAndroid = false;
34
+ }
35
+ ngOnInit() {
36
+ this.getTocConfig();
37
+ if (this.configSvc.restrictedFeatures) {
38
+ this.isDownloadableIos = this.configSvc.restrictedFeatures.has('iosDownload');
39
+ this.isDownloadableAndroid = this.configSvc.restrictedFeatures.has('androidDownload');
40
+ this.isDownloadableDesktop = this.configSvc.restrictedFeatures.has('downloadRequest');
41
+ }
42
+ }
43
+ get isDownloadable() {
44
+ if (this.configSvc.instanceConfig &&
45
+ this.configSvc.instanceConfig.isDownloadableSource &&
46
+ this.configSvc.instanceConfig.isDownloadableAndroidResource &&
47
+ this.content &&
48
+ this.content.sourceName &&
49
+ this.configSvc.instanceConfig.isDownloadableIosResource &&
50
+ Object.keys(this.configSvc.instanceConfig.isDownloadableSource).includes(this.content.sourceName.toLowerCase())) {
51
+ const sourceShortName = this.content.sourceName || '';
52
+ // tslint:disable-next-line:max-line-length
53
+ if (!this.utilitySvc.isMobile &&
54
+ !this.isDownloadableDesktop &&
55
+ this.configSvc.instanceConfig.isDownloadableSource[sourceShortName.toLowerCase()].includes(this.content.resourceType.toLowerCase())) {
56
+ return true;
57
+ }
58
+ if (this.utilitySvc.isIos &&
59
+ !this.isDownloadableIos &&
60
+ // tslint:disable-next-line: ter-computed-property-spacing
61
+ this.configSvc.instanceConfig.isDownloadableIosResource[sourceShortName.toLowerCase()
62
+ // tslint:disable-next-line: ter-computed-property-spacing
63
+ ].includes(this.content.resourceType.toLowerCase())) {
64
+ return true;
65
+ }
66
+ if (this.utilitySvc.isAndroid &&
67
+ !this.isDownloadableAndroid &&
68
+ // tslint:disable-next-line: ter-computed-property-spacing
69
+ this.configSvc.instanceConfig.isDownloadableAndroidResource[sourceShortName.toLowerCase()
70
+ // tslint:disable-next-line: ter-computed-property-spacing
71
+ ].includes(this.content.resourceType.toLowerCase())) {
72
+ return true;
73
+ }
74
+ return false;
75
+ }
76
+ return false;
77
+ }
78
+ goToContent(id) {
79
+ this.router.navigate([`/app/toc/${id}/overview`]);
80
+ }
81
+ getViewCount(content) {
82
+ if (content && this.configSvc.rootOrg && content.viewCount) {
83
+ return content.viewCount[this.configSvc.rootOrg];
84
+ }
85
+ return 0;
86
+ }
87
+ getTocConfig() {
88
+ const url = `${this.configSvc.sitePath}/feature/toc.json`;
89
+ this.widgetContentSvc.fetchConfig(url).subscribe(data => {
90
+ this.tocConfig = data;
91
+ this.widgetContentSvc.updateTocConfig(data);
92
+ });
93
+ }
94
+ download() {
95
+ if (this.content && !this.forPreview) {
96
+ const link = document.createElement('a');
97
+ link.download = this.content.name;
98
+ link.target = '_self';
99
+ // Construct the URI
100
+ link.href = this.content.artifactUrl || '';
101
+ document.body.appendChild(link);
102
+ link.click();
103
+ // Cleanup the DOM
104
+ document.body.removeChild(link);
105
+ }
106
+ // delete link;
107
+ }
108
+ parseJsonData(s) {
109
+ try {
110
+ const parsedString = JSON.parse(s);
111
+ return parsedString;
112
+ }
113
+ catch {
114
+ return [];
115
+ }
116
+ }
117
+ translateLabels(label, type) {
118
+ return this.langtranslations.translateLabel(label, type, '');
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlayerBriefComponent, deps: [{ token: i1.ConfigurationsService }, { token: i1.UtilityService }, { token: i2.Router }, { token: i3.WidgetContentService }, { token: i1.MultilingualTranslationsService }], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PlayerBriefComponent, selector: "ws-widget-player-brief", inputs: { content: "content", hasTocStructure: "hasTocStructure", tocStructure: "tocStructure", isPreviewMode: "isPreviewMode", forPreview: "forPreview", askAuthorEnabled: "askAuthorEnabled" }, ngImport: i0, template: "<div class=\"md:px-2\">\n <ws-widget-mark-as-complete [forPreview]=\"forPreview\" [content]=\"content\"></ws-widget-mark-as-complete>\n <ng-container *ngIf=\"content && isDownloadable\">\n <mat-card class=\"mb-4\">\n <button mat-button color=\"primary\" (click)=\"download()\">\n <mat-icon>cloud_download</mat-icon>\n <span class=\"px-2\">{{ 'apptochome.download' | translate }}</span>\n </button>\n </mat-card>\n </ng-container>\n <mat-card class=\"ws-mat-primary-lite-background-on-day ws-mat-primary-border-top-bolder info-container\">\n <h2 >{{ 'apptochome.atGlance' | translate }}</h2>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.displayContentType?.enabled && content?.displayContentType\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.displayContentType?.displayName, 'apptoc') }}</h3>\n <ws-widget-display-content-type *ngIf=\"content?.contentType !== contentTypes.RESOURCE\"\n class=\"ws-mat-accent-text width-expand mat-body-strong\" [displayContentType]=\"content?.displayContentType\">\n </ws-widget-display-content-type>\n <div *ngIf=\"content?.contentType === contentTypes.RESOURCE\"\n class=\"ws-mat-accent-text width-expand mat-body-strong\">\n {{ content?.resourceType }}\n </div>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.displayContentType?.enabled && content?.displayContentType\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.complexityLevel?.enabled && content?.complexityLevel\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.complexityLevel?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.complexityLevel }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.complexityLevel?.enabled && content?.complexityLevel\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.duration?.enabled && content?.duration\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.duration?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.duration | pipeDurationTransform: 'hms' }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.duration?.enabled && content?.duration\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.cost?.enabled\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.cost?.displayName, 'apptoc') }}</h3>\n <h3 *ngIf=\"content?.exclusiveContent\" class=\"ws-mat-accent-text width-expand\">{{'apptochome.paidContent' | translate}}</h3>\n <h3 *ngIf=\"!content?.exclusiveContent\" class=\"ws-mat-accent-text width-expand\">{{'apptochome.free' | translate}}</h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.cost?.enabled\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.viewCount?.enabled && content?.viewCount && configSvc?.rootOrg\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.viewCount?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ getViewCount(content) | pipeCountTransform }}\n <ng-container *ngIf=\"content?.uniqueLearners\">\n ({{ content?.uniqueLearners | pipeCountTransform }}\n <ng-container >Unique)</ng-container>\n </ng-container>\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.viewCount?.enabled && content?.viewCount && configSvc?.rootOrg\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.sourceShortName?.enabled && content?.sourceShortName\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.sourceShortName?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.sourceShortName }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.sourceShortName?.enabled && content?.sourceShortName\"></mat-divider>\n <!-- Structure -->\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.structure?.enabled && hasTocStructure && content?.children?.length\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.structure?.displayName, 'apptoc') }}</h3>\n <div class=\"ws-mat-accent-text width-expand\">\n <h3 *ngIf=\"tocStructure?.course > 0\">\n <ng-container>{{ tocStructure?.course }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.course === 1\" > {{'apptochome.course1' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.course > 1\" > {{'apptochome.courses1' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.learningModule > 0\">\n <ng-container>{{ tocStructure?.learningModule }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.learningModule === 1\" > {{'apptochome.module' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.learningModule > 1\" > {{'apptochome.modules' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.video > 0\">\n <ng-container>{{ tocStructure?.video }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.video === 1\" > {{'apptochome.video' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.video > 1\" > {{'apptochome.videos' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.interactiveVideo > 0\">\n <ng-container>{{ tocStructure?.interactiveVideo }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.interactiveVideo === 1\" >\n {{'playerbrief.interactiveVideo' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.interactiveVideo > 1\" >\n {{'playerbrief.interactiveVideos' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.youtube > 0\">\n <ng-container>{{ tocStructure?.youtube }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.youtube === 1\" > {{'playerbrief.youtubeVideo' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.youtube > 1\" > {{'playerbrief.youtubeVideos' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.pdf > 0\">\n <ng-container>{{ tocStructure?.pdf }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.pdf === 1\" > {{'apptochome.pdf' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.pdf > 1\" > {{'apptochome.pdfs' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.podcast > 0\">\n <ng-container>{{ tocStructure?.podcast }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.podcast === 1\" > {{'playerbrief.podcast' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.podcast > 1\" > {{'playerbrief.podcasts' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.webModule > 0\">\n <ng-container>{{ tocStructure?.webModule }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webModule === 1\" > {{'playerbrief.webModule' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webModule > 1\" > {{'playerbrief.webModules' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.webPage > 0\">\n <ng-container>{{ tocStructure?.webPage }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webPage === 1\" > {{'apptochome.webPage' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webPage > 1\" > {{'apptochome.webPages' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.quiz > 0\">\n <ng-container>{{ tocStructure?.quiz }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.quiz === 1\" > {{'playerbrief.quiz' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.quiz > 1\" > {{'playerbrief.quizzes' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.assessment > 0\">\n <ng-container>{{ tocStructure?.assessment }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.assessment === 1\" > {{'apptochome.assessment' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.assessment > 1\" > {{'apptochome.assessments' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.other > 0\">\n <ng-container>{{ tocStructure?.other }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.other === 1\" > {{'apptochome.otherItem' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.other > 1\" > {{'apptochome.otherItems' | translate}}</ng-container>\n </h3>\n </div>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.structure?.enabled && hasTocStructure && content?.children?.length\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.lastUpdatedOn?.enabled && content?.lastUpdatedOn\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.lastUpdatedOn?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.lastUpdatedOn | date }}\n </h3>\n </div>\n <ng-container *ngIf=\"showMoreGlance\">\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.lastUpdatedOn?.enabled && content?.lastUpdatedOn\"></mat-divider>\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.expiryDate?.enabled && content?.expiryDate && content?.expiryDate?.startsWith('20')\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.expiryDate?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.expiryDate | date }}\n </h3>\n </div>\n <mat-divider\n *ngIf=\"tocConfig?.atAGlance?.expiryDate?.enabled && content?.expiryDate && content?.expiryDate?.startsWith('20')\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.learningMode?.enabled && content?.learningMode\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.learningMode?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.learningMode }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.learningMode?.enabled && content?.learningMode\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.region?.enabled && content?.region?.length\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.region?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.region }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.region?.enabled && content?.region?.length\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.locale?.enabled && content?.locale\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.locale?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.locale | uppercase }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.locale?.enabled && content?.locale\"></mat-divider>\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.hasTranslations?.enabled && (content?.hasTranslations?.length || content?.isTranslationOf?.length)\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{tocConfig?.atAGlance?.hasTranslations?.displayName}}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n <span class=\"cursor-pointer\" (click)=\"goToContent(trans?.identifier)\"\n *ngFor=\"let trans of content?.hasTranslations || content?.isTranslationOf\">{{ trans.locale | uppercase }}\n </span>\n </h3>\n </div>\n <mat-divider\n *ngIf=\"tocConfig?.atAGlance?.hasTranslations?.enabled && (content?.hasTranslations?.length || content?.isTranslationOf?.length)\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.keywords?.enabled && content?.keywords?.length\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{tocConfig?.atAGlance?.keywords?.displayName}}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.keywords?.join(', ') }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.keywords?.enabled && content?.keywords?.length\"></mat-divider>\n <ng-container *ngFor=\"let item of content?.collections\">\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.curatedInKB?.enabled && item.contentType === 'Knowledge Board' && item.status === 'Live'\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{tocConfig?.atAGlance?.curatedInKB?.displayName}}</h3>\n <mat-chip-list>\n <mat-chip>\n <h3 class=\"ws-mat-accent-text width-expand\">\n <ng-container *ngIf=\"item.contentType === 'Knowledge Board' && item.status === 'Live'\">\n <a [href]=\"'/app/toc/' + item.identifier + '/overview?primaryCategory='+ item.primaryCategory \"> {{\n item.name }} </a>\n </ng-container>\n </h3>\n </mat-chip>\n </mat-chip-list>\n </div>\n </ng-container>\n <mat-divider></mat-divider>\n </ng-container>\n <div class=\"text-right mt-2\">\n <button mat-button (click)=\"showMoreGlance = !showMoreGlance\">\n <mat-icon>{{ !showMoreGlance ? 'arrow_drop_down' : 'arrow_drop_up' }}</mat-icon>\n <ng-container *ngIf=\"!showMoreGlance\">{{'playerbrief.showMore' | translate}}</ng-container>\n <ng-container *ngIf=\"showMoreGlance\">{{'playerbrief.showLess' | translate}}</ng-container>\n </button>\n </div>\n </mat-card>\n <!-- <ws-widget-user-content-rating class=\"mb-4 block\" *ngIf=\"content?.identifier\" [contentId]=\"content?.identifier\"\n [isDisabled]=\"isPreviewMode\" [forPreview]=\"forPreview\">\n </ws-widget-user-content-rating> -->\n <div class=\"hidden sm:block margin-bottom-m\" *ngIf=\"content?.creatorDetails?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorDetails,\n title: 'AUTHOR'\n }\">\n </ng-container>\n </div>\n <div class=\"hidden sm:block margin-bottom-m\" *ngIf=\"content?.creatorContacts?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorContacts,\n title: 'CONTACT'\n }\">\n </ng-container>\n </div>\n</div>\n\n<ng-template #creators let-authors=\"authors\" let-title=\"title\">\n <mat-card>\n <h2 *ngIf=\"title === 'AUTHOR'\">{{'playerbrief.authors' | translate}}</h2>\n <h2 *ngIf=\"title === 'CONTACT'\">{{'playerbrief.curatorcontact' | translate}}</h2>\n <mat-divider></mat-divider>\n <div *ngFor=\"let author of parseJsonData(authors)\" class=\"author\">\n <ws-widget-user-image class=\"author-image\" [imageType]=\"'name-initial'\" [userName]=\"author.name || ''\"\n [email]=\"author.email\"></ws-widget-user-image>\n <div class=\"width-expand flex flex-middle flex-between\">\n <h3 class=\"margin-remove\">{{ author.name }}</h3>\n <ws-widget-btn-mail-user *ngIf=\"askAuthorEnabled\" [widgetData]=\"{ content: content, emails: [author.email] }\">\n </ws-widget-btn-mail-user>\n </div>\n </div>\n </mat-card>\n</ng-template>", styles: [".info-container{padding:12px 16px;margin-bottom:16px}.info-container .info-item{display:flex;align-items:center;padding:8px 0;box-sizing:border-box}.info-container .info-item h3{margin:0}.info-container .info-item .item-heading{width:40%;min-width:80px;max-width:140px}.info-container .info-item .item-icon{width:20px;height:20px;font-size:20px;margin-left:8px}.author{padding:12px 0;display:flex}.author .author-image{margin-right:12px;height:44px;width:44px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.DisplayContentTypeComponent, selector: "ws-widget-display-content-type", inputs: ["displayContentType"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i7.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i10.UserImageComponent, selector: "ws-widget-user-image", inputs: ["email", "userId", "userName", "imageType", "imageUrl", "imageSize"] }, { kind: "component", type: i11.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.MarkAsCompleteComponent, selector: "ws-widget-mark-as-complete", inputs: ["content", "forPreview"] }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i1.PipeCountTransformPipe, name: "pipeCountTransform" }, { kind: "pipe", type: i1.PipeDurationTransformPipe, name: "pipeDurationTransform" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlayerBriefComponent, decorators: [{
124
+ type: Component,
125
+ args: [{ selector: 'ws-widget-player-brief', template: "<div class=\"md:px-2\">\n <ws-widget-mark-as-complete [forPreview]=\"forPreview\" [content]=\"content\"></ws-widget-mark-as-complete>\n <ng-container *ngIf=\"content && isDownloadable\">\n <mat-card class=\"mb-4\">\n <button mat-button color=\"primary\" (click)=\"download()\">\n <mat-icon>cloud_download</mat-icon>\n <span class=\"px-2\">{{ 'apptochome.download' | translate }}</span>\n </button>\n </mat-card>\n </ng-container>\n <mat-card class=\"ws-mat-primary-lite-background-on-day ws-mat-primary-border-top-bolder info-container\">\n <h2 >{{ 'apptochome.atGlance' | translate }}</h2>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.displayContentType?.enabled && content?.displayContentType\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.displayContentType?.displayName, 'apptoc') }}</h3>\n <ws-widget-display-content-type *ngIf=\"content?.contentType !== contentTypes.RESOURCE\"\n class=\"ws-mat-accent-text width-expand mat-body-strong\" [displayContentType]=\"content?.displayContentType\">\n </ws-widget-display-content-type>\n <div *ngIf=\"content?.contentType === contentTypes.RESOURCE\"\n class=\"ws-mat-accent-text width-expand mat-body-strong\">\n {{ content?.resourceType }}\n </div>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.displayContentType?.enabled && content?.displayContentType\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.complexityLevel?.enabled && content?.complexityLevel\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.complexityLevel?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.complexityLevel }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.complexityLevel?.enabled && content?.complexityLevel\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.duration?.enabled && content?.duration\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.duration?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.duration | pipeDurationTransform: 'hms' }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.duration?.enabled && content?.duration\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.cost?.enabled\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.cost?.displayName, 'apptoc') }}</h3>\n <h3 *ngIf=\"content?.exclusiveContent\" class=\"ws-mat-accent-text width-expand\">{{'apptochome.paidContent' | translate}}</h3>\n <h3 *ngIf=\"!content?.exclusiveContent\" class=\"ws-mat-accent-text width-expand\">{{'apptochome.free' | translate}}</h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.cost?.enabled\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.viewCount?.enabled && content?.viewCount && configSvc?.rootOrg\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.viewCount?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ getViewCount(content) | pipeCountTransform }}\n <ng-container *ngIf=\"content?.uniqueLearners\">\n ({{ content?.uniqueLearners | pipeCountTransform }}\n <ng-container >Unique)</ng-container>\n </ng-container>\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.viewCount?.enabled && content?.viewCount && configSvc?.rootOrg\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.sourceShortName?.enabled && content?.sourceShortName\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.sourceShortName?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.sourceShortName }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.sourceShortName?.enabled && content?.sourceShortName\"></mat-divider>\n <!-- Structure -->\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.structure?.enabled && hasTocStructure && content?.children?.length\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.structure?.displayName, 'apptoc') }}</h3>\n <div class=\"ws-mat-accent-text width-expand\">\n <h3 *ngIf=\"tocStructure?.course > 0\">\n <ng-container>{{ tocStructure?.course }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.course === 1\" > {{'apptochome.course1' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.course > 1\" > {{'apptochome.courses1' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.learningModule > 0\">\n <ng-container>{{ tocStructure?.learningModule }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.learningModule === 1\" > {{'apptochome.module' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.learningModule > 1\" > {{'apptochome.modules' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.video > 0\">\n <ng-container>{{ tocStructure?.video }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.video === 1\" > {{'apptochome.video' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.video > 1\" > {{'apptochome.videos' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.interactiveVideo > 0\">\n <ng-container>{{ tocStructure?.interactiveVideo }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.interactiveVideo === 1\" >\n {{'playerbrief.interactiveVideo' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.interactiveVideo > 1\" >\n {{'playerbrief.interactiveVideos' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.youtube > 0\">\n <ng-container>{{ tocStructure?.youtube }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.youtube === 1\" > {{'playerbrief.youtubeVideo' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.youtube > 1\" > {{'playerbrief.youtubeVideos' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.pdf > 0\">\n <ng-container>{{ tocStructure?.pdf }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.pdf === 1\" > {{'apptochome.pdf' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.pdf > 1\" > {{'apptochome.pdfs' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.podcast > 0\">\n <ng-container>{{ tocStructure?.podcast }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.podcast === 1\" > {{'playerbrief.podcast' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.podcast > 1\" > {{'playerbrief.podcasts' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.webModule > 0\">\n <ng-container>{{ tocStructure?.webModule }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webModule === 1\" > {{'playerbrief.webModule' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webModule > 1\" > {{'playerbrief.webModules' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.webPage > 0\">\n <ng-container>{{ tocStructure?.webPage }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webPage === 1\" > {{'apptochome.webPage' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.webPage > 1\" > {{'apptochome.webPages' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.quiz > 0\">\n <ng-container>{{ tocStructure?.quiz }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.quiz === 1\" > {{'playerbrief.quiz' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.quiz > 1\" > {{'playerbrief.quizzes' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.assessment > 0\">\n <ng-container>{{ tocStructure?.assessment }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.assessment === 1\" > {{'apptochome.assessment' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.assessment > 1\" > {{'apptochome.assessments' | translate}}</ng-container>\n </h3>\n <h3 *ngIf=\"tocStructure?.other > 0\">\n <ng-container>{{ tocStructure?.other }}</ng-container>\n <ng-container *ngIf=\"tocStructure?.other === 1\" > {{'apptochome.otherItem' | translate}}</ng-container>\n <ng-container *ngIf=\"tocStructure?.other > 1\" > {{'apptochome.otherItems' | translate}}</ng-container>\n </h3>\n </div>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.structure?.enabled && hasTocStructure && content?.children?.length\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.lastUpdatedOn?.enabled && content?.lastUpdatedOn\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.lastUpdatedOn?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.lastUpdatedOn | date }}\n </h3>\n </div>\n <ng-container *ngIf=\"showMoreGlance\">\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.lastUpdatedOn?.enabled && content?.lastUpdatedOn\"></mat-divider>\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.expiryDate?.enabled && content?.expiryDate && content?.expiryDate?.startsWith('20')\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.expiryDate?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.expiryDate | date }}\n </h3>\n </div>\n <mat-divider\n *ngIf=\"tocConfig?.atAGlance?.expiryDate?.enabled && content?.expiryDate && content?.expiryDate?.startsWith('20')\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.learningMode?.enabled && content?.learningMode\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.learningMode?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.learningMode }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.learningMode?.enabled && content?.learningMode\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.region?.enabled && content?.region?.length\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.region?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.region }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.region?.enabled && content?.region?.length\"></mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.locale?.enabled && content?.locale\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{ translateLabels(tocConfig?.atAGlance?.locale?.displayName, 'apptoc') }}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.locale | uppercase }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.locale?.enabled && content?.locale\"></mat-divider>\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.hasTranslations?.enabled && (content?.hasTranslations?.length || content?.isTranslationOf?.length)\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{tocConfig?.atAGlance?.hasTranslations?.displayName}}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n <span class=\"cursor-pointer\" (click)=\"goToContent(trans?.identifier)\"\n *ngFor=\"let trans of content?.hasTranslations || content?.isTranslationOf\">{{ trans.locale | uppercase }}\n </span>\n </h3>\n </div>\n <mat-divider\n *ngIf=\"tocConfig?.atAGlance?.hasTranslations?.enabled && (content?.hasTranslations?.length || content?.isTranslationOf?.length)\">\n </mat-divider>\n <div class=\"info-item\" *ngIf=\"tocConfig?.atAGlance?.keywords?.enabled && content?.keywords?.length\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{tocConfig?.atAGlance?.keywords?.displayName}}</h3>\n <h3 class=\"ws-mat-accent-text width-expand\">\n {{ content?.keywords?.join(', ') }}\n </h3>\n </div>\n <mat-divider *ngIf=\"tocConfig?.atAGlance?.keywords?.enabled && content?.keywords?.length\"></mat-divider>\n <ng-container *ngFor=\"let item of content?.collections\">\n <div class=\"info-item\"\n *ngIf=\"tocConfig?.atAGlance?.curatedInKB?.enabled && item.contentType === 'Knowledge Board' && item.status === 'Live'\">\n <h3 class=\"item-heading ws-mat-primary-text\">{{tocConfig?.atAGlance?.curatedInKB?.displayName}}</h3>\n <mat-chip-list>\n <mat-chip>\n <h3 class=\"ws-mat-accent-text width-expand\">\n <ng-container *ngIf=\"item.contentType === 'Knowledge Board' && item.status === 'Live'\">\n <a [href]=\"'/app/toc/' + item.identifier + '/overview?primaryCategory='+ item.primaryCategory \"> {{\n item.name }} </a>\n </ng-container>\n </h3>\n </mat-chip>\n </mat-chip-list>\n </div>\n </ng-container>\n <mat-divider></mat-divider>\n </ng-container>\n <div class=\"text-right mt-2\">\n <button mat-button (click)=\"showMoreGlance = !showMoreGlance\">\n <mat-icon>{{ !showMoreGlance ? 'arrow_drop_down' : 'arrow_drop_up' }}</mat-icon>\n <ng-container *ngIf=\"!showMoreGlance\">{{'playerbrief.showMore' | translate}}</ng-container>\n <ng-container *ngIf=\"showMoreGlance\">{{'playerbrief.showLess' | translate}}</ng-container>\n </button>\n </div>\n </mat-card>\n <!-- <ws-widget-user-content-rating class=\"mb-4 block\" *ngIf=\"content?.identifier\" [contentId]=\"content?.identifier\"\n [isDisabled]=\"isPreviewMode\" [forPreview]=\"forPreview\">\n </ws-widget-user-content-rating> -->\n <div class=\"hidden sm:block margin-bottom-m\" *ngIf=\"content?.creatorDetails?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorDetails,\n title: 'AUTHOR'\n }\">\n </ng-container>\n </div>\n <div class=\"hidden sm:block margin-bottom-m\" *ngIf=\"content?.creatorContacts?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorContacts,\n title: 'CONTACT'\n }\">\n </ng-container>\n </div>\n</div>\n\n<ng-template #creators let-authors=\"authors\" let-title=\"title\">\n <mat-card>\n <h2 *ngIf=\"title === 'AUTHOR'\">{{'playerbrief.authors' | translate}}</h2>\n <h2 *ngIf=\"title === 'CONTACT'\">{{'playerbrief.curatorcontact' | translate}}</h2>\n <mat-divider></mat-divider>\n <div *ngFor=\"let author of parseJsonData(authors)\" class=\"author\">\n <ws-widget-user-image class=\"author-image\" [imageType]=\"'name-initial'\" [userName]=\"author.name || ''\"\n [email]=\"author.email\"></ws-widget-user-image>\n <div class=\"width-expand flex flex-middle flex-between\">\n <h3 class=\"margin-remove\">{{ author.name }}</h3>\n <ws-widget-btn-mail-user *ngIf=\"askAuthorEnabled\" [widgetData]=\"{ content: content, emails: [author.email] }\">\n </ws-widget-btn-mail-user>\n </div>\n </div>\n </mat-card>\n</ng-template>", styles: [".info-container{padding:12px 16px;margin-bottom:16px}.info-container .info-item{display:flex;align-items:center;padding:8px 0;box-sizing:border-box}.info-container .info-item h3{margin:0}.info-container .info-item .item-heading{width:40%;min-width:80px;max-width:140px}.info-container .info-item .item-icon{width:20px;height:20px;font-size:20px;margin-left:8px}.author{padding:12px 0;display:flex}.author .author-image{margin-right:12px;height:44px;width:44px}\n"] }]
126
+ }], ctorParameters: function () { return [{ type: i1.ConfigurationsService }, { type: i1.UtilityService }, { type: i2.Router }, { type: i3.WidgetContentService }, { type: i1.MultilingualTranslationsService }]; }, propDecorators: { content: [{
127
+ type: Input
128
+ }], hasTocStructure: [{
129
+ type: Input
130
+ }], tocStructure: [{
131
+ type: Input
132
+ }], isPreviewMode: [{
133
+ type: Input
134
+ }], forPreview: [{
135
+ type: Input
136
+ }], askAuthorEnabled: [{
137
+ type: Input
138
+ }] } });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVyLWJyaWVmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL3BsYXllci1icmllZi9wbGF5ZXItYnJpZWYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vcGxheWVyLWJyaWVmL3BsYXllci1icmllZi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7O0FBV3hELE1BQU0sT0FBTyxvQkFBb0I7SUFnQi9CLFlBQ1MsU0FBZ0MsRUFDL0IsVUFBMEIsRUFDMUIsTUFBYyxFQUNkLGdCQUFzQyxFQUN0QyxnQkFBaUQ7UUFKbEQsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFDL0IsZUFBVSxHQUFWLFVBQVUsQ0FBZ0I7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQztRQW5CM0QsWUFBTyxHQUE4QixJQUFJLENBQUE7UUFFekMsb0JBQWUsR0FBRyxLQUFLLENBQUE7UUFFdkIsaUJBQVksR0FBUSxJQUFJLENBQUE7UUFFeEIsa0JBQWEsR0FBRyxLQUFLLENBQUE7UUFFckIsZUFBVSxHQUFHLEtBQUssQ0FBQTtRQUVsQixxQkFBZ0IsR0FBRyxLQUFLLENBQUE7UUFDeEIsY0FBUyxHQUFRLElBQUksQ0FBQTtRQUVyQixtQkFBYyxHQUFHLEtBQUssQ0FBQTtRQVF0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUE7UUFDN0Isc0JBQWlCLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLDBCQUFxQixHQUFHLEtBQUssQ0FBQTtJQUh6QixDQUFDO0lBS0wsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUU7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQzdFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1lBQ3JGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1NBQ3RGO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixJQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxvQkFBb0I7WUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsNkJBQTZCO1lBQzNELElBQUksQ0FBQyxPQUFPO1lBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLHlCQUF5QjtZQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxDQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FDdEMsRUFDRDtZQUNBLE1BQU0sZUFBZSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQTtZQUM3RCwyQ0FBMkM7WUFDM0MsSUFDRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtnQkFDekIsQ0FBQyxJQUFJLENBQUMscUJBQXFCO2dCQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQ3hGLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUN4QyxFQUNEO2dCQUNBLE9BQU8sSUFBSSxDQUFBO2FBQ1o7WUFDRCxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSztnQkFDckIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCO2dCQUN2QiwwREFBMEQ7Z0JBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUNyRCxlQUFlLENBQUMsV0FBVyxFQUFFO2dCQUM3QiwwREFBMEQ7aUJBQzNELENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ25EO2dCQUNBLE9BQU8sSUFBSSxDQUFBO2FBQ1o7WUFDRCxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztnQkFDekIsQ0FBQyxJQUFJLENBQUMscUJBQXFCO2dCQUMzQiwwREFBMEQ7Z0JBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLDZCQUE2QixDQUN6RCxlQUFlLENBQUMsV0FBVyxFQUFFO2dCQUM3QiwwREFBMEQ7aUJBQzNELENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ25EO2dCQUNBLE9BQU8sSUFBSSxDQUFBO2FBQ1o7WUFDRCxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVU7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsWUFBWSxDQUFDLE9BQWtDO1FBQzdDLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDMUQsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDakQ7UUFDRCxPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFDRCxZQUFZO1FBQ1YsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsbUJBQW1CLENBQUE7UUFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7WUFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUE7WUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUE7WUFFckIsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFBO1lBQzFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQy9CLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUVaLGtCQUFrQjtZQUNsQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUNoQztRQUVELGVBQWU7SUFDakIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxDQUFTO1FBQzVCLElBQUk7WUFDRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2xDLE9BQU8sWUFBWSxDQUFBO1NBQ3BCO1FBQUMsTUFBTTtZQUNOLE9BQU8sRUFBRSxDQUFBO1NBQ1Y7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlELENBQUM7K0dBcElVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdRQ1hqQywwd2ZBMlBjOzs0RkRoUEQsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLHdCQUF3QjsrT0FNbEMsT0FBTztzQkFETixLQUFLO2dCQUdOLGVBQWU7c0JBRGQsS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQubW9kZWwnXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBXaWRnZXRDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy13aWRnZXQtcGxheWVyLWJyaWVmJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYXllci1icmllZi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsYXllci1icmllZi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQbGF5ZXJCcmllZkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCB8IG51bGwgPSBudWxsXG4gIEBJbnB1dCgpXG4gIGhhc1RvY1N0cnVjdHVyZSA9IGZhbHNlXG4gIEBJbnB1dCgpXG4gIHRvY1N0cnVjdHVyZTogYW55ID0gbnVsbFxuICBASW5wdXQoKVxuICBpc1ByZXZpZXdNb2RlID0gZmFsc2VcbiAgQElucHV0KClcbiAgZm9yUHJldmlldyA9IGZhbHNlXG4gIEBJbnB1dCgpXG4gIGFza0F1dGhvckVuYWJsZWQgPSBmYWxzZVxuICB0b2NDb25maWc6IGFueSA9IG51bGxcblxuICBzaG93TW9yZUdsYW5jZSA9IGZhbHNlXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxpdHlTdmM6IFV0aWxpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSB3aWRnZXRDb250ZW50U3ZjOiBXaWRnZXRDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd0cmFuc2xhdGlvbnM6IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UsXG4gICkgeyB9XG4gIGlzRG93bmxvYWRhYmxlRGVza3RvcCA9IGZhbHNlXG4gIGlzRG93bmxvYWRhYmxlSW9zID0gZmFsc2VcbiAgaXNEb3dubG9hZGFibGVBbmRyb2lkID0gZmFsc2VcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFRvY0NvbmZpZygpXG4gICAgaWYgKHRoaXMuY29uZmlnU3ZjLnJlc3RyaWN0ZWRGZWF0dXJlcykge1xuICAgICAgdGhpcy5pc0Rvd25sb2FkYWJsZUlvcyA9IHRoaXMuY29uZmlnU3ZjLnJlc3RyaWN0ZWRGZWF0dXJlcy5oYXMoJ2lvc0Rvd25sb2FkJylcbiAgICAgIHRoaXMuaXNEb3dubG9hZGFibGVBbmRyb2lkID0gdGhpcy5jb25maWdTdmMucmVzdHJpY3RlZEZlYXR1cmVzLmhhcygnYW5kcm9pZERvd25sb2FkJylcbiAgICAgIHRoaXMuaXNEb3dubG9hZGFibGVEZXNrdG9wID0gdGhpcy5jb25maWdTdmMucmVzdHJpY3RlZEZlYXR1cmVzLmhhcygnZG93bmxvYWRSZXF1ZXN0JylcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEb3dubG9hZGFibGUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWcgJiZcbiAgICAgIHRoaXMuY29uZmlnU3ZjLmluc3RhbmNlQ29uZmlnLmlzRG93bmxvYWRhYmxlU291cmNlICYmXG4gICAgICB0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZy5pc0Rvd25sb2FkYWJsZUFuZHJvaWRSZXNvdXJjZSAmJlxuICAgICAgdGhpcy5jb250ZW50ICYmXG4gICAgICB0aGlzLmNvbnRlbnQuc291cmNlTmFtZSAmJlxuICAgICAgdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWcuaXNEb3dubG9hZGFibGVJb3NSZXNvdXJjZSAmJlxuICAgICAgT2JqZWN0LmtleXModGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWcuaXNEb3dubG9hZGFibGVTb3VyY2UpLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLmNvbnRlbnQuc291cmNlTmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc3Qgc291cmNlU2hvcnROYW1lOiBzdHJpbmcgPSB0aGlzLmNvbnRlbnQuc291cmNlTmFtZSB8fCAnJ1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy51dGlsaXR5U3ZjLmlzTW9iaWxlICYmXG4gICAgICAgICF0aGlzLmlzRG93bmxvYWRhYmxlRGVza3RvcCAmJlxuICAgICAgICB0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZy5pc0Rvd25sb2FkYWJsZVNvdXJjZVtzb3VyY2VTaG9ydE5hbWUudG9Mb3dlckNhc2UoKV0uaW5jbHVkZXMoXG4gICAgICAgICAgdGhpcy5jb250ZW50LnJlc291cmNlVHlwZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy51dGlsaXR5U3ZjLmlzSW9zICYmXG4gICAgICAgICF0aGlzLmlzRG93bmxvYWRhYmxlSW9zICYmXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdGVyLWNvbXB1dGVkLXByb3BlcnR5LXNwYWNpbmdcbiAgICAgICAgdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWcuaXNEb3dubG9hZGFibGVJb3NSZXNvdXJjZVtcbiAgICAgICAgICBzb3VyY2VTaG9ydE5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdGVyLWNvbXB1dGVkLXByb3BlcnR5LXNwYWNpbmdcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLmNvbnRlbnQucmVzb3VyY2VUeXBlLnRvTG93ZXJDYXNlKCkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy51dGlsaXR5U3ZjLmlzQW5kcm9pZCAmJlxuICAgICAgICAhdGhpcy5pc0Rvd25sb2FkYWJsZUFuZHJvaWQgJiZcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB0ZXItY29tcHV0ZWQtcHJvcGVydHktc3BhY2luZ1xuICAgICAgICB0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZy5pc0Rvd25sb2FkYWJsZUFuZHJvaWRSZXNvdXJjZVtcbiAgICAgICAgICBzb3VyY2VTaG9ydE5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdGVyLWNvbXB1dGVkLXByb3BlcnR5LXNwYWNpbmdcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLmNvbnRlbnQucmVzb3VyY2VUeXBlLnRvTG93ZXJDYXNlKCkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGdvVG9Db250ZW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9hcHAvdG9jLyR7aWR9L292ZXJ2aWV3YF0pXG4gIH1cbiAgZ2V0Vmlld0NvdW50KGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCB8IG51bGwpIHtcbiAgICBpZiAoY29udGVudCAmJiB0aGlzLmNvbmZpZ1N2Yy5yb290T3JnICYmIGNvbnRlbnQudmlld0NvdW50KSB7XG4gICAgICByZXR1cm4gY29udGVudC52aWV3Q291bnRbdGhpcy5jb25maWdTdmMucm9vdE9yZ11cbiAgICB9XG4gICAgcmV0dXJuIDBcbiAgfVxuICBnZXRUb2NDb25maWcoKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWdTdmMuc2l0ZVBhdGh9L2ZlYXR1cmUvdG9jLmpzb25gXG4gICAgdGhpcy53aWRnZXRDb250ZW50U3ZjLmZldGNoQ29uZmlnKHVybCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy50b2NDb25maWcgPSBkYXRhXG4gICAgICB0aGlzLndpZGdldENvbnRlbnRTdmMudXBkYXRlVG9jQ29uZmlnKGRhdGEpXG4gICAgfSlcbiAgfVxuXG4gIGRvd25sb2FkKCkge1xuICAgIGlmICh0aGlzLmNvbnRlbnQgJiYgIXRoaXMuZm9yUHJldmlldykge1xuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgbGluay5kb3dubG9hZCA9IHRoaXMuY29udGVudC5uYW1lXG4gICAgICBsaW5rLnRhcmdldCA9ICdfc2VsZidcblxuICAgICAgLy8gQ29uc3RydWN0IHRoZSBVUklcbiAgICAgIGxpbmsuaHJlZiA9IHRoaXMuY29udGVudC5hcnRpZmFjdFVybCB8fCAnJ1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKVxuICAgICAgbGluay5jbGljaygpXG5cbiAgICAgIC8vIENsZWFudXAgdGhlIERPTVxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKVxuICAgIH1cblxuICAgIC8vIGRlbGV0ZSBsaW5rO1xuICB9XG5cbiAgcHVibGljIHBhcnNlSnNvbkRhdGEoczogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFN0cmluZyA9IEpTT04ucGFyc2UocylcbiAgICAgIHJldHVybiBwYXJzZWRTdHJpbmdcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgfVxuXG4gIHRyYW5zbGF0ZUxhYmVscyhsYWJlbDogc3RyaW5nLCB0eXBlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndHJhbnNsYXRpb25zLnRyYW5zbGF0ZUxhYmVsKGxhYmVsLCB0eXBlLCAnJylcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1kOnB4LTJcIj5cbiAgPHdzLXdpZGdldC1tYXJrLWFzLWNvbXBsZXRlIFtmb3JQcmV2aWV3XT1cImZvclByZXZpZXdcIiBbY29udGVudF09XCJjb250ZW50XCI+PC93cy13aWRnZXQtbWFyay1hcy1jb21wbGV0ZT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQgJiYgaXNEb3dubG9hZGFibGVcIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJtYi00XCI+XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvd25sb2FkKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNsb3VkX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJweC0yXCI+e3sgJ2FwcHRvY2hvbWUuZG93bmxvYWQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtY2FyZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxtYXQtY2FyZCBjbGFzcz1cIndzLW1hdC1wcmltYXJ5LWxpdGUtYmFja2dyb3VuZC1vbi1kYXkgd3MtbWF0LXByaW1hcnktYm9yZGVyLXRvcC1ib2xkZXIgaW5mby1jb250YWluZXJcIj5cbiAgICA8aDIgPnt7ICdhcHB0b2Nob21lLmF0R2xhbmNlJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgPGRpdiBjbGFzcz1cImluZm8taXRlbVwiICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LmRpc3BsYXlDb250ZW50VHlwZT8uZW5hYmxlZCAmJiBjb250ZW50Py5kaXNwbGF5Q29udGVudFR5cGVcIj5cbiAgICAgIDxoMyBjbGFzcz1cIml0ZW0taGVhZGluZyB3cy1tYXQtcHJpbWFyeS10ZXh0XCI+e3sgdHJhbnNsYXRlTGFiZWxzKHRvY0NvbmZpZz8uYXRBR2xhbmNlPy5kaXNwbGF5Q29udGVudFR5cGU/LmRpc3BsYXlOYW1lLCAnYXBwdG9jJykgfX08L2gzPlxuICAgICAgPHdzLXdpZGdldC1kaXNwbGF5LWNvbnRlbnQtdHlwZSAqbmdJZj1cImNvbnRlbnQ/LmNvbnRlbnRUeXBlICE9PSBjb250ZW50VHlwZXMuUkVTT1VSQ0VcIlxuICAgICAgICBjbGFzcz1cIndzLW1hdC1hY2NlbnQtdGV4dCB3aWR0aC1leHBhbmQgbWF0LWJvZHktc3Ryb25nXCIgW2Rpc3BsYXlDb250ZW50VHlwZV09XCJjb250ZW50Py5kaXNwbGF5Q29udGVudFR5cGVcIj5cbiAgICAgIDwvd3Mtd2lkZ2V0LWRpc3BsYXktY29udGVudC10eXBlPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmNvbnRlbnRUeXBlID09PSBjb250ZW50VHlwZXMuUkVTT1VSQ0VcIlxuICAgICAgICBjbGFzcz1cIndzLW1hdC1hY2NlbnQtdGV4dCB3aWR0aC1leHBhbmQgbWF0LWJvZHktc3Ryb25nXCI+XG4gICAgICAgIHt7IGNvbnRlbnQ/LnJlc291cmNlVHlwZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LmRpc3BsYXlDb250ZW50VHlwZT8uZW5hYmxlZCAmJiBjb250ZW50Py5kaXNwbGF5Q29udGVudFR5cGVcIj48L21hdC1kaXZpZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIiAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5jb21wbGV4aXR5TGV2ZWw/LmVuYWJsZWQgJiYgY29udGVudD8uY29tcGxleGl0eUxldmVsXCI+XG4gICAgICA8aDMgY2xhc3M9XCJpdGVtLWhlYWRpbmcgd3MtbWF0LXByaW1hcnktdGV4dFwiPnt7IHRyYW5zbGF0ZUxhYmVscyh0b2NDb25maWc/LmF0QUdsYW5jZT8uY29tcGxleGl0eUxldmVsPy5kaXNwbGF5TmFtZSwgJ2FwcHRvYycpIH19PC9oMz5cbiAgICAgIDxoMyBjbGFzcz1cIndzLW1hdC1hY2NlbnQtdGV4dCB3aWR0aC1leHBhbmRcIj5cbiAgICAgICAge3sgY29udGVudD8uY29tcGxleGl0eUxldmVsIH19XG4gICAgICA8L2gzPlxuICAgIDwvZGl2PlxuICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5jb21wbGV4aXR5TGV2ZWw/LmVuYWJsZWQgJiYgY29udGVudD8uY29tcGxleGl0eUxldmVsXCI+PC9tYXQtZGl2aWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCIgKm5nSWY9XCJ0b2NDb25maWc/LmF0QUdsYW5jZT8uZHVyYXRpb24/LmVuYWJsZWQgJiYgY29udGVudD8uZHVyYXRpb25cIj5cbiAgICAgIDxoMyBjbGFzcz1cIml0ZW0taGVhZGluZyB3cy1tYXQtcHJpbWFyeS10ZXh0XCI+e3sgdHJhbnNsYXRlTGFiZWxzKHRvY0NvbmZpZz8uYXRBR2xhbmNlPy5kdXJhdGlvbj8uZGlzcGxheU5hbWUsICdhcHB0b2MnKSB9fTwvaDM+XG4gICAgICA8aDMgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LXRleHQgd2lkdGgtZXhwYW5kXCI+XG4gICAgICAgIHt7IGNvbnRlbnQ/LmR1cmF0aW9uIHwgcGlwZUR1cmF0aW9uVHJhbnNmb3JtOiAnaG1zJyB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJ0b2NDb25maWc/LmF0QUdsYW5jZT8uZHVyYXRpb24/LmVuYWJsZWQgJiYgY29udGVudD8uZHVyYXRpb25cIj48L21hdC1kaXZpZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIiAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5jb3N0Py5lbmFibGVkXCI+XG4gICAgICA8aDMgY2xhc3M9XCJpdGVtLWhlYWRpbmcgd3MtbWF0LXByaW1hcnktdGV4dFwiPnt7IHRyYW5zbGF0ZUxhYmVscyh0b2NDb25maWc/LmF0QUdsYW5jZT8uY29zdD8uZGlzcGxheU5hbWUsICdhcHB0b2MnKSB9fTwvaDM+XG4gICAgICA8aDMgKm5nSWY9XCJjb250ZW50Py5leGNsdXNpdmVDb250ZW50XCIgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LXRleHQgd2lkdGgtZXhwYW5kXCI+e3snYXBwdG9jaG9tZS5wYWlkQ29udGVudCcgfCB0cmFuc2xhdGV9fTwvaDM+XG4gICAgICA8aDMgKm5nSWY9XCIhY29udGVudD8uZXhjbHVzaXZlQ29udGVudFwiIGNsYXNzPVwid3MtbWF0LWFjY2VudC10ZXh0IHdpZHRoLWV4cGFuZFwiPnt7J2FwcHRvY2hvbWUuZnJlZScgfCB0cmFuc2xhdGV9fTwvaDM+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LmNvc3Q/LmVuYWJsZWRcIj48L21hdC1kaXZpZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIiAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy52aWV3Q291bnQ/LmVuYWJsZWQgJiYgY29udGVudD8udmlld0NvdW50ICYmIGNvbmZpZ1N2Yz8ucm9vdE9yZ1wiPlxuICAgICAgPGgzIGNsYXNzPVwiaXRlbS1oZWFkaW5nIHdzLW1hdC1wcmltYXJ5LXRleHRcIj57eyB0cmFuc2xhdGVMYWJlbHModG9jQ29uZmlnPy5hdEFHbGFuY2U/LnZpZXdDb3VudD8uZGlzcGxheU5hbWUsICdhcHB0b2MnKSB9fTwvaDM+XG4gICAgICA8aDMgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LXRleHQgd2lkdGgtZXhwYW5kXCI+XG4gICAgICAgIHt7IGdldFZpZXdDb3VudChjb250ZW50KSB8IHBpcGVDb3VudFRyYW5zZm9ybSB9fVxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8udW5pcXVlTGVhcm5lcnNcIj5cbiAgICAgICAgICAoe3sgY29udGVudD8udW5pcXVlTGVhcm5lcnMgfCBwaXBlQ291bnRUcmFuc2Zvcm0gfX1cbiAgICAgICAgICA8bmctY29udGFpbmVyID5VbmlxdWUpPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9oMz5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJ0b2NDb25maWc/LmF0QUdsYW5jZT8udmlld0NvdW50Py5lbmFibGVkICYmIGNvbnRlbnQ/LnZpZXdDb3VudCAmJiBjb25maWdTdmM/LnJvb3RPcmdcIj5cbiAgICA8L21hdC1kaXZpZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIiAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5zb3VyY2VTaG9ydE5hbWU/LmVuYWJsZWQgJiYgY29udGVudD8uc291cmNlU2hvcnROYW1lXCI+XG4gICAgICA8aDMgY2xhc3M9XCJpdGVtLWhlYWRpbmcgd3MtbWF0LXByaW1hcnktdGV4dFwiPnt7IHRyYW5zbGF0ZUxhYmVscyh0b2NDb25maWc/LmF0QUdsYW5jZT8uc291cmNlU2hvcnROYW1lPy5kaXNwbGF5TmFtZSwgJ2FwcHRvYycpIH19PC9oMz5cbiAgICAgIDxoMyBjbGFzcz1cIndzLW1hdC1hY2NlbnQtdGV4dCB3aWR0aC1leHBhbmRcIj5cbiAgICAgICAge3sgY29udGVudD8uc291cmNlU2hvcnROYW1lIH19XG4gICAgICA8L2gzPlxuICAgIDwvZGl2PlxuICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5zb3VyY2VTaG9ydE5hbWU/LmVuYWJsZWQgJiYgY29udGVudD8uc291cmNlU2hvcnROYW1lXCI+PC9tYXQtZGl2aWRlcj5cbiAgICA8IS0tIFN0cnVjdHVyZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCJcbiAgICAgICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LnN0cnVjdHVyZT8uZW5hYmxlZCAmJiBoYXNUb2NTdHJ1Y3R1cmUgJiYgY29udGVudD8uY2hpbGRyZW4/Lmxlbmd0aFwiPlxuICAgICAgPGgzIGNsYXNzPVwiaXRlbS1oZWFkaW5nIHdzLW1hdC1wcmltYXJ5LXRleHRcIj57eyB0cmFuc2xhdGVMYWJlbHModG9jQ29uZmlnPy5hdEFHbGFuY2U/LnN0cnVjdHVyZT8uZGlzcGxheU5hbWUsICdhcHB0b2MnKSB9fTwvaDM+XG4gICAgICA8ZGl2IGNsYXNzPVwid3MtbWF0LWFjY2VudC10ZXh0IHdpZHRoLWV4cGFuZFwiPlxuICAgICAgICA8aDMgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LmNvdXJzZSA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyPnt7IHRvY1N0cnVjdHVyZT8uY291cnNlIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8uY291cnNlID09PSAxXCIgPiB7eydhcHB0b2Nob21lLmNvdXJzZTEnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy5jb3Vyc2UgPiAxXCIgPiB7eydhcHB0b2Nob21lLmNvdXJzZXMxJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoMyAqbmdJZj1cInRvY1N0cnVjdHVyZT8ubGVhcm5pbmdNb2R1bGUgPiAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyB0b2NTdHJ1Y3R1cmU/LmxlYXJuaW5nTW9kdWxlIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8ubGVhcm5pbmdNb2R1bGUgPT09IDFcIiA+IHt7J2FwcHRvY2hvbWUubW9kdWxlJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8ubGVhcm5pbmdNb2R1bGUgPiAxXCIgPiB7eydhcHB0b2Nob21lLm1vZHVsZXMnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGgzICpuZ0lmPVwidG9jU3RydWN0dXJlPy52aWRlbyA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyPnt7IHRvY1N0cnVjdHVyZT8udmlkZW8gfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy52aWRlbyA9PT0gMVwiID4ge3snYXBwdG9jaG9tZS52aWRlbycgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LnZpZGVvID4gMVwiID4ge3snYXBwdG9jaG9tZS52aWRlb3MnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGgzICpuZ0lmPVwidG9jU3RydWN0dXJlPy5pbnRlcmFjdGl2ZVZpZGVvID4gMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXI+e3sgdG9jU3RydWN0dXJlPy5pbnRlcmFjdGl2ZVZpZGVvIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8uaW50ZXJhY3RpdmVWaWRlbyA9PT0gMVwiID5cbiAgICAgICAgICAgIHt7J3BsYXllcmJyaWVmLmludGVyYWN0aXZlVmlkZW8nIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy5pbnRlcmFjdGl2ZVZpZGVvID4gMVwiID5cbiAgICAgICAgICAgIHt7J3BsYXllcmJyaWVmLmludGVyYWN0aXZlVmlkZW9zJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoMyAqbmdJZj1cInRvY1N0cnVjdHVyZT8ueW91dHViZSA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyPnt7IHRvY1N0cnVjdHVyZT8ueW91dHViZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LnlvdXR1YmUgPT09IDFcIiA+IHt7J3BsYXllcmJyaWVmLnlvdXR1YmVWaWRlbycgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LnlvdXR1YmUgPiAxXCIgPiB7eydwbGF5ZXJicmllZi55b3V0dWJlVmlkZW9zJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoMyAqbmdJZj1cInRvY1N0cnVjdHVyZT8ucGRmID4gMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXI+e3sgdG9jU3RydWN0dXJlPy5wZGYgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy5wZGYgPT09IDFcIiA+IHt7J2FwcHRvY2hvbWUucGRmJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8ucGRmID4gMVwiID4ge3snYXBwdG9jaG9tZS5wZGZzJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoMyAqbmdJZj1cInRvY1N0cnVjdHVyZT8ucG9kY2FzdCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyPnt7IHRvY1N0cnVjdHVyZT8ucG9kY2FzdCB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LnBvZGNhc3QgPT09IDFcIiA+IHt7J3BsYXllcmJyaWVmLnBvZGNhc3QnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy5wb2RjYXN0ID4gMVwiID4ge3sncGxheWVyYnJpZWYucG9kY2FzdHMnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGgzICpuZ0lmPVwidG9jU3RydWN0dXJlPy53ZWJNb2R1bGUgPiAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyB0b2NTdHJ1Y3R1cmU/LndlYk1vZHVsZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LndlYk1vZHVsZSA9PT0gMVwiID4ge3sncGxheWVyYnJpZWYud2ViTW9kdWxlJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8ud2ViTW9kdWxlID4gMVwiID4ge3sncGxheWVyYnJpZWYud2ViTW9kdWxlcycgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2gzPlxuICAgICAgICA8aDMgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LndlYlBhZ2UgPiAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyB0b2NTdHJ1Y3R1cmU/LndlYlBhZ2UgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy53ZWJQYWdlID09PSAxXCIgPiB7eydhcHB0b2Nob21lLndlYlBhZ2UnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy53ZWJQYWdlID4gMVwiID4ge3snYXBwdG9jaG9tZS53ZWJQYWdlcycgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2gzPlxuICAgICAgICA8aDMgKm5nSWY9XCJ0b2NTdHJ1Y3R1cmU/LnF1aXogPiAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyB0b2NTdHJ1Y3R1cmU/LnF1aXogfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy5xdWl6ID09PSAxXCIgPiB7eydwbGF5ZXJicmllZi5xdWl6JyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8ucXVpeiA+IDFcIiA+IHt7J3BsYXllcmJyaWVmLnF1aXp6ZXMnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGgzICpuZ0lmPVwidG9jU3RydWN0dXJlPy5hc3Nlc3NtZW50ID4gMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXI+e3sgdG9jU3RydWN0dXJlPy5hc3Nlc3NtZW50IH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8uYXNzZXNzbWVudCA9PT0gMVwiID4ge3snYXBwdG9jaG9tZS5hc3Nlc3NtZW50JyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvY1N0cnVjdHVyZT8uYXNzZXNzbWVudCA+IDFcIiA+IHt7J2FwcHRvY2hvbWUuYXNzZXNzbWVudHMnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGgzICpuZ0lmPVwidG9jU3RydWN0dXJlPy5vdGhlciA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyPnt7IHRvY1N0cnVjdHVyZT8ub3RoZXIgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy5vdGhlciA9PT0gMVwiID4ge3snYXBwdG9jaG9tZS5vdGhlckl0ZW0nIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9jU3RydWN0dXJlPy5vdGhlciA+IDFcIiA+IHt7J2FwcHRvY2hvbWUub3RoZXJJdGVtcycgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LnN0cnVjdHVyZT8uZW5hYmxlZCAmJiBoYXNUb2NTdHJ1Y3R1cmUgJiYgY29udGVudD8uY2hpbGRyZW4/Lmxlbmd0aFwiPlxuICAgIDwvbWF0LWRpdmlkZXI+XG4gICAgPGRpdiBjbGFzcz1cImluZm8taXRlbVwiICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/Lmxhc3RVcGRhdGVkT24/LmVuYWJsZWQgJiYgY29udGVudD8ubGFzdFVwZGF0ZWRPblwiPlxuICAgICAgPGgzIGNsYXNzPVwiaXRlbS1oZWFkaW5nIHdzLW1hdC1wcmltYXJ5LXRleHRcIj57eyB0cmFuc2xhdGVMYWJlbHModG9jQ29uZmlnPy5hdEFHbGFuY2U/Lmxhc3RVcGRhdGVkT24/LmRpc3BsYXlOYW1lLCAnYXBwdG9jJykgfX08L2gzPlxuICAgICAgPGgzIGNsYXNzPVwid3MtbWF0LWFjY2VudC10ZXh0IHdpZHRoLWV4cGFuZFwiPlxuICAgICAgICB7eyBjb250ZW50Py5sYXN0VXBkYXRlZE9uIHwgZGF0ZSB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd01vcmVHbGFuY2VcIj5cbiAgICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5sYXN0VXBkYXRlZE9uPy5lbmFibGVkICYmIGNvbnRlbnQ/Lmxhc3RVcGRhdGVkT25cIj48L21hdC1kaXZpZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImluZm8taXRlbVwiXG4gICAgICAgICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LmV4cGlyeURhdGU/LmVuYWJsZWQgJiYgY29udGVudD8uZXhwaXJ5RGF0ZSAmJiBjb250ZW50Py5leHBpcnlEYXRlPy5zdGFydHNXaXRoKCcyMCcpXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cIml0ZW0taGVhZGluZyB3cy1tYXQtcHJpbWFyeS10ZXh0XCI+e3sgdHJhbnNsYXRlTGFiZWxzKHRvY0NvbmZpZz8uYXRBR2xhbmNlPy5leHBpcnlEYXRlPy5kaXNwbGF5TmFtZSwgJ2FwcHRvYycpIH19PC9oMz5cbiAgICAgICAgPGgzIGNsYXNzPVwid3MtbWF0LWFjY2VudC10ZXh0IHdpZHRoLWV4cGFuZFwiPlxuICAgICAgICAgIHt7IGNvbnRlbnQ/LmV4cGlyeURhdGUgfCBkYXRlIH19XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtZGl2aWRlclxuICAgICAgICAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5leHBpcnlEYXRlPy5lbmFibGVkICYmIGNvbnRlbnQ/LmV4cGlyeURhdGUgJiYgY29udGVudD8uZXhwaXJ5RGF0ZT8uc3RhcnRzV2l0aCgnMjAnKVwiPlxuICAgICAgPC9tYXQtZGl2aWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIiAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5sZWFybmluZ01vZGU/LmVuYWJsZWQgJiYgY29udGVudD8ubGVhcm5pbmdNb2RlXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cIml0ZW0taGVhZGluZyB3cy1tYXQtcHJpbWFyeS10ZXh0XCI+e3sgdHJhbnNsYXRlTGFiZWxzKHRvY0NvbmZpZz8uYXRBR2xhbmNlPy5sZWFybmluZ01vZGU/LmRpc3BsYXlOYW1lLCAnYXBwdG9jJykgfX08L2gzPlxuICAgICAgICA8aDMgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LXRleHQgd2lkdGgtZXhwYW5kXCI+XG4gICAgICAgICAge3sgY29udGVudD8ubGVhcm5pbmdNb2RlIH19XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5sZWFybmluZ01vZGU/LmVuYWJsZWQgJiYgY29udGVudD8ubGVhcm5pbmdNb2RlXCI+PC9tYXQtZGl2aWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIiAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5yZWdpb24/LmVuYWJsZWQgJiYgY29udGVudD8ucmVnaW9uPy5sZW5ndGhcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiaXRlbS1oZWFkaW5nIHdzLW1hdC1wcmltYXJ5LXRleHRcIj57eyB0cmFuc2xhdGVMYWJlbHModG9jQ29uZmlnPy5hdEFHbGFuY2U/LnJlZ2lvbj8uZGlzcGxheU5hbWUsICdhcHB0b2MnKSB9fTwvaDM+XG4gICAgICAgIDxoMyBjbGFzcz1cIndzLW1hdC1hY2NlbnQtdGV4dCB3aWR0aC1leHBhbmRcIj5cbiAgICAgICAgICB7eyBjb250ZW50Py5yZWdpb24gfX1cbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LnJlZ2lvbj8uZW5hYmxlZCAmJiBjb250ZW50Py5yZWdpb24/Lmxlbmd0aFwiPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCIgKm5nSWY9XCJ0b2NDb25maWc/LmF0QUdsYW5jZT8ubG9jYWxlPy5lbmFibGVkICYmIGNvbnRlbnQ/LmxvY2FsZVwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJpdGVtLWhlYWRpbmcgd3MtbWF0LXByaW1hcnktdGV4dFwiPnt7IHRyYW5zbGF0ZUxhYmVscyh0b2NDb25maWc/LmF0QUdsYW5jZT8ubG9jYWxlPy5kaXNwbGF5TmFtZSwgJ2FwcHRvYycpIH19PC9oMz5cbiAgICAgICAgPGgzIGNsYXNzPVwid3MtbWF0LWFjY2VudC10ZXh0IHdpZHRoLWV4cGFuZFwiPlxuICAgICAgICAgIHt7IGNvbnRlbnQ/LmxvY2FsZSB8IHVwcGVyY2FzZSB9fVxuICAgICAgICA8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJ0b2NDb25maWc/LmF0QUdsYW5jZT8ubG9jYWxlPy5lbmFibGVkICYmIGNvbnRlbnQ/LmxvY2FsZVwiPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCJcbiAgICAgICAgKm5nSWY9XCJ0b2NDb25maWc/LmF0QUdsYW5jZT8uaGFzVHJhbnNsYXRpb25zPy5lbmFibGVkICYmIChjb250ZW50Py5oYXNUcmFuc2xhdGlvbnM/Lmxlbmd0aCB8fCBjb250ZW50Py5pc1RyYW5zbGF0aW9uT2Y/Lmxlbmd0aClcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiaXRlbS1oZWFkaW5nIHdzLW1hdC1wcmltYXJ5LXRleHRcIj57e3RvY0NvbmZpZz8uYXRBR2xhbmNlPy5oYXNUcmFuc2xhdGlvbnM/LmRpc3BsYXlOYW1lfX08L2gzPlxuICAgICAgICA8aDMgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LXRleHQgd2lkdGgtZXhwYW5kXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJnb1RvQ29udGVudCh0cmFucz8uaWRlbnRpZmllcilcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRyYW5zIG9mIGNvbnRlbnQ/Lmhhc1RyYW5zbGF0aW9ucyB8fCBjb250ZW50Py5pc1RyYW5zbGF0aW9uT2ZcIj57eyB0cmFucy5sb2NhbGUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtZGl2aWRlclxuICAgICAgICAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5oYXNUcmFuc2xhdGlvbnM/LmVuYWJsZWQgJiYgKGNvbnRlbnQ/Lmhhc1RyYW5zbGF0aW9ucz8ubGVuZ3RoIHx8IGNvbnRlbnQ/LmlzVHJhbnNsYXRpb25PZj8ubGVuZ3RoKVwiPlxuICAgICAgPC9tYXQtZGl2aWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIiAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5rZXl3b3Jkcz8uZW5hYmxlZCAmJiBjb250ZW50Py5rZXl3b3Jkcz8ubGVuZ3RoXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cIml0ZW0taGVhZGluZyB3cy1tYXQtcHJpbWFyeS10ZXh0XCI+e3t0b2NDb25maWc/LmF0QUdsYW5jZT8ua2V5d29yZHM/LmRpc3BsYXlOYW1lfX08L2gzPlxuICAgICAgICA8aDMgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LXRleHQgd2lkdGgtZXhwYW5kXCI+XG4gICAgICAgICAge3sgY29udGVudD8ua2V5d29yZHM/LmpvaW4oJywgJykgfX1cbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwidG9jQ29uZmlnPy5hdEFHbGFuY2U/LmtleXdvcmRzPy5lbmFibGVkICYmIGNvbnRlbnQ/LmtleXdvcmRzPy5sZW5ndGhcIj48L21hdC1kaXZpZGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250ZW50Py5jb2xsZWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCJcbiAgICAgICAgICAqbmdJZj1cInRvY0NvbmZpZz8uYXRBR2xhbmNlPy5jdXJhdGVkSW5LQj8uZW5hYmxlZCAmJiBpdGVtLmNvbnRlbnRUeXBlID09PSAnS25vd2xlZGdlIEJvYXJkJyAmJiBpdGVtLnN0YXR1cyA9PT0gJ0xpdmUnXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiaXRlbS1oZWFkaW5nIHdzLW1hdC1wcmltYXJ5LXRleHRcIj57e3RvY0NvbmZpZz8uYXRBR2xhbmNlPy5jdXJhdGVkSW5LQj8uZGlzcGxheU5hbWV9fTwvaDM+XG4gICAgICAgICAgPG1hdC1jaGlwLWxpc3Q+XG4gICAgICAgICAgICA8bWF0LWNoaXA+XG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cIndzLW1hdC1hY2NlbnQtdGV4dCB3aWR0aC1leHBhbmRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jb250ZW50VHlwZSA9PT0gJ0tub3dsZWRnZSBCb2FyZCcgJiYgaXRlbS5zdGF0dXMgPT09ICdMaXZlJ1wiPlxuICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiJy9hcHAvdG9jLycgKyBpdGVtLmlkZW50aWZpZXIgKyAnL292ZXJ2aWV3P3ByaW1hcnlDYXRlZ29yeT0nKyBpdGVtLnByaW1hcnlDYXRlZ29yeSBcIj4ge3tcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5uYW1lIH19IDwvYT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgIDwvbWF0LWNoaXA+XG4gICAgICAgICAgPC9tYXQtY2hpcC1saXN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHQgbXQtMlwiPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzaG93TW9yZUdsYW5jZSA9ICFzaG93TW9yZUdsYW5jZVwiPlxuICAgICAgICA8bWF0LWljb24+e3sgIXNob3dNb3JlR2xhbmNlID8gJ2Fycm93X2Ryb3BfZG93bicgOiAnYXJyb3dfZHJvcF91cCcgfX08L21hdC1pY29uPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dNb3JlR2xhbmNlXCI+e3sncGxheWVyYnJpZWYuc2hvd01vcmUnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNb3JlR2xhbmNlXCI+e3sncGxheWVyYnJpZWYuc2hvd0xlc3MnIHwgdHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L21hdC1jYXJkPlxuICA8IS0tIDx3cy13aWRnZXQtdXNlci1jb250ZW50LXJhdGluZyBjbGFzcz1cIm1iLTQgYmxvY2tcIiAqbmdJZj1cImNvbnRlbnQ/LmlkZW50aWZpZXJcIiBbY29udGVudElkXT1cImNvbnRlbnQ/LmlkZW50aWZpZXJcIlxuICAgIFtpc0Rpc2FibGVkXT1cImlzUHJldmlld01vZGVcIiBbZm9yUHJldmlld109XCJmb3JQcmV2aWV3XCI+XG4gIDwvd3Mtd2lkZ2V0LXVzZXItY29udGVudC1yYXRpbmc+IC0tPlxuICA8ZGl2IGNsYXNzPVwiaGlkZGVuIHNtOmJsb2NrIG1hcmdpbi1ib3R0b20tbVwiICpuZ0lmPVwiY29udGVudD8uY3JlYXRvckRldGFpbHM/Lmxlbmd0aFwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3JlYXRvcnNcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICBhdXRob3JzOiBjb250ZW50Py5jcmVhdG9yRGV0YWlscyxcbiAgICAgICAgdGl0bGU6ICdBVVRIT1InXG4gICAgICB9XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGlkZGVuIHNtOmJsb2NrIG1hcmdpbi1ib3R0b20tbVwiICpuZ0lmPVwiY29udGVudD8uY3JlYXRvckNvbnRhY3RzPy5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNyZWF0b3JzXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgYXV0aG9yczogY29udGVudD8uY3JlYXRvckNvbnRhY3RzLFxuICAgICAgICB0aXRsZTogJ0NPTlRBQ1QnXG4gICAgICB9XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY3JlYXRvcnMgbGV0LWF1dGhvcnM9XCJhdXRob3JzXCIgbGV0LXRpdGxlPVwidGl0bGVcIj5cbiAgPG1hdC1jYXJkPlxuICAgIDxoMiAqbmdJZj1cInRpdGxlID09PSAnQVVUSE9SJ1wiPnt7J3BsYXllcmJyaWVmLmF1dGhvcnMnIHwgdHJhbnNsYXRlfX08L2gyPlxuICAgIDxoMiAqbmdJZj1cInRpdGxlID09PSAnQ09OVEFDVCdcIj57eydwbGF5ZXJicmllZi5jdXJhdG9yY29udGFjdCcgfCB0cmFuc2xhdGV9fTwvaDI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgYXV0aG9yIG9mIHBhcnNlSnNvbkRhdGEoYXV0aG9ycylcIiBjbGFzcz1cImF1dGhvclwiPlxuICAgICAgPHdzLXdpZGdldC11c2VyLWltYWdlIGNsYXNzPVwiYXV0aG9yLWltYWdlXCIgW2ltYWdlVHlwZV09XCInbmFtZS1pbml0aWFsJ1wiIFt1c2VyTmFtZV09XCJhdXRob3IubmFtZSB8fCAnJ1wiXG4gICAgICAgIFtlbWFpbF09XCJhdXRob3IuZW1haWxcIj48L3dzLXdpZGdldC11c2VyLWltYWdlPlxuICAgICAgPGRpdiBjbGFzcz1cIndpZHRoLWV4cGFuZCBmbGV4IGZsZXgtbWlkZGxlIGZsZXgtYmV0d2VlblwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJtYXJnaW4tcmVtb3ZlXCI+e3sgYXV0aG9yLm5hbWUgfX08L2gzPlxuICAgICAgICA8d3Mtd2lkZ2V0LWJ0bi1tYWlsLXVzZXIgKm5nSWY9XCJhc2tBdXRob3JFbmFibGVkXCIgW3dpZGdldERhdGFdPVwieyBjb250ZW50OiBjb250ZW50LCBlbWFpbHM6IFthdXRob3IuZW1haWxdIH1cIj5cbiAgICAgICAgPC93cy13aWRnZXQtYnRuLW1haWwtdXNlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1jYXJkPlxuPC9uZy10ZW1wbGF0ZT4iXX0=