@sunbird-cb/toc 0.0.3 → 0.0.4-ang-17-20

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/fesm2022/sunbird-cb-toc.mjs +16767 -13555
  2. package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
  3. package/index.d.ts +5883 -4
  4. package/package.json +13 -14
  5. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +0 -55
  6. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +0 -126
  7. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +0 -32
  8. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +0 -85
  9. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +0 -100
  10. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +0 -48
  11. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +0 -120
  12. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +0 -92
  13. package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +0 -48
  14. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +0 -25
  15. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +0 -41
  16. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +0 -89
  17. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +0 -42
  18. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +0 -41
  19. package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +0 -78
  20. package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +0 -45
  21. package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +0 -2
  22. package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +0 -70
  23. package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +0 -28
  24. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +0 -187
  25. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +0 -86
  26. package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +0 -31
  27. package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +0 -941
  28. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +0 -183
  29. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +0 -327
  30. package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +0 -297
  31. package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +0 -223
  32. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +0 -887
  33. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +0 -16
  34. package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +0 -43
  35. package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +0 -133
  36. package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +0 -66
  37. package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +0 -278
  38. package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +0 -21
  39. package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +0 -21
  40. package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +0 -847
  41. package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +0 -219
  42. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +0 -209
  43. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +0 -26
  44. package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +0 -19
  45. package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +0 -23
  46. package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +0 -113
  47. package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +0 -110
  48. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +0 -26
  49. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +0 -19
  50. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +0 -67
  51. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +0 -28
  52. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +0 -77
  53. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +0 -2
  54. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +0 -61
  55. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +0 -20
  56. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +0 -67
  57. package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +0 -139
  58. package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +0 -71
  59. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +0 -34
  60. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +0 -56
  61. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +0 -25
  62. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +0 -37
  63. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +0 -32
  64. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +0 -30
  65. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +0 -38
  66. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +0 -51
  67. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +0 -115
  68. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +0 -12
  69. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +0 -51
  70. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +0 -61
  71. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +0 -87
  72. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +0 -36
  73. package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +0 -62
  74. package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +0 -24
  75. package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +0 -192
  76. package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +0 -44
  77. package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +0 -99
  78. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +0 -58
  79. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +0 -67
  80. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +0 -112
  81. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +0 -2
  82. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +0 -69
  83. package/esm2022/lib/_collection-api.mjs +0 -57
  84. package/esm2022/lib/_constants/widget-content.constants.mjs +0 -19
  85. package/esm2022/lib/_directives/tooltip.directive.mjs +0 -68
  86. package/esm2022/lib/_models/common.model.mjs +0 -2
  87. package/esm2022/lib/_models/error.model.mjs +0 -2
  88. package/esm2022/lib/_pipes/highlight.pipe.mjs +0 -24
  89. package/esm2022/lib/_services/rating.service.mjs +0 -89
  90. package/esm2022/lib/_services/samuhik-charcha.service.mjs +0 -29
  91. package/esm2022/lib/_services/viewer-route-util.mjs +0 -103
  92. package/esm2022/lib/_services/widget-content.model.mjs +0 -247
  93. package/esm2022/lib/_services/widget-content.service.mjs +0 -594
  94. package/esm2022/lib/_shared/translate-loader.factory.mjs +0 -9
  95. package/esm2022/lib/app-toc-lib.module.mjs +0 -499
  96. package/esm2022/lib/collection.config.mjs +0 -161
  97. package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +0 -37
  98. package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +0 -1436
  99. package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +0 -475
  100. package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +0 -119
  101. package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +0 -80
  102. package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +0 -249
  103. package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +0 -39
  104. package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +0 -58
  105. package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +0 -2229
  106. package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +0 -2826
  107. package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +0 -157
  108. package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +0 -48
  109. package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +0 -47
  110. package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +0 -766
  111. package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +0 -243
  112. package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +0 -116
  113. package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +0 -44
  114. package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +0 -1838
  115. package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +0 -236
  116. package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +0 -213
  117. package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +0 -36
  118. package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +0 -256
  119. package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +0 -133
  120. package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +0 -36
  121. package/esm2022/lib/models/app-toc-analytics.model.mjs +0 -2
  122. package/esm2022/lib/models/app-toc.model.mjs +0 -38
  123. package/esm2022/lib/models/auto-complete.model.mjs +0 -2
  124. package/esm2022/lib/models/card-content.model.mjs +0 -13
  125. package/esm2022/lib/models/content-strip-with-tabs.model.mjs +0 -2
  126. package/esm2022/lib/models/discussion-forum.model.mjs +0 -14
  127. package/esm2022/lib/models/goal.model.mjs +0 -2
  128. package/esm2022/lib/models/meta-tag.model.mjs +0 -8
  129. package/esm2022/lib/models/playlist.model.mjs +0 -2
  130. package/esm2022/lib/models/profile-revamp.model.mjs +0 -2
  131. package/esm2022/lib/models/rating.model.mjs +0 -2
  132. package/esm2022/lib/models/user-profile.model.mjs +0 -21
  133. package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +0 -24
  134. package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +0 -24
  135. package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +0 -60
  136. package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +0 -25
  137. package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +0 -106
  138. package/esm2022/lib/resolvers/config-resolver.service.mjs +0 -25
  139. package/esm2022/lib/resolvers/profile-resolver.service.mjs +0 -25
  140. package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +0 -25
  141. package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +0 -51
  142. package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +0 -16
  143. package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +0 -18
  144. package/esm2022/lib/services/access-control.service.mjs +0 -56
  145. package/esm2022/lib/services/action.service.mjs +0 -23
  146. package/esm2022/lib/services/app-toc-v2.service.mjs +0 -220
  147. package/esm2022/lib/services/app-toc.service.mjs +0 -1275
  148. package/esm2022/lib/services/certificate.service.mjs +0 -69
  149. package/esm2022/lib/services/discuss-utils.service.mjs +0 -58
  150. package/esm2022/lib/services/editor.service.mjs +0 -34
  151. package/esm2022/lib/services/load-check.service.mjs +0 -21
  152. package/esm2022/lib/services/loader.service.mjs +0 -33
  153. package/esm2022/lib/services/mobile-apps.service.mjs +0 -67
  154. package/esm2022/lib/services/netcore.service.mjs +0 -56
  155. package/esm2022/lib/services/nps-grid.service.mjs +0 -31
  156. package/esm2022/lib/services/otp.service.mjs +0 -43
  157. package/esm2022/lib/services/profile-v2.service.mjs +0 -43
  158. package/esm2022/lib/services/reset-ratings.service.mjs +0 -19
  159. package/esm2022/lib/services/resource-download-helper.service.mjs +0 -64
  160. package/esm2022/lib/services/timer.service.mjs +0 -23
  161. package/esm2022/lib/services/title-tag.service.mjs +0 -71
  162. package/esm2022/lib/services/user-profile.service.mjs +0 -55
  163. package/esm2022/lib/services/viewer-data.service.mjs +0 -64
  164. package/esm2022/lib/services/viewer-util.service.mjs +0 -500
  165. package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +0 -291
  166. package/esm2022/lib/share-toc/share-toc.module.mjs +0 -119
  167. package/esm2022/public-api.mjs +0 -70
  168. package/esm2022/sunbird-cb-toc.mjs +0 -5
  169. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +0 -17
  170. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +0 -1
  171. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +0 -32
  172. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +0 -1
  173. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +0 -16
  174. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +0 -1
  175. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +0 -21
  176. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +0 -1
  177. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +0 -23
  178. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +0 -1
  179. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +0 -16
  180. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +0 -1
  181. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +0 -23
  182. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +0 -1
  183. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +0 -23
  184. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +0 -1
  185. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +0 -10
  186. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +0 -1
  187. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +0 -12
  188. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +0 -1
  189. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +0 -13
  190. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +0 -1
  191. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +0 -19
  192. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +0 -1
  193. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +0 -15
  194. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +0 -1
  195. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +0 -12
  196. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +0 -1
  197. package/lib/_collection/_common/connection-name/connection-name.component.d.ts +0 -18
  198. package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +0 -1
  199. package/lib/_collection/_common/connection-name/connection-name.module.d.ts +0 -15
  200. package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +0 -1
  201. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +0 -200
  202. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +0 -1
  203. package/lib/_collection/_common/content-progress/content-progress.component.d.ts +0 -17
  204. package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +0 -1
  205. package/lib/_collection/_common/content-progress/content-progress.module.d.ts +0 -11
  206. package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +0 -1
  207. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +0 -39
  208. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +0 -1
  209. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +0 -20
  210. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +0 -1
  211. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +0 -12
  212. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +0 -1
  213. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +0 -184
  214. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +0 -1
  215. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +0 -42
  216. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +0 -1
  217. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +0 -55
  218. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +0 -1
  219. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +0 -48
  220. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +0 -1
  221. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +0 -49
  222. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +0 -1
  223. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +0 -136
  224. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +0 -1
  225. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +0 -9
  226. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +0 -1
  227. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +0 -17
  228. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +0 -1
  229. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +0 -41
  230. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +0 -1
  231. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +0 -22
  232. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +0 -1
  233. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +0 -46
  234. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +0 -1
  235. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +0 -11
  236. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +0 -1
  237. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +0 -11
  238. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +0 -1
  239. package/lib/_collection/_common/content-toc/content-toc.component.d.ts +0 -129
  240. package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +0 -1
  241. package/lib/_collection/_common/content-toc/content-toc.module.d.ts +0 -52
  242. package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +0 -1
  243. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +0 -30
  244. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +0 -1
  245. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +0 -10
  246. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +0 -1
  247. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +0 -8
  248. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +0 -1
  249. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +0 -8
  250. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +0 -1
  251. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +0 -29
  252. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +0 -1
  253. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +0 -25
  254. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +0 -1
  255. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +0 -15
  256. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +0 -1
  257. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +0 -10
  258. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +0 -1
  259. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +0 -13
  260. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +0 -1
  261. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +0 -11
  262. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +0 -1
  263. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +0 -23
  264. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +0 -1
  265. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +0 -9
  266. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +0 -1
  267. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +0 -19
  268. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +0 -1
  269. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +0 -9
  270. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +0 -1
  271. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +0 -16
  272. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +0 -1
  273. package/lib/_collection/_common/player-brief/player-brief.component.d.ts +0 -36
  274. package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +0 -1
  275. package/lib/_collection/_common/player-brief/player-brief.module.d.ts +0 -20
  276. package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +0 -1
  277. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +0 -15
  278. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +0 -1
  279. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +0 -14
  280. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +0 -1
  281. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +0 -12
  282. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +0 -1
  283. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +0 -12
  284. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +0 -1
  285. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +0 -16
  286. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +0 -1
  287. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +0 -11
  288. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +0 -1
  289. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +0 -17
  290. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +0 -1
  291. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +0 -12
  292. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +0 -1
  293. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +0 -35
  294. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +0 -1
  295. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +0 -18
  296. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +0 -1
  297. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +0 -16
  298. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +0 -1
  299. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +0 -16
  300. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +0 -1
  301. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +0 -22
  302. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +0 -1
  303. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +0 -13
  304. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +0 -1
  305. package/lib/_collection/_common/user-image/user-image.component.d.ts +0 -22
  306. package/lib/_collection/_common/user-image/user-image.component.d.ts.map +0 -1
  307. package/lib/_collection/_common/user-image/user-image.module.d.ts +0 -10
  308. package/lib/_collection/_common/user-image/user-image.module.d.ts.map +0 -1
  309. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +0 -48
  310. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +0 -1
  311. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +0 -15
  312. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +0 -1
  313. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +0 -23
  314. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +0 -1
  315. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +0 -20
  316. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +0 -1
  317. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +0 -16
  318. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +0 -1
  319. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +0 -26
  320. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +0 -1
  321. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +0 -22
  322. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +0 -1
  323. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +0 -19
  324. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +0 -1
  325. package/lib/_collection-api.d.ts +0 -35
  326. package/lib/_collection-api.d.ts.map +0 -1
  327. package/lib/_constants/widget-content.constants.d.ts +0 -8
  328. package/lib/_constants/widget-content.constants.d.ts.map +0 -1
  329. package/lib/_directives/tooltip.directive.d.ts +0 -18
  330. package/lib/_directives/tooltip.directive.d.ts.map +0 -1
  331. package/lib/_models/common.model.d.ts +0 -4
  332. package/lib/_models/common.model.d.ts.map +0 -1
  333. package/lib/_models/error.model.d.ts +0 -6
  334. package/lib/_models/error.model.d.ts.map +0 -1
  335. package/lib/_pipes/highlight.pipe.d.ts +0 -11
  336. package/lib/_pipes/highlight.pipe.d.ts.map +0 -1
  337. package/lib/_services/rating.service.d.ts +0 -19
  338. package/lib/_services/rating.service.d.ts.map +0 -1
  339. package/lib/_services/samuhik-charcha.service.d.ts +0 -14
  340. package/lib/_services/samuhik-charcha.service.d.ts.map +0 -1
  341. package/lib/_services/viewer-route-util.d.ts +0 -9
  342. package/lib/_services/viewer-route-util.d.ts.map +0 -1
  343. package/lib/_services/widget-content.model.d.ts +0 -516
  344. package/lib/_services/widget-content.model.d.ts.map +0 -1
  345. package/lib/_services/widget-content.service.d.ts +0 -102
  346. package/lib/_services/widget-content.service.d.ts.map +0 -1
  347. package/lib/_shared/translate-loader.factory.d.ts +0 -8
  348. package/lib/_shared/translate-loader.factory.d.ts.map +0 -1
  349. package/lib/app-toc-lib.module.d.ts +0 -89
  350. package/lib/app-toc-lib.module.d.ts.map +0 -1
  351. package/lib/collection.config.d.ts +0 -160
  352. package/lib/collection.config.d.ts.map +0 -1
  353. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +0 -18
  354. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +0 -1
  355. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +0 -226
  356. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +0 -1
  357. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +0 -79
  358. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +0 -1
  359. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +0 -23
  360. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +0 -1
  361. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +0 -32
  362. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +0 -1
  363. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +0 -48
  364. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +0 -1
  365. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +0 -15
  366. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +0 -1
  367. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +0 -22
  368. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +0 -1
  369. package/lib/components/app-toc-home/app-toc-home.component.d.ts +0 -315
  370. package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +0 -1
  371. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +0 -397
  372. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +0 -1
  373. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +0 -48
  374. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +0 -1
  375. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +0 -23
  376. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +0 -1
  377. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +0 -15
  378. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +0 -1
  379. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +0 -150
  380. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +0 -1
  381. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +0 -43
  382. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +0 -1
  383. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +0 -28
  384. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +0 -1
  385. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +0 -16
  386. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +0 -1
  387. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +0 -196
  388. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +0 -1
  389. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +0 -45
  390. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +0 -1
  391. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +0 -55
  392. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +0 -1
  393. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +0 -19
  394. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +0 -1
  395. package/lib/components/public-survey-form/public-survey-form.component.d.ts +0 -44
  396. package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +0 -1
  397. package/lib/components/survey-form-question/survey-form-question.component.d.ts +0 -21
  398. package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +0 -1
  399. package/lib/components/survey-form-section/survey-form-section.component.d.ts +0 -14
  400. package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +0 -1
  401. package/lib/models/app-toc-analytics.model.d.ts +0 -153
  402. package/lib/models/app-toc-analytics.model.d.ts.map +0 -1
  403. package/lib/models/app-toc.model.d.ts +0 -85
  404. package/lib/models/app-toc.model.d.ts.map +0 -1
  405. package/lib/models/auto-complete.model.d.ts +0 -28
  406. package/lib/models/auto-complete.model.d.ts.map +0 -1
  407. package/lib/models/card-content.model.d.ts +0 -20
  408. package/lib/models/card-content.model.d.ts.map +0 -1
  409. package/lib/models/content-strip-with-tabs.model.d.ts +0 -45
  410. package/lib/models/content-strip-with-tabs.model.d.ts.map +0 -1
  411. package/lib/models/discussion-forum.model.d.ts +0 -41
  412. package/lib/models/discussion-forum.model.d.ts.map +0 -1
  413. package/lib/models/goal.model.d.ts +0 -23
  414. package/lib/models/goal.model.d.ts.map +0 -1
  415. package/lib/models/meta-tag.model.d.ts +0 -7
  416. package/lib/models/meta-tag.model.d.ts.map +0 -1
  417. package/lib/models/playlist.model.d.ts +0 -24
  418. package/lib/models/playlist.model.d.ts.map +0 -1
  419. package/lib/models/profile-revamp.model.d.ts +0 -15
  420. package/lib/models/profile-revamp.model.d.ts.map +0 -1
  421. package/lib/models/rating.model.d.ts +0 -18
  422. package/lib/models/rating.model.d.ts.map +0 -1
  423. package/lib/models/user-profile.model.d.ts +0 -38
  424. package/lib/models/user-profile.model.d.ts.map +0 -1
  425. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +0 -13
  426. package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +0 -1
  427. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +0 -13
  428. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +0 -1
  429. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +0 -17
  430. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +0 -1
  431. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +0 -13
  432. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +0 -1
  433. package/lib/resolvers/app-toc-resolver.service.d.ts +0 -17
  434. package/lib/resolvers/app-toc-resolver.service.d.ts.map +0 -1
  435. package/lib/resolvers/config-resolver.service.d.ts +0 -12
  436. package/lib/resolvers/config-resolver.service.d.ts.map +0 -1
  437. package/lib/resolvers/profile-resolver.service.d.ts +0 -12
  438. package/lib/resolvers/profile-resolver.service.d.ts.map +0 -1
  439. package/lib/resolvers/restricted-features-resolver.service.d.ts +0 -12
  440. package/lib/resolvers/restricted-features-resolver.service.d.ts.map +0 -1
  441. package/lib/routes/app-toc-home/app-toc-home.component.d.ts +0 -20
  442. package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +0 -1
  443. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +0 -9
  444. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +0 -1
  445. package/lib/routes/app-toc-home/app-toc-home.service.d.ts +0 -9
  446. package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +0 -1
  447. package/lib/services/access-control.service.d.ts +0 -30
  448. package/lib/services/access-control.service.d.ts.map +0 -1
  449. package/lib/services/action.service.d.ts +0 -10
  450. package/lib/services/action.service.d.ts.map +0 -1
  451. package/lib/services/app-toc-v2.service.d.ts +0 -15
  452. package/lib/services/app-toc-v2.service.d.ts.map +0 -1
  453. package/lib/services/app-toc.service.d.ts +0 -162
  454. package/lib/services/app-toc.service.d.ts.map +0 -1
  455. package/lib/services/certificate.service.d.ts +0 -43
  456. package/lib/services/certificate.service.d.ts.map +0 -1
  457. package/lib/services/discuss-utils.service.d.ts +0 -34
  458. package/lib/services/discuss-utils.service.d.ts.map +0 -1
  459. package/lib/services/editor.service.d.ts +0 -18
  460. package/lib/services/editor.service.d.ts.map +0 -1
  461. package/lib/services/load-check.service.d.ts +0 -9
  462. package/lib/services/load-check.service.d.ts.map +0 -1
  463. package/lib/services/loader.service.d.ts +0 -17
  464. package/lib/services/loader.service.d.ts.map +0 -1
  465. package/lib/services/mobile-apps.service.d.ts +0 -39
  466. package/lib/services/mobile-apps.service.d.ts.map +0 -1
  467. package/lib/services/netcore.service.d.ts +0 -34
  468. package/lib/services/netcore.service.d.ts.map +0 -1
  469. package/lib/services/nps-grid.service.d.ts +0 -16
  470. package/lib/services/nps-grid.service.d.ts.map +0 -1
  471. package/lib/services/otp.service.d.ts +0 -21
  472. package/lib/services/otp.service.d.ts.map +0 -1
  473. package/lib/services/profile-v2.service.d.ts +0 -21
  474. package/lib/services/profile-v2.service.d.ts.map +0 -1
  475. package/lib/services/reset-ratings.service.d.ts +0 -9
  476. package/lib/services/reset-ratings.service.d.ts.map +0 -1
  477. package/lib/services/resource-download-helper.service.d.ts +0 -30
  478. package/lib/services/resource-download-helper.service.d.ts.map +0 -1
  479. package/lib/services/timer.service.d.ts +0 -10
  480. package/lib/services/timer.service.d.ts.map +0 -1
  481. package/lib/services/title-tag.service.d.ts +0 -22
  482. package/lib/services/title-tag.service.d.ts.map +0 -1
  483. package/lib/services/user-profile.service.d.ts +0 -25
  484. package/lib/services/user-profile.service.d.ts.map +0 -1
  485. package/lib/services/viewer-data.service.d.ts +0 -59
  486. package/lib/services/viewer-data.service.d.ts.map +0 -1
  487. package/lib/services/viewer-util.service.d.ts +0 -63
  488. package/lib/services/viewer-util.service.d.ts.map +0 -1
  489. package/lib/share-toc/share-toc/share-toc.component.d.ts +0 -57
  490. package/lib/share-toc/share-toc/share-toc.component.d.ts.map +0 -1
  491. package/lib/share-toc/share-toc.module.d.ts +0 -33
  492. package/lib/share-toc/share-toc.module.d.ts.map +0 -1
  493. package/public-api.d.ts +0 -56
  494. package/public-api.d.ts.map +0 -1
  495. package/sunbird-cb-toc.d.ts.map +0 -1
@@ -1,16 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AppTocHomeDirective {
4
- constructor(viewContainerRef) {
5
- this.viewContainerRef = viewContainerRef;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocHomeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AppTocHomeDirective, selector: "[wsAppAppTocHome]", ngImport: i0 }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocHomeDirective, decorators: [{
11
- type: Directive,
12
- args: [{
13
- selector: '[wsAppAppTocHome]',
14
- }]
15
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1ob21lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9yb3V0ZXMvYXBwLXRvYy1ob21lL2FwcC10b2MtaG9tZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUE7O0FBSzNELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFDUyxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN2QyxDQUFDOytHQUpNLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3dzQXBwQXBwVG9jSG9tZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBUb2NIb21lRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7IH1cblxufVxuIl19
@@ -1,18 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { AppTocHomeComponent } from '../../components/app-toc-home/app-toc-home.component';
3
- import * as i0 from "@angular/core";
4
- export class AppTocHomeService {
5
- constructor() { }
6
- getComponent() {
7
- return AppTocHomeComponent;
8
- }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocHomeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocHomeService, providedIn: 'root' }); }
11
- }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocHomeService, decorators: [{
13
- type: Injectable,
14
- args: [{
15
- providedIn: 'root',
16
- }]
17
- }], ctorParameters: function () { return []; } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1ob21lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvcm91dGVzL2FwcC10b2MtaG9tZS9hcHAtdG9jLWhvbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFBOztBQUsxRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCLGdCQUNJLENBQUM7SUFFTCxZQUFZO1FBQ1YsT0FBTyxtQkFBbUIsQ0FBQTtJQUM1QixDQUFDOytHQVBVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFwcFRvY0hvbWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2FwcC10b2MtaG9tZS9hcHAtdG9jLWhvbWUuY29tcG9uZW50J1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVG9jSG9tZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICApIHsgfVxuXG4gIGdldENvbXBvbmVudCgpOiBUeXBlPGFueT4ge1xuICAgIHJldHVybiBBcHBUb2NIb21lQ29tcG9uZW50XG4gIH1cbn1cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Access Control Service stub
5
- * Provides access control functionality for content authorization
6
- *
7
- * Note: This is a minimal stub. The consuming application should provide
8
- * a proper implementation if full functionality is needed.
9
- */
10
- export class AccessControlService {
11
- constructor() {
12
- this._hasAccess = true;
13
- this._authoringConfig = {};
14
- }
15
- get hasAccess() {
16
- return this._hasAccess;
17
- }
18
- set hasAccess(value) {
19
- this._hasAccess = value;
20
- }
21
- get authoringConfig() {
22
- return this._authoringConfig;
23
- }
24
- set authoringConfig(value) {
25
- this._authoringConfig = value;
26
- }
27
- hasRole(role) {
28
- // Default implementation - allow all roles
29
- return true;
30
- }
31
- isAllowed(permission) {
32
- // Default implementation - allow all permissions
33
- return true;
34
- }
35
- /**
36
- * Check if user has access to content based on content type
37
- */
38
- hasAccessFor(contentType) {
39
- return true;
40
- }
41
- /**
42
- * Get proxy URL for authoring
43
- */
44
- proxyToAuthoringUrl(url) {
45
- return url;
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlService, providedIn: 'root' }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlService, decorators: [{
51
- type: Injectable,
52
- args: [{
53
- providedIn: 'root',
54
- }]
55
- }], ctorParameters: function () { return []; } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9zZXJ2aWNlcy9hY2Nlc3MtY29udHJvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBRzFDOzs7Ozs7R0FNRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFJL0I7UUFIUSxlQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQTtJQUVuQixDQUFDO0lBRWhCLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUN6QixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFBO0lBQzlCLENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7SUFDL0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLDJDQUEyQztRQUMzQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxTQUFTLENBQUMsVUFBa0I7UUFDMUIsaURBQWlEO1FBQ2pELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFdBQW1CO1FBQzlCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsR0FBVztRQUM3QixPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7K0dBNUNVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcblxuLyoqXG4gKiBBY2Nlc3MgQ29udHJvbCBTZXJ2aWNlIHN0dWJcbiAqIFByb3ZpZGVzIGFjY2VzcyBjb250cm9sIGZ1bmN0aW9uYWxpdHkgZm9yIGNvbnRlbnQgYXV0aG9yaXphdGlvblxuICogXG4gKiBOb3RlOiBUaGlzIGlzIGEgbWluaW1hbCBzdHViLiBUaGUgY29uc3VtaW5nIGFwcGxpY2F0aW9uIHNob3VsZCBwcm92aWRlXG4gKiBhIHByb3BlciBpbXBsZW1lbnRhdGlvbiBpZiBmdWxsIGZ1bmN0aW9uYWxpdHkgaXMgbmVlZGVkLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbFNlcnZpY2Uge1xuICBwcml2YXRlIF9oYXNBY2Nlc3MgPSB0cnVlXG4gIHByaXZhdGUgX2F1dGhvcmluZ0NvbmZpZzogYW55ID0ge31cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZ2V0IGhhc0FjY2VzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzQWNjZXNzXG4gIH1cblxuICBzZXQgaGFzQWNjZXNzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGFzQWNjZXNzID0gdmFsdWVcbiAgfVxuXG4gIGdldCBhdXRob3JpbmdDb25maWcoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aG9yaW5nQ29uZmlnXG4gIH1cblxuICBzZXQgYXV0aG9yaW5nQ29uZmlnKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9hdXRob3JpbmdDb25maWcgPSB2YWx1ZVxuICB9XG5cbiAgaGFzUm9sZShyb2xlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIC0gYWxsb3cgYWxsIHJvbGVzXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlzQWxsb3dlZChwZXJtaXNzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIC0gYWxsb3cgYWxsIHBlcm1pc3Npb25zXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB1c2VyIGhhcyBhY2Nlc3MgdG8gY29udGVudCBiYXNlZCBvbiBjb250ZW50IHR5cGVcbiAgICovXG4gIGhhc0FjY2Vzc0Zvcihjb250ZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJveHkgVVJMIGZvciBhdXRob3JpbmdcbiAgICovXG4gIHByb3h5VG9BdXRob3JpbmdVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmxcbiAgfVxufVxuIl19
@@ -1,23 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class ActionService {
5
- constructor() {
6
- this.resumeL = new BehaviorSubject('');
7
- }
8
- get getUpdateCompGroupO() {
9
- return this.resumeL.asObservable();
10
- }
11
- set setUpdateCompGroupO(url) {
12
- this.resumeL.next(url);
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionService, providedIn: 'root' }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionService, decorators: [{
18
- type: Injectable,
19
- args: [{
20
- providedIn: 'root',
21
- }]
22
- }], ctorParameters: function () { return []; } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvc2VydmljZXMvYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFBOztBQUt0QyxNQUFNLE9BQU8sYUFBYTtJQUd0QjtRQUZRLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQTtJQUUvQixDQUFDO0lBRWhCLElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsSUFBVyxtQkFBbUIsQ0FBQyxHQUFRO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzFCLENBQUM7K0dBVlEsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlc3VtZUwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oJycpXG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwdWJsaWMgZ2V0IGdldFVwZGF0ZUNvbXBHcm91cE8oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3VtZUwuYXNPYnNlcnZhYmxlKClcbiAgICB9XG4gICAgcHVibGljIHNldCBzZXRVcGRhdGVDb21wR3JvdXBPKHVybDogYW55KSB7XG4gICAgICAgIHRoaXMucmVzdW1lTC5uZXh0KHVybClcbiAgICB9XG4vLyAgIHB1YmxpYyBnZXRVcGRhdGVDb21wR3JvdXBCeUlkKGxvY2FsbElkOiBudW1iZXIpIHtcbi8vICAgICByZXR1cm4gLmZpcnN0KC5maWx0ZXIodGhpcy5maW5hbENvbXBEZXRhaWwudmFsdWUsIHsgbG9jYWxJZDogbG9jYWxsSWQgfSkpXG4vLyAgIH1cbn1cbiJdfQ==
@@ -1,220 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./app-toc.service";
4
- export class AppTocV2Service {
5
- constructor(tocSvc) {
6
- this.tocSvc = tocSvc;
7
- }
8
- constructHeirarchyData(contentReadData) {
9
- let contentHeirarchy = { ...contentReadData };
10
- let leafNodes = [];
11
- if (contentHeirarchy['preliminaryAssessmentDetail'] && Object.keys(contentHeirarchy['preliminaryAssessmentDetail']).length > 0) {
12
- contentHeirarchy['children'] = [];
13
- // Set parent reference for preliminary assessment (pre-assessment)
14
- contentHeirarchy['preliminaryAssessmentDetail'].parent = contentHeirarchy.identifier;
15
- // Mark this as the pre-assessment for milestone locking logic
16
- contentHeirarchy['preliminaryAssessmentDetail'].isPreAssessment = true;
17
- contentHeirarchy['children'].push(contentHeirarchy['preliminaryAssessmentDetail']);
18
- leafNodes.push(contentReadData?.preliminaryAssessment || contentReadData?.preliminaryAssessmentDetail?.identifier);
19
- }
20
- // Track milestone index for proper locking logic
21
- // All milestones are locked by default - unlocking is computed based on progress
22
- let milestoneIndex = 0;
23
- contentHeirarchy['milestones_v1'].forEach((milestone) => {
24
- // All milestones are locked by default
25
- // M1 unlocks when pre-assessment is completed
26
- // M2+ unlock when previous milestone's mandatory content + assessment are completed
27
- const shouldBeLocked = true;
28
- let mileStoneData = {
29
- "identifier": milestone.id,
30
- "description": milestone.description,
31
- "mimeType": "application/vnd.ekstep.content-collection",
32
- "duration": "3600",
33
- "primaryCategory": "Milestone",
34
- "courseCategory": "Milestone",
35
- "createdBy": "25311a4f-fa42-4cf7-882a-5e79198edfcb",
36
- "name": milestone.name,
37
- "contentType": "Course",
38
- "isLocked": shouldBeLocked,
39
- "milestoneIndex": milestoneIndex,
40
- "status": "Live",
41
- "leafNodes": [],
42
- // Pre-computed flags for performance optimization
43
- "isMilestone": true,
44
- "isCollection": true,
45
- "isModule": false,
46
- "isResource": false,
47
- "isLearningPathway": false,
48
- "parent": contentHeirarchy.identifier
49
- };
50
- mileStoneData['children'] = [];
51
- if (milestone?.courses && milestone?.courses?.length) {
52
- milestone.courses.forEach((mileStoneCourse) => {
53
- // Set parent reference for courses inside milestone
54
- mileStoneCourse.parent = milestone.id;
55
- if (mileStoneCourse && mileStoneCourse?.leafNodes && mileStoneCourse?.leafNodes?.length) {
56
- leafNodes = [...leafNodes, ...mileStoneCourse.leafNodes];
57
- mileStoneData['leafNodes'] = [...mileStoneData?.leafNodes, ...mileStoneCourse.leafNodes];
58
- }
59
- this.tocSvc.checkModuleWiseData(mileStoneCourse);
60
- });
61
- }
62
- if (milestone?.assessmentDetail) {
63
- // Set parent reference for assessment inside milestone
64
- milestone.assessmentDetail.parent = milestone.id;
65
- leafNodes.push(milestone?.assessmentDetail?.identifier);
66
- mileStoneData['leafNodes'] = [...mileStoneData?.leafNodes, milestone?.assessmentDetail?.identifier];
67
- mileStoneData['children'].push(milestone?.assessmentDetail);
68
- }
69
- mileStoneData['children'] = [...milestone['courses'], ...mileStoneData['children']];
70
- mileStoneData['leafNodesCount'] = mileStoneData['leafNodes'].length;
71
- contentHeirarchy['children'] = contentHeirarchy['children'] ? [...contentHeirarchy['children'], mileStoneData] : [mileStoneData];
72
- milestoneIndex++;
73
- });
74
- contentHeirarchy['leafNodes'] = [...leafNodes];
75
- return contentHeirarchy;
76
- }
77
- mapContentHierarchyProgressUpdate(contentHeirarchyData, enrollmentListData) {
78
- if (contentHeirarchyData && contentHeirarchyData.children) {
79
- let totalLeafNodes = 0;
80
- let totalCompletedLeafNodes = 0;
81
- contentHeirarchyData.children.forEach((child) => {
82
- if (child.primaryCategory === 'Milestone') {
83
- this.updateMilestoneProgress(child, contentHeirarchyData?.identifier, enrollmentListData);
84
- totalLeafNodes += child.leafNodesCount || 0;
85
- totalCompletedLeafNodes += child.completedLeafNodesCount || 0;
86
- }
87
- else {
88
- // For pre-assessment and other root-level content
89
- const enrollment = this.findEnrollment(enrollmentListData, contentHeirarchyData?.identifier);
90
- this.updateNodeProgress(child, enrollment);
91
- const isCompleted = child.status === 2 || child.completionStatus === 2 || child.completionPercentage === 100;
92
- totalLeafNodes += child.leafNodesCount || 1;
93
- totalCompletedLeafNodes += isCompleted ? (child.leafNodesCount || 1) : 0;
94
- }
95
- });
96
- if (totalLeafNodes > 0) {
97
- contentHeirarchyData.completionPercentage = Math.round((totalCompletedLeafNodes / totalLeafNodes) * 100);
98
- contentHeirarchyData.completionStatus = contentHeirarchyData.completionPercentage === 100 ? 2 : 1;
99
- }
100
- }
101
- return contentHeirarchyData;
102
- }
103
- updateMilestoneProgress(milestone, parentContentIdentifier, enrollmentListData) {
104
- let totalLeafNodes = 0;
105
- let totalCompletedLeafNodes = 0;
106
- let completedCourses = 0;
107
- let totalCourses = 0;
108
- if (milestone.children) {
109
- milestone.children.forEach((child) => {
110
- if (child.primaryCategory === 'Course') {
111
- totalCourses += 1;
112
- this.updateCourseProgress(child, parentContentIdentifier, enrollmentListData);
113
- // Check both status and completionStatus for completion
114
- if (child.status === 2 || child.completionStatus === 2 || child.completionPercentage >= 100) {
115
- completedCourses += 1;
116
- }
117
- }
118
- else {
119
- // For assessments and other content, try multiple enrollment sources
120
- // First try parent Learning Pathway enrollment
121
- let enrollment = this.findEnrollment(enrollmentListData, parentContentIdentifier);
122
- if (!enrollment) {
123
- // Try milestone enrollment
124
- enrollment = this.findEnrollment(enrollmentListData, milestone?.identifier);
125
- }
126
- this.updateNodeProgress(child, enrollment);
127
- }
128
- const leafNodes = child.leafNodesCount || 1;
129
- totalLeafNodes += leafNodes;
130
- // Check both status and completionStatus for completion
131
- if (child.status === 2 || child.completionStatus === 2 || child.completionPercentage >= 100) {
132
- totalCompletedLeafNodes += leafNodes;
133
- }
134
- });
135
- }
136
- milestone.leafNodesCount = totalLeafNodes;
137
- milestone.completedLeafNodesCount = totalCompletedLeafNodes;
138
- milestone.totalCourses = totalCourses;
139
- milestone.completedCourses = completedCourses;
140
- if (totalLeafNodes > 0) {
141
- milestone.completionPercentage = Math.round((totalCompletedLeafNodes / totalLeafNodes) * 100);
142
- milestone.completionStatus = milestone.completionPercentage === 100 ? 2 : 1;
143
- milestone.status = milestone.completionPercentage === 100 ? 2 : 1;
144
- }
145
- }
146
- updateNodeProgress(node, enrollment) {
147
- const nodeEnrollData = enrollment?.contentList?.find((ele) => ele?.contentId === node.identifier);
148
- if (enrollment && nodeEnrollData && nodeEnrollData.status < 2) {
149
- node.completionPercentage = nodeEnrollData.completionPercentage || nodeEnrollData.progress || 0;
150
- node.completionStatus = nodeEnrollData.status;
151
- }
152
- else if (enrollment && nodeEnrollData && nodeEnrollData.status === 2) {
153
- node.completionPercentage = 100;
154
- node.completionStatus = 2;
155
- }
156
- else {
157
- node.completionPercentage = 0;
158
- node.completionStatus = 0;
159
- }
160
- }
161
- updateCourseProgress(course, parentContentIdentifier, enrollmentListData) {
162
- const enrollment = this.findEnrollment(enrollmentListData, course?.identifier);
163
- if (enrollment?.completionPercentage === 100) {
164
- // Enrollment shows 100% - mark course as complete
165
- course.completionPercentage = 100;
166
- course.completionStatus = 2;
167
- course.status = 2;
168
- this.tocSvc.mapCompletionChildPercentageProgram(course);
169
- }
170
- else if (enrollment && enrollment.completionPercentage > 0) {
171
- // Enrollment has partial progress
172
- course.completionPercentage = enrollment.completionPercentage || 0;
173
- course.completionStatus = 1;
174
- course.status = 1;
175
- // Also update children
176
- if (course.children && course.children.length > 0) {
177
- course.children.forEach((child) => {
178
- this.updateNodeProgress(child, enrollment);
179
- });
180
- }
181
- }
182
- else {
183
- if (course.children && course.children.length > 0) {
184
- let totalLeafNodes = course.leafNodesCount || 0;
185
- let totalCompleted = 0;
186
- course.children.forEach((child) => {
187
- this.updateNodeProgress(child, enrollment);
188
- if (child.status === 2 || child.completionStatus === 2 || child.completionPercentage === 100) {
189
- totalCompleted += child.leafNodesCount || 1;
190
- }
191
- });
192
- // If it's a collection and doesn't have its own enrollment progress, calculate it
193
- if (!enrollment || !course.completionPercentage || course.completionPercentage === 0) {
194
- if (!totalLeafNodes) {
195
- totalLeafNodes = course.children.reduce((acc, curr) => acc + (curr.leafNodesCount || 1), 0);
196
- }
197
- if (totalLeafNodes > 0) {
198
- course.completionPercentage = Math.round((totalCompleted / totalLeafNodes) * 100);
199
- course.completionStatus = course.completionPercentage === 100 ? 2 : (course.completionPercentage > 0 ? 1 : 0);
200
- course.status = course.completionStatus;
201
- }
202
- }
203
- }
204
- }
205
- }
206
- findEnrollment(enrollmentList, identifier) {
207
- if (!enrollmentList || !enrollmentList.length)
208
- return null;
209
- return enrollmentList.find((el) => el.collectionId === identifier || el.contentId === identifier);
210
- }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocV2Service, deps: [{ token: i1.AppTocService }], target: i0.ɵɵFactoryTarget.Injectable }); }
212
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocV2Service, providedIn: 'root' }); }
213
- }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocV2Service, decorators: [{
215
- type: Injectable,
216
- args: [{
217
- providedIn: 'root'
218
- }]
219
- }], ctorParameters: function () { return [{ type: i1.AppTocService }]; } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy12Mi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL3NlcnZpY2VzL2FwcC10b2MtdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUFJLENBQUM7SUFFOUMsc0JBQXNCLENBQUMsZUFBb0I7UUFDekMsSUFBSSxnQkFBZ0IsR0FBUSxFQUFFLEdBQUcsZUFBZSxFQUFFLENBQUE7UUFDbEQsSUFBSSxTQUFTLEdBQWEsRUFBRSxDQUFBO1FBQzVCLElBQUksZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlILGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNqQyxtRUFBbUU7WUFDbkUsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFBO1lBQ3BGLDhEQUE4RDtZQUM5RCxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUE7WUFDdEUsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQTtZQUNsRixTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsSUFBSSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsVUFBVSxDQUFDLENBQUE7U0FDbkg7UUFFRCxpREFBaUQ7UUFDakQsaUZBQWlGO1FBQ2pG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O2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsY0FBbUIsRUFBRSxVQUFrQjtRQUM1RCxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQTtRQUMxRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEtBQUssVUFBVSxJQUFJLEVBQUUsQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDLENBQUE7SUFDeEcsQ0FBQzsrR0EzTlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBUb2NTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtdG9jLnNlcnZpY2UnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwVG9jVjJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvY1N2YzogQXBwVG9jU2VydmljZSkgeyB9XG5cbiAgY29uc3RydWN0SGVpcmFyY2h5RGF0YShjb250ZW50UmVhZERhdGE6IGFueSk6IGFueSB7XG4gICAgbGV0IGNvbnRlbnRIZWlyYXJjaHk6IGFueSA9IHsgLi4uY29udGVudFJlYWREYXRhIH1cbiAgICBsZXQgbGVhZk5vZGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgaWYgKGNvbnRlbnRIZWlyYXJjaHlbJ3ByZWxpbWluYXJ5QXNzZXNzbWVudERldGFpbCddICYmIE9iamVjdC5rZXlzKGNvbnRlbnRIZWlyYXJjaHlbJ3ByZWxpbWluYXJ5QXNzZXNzbWVudERldGFpbCddKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb250ZW50SGVpcmFyY2h5WydjaGlsZHJlbiddID0gW11cbiAgICAgIC8vIFNldCBwYXJlbnQgcmVmZXJlbmNlIGZvciBwcmVsaW1pbmFyeSBhc3Nlc3NtZW50IChwcmUtYXNzZXNzbWVudClcbiAgICAgIGNvbnRlbnRIZWlyYXJjaHlbJ3ByZWxpbWluYXJ5QXNzZXNzbWVudERldGFpbCddLnBhcmVudCA9IGNvbnRlbnRIZWlyYXJjaHkuaWRlbnRpZmllclxuICAgICAgLy8gTWFyayB0aGlzIGFzIHRoZSBwcmUtYXNzZXNzbWVudCBmb3IgbWlsZXN0b25lIGxvY2tpbmcgbG9naWNcbiAgICAgIGNvbnRlbnRIZWlyYXJjaHlbJ3ByZWxpbWluYXJ5QXNzZXNzbWVudERldGFpbCddLmlzUHJlQXNzZXNzbWVudCA9IHRydWVcbiAgICAgIGNvbnRlbnRIZWlyYXJjaHlbJ2NoaWxkcmVuJ10ucHVzaChjb250ZW50SGVpcmFyY2h5WydwcmVsaW1pbmFyeUFzc2Vzc21lbnREZXRhaWwnXSlcbiAgICAgIGxlYWZOb2Rlcy5wdXNoKGNvbnRlbnRSZWFkRGF0YT8ucHJlbGltaW5hcnlBc3Nlc3NtZW50IHx8IGNvbnRlbnRSZWFkRGF0YT8ucHJlbGltaW5hcnlBc3Nlc3NtZW50RGV0YWlsPy5pZGVudGlmaWVyKVxuICAgIH1cblxuICAgIC8vIFRyYWNrIG1pbGVzdG9uZSBpbmRleCBmb3IgcHJvcGVyIGxvY2tpbmcgbG9naWNcbiAgICAvLyBBbGwgbWlsZXN0b25lcyBhcmUgbG9ja2VkIGJ5IGRlZmF1bHQgLSB1bmxvY2tpbmcgaXMgY29tcHV0ZWQgYmFzZWQgb24gcHJvZ3Jlc3NcbiAgICBsZXQgbWlsZXN0b25lSW5kZXggPSAwXG4gICAgY29udGVudEhlaXJhcmNoeVsnbWlsZXN0b25lc192MSddLmZvckVhY2goKG1pbGVzdG9uZTogYW55KSA9PiB7XG4gICAgICAvLyBBbGwgbWlsZXN0b25lcyBhcmUgbG9ja2VkIGJ5IGRlZmF1bHRcbiAgICAgIC8vIE0xIHVubG9ja3Mgd2hlbiBwcmUtYXNzZXNzbWVudCBpcyBjb21wbGV0ZWRcbiAgICAgIC8vIE0yKyB1bmxvY2sgd2hlbiBwcmV2aW91cyBtaWxlc3RvbmUncyBtYW5kYXRvcnkgY29udGVudCArIGFzc2Vzc21lbnQgYXJlIGNvbXBsZXRlZFxuICAgICAgY29uc3Qgc2hvdWxkQmVMb2NrZWQgPSB0cnVlXG5cbiAgICAgIGxldCBtaWxlU3RvbmVEYXRhOiBhbnkgPSB7XG4gICAgICAgIFwiaWRlbnRpZmllclwiOiBtaWxlc3RvbmUuaWQsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogbWlsZXN0b25lLmRlc2NyaXB0aW9uLFxuICAgICAgICBcIm1pbWVUeXBlXCI6IFwiYXBwbGljYXRpb24vdm5kLmVrc3RlcC5jb250ZW50LWNvbGxlY3Rpb25cIixcbiAgICAgICAgXCJkdXJhdGlvblwiOiBcIjM2MDBcIixcbiAgICAgICAgXCJwcmltYXJ5Q2F0ZWdvcnlcIjogXCJNaWxlc3RvbmVcIixcbiAgICAgICAgXCJjb3Vyc2VDYXRlZ29yeVwiOiBcIk1pbGVzdG9uZVwiLFxuICAgICAgICBcImNyZWF0ZWRCeVwiOiBcIjI1MzExYTRmLWZhNDItNGNmNy04ODJhLTVlNzkxOThlZGZjYlwiLFxuICAgICAgICBcIm5hbWVcIjogbWlsZXN0b25lLm5hbWUsXG4gICAgICAgIFwiY29udGVudFR5cGVcIjogXCJDb3Vyc2VcIixcbiAgICAgICAgXCJpc0xvY2tlZFwiOiBzaG91bGRCZUxvY2tlZCxcbiAgICAgICAgXCJtaWxlc3RvbmVJbmRleFwiOiBtaWxlc3RvbmVJbmRleCxcbiAgICAgICAgXCJzdGF0dXNcIjogXCJMaXZlXCIsXG4gICAgICAgIFwibGVhZk5vZGVzXCI6IFtdLFxuICAgICAgICAvLyBQcmUtY29tcHV0ZWQgZmxhZ3MgZm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvblxuICAgICAgICBcImlzTWlsZXN0b25lXCI6IHRydWUsXG4gICAgICAgIFwiaXNDb2xsZWN0aW9uXCI6IHRydWUsXG4gICAgICAgIFwiaXNNb2R1bGVcIjogZmFsc2UsXG4gICAgICAgIFwiaXNSZXNvdXJjZVwiOiBmYWxzZSxcbiAgICAgICAgXCJpc0xlYXJuaW5nUGF0aHdheVwiOiBmYWxzZSxcbiAgICAgICAgXCJwYXJlbnRcIjogY29udGVudEhlaXJhcmNoeS5pZGVudGlmaWVyXG4gICAgICB9XG4gICAgICBtaWxlU3RvbmVEYXRhWydjaGlsZHJlbiddID0gW11cbiAgICAgIGlmIChtaWxlc3RvbmU/LmNvdXJzZXMgJiYgbWlsZXN0b25lPy5jb3Vyc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgbWlsZXN0b25lLmNvdXJzZXMuZm9yRWFjaCgobWlsZVN0b25lQ291cnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBTZXQgcGFyZW50IHJlZmVyZW5jZSBmb3IgY291cnNlcyBpbnNpZGUgbWlsZXN0b25lXG4gICAgICAgICAgbWlsZVN0b25lQ291cnNlLnBhcmVudCA9IG1pbGVzdG9uZS5pZFxuICAgICAgICAgIGlmIChtaWxlU3RvbmVDb3Vyc2UgJiYgbWlsZVN0b25lQ291cnNlPy5sZWFmTm9kZXMgJiYgbWlsZVN0b25lQ291cnNlPy5sZWFmTm9kZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgbGVhZk5vZGVzID0gWy4uLmxlYWZOb2RlcywgLi4ubWlsZVN0b25lQ291cnNlLmxlYWZOb2Rlc11cbiAgICAgICAgICAgIG1pbGVTdG9uZURhdGFbJ2xlYWZOb2RlcyddID0gWy4uLm1pbGVTdG9uZURhdGE/LmxlYWZOb2RlcywgLi4ubWlsZVN0b25lQ291cnNlLmxlYWZOb2Rlc11cblxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnRvY1N2Yy5jaGVja01vZHVsZVdpc2VEYXRhKG1pbGVTdG9uZUNvdXJzZSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGlmIChtaWxlc3RvbmU/LmFzc2Vzc21lbnREZXRhaWwpIHtcbiAgICAgICAgLy8gU2V0IHBhcmVudCByZWZlcmVuY2UgZm9yIGFzc2Vzc21lbnQgaW5zaWRlIG1pbGVzdG9uZVxuICAgICAgICBtaWxlc3RvbmUuYXNzZXNzbWVudERldGFpbC5wYXJlbnQgPSBtaWxlc3RvbmUuaWRcbiAgICAgICAgbGVhZk5vZGVzLnB1c2gobWlsZXN0b25lPy5hc3Nlc3NtZW50RGV0YWlsPy5pZGVudGlmaWVyKVxuICAgICAgICBtaWxlU3RvbmVEYXRhWydsZWFmTm9kZXMnXSA9IFsuLi5taWxlU3RvbmVEYXRhPy5sZWFmTm9kZXMsIG1pbGVzdG9uZT8uYXNzZXNzbWVudERldGFpbD8uaWRlbnRpZmllcl1cbiAgICAgICAgbWlsZVN0b25lRGF0YVsnY2hpbGRyZW4nXS5wdXNoKG1pbGVzdG9uZT8uYXNzZXNzbWVudERldGFpbClcbiAgICAgIH1cbiAgICAgIG1pbGVTdG9uZURhdGFbJ2NoaWxkcmVuJ10gPSBbLi4ubWlsZXN0b25lWydjb3Vyc2VzJ10sIC4uLm1pbGVTdG9uZURhdGFbJ2NoaWxkcmVuJ11dXG4gICAgICBtaWxlU3RvbmVEYXRhWydsZWFmTm9kZXNDb3VudCddID0gbWlsZVN0b25lRGF0YVsnbGVhZk5vZGVzJ10ubGVuZ3RoXG4gICAgICBjb250ZW50SGVpcmFyY2h5WydjaGlsZHJlbiddID0gY29udGVudEhlaXJhcmNoeVsnY2hpbGRyZW4nXSA/IFsuLi5jb250ZW50SGVpcmFyY2h5WydjaGlsZHJlbiddLCBtaWxlU3RvbmVEYXRhXSA6IFttaWxlU3RvbmVEYXRhXVxuXG4gICAgICBtaWxlc3RvbmVJbmRleCsrXG4gICAgfSlcbiAgICBjb250ZW50SGVpcmFyY2h5WydsZWFmTm9kZXMnXSA9IFsuLi5sZWFmTm9kZXNdXG4gICAgcmV0dXJuIGNvbnRlbnRIZWlyYXJjaHlcbiAgfVxuXG5cbiAgbWFwQ29udGVudEhpZXJhcmNoeVByb2dyZXNzVXBkYXRlKGNvbnRlbnRIZWlyYXJjaHlEYXRhOiBhbnksIGVucm9sbG1lbnRMaXN0RGF0YTogYW55KSB7XG4gICAgaWYgKGNvbnRlbnRIZWlyYXJjaHlEYXRhICYmIGNvbnRlbnRIZWlyYXJjaHlEYXRhLmNoaWxkcmVuKSB7XG4gICAgICBsZXQgdG90YWxMZWFmTm9kZXMgPSAwXG4gICAgICBsZXQgdG90YWxDb21wbGV0ZWRMZWFmTm9kZXMgPSAwXG5cbiAgICAgIGNvbnRlbnRIZWlyYXJjaHlEYXRhLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGNoaWxkLnByaW1hcnlDYXRlZ29yeSA9PT0gJ01pbGVzdG9uZScpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZU1pbGVzdG9uZVByb2dyZXNzKGNoaWxkLCBjb250ZW50SGVpcmFyY2h5RGF0YT8uaWRlbnRpZmllciwgZW5yb2xsbWVudExpc3REYXRhKVxuICAgICAgICAgIHRvdGFsTGVhZk5vZGVzICs9IGNoaWxkLmxlYWZOb2Rlc0NvdW50IHx8IDBcbiAgICAgICAgICB0b3RhbENvbXBsZXRlZExlYWZOb2RlcyArPSBjaGlsZC5jb21wbGV0ZWRMZWFmTm9kZXNDb3VudCB8fCAwXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRm9yIHByZS1hc3Nlc3NtZW50IGFuZCBvdGhlciByb290LWxldmVsIGNvbnRlbnRcbiAgICAgICAgICBjb25zdCBlbnJvbGxtZW50ID0gdGhpcy5maW5kRW5yb2xsbWVudChlbnJvbGxtZW50TGlzdERhdGEsIGNvbnRlbnRIZWlyYXJjaHlEYXRhPy5pZGVudGlmaWVyKVxuICAgICAgICAgIHRoaXMudXBkYXRlTm9kZVByb2dyZXNzKGNoaWxkLCBlbnJvbGxtZW50KVxuICAgICAgICAgIGNvbnN0IGlzQ29tcGxldGVkID0gY2hpbGQuc3RhdHVzID09PSAyIHx8IGNoaWxkLmNvbXBsZXRpb25TdGF0dXMgPT09IDIgfHwgY2hpbGQuY29tcGxldGlvblBlcmNlbnRhZ2UgPT09IDEwMFxuICAgICAgICAgIHRvdGFsTGVhZk5vZGVzICs9IGNoaWxkLmxlYWZOb2Rlc0NvdW50IHx8IDFcbiAgICAgICAgICB0b3RhbENvbXBsZXRlZExlYWZOb2RlcyArPSBpc0NvbXBsZXRlZCA/IChjaGlsZC5sZWFmTm9kZXNDb3VudCB8fCAxKSA6IDBcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKHRvdGFsTGVhZk5vZGVzID4gMCkge1xuICAgICAgICBjb250ZW50SGVpcmFyY2h5RGF0YS5jb21wbGV0aW9uUGVyY2VudGFnZSA9IE1hdGgucm91bmQoKHRvdGFsQ29tcGxldGVkTGVhZk5vZGVzIC8gdG90YWxMZWFmTm9kZXMpICogMTAwKVxuICAgICAgICBjb250ZW50SGVpcmFyY2h5RGF0YS5jb21wbGV0aW9uU3RhdHVzID0gY29udGVudEhlaXJhcmNoeURhdGEuY29tcGxldGlvblBlcmNlbnRhZ2UgPT09IDEwMCA/IDIgOiAxXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb250ZW50SGVpcmFyY2h5RGF0YVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNaWxlc3RvbmVQcm9ncmVzcyhtaWxlc3RvbmU6IGFueSwgcGFyZW50Q29udGVudElkZW50aWZpZXI6IHN0cmluZywgZW5yb2xsbWVudExpc3REYXRhOiBhbnkpIHtcbiAgICBsZXQgdG90YWxMZWFmTm9kZXMgPSAwXG4gICAgbGV0IHRvdGFsQ29tcGxldGVkTGVhZk5vZGVzID0gMFxuICAgIGxldCBjb21wbGV0ZWRDb3Vyc2VzID0gMFxuICAgIGxldCB0b3RhbENvdXJzZXMgPSAwXG5cbiAgICBpZiAobWlsZXN0b25lLmNoaWxkcmVuKSB7XG4gICAgICBtaWxlc3RvbmUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoY2hpbGQucHJpbWFyeUNhdGVnb3J5ID09PSAnQ291cnNlJykge1xuICAgICAgICAgIHRvdGFsQ291cnNlcyArPSAxXG4gICAgICAgICAgdGhpcy51cGRhdGVDb3Vyc2VQcm9ncmVzcyhjaGlsZCwgcGFyZW50Q29udGVudElkZW50aWZpZXIsIGVucm9sbG1lbnRMaXN0RGF0YSlcbiAgICAgICAgICAvLyBDaGVjayBib3RoIHN0YXR1cyBhbmQgY29tcGxldGlvblN0YXR1cyBmb3IgY29tcGxldGlvblxuICAgICAgICAgIGlmIChjaGlsZC5zdGF0dXMgPT09IDIgfHwgY2hpbGQuY29tcGxldGlvblN0YXR1cyA9PT0gMiB8fCBjaGlsZC5jb21wbGV0aW9uUGVyY2VudGFnZSA+PSAxMDApIHtcbiAgICAgICAgICAgIGNvbXBsZXRlZENvdXJzZXMgKz0gMVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBGb3IgYXNzZXNzbWVudHMgYW5kIG90aGVyIGNvbnRlbnQsIHRyeSBtdWx0aXBsZSBlbnJvbGxtZW50IHNvdXJjZXNcbiAgICAgICAgICAvLyBGaXJzdCB0cnkgcGFyZW50IExlYXJuaW5nIFBhdGh3YXkgZW5yb2xsbWVudFxuICAgICAgICAgIGxldCBlbnJvbGxtZW50ID0gdGhpcy5maW5kRW5yb2xsbWVudChlbnJvbGxtZW50TGlzdERhdGEsIHBhcmVudENvbnRlbnRJZGVudGlmaWVyKVxuICAgICAgICAgIGlmICghZW5yb2xsbWVudCkge1xuICAgICAgICAgICAgLy8gVHJ5IG1pbGVzdG9uZSBlbnJvbGxtZW50XG4gICAgICAgICAgICBlbnJvbGxtZW50ID0gdGhpcy5maW5kRW5yb2xsbWVudChlbnJvbGxtZW50TGlzdERhdGEsIG1pbGVzdG9uZT8uaWRlbnRpZmllcilcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVOb2RlUHJvZ3Jlc3MoY2hpbGQsIGVucm9sbG1lbnQpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZWFmTm9kZXMgPSBjaGlsZC5sZWFmTm9kZXNDb3VudCB8fCAxXG4gICAgICAgIHRvdGFsTGVhZk5vZGVzICs9IGxlYWZOb2Rlc1xuICAgICAgICAvLyBDaGVjayBib3RoIHN0YXR1cyBhbmQgY29tcGxldGlvblN0YXR1cyBmb3IgY29tcGxldGlvblxuICAgICAgICBpZiAoY2hpbGQuc3RhdHVzID09PSAyIHx8IGNoaWxkLmNvbXBsZXRpb25TdGF0dXMgPT09IDIgfHwgY2hpbGQuY29tcGxldGlvblBlcmNlbnRhZ2UgPj0gMTAwKSB7XG4gICAgICAgICAgdG90YWxDb21wbGV0ZWRMZWFmTm9kZXMgKz0gbGVhZk5vZGVzXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgbWlsZXN0b25lLmxlYWZOb2Rlc0NvdW50ID0gdG90YWxMZWFmTm9kZXNcbiAgICBtaWxlc3RvbmUuY29tcGxldGVkTGVhZk5vZGVzQ291bnQgPSB0b3RhbENvbXBsZXRlZExlYWZOb2Rlc1xuICAgIG1pbGVzdG9uZS50b3RhbENvdXJzZXMgPSB0b3RhbENvdXJzZXNcbiAgICBtaWxlc3RvbmUuY29tcGxldGVkQ291cnNlcyA9IGNvbXBsZXRlZENvdXJzZXNcblxuICAgIGlmICh0b3RhbExlYWZOb2RlcyA+IDApIHtcbiAgICAgIG1pbGVzdG9uZS5jb21wbGV0aW9uUGVyY2VudGFnZSA9IE1hdGgucm91bmQoKHRvdGFsQ29tcGxldGVkTGVhZk5vZGVzIC8gdG90YWxMZWFmTm9kZXMpICogMTAwKVxuICAgICAgbWlsZXN0b25lLmNvbXBsZXRpb25TdGF0dXMgPSBtaWxlc3RvbmUuY29tcGxldGlvblBlcmNlbnRhZ2UgPT09IDEwMCA/IDIgOiAxXG4gICAgICBtaWxlc3RvbmUuc3RhdHVzID0gbWlsZXN0b25lLmNvbXBsZXRpb25QZXJjZW50YWdlID09PSAxMDAgPyAyIDogMVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTm9kZVByb2dyZXNzKG5vZGU6IGFueSwgZW5yb2xsbWVudDogYW55KSB7XG5cbiAgICBjb25zdCBub2RlRW5yb2xsRGF0YSA9IGVucm9sbG1lbnQ/LmNvbnRlbnRMaXN0Py5maW5kKChlbGU6IGFueSkgPT4gZWxlPy5jb250ZW50SWQgPT09IG5vZGUuaWRlbnRpZmllcilcbiAgICBpZiAoZW5yb2xsbWVudCAmJiBub2RlRW5yb2xsRGF0YSAmJiBub2RlRW5yb2xsRGF0YS5zdGF0dXMgPCAyKSB7XG4gICAgICBub2RlLmNvbXBsZXRpb25QZXJjZW50YWdlID0gbm9kZUVucm9sbERhdGEuY29tcGxldGlvblBlcmNlbnRhZ2UgfHwgbm9kZUVucm9sbERhdGEucHJvZ3Jlc3MgfHwgMFxuICAgICAgbm9kZS5jb21wbGV0aW9uU3RhdHVzID0gbm9kZUVucm9sbERhdGEuc3RhdHVzXG4gICAgfSBlbHNlIGlmIChlbnJvbGxtZW50ICYmIG5vZGVFbnJvbGxEYXRhICYmIG5vZGVFbnJvbGxEYXRhLnN0YXR1cyA9PT0gMikge1xuICAgICAgbm9kZS5jb21wbGV0aW9uUGVyY2VudGFnZSA9IDEwMFxuICAgICAgbm9kZS5jb21wbGV0aW9uU3RhdHVzID0gMlxuICAgIH0gZWxzZSB7XG4gICAgICBub2RlLmNvbXBsZXRpb25QZXJjZW50YWdlID0gMFxuICAgICAgbm9kZS5jb21wbGV0aW9uU3RhdHVzID0gMFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ291cnNlUHJvZ3Jlc3MoY291cnNlOiBhbnksIHBhcmVudENvbnRlbnRJZGVudGlmaWVyLCBlbnJvbGxtZW50TGlzdERhdGE6IGFueSkge1xuICAgIGNvbnN0IGVucm9sbG1lbnQgPSB0aGlzLmZpbmRFbnJvbGxtZW50KGVucm9sbG1lbnRMaXN0RGF0YSwgY291cnNlPy5pZGVudGlmaWVyKVxuXG4gICAgaWYgKGVucm9sbG1lbnQ/LmNvbXBsZXRpb25QZXJjZW50YWdlID09PSAxMDApIHtcbiAgICAgIC8vIEVucm9sbG1lbnQgc2hvd3MgMTAwJSAtIG1hcmsgY291cnNlIGFzIGNvbXBsZXRlXG4gICAgICBjb3Vyc2UuY29tcGxldGlvblBlcmNlbnRhZ2UgPSAxMDBcbiAgICAgIGNvdXJzZS5jb21wbGV0aW9uU3RhdHVzID0gMlxuICAgICAgY291cnNlLnN0YXR1cyA9IDJcbiAgICAgIHRoaXMudG9jU3ZjLm1hcENvbXBsZXRpb25DaGlsZFBlcmNlbnRhZ2VQcm9ncmFtKGNvdXJzZSlcbiAgICB9IGVsc2UgaWYgKGVucm9sbG1lbnQgJiYgZW5yb2xsbWVudC5jb21wbGV0aW9uUGVyY2VudGFnZSA+IDApIHtcbiAgICAgIC8vIEVucm9sbG1lbnQgaGFzIHBhcnRpYWwgcHJvZ3Jlc3NcbiAgICAgIGNvdXJzZS5jb21wbGV0aW9uUGVyY2VudGFnZSA9IGVucm9sbG1lbnQuY29tcGxldGlvblBlcmNlbnRhZ2UgfHwgMFxuICAgICAgY291cnNlLmNvbXBsZXRpb25TdGF0dXMgPSAxXG4gICAgICBjb3Vyc2Uuc3RhdHVzID0gMVxuICAgICAgLy8gQWxzbyB1cGRhdGUgY2hpbGRyZW5cbiAgICAgIGlmIChjb3Vyc2UuY2hpbGRyZW4gJiYgY291cnNlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY291cnNlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZU5vZGVQcm9ncmVzcyhjaGlsZCwgZW5yb2xsbWVudClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvdXJzZS5jaGlsZHJlbiAmJiBjb3Vyc2UuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgdG90YWxMZWFmTm9kZXMgPSBjb3Vyc2UubGVhZk5vZGVzQ291bnQgfHwgMFxuICAgICAgICBsZXQgdG90YWxDb21wbGV0ZWQgPSAwXG5cbiAgICAgICAgY291cnNlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZU5vZGVQcm9ncmVzcyhjaGlsZCwgZW5yb2xsbWVudClcbiAgICAgICAgICBpZiAoY2hpbGQuc3RhdHVzID09PSAyIHx8IGNoaWxkLmNvbXBsZXRpb25TdGF0dXMgPT09IDIgfHwgY2hpbGQuY29tcGxldGlvblBlcmNlbnRhZ2UgPT09IDEwMCkge1xuICAgICAgICAgICAgdG90YWxDb21wbGV0ZWQgKz0gY2hpbGQubGVhZk5vZGVzQ291bnQgfHwgMVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICAvLyBJZiBpdCdzIGEgY29sbGVjdGlvbiBhbmQgZG9lc24ndCBoYXZlIGl0cyBvd24gZW5yb2xsbWVudCBwcm9ncmVzcywgY2FsY3VsYXRlIGl0XG4gICAgICAgIGlmICghZW5yb2xsbWVudCB8fCAhY291cnNlLmNvbXBsZXRpb25QZXJjZW50YWdlIHx8IGNvdXJzZS5jb21wbGV0aW9uUGVyY2VudGFnZSA9PT0gMCkge1xuICAgICAgICAgIGlmICghdG90YWxMZWFmTm9kZXMpIHtcbiAgICAgICAgICAgIHRvdGFsTGVhZk5vZGVzID0gY291cnNlLmNoaWxkcmVuLnJlZHVjZSgoYWNjOiBudW1iZXIsIGN1cnI6IGFueSkgPT4gYWNjICsgKGN1cnIubGVhZk5vZGVzQ291bnQgfHwgMSksIDApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0b3RhbExlYWZOb2RlcyA+IDApIHtcbiAgICAgICAgICAgIGNvdXJzZS5jb21wbGV0aW9uUGVyY2VudGFnZSA9IE1hdGgucm91bmQoKHRvdGFsQ29tcGxldGVkIC8gdG90YWxMZWFmTm9kZXMpICogMTAwKVxuICAgICAgICAgICAgY291cnNlLmNvbXBsZXRpb25TdGF0dXMgPSBjb3Vyc2UuY29tcGxldGlvblBlcmNlbnRhZ2UgPT09IDEwMCA/IDIgOiAoY291cnNlLmNvbXBsZXRpb25QZXJjZW50YWdlID4gMCA/IDEgOiAwKVxuICAgICAgICAgICAgY291cnNlLnN0YXR1cyA9IGNvdXJzZS5jb21wbGV0aW9uU3RhdHVzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kRW5yb2xsbWVudChlbnJvbGxtZW50TGlzdDogYW55LCBpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICBpZiAoIWVucm9sbG1lbnRMaXN0IHx8ICFlbnJvbGxtZW50TGlzdC5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIGVucm9sbG1lbnRMaXN0LmZpbmQoKGVsOiBhbnkpID0+IGVsLmNvbGxlY3Rpb25JZCA9PT0gaWRlbnRpZmllciB8fCBlbC5jb250ZW50SWQgPT09IGlkZW50aWZpZXIpXG4gIH1cblxuXG5cbn1cblxuIl19