@sunbird-cb/consumption 0.0.63 → 0.0.65

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 (344) hide show
  1. package/README.md +24 -24
  2. package/bundles/sunbird-cb-consumption.umd.js +17470 -17345
  3. package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
  4. package/bundles/sunbird-cb-consumption.umd.min.js +1 -1
  5. package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
  6. package/esm2015/lib/_common/announcements/announcements.component.js +150 -150
  7. package/esm2015/lib/_common/announcements/announcements.module.js +23 -23
  8. package/esm2015/lib/_common/avatar-photo-lib/avatar-photo-lib.component.js +158 -158
  9. package/esm2015/lib/_common/avatar-photo-lib/avatar-photo-lib.module.js +29 -29
  10. package/esm2015/lib/_common/calender/calender-day/calender-day.component.js +90 -90
  11. package/esm2015/lib/_common/calender/calender.component.js +299 -299
  12. package/esm2015/lib/_common/calender/calender.module.js +31 -31
  13. package/esm2015/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +170 -170
  14. package/esm2015/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +178 -178
  15. package/esm2015/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.js +166 -166
  16. package/esm2015/lib/_common/cards/card-landscape/card-landscape.component.js +202 -202
  17. package/esm2015/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +154 -154
  18. package/esm2015/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.js +154 -154
  19. package/esm2015/lib/_common/cards/card-portrait/card-portrait.component.js +167 -167
  20. package/esm2015/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +170 -170
  21. package/esm2015/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +261 -261
  22. package/esm2015/lib/_common/cards/card-resource/card-resource.component.js +34 -34
  23. package/esm2015/lib/_common/cards/card-user/card-user.component.js +141 -141
  24. package/esm2015/lib/_common/cards/card-wide/card-wide.component.js +166 -166
  25. package/esm2015/lib/_common/cards/card-wide-v2/card-wide-v2.component.js +171 -171
  26. package/esm2015/lib/_common/cards/cards.component.js +167 -167
  27. package/esm2015/lib/_common/cards/cards.module.js +100 -100
  28. package/esm2015/lib/_common/cards/provider-card/provider-card.component.js +81 -81
  29. package/esm2015/lib/_common/cbp-plan/cbp-plan.component.js +166 -166
  30. package/esm2015/lib/_common/cbp-plan/cbp-plan.module.js +27 -27
  31. package/esm2015/lib/_common/common-strip/common-strip.component.js +646 -646
  32. package/esm2015/lib/_common/common-strip/common-strip.model.js +216 -216
  33. package/esm2015/lib/_common/common-strip/common-strip.module.js +62 -62
  34. package/esm2015/lib/_common/competency-passbook/competency-passbook.component.js +384 -384
  35. package/esm2015/lib/_common/competency-passbook/competency-passbook.module.js +27 -27
  36. package/esm2015/lib/_common/competency-passbook/competency-passbook.service.js +52 -52
  37. package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.js +332 -332
  38. package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.module.js +27 -27
  39. package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.service.js +52 -52
  40. package/esm2015/lib/_common/content-progress/content-progress.component.js +89 -89
  41. package/esm2015/lib/_common/content-progress/content-progress.module.js +22 -22
  42. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +2559 -2443
  43. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +218 -214
  44. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module.js +69 -69
  45. package/esm2015/lib/_common/data-points/data-points.component.js +148 -148
  46. package/esm2015/lib/_common/data-points/data-points.module.js +23 -23
  47. package/esm2015/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.js +225 -225
  48. package/esm2015/lib/_common/dialog-components/dialog-components.module.js +43 -43
  49. package/esm2015/lib/_common/display-content-type-lib/display-content-type-lib.component.js +60 -60
  50. package/esm2015/lib/_common/display-content-type-lib/display-content-type-lib.module.js +18 -18
  51. package/esm2015/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +362 -362
  52. package/esm2015/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.module.js +23 -23
  53. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.js +23 -23
  54. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.js +255 -255
  55. package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel.module.js +52 -52
  56. package/esm2015/lib/_common/microsites/providers/providers-v2/providers-v2.component.js +269 -269
  57. package/esm2015/lib/_common/microsites/providers/providers.module.js +51 -51
  58. package/esm2015/lib/_common/pills/pills.component.js +61 -61
  59. package/esm2015/lib/_common/pills/pills.module.js +24 -24
  60. package/esm2015/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.js +40 -40
  61. package/esm2015/lib/_common/skeleton-loader-lib/skeleton-loader-lib.module.js +28 -28
  62. package/esm2015/lib/_common/sliders/sliders.component.js +187 -184
  63. package/esm2015/lib/_common/sliders/sliders.model.js +67 -67
  64. package/esm2015/lib/_common/sliders/sliders.module.js +50 -50
  65. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.component.js +206 -206
  66. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.model.js +61 -61
  67. package/esm2015/lib/_common/sliders-ng-content/sliders-ng-content.module.js +50 -50
  68. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +1613 -1613
  69. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.js +218 -218
  70. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.js +69 -69
  71. package/esm2015/lib/_common/top-learners/top-learners.component.js +155 -155
  72. package/esm2015/lib/_common/top-learners/top-learners.module.js +23 -23
  73. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.component.js +145 -145
  74. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.module.js +38 -38
  75. package/esm2015/lib/_common/user-content-rating/user-content-rating-lib.service.js +45 -45
  76. package/esm2015/lib/_constants/misc.constants.js +4 -4
  77. package/esm2015/lib/_directives/default-thumbnail/default-thumbnail.directive.js +51 -51
  78. package/esm2015/lib/_directives/default-thumbnail/default-thumbnail.module.js +18 -18
  79. package/esm2015/lib/_directives/image-responsive/image-responsive.directive.js +126 -126
  80. package/esm2015/lib/_directives/image-responsive/image-responsive.module.js +18 -18
  81. package/esm2015/lib/_directives/navigation/navigation.directive.js +53 -53
  82. package/esm2015/lib/_directives/navigation/navigation.module.js +18 -18
  83. package/esm2015/lib/_directives/scrollable-item/scrollable-item.directive.js +42 -42
  84. package/esm2015/lib/_directives/scrollable-item/scrollable-item.module.js +19 -19
  85. package/esm2015/lib/_models/card-content-v2.model.js +78 -78
  86. package/esm2015/lib/_models/card-content.model.js +69 -69
  87. package/esm2015/lib/_models/card-users.model.js +103 -103
  88. package/esm2015/lib/_models/content-strip-multiple.model.js +195 -195
  89. package/esm2015/lib/_models/event.js +45 -45
  90. package/esm2015/lib/_models/profile-v3.models.js +196 -196
  91. package/esm2015/lib/_models/rating.model.js +44 -44
  92. package/esm2015/lib/_models/widget-content.model.js +876 -876
  93. package/esm2015/lib/_models/widget-search.model.js +471 -471
  94. package/esm2015/lib/_models/widget-user.model.js +17 -17
  95. package/esm2015/lib/_pipes/object-to-array/object-to-array.pipe.js +28 -28
  96. package/esm2015/lib/_pipes/object-to-array/object-to-array.pipe.module.js +19 -19
  97. package/esm2015/lib/_pipes/pipe-duration-transform/pipe-duration-transform.module.js +18 -18
  98. package/esm2015/lib/_pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +119 -119
  99. package/esm2015/lib/_pipes/pipe-public-URL/pipe-public-URL.module.js +19 -19
  100. package/esm2015/lib/_pipes/pipe-public-URL/pipe-public-URL.pipe.js +38 -38
  101. package/esm2015/lib/_services/certificate.service.js +63 -63
  102. package/esm2015/lib/_services/common-methods.service.js +84 -84
  103. package/esm2015/lib/_services/configurations.service.js +243 -243
  104. package/esm2015/lib/_services/insite-data.service.js +68 -68
  105. package/esm2015/lib/_services/multilingual-translations.service.js +231 -231
  106. package/esm2015/lib/_services/rating.service.js +171 -171
  107. package/esm2015/lib/_services/viewer-route-util.js +125 -125
  108. package/esm2015/lib/_services/widget-content.service.js +852 -852
  109. package/esm2015/lib/_services/widget-user.service.js +475 -475
  110. package/esm2015/lib/consumption.component.js +26 -26
  111. package/esm2015/lib/consumption.config.js +12 -12
  112. package/esm2015/lib/consumption.module.js +36 -36
  113. package/esm2015/lib/consumption.service.js +18 -18
  114. package/esm2015/lib/registration-lib.config.js +21 -21
  115. package/esm2015/public-api.js +31 -31
  116. package/esm2015/sunbird-cb-consumption.js +77 -77
  117. package/esm5/lib/_common/announcements/announcements.component.js +166 -166
  118. package/esm5/lib/_common/announcements/announcements.module.js +27 -27
  119. package/esm5/lib/_common/avatar-photo-lib/avatar-photo-lib.component.js +175 -175
  120. package/esm5/lib/_common/avatar-photo-lib/avatar-photo-lib.module.js +33 -33
  121. package/esm5/lib/_common/calender/calender-day/calender-day.component.js +101 -101
  122. package/esm5/lib/_common/calender/calender.component.js +334 -334
  123. package/esm5/lib/_common/calender/calender.module.js +35 -35
  124. package/esm5/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +186 -186
  125. package/esm5/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +187 -187
  126. package/esm5/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.js +176 -176
  127. package/esm5/lib/_common/cards/card-landscape/card-landscape.component.js +216 -216
  128. package/esm5/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +164 -164
  129. package/esm5/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.js +164 -164
  130. package/esm5/lib/_common/cards/card-portrait/card-portrait.component.js +173 -173
  131. package/esm5/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +176 -176
  132. package/esm5/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +278 -278
  133. package/esm5/lib/_common/cards/card-resource/card-resource.component.js +41 -41
  134. package/esm5/lib/_common/cards/card-user/card-user.component.js +147 -147
  135. package/esm5/lib/_common/cards/card-wide/card-wide.component.js +172 -172
  136. package/esm5/lib/_common/cards/card-wide-v2/card-wide-v2.component.js +181 -181
  137. package/esm5/lib/_common/cards/cards.component.js +199 -199
  138. package/esm5/lib/_common/cards/cards.module.js +104 -104
  139. package/esm5/lib/_common/cards/provider-card/provider-card.component.js +90 -90
  140. package/esm5/lib/_common/cbp-plan/cbp-plan.component.js +185 -185
  141. package/esm5/lib/_common/cbp-plan/cbp-plan.module.js +31 -31
  142. package/esm5/lib/_common/common-strip/common-strip.component.js +760 -760
  143. package/esm5/lib/_common/common-strip/common-strip.model.js +216 -216
  144. package/esm5/lib/_common/common-strip/common-strip.module.js +66 -66
  145. package/esm5/lib/_common/competency-passbook/competency-passbook.component.js +454 -454
  146. package/esm5/lib/_common/competency-passbook/competency-passbook.module.js +31 -31
  147. package/esm5/lib/_common/competency-passbook/competency-passbook.service.js +59 -59
  148. package/esm5/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.js +383 -383
  149. package/esm5/lib/_common/competency-passbook-mdo/competency-passbook-mdo.module.js +31 -31
  150. package/esm5/lib/_common/competency-passbook-mdo/competency-passbook-mdo.service.js +59 -59
  151. package/esm5/lib/_common/content-progress/content-progress.component.js +94 -94
  152. package/esm5/lib/_common/content-progress/content-progress.module.js +26 -26
  153. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +2970 -2848
  154. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +218 -214
  155. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module.js +73 -73
  156. package/esm5/lib/_common/data-points/data-points.component.js +163 -163
  157. package/esm5/lib/_common/data-points/data-points.module.js +27 -27
  158. package/esm5/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.js +248 -248
  159. package/esm5/lib/_common/dialog-components/dialog-components.module.js +47 -47
  160. package/esm5/lib/_common/display-content-type-lib/display-content-type-lib.component.js +67 -67
  161. package/esm5/lib/_common/display-content-type-lib/display-content-type-lib.module.js +22 -22
  162. package/esm5/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +391 -391
  163. package/esm5/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.module.js +27 -27
  164. package/esm5/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.js +29 -29
  165. package/esm5/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.js +292 -292
  166. package/esm5/lib/_common/microsites/mdo-channels/mdo-channel.module.js +56 -56
  167. package/esm5/lib/_common/microsites/providers/providers-v2/providers-v2.component.js +312 -312
  168. package/esm5/lib/_common/microsites/providers/providers.module.js +55 -55
  169. package/esm5/lib/_common/pills/pills.component.js +70 -70
  170. package/esm5/lib/_common/pills/pills.module.js +28 -28
  171. package/esm5/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.js +45 -45
  172. package/esm5/lib/_common/skeleton-loader-lib/skeleton-loader-lib.module.js +32 -32
  173. package/esm5/lib/_common/sliders/sliders.component.js +214 -211
  174. package/esm5/lib/_common/sliders/sliders.model.js +67 -67
  175. package/esm5/lib/_common/sliders/sliders.module.js +67 -67
  176. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.component.js +233 -233
  177. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.model.js +61 -61
  178. package/esm5/lib/_common/sliders-ng-content/sliders-ng-content.module.js +67 -67
  179. package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +1892 -1892
  180. package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.js +218 -218
  181. package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.js +73 -73
  182. package/esm5/lib/_common/top-learners/top-learners.component.js +172 -172
  183. package/esm5/lib/_common/top-learners/top-learners.module.js +27 -27
  184. package/esm5/lib/_common/user-content-rating/user-content-rating-lib.component.js +168 -168
  185. package/esm5/lib/_common/user-content-rating/user-content-rating-lib.module.js +42 -42
  186. package/esm5/lib/_common/user-content-rating/user-content-rating-lib.service.js +48 -48
  187. package/esm5/lib/_constants/misc.constants.js +4 -4
  188. package/esm5/lib/_directives/default-thumbnail/default-thumbnail.directive.js +59 -59
  189. package/esm5/lib/_directives/default-thumbnail/default-thumbnail.module.js +22 -22
  190. package/esm5/lib/_directives/image-responsive/image-responsive.directive.js +136 -136
  191. package/esm5/lib/_directives/image-responsive/image-responsive.module.js +22 -22
  192. package/esm5/lib/_directives/navigation/navigation.directive.js +62 -62
  193. package/esm5/lib/_directives/navigation/navigation.module.js +22 -22
  194. package/esm5/lib/_directives/scrollable-item/scrollable-item.directive.js +45 -45
  195. package/esm5/lib/_directives/scrollable-item/scrollable-item.module.js +23 -23
  196. package/esm5/lib/_models/card-content-v2.model.js +78 -78
  197. package/esm5/lib/_models/card-content.model.js +69 -69
  198. package/esm5/lib/_models/card-users.model.js +103 -103
  199. package/esm5/lib/_models/content-strip-multiple.model.js +195 -195
  200. package/esm5/lib/_models/event.js +45 -45
  201. package/esm5/lib/_models/profile-v3.models.js +196 -196
  202. package/esm5/lib/_models/rating.model.js +44 -44
  203. package/esm5/lib/_models/widget-content.model.js +876 -876
  204. package/esm5/lib/_models/widget-search.model.js +471 -471
  205. package/esm5/lib/_models/widget-user.model.js +17 -17
  206. package/esm5/lib/_pipes/object-to-array/object-to-array.pipe.js +57 -57
  207. package/esm5/lib/_pipes/object-to-array/object-to-array.pipe.module.js +23 -23
  208. package/esm5/lib/_pipes/pipe-duration-transform/pipe-duration-transform.module.js +22 -22
  209. package/esm5/lib/_pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +142 -142
  210. package/esm5/lib/_pipes/pipe-public-URL/pipe-public-URL.module.js +23 -23
  211. package/esm5/lib/_pipes/pipe-public-URL/pipe-public-URL.pipe.js +41 -41
  212. package/esm5/lib/_services/certificate.service.js +70 -70
  213. package/esm5/lib/_services/common-methods.service.js +102 -102
  214. package/esm5/lib/_services/configurations.service.js +257 -257
  215. package/esm5/lib/_services/insite-data.service.js +82 -82
  216. package/esm5/lib/_services/multilingual-translations.service.js +259 -259
  217. package/esm5/lib/_services/rating.service.js +214 -214
  218. package/esm5/lib/_services/viewer-route-util.js +127 -127
  219. package/esm5/lib/_services/widget-content.service.js +1109 -1109
  220. package/esm5/lib/_services/widget-user.service.js +542 -542
  221. package/esm5/lib/consumption.component.js +28 -28
  222. package/esm5/lib/consumption.config.js +12 -12
  223. package/esm5/lib/consumption.module.js +40 -40
  224. package/esm5/lib/consumption.service.js +21 -21
  225. package/esm5/lib/registration-lib.config.js +21 -21
  226. package/esm5/public-api.js +31 -31
  227. package/esm5/sunbird-cb-consumption.js +77 -77
  228. package/fesm2015/sunbird-cb-consumption.js +15407 -15288
  229. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  230. package/fesm5/sunbird-cb-consumption.js +17476 -17351
  231. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  232. package/lib/_common/announcements/announcements.component.d.ts +21 -21
  233. package/lib/_common/announcements/announcements.module.d.ts +2 -2
  234. package/lib/_common/avatar-photo-lib/avatar-photo-lib.component.d.ts +20 -20
  235. package/lib/_common/avatar-photo-lib/avatar-photo-lib.module.d.ts +2 -2
  236. package/lib/_common/calender/calender-day/calender-day.component.d.ts +18 -18
  237. package/lib/_common/calender/calender.component.d.ts +34 -34
  238. package/lib/_common/calender/calender.module.d.ts +2 -2
  239. package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts +31 -31
  240. package/lib/_common/cards/card-karma-programs/card-karma-programs.component.d.ts +28 -28
  241. package/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.d.ts +26 -26
  242. package/lib/_common/cards/card-landscape/card-landscape.component.d.ts +36 -36
  243. package/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.d.ts +27 -27
  244. package/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.d.ts +27 -27
  245. package/lib/_common/cards/card-portrait/card-portrait.component.d.ts +33 -33
  246. package/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.d.ts +33 -33
  247. package/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.d.ts +41 -41
  248. package/lib/_common/cards/card-resource/card-resource.component.d.ts +8 -8
  249. package/lib/_common/cards/card-user/card-user.component.d.ts +24 -24
  250. package/lib/_common/cards/card-wide/card-wide.component.d.ts +30 -30
  251. package/lib/_common/cards/card-wide-v2/card-wide-v2.component.d.ts +34 -34
  252. package/lib/_common/cards/cards.component.d.ts +26 -26
  253. package/lib/_common/cards/cards.module.d.ts +2 -2
  254. package/lib/_common/cards/provider-card/provider-card.component.d.ts +14 -14
  255. package/lib/_common/cbp-plan/cbp-plan.component.d.ts +25 -25
  256. package/lib/_common/cbp-plan/cbp-plan.module.d.ts +2 -2
  257. package/lib/_common/common-strip/common-strip.component.d.ts +104 -104
  258. package/lib/_common/common-strip/common-strip.model.d.ts +141 -141
  259. package/lib/_common/common-strip/common-strip.module.d.ts +2 -2
  260. package/lib/_common/competency-passbook/competency-passbook.component.d.ts +42 -42
  261. package/lib/_common/competency-passbook/competency-passbook.module.d.ts +2 -2
  262. package/lib/_common/competency-passbook/competency-passbook.service.d.ts +8 -8
  263. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.d.ts +43 -43
  264. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.module.d.ts +2 -2
  265. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.service.d.ts +8 -8
  266. package/lib/_common/content-progress/content-progress.component.d.ts +13 -13
  267. package/lib/_common/content-progress/content-progress.module.d.ts +2 -2
  268. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +203 -201
  269. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts +149 -147
  270. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.module.d.ts +5 -5
  271. package/lib/_common/data-points/data-points.component.d.ts +17 -17
  272. package/lib/_common/data-points/data-points.module.d.ts +2 -2
  273. package/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.d.ts +22 -22
  274. package/lib/_common/dialog-components/dialog-components.module.d.ts +2 -2
  275. package/lib/_common/display-content-type-lib/display-content-type-lib.component.d.ts +12 -12
  276. package/lib/_common/display-content-type-lib/display-content-type-lib.module.d.ts +2 -2
  277. package/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.d.ts +33 -33
  278. package/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.module.d.ts +2 -2
  279. package/lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component.d.ts +5 -5
  280. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts +39 -39
  281. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts +2 -2
  282. package/lib/_common/microsites/providers/providers-v2/providers-v2.component.d.ts +36 -36
  283. package/lib/_common/microsites/providers/providers.module.d.ts +2 -2
  284. package/lib/_common/pills/pills.component.d.ts +13 -13
  285. package/lib/_common/pills/pills.module.d.ts +2 -2
  286. package/lib/_common/skeleton-loader-lib/skeleton-loader-lib.component.d.ts +8 -8
  287. package/lib/_common/skeleton-loader-lib/skeleton-loader-lib.module.d.ts +2 -2
  288. package/lib/_common/sliders/sliders.component.d.ts +27 -26
  289. package/lib/_common/sliders/sliders.model.d.ts +40 -40
  290. package/lib/_common/sliders/sliders.module.d.ts +6 -6
  291. package/lib/_common/sliders-ng-content/sliders-ng-content.component.d.ts +29 -29
  292. package/lib/_common/sliders-ng-content/sliders-ng-content.model.d.ts +34 -34
  293. package/lib/_common/sliders-ng-content/sliders-ng-content.module.d.ts +6 -6
  294. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.d.ts +161 -161
  295. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.d.ts +149 -149
  296. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.d.ts +5 -5
  297. package/lib/_common/top-learners/top-learners.component.d.ts +18 -18
  298. package/lib/_common/top-learners/top-learners.module.d.ts +2 -2
  299. package/lib/_common/user-content-rating/user-content-rating-lib.component.d.ts +22 -22
  300. package/lib/_common/user-content-rating/user-content-rating-lib.module.d.ts +2 -2
  301. package/lib/_common/user-content-rating/user-content-rating-lib.service.d.ts +7 -7
  302. package/lib/_constants/misc.constants.d.ts +2 -2
  303. package/lib/_directives/default-thumbnail/default-thumbnail.directive.d.ts +9 -9
  304. package/lib/_directives/default-thumbnail/default-thumbnail.module.d.ts +2 -2
  305. package/lib/_directives/image-responsive/image-responsive.directive.d.ts +17 -17
  306. package/lib/_directives/image-responsive/image-responsive.module.d.ts +2 -2
  307. package/lib/_directives/navigation/navigation.directive.d.ts +9 -9
  308. package/lib/_directives/navigation/navigation.module.d.ts +2 -2
  309. package/lib/_directives/scrollable-item/scrollable-item.directive.d.ts +7 -7
  310. package/lib/_directives/scrollable-item/scrollable-item.module.d.ts +2 -2
  311. package/lib/_models/card-content-v2.model.d.ts +44 -44
  312. package/lib/_models/card-content.model.d.ts +41 -41
  313. package/lib/_models/card-users.model.d.ts +50 -50
  314. package/lib/_models/content-strip-multiple.model.d.ts +128 -128
  315. package/lib/_models/event.d.ts +18 -18
  316. package/lib/_models/profile-v3.models.d.ts +91 -91
  317. package/lib/_models/rating.model.d.ts +17 -17
  318. package/lib/_models/widget-content.model.d.ts +497 -497
  319. package/lib/_models/widget-search.model.d.ts +252 -252
  320. package/lib/_models/widget-user.model.d.ts +5 -5
  321. package/lib/_pipes/object-to-array/object-to-array.pipe.d.ts +4 -4
  322. package/lib/_pipes/object-to-array/object-to-array.pipe.module.d.ts +2 -2
  323. package/lib/_pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts +2 -2
  324. package/lib/_pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +6 -6
  325. package/lib/_pipes/pipe-public-URL/pipe-public-URL.module.d.ts +2 -2
  326. package/lib/_pipes/pipe-public-URL/pipe-public-URL.pipe.d.ts +6 -6
  327. package/lib/_services/certificate.service.d.ts +8 -8
  328. package/lib/_services/common-methods.service.d.ts +39 -39
  329. package/lib/_services/configurations.service.d.ts +71 -71
  330. package/lib/_services/insite-data.service.d.ts +10 -10
  331. package/lib/_services/multilingual-translations.service.d.ts +20 -20
  332. package/lib/_services/rating.service.d.ts +15 -15
  333. package/lib/_services/viewer-route-util.d.ts +8 -8
  334. package/lib/_services/widget-content.service.d.ts +87 -87
  335. package/lib/_services/widget-user.service.d.ts +33 -33
  336. package/lib/consumption.component.d.ts +5 -5
  337. package/lib/consumption.config.d.ts +6 -6
  338. package/lib/consumption.module.d.ts +2 -2
  339. package/lib/consumption.service.d.ts +3 -3
  340. package/lib/registration-lib.config.d.ts +4 -4
  341. package/package.json +1 -1
  342. package/public-api.d.ts +23 -23
  343. package/sunbird-cb-consumption.d.ts +73 -73
  344. package/sunbird-cb-consumption.metadata.json +1 -1
@@ -1,334 +1,334 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { DatePipe } from '@angular/common';
6
- import { Component, Input, } from '@angular/core';
7
- import { InsiteDataService } from '../../_services/insite-data.service';
8
- var CalenderComponent = /** @class */ (function () {
9
- function CalenderComponent(datePipe, insightSvc) {
10
- this.datePipe = datePipe;
11
- this.insightSvc = insightSvc;
12
- this.fetchDataFromApi = false;
13
- this.showHeader = false;
14
- this.defaultDays = 3;
15
- this.fullCalendor = false;
16
- this.days = [];
17
- this.trainings = {};
18
- this.isDataLoading = false;
19
- this.currentDate = new Date();
20
- this.allMonths = ["January", "February", "March",
21
- "April", "May", "June", "July",
22
- "August", "September", "October",
23
- "November", "December"
24
- ];
25
- this.monthsDropdown = [];
26
- }
27
- /**
28
- * @return {?}
29
- */
30
- CalenderComponent.prototype.ngOnInit = /**
31
- * @return {?}
32
- */
33
- function () {
34
- this.currentMonthAndYear = this.datePipe.transform(this.currentDate, 'MMMM y');
35
- this.selectedMonth = this.datePipe.transform(this.currentDate, 'LLLL yyyy');
36
- if (this.fullCalendor) {
37
- this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
38
- this.getMonthsDropdownData();
39
- }
40
- if (!this.fullCalendor) {
41
- this.days = this.getDays(this.currentDate, +this.defaultDays);
42
- }
43
- this.startDate = this.days[0];
44
- this.endDate = this.days[this.days.length - 1];
45
- if (this.fetchDataFromApi) {
46
- this.isDataLoading = true;
47
- this.getInsiteData();
48
- }
49
- };
50
- /**
51
- * @return {?}
52
- */
53
- CalenderComponent.prototype.getInsiteData = /**
54
- * @return {?}
55
- */
56
- function () {
57
- var _this = this;
58
- /** @type {?} */
59
- var request = {
60
- "locale": [
61
- "en"
62
- ],
63
- "query": "",
64
- "request": {
65
- "query": "",
66
- "filters": {
67
- "category": [
68
- "Calendar"
69
- ],
70
- "status": [
71
- "Live",
72
- "Retired"
73
- ],
74
- "contentType": "Event",
75
- "startDate": {
76
- ">=": this.startDate,
77
- "<=": this.endDate
78
- // ">=": "2024-01-15",
79
- // "<": "2024-05-31"
80
- },
81
- "channel": [this.providerId]
82
- },
83
- "sort_by": {
84
- "lastUpdatedOn": "desc"
85
- }
86
- }
87
- };
88
- this.insightSvc.fetchTrainingDetails(request).subscribe((/**
89
- * @param {?} res
90
- * @return {?}
91
- */
92
- function (res) {
93
- if (res && res.result && res.result.Event) {
94
- res.result.Event.forEach((/**
95
- * @param {?} resp
96
- * @return {?}
97
- */
98
- function (resp) {
99
- if (_this.trainings[resp.startDate]) {
100
- /** @type {?} */
101
- var prevData = _this.trainings[resp.startDate];
102
- /** @type {?} */
103
- var location_1 = resp.eventType;
104
- if (resp.location && location_1 !== "Online") {
105
- /** @type {?} */
106
- var jsonResp = JSON.parse(resp.location);
107
- location_1 = jsonResp['address'];
108
- }
109
- /** @type {?} */
110
- var formatObject = {
111
- location: location_1,
112
- startTime: _this.convertTo12HourFormat(resp.startTime),
113
- endTime: _this.convertTo12HourFormat(resp.endTime),
114
- title: resp.name,
115
- startDate: _this.formatDate(resp.startDate),
116
- endDate: _this.formatDate(resp.endDate),
117
- registrationLink: resp.registrationLink,
118
- };
119
- prevData.push(formatObject);
120
- _this.trainings[resp.startDate] = prevData;
121
- }
122
- }));
123
- }
124
- _this.isDataLoading = false;
125
- }));
126
- };
127
- /**
128
- * @param {?} obj
129
- * @return {?}
130
- */
131
- CalenderComponent.prototype.getKeys = /**
132
- * @param {?} obj
133
- * @return {?}
134
- */
135
- function (obj) {
136
- return Object.keys(obj);
137
- };
138
- /**
139
- * @param {?} date
140
- * @return {?}
141
- */
142
- CalenderComponent.prototype.formatDate = /**
143
- * @param {?} date
144
- * @return {?}
145
- */
146
- function (date) {
147
- /** @type {?} */
148
- var formatDate = new Date(date);
149
- return this.datePipe.transform(formatDate, 'E, dd LLL');
150
- };
151
- /**
152
- * @param {?} timeString
153
- * @return {?}
154
- */
155
- CalenderComponent.prototype.convertTo12HourFormat = /**
156
- * @param {?} timeString
157
- * @return {?}
158
- */
159
- function (timeString) {
160
- /** @type {?} */
161
- var time = timeString.split(":");
162
- /** @type {?} */
163
- var hours = +time[0];
164
- /** @type {?} */
165
- var minutes = +time[1];
166
- /** @type {?} */
167
- var ampm = hours >= 12 ? 'PM' : 'AM';
168
- hours = hours % 12;
169
- hours = hours ? hours : 12;
170
- /** @type {?} */
171
- var strHours = hours < 10 ? '0' + hours : hours.toString();
172
- /** @type {?} */
173
- var strMinutes = minutes < 10 ? '0' + minutes : minutes.toString();
174
- return strHours + ":" + strMinutes + " " + ampm;
175
- };
176
- /**
177
- * @param {?} cDate
178
- * @param {?} counter
179
- * @return {?}
180
- */
181
- CalenderComponent.prototype.getDays = /**
182
- * @param {?} cDate
183
- * @param {?} counter
184
- * @return {?}
185
- */
186
- function (cDate, counter) {
187
- /** @type {?} */
188
- var days = [];
189
- /** @type {?} */
190
- var initDate = new Date(cDate);
191
- initDate = this.datePipe.transform(initDate, 'y-MM-dd');
192
- days.push(initDate);
193
- this.trainings[initDate] = [];
194
- while (counter > 0) {
195
- /** @type {?} */
196
- var myDate = new Date(cDate);
197
- myDate = myDate.setDate(myDate.getDate() + 1);
198
- cDate = myDate;
199
- myDate = this.datePipe.transform(myDate, 'y-MM-dd');
200
- days.push(myDate);
201
- this.trainings[myDate] = [];
202
- counter = counter - 1;
203
- }
204
- return days;
205
- };
206
- /**
207
- * @param {?} year
208
- * @param {?} month
209
- * @return {?}
210
- */
211
- CalenderComponent.prototype.getDaysInMonth = /**
212
- * @param {?} year
213
- * @param {?} month
214
- * @return {?}
215
- */
216
- function (year, month) {
217
- /** @type {?} */
218
- var date = new Date(year, month, 1);
219
- /** @type {?} */
220
- var days = [];
221
- this.trainings = {};
222
- while (date.getMonth() === month) {
223
- /** @type {?} */
224
- var myDate = new Date(date);
225
- myDate = this.datePipe.transform(myDate, 'y-MM-dd');
226
- days.push(myDate);
227
- this.trainings[myDate] = [];
228
- date.setDate(date.getDate() + 1);
229
- }
230
- return days;
231
- };
232
- /**
233
- * @return {?}
234
- */
235
- CalenderComponent.prototype.getMonthsDropdownData = /**
236
- * @return {?}
237
- */
238
- function () {
239
- var _this = this;
240
- this.allMonths.forEach((/**
241
- * @param {?} month
242
- * @return {?}
243
- */
244
- function (month) {
245
- _this.monthsDropdown.push(month + " " + _this.currentDate.getFullYear());
246
- }));
247
- };
248
- /**
249
- * @param {?} event
250
- * @return {?}
251
- */
252
- CalenderComponent.prototype.selectMonth = /**
253
- * @param {?} event
254
- * @return {?}
255
- */
256
- function (event) {
257
- /** @type {?} */
258
- var selectedMonth = new Date(event);
259
- this.currentDate = selectedMonth;
260
- this.days = [];
261
- this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
262
- this.startDate = this.days[0];
263
- this.endDate = this.days[this.days.length - 1];
264
- this.isDataLoading = true;
265
- this.getInsiteData();
266
- };
267
- CalenderComponent.decorators = [
268
- { type: Component, args: [{
269
- selector: 'sb-uic-calender',
270
- template: "<div class=\"calendar-header flex flex-row c-padding center gap-2\" *ngIf=\"showHeader\">\n <div class=\"pt-3\">{{ objectData?.title }}:</div>\n <div class=\"choose-month\">\n <mat-form-field class=\"custom-month\">\n <mat-select matNativeControl panelClass=\"custom-select\" [ngModel]=\"selectedMonth\" (ngModelChange)=\"selectMonth($event)\" class=\"month-select\">\n <span *ngFor=\"let month of monthsDropdown\">\n <mat-option [value]=\"month\">{{month}}</mat-option>\n </span>\n </mat-select>\n </mat-form-field>\n </div>\n</div>\n<div *ngIf=\"layoutType==='grid'\">\n <div *ngFor=\"let obj of getKeys(trainings); let i = index\">\n <sb-uic-calender-day [day]=\"trainings[obj]\"\n [layoutType]=\"layoutType\"\n [objectData]=\"objectData\"\n [dataLoading]=\"isDataLoading\"\n [eventDate]=\"obj\"\n [rowId]=\"i\">\n </sb-uic-calender-day>\n </div> \n</div>\n<div *ngIf=\"layoutType==='row'\">\n <div *ngFor=\"let obj of getKeys(trainings); let j = index\">\n <sb-uic-calender-day [day]=\"trainings[obj]\"\n [layoutType]=\"layoutType\"\n [objectData]=\"objectData\"\n [dataLoading]=\"isDataLoading\"\n [eventDate]=\"obj\"\n [rowId]=\"j\">\n </sb-uic-calender-day>\n </div>\n</div>",
271
- styles: [".calendar-header{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.c-padding{padding:0}.center{align-items:center}::ng-deep .custom-month .mat-form-field-wrapper{padding-bottom:0!important;width:145px}::ng-deep .custom-month .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#000!important}::ng-deep .custom-month .mat-select-value{width:89%}::ng-deep .mat-select-arrow{color:#000!important}::ng-deep .custom-month .mat-select-value-text{font-weight:600}@media screen and (max-width:768px){.c-padding{padding:0 1.25rem 1rem}.calendar-header{font-size:15px}}"]
272
- }] }
273
- ];
274
- /** @nocollapse */
275
- CalenderComponent.ctorParameters = function () { return [
276
- { type: DatePipe },
277
- { type: InsiteDataService }
278
- ]; };
279
- CalenderComponent.propDecorators = {
280
- objectData: [{ type: Input }],
281
- layoutType: [{ type: Input }],
282
- fetchDataFromApi: [{ type: Input }],
283
- showHeader: [{ type: Input }],
284
- defaultDays: [{ type: Input }],
285
- providerId: [{ type: Input }],
286
- fullCalendor: [{ type: Input }]
287
- };
288
- return CalenderComponent;
289
- }());
290
- export { CalenderComponent };
291
- if (false) {
292
- /** @type {?} */
293
- CalenderComponent.prototype.objectData;
294
- /** @type {?} */
295
- CalenderComponent.prototype.layoutType;
296
- /** @type {?} */
297
- CalenderComponent.prototype.fetchDataFromApi;
298
- /** @type {?} */
299
- CalenderComponent.prototype.showHeader;
300
- /** @type {?} */
301
- CalenderComponent.prototype.defaultDays;
302
- /** @type {?} */
303
- CalenderComponent.prototype.providerId;
304
- /** @type {?} */
305
- CalenderComponent.prototype.fullCalendor;
306
- /** @type {?} */
307
- CalenderComponent.prototype.days;
308
- /** @type {?} */
309
- CalenderComponent.prototype.trainings;
310
- /** @type {?} */
311
- CalenderComponent.prototype.currentMonthAndYear;
312
- /** @type {?} */
313
- CalenderComponent.prototype.isDataLoading;
314
- /** @type {?} */
315
- CalenderComponent.prototype.currentDate;
316
- /** @type {?} */
317
- CalenderComponent.prototype.endDate;
318
- /** @type {?} */
319
- CalenderComponent.prototype.startDate;
320
- /** @type {?} */
321
- CalenderComponent.prototype.allMonths;
322
- /** @type {?} */
323
- CalenderComponent.prototype.monthsDropdown;
324
- /** @type {?} */
325
- CalenderComponent.prototype.selectedMonth;
326
- /**
327
- * @type {?}
328
- * @private
329
- */
330
- CalenderComponent.prototype.datePipe;
331
- /** @type {?} */
332
- CalenderComponent.prototype.insightSvc;
333
- }
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jYWxlbmRlci9jYWxlbmRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RTtJQTRCRSwyQkFBb0IsUUFBa0IsRUFBUyxVQUE2QjtRQUF4RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFuQm5FLHFCQUFnQixHQUFZLEtBQUssQ0FBQTtRQUNqQyxlQUFVLEdBQVksS0FBSyxDQUFBO1FBQzNCLGdCQUFXLEdBQVcsQ0FBQyxDQUFBO1FBRXZCLGlCQUFZLEdBQVksS0FBSyxDQUFBO1FBQ3RDLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxjQUFTLEdBQVEsRUFBRSxDQUFBO1FBRW5CLGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQzlCLGdCQUFXLEdBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUc3QixjQUFTLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU87WUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTTtZQUM5QixRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVM7WUFDaEMsVUFBVSxFQUFFLFVBQVU7U0FDdkIsQ0FBQTtRQUNELG1CQUFjLEdBQVEsRUFBRSxDQUFBO0lBRXdELENBQUM7Ozs7SUFFakYsb0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxX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MENBQWtCOzs7OztJQUNOLHFDQUEwQjs7SUFBRSx1Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluc2l0ZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL2luc2l0ZS1kYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY2FsZW5kZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBvYmplY3REYXRhOiBhbnlcbiAgQElucHV0KCkgbGF5b3V0VHlwZTogYW55XG4gIEBJbnB1dCgpIGZldGNoRGF0YUZyb21BcGk6IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBzaG93SGVhZGVyOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgZGVmYXVsdERheXM6IG51bWJlciA9IDNcbiAgQElucHV0KCkgcHJvdmlkZXJJZDogYW55XG4gIEBJbnB1dCgpIGZ1bGxDYWxlbmRvcjogYm9vbGVhbiA9IGZhbHNlXG4gIGRheXMgPSBbXVxuICB0cmFpbmluZ3M6IGFueSA9IHt9XG4gIGN1cnJlbnRNb250aEFuZFllYXI6IGFueVxuICBpc0RhdGFMb2FkaW5nOiBib29sZWFuID0gZmFsc2VcbiAgY3VycmVudERhdGU6IGFueSA9IG5ldyBEYXRlKClcbiAgZW5kRGF0ZTogYW55XG4gIHN0YXJ0RGF0ZTogYW55XG4gIGFsbE1vbnRocyA9IFtcIkphbnVhcnlcIiwgXCJGZWJydWFyeVwiLCBcIk1hcmNoXCIsXG4gICAgXCJBcHJpbFwiLCBcIk1heVwiLCBcIkp1bmVcIiwgXCJKdWx5XCIsXG4gICAgXCJBdWd1c3RcIiwgXCJTZXB0ZW1iZXJcIiwgXCJPY3RvYmVyXCIsXG4gICAgXCJOb3ZlbWJlclwiLCBcIkRlY2VtYmVyXCJcbiAgXVxuICBtb250aHNEcm9wZG93bjogYW55ID0gW11cbiAgc2VsZWN0ZWRNb250aDogYW55XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLCBwdWJsaWMgaW5zaWdodFN2YzogSW5zaXRlRGF0YVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3VycmVudE1vbnRoQW5kWWVhciA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuY3VycmVudERhdGUsICdNTU1NIHknKVxuICAgIHRoaXMuc2VsZWN0ZWRNb250aCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuY3VycmVudERhdGUsICdMTExMIHl5eXknKVxuICAgIGlmICh0aGlzLmZ1bGxDYWxlbmRvcikge1xuICAgICAgdGhpcy5kYXlzID0gdGhpcy5nZXREYXlzSW5Nb250aCh0aGlzLmN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCksIHRoaXMuY3VycmVudERhdGUuZ2V0TW9udGgoKSlcbiAgICAgIHRoaXMuZ2V0TW9udGhzRHJvcGRvd25EYXRhKClcbiAgICB9XG4gICAgaWYgKCF0aGlzLmZ1bGxDYWxlbmRvcikge1xuICAgICAgdGhpcy5kYXlzID0gdGhpcy5nZXREYXlzKHRoaXMuY3VycmVudERhdGUsICt0aGlzLmRlZmF1bHREYXlzKVxuICAgIH1cbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRoaXMuZGF5c1swXVxuICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMuZGF5c1t0aGlzLmRheXMubGVuZ3RoIC0gMV1cbiAgICBpZih0aGlzLmZldGNoRGF0YUZyb21BcGkpIHtcbiAgICAgIHRoaXMuaXNEYXRhTG9hZGluZyA9IHRydWVcbiAgICAgIHRoaXMuZ2V0SW5zaXRlRGF0YSgpXG4gICAgfVxuICB9XG4gIGdldEluc2l0ZURhdGEoKSB7XG4gICAgbGV0IHJlcXVlc3QgPSB7XG4gICAgICBcImxvY2FsZVwiOiBbXG4gICAgICAgICAgXCJlblwiXG4gICAgICBdLFxuICAgICAgXCJxdWVyeVwiOiBcIlwiLFxuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjYXRlZ29yeVwiOiBbXG4gICAgICAgICAgICAgICAgICBcIkNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCIsXG4gICAgICAgICAgICAgICAgICBcIlJldGlyZWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IFwiRXZlbnRcIixcbiAgICAgICAgICAgICAgXCJzdGFydERhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwiPj1cIjogdGhpcy5zdGFydERhdGUsXG4gICAgICAgICAgICAgICAgXCI8PVwiOiB0aGlzLmVuZERhdGVcbiAgICAgICAgICAgICAgICAvLyBcIj49XCI6IFwiMjAyNC0wMS0xNVwiLFxuICAgICAgICAgICAgICAgIC8vIFwiPFwiOiBcIjIwMjQtMDUtMzFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNoYW5uZWxcIjogW3RoaXMucHJvdmlkZXJJZF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic29ydF9ieVwiOiB7XG4gICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRPblwiOiBcImRlc2NcIlxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pbnNpZ2h0U3ZjLmZldGNoVHJhaW5pbmdEZXRhaWxzKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzOiBhbnkpPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMucmVzdWx0ICYmIHJlcy5yZXN1bHQuRXZlbnQpIHtcbiAgICAgICAgcmVzLnJlc3VsdC5FdmVudC5mb3JFYWNoKChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy50cmFpbmluZ3NbcmVzcC5zdGFydERhdGVdKSB7XG4gICAgICAgICAgICBsZXQgcHJldkRhdGEgPSB0aGlzLnRyYWluaW5nc1tyZXNwLnN0YXJ0RGF0ZV1cbiAgICAgICAgICAgIGxldCBsb2NhdGlvbiA9IHJlc3AuZXZlbnRUeXBlXG4gICAgICAgICAgICBpZiAocmVzcC5sb2NhdGlvbiAmJiBsb2NhdGlvbiAhPT0gXCJPbmxpbmVcIikge1xuICAgICAgICAgICAgICBjb25zdCBqc29uUmVzcCA9IEpTT04ucGFyc2UocmVzcC5sb2NhdGlvbilcbiAgICAgICAgICAgICAgbG9jYXRpb24gPSBqc29uUmVzcFsnYWRkcmVzcyddXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmb3JtYXRPYmplY3QgPSB7XG4gICAgICAgICAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbixcbiAgICAgICAgICAgICAgc3RhcnRUaW1lOiB0aGlzLmNvbnZlcnRUbzEySG91ckZvcm1hdChyZXNwLnN0YXJ0VGltZSksXG4gICAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuY29udmVydFRvMTJIb3VyRm9ybWF0KHJlc3AuZW5kVGltZSksXG4gICAgICAgICAgICAgIHRpdGxlOiByZXNwLm5hbWUsXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5mb3JtYXREYXRlKHJlc3Auc3RhcnREYXRlKSxcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5mb3JtYXREYXRlKHJlc3AuZW5kRGF0ZSksXG4gICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbkxpbms6IHJlc3AucmVnaXN0cmF0aW9uTGluayxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZXZEYXRhLnB1c2goZm9ybWF0T2JqZWN0KVxuICAgICAgICAgICAgdGhpcy50cmFpbmluZ3NbcmVzcC5zdGFydERhdGVdID0gcHJldkRhdGFcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICB0aGlzLmlzRGF0YUxvYWRpbmcgPSBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBnZXRLZXlzKG9iajogYW55KTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBhbnkpIHtcbiAgICBsZXQgZm9ybWF0RGF0ZSA9IG5ldyBEYXRlKGRhdGUpXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGZvcm1hdERhdGUsICdFLCBkZCBMTEwnKVxuICB9XG5cbiAgY29udmVydFRvMTJIb3VyRm9ybWF0KHRpbWVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdGltZSA9IHRpbWVTdHJpbmcuc3BsaXQoXCI6XCIpXG4gICAgbGV0IGhvdXJzID0gK3RpbWVbMF1cbiAgICBjb25zdCBtaW51dGVzID0gK3RpbWVbMV1cbiAgICBjb25zdCBhbXBtID0gaG91cnMgPj0gMTIgPyAnUE0nIDogJ0FNJ1xuICAgIGhvdXJzID0gaG91cnMgJSAxMlxuICAgIGhvdXJzID0gaG91cnMgPyBob3VycyA6IDEyXG4gICAgY29uc3Qgc3RySG91cnMgPSBob3VycyA8IDEwID8gJzAnICsgaG91cnMgOiBob3Vycy50b1N0cmluZygpXG4gICAgY29uc3Qgc3RyTWludXRlcyA9IG1pbnV0ZXMgPCAxMCA/ICcwJyArIG1pbnV0ZXMgOiBtaW51dGVzLnRvU3RyaW5nKClcbiAgICByZXR1cm4gYCR7c3RySG91cnN9OiR7c3RyTWludXRlc30gJHthbXBtfWBcbiAgfVxuXG4gIGdldERheXMoY0RhdGU6IGFueSwgY291bnRlcjogbnVtYmVyKSB7XG4gICAgY29uc3QgZGF5czogYW55ID0gW11cbiAgICBsZXQgaW5pdERhdGU6IGFueSA9IG5ldyBEYXRlKGNEYXRlKVxuICAgIGluaXREYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oaW5pdERhdGUsICd5LU1NLWRkJylcbiAgICBkYXlzLnB1c2goaW5pdERhdGUpXG4gICAgdGhpcy50cmFpbmluZ3NbaW5pdERhdGVdID0gW11cbiAgICB3aGlsZSAoY291bnRlciA+IDApIHtcbiAgICAgIGxldCBteURhdGU6IGFueSA9IG5ldyBEYXRlKGNEYXRlKVxuICAgICAgbXlEYXRlID0gbXlEYXRlLnNldERhdGUobXlEYXRlLmdldERhdGUoKSArIDEpXG4gICAgICBjRGF0ZSA9IG15RGF0ZVxuICAgICAgbXlEYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obXlEYXRlLCAneS1NTS1kZCcpXG4gICAgICBkYXlzLnB1c2gobXlEYXRlKVxuICAgICAgdGhpcy50cmFpbmluZ3NbbXlEYXRlXSA9IFtdXG4gICAgICBjb3VudGVyID0gY291bnRlciAtIDFcbiAgICB9XG4gICAgcmV0dXJuIGRheXNcbiAgfVxuXG4gIGdldERheXNJbk1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IERhdGVbXSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKVxuICAgIGNvbnN0IGRheXM6IGFueSA9IFtdXG4gICAgdGhpcy50cmFpbmluZ3MgPSB7fVxuICAgIHdoaWxlIChkYXRlLmdldE1vbnRoKCkgPT09IG1vbnRoKSB7XG4gICAgICBsZXQgbXlEYXRlOiBhbnkgPSBuZXcgRGF0ZShkYXRlKVxuICAgICAgbXlEYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obXlEYXRlLCAneS1NTS1kZCcpXG4gICAgICBkYXlzLnB1c2gobXlEYXRlKVxuICAgICAgdGhpcy50cmFpbmluZ3NbbXlEYXRlXSA9IFtdXG4gICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyAxKVxuICAgIH1cbiAgICByZXR1cm4gZGF5c1xuICB9XG5cbiAgZ2V0TW9udGhzRHJvcGRvd25EYXRhKCkge1xuICAgIHRoaXMuYWxsTW9udGhzLmZvckVhY2goKG1vbnRoOiBhbnkpID0+IHtcbiAgICAgIHRoaXMubW9udGhzRHJvcGRvd24ucHVzaChgJHttb250aH0gJHt0aGlzLmN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCl9YClcbiAgICB9KVxuICB9XG5cbiAgc2VsZWN0TW9udGgoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGVkTW9udGg6IGFueSA9IG5ldyBEYXRlKGV2ZW50KVxuICAgIHRoaXMuY3VycmVudERhdGUgPSBzZWxlY3RlZE1vbnRoXG4gICAgdGhpcy5kYXlzID0gW11cbiAgICB0aGlzLmRheXMgPSB0aGlzLmdldERheXNJbk1vbnRoKHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpKVxuICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5kYXlzWzBdXG4gICAgdGhpcy5lbmREYXRlID0gdGhpcy5kYXlzW3RoaXMuZGF5cy5sZW5ndGggLSAxXVxuICAgIHRoaXMuaXNEYXRhTG9hZGluZyA9IHRydWVcbiAgICB0aGlzLmdldEluc2l0ZURhdGEoKVxuICB9XG59XG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { DatePipe } from '@angular/common';
6
+ import { Component, Input, } from '@angular/core';
7
+ import { InsiteDataService } from '../../_services/insite-data.service';
8
+ var CalenderComponent = /** @class */ (function () {
9
+ function CalenderComponent(datePipe, insightSvc) {
10
+ this.datePipe = datePipe;
11
+ this.insightSvc = insightSvc;
12
+ this.fetchDataFromApi = false;
13
+ this.showHeader = false;
14
+ this.defaultDays = 3;
15
+ this.fullCalendor = false;
16
+ this.days = [];
17
+ this.trainings = {};
18
+ this.isDataLoading = false;
19
+ this.currentDate = new Date();
20
+ this.allMonths = ["January", "February", "March",
21
+ "April", "May", "June", "July",
22
+ "August", "September", "October",
23
+ "November", "December"
24
+ ];
25
+ this.monthsDropdown = [];
26
+ }
27
+ /**
28
+ * @return {?}
29
+ */
30
+ CalenderComponent.prototype.ngOnInit = /**
31
+ * @return {?}
32
+ */
33
+ function () {
34
+ this.currentMonthAndYear = this.datePipe.transform(this.currentDate, 'MMMM y');
35
+ this.selectedMonth = this.datePipe.transform(this.currentDate, 'LLLL yyyy');
36
+ if (this.fullCalendor) {
37
+ this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
38
+ this.getMonthsDropdownData();
39
+ }
40
+ if (!this.fullCalendor) {
41
+ this.days = this.getDays(this.currentDate, +this.defaultDays);
42
+ }
43
+ this.startDate = this.days[0];
44
+ this.endDate = this.days[this.days.length - 1];
45
+ if (this.fetchDataFromApi) {
46
+ this.isDataLoading = true;
47
+ this.getInsiteData();
48
+ }
49
+ };
50
+ /**
51
+ * @return {?}
52
+ */
53
+ CalenderComponent.prototype.getInsiteData = /**
54
+ * @return {?}
55
+ */
56
+ function () {
57
+ var _this = this;
58
+ /** @type {?} */
59
+ var request = {
60
+ "locale": [
61
+ "en"
62
+ ],
63
+ "query": "",
64
+ "request": {
65
+ "query": "",
66
+ "filters": {
67
+ "category": [
68
+ "Calendar"
69
+ ],
70
+ "status": [
71
+ "Live",
72
+ "Retired"
73
+ ],
74
+ "contentType": "Event",
75
+ "startDate": {
76
+ ">=": this.startDate,
77
+ "<=": this.endDate
78
+ // ">=": "2024-01-15",
79
+ // "<": "2024-05-31"
80
+ },
81
+ "channel": [this.providerId]
82
+ },
83
+ "sort_by": {
84
+ "lastUpdatedOn": "desc"
85
+ }
86
+ }
87
+ };
88
+ this.insightSvc.fetchTrainingDetails(request).subscribe((/**
89
+ * @param {?} res
90
+ * @return {?}
91
+ */
92
+ function (res) {
93
+ if (res && res.result && res.result.Event) {
94
+ res.result.Event.forEach((/**
95
+ * @param {?} resp
96
+ * @return {?}
97
+ */
98
+ function (resp) {
99
+ if (_this.trainings[resp.startDate]) {
100
+ /** @type {?} */
101
+ var prevData = _this.trainings[resp.startDate];
102
+ /** @type {?} */
103
+ var location_1 = resp.eventType;
104
+ if (resp.location && location_1 !== "Online") {
105
+ /** @type {?} */
106
+ var jsonResp = JSON.parse(resp.location);
107
+ location_1 = jsonResp['address'];
108
+ }
109
+ /** @type {?} */
110
+ var formatObject = {
111
+ location: location_1,
112
+ startTime: _this.convertTo12HourFormat(resp.startTime),
113
+ endTime: _this.convertTo12HourFormat(resp.endTime),
114
+ title: resp.name,
115
+ startDate: _this.formatDate(resp.startDate),
116
+ endDate: _this.formatDate(resp.endDate),
117
+ registrationLink: resp.registrationLink,
118
+ };
119
+ prevData.push(formatObject);
120
+ _this.trainings[resp.startDate] = prevData;
121
+ }
122
+ }));
123
+ }
124
+ _this.isDataLoading = false;
125
+ }));
126
+ };
127
+ /**
128
+ * @param {?} obj
129
+ * @return {?}
130
+ */
131
+ CalenderComponent.prototype.getKeys = /**
132
+ * @param {?} obj
133
+ * @return {?}
134
+ */
135
+ function (obj) {
136
+ return Object.keys(obj);
137
+ };
138
+ /**
139
+ * @param {?} date
140
+ * @return {?}
141
+ */
142
+ CalenderComponent.prototype.formatDate = /**
143
+ * @param {?} date
144
+ * @return {?}
145
+ */
146
+ function (date) {
147
+ /** @type {?} */
148
+ var formatDate = new Date(date);
149
+ return this.datePipe.transform(formatDate, 'E, dd LLL');
150
+ };
151
+ /**
152
+ * @param {?} timeString
153
+ * @return {?}
154
+ */
155
+ CalenderComponent.prototype.convertTo12HourFormat = /**
156
+ * @param {?} timeString
157
+ * @return {?}
158
+ */
159
+ function (timeString) {
160
+ /** @type {?} */
161
+ var time = timeString.split(":");
162
+ /** @type {?} */
163
+ var hours = +time[0];
164
+ /** @type {?} */
165
+ var minutes = +time[1];
166
+ /** @type {?} */
167
+ var ampm = hours >= 12 ? 'PM' : 'AM';
168
+ hours = hours % 12;
169
+ hours = hours ? hours : 12;
170
+ /** @type {?} */
171
+ var strHours = hours < 10 ? '0' + hours : hours.toString();
172
+ /** @type {?} */
173
+ var strMinutes = minutes < 10 ? '0' + minutes : minutes.toString();
174
+ return strHours + ":" + strMinutes + " " + ampm;
175
+ };
176
+ /**
177
+ * @param {?} cDate
178
+ * @param {?} counter
179
+ * @return {?}
180
+ */
181
+ CalenderComponent.prototype.getDays = /**
182
+ * @param {?} cDate
183
+ * @param {?} counter
184
+ * @return {?}
185
+ */
186
+ function (cDate, counter) {
187
+ /** @type {?} */
188
+ var days = [];
189
+ /** @type {?} */
190
+ var initDate = new Date(cDate);
191
+ initDate = this.datePipe.transform(initDate, 'y-MM-dd');
192
+ days.push(initDate);
193
+ this.trainings[initDate] = [];
194
+ while (counter > 0) {
195
+ /** @type {?} */
196
+ var myDate = new Date(cDate);
197
+ myDate = myDate.setDate(myDate.getDate() + 1);
198
+ cDate = myDate;
199
+ myDate = this.datePipe.transform(myDate, 'y-MM-dd');
200
+ days.push(myDate);
201
+ this.trainings[myDate] = [];
202
+ counter = counter - 1;
203
+ }
204
+ return days;
205
+ };
206
+ /**
207
+ * @param {?} year
208
+ * @param {?} month
209
+ * @return {?}
210
+ */
211
+ CalenderComponent.prototype.getDaysInMonth = /**
212
+ * @param {?} year
213
+ * @param {?} month
214
+ * @return {?}
215
+ */
216
+ function (year, month) {
217
+ /** @type {?} */
218
+ var date = new Date(year, month, 1);
219
+ /** @type {?} */
220
+ var days = [];
221
+ this.trainings = {};
222
+ while (date.getMonth() === month) {
223
+ /** @type {?} */
224
+ var myDate = new Date(date);
225
+ myDate = this.datePipe.transform(myDate, 'y-MM-dd');
226
+ days.push(myDate);
227
+ this.trainings[myDate] = [];
228
+ date.setDate(date.getDate() + 1);
229
+ }
230
+ return days;
231
+ };
232
+ /**
233
+ * @return {?}
234
+ */
235
+ CalenderComponent.prototype.getMonthsDropdownData = /**
236
+ * @return {?}
237
+ */
238
+ function () {
239
+ var _this = this;
240
+ this.allMonths.forEach((/**
241
+ * @param {?} month
242
+ * @return {?}
243
+ */
244
+ function (month) {
245
+ _this.monthsDropdown.push(month + " " + _this.currentDate.getFullYear());
246
+ }));
247
+ };
248
+ /**
249
+ * @param {?} event
250
+ * @return {?}
251
+ */
252
+ CalenderComponent.prototype.selectMonth = /**
253
+ * @param {?} event
254
+ * @return {?}
255
+ */
256
+ function (event) {
257
+ /** @type {?} */
258
+ var selectedMonth = new Date(event);
259
+ this.currentDate = selectedMonth;
260
+ this.days = [];
261
+ this.days = this.getDaysInMonth(this.currentDate.getFullYear(), this.currentDate.getMonth());
262
+ this.startDate = this.days[0];
263
+ this.endDate = this.days[this.days.length - 1];
264
+ this.isDataLoading = true;
265
+ this.getInsiteData();
266
+ };
267
+ CalenderComponent.decorators = [
268
+ { type: Component, args: [{
269
+ selector: 'sb-uic-calender',
270
+ template: "<div class=\"calendar-header flex flex-row c-padding center gap-2\" *ngIf=\"showHeader\">\r\n <div class=\"pt-3\">{{ objectData?.title }}:</div>\r\n <div class=\"choose-month\">\r\n <mat-form-field class=\"custom-month\">\r\n <mat-select matNativeControl panelClass=\"custom-select\" [ngModel]=\"selectedMonth\" (ngModelChange)=\"selectMonth($event)\" class=\"month-select\">\r\n <span *ngFor=\"let month of monthsDropdown\">\r\n <mat-option [value]=\"month\">{{month}}</mat-option>\r\n </span>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n</div>\r\n<div *ngIf=\"layoutType==='grid'\">\r\n <div *ngFor=\"let obj of getKeys(trainings); let i = index\">\r\n <sb-uic-calender-day [day]=\"trainings[obj]\"\r\n [layoutType]=\"layoutType\"\r\n [objectData]=\"objectData\"\r\n [dataLoading]=\"isDataLoading\"\r\n [eventDate]=\"obj\"\r\n [rowId]=\"i\">\r\n </sb-uic-calender-day>\r\n </div> \r\n</div>\r\n<div *ngIf=\"layoutType==='row'\">\r\n <div *ngFor=\"let obj of getKeys(trainings); let j = index\">\r\n <sb-uic-calender-day [day]=\"trainings[obj]\"\r\n [layoutType]=\"layoutType\"\r\n [objectData]=\"objectData\"\r\n [dataLoading]=\"isDataLoading\"\r\n [eventDate]=\"obj\"\r\n [rowId]=\"j\">\r\n </sb-uic-calender-day>\r\n </div>\r\n</div>",
271
+ styles: [".calendar-header{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.c-padding{padding:0}.center{align-items:center}::ng-deep .custom-month .mat-form-field-wrapper{padding-bottom:0!important;width:145px}::ng-deep .custom-month .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#000!important}::ng-deep .custom-month .mat-select-value{width:89%}::ng-deep .mat-select-arrow{color:#000!important}::ng-deep .custom-month .mat-select-value-text{font-weight:600}@media screen and (max-width:768px){.c-padding{padding:0 1.25rem 1rem}.calendar-header{font-size:15px}}"]
272
+ }] }
273
+ ];
274
+ /** @nocollapse */
275
+ CalenderComponent.ctorParameters = function () { return [
276
+ { type: DatePipe },
277
+ { type: InsiteDataService }
278
+ ]; };
279
+ CalenderComponent.propDecorators = {
280
+ objectData: [{ type: Input }],
281
+ layoutType: [{ type: Input }],
282
+ fetchDataFromApi: [{ type: Input }],
283
+ showHeader: [{ type: Input }],
284
+ defaultDays: [{ type: Input }],
285
+ providerId: [{ type: Input }],
286
+ fullCalendor: [{ type: Input }]
287
+ };
288
+ return CalenderComponent;
289
+ }());
290
+ export { CalenderComponent };
291
+ if (false) {
292
+ /** @type {?} */
293
+ CalenderComponent.prototype.objectData;
294
+ /** @type {?} */
295
+ CalenderComponent.prototype.layoutType;
296
+ /** @type {?} */
297
+ CalenderComponent.prototype.fetchDataFromApi;
298
+ /** @type {?} */
299
+ CalenderComponent.prototype.showHeader;
300
+ /** @type {?} */
301
+ CalenderComponent.prototype.defaultDays;
302
+ /** @type {?} */
303
+ CalenderComponent.prototype.providerId;
304
+ /** @type {?} */
305
+ CalenderComponent.prototype.fullCalendor;
306
+ /** @type {?} */
307
+ CalenderComponent.prototype.days;
308
+ /** @type {?} */
309
+ CalenderComponent.prototype.trainings;
310
+ /** @type {?} */
311
+ CalenderComponent.prototype.currentMonthAndYear;
312
+ /** @type {?} */
313
+ CalenderComponent.prototype.isDataLoading;
314
+ /** @type {?} */
315
+ CalenderComponent.prototype.currentDate;
316
+ /** @type {?} */
317
+ CalenderComponent.prototype.endDate;
318
+ /** @type {?} */
319
+ CalenderComponent.prototype.startDate;
320
+ /** @type {?} */
321
+ CalenderComponent.prototype.allMonths;
322
+ /** @type {?} */
323
+ CalenderComponent.prototype.monthsDropdown;
324
+ /** @type {?} */
325
+ CalenderComponent.prototype.selectedMonth;
326
+ /**
327
+ * @type {?}
328
+ * @private
329
+ */
330
+ CalenderComponent.prototype.datePipe;
331
+ /** @type {?} */
332
+ CalenderComponent.prototype.insightSvc;
333
+ }
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jYWxlbmRlci9jYWxlbmRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RTtJQTRCRSwyQkFBb0IsUUFBa0IsRUFBUyxVQUE2QjtRQUF4RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFuQm5FLHFCQUFnQixHQUFZLEtBQUssQ0FBQTtRQUNqQyxlQUFVLEdBQVksS0FBSyxDQUFBO1FBQzNCLGdCQUFXLEdBQVcsQ0FBQyxDQUFBO1FBRXZCLGlCQUFZLEdBQVksS0FBSyxDQUFBO1FBQ3RDLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxjQUFTLEdBQVEsRUFBRSxDQUFBO1FBRW5CLGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQzlCLGdCQUFXLEdBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUc3QixjQUFTLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU87WUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTTtZQUM5QixRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVM7WUFDaEMsVUFBVSxFQUFFLFVBQVU7U0FDdkIsQ0FBQTtRQUNELG1CQUFjLEdBQVEsRUFBRSxDQUFBO0lBRXdELENBQUM7Ozs7SUFFakYsb0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDOUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQzNFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDNUYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7U0FDN0I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtTQUM5RDtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDOUMsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7WUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQzs7OztJQUNELHlDQUFhOzs7SUFBYjtRQUFBLGlCQXdEQzs7WUF2REssT0FBTyxHQUFHO1lBQ1osUUFBUSxFQUFFO2dCQUNOLElBQUk7YUFDUDtZQUNELE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFO2dCQUNQLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFNBQVMsRUFBRTtvQkFDUCxVQUFVLEVBQUU7d0JBQ1IsVUFBVTtxQkFDYjtvQkFDRCxRQUFRLEVBQUU7d0JBQ04sTUFBTTt3QkFDTixTQUFTO3FCQUNaO29CQUNELGFBQWEsRUFBRSxPQUFPO29CQUN0QixXQUFXLEVBQUU7d0JBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTO3dCQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87d0JBQ2xCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3FCQUNyQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2lCQUMvQjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsZUFBZSxFQUFFLE1BQU07aUJBQzFCO2FBQ0o7U0FDRjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsR0FBUTtZQUMvRCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUN6QyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUMsSUFBUztvQkFDakMsSUFBSSxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTs7NEJBQzlCLFFBQVEsR0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7OzRCQUN6QyxVQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVM7d0JBQzdCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxVQUFRLEtBQUssUUFBUSxFQUFFOztnQ0FDcEMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzs0QkFDMUMsVUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQTt5QkFDL0I7OzRCQUNLLFlBQVksR0FBRzs0QkFDbkIsUUFBUSxFQUFFLFVBQVE7NEJBQ2xCLFNBQVMsRUFBRSxLQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzs0QkFDckQsT0FBTyxFQUFFLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUk7NEJBQ2hCLFNBQVMsRUFBRSxLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7NEJBQzFDLE9BQU8sRUFBRSxLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7NEJBQ3RDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7eUJBQ3hDO3dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7d0JBQzNCLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQTtxQkFDMUM7Z0JBQ0gsQ0FBQyxFQUFDLENBQUE7YUFDSDtZQUNELEtBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFBO1FBQzVCLENBQUMsRUFBQyxDQUFBO0lBQ0osQ0FBQzs7Ozs7SUFFRCxtQ0FBTzs7OztJQUFQLFVBQVEsR0FBUTtRQUNkLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDOzs7OztJQUVELHNDQUFVOzs7O0lBQVYsVUFBVyxJQUFTOztZQUNkLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDekQsQ0FBQzs7Ozs7SUFFRCxpREFBcUI7Ozs7SUFBckIsVUFBc0IsVUFBa0I7O1lBQ2hDLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzs7WUFDOUIsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs7WUFDZCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOztZQUNsQixJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3RDLEtBQUssR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBOztZQUNwQixRQUFRLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTs7WUFDdEQsVUFBVSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDcEUsT0FBVSxRQUFRLFNBQUksVUFBVSxTQUFJLElBQU0sQ0FBQTtJQUM1QyxDQUFDOzs7Ozs7SUFFRCxtQ0FBTzs7Ozs7SUFBUCxVQUFRLEtBQVUsRUFBRSxPQUFlOztZQUMzQixJQUFJLEdBQVEsRUFBRTs7WUFDaEIsUUFBUSxHQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDN0IsT0FBTyxPQUFPLEdBQUcsQ0FBQyxFQUFFOztnQkFDZCxNQUFNLEdBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUM3QyxLQUFLLEdBQUcsTUFBTSxDQUFBO1lBQ2QsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQTtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQzNCLE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFBO1NBQ3RCO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOzs7Ozs7SUFFRCwwQ0FBYzs7Ozs7SUFBZCxVQUFlLElBQVksRUFBRSxLQUFhOztZQUNsQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7O1lBQy9CLElBQUksR0FBUSxFQUFFO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssRUFBRTs7Z0JBQzVCLE1BQU0sR0FBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDaEMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQTtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO1NBQ2pDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOzs7O0lBRUQsaURBQXFCOzs7SUFBckI7UUFBQSxpQkFJQztRQUhDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsS0FBVTtZQUNoQyxLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBSSxLQUFLLFNBQUksS0FBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUksQ0FBQyxDQUFBO1FBQ3hFLENBQUMsRUFBQyxDQUFBO0lBQ0osQ0FBQzs7Ozs7SUFFRCx1Q0FBVzs7OztJQUFYLFVBQVksS0FBVTs7WUFDZCxhQUFhLEdBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7UUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3RCLENBQUM7O2dCQTdLRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsbStDQUF3Qzs7aUJBRXpDOzs7O2dCQWJRLFFBQVE7Z0JBT1IsaUJBQWlCOzs7NkJBU3ZCLEtBQUs7NkJBQ0wsS0FBSzttQ0FDTCxLQUFLOzZCQUNMLEtBQUs7OEJBQ0wsS0FBSzs2QkFDTCxLQUFLOytCQUNMLEtBQUs7O0lBaUtSLHdCQUFDO0NBQUEsQUE5S0QsSUE4S0M7U0F6S1ksaUJBQWlCOzs7SUFFNUIsdUNBQXdCOztJQUN4Qix1Q0FBd0I7O0lBQ3hCLDZDQUEwQzs7SUFDMUMsdUNBQW9DOztJQUNwQyx3Q0FBZ0M7O0lBQ2hDLHVDQUF3Qjs7SUFDeEIseUNBQXNDOztJQUN0QyxpQ0FBUzs7SUFDVCxzQ0FBbUI7O0lBQ25CLGdEQUF3Qjs7SUFDeEIsMENBQThCOztJQUM5Qix3Q0FBNkI7O0lBQzdCLG9DQUFZOztJQUNaLHNDQUFjOztJQUNkLHNDQUlDOztJQUNELDJDQUF3Qjs7SUFDeEIsMENBQWtCOzs7OztJQUNOLHFDQUEwQjs7SUFBRSx1Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW5zaXRlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvaW5zaXRlLWRhdGEuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NiLXVpYy1jYWxlbmRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIG9iamVjdERhdGE6IGFueVxyXG4gIEBJbnB1dCgpIGxheW91dFR5cGU6IGFueVxyXG4gIEBJbnB1dCgpIGZldGNoRGF0YUZyb21BcGk6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIEBJbnB1dCgpIHNob3dIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIEBJbnB1dCgpIGRlZmF1bHREYXlzOiBudW1iZXIgPSAzXHJcbiAgQElucHV0KCkgcHJvdmlkZXJJZDogYW55XHJcbiAgQElucHV0KCkgZnVsbENhbGVuZG9yOiBib29sZWFuID0gZmFsc2VcclxuICBkYXlzID0gW11cclxuICB0cmFpbmluZ3M6IGFueSA9IHt9XHJcbiAgY3VycmVudE1vbnRoQW5kWWVhcjogYW55XHJcbiAgaXNEYXRhTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlXHJcbiAgY3VycmVudERhdGU6IGFueSA9IG5ldyBEYXRlKClcclxuICBlbmREYXRlOiBhbnlcclxuICBzdGFydERhdGU6IGFueVxyXG4gIGFsbE1vbnRocyA9IFtcIkphbnVhcnlcIiwgXCJGZWJydWFyeVwiLCBcIk1hcmNoXCIsXHJcbiAgICBcIkFwcmlsXCIsIFwiTWF5XCIsIFwiSnVuZVwiLCBcIkp1bHlcIixcclxuICAgIFwiQXVndXN0XCIsIFwiU2VwdGVtYmVyXCIsIFwiT2N0b2JlclwiLFxyXG4gICAgXCJOb3ZlbWJlclwiLCBcIkRlY2VtYmVyXCJcclxuICBdXHJcbiAgbW9udGhzRHJvcGRvd246IGFueSA9IFtdXHJcbiAgc2VsZWN0ZWRNb250aDogYW55XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsIHB1YmxpYyBpbnNpZ2h0U3ZjOiBJbnNpdGVEYXRhU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jdXJyZW50TW9udGhBbmRZZWFyID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5jdXJyZW50RGF0ZSwgJ01NTU0geScpXHJcbiAgICB0aGlzLnNlbGVjdGVkTW9udGggPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmN1cnJlbnREYXRlLCAnTExMTCB5eXl5JylcclxuICAgIGlmICh0aGlzLmZ1bGxDYWxlbmRvcikge1xyXG4gICAgICB0aGlzLmRheXMgPSB0aGlzLmdldERheXNJbk1vbnRoKHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpKVxyXG4gICAgICB0aGlzLmdldE1vbnRoc0Ryb3Bkb3duRGF0YSgpXHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuZnVsbENhbGVuZG9yKSB7XHJcbiAgICAgIHRoaXMuZGF5cyA9IHRoaXMuZ2V0RGF5cyh0aGlzLmN1cnJlbnREYXRlLCArdGhpcy5kZWZhdWx0RGF5cylcclxuICAgIH1cclxuICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5kYXlzWzBdXHJcbiAgICB0aGlzLmVuZERhdGUgPSB0aGlzLmRheXNbdGhpcy5kYXlzLmxlbmd0aCAtIDFdXHJcbiAgICBpZih0aGlzLmZldGNoRGF0YUZyb21BcGkpIHtcclxuICAgICAgdGhpcy5pc0RhdGFMb2FkaW5nID0gdHJ1ZVxyXG4gICAgICB0aGlzLmdldEluc2l0ZURhdGEoKVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRJbnNpdGVEYXRhKCkge1xyXG4gICAgbGV0IHJlcXVlc3QgPSB7XHJcbiAgICAgIFwibG9jYWxlXCI6IFtcclxuICAgICAgICAgIFwiZW5cIlxyXG4gICAgICBdLFxyXG4gICAgICBcInF1ZXJ5XCI6IFwiXCIsXHJcbiAgICAgIFwicmVxdWVzdFwiOiB7XHJcbiAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXHJcbiAgICAgICAgICBcImZpbHRlcnNcIjoge1xyXG4gICAgICAgICAgICAgIFwiY2F0ZWdvcnlcIjogW1xyXG4gICAgICAgICAgICAgICAgICBcIkNhbGVuZGFyXCJcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIFwic3RhdHVzXCI6IFtcclxuICAgICAgICAgICAgICAgICAgXCJMaXZlXCIsXHJcbiAgICAgICAgICAgICAgICAgIFwiUmV0aXJlZFwiXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IFwiRXZlbnRcIixcclxuICAgICAgICAgICAgICBcInN0YXJ0RGF0ZVwiOiB7XHJcbiAgICAgICAgICAgICAgICBcIj49XCI6IHRoaXMuc3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgXCI8PVwiOiB0aGlzLmVuZERhdGVcclxuICAgICAgICAgICAgICAgIC8vIFwiPj1cIjogXCIyMDI0LTAxLTE1XCIsXHJcbiAgICAgICAgICAgICAgICAvLyBcIjxcIjogXCIyMDI0LTA1LTMxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIFwiY2hhbm5lbFwiOiBbdGhpcy5wcm92aWRlcklkXVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFwic29ydF9ieVwiOiB7XHJcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaW5zaWdodFN2Yy5mZXRjaFRyYWluaW5nRGV0YWlscyhyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlczogYW55KT0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMucmVzdWx0ICYmIHJlcy5yZXN1bHQuRXZlbnQpIHtcclxuICAgICAgICByZXMucmVzdWx0LkV2ZW50LmZvckVhY2goKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJhaW5pbmdzW3Jlc3Auc3RhcnREYXRlXSkge1xyXG4gICAgICAgICAgICBsZXQgcHJldkRhdGEgPSB0aGlzLnRyYWluaW5nc1tyZXNwLnN0YXJ0RGF0ZV1cclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gcmVzcC5ldmVudFR5cGVcclxuICAgICAgICAgICAgaWYgKHJlc3AubG9jYXRpb24gJiYgbG9jYXRpb24gIT09IFwiT25saW5lXCIpIHtcclxuICAgICAgICAgICAgICBjb25zdCBqc29uUmVzcCA9IEpTT04ucGFyc2UocmVzcC5sb2NhdGlvbilcclxuICAgICAgICAgICAgICBsb2NhdGlvbiA9IGpzb25SZXNwWydhZGRyZXNzJ11cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBmb3JtYXRPYmplY3QgPSB7XHJcbiAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLFxyXG4gICAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5jb252ZXJ0VG8xMkhvdXJGb3JtYXQocmVzcC5zdGFydFRpbWUpLFxyXG4gICAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuY29udmVydFRvMTJIb3VyRm9ybWF0KHJlc3AuZW5kVGltZSksXHJcbiAgICAgICAgICAgICAgdGl0bGU6IHJlc3AubmFtZSxcclxuICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZm9ybWF0RGF0ZShyZXNwLnN0YXJ0RGF0ZSksXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5mb3JtYXREYXRlKHJlc3AuZW5kRGF0ZSksXHJcbiAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uTGluazogcmVzcC5yZWdpc3RyYXRpb25MaW5rLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHByZXZEYXRhLnB1c2goZm9ybWF0T2JqZWN0KVxyXG4gICAgICAgICAgICB0aGlzLnRyYWluaW5nc1tyZXNwLnN0YXJ0RGF0ZV0gPSBwcmV2RGF0YVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0RhdGFMb2FkaW5nID0gZmFsc2VcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRLZXlzKG9iajogYW55KTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaik7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREYXRlKGRhdGU6IGFueSkge1xyXG4gICAgbGV0IGZvcm1hdERhdGUgPSBuZXcgRGF0ZShkYXRlKVxyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGZvcm1hdERhdGUsICdFLCBkZCBMTEwnKVxyXG4gIH1cclxuXHJcbiAgY29udmVydFRvMTJIb3VyRm9ybWF0KHRpbWVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0aW1lID0gdGltZVN0cmluZy5zcGxpdChcIjpcIilcclxuICAgIGxldCBob3VycyA9ICt0aW1lWzBdXHJcbiAgICBjb25zdCBtaW51dGVzID0gK3RpbWVbMV1cclxuICAgIGNvbnN0IGFtcG0gPSBob3VycyA+PSAxMiA/ICdQTScgOiAnQU0nXHJcbiAgICBob3VycyA9IGhvdXJzICUgMTJcclxuICAgIGhvdXJzID0gaG91cnMgPyBob3VycyA6IDEyXHJcbiAgICBjb25zdCBzdHJIb3VycyA9IGhvdXJzIDwgMTAgPyAnMCcgKyBob3VycyA6IGhvdXJzLnRvU3RyaW5nKClcclxuICAgIGNvbnN0IHN0ck1pbnV0ZXMgPSBtaW51dGVzIDwgMTAgPyAnMCcgKyBtaW51dGVzIDogbWludXRlcy50b1N0cmluZygpXHJcbiAgICByZXR1cm4gYCR7c3RySG91cnN9OiR7c3RyTWludXRlc30gJHthbXBtfWBcclxuICB9XHJcblxyXG4gIGdldERheXMoY0RhdGU6IGFueSwgY291bnRlcjogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBkYXlzOiBhbnkgPSBbXVxyXG4gICAgbGV0IGluaXREYXRlOiBhbnkgPSBuZXcgRGF0ZShjRGF0ZSlcclxuICAgIGluaXREYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oaW5pdERhdGUsICd5LU1NLWRkJylcclxuICAgIGRheXMucHVzaChpbml0RGF0ZSlcclxuICAgIHRoaXMudHJhaW5pbmdzW2luaXREYXRlXSA9IFtdXHJcbiAgICB3aGlsZSAoY291bnRlciA+IDApIHtcclxuICAgICAgbGV0IG15RGF0ZTogYW55ID0gbmV3IERhdGUoY0RhdGUpXHJcbiAgICAgIG15RGF0ZSA9IG15RGF0ZS5zZXREYXRlKG15RGF0ZS5nZXREYXRlKCkgKyAxKVxyXG4gICAgICBjRGF0ZSA9IG15RGF0ZVxyXG4gICAgICBteURhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShteURhdGUsICd5LU1NLWRkJylcclxuICAgICAgZGF5cy5wdXNoKG15RGF0ZSlcclxuICAgICAgdGhpcy50cmFpbmluZ3NbbXlEYXRlXSA9IFtdXHJcbiAgICAgIGNvdW50ZXIgPSBjb3VudGVyIC0gMVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRheXNcclxuICB9XHJcblxyXG4gIGdldERheXNJbk1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IERhdGVbXSB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpXHJcbiAgICBjb25zdCBkYXlzOiBhbnkgPSBbXVxyXG4gICAgdGhpcy50cmFpbmluZ3MgPSB7fVxyXG4gICAgd2hpbGUgKGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGgpIHtcclxuICAgICAgbGV0IG15RGF0ZTogYW55ID0gbmV3IERhdGUoZGF0ZSlcclxuICAgICAgbXlEYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obXlEYXRlLCAneS1NTS1kZCcpXHJcbiAgICAgIGRheXMucHVzaChteURhdGUpXHJcbiAgICAgIHRoaXMudHJhaW5pbmdzW215RGF0ZV0gPSBbXVxyXG4gICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyAxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRheXNcclxuICB9XHJcblxyXG4gIGdldE1vbnRoc0Ryb3Bkb3duRGF0YSgpIHtcclxuICAgIHRoaXMuYWxsTW9udGhzLmZvckVhY2goKG1vbnRoOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5tb250aHNEcm9wZG93bi5wdXNoKGAke21vbnRofSAke3RoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKX1gKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNlbGVjdE1vbnRoKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkTW9udGg6IGFueSA9IG5ldyBEYXRlKGV2ZW50KVxyXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHNlbGVjdGVkTW9udGhcclxuICAgIHRoaXMuZGF5cyA9IFtdXHJcbiAgICB0aGlzLmRheXMgPSB0aGlzLmdldERheXNJbk1vbnRoKHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpKVxyXG4gICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLmRheXNbMF1cclxuICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMuZGF5c1t0aGlzLmRheXMubGVuZ3RoIC0gMV1cclxuICAgIHRoaXMuaXNEYXRhTG9hZGluZyA9IHRydWVcclxuICAgIHRoaXMuZ2V0SW5zaXRlRGF0YSgpXHJcbiAgfVxyXG59XHJcbiJdfQ==