@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
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3633],{50690:(e,t,n)=>{n.d(t,{b:()=>a});var r=n(12788),a={renderInPortalIfExists:function(e,t){return t?(0,r.createPortal)(e,t):e}}},84963:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(32735),a=n(23481),o=n(83914),i=n(76177),l=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return r.createElement(i.u,{title:a.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},r.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},r.createElement(o.x,{svgName:l.vn.Timer}),!e.onlyIcon&&a.T.getPhrase(s,"comingSoon")))}},73679:(e,t,n)=>{n.d(t,{s:()=>i});var r=n(32735),a=n(36848);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function i(e){var t,n,i;return r.createElement(a.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},r.createElement("div",{className:"position-relative ".concat(o.dateItem)},r.createElement("div",{className:"".concat(null===(i=e.theme)||void 0===i?void 0:i.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:r.createElement(r.Fragment,null," ")),r.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),r.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},44522:(e,t,n)=>{n.d(t,{p:()=>x,v:()=>w});var r=n(32735),a=n(110),o=n(50690),i=n(84963),l=n(73679),c=n(83657),s=n(23481),u=n(36848),d=n(83914),m=n(35223),f="shared.backButton";function v(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,a=t.appLink,o=t.color,i=t.extraClasses,l=t.textShadow,c=n?s.T.getPhrase(f,"backTo",{backToName:n}):s.T.getPhrase(f,"back"),v="black"===o?"":"text-white",p=l?"text-shadow":"";return r.createElement(u.F,{appLink:a,className:"d-inline-flex align-items-center h5 mb-0 ".concat(i," ").concat(v," ").concat(p)},r.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),r.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var p=n(36518),b=n(83345),g=n(10587),h=n(94232),y=n(54610),E=n(79967),C=n(67453);const N={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var S="".concat(g.y[y.__.Banners].width,":").concat(g.y[y.__.Banners].height);function k(e){return e.length<160?"h1":N.headingLarge}var x=r.memo((function(e){var t,n,s,u,d=e.heading,m=e.banner,f=e.imageCdnUrl,g=e.actions,x=e.sortComponent,w=e.blockColourClass,A=e.specialEvent,I=r.useContext(h.n),L=(0,E.k)().xxl?1920:1200,O=r.useMemo((function(){if(!A||e.showComingSoon)return!1;var t=a.O.format(new Date,"YYYY-MM-DD");return A.endDate?A.startDate<=t&&A.endDate>=t:A.startDate===t}),[A]),F=e.imageOptions||{width:L,ratio:S,resizeType:y.Nq.Cover},T=!!m&&!!f&&C.j.createBannerUrl(m,{fallbackBaseUrl:f,fallbackCategoryName:d,type:y.__.Banners},F),P={className:"banner banner-header ".concat(e.bannerClassName),style:T?{backgroundImage:"url('".concat(T,"')")}:{}};!m&&w&&(delete P.style,P.className+=" ".concat(w));var j=e.detailsComponent;return o.b.renderInPortalIfExists(r.createElement("header",Object.assign({},P),r.createElement("div",{className:"container ".concat(N.container," position-relative inner-banner")},e.backButtonAppLink&&r.createElement("div",{className:"pt-3"},r.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),r.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(N.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?N.bannerContentWithLogo:""))},!!A&&r.createElement("div",{className:"position-relative ".concat(N.specialEventContainer)},r.createElement(l.s,{body:{type:A.endDate?"range":"day",text:A.endDate?"".concat(a.O.format(A.startDate,"DD"),"-").concat(a.O.format(A.endDate,"DD")):a.O.format(A.startDate,"DD")},month:a.O.format(A.startDate,"MMMM"),theme:e.calendarTheme})),r.createElement("div",null,O&&r.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},r.createElement(b.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&r.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),r.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&r.createElement("div",{className:"".concat(N.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)&&r.createElement(p.w,{src:C.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:y.h2.Medium})})),r.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(N.heading," ").concat(k(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,j&&r.createElement(j,null)))),!!g&&r.createElement("div",{className:N.actionsContainer},r.createElement(c.e,{actions:g,sortComponent:x,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&r.createElement("div",{className:N.logoContainer},r.createElement("img",{src:C.j.createUrl(e.logo.url,{size:y.h2.Small}),className:"rounded-circle"})))),null==I?void 0:I.container)}),(function(e,t){var n,r;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(r=t.logo)||void 0===r?void 0:r.url)}));function w(){var e=r.useContext(h.n);return o.b.renderInPortalIfExists(r.createElement("div",{className:"partial-banner partial-loading-background ".concat(N.banner)}),null==e?void 0:e.container)}},49935:(e,t,n)=>{n.d(t,{Oo:()=>p,b2:()=>b});var r=n(32735),a=n(23481),o=n(36848),i=n(86764),l=n(3747),c=n(5859),s=n(35223),u=n(83914);function d(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 r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(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 m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var f=a.T.encloseNamespace("shared.breadcrumbComponent"),v=r.forwardRef((function(e,t){var n=e.breadcrumb,a=n.name,i=n.appLink,l=n.active,c=e.withBackIcon;return r.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?r.createElement("strong",null,a):r.createElement(o.F,{appLink:i,ref:t},c&&r.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),r.createElement("span",{className:c?"ms-2":""},a)))})),p=function(e){var t=e.breadcrumbs,n=(0,l.a)(i.r.XS),a=(null==t?void 0:t.length)||0,o=d(r.useState(!1),2),c=o[0],s=o[1],u=d(r.useState(!1),2),m=u[0],p=u[1],b=r.useRef();if(r.useEffect((function(){var e,n=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>3&&n>56&&s(!0)}),[null==t?void 0:t.length]),r.useLayoutEffect((function(){var e;m&&(null===(e=b.current)||void 0===e||e.focus())}),[b.current,m]),!a||n&&a<2)return r.createElement(r.Fragment,null);if(n)return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(v,{breadcrumb:t[a-2],withBackIcon:!0})));var g=r.createElement(v,{breadcrumb:t[0]}),h=a>2?r.createElement(v,{breadcrumb:t[a-2]}):r.createElement(r.Fragment,null),y=r.createElement(v,{breadcrumb:t[a-1]}),E=t.slice(1,a-2);return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},g,c?r.createElement("li",{className:"breadcrumb-item"},r.createElement("button",{className:"btn-link",onClick:function(){s(!1),p(!0)},"aria-label":f("expand")},"...")):E.map((function(e,t){return r.createElement(v,{key:t,breadcrumb:e,ref:0===t?b:null})})),h,y))},b=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,l.a)(i.r.XS)?r.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},71020:(e,t,n)=>{n.d(t,{_:()=>u});var r=n(32735),a=n(80247),o=n(34152),i=n(83914),l=n(35223);const c={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e){var t,n,u=(t=(0,o.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return s(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)?s(e,t):void 0}}(t,n)||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.")}()),d=u[0],m=u[1];return r.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),r.createElement("div",{className:"p-3 text-center ".concat(c.container),ref:d},e.isFetching?r.createElement(a.Z,{as:"span",animation:"border",role:"status",className:c.spinner}):r.createElement(i.x,{svgName:l.vn.ChevronDown,className:"svg-container cursor-pointer",size:i.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},74696:(e,t,n)=>{n.d(t,{S:()=>s});var r=n(32735),a=n(68050),o=n(69111),i=n(9977),l=n(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return r.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return r.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&r.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),r.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,l.k)(),n="sm"===i.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return r.createElement(a.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},r.createElement(o.Z,Object.assign({},i.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),r.createElement(a.Z,null,!!s&&r.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),r.createElement(o.Z,{xs:i.O.getThumbnailColSize(s)},r.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),r.createElement(o.Z,Object.assign({},i.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),r.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),r.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),o=n(67058),i=n(14553),l=n(49267),c=n(49075),s={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:l.a,privacy:i.q},badRequest:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},s),t);o&&a.Q.Ry.isStatusCodeError(o)&&(o!==r.o.NotFound?o!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new i.badRequest):n.forbidden||a.Q.Ry.throw(new i.forbidden.privacy):n.notFound||a.Q.Ry.throw(new i.notFound))}}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var r=n(32735),a=n(50242),o=n(91967),i=400,l=n(45719);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t,n,s,u,d){var m,f,v,p,b=(m=(0,r.useState)(0),f=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(m,f)||function(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}(m,f)||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.")}()),g=b[0],h=b[1],y=t,E=(0,l.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),s,u);return v={fetchNextPage:function(){if(t&&e&&E)return h((function(e){return e+1})),y(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},p=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-i)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-i)return;v.fetchNextPage()}},(0,r.useEffect)((function(){var e=o.q.throttle(p,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,r.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(y(),h((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,r.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&o.q.isFunction(n)){var r=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));r!==a.k.ClientError&&r!==a.k.ServerError||n(g,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},63719:(e,t,n)=>{n.d(t,{h:()=>l});var r=n(32735),a=n(77316);function o(e,t){if(e){if("string"==typeof e)return i(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)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e){var t,n,l=(t=r.useMemo((function(){return a.p.getBuilder()}),[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||o(t,n)||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.")}()),c=l[0],s=(0,l[1])(c);return s&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(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.")}()}(s),[Object.assign(Object.assign({},e),{active:!0})]):s}},5859:(e,t,n)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{u:()=>o});var a={numItems:5,minWidth:50,maxWidth:100},o={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},a),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return r(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 r(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)?r(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.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},44110:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(20354),a=n(89454),o=n(86698),i=function(){var e=(0,o.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,i=t||n();return r.a.useBasicFetch(!!i&&a.O.presentationAudiences(i.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var r=n(32735),a=n(20354),o=n(21750),i=n(31949),l=n(1575),c=n(31908);function s(e,t){if(e){if("string"==typeof e)return u(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)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=a.a.useBasicFetch(i.N.currentUser()),f=r.useRef(new Set),v=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),p=v.map((function(e){return e.id})),b=(t=r.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||s(t,n)||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.")}()),g=b[0],h=b[1];r.useEffect((function(){if((null==p?void 0:p.length)&&m.hasCompleted){var e=[];p.forEach((function(t){f.current.has(t)||(e.push(t),f.current.add(t))})),e.length&&h((function(t){var n,r=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(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.")}()}(t),[l.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=m.data)||void 0===n?void 0:n.isAuthenticated)&&r.push(o.x.hasCurriculumLinks(e,null,d.flightNamespace)),r}))}}),[null==p?void 0:p.length,m.hasCompleted]),a.a.useBasicFetchAll(g)}},19530:(e,t,n)=>{n.r(t),n.d(t,{FavouritesView:()=>Q});var r=n(32735),a=n(70680),o=n(23481),i=n(20354),l=n(65858),c=n(44522),s=n(49935),u=n(71020),d=n(83345),m=n(74696),f=n(13231),v=n(51365),p=n(16714),b=n(94644),g=n(39151),h=n(1666),y=n(63419),E=n(31949),C=n(69883),N=n(63719),S=n(60115),k=n(22902),x=n(79612),w=n(99742),A=n(51855),I=n(27638),L=n(44110),O=n(97816),F=n(10741),T=n(22490),P=n(82431),j=n(23232),D=n(83914),M=n(35223),B=n(14070),R=n(97291),V="shared.favouritesEmptyState",_=o.T.encloseNamespace(V);function U(){return r.createElement(d.D.Provider,{value:V},r.createElement(j.u,null,r.createElement(j.u.Image,{src:w.W.EmptyStates.FAVOURITED_VIDEOS,altText:_("info")}),r.createElement("div",{className:"d-flex mb-2"},r.createElement(j.u.Heading,{className:"h3 mb-0"},r.createElement(d.x,{phrase:"emptyStateHeading1"})),r.createElement("div",{className:"box-shadow rounded-circle p-1 bg-white mx-1"},r.createElement(D.x,{svgName:M.vn.HeartOutline,size:D.S.Small})),r.createElement(j.u.Heading,{className:"h3 mb-0"},r.createElement(d.x,{phrase:"emptyStateHeading2"}))),r.createElement(j.u.Info,null,r.createElement(d.x,{phrase:"info"})),r.createElement(j.u.Cta,{text:o.T.getPhrase(V,"cta"),appLink:{application:R.O.DASHBOARD,action:B.e.Dashboard.HOME}})))}function H(){return r.createElement(d.D.Provider,{value:V},r.createElement(j.u,null,r.createElement(j.u.Image,{src:w.W.EmptyStates.FAVOURITED_VIDEOS_PUBLIC,altText:_("publicInfo")}),r.createElement(j.u.Heading,null,r.createElement(d.x,{phrase:"publicHeading"})),r.createElement(j.u.Info,null,r.createElement(d.x,{phrase:"publicInfo"})),r.createElement(j.u.Cta,{text:o.T.getPhrase(V,"publicCta"),appLink:{application:R.O.SIGN_UP,action:B.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:l.Vw.Click,location:l.LZ.MyFavouritesLanding,entity:l.py.AppLink,workflowPhase:l.eu.Start,descriptor:l.Yu.SignUp}})))}var W=n(26323),G=n(31908),Z=n(10671),q="shared.favourites";const $={banner:"FEWd3"};var z="shared.favourites";function Q(){var e,t,n,j=(0,a.I0)(),D=(0,C.Z)(),B=(0,I.u)(l.LZ.VideoThumbnail),R=B.setFavourite,V=B.canFavourite,_=(0,A.G)().isPlugin,Q=function(){var e=(0,Z._)({location:Z.i.VideoItem}),t=(0,I.u)(l.LZ.VideoThumbnail).setFavourite;return Object.assign(Object.assign({},e),{getVideoActions:function(n){return G.M.getCanBeConsumed(n).canConsume?e.getVideoActions(n):[{label:o.T.getPhrase(q,"removeFromFavourites"),svgName:M.vn.Delete,button:!1,className:"btn btn-link text-danger",onClick:function(){return t(n,!1)}}]}})}();(0,x.M)({title:o.T.getPhrase(z,"pageTitle")});var Y=(0,k.T)(),X=Y.hasLocalPermissions,J=Y.hasPermissions,K=i.a.useBasicFetch(E.N.currentUser()),ee=i.a.useBasicFetch((null===(e=K.data)||void 0===e?void 0:e.isAuthenticated)&&h.h.yearGroups(K.data.customerId)),te=i.a.useBasicFetch(g.L.config()),ne=function(e){return y.P.getFavourites(K.data.id,e)},re=function(e){return i.a.getFetch(j)(ne(e))},ae=!X(p.E.ViewMyFavouritesLanding)&&K.hasCompleted,oe=(0,S.K)(!!ae&&ne,re,(function(e,t){if(1===e)return(0,b.r)(t);D.error(o.T.getPhrase(z,"error"))})),ie=oe.items,le=oe.hasMore,ce=oe.isFetching;(0,O.V)(ie);var se=(0,L.i)(),ue=(0,N.h)({name:o.T.getPhrase(z,"header")}),de=(0,W.B)(null===(t=K.data)||void 0===t?void 0:t.id),me=de.count;return de.isLoading?r.createElement(r.Fragment,null):X(p.E.ViewMyFavouritesLanding)?r.createElement(H,null):r.createElement(v.M.Provider,{value:Q},r.createElement("div",{className:"p-3"},r.createElement(c.p,{heading:o.T.getPhrase(z,"header"),banner:{url:w.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER},bannerClassName:"".concat($.banner," bg-pink"),imageCdnUrl:null===(n=te.data)||void 0===n?void 0:n.imageCdnUrl,detailsComponent:function(){return r.createElement("div",{className:"mb-n1 font-size-normal fw-normal mt-1"},r.createElement(d.x,{namespace:z,phrase:"videos",options:{smartCount:me}}))}}),(null==ue?void 0:ue.length)&&r.createElement("div",{className:"border-bottom pb-3"},r.createElement(s.Oo,{breadcrumbs:ue})),ie?ie.length?r.createElement(r.Fragment,null,r.createElement(f.E4,{videos:ie,yearGroups:ee.data,getVideoAppLink:T.W.getAppLink,hasPermissions:J,getSubTextAppLink:function(e){return P.j.getSeriesAppLink(e.series)},setFavourite:R,canFavourite:V,presentationAudiences:se.data,getPreviewQuestionsAppLink:function(e){return F.j.getPreviewQuestionsAppLink(e)},isPlugin:_,getClassroomGuideAppLink:T.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:T.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:T.W.getResourceGuidanceAppLink}),(le||ce)&&r.createElement(u._,{isFetching:ce,fetchNext:re})):r.createElement(U,null):r.createElement(m.S,null)))}},26323:(e,t,n)=>{n.d(t,{B:()=>l});var r=n(20354),a=n(63419);function o(e){return function(e){if(Array.isArray(e))return i(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 i(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)?i(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 i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e){var t,n,i,l,c,s,u,d,m,f=r.a.useBasicFetch(e&&a.P.getFavouritesVideosCount(e)),v=r.a.useBasicFetch(e&&a.P.getFavouritesClipsCount(e)),p=r.a.useBasicFetch(e&&a.P.getFavouritesInteractivesCount(e));return{count:(null===(t=f.data)||void 0===t?void 0:t.count)+(null===(n=p.data)||void 0===n?void 0:n.count)+(null===(i=v.data)||void 0===i?void 0:i.count),favourites:[].concat(o((null===(l=f.data)||void 0===l?void 0:l.data)||[]),o((null===(c=v.data)||void 0===c?void 0:c.data)||[]),o((null===(s=p.data)||void 0===s?void 0:s.data)||[])),isLoading:!(null===(u=f.data)||void 0===u?void 0:u.data)||!(null===(d=v.data)||void 0===d?void 0:d.data)||!(null===(m=p.data)||void 0===m?void 0:m.data)}}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var r=n(95685),a=n.n(r),o=n(32735),i=n(46304),l=n(74512);const c=o.forwardRef((({bsPrefix:e,className:t,as:n="div",...r},o)=>{const c=(0,i.vE)(e,"row"),s=(0,i.pi)(),u=(0,i.zG)(),d=`${c}-cols`,m=[];return s.forEach((e=>{const t=r[e];let n;delete r[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const a=e!==u?`-${e}`:"";null!=n&&m.push(`${d}${a}-${n}`)})),(0,l.jsx)(n,{ref:o,...r,className:a()(t,c,...m)})}));c.displayName="Row";const s=c}}]);
2
+ //# sourceMappingURL=3633-f3609526a5-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3633-f3609526a5-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/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/infinite-scroll-footer/infinite-scroll-footer.scss","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/projects/lite/src/shared/views/favourites/empty-state/FavouritesEmptyState.tsx","file:///app/packages/projects/lite/src/shared/views/favourites/FavouritesViewUtils.ts","file:///app/packages/projects/lite/src/shared/views/favourites/favourites-view.scss","file:///app/packages/projects/lite/src/shared/views/favourites/FavouritesView.tsx","file:///app/packages/projects/lite/src/shared/views/favourites/hooks/useFavouritesCount.ts","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 { 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 { LanguageService } from 'libs/common/backbone/services/LanguageService';\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\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\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 = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\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 || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\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 const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\n }\n {secondLast}\n {last}\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 {\"container\":\"VwD1b\",\"spinner\":\"eJ85e\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './infinite-scroll-footer.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`} ref={ref}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <SvgContainer\n svgName={cvSvgLibrary.ChevronDown}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n )\n }\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\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 { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.favouritesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function FavouritesEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FAVOURITED_VIDEOS} altText={getPhrase('info')} />\n\n <div className='d-flex mb-2'>\n <EmptyState.Heading className='h3 mb-0'>\n <Text phrase='emptyStateHeading1' />\n </EmptyState.Heading>\n \n <div className='box-shadow rounded-circle p-1 bg-white mx-1'>\n <SvgContainer\n svgName={cvSvgLibrary.HeartOutline}\n size={SvgContainerSize.Small}\n />\n </div>\n\n <EmptyState.Heading className='h3 mb-0'>\n <Text phrase='emptyStateHeading2' />\n </EmptyState.Heading>\n </div>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n\nexport function FavouritesPublicEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FAVOURITED_VIDEOS_PUBLIC} altText={getPhrase('publicInfo')} />\n <EmptyState.Heading><Text phrase='publicHeading' /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='publicInfo' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'publicCta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MyFavouritesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\n\nconst namespace = 'shared.favourites';\n\nexport function useFavouritesVideoActions() {\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { setFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n\n const getVideoActions = (video: VideoTypes) => {\n const { canConsume } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume) {\n return [{\n label: LanguageService.getPhrase(namespace, 'removeFromFavourites'),\n svgName: cvSvgLibrary.Delete,\n button: false,\n className: 'btn btn-link text-danger',\n onClick: () => setFavourite(video, false)\n }];\n }\n\n return videoActions.getVideoActions(video);\n };\n\n return {\n ...videoActions,\n getVideoActions\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"banner\":\"FEWd3\"};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { BannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName } from 'libs/shared/enums/PermissionName';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { FavouriteRequests } from 'libs/shared/flight-requests/FavouriteRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { FavouritesEmptyState, FavouritesPublicEmptyState } from './empty-state/FavouritesEmptyState';\nimport { useFavouritesCount } from './hooks/useFavouritesCount';\nimport { useFavouritesVideoActions } from './FavouritesViewUtils';\n\nimport styles from './favourites-view.scss';\n\nconst namespace = 'shared.favourites';\n\nexport function FavouritesView(): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { isPlugin } = usePluginHelper();\n const videoActions = useFavouritesVideoActions();\n\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n const { hasLocalPermissions, hasPermissions } = usePermissions();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const getRequest = (cursor?: string) => {\n return FavouriteRequests.getFavourites(currentUser.data.id, cursor);\n };\n\n const fetchNext = (cursor?: string) => {\n return Flight.getFetch(dispatch)(getRequest(cursor));\n };\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMyFavouritesLanding) && currentUser.hasCompleted;\n\n const {\n items,\n hasMore,\n isFetching\n } = useInfiniteList<VideoTypes>(shouldFetch ? getRequest : false, fetchNext, onError);\n\n useVideoMixin(items);\n \n const audiences = usePresentationAudiences();\n\n const breadcrumbs = useBreadcrumbs({ name: LanguageService.getPhrase(namespace, 'header') });\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n const { count, isLoading } = useFavouritesCount(currentUser.data?.id);\n if (isLoading)\n return <></>;\n\n if (hasLocalPermissions(LocalPermissionName.ViewMyFavouritesLanding))\n return <FavouritesPublicEmptyState />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='p-3'>\n <BannerHeader\n heading={LanguageService.getPhrase(namespace, 'header')}\n banner={{ url: ImageUrls.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER }}\n bannerClassName={`${styles.banner} bg-pink`}\n imageCdnUrl={config.data?.imageCdnUrl}\n detailsComponent={() => (\n <div className='mb-n1 font-size-normal fw-normal mt-1'>\n <Text namespace={namespace} phrase='videos' options={{ smartCount: count }} />\n </div>\n )}\n />\n {breadcrumbs?.length &&\n <div className='border-bottom pb-3'>\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n </div>\n }\n \n {(() => {\n if (!items)\n return <PartialVideoList />;\n\n if (!items.length)\n return <FavouritesEmptyState />;\n\n return (\n <>\n <VideoList\n videos={items}\n yearGroups={yearGroups.data}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {(hasMore || isFetching) && <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} />}\n </>\n );\n })()}\n </div>\n </VideoActionsContext.Provider>\n );\n}","\nimport { Flight } from 'libs/common/flight';\n\nimport { FavouriteRequests } from 'libs/shared/flight-requests/FavouriteRequests';\nimport { FavouritesCountResponse } from 'libs/shared/interfaces';\n\nexport function useFavouritesCount(userId?: string) {\n// todo there is a beckend bug that we cannot group fetch these three number\n const favouriteVideosCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesVideosCount(userId));\n const favouriteClipsCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesClipsCount(userId));\n const favouriteInteractivesCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesInteractivesCount(userId));\n \n const totalCount = favouriteVideosCount.data?.count\n + favouriteInteractivesCount.data?.count\n + favouriteClipsCount.data?.count;\n\n const favourites = [\n ...(favouriteVideosCount.data?.data || []),\n ...(favouriteClipsCount.data?.data || []),\n ...(favouriteInteractivesCount.data?.data || [])\n ];\n\n return {\n count: totalCount,\n favourites,\n isLoading: !favouriteVideosCount.data?.data\n || !favouriteClipsCount.data?.data\n || !favouriteInteractivesCount.data?.data\n };\n}","\"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","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","size","S","defaultProps","RATIO","width","height","getSizeClass","heading","length","BannerHeader","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","style","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","calendarTheme","Text","phrase","LazyImage","src","Actions","actionsDropdownClassName","container","prevProps","nextProps","PartialBannerHeader","getPhrase","BreadcrumbItem","ref","breadcrumb","name","active","withBackIcon","Breadcrumbs","breadcrumbs","isMobile","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","dangerouslySetInnerHTML","__html","InfiniteScrollFooter","inView","fetchOnScroll","isFetching","fetchNext","nextCursor","Spinner","as","animation","role","PartialVideoList","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","SCROLL_TOLERANCE","useInfiniteList","getRequest","onError","getItems","getCursor","scrollContainer","options","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","fetchNextPage","currentVal","hasMore","getBoundingClientRect","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","httpStatusClass","toString","substr","HttpStatus","items","totalItems","hasFirstPageCompleted","useBreadcrumbs","match","useBuilder","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Math","max","floor","random","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","useVideoMixin","objects","currentUser","hydratedVideos","Set","videos","isArray","filter","o","data","getValidObjects","videoIds","v","setRequest","hasCompleted","unhydratedVideos","forEach","has","push","add","r","newRequests","flightNamespace","isAuthenticated","FavouritesEmptyState","value","EmptyState","ImageUrls","altText","application","action","FavouritesPublicEmptyState","actionType","location","entity","workflowPhase","descriptor","SignUp","FavouritesView","dispatch","alerts","useLiteFavourites","u","setFavourite","canFavourite","isPlugin","usePluginHelper","videoActions","useVideoActions","getVideoActions","video","VideoHelper","canConsume","button","useFavouritesVideoActions","useSetPageMetadata","usePermissions","hasLocalPermissions","hasPermissions","UserRequests","yearGroups","CustomerRequests","customerId","config","ConfigRequests","FavouriteRequests","shouldFetch","pageNumber","httpStatus","error","audiences","useFavouritesCount","count","isLoading","VideoActionsContext","smartCount","VideoList","getVideoAppLink","VideoAppLinkHelper","getSubTextAppLink","SeriesAppLinkHelper","series","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","userId","favouriteVideosCount","favouriteClipsCount","favouriteInteractivesCount","favourites","bsPrefix","Component","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","displayName"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3728],{49935:(e,t,a)=>{a.d(t,{Oo:()=>p,b2:()=>b});var n=a(32735),r=a(23481),c=a(36848),i=a(86764),l=a(3747),o=a(5859),u=a(35223),s=a(83914);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,c,i,l=[],o=!0,u=!1;try{if(c=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=c.call(a)).done)&&(l.push(n.value),l.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(u)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?m(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 m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var f=r.T.encloseNamespace("shared.breadcrumbComponent"),v=n.forwardRef((function(e,t){var a=e.breadcrumb,r=a.name,i=a.appLink,l=a.active,o=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?n.createElement("strong",null,r):n.createElement(c.F,{appLink:i,ref:t},o&&n.createElement(s.x,{svgName:u.vn.ChevronLeft,size:s.S.Small}),n.createElement("span",{className:o?"ms-2":""},r)))})),p=function(e){var t=e.breadcrumbs,a=(0,l.a)(i.r.XS),r=(null==t?void 0:t.length)||0,c=d(n.useState(!1),2),o=c[0],u=c[1],s=d(n.useState(!1),2),m=s[0],p=s[1],b=n.useRef();if(n.useEffect((function(){var e,a=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;r>3&&a>56&&u(!0)}),[null==t?void 0:t.length]),n.useLayoutEffect((function(){var e;m&&(null===(e=b.current)||void 0===e||e.focus())}),[b.current,m]),!r||a&&r<2)return n.createElement(n.Fragment,null);if(a)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(v,{breadcrumb:t[r-2],withBackIcon:!0})));var h=n.createElement(v,{breadcrumb:t[0]}),y=r>2?n.createElement(v,{breadcrumb:t[r-2]}):n.createElement(n.Fragment,null),g=n.createElement(v,{breadcrumb:t[r-1]}),E=t.slice(1,r-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},h,o?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){u(!1),p(!0)},"aria-label":f("expand")},"...")):E.map((function(e,t){return n.createElement(v,{key:t,breadcrumb:e,ref:0===t?b:null})})),y,g))},b=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,l.a)(i.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},5859:(e,t,a)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,{u:()=>c});var r={numItems:5,minWidth:50,maxWidth:100},c={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(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 n(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(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.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},20342:(e,t,a)=>{a.d(t,{W:()=>k});var n=a(32735),r=a(82602),c=a(23481),i=a(36848),l=a(83345),o=a(76177),u=a(99742),s=a(14070),d=a(97291),m=a(19577);const f={status:"NXBdA"};function v(e){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function p(e,t,a){return(t=function(e){var t=function(e,t){if("object"!=v(e)||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var n=a.call(e,"string");if("object"!=v(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==v(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var b="0001-01-01T00:00:00Z",h="settings.localCacheItem",y=c.T.encloseNamespace(h),g=p(p(p({},m._.Inactive,"offline"),m._.Active,"online"),m._.Updating,"updating");function E(e,t){return t===m._.Active?y("justNow"):e&&e!==b?(0,r.WU)(e):y("never")}function k(e){var t=e.localCache,a=e.canManage,r=e.minimal,c=t.status,v=t.deviceName,p=t.deviceId,b=t.lastSeen,k=c===m._.Inactive?u.W.LocalCache.OFFLINE:u.W.LocalCache.ONLINE,w=c===m._.Active?"bg-green":"bg-gray";return n.createElement("div",{className:"border rounded text-center ".concat(r?"py-3":"")},!r&&n.createElement("div",{className:"my-2 overflow-hidden"},n.createElement("h2",{className:"h6 text-truncate"},v)),n.createElement("img",{src:k,className:"img-fluid"}),n.createElement("div",{className:"pt-2 align-middle"},n.createElement("span",{className:"".concat(f.status," ").concat(w," d-inline-block rounded-circle align-middle me-1")}),n.createElement("span",{className:"align-middle"},n.createElement(o.u,{spanHack:!0,title:y("lastSeen",{time:E(b,c)}),spanHackClassName:""},n.createElement(l.x,{namespace:h,phrase:g[c]})))),!r&&(a?n.createElement(i.F,{appLink:{application:d.O.SETTINGS,action:s.e.Settings.LOCAL_CACHE,args:[p]},className:"btn btn-link text-info mb-1"},n.createElement(l.x,{namespace:h,phrase:"canManage"})):n.createElement("div",{className:"btn text-secondary text-secondary mb-1"},n.createElement(l.x,{namespace:h,phrase:"cantManage"}))))}},19577:(e,t,a)=>{var n;a.d(t,{_:()=>n}),function(e){e[e.Inactive=0]="Inactive",e[e.Active=1]="Active",e[e.Updating=2]="Updating"}(n||(n={}))},17923:(e,t,a)=>{a.d(t,{q:()=>l});var n=a(99940),r=a(97395),c=a(71995),i={namespace:"localcache",idAttribute:"deviceId"},l={devices:function(){return{url:"/api/localcache/v1/customers/devices",key:"localcache:devices",normalizeOptions:i}},device:function(e){return{url:"/api/localcache/v1/devices/".concat(e),key:"localcache:devices:".concat(e),normalizeOptions:i}},updateDevice:function(e,t,a,r,c){return{url:"/api/localcache/v1/devices/".concat(e),key:"localcache:devices:update",type:n.k.PUT,data:t,normalizeOptions:i,success:a,error:r,always:c}},deleteDevice:function(e,t,a,r){return{url:"/api/localcache/v1/devices/".concat(e),key:"localcache:devices:delete",type:n.k.DELETE,normalizeOptions:i,success:t,error:a,always:r}},updates:function(e){return{url:"/api/localcache/v1/devices/".concat(e,"/update"),key:"localcache:devices:".concat(e,":updates"),normalize:!1}},deviceUpdate:function(e){return{url:"/api/localcache/v1/devices/".concat(e,"/deviceupdate"),key:"localcache:devices:".concat(e,":deviceupdate"),normalize:!1}},update:function(e,t){return{url:"/api/localcache/v1/devices/".concat(e,"/update"),key:"localcache:update",type:n.k.POST,data:{versionString:t},normalize:!1,invalidationKeys:["localcache"]}},stats:function(e){var t={bytesDownloaded:"httpprovider.bytes_downloaded",bytesRead:"store.bytes_read",storageFree:"store.storage_free",storageUsed:"store.storage_used",count:"store.objects"},a={key:Object.values(t)};return{url:r._.urlBuilder("/api/localcache/v1/devices/".concat(e,"/stats/latest"),a),key:"localcache:devices:".concat(e,":stats"),normalize:!1,formatData:function(e){if(!e)return{};var a=e.reduce((function(e,t){return e[t.key]=t.value,e}),{});return Object.keys(t).reduce((function(e,n){return e[n]=a[t[n]],e}),{})}}},channels:function(e){return{url:"/api/localcache/v1/devices/".concat(e,"/channels"),key:"localcache:devices:".concat(e,":channels"),normalize:!1}},config:function(e){return{url:"/api/localcache/v1/configs/devices/".concat(e),key:"localcache:devices:".concat(e,":config"),normalize:!1,formatData:function(e){return null==e?void 0:e.configuration}}},updateConfig:function(e,t,a,r){var c={downloadQuality:t.downloadQuality,autoUpdate:t.autoUpdate,downloadTime:{start:t.downloadStartTime,end:t.downloadEndTime}};return{url:"/api/localcache/v1/configs/devices/".concat(e),key:"localcache:update:config",type:n.k.PUT,data:c,invalidationKeys:["localcache:devices:".concat(e,":config")],normalize:!1,success:a,error:r}},address:function(e){return{url:"/api/localcache/v1/devices/".concat(e,"/address"),key:"localcache:devices:".concat(e,":address"),normalize:!1}},ping:function(e,t){return{url:"".concat(t,"/ping"),key:"localcache:devices:".concat(e,":ping"),normalize:!1,cacheDuration:c.f.SHORT}}}},82602:(e,t,a)=>{a.d(t,{WU:()=>u});var n=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],c={},i=function(e,t){c[e]=t},l=[60,60,24,7,365/7/12,12];function o(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var u=function(e,t,a){var n=function(e,t){return(+(t?o(t):new Date)-+o(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=l[r]&&r<l.length;r++)e/=l[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}(n,function(e){return c[e]||c.en_US}(t))};i("en_US",(function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),i("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var a=r[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]}))}}]);
2
+ //# sourceMappingURL=3728-eed9e78985-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3728-eed9e78985-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/local-cache-item/local-cache-item.scss","file:///app/packages/projects/lite/src/apps/settings/components/local-cache-item/LocalCacheItem.tsx","file:///app/packages/projects/lite/src/apps/settings/enums/LocalCacheDeviceStatus.ts","file:///app/packages/projects/lite/src/apps/settings/flight-requests/LocalCacheRequests.ts","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["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 { 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\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\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 = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\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 || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\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 const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\n }\n {secondLast}\n {last}\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});","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"NXBdA\"};","import React from 'react';\nimport { format } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { LocalCacheDeviceStatus } from 'apps/settings/enums/LocalCacheDeviceStatus';\nimport { LocalCacheDevice } from 'apps/settings/interfaces/local-cache/LocalCacheDevice';\n\nimport styles from './local-cache-item.scss';\n\nconst DATETIME_DEFAULT = '0001-01-01T00:00:00Z';\n\nconst namespace = 'settings.localCacheItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst STATUS_PHRASES = {\n [LocalCacheDeviceStatus.Inactive]: 'offline',\n [LocalCacheDeviceStatus.Active]: 'online',\n [LocalCacheDeviceStatus.Updating]: 'updating'\n};\n\nfunction getLastSeen(lastSeen: string, status: LocalCacheDeviceStatus): string {\n if (status === LocalCacheDeviceStatus.Active)\n return getPhrase('justNow');\n\n if (!lastSeen || lastSeen === DATETIME_DEFAULT)\n return getPhrase('never');\n\n return format(lastSeen);\n}\n\ninterface LocalCacheItemProps {\n localCache: LocalCacheDevice;\n canManage: boolean;\n minimal?: boolean;\n}\n\nexport function LocalCacheItem(props: LocalCacheItemProps): React.ReactElement {\n const { localCache, canManage, minimal } = props;\n const { status, deviceName, deviceId, lastSeen } = localCache;\n\n const imageUrl = status === LocalCacheDeviceStatus.Inactive ?\n ImageUrls.LocalCache.OFFLINE :\n ImageUrls.LocalCache.ONLINE;\n\n const statusColour = status === LocalCacheDeviceStatus.Active ? 'bg-green' : 'bg-gray';\n\n return (\n <div className={`border rounded text-center ${minimal ? 'py-3' : ''}`}>\n {!minimal &&\n <div className='my-2 overflow-hidden'>\n <h2 className='h6 text-truncate'>{deviceName}</h2>\n </div>\n }\n <img src={imageUrl} className='img-fluid' />\n <div className='pt-2 align-middle'>\n <span className={`${styles.status} ${statusColour} d-inline-block rounded-circle align-middle me-1`} />\n <span className='align-middle'>\n <Tooltip\n spanHack\n title={getPhrase('lastSeen', { time: getLastSeen(lastSeen, status) })}\n spanHackClassName=''\n >\n <Text namespace={namespace} phrase={STATUS_PHRASES[status]}/>\n </Tooltip>\n </span>\n </div>\n {!minimal && (\n canManage ?\n <AppLink\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.LOCAL_CACHE,\n args: [deviceId]\n }}\n className='btn btn-link text-info mb-1'>\n <Text namespace={namespace} phrase='canManage' />\n </AppLink> :\n <div className='btn text-secondary text-secondary mb-1'>\n <Text namespace={namespace} phrase='cantManage' />\n </div>\n )}\n </div>\n );\n}","export enum LocalCacheDeviceStatus {\n Inactive = 0,\n Active = 1,\n Updating = 2\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { CacheDurations } from 'libs/shared/constants/CacheDurations';\n\nimport { LocalCacheConfig } from '../interfaces/local-cache/LocalCacheConfig';\nimport { LocalCacheDevice } from '../interfaces/local-cache/LocalCacheDevice';\n\nconst NORMALIZE_OPTIONS = {\n namespace: 'localcache',\n idAttribute: 'deviceId'\n};\n\nexport const LocalCacheRequests = {\n devices(): Flight.Request {\n return {\n url: '/api/localcache/v1/customers/devices',\n key: 'localcache:devices',\n normalizeOptions: NORMALIZE_OPTIONS\n };\n },\n device(deviceId: string): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}`,\n key: `localcache:devices:${deviceId}`,\n normalizeOptions: NORMALIZE_OPTIONS\n };\n },\n updateDevice(\n deviceId: string,\n data: LocalCacheDevice,\n success?: (device: LocalCacheDevice) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}`,\n key: 'localcache:devices:update',\n type: HttpVerbs.PUT,\n data,\n normalizeOptions: NORMALIZE_OPTIONS,\n success,\n error,\n always\n };\n },\n deleteDevice(\n deviceId: string,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}`,\n key: 'localcache:devices:delete',\n type: HttpVerbs.DELETE,\n normalizeOptions: NORMALIZE_OPTIONS,\n success,\n error,\n always\n };\n },\n updates(deviceId: string): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}/update`,\n key: `localcache:devices:${deviceId}:updates`,\n normalize: false\n };\n },\n deviceUpdate(deviceId: string): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}/deviceupdate`,\n key: `localcache:devices:${deviceId}:deviceupdate`,\n normalize: false\n };\n },\n update(deviceId: string, version: string): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}/update`,\n key: `localcache:update`,\n type: HttpVerbs.POST,\n data: {\n versionString: version\n },\n normalize: false,\n invalidationKeys: ['localcache']\n };\n },\n stats(deviceId: string): Flight.Request {\n const statMapping = {\n bytesDownloaded: 'httpprovider.bytes_downloaded',\n bytesRead: 'store.bytes_read',\n storageFree: 'store.storage_free',\n storageUsed: 'store.storage_used',\n count: 'store.objects'\n };\n\n const params = { key: Object.values(statMapping) };\n\n return {\n url: UrlHelper.urlBuilder(`/api/localcache/v1/devices/${deviceId}/stats/latest`, params),\n key: `localcache:devices:${deviceId}:stats`,\n normalize: false,\n formatData: (stats: any[]) => {\n if (!stats)\n return {};\n\n const mapped = stats.reduce((prev: HashObject, stat: any) => {\n prev[stat.key] = stat.value;\n return prev;\n }, {});\n\n return Object.keys(statMapping).reduce((prev: HashObject, key: keyof typeof statMapping) => {\n prev[key] = mapped[statMapping[key]];\n return prev;\n }, {});\n }\n };\n },\n channels(deviceId: string): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}/channels`,\n key: `localcache:devices:${deviceId}:channels`,\n normalize: false\n };\n },\n config(deviceId: string): Flight.Request {\n return {\n url: `/api/localcache/v1/configs/devices/${deviceId}`,\n key: `localcache:devices:${deviceId}:config`,\n normalize: false,\n formatData: (data: any) => {\n return data?.configuration;\n }\n };\n },\n updateConfig(\n deviceId: string,\n config: LocalCacheConfig,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n const data = {\n downloadQuality: config.downloadQuality,\n autoUpdate: config.autoUpdate,\n downloadTime: {\n start: config.downloadStartTime,\n end: config.downloadEndTime\n }\n };\n\n return {\n url: `/api/localcache/v1/configs/devices/${deviceId}`,\n key: 'localcache:update:config',\n type: HttpVerbs.PUT,\n data,\n invalidationKeys: [`localcache:devices:${deviceId}:config`],\n normalize: false,\n success,\n error\n };\n },\n address(deviceId: string): Flight.Request {\n return {\n url: `/api/localcache/v1/devices/${deviceId}/address`,\n key: `localcache:devices:${deviceId}:address`,\n normalize: false\n };\n },\n ping(deviceId: string, httpsAddress: string): Flight.Request {\n return {\n url: `${httpsAddress}/ping`,\n key: `localcache:devices:${deviceId}:ping`,\n normalize: false,\n cacheDuration: CacheDurations.SHORT\n };\n }\n};","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["getPhrase","BreadcrumbItem","props","ref","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","DATETIME_DEFAULT","namespace","LanguageService","STATUS_PHRASES","LocalCacheDeviceStatus","getLastSeen","lastSeen","status","LocalCacheItem","localCache","canManage","minimal","deviceName","deviceId","imageUrl","ImageUrls","statusColour","src","Tooltip","spanHack","title","time","spanHackClassName","Text","phrase","AppLink","application","action","args","NORMALIZE_OPTIONS","idAttribute","LocalCacheRequests","devices","url","normalizeOptions","device","updateDevice","data","success","error","always","type","deleteDevice","updates","normalize","deviceUpdate","update","version","versionString","invalidationKeys","stats","statMapping","bytesDownloaded","bytesRead","storageFree","storageUsed","count","params","Object","values","formatData","mapped","stat","value","keys","channels","config","configuration","updateConfig","downloadQuality","autoUpdate","downloadTime","start","downloadStartTime","end","downloadEndTime","address","ping","httpsAddress","cacheDuration","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","date","sec","relativeDate","diff","localeFunc","agoIn","totalSec","abs","toString","unit"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4063],{60696:(e,t,n)=>{n.r(t),n.d(t,{SeriesView:()=>le});var r=n(32735),i=n(70680),a=n(23481),o=n(20354),c=n(65858),s=n(44522),u=n(49935),l=n(11607),d=n(83345),p=n(10038);const f={text:"wLJpg",seeMore:"x5t0p"};function v(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 r,i,a,o,c=[],s=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){u=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(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 m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var h="shared.expandableText";function b(e){var t,n,i=e.text,a=e.lines,o=void 0===a?2:a,c=v(r.useState(!1),2),s=c[0],u=c[1],m=r.useRef(null),b=r.useRef(0);r.useEffect((function(){m.current.clientHeight&&(b.current=m.current.clientHeight)}),[]);var g=v(r.useState((null===(t=m.current)||void 0===t?void 0:t.scrollHeight)>b.current),2),y=g[0],E=g[1];return(0,p.H)((function(){var e;m.current.clientHeight&&(b.current=m.current.clientHeight,E((null===(e=m.current)||void 0===e?void 0:e.scrollHeight)>b.current))})),r.useEffect((function(){var e,t;(null===(e=m.current)||void 0===e?void 0:e.scrollHeight)&&E((null===(t=m.current)||void 0===t?void 0:t.scrollHeight)>b.current)}),[null===(n=m.current)||void 0===n?void 0:n.scrollHeight,b.current]),r.createElement("div",{className:"d-flex overflow-hidden"},r.createElement("div",{className:"".concat(s?"":"clamp-".concat(o)," ").concat(f.text),ref:m},!s&&y&&r.createElement(l.L,{onClick:function(){return u(!0)},className:"ms-1 info-text hover-text-underline ".concat(f.seeMore)},r.createElement(d.x,{namespace:h,phrase:"seeMore"})),r.createElement("p",{className:"mb-0 d-inline"},i),s&&r.createElement(l.L,{onClick:function(){return u(!1)},className:"ms-1 info-text hover-text-underline d-inline"},r.createElement(d.x,{namespace:h,phrase:"seeLess"}))))}var g=n(71020),y=n(74696),E=n(13231),S=n(79718),k=n(7733),w=n(51365),A=n(16714),L=n(23788),x=n(21750),O=n(39151),I=n(1666),P=n(60011),j=n(31949),C=n(63719),T=n(56520),N=n(91286),F=n(60115),H=n(22902),_=n(79612),G=n(76753),V=n(35223),R=n(68140),B=n(14070),M=n(97291),U=n(64364);function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}function J(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,W(r.key),r)}}function W(e){var t=function(e,t){if("object"!=D(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=D(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==D(t)?t:t+""}function Q(e,t,n){return t=K(t),function(e,t){if(t&&("object"==D(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Z()?Reflect.construct(t,n||[],K(e).constructor):t.apply(e,n))}function Z(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Z=function(){return!!e})()}function K(e){return K=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},K(e)}function $(e,t){return $=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},$(e,t)}var q="shared.seriesNotFoundError",z=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Q(this,t,["Series doesn't exist"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&$(e,t)}(t,e),n=t,(r=[{key:"name",get:function(){return"SeriesNotFoundError"}},{key:"heading",get:function(){return a.T.getPhrase(q,"heading")}},{key:"description",get:function(){return a.T.getPhrase(q,"description")}}])&&J(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(U.H),X=n(51855),Y=n(10671),ee=n(7179),te=n(27638),ne=n(44110),re=n(97816),ie=n(10741),ae=n(33192),oe=n(22490),ce=n(82431),se=a.T.encloseNamespace("shared.series"),ue=function(e){return k.o[e.name.charCodeAt(0)%k.o.length]};function le(e){var t,n,a,l,d=(0,i.I0)(),p=(0,te.u)(c.LZ.VideoThumbnail),f=p.setFavourite,v=p.canFavourite,m=(0,H.T)(),h=m.hasPermissions,k=m.hasLocalPermissions,U=(0,X.G)().isPlugin,D=(0,T.R0)(),J=D.openInCurationStudioLabel,W=D.isUserCurator,Q=D.getOpenInCurationStudioLink;(0,ee.P)({id:e.id,app:"series",shareId:e.shareId});var Z=o.a.useBasicFetch(O.L.config()),K=o.a.useBasicFetch(j.N.currentUser()),$=o.a.useBasicFetch((null===(t=K.data)||void 0===t?void 0:t.isAuthenticated)&&I.h.yearGroups(K.data.customerId)),q=o.a.useBasicFetch(e.shareId?P.J.sharedSeries(e.id,e.shareId):P.J.series(e.id)),le=(0,ne.i)();(0,_.M)(G.CG.getSeriesMetadata({content:q.data,phraseContext:{phraseHandler:se,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:ae.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:ae.f.allowIndexing()}));var de=(0,Y._)({location:Y.i.VideoItem,shareId:e.shareId}),pe=o.a.useBasicFetch(e.classificationId&&x.x.path(e.classificationId));function fe(e){return!ae.f.isBot()||!e}function ve(t){var n;return fe(t)?P.J.seriesVideos(e.id,null===(n=K.data)||void 0===n?void 0:n.id,he,t):null}function me(e){return o.a.getFetch(d)(ve(e))}var he=!!K.data&&R.d.getOrSetSortType(K.data.id,e.sort,L.D.Series),be={classificationId:e.classificationId,mtv:e.moviesAndTv},ge=(0,F.K)(!!K.data&&ve,me),ye=ge.items,Ee=ge.isFetching,Se=ge.nextCursor;(0,re.V)(ye),(0,N.v)(q,{notFound:z});var ke=!h(A.C.StudentExperience)&&k(A.E.UseSeriesActions),we=(0,C.h)({name:null===(n=q.data)||void 0===n?void 0:n.name});return r.createElement(w.M.Provider,{value:de},r.createElement("div",{className:"px-3"},Z.data&&q.data?r.createElement(s.p,{heading:q.data.name,banner:q.data.banner,imageCdnUrl:Z.data.imageCdnUrl,actions:function(){var e,t,n;if(U||!ke)return[];var r=[{label:se("share"),appLink:q&&{application:M.O.DEFAULT,action:B.e.Default.SHARE,args:[null===(e=q.data)||void 0===e?void 0:e.id],params:{entityType:"series"}},svgName:V.vn.Share2,className:"btn btn-outline-dark me-2",button:!0}];return W&&r.push({label:J,href:Q(null===(t=q.data)||void 0===t?void 0:t.typeId,null===(n=q.data)||void 0===n?void 0:n.id),openInNewTab:!0}),r}(),actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:ue(q.data)}):r.createElement(s.v,null),r.createElement("div",null,r.createElement("div",{className:(null===(a=q.data)||void 0===a?void 0:a.description)||e.moviesAndTv&&pe.data?"border-bottom py-3 mb-3":"pt-3 mb-2"},!q.data||e.classificationId&&!pe.data?r.createElement(u.b2,null):r.createElement(u.Oo,{breadcrumbs:we}),r.createElement("div",{className:"d-flex align-items-center"},(null===(l=q.data)||void 0===l?void 0:l.description)&&r.createElement("div",{className:"mb-0 ".concat(e.classificationId?"pt-2":"")},r.createElement(b,{text:q.data.description})),q.data&&r.createElement("div",{className:"ms-auto"},r.createElement(S.p,{variant:"outline-dark",type:he,analyticsOptions:{location:c.LZ.VideoListHeader,entity:c.py.Video,actionType:c.Vw.Sort,workflowPhase:c.eu.Complete},getSortAppLink:function(e){return ce.j.getSeriesAppLink(q.data,Object.assign(Object.assign({},be),{sort:e}))}})))),ye?r.createElement(r.Fragment,null,r.createElement(E.E4,{videos:ye,yearGroups:$.data,getVideoAppLink:e.getVideoAppLink,hasPermissions:h,getSubTextAppLink:function(e){return ce.j.getSeriesAppLink(null==e?void 0:e.series,Object.assign(Object.assign({},be),{sort:he}))},setFavourite:f,canFavourite:v,presentationAudiences:e.moviesAndTv?null:le.data,getPreviewQuestionsAppLink:function(e){return ie.j.getPreviewQuestionsAppLink(e)},isPlugin:U,getClassroomGuideAppLink:oe.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:oe.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:oe.W.getResourceGuidanceAppLink}),(Ee||Se)&&fe(Se)&&r.createElement(g._,{isFetching:Ee,fetchNext:me,nextCursor:Se})):r.createElement(y.S,null))))}}}]);
2
+ //# sourceMappingURL=4063-5fa157657f-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/4063-5fa157657f-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/expandable-text/expandable-text.scss","file:///app/packages/libs/shared/src/components/expandable-text/ExpandableText.tsx","file:///app/packages/projects/lite/src/shared/errors/series/series-not-found/SeriesNotFoundError.ts","file:///app/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"text\":\"wLJpg\",\"seeMore\":\"x5t0p\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nimport styles from './expandable-text.scss';\n\ninterface ExpandableTextProps{\n text: string;\n lines?: number;\n}\n\nconst namespace = 'shared.expandableText';\n\nexport function ExpandableText(props: ExpandableTextProps): JSX.Element {\n const { text, lines = 2 } = props;\n const [ expanded, setExpanded ] = React.useState(false);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n const memoClientHeight = React.useRef<number>(0);\n React.useEffect(() => {\n if (containerRef.current.clientHeight)\n // memo the initial clientHeight, cuz after expand and collapse the clientHeight will change\n memoClientHeight.current = containerRef.current.clientHeight;\n }, []);\n\n const [ showButton, setShowButton ] = React.useState(containerRef.current?.scrollHeight > memoClientHeight.current);\n\n useResizeListener(() => {\n if (containerRef.current.clientHeight) {\n // update memo value on resize\n memoClientHeight.current = containerRef.current.clientHeight;\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n });\n\n React.useEffect(() => {\n if (containerRef.current?.scrollHeight) {\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n }, [ containerRef.current?.scrollHeight, memoClientHeight.current ]);\n\n return (\n <div className='d-flex overflow-hidden'>\n <div className={`${expanded ? '' : `clamp-${lines}`} ${styles.text}`} ref={containerRef}>\n {(!expanded && showButton) && (\n <DivButton\n onClick={() => setExpanded(true)}\n className={`ms-1 info-text hover-text-underline ${styles.seeMore}`}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </DivButton>\n )}\n <p className='mb-0 d-inline'>{text}</p>\n {expanded && (\n <DivButton\n onClick={() => setExpanded(false)}\n className={`ms-1 info-text hover-text-underline d-inline`}\n >\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n )}\n </div>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.seriesNotFoundError';\n\nexport class SeriesNotFoundError extends ErrorPageError {\n constructor() {\n super('Series doesn\\'t exist');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'SeriesNotFoundError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, Config, CurrentUser, Series, Video, YearGroup } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { SeriesNotFoundError } from 'shared/errors/series/series-not-found/SeriesNotFoundError';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.series';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getFallbackBannerColourClass = (series: Series): string => {\n return BG_COLOUR_CLASS_NAMES[series.name.charCodeAt(0) % BG_COLOUR_CLASS_NAMES.length];\n};\n\ninterface SeriesViewProps {\n id: string;\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n classificationId?: string;\n shareId?: string;\n moviesAndTv?: boolean;\n sort?: VideoSortType;\n}\n\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\n const dispatch = useDispatch();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n useDeepLinks({ id: props.id, app: 'series', shareId: props.shareId });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const series = Flight.useBasicFetch<Series>(props.shareId\n ? SeriesRequests.sharedSeries(props.id, props.shareId)\n : SeriesRequests.series(props.id));\n\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata(PageMetadataHelper.getSeriesMetadata({\n content: series.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, shareId: props.shareId });\n\n const topicPath = Flight.useBasicFetch<Classification[]>(\n props.classificationId &&\n ClassificationRequests.path(props.classificationId)\n );\n\n /**\n * Infinite scrolling will be restricted for public browsing as a crawler/bot.\n * The rationale behind this is that we don't want to preload or allow crawlers\n * to enumerate the entirety of our series collections. Some series have > 10k videos\n * and they don't all need to be indexed (i.e. old news/current affair series).\n * \n * Public browsing by regular users will continue to paginate, along with authenticated\n * users. - Mike\n */\n function shouldFetch(cursor?: string) {\n if (SeoHelper.isBot() && cursor)\n return false;\n\n return true;\n }\n\n function getVideosRequest(cursor?: string) {\n if (!shouldFetch(cursor))\n return null;\n\n return SeriesRequests.seriesVideos(props.id, currentUser.data?.id, sort, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function getBannerActions(): ActionOptions[] {\n if (isPlugin || !showHeaderActions) {\n return [];\n }\n\n const actions: ActionOptions[] = [{\n label: getPhrase('share'),\n appLink: series && {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [series.data?.id],\n params: { entityType: 'series' }\n },\n svgName: cvSvgLibrary.Share2,\n className: 'btn btn-outline-dark me-2',\n button: true\n }];\n\n if (isUserCurator)\n actions.push({\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(series.data?.typeId, series.data?.id),\n openInNewTab: true\n });\n\n return actions;\n }\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data && VideoSortHelper.getOrSetSortType(\n currentUser.data.id,\n props.sort,\n VideoSortType.Series\n );\n\n const seriesParams = {\n classificationId: props.classificationId,\n mtv: props.moviesAndTv\n };\n\n const {\n items: videos,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(currentUser.data ? getVideosRequest : false, fetchNext);\n\n useVideoMixin(videos);\n\n useHandleObjectError(series, {\n notFound: SeriesNotFoundError\n });\n\n const showHeaderActions = !hasPermissions(PermissionName.StudentExperience) &&\n hasLocalPermissions(LocalPermissionName.UseSeriesActions);\n\n const breadcrumbs = useBreadcrumbs({ name: series.data?.name });\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n {config.data && series.data\n ? (\n <BannerHeader\n heading={series.data.name}\n banner={series.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n actions={getBannerActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n blockColourClass={getFallbackBannerColourClass(series.data)}\n />\n ) : <PartialBannerHeader />\n }\n \n <div>\n <div className={series.data?.description || (props.moviesAndTv && topicPath.data) ? 'border-bottom py-3 mb-3' : 'pt-3 mb-2'}>\n {(() => {\n if (!series.data || (props.classificationId && !topicPath.data))\n return <PartialBreadcrumbs />;\n\n return (\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n );\n })()}\n\n <div className='d-flex align-items-center'>\n {series.data?.description && (\n <div className={`mb-0 ${props.classificationId ? 'pt-2' : ''}`}>\n <ExpandableText text={series.data.description}/>\n </div>\n )}\n\n {series.data && (\n <div className='ms-auto'>\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n getSortAppLink={sort => {\n return SeriesAppLinkHelper.getSeriesAppLink(series.data, { ...seriesParams, sort });\n }}\n />\n </div>\n )}\n </div>\n </div>\n\n {(() => {\n if (!videos)\n return <PartialVideoList />;\n\n return (\n <>\n <VideoList\n videos={videos}\n yearGroups={yearGroups.data}\n getVideoAppLink={props.getVideoAppLink}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video =>\n SeriesAppLinkHelper.getSeriesAppLink(video?.series, { ...seriesParams, sort })}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={props.moviesAndTv ? null : audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {(isFetching || nextCursor) && shouldFetch(nextCursor) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n );\n })()}\n </div>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n"],"names":["namespace","ExpandableText","props","text","lines","expanded","setExpanded","containerRef","memoClientHeight","current","clientHeight","scrollHeight","showButton","setShowButton","className","ref","DivButton","onClick","Text","phrase","SeriesNotFoundError","LanguageService","ErrorPageError","getPhrase","getFallbackBannerColourClass","series","name","charCodeAt","SeriesView","dispatch","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","hasPermissions","hasLocalPermissions","isPlugin","usePluginHelper","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useDeepLinks","id","app","shareId","config","ConfigRequests","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","SeriesRequests","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","videoActions","useVideoActions","location","topicPath","classificationId","ClassificationRequests","shouldFetch","cursor","getVideosRequest","sort","fetchNext","VideoSortHelper","VideoSortType","seriesParams","mtv","moviesAndTv","videos","items","isFetching","nextCursor","useVideoMixin","notFound","showHeaderActions","PermissionName","breadcrumbs","useBreadcrumbs","VideoActionsContext","value","BannerHeader","heading","banner","imageCdnUrl","actions","label","appLink","application","action","args","params","entityType","svgName","button","push","href","typeId","openInNewTab","getBannerActions","actionsDropdownClassName","blockColourClass","description","Breadcrumbs","VideoSortSelect","variant","type","analyticsOptions","entity","actionType","workflowPhase","getSortAppLink","SeriesAppLinkHelper","VideoList","getVideoAppLink","getSubTextAppLink","video","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","VideoAppLinkHelper","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","InfiniteScrollFooter","PartialVideoList"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4182],{49935:(e,t,r)=>{"use strict";r.d(t,{Oo:()=>y,b2:()=>b});var n=r(32735),a=r(23481),o=r(36848),l=r(86764),i=r(3747),c=r(5859),u=r(35223),s=r(83914);function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,i=[],c=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(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 f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var p=a.T.encloseNamespace("shared.breadcrumbComponent"),d=n.forwardRef((function(e,t){var r=e.breadcrumb,a=r.name,l=r.appLink,i=r.active,c=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?n.createElement("strong",null,a):n.createElement(o.F,{appLink:l,ref:t},c&&n.createElement(s.x,{svgName:u.vn.ChevronLeft,size:s.S.Small}),n.createElement("span",{className:c?"ms-2":""},a)))})),y=function(e){var t=e.breadcrumbs,r=(0,i.a)(l.r.XS),a=(null==t?void 0:t.length)||0,o=m(n.useState(!1),2),c=o[0],u=o[1],s=m(n.useState(!1),2),f=s[0],y=s[1],b=n.useRef();if(n.useEffect((function(){var e,r=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>3&&r>56&&u(!0)}),[null==t?void 0:t.length]),n.useLayoutEffect((function(){var e;f&&(null===(e=b.current)||void 0===e||e.focus())}),[b.current,f]),!a||r&&a<2)return n.createElement(n.Fragment,null);if(r)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(d,{breadcrumb:t[a-2],withBackIcon:!0})));var v=n.createElement(d,{breadcrumb:t[0]}),h=a>2?n.createElement(d,{breadcrumb:t[a-2]}):n.createElement(n.Fragment,null),g=n.createElement(d,{breadcrumb:t[a-1]}),w=t.slice(1,a-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},v,c?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){u(!1),y(!0)},"aria-label":p("expand")},"...")):w.map((function(e,t){return n.createElement(d,{key:t,breadcrumb:e,ref:0===t?b:null})})),h,g))},b=n.memo((function(e){var t=e.numItems,r=void 0===t?3:t;return(0,i.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:r}).map((function(e,t){var r=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:r},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},66903:(e,t,r)=>{"use strict";r.d(t,{k:()=>s});var n=r(32735),a=r(80130),o=r(59087),l=r(23481);const i={normal:"Q1UGv",copyBtn:"J3fBx"};function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var u=l.T.encloseNamespace("shared.copyInput");function s(e){var t,r,l=(t=n.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,i=[],c=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(t,r)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(t,r)||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.")}()),s=l[0],m=l[1],f=n.createElement("div",{className:"input-group"},n.createElement("input",{type:"text",autoComplete:"off",className:"form-control ".concat("normal"===e.styling?i.normal:""),spellCheck:!1,value:e.value,readOnly:!0}),n.createElement(o.CopyToClipboard,{text:e.value},n.createElement("button",{className:"btn btn-outline-dark border border-secondary py-0 text-nowrap",onClick:function(t){t.preventDefault(),e.onCopy&&e.onCopy(),s||(m(!0),setTimeout((function(){return m(!1)}),2e3))}},s?e.copiedText||u("copied"):e.copyText||u("copy"))));return e.label?n.createElement(a.Z.Group,{className:"form-group"},n.createElement(a.Z.Label,null,e.label),f):f}s.defaultProps={styling:"normal"}},23201:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(32735),a=r(92802),o=r(2102),l=r(83345),i=r(33936),c="shared.formButtons";function u(e){var t=(0,a.u6)(),r=(0,i.l)(t);return n.createElement(o.m,{variant:e.variant||"primary",type:"submit",disabled:!r,size:e.size,className:e.className?e.className:"",showSpinner:t.isSubmitting},e.submitText?n.createElement(n.Fragment,null,e.submitText):n.createElement(l.x,{namespace:c,phrase:e.isNew?"create":"save"}))}},38365:(e,t,r)=>{"use strict";r.d(t,{n:()=>O,W:()=>E});var n=r(32735),a=r(80247),o=r(80130),l=r(92802),i=r(91967),c=r(1048),u=r(36848),s=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r};function m(e){var t=e.label,r=e.checkboxLabelClassName,a=e.checkboxLabelFontWeight,l=e.className,i=s(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return n.createElement(o.Z.Group,{className:"form-group"},n.createElement("div",{className:"form-check ".concat(l||"")},n.createElement(O,Object.assign({className:"form-check-input"},i)),n.createElement(o.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===a?"fw-normal":""," \n ").concat(r),htmlFor:i.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&n.createElement(n.Fragment,null,n.createElement("span",null," "),n.createElement(u.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var f=r(83914),p=r(83345),d=r(73814),y=r(35223);function b(e){var t=(0,l.u6)().values[e.fieldName];return"string"!=typeof t?n.createElement(n.Fragment,null):n.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const v={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var g=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r},w="shared.formField";function O(e){var t,r,o=e.children,u=e.showLoadingSpinner,s=g(e,["children","showLoadingSpinner"]),m=(t=n.useState(e.type),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,i=[],c=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(t,r)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}(t,r)||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.")}()),p=m[0],d=m[1],b=i.q.isFunction(o)?function(e){return o(e)}:n.Children.count(o)?o:null;if("password"!==s.type)return u?n.createElement("div",{className:"position-relative"},n.createElement(l.gN,Object.assign({},c.t.omit(s,["formSize"])),b),n.createElement("div",{className:v.spinner},n.createElement(a.Z,{animation:"border",size:"sm"}))):n.createElement(l.gN,Object.assign({},c.t.omit(s,["formSize"])),b);var w="position-relative ".concat(v.passwordContainer);return s.className&&(w+=" ".concat(s.className)),s.disabled&&(w+=" ".concat(v.passwordContainerDisabled)),n.createElement("div",{className:w},n.createElement(l.gN,Object.assign({},c.t.omit(s,["formSize","type","className"]),{type:p,className:"".concat(v.passwordInput," border-0 w-100 h-100 outline-none rounded")}),b),"password"===s.type&&n.createElement(f.x,{svgName:"password"===p?y.vn.VisibleOn:y.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(v.revealPassword),onClick:function(){d("password"===p?"text":"password")}}))}function E(e){var t=e.label,r=e.className,a=e.showCharacterCounter,i=e.showRequiredStar,u=e.infoTooltip,s=e.infoTooltipPlacement,h=e.infoText,E=e.formSize,S=e.showOptionalLabel,C=g(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),k=(0,l.u6)(),j=k.errors,x=k.touched,N=function(){};if("checkbox"===C.type){var P=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(P.onChange=N),n.createElement(m,Object.assign({},P))}var A=Object.assign(Object.assign({},C),{className:d.w.getCustomFormControlClassName(j,x,C.name,E,r,"string"==typeof e.as?e.as:null)});return e.disabled&&(A.onChange=N),n.createElement(o.Z.Group,{className:"form-group"},!!t&&n.createElement(o.Z.Label,{htmlFor:C.id,className:"d-flex align-items-center"},t,i&&n.createElement("span",{className:"text-danger"},"*"),u&&n.createElement(f.x,{className:"svg-container text-secondary ".concat(v.infoTooltip),svgName:y.vn.Info,title:u,tooltipPlacement:s,tooltipSpanHack:!0}),S&&n.createElement("span",{className:"text-secondary"}," ",n.createElement(p.x,{namespace:w,phrase:"optional"})),!!a&&!!C.maxLength&&n.createElement("div",{className:"ms-auto"},n.createElement(b,{fieldName:C.name,limit:C.maxLength}))),n.createElement(O,Object.assign({},A)),!!h&&n.createElement(o.Z.Text,{className:"text-secondary"},h),n.createElement(l.Bc,{name:C.name},(function(e){return n.createElement(o.Z.Control.Feedback,{type:"invalid"},e)})))}O.defaultProps={autoComplete:"off"},E.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,r)=>{"use strict";r.d(t,{b:()=>s,n:()=>u});var n=r(32735),a=r(92802),o=r(91967),l=r(1048);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var c=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r};function u(e){var t=e.castInitialValues,r=e.castValuesOnSubmit,u=e.initialValues,s=e.onSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),f=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=l.t.deepClone(e);return function e(r){Object.keys(t).forEach((function(n){t.hasOwnProperty(n)&&(l.t.isObject(r[n])?e(r[n]):null===t[n]&&delete t[n])}))}(t),t}(u)):u,p={allowInitialSubmit:e.allowInitialSubmit};return n.createElement(a.J9,Object.assign({enableReinitialize:!0},m,{initialValues:f,onSubmit:function(t,n){var a=n.setSubmitting,o=n.resetForm,l=n.setFieldError,c=r&&e.validationSchema?e.validationSchema.cast(t):t;s(c,(function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(r.reset&&o(),r.errors)for(var n=0,c=Object.entries(r.errors);n<c.length;n++){var u=(e=c[n],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,i=[],c=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(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.")}()),s=u[0],m=u[1];l(s,m)}a(!1)}))},initialStatus:p}),o.q.isFunction(e.children)?function(t){return e.children(t)}:n.Children.count(e.children)?e.children:null)}function s(){return(0,a.u6)()}u.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},94644:(e,t,r)=>{"use strict";r.d(t,{r:()=>s});var n=r(50242),a=r(81886),o=r(67058),l=r(14553),i=r(49267),c=r(49075),u={notFound:o.d,forbidden:{rating:l.q,yearLevel:l.q,region:i.a,privacy:l.q},badRequest:c._};function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},u),t);o&&a.Q.Ry.isStatusCodeError(o)&&(o!==n.o.NotFound?o!==n.o.Forbidden?r.badRequest||a.Q.Ry.throw(new l.badRequest):r.forbidden||a.Q.Ry.throw(new l.forbidden.privacy):r.notFound||a.Q.Ry.throw(new l.notFound))}}},91286:(e,t,r)=>{"use strict";r.d(t,{v:()=>l});var n=r(32735),a=r(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,r){var l=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){l.forEach((function(e){(0,a.r)(e.statusCode,t,r)}))}),[o(l),t,r])}},73814:(e,t,r)=>{"use strict";r.d(t,{w:()=>a});var n=r(92802),a={getCustomFormControlClassName:function(e,t,r,a,o,l){var i="";return i=function(e,t){var r="";return r="select"===e?"form-select":"form-control","sm"===t&&(r+=" ".concat(r,"-sm")),"lg"===t&&(r+=" ".concat(r,"-lg")),r}(l,a),(0,n.u9)(t,r)&&(0,n.u9)(e,r)&&(i+=" is-invalid"),o&&(i+=" ".concat(o)),i}}},5859:(e,t,r)=>{"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,{u:()=>o});var a={numItems:5,minWidth:50,maxWidth:100},o={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=Object.assign(Object.assign({},a),t);return(e=Array(r.numItems),function(e){if(Array.isArray(e))return n(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 n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(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.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*r.maxWidth),r.minWidth),"px")}}))}}},52734:(e,t,r)=>{"use strict";r.d(t,{W:()=>p});var n=r(32735),a=r(23481),o=r(49935),l=r(10874),i=r(83345),c=r(35223),u=r(14070),s=r(97291),m="settings.editLtiPlatformHeading",f=a.T.encloseNamespace(m);function p(e){return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex align-items-center justify-content-between"},n.createElement("h1",{className:"h2"},e.name),n.createElement(l.h,{svgName:c.vn.Delete,appLink:e.deleteAppLink,className:"btn btn-outline-dark"},n.createElement(i.x,{namespace:m,phrase:"deletePlatform"}))),n.createElement("div",{className:"pb-3"},n.createElement(o.Oo,{breadcrumbs:[{name:f("settings"),appLink:{application:s.O.SETTINGS,action:u.e.Settings.HOME}},{name:f("ltiPlatforms"),appLink:{application:s.O.SETTINGS,action:u.e.Settings.LTI_PLATFORMS}},{name:e.name,active:!0}]})))}},28496:(e,t,r)=>{"use strict";r.d(t,{_:()=>a});var n=r(99940),a={getConsumers:function(){return{url:"/api/lti/consumers",key:"lti:consumers",normalize:!1}},getPlatforms:function(){return{url:"/api/lti/platforms",key:"lti:platforms",formatData:function(e){return e.map((function(e){return e.publicJwk=JSON.stringify(e.publicJwk),e}))},normalize:!1}},getConsumer:function(e){return{url:"/api/lti/consumers/".concat(e),key:"lti:consumer:".concat(e),normalize:!1}},getPlatform:function(e){return{url:"/api/lti/platforms/".concat(e),key:"lti:platform:".concat(e),formatData:function(e){return e.publicJwk=JSON.stringify(e.publicJwk),e},normalize:!1}},createConsumer:function(e,t,r){return{url:"/api/lti/consumers",key:"create:consumer",type:n.k.POST,invalidationKeys:["lti:consumers"],data:e,success:t,error:r}},createPlatform:function(e,t,r){return{url:"/api/lti/platforms",key:"create:platform",type:n.k.POST,invalidationKeys:["lti:platforms"],data:e,success:t,error:r}},updateConsumer:function(e,t,r){return{url:"/api/lti/consumers/".concat(e.key),key:"update:consumer",type:n.k.PUT,invalidationKeys:["lti:consumers","lti:consumer:".concat(e.key)],data:e,success:t,error:r}},updatePlatform:function(e,t,r){return{url:"/api/lti/platforms/".concat(e.id),key:"update:platform",type:n.k.PUT,invalidationKeys:["lti:platforms","lti:platform:".concat(e.id)],data:e,success:t,error:r}},deleteConsumer:function(e,t,r){return{url:"/api/lti/consumers/".concat(e),key:"delete:consumer",type:n.k.DELETE,invalidationKeys:"lti:consumers",success:t,error:r}},deletePlatform:function(e,t,r){return{url:"/api/lti/platforms/".concat(e),key:"delete:platform",type:n.k.DELETE,invalidationKeys:"lti:platforms",success:t,error:r}}}},42384:(e,t,r)=>{"use strict";r.d(t,{P:()=>i});var n=r(32735),a=r(65858),o=r(37802);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var i=function(){var e,t,r=(e=n.useState(void 0),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,i=[],c=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?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.")}()),i=r[0],c=r[1],u=(0,o.r)(a.LZ.Settings).hasLti;return n.useEffect((function(){u&&!0!==i?c(!0):u||!1===i||c(!1)}),[u]),{canAccess:i}}},91969:(e,t,r)=>{"use strict";var n=r(47033),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var r,o,l,i,c,u,s=!1;t||(t={}),r=t.debug||!1;try{if(l=n(),i=document.createRange(),c=document.getSelection(),(u=document.createElement("span")).textContent=e,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(n){if(n.stopPropagation(),t.format)if(n.preventDefault(),void 0===n.clipboardData){r&&console.warn("unable to use e.clipboardData"),r&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=a[t.format]||a.default;window.clipboardData.setData(o,e)}else n.clipboardData.clearData(),n.clipboardData.setData(t.format,e);t.onCopy&&(n.preventDefault(),t.onCopy(n.clipboardData))})),document.body.appendChild(u),i.selectNodeContents(u),c.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");s=!0}catch(n){r&&console.error("unable to copy using execCommand: ",n),r&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),s=!0}catch(n){r&&console.error("unable to copy using clipboardData: ",n),r&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(i):c.removeAllRanges()),u&&document.body.removeChild(u),l()}return s}},44818:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var a=i(r(32735)),o=i(r(91969)),l=["text","onCopy","options","children"];function i(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){d(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}(b,e);var t,r,i,c,y=(i=b,c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=p(i);if(c){var r=p(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return f(e)}(this,e)});function b(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,b);for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return d(f(e=y.call.apply(y,[this].concat(r))),"onClick",(function(t){var r=e.props,n=r.text,l=r.onCopy,i=r.children,c=r.options,u=a.default.Children.only(i),s=(0,o.default)(n,c);l&&l(n,s),u&&u.props&&"function"==typeof u.props.onClick&&u.props.onClick(t)})),e}return t=b,(r=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),r=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,l),n=a.default.Children.only(t);return a.default.cloneElement(n,u(u({},r),{},{onClick:this.onClick}))}}])&&s(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),b}(a.default.PureComponent);t.CopyToClipboard=y,d(y,"defaultProps",{onCopy:void 0,options:void 0})},59087:(e,t,r)=>{"use strict";var n=r(44818).CopyToClipboard;n.CopyToClipboard=n,e.exports=n},47033:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n<e.rangeCount;n++)r.push(e.getRangeAt(n));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||r.forEach((function(t){e.addRange(t)})),t&&t.focus()}}}}]);
2
+ //# sourceMappingURL=4182-ba03f3ce3c-lite.chunk.js.map