@clickview/lite 0.52.3-dev.0 → 0.52.3-dev.2

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 (291) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{1760-lite-d230b51c8b.chunk.css → 1019-lite-402889ede4.chunk.css} +2 -1
  3. package/dist/css/{6094-lite-d230b51c8b.chunk.css → 2548-lite-402889ede4.chunk.css} +2 -1
  4. package/dist/css/{6546-lite-991b6e8255.chunk.css → 6596-lite-e22262b911.chunk.css} +2 -1
  5. package/dist/css/{1867-lite-991b6e8255.chunk.css → 9010-lite-e22262b911.chunk.css} +2 -1
  6. package/dist/languages/en.json +1 -1
  7. package/dist/scripts/{1760-33f1791560-lite.chunk.js → 1019-8fc84c7c2e-lite.chunk.js} +2 -2
  8. package/dist/scripts/{1760-33f1791560-lite.chunk.js.map → 1019-8fc84c7c2e-lite.chunk.js.map} +1 -1
  9. package/dist/scripts/1063-5a732288dc-lite.chunk.js +2 -0
  10. package/dist/scripts/1063-5a732288dc-lite.chunk.js.map +1 -0
  11. package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
  12. package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
  13. package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-c5138ef662-lite.chunk.js} +2 -2
  14. package/dist/scripts/1125-c5138ef662-lite.chunk.js.map +1 -0
  15. package/dist/scripts/1169-9b7d850bab-lite.chunk.js +2 -0
  16. package/dist/scripts/1169-9b7d850bab-lite.chunk.js.map +1 -0
  17. package/dist/scripts/{1379-082bbab71a-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
  18. package/dist/scripts/{1379-082bbab71a-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
  19. package/dist/scripts/1672-0d1fc90529-lite.chunk.js +3 -0
  20. package/dist/scripts/1672-0d1fc90529-lite.chunk.js.map +1 -0
  21. package/dist/scripts/1725-99450ed637-lite.chunk.js +2 -0
  22. package/dist/scripts/1725-99450ed637-lite.chunk.js.map +1 -0
  23. package/dist/scripts/1891-5914c54eca-lite.chunk.js +2 -0
  24. package/dist/scripts/1891-5914c54eca-lite.chunk.js.map +1 -0
  25. package/dist/scripts/1896-399a91d18c-lite.chunk.js +2 -0
  26. package/dist/scripts/1896-399a91d18c-lite.chunk.js.map +1 -0
  27. package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
  28. package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
  29. package/dist/scripts/209-fe96739cb5-lite.chunk.js +2 -0
  30. package/dist/scripts/209-fe96739cb5-lite.chunk.js.map +1 -0
  31. package/dist/scripts/2134-b8d5c46887-lite.chunk.js +2 -0
  32. package/dist/scripts/2134-b8d5c46887-lite.chunk.js.map +1 -0
  33. package/dist/scripts/2142-f71cf5c71f-lite.chunk.js +2 -0
  34. package/dist/scripts/2142-f71cf5c71f-lite.chunk.js.map +1 -0
  35. package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js +2 -0
  36. package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js.map +1 -0
  37. package/dist/scripts/2548-c5dd2899df-lite.chunk.js +2 -0
  38. package/dist/scripts/2548-c5dd2899df-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2952-c3a826b714-lite.chunk.js +2 -0
  40. package/dist/scripts/2952-c3a826b714-lite.chunk.js.map +1 -0
  41. package/dist/scripts/3404-23125f10ea-lite.chunk.js +2 -0
  42. package/dist/scripts/3404-23125f10ea-lite.chunk.js.map +1 -0
  43. package/dist/scripts/3633-f3609526a5-lite.chunk.js +2 -0
  44. package/dist/scripts/3633-f3609526a5-lite.chunk.js.map +1 -0
  45. package/dist/scripts/3728-eed9e78985-lite.chunk.js +2 -0
  46. package/dist/scripts/3728-eed9e78985-lite.chunk.js.map +1 -0
  47. package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
  48. package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
  49. package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js +2 -0
  50. package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js.map +1 -0
  51. package/dist/scripts/4273-e42f763f00-lite.chunk.js +3 -0
  52. package/dist/scripts/4273-e42f763f00-lite.chunk.js.map +1 -0
  53. package/dist/scripts/4395-d0815835c8-lite.chunk.js +2 -0
  54. package/dist/scripts/4395-d0815835c8-lite.chunk.js.map +1 -0
  55. package/dist/scripts/4502-af4903784e-lite.chunk.js +2 -0
  56. package/dist/scripts/4502-af4903784e-lite.chunk.js.map +1 -0
  57. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
  58. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
  59. package/dist/scripts/5573-4352a3537e-lite.chunk.js +2 -0
  60. package/dist/scripts/5573-4352a3537e-lite.chunk.js.map +1 -0
  61. package/dist/scripts/5595-3acc9593bf-lite.chunk.js +2 -0
  62. package/dist/scripts/5595-3acc9593bf-lite.chunk.js.map +1 -0
  63. package/dist/scripts/5606-69c0ca2b97-lite.chunk.js +2 -0
  64. package/dist/scripts/5606-69c0ca2b97-lite.chunk.js.map +1 -0
  65. package/dist/scripts/5877-628732da21-lite.chunk.js +2 -0
  66. package/dist/scripts/5877-628732da21-lite.chunk.js.map +1 -0
  67. package/dist/scripts/5936-cd98109a7b-lite.chunk.js +2 -0
  68. package/dist/scripts/5936-cd98109a7b-lite.chunk.js.map +1 -0
  69. package/dist/scripts/{5940-f335f8c290-lite.chunk.js → 5940-2767b40c40-lite.chunk.js} +2 -2
  70. package/dist/scripts/5940-2767b40c40-lite.chunk.js.map +1 -0
  71. package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
  72. package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
  73. package/dist/scripts/6138-2ef7ee071a-lite.chunk.js +2 -0
  74. package/dist/scripts/6138-2ef7ee071a-lite.chunk.js.map +1 -0
  75. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
  76. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
  77. package/dist/scripts/6263-8a7931bf51-lite.chunk.js +2 -0
  78. package/dist/scripts/6263-8a7931bf51-lite.chunk.js.map +1 -0
  79. package/dist/scripts/6290-28ae0e8a60-lite.chunk.js +2 -0
  80. package/dist/scripts/6290-28ae0e8a60-lite.chunk.js.map +1 -0
  81. package/dist/scripts/6470-9a700cabce-lite.chunk.js +2 -0
  82. package/dist/scripts/6470-9a700cabce-lite.chunk.js.map +1 -0
  83. package/dist/scripts/6481-035d218a77-lite.chunk.js +2 -0
  84. package/dist/scripts/6481-035d218a77-lite.chunk.js.map +1 -0
  85. package/dist/scripts/6532-59e9abf69d-lite.chunk.js +2 -0
  86. package/dist/scripts/6532-59e9abf69d-lite.chunk.js.map +1 -0
  87. package/dist/scripts/6596-f75129c039-lite.chunk.js +2 -0
  88. package/dist/scripts/6596-f75129c039-lite.chunk.js.map +1 -0
  89. package/dist/scripts/6604-9adec889c7-lite.chunk.js +2 -0
  90. package/dist/scripts/6604-9adec889c7-lite.chunk.js.map +1 -0
  91. package/dist/scripts/6746-3f501b95cf-lite.chunk.js +2 -0
  92. package/dist/scripts/6746-3f501b95cf-lite.chunk.js.map +1 -0
  93. package/dist/scripts/714-c00ad56229-lite.chunk.js +2 -0
  94. package/dist/scripts/714-c00ad56229-lite.chunk.js.map +1 -0
  95. package/dist/scripts/7163-84c2b15394-lite.chunk.js +2 -0
  96. package/dist/scripts/7163-84c2b15394-lite.chunk.js.map +1 -0
  97. package/dist/scripts/7178-ed74c33056-lite.chunk.js +2 -0
  98. package/dist/scripts/7178-ed74c33056-lite.chunk.js.map +1 -0
  99. package/dist/scripts/7223-0bfab7e57a-lite.chunk.js +2 -0
  100. package/dist/scripts/7223-0bfab7e57a-lite.chunk.js.map +1 -0
  101. package/dist/scripts/7234-84c087600e-lite.chunk.js +2 -0
  102. package/dist/scripts/7234-84c087600e-lite.chunk.js.map +1 -0
  103. package/dist/scripts/7267-fd5085f5c9-lite.chunk.js +2 -0
  104. package/dist/scripts/7267-fd5085f5c9-lite.chunk.js.map +1 -0
  105. package/dist/scripts/7633-6c1ffdd082-lite.chunk.js +2 -0
  106. package/dist/scripts/7633-6c1ffdd082-lite.chunk.js.map +1 -0
  107. package/dist/scripts/7679-8f2d6a3487-lite.chunk.js +2 -0
  108. package/dist/scripts/7679-8f2d6a3487-lite.chunk.js.map +1 -0
  109. package/dist/scripts/7757-7e293be936-lite.chunk.js +2 -0
  110. package/dist/scripts/7757-7e293be936-lite.chunk.js.map +1 -0
  111. package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js +2 -0
  112. package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js.map +1 -0
  113. package/dist/scripts/7818-230982fc27-lite.chunk.js +2 -0
  114. package/dist/scripts/7818-230982fc27-lite.chunk.js.map +1 -0
  115. package/dist/scripts/8323-360541a2a8-lite.chunk.js +3 -0
  116. package/dist/scripts/8323-360541a2a8-lite.chunk.js.map +1 -0
  117. package/dist/scripts/8709-c4f1068232-lite.chunk.js +2 -0
  118. package/dist/scripts/8709-c4f1068232-lite.chunk.js.map +1 -0
  119. package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js +2 -0
  120. package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js.map +1 -0
  121. package/dist/scripts/9010-024dcc8f9a-lite.chunk.js +2 -0
  122. package/dist/scripts/9010-024dcc8f9a-lite.chunk.js.map +1 -0
  123. package/dist/scripts/9016-82d7e0afb9-lite.chunk.js +3 -0
  124. package/dist/scripts/9016-82d7e0afb9-lite.chunk.js.map +1 -0
  125. package/dist/scripts/9173-f9708ec0de-lite.chunk.js +2 -0
  126. package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +1 -0
  127. package/dist/scripts/9230-ae200d2bd3-lite.chunk.js +3 -0
  128. package/dist/scripts/9230-ae200d2bd3-lite.chunk.js.map +1 -0
  129. package/dist/scripts/9359-1fb4413e0d-lite.chunk.js +2 -0
  130. package/dist/scripts/9359-1fb4413e0d-lite.chunk.js.map +1 -0
  131. package/dist/scripts/{9395-90b87097fa-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
  132. package/dist/scripts/{9395-90b87097fa-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
  133. package/dist/scripts/9399-d7a92ce84a-lite.chunk.js +2 -0
  134. package/dist/scripts/9399-d7a92ce84a-lite.chunk.js.map +1 -0
  135. package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
  136. package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
  137. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
  138. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
  139. package/dist/scripts/9620-95e6cc7b2b-lite.chunk.js +3 -0
  140. package/dist/scripts/9620-95e6cc7b2b-lite.chunk.js.map +1 -0
  141. package/dist/scripts/9719-9736913451-lite.chunk.js +3 -0
  142. package/dist/scripts/9719-9736913451-lite.chunk.js.map +1 -0
  143. package/dist/scripts/999-bdc7956050-lite.chunk.js +2 -0
  144. package/dist/scripts/999-bdc7956050-lite.chunk.js.map +1 -0
  145. package/dist/scripts/bundle-9f8729bedb.min.js +3 -0
  146. package/dist/scripts/bundle-9f8729bedb.min.js.map +1 -0
  147. package/package.json +1 -1
  148. package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
  149. package/dist/scripts/1169-534a29a204-lite.chunk.js +0 -2
  150. package/dist/scripts/1169-534a29a204-lite.chunk.js.map +0 -1
  151. package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
  152. package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
  153. package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
  154. package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
  155. package/dist/scripts/1818-64a145c5fe-lite.chunk.js +0 -2
  156. package/dist/scripts/1818-64a145c5fe-lite.chunk.js.map +0 -1
  157. package/dist/scripts/1820-993521951d-lite.chunk.js +0 -2
  158. package/dist/scripts/1820-993521951d-lite.chunk.js.map +0 -1
  159. package/dist/scripts/1867-260ef9f8c2-lite.chunk.js +0 -2
  160. package/dist/scripts/1867-260ef9f8c2-lite.chunk.js.map +0 -1
  161. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
  162. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
  163. package/dist/scripts/1896-32a6eeda5c-lite.chunk.js +0 -2
  164. package/dist/scripts/1896-32a6eeda5c-lite.chunk.js.map +0 -1
  165. package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
  166. package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
  167. package/dist/scripts/209-de1729d1b1-lite.chunk.js +0 -2
  168. package/dist/scripts/209-de1729d1b1-lite.chunk.js.map +0 -1
  169. package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
  170. package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
  171. package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
  172. package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
  173. package/dist/scripts/3404-171fdee802-lite.chunk.js +0 -2
  174. package/dist/scripts/3404-171fdee802-lite.chunk.js.map +0 -1
  175. package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
  176. package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
  177. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
  178. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
  179. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
  180. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
  181. package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
  182. package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
  183. package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
  184. package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
  185. package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
  186. package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
  187. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
  188. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
  189. package/dist/scripts/5595-c4397e12a8-lite.chunk.js +0 -2
  190. package/dist/scripts/5595-c4397e12a8-lite.chunk.js.map +0 -1
  191. package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
  192. package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
  193. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
  194. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
  195. package/dist/scripts/5936-6fe810d3cb-lite.chunk.js +0 -2
  196. package/dist/scripts/5936-6fe810d3cb-lite.chunk.js.map +0 -1
  197. package/dist/scripts/5940-f335f8c290-lite.chunk.js.map +0 -1
  198. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
  199. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
  200. package/dist/scripts/6094-24c430efb3-lite.chunk.js +0 -2
  201. package/dist/scripts/6094-24c430efb3-lite.chunk.js.map +0 -1
  202. package/dist/scripts/6138-21ae042a7b-lite.chunk.js +0 -2
  203. package/dist/scripts/6138-21ae042a7b-lite.chunk.js.map +0 -1
  204. package/dist/scripts/6263-3455286798-lite.chunk.js +0 -2
  205. package/dist/scripts/6263-3455286798-lite.chunk.js.map +0 -1
  206. package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
  207. package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
  208. package/dist/scripts/6415-b29029aa1b-lite.chunk.js +0 -2
  209. package/dist/scripts/6415-b29029aa1b-lite.chunk.js.map +0 -1
  210. package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
  211. package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
  212. package/dist/scripts/6481-899eba8b3d-lite.chunk.js +0 -2
  213. package/dist/scripts/6481-899eba8b3d-lite.chunk.js.map +0 -1
  214. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
  215. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
  216. package/dist/scripts/6546-faa6f93a0e-lite.chunk.js +0 -2
  217. package/dist/scripts/6546-faa6f93a0e-lite.chunk.js.map +0 -1
  218. package/dist/scripts/6587-ba8e36be0b-lite.chunk.js +0 -2
  219. package/dist/scripts/6587-ba8e36be0b-lite.chunk.js.map +0 -1
  220. package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
  221. package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
  222. package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
  223. package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
  224. package/dist/scripts/679-e18e7956d0-lite.chunk.js +0 -2
  225. package/dist/scripts/679-e18e7956d0-lite.chunk.js.map +0 -1
  226. package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
  227. package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
  228. package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
  229. package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
  230. package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
  231. package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
  232. package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
  233. package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
  234. package/dist/scripts/7679-b01da2c09d-lite.chunk.js +0 -2
  235. package/dist/scripts/7679-b01da2c09d-lite.chunk.js.map +0 -1
  236. package/dist/scripts/7757-320e868e90-lite.chunk.js +0 -2
  237. package/dist/scripts/7757-320e868e90-lite.chunk.js.map +0 -1
  238. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
  239. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
  240. package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
  241. package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
  242. package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
  243. package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
  244. package/dist/scripts/8766-bcc7f11eac-lite.chunk.js +0 -2
  245. package/dist/scripts/8766-bcc7f11eac-lite.chunk.js.map +0 -1
  246. package/dist/scripts/8800-335154fe11-lite.chunk.js +0 -2
  247. package/dist/scripts/8800-335154fe11-lite.chunk.js.map +0 -1
  248. package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
  249. package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
  250. package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
  251. package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
  252. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
  253. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
  254. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
  255. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
  256. package/dist/scripts/9308-362f86711f-lite.chunk.js +0 -3
  257. package/dist/scripts/9308-362f86711f-lite.chunk.js.map +0 -1
  258. package/dist/scripts/9359-cc085d48a4-lite.chunk.js +0 -2
  259. package/dist/scripts/9359-cc085d48a4-lite.chunk.js.map +0 -1
  260. package/dist/scripts/9399-2a314327ac-lite.chunk.js +0 -2
  261. package/dist/scripts/9399-2a314327ac-lite.chunk.js.map +0 -1
  262. package/dist/scripts/9620-f1d717b02b-lite.chunk.js +0 -3
  263. package/dist/scripts/9620-f1d717b02b-lite.chunk.js.map +0 -1
  264. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
  265. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
  266. package/dist/scripts/bundle-724fc2e388.min.js +0 -3
  267. package/dist/scripts/bundle-724fc2e388.min.js.map +0 -1
  268. /package/dist/css/{5143-lite-676baa8218.chunk.css → 1063-lite-676baa8218.chunk.css} +0 -0
  269. /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
  270. /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
  271. /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
  272. /package/dist/css/{9308-lite-a3c7435ba4.chunk.css → 4273-lite-a3c7435ba4.chunk.css} +0 -0
  273. /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
  274. /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
  275. /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
  276. /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
  277. /package/dist/css/{1820-lite-c88eb54bee.chunk.css → 999-lite-c88eb54bee.chunk.css} +0 -0
  278. /package/dist/scripts/{1379-082bbab71a-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
  279. /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
  280. /package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.LICENSE.txt → 1672-0d1fc90529-lite.chunk.js.LICENSE.txt} +0 -0
  281. /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 4273-e42f763f00-lite.chunk.js.LICENSE.txt} +0 -0
  282. /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
  283. /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 8323-360541a2a8-lite.chunk.js.LICENSE.txt} +0 -0
  284. /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-82d7e0afb9-lite.chunk.js.LICENSE.txt} +0 -0
  285. /package/dist/scripts/{9308-362f86711f-lite.chunk.js.LICENSE.txt → 9230-ae200d2bd3-lite.chunk.js.LICENSE.txt} +0 -0
  286. /package/dist/scripts/{9395-90b87097fa-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
  287. /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
  288. /package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
  289. /package/dist/scripts/{9620-f1d717b02b-lite.chunk.js.LICENSE.txt → 9620-95e6cc7b2b-lite.chunk.js.LICENSE.txt} +0 -0
  290. /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-9736913451-lite.chunk.js.LICENSE.txt} +0 -0
  291. /package/dist/scripts/{bundle-724fc2e388.min.js.LICENSE.txt → bundle-9f8729bedb.min.js.LICENSE.txt} +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1820],{50690:(e,t,n)=>{n.d(t,{b:()=>r});var a=n(12788),r={renderInPortalIfExists:function(e,t){return t?(0,a.createPortal)(e,t):e}}},84963:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),r=n(23481),i=n(83914),o=n(76177),l=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function d(e){return a.createElement(o.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},a.createElement(i.x,{svgName:l.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},73679:(e,t,n)=>{n.d(t,{s:()=>o});var a=n(32735),r=n(36848);const i={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function o(e){var t,n,o;return a.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a.createElement("div",{className:"position-relative ".concat(i.dateItem)},a.createElement("div",{className:"".concat(null===(o=e.theme)||void 0===o?void 0:o.background," py-1 ").concat(i.label," d-flex align-items-center justify-content-center")},e.label?e.label:a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return i.bodyRange;case"day":return i.bodyDay;case"month":return i.bodyMonth}}()," ").concat(i.body," my-2")},e.body.text),a.createElement("div",{className:"mb-0 ".concat(i.month)},e.month)))}},83657:(e,t,n)=>{n.d(t,{e:()=>s});var a=n(32735),r=n(91967),i=n(10874),o=n(76177),l=n(42735),c=n(86509);function s(e){var t=a.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),n=[],s=[];t.forEach((function(e){e.button?n.push(e):s.push(e)}));var d="d-flex";return e.className&&(d+=" ".concat(e.className)),n.length||s.length?a.createElement("div",{className:d},n.length?n.map((function(t,n){return a.createElement(a.Fragment,{key:n},function(){if(t.label){var n=r.q.isFunction(t.label)?t.label:function(){return a.createElement(a.Fragment,null,t.label)};return a.createElement(l.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},n())}var c=a.createElement(i.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize});return t.tooltip?a.createElement(o.u,{title:t.tooltip,spanHack:!0},c):c}())})):a.createElement(a.Fragment,null),e.sortComponent&&e.sortComponent,s.length?a.createElement(c.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):a.createElement(a.Fragment,null)):a.createElement(a.Fragment,null)}},86509:(e,t,n)=>{n.d(t,{m:()=>f});var a=n(32735),r=n(91967),i=n(81886),o=n(45157),l=n(49985),c=n(36848),s=n(83914),d=n(76177),m=n(35223);const u={dropdownToggle:"UCAnJ"};function p(){return a.createElement(a.Fragment,null,a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function v(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function g(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return a.createElement(a.Fragment,null,e.action.label)};if(e.action.appLink)return a.createElement(c.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:v(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&a.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),a.createElement("span",{className:"align-middle"},t()));function n(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&l.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&i.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?a.createElement("a",{className:v(e.action.className),onClick:n,href:e.action.href},e.action.svgName&&a.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),a.createElement("span",{className:"align-middle"},t())):a.createElement("span",{className:"cursor-pointer ".concat(v(e.action.className)),onClick:n,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&n(e)}},e.action.svgName&&a.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function f(e){if(!e.actions||!e.actions.length)return a.createElement(a.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),n="dropdown";e.className&&(n+=" ".concat(e.className));var r,i="actions-dropdown-".concat(o.Y.getRandomInt()),l="dropdown-toggle px-0 ".concat(u.dropdownToggle);return e.dropdownToggleClassName&&(l+=" ".concat(e.dropdownToggleClassName)),a.createElement("div",{className:n},a.createElement("button",{className:l,type:"button",id:i,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},a.createElement(s.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),a.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":i},t?a.createElement(p,null):e.actions.map((function(e,t){var n=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?a.createElement("li",{key:t},n&&a.createElement("hr",{className:"dropdown-divider",role:"separator"}),a.createElement(d.u,{title:e.tooltip,spanHack:!0},a.createElement(g,{action:e}))):a.createElement("li",{key:t},n&&a.createElement("hr",{className:"dropdown-divider",role:"separator"}),a.createElement(g,{action:e}))}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},44522:(e,t,n)=>{n.d(t,{p:()=>L,v:()=>C});var a=n(32735),r=n(110),i=n(50690),o=n(84963),l=n(73679),c=n(83657),s=n(23481),d=n(36848),m=n(83914),u=n(35223),p="shared.backButton";function v(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,r=t.appLink,i=t.color,o=t.extraClasses,l=t.textShadow,c=n?s.T.getPhrase(p,"backTo",{backToName:n}):s.T.getPhrase(p,"back"),v="black"===i?"":"text-white",g=l?"text-shadow":"";return a.createElement(d.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(o," ").concat(v," ").concat(g)},a.createElement(m.x,{svgName:u.vn.ChevronLeft,size:m.S.Medium}),a.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var g=n(36518),f=n(83345),b=n(10587),h=n(94232),E=n(54610),y=n(79967),N=n(67453);const w={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var k="".concat(b.y[E.__.Banners].width,":").concat(b.y[E.__.Banners].height);function S(e){return e.length<160?"h1":w.headingLarge}var L=a.memo((function(e){var t,n,s,d,m=e.heading,u=e.banner,p=e.imageCdnUrl,b=e.actions,L=e.sortComponent,C=e.blockColourClass,I=e.specialEvent,A=a.useContext(h.n),x=(0,y.k)().xxl?1920:1200,D=a.useMemo((function(){if(!I||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return I.endDate?I.startDate<=t&&I.endDate>=t:I.startDate===t}),[I]),T=e.imageOptions||{width:x,ratio:k,resizeType:E.Nq.Cover},O=!!u&&!!p&&N.j.createBannerUrl(u,{fallbackBaseUrl:p,fallbackCategoryName:m,type:E.__.Banners},T),P={className:"banner banner-header ".concat(e.bannerClassName),style:O?{backgroundImage:"url('".concat(O,"')")}:{}};!u&&C&&(delete P.style,P.className+=" ".concat(C));var j=e.detailsComponent;return i.b.renderInPortalIfExists(a.createElement("header",Object.assign({},P),a.createElement("div",{className:"container ".concat(w.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(w.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?w.bannerContentWithLogo:""))},!!I&&a.createElement("div",{className:"position-relative ".concat(w.specialEventContainer)},a.createElement(l.s,{body:{type:I.endDate?"range":"day",text:I.endDate?"".concat(r.O.format(I.startDate,"DD"),"-").concat(r.O.format(I.endDate,"DD")):r.O.format(I.startDate,"DD")},month:r.O.format(I.startDate,"MMMM"),theme:e.calendarTheme})),a.createElement("div",null,D&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(f.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(o.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&a.createElement("div",{className:"".concat(w.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement(g.w,{src:N.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:E.h2.Medium})})),a.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(w.heading," ").concat(S(m)," ").concat(e.alignLogoLeft?"w-50":"")},m,j&&a.createElement(j,null)))),!!b&&a.createElement("div",{className:w.actionsContainer},a.createElement(c.e,{actions:b,sortComponent:L,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(d=e.logo)||void 0===d?void 0:d.url)&&a.createElement("div",{className:w.logoContainer},a.createElement("img",{src:N.j.createUrl(e.logo.url,{size:E.h2.Small}),className:"rounded-circle"})))),null==A?void 0:A.container)}),(function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)}));function C(){var e=a.useContext(h.n);return i.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(w.banner)}),null==e?void 0:e.container)}},49935:(e,t,n)=>{n.d(t,{Oo:()=>m,b2:()=>u});var a=n(32735),r=n(36848),i=n(86764),o=n(3747),l=n(5859),c=n(35223),s=n(83914),d=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,o=t.active,l=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(o?" active":"")},o?a.createElement("strong",null,n):a.createElement(r.F,{appLink:i},l&&a.createElement(s.x,{svgName:c.vn.ChevronLeft,size:s.S.Small}),a.createElement("span",{className:l?"ms-2":""},n)))},m=function(e){var t=e.breadcrumbs,n=(0,o.a)(i.r.XS),r=null==t?void 0:t.length;return!r||n&&r<2?a.createElement(a.Fragment,null):n?a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(d,{breadcrumb:t[r-2],withBackIcon:!0}))):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return a.createElement(d,{key:t,breadcrumb:e})}))))},u=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,o.a)(i.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},88513:(e,t,n)=>{n.d(t,{B:()=>d});var a=n(32735),r=n(23481),i=n(65858),o=n(36848);const l={seeMore:"yv0FS"};var c=r.T.encloseNamespace("shared.widgetHeader");function s(e){return a.createElement("div",{className:"ms-3 ".concat(l.seeMore)},a.createElement(o.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:i._S.SeeMore}),className:"text-decoration-none ".concat(e.appLink?"curated-widget-link":"")},a.createElement("p",{className:"hover-text-underline text-dark curated-widget-heading"},c("seeMore"))))}function d(e){var t=!!e.description;return e.name||e.description?a.createElement("div",{className:"curated-widget-header"},a.createElement("div",{className:"d-flex justify-content-between"},!!e.name&&a.createElement("div",{className:l.title},a.createElement(o.F,{appLink:e.appLink,analyticsOptions:e.analyticsOptions,analyticsData:e.analyticsData,className:"text-decoration-none ".concat(e.appLink?"curated-widget-link":""),onClick:e.onClick},a.createElement("h2",{className:"h4 curated-widget-heading"},e.name))),!!e.appLink&&!t&&!!e.showSeeMoreLink&&a.createElement(s,Object.assign({},e))),t&&a.createElement("div",{className:"d-flex justify-content-between align-items-end"},a.createElement("p",{className:"description curated-widget-description ".concat(l.description)},a.createElement("span",null,e.description)),!!e.appLink&&!!e.showSeeMoreLink&&a.createElement(s,Object.assign({},e)))):a.createElement(a.Fragment,null)}},47770:(e,t,n)=>{n.d(t,{K:()=>c});var a=n(32735),r=n(68050),i=n(69111),o=n(88513),l=n(91028);function c(e){return a.createElement(a.Fragment,null,a.createElement(o.B,{name:e.name,description:e.description}),a.createElement(r.Z,{className:"mb-n2"},e.content.map((function(t){return a.createElement(i.Z,{className:"position-relative pb-2",key:t.id,xs:12,sm:6,lg:e.hasTableOfContents?6:4,xl:4},a.createElement(l.V,{data:t,getChildAppLink:function(t){var n,a;return null===(a=null===(n=e.appLinks)||void 0===n?void 0:n.classification)||void 0===a?void 0:a.call(n,t)},analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,isLarge:!0}))}))))}},65163:(e,t,n)=>{n.d(t,{QL:()=>a.Q,eb:()=>a.e});var a=n(16450);n(14244)},2192:(e,t,n)=>{n.d(t,{M:()=>h,Q:()=>E});var a=n(32735),r=n(45157),i=n(36848),o=n(60376),l=n(5465),c=n(83914),s=n(83345),d=n(54610),m=n(67453),u=n(45778),p=n(35223),v=n(92038),g="shared.subjectWidgetItem",f=function(e){var t=e.name,n=e.multiline,r=e.noUnderLine,i="".concat(v.Z.comingSoonPanel," \n d-flex flex-column align-items-center justify-content-center px-3 text-center"),o="";return n?o+=" ".concat(v.Z.clamped," clamp-2"):(i+=" text-nowrap",o+=" text-truncate"),a.createElement("div",{className:i},a.createElement("small",{className:"text-secondary"},a.createElement(s.x,{namespace:g,phrase:"comingSoon"})),a.createElement("p",{className:"".concat(r?"":v.Z.name," h6")},a.createElement("span",{className:o},t)))},b=function(e){var t=e.name,n=e.multiline,r=e.subtitle,i=e.noUnderLine,o=e.newVideosCount,l="px-3 d-flex flex-column justify-content-center",c="".concat(i?"":v.Z.name," h6");return n?c+=" ".concat(o?"clamp-2":"clamp-3"," text-start"):(l+=" text-nowrap text-truncate",c+=" text-truncate mb-0 pb-1"),a.createElement("div",{className:l},r&&a.createElement("div",{className:"text-secondary clamp-1 ".concat(v.Z.text)},r),a.createElement("div",{className:c,title:t},t),!!o&&a.createElement("div",{className:"fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ".concat(v.Z.newVideos)},a.createElement(s.x,{namespace:g,phrase:"newVideos",options:{smartCount:o}})))};function h(e){var t,n=m.j.createUrl(e.coverUrl,{size:e.isLarge?d.h2.Medium:d.h2.Small}),i=void 0;u.G.isClassification(e.data)&&(i=e.data);var s={name:e.data.name,multiline:e.isLarge||e.multiline,subtitle:e.subtitle,noUnderLine:e.highlightOnHover,newVideosCount:e.showNewVideosCount?null===(t=null==i?void 0:i.externalMetadata)||void 0===t?void 0:t.childDashboardNewVideoCount:0};return a.createElement("div",{className:"border d-flex position-relative ".concat(e.className," ").concat(v.Z.widgetItem," ").concat(e.isSelected?"border-success border-2":""," ").concat(e.highlightOnHover?"bg-light-blue-hover":""),id:"".concat(e.data.id,"-").concat(r.Y.getRandomInt())},e.isSelected&&a.createElement("div",{className:"".concat(v.Z.selectedMask," border-2")}),a.createElement("div",{className:"".concat(v.Z.imagePanel," ").concat(e.isLarge?v.Z.large:"")},e.isSelected&&!e.hideCheckmark&&a.createElement("div",{className:v.Z.selected},a.createElement(o.f,{svgName:p.vn.Check,svgSize:c.S.Large,textVariant:"white",variant:"green"})),a.createElement("div",{className:"".concat(v.Z.image," ").concat(e.imageClassName),style:e.coverUrl?{backgroundImage:"url('".concat(n,"')")}:{}}),!e.hideFallback&&a.createElement(l.oy,{type:l.mS.Subject,extraClasses:e.isLarge?v.Z.large:""})),e.isComingSoon?a.createElement(f,Object.assign({},s)):a.createElement(b,Object.assign({},s)))}function E(e){var t,n=e.getChildAppLink?e.getChildAppLink(e.data):null;return a.createElement(a.Fragment,null,n?a.createElement(i.F,{className:v.Z.appLink,appLink:n,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,appLinkOptions:null===(t=e.getChildAppLinkOptions)||void 0===t?void 0:t.call(e)},a.createElement(h,Object.assign({},e))):a.createElement(h,Object.assign({},e)))}},43741:(e,t,n)=>{n.d(t,{M:()=>s,Q:()=>c});var a=n(32735),r=n(45157),i=n(5465),o=n(92038);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var c=function(){var e,t,n=(e=a.useState(r.Y.getRandomInt(5)+3+"rem"),t=1,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return a.createElement("div",{className:"border d-flex position-relative me-2 ".concat(o.Z.widgetItem)},a.createElement("div",{className:o.Z.imagePanel}),a.createElement("div",{className:"px-2",style:{width:n}}),a.createElement("div",{className:o.Z.partialIcon},a.createElement(i.oy,{type:i.mS.Subject})))},s=function(){return a.createElement("div",{className:"border d-flex position-relative me-2 ".concat(o.Z.widgetItem)},a.createElement("div",{className:"".concat(o.Z.partialLargeImage)}),a.createElement("div",{className:"px-2"}),a.createElement("div",{className:o.Z.partialIcon},a.createElement(i.oy,{type:i.mS.Subject,extraClasses:o.Z.partialLargeFallback})))}},91028:(e,t,n)=>{n.d(t,{V:()=>c});var a=n(32735),r=n(65858),i=n(2192),o=n(52641),l=n(2284),c=a.memo((function(e){var t,n,c,s,d,m=(null===(t=e.data)||void 0===t?void 0:t.status)===l.W.ComingSoon,u=function(e,t){var n;if((null==t?void 0:t.length)>=o._.MULTI_PRESENTATION_THRESHOLD)return null===(n=null==t?void 0:t.find((function(t){return t.id===e})))||void 0===n?void 0:n.name}(e.data.presentationId,null==e?void 0:e.availablePresentations),p=Object.assign(Object.assign({},e.analyticsData),{id:e.analyticsData.id||(null===(n=e.data)||void 0===n?void 0:n.id),name:null===(c=e.data)||void 0===c?void 0:c.name,presentationId:e.analyticsData.presentationId||e.data.presentationId,comingSoon:!!m}),v=Object.assign(Object.assign({location:r.LZ.ClassificationListItem,entity:r.py.Classification},e.analyticsOptions),{actionType:r.Vw.Click,descriptor:r._S.Cover});return a.createElement(i.Q,Object.assign({},e,{analyticsData:p,analyticsOptions:v,coverUrl:null===(s=e.data.cover)||void 0===s?void 0:s.url,subtitle:(null===(d=e.getSubtitle)||void 0===d?void 0:d.call(e,e.data))||u,isComingSoon:m}))}))},9513:(e,t,n)=>{n.d(t,{Ml:()=>r.M,Qh:()=>r.Q,Vz:()=>a.V});var a=n(91028),r=n(43741),i=(n(32735),n(65858));n(36848),n(83914),n(83345),n(35223),n(92038),i.Vw.Click,i.py.UserSetting,i._S.Tile,n(2786),i.Vw.Click,i.py.Url,i._S.Tile},43872:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),r=n(82182),i=n(31069),o=n(91967),l=new Image;l.src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";var c=function(e){e.dataTransfer.setDragImage&&o.q.isFunction(e.dataTransfer.setDragImage)&&e.dataTransfer.setDragImage(l,0,0)},s=r.V.isTouchScreen(),d=a.forwardRef((function(e,t){var n,r,o,l,d=e.children,m=e.positionType,u=e.onDrag,p=e.onDragEnd,v=e.onTouchMove,g=e.onTouchEnd,f=e.percentageDragged,b=e.position,h=void 0===b?0:b;return a.createElement("div",Object.assign({className:"d-flex flex-nowrap position-relative w-100",style:(r=h,o=m,l=f,o===i.C.Percentage&&l&&(r-=l),{transform:"translate3d(".concat(r).concat(o,", 0px, 0px)"),transition:"transform .4s ease-in-out"}),ref:t},(n={},u&&p&&(n.draggable=!0,n.onDragEnd=p,n.onDragStart=c,n.onDragOver=u),v&&g&&s&&(n.onTouchMoveCapture=v,n.onTouchEndCapture=g),n)),d)}))},16930:(e,t,n)=>{n.d(t,{W:()=>s,f:()=>c});var a=n(32735),r=n(83914),i=n(35223);const o="VSAPU",l="kgeXh";var c;!function(e){e[e.Left=0]="Left",e[e.Right=1]="Right"}(c||(c={}));var s=a.memo((function(e){var t,n,s,d=e.direction===c.Left,m=d?i.vn.ChevronLeft:i.vn.ChevronRight;return e.hide?a.createElement(a.Fragment,null):a.createElement("div",{className:"_ejId",style:"videos"===(null===(n=e.state)||void 0===n?void 0:n.contents)?{paddingBottom:56.25/(null===(s=e.state)||void 0===s?void 0:s.viewableItems)+"%"}:{height:"100%"}},e.useGradientBackdrop&&a.createElement("div",{className:d?"".concat("Pt3nx"," ").concat(e.leftGradientClassName):"".concat("ZuAif"," ").concat(e.rightGradientClassName)}),!e.hideExtendedClickableArea&&a.createElement("div",{role:"button",onClick:e.onClick,className:"".concat("AtsWP"," ").concat(d?o:l)}),a.createElement("div",{role:"button",className:"".concat((t="BVcIS",t+=d?" ".concat(o," ").concat(e.leftButtonClassName):" ".concat(l," ").concat(e.rightButtonClassName))," ").concat("gAsE9"," ").concat(e.className||""),onClick:e.onClick},e.hoverText&&a.createElement("span",{className:"ps-3 pe-2 ".concat("APA36")},e.hoverText),a.createElement(r.x,{svgName:m,size:r.S.Medium,className:"svg-container d-inline-block ".concat("Ev4hr")})))}))},2284:(e,t,n)=>{var a;n.d(t,{W:()=>a}),function(e){e.Draft="Draft",e.ComingSoon="ComingSoon",e.Published="Published"}(a||(a={}))},31069:(e,t,n)=>{var a;n.d(t,{C:()=>a}),function(e){e.Percentage="%",e.Pixels="px"}(a||(a={}))},10841:(e,t,n)=>{var a;n.d(t,{n:()=>a}),function(e){e.Init="init",e.Next="next",e.Previous="previous",e.Resize="resize",e.Drag="drag",e.Update="update",e.JumpToIndex="jump-to-index"}(a||(a={}))},25665:(e,t,n)=>{n.d(t,{k:()=>c});var a=n(99940),r=n(97395);function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var l=function(e){return r._.urlBuilder("/api/domain/v1/subjects/classifications/following",{id:e})},c={follow:function(e,t,n,r){return{url:"/api/domain/v1/subjects/classifications/following",key:"follow:".concat(e.join(",")),type:a.k.POST,data:e,formatData:function(){return e.map((function(e){return{id:e,followers:{data:[t]}}}))},success:n,error:r,invalidationKeys:[].concat(i(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences","classifications"])}},unfollow:function(e,t,n,r){return{url:l(e),key:"unfollow:".concat(e.join(",")),type:a.k.DELETE,formatData:function(){return e.map((function(e){return{id:e,followers:{data:[]}}}))},success:n,error:r,invalidationKeys:[].concat(i(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences","classifications"])}}}},81514:(e,t,n)=>{n.d(t,{V:()=>i});var a=n(86764),r=n(3747);function i(){var e=(0,r.a)(a.r.XS),t=(0,r.a)(a.r.SM),n=(0,r.a)(a.r.MD),i=(0,r.a)(a.r.LG),o=(0,r.a)(a.r.XL),l=(0,r.a)(a.r.XXL),c=a.r.LG;return e&&(c=a.r.XS),t&&(c=a.r.SM),n&&(c=a.r.MD),i&&(c=a.r.LG),o&&(c=a.r.XL),l&&(c=a.r.XXL),c}},69454:(e,t,n)=>{n.d(t,{T:()=>u});var a=n(75896),r=n(1048),i=n(55171);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var c=/\d/,s={yearsAndGradesBuilder:function(e){var t=e.map((function(e){return e.name})).join(" "),n=t.split(" ").filter((function(e){return!isNaN(+e)})).map((function(e){return+e}))||[],a=t.split(" ").filter((function(e){return isNaN(+e)}))||[],r=e.find((function(e){return!c.test(e.name)})),i=a.find((function(e){return e!==(null==r?void 0:r.name)}));if(e.length>1&&(i+="s"),r&&n.length)return"".concat(i," ").concat(r.name.charAt(0)," - ").concat(n.pop());var o=function(e){var t,n,a,r,i=!1,o=[];for(e=e.sort((function(e,t){return e-t})),a=0;a<e.length;a++)r=a+1,i||(t=e[a]),n=e[r],e[a]+1===n?i=!0:i?(o.push("".concat(t," - ").concat(e[a])),i=!1):(o.push("".concat(e[a])),i=!1);return o}(n);return"".concat(i," ").concat(o.join(", "))},internationalSecondaryBuilder:function(e){return s.englandSecondaryBuilder(e)},scotlandPrimaryBuilder:function(e){var t=a.m.first(e),n=a.m.last(e),r=o(t.name.split(" "),1)[0],i=o(n.name.split(" "),1)[0];return"First"===r&&(r="1st"),"First"===i&&(i="1st"),"Second"===r&&(r="2nd"),"Second"===i&&(i="2nd"),r===i?"".concat(r," Level"):"".concat(r," - ").concat(i," Level")},internationalPrimaryBuilder:function(e){var t=a.m.first(e),n=a.m.last(e);if(t.name===n.name)return t.name;var r=o(t.name.split(" "),1)[0],i=o(n.name.split(" "),1)[0];return"Lower"===r&&(r="Low"),"Lower"===i&&(i="Low"),"Middle"===r&&(r="Mid"),"Middle"===i&&(i="Mid"),"".concat(r," - ").concat(i," Pri")},englandSecondaryBuilder:function(e){var t=a.m.first(e),n=a.m.last(e);return t.name===n.name?t.name:"Advanced"===n.name?"lower"===o(t.name.split(" "),1)[0].toLowerCase()?"Lower Sec - Adv":"Upper Sec - Adv":"Lower - Upper Sec"},scotlandSecondaryBuilder:function(e){var t=a.m.first(e),n=a.m.last(e);return t.name===n.name?t.name:"Senior Phase"===n.name?"".concat(t.name," - Senior"):"Third - Fourth Level"},englandPrimaryBuilder:function(e){var t=a.m.first(e),n=a.m.last(e),r=a.m.first(t.name.split(" ")),i=a.m.first(n.name.split(" ")),o=t.name.split(" ").find((function(e){return!isNaN(+e)})),l=n.name.split(" ").find((function(e){return!isNaN(+e)}));if(t===n)return"Key"===r||"Reception"===r?t.name:"".concat(r," KS").concat(o);var c="",s="";return c="Reception"===r?"R":"KS".concat(o),s="KS".concat(l),"Lower"===r&&"Upper"===i?"L ".concat(c," - U ").concat(s):("Lower"===r&&(c="Lower ".concat(c)),"Upper"===i&&(s="Upper ".concat(s)),"Key"===i&&(s=n.name),"".concat(c," - ").concat(s))}},d=/([0-9]+)/gi,m=/\s|\+/gi,u={getSortedPresentationAudiences:function(e,t){var n=e.filter((function(e){return!!e})).map((function(e){return e.id.toString()}));return t.filter((function(e){return n.includes(e.masterId.toString())}))},getMergedPresentationAudienceString:function(e){var t="";switch(+a.m.first(e).presentationId){case i.e.PresentationIds.DEFAULT:case i.e.PresentationIds.AU_SECONDARY:case i.e.PresentationIds.US_ELEMENTARY:case i.e.PresentationIds.AU_PRIMARY:case i.e.PresentationIds.STREAMABLE_LEARNING:if(1===e.length)return e[0];t=s.yearsAndGradesBuilder(e);break;case i.e.PresentationIds.INTERNATIONAL_SECONDARY:if(1===e.length)return e[0];t=s.internationalSecondaryBuilder(e);break;case i.e.PresentationIds.INTERNATIONAL_PRIMARY:t=s.internationalPrimaryBuilder(e);break;case i.e.PresentationIds.SCOTLAND_PRIMARY:t=s.scotlandPrimaryBuilder(e);break;case i.e.PresentationIds.ENGLISH_SECONDARY:t=s.englandSecondaryBuilder(e);break;case i.e.PresentationIds.SCOTLAND_SECONDARY:t=s.scotlandSecondaryBuilder(e);break;case i.e.PresentationIds.ENGLAND_PRIMARY:t=s.englandPrimaryBuilder(e);case i.e.PresentationIds.US_MIDDLE:case i.e.PresentationIds.US_HIGH:}return t?{name:t}:null},sortMembersWithDuplicateNamesByAudience:function(e){var t=function(e){return e.length?(e.forEach((function(e){var r=+a.m.first(e.name.match(d));if(!t)return t=e,void(n=r);r<n&&(t=e)})),t):null;var t,n},n={},r=[];return e.forEach((function(e){if(!n[e.name])return n[e.name]=1,void r.push(e);r.push(e),n[e.name]++;var a=r.splice(r.length-n[e.name]).sort((function(e,n){var a=t(e.subjectPresentationAudiences.data),r=t(n.subjectPresentationAudiences.data);if(!a&&r)return 1;if(!r)return-1;var i=a.name.localeCompare(r.name);return 0===i?i:i>0?-1:1}));r=r.concat(a)})),r},getActiveAudiencesFromParams:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(r.t.isObject(t)&&!r.t.isEmpty(t)&&e&&e.length&&u.shouldShowAudiences(e)){var n=t.a;if(n){"string"==typeof n&&(n=[n]);var a=function(e){return e.replace(m,"").toLowerCase()},i=n.reduce((function(e,t){return e[a(t)]=t,e}),{});return e.filter((function(e){return i[a(e.name)]}))}}},getAudienceParams:function(e){return(null==e?void 0:e.length)?{a:e.map((function(e){return e.name}))}:null},shouldShowAudiences:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return!!e&&e.length>1}}},4399:(e,t,n)=>{n.d(t,{$7:()=>o,Dp:()=>l}),n(28400);var a=n(14070),r=n(97291),i=n(34181),o=function(e){return function(t){return(null==t?void 0:t.id)?i.L.getAppLink(t,e||{}):null}},l=function(e){return{application:r.O.SUBJECT,action:a.e.Subjects.CLASSIFICATION_ALL,params:e?{presentationId:e}:{}}}},63191:(e,t,n)=>{n.r(t),n.d(t,{ClassificationsView:()=>H,getBannerActions:()=>V});var a=n(32735),r=n(70680),i=n(23481),o=n(57900),l=n(20354),c=n(2948),s=n(65858),d=n(44522),m=n(49935),u=n(47770),p=n(65163),v=n(9513),g=n(38143),f=n(2284),b=n(54610),h=n(86764),E=n(78479),y=n(42308),N=n(21750),w=n(39151),k=n(25665),S=n(31949),L=n(3747),C=n(22902),I=n(79612),A=n(69454),x=n(35223),D=n(87114),T=n(99742),O=n(14070),P=n(97291),j=n(51855),M=n(7179),B=n(86698),F=n(33192),U=n(4399);const R={classificationPane:"kx1WX"};function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var z=i.T.encloseNamespace("subjects.classifications");function V(e,t,n,a){var r,i;if(!(null==e?void 0:e.id))return[];var o=!!(null===(i=null===(r=e.followers)||void 0===r?void 0:r.data)||void 0===i?void 0:i.length);return[{label:z(o?"following":"follow"),onClick:t,svgName:o?x.vn.BellFilled:x.vn.Bell,className:"btn follow-btn ".concat(o?"btn-outline-dark":"btn-dark"," me-2"),button:!0,tooltip:o||a?void 0:z("followBtnTooltip"),showSpinner:n}]}function H(e){var t,n,i,x,Z,H,Y,G,Q,X=e.id,W=e.presentationId,J=_(a.useState(),2),K=J[0],$=J[1],q=(0,j.G)().isPlugin,ee=(0,r.I0)(),te=l.a.useBasicFetch(S.N.currentUser()),ne=l.a.useBasicFetch(w.L.config()),ae=(0,B.y)(),re=ae.availablePresentations,ie=ae.activePresentation,oe=ae.hasPresentationsLoaded,le=ae.canAccessPresentation,ce=(0,C.T)(),se=ce.hasPermissions,de=ce.hasLocalPermissions,me=W||(null==ie?void 0:ie.id),ue=l.a.useBasicFetch(me&&N.x.presentationById(me)),pe=ue.hasCompleted&&oe,ve=function(e,t,n,a){var r=l.a.useBasicFetch(n&&N.x.classification(n,a));return n?null==r?void 0:r.data:{name:D.i.getExploreAllTopicsTitle(null==e?void 0:e.name,t),banner:{url:D.i.getPresentationLevelImage(null==e?void 0:e.learningLevel,"topic-banner")}}}(null==ue?void 0:ue.data,null==re?void 0:re.length,X,null===(t=te.data)||void 0===t?void 0:t.id),ge=X?N.x.children(X):N.x.topLevelTopics(me||(null===(n=ue.data)||void 0===n?void 0:n.id)),fe=l.a.useBasicFetch(pe&&ge),be=function(e){var t=l.a.useBasicFetch(e&&N.x.path(e));return e?null==t?void 0:t.data:[]}(X),he=_((0,c.D)(g.g.AUDIENCE_FILTER,void 0,{storage:o.Z1.SessionStorage}),1)[0],Ee=X?z("pageTitleTopic",{title:null==ve?void 0:ve.name}):z("pageTitleSubject",{title:null===(i=ue.data)||void 0===i?void 0:i.name});(0,I.M)({title:Ee,description:z("pageDescription",{title:X?null==ve?void 0:ve.name:null===(x=ue.data)||void 0===x?void 0:x.name}),canonicalLink:F.f.getCanonicalLink(),allowIndexing:F.f.allowIndexing()}),(0,M.P)({id:X,app:"topics"});var ye=(0,U.$7)(A.T.getAudienceParams(he));a.useEffect((function(){$(!1)}),[null===(H=null===(Z=null==ve?void 0:ve.followers)||void 0===Z?void 0:Z.data)||void 0===H?void 0:H.length]);var Ne=(0,L.a)(h.r.MDDown);var we=(!X||!!ve)&&!!ne.data&&!!re&&fe.data,ke=!!re&&!!be,Se=le(null===(Y=ue.data)||void 0===Y?void 0:Y.id),Le={presentationId:null===(G=ue.data)||void 0===G?void 0:G.id,presentationName:null===(Q=ue.data)||void 0===Q?void 0:Q.name,currentClassificationName:null==ve?void 0:ve.name,widgetId:y.z.Classifications,templateId:E.f.CoverFixedPillListLarge},Ce=(null==ve?void 0:ve.status)===f.W.ComingSoon;return a.createElement("main",{className:"bg-white px-3"},we?a.createElement(d.p,{heading:null==ve?void 0:ve.name,banner:null==ve?void 0:ve.banner,imageCdnUrl:ne.data.imageCdnUrl,actions:Ce?[]:V(ve,(function(){var e,t,n;$(!0);var a=(null===(t=null===(e=null==ve?void 0:ve.followers)||void 0===e?void 0:e.data)||void 0===t?void 0:t.length)?k.k.unfollow:k.k.follow;l.a.fetch(ee,a([null==ve?void 0:ve.id],null===(n=te.data)||void 0===n?void 0:n.id))}),K,Ne),imageOptions:!X&&{size:b.h2.Large}}):a.createElement(d.v,null),a.createElement("div",{className:"py-3 mb-3 ".concat(Se?"border-bottom":"")},Se?ke?a.createElement(m.Oo,{breadcrumbs:function(){var e,t=[{name:z("discover"),appLink:{application:P.O.DASHBOARD,action:O.e.Dashboard.HOME}},{name:D.i.getExploreAllTopicsTitle(null===(e=ue.data)||void 0===e?void 0:e.name,null==re?void 0:re.length),appLink:{application:P.O.SUBJECT,action:O.e.Subjects.CLASSIFICATION_ALL},active:!X}];return be.forEach((function(e){t.push({name:e.name,appLink:ye(e)})})),X&&t.push({name:z("subview"),active:!0}),t}()}):a.createElement(m.b2,null):a.createElement(a.Fragment,null)),a.createElement("div",{className:R.classificationPane},we?a.createElement(u.K,{id:X,name:"",description:"",metadata:{},preferences:[],hasPermissions:se,hasLocalPermissions:de,widgetTypeId:y.z.Classifications,templateId:E.f.CoverFixedPillListLarge,analyticsData:Le,content:null==fe?void 0:fe.data,analyticsOptions:{location:s.LZ.SlidingListItem},appLinks:{classification:ye},imageCdnUrl:ne.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:T.W.Fallbacks.RESOURCE_THUMBNAIL,isPlugin:q}):a.createElement(p.QL,{partialLoadingComponent:v.Qh})))}},92038:(e,t,n)=>{n.d(t,{Z:()=>a});const a={appLink:"fFjKN",name:"A_by9",selectedMask:"xSQtR",widgetItem:"Ys9W_",text:"JfAoy",imagePanel:"aUNDc",partialLargeImage:"RuLxv",selected:"BViJb",image:"LkTep",dragHandle:"CJqvP",large:"R5clw",comingSoonPanel:"Wa2PG",newVideos:"s61h8",editSubjectsItem:"gGNFD",allSubjectsItem:"IHdlJ",logoContainer:"Nzaes",draggingItem:"zUOye",partialLargeFallback:"FmJP9",partialIcon:"sdZuo"}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),i=n(32735),o=n(46304),l=n(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},i)=>{const c=(0,o.vE)(e,"row"),s=(0,o.pi)(),d=(0,o.zG)(),m=`${c}-cols`,u=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==d?`-${e}`:"";null!=n&&u.push(`${m}${r}-${n}`)})),(0,l.jsx)(n,{ref:i,...a,className:r()(t,c,...u)})}));c.displayName="Row";const s=c}}]);
2
- //# sourceMappingURL=1820-993521951d-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1820-993521951d-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.scss","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/templates/cover-fixed-pill-list-large/CoverFixedPillListLargeWidgetTemplate.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/CoverPill.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/PartialSubjectWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/EditSubjectsWidgetLink.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/AllSubjectsWidgetLink.tsx","file:///app/packages/libs/shared/src/utils/DragHelper.ts","file:///app/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file:///app/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss","file:///app/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","file:///app/packages/libs/shared/src/enums/ClassificationStatus.ts","file:///app/packages/libs/shared/src/enums/CssMeasurement.ts","file:///app/packages/libs/shared/src/enums/WidgetInteraction.ts","file:///app/packages/libs/shared/src/flight-requests/FollowRequests.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/libs/shared/src/utils/audience-helper/AudienceStringBuilders.ts","file:///app/packages/libs/shared/src/utils/audience-helper/AudienceHelper.ts","file:///app/packages/projects/lite/src/apps/subjects/utils/ClassificationAppLinks.ts","file:///app/packages/projects/lite/src/apps/subjects/views/classifications/classifications.scss","file:///app/packages/projects/lite/src/apps/subjects/views/classifications/ClassificationsView.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/cover-pill.scss","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <>&nbsp;</>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"yv0FS\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './widget-header.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description: string;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{ ...props.analyticsOptions, descriptor: ClickDescriptor.SeeMore }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeMore')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className={styles.title}>\n <AppLink\n appLink={props.appLink}\n analyticsOptions={props.analyticsOptions}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.name}\n </h2>\n </AppLink>\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description ${styles.description}`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { WidgetHeader } from 'libs/shared/components/widgets/curated-widgets/components/header/WidgetHeader';\nimport { WidgetTemplateProps } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { SubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item/SubjectWidgetItem';\nimport { Classification } from 'libs/shared/interfaces';\n\nexport function CoverFixedPillListLargeWidgetTemplate(props: WidgetTemplateProps<Classification[]>): JSX.Element {\n return (\n <>\n <WidgetHeader name={props.name} description={props.description} />\n <Row className='mb-n2'>\n {props.content.map(c => {\n return (\n <Col className={`position-relative pb-2`} key={c.id} xs={12} sm={6} lg={props.hasTableOfContents ? 6 : 4} xl={4}>\n <SubjectWidgetItem\n data={c}\n getChildAppLink={(c: Classification) => props.appLinks?.classification?.(c)}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n isLarge\n />\n </Col>\n );\n })}\n </Row>\n </>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { BaseObject, Classification, Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './cover-pill.scss';\n\nconst namespace = 'shared.subjectWidgetItem';\n\ninterface NamePanelProps {\n name: string;\n multiline?: boolean;\n subtitle?: string;\n noUnderLine?: boolean;\n newVideosCount?: number;\n}\n\nconst ComingSoonNamePanel = ({ name, multiline, noUnderLine }: NamePanelProps) => {\n let wrapperClassName = `${styles.comingSoonPanel} \n d-flex flex-column align-items-center justify-content-center px-3 text-center`;\n\n let textClassName = '';\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap';\n textClassName += ' text-truncate';\n } else {\n textClassName += ` ${styles.clamped} clamp-2`;\n }\n\n return (\n <div className={wrapperClassName}>\n <small className='text-secondary'><Text namespace={namespace} phrase='comingSoon' /></small>\n <p className={`${noUnderLine ? '' : styles.name} h6`}><span className={textClassName}>{name}</span></p>\n </div>\n );\n};\n\nconst NormalNamePanel = ({ name, multiline, subtitle, noUnderLine, newVideosCount }: NamePanelProps) => {\n let wrapperClassName = 'px-3 d-flex flex-column justify-content-center';\n let textClassName = `${noUnderLine ? '' : styles.name} h6`;\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap text-truncate';\n textClassName += ' text-truncate mb-0 pb-1';\n } else {\n textClassName += ` ${newVideosCount ? 'clamp-2' : 'clamp-3'} text-start`;\n }\n\n return (\n <div className={wrapperClassName}>\n {subtitle && <div className={`text-secondary clamp-1 ${styles.text}`}>{subtitle}</div>}\n <div className={textClassName} title={name}>{name}</div>\n {!!newVideosCount && (\n <div className={`fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ${styles.newVideos}`}>\n <Text namespace={namespace} phrase='newVideos' options={{ smartCount: newVideosCount }} />\n </div>\n )}\n </div>\n );\n};\n\nexport interface CoverPillWidgetItemProps<T extends BaseObject> {\n data: T;\n getChildAppLink?: (data: T) => Core.AppLink;\n getChildAppLinkOptions?: () => Core.AppLinkOptions;\n isLarge?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n availablePresentations?: Presentation[];\n getSubtitle?: (data: T) => string;\n multiline?: boolean;\n // set to true it will highlight on hover and also remove the hover text underline\n highlightOnHover?: boolean;\n showNewVideosCount?: boolean;\n}\n\ninterface CoverPillWidgetContentProps<T> extends CoverPillWidgetItemProps<T> {\n coverUrl?: string;\n subtitle?: string;\n isComingSoon?: boolean;\n className?: string;\n imageClassName?: string;\n isSelected?: boolean;\n hideFallback?: boolean;\n hideCheckmark?: boolean;\n}\n\nexport function CoverPillWidgetContent(props: CoverPillWidgetContentProps<BaseObject>): JSX.Element {\n const coverUrl = ImageHelper.createUrl(props.coverUrl, { size: props.isLarge ? ImageSize.Medium : ImageSize.Small });\n\n let classification: Classification | undefined = undefined;\n if (MasterTypeHelper.isClassification(props.data)) {\n classification = props.data;\n }\n\n const childProps = {\n name: props.data.name,\n multiline: props.isLarge || props.multiline,\n subtitle: props.subtitle,\n noUnderLine: props.highlightOnHover,\n newVideosCount: props.showNewVideosCount ? classification?.externalMetadata?.childDashboardNewVideoCount : 0\n };\n\n return (\n <div\n className={`border d-flex position-relative ${props.className} ${styles.widgetItem} ${props.isSelected ? 'border-success border-2' : ''} ${props.highlightOnHover ? 'bg-light-blue-hover' : ''}`}\n id={`${props.data.id}-${RandomHelper.getRandomInt()}`}\n >\n {props.isSelected && (\n <div className={`${styles.selectedMask} border-2`} />\n )}\n\n <div className={`${styles.imagePanel} ${props.isLarge ? styles.large : ''}`}>\n {props.isSelected && !props.hideCheckmark && (\n <div className={styles.selected}>\n <IconCircle svgName={cvSvgLibrary.Check} svgSize={SvgContainerSize.Large} textVariant='white' variant='green' />\n </div>\n )}\n\n <div\n className={`${styles.image} ${props.imageClassName}`}\n style={props.coverUrl ? { backgroundImage: `url('${coverUrl}')` } : {}}\n />\n {!props.hideFallback && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={props.isLarge ? styles.large : ''}\n />\n )}\n </div>\n\n {props.isComingSoon\n ? <ComingSoonNamePanel {...childProps} />\n : <NormalNamePanel {...childProps} />\n }\n </div>\n );\n}\n\nexport function CoverPillWidgetContentWrapper(props: CoverPillWidgetContentProps<BaseObject>) {\n const appLink = props.getChildAppLink ? props.getChildAppLink(props.data) : null;\n\n return (\n <>\n {appLink ? (\n <AppLink\n className={styles.appLink}\n appLink={appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n appLinkOptions={props.getChildAppLinkOptions?.()}\n >\n <CoverPillWidgetContent {...props} />\n </AppLink>\n ) : (<CoverPillWidgetContent {...props} />)\n }\n </>\n );\n}","import * as React from 'react';\n\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\n\nimport styles from './cover-pill.scss';\n\nexport const PartialSubjectWidgetItem = () => {\n const [width] = React.useState(RandomHelper.getRandomInt(5) + 3 + 'rem');\n\n return (\n <div className={`border d-flex position-relative me-2 ${styles.widgetItem}`}>\n <div className={styles.imagePanel} />\n <div className='px-2' style={{ width }} />\n <div className={styles.partialIcon}>\n <ImageFallback type={ImageFallbackType.Subject} />\n </div>\n </div>\n );\n};\n\nexport const PartialLargeSubjectWidgetItem = () => {\n return (\n <div className={`border d-flex position-relative me-2 ${styles.widgetItem}`}>\n <div className={`${styles.partialLargeImage}`} />\n <div className='px-2' />\n <div className={styles.partialIcon}>\n <ImageFallback type={ImageFallbackType.Subject} extraClasses={styles.partialLargeFallback} />\n </div>\n </div>\n );\n};","import * as React from 'react';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CoverPillWidgetContentWrapper, CoverPillWidgetItemProps } from 'libs/shared/components/widgets/items/subject-widget-item/CoverPill';\nimport { TopicsConstants } from 'libs/shared/constants/TopicsConstants';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { Classification, Presentation } from 'libs/shared/interfaces';\n\nfunction usePresentationName(presentationId: string, availablePresentations: Presentation[]): string {\n const showPresentationName = availablePresentations?.length >= TopicsConstants.MULTI_PRESENTATION_THRESHOLD;\n\n if (!showPresentationName) {\n return undefined;\n }\n\n return availablePresentations?.find(p => p.id === presentationId)?.name;\n}\n\nfunction SubjectWidgetItem(props: CoverPillWidgetItemProps<Classification>): JSX.Element {\n const isComingSoon = props.data?.status === ClassificationStatus.ComingSoon;\n const presentationName = usePresentationName(props.data.presentationId, props?.availablePresentations);\n\n const analyticsData = {\n ...props.analyticsData,\n id: props.analyticsData.id || props.data?.id,\n name: props.data?.name,\n presentationId: props.analyticsData.presentationId || props.data.presentationId,\n comingSoon: !!isComingSoon\n };\n\n const analyticsOptions = {\n location: LocationContext.ClassificationListItem,\n entity: EntityType.Classification,\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Cover\n };\n\n return (\n <CoverPillWidgetContentWrapper\n {...props}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n coverUrl={props.data.cover?.url}\n subtitle={props.getSubtitle?.(props.data) || presentationName}\n isComingSoon={isComingSoon}\n />\n );\n}\n\nconst Memoized = React.memo(SubjectWidgetItem);\n\nexport { Memoized as SubjectWidgetItem };","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './cover-pill.scss';\n\ninterface EditSubjectsWidgetLinkProps {\n appLink: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.UserSetting,\n descriptor: ClickDescriptor.Tile\n};\n\nexport function EditSubjectsWidgetLink(props: EditSubjectsWidgetLinkProps): JSX.Element {\n const className =\n `${styles.editSubjectsItem} d-flex position-relative px-3 justify-content-center align-items-center`;\n\n return (\n <AppLink\n appLink={props.appLink}\n className='text-decoration-none'\n analyticsData={{ ...props.analyticsData, type: 'subject-preference' }}\n analyticsOptions={ { ...props.analyticsOptions, ...analyticsOptions }}\n >\n <div className={className}>\n <SvgContainer svgName={cvSvgLibrary.Edit} className='me-2 align-middle d-inline-block svg-container' />\n <p className='h6 align-middle text-truncate'><Text namespace='shared.subjectWidgetItem' phrase='edit' /></p>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport styles from './cover-pill.scss';\n\ninterface AllSubjectsWidgetLinkProps {\n appLink: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n descriptor: ClickDescriptor.Tile\n};\n\nexport function AllSubjectsWidgetLink(props: AllSubjectsWidgetLinkProps): JSX.Element {\n const className =\n `${styles.allSubjectsItem}\n d-flex flex-column position-relative px-2\n align-items-center justify-content-center text-nowrap bg-navy`;\n\n return (\n <AppLink\n appLink={props.appLink}\n className='text-decoration-none'\n analyticsData={{ ...props.analyticsData, type: 'subject-all' }}\n analyticsOptions={ { ...props.analyticsOptions, ...analyticsOptions }}\n >\n <div className={className}>\n <div className={styles.logoContainer}>\n <ClickViewLogoInverted />\n </div>\n <p className='h6 pt-2 px-3 mb-0'><Text namespace='shared.subjectWidgetItem' phrase='all' /></p>\n </div>\n </AppLink>\n );\n}\n","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n\n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLDivElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLDivElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLDivElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <div\n className='d-flex flex-nowrap position-relative w-100'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"buttonContainer\":\"_ejId\",\"left\":\"VSAPU\",\"right\":\"kgeXh\",\"button\":\"gAsE9\",\"hoverText\":\"APA36\",\"buttonHover\":\"cqD75\",\"chevron\":\"Ev4hr\",\"extendedClickableArea\":\"AtsWP\",\"gradientRight\":\"ZuAif\",\"gradientLeft\":\"Pt3nx\",\"topPos\":\"BVcIS\"};","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './widget-button.scss';\n\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n direction: WidgetButtonDirection;\n hide: boolean;\n contents?: WidgetContents;\n useGradientBackdrop?: boolean;\n className?: string;\n hoverText?: string;\n hideExtendedClickableArea?: boolean;\n state?: FixedWidgetState;\n\n leftButtonClassName?: string;\n rightButtonClassName?: string;\n leftGradientClassName?: string;\n rightGradientClassName?: string;\n}\n\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\n const isLeft = props.direction === WidgetButtonDirection.Left;\n\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n\n function getPositionClass(): string {\n let className = styles.topPos;\n \n // Left / Right\n if (isLeft)\n className += ` ${styles.left} ${props.leftButtonClassName}`;\n else\n className += ` ${styles.right} ${props.rightButtonClassName}`;\n \n return className;\n }\n\n function getStyle(): React.CSSProperties {\n if (props.state?.contents === 'videos')\n return { paddingBottom: (56.25 / props.state?.viewableItems) + '%' };\n\n return { height: '100%' };\n }\n\n if (props.hide)\n return <></>;\n\n return (\n <div className={styles.buttonContainer} style={getStyle()}>\n {props.useGradientBackdrop &&\n <div className={isLeft ? `${styles.gradientLeft} ${props.leftGradientClassName}` : `${styles.gradientRight} ${props.rightGradientClassName}`} />\n }\n\n {!props.hideExtendedClickableArea && (\n <div\n role='button'\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n />\n )}\n\n <div\n role='button'\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\n >\n {props.hoverText && (\n <span className={`ps-3 pe-2 ${styles.hoverText}`}>{props.hoverText}</span>\n )}\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.chevron}`}\n />\n </div>\n </div>\n );\n});","// Maps to enum in SubjectApi but uses the\n// key rather than the value as SubjectsApi returns the key.\nexport enum ClassificationStatus {\n Draft = 'Draft',\n ComingSoon = 'ComingSoon',\n Published = 'Published'\n}","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nconst endpoints = {\n follow: () => `/api/domain/v1/subjects/classifications/following`,\n unfollow: (ids: string[]) => UrlHelper.urlBuilder('/api/domain/v1/subjects/classifications/following', { id: ids })\n};\n\nexport const FollowRequests = {\n /**\n * @param data - array of object ids the user is going to follow\n */\n follow(\n ids: string[],\n userId: string,\n success?: (data: string[]) => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: endpoints.follow(),\n key: `follow:${ids.join(',')}`,\n type: HttpVerbs.POST,\n data: ids,\n formatData: () => {\n return ids.map(id => ({\n id,\n followers: {\n data: [userId]\n }\n }));\n },\n success,\n error,\n invalidationKeys: [ ...ids.map(id => `classification:${id}`), 'my:subject:preferences', 'classifications' ]\n };\n },\n\n unfollow(ids: string[], userId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: endpoints.unfollow(ids),\n key: `unfollow:${ids.join(',')}`,\n type: HttpVerbs.DELETE,\n formatData: () => {\n return ids.map(id => ({\n id,\n followers: {\n data: []\n }\n }));\n },\n success,\n error,\n invalidationKeys: [ ...ids.map(id => `classification:${id}`), 'my:subject:preferences', 'classifications' ]\n };\n }\n};\n","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nconst HAS_NUMBER_REGEX = /\\d/;\nconst COUNT_OFFSET = 1;\n\nexport const AudienceStringBuilders = {\n /**\n * Handles audience sets like:\n * - Year 7, Year 8, etc\n * - Kindergarten, Grade 1, Grade 2, etc\n */\n yearsAndGradesBuilder(audiences: PresentationAudience[]): string {\n /**\n * Create a string with all of the audiences\n */\n const combinedNames = audiences.map(a => a.name).join(' ');\n\n /**\n * Extract all the numbers and matches from the string\n */\n const numberList = combinedNames.split(' ').filter(name => !isNaN(+name)).map(num => +num) || [];\n const wordList = combinedNames.split(' ').filter(name => isNaN(+name)) || [];\n\n // Find an audience that doesn't have a number, like \"Kindergarten\" or \"Foundation\".\n const audienceWithoutNum = audiences.find(p => {\n return !HAS_NUMBER_REGEX.test(p.name);\n });\n\n // Get audience label prefix\n let prefix = wordList.find(name => name !== audienceWithoutNum?.name);\n\n // Pluralise the prefix is there are multiple audiences\n if (audiences.length > 1)\n prefix += 's';\n\n if (audienceWithoutNum && numberList.length)\n return `${prefix} ${audienceWithoutNum.name.charAt(0)} - ${numberList.pop()}`;\n\n /**\n * Build set of logical audience ranges\n */\n const audienceRange = processAudienceRanges(numberList);\n\n return `${prefix} ${audienceRange.join(', ')}`;\n },\n\n internationalSecondaryBuilder(audiences: PresentationAudience[]): string {\n return AudienceStringBuilders.englandSecondaryBuilder(audiences);\n },\n\n scotlandPrimaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n let [firstAudienceLevel] = firstAudience.name.split(' ');\n let [lastAudienceLevel] = lastAudience.name.split(' ');\n\n if (firstAudienceLevel === 'First')\n firstAudienceLevel = '1st';\n\n if (lastAudienceLevel === 'First')\n lastAudienceLevel = '1st';\n\n if (firstAudienceLevel === 'Second')\n firstAudienceLevel = '2nd';\n\n if (lastAudienceLevel === 'Second')\n lastAudienceLevel = '2nd';\n\n if (firstAudienceLevel === lastAudienceLevel)\n return `${firstAudienceLevel} Level`;\n\n return `${firstAudienceLevel} - ${lastAudienceLevel} Level`;\n },\n\n internationalPrimaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n let [firstAudienceLevel] = firstAudience.name.split(' ');\n let [lastAudienceLevel] = lastAudience.name.split(' ');\n\n if (firstAudienceLevel === 'Lower')\n firstAudienceLevel = 'Low';\n\n if (lastAudienceLevel === 'Lower')\n lastAudienceLevel = 'Low';\n\n if (firstAudienceLevel === 'Middle')\n firstAudienceLevel = 'Mid';\n\n if (lastAudienceLevel === 'Middle')\n lastAudienceLevel = 'Mid';\n\n return `${firstAudienceLevel} - ${lastAudienceLevel} Pri`;\n },\n\n /**\n * Handles the english secondary audiences, which can be: Lower Secondary, Upper Secondary, and Advanced\n */\n englandSecondaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n if (lastAudience.name === 'Advanced') {\n const [level] = firstAudience.name.split(' ');\n\n if (level.toLowerCase() === 'lower')\n return 'Lower Sec - Adv';\n\n return 'Upper Sec - Adv';\n }\n\n return 'Lower - Upper Sec';\n },\n\n scotlandSecondaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n if (lastAudience.name === 'Senior Phase')\n return `${firstAudience.name} - Senior`;\n\n return 'Third - Fourth Level';\n },\n\n /**\n * Handles the audience set: Reception, Key Stage 1, Lower Key Stage 2, and Upper Key Stage 2\n */\n englandPrimaryBuilder(audiences: PresentationAudience[]): string {\n // The first and last audience will build out the range\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n // The first word in the strings will either be \"Upper\", \"Lower\", \"Key\", or \"Reception\"\n const firstAudienceFirstWord = ArrayHelper.first(firstAudience.name.split(' '));\n const lastAudienceFirstWord = ArrayHelper.first(lastAudience.name.split(' '));\n\n // Each audience in this set except for \"Reception\" has a number. Get the numbers for the first and last audiences\n const firstAudienceNumber = firstAudience.name.split(' ').find(word => !isNaN(+word));\n const lastAudienceNumber = lastAudience.name.split(' ').find(word => !isNaN(+word));\n\n // If there's only one audience on the video:\n if (firstAudience === lastAudience) {\n // For these 2 audiences, return the full name as it's short enough already\n if (firstAudienceFirstWord === 'Key' || firstAudienceFirstWord === 'Reception')\n return firstAudience.name;\n\n // For the Upper/Lower key stage audiences, abbreviate the \"key stage\" part to KS1/KS2\n return `${firstAudienceFirstWord} KS${firstAudienceNumber}`;\n }\n\n /**\n * Handle when the object has >1 audience\n */\n\n let firstAudienceString = '';\n let lastAudienceString = '';\n\n // Reception is always shortened to \"R\" when in a range\n if (firstAudienceFirstWord === 'Reception') {\n firstAudienceString = 'R';\n } else {\n // All other audiences will be abbreviated to \"KS1/KS2\"\n firstAudienceString = `KS${firstAudienceNumber}`;\n }\n\n // The last audience will always be a key stage, so abbreviate this too\n lastAudienceString = `KS${lastAudienceNumber}`;\n\n // If the audience range contains both the \"Lower\" and \"Upper\" audiences, abbreviate those and return\n if (firstAudienceFirstWord === 'Lower' && lastAudienceFirstWord === 'Upper') {\n return `L ${firstAudienceString} - U ${lastAudienceString}`;\n }\n\n // Add \"Lower\" and \"Upper\" to the strings if it's needed\n if (firstAudienceFirstWord === 'Lower') {\n firstAudienceString = `Lower ${firstAudienceString}`;\n }\n\n if (lastAudienceFirstWord === 'Upper') {\n lastAudienceString = `Upper ${lastAudienceString}`;\n }\n\n // This handles a case where the range is Reception - Key Stage 1. In which case we don't abbreviate the key stage part to KS1.\n if (lastAudienceFirstWord === 'Key') {\n lastAudienceString = lastAudience.name;\n }\n\n return `${firstAudienceString} - ${lastAudienceString}`;\n }\n};\n\nfunction processAudienceRanges(audienceValues: number[]): string[] {\n /**\n * Lookahead by increments of offset\n */\n const offset = COUNT_OFFSET;\n\n let initialVal; let nextVal;\n let isContinguous: boolean = false;\n\n const ranges: string[] = [];\n\n // Audience values need to be in ascending order\n audienceValues = audienceValues.sort((a, b) => a - b);\n\n let i; let j;\n\n for (i = 0; i < audienceValues.length; i++) {\n j = i + 1;\n\n // Set our lower boundary to compare against\n if (!isContinguous)\n initialVal = audienceValues[i];\n\n nextVal = audienceValues[j];\n\n /**\n * Where the next number is also the next incremental value\n * we're going to continue iterating until the next value\n * is no longer contiguos.\n */\n if (audienceValues[i] + offset === nextVal) {\n isContinguous = true;\n } else if (isContinguous) {\n /**\n * Where we were tracking a contiguous set, format appropriately \n * and store the vals\n */\n\n ranges.push(`${initialVal} - ${audienceValues[i]}`);\n isContinguous = false;\n } else {\n /**\n * Where the values arent contiguous, just store the current value\n */\n\n ranges.push(`${audienceValues[i]}`);\n isContinguous = false;\n }\n }\n\n return ranges;\n}","import { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { Audience, BaseObject, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { AudienceStringBuilders } from './AudienceStringBuilders';\n\nconst DIGIT_REGEX = /([0-9]+)/ig;\nconst SPACE_REGEX = /\\s|\\+/ig;\n\n/**\n * Where there is 1 or less audiences on a presentation, it provides little value to\n * the user's experience, so we'll hide audiences altogether.\n */\nconst MIN_AUDIENCE_THRESHOLD = 1;\n\nexport const AudienceHelper = {\n /**\n * This is needed to sort an object's audiences, as they are not sorted by the backend.\n * To do this, we take the presentation audiences (sorted) and filter them by the object's\n * audiences, leaving behind a sorted array of object audiences.\n */\n getSortedPresentationAudiences(\n objectAudiences: Audience[],\n presentationAudiences: PresentationAudience[]\n ): PresentationAudience[] {\n /**\n * Atm there is a bug in flight's optimize, around multiple parts of the page \n * fetching the same object with a different response. We are filtering out\n * falsey values in our object audience ids until that's fixed. - Sha\n */\n const objectAudienceIds = objectAudiences\n .filter(v => !!v)\n .map(audience => audience.id.toString());\n\n /**\n * Remove audiences that aren't relevant for the user's current presentation\n */\n const filteredAudiences = presentationAudiences.filter(presAudience => {\n return objectAudienceIds.includes(presAudience.masterId.toString());\n });\n\n return filteredAudiences;\n },\n\n /**\n * This function accepts a set of presentation audiences, and returns a single\n * audience where the name is a merged string of the names of all of the audiences passed in.\n *\n * As we add more presentations that have different audience sets, we'll need to extend the `switch`\n * statement below to either include new string builder functions, or to include new presentation IDs\n * for existing string builder functions.\n */\n getMergedPresentationAudienceString(presentationAudiences: PresentationAudience[]): PresentationAudience {\n const { presentationId } = ArrayHelper.first(presentationAudiences);\n\n let mergedAudienceString = '';\n\n switch (+presentationId) {\n // Generic `Name Number`. Sometimes has just name. Examples: Year 12, Grade 4, Kindergarten\n case HardCoded.PresentationIds.DEFAULT:\n case HardCoded.PresentationIds.AU_SECONDARY:\n case HardCoded.PresentationIds.US_ELEMENTARY:\n case HardCoded.PresentationIds.AU_PRIMARY:\n case HardCoded.PresentationIds.STREAMABLE_LEARNING:\n if (presentationAudiences.length === 1)\n return presentationAudiences[0];\n\n mergedAudienceString = AudienceStringBuilders.yearsAndGradesBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.INTERNATIONAL_SECONDARY:\n if (presentationAudiences.length === 1)\n return presentationAudiences[0];\n\n // TODO: Implement this properly\n mergedAudienceString = AudienceStringBuilders.internationalSecondaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.INTERNATIONAL_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.internationalPrimaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.SCOTLAND_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.scotlandPrimaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.ENGLISH_SECONDARY:\n mergedAudienceString = AudienceStringBuilders.englandSecondaryBuilder(presentationAudiences);\n break;\n\n \n case HardCoded.PresentationIds.SCOTLAND_SECONDARY:\n mergedAudienceString = AudienceStringBuilders.scotlandSecondaryBuilder(presentationAudiences);\n break;\n\n // Key Stage 1, Lower Key Stage 2, etc.\n case HardCoded.PresentationIds.ENGLAND_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.englandPrimaryBuilder(presentationAudiences);\n break;\n\n // These presentations only have 1 audience mapped. These are never shown as badges in the product.\n case HardCoded.PresentationIds.US_MIDDLE:\n case HardCoded.PresentationIds.US_HIGH:\n default:\n break;\n }\n\n if (!mergedAudienceString)\n return null;\n\n return { name: mergedAudienceString } as PresentationAudience;\n },\n\n /**\n * This function assumes the members array passed in is ordered by `name`.\n */\n sortMembersWithDuplicateNamesByAudience(members: BaseObject[]): BaseObject[] {\n // Returns the lowest level audience out of an array of audience objects by looking at the name\n const getLowestAudience = (audiences: Audience[]) => {\n if (!audiences.length)\n return null;\n\n let lowestAudience: Audience;\n let lowestAudienceDigit: number;\n\n audiences.forEach(audience => {\n const digit = +ArrayHelper.first(audience.name.match(DIGIT_REGEX));\n\n if (!lowestAudience) {\n lowestAudience = audience;\n lowestAudienceDigit = digit;\n return;\n }\n\n if (digit < lowestAudienceDigit)\n lowestAudience = audience;\n });\n\n return lowestAudience;\n };\n\n // This is used to track how many times a member's name appears in the collection\n const nameCountMap: HashObject<number> = {};\n\n let sorted: BaseObject[] = [];\n\n members.forEach(member => {\n if (!nameCountMap[member.name]) {\n nameCountMap[member.name] = 1;\n sorted.push(member);\n return;\n }\n\n sorted.push(member);\n nameCountMap[member.name]++;\n\n // Take the slice of duplicates that we want to sort by audience\n const slice = sorted.splice(sorted.length - nameCountMap[member.name]);\n\n // Sort the slice by lowest audience\n const sortedSlice = slice.sort((a: any, b: any) => {\n const firstObjLowestAudience = getLowestAudience(a.subjectPresentationAudiences.data);\n const secondObjLowestAudience = getLowestAudience(b.subjectPresentationAudiences.data);\n\n if (!firstObjLowestAudience && secondObjLowestAudience)\n return 1;\n\n if (!secondObjLowestAudience)\n return -1;\n\n const comparison = firstObjLowestAudience.name.localeCompare(secondObjLowestAudience.name);\n\n if (comparison === 0) return comparison;\n\n return comparison > 0 ? -1 : 1;\n });\n\n sorted = sorted.concat(sortedSlice);\n });\n\n return sorted;\n },\n\n getActiveAudiencesFromParams(audiences: PresentationAudience[], params: HashObject = {}): PresentationAudience[] {\n if (!ObjectHelper.isObject(params) || ObjectHelper.isEmpty(params))\n return;\n\n if (!audiences || !audiences.length)\n return;\n\n if (!AudienceHelper.shouldShowAudiences(audiences))\n return;\n\n // 'a' is shorthand for audience\n let { a } = params;\n\n if (!a)\n return;\n\n // Only a single query param was passed, we'll wrap it in an array\n if (typeof a === 'string')\n a = [a];\n\n const normalizeAudienceName = (audienceName: string) => {\n return audienceName.replace(SPACE_REGEX, '').toLowerCase();\n };\n\n // Build an audience lookup\n const audienceLookup = a.reduce((state: HashObject, audienceStr: string) => {\n state[normalizeAudienceName(audienceStr)] = audienceStr;\n return state;\n }, {});\n\n // Filter out our active audience based on whether their name matches the lookup object\n return audiences.filter((audience: PresentationAudience) => {\n return audienceLookup[normalizeAudienceName(audience.name)];\n });\n },\n\n getAudienceParams(audiences: PresentationAudience[]): HashObject {\n if (!audiences?.length)\n return null;\n\n return { a: audiences.map(a => a.name) };\n },\n\n shouldShowAudiences(audiences: PresentationAudience[] = []): boolean {\n if (!audiences)\n return false;\n\n return audiences.length > MIN_AUDIENCE_THRESHOLD;\n }\n};\n","import { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Classification, Playlist } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\n\nexport const getClassificationAppLink = (params?: HashObject) =>\n (classification?: Classification): Core.AppLink => {\n if (!classification?.id)\n return null;\n\n return ClassificationAppLinkHelper.getAppLink(classification, params || {});\n };\n\nexport const getPlaylistAppLink = (playlist: Playlist, classificationId: string): Core.AppLink => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ],\n params: { classificationId }\n});\n\nexport const getAllTopicsAppLink = (presentationId?: string): Core.AppLink => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_ALL,\n params: presentationId ? { presentationId } : {}\n});","// extracted by mini-css-extract-plugin\nexport default {\"classificationPane\":\"kx1WX\"};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { CoverFixedPillListLargeWidgetTemplate } from 'libs/shared/components/widgets/curated-widgets/templates/cover-fixed-pill-list-large/CoverFixedPillListLargeWidgetTemplate';\nimport { PartialDynamicWidget } from 'libs/shared/components/widgets/dynamic-widget';\nimport { PartialSubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { FollowRequests } from 'libs/shared/flight-requests/FollowRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, Config, CurrentUser, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { getClassificationAppLink } from 'apps/subjects/utils/ClassificationAppLinks';\n\nimport styles from './classifications.scss';\n\nconst getPhrase = LanguageService.encloseNamespace('subjects.classifications');\n\nexport function getBannerActions(\n classification: Classification,\n onFollow: () => void,\n showFollowButtonSpinner: boolean,\n isSmallScreen: boolean\n): ActionOptions[] {\n if (!classification?.id)\n return [];\n\n const isFollowing = !!classification.followers?.data?.length;\n\n return [{\n label: getPhrase(isFollowing ? 'following' : 'follow'),\n onClick: onFollow,\n svgName: isFollowing ? cvSvgLibrary.BellFilled : cvSvgLibrary.Bell,\n className: `btn follow-btn ${isFollowing ? 'btn-outline-dark' : 'btn-dark'} me-2`,\n button: true,\n tooltip: (isFollowing || isSmallScreen) ? undefined : getPhrase('followBtnTooltip'),\n showSpinner: showFollowButtonSpinner\n }];\n}\n\ninterface ClassificationsViewProps {\n id?: string;\n queryParams?: HashObject;\n presentationId?: string;\n}\n\nfunction useGetClassification(\n presentation: Presentation,\n presentationCount: number,\n id?: string,\n userId?: string\n): Classification {\n /**\n * With an id, we're fetching the classification to show the child topics in the\n * classification list.\n */\n const classification = Flight.useBasicFetch<Classification>(\n id &&\n ClassificationRequests.classification(id, userId)\n );\n\n /**\n * Without an id, we should be displaying the All Subjects page. So we'll construct\n * a synthetic classification.\n */\n if (!id)\n return {\n name: TopicsHelper.getExploreAllTopicsTitle(presentation?.name, presentationCount),\n banner: {\n url: TopicsHelper.getPresentationLevelImage(presentation?.learningLevel, 'topic-banner')\n }\n } as Classification;\n\n return classification?.data;\n}\n\nfunction useGetPaths(id?: string): Classification[] {\n const path = Flight.useBasicFetch<Classification[]>(id && ClassificationRequests.path(id));\n\n if (!id)\n return [];\n\n return path?.data;\n}\n\nexport function ClassificationsView({ id, presentationId }: ClassificationsViewProps): React.ReactElement {\n const [ showFollowButtonSpinner, setShowFollowButtonSpinner ] = React.useState<boolean>();\n const { isPlugin } = usePluginHelper();\n const dispatch = useDispatch();\n\n /**\n * Data fetching\n */\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const {\n availablePresentations,\n activePresentation,\n hasPresentationsLoaded,\n canAccessPresentation\n } = usePresentation();\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n\n /**\n * We'll prefer the presentationId query param, but fallback to the\n * user's activePresentation where the queryParam doesn't exist.\n */\n const initialPresentationId = presentationId || activePresentation?.id;\n\n const currentPresentation = Flight.useBasicFetch<Presentation>(\n initialPresentationId &&\n ClassificationRequests.presentationById(initialPresentationId)\n );\n\n const hasLoaded = currentPresentation.hasCompleted && hasPresentationsLoaded;\n\n const classification = useGetClassification(\n currentPresentation?.data,\n availablePresentations?.length,\n id,\n currentUser.data?.id\n );\n\n /**\n * With an id, we'll fetch the classification's children.\n * With a presentationId, we'll fetch the presentation's top level topics.\n * For public access, we will always have a presentationId available.\n */\n const request = id\n ? ClassificationRequests.children(id)\n : ClassificationRequests.topLevelTopics(initialPresentationId || currentPresentation.data?.id);\n\n const children = Flight.useBasicFetch<Classification[]>(hasLoaded && request);\n\n const paths = useGetPaths(id);\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n const title = id\n ? getPhrase('pageTitleTopic', { title: classification?.name })\n : getPhrase('pageTitleSubject', { title: currentPresentation.data?.name });\n\n useSetPageMetadata({\n title,\n description: getPhrase('pageDescription', { title: id ? classification?.name : currentPresentation.data?.name }),\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: SeoHelper.allowIndexing()\n });\n useDeepLinks({ id, app: 'topics' });\n\n const classificationAppLinkFn = getClassificationAppLink(AudienceHelper.getAudienceParams(activeAudiences));\n\n /**\n * Following\n */\n function onToggleFollow(): void {\n setShowFollowButtonSpinner(true);\n\n const request = classification?.followers?.data?.length\n ? FollowRequests.unfollow\n : FollowRequests.follow;\n\n Flight.fetch(dispatch, request([classification?.id], currentUser.data?.id));\n }\n\n React.useEffect(() => {\n setShowFollowButtonSpinner(false);\n }, [classification?.followers?.data?.length]);\n\n const isSmallScreen = useMediaQuery(MediaQueryStrings.MDDown);\n\n function getBreadcrumbs(): Breadcrumb[] {\n const breadcrumbs: Breadcrumb[] = [{\n name: getPhrase('discover'),\n appLink: {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }\n }, {\n name: TopicsHelper.getExploreAllTopicsTitle(currentPresentation.data?.name, availablePresentations?.length),\n appLink: { application: AppChannels.SUBJECT, action: Actions.Subjects.CLASSIFICATION_ALL },\n active: !id\n }];\n\n paths.forEach(item => {\n breadcrumbs.push({\n name: item.name,\n appLink: classificationAppLinkFn(item)\n });\n });\n\n if (id)\n breadcrumbs.push({\n name: getPhrase('subview'),\n active: true\n });\n\n return breadcrumbs;\n }\n\n /**\n * Render Variable\n */\n const dataLoaded = (id ? !!classification : true) && !!config.data && !!availablePresentations && children.data;\n const breadcrumbsDataLoaded = !!availablePresentations && !!paths;\n const canViewBreadcrumbs = canAccessPresentation(currentPresentation.data?.id);\n\n /**\n * Additional subjects data to be mixed in with lower-level component analytics collection\n */\n const analyticsData = {\n presentationId: currentPresentation.data?.id,\n presentationName: currentPresentation.data?.name,\n currentClassificationName: classification?.name,\n widgetId: WidgetTypeId.Classifications,\n templateId: WidgetTemplate.CoverFixedPillListLarge\n };\n \n const isComingSoon = classification?.status === ClassificationStatus.ComingSoon;\n\n return (\n <main className='bg-white px-3'>\n {dataLoaded\n ? (\n <BannerHeader\n heading={classification?.name}\n banner={classification?.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n actions={!isComingSoon\n ? getBannerActions(\n classification,\n onToggleFollow,\n showFollowButtonSpinner,\n isSmallScreen\n )\n : []\n }\n imageOptions={!id && { size: ImageSize.Large }}\n />\n ) : <PartialBannerHeader />\n }\n <div className={`py-3 mb-3 ${canViewBreadcrumbs ? 'border-bottom' : ''}`}>\n {(() => {\n if (!canViewBreadcrumbs)\n return <></>;\n\n if (!breadcrumbsDataLoaded)\n return <PartialBreadcrumbs />;\n\n return <Breadcrumbs breadcrumbs={getBreadcrumbs()} />;\n })()}\n </div>\n <div className={styles.classificationPane}>\n {dataLoaded\n ? (\n <CoverFixedPillListLargeWidgetTemplate\n id={id}\n name=''\n description=''\n metadata={{}}\n preferences={[]}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n widgetTypeId={WidgetTypeId.Classifications}\n templateId={WidgetTemplate.CoverFixedPillListLarge}\n analyticsData={analyticsData}\n content={children?.data}\n analyticsOptions={{ location: LocationContext.SlidingListItem }}\n appLinks={{ classification: classificationAppLinkFn }}\n imageCdnUrl={config.data.imageCdnUrl}\n resourceThumbnailFallbackImageUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n isPlugin={isPlugin}\n />\n ) : <PartialDynamicWidget partialLoadingComponent={PartialSubjectWidgetItem} />}\n </div>\n </main>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"appLink\":\"fFjKN\",\"name\":\"A_by9\",\"selectedMask\":\"xSQtR\",\"widgetItem\":\"Ys9W_\",\"text\":\"JfAoy\",\"imagePanel\":\"aUNDc\",\"partialLargeImage\":\"RuLxv\",\"selected\":\"BViJb\",\"image\":\"LkTep\",\"dragHandle\":\"CJqvP\",\"large\":\"R5clw\",\"comingSoonPanel\":\"Wa2PG\",\"newVideos\":\"s61h8\",\"editSubjectsItem\":\"gGNFD\",\"allSubjectsItem\":\"IHdlJ\",\"logoContainer\":\"Nzaes\",\"draggingItem\":\"zUOye\",\"partialLargeFallback\":\"FmJP9\",\"partialIcon\":\"sdZuo\"};","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","Actions","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","length","map","idx","key","href","onClick","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","openInNewTab","disabled","iconButton","showBorder","customSize","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","id","size","showDivider","undefined","group","defaultProps","S","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","RATIO","getSizeClass","heading","BannerHeader","banner","imageCdnUrl","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","calendarTheme","Text","phrase","LazyImage","src","container","prevProps","nextProps","PartialBannerHeader","BreadcrumbItem","breadcrumb","name","active","withBackIcon","Breadcrumbs","breadcrumbs","isMobile","PartialBreadcrumbs","numItems","dangerouslySetInnerHTML","__html","getPhrase","SeeMore","descriptor","WidgetHeader","hasDescription","description","showSeeMoreLink","CoverFixedPillListLargeWidgetTemplate","content","c","xs","sm","lg","hasTableOfContents","xl","data","getChildAppLink","appLinks","classification","isLarge","ComingSoonNamePanel","multiline","noUnderLine","wrapperClassName","textClassName","NormalNamePanel","subtitle","newVideosCount","options","smartCount","CoverPillWidgetContent","coverUrl","childProps","highlightOnHover","showNewVideosCount","externalMetadata","childDashboardNewVideoCount","isSelected","hideCheckmark","textVariant","variant","imageClassName","hideFallback","isComingSoon","CoverPillWidgetContentWrapper","appLinkOptions","getChildAppLinkOptions","PartialSubjectWidgetItem","PartialLargeSubjectWidgetItem","Memoized","status","presentationName","presentationId","availablePresentations","find","p","usePresentationName","comingSoon","location","entity","actionType","cover","getSubtitle","blankImage","Image","DragHelper","event","dataTransfer","setDragImage","isTouchScreen","UserAgentHelper","SlidingListContainer","ref","listenerProps","xPosition","measurement","dragPercentage","children","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","direction","Left","arrowSvg","hide","state","contents","paddingBottom","viewableItems","useGradientBackdrop","leftGradientClassName","rightGradientClassName","hideExtendedClickableArea","leftButtonClassName","rightButtonClassName","hoverText","ClassificationStatus","WidgetInteraction","endpoints","ids","FollowRequests","follow","userId","success","error","join","formatData","followers","invalidationKeys","unfollow","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","HAS_NUMBER_REGEX","AudienceStringBuilders","yearsAndGradesBuilder","audiences","combinedNames","numberList","split","filter","isNaN","num","wordList","audienceWithoutNum","test","prefix","charAt","pop","audienceRange","audienceValues","initialVal","nextVal","i","j","isContinguous","ranges","processAudienceRanges","internationalSecondaryBuilder","englandSecondaryBuilder","scotlandPrimaryBuilder","firstAudience","ArrayHelper","lastAudience","firstAudienceLevel","lastAudienceLevel","internationalPrimaryBuilder","toLowerCase","scotlandSecondaryBuilder","englandPrimaryBuilder","firstAudienceFirstWord","lastAudienceFirstWord","firstAudienceNumber","word","lastAudienceNumber","firstAudienceString","lastAudienceString","DIGIT_REGEX","SPACE_REGEX","AudienceHelper","getSortedPresentationAudiences","objectAudiences","presentationAudiences","objectAudienceIds","v","audience","toString","presAudience","includes","masterId","getMergedPresentationAudienceString","mergedAudienceString","HardCoded","sortMembersWithDuplicateNamesByAudience","members","getLowestAudience","digit","match","lowestAudience","lowestAudienceDigit","nameCountMap","sorted","member","sortedSlice","splice","firstObjLowestAudience","subjectPresentationAudiences","secondObjLowestAudience","comparison","localeCompare","concat","getActiveAudiencesFromParams","params","ObjectHelper","shouldShowAudiences","normalizeAudienceName","audienceName","replace","audienceLookup","reduce","audienceStr","getAudienceParams","getClassificationAppLink","getAllTopicsAppLink","application","getBannerActions","onFollow","showFollowButtonSpinner","isSmallScreen","isFollowing","ClassificationsView","setShowFollowButtonSpinner","isPlugin","usePluginHelper","dispatch","currentUser","UserRequests","config","ConfigRequests","usePresentation","activePresentation","hasPresentationsLoaded","canAccessPresentation","usePermissions","hasPermissions","hasLocalPermissions","initialPresentationId","currentPresentation","ClassificationRequests","hasLoaded","hasCompleted","presentation","presentationCount","TopicsHelper","learningLevel","useGetClassification","request","paths","path","useGetPaths","activeAudiences","SharedViewModelKeys","storage","useSetPageMetadata","canonicalLink","SeoHelper","allowIndexing","useDeepLinks","app","classificationAppLinkFn","dataLoaded","breadcrumbsDataLoaded","canViewBreadcrumbs","currentClassificationName","widgetId","WidgetTypeId","templateId","WidgetTemplate","item","getBreadcrumbs","metadata","preferences","widgetTypeId","resourceThumbnailFallbackImageUrl","ImageUrls","partialLoadingComponent","Row","bsPrefix","as","Component","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","displayName"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1867],{70067:(e,a,i)=>{i.r(a),i.d(a,{PlaySharedClipViewV2:()=>L});var t=i(32735),n=i(20354),r=i(65858),s=i(16714),c=i(43012),o=i(39151),d=i(1666),l=i(20768),u=i(31949),p=i(1575),v=i(26304),m=i(22902),g=i(15311),I=i(79612),y=i(76753),h=i(51855),f=i(7179),P=i(49948),A=i(36873),C=i(27638),E=i(44110),V=i(35014),F=i(97816),O=i(81812),b=i(14085);function L(e){var a,i,L,G,k,x,R=(0,g.r)().hasProduct,S=(0,C.u)(r.LZ.VideoThumbnail),T=S.setFavourite,w=S.canFavourite,q=(0,m.T)().hasPermissions,N=(0,h.G)().isPlugin,U=(0,O.a)(),_=(0,V.I)(),M=n.a.useBasicFetch(u.N.currentUser()),j=n.a.useBasicFetch(o.L.config()),B=n.a.useBasicFetch(c.e.sharedClip(e.objectId,e.shareId)),D=n.a.useBasicFetch(!!(null===(a=B.data)||void 0===a?void 0:a._parentVideo)&&p.R.video(B.data._parentVideo.id)),W=n.a.useBasicFetch(!!(null===(L=null===(i=B.data)||void 0===i?void 0:i._parentVideo)||void 0===L?void 0:L.id)&&_.canViewClips&&c.e.videoClips(B.data._parentVideo.id)),H=n.a.useBasicFetch(_.canViewInteractives&&l.b.videoInteractives(e.objectId)),K=(0,A.k)({video:D.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:M.data}),Q=(0,E.i)(),Y=n.a.useBasicFetch((null===(G=M.data)||void 0===G?void 0:G.isAuthenticated)&&d.h.yearGroups(M.data.customerId)),Z=(0,P.l)(e.objectId);return(0,I.M)(y.CG.getClipMetadata({content:B.data})),(0,F.V)(null!==(k=K.videos)&&void 0!==k?k:[]),(0,v.b)(B),(0,f.P)({id:e.objectId,app:"clips",shareId:e.shareId}),B.data&&M.hasCompleted&&j.hasCompleted&&Z.hasCompleted?t.createElement(b.S,{shareId:e.shareId,clip:B.data,clips:W.data,interactives:H.data,originalVideo:D.data,currentUser:M.data,yearGroups:Y.data,relatedVideos:K,canFavourite:w,setFavourite:T,hasProduct:R,queryParams:e.queryParams,audiences:Q.data,imageCdnUrl:j.data.imageCdnUrl,canManageVideoAccess:q(s.C.ManageVideoAccess),pointsOfInterest:null==Z?void 0:Z.items,featureAccess:_,tableOfContentsId:null===(x=e.queryParams)||void 0===x?void 0:x.tocId,shouldShowSideTableOfContents:U,isPlugin:N}):t.createElement(t.Fragment,null)}},44110:(e,a,i)=>{i.d(a,{i:()=>s});var t=i(20354),n=i(89454),r=i(86698),s=function(){var e=(0,r.y)({redirectOnError:!0}),a=e.activePresentation,i=e.getFallbackPresentation,s=a||i();return t.a.useBasicFetch(!!s&&n.O.presentationAudiences(s.id))}},14085:(e,a,i)=>{i.d(a,{S:()=>W});var t=i(32735),n=i(28400),r=i(5640),s=i(12059),c=i(51184),o=i(64921),d=i(95812),l=i(53709),u=i(71063),p=i(10439),v=i(35429),m=i(4594),g=i(16714),I=i(12754),y=i(22902),h=i(65332),f=i(76196),P=i(59598),A=i(31908),C=i(26492),E=i(9465),V=i(91479),F=i(47938),O=i(81024),b=i(78166),L=i(99742),G=i(14070),k=i(97291),x=i(22490),R=i(63010),S=i(14476),T=i(53256),w=i(83345),q=i(13231),N=i(51365),U=i(10671),_=i(10741),M="shared.playClipV2";function j(e){var a=(0,y.T)().hasPermissions,i=(0,U._)({location:U.i.VideoItem});return t.createElement("section",{className:"play-page-section",id:P.K.ClippedFrom,ref:function(a){var i;a&&(null===(i=e.headingRef)||void 0===i?void 0:i.current)&&e.headingRef.current.set(P.K.ClippedFrom,a)}},t.createElement("h2",{className:"h4 mb-0"},t.createElement(w.x,{namespace:M,phrase:"clippedFrom"})),t.createElement(N.M.Provider,{value:i},t.createElement(q.E4,{videos:[e.originalVideo],yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(a,i){return x.W.getAppLink(a,Object.assign(Object.assign({},i),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},hasPermissions:a,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return _.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:e.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:e.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:e.getResourceGuidanceAppLink})))}const B={main:"iQ0Ie",expandedToc:"sIoV8"};var D=function(e,a,i){return function(t){return i?{application:k.O.VIDEOS,action:G.e.Videos.PREVIEW_PDF,args:[t.id],params:{videoId:e,shareId:a}}:{application:k.O.SIGN_UP,action:G.e.SignUp.SIGN_UP}}};function W(e){var a,i,w,q,N,U,_,M,W,H=(0,v.g)(),K=(0,y.T)().hasPermissions,Q=A.M.getCanBeConsumed(e.clip).canConsume,Y=(0,R.Q)(e.tableOfContentsId),Z=Y.tableOfContentsActiveId,J=Y.setTableOfContentsActiveId,z=Y.controlledId,X=Y.setControlledId,$=Y.tableOfContentsExpanded,ee=Y.onToggleTableOfContents,ae=(0,c.Wp)(e.clip)&&e.featureAccess.canViewGlance,ie=(0,S.i)(ae),te=ie.headingRef,ne=ie.headingElements,re=ne.map((function(a){var i;return{id:a.id,name:T.d.getSectionHeading(a.id,{clips:e.clips,interactives:e.interactives,resources:null===(i=e.clip.resources)||void 0===i?void 0:i.data,isPlayClipPage:!0})}}));(0,h.D)({setActiveId:J,headingElements:ne,controlledId:z,setControlledId:X}),(0,f.P)(ne,e.tableOfContentsId);var se=A.M.isVideoTypeArchived(e.clip),ce=K(g.C.StudentExperience),oe=t.useRef(!1);function de(){var e,a,i,t;oe.current=!(null===(a=null===(e=null==H?void 0:H.playerRef)||void 0===e?void 0:e.current)||void 0===a?void 0:a.isPaused()),null===(t=null===(i=null==H?void 0:H.playerRef)||void 0===i?void 0:i.current)||void 0===t||t.pause()}function le(){var e,a;oe.current&&(null===(a=null===(e=null==H?void 0:H.playerRef)||void 0===e?void 0:e.current)||void 0===a||a.play())}function ue(){var a,i;return!(!e.originalVideo||!(null===(a=e.clip._canBeConsumed)||void 0===a?void 0:a.value)||!(null===(i=e.currentUser)||void 0===i?void 0:i.isAuthenticated)||!e.hasProduct(I.x.Primary)||ce)}var pe="picture-in-picture"===H.mode||e.featureAccess.canViewPublicLayout,ve=null!==(i=null===(a=e.clips)||void 0===a?void 0:a.filter((function(a){return a.id.toString()!==e.clip.id.toString()})))&&void 0!==i?i:[];return t.createElement("div",{className:"px-4 play-page-sections-container"},t.createElement("main",{className:"".concat(B.main," ").concat(e.shouldShowSideTableOfContents&&$?B.expandedToc:e.shouldShowSideTableOfContents&&!$?"pe-4":void 0)},t.createElement(F.W,{restrictions:e.clip._restrictions,yearGroups:e.yearGroups,objectId:e.clip.id,objectTypeId:m.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),se&&t.createElement(C.T,{typeId:e.clip.typeId,hasStudentExperience:ce}),t.createElement("section",{id:P.K.Video,className:"mb-2 ".concat(u.M.GLOBAL_PLAYER_SELECTOR),ref:function(e){e&&(null==te?void 0:te.current)&&te.current.set(P.K.Video,e)}},Q&&t.createElement(p.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(w=e.queryParams)||void 0===w?void 0:w.context,contextId:null===(q=e.queryParams)||void 0===q?void 0:q.contextId,moviesAndTv:null===(N=e.queryParams)||void 0===N?void 0:N.mtv,playNext:null===(U=e.queryParams)||void 0===U?void 0:U.playNext,startTime:null!==(M=null===(_=e.queryParams)||void 0===_?void 0:_.t)&&void 0!==M?M:null===(W=e.queryParams)||void 0===W?void 0:W.startTime,mode:"default",location:"play-page"}),t.createElement("div",{className:pe?"":"d-none"},t.createElement(O.S,{video:e.clip,type:"pip"}))),t.createElement(V.v,{media:e.clip,yearGroups:e.yearGroups,audiences:e.audiences,originalVideoAppLink:ue()?{application:k.O.VIDEOS,action:G.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,n.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId}),ae?t.createElement(o.j,{video:e.clip,pointsOfInterest:e.pointsOfInterest,setStartTime:function(e){var a;return null===(a=H.playerRef.current)||void 0===a?void 0:a.currentTime(e)},getTagAppLink:function(e){return{application:k.O.SEARCH,action:G.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout,canViewGlance:ae}):t.createElement(s.a,{video:e.clip,onLaunchImmersiveReader:de,onExitImmersiveReader:le,getTagAppLink:function(e){return{application:k.O.SEARCH,action:G.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:te,suppressInteractivity:e.featureAccess.canViewPublicLayout}),t.createElement(l.M,{video:e.clip,canViewResources:e.featureAccess.canViewResourceItems,imageCdnUrl:e.imageCdnUrl,getAppLink:D(e.clip.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsData:{clipId:e.clip.id,clipName:e.clip.name},resourceThumbnailFallbackUrl:L.W.Fallbacks.RESOURCE_THUMBNAIL,headingRef:te}),t.createElement(d.J,{video:e.clip,interactives:e.interactives,imageCdnUrl:e.imageCdnUrl,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},canViewInteractives:e.featureAccess.canViewInteractives,headingRef:te,yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,isPlugin:e.isPlugin}),t.createElement(r.O,{clips:ve||[],video:e.clip,canViewClips:e.featureAccess.canViewClips,yearGroups:e.yearGroups,audiences:e.audiences,imageCdnUrl:e.imageCdnUrl,setFavourite:e.setFavourite,canFavourite:e.canFavourite,headingRef:te,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},isPlugin:e.isPlugin}),ae&&t.createElement(s.a,{video:e.clip,onLaunchImmersiveReader:de,onExitImmersiveReader:le,getTagAppLink:function(e){return{application:k.O.SEARCH,action:G.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:te,suppressInteractivity:e.featureAccess.canViewPublicLayout}),!!ue()&&t.createElement(j,{originalVideo:e.originalVideo,setFavourite:e.setFavourite,canFavourite:e.canFavourite,yearGroups:e.yearGroups,shareId:e.shareId,queryParams:e.queryParams,audiences:e.audiences,headingRef:te,isPlugin:e.isPlugin,getClassroomGuideAppLink:x.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:x.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:x.W.getResourceGuidanceAppLink}),t.createElement(b.Z,{currentVideo:e.clip,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,setFavourite:e.setFavourite,canFavourite:e.canFavourite,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(a,i){return x.W.getAppLink(a,Object.assign(Object.assign({},i),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})),t.createElement(E.h,{isExpanded:$,setIsExpanded:ee,items:re,activeId:Z,setControlledId:X,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},showInSide:e.shouldShowSideTableOfContents}))}}}]);
2
- //# sourceMappingURL=1867-260ef9f8c2-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1867-260ef9f8c2-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/share/views/play-shared-clip/v2/PlaySharedClipViewV2.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/clipped-from/ClippedFrom.tsx","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/play-clip-v2.scss","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/PlayClipV2.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, InteractiveMetadata, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/v2/hooks/useShouldShowTableOfContents';\nimport { PlayClipV2 } from 'shared/views/play-clip/v2/components/play-clip/PlayClipV2';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedClipViewV2(props: ShareLinkViewProps): React.ReactElement {\n const { hasProduct } = useProducts();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const featureAccess = useVideoFeatureAccess();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.sharedClip(props.objectId, props.shareId));\n const video = Flight.useBasicFetch<Video>(!!clip.data?._parentVideo &&\n VideoRequests.video(clip.data._parentVideo.id));\n const childClips = Flight.useBasicFetch<Clip[]>(\n !!clip.data?._parentVideo?.id && featureAccess.canViewClips && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n const interactives = Flight.useBasicFetch<InteractiveMetadata[]>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n \n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(clip);\n useDeepLinks({ id: props.objectId, app: 'clips', shareId: props.shareId });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n pointsOfInterest.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClipV2\n shareId={props.shareId}\n clip={clip.data}\n clips={childClips.data}\n interactives={interactives.data}\n originalVideo={video.data}\n currentUser={currentUser.data}\n yearGroups={yearGroups.data}\n relatedVideos={relatedVideos}\n canFavourite={canFavourite}\n setFavourite={setFavourite}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n imageCdnUrl={config.data.imageCdnUrl}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest?.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n isPlugin={isPlugin}\n />\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClipV2';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n isPlugin: boolean;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"main\":\"iQ0Ie\",\"expandedToc\":\"sIoV8\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { PlayPageClips } from 'libs/shared/components/play-page-v2/clips-widget/PlayPageClips';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page-v2/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { PlayPageInteractives } from 'libs/shared/components/play-page-v2/interactives-widget/PlayPageInteractives';\nimport { PlayPageResources } from 'libs/shared/components/play-page-v2/resources-widget/PlayPageResources';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { CanFavouriteFunc, Clip, CurrentUser, FavouriteFunc, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { TableOfContentsContainer } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { usePlayPageTableOfContent } from 'shared/views/play/v2/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/v2/hooks/useSectionHeadings';\nimport { PlayPageUtils } from 'shared/views/play/v2/PlayPageUtilV2';\nimport { ClippedFrom } from 'shared/views/play-clip/v2/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip-v2.scss';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\n\ninterface PlayClipV2Props {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n originalVideo: Video;\n currentUser: CurrentUser;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n isPlugin: boolean;\n}\n\nexport function PlayClipV2(props: PlayClipV2Props): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, props.tableOfContentsId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function canAccessOriginal(): boolean {\n if (!props.originalVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal())\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ props.originalVideo.id, TextHelper.slugify(props.originalVideo.name) ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n function getMainClassName() {\n if (props.shouldShowSideTableOfContents && tableOfContentsExpanded) {\n return styles.expandedToc;\n }\n if (props.shouldShowSideTableOfContents && !tableOfContentsExpanded)\n return 'pe-4';\n }\n\n return (\n <div className='px-4 play-page-sections-container'>\n <main className={`${styles.main} ${getMainClassName()}`}>\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n )}\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <PlayPageTitleAndActions\n media={props.clip}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.imageCdnUrl}\n getAppLink={\n getResourceAppLink(props.clip.id, props.shareId, props.featureAccess.canViewResourceItems)\n }\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n />\n\n <PlayPageInteractives\n video={props.clip}\n interactives={props.interactives}\n imageCdnUrl={props.imageCdnUrl}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n isPlugin={props.isPlugin}\n />\n\n <PlayPageClips\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n imageCdnUrl={props.imageCdnUrl}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n isPlugin={props.isPlugin}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.originalVideo}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n yearGroups={props.yearGroups}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n )}\n\n <RelatedVideos\n currentVideo={props.clip}\n yearGroups={props.yearGroups}\n relatedVideos={props.relatedVideos}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n\n </main>\n\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n />\n \n </div>\n );\n}"],"names":["PlaySharedClipViewV2","props","hasProduct","u","setFavourite","canFavourite","hasPermissions","isPlugin","shouldShowSideTableOfContents","featureAccess","currentUser","config","clip","objectId","shareId","video","data","_parentVideo","id","childClips","canViewClips","interactives","canViewInteractives","relatedVideos","context","queryParams","contextId","moviesAndTv","mtv","audiences","yearGroups","isAuthenticated","customerId","pointsOfInterest","content","videos","app","hasCompleted","clips","originalVideo","imageCdnUrl","canManageVideoAccess","items","tableOfContentsId","tocId","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","namespace","ClippedFrom","usePermissions","videoActions","useVideoActions","location","className","PlayPageAnchor","ref","el","headingRef","current","set","Text","phrase","VideoActionsContext","value","VideoList","getVideoAppLink","v","opts","VideoAppLinkHelper","playNext","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","getResourceAppLink","videoId","canViewResource","resource","application","action","args","params","PlayClipV2","playerContext","canConsume","VideoHelper","usePlayPageTableOfContent","tableOfContentsActiveId","setTableOfContentsActiveId","controlledId","setControlledId","tableOfContentsExpanded","onToggleTableOfContents","hasGlance","canViewGlance","useSectionHeadings","headingElements","map","ele","name","resources","isPlayClipPage","useTableOfContentsActiveHeading","setActiveId","useTableOfContentsScroll","isArchived","hasStudentExperience","PermissionName","shouldPlayOnExitImmersiveReader","onLaunchImmersiveReader","playerRef","isPaused","pause","onExitImmersiveReader","play","canAccessOriginal","_canBeConsumed","ProductId","showPlayerPlaceholder","mode","canViewPublicLayout","otherClips","filter","c","toString","RestrictionBanner","restrictions","_restrictions","objectTypeId","MasterType","ArchivedBanner","typeId","SeoConstants","GlobalPlayerConsumer","key","startTime","t","PlayerPlaceholder","type","PlayPageTitleAndActions","media","originalVideoAppLink","TextHelper","VideoAtAGlanceV2","setStartTime","time","currentTime","getTagAppLink","tag","tagOrClassification","suppressInteractivity","PlayPageResources","canViewResources","canViewResourceItems","getAppLink","analyticsData","clipId","clipName","resourceThumbnailFallbackUrl","ImageUrls","PlayPageInteractives","PlayPageClips","RelatedVideos","currentVideo","TableOfContents","isExpanded","setIsExpanded","activeId","showInSide"],"sourceRoot":""}