@sunbird-cb/toc 0.0.7 → 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 (331) 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 -500
  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 -70
  164. package/esm2022/sunbird-cb-toc.mjs +4 -4
  165. package/fesm2022/sunbird-cb-toc.mjs +24777 -24250
  166. package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
  167. package/index.d.ts +5 -5
  168. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +16 -16
  169. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +31 -31
  170. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +15 -15
  171. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +20 -20
  172. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +22 -22
  173. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +15 -15
  174. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +22 -22
  175. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +22 -22
  176. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +9 -9
  177. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +11 -11
  178. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +12 -12
  179. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +18 -18
  180. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +14 -14
  181. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +11 -11
  182. package/lib/_collection/_common/connection-name/connection-name.component.d.ts +17 -17
  183. package/lib/_collection/_common/connection-name/connection-name.module.d.ts +14 -14
  184. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +199 -199
  185. package/lib/_collection/_common/content-progress/content-progress.component.d.ts +16 -16
  186. package/lib/_collection/_common/content-progress/content-progress.module.d.ts +10 -10
  187. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +38 -38
  188. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +19 -19
  189. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +11 -11
  190. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +183 -183
  191. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +41 -41
  192. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +54 -54
  193. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +47 -47
  194. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +49 -48
  195. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +171 -154
  196. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +8 -8
  197. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +16 -16
  198. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +40 -40
  199. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +21 -21
  200. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +45 -45
  201. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +10 -10
  202. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +10 -10
  203. package/lib/_collection/_common/content-toc/content-toc.component.d.ts +128 -128
  204. package/lib/_collection/_common/content-toc/content-toc.module.d.ts +51 -51
  205. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +29 -29
  206. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +9 -9
  207. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +7 -7
  208. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +7 -7
  209. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +28 -28
  210. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +24 -24
  211. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +14 -14
  212. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +9 -9
  213. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +12 -12
  214. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +10 -10
  215. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +22 -22
  216. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +8 -8
  217. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +18 -18
  218. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +8 -8
  219. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +15 -15
  220. package/lib/_collection/_common/player-brief/player-brief.component.d.ts +35 -35
  221. package/lib/_collection/_common/player-brief/player-brief.module.d.ts +19 -19
  222. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +14 -14
  223. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +13 -13
  224. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +11 -11
  225. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +11 -11
  226. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +15 -15
  227. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +10 -10
  228. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +16 -16
  229. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +11 -11
  230. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +34 -34
  231. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +17 -17
  232. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +15 -15
  233. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +15 -15
  234. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +21 -21
  235. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +12 -12
  236. package/lib/_collection/_common/user-image/user-image.component.d.ts +21 -21
  237. package/lib/_collection/_common/user-image/user-image.module.d.ts +9 -9
  238. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +47 -47
  239. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +14 -14
  240. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +22 -22
  241. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +19 -19
  242. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +15 -15
  243. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +25 -25
  244. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +21 -21
  245. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +18 -18
  246. package/lib/_collection-api.d.ts +34 -34
  247. package/lib/_constants/widget-content.constants.d.ts +7 -7
  248. package/lib/_directives/tooltip.directive.d.ts +17 -17
  249. package/lib/_models/common.model.d.ts +3 -3
  250. package/lib/_models/error.model.d.ts +5 -5
  251. package/lib/_pipes/highlight.pipe.d.ts +10 -10
  252. package/lib/_services/rating.service.d.ts +18 -18
  253. package/lib/_services/samuhik-charcha.service.d.ts +13 -13
  254. package/lib/_services/viewer-route-util.d.ts +8 -8
  255. package/lib/_services/widget-content.model.d.ts +515 -515
  256. package/lib/_services/widget-content.service.d.ts +101 -101
  257. package/lib/_shared/translate-loader.factory.d.ts +7 -7
  258. package/lib/app-toc-lib.module.d.ts +88 -88
  259. package/lib/collection.config.d.ts +159 -159
  260. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +17 -17
  261. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +225 -225
  262. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +78 -78
  263. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +22 -22
  264. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +31 -31
  265. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +47 -47
  266. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +14 -14
  267. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +21 -21
  268. package/lib/components/app-toc-home/app-toc-home.component.d.ts +314 -314
  269. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +408 -408
  270. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +47 -47
  271. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +22 -22
  272. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +14 -14
  273. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +149 -149
  274. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +42 -42
  275. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +27 -27
  276. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +15 -15
  277. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +195 -195
  278. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +44 -44
  279. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +54 -54
  280. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +18 -18
  281. package/lib/components/public-survey-form/public-survey-form.component.d.ts +43 -43
  282. package/lib/components/survey-form-question/survey-form-question.component.d.ts +20 -20
  283. package/lib/components/survey-form-section/survey-form-section.component.d.ts +13 -13
  284. package/lib/models/app-toc-analytics.model.d.ts +152 -152
  285. package/lib/models/app-toc.model.d.ts +84 -84
  286. package/lib/models/auto-complete.model.d.ts +27 -27
  287. package/lib/models/card-content.model.d.ts +19 -19
  288. package/lib/models/content-strip-with-tabs.model.d.ts +44 -44
  289. package/lib/models/discussion-forum.model.d.ts +40 -40
  290. package/lib/models/goal.model.d.ts +22 -22
  291. package/lib/models/meta-tag.model.d.ts +6 -6
  292. package/lib/models/playlist.model.d.ts +23 -23
  293. package/lib/models/profile-revamp.model.d.ts +14 -14
  294. package/lib/models/rating.model.d.ts +17 -17
  295. package/lib/models/user-profile.model.d.ts +37 -37
  296. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +12 -12
  297. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +12 -12
  298. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +16 -16
  299. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +12 -12
  300. package/lib/resolvers/app-toc-resolver.service.d.ts +16 -16
  301. package/lib/resolvers/config-resolver.service.d.ts +11 -11
  302. package/lib/resolvers/profile-resolver.service.d.ts +11 -11
  303. package/lib/resolvers/restricted-features-resolver.service.d.ts +11 -11
  304. package/lib/routes/app-toc-home/app-toc-home.component.d.ts +19 -19
  305. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +8 -8
  306. package/lib/routes/app-toc-home/app-toc-home.service.d.ts +8 -8
  307. package/lib/services/access-control.service.d.ts +29 -29
  308. package/lib/services/action.service.d.ts +9 -9
  309. package/lib/services/app-toc-v2.service.d.ts +16 -14
  310. package/lib/services/app-toc.service.d.ts +235 -177
  311. package/lib/services/certificate.service.d.ts +42 -42
  312. package/lib/services/discuss-utils.service.d.ts +33 -33
  313. package/lib/services/editor.service.d.ts +17 -17
  314. package/lib/services/load-check.service.d.ts +8 -8
  315. package/lib/services/loader.service.d.ts +16 -16
  316. package/lib/services/mobile-apps.service.d.ts +38 -38
  317. package/lib/services/netcore.service.d.ts +33 -33
  318. package/lib/services/nps-grid.service.d.ts +15 -15
  319. package/lib/services/otp.service.d.ts +20 -20
  320. package/lib/services/profile-v2.service.d.ts +20 -20
  321. package/lib/services/reset-ratings.service.d.ts +8 -8
  322. package/lib/services/resource-download-helper.service.d.ts +29 -29
  323. package/lib/services/timer.service.d.ts +9 -9
  324. package/lib/services/title-tag.service.d.ts +21 -21
  325. package/lib/services/user-profile.service.d.ts +24 -24
  326. package/lib/services/viewer-data.service.d.ts +58 -58
  327. package/lib/services/viewer-util.service.d.ts +76 -62
  328. package/lib/share-toc/share-toc/share-toc.component.d.ts +56 -56
  329. package/lib/share-toc/share-toc.module.d.ts +32 -32
  330. package/package.json +1 -1
  331. package/public-api.d.ts +56 -55
@@ -1,116 +1,116 @@
1
- import { Component, Inject, ViewChild } from '@angular/core';
2
- import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
3
- import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';
4
- import { DateAdapter, NativeDateAdapter } from '@angular/material/core';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/legacy-dialog";
7
- import * as i2 from "../../services/app-toc.service";
8
- import * as i3 from "@angular/material/legacy-snack-bar";
9
- import * as i4 from "@sunbird-cb/utils-v2";
10
- import * as i5 from "@angular/common";
11
- import * as i6 from "@angular/forms";
12
- import * as i7 from "@angular/material/legacy-button";
13
- import * as i8 from "@angular/material/legacy-form-field";
14
- import * as i9 from "@angular/material/legacy-input";
15
- import * as i10 from "@angular/material/legacy-progress-spinner";
16
- import * as i11 from "@angular/material/legacy-select";
17
- import * as i12 from "@angular/material/legacy-core";
18
- import * as i13 from "@angular/material/datepicker";
19
- /**
20
- * Format a date to YYYY-MM-DD format
21
- */
22
- function startWithYearformat(date) {
23
- const year = date.getFullYear();
24
- const month = String(date.getMonth() + 1).padStart(2, '0');
25
- const day = String(date.getDate()).padStart(2, '0');
26
- return `${year}-${month}-${day}`;
27
- }
28
- export class CreateBatchDialogComponent {
29
- constructor(dialogRef, data, appTocService, snackBar, configSvc) {
30
- this.dialogRef = dialogRef;
31
- this.data = data;
32
- this.appTocService = appTocService;
33
- this.snackBar = snackBar;
34
- this.configSvc = configSvc;
35
- this.enrollmentTypes = ['open', 'closed'];
36
- this.namePatern = `^[a-zA-Z\\s\\']{1,32}$`;
37
- this.today = new Date();
38
- this.uploadSaveData = false;
39
- this.createBatchForm = new UntypedFormGroup({
40
- name: new UntypedFormControl('', [Validators.required, Validators.pattern(this.namePatern)]),
41
- description: new UntypedFormControl('', []),
42
- enrollmentType: new UntypedFormControl(this.enrollmentTypes[0], [Validators.required]),
43
- startDate: new UntypedFormControl('', [Validators.required]),
44
- endDate: new UntypedFormControl('', []),
45
- enrollmentEndDate: new UntypedFormControl('', []),
46
- // createdFor: new FormControl('', []),
47
- mentors: new UntypedFormControl('', []),
48
- courseId: new UntypedFormControl('', []),
49
- createdBy: new UntypedFormControl('', []),
50
- });
51
- }
52
- ngOnInit() {
53
- }
54
- createBatchSubmit(form) {
55
- this.uploadSaveData = true;
56
- form.value.startDate = startWithYearformat(new Date(`${form.value.startDate}`));
57
- if (form.value.endDate) {
58
- form.value.endDate = startWithYearformat(new Date(`${form.value.endDate}`));
59
- }
60
- else {
61
- delete form.value.endDate;
62
- }
63
- if (form.value.enrollmentEndDate) {
64
- form.value.enrollmentEndDate = startWithYearformat(new Date(`${form.value.enrollmentEndDate}`));
65
- }
66
- else {
67
- delete form.value.enrollmentEndDate;
68
- }
69
- form.value.mentors = [];
70
- if (this.configSvc.userProfile) {
71
- // form.value.createdFor = [this.configSvc.userProfile.rootOrgId]
72
- form.value.createdBy = this.configSvc.userProfile.userId;
73
- }
74
- if (this.data && this.data.content) {
75
- form.value.courseId = this.data.content.identifier;
76
- }
77
- this.appTocService.createBatch(form.value).subscribe(() => {
78
- this.uploadSaveData = false;
79
- this.openSnackbar(this.toastSuccess.nativeElement.value);
80
- this.dialogRef.close();
81
- }, err => {
82
- if (err && err.error && err.error.params && err.error.params.errmsg) {
83
- this.openSnackbar(err.error.params.errmsg);
84
- }
85
- else {
86
- this.openSnackbar(this.toastError.nativeElement.value);
87
- }
88
- this.uploadSaveData = false;
89
- });
90
- }
91
- openSnackbar(primaryMsg, duration = 5000) {
92
- this.snackBar.open(primaryMsg, 'X', {
93
- duration,
94
- });
95
- }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateBatchDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.AppTocService }, { token: i3.MatLegacySnackBar }, { token: i4.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateBatchDialogComponent, selector: "ws-app-create-batch-dialog", providers: [
98
- { provide: DateAdapter, useClass: NativeDateAdapter },
99
- ], viewQueries: [{ propertyName: "toastSuccess", first: true, predicate: ["toastSuccess"], descendants: true, static: true }, { propertyName: "toastError", first: true, predicate: ["toastError"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"createBatchForm\">\n <!-- <h2 mat-dialog-title>Install Angular</h2> -->\n <mat-dialog-content class=\"mat-typography pad-fix\">\n <div class=\"flex flex-1 custom\">\n <div class=\"flex flex-4 flex-column margin-right-l\">\n\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <label for=\"name\" class=\" margin-remove-bottom form-label required\"\n i18n=\"Name label|Label which explains the user to enter name\" i18n-aria-label\n aria-label=\"Name label\">\n Name\n </label>\n <input id=\"name\" matInput #name formControlName=\"name\" i18n-placeholder\n placeholder=\"Enter Name\" i18n-aria-label aria-label=\"Name input\" />\n <mat-error [hidden]=\"false\" i18n=\"Name Error|Explains name is required\" i18n-aria-label\n aria-label=\"Name Error|Explains name is required \"\n *ngIf=\"createBatchForm?.controls['name'].errors?.required\">\n Name is mandatory\n </mat-error>\n <mat-error [hidden]=\"false\" *ngIf=\"createBatchForm?.controls['name'].errors?.pattern\"\n i18n-aria-label\n aria-label=\"Name Error|Name fields cannot contain numbers and special characters \">\n Name fields cannot contain numbers and special characters '\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <label for=\"description\" class=\" margin-remove-bottom form-label\"\n i18n=\"description label|Label which explains the user to enter description\" i18n-aria-label\n aria-label=\"description label\">\n Description\n </label>\n <input id=\"description\" matInput #description formControlName=\"description\" i18n-placeholder\n placeholder=\"Enter Description\" i18n-aria-label aria-label=\"Description input\" />\n <mat-error [hidden]=\"false\" i18n=\"Description Error|Explains description is required\" i18n-aria-label\n aria-label=\"Description Error|Explains description is required \"\n *ngIf=\"createBatchForm?.controls['description'].errors?.required\">\n Description is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <label for=\"enrollmentType\" class=\" margin-remove-bottom form-label required\"\n i18n=\"enrollmentType label|Label which explains the user to enter enrollmentType\" i18n-aria-label\n aria-label=\"enrollmentType label\">\n Enrollment Type\n </label>\n <mat-select matInput formControlName=\"enrollmentType\" #enrollmentType >\n <mat-option [value]=\"c\" *ngFor=\"let c of enrollmentTypes\" [innerHTML]=\"c\"></mat-option>\n </mat-select>\n <mat-error [hidden]=\"false\" i18n=\"enrollmentType Error|Explains enrollmentType is required\" i18n-aria-label\n aria-label=\"enrollmentType Error|Explains enrollmentType is required \"\n *ngIf=\"createBatchForm?.controls['enrollmentType'].errors?.required\">\n Enrollment Type is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input id=\"startDate\" matInput #startDate formControlName=\"startDate\" [matDatepicker]=\"picker\"\n i18n-placeholder (focus)=\"picker.open()\" placeholder=\"Choose startDate(dd-mm-yyyy)\"\n [min]=\"today\" readonly>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (closed)=\"startDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\n </mat-datepicker>\n <mat-error [hidden]=\"false\" i18n=\"Start date Error|Explains name is required\">\n Start date is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input id=\"endDate\" matInput #endDate formControlName=\"endDate\" [matDatepicker]=\"endpicker\"\n i18n-placeholder (focus)=\"endpicker.open()\" placeholder=\"Choose endDate(dd-mm-yyyy)\"\n [min]=\"today\" readonly>\n <mat-datepicker-toggle matSuffix [for]=\"endpicker\"></mat-datepicker-toggle>\n <mat-datepicker #endpicker (closed)=\"endDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\n </mat-datepicker>\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\n End date is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input id=\"enrollmentEndDate\" matInput #enrollmentEndDate formControlName=\"enrollmentEndDate\" [matDatepicker]=\"enrollmentEndPicker\"\n i18n-placeholder (focus)=\"enrollmentEndPicker.open()\" placeholder=\"Choose enrollmentEndDate(dd-mm-yyyy)\"\n [min]=\"today\" readonly>\n <mat-datepicker-toggle matSuffix [for]=\"enrollmentEndPicker\"></mat-datepicker-toggle>\n <mat-datepicker #enrollmentEndPicker (closed)=\"enrollmentEndDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\n </mat-datepicker>\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\n End date is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <mat-dialog-actions align=\"end\" class=\"mb-0-imp\">\n <button mat-raised-button type=\"button\" [mat-dialog-close]=\"true\"\n class=\"ws-mat-accent-border flex-auto-display\">\n <span class=\"ws-mat-default-text\" >Discard</span>\n </button>\n <button mat-raised-button type=\"submit\"\n class=\"text-white ws-mat-primary-background flex-auto-display\" \n [disabled]=\"uploadSaveData || createBatchForm?.invalid\" (click)=\"createBatchSubmit(createBatchForm)\">\n <span class=\"text-white\" >Create</span>\n </button>\n <span *ngIf=\"uploadSaveData\" class=\"px-4 flex items-center justify-center\">\n <mat-spinner [diameter]=\"30\"></mat-spinner>\n </span>\n </mat-dialog-actions>\n </div>\n\n </div>\n </mat-dialog-content>\n</form>\n\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"Batch created successfully\"\n value=\"Batch created successfully!\" #toastSuccess />\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"unable to create batch\"\n value=\"Error in creating batch!\" #toastError />", styles: [".start-card{min-width:80px;margin:0 30px 30px;font-size:16px}.start-card mat-card-content{margin-top:10px}@media only screen and (max-width: 599px){.flex-auto-display{flex:auto;margin-left:0!important;margin-top:1rem}}@media only screen and (min-width: 600px) and (max-width: 959px){.flex-auto-display{flex:auto}}.similar{display:none!important}@media only screen and (max-width: 599px){.similar{display:none!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.similar{display:none!important}}@media only screen and (max-width: 599px){.mob{margin-left:0!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.mob{margin-left:0!important}}.custom{flex-direction:row}@media only screen and (max-width: 599px){.custom{flex-direction:column}}@media only screen and (min-width: 600px) and (max-width: 959px){.custom{flex-direction:column}}.pad-fix{padding:0 0 0 24px}.flex-4{flex:4}.flex-3{flex:3}.flex-2{flex:2}.mb-0-imp{margin-bottom:0!important}.w-full-imp{width:100%!important}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i8.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "directive", type: i9.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i10.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i1.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i11.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i13.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i13.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateBatchDialogComponent, decorators: [{
102
- type: Component,
103
- args: [{ selector: 'ws-app-create-batch-dialog', providers: [
104
- { provide: DateAdapter, useClass: NativeDateAdapter },
105
- ], template: "<form [formGroup]=\"createBatchForm\">\n <!-- <h2 mat-dialog-title>Install Angular</h2> -->\n <mat-dialog-content class=\"mat-typography pad-fix\">\n <div class=\"flex flex-1 custom\">\n <div class=\"flex flex-4 flex-column margin-right-l\">\n\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <label for=\"name\" class=\" margin-remove-bottom form-label required\"\n i18n=\"Name label|Label which explains the user to enter name\" i18n-aria-label\n aria-label=\"Name label\">\n Name\n </label>\n <input id=\"name\" matInput #name formControlName=\"name\" i18n-placeholder\n placeholder=\"Enter Name\" i18n-aria-label aria-label=\"Name input\" />\n <mat-error [hidden]=\"false\" i18n=\"Name Error|Explains name is required\" i18n-aria-label\n aria-label=\"Name Error|Explains name is required \"\n *ngIf=\"createBatchForm?.controls['name'].errors?.required\">\n Name is mandatory\n </mat-error>\n <mat-error [hidden]=\"false\" *ngIf=\"createBatchForm?.controls['name'].errors?.pattern\"\n i18n-aria-label\n aria-label=\"Name Error|Name fields cannot contain numbers and special characters \">\n Name fields cannot contain numbers and special characters '\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <label for=\"description\" class=\" margin-remove-bottom form-label\"\n i18n=\"description label|Label which explains the user to enter description\" i18n-aria-label\n aria-label=\"description label\">\n Description\n </label>\n <input id=\"description\" matInput #description formControlName=\"description\" i18n-placeholder\n placeholder=\"Enter Description\" i18n-aria-label aria-label=\"Description input\" />\n <mat-error [hidden]=\"false\" i18n=\"Description Error|Explains description is required\" i18n-aria-label\n aria-label=\"Description Error|Explains description is required \"\n *ngIf=\"createBatchForm?.controls['description'].errors?.required\">\n Description is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <label for=\"enrollmentType\" class=\" margin-remove-bottom form-label required\"\n i18n=\"enrollmentType label|Label which explains the user to enter enrollmentType\" i18n-aria-label\n aria-label=\"enrollmentType label\">\n Enrollment Type\n </label>\n <mat-select matInput formControlName=\"enrollmentType\" #enrollmentType >\n <mat-option [value]=\"c\" *ngFor=\"let c of enrollmentTypes\" [innerHTML]=\"c\"></mat-option>\n </mat-select>\n <mat-error [hidden]=\"false\" i18n=\"enrollmentType Error|Explains enrollmentType is required\" i18n-aria-label\n aria-label=\"enrollmentType Error|Explains enrollmentType is required \"\n *ngIf=\"createBatchForm?.controls['enrollmentType'].errors?.required\">\n Enrollment Type is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input id=\"startDate\" matInput #startDate formControlName=\"startDate\" [matDatepicker]=\"picker\"\n i18n-placeholder (focus)=\"picker.open()\" placeholder=\"Choose startDate(dd-mm-yyyy)\"\n [min]=\"today\" readonly>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (closed)=\"startDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\n </mat-datepicker>\n <mat-error [hidden]=\"false\" i18n=\"Start date Error|Explains name is required\">\n Start date is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input id=\"endDate\" matInput #endDate formControlName=\"endDate\" [matDatepicker]=\"endpicker\"\n i18n-placeholder (focus)=\"endpicker.open()\" placeholder=\"Choose endDate(dd-mm-yyyy)\"\n [min]=\"today\" readonly>\n <mat-datepicker-toggle matSuffix [for]=\"endpicker\"></mat-datepicker-toggle>\n <mat-datepicker #endpicker (closed)=\"endDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\n </mat-datepicker>\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\n End date is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"flex flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input id=\"enrollmentEndDate\" matInput #enrollmentEndDate formControlName=\"enrollmentEndDate\" [matDatepicker]=\"enrollmentEndPicker\"\n i18n-placeholder (focus)=\"enrollmentEndPicker.open()\" placeholder=\"Choose enrollmentEndDate(dd-mm-yyyy)\"\n [min]=\"today\" readonly>\n <mat-datepicker-toggle matSuffix [for]=\"enrollmentEndPicker\"></mat-datepicker-toggle>\n <mat-datepicker #enrollmentEndPicker (closed)=\"enrollmentEndDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\n </mat-datepicker>\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\n End date is mandatory\n </mat-error>\n </mat-form-field>\n </div>\n <mat-dialog-actions align=\"end\" class=\"mb-0-imp\">\n <button mat-raised-button type=\"button\" [mat-dialog-close]=\"true\"\n class=\"ws-mat-accent-border flex-auto-display\">\n <span class=\"ws-mat-default-text\" >Discard</span>\n </button>\n <button mat-raised-button type=\"submit\"\n class=\"text-white ws-mat-primary-background flex-auto-display\" \n [disabled]=\"uploadSaveData || createBatchForm?.invalid\" (click)=\"createBatchSubmit(createBatchForm)\">\n <span class=\"text-white\" >Create</span>\n </button>\n <span *ngIf=\"uploadSaveData\" class=\"px-4 flex items-center justify-center\">\n <mat-spinner [diameter]=\"30\"></mat-spinner>\n </span>\n </mat-dialog-actions>\n </div>\n\n </div>\n </mat-dialog-content>\n</form>\n\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"Batch created successfully\"\n value=\"Batch created successfully!\" #toastSuccess />\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"unable to create batch\"\n value=\"Error in creating batch!\" #toastError />", styles: [".start-card{min-width:80px;margin:0 30px 30px;font-size:16px}.start-card mat-card-content{margin-top:10px}@media only screen and (max-width: 599px){.flex-auto-display{flex:auto;margin-left:0!important;margin-top:1rem}}@media only screen and (min-width: 600px) and (max-width: 959px){.flex-auto-display{flex:auto}}.similar{display:none!important}@media only screen and (max-width: 599px){.similar{display:none!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.similar{display:none!important}}@media only screen and (max-width: 599px){.mob{margin-left:0!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.mob{margin-left:0!important}}.custom{flex-direction:row}@media only screen and (max-width: 599px){.custom{flex-direction:column}}@media only screen and (min-width: 600px) and (max-width: 959px){.custom{flex-direction:column}}.pad-fix{padding:0 0 0 24px}.flex-4{flex:4}.flex-3{flex:3}.flex-2{flex:2}.mb-0-imp{margin-bottom:0!important}.w-full-imp{width:100%!important}\n"] }]
106
- }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
107
- type: Inject,
108
- args: [MAT_DIALOG_DATA]
109
- }] }, { type: i2.AppTocService }, { type: i3.MatLegacySnackBar }, { type: i4.ConfigurationsService }]; }, propDecorators: { toastSuccess: [{
110
- type: ViewChild,
111
- args: ['toastSuccess', { static: true }]
112
- }], toastError: [{
113
- type: ViewChild,
114
- args: ['toastError', { static: true }]
115
- }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhdGNoLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvY29tcG9uZW50cy9jcmVhdGUtYmF0Y2gtZGlhbG9nL2NyZWF0ZS1iYXRjaC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWJhdGNoLWRpYWxvZy9jcmVhdGUtYmF0Y2gtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFjLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQTtBQUM1RixPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQy9ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUlqRixPQUFPLEVBQUUsV0FBVyxFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUFFekY7O0dBRUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLElBQVU7SUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxPQUFPLEdBQUcs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LENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNsQyxRQUFRO1NBQ1QsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0ExRVUsMEJBQTBCLG9EQVczQixlQUFlO21HQVhkLDBCQUEwQixxREFKMUI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1NBQ3RELCtQQ3hCSCx1d1FBMEhpRDs7NEZEaEdwQywwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0UsNEJBQTRCLGFBRzNCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7cUJBQ3REOzswQkFhRSxNQUFNOzJCQUFDLGVBQWU7NElBTG9CLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0LCBmb3J3YXJkUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZiwgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJ1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcbmltcG9ydCB7IEFwcFRvY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtdG9jLnNlcnZpY2UnXG5pbXBvcnQgeyBNYXRMZWdhY3lTbmFja0JhciBhcyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1zbmFjay1iYXInXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTmF0aXZlRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuXG4vKipcbiAqIEZvcm1hdCBhIGRhdGUgdG8gWVlZWS1NTS1ERCBmb3JtYXRcbiAqL1xuZnVuY3Rpb24gc3RhcnRXaXRoWWVhcmZvcm1hdChkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKVxuICBjb25zdCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKVxuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy1hcHAtY3JlYXRlLWJhdGNoLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtYmF0Y2gtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWJhdGNoLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogTmF0aXZlRGF0ZUFkYXB0ZXIgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlQmF0Y2hEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjcmVhdGVCYXRjaEZvcm06IFVudHlwZWRGb3JtR3JvdXBcbiAgZW5yb2xsbWVudFR5cGVzID0gWydvcGVuJywgJ2Nsb3NlZCddXG4gIG5hbWVQYXRlcm4gPSBgXlthLXpBLVpcXFxcc1xcXFwnXXsxLDMyfSRgXG4gIHRvZGF5ID0gbmV3IERhdGUoKVxuICB1cGxvYWRTYXZlRGF0YSA9IGZhbHNlXG4gIEBWaWV3Q2hpbGQoJ3RvYXN0U3VjY2VzcycsIHsgc3RhdGljOiB0cnVlIH0pIHRvYXN0U3VjY2VzcyE6IEVsZW1lbnRSZWY8YW55PlxuICBAVmlld0NoaWxkKCd0b2FzdEVycm9yJywgeyBzdGF0aWM6IHRydWUgfSkgdG9hc3RFcnJvciE6IEVsZW1lbnRSZWY8YW55PlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDcmVhdGVCYXRjaERpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBhcHBUb2NTZXJ2aWNlOiBBcHBUb2NTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVCYXRjaEZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICBuYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMubmFtZVBhdGVybildKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbXSksXG4gICAgICBlbnJvbGxtZW50VHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLmVucm9sbG1lbnRUeXBlc1swXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIHN0YXJ0RGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIGVuZERhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFtdKSxcbiAgICAgIGVucm9sbG1lbnRFbmREYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbXSksXG4gICAgICAvLyBjcmVhdGVkRm9yOiBuZXcgRm9ybUNvbnRyb2woJycsIFtdKSxcbiAgICAgIG1lbnRvcnM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFtdKSxcbiAgICAgIGNvdXJzZUlkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbXSksXG4gICAgICBjcmVhdGVkQnk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFtdKSxcbiAgICB9KVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVCYXRjaFN1Ym1pdChmb3JtOiBhbnkpIHtcbiAgICB0aGlzLnVwbG9hZFNhdmVEYXRhID0gdHJ1ZVxuICAgIGZvcm0udmFsdWUuc3RhcnREYXRlID0gc3RhcnRXaXRoWWVhcmZvcm1hdChuZXcgRGF0ZShgJHtmb3JtLnZhbHVlLnN0YXJ0RGF0ZX1gKSlcbiAgICBpZiAoZm9ybS52YWx1ZS5lbmREYXRlKSB7XG4gICAgICBmb3JtLnZhbHVlLmVuZERhdGUgPSBzdGFydFdpdGhZZWFyZm9ybWF0KG5ldyBEYXRlKGAke2Zvcm0udmFsdWUuZW5kRGF0ZX1gKSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIGZvcm0udmFsdWUuZW5kRGF0ZVxuICAgIH1cbiAgICBpZiAoZm9ybS52YWx1ZS5lbnJvbGxtZW50RW5kRGF0ZSkge1xuICAgICAgZm9ybS52YWx1ZS5lbnJvbGxtZW50RW5kRGF0ZSA9IHN0YXJ0V2l0aFllYXJmb3JtYXQobmV3IERhdGUoYCR7Zm9ybS52YWx1ZS5lbnJvbGxtZW50RW5kRGF0ZX1gKSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIGZvcm0udmFsdWUuZW5yb2xsbWVudEVuZERhdGVcbiAgICB9XG4gICAgZm9ybS52YWx1ZS5tZW50b3JzID0gW11cbiAgICBpZiAodGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUpIHtcbiAgICAgIC8vIGZvcm0udmFsdWUuY3JlYXRlZEZvciA9IFt0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5yb290T3JnSWRdXG4gICAgICBmb3JtLnZhbHVlLmNyZWF0ZWRCeSA9IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZFxuICAgIH1cbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5jb250ZW50KSB7XG4gICAgICBmb3JtLnZhbHVlLmNvdXJzZUlkID0gdGhpcy5kYXRhLmNvbnRlbnQuaWRlbnRpZmllclxuICAgIH1cbiAgICB0aGlzLmFwcFRvY1NlcnZpY2UuY3JlYXRlQmF0Y2goZm9ybS52YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnVwbG9hZFNhdmVEYXRhID0gZmFsc2VcbiAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50b2FzdFN1Y2Nlc3MubmF0aXZlRWxlbWVudC52YWx1ZSlcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKVxuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIGlmIChlcnIgJiYgZXJyLmVycm9yICYmIGVyci5lcnJvci5wYXJhbXMgJiYgZXJyLmVycm9yLnBhcmFtcy5lcnJtc2cpIHtcbiAgICAgICAgICB0aGlzLm9wZW5TbmFja2JhcihlcnIuZXJyb3IucGFyYW1zLmVycm1zZylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9wZW5TbmFja2Jhcih0aGlzLnRvYXN0RXJyb3IubmF0aXZlRWxlbWVudC52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwbG9hZFNhdmVEYXRhID0gZmFsc2VcbiAgICAgIH0pXG4gIH1cbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihwcmltYXJ5TXNnLCAnWCcsIHtcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0pXG4gIH1cblxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJjcmVhdGVCYXRjaEZvcm1cIj5cbiAgICA8IS0tIDxoMiBtYXQtZGlhbG9nLXRpdGxlPkluc3RhbGwgQW5ndWxhcjwvaDI+IC0tPlxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeSBwYWQtZml4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBjdXN0b21cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtNCBmbGV4LWNvbHVtbiBtYXJnaW4tcmlnaHQtbFwiPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiIG1hcmdpbi1yZW1vdmUtYm90dG9tIGZvcm0tbGFiZWwgcmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG49XCJOYW1lIGxhYmVsfExhYmVsIHdoaWNoIGV4cGxhaW5zIHRoZSB1c2VyIHRvIGVudGVyIG5hbWVcIiBpMThuLWFyaWEtbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmFtZSBsYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJuYW1lXCIgbWF0SW5wdXQgI25hbWUgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIGkxOG4tcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIE5hbWVcIiBpMThuLWFyaWEtbGFiZWwgYXJpYS1sYWJlbD1cIk5hbWUgaW5wdXRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgaTE4bj1cIk5hbWUgRXJyb3J8RXhwbGFpbnMgbmFtZSBpcyByZXF1aXJlZFwiIGkxOG4tYXJpYS1sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJOYW1lIEVycm9yfEV4cGxhaW5zIG5hbWUgaXMgcmVxdWlyZWQgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyZWF0ZUJhdGNoRm9ybT8uY29udHJvbHNbJ25hbWUnXS5lcnJvcnM/LnJlcXVpcmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSBpcyBtYW5kYXRvcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgKm5nSWY9XCJjcmVhdGVCYXRjaEZvcm0/LmNvbnRyb2xzWyduYW1lJ10uZXJyb3JzPy5wYXR0ZXJuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpMThuLWFyaWEtbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmFtZSBFcnJvcnxOYW1lIGZpZWxkcyBjYW5ub3QgY29udGFpbiBudW1iZXJzIGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSBmaWVsZHMgY2Fubm90IGNvbnRhaW4gbnVtYmVycyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzICAnXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiIG1hcmdpbi1yZW1vdmUtYm90dG9tIGZvcm0tbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG49XCJkZXNjcmlwdGlvbiBsYWJlbHxMYWJlbCB3aGljaCBleHBsYWlucyB0aGUgdXNlciB0byBlbnRlciBkZXNjcmlwdGlvblwiIGkxOG4tYXJpYS1sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJkZXNjcmlwdGlvbiBsYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZGVzY3JpcHRpb25cIiBtYXRJbnB1dCAjZGVzY3JpcHRpb24gZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBpMThuLXBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBEZXNjcmlwdGlvblwiIGkxOG4tYXJpYS1sYWJlbCBhcmlhLWxhYmVsPVwiRGVzY3JpcHRpb24gaW5wdXRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgaTE4bj1cIkRlc2NyaXB0aW9uIEVycm9yfEV4cGxhaW5zIGRlc2NyaXB0aW9uIGlzIHJlcXVpcmVkXCIgaTE4bi1hcmlhLWxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlc2NyaXB0aW9uIEVycm9yfEV4cGxhaW5zIGRlc2NyaXB0aW9uIGlzIHJlcXVpcmVkIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcmVhdGVCYXRjaEZvcm0/LmNvbnRyb2xzWydkZXNjcmlwdGlvbiddLmVycm9ycz8ucmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiBpcyBtYW5kYXRvcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVucm9sbG1lbnRUeXBlXCIgY2xhc3M9XCIgbWFyZ2luLXJlbW92ZS1ib3R0b20gZm9ybS1sYWJlbCByZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaTE4bj1cImVucm9sbG1lbnRUeXBlIGxhYmVsfExhYmVsIHdoaWNoIGV4cGxhaW5zIHRoZSB1c2VyIHRvIGVudGVyIGVucm9sbG1lbnRUeXBlXCIgaTE4bi1hcmlhLWxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImVucm9sbG1lbnRUeXBlIGxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5yb2xsbWVudCBUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW5yb2xsbWVudFR5cGVcIiAjZW5yb2xsbWVudFR5cGUgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJjXCIgKm5nRm9yPVwibGV0IGMgb2YgZW5yb2xsbWVudFR5cGVzXCIgW2lubmVySFRNTF09XCJjXCI+PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgaTE4bj1cImVucm9sbG1lbnRUeXBlIEVycm9yfEV4cGxhaW5zIGVucm9sbG1lbnRUeXBlIGlzIHJlcXVpcmVkXCIgaTE4bi1hcmlhLWxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImVucm9sbG1lbnRUeXBlIEVycm9yfEV4cGxhaW5zIGVucm9sbG1lbnRUeXBlIGlzIHJlcXVpcmVkIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcmVhdGVCYXRjaEZvcm0/LmNvbnRyb2xzWydlbnJvbGxtZW50VHlwZSddLmVycm9ycz8ucmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnJvbGxtZW50IFR5cGUgaXMgbWFuZGF0b3J5XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInN0YXJ0RGF0ZVwiIG1hdElucHV0ICNzdGFydERhdGUgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnREYXRlXCIgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaTE4bi1wbGFjZWhvbGRlciAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiIHBsYWNlaG9sZGVyPVwiQ2hvb3NlIHN0YXJ0RGF0ZShkZC1tbS15eXl5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwidG9kYXlcIiAgcmVhZG9ubHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIgKGNsb3NlZCk9XCJzdGFydERhdGUuYmx1cigpXCIgaTE4bi1hcmlhLWxhYmVsIGFyaWEtbGFiZWw9XCJEYXRlIHBpY2tlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgW2hpZGRlbl09XCJmYWxzZVwiIGkxOG49XCJTdGFydCBkYXRlIEVycm9yfEV4cGxhaW5zIG5hbWUgaXMgcmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgZGF0ZSBpcyBtYW5kYXRvcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbmREYXRlXCIgbWF0SW5wdXQgI2VuZERhdGUgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiIFttYXREYXRlcGlja2VyXT1cImVuZHBpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXIgKGZvY3VzKT1cImVuZHBpY2tlci5vcGVuKClcIiBwbGFjZWhvbGRlcj1cIkNob29zZSBlbmREYXRlKGRkLW1tLXl5eXkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJ0b2RheVwiIHJlYWRvbmx5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJlbmRwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZW5kcGlja2VyIChjbG9zZWQpPVwiZW5kRGF0ZS5ibHVyKClcIiBpMThuLWFyaWEtbGFiZWwgYXJpYS1sYWJlbD1cIkRhdGUgcGlja2VyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1kYXRlcGlja2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgaTE4bj1cIkVuZCBkYXRlIEVycm9yfEV4cGxhaW5zIG5hbWUgaXMgcmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kIGRhdGUgaXMgbWFuZGF0b3J5XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVucm9sbG1lbnRFbmREYXRlXCIgbWF0SW5wdXQgI2Vucm9sbG1lbnRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cImVucm9sbG1lbnRFbmREYXRlXCIgW21hdERhdGVwaWNrZXJdPVwiZW5yb2xsbWVudEVuZFBpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXIgKGZvY3VzKT1cImVucm9sbG1lbnRFbmRQaWNrZXIub3BlbigpXCIgcGxhY2Vob2xkZXI9XCJDaG9vc2UgZW5yb2xsbWVudEVuZERhdGUoZGQtbW0teXl5eSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cInRvZGF5XCIgIHJlYWRvbmx5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJlbnJvbGxtZW50RW5kUGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2Vucm9sbG1lbnRFbmRQaWNrZXIgKGNsb3NlZCk9XCJlbnJvbGxtZW50RW5kRGF0ZS5ibHVyKClcIiBpMThuLWFyaWEtbGFiZWwgYXJpYS1sYWJlbD1cIkRhdGUgcGlja2VyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1kYXRlcGlja2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgaTE4bj1cIkVuZCBkYXRlIEVycm9yfEV4cGxhaW5zIG5hbWUgaXMgcmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kIGRhdGUgaXMgbWFuZGF0b3J5XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIiBjbGFzcz1cIm1iLTAtaW1wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid3MtbWF0LWFjY2VudC1ib3JkZXIgZmxleC1hdXRvLWRpc3BsYXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndzLW1hdC1kZWZhdWx0LXRleHRcIiA+RGlzY2FyZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC13aGl0ZSB3cy1tYXQtcHJpbWFyeS1iYWNrZ3JvdW5kIGZsZXgtYXV0by1kaXNwbGF5XCIgXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ1cGxvYWRTYXZlRGF0YSB8fCBjcmVhdGVCYXRjaEZvcm0/LmludmFsaWRcIiAoY2xpY2spPVwiY3JlYXRlQmF0Y2hTdWJtaXQoY3JlYXRlQmF0Y2hGb3JtKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGVcIiA+Q3JlYXRlPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInVwbG9hZFNhdmVEYXRhXCIgY2xhc3M9XCJweC00IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiMzBcIj48L21hdC1zcGlubmVyPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbjwvZm9ybT5cblxuPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBpMTgtdmFsdWUgaTE4LWFyaWEtdmFsdWUgYXJpYS12YWx1ZT1cIkJhdGNoIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCJcbiAgdmFsdWU9XCJCYXRjaCBjcmVhdGVkIHN1Y2Nlc3NmdWxseSFcIiAjdG9hc3RTdWNjZXNzIC8+XG48aW5wdXQgdHlwZT1cImhpZGRlblwiIGkxOC12YWx1ZSBpMTgtYXJpYS12YWx1ZSBhcmlhLXZhbHVlPVwidW5hYmxlIHRvIGNyZWF0ZSBiYXRjaFwiXG4gIHZhbHVlPVwiRXJyb3IgaW4gY3JlYXRpbmcgYmF0Y2ghXCIgI3RvYXN0RXJyb3IgLz4iXX0=
1
+ import { Component, Inject, ViewChild } from '@angular/core';
2
+ import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
3
+ import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';
4
+ import { DateAdapter, NativeDateAdapter } from '@angular/material/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/legacy-dialog";
7
+ import * as i2 from "../../services/app-toc.service";
8
+ import * as i3 from "@angular/material/legacy-snack-bar";
9
+ import * as i4 from "@sunbird-cb/utils-v2";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/forms";
12
+ import * as i7 from "@angular/material/legacy-button";
13
+ import * as i8 from "@angular/material/legacy-form-field";
14
+ import * as i9 from "@angular/material/legacy-input";
15
+ import * as i10 from "@angular/material/legacy-progress-spinner";
16
+ import * as i11 from "@angular/material/legacy-select";
17
+ import * as i12 from "@angular/material/legacy-core";
18
+ import * as i13 from "@angular/material/datepicker";
19
+ /**
20
+ * Format a date to YYYY-MM-DD format
21
+ */
22
+ function startWithYearformat(date) {
23
+ const year = date.getFullYear();
24
+ const month = String(date.getMonth() + 1).padStart(2, '0');
25
+ const day = String(date.getDate()).padStart(2, '0');
26
+ return `${year}-${month}-${day}`;
27
+ }
28
+ export class CreateBatchDialogComponent {
29
+ constructor(dialogRef, data, appTocService, snackBar, configSvc) {
30
+ this.dialogRef = dialogRef;
31
+ this.data = data;
32
+ this.appTocService = appTocService;
33
+ this.snackBar = snackBar;
34
+ this.configSvc = configSvc;
35
+ this.enrollmentTypes = ['open', 'closed'];
36
+ this.namePatern = `^[a-zA-Z\\s\\']{1,32}$`;
37
+ this.today = new Date();
38
+ this.uploadSaveData = false;
39
+ this.createBatchForm = new UntypedFormGroup({
40
+ name: new UntypedFormControl('', [Validators.required, Validators.pattern(this.namePatern)]),
41
+ description: new UntypedFormControl('', []),
42
+ enrollmentType: new UntypedFormControl(this.enrollmentTypes[0], [Validators.required]),
43
+ startDate: new UntypedFormControl('', [Validators.required]),
44
+ endDate: new UntypedFormControl('', []),
45
+ enrollmentEndDate: new UntypedFormControl('', []),
46
+ // createdFor: new FormControl('', []),
47
+ mentors: new UntypedFormControl('', []),
48
+ courseId: new UntypedFormControl('', []),
49
+ createdBy: new UntypedFormControl('', []),
50
+ });
51
+ }
52
+ ngOnInit() {
53
+ }
54
+ createBatchSubmit(form) {
55
+ this.uploadSaveData = true;
56
+ form.value.startDate = startWithYearformat(new Date(`${form.value.startDate}`));
57
+ if (form.value.endDate) {
58
+ form.value.endDate = startWithYearformat(new Date(`${form.value.endDate}`));
59
+ }
60
+ else {
61
+ delete form.value.endDate;
62
+ }
63
+ if (form.value.enrollmentEndDate) {
64
+ form.value.enrollmentEndDate = startWithYearformat(new Date(`${form.value.enrollmentEndDate}`));
65
+ }
66
+ else {
67
+ delete form.value.enrollmentEndDate;
68
+ }
69
+ form.value.mentors = [];
70
+ if (this.configSvc.userProfile) {
71
+ // form.value.createdFor = [this.configSvc.userProfile.rootOrgId]
72
+ form.value.createdBy = this.configSvc.userProfile.userId;
73
+ }
74
+ if (this.data && this.data.content) {
75
+ form.value.courseId = this.data.content.identifier;
76
+ }
77
+ this.appTocService.createBatch(form.value).subscribe(() => {
78
+ this.uploadSaveData = false;
79
+ this.openSnackbar(this.toastSuccess.nativeElement.value);
80
+ this.dialogRef.close();
81
+ }, err => {
82
+ if (err && err.error && err.error.params && err.error.params.errmsg) {
83
+ this.openSnackbar(err.error.params.errmsg);
84
+ }
85
+ else {
86
+ this.openSnackbar(this.toastError.nativeElement.value);
87
+ }
88
+ this.uploadSaveData = false;
89
+ });
90
+ }
91
+ openSnackbar(primaryMsg, duration = 5000) {
92
+ this.snackBar.open(primaryMsg, 'X', {
93
+ duration,
94
+ });
95
+ }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateBatchDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.AppTocService }, { token: i3.MatLegacySnackBar }, { token: i4.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Component }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateBatchDialogComponent, selector: "ws-app-create-batch-dialog", providers: [
98
+ { provide: DateAdapter, useClass: NativeDateAdapter },
99
+ ], viewQueries: [{ propertyName: "toastSuccess", first: true, predicate: ["toastSuccess"], descendants: true, static: true }, { propertyName: "toastError", first: true, predicate: ["toastError"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"createBatchForm\">\r\n <!-- <h2 mat-dialog-title>Install Angular</h2> -->\r\n <mat-dialog-content class=\"mat-typography pad-fix\">\r\n <div class=\"flex flex-1 custom\">\r\n <div class=\"flex flex-4 flex-column margin-right-l\">\r\n\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <label for=\"name\" class=\" margin-remove-bottom form-label required\"\r\n i18n=\"Name label|Label which explains the user to enter name\" i18n-aria-label\r\n aria-label=\"Name label\">\r\n Name\r\n </label>\r\n <input id=\"name\" matInput #name formControlName=\"name\" i18n-placeholder\r\n placeholder=\"Enter Name\" i18n-aria-label aria-label=\"Name input\" />\r\n <mat-error [hidden]=\"false\" i18n=\"Name Error|Explains name is required\" i18n-aria-label\r\n aria-label=\"Name Error|Explains name is required \"\r\n *ngIf=\"createBatchForm?.controls['name'].errors?.required\">\r\n Name is mandatory\r\n </mat-error>\r\n <mat-error [hidden]=\"false\" *ngIf=\"createBatchForm?.controls['name'].errors?.pattern\"\r\n i18n-aria-label\r\n aria-label=\"Name Error|Name fields cannot contain numbers and special characters \">\r\n Name fields cannot contain numbers and special characters '\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <label for=\"description\" class=\" margin-remove-bottom form-label\"\r\n i18n=\"description label|Label which explains the user to enter description\" i18n-aria-label\r\n aria-label=\"description label\">\r\n Description\r\n </label>\r\n <input id=\"description\" matInput #description formControlName=\"description\" i18n-placeholder\r\n placeholder=\"Enter Description\" i18n-aria-label aria-label=\"Description input\" />\r\n <mat-error [hidden]=\"false\" i18n=\"Description Error|Explains description is required\" i18n-aria-label\r\n aria-label=\"Description Error|Explains description is required \"\r\n *ngIf=\"createBatchForm?.controls['description'].errors?.required\">\r\n Description is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <label for=\"enrollmentType\" class=\" margin-remove-bottom form-label required\"\r\n i18n=\"enrollmentType label|Label which explains the user to enter enrollmentType\" i18n-aria-label\r\n aria-label=\"enrollmentType label\">\r\n Enrollment Type\r\n </label>\r\n <mat-select matInput formControlName=\"enrollmentType\" #enrollmentType >\r\n <mat-option [value]=\"c\" *ngFor=\"let c of enrollmentTypes\" [innerHTML]=\"c\"></mat-option>\r\n </mat-select>\r\n <mat-error [hidden]=\"false\" i18n=\"enrollmentType Error|Explains enrollmentType is required\" i18n-aria-label\r\n aria-label=\"enrollmentType Error|Explains enrollmentType is required \"\r\n *ngIf=\"createBatchForm?.controls['enrollmentType'].errors?.required\">\r\n Enrollment Type is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input id=\"startDate\" matInput #startDate formControlName=\"startDate\" [matDatepicker]=\"picker\"\r\n i18n-placeholder (focus)=\"picker.open()\" placeholder=\"Choose startDate(dd-mm-yyyy)\"\r\n [min]=\"today\" readonly>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker (closed)=\"startDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\r\n </mat-datepicker>\r\n <mat-error [hidden]=\"false\" i18n=\"Start date Error|Explains name is required\">\r\n Start date is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input id=\"endDate\" matInput #endDate formControlName=\"endDate\" [matDatepicker]=\"endpicker\"\r\n i18n-placeholder (focus)=\"endpicker.open()\" placeholder=\"Choose endDate(dd-mm-yyyy)\"\r\n [min]=\"today\" readonly>\r\n <mat-datepicker-toggle matSuffix [for]=\"endpicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #endpicker (closed)=\"endDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\r\n </mat-datepicker>\r\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\r\n End date is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input id=\"enrollmentEndDate\" matInput #enrollmentEndDate formControlName=\"enrollmentEndDate\" [matDatepicker]=\"enrollmentEndPicker\"\r\n i18n-placeholder (focus)=\"enrollmentEndPicker.open()\" placeholder=\"Choose enrollmentEndDate(dd-mm-yyyy)\"\r\n [min]=\"today\" readonly>\r\n <mat-datepicker-toggle matSuffix [for]=\"enrollmentEndPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #enrollmentEndPicker (closed)=\"enrollmentEndDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\r\n </mat-datepicker>\r\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\r\n End date is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-dialog-actions align=\"end\" class=\"mb-0-imp\">\r\n <button mat-raised-button type=\"button\" [mat-dialog-close]=\"true\"\r\n class=\"ws-mat-accent-border flex-auto-display\">\r\n <span class=\"ws-mat-default-text\" >Discard</span>\r\n </button>\r\n <button mat-raised-button type=\"submit\"\r\n class=\"text-white ws-mat-primary-background flex-auto-display\" \r\n [disabled]=\"uploadSaveData || createBatchForm?.invalid\" (click)=\"createBatchSubmit(createBatchForm)\">\r\n <span class=\"text-white\" >Create</span>\r\n </button>\r\n <span *ngIf=\"uploadSaveData\" class=\"px-4 flex items-center justify-center\">\r\n <mat-spinner [diameter]=\"30\"></mat-spinner>\r\n </span>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n</form>\r\n\r\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"Batch created successfully\"\r\n value=\"Batch created successfully!\" #toastSuccess />\r\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"unable to create batch\"\r\n value=\"Error in creating batch!\" #toastError />", styles: [".start-card{min-width:80px;margin:0 30px 30px;font-size:16px}.start-card mat-card-content{margin-top:10px}@media only screen and (max-width: 599px){.flex-auto-display{flex:auto;margin-left:0!important;margin-top:1rem}}@media only screen and (min-width: 600px) and (max-width: 959px){.flex-auto-display{flex:auto}}.similar{display:none!important}@media only screen and (max-width: 599px){.similar{display:none!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.similar{display:none!important}}@media only screen and (max-width: 599px){.mob{margin-left:0!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.mob{margin-left:0!important}}.custom{flex-direction:row}@media only screen and (max-width: 599px){.custom{flex-direction:column}}@media only screen and (min-width: 600px) and (max-width: 959px){.custom{flex-direction:column}}.pad-fix{padding:0 0 0 24px}.flex-4{flex:4}.flex-3{flex:3}.flex-2{flex:2}.mb-0-imp{margin-bottom:0!important}.w-full-imp{width:100%!important}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i8.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "directive", type: i9.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i10.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i1.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i11.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i13.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i13.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateBatchDialogComponent, decorators: [{
102
+ type: Component,
103
+ args: [{ selector: 'ws-app-create-batch-dialog', providers: [
104
+ { provide: DateAdapter, useClass: NativeDateAdapter },
105
+ ], template: "<form [formGroup]=\"createBatchForm\">\r\n <!-- <h2 mat-dialog-title>Install Angular</h2> -->\r\n <mat-dialog-content class=\"mat-typography pad-fix\">\r\n <div class=\"flex flex-1 custom\">\r\n <div class=\"flex flex-4 flex-column margin-right-l\">\r\n\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <label for=\"name\" class=\" margin-remove-bottom form-label required\"\r\n i18n=\"Name label|Label which explains the user to enter name\" i18n-aria-label\r\n aria-label=\"Name label\">\r\n Name\r\n </label>\r\n <input id=\"name\" matInput #name formControlName=\"name\" i18n-placeholder\r\n placeholder=\"Enter Name\" i18n-aria-label aria-label=\"Name input\" />\r\n <mat-error [hidden]=\"false\" i18n=\"Name Error|Explains name is required\" i18n-aria-label\r\n aria-label=\"Name Error|Explains name is required \"\r\n *ngIf=\"createBatchForm?.controls['name'].errors?.required\">\r\n Name is mandatory\r\n </mat-error>\r\n <mat-error [hidden]=\"false\" *ngIf=\"createBatchForm?.controls['name'].errors?.pattern\"\r\n i18n-aria-label\r\n aria-label=\"Name Error|Name fields cannot contain numbers and special characters \">\r\n Name fields cannot contain numbers and special characters '\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <label for=\"description\" class=\" margin-remove-bottom form-label\"\r\n i18n=\"description label|Label which explains the user to enter description\" i18n-aria-label\r\n aria-label=\"description label\">\r\n Description\r\n </label>\r\n <input id=\"description\" matInput #description formControlName=\"description\" i18n-placeholder\r\n placeholder=\"Enter Description\" i18n-aria-label aria-label=\"Description input\" />\r\n <mat-error [hidden]=\"false\" i18n=\"Description Error|Explains description is required\" i18n-aria-label\r\n aria-label=\"Description Error|Explains description is required \"\r\n *ngIf=\"createBatchForm?.controls['description'].errors?.required\">\r\n Description is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <label for=\"enrollmentType\" class=\" margin-remove-bottom form-label required\"\r\n i18n=\"enrollmentType label|Label which explains the user to enter enrollmentType\" i18n-aria-label\r\n aria-label=\"enrollmentType label\">\r\n Enrollment Type\r\n </label>\r\n <mat-select matInput formControlName=\"enrollmentType\" #enrollmentType >\r\n <mat-option [value]=\"c\" *ngFor=\"let c of enrollmentTypes\" [innerHTML]=\"c\"></mat-option>\r\n </mat-select>\r\n <mat-error [hidden]=\"false\" i18n=\"enrollmentType Error|Explains enrollmentType is required\" i18n-aria-label\r\n aria-label=\"enrollmentType Error|Explains enrollmentType is required \"\r\n *ngIf=\"createBatchForm?.controls['enrollmentType'].errors?.required\">\r\n Enrollment Type is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input id=\"startDate\" matInput #startDate formControlName=\"startDate\" [matDatepicker]=\"picker\"\r\n i18n-placeholder (focus)=\"picker.open()\" placeholder=\"Choose startDate(dd-mm-yyyy)\"\r\n [min]=\"today\" readonly>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker (closed)=\"startDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\r\n </mat-datepicker>\r\n <mat-error [hidden]=\"false\" i18n=\"Start date Error|Explains name is required\">\r\n Start date is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input id=\"endDate\" matInput #endDate formControlName=\"endDate\" [matDatepicker]=\"endpicker\"\r\n i18n-placeholder (focus)=\"endpicker.open()\" placeholder=\"Choose endDate(dd-mm-yyyy)\"\r\n [min]=\"today\" readonly>\r\n <mat-datepicker-toggle matSuffix [for]=\"endpicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #endpicker (closed)=\"endDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\r\n </mat-datepicker>\r\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\r\n End date is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input id=\"enrollmentEndDate\" matInput #enrollmentEndDate formControlName=\"enrollmentEndDate\" [matDatepicker]=\"enrollmentEndPicker\"\r\n i18n-placeholder (focus)=\"enrollmentEndPicker.open()\" placeholder=\"Choose enrollmentEndDate(dd-mm-yyyy)\"\r\n [min]=\"today\" readonly>\r\n <mat-datepicker-toggle matSuffix [for]=\"enrollmentEndPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #enrollmentEndPicker (closed)=\"enrollmentEndDate.blur()\" i18n-aria-label aria-label=\"Date picker\">\r\n </mat-datepicker>\r\n <mat-error [hidden]=\"false\" i18n=\"End date Error|Explains name is required\">\r\n End date is mandatory\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-dialog-actions align=\"end\" class=\"mb-0-imp\">\r\n <button mat-raised-button type=\"button\" [mat-dialog-close]=\"true\"\r\n class=\"ws-mat-accent-border flex-auto-display\">\r\n <span class=\"ws-mat-default-text\" >Discard</span>\r\n </button>\r\n <button mat-raised-button type=\"submit\"\r\n class=\"text-white ws-mat-primary-background flex-auto-display\" \r\n [disabled]=\"uploadSaveData || createBatchForm?.invalid\" (click)=\"createBatchSubmit(createBatchForm)\">\r\n <span class=\"text-white\" >Create</span>\r\n </button>\r\n <span *ngIf=\"uploadSaveData\" class=\"px-4 flex items-center justify-center\">\r\n <mat-spinner [diameter]=\"30\"></mat-spinner>\r\n </span>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n</form>\r\n\r\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"Batch created successfully\"\r\n value=\"Batch created successfully!\" #toastSuccess />\r\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"unable to create batch\"\r\n value=\"Error in creating batch!\" #toastError />", styles: [".start-card{min-width:80px;margin:0 30px 30px;font-size:16px}.start-card mat-card-content{margin-top:10px}@media only screen and (max-width: 599px){.flex-auto-display{flex:auto;margin-left:0!important;margin-top:1rem}}@media only screen and (min-width: 600px) and (max-width: 959px){.flex-auto-display{flex:auto}}.similar{display:none!important}@media only screen and (max-width: 599px){.similar{display:none!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.similar{display:none!important}}@media only screen and (max-width: 599px){.mob{margin-left:0!important}}@media only screen and (min-width: 600px) and (max-width: 959px){.mob{margin-left:0!important}}.custom{flex-direction:row}@media only screen and (max-width: 599px){.custom{flex-direction:column}}@media only screen and (min-width: 600px) and (max-width: 959px){.custom{flex-direction:column}}.pad-fix{padding:0 0 0 24px}.flex-4{flex:4}.flex-3{flex:3}.flex-2{flex:2}.mb-0-imp{margin-bottom:0!important}.w-full-imp{width:100%!important}\n"] }]
106
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
107
+ type: Inject,
108
+ args: [MAT_DIALOG_DATA]
109
+ }] }, { type: i2.AppTocService }, { type: i3.MatLegacySnackBar }, { type: i4.ConfigurationsService }]; }, propDecorators: { toastSuccess: [{
110
+ type: ViewChild,
111
+ args: ['toastSuccess', { static: true }]
112
+ }], toastError: [{
113
+ type: ViewChild,
114
+ args: ['toastError', { static: true }]
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhdGNoLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvY29tcG9uZW50cy9jcmVhdGUtYmF0Y2gtZGlhbG9nL2NyZWF0ZS1iYXRjaC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWJhdGNoLWRpYWxvZy9jcmVhdGUtYmF0Y2gtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFjLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQTtBQUM1RixPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQy9ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUlqRixPQUFPLEVBQUUsV0FBVyxFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUFFekY7O0dBRUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLElBQVU7SUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxPQUFPLEdBQUcs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LENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNsQyxRQUFRO1NBQ1QsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0ExRVUsMEJBQTBCLG9EQVczQixlQUFlO21HQVhkLDBCQUEwQixxREFKMUI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1NBQ3RELCtQQ3hCSCwyL1FBMEhpRDs7NEZEaEdwQywwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0UsNEJBQTRCLGFBRzNCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7cUJBQ3REOzswQkFhRSxNQUFNOzJCQUFDLGVBQWU7NElBTG9CLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0LCBmb3J3YXJkUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmLCBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnXHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcclxuaW1wb3J0IHsgQXBwVG9jU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC10b2Muc2VydmljZSdcclxuaW1wb3J0IHsgTWF0TGVnYWN5U25hY2tCYXIgYXMgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktc25hY2stYmFyJ1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTmF0aXZlRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xyXG5cclxuLyoqXHJcbiAqIEZvcm1hdCBhIGRhdGUgdG8gWVlZWS1NTS1ERCBmb3JtYXRcclxuICovXHJcbmZ1bmN0aW9uIHN0YXJ0V2l0aFllYXJmb3JtYXQoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKVxyXG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcclxuICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJylcclxuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3dzLWFwcC1jcmVhdGUtYmF0Y2gtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWJhdGNoLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWJhdGNoLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IE5hdGl2ZURhdGVBZGFwdGVyIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZUJhdGNoRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjcmVhdGVCYXRjaEZvcm06IFVudHlwZWRGb3JtR3JvdXBcclxuICBlbnJvbGxtZW50VHlwZXMgPSBbJ29wZW4nLCAnY2xvc2VkJ11cclxuICBuYW1lUGF0ZXJuID0gYF5bYS16QS1aXFxcXHNcXFxcJ117MSwzMn0kYFxyXG4gIHRvZGF5ID0gbmV3IERhdGUoKVxyXG4gIHVwbG9hZFNhdmVEYXRhID0gZmFsc2VcclxuICBAVmlld0NoaWxkKCd0b2FzdFN1Y2Nlc3MnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0b2FzdFN1Y2Nlc3MhOiBFbGVtZW50UmVmPGFueT5cclxuICBAVmlld0NoaWxkKCd0b2FzdEVycm9yJywgeyBzdGF0aWM6IHRydWUgfSkgdG9hc3RFcnJvciE6IEVsZW1lbnRSZWY8YW55PlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDcmVhdGVCYXRjaERpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgYXBwVG9jU2VydmljZTogQXBwVG9jU2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jcmVhdGVCYXRjaEZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcbiAgICAgIG5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5uYW1lUGF0ZXJuKV0pLFxyXG4gICAgICBkZXNjcmlwdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgW10pLFxyXG4gICAgICBlbnJvbGxtZW50VHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLmVucm9sbG1lbnRUeXBlc1swXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgc3RhcnREYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICBlbmREYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbXSksXHJcbiAgICAgIGVucm9sbG1lbnRFbmREYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbXSksXHJcbiAgICAgIC8vIGNyZWF0ZWRGb3I6IG5ldyBGb3JtQ29udHJvbCgnJywgW10pLFxyXG4gICAgICBtZW50b3JzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbXSksXHJcbiAgICAgIGNvdXJzZUlkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbXSksXHJcbiAgICAgIGNyZWF0ZWRCeTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgW10pLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVCYXRjaFN1Ym1pdChmb3JtOiBhbnkpIHtcclxuICAgIHRoaXMudXBsb2FkU2F2ZURhdGEgPSB0cnVlXHJcbiAgICBmb3JtLnZhbHVlLnN0YXJ0RGF0ZSA9IHN0YXJ0V2l0aFllYXJmb3JtYXQobmV3IERhdGUoYCR7Zm9ybS52YWx1ZS5zdGFydERhdGV9YCkpXHJcbiAgICBpZiAoZm9ybS52YWx1ZS5lbmREYXRlKSB7XHJcbiAgICAgIGZvcm0udmFsdWUuZW5kRGF0ZSA9IHN0YXJ0V2l0aFllYXJmb3JtYXQobmV3IERhdGUoYCR7Zm9ybS52YWx1ZS5lbmREYXRlfWApKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVsZXRlIGZvcm0udmFsdWUuZW5kRGF0ZVxyXG4gICAgfVxyXG4gICAgaWYgKGZvcm0udmFsdWUuZW5yb2xsbWVudEVuZERhdGUpIHtcclxuICAgICAgZm9ybS52YWx1ZS5lbnJvbGxtZW50RW5kRGF0ZSA9IHN0YXJ0V2l0aFllYXJmb3JtYXQobmV3IERhdGUoYCR7Zm9ybS52YWx1ZS5lbnJvbGxtZW50RW5kRGF0ZX1gKSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlbGV0ZSBmb3JtLnZhbHVlLmVucm9sbG1lbnRFbmREYXRlXHJcbiAgICB9XHJcbiAgICBmb3JtLnZhbHVlLm1lbnRvcnMgPSBbXVxyXG4gICAgaWYgKHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlKSB7XHJcbiAgICAgIC8vIGZvcm0udmFsdWUuY3JlYXRlZEZvciA9IFt0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5yb290T3JnSWRdXHJcbiAgICAgIGZvcm0udmFsdWUuY3JlYXRlZEJ5ID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlcklkXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5jb250ZW50KSB7XHJcbiAgICAgIGZvcm0udmFsdWUuY291cnNlSWQgPSB0aGlzLmRhdGEuY29udGVudC5pZGVudGlmaWVyXHJcbiAgICB9XHJcbiAgICB0aGlzLmFwcFRvY1NlcnZpY2UuY3JlYXRlQmF0Y2goZm9ybS52YWx1ZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRTYXZlRGF0YSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50b2FzdFN1Y2Nlc3MubmF0aXZlRWxlbWVudC52YWx1ZSlcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpXHJcbiAgICAgIH0sXHJcbiAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgaWYgKGVyciAmJiBlcnIuZXJyb3IgJiYgZXJyLmVycm9yLnBhcmFtcyAmJiBlcnIuZXJyb3IucGFyYW1zLmVycm1zZykge1xyXG4gICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoZXJyLmVycm9yLnBhcmFtcy5lcnJtc2cpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudG9hc3RFcnJvci5uYXRpdmVFbGVtZW50LnZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwbG9hZFNhdmVEYXRhID0gZmFsc2VcclxuICAgICAgfSlcclxuICB9XHJcbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xyXG4gICAgdGhpcy5zbmFja0Jhci5vcGVuKHByaW1hcnlNc2csICdYJywge1xyXG4gICAgICBkdXJhdGlvbixcclxuICAgIH0pXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImNyZWF0ZUJhdGNoRm9ybVwiPlxyXG4gICAgPCEtLSA8aDIgbWF0LWRpYWxvZy10aXRsZT5JbnN0YWxsIEFuZ3VsYXI8L2gyPiAtLT5cclxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeSBwYWQtZml4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGN1c3RvbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTQgZmxleC1jb2x1bW4gbWFyZ2luLXJpZ2h0LWxcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiIG1hcmdpbi1yZW1vdmUtYm90dG9tIGZvcm0tbGFiZWwgcmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaTE4bj1cIk5hbWUgbGFiZWx8TGFiZWwgd2hpY2ggZXhwbGFpbnMgdGhlIHVzZXIgdG8gZW50ZXIgbmFtZVwiIGkxOG4tYXJpYS1sYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5hbWUgbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwibmFtZVwiIG1hdElucHV0ICNuYW1lIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBpMThuLXBsYWNlaG9sZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIE5hbWVcIiBpMThuLWFyaWEtbGFiZWwgYXJpYS1sYWJlbD1cIk5hbWUgaW5wdXRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yIFtoaWRkZW5dPVwiZmFsc2VcIiBpMThuPVwiTmFtZSBFcnJvcnxFeHBsYWlucyBuYW1lIGlzIHJlcXVpcmVkXCIgaTE4bi1hcmlhLWxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmFtZSBFcnJvcnxFeHBsYWlucyBuYW1lIGlzIHJlcXVpcmVkIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyZWF0ZUJhdGNoRm9ybT8uY29udHJvbHNbJ25hbWUnXS5lcnJvcnM/LnJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIGlzIG1hbmRhdG9yeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgKm5nSWY9XCJjcmVhdGVCYXRjaEZvcm0/LmNvbnRyb2xzWyduYW1lJ10uZXJyb3JzPy5wYXR0ZXJuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4tYXJpYS1sYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5hbWUgRXJyb3J8TmFtZSBmaWVsZHMgY2Fubm90IGNvbnRhaW4gbnVtYmVycyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSBmaWVsZHMgY2Fubm90IGNvbnRhaW4gbnVtYmVycyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzICAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiIG1hcmdpbi1yZW1vdmUtYm90dG9tIGZvcm0tbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaTE4bj1cImRlc2NyaXB0aW9uIGxhYmVsfExhYmVsIHdoaWNoIGV4cGxhaW5zIHRoZSB1c2VyIHRvIGVudGVyIGRlc2NyaXB0aW9uXCIgaTE4bi1hcmlhLWxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiZGVzY3JpcHRpb24gbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImRlc2NyaXB0aW9uXCIgbWF0SW5wdXQgI2Rlc2NyaXB0aW9uIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgaTE4bi1wbGFjZWhvbGRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBEZXNjcmlwdGlvblwiIGkxOG4tYXJpYS1sYWJlbCBhcmlhLWxhYmVsPVwiRGVzY3JpcHRpb24gaW5wdXRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yIFtoaWRkZW5dPVwiZmFsc2VcIiBpMThuPVwiRGVzY3JpcHRpb24gRXJyb3J8RXhwbGFpbnMgZGVzY3JpcHRpb24gaXMgcmVxdWlyZWRcIiBpMThuLWFyaWEtbGFiZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZXNjcmlwdGlvbiBFcnJvcnxFeHBsYWlucyBkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcmVhdGVCYXRjaEZvcm0/LmNvbnRyb2xzWydkZXNjcmlwdGlvbiddLmVycm9ycz8ucmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uIGlzIG1hbmRhdG9yeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5yb2xsbWVudFR5cGVcIiBjbGFzcz1cIiBtYXJnaW4tcmVtb3ZlLWJvdHRvbSBmb3JtLWxhYmVsIHJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG49XCJlbnJvbGxtZW50VHlwZSBsYWJlbHxMYWJlbCB3aGljaCBleHBsYWlucyB0aGUgdXNlciB0byBlbnRlciBlbnJvbGxtZW50VHlwZVwiIGkxOG4tYXJpYS1sYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImVucm9sbG1lbnRUeXBlIGxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnJvbGxtZW50IFR5cGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW5yb2xsbWVudFR5cGVcIiAjZW5yb2xsbWVudFR5cGUgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImNcIiAqbmdGb3I9XCJsZXQgYyBvZiBlbnJvbGxtZW50VHlwZXNcIiBbaW5uZXJIVE1MXT1cImNcIj48L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbaGlkZGVuXT1cImZhbHNlXCIgaTE4bj1cImVucm9sbG1lbnRUeXBlIEVycm9yfEV4cGxhaW5zIGVucm9sbG1lbnRUeXBlIGlzIHJlcXVpcmVkXCIgaTE4bi1hcmlhLWxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiZW5yb2xsbWVudFR5cGUgRXJyb3J8RXhwbGFpbnMgZW5yb2xsbWVudFR5cGUgaXMgcmVxdWlyZWQgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3JlYXRlQmF0Y2hGb3JtPy5jb250cm9sc1snZW5yb2xsbWVudFR5cGUnXS5lcnJvcnM/LnJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnJvbGxtZW50IFR5cGUgaXMgbWFuZGF0b3J5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInN0YXJ0RGF0ZVwiIG1hdElucHV0ICNzdGFydERhdGUgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnREYXRlXCIgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpMThuLXBsYWNlaG9sZGVyIChmb2N1cyk9XCJwaWNrZXIub3BlbigpXCIgcGxhY2Vob2xkZXI9XCJDaG9vc2Ugc3RhcnREYXRlKGRkLW1tLXl5eXkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cInRvZGF5XCIgIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlciAoY2xvc2VkKT1cInN0YXJ0RGF0ZS5ibHVyKClcIiBpMThuLWFyaWEtbGFiZWwgYXJpYS1sYWJlbD1cIkRhdGUgcGlja2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgW2hpZGRlbl09XCJmYWxzZVwiIGkxOG49XCJTdGFydCBkYXRlIEVycm9yfEV4cGxhaW5zIG5hbWUgaXMgcmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydCBkYXRlIGlzIG1hbmRhdG9yeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVuZERhdGVcIiBtYXRJbnB1dCAjZW5kRGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJlbmREYXRlXCIgW21hdERhdGVwaWNrZXJdPVwiZW5kcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpMThuLXBsYWNlaG9sZGVyIChmb2N1cyk9XCJlbmRwaWNrZXIub3BlbigpXCIgcGxhY2Vob2xkZXI9XCJDaG9vc2UgZW5kRGF0ZShkZC1tbS15eXl5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJ0b2RheVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImVuZHBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2VuZHBpY2tlciAoY2xvc2VkKT1cImVuZERhdGUuYmx1cigpXCIgaTE4bi1hcmlhLWxhYmVsIGFyaWEtbGFiZWw9XCJEYXRlIHBpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yIFtoaWRkZW5dPVwiZmFsc2VcIiBpMThuPVwiRW5kIGRhdGUgRXJyb3J8RXhwbGFpbnMgbmFtZSBpcyByZXF1aXJlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVuZCBkYXRlIGlzIG1hbmRhdG9yeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbnJvbGxtZW50RW5kRGF0ZVwiIG1hdElucHV0ICNlbnJvbGxtZW50RW5kRGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJlbnJvbGxtZW50RW5kRGF0ZVwiIFttYXREYXRlcGlja2VyXT1cImVucm9sbG1lbnRFbmRQaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXIgKGZvY3VzKT1cImVucm9sbG1lbnRFbmRQaWNrZXIub3BlbigpXCIgcGxhY2Vob2xkZXI9XCJDaG9vc2UgZW5yb2xsbWVudEVuZERhdGUoZGQtbW0teXl5eSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwidG9kYXlcIiAgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZW5yb2xsbWVudEVuZFBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2Vucm9sbG1lbnRFbmRQaWNrZXIgKGNsb3NlZCk9XCJlbnJvbGxtZW50RW5kRGF0ZS5ibHVyKClcIiBpMThuLWFyaWEtbGFiZWwgYXJpYS1sYWJlbD1cIkRhdGUgcGlja2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgW2hpZGRlbl09XCJmYWxzZVwiIGkxOG49XCJFbmQgZGF0ZSBFcnJvcnxFeHBsYWlucyBuYW1lIGlzIHJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kIGRhdGUgaXMgbWFuZGF0b3J5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiIGNsYXNzPVwibWItMC1pbXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid3MtbWF0LWFjY2VudC1ib3JkZXIgZmxleC1hdXRvLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid3MtbWF0LWRlZmF1bHQtdGV4dFwiID5EaXNjYXJkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdoaXRlIHdzLW1hdC1wcmltYXJ5LWJhY2tncm91bmQgZmxleC1hdXRvLWRpc3BsYXlcIiBcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidXBsb2FkU2F2ZURhdGEgfHwgY3JlYXRlQmF0Y2hGb3JtPy5pbnZhbGlkXCIgKGNsaWNrKT1cImNyZWF0ZUJhdGNoU3VibWl0KGNyZWF0ZUJhdGNoRm9ybSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGVcIiA+Q3JlYXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1cGxvYWRTYXZlRGF0YVwiIGNsYXNzPVwicHgtNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiMzBcIj48L21hdC1zcGlubmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuPC9mb3JtPlxyXG5cclxuPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBpMTgtdmFsdWUgaTE4LWFyaWEtdmFsdWUgYXJpYS12YWx1ZT1cIkJhdGNoIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCJcclxuICB2YWx1ZT1cIkJhdGNoIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IVwiICN0b2FzdFN1Y2Nlc3MgLz5cclxuPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBpMTgtdmFsdWUgaTE4LWFyaWEtdmFsdWUgYXJpYS12YWx1ZT1cInVuYWJsZSB0byBjcmVhdGUgYmF0Y2hcIlxyXG4gIHZhbHVlPVwiRXJyb3IgaW4gY3JlYXRpbmcgYmF0Y2ghXCIgI3RvYXN0RXJyb3IgLz4iXX0=
@@ -1,44 +1,44 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/legacy-dialog";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "@angular/material/legacy-form-field";
8
- import * as i5 from "@angular/material/legacy-select";
9
- import * as i6 from "@angular/material/legacy-core";
10
- export class EnrollLanguageDialogueComponent {
11
- constructor(dialogRef, data) {
12
- this.dialogRef = dialogRef;
13
- this.data = data;
14
- this.languageList = [];
15
- }
16
- ngOnInit() {
17
- this.languageList = this.data.languageList || [];
18
- if (this.data.preSelect) {
19
- const preSelectIndex = this.languageList.findIndex((lang) => lang.langId === this.data.preSelect.langId);
20
- this.selectedLanguage = preSelectIndex !== -1 ? this.languageList[preSelectIndex] : null;
21
- }
22
- else {
23
- this.selectedLanguage = this.languageList.length > 0 ? this.languageList[0] : null;
24
- }
25
- }
26
- onLanguageChange($event) {
27
- console.log('Selected Language $event:', $event);
28
- }
29
- onSubmit() {
30
- if (this.selectedLanguage) {
31
- this.dialogRef.close(this.selectedLanguage); // Pass selected object to parent
32
- }
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollLanguageDialogueComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EnrollLanguageDialogueComponent, selector: "ws-app-enroll-language-dialogue", ngImport: i0, template: "<mat-dialog-content>\n <div class=\"dialog-header text-left flex flex-col justify-between align-items-center\">\n <p class=\"mat-subheading-1 text-center\">Choose Your Preferred Language</p>\n <p class=\"mat-body-2 text-center\">This course is available in multiple languages. You can select one to begin.</p>\n </div>\n <div class=\"lang-msg-wrapper\">\n <mat-form-field appearance=\"outline\" class=\"lang-select-wrapper\">\n <mat-select [(ngModel)]=\"selectedLanguage\" (ngModelChange)=\"onLanguageChange($event)\" class=\"mat-body-1\">\n <mat-option *ngFor=\"let lang of languageList\" [value]=\"lang\">\n {{ lang.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <div class=\"flex items-center justify-center\">\n <a (click)=\"this.dialogRef.close()\" class=\"cursor-pointer mat-stroked-button custom-rounded margin-right-m\">Cancel</a>\n <a (click)=\"onSubmit()\" class=\"cursor-pointer action-button\">Confirm & Start Course</a>\n </div>\n </div>\n</mat-dialog-content>\n", styles: [".lang-radio-btn{width:100%;margin-bottom:16px}.mat-form-field{width:100%}.custom-rounded{border:1px solid #1a4ca1!important;border-radius:50px;padding:8px 16px;height:40px;display:flex;align-items:center;justify-content:center;color:#1a4ca1!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }] }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollLanguageDialogueComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'ws-app-enroll-language-dialogue', template: "<mat-dialog-content>\n <div class=\"dialog-header text-left flex flex-col justify-between align-items-center\">\n <p class=\"mat-subheading-1 text-center\">Choose Your Preferred Language</p>\n <p class=\"mat-body-2 text-center\">This course is available in multiple languages. You can select one to begin.</p>\n </div>\n <div class=\"lang-msg-wrapper\">\n <mat-form-field appearance=\"outline\" class=\"lang-select-wrapper\">\n <mat-select [(ngModel)]=\"selectedLanguage\" (ngModelChange)=\"onLanguageChange($event)\" class=\"mat-body-1\">\n <mat-option *ngFor=\"let lang of languageList\" [value]=\"lang\">\n {{ lang.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <div class=\"flex items-center justify-center\">\n <a (click)=\"this.dialogRef.close()\" class=\"cursor-pointer mat-stroked-button custom-rounded margin-right-m\">Cancel</a>\n <a (click)=\"onSubmit()\" class=\"cursor-pointer action-button\">Confirm & Start Course</a>\n </div>\n </div>\n</mat-dialog-content>\n", styles: [".lang-radio-btn{width:100%;margin-bottom:16px}.mat-form-field{width:100%}.custom-rounded{border:1px solid #1a4ca1!important;border-radius:50px;padding:8px 16px;height:40px;display:flex;align-items:center;justify-content:center;color:#1a4ca1!important}\n"] }]
40
- }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
41
- type: Inject,
42
- args: [MAT_DIALOG_DATA]
43
- }] }]; } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5yb2xsLWxhbmd1YWdlLWRpYWxvZ3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9jb21wb25lbnRzL2Vucm9sbC1sYW5ndWFnZS1kaWFsb2d1ZS9lbnJvbGwtbGFuZ3VhZ2UtZGlhbG9ndWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvZW5yb2xsLWxhbmd1YWdlLWRpYWxvZ3VlL2Vucm9sbC1sYW5ndWFnZS1kaWFsb2d1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFBOzs7Ozs7OztBQU8vSCxNQUFNLE9BQU8sK0JBQStCO0lBRzNDLFlBQ1MsU0FBd0QsRUFDL0IsSUFBUztRQURsQyxjQUFTLEdBQVQsU0FBUyxDQUErQztRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBSDFDLGlCQUFZLEdBQVEsRUFBRSxDQUFBO0lBS3BCLENBQUM7SUFHSixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDakQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN2QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5RyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDMUY7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNwRjtJQUNGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNBLFFBQVE7UUFDUixJQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztTQUMvRTtJQUNELENBQUM7K0dBM0JVLCtCQUErQixvREFLakMsZUFBZTttR0FMYiwrQkFBK0IsdUVDUjVDLHFuQ0FvQkE7OzRGRFphLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQVN6QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmLCBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLWFwcC1lbnJvbGwtbGFuZ3VhZ2UtZGlhbG9ndWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW5yb2xsLWxhbmd1YWdlLWRpYWxvZ3VlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW5yb2xsLWxhbmd1YWdlLWRpYWxvZ3VlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRW5yb2xsTGFuZ3VhZ2VEaWFsb2d1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IGFueVxuICBsYW5ndWFnZUxpc3Q6IGFueSA9IFtdXG4gY29uc3RydWN0b3IoXG4gICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RW5yb2xsTGFuZ3VhZ2VEaWFsb2d1ZUNvbXBvbmVudD4sXG4gICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcblxuICkge31cblxuXG4gbmdPbkluaXQoKSB7XG4gIHRoaXMubGFuZ3VhZ2VMaXN0ID0gdGhpcy5kYXRhLmxhbmd1YWdlTGlzdCB8fCBbXTtcbiAgaWYgKHRoaXMuZGF0YS5wcmVTZWxlY3QpIHtcbiAgICBjb25zdCBwcmVTZWxlY3RJbmRleCA9IHRoaXMubGFuZ3VhZ2VMaXN0LmZpbmRJbmRleCgobGFuZzogYW55KSA9PiBsYW5nLmxhbmdJZCA9PT0gdGhpcy5kYXRhLnByZVNlbGVjdC5sYW5nSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IHByZVNlbGVjdEluZGV4ICE9PSAtMSA/IHRoaXMubGFuZ3VhZ2VMaXN0W3ByZVNlbGVjdEluZGV4XSA6IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5sYW5ndWFnZUxpc3QubGVuZ3RoID4gMCA/IHRoaXMubGFuZ3VhZ2VMaXN0WzBdIDogbnVsbDtcbiAgfVxuIH1cblxuIG9uTGFuZ3VhZ2VDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgY29uc29sZS5sb2coJ1NlbGVjdGVkIExhbmd1YWdlICRldmVudDonLCAkZXZlbnQpO1xuIH1cbiAgb25TdWJtaXQoKSB7XG4gIGlmKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSk7IC8vIFBhc3Mgc2VsZWN0ZWQgb2JqZWN0IHRvIHBhcmVudFxuICB9XG4gIH1cbn1cbiIsIjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXIgdGV4dC1sZWZ0IGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8cCBjbGFzcz1cIm1hdC1zdWJoZWFkaW5nLTEgdGV4dC1jZW50ZXJcIj5DaG9vc2UgWW91ciBQcmVmZXJyZWQgTGFuZ3VhZ2U8L3A+XG4gICAgICAgIDxwIGNsYXNzPVwibWF0LWJvZHktMiB0ZXh0LWNlbnRlclwiPlRoaXMgY291cnNlIGlzIGF2YWlsYWJsZSBpbiBtdWx0aXBsZSBsYW5ndWFnZXMuIFlvdSBjYW4gc2VsZWN0IG9uZSB0byBiZWdpbi48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxhbmctbXNnLXdyYXBwZXJcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJsYW5nLXNlbGVjdC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIiAobmdNb2RlbENoYW5nZSk9XCJvbkxhbmd1YWdlQ2hhbmdlKCRldmVudClcIiBjbGFzcz1cIm1hdC1ib2R5LTFcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZUxpc3RcIiBbdmFsdWVdPVwibGFuZ1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsYW5nLm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwidGhpcy5kaWFsb2dSZWYuY2xvc2UoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgbWF0LXN0cm9rZWQtYnV0dG9uIGN1c3RvbS1yb3VuZGVkIG1hcmdpbi1yaWdodC1tXCI+Q2FuY2VsPC9hPlxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cIm9uU3VibWl0KClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGFjdGlvbi1idXR0b25cIj5Db25maXJtICYgU3RhcnQgQ291cnNlPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuIl19
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/legacy-dialog";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/material/legacy-form-field";
8
+ import * as i5 from "@angular/material/legacy-select";
9
+ import * as i6 from "@angular/material/legacy-core";
10
+ export class EnrollLanguageDialogueComponent {
11
+ constructor(dialogRef, data) {
12
+ this.dialogRef = dialogRef;
13
+ this.data = data;
14
+ this.languageList = [];
15
+ }
16
+ ngOnInit() {
17
+ this.languageList = this.data.languageList || [];
18
+ if (this.data.preSelect) {
19
+ const preSelectIndex = this.languageList.findIndex((lang) => lang.langId === this.data.preSelect.langId);
20
+ this.selectedLanguage = preSelectIndex !== -1 ? this.languageList[preSelectIndex] : null;
21
+ }
22
+ else {
23
+ this.selectedLanguage = this.languageList.length > 0 ? this.languageList[0] : null;
24
+ }
25
+ }
26
+ onLanguageChange($event) {
27
+ console.log('Selected Language $event:', $event);
28
+ }
29
+ onSubmit() {
30
+ if (this.selectedLanguage) {
31
+ this.dialogRef.close(this.selectedLanguage); // Pass selected object to parent
32
+ }
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollLanguageDialogueComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EnrollLanguageDialogueComponent, selector: "ws-app-enroll-language-dialogue", ngImport: i0, template: "<mat-dialog-content>\r\n <div class=\"dialog-header text-left flex flex-col justify-between align-items-center\">\r\n <p class=\"mat-subheading-1 text-center\">Choose Your Preferred Language</p>\r\n <p class=\"mat-body-2 text-center\">This course is available in multiple languages. You can select one to begin.</p>\r\n </div>\r\n <div class=\"lang-msg-wrapper\">\r\n <mat-form-field appearance=\"outline\" class=\"lang-select-wrapper\">\r\n <mat-select [(ngModel)]=\"selectedLanguage\" (ngModelChange)=\"onLanguageChange($event)\" class=\"mat-body-1\">\r\n <mat-option *ngFor=\"let lang of languageList\" [value]=\"lang\">\r\n {{ lang.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <div class=\"flex items-center justify-center\">\r\n <a (click)=\"this.dialogRef.close()\" class=\"cursor-pointer mat-stroked-button custom-rounded margin-right-m\">Cancel</a>\r\n <a (click)=\"onSubmit()\" class=\"cursor-pointer action-button\">Confirm & Start Course</a>\r\n </div>\r\n </div>\r\n</mat-dialog-content>\r\n", styles: [".lang-radio-btn{width:100%;margin-bottom:16px}.mat-form-field{width:100%}.custom-rounded{border:1px solid #1a4ca1!important;border-radius:50px;padding:8px 16px;height:40px;display:flex;align-items:center;justify-content:center;color:#1a4ca1!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollLanguageDialogueComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'ws-app-enroll-language-dialogue', template: "<mat-dialog-content>\r\n <div class=\"dialog-header text-left flex flex-col justify-between align-items-center\">\r\n <p class=\"mat-subheading-1 text-center\">Choose Your Preferred Language</p>\r\n <p class=\"mat-body-2 text-center\">This course is available in multiple languages. You can select one to begin.</p>\r\n </div>\r\n <div class=\"lang-msg-wrapper\">\r\n <mat-form-field appearance=\"outline\" class=\"lang-select-wrapper\">\r\n <mat-select [(ngModel)]=\"selectedLanguage\" (ngModelChange)=\"onLanguageChange($event)\" class=\"mat-body-1\">\r\n <mat-option *ngFor=\"let lang of languageList\" [value]=\"lang\">\r\n {{ lang.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <div class=\"flex items-center justify-center\">\r\n <a (click)=\"this.dialogRef.close()\" class=\"cursor-pointer mat-stroked-button custom-rounded margin-right-m\">Cancel</a>\r\n <a (click)=\"onSubmit()\" class=\"cursor-pointer action-button\">Confirm & Start Course</a>\r\n </div>\r\n </div>\r\n</mat-dialog-content>\r\n", styles: [".lang-radio-btn{width:100%;margin-bottom:16px}.mat-form-field{width:100%}.custom-rounded{border:1px solid #1a4ca1!important;border-radius:50px;padding:8px 16px;height:40px;display:flex;align-items:center;justify-content:center;color:#1a4ca1!important}\n"] }]
40
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
41
+ type: Inject,
42
+ args: [MAT_DIALOG_DATA]
43
+ }] }]; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5yb2xsLWxhbmd1YWdlLWRpYWxvZ3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9jb21wb25lbnRzL2Vucm9sbC1sYW5ndWFnZS1kaWFsb2d1ZS9lbnJvbGwtbGFuZ3VhZ2UtZGlhbG9ndWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvZW5yb2xsLWxhbmd1YWdlLWRpYWxvZ3VlL2Vucm9sbC1sYW5ndWFnZS1kaWFsb2d1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFBOzs7Ozs7OztBQU8vSCxNQUFNLE9BQU8sK0JBQStCO0lBRzNDLFlBQ1MsU0FBd0QsRUFDL0IsSUFBUztRQURsQyxjQUFTLEdBQVQsU0FBUyxDQUErQztRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBSDFDLGlCQUFZLEdBQVEsRUFBRSxDQUFBO0lBS3BCLENBQUM7SUFHSixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDakQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN2QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5RyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDMUY7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNwRjtJQUNGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNBLFFBQVE7UUFDUixJQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztTQUMvRTtJQUNELENBQUM7K0dBM0JVLCtCQUErQixvREFLakMsZUFBZTttR0FMYiwrQkFBK0IsdUVDUjVDLDZwQ0FvQkE7OzRGRFphLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQVN6QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZydcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd3MtYXBwLWVucm9sbC1sYW5ndWFnZS1kaWFsb2d1ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Vucm9sbC1sYW5ndWFnZS1kaWFsb2d1ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZW5yb2xsLWxhbmd1YWdlLWRpYWxvZ3VlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVucm9sbExhbmd1YWdlRGlhbG9ndWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IGFueVxyXG4gIGxhbmd1YWdlTGlzdDogYW55ID0gW11cclxuIGNvbnN0cnVjdG9yKFxyXG4gICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RW5yb2xsTGFuZ3VhZ2VEaWFsb2d1ZUNvbXBvbmVudD4sXHJcbiAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxyXG5cclxuICkge31cclxuXHJcblxyXG4gbmdPbkluaXQoKSB7XHJcbiAgdGhpcy5sYW5ndWFnZUxpc3QgPSB0aGlzLmRhdGEubGFuZ3VhZ2VMaXN0IHx8IFtdO1xyXG4gIGlmICh0aGlzLmRhdGEucHJlU2VsZWN0KSB7XHJcbiAgICBjb25zdCBwcmVTZWxlY3RJbmRleCA9IHRoaXMubGFuZ3VhZ2VMaXN0LmZpbmRJbmRleCgobGFuZzogYW55KSA9PiBsYW5nLmxhbmdJZCA9PT0gdGhpcy5kYXRhLnByZVNlbGVjdC5sYW5nSWQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gcHJlU2VsZWN0SW5kZXggIT09IC0xID8gdGhpcy5sYW5ndWFnZUxpc3RbcHJlU2VsZWN0SW5kZXhdIDogbnVsbDtcclxuICB9IGVsc2Uge1xyXG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5sYW5ndWFnZUxpc3QubGVuZ3RoID4gMCA/IHRoaXMubGFuZ3VhZ2VMaXN0WzBdIDogbnVsbDtcclxuICB9XHJcbiB9XHJcblxyXG4gb25MYW5ndWFnZUNoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gIGNvbnNvbGUubG9nKCdTZWxlY3RlZCBMYW5ndWFnZSAkZXZlbnQ6JywgJGV2ZW50KTtcclxuIH1cclxuICBvblN1Ym1pdCgpIHtcclxuICBpZih0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSk7IC8vIFBhc3Mgc2VsZWN0ZWQgb2JqZWN0IHRvIHBhcmVudFxyXG4gIH1cclxuICB9XHJcbn1cclxuIiwiPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyIHRleHQtbGVmdCBmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8cCBjbGFzcz1cIm1hdC1zdWJoZWFkaW5nLTEgdGV4dC1jZW50ZXJcIj5DaG9vc2UgWW91ciBQcmVmZXJyZWQgTGFuZ3VhZ2U8L3A+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keS0yIHRleHQtY2VudGVyXCI+VGhpcyBjb3Vyc2UgaXMgYXZhaWxhYmxlIGluIG11bHRpcGxlIGxhbmd1YWdlcy4gWW91IGNhbiBzZWxlY3Qgb25lIHRvIGJlZ2luLjwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImxhbmctbXNnLXdyYXBwZXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImxhbmctc2VsZWN0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZExhbmd1YWdlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25MYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJtYXQtYm9keS0xXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZUxpc3RcIiBbdmFsdWVdPVwibGFuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGxhbmcubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJ0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBtYXQtc3Ryb2tlZC1idXR0b24gY3VzdG9tLXJvdW5kZWQgbWFyZ2luLXJpZ2h0LW1cIj5DYW5jZWw8L2E+XHJcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJvblN1Ym1pdCgpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBhY3Rpb24tYnV0dG9uXCI+Q29uZmlybSAmIFN0YXJ0IENvdXJzZTwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L21hdC1kaWFsb2ctY29udGVudD5cclxuIl19