@sunbird-cb/toc 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +55 -55
  2. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -126
  3. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -32
  4. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -85
  5. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -100
  6. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -48
  7. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -120
  8. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -92
  9. package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -48
  10. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -25
  11. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -41
  12. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -89
  13. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -42
  14. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -41
  15. package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -78
  16. package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -45
  17. package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -2
  18. package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -70
  19. package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -28
  20. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -187
  21. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -86
  22. package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -31
  23. package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -941
  24. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -183
  25. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -327
  26. package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -297
  27. package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +248 -225
  28. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +1148 -1030
  29. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -16
  30. package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -43
  31. package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -133
  32. package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -66
  33. package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -278
  34. package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -21
  35. package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -21
  36. package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -847
  37. package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -219
  38. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -209
  39. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -26
  40. package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -19
  41. package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -23
  42. package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -113
  43. package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -110
  44. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -26
  45. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -19
  46. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -67
  47. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -28
  48. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -77
  49. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -2
  50. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -61
  51. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -20
  52. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +67 -67
  53. package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -139
  54. package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -71
  55. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -34
  56. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -56
  57. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -25
  58. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -37
  59. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -32
  60. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -30
  61. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -38
  62. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -51
  63. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -115
  64. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -12
  65. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -51
  66. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -61
  67. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -87
  68. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -36
  69. package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -62
  70. package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -24
  71. package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -192
  72. package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -44
  73. package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -99
  74. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -58
  75. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -67
  76. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -112
  77. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -2
  78. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -69
  79. package/esm2022/lib/_collection-api.mjs +57 -57
  80. package/esm2022/lib/_constants/widget-content.constants.mjs +19 -19
  81. package/esm2022/lib/_directives/tooltip.directive.mjs +68 -68
  82. package/esm2022/lib/_models/common.model.mjs +2 -2
  83. package/esm2022/lib/_models/error.model.mjs +2 -2
  84. package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -24
  85. package/esm2022/lib/_services/rating.service.mjs +89 -89
  86. package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -29
  87. package/esm2022/lib/_services/viewer-route-util.mjs +103 -103
  88. package/esm2022/lib/_services/widget-content.model.mjs +247 -247
  89. package/esm2022/lib/_services/widget-content.service.mjs +594 -594
  90. package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -9
  91. package/esm2022/lib/app-toc-lib.module.mjs +499 -499
  92. package/esm2022/lib/collection.config.mjs +161 -161
  93. package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -37
  94. package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -1436
  95. package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -475
  96. package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -119
  97. package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -80
  98. package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -249
  99. package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -39
  100. package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -58
  101. package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -2229
  102. package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2907 -2905
  103. package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -157
  104. package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -48
  105. package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -47
  106. package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -766
  107. package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -243
  108. package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -116
  109. package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -44
  110. package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -1838
  111. package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -236
  112. package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -213
  113. package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -36
  114. package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -256
  115. package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -133
  116. package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -36
  117. package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -2
  118. package/esm2022/lib/models/app-toc.model.mjs +38 -38
  119. package/esm2022/lib/models/auto-complete.model.mjs +2 -2
  120. package/esm2022/lib/models/card-content.model.mjs +13 -13
  121. package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -2
  122. package/esm2022/lib/models/discussion-forum.model.mjs +14 -14
  123. package/esm2022/lib/models/goal.model.mjs +2 -2
  124. package/esm2022/lib/models/meta-tag.model.mjs +8 -8
  125. package/esm2022/lib/models/playlist.model.mjs +2 -2
  126. package/esm2022/lib/models/profile-revamp.model.mjs +2 -2
  127. package/esm2022/lib/models/rating.model.mjs +2 -2
  128. package/esm2022/lib/models/user-profile.model.mjs +21 -21
  129. package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -24
  130. package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -24
  131. package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -60
  132. package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -25
  133. package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -106
  134. package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -25
  135. package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -25
  136. package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -25
  137. package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -51
  138. package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -16
  139. package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -18
  140. package/esm2022/lib/services/access-control.service.mjs +56 -56
  141. package/esm2022/lib/services/action.service.mjs +23 -23
  142. package/esm2022/lib/services/app-toc-v2.service.mjs +313 -243
  143. package/esm2022/lib/services/app-toc.service.mjs +1613 -1387
  144. package/esm2022/lib/services/certificate.service.mjs +69 -69
  145. package/esm2022/lib/services/discuss-utils.service.mjs +58 -58
  146. package/esm2022/lib/services/editor.service.mjs +34 -34
  147. package/esm2022/lib/services/load-check.service.mjs +21 -21
  148. package/esm2022/lib/services/loader.service.mjs +33 -33
  149. package/esm2022/lib/services/mobile-apps.service.mjs +67 -67
  150. package/esm2022/lib/services/netcore.service.mjs +56 -56
  151. package/esm2022/lib/services/nps-grid.service.mjs +31 -31
  152. package/esm2022/lib/services/otp.service.mjs +43 -43
  153. package/esm2022/lib/services/profile-v2.service.mjs +43 -43
  154. package/esm2022/lib/services/reset-ratings.service.mjs +19 -19
  155. package/esm2022/lib/services/resource-download-helper.service.mjs +64 -64
  156. package/esm2022/lib/services/timer.service.mjs +23 -23
  157. package/esm2022/lib/services/title-tag.service.mjs +71 -71
  158. package/esm2022/lib/services/user-profile.service.mjs +55 -55
  159. package/esm2022/lib/services/viewer-data.service.mjs +64 -64
  160. package/esm2022/lib/services/viewer-util.service.mjs +590 -590
  161. package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -291
  162. package/esm2022/lib/share-toc/share-toc.module.mjs +119 -119
  163. package/esm2022/public-api.mjs +71 -71
  164. package/esm2022/sunbird-cb-toc.mjs +4 -4
  165. package/fesm2022/sunbird-cb-toc.mjs +24776 -24339
  166. package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
  167. package/index.d.ts +5 -6
  168. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +16 -17
  169. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +31 -32
  170. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +15 -16
  171. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +20 -21
  172. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +22 -23
  173. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +15 -16
  174. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +22 -23
  175. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +22 -23
  176. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +9 -10
  177. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +11 -12
  178. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +12 -13
  179. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +18 -19
  180. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +14 -15
  181. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +11 -12
  182. package/lib/_collection/_common/connection-name/connection-name.component.d.ts +17 -18
  183. package/lib/_collection/_common/connection-name/connection-name.module.d.ts +14 -15
  184. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +199 -200
  185. package/lib/_collection/_common/content-progress/content-progress.component.d.ts +16 -17
  186. package/lib/_collection/_common/content-progress/content-progress.module.d.ts +10 -11
  187. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +38 -39
  188. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +19 -20
  189. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +11 -12
  190. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +183 -184
  191. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +41 -42
  192. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +54 -55
  193. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +47 -48
  194. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +49 -49
  195. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +171 -155
  196. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +8 -9
  197. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +16 -17
  198. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +40 -41
  199. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +21 -22
  200. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +45 -46
  201. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +10 -11
  202. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +10 -11
  203. package/lib/_collection/_common/content-toc/content-toc.component.d.ts +128 -129
  204. package/lib/_collection/_common/content-toc/content-toc.module.d.ts +51 -52
  205. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +29 -30
  206. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +9 -10
  207. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +7 -8
  208. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +7 -8
  209. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +28 -29
  210. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +24 -25
  211. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +14 -15
  212. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +9 -10
  213. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +12 -13
  214. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +10 -11
  215. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +22 -23
  216. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +8 -9
  217. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +18 -19
  218. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +8 -9
  219. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +15 -16
  220. package/lib/_collection/_common/player-brief/player-brief.component.d.ts +35 -36
  221. package/lib/_collection/_common/player-brief/player-brief.module.d.ts +19 -20
  222. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +14 -15
  223. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +13 -14
  224. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +11 -12
  225. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +11 -12
  226. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +15 -16
  227. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +10 -11
  228. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +16 -17
  229. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +11 -12
  230. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +34 -35
  231. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +17 -18
  232. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +15 -16
  233. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +15 -16
  234. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +21 -22
  235. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +12 -13
  236. package/lib/_collection/_common/user-image/user-image.component.d.ts +21 -22
  237. package/lib/_collection/_common/user-image/user-image.module.d.ts +9 -10
  238. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +47 -48
  239. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +14 -15
  240. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +22 -23
  241. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +19 -20
  242. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +15 -16
  243. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +25 -26
  244. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +21 -22
  245. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +18 -19
  246. package/lib/_collection-api.d.ts +34 -35
  247. package/lib/_constants/widget-content.constants.d.ts +7 -8
  248. package/lib/_directives/tooltip.directive.d.ts +17 -18
  249. package/lib/_models/common.model.d.ts +3 -4
  250. package/lib/_models/error.model.d.ts +5 -6
  251. package/lib/_pipes/highlight.pipe.d.ts +10 -11
  252. package/lib/_services/rating.service.d.ts +18 -19
  253. package/lib/_services/samuhik-charcha.service.d.ts +13 -14
  254. package/lib/_services/viewer-route-util.d.ts +8 -9
  255. package/lib/_services/widget-content.model.d.ts +515 -516
  256. package/lib/_services/widget-content.service.d.ts +101 -102
  257. package/lib/_shared/translate-loader.factory.d.ts +7 -8
  258. package/lib/app-toc-lib.module.d.ts +88 -89
  259. package/lib/collection.config.d.ts +159 -160
  260. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +17 -18
  261. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +225 -226
  262. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +78 -79
  263. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +22 -23
  264. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +31 -32
  265. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +47 -48
  266. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +14 -15
  267. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +21 -22
  268. package/lib/components/app-toc-home/app-toc-home.component.d.ts +314 -315
  269. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +408 -409
  270. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +47 -48
  271. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +22 -23
  272. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +14 -15
  273. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +149 -150
  274. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +42 -43
  275. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +27 -28
  276. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +15 -16
  277. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +195 -196
  278. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +44 -45
  279. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +54 -55
  280. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +18 -19
  281. package/lib/components/public-survey-form/public-survey-form.component.d.ts +43 -44
  282. package/lib/components/survey-form-question/survey-form-question.component.d.ts +20 -21
  283. package/lib/components/survey-form-section/survey-form-section.component.d.ts +13 -14
  284. package/lib/models/app-toc-analytics.model.d.ts +152 -153
  285. package/lib/models/app-toc.model.d.ts +84 -85
  286. package/lib/models/auto-complete.model.d.ts +27 -28
  287. package/lib/models/card-content.model.d.ts +19 -20
  288. package/lib/models/content-strip-with-tabs.model.d.ts +44 -45
  289. package/lib/models/discussion-forum.model.d.ts +40 -41
  290. package/lib/models/goal.model.d.ts +22 -23
  291. package/lib/models/meta-tag.model.d.ts +6 -7
  292. package/lib/models/playlist.model.d.ts +23 -24
  293. package/lib/models/profile-revamp.model.d.ts +14 -15
  294. package/lib/models/rating.model.d.ts +17 -18
  295. package/lib/models/user-profile.model.d.ts +37 -38
  296. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +12 -13
  297. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +12 -13
  298. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +16 -17
  299. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +12 -13
  300. package/lib/resolvers/app-toc-resolver.service.d.ts +16 -17
  301. package/lib/resolvers/config-resolver.service.d.ts +11 -12
  302. package/lib/resolvers/profile-resolver.service.d.ts +11 -12
  303. package/lib/resolvers/restricted-features-resolver.service.d.ts +11 -12
  304. package/lib/routes/app-toc-home/app-toc-home.component.d.ts +19 -20
  305. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +8 -9
  306. package/lib/routes/app-toc-home/app-toc-home.service.d.ts +8 -9
  307. package/lib/services/access-control.service.d.ts +29 -30
  308. package/lib/services/action.service.d.ts +9 -10
  309. package/lib/services/app-toc-v2.service.d.ts +16 -15
  310. package/lib/services/app-toc.service.d.ts +235 -178
  311. package/lib/services/certificate.service.d.ts +42 -43
  312. package/lib/services/discuss-utils.service.d.ts +33 -34
  313. package/lib/services/editor.service.d.ts +17 -18
  314. package/lib/services/load-check.service.d.ts +8 -9
  315. package/lib/services/loader.service.d.ts +16 -17
  316. package/lib/services/mobile-apps.service.d.ts +38 -39
  317. package/lib/services/netcore.service.d.ts +33 -34
  318. package/lib/services/nps-grid.service.d.ts +15 -16
  319. package/lib/services/otp.service.d.ts +20 -21
  320. package/lib/services/profile-v2.service.d.ts +20 -21
  321. package/lib/services/reset-ratings.service.d.ts +8 -9
  322. package/lib/services/resource-download-helper.service.d.ts +29 -30
  323. package/lib/services/timer.service.d.ts +9 -10
  324. package/lib/services/title-tag.service.d.ts +21 -22
  325. package/lib/services/user-profile.service.d.ts +24 -25
  326. package/lib/services/viewer-data.service.d.ts +58 -59
  327. package/lib/services/viewer-util.service.d.ts +76 -77
  328. package/lib/share-toc/share-toc/share-toc.component.d.ts +56 -57
  329. package/lib/share-toc/share-toc.module.d.ts +32 -33
  330. package/package.json +1 -1
  331. package/public-api.d.ts +56 -57
  332. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +0 -1
  333. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +0 -1
  334. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +0 -1
  335. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +0 -1
  336. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +0 -1
  337. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +0 -1
  338. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +0 -1
  339. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +0 -1
  340. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +0 -1
  341. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +0 -1
  342. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +0 -1
  343. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +0 -1
  344. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +0 -1
  345. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +0 -1
  346. package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +0 -1
  347. package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +0 -1
  348. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +0 -1
  349. package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +0 -1
  350. package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +0 -1
  351. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +0 -1
  352. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +0 -1
  353. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +0 -1
  354. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +0 -1
  355. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +0 -1
  356. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +0 -1
  357. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +0 -1
  358. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +0 -1
  359. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +0 -1
  360. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +0 -1
  361. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +0 -1
  362. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +0 -1
  363. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +0 -1
  364. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +0 -1
  365. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +0 -1
  366. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +0 -1
  367. package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +0 -1
  368. package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +0 -1
  369. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +0 -1
  370. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +0 -1
  371. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +0 -1
  372. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +0 -1
  373. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +0 -1
  374. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +0 -1
  375. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +0 -1
  376. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +0 -1
  377. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +0 -1
  378. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +0 -1
  379. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +0 -1
  380. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +0 -1
  381. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +0 -1
  382. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +0 -1
  383. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +0 -1
  384. package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +0 -1
  385. package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +0 -1
  386. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +0 -1
  387. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +0 -1
  388. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +0 -1
  389. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +0 -1
  390. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +0 -1
  391. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +0 -1
  392. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +0 -1
  393. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +0 -1
  394. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +0 -1
  395. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +0 -1
  396. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +0 -1
  397. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +0 -1
  398. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +0 -1
  399. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +0 -1
  400. package/lib/_collection/_common/user-image/user-image.component.d.ts.map +0 -1
  401. package/lib/_collection/_common/user-image/user-image.module.d.ts.map +0 -1
  402. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +0 -1
  403. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +0 -1
  404. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +0 -1
  405. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +0 -1
  406. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +0 -1
  407. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +0 -1
  408. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +0 -1
  409. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +0 -1
  410. package/lib/_collection-api.d.ts.map +0 -1
  411. package/lib/_constants/widget-content.constants.d.ts.map +0 -1
  412. package/lib/_directives/tooltip.directive.d.ts.map +0 -1
  413. package/lib/_models/common.model.d.ts.map +0 -1
  414. package/lib/_models/error.model.d.ts.map +0 -1
  415. package/lib/_pipes/highlight.pipe.d.ts.map +0 -1
  416. package/lib/_services/rating.service.d.ts.map +0 -1
  417. package/lib/_services/samuhik-charcha.service.d.ts.map +0 -1
  418. package/lib/_services/viewer-route-util.d.ts.map +0 -1
  419. package/lib/_services/widget-content.model.d.ts.map +0 -1
  420. package/lib/_services/widget-content.service.d.ts.map +0 -1
  421. package/lib/_shared/translate-loader.factory.d.ts.map +0 -1
  422. package/lib/app-toc-lib.module.d.ts.map +0 -1
  423. package/lib/collection.config.d.ts.map +0 -1
  424. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +0 -1
  425. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +0 -1
  426. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +0 -1
  427. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +0 -1
  428. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +0 -1
  429. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +0 -1
  430. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +0 -1
  431. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +0 -1
  432. package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +0 -1
  433. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +0 -1
  434. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +0 -1
  435. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +0 -1
  436. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +0 -1
  437. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +0 -1
  438. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +0 -1
  439. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +0 -1
  440. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +0 -1
  441. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +0 -1
  442. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +0 -1
  443. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +0 -1
  444. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +0 -1
  445. package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +0 -1
  446. package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +0 -1
  447. package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +0 -1
  448. package/lib/models/app-toc-analytics.model.d.ts.map +0 -1
  449. package/lib/models/app-toc.model.d.ts.map +0 -1
  450. package/lib/models/auto-complete.model.d.ts.map +0 -1
  451. package/lib/models/card-content.model.d.ts.map +0 -1
  452. package/lib/models/content-strip-with-tabs.model.d.ts.map +0 -1
  453. package/lib/models/discussion-forum.model.d.ts.map +0 -1
  454. package/lib/models/goal.model.d.ts.map +0 -1
  455. package/lib/models/meta-tag.model.d.ts.map +0 -1
  456. package/lib/models/playlist.model.d.ts.map +0 -1
  457. package/lib/models/profile-revamp.model.d.ts.map +0 -1
  458. package/lib/models/rating.model.d.ts.map +0 -1
  459. package/lib/models/user-profile.model.d.ts.map +0 -1
  460. package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +0 -1
  461. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +0 -1
  462. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +0 -1
  463. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +0 -1
  464. package/lib/resolvers/app-toc-resolver.service.d.ts.map +0 -1
  465. package/lib/resolvers/config-resolver.service.d.ts.map +0 -1
  466. package/lib/resolvers/profile-resolver.service.d.ts.map +0 -1
  467. package/lib/resolvers/restricted-features-resolver.service.d.ts.map +0 -1
  468. package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +0 -1
  469. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +0 -1
  470. package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +0 -1
  471. package/lib/services/access-control.service.d.ts.map +0 -1
  472. package/lib/services/action.service.d.ts.map +0 -1
  473. package/lib/services/app-toc-v2.service.d.ts.map +0 -1
  474. package/lib/services/app-toc.service.d.ts.map +0 -1
  475. package/lib/services/certificate.service.d.ts.map +0 -1
  476. package/lib/services/discuss-utils.service.d.ts.map +0 -1
  477. package/lib/services/editor.service.d.ts.map +0 -1
  478. package/lib/services/load-check.service.d.ts.map +0 -1
  479. package/lib/services/loader.service.d.ts.map +0 -1
  480. package/lib/services/mobile-apps.service.d.ts.map +0 -1
  481. package/lib/services/netcore.service.d.ts.map +0 -1
  482. package/lib/services/nps-grid.service.d.ts.map +0 -1
  483. package/lib/services/otp.service.d.ts.map +0 -1
  484. package/lib/services/profile-v2.service.d.ts.map +0 -1
  485. package/lib/services/reset-ratings.service.d.ts.map +0 -1
  486. package/lib/services/resource-download-helper.service.d.ts.map +0 -1
  487. package/lib/services/timer.service.d.ts.map +0 -1
  488. package/lib/services/title-tag.service.d.ts.map +0 -1
  489. package/lib/services/user-profile.service.d.ts.map +0 -1
  490. package/lib/services/viewer-data.service.d.ts.map +0 -1
  491. package/lib/services/viewer-util.service.d.ts.map +0 -1
  492. package/lib/share-toc/share-toc/share-toc.component.d.ts.map +0 -1
  493. package/lib/share-toc/share-toc.module.d.ts.map +0 -1
  494. package/public-api.d.ts.map +0 -1
  495. package/sunbird-cb-toc.d.ts.map +0 -1
@@ -1,192 +1,192 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- import { Component, HostBinding, Inject, Input } from '@angular/core';
3
- import { WidgetBaseComponent } from '@sunbird-cb/resolver-v2';
4
- // tslint:disable
5
- import _ from 'lodash';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./btn-page-back.service";
8
- import * as i2 from "@angular/router";
9
- import * as i3 from "@sunbird-cb/utils-v2";
10
- import * as i4 from "../../services/discuss-utils.service";
11
- import * as i5 from "@ngx-translate/core";
12
- import * as i6 from "@angular/common";
13
- import * as i7 from "@angular/material/icon";
14
- export class BtnPageBackComponent extends WidgetBaseComponent {
15
- constructor(btnBackSvc, router, configSvc, discussUtilitySvc, translate, langtranslations, environment) {
16
- super();
17
- this.btnBackSvc = btnBackSvc;
18
- this.router = router;
19
- this.configSvc = configSvc;
20
- this.discussUtilitySvc = discussUtilitySvc;
21
- this.translate = translate;
22
- this.langtranslations = langtranslations;
23
- this.environment = environment;
24
- this.widgetData = { url: 'none', titles: [] };
25
- this.presentUrl = '';
26
- this.id = 'nav-back';
27
- this.visible = false;
28
- this.enablePeopleSearch = true;
29
- this.loggedinUser = !!(this.configSvc.userProfile && this.configSvc.userProfile.userId);
30
- if (localStorage.getItem('websiteLanguage')) {
31
- this.translate.setDefaultLang('en');
32
- const lang = localStorage.getItem('websiteLanguage');
33
- this.translate.use(lang);
34
- }
35
- }
36
- ngOnInit() {
37
- // environment is injected via constructor
38
- const instanceConfig = this.configSvc.instanceConfig;
39
- if (instanceConfig) {
40
- this.hubsList = (instanceConfig.hubs || []).filter(i => i.active);
41
- }
42
- this.presentUrl = this.router.url;
43
- if (this.configSvc.userProfile) {
44
- this.loggedinUser = true;
45
- }
46
- else {
47
- this.loggedinUser = false;
48
- }
49
- }
50
- get isUserLoggegIn() {
51
- return this.loggedinUser;
52
- }
53
- get backUrl() {
54
- if (this.presentUrl === '/page/explore') {
55
- return {
56
- queryParams: undefined,
57
- routeUrl: '/page/home',
58
- };
59
- }
60
- if (this.widgetData.url === 'home') {
61
- return {
62
- queryParams: undefined,
63
- routeUrl: '/page/home',
64
- };
65
- }
66
- if (this.widgetData.url === 'doubleBack') {
67
- return {
68
- fragment: this.btnBackSvc.getLastUrl(2).fragment,
69
- queryParams: this.btnBackSvc.getLastUrl(2).queryParams,
70
- routeUrl: this.btnBackSvc.getLastUrl(2).route,
71
- };
72
- }
73
- if (this.widgetData.url === 'back') {
74
- return {
75
- fragment: this.btnBackSvc.getLastUrl().fragment,
76
- queryParams: this.btnBackSvc.getLastUrl().queryParams,
77
- routeUrl: this.btnBackSvc.getLastUrl().route,
78
- };
79
- }
80
- if (this.widgetData.url !== 'back' && this.widgetData.url !== 'doubleBack') {
81
- this.btnBackSvc.checkUrl(this.widgetData.url);
82
- }
83
- return {
84
- queryParams: undefined,
85
- routeUrl: this.widgetData.url ? this.widgetData.url : '/app/home',
86
- };
87
- }
88
- navigate() {
89
- const config = {
90
- menuOptions: [
91
- {
92
- route: 'all-discussions',
93
- label: 'All discussions',
94
- enable: true,
95
- },
96
- {
97
- route: 'categories',
98
- label: 'Categories',
99
- enable: true,
100
- },
101
- {
102
- route: 'tags',
103
- label: 'Tags',
104
- enable: true,
105
- },
106
- {
107
- route: 'my-discussion',
108
- label: 'Your discussion',
109
- enable: true,
110
- },
111
- ],
112
- userName: (this.configSvc.nodebbUserProfile && this.configSvc.nodebbUserProfile.username) || '',
113
- context: {
114
- id: 1,
115
- },
116
- categories: { result: [] },
117
- routerSlug: '/app',
118
- headerOptions: false,
119
- bannerOption: true,
120
- };
121
- this.discussUtilitySvc.setDiscussionConfig(config);
122
- localStorage.setItem('home', JSON.stringify(config));
123
- this.router.navigate(['/app/discussion-forum'], { queryParams: { page: 'home' }, queryParamsHandling: 'merge' });
124
- }
125
- // get titleUrl(): { fragment?: string; routeUrl: string; queryParams: any } {
126
- // return {
127
- // queryParams: undefined,
128
- // routeUrl: this.widgetData.url ? this.widgetData.url : '/app/home',
129
- // }
130
- // }
131
- toggleVisibility() {
132
- this.visible = !this.visible;
133
- }
134
- hasRole(role) {
135
- let returnValue = false;
136
- role.forEach(v => {
137
- const rolesList = (this.configSvc.userRoles || new Set());
138
- if (rolesList.has(v.toLowerCase()) || rolesList.has(v.toUpperCase())) {
139
- returnValue = true;
140
- }
141
- });
142
- return returnValue;
143
- }
144
- isAllowed(portalName) {
145
- const roles = _.get(_.first(_.filter(this.environment.portals, { id: portalName })), 'roles') || [];
146
- if (!(roles && roles.length)) {
147
- return true;
148
- }
149
- const value = this.hasRole(roles);
150
- return value;
151
- }
152
- translateLabels(label, type, subtype) {
153
- return this.langtranslations.translateLabel(label, type, subtype);
154
- }
155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BtnPageBackComponent, deps: [{ token: i1.BtnPageBackService }, { token: i2.Router }, { token: i3.ConfigurationsService }, { token: i4.DiscussUtilsService }, { token: i5.TranslateService }, { token: i3.MultilingualTranslationsService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component }); }
156
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BtnPageBackComponent, selector: "ws-widget-btn-page-back", inputs: { widgetData: "widgetData" }, host: { properties: { "id": "this.id" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"base-layout\" role=\"navigation\" id=\"back-nav\" aria-label=\"navigation\">\n <div class=\"container-balanced\">\n <div class=\"flex flex-1 flex-column\">\n <div class=\"flex flex-1 flex-column\">\n <div class=\"flex flex-wrap end-line-elipses items-center margin-top-l margin-bottom-l\" role=\"menubar\">\n <!-- disabled for explore btn disabled on contact us page refresh-->\n <a class=\"flex cursor-pointer simple-hubs-link \" href=\"/\" role=\"menuitem\" accesskey=\"H\" i18n-aria-label i18n-aria-title>\n <span class=\"margin-auto margin-0 mat-subheading-2 {{widgetData?.textClass? widgetData?.textClass: 'ws-mat-default-text'}}\">{{ 'btnpageback.home' | translate }}</span>\n </a>\n\n <ng-container *ngIf=\"widgetData.titles && widgetData.titles.length>0\">\n <div class=\"flex\" *ngFor=\"let title of widgetData.titles\">\n <mat-icon class=\"m-auto mr-2\">keyboard_arrow_right</mat-icon>\n <span *ngIf=\"title.title && title.url && title.url === 'none'\" i18n-aria-label i18n-aria-title\n i18n=\"page title: {{title.title}}\" class=\"flex m-auto\">\n <mat-icon class=\"icon-margin m-t-b ws-mat-black60-text\" *ngIf=\"title.icon\">{{ title.icon }}</mat-icon>\n <span class=\"m-t-b mat-body-2 font-bold-imp ws-mat-black60-text\">{{ title.title }}</span>\n </span>\n\n <a class=\"flex m-auto ws-mat-default-text\" i18n-aria-label *ngIf=\"title.url && title.url !== 'none'\"\n [routerLink]=\"title.url\" [queryParams]=\"title.queryParams\" role=\"menuitem\" i18n-aria-label\n [attr.accesskey]=\"title.accessKey\">\n <mat-icon class=\"ws-mat-default-text icon-margin\" *ngIf=\"title.icon\">{{title.icon}}</mat-icon>\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"!title?.disableTranslate\"> {{ translateLabels(title?.title, 'btnpageback') }}</span>\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"title?.disableTranslate\"> {{ title?.title }}</span>\n </a>\n </div>\n \n </ng-container>\n </div>\n <div class=\"flex flex-col\" *ngIf=\"visible\" [@enterAnimation]=\"visible\">\n <div class=\"flex flex-1 margin-xs\">\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.hubs' | translate }}</h4>\n </div>\n <div class=\"flex flex-1\">\n <h3 class=\"mat-error text-center\" *ngIf=\"hubsList.length === 0\" >\n {{ 'btnpageback.noHubs' | translate }}\n </h3>\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\" role=\"menubar\">\n <ng-container *ngFor=\"let hubsObj of hubsList\" [ngTemplateOutlet]=\"userIndividualNew\" [ngTemplateOutletContext]=\"{ hubs: hubsObj }\">\n </ng-container>\n </div>\n </div>\n\n <div class=\"flex flex-1 margin-xs\">\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.doMore' | translate }}</h4>\n </div>\n <div class=\"flex flex-1\">\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/knowledge-resource/all']\" >\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">menu_book</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\">{{ 'btnpageback.knowledgeResources' | translate }}</div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.knowledgeResourcesSubtitle' | translate }}</div>\n </div>\n </a>\n\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/my-dashboard']\" >\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon aria-hidden=\"false\" class=\"mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-label=\"bar_chart\" aria-labelledby=\"bar_chart\"> bar_chart </mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.dashboard' | translate }} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.dashboardSubtitle' | translate }}</div>\n </div>\n </a>\n\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/profile/settings']\" >\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">settings</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.settings' | translate }} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.settingSubtitle' | translate }}</div>\n </div>\n </a>\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/setup']\">\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\"\n aria-hidden=\"true\">thumb_up</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.interests' | translate }} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.interestsSubtitle' | translate }}</div>\n </div>\n </a>\n </div>\n </div>\n\n <div class=\"flex flex-1 margin-xs\">\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.quickLinks' | translate }}</h4>\n </div>\n <div class=\"flex flex-1\">\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\n <ng-container *ngFor=\"let portal of environment.portals | orderBy: 'sr'\">\n <ng-container *ngIf=\"portal.isPublic || isAllowed(portal.id)\">\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [attr.href]=\"portal.uriPath\" target=\"_blank\">\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\"m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">{{ portal.icon || 'info' }}</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{portal.name}} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{portal.desc}}</div>\n </div>\n </a>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n\n<ng-template #userIndividualNew let-hubs=\"hubs\">\n <ng-container *ngIf=\"hubs.hubname == 'Discuss'\">\n <a class=\"flex flex-wrap mb-4\" (click)=\"navigate()\" role=\"menuitem\" i18n-aria-label>\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\n </div>\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\n <div class=\"margin-0 mat-subheading-2\">\n {{ translateLabels(hubs.hubname, 'common') }}\n </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\n </div>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"hubs.hubname != 'Discuss'\">\n <a class=\"flex flex-wrap mb-4\" [routerLink]=\"(hubs.path)\" role=\"menuitem\" i18n-aria-label>\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\n </div>\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\n <div class=\"margin-0 mat-subheading-2\">\n {{ translateLabels(hubs.hubname, 'common') }}\n </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\n </div>\n </a>\n </ng-container>\n</ng-template>\n", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{max-width:1230px;max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{height:auto}.show{display:flex!important;visibility:visible;opacity:1;transition-delay:1s;transition:visibility 0s linear .33s,opacity .33s linear}.hide{display:none!important;visibility:hidden;opacity:0;transition:visibility 0s linear .33s,opacity .33s linear}.base-layout{box-shadow:none!important;border:none!important;padding:0;margin:auto}.fix-ww{margin-left:auto;margin-right:auto;max-width:1202px;display:flex;flex:1}a[target=_blank]{color:#000!important}h4.nav_sub_heading{margin:0!important}.next-b{width:12px;height:16px;transform:matrix(0,1,-1,0,0,0);background:#00a9f4 0% 0% no-repeat padding-box}.icon-margin{margin:0 .5rem 0 .1rem}.m-t-b{margin-top:auto;margin-bottom:auto}.home-icon{margin:auto 20px}.main-back{font-size:32px;margin-bottom:10px;margin-right:12px}.mat-y-icon{color:#9acd32}.mat-y-icon svg path{fill:red}.top-fixed-menu{position:fixed;width:100%;z-index:99}.simple-hubs-link{margin:auto 12px}.center{text-align:center;padding-top:12px}mat-form-field{width:100%}mat-grid-list{margin-top:40px;margin-bottom:20px}.margin-0{margin:0!important}.icon{width:71px;height:64px;border-radius:4px;text-align:center}.icon .mat-icon{padding:18px 16px}.base-header{margin-left:5px}.mat-grid-tile{display:inline;position:absolute}.mat-icon1{padding:16px;color:#347bb6!important}.font-bold-imp{font-weight:700!important}a.disabled{pointer-events:none;cursor:default}.end-line-elipses{-ms-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.OrderByPipe, name: "orderBy" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [
157
- trigger('enterAnimation', [
158
- transition(':enter', [
159
- style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 }),
160
- animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 })),
161
- ]),
162
- transition(':leave', [
163
- style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 }),
164
- animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 })),
165
- ]),
166
- ]),
167
- ] }); }
168
- }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BtnPageBackComponent, decorators: [{
170
- type: Component,
171
- args: [{ selector: 'ws-widget-btn-page-back', animations: [
172
- trigger('enterAnimation', [
173
- transition(':enter', [
174
- style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 }),
175
- animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 })),
176
- ]),
177
- transition(':leave', [
178
- style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 }),
179
- animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 })),
180
- ]),
181
- ]),
182
- ], template: "<div class=\"base-layout\" role=\"navigation\" id=\"back-nav\" aria-label=\"navigation\">\n <div class=\"container-balanced\">\n <div class=\"flex flex-1 flex-column\">\n <div class=\"flex flex-1 flex-column\">\n <div class=\"flex flex-wrap end-line-elipses items-center margin-top-l margin-bottom-l\" role=\"menubar\">\n <!-- disabled for explore btn disabled on contact us page refresh-->\n <a class=\"flex cursor-pointer simple-hubs-link \" href=\"/\" role=\"menuitem\" accesskey=\"H\" i18n-aria-label i18n-aria-title>\n <span class=\"margin-auto margin-0 mat-subheading-2 {{widgetData?.textClass? widgetData?.textClass: 'ws-mat-default-text'}}\">{{ 'btnpageback.home' | translate }}</span>\n </a>\n\n <ng-container *ngIf=\"widgetData.titles && widgetData.titles.length>0\">\n <div class=\"flex\" *ngFor=\"let title of widgetData.titles\">\n <mat-icon class=\"m-auto mr-2\">keyboard_arrow_right</mat-icon>\n <span *ngIf=\"title.title && title.url && title.url === 'none'\" i18n-aria-label i18n-aria-title\n i18n=\"page title: {{title.title}}\" class=\"flex m-auto\">\n <mat-icon class=\"icon-margin m-t-b ws-mat-black60-text\" *ngIf=\"title.icon\">{{ title.icon }}</mat-icon>\n <span class=\"m-t-b mat-body-2 font-bold-imp ws-mat-black60-text\">{{ title.title }}</span>\n </span>\n\n <a class=\"flex m-auto ws-mat-default-text\" i18n-aria-label *ngIf=\"title.url && title.url !== 'none'\"\n [routerLink]=\"title.url\" [queryParams]=\"title.queryParams\" role=\"menuitem\" i18n-aria-label\n [attr.accesskey]=\"title.accessKey\">\n <mat-icon class=\"ws-mat-default-text icon-margin\" *ngIf=\"title.icon\">{{title.icon}}</mat-icon>\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"!title?.disableTranslate\"> {{ translateLabels(title?.title, 'btnpageback') }}</span>\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"title?.disableTranslate\"> {{ title?.title }}</span>\n </a>\n </div>\n \n </ng-container>\n </div>\n <div class=\"flex flex-col\" *ngIf=\"visible\" [@enterAnimation]=\"visible\">\n <div class=\"flex flex-1 margin-xs\">\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.hubs' | translate }}</h4>\n </div>\n <div class=\"flex flex-1\">\n <h3 class=\"mat-error text-center\" *ngIf=\"hubsList.length === 0\" >\n {{ 'btnpageback.noHubs' | translate }}\n </h3>\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\" role=\"menubar\">\n <ng-container *ngFor=\"let hubsObj of hubsList\" [ngTemplateOutlet]=\"userIndividualNew\" [ngTemplateOutletContext]=\"{ hubs: hubsObj }\">\n </ng-container>\n </div>\n </div>\n\n <div class=\"flex flex-1 margin-xs\">\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.doMore' | translate }}</h4>\n </div>\n <div class=\"flex flex-1\">\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/knowledge-resource/all']\" >\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">menu_book</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\">{{ 'btnpageback.knowledgeResources' | translate }}</div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.knowledgeResourcesSubtitle' | translate }}</div>\n </div>\n </a>\n\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/my-dashboard']\" >\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon aria-hidden=\"false\" class=\"mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-label=\"bar_chart\" aria-labelledby=\"bar_chart\"> bar_chart </mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.dashboard' | translate }} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.dashboardSubtitle' | translate }}</div>\n </div>\n </a>\n\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/profile/settings']\" >\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">settings</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.settings' | translate }} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.settingSubtitle' | translate }}</div>\n </div>\n </a>\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/setup']\">\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\"\n aria-hidden=\"true\">thumb_up</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.interests' | translate }} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.interestsSubtitle' | translate }}</div>\n </div>\n </a>\n </div>\n </div>\n\n <div class=\"flex flex-1 margin-xs\">\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.quickLinks' | translate }}</h4>\n </div>\n <div class=\"flex flex-1\">\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\n <ng-container *ngFor=\"let portal of environment.portals | orderBy: 'sr'\">\n <ng-container *ngIf=\"portal.isPublic || isAllowed(portal.id)\">\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [attr.href]=\"portal.uriPath\" target=\"_blank\">\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\"m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">{{ portal.icon || 'info' }}</mat-icon>\n </div>\n <div class=\"width-expand padding-left-xs cursor-pointer\">\n <div class=\"margin-0 mat-subheading-2\"> {{portal.name}} </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{portal.desc}}</div>\n </div>\n </a>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n\n<ng-template #userIndividualNew let-hubs=\"hubs\">\n <ng-container *ngIf=\"hubs.hubname == 'Discuss'\">\n <a class=\"flex flex-wrap mb-4\" (click)=\"navigate()\" role=\"menuitem\" i18n-aria-label>\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\n </div>\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\n <div class=\"margin-0 mat-subheading-2\">\n {{ translateLabels(hubs.hubname, 'common') }}\n </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\n </div>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"hubs.hubname != 'Discuss'\">\n <a class=\"flex flex-wrap mb-4\" [routerLink]=\"(hubs.path)\" role=\"menuitem\" i18n-aria-label>\n <div class=\"icon ws-mat-primary-tags\">\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\n </div>\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\n <div class=\"margin-0 mat-subheading-2\">\n {{ translateLabels(hubs.hubname, 'common') }}\n </div>\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\n </div>\n </a>\n </ng-container>\n</ng-template>\n", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{max-width:1230px;max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{height:auto}.show{display:flex!important;visibility:visible;opacity:1;transition-delay:1s;transition:visibility 0s linear .33s,opacity .33s linear}.hide{display:none!important;visibility:hidden;opacity:0;transition:visibility 0s linear .33s,opacity .33s linear}.base-layout{box-shadow:none!important;border:none!important;padding:0;margin:auto}.fix-ww{margin-left:auto;margin-right:auto;max-width:1202px;display:flex;flex:1}a[target=_blank]{color:#000!important}h4.nav_sub_heading{margin:0!important}.next-b{width:12px;height:16px;transform:matrix(0,1,-1,0,0,0);background:#00a9f4 0% 0% no-repeat padding-box}.icon-margin{margin:0 .5rem 0 .1rem}.m-t-b{margin-top:auto;margin-bottom:auto}.home-icon{margin:auto 20px}.main-back{font-size:32px;margin-bottom:10px;margin-right:12px}.mat-y-icon{color:#9acd32}.mat-y-icon svg path{fill:red}.top-fixed-menu{position:fixed;width:100%;z-index:99}.simple-hubs-link{margin:auto 12px}.center{text-align:center;padding-top:12px}mat-form-field{width:100%}mat-grid-list{margin-top:40px;margin-bottom:20px}.margin-0{margin:0!important}.icon{width:71px;height:64px;border-radius:4px;text-align:center}.icon .mat-icon{padding:18px 16px}.base-header{margin-left:5px}.mat-grid-tile{display:inline;position:absolute}.mat-icon1{padding:16px;color:#347bb6!important}.font-bold-imp{font-weight:700!important}a.disabled{pointer-events:none;cursor:default}.end-line-elipses{-ms-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%}\n"] }]
183
- }], ctorParameters: function () { return [{ type: i1.BtnPageBackService }, { type: i2.Router }, { type: i3.ConfigurationsService }, { type: i4.DiscussUtilsService }, { type: i5.TranslateService }, { type: i3.MultilingualTranslationsService }, { type: undefined, decorators: [{
184
- type: Inject,
185
- args: ['environment']
186
- }] }]; }, propDecorators: { widgetData: [{
187
- type: Input
188
- }], id: [{
189
- type: HostBinding,
190
- args: ['id']
191
- }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLXBhZ2UtYmFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvX2NvbGxlY3Rpb24vYnRuLXBhZ2UtYmFjay9idG4tcGFnZS1iYWNrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9idG4tcGFnZS1iYWNrL2J0bi1wYWdlLWJhY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFBO0FBRXZGLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUsvRSxpQkFBaUI7QUFDakIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFBOzs7Ozs7Ozs7QUF5QnRCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFVM0QsWUFDVSxVQUE4QixFQUMvQixNQUFjLEVBQ2IsU0FBZ0MsRUFDaEMsaUJBQXNDLEVBQ3RDLFNBQTJCLEVBQzNCLGdCQUFpRCxFQUMxQixXQUFnQjtRQUUvQyxLQUFLLEVBQUUsQ0FBQTtRQVJDLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQy9CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQ3RDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7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K0JBQ0UseUJBQXlCLGNBR3ZCO3dCQUNWLE9BQU8sQ0FDTCxnQkFBZ0IsRUFBRTs0QkFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLGtEQUFrRCxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDckYsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsa0RBQWtELEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3hHLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLGtEQUFrRCxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDckYsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsa0RBQWtELEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3hHLENBQUM7eUJBQ0gsQ0FDQTtxQkFDRjs7MEJBbUJFLE1BQU07MkJBQUMsYUFBYTs0Q0FmZCxVQUFVO3NCQUFsQixLQUFLO2dCQUdDLEVBQUU7c0JBRFIsV0FBVzt1QkFBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBOc1dpZGdldFJlc29sdmVyLCBXaWRnZXRCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHN1bmJpcmQtY2IvcmVzb2x2ZXItdjInXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UsIE5zSW5zdGFuY2VDb25maWcgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcblxuaW1wb3J0IHsgQnRuUGFnZUJhY2tTZXJ2aWNlIH0gZnJvbSAnLi9idG4tcGFnZS1iYWNrLnNlcnZpY2UnXG5pbXBvcnQgeyBEaXNjdXNzVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlzY3Vzcy11dGlscy5zZXJ2aWNlJ1xuLy8gdHNsaW50OmRpc2FibGVcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuLy8gdHNsaW50OmVuYWJsZVxuLy8gdHNsaW50OmVuYWJsZVxuXG50eXBlIFRVcmwgPSB1bmRlZmluZWQgfCAnbm9uZScgfCAnYmFjaycgfCBzdHJpbmdcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLXdpZGdldC1idG4tcGFnZS1iYWNrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J0bi1wYWdlLWJhY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idG4tcGFnZS1iYWNrLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFxuICAgICAgJ2VudGVyQW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zaXRpb246ICd2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjIzcywgb3BhY2l0eSAwLjMzcyBsaW5lYXInLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICBhbmltYXRlKCczMDBtcycsIHN0eWxlKHsgdHJhbnNpdGlvbjogJ3Zpc2liaWxpdHkgMHMgbGluZWFyIDAuMjNzLCBvcGFjaXR5IDAuMzNzIGxpbmVhcicsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNpdGlvbjogJ3Zpc2liaWxpdHkgMHMgbGluZWFyIDAuMjNzLCBvcGFjaXR5IDAuMzNzIGxpbmVhcicsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgIGFuaW1hdGUoJzMwMG1zJywgc3R5bGUoeyB0cmFuc2l0aW9uOiAndmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4yM3MsIG9wYWNpdHkgMC4zM3MgbGluZWFyJywgb3BhY2l0eTogMCB9KSksXG4gICAgICBdKSxcbiAgICBdXG4gICAgKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQnRuUGFnZUJhY2tDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBOc1dpZGdldFJlc29sdmVyLklXaWRnZXREYXRhPHsgdXJsOiBUVXJsIH0+IHtcbiAgQElucHV0KCkgd2lkZ2V0RGF0YTogeyB1cmw6IFRVcmwsIHRpdGxlcz86IE5zV2lkZ2V0UmVzb2x2ZXIuSVRpdGxlW10sIHRleHRDbGFzcz86IHN0cmluZyB9ID0geyB1cmw6ICdub25lJywgdGl0bGVzOiBbXSB9XG4gIHByZXNlbnRVcmwgPSAnJ1xuICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgcHVibGljIGlkID0gJ25hdi1iYWNrJ1xuICB2aXNpYmxlID0gZmFsc2VcbiAgZW5hYmxlUGVvcGxlU2VhcmNoID0gdHJ1ZVxuICBsb2dnZWRpblVzZXIgPSAhISh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQpXG4gIGh1YnNMaXN0ITogTnNJbnN0YW5jZUNvbmZpZy5JSHVic1tdXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYnRuQmFja1N2YzogQnRuUGFnZUJhY2tTZXJ2aWNlLFxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlzY3Vzc1V0aWxpdHlTdmM6IERpc2N1c3NVdGlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKClcbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYnNpdGVMYW5ndWFnZScpKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZW4nKVxuICAgICAgY29uc3QgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSFcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5nKVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGVudmlyb25tZW50IGlzIGluamVjdGVkIHZpYSBjb25zdHJ1Y3RvclxuICAgIGNvbnN0IGluc3RhbmNlQ29uZmlnID0gdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWdcbiAgICBpZiAoaW5zdGFuY2VDb25maWcpIHtcbiAgICAgIHRoaXMuaHVic0xpc3QgPSAoaW5zdGFuY2VDb25maWcuaHVicyB8fCBbXSkuZmlsdGVyKGkgPT4gaS5hY3RpdmUpXG4gICAgfVxuICAgIHRoaXMucHJlc2VudFVybCA9IHRoaXMucm91dGVyLnVybFxuICAgIGlmICh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSkge1xuICAgICAgdGhpcy5sb2dnZWRpblVzZXIgPSB0cnVlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VkaW5Vc2VyID0gZmFsc2VcbiAgICB9XG4gIH1cbiAgZ2V0IGlzVXNlckxvZ2dlZ0luKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvZ2dlZGluVXNlclxuICB9XG4gIGdldCBiYWNrVXJsKCk6IHsgZnJhZ21lbnQ/OiBzdHJpbmc7IHJvdXRlVXJsOiBzdHJpbmc7IHF1ZXJ5UGFyYW1zOiBhbnkgfSB7XG5cbiAgICBpZiAodGhpcy5wcmVzZW50VXJsID09PSAnL3BhZ2UvZXhwbG9yZScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB1bmRlZmluZWQsXG4gICAgICAgIHJvdXRlVXJsOiAnL3BhZ2UvaG9tZScsXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLndpZGdldERhdGEudXJsID09PSAnaG9tZScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB1bmRlZmluZWQsXG4gICAgICAgIHJvdXRlVXJsOiAnL3BhZ2UvaG9tZScsXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YS51cmwgPT09ICdkb3VibGVCYWNrJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJhZ21lbnQ6IHRoaXMuYnRuQmFja1N2Yy5nZXRMYXN0VXJsKDIpLmZyYWdtZW50LFxuICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5idG5CYWNrU3ZjLmdldExhc3RVcmwoMikucXVlcnlQYXJhbXMsXG4gICAgICAgIHJvdXRlVXJsOiB0aGlzLmJ0bkJhY2tTdmMuZ2V0TGFzdFVybCgyKS5yb3V0ZSxcbiAgICAgIH1cbiAgICB9IGlmICh0aGlzLndpZGdldERhdGEudXJsID09PSAnYmFjaycpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZyYWdtZW50OiB0aGlzLmJ0bkJhY2tTdmMuZ2V0TGFzdFVybCgpLmZyYWdtZW50LFxuICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5idG5CYWNrU3ZjLmdldExhc3RVcmwoKS5xdWVyeVBhcmFtcyxcbiAgICAgICAgcm91dGVVcmw6IHRoaXMuYnRuQmFja1N2Yy5nZXRMYXN0VXJsKCkucm91dGUsXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLndpZGdldERhdGEudXJsICE9PSAnYmFjaycgJiYgdGhpcy53aWRnZXREYXRhLnVybCAhPT0gJ2RvdWJsZUJhY2snKSB7XG5cbiAgICAgIHRoaXMuYnRuQmFja1N2Yy5jaGVja1VybCh0aGlzLndpZGdldERhdGEudXJsKVxuXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB1bmRlZmluZWQsXG4gICAgICByb3V0ZVVybDogdGhpcy53aWRnZXREYXRhLnVybCA/IHRoaXMud2lkZ2V0RGF0YS51cmwgOiAnL2FwcC9ob21lJyxcbiAgICB9XG4gIH1cblxuICBuYXZpZ2F0ZSgpIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBtZW51T3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgcm91dGU6ICdhbGwtZGlzY3Vzc2lvbnMnLFxuICAgICAgICAgIGxhYmVsOiAnQWxsIGRpc2N1c3Npb25zJyxcbiAgICAgICAgICBlbmFibGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICByb3V0ZTogJ2NhdGVnb3JpZXMnLFxuICAgICAgICAgIGxhYmVsOiAnQ2F0ZWdvcmllcycsXG4gICAgICAgICAgZW5hYmxlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcm91dGU6ICd0YWdzJyxcbiAgICAgICAgICBsYWJlbDogJ1RhZ3MnLFxuICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHJvdXRlOiAnbXktZGlzY3Vzc2lvbicsXG4gICAgICAgICAgbGFiZWw6ICdZb3VyIGRpc2N1c3Npb24nLFxuICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB1c2VyTmFtZTogKHRoaXMuY29uZmlnU3ZjLm5vZGViYlVzZXJQcm9maWxlICYmIHRoaXMuY29uZmlnU3ZjLm5vZGViYlVzZXJQcm9maWxlLnVzZXJuYW1lKSB8fCAnJyxcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgaWQ6IDEsXG4gICAgICB9LFxuICAgICAgY2F0ZWdvcmllczogeyByZXN1bHQ6IFtdIH0sXG4gICAgICByb3V0ZXJTbHVnOiAnL2FwcCcsXG4gICAgICBoZWFkZXJPcHRpb25zOiBmYWxzZSxcbiAgICAgIGJhbm5lck9wdGlvbjogdHJ1ZSxcbiAgICB9XG4gICAgdGhpcy5kaXNjdXNzVXRpbGl0eVN2Yy5zZXREaXNjdXNzaW9uQ29uZmlnKGNvbmZpZylcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaG9tZScsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXBwL2Rpc2N1c3Npb24tZm9ydW0nXSwgeyBxdWVyeVBhcmFtczogeyBwYWdlOiAnaG9tZScgfSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyB9KVxuICB9XG5cbiAgLy8gZ2V0IHRpdGxlVXJsKCk6IHsgZnJhZ21lbnQ/OiBzdHJpbmc7IHJvdXRlVXJsOiBzdHJpbmc7IHF1ZXJ5UGFyYW1zOiBhbnkgfSB7XG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIHF1ZXJ5UGFyYW1zOiB1bmRlZmluZWQsXG4gIC8vICAgICByb3V0ZVVybDogdGhpcy53aWRnZXREYXRhLnVybCA/IHRoaXMud2lkZ2V0RGF0YS51cmwgOiAnL2FwcC9ob21lJyxcbiAgLy8gICB9XG4gIC8vIH1cbiAgdG9nZ2xlVmlzaWJpbGl0eSgpIHtcbiAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlXG4gIH1cblxuICBoYXNSb2xlKHJvbGU6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgbGV0IHJldHVyblZhbHVlID0gZmFsc2VcbiAgICByb2xlLmZvckVhY2godiA9PiB7XG4gICAgICBjb25zdCByb2xlc0xpc3QgPSAodGhpcy5jb25maWdTdmMudXNlclJvbGVzIHx8IG5ldyBTZXQoKSlcbiAgICAgIGlmIChyb2xlc0xpc3QuaGFzKHYudG9Mb3dlckNhc2UoKSkgfHwgcm9sZXNMaXN0Lmhhcyh2LnRvVXBwZXJDYXNlKCkpKSB7XG4gICAgICAgIHJldHVyblZhbHVlID0gdHJ1ZVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHJldHVyblZhbHVlXG4gIH1cblxuICBpc0FsbG93ZWQocG9ydGFsTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgcm9sZXMgPSBfLmdldChfLmZpcnN0KF8uZmlsdGVyKHRoaXMuZW52aXJvbm1lbnQucG9ydGFscywgeyBpZDogcG9ydGFsTmFtZSB9KSksICdyb2xlcycpIHx8IFtdXG4gICAgaWYgKCEocm9sZXMgJiYgcm9sZXMubGVuZ3RoKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmhhc1JvbGUocm9sZXMpXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICB0cmFuc2xhdGVMYWJlbHMobGFiZWw6IHN0cmluZywgdHlwZTogYW55LCBzdWJ0eXBlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndHJhbnNsYXRpb25zLnRyYW5zbGF0ZUxhYmVsKGxhYmVsLCB0eXBlLCBzdWJ0eXBlKVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJiYXNlLWxheW91dFwiIHJvbGU9XCJuYXZpZ2F0aW9uXCIgaWQ9XCJiYWNrLW5hdlwiIGFyaWEtbGFiZWw9XCJuYXZpZ2F0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItYmFsYW5jZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgZmxleC1jb2x1bW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LWNvbHVtblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZW5kLWxpbmUtZWxpcHNlcyBpdGVtcy1jZW50ZXIgbWFyZ2luLXRvcC1sIG1hcmdpbi1ib3R0b20tbFwiIHJvbGU9XCJtZW51YmFyXCI+XG4gICAgICAgICAgPCEtLSBkaXNhYmxlZCBmb3IgZXhwbG9yZSBidG4gZGlzYWJsZWQgb24gY29udGFjdCB1cyBwYWdlIHJlZnJlc2gtLT5cbiAgICAgICAgICA8YSBjbGFzcz1cImZsZXggY3Vyc29yLXBvaW50ZXIgc2ltcGxlLWh1YnMtbGluayBcIiBocmVmPVwiL1wiIHJvbGU9XCJtZW51aXRlbVwiIGFjY2Vzc2tleT1cIkhcIiBpMThuLWFyaWEtbGFiZWwgaTE4bi1hcmlhLXRpdGxlPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXJnaW4tYXV0byAgbWFyZ2luLTAgbWF0LXN1YmhlYWRpbmctMiB7e3dpZGdldERhdGE/LnRleHRDbGFzcz8gd2lkZ2V0RGF0YT8udGV4dENsYXNzOiAnd3MtbWF0LWRlZmF1bHQtdGV4dCd9fVwiPnt7ICdidG5wYWdlYmFjay5ob21lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0RGF0YS50aXRsZXMgJiYgd2lkZ2V0RGF0YS50aXRsZXMubGVuZ3RoPjBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCIgKm5nRm9yPVwibGV0IHRpdGxlIG9mIHdpZGdldERhdGEudGl0bGVzXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm0tYXV0byBtci0yXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRpdGxlLnRpdGxlICYmIHRpdGxlLnVybCAmJiB0aXRsZS51cmwgPT09ICdub25lJ1wiIGkxOG4tYXJpYS1sYWJlbCBpMThuLWFyaWEtdGl0bGVcbiAgICAgICAgICAgICAgICBpMThuPVwicGFnZSB0aXRsZToge3t0aXRsZS50aXRsZX19XCIgY2xhc3M9XCJmbGV4IG0tYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tbWFyZ2luIG0tdC1iIHdzLW1hdC1ibGFjazYwLXRleHRcIiAqbmdJZj1cInRpdGxlLmljb25cIj57eyB0aXRsZS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tdC1iIG1hdC1ib2R5LTIgZm9udC1ib2xkLWltcCB3cy1tYXQtYmxhY2s2MC10ZXh0XCI+e3sgdGl0bGUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImZsZXggbS1hdXRvIHdzLW1hdC1kZWZhdWx0LXRleHRcIiBpMThuLWFyaWEtbGFiZWwgKm5nSWY9XCJ0aXRsZS51cmwgJiYgdGl0bGUudXJsICE9PSAnbm9uZSdcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInRpdGxlLnVybFwiIFtxdWVyeVBhcmFtc109XCJ0aXRsZS5xdWVyeVBhcmFtc1wiIHJvbGU9XCJtZW51aXRlbVwiIGkxOG4tYXJpYS1sYWJlbFxuICAgICAgICAgICAgICAgIFthdHRyLmFjY2Vzc2tleV09XCJ0aXRsZS5hY2Nlc3NLZXlcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ3cy1tYXQtZGVmYXVsdC10ZXh0IGljb24tbWFyZ2luXCIgKm5nSWY9XCJ0aXRsZS5pY29uXCI+e3t0aXRsZS5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS10LWIgbWF0LWJvZHktMiBmb250LWJvbGQtaW1wIHt7dGl0bGU/LnRleHRDbGFzc319XCIgKm5nSWY9XCIhdGl0bGU/LmRpc2FibGVUcmFuc2xhdGVcIj4ge3sgdHJhbnNsYXRlTGFiZWxzKHRpdGxlPy50aXRsZSwgJ2J0bnBhZ2ViYWNrJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLXQtYiBtYXQtYm9keS0yIGZvbnQtYm9sZC1pbXAge3t0aXRsZT8udGV4dENsYXNzfX1cIiAqbmdJZj1cInRpdGxlPy5kaXNhYmxlVHJhbnNsYXRlXCI+IHt7IHRpdGxlPy50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiICpuZ0lmPVwidmlzaWJsZVwiIFtAZW50ZXJBbmltYXRpb25dPVwidmlzaWJsZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBtYXJnaW4teHNcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1hdC1oNCBuYXZfc3ViX2hlYWRpbmdcIj57eyAnYnRucGFnZWJhY2suaHVicycgfCB0cmFuc2xhdGUgfX08L2g0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwibWF0LWVycm9yIHRleHQtY2VudGVyXCIgKm5nSWY9XCJodWJzTGlzdC5sZW5ndGggPT09IDBcIiA+XG4gICAgICAgICAgICAgIHt7ICdidG5wYWdlYmFjay5ub0h1YnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWFyZ2luLXhzIHNtOmdyaWQtY29scy0yIG1kOmdyaWQtY29scy0zIG1kOmdyaWQtY29scy00IGNvbC1nYXAtMlwiIHJvbGU9XCJtZW51YmFyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGh1YnNPYmogb2YgaHVic0xpc3RcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ1c2VySW5kaXZpZHVhbE5ld1wiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGh1YnM6IGh1YnNPYmogfVwiPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIG1hcmdpbi14c1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWF0LWg0IG5hdl9zdWJfaGVhZGluZ1wiPnt7ICdidG5wYWdlYmFjay5kb01vcmUnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIG1hcmdpbi14cyBzbTpncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtMyBtZDpncmlkLWNvbHMtNCBjb2wtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBtYi00XCIgcm9sZT1cIm1lbnVpdGVtXCIgW3JvdXRlckxpbmtdPVwiWycvYXBwL2tub3dsZWRnZS1yZXNvdXJjZS9hbGwnXVwiID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiB3cy1tYXQtcHJpbWFyeS10YWdzXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIgbS1hdXRvIG1hdC1pY29uIG5vdHJhbnNsYXRlIG1hdGVyaWFsLWljb25zIG1hdC1pY29uLW5vLWNvbG9yXCIgcm9sZT1cImltZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPm1lbnVfYm9vazwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZHRoLWV4cGFuZCBwYWRkaW5nLWxlZnQteHMgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tMCBtYXQtc3ViaGVhZGluZy0yXCI+e3sgJ2J0bnBhZ2ViYWNrLmtub3dsZWRnZVJlc291cmNlcycgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtY2FwdGlvbiBjb2hvcnRzLWRlc2Mgd3MtbWF0LWJsYWNrNjAtdGV4dFwiPnt7ICdidG5wYWdlYmFjay5rbm93bGVkZ2VSZXNvdXJjZXNTdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hPlxuXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgbWItNFwiIHJvbGU9XCJtZW51aXRlbVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2FwcC9teS1kYXNoYm9hcmQnXVwiID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiB3cy1tYXQtcHJpbWFyeS10YWdzXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1oaWRkZW49XCJmYWxzZVwiIGNsYXNzPVwibWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3JcIiByb2xlPVwiaW1nXCIgYXJpYS1sYWJlbD1cImJhcl9jaGFydFwiIGFyaWEtbGFiZWxsZWRieT1cImJhcl9jaGFydFwiPiBiYXJfY2hhcnQgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkdGgtZXhwYW5kIHBhZGRpbmctbGVmdC14cyBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0wIG1hdC1zdWJoZWFkaW5nLTJcIj4ge3sgJ2J0bnBhZ2ViYWNrLmRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX0gPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57eyAnYnRucGFnZWJhY2suZGFzaGJvYXJkU3VidGl0bGUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImZsZXggZmxleC13cmFwIG1iLTRcIiByb2xlPVwibWVudWl0ZW1cIiBbcm91dGVyTGlua109XCJbJy9hcHAvcHJvZmlsZS9zZXR0aW5ncyddXCIgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIHdzLW1hdC1wcmltYXJ5LXRhZ3NcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiBtLWF1dG8gbWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3JcIiByb2xlPVwiaW1nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+c2V0dGluZ3M8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWR0aC1leHBhbmQgcGFkZGluZy1sZWZ0LXhzIGN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLTAgbWF0LXN1YmhlYWRpbmctMlwiPiB7eyAnYnRucGFnZWJhY2suc2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19IDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1jYXB0aW9uIGNvaG9ydHMtZGVzYyB3cy1tYXQtYmxhY2s2MC10ZXh0XCI+e3sgJ2J0bnBhZ2ViYWNrLnNldHRpbmdTdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImZsZXggZmxleC13cmFwIG1iLTRcIiByb2xlPVwibWVudWl0ZW1cIiBbcm91dGVyTGlua109XCJbJy9hcHAvc2V0dXAnXVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIHdzLW1hdC1wcmltYXJ5LXRhZ3NcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiBtLWF1dG8gbWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3JcIiByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+dGh1bWJfdXA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWR0aC1leHBhbmQgcGFkZGluZy1sZWZ0LXhzIGN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLTAgbWF0LXN1YmhlYWRpbmctMlwiPiB7eyAnYnRucGFnZWJhY2suaW50ZXJlc3RzJyB8IHRyYW5zbGF0ZSB9fSA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtY2FwdGlvbiBjb2hvcnRzLWRlc2Mgd3MtbWF0LWJsYWNrNjAtdGV4dFwiPnt7ICdidG5wYWdlYmFjay5pbnRlcmVzdHNTdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgbWFyZ2luLXhzXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYXQtaDQgbmF2X3N1Yl9oZWFkaW5nXCI+e3sgJ2J0bnBhZ2ViYWNrLnF1aWNrTGlua3MnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIG1hcmdpbi14cyBzbTpncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtMyBtZDpncmlkLWNvbHMtNCBjb2wtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcG9ydGFsIG9mIGVudmlyb25tZW50LnBvcnRhbHMgfCBvcmRlckJ5OiAnc3InXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBvcnRhbC5pc1B1YmxpYyB8fCBpc0FsbG93ZWQocG9ydGFsLmlkKVwiPlxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBtYi00XCIgcm9sZT1cIm1lbnVpdGVtXCIgW2F0dHIuaHJlZl09XCJwb3J0YWwudXJpUGF0aFwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiB3cy1tYXQtcHJpbWFyeS10YWdzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibS1hdXRvIG1hdC1pY29uIG5vdHJhbnNsYXRlIG1hdGVyaWFsLWljb25zIG1hdC1pY29uLW5vLWNvbG9yXCIgcm9sZT1cImltZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IHBvcnRhbC5pY29uIHx8ICdpbmZvJyB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkdGgtZXhwYW5kIHBhZGRpbmctbGVmdC14cyBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tMCBtYXQtc3ViaGVhZGluZy0yXCI+IHt7cG9ydGFsLm5hbWV9fSA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57e3BvcnRhbC5kZXNjfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuPG5nLXRlbXBsYXRlICN1c2VySW5kaXZpZHVhbE5ldyBsZXQtaHVicz1cImh1YnNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImh1YnMuaHVibmFtZSA9PSAnRGlzY3VzcydcIj5cbiAgICA8YSBjbGFzcz1cImZsZXggZmxleC13cmFwIG1iLTRcIiAoY2xpY2spPVwibmF2aWdhdGUoKVwiIHJvbGU9XCJtZW51aXRlbVwiIGkxOG4tYXJpYS1sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uIHdzLW1hdC1wcmltYXJ5LXRhZ3NcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24xXCI+e3todWJzLmljb259fTwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydjdXJzb3ItcG9pbnRlcic6IGVuYWJsZVBlb3BsZVNlYXJjaH1cIiBjbGFzcz1cIndpZHRoLWV4cGFuZCBwYWRkaW5nLWxlZnQteHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0wIG1hdC1zdWJoZWFkaW5nLTJcIj5cbiAgICAgICAgICB7eyB0cmFuc2xhdGVMYWJlbHMoaHVicy5odWJuYW1lLCAnY29tbW9uJykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtY2FwdGlvbiBjb2hvcnRzLWRlc2Mgd3MtbWF0LWJsYWNrNjAtdGV4dFwiPnt7aHVicy5kZXNjfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImh1YnMuaHVibmFtZSAhPSAnRGlzY3VzcydcIj5cbiAgICA8YSBjbGFzcz1cImZsZXggZmxleC13cmFwIG1iLTRcIiBbcm91dGVyTGlua109XCIoaHVicy5wYXRoKVwiIHJvbGU9XCJtZW51aXRlbVwiIGkxOG4tYXJpYS1sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uIHdzLW1hdC1wcmltYXJ5LXRhZ3NcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24xXCI+e3todWJzLmljb259fTwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydjdXJzb3ItcG9pbnRlcic6IGVuYWJsZVBlb3BsZVNlYXJjaH1cIiBjbGFzcz1cIndpZHRoLWV4cGFuZCBwYWRkaW5nLWxlZnQteHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0wIG1hdC1zdWJoZWFkaW5nLTJcIj5cbiAgICAgICAgICB7eyB0cmFuc2xhdGVMYWJlbHMoaHVicy5odWJuYW1lLCAnY29tbW9uJykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtY2FwdGlvbiBjb2hvcnRzLWRlc2Mgd3MtbWF0LWJsYWNrNjAtdGV4dFwiPnt7aHVicy5kZXNjfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ import { Component, HostBinding, Inject, Input } from '@angular/core';
3
+ import { WidgetBaseComponent } from '@sunbird-cb/resolver-v2';
4
+ // tslint:disable
5
+ import _ from 'lodash';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./btn-page-back.service";
8
+ import * as i2 from "@angular/router";
9
+ import * as i3 from "@sunbird-cb/utils-v2";
10
+ import * as i4 from "../../services/discuss-utils.service";
11
+ import * as i5 from "@ngx-translate/core";
12
+ import * as i6 from "@angular/common";
13
+ import * as i7 from "@angular/material/icon";
14
+ export class BtnPageBackComponent extends WidgetBaseComponent {
15
+ constructor(btnBackSvc, router, configSvc, discussUtilitySvc, translate, langtranslations, environment) {
16
+ super();
17
+ this.btnBackSvc = btnBackSvc;
18
+ this.router = router;
19
+ this.configSvc = configSvc;
20
+ this.discussUtilitySvc = discussUtilitySvc;
21
+ this.translate = translate;
22
+ this.langtranslations = langtranslations;
23
+ this.environment = environment;
24
+ this.widgetData = { url: 'none', titles: [] };
25
+ this.presentUrl = '';
26
+ this.id = 'nav-back';
27
+ this.visible = false;
28
+ this.enablePeopleSearch = true;
29
+ this.loggedinUser = !!(this.configSvc.userProfile && this.configSvc.userProfile.userId);
30
+ if (localStorage.getItem('websiteLanguage')) {
31
+ this.translate.setDefaultLang('en');
32
+ const lang = localStorage.getItem('websiteLanguage');
33
+ this.translate.use(lang);
34
+ }
35
+ }
36
+ ngOnInit() {
37
+ // environment is injected via constructor
38
+ const instanceConfig = this.configSvc.instanceConfig;
39
+ if (instanceConfig) {
40
+ this.hubsList = (instanceConfig.hubs || []).filter(i => i.active);
41
+ }
42
+ this.presentUrl = this.router.url;
43
+ if (this.configSvc.userProfile) {
44
+ this.loggedinUser = true;
45
+ }
46
+ else {
47
+ this.loggedinUser = false;
48
+ }
49
+ }
50
+ get isUserLoggegIn() {
51
+ return this.loggedinUser;
52
+ }
53
+ get backUrl() {
54
+ if (this.presentUrl === '/page/explore') {
55
+ return {
56
+ queryParams: undefined,
57
+ routeUrl: '/page/home',
58
+ };
59
+ }
60
+ if (this.widgetData.url === 'home') {
61
+ return {
62
+ queryParams: undefined,
63
+ routeUrl: '/page/home',
64
+ };
65
+ }
66
+ if (this.widgetData.url === 'doubleBack') {
67
+ return {
68
+ fragment: this.btnBackSvc.getLastUrl(2).fragment,
69
+ queryParams: this.btnBackSvc.getLastUrl(2).queryParams,
70
+ routeUrl: this.btnBackSvc.getLastUrl(2).route,
71
+ };
72
+ }
73
+ if (this.widgetData.url === 'back') {
74
+ return {
75
+ fragment: this.btnBackSvc.getLastUrl().fragment,
76
+ queryParams: this.btnBackSvc.getLastUrl().queryParams,
77
+ routeUrl: this.btnBackSvc.getLastUrl().route,
78
+ };
79
+ }
80
+ if (this.widgetData.url !== 'back' && this.widgetData.url !== 'doubleBack') {
81
+ this.btnBackSvc.checkUrl(this.widgetData.url);
82
+ }
83
+ return {
84
+ queryParams: undefined,
85
+ routeUrl: this.widgetData.url ? this.widgetData.url : '/app/home',
86
+ };
87
+ }
88
+ navigate() {
89
+ const config = {
90
+ menuOptions: [
91
+ {
92
+ route: 'all-discussions',
93
+ label: 'All discussions',
94
+ enable: true,
95
+ },
96
+ {
97
+ route: 'categories',
98
+ label: 'Categories',
99
+ enable: true,
100
+ },
101
+ {
102
+ route: 'tags',
103
+ label: 'Tags',
104
+ enable: true,
105
+ },
106
+ {
107
+ route: 'my-discussion',
108
+ label: 'Your discussion',
109
+ enable: true,
110
+ },
111
+ ],
112
+ userName: (this.configSvc.nodebbUserProfile && this.configSvc.nodebbUserProfile.username) || '',
113
+ context: {
114
+ id: 1,
115
+ },
116
+ categories: { result: [] },
117
+ routerSlug: '/app',
118
+ headerOptions: false,
119
+ bannerOption: true,
120
+ };
121
+ this.discussUtilitySvc.setDiscussionConfig(config);
122
+ localStorage.setItem('home', JSON.stringify(config));
123
+ this.router.navigate(['/app/discussion-forum'], { queryParams: { page: 'home' }, queryParamsHandling: 'merge' });
124
+ }
125
+ // get titleUrl(): { fragment?: string; routeUrl: string; queryParams: any } {
126
+ // return {
127
+ // queryParams: undefined,
128
+ // routeUrl: this.widgetData.url ? this.widgetData.url : '/app/home',
129
+ // }
130
+ // }
131
+ toggleVisibility() {
132
+ this.visible = !this.visible;
133
+ }
134
+ hasRole(role) {
135
+ let returnValue = false;
136
+ role.forEach(v => {
137
+ const rolesList = (this.configSvc.userRoles || new Set());
138
+ if (rolesList.has(v.toLowerCase()) || rolesList.has(v.toUpperCase())) {
139
+ returnValue = true;
140
+ }
141
+ });
142
+ return returnValue;
143
+ }
144
+ isAllowed(portalName) {
145
+ const roles = _.get(_.first(_.filter(this.environment.portals, { id: portalName })), 'roles') || [];
146
+ if (!(roles && roles.length)) {
147
+ return true;
148
+ }
149
+ const value = this.hasRole(roles);
150
+ return value;
151
+ }
152
+ translateLabels(label, type, subtype) {
153
+ return this.langtranslations.translateLabel(label, type, subtype);
154
+ }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BtnPageBackComponent, deps: [{ token: i1.BtnPageBackService }, { token: i2.Router }, { token: i3.ConfigurationsService }, { token: i4.DiscussUtilsService }, { token: i5.TranslateService }, { token: i3.MultilingualTranslationsService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component }); }
156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BtnPageBackComponent, selector: "ws-widget-btn-page-back", inputs: { widgetData: "widgetData" }, host: { properties: { "id": "this.id" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"base-layout\" role=\"navigation\" id=\"back-nav\" aria-label=\"navigation\">\r\n <div class=\"container-balanced\">\r\n <div class=\"flex flex-1 flex-column\">\r\n <div class=\"flex flex-1 flex-column\">\r\n <div class=\"flex flex-wrap end-line-elipses items-center margin-top-l margin-bottom-l\" role=\"menubar\">\r\n <!-- disabled for explore btn disabled on contact us page refresh-->\r\n <a class=\"flex cursor-pointer simple-hubs-link \" href=\"/\" role=\"menuitem\" accesskey=\"H\" i18n-aria-label i18n-aria-title>\r\n <span class=\"margin-auto margin-0 mat-subheading-2 {{widgetData?.textClass? widgetData?.textClass: 'ws-mat-default-text'}}\">{{ 'btnpageback.home' | translate }}</span>\r\n </a>\r\n\r\n <ng-container *ngIf=\"widgetData.titles && widgetData.titles.length>0\">\r\n <div class=\"flex\" *ngFor=\"let title of widgetData.titles\">\r\n <mat-icon class=\"m-auto mr-2\">keyboard_arrow_right</mat-icon>\r\n <span *ngIf=\"title.title && title.url && title.url === 'none'\" i18n-aria-label i18n-aria-title\r\n i18n=\"page title: {{title.title}}\" class=\"flex m-auto\">\r\n <mat-icon class=\"icon-margin m-t-b ws-mat-black60-text\" *ngIf=\"title.icon\">{{ title.icon }}</mat-icon>\r\n <span class=\"m-t-b mat-body-2 font-bold-imp ws-mat-black60-text\">{{ title.title }}</span>\r\n </span>\r\n\r\n <a class=\"flex m-auto ws-mat-default-text\" i18n-aria-label *ngIf=\"title.url && title.url !== 'none'\"\r\n [routerLink]=\"title.url\" [queryParams]=\"title.queryParams\" role=\"menuitem\" i18n-aria-label\r\n [attr.accesskey]=\"title.accessKey\">\r\n <mat-icon class=\"ws-mat-default-text icon-margin\" *ngIf=\"title.icon\">{{title.icon}}</mat-icon>\r\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"!title?.disableTranslate\"> {{ translateLabels(title?.title, 'btnpageback') }}</span>\r\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"title?.disableTranslate\"> {{ title?.title }}</span>\r\n </a>\r\n </div>\r\n \r\n </ng-container>\r\n </div>\r\n <div class=\"flex flex-col\" *ngIf=\"visible\" [@enterAnimation]=\"visible\">\r\n <div class=\"flex flex-1 margin-xs\">\r\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.hubs' | translate }}</h4>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <h3 class=\"mat-error text-center\" *ngIf=\"hubsList.length === 0\" >\r\n {{ 'btnpageback.noHubs' | translate }}\r\n </h3>\r\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\" role=\"menubar\">\r\n <ng-container *ngFor=\"let hubsObj of hubsList\" [ngTemplateOutlet]=\"userIndividualNew\" [ngTemplateOutletContext]=\"{ hubs: hubsObj }\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-1 margin-xs\">\r\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.doMore' | translate }}</h4>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/knowledge-resource/all']\" >\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">menu_book</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\">{{ 'btnpageback.knowledgeResources' | translate }}</div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.knowledgeResourcesSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/my-dashboard']\" >\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon aria-hidden=\"false\" class=\"mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-label=\"bar_chart\" aria-labelledby=\"bar_chart\"> bar_chart </mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.dashboard' | translate }} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.dashboardSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/profile/settings']\" >\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">settings</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.settings' | translate }} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.settingSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/setup']\">\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\"\r\n aria-hidden=\"true\">thumb_up</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.interests' | translate }} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.interestsSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-1 margin-xs\">\r\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.quickLinks' | translate }}</h4>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\r\n <ng-container *ngFor=\"let portal of environment.portals | orderBy: 'sr'\">\r\n <ng-container *ngIf=\"portal.isPublic || isAllowed(portal.id)\">\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [attr.href]=\"portal.uriPath\" target=\"_blank\">\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\"m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">{{ portal.icon || 'info' }}</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{portal.name}} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{portal.desc}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #userIndividualNew let-hubs=\"hubs\">\r\n <ng-container *ngIf=\"hubs.hubname == 'Discuss'\">\r\n <a class=\"flex flex-wrap mb-4\" (click)=\"navigate()\" role=\"menuitem\" i18n-aria-label>\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\r\n </div>\r\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\r\n <div class=\"margin-0 mat-subheading-2\">\r\n {{ translateLabels(hubs.hubname, 'common') }}\r\n </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hubs.hubname != 'Discuss'\">\r\n <a class=\"flex flex-wrap mb-4\" [routerLink]=\"(hubs.path)\" role=\"menuitem\" i18n-aria-label>\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\r\n </div>\r\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\r\n <div class=\"margin-0 mat-subheading-2\">\r\n {{ translateLabels(hubs.hubname, 'common') }}\r\n </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{max-width:1230px;max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{height:auto}.show{display:flex!important;visibility:visible;opacity:1;transition-delay:1s;transition:visibility 0s linear .33s,opacity .33s linear}.hide{display:none!important;visibility:hidden;opacity:0;transition:visibility 0s linear .33s,opacity .33s linear}.base-layout{box-shadow:none!important;border:none!important;padding:0;margin:auto}.fix-ww{margin-left:auto;margin-right:auto;max-width:1202px;display:flex;flex:1}a[target=_blank]{color:#000!important}h4.nav_sub_heading{margin:0!important}.next-b{width:12px;height:16px;transform:matrix(0,1,-1,0,0,0);background:#00a9f4 0% 0% no-repeat padding-box}.icon-margin{margin:0 .5rem 0 .1rem}.m-t-b{margin-top:auto;margin-bottom:auto}.home-icon{margin:auto 20px}.main-back{font-size:32px;margin-bottom:10px;margin-right:12px}.mat-y-icon{color:#9acd32}.mat-y-icon svg path{fill:red}.top-fixed-menu{position:fixed;width:100%;z-index:99}.simple-hubs-link{margin:auto 12px}.center{text-align:center;padding-top:12px}mat-form-field{width:100%}mat-grid-list{margin-top:40px;margin-bottom:20px}.margin-0{margin:0!important}.icon{width:71px;height:64px;border-radius:4px;text-align:center}.icon .mat-icon{padding:18px 16px}.base-header{margin-left:5px}.mat-grid-tile{display:inline;position:absolute}.mat-icon1{padding:16px;color:#347bb6!important}.font-bold-imp{font-weight:700!important}a.disabled{pointer-events:none;cursor:default}.end-line-elipses{-ms-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.OrderByPipe, name: "orderBy" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [
157
+ trigger('enterAnimation', [
158
+ transition(':enter', [
159
+ style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 }),
160
+ animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 })),
161
+ ]),
162
+ transition(':leave', [
163
+ style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 }),
164
+ animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 })),
165
+ ]),
166
+ ]),
167
+ ] }); }
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BtnPageBackComponent, decorators: [{
170
+ type: Component,
171
+ args: [{ selector: 'ws-widget-btn-page-back', animations: [
172
+ trigger('enterAnimation', [
173
+ transition(':enter', [
174
+ style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 }),
175
+ animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 })),
176
+ ]),
177
+ transition(':leave', [
178
+ style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 1 }),
179
+ animate('300ms', style({ transition: 'visibility 0s linear 0.23s, opacity 0.33s linear', opacity: 0 })),
180
+ ]),
181
+ ]),
182
+ ], template: "<div class=\"base-layout\" role=\"navigation\" id=\"back-nav\" aria-label=\"navigation\">\r\n <div class=\"container-balanced\">\r\n <div class=\"flex flex-1 flex-column\">\r\n <div class=\"flex flex-1 flex-column\">\r\n <div class=\"flex flex-wrap end-line-elipses items-center margin-top-l margin-bottom-l\" role=\"menubar\">\r\n <!-- disabled for explore btn disabled on contact us page refresh-->\r\n <a class=\"flex cursor-pointer simple-hubs-link \" href=\"/\" role=\"menuitem\" accesskey=\"H\" i18n-aria-label i18n-aria-title>\r\n <span class=\"margin-auto margin-0 mat-subheading-2 {{widgetData?.textClass? widgetData?.textClass: 'ws-mat-default-text'}}\">{{ 'btnpageback.home' | translate }}</span>\r\n </a>\r\n\r\n <ng-container *ngIf=\"widgetData.titles && widgetData.titles.length>0\">\r\n <div class=\"flex\" *ngFor=\"let title of widgetData.titles\">\r\n <mat-icon class=\"m-auto mr-2\">keyboard_arrow_right</mat-icon>\r\n <span *ngIf=\"title.title && title.url && title.url === 'none'\" i18n-aria-label i18n-aria-title\r\n i18n=\"page title: {{title.title}}\" class=\"flex m-auto\">\r\n <mat-icon class=\"icon-margin m-t-b ws-mat-black60-text\" *ngIf=\"title.icon\">{{ title.icon }}</mat-icon>\r\n <span class=\"m-t-b mat-body-2 font-bold-imp ws-mat-black60-text\">{{ title.title }}</span>\r\n </span>\r\n\r\n <a class=\"flex m-auto ws-mat-default-text\" i18n-aria-label *ngIf=\"title.url && title.url !== 'none'\"\r\n [routerLink]=\"title.url\" [queryParams]=\"title.queryParams\" role=\"menuitem\" i18n-aria-label\r\n [attr.accesskey]=\"title.accessKey\">\r\n <mat-icon class=\"ws-mat-default-text icon-margin\" *ngIf=\"title.icon\">{{title.icon}}</mat-icon>\r\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"!title?.disableTranslate\"> {{ translateLabels(title?.title, 'btnpageback') }}</span>\r\n <span class=\"m-t-b mat-body-2 font-bold-imp {{title?.textClass}}\" *ngIf=\"title?.disableTranslate\"> {{ title?.title }}</span>\r\n </a>\r\n </div>\r\n \r\n </ng-container>\r\n </div>\r\n <div class=\"flex flex-col\" *ngIf=\"visible\" [@enterAnimation]=\"visible\">\r\n <div class=\"flex flex-1 margin-xs\">\r\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.hubs' | translate }}</h4>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <h3 class=\"mat-error text-center\" *ngIf=\"hubsList.length === 0\" >\r\n {{ 'btnpageback.noHubs' | translate }}\r\n </h3>\r\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\" role=\"menubar\">\r\n <ng-container *ngFor=\"let hubsObj of hubsList\" [ngTemplateOutlet]=\"userIndividualNew\" [ngTemplateOutletContext]=\"{ hubs: hubsObj }\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-1 margin-xs\">\r\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.doMore' | translate }}</h4>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/knowledge-resource/all']\" >\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">menu_book</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\">{{ 'btnpageback.knowledgeResources' | translate }}</div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.knowledgeResourcesSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/my-dashboard']\" >\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon aria-hidden=\"false\" class=\"mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-label=\"bar_chart\" aria-labelledby=\"bar_chart\"> bar_chart </mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.dashboard' | translate }} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.dashboardSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/profile/settings']\" >\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">settings</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.settings' | translate }} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.settingSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [routerLink]=\"['/app/setup']\">\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\" m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\"\r\n aria-hidden=\"true\">thumb_up</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{ 'btnpageback.interests' | translate }} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{ 'btnpageback.interestsSubtitle' | translate }}</div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-1 margin-xs\">\r\n <h4 class=\"mat-h4 nav_sub_heading\">{{ 'btnpageback.quickLinks' | translate }}</h4>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <div class=\"grid grid-cols-1 margin-xs sm:grid-cols-2 md:grid-cols-3 md:grid-cols-4 col-gap-2\">\r\n <ng-container *ngFor=\"let portal of environment.portals | orderBy: 'sr'\">\r\n <ng-container *ngIf=\"portal.isPublic || isAllowed(portal.id)\">\r\n <a class=\"flex flex-wrap mb-4\" role=\"menuitem\" [attr.href]=\"portal.uriPath\" target=\"_blank\">\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\"m-auto mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">{{ portal.icon || 'info' }}</mat-icon>\r\n </div>\r\n <div class=\"width-expand padding-left-xs cursor-pointer\">\r\n <div class=\"margin-0 mat-subheading-2\"> {{portal.name}} </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{portal.desc}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #userIndividualNew let-hubs=\"hubs\">\r\n <ng-container *ngIf=\"hubs.hubname == 'Discuss'\">\r\n <a class=\"flex flex-wrap mb-4\" (click)=\"navigate()\" role=\"menuitem\" i18n-aria-label>\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\r\n </div>\r\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\r\n <div class=\"margin-0 mat-subheading-2\">\r\n {{ translateLabels(hubs.hubname, 'common') }}\r\n </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hubs.hubname != 'Discuss'\">\r\n <a class=\"flex flex-wrap mb-4\" [routerLink]=\"(hubs.path)\" role=\"menuitem\" i18n-aria-label>\r\n <div class=\"icon ws-mat-primary-tags\">\r\n <mat-icon class=\"mat-icon1\">{{hubs.icon}}</mat-icon>\r\n </div>\r\n <div [ngClass]=\"{'cursor-pointer': enablePeopleSearch}\" class=\"width-expand padding-left-xs\">\r\n <div class=\"margin-0 mat-subheading-2\">\r\n {{ translateLabels(hubs.hubname, 'common') }}\r\n </div>\r\n <div class=\"mat-caption cohorts-desc ws-mat-black60-text\">{{hubs.desc}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{max-width:1230px;max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container-balanced{height:auto}.show{display:flex!important;visibility:visible;opacity:1;transition-delay:1s;transition:visibility 0s linear .33s,opacity .33s linear}.hide{display:none!important;visibility:hidden;opacity:0;transition:visibility 0s linear .33s,opacity .33s linear}.base-layout{box-shadow:none!important;border:none!important;padding:0;margin:auto}.fix-ww{margin-left:auto;margin-right:auto;max-width:1202px;display:flex;flex:1}a[target=_blank]{color:#000!important}h4.nav_sub_heading{margin:0!important}.next-b{width:12px;height:16px;transform:matrix(0,1,-1,0,0,0);background:#00a9f4 0% 0% no-repeat padding-box}.icon-margin{margin:0 .5rem 0 .1rem}.m-t-b{margin-top:auto;margin-bottom:auto}.home-icon{margin:auto 20px}.main-back{font-size:32px;margin-bottom:10px;margin-right:12px}.mat-y-icon{color:#9acd32}.mat-y-icon svg path{fill:red}.top-fixed-menu{position:fixed;width:100%;z-index:99}.simple-hubs-link{margin:auto 12px}.center{text-align:center;padding-top:12px}mat-form-field{width:100%}mat-grid-list{margin-top:40px;margin-bottom:20px}.margin-0{margin:0!important}.icon{width:71px;height:64px;border-radius:4px;text-align:center}.icon .mat-icon{padding:18px 16px}.base-header{margin-left:5px}.mat-grid-tile{display:inline;position:absolute}.mat-icon1{padding:16px;color:#347bb6!important}.font-bold-imp{font-weight:700!important}a.disabled{pointer-events:none;cursor:default}.end-line-elipses{-ms-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%}\n"] }]
183
+ }], ctorParameters: function () { return [{ type: i1.BtnPageBackService }, { type: i2.Router }, { type: i3.ConfigurationsService }, { type: i4.DiscussUtilsService }, { type: i5.TranslateService }, { type: i3.MultilingualTranslationsService }, { type: undefined, decorators: [{
184
+ type: Inject,
185
+ args: ['environment']
186
+ }] }]; }, propDecorators: { widgetData: [{
187
+ type: Input
188
+ }], id: [{
189
+ type: HostBinding,
190
+ args: ['id']
191
+ }] } });
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLXBhZ2UtYmFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvX2NvbGxlY3Rpb24vYnRuLXBhZ2UtYmFjay9idG4tcGFnZS1iYWNrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9idG4tcGFnZS1iYWNrL2J0bi1wYWdlLWJhY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFBO0FBRXZGLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUsvRSxpQkFBaUI7QUFDakIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFBOzs7Ozs7Ozs7QUF5QnRCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFVM0QsWUFDVSxVQUE4QixFQUMvQixNQUFjLEVBQ2IsU0FBZ0MsRUFDaEMsaUJBQXNDLEVBQ3RDLFNBQTJCLEVBQzNCLGdCQUFpRCxFQUMxQixXQUFnQjtRQUUvQyxLQUFLLEVBQUUsQ0FBQTtRQVJDLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQy9CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQ3RDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7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K0JBQ0UseUJBQXlCLGNBR3ZCO3dCQUNWLE9BQU8sQ0FDTCxnQkFBZ0IsRUFBRTs0QkFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLGtEQUFrRCxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDckYsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsa0RBQWtELEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3hHLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLGtEQUFrRCxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDckYsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsa0RBQWtELEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3hHLENBQUM7eUJBQ0gsQ0FDQTtxQkFDRjs7MEJBbUJFLE1BQU07MkJBQUMsYUFBYTs0Q0FmZCxVQUFVO3NCQUFsQixLQUFLO2dCQUdDLEVBQUU7c0JBRFIsV0FBVzt1QkFBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xyXG5pbXBvcnQgeyBOc1dpZGdldFJlc29sdmVyLCBXaWRnZXRCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHN1bmJpcmQtY2IvcmVzb2x2ZXItdjInXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSwgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSwgTnNJbnN0YW5jZUNvbmZpZyB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJ1xyXG5cclxuaW1wb3J0IHsgQnRuUGFnZUJhY2tTZXJ2aWNlIH0gZnJvbSAnLi9idG4tcGFnZS1iYWNrLnNlcnZpY2UnXHJcbmltcG9ydCB7IERpc2N1c3NVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaXNjdXNzLXV0aWxzLnNlcnZpY2UnXHJcbi8vIHRzbGludDpkaXNhYmxlXHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCdcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXHJcbi8vIHRzbGludDplbmFibGVcclxuLy8gdHNsaW50OmVuYWJsZVxyXG5cclxudHlwZSBUVXJsID0gdW5kZWZpbmVkIHwgJ25vbmUnIHwgJ2JhY2snIHwgc3RyaW5nXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd3Mtd2lkZ2V0LWJ0bi1wYWdlLWJhY2snLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idG4tcGFnZS1iYWNrLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9idG4tcGFnZS1iYWNrLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcihcclxuICAgICAgJ2VudGVyQW5pbWF0aW9uJywgW1xyXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgc3R5bGUoeyB0cmFuc2l0aW9uOiAndmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4yM3MsIG9wYWNpdHkgMC4zM3MgbGluZWFyJywgb3BhY2l0eTogMCB9KSxcclxuICAgICAgICBhbmltYXRlKCczMDBtcycsIHN0eWxlKHsgdHJhbnNpdGlvbjogJ3Zpc2liaWxpdHkgMHMgbGluZWFyIDAuMjNzLCBvcGFjaXR5IDAuMzNzIGxpbmVhcicsIG9wYWNpdHk6IDEgfSkpLFxyXG4gICAgICBdKSxcclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICAgIHN0eWxlKHsgdHJhbnNpdGlvbjogJ3Zpc2liaWxpdHkgMHMgbGluZWFyIDAuMjNzLCBvcGFjaXR5IDAuMzNzIGxpbmVhcicsIG9wYWNpdHk6IDEgfSksXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMnLCBzdHlsZSh7IHRyYW5zaXRpb246ICd2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjIzcywgb3BhY2l0eSAwLjMzcyBsaW5lYXInLCBvcGFjaXR5OiAwIH0pKSxcclxuICAgICAgXSksXHJcbiAgICBdXHJcbiAgICApLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdG5QYWdlQmFja0NvbXBvbmVudCBleHRlbmRzIFdpZGdldEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgTnNXaWRnZXRSZXNvbHZlci5JV2lkZ2V0RGF0YTx7IHVybDogVFVybCB9PiB7XHJcbiAgQElucHV0KCkgd2lkZ2V0RGF0YTogeyB1cmw6IFRVcmwsIHRpdGxlcz86IE5zV2lkZ2V0UmVzb2x2ZXIuSVRpdGxlW10sIHRleHRDbGFzcz86IHN0cmluZyB9ID0geyB1cmw6ICdub25lJywgdGl0bGVzOiBbXSB9XHJcbiAgcHJlc2VudFVybCA9ICcnXHJcbiAgQEhvc3RCaW5kaW5nKCdpZCcpXHJcbiAgcHVibGljIGlkID0gJ25hdi1iYWNrJ1xyXG4gIHZpc2libGUgPSBmYWxzZVxyXG4gIGVuYWJsZVBlb3BsZVNlYXJjaCA9IHRydWVcclxuICBsb2dnZWRpblVzZXIgPSAhISh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQpXHJcbiAgaHVic0xpc3QhOiBOc0luc3RhbmNlQ29uZmlnLklIdWJzW11cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYnRuQmFja1N2YzogQnRuUGFnZUJhY2tTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlzY3Vzc1V0aWxpdHlTdmM6IERpc2N1c3NVdGlsc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSxcclxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpXHJcbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYnNpdGVMYW5ndWFnZScpKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdlbicpXHJcbiAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXHJcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5nKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBlbnZpcm9ubWVudCBpcyBpbmplY3RlZCB2aWEgY29uc3RydWN0b3JcclxuICAgIGNvbnN0IGluc3RhbmNlQ29uZmlnID0gdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWdcclxuICAgIGlmIChpbnN0YW5jZUNvbmZpZykge1xyXG4gICAgICB0aGlzLmh1YnNMaXN0ID0gKGluc3RhbmNlQ29uZmlnLmh1YnMgfHwgW10pLmZpbHRlcihpID0+IGkuYWN0aXZlKVxyXG4gICAgfVxyXG4gICAgdGhpcy5wcmVzZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsXHJcbiAgICBpZiAodGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUpIHtcclxuICAgICAgdGhpcy5sb2dnZWRpblVzZXIgPSB0cnVlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvZ2dlZGluVXNlciA9IGZhbHNlXHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBpc1VzZXJMb2dnZWdJbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmxvZ2dlZGluVXNlclxyXG4gIH1cclxuICBnZXQgYmFja1VybCgpOiB7IGZyYWdtZW50Pzogc3RyaW5nOyByb3V0ZVVybDogc3RyaW5nOyBxdWVyeVBhcmFtczogYW55IH0ge1xyXG5cclxuICAgIGlmICh0aGlzLnByZXNlbnRVcmwgPT09ICcvcGFnZS9leHBsb3JlJykge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcm91dGVVcmw6ICcvcGFnZS9ob21lJyxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YS51cmwgPT09ICdob21lJykge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcm91dGVVcmw6ICcvcGFnZS9ob21lJyxcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLndpZGdldERhdGEudXJsID09PSAnZG91YmxlQmFjaycpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmcmFnbWVudDogdGhpcy5idG5CYWNrU3ZjLmdldExhc3RVcmwoMikuZnJhZ21lbnQsXHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IHRoaXMuYnRuQmFja1N2Yy5nZXRMYXN0VXJsKDIpLnF1ZXJ5UGFyYW1zLFxyXG4gICAgICAgIHJvdXRlVXJsOiB0aGlzLmJ0bkJhY2tTdmMuZ2V0TGFzdFVybCgyKS5yb3V0ZSxcclxuICAgICAgfVxyXG4gICAgfSBpZiAodGhpcy53aWRnZXREYXRhLnVybCA9PT0gJ2JhY2snKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZnJhZ21lbnQ6IHRoaXMuYnRuQmFja1N2Yy5nZXRMYXN0VXJsKCkuZnJhZ21lbnQsXHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IHRoaXMuYnRuQmFja1N2Yy5nZXRMYXN0VXJsKCkucXVlcnlQYXJhbXMsXHJcbiAgICAgICAgcm91dGVVcmw6IHRoaXMuYnRuQmFja1N2Yy5nZXRMYXN0VXJsKCkucm91dGUsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLndpZGdldERhdGEudXJsICE9PSAnYmFjaycgJiYgdGhpcy53aWRnZXREYXRhLnVybCAhPT0gJ2RvdWJsZUJhY2snKSB7XHJcblxyXG4gICAgICB0aGlzLmJ0bkJhY2tTdmMuY2hlY2tVcmwodGhpcy53aWRnZXREYXRhLnVybClcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHVuZGVmaW5lZCxcclxuICAgICAgcm91dGVVcmw6IHRoaXMud2lkZ2V0RGF0YS51cmwgPyB0aGlzLndpZGdldERhdGEudXJsIDogJy9hcHAvaG9tZScsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZSgpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHtcclxuICAgICAgbWVudU9wdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3V0ZTogJ2FsbC1kaXNjdXNzaW9ucycsXHJcbiAgICAgICAgICBsYWJlbDogJ0FsbCBkaXNjdXNzaW9ucycsXHJcbiAgICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3V0ZTogJ2NhdGVnb3JpZXMnLFxyXG4gICAgICAgICAgbGFiZWw6ICdDYXRlZ29yaWVzJyxcclxuICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHJvdXRlOiAndGFncycsXHJcbiAgICAgICAgICBsYWJlbDogJ1RhZ3MnLFxyXG4gICAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcm91dGU6ICdteS1kaXNjdXNzaW9uJyxcclxuICAgICAgICAgIGxhYmVsOiAnWW91ciBkaXNjdXNzaW9uJyxcclxuICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgICB1c2VyTmFtZTogKHRoaXMuY29uZmlnU3ZjLm5vZGViYlVzZXJQcm9maWxlICYmIHRoaXMuY29uZmlnU3ZjLm5vZGViYlVzZXJQcm9maWxlLnVzZXJuYW1lKSB8fCAnJyxcclxuICAgICAgY29udGV4dDoge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICB9LFxyXG4gICAgICBjYXRlZ29yaWVzOiB7IHJlc3VsdDogW10gfSxcclxuICAgICAgcm91dGVyU2x1ZzogJy9hcHAnLFxyXG4gICAgICBoZWFkZXJPcHRpb25zOiBmYWxzZSxcclxuICAgICAgYmFubmVyT3B0aW9uOiB0cnVlLFxyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNjdXNzVXRpbGl0eVN2Yy5zZXREaXNjdXNzaW9uQ29uZmlnKGNvbmZpZylcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdob21lJywgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSlcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2FwcC9kaXNjdXNzaW9uLWZvcnVtJ10sIHsgcXVlcnlQYXJhbXM6IHsgcGFnZTogJ2hvbWUnIH0sIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScgfSlcclxuICB9XHJcblxyXG4gIC8vIGdldCB0aXRsZVVybCgpOiB7IGZyYWdtZW50Pzogc3RyaW5nOyByb3V0ZVVybDogc3RyaW5nOyBxdWVyeVBhcmFtczogYW55IH0ge1xyXG4gIC8vICAgcmV0dXJuIHtcclxuICAvLyAgICAgcXVlcnlQYXJhbXM6IHVuZGVmaW5lZCxcclxuICAvLyAgICAgcm91dGVVcmw6IHRoaXMud2lkZ2V0RGF0YS51cmwgPyB0aGlzLndpZGdldERhdGEudXJsIDogJy9hcHAvaG9tZScsXHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG4gIHRvZ2dsZVZpc2liaWxpdHkoKSB7XHJcbiAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlXHJcbiAgfVxyXG5cclxuICBoYXNSb2xlKHJvbGU6IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmV0dXJuVmFsdWUgPSBmYWxzZVxyXG4gICAgcm9sZS5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICBjb25zdCByb2xlc0xpc3QgPSAodGhpcy5jb25maWdTdmMudXNlclJvbGVzIHx8IG5ldyBTZXQoKSlcclxuICAgICAgaWYgKHJvbGVzTGlzdC5oYXModi50b0xvd2VyQ2FzZSgpKSB8fCByb2xlc0xpc3QuaGFzKHYudG9VcHBlckNhc2UoKSkpIHtcclxuICAgICAgICByZXR1cm5WYWx1ZSA9IHRydWVcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiByZXR1cm5WYWx1ZVxyXG4gIH1cclxuXHJcbiAgaXNBbGxvd2VkKHBvcnRhbE5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgcm9sZXMgPSBfLmdldChfLmZpcnN0KF8uZmlsdGVyKHRoaXMuZW52aXJvbm1lbnQucG9ydGFscywgeyBpZDogcG9ydGFsTmFtZSB9KSksICdyb2xlcycpIHx8IFtdXHJcbiAgICBpZiAoIShyb2xlcyAmJiByb2xlcy5sZW5ndGgpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaGFzUm9sZShyb2xlcylcclxuICAgIHJldHVybiB2YWx1ZVxyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlTGFiZWxzKGxhYmVsOiBzdHJpbmcsIHR5cGU6IGFueSwgc3VidHlwZTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndHJhbnNsYXRpb25zLnRyYW5zbGF0ZUxhYmVsKGxhYmVsLCB0eXBlLCBzdWJ0eXBlKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJhc2UtbGF5b3V0XCIgcm9sZT1cIm5hdmlnYXRpb25cIiBpZD1cImJhY2stbmF2XCIgYXJpYS1sYWJlbD1cIm5hdmlnYXRpb25cIj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJhbGFuY2VkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgZmxleC1jb2x1bW5cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGVuZC1saW5lLWVsaXBzZXMgaXRlbXMtY2VudGVyIG1hcmdpbi10b3AtbCBtYXJnaW4tYm90dG9tLWxcIiByb2xlPVwibWVudWJhclwiPlxyXG4gICAgICAgICAgPCEtLSBkaXNhYmxlZCBmb3IgZXhwbG9yZSBidG4gZGlzYWJsZWQgb24gY29udGFjdCB1cyBwYWdlIHJlZnJlc2gtLT5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiZmxleCBjdXJzb3ItcG9pbnRlciBzaW1wbGUtaHVicy1saW5rIFwiIGhyZWY9XCIvXCIgcm9sZT1cIm1lbnVpdGVtXCIgYWNjZXNza2V5PVwiSFwiIGkxOG4tYXJpYS1sYWJlbCBpMThuLWFyaWEtdGl0bGU+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFyZ2luLWF1dG8gIG1hcmdpbi0wIG1hdC1zdWJoZWFkaW5nLTIge3t3aWRnZXREYXRhPy50ZXh0Q2xhc3M/IHdpZGdldERhdGE/LnRleHRDbGFzczogJ3dzLW1hdC1kZWZhdWx0LXRleHQnfX1cIj57eyAnYnRucGFnZWJhY2suaG9tZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldERhdGEudGl0bGVzICYmIHdpZGdldERhdGEudGl0bGVzLmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCIgKm5nRm9yPVwibGV0IHRpdGxlIG9mIHdpZGdldERhdGEudGl0bGVzXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibS1hdXRvIG1yLTJcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZS50aXRsZSAmJiB0aXRsZS51cmwgJiYgdGl0bGUudXJsID09PSAnbm9uZSdcIiBpMThuLWFyaWEtbGFiZWwgaTE4bi1hcmlhLXRpdGxlXHJcbiAgICAgICAgICAgICAgICBpMThuPVwicGFnZSB0aXRsZToge3t0aXRsZS50aXRsZX19XCIgY2xhc3M9XCJmbGV4IG0tYXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1tYXJnaW4gbS10LWIgd3MtbWF0LWJsYWNrNjAtdGV4dFwiICpuZ0lmPVwidGl0bGUuaWNvblwiPnt7IHRpdGxlLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLXQtYiBtYXQtYm9keS0yIGZvbnQtYm9sZC1pbXAgd3MtbWF0LWJsYWNrNjAtdGV4dFwiPnt7IHRpdGxlLnRpdGxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmbGV4IG0tYXV0byB3cy1tYXQtZGVmYXVsdC10ZXh0XCIgaTE4bi1hcmlhLWxhYmVsICpuZ0lmPVwidGl0bGUudXJsICYmIHRpdGxlLnVybCAhPT0gJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInRpdGxlLnVybFwiIFtxdWVyeVBhcmFtc109XCJ0aXRsZS5xdWVyeVBhcmFtc1wiIHJvbGU9XCJtZW51aXRlbVwiIGkxOG4tYXJpYS1sYWJlbFxyXG4gICAgICAgICAgICAgICAgW2F0dHIuYWNjZXNza2V5XT1cInRpdGxlLmFjY2Vzc0tleVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwid3MtbWF0LWRlZmF1bHQtdGV4dCBpY29uLW1hcmdpblwiICpuZ0lmPVwidGl0bGUuaWNvblwiPnt7dGl0bGUuaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS10LWIgbWF0LWJvZHktMiBmb250LWJvbGQtaW1wIHt7dGl0bGU/LnRleHRDbGFzc319XCIgKm5nSWY9XCIhdGl0bGU/LmRpc2FibGVUcmFuc2xhdGVcIj4ge3sgdHJhbnNsYXRlTGFiZWxzKHRpdGxlPy50aXRsZSwgJ2J0bnBhZ2ViYWNrJykgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tdC1iIG1hdC1ib2R5LTIgZm9udC1ib2xkLWltcCB7e3RpdGxlPy50ZXh0Q2xhc3N9fVwiICpuZ0lmPVwidGl0bGU/LmRpc2FibGVUcmFuc2xhdGVcIj4ge3sgdGl0bGU/LnRpdGxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCIgKm5nSWY9XCJ2aXNpYmxlXCIgW0BlbnRlckFuaW1hdGlvbl09XCJ2aXNpYmxlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgbWFyZ2luLXhzXCI+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1hdC1oNCBuYXZfc3ViX2hlYWRpbmdcIj57eyAnYnRucGFnZWJhY2suaHVicycgfCB0cmFuc2xhdGUgfX08L2g0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwibWF0LWVycm9yIHRleHQtY2VudGVyXCIgKm5nSWY9XCJodWJzTGlzdC5sZW5ndGggPT09IDBcIiA+XHJcbiAgICAgICAgICAgICAge3sgJ2J0bnBhZ2ViYWNrLm5vSHVicycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWFyZ2luLXhzIHNtOmdyaWQtY29scy0yIG1kOmdyaWQtY29scy0zIG1kOmdyaWQtY29scy00IGNvbC1nYXAtMlwiIHJvbGU9XCJtZW51YmFyXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaHVic09iaiBvZiBodWJzTGlzdFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInVzZXJJbmRpdmlkdWFsTmV3XCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaHViczogaHVic09iaiB9XCI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIG1hcmdpbi14c1wiPlxyXG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYXQtaDQgbmF2X3N1Yl9oZWFkaW5nXCI+e3sgJ2J0bnBhZ2ViYWNrLmRvTW9yZScgfCB0cmFuc2xhdGUgfX08L2g0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWFyZ2luLXhzIHNtOmdyaWQtY29scy0yIG1kOmdyaWQtY29scy0zIG1kOmdyaWQtY29scy00IGNvbC1nYXAtMlwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgbWItNFwiIHJvbGU9XCJtZW51aXRlbVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2FwcC9rbm93bGVkZ2UtcmVzb3VyY2UvYWxsJ11cIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiB3cy1tYXQtcHJpbWFyeS10YWdzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiBtLWF1dG8gbWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3JcIiByb2xlPVwiaW1nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+bWVudV9ib29rPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZHRoLWV4cGFuZCBwYWRkaW5nLWxlZnQteHMgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0wIG1hdC1zdWJoZWFkaW5nLTJcIj57eyAnYnRucGFnZWJhY2sua25vd2xlZGdlUmVzb3VyY2VzJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57eyAnYnRucGFnZWJhY2sua25vd2xlZGdlUmVzb3VyY2VzU3VidGl0bGUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgbWItNFwiIHJvbGU9XCJtZW51aXRlbVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2FwcC9teS1kYXNoYm9hcmQnXVwiID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIHdzLW1hdC1wcmltYXJ5LXRhZ3NcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBjbGFzcz1cIm1hdC1pY29uIG5vdHJhbnNsYXRlIG1hdGVyaWFsLWljb25zIG1hdC1pY29uLW5vLWNvbG9yXCIgcm9sZT1cImltZ1wiIGFyaWEtbGFiZWw9XCJiYXJfY2hhcnRcIiBhcmlhLWxhYmVsbGVkYnk9XCJiYXJfY2hhcnRcIj4gYmFyX2NoYXJ0IDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWR0aC1leHBhbmQgcGFkZGluZy1sZWZ0LXhzIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tMCBtYXQtc3ViaGVhZGluZy0yXCI+IHt7ICdidG5wYWdlYmFjay5kYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57eyAnYnRucGFnZWJhY2suZGFzaGJvYXJkU3VidGl0bGUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgbWItNFwiIHJvbGU9XCJtZW51aXRlbVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2FwcC9wcm9maWxlL3NldHRpbmdzJ11cIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiB3cy1tYXQtcHJpbWFyeS10YWdzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiBtLWF1dG8gbWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3JcIiByb2xlPVwiaW1nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+c2V0dGluZ3M8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkdGgtZXhwYW5kIHBhZGRpbmctbGVmdC14cyBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLTAgbWF0LXN1YmhlYWRpbmctMlwiPiB7eyAnYnRucGFnZWJhY2suc2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57eyAnYnRucGFnZWJhY2suc2V0dGluZ1N1YnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgbWItNFwiIHJvbGU9XCJtZW51aXRlbVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2FwcC9zZXR1cCddXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiB3cy1tYXQtcHJpbWFyeS10YWdzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiBtLWF1dG8gbWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3JcIiByb2xlPVwiaW1nXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj50aHVtYl91cDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWR0aC1leHBhbmQgcGFkZGluZy1sZWZ0LXhzIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tMCBtYXQtc3ViaGVhZGluZy0yXCI+IHt7ICdidG5wYWdlYmFjay5pbnRlcmVzdHMnIHwgdHJhbnNsYXRlIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57eyAnYnRucGFnZWJhY2suaW50ZXJlc3RzU3VidGl0bGUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIG1hcmdpbi14c1wiPlxyXG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYXQtaDQgbmF2X3N1Yl9oZWFkaW5nXCI+e3sgJ2J0bnBhZ2ViYWNrLnF1aWNrTGlua3MnIHwgdHJhbnNsYXRlIH19PC9oND5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIG1hcmdpbi14cyBzbTpncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtMyBtZDpncmlkLWNvbHMtNCBjb2wtZ2FwLTJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwb3J0YWwgb2YgZW52aXJvbm1lbnQucG9ydGFscyB8IG9yZGVyQnk6ICdzcidcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb3J0YWwuaXNQdWJsaWMgfHwgaXNBbGxvd2VkKHBvcnRhbC5pZClcIj5cclxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBtYi00XCIgcm9sZT1cIm1lbnVpdGVtXCIgW2F0dHIuaHJlZl09XCJwb3J0YWwudXJpUGF0aFwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIHdzLW1hdC1wcmltYXJ5LXRhZ3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm0tYXV0byBtYXQtaWNvbiBub3RyYW5zbGF0ZSBtYXRlcmlhbC1pY29ucyBtYXQtaWNvbi1uby1jb2xvclwiIHJvbGU9XCJpbWdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj57eyBwb3J0YWwuaWNvbiB8fCAnaW5mbycgfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWR0aC1leHBhbmQgcGFkZGluZy1sZWZ0LXhzIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLTAgbWF0LXN1YmhlYWRpbmctMlwiPiB7e3BvcnRhbC5uYW1lfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57e3BvcnRhbC5kZXNjfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXNlckluZGl2aWR1YWxOZXcgbGV0LWh1YnM9XCJodWJzXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImh1YnMuaHVibmFtZSA9PSAnRGlzY3VzcydcIj5cclxuICAgIDxhIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgbWItNFwiIChjbGljayk9XCJuYXZpZ2F0ZSgpXCIgcm9sZT1cIm1lbnVpdGVtXCIgaTE4bi1hcmlhLWxhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbiB3cy1tYXQtcHJpbWFyeS10YWdzXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24xXCI+e3todWJzLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnY3Vyc29yLXBvaW50ZXInOiBlbmFibGVQZW9wbGVTZWFyY2h9XCIgY2xhc3M9XCJ3aWR0aC1leHBhbmQgcGFkZGluZy1sZWZ0LXhzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0wIG1hdC1zdWJoZWFkaW5nLTJcIj5cclxuICAgICAgICAgIHt7IHRyYW5zbGF0ZUxhYmVscyhodWJzLmh1Ym5hbWUsICdjb21tb24nKSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtY2FwdGlvbiBjb2hvcnRzLWRlc2Mgd3MtbWF0LWJsYWNrNjAtdGV4dFwiPnt7aHVicy5kZXNjfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2E+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJodWJzLmh1Ym5hbWUgIT0gJ0Rpc2N1c3MnXCI+XHJcbiAgICA8YSBjbGFzcz1cImZsZXggZmxleC13cmFwIG1iLTRcIiBbcm91dGVyTGlua109XCIoaHVicy5wYXRoKVwiIHJvbGU9XCJtZW51aXRlbVwiIGkxOG4tYXJpYS1sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cImljb24gd3MtbWF0LXByaW1hcnktdGFnc1wiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uMVwiPnt7aHVicy5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2N1cnNvci1wb2ludGVyJzogZW5hYmxlUGVvcGxlU2VhcmNofVwiIGNsYXNzPVwid2lkdGgtZXhwYW5kIHBhZGRpbmctbGVmdC14c1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tMCBtYXQtc3ViaGVhZGluZy0yXCI+XHJcbiAgICAgICAgICB7eyB0cmFuc2xhdGVMYWJlbHMoaHVicy5odWJuYW1lLCAnY29tbW9uJykgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWNhcHRpb24gY29ob3J0cy1kZXNjIHdzLW1hdC1ibGFjazYwLXRleHRcIj57e2h1YnMuZGVzY319PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9hPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=