@clickview/streamable-learning 0.34.1-dev.1 → 0.35.0-rc.0

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 (437) hide show
  1. package/dist/bundles.json +2 -2
  2. package/dist/css/103-streamable-learning-5060b6cda5.chunk.css +7 -0
  3. package/dist/css/1269-streamable-learning-a12c4ebc99.chunk.css +2 -0
  4. package/dist/css/1457-streamable-learning-c8c8b3b9b1.chunk.css +50 -0
  5. package/dist/css/2334-streamable-learning-de03ae073a.chunk.css +2 -0
  6. package/dist/css/3322-streamable-learning-510e1aa3f3.chunk.css +34 -0
  7. package/dist/css/3838-streamable-learning-da10685fe8.chunk.css +22 -0
  8. package/dist/css/4254-streamable-learning-e493f4a027.chunk.css +2 -0
  9. package/dist/css/4607-streamable-learning-2605302fc2.chunk.css +90 -0
  10. package/dist/css/4772-streamable-learning-f83b838d71.chunk.css +9 -0
  11. package/dist/css/5003-streamable-learning-b38d2ddbbe.chunk.css +98 -0
  12. package/dist/css/5565-streamable-learning-0caae3809b.chunk.css +13 -0
  13. package/dist/css/6017-streamable-learning-098a205d01.chunk.css +6 -0
  14. package/dist/css/6356-streamable-learning-8c5b220bf6.chunk.css +1 -0
  15. package/dist/css/6987-streamable-learning-8f682301c6.chunk.css +1 -0
  16. package/dist/css/7317-streamable-learning-b5d226bbb6.chunk.css +5 -0
  17. package/dist/css/8058-streamable-learning-539cf7be18.chunk.css +12 -0
  18. package/dist/css/8294-streamable-learning-c797263ac2.chunk.css +1 -0
  19. package/dist/css/8496-streamable-learning-ce19f6ca52.chunk.css +13 -0
  20. package/dist/css/8601-streamable-learning-f525210660.chunk.css +6 -0
  21. package/dist/css/9514-streamable-learning-251703c6d1.chunk.css +2 -0
  22. package/dist/css/9766-streamable-learning-31650ffe5d.chunk.css +8 -0
  23. package/dist/css/9842-streamable-learning-24729103f7.chunk.css +4 -0
  24. package/dist/css/9899-streamable-learning-0338f8d2dc.chunk.css +4 -0
  25. package/dist/css/streamable-learning-dd0c1095d5.css +23 -0
  26. package/dist/languages/en.json +1 -0
  27. package/dist/scripts/103-aceced8961-streamable-learning.chunk.js +1 -0
  28. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js +2 -0
  29. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js.LICENSE.txt +105 -0
  30. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js +2 -0
  31. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js.LICENSE.txt +1 -0
  32. package/dist/scripts/1457-899f40d09a-streamable-learning.chunk.js +1 -0
  33. package/dist/scripts/1482-b1dd75897c-streamable-learning.chunk.js +1 -0
  34. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js +2 -0
  35. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js.LICENSE.txt +9 -0
  36. package/dist/scripts/2042-d51622d63e-streamable-learning.chunk.js +1 -0
  37. package/dist/scripts/2087-eba9033b1c-streamable-learning.chunk.js +1 -0
  38. package/dist/scripts/2245-8cd3224e1b-streamable-learning.chunk.js +1 -0
  39. package/dist/scripts/2334-00b028191d-streamable-learning.chunk.js +1 -0
  40. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js +2 -0
  41. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js.LICENSE.txt +1 -0
  42. package/dist/scripts/2877-5ffc9711f6-streamable-learning.chunk.js +1 -0
  43. package/dist/scripts/2911-2ec3a6600a-streamable-learning.chunk.js +1 -0
  44. package/dist/scripts/3057-731a8ca978-streamable-learning.chunk.js +1 -0
  45. package/dist/scripts/3093-efbcc927ea-streamable-learning.chunk.js +1 -0
  46. package/dist/scripts/3186-d1a6ccffde-streamable-learning.chunk.js +1 -0
  47. package/dist/scripts/3322-33c015dec9-streamable-learning.chunk.js +1 -0
  48. package/dist/scripts/3472-50ca92bde3-streamable-learning.chunk.js +1 -0
  49. package/dist/scripts/3838-4a38f33dc2-streamable-learning.chunk.js +1 -0
  50. package/dist/scripts/3941-2ef15ca9ac-streamable-learning.chunk.js +1 -0
  51. package/dist/scripts/4254-ef581b8105-streamable-learning.chunk.js +1 -0
  52. package/dist/scripts/4607-a4edb06dba-streamable-learning.chunk.js +2 -0
  53. package/dist/scripts/4607-a4edb06dba-streamable-learning.chunk.js.LICENSE.txt +1 -0
  54. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js +2 -0
  55. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js.LICENSE.txt +1 -0
  56. package/dist/scripts/4951-df701c6a8d-streamable-learning.chunk.js +1 -0
  57. package/dist/scripts/5003-7468a75d64-streamable-learning.chunk.js +2 -0
  58. package/dist/scripts/5003-7468a75d64-streamable-learning.chunk.js.LICENSE.txt +1 -0
  59. package/dist/scripts/5088-2e09e1ba6e-streamable-learning.chunk.js +1 -0
  60. package/dist/scripts/5173-a800a17d0d-streamable-learning.chunk.js +1 -0
  61. package/dist/scripts/5446-2cbe9f9d1b-streamable-learning.chunk.js +1 -0
  62. package/dist/scripts/5543-205aaa36a6-streamable-learning.chunk.js +1 -0
  63. package/dist/scripts/5565-224d86dc1b-streamable-learning.chunk.js +1 -0
  64. package/dist/scripts/578-2cc99f46f7-streamable-learning.chunk.js +1 -0
  65. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js +2 -0
  66. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js.LICENSE.txt +1 -0
  67. package/dist/scripts/6356-eefa3ff22e-streamable-learning.chunk.js +1 -0
  68. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js +2 -0
  69. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js.LICENSE.txt +1 -0
  70. package/dist/scripts/6987-e58de31cfe-streamable-learning.chunk.js +1 -0
  71. package/dist/scripts/7317-6b7186c85d-streamable-learning.chunk.js +1 -0
  72. package/dist/scripts/7347-772848ba8a-streamable-learning.chunk.js +1 -0
  73. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js +2 -0
  74. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js.LICENSE.txt +1 -0
  75. package/dist/scripts/7904-96574373ca-streamable-learning.chunk.js +1 -0
  76. package/dist/scripts/7925-1e1cfa2a04-streamable-learning.chunk.js +1 -0
  77. package/dist/scripts/8058-51c4b442d6-streamable-learning.chunk.js +1 -0
  78. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js +2 -0
  79. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js.LICENSE.txt +60 -0
  80. package/dist/scripts/8397-39ce77876d-streamable-learning.chunk.js +1 -0
  81. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js +2 -0
  82. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js.LICENSE.txt +1 -0
  83. package/dist/scripts/8599-b74e1ab6e3-streamable-learning.chunk.js +1 -0
  84. package/dist/scripts/8601-37783cf18b-streamable-learning.chunk.js +1 -0
  85. package/dist/scripts/8819-2a50dd6a9b-streamable-learning.chunk.js +1 -0
  86. package/dist/scripts/8937-5103db88d8-streamable-learning.chunk.js +1 -0
  87. package/dist/scripts/9390-bbaf07ad0f-streamable-learning.chunk.js +1 -0
  88. package/dist/scripts/9514-a31ca9af06-streamable-learning.chunk.js +1 -0
  89. package/dist/scripts/9766-48d72d9285-streamable-learning.chunk.js +2 -0
  90. package/dist/scripts/9766-48d72d9285-streamable-learning.chunk.js.LICENSE.txt +1 -0
  91. package/dist/scripts/9842-36d830ee87-streamable-learning.chunk.js +1 -0
  92. package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js +2 -0
  93. package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js.LICENSE.txt +1 -0
  94. package/dist/scripts/bundle-7ea4deeaa8.min.js +2 -0
  95. package/dist/scripts/bundle-7ea4deeaa8.min.js.LICENSE.txt +108 -0
  96. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js +2 -0
  97. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js.LICENSE.txt +21 -0
  98. package/package.json +3 -5
  99. package/typings/utils/imports.d.ts +1 -2
  100. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  101. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  102. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  103. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  104. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  105. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  106. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  107. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  108. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  109. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  110. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  111. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  112. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  113. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  114. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  115. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  116. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  117. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  118. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  119. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  120. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  121. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  122. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  123. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  124. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  125. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  126. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  127. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  128. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  129. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  130. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  131. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  132. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  133. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  134. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  135. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  136. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  137. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  138. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  139. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  140. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  141. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  142. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  143. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  144. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  145. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  146. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  147. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  148. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  149. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  150. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  151. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  152. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  153. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  154. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  155. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  156. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  157. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  158. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  159. package/dist/css/B-attovs.chunk.css +0 -9
  160. package/dist/css/B1NucFMn.chunk.css +0 -1
  161. package/dist/css/BPdg7JW4.chunk.css +0 -1
  162. package/dist/css/BPrUSCaY.chunk.css +0 -1
  163. package/dist/css/BR0fUt9D.chunk.css +0 -1
  164. package/dist/css/BhYm6SRm.chunk.css +0 -1
  165. package/dist/css/BiRz4h1c.chunk.css +0 -1
  166. package/dist/css/Bq1ChJn4.chunk.css +0 -1
  167. package/dist/css/Bt85j9js.chunk.css +0 -1
  168. package/dist/css/BuYrqi9E.chunk.css +0 -1
  169. package/dist/css/BugV1Bpa.chunk.css +0 -1
  170. package/dist/css/BuuVPl7n.chunk.css +0 -1
  171. package/dist/css/C1NkrNqQ.chunk.css +0 -1
  172. package/dist/css/C1qv5jz5.chunk.css +0 -1
  173. package/dist/css/C7XoyEPr.chunk.css +0 -1
  174. package/dist/css/C7_MDu56.chunk.css +0 -1
  175. package/dist/css/CC5F5C8O.chunk.css +0 -1
  176. package/dist/css/CChSC6Ta.chunk.css +0 -1
  177. package/dist/css/CCsCPLDG.chunk.css +0 -1
  178. package/dist/css/CD1qrI1T.chunk.css +0 -1
  179. package/dist/css/CKqvCBj4.chunk.css +0 -1
  180. package/dist/css/CLZ0Ycds.chunk.css +0 -1
  181. package/dist/css/CO7M4rZW.chunk.css +0 -1
  182. package/dist/css/CY0yvCW4.chunk.css +0 -1
  183. package/dist/css/CYGsw8FT.chunk.css +0 -1
  184. package/dist/css/Cbi3KYBa.chunk.css +0 -1
  185. package/dist/css/CliS8Q8r.chunk.css +0 -1
  186. package/dist/css/D-kQKsZN.chunk.css +0 -1
  187. package/dist/css/D2NwUVrK.chunk.css +0 -1
  188. package/dist/css/D4g1IoUU.chunk.css +0 -1
  189. package/dist/css/DBgpcO3T.chunk.css +0 -1
  190. package/dist/css/DDnpOnVB.chunk.css +0 -1
  191. package/dist/css/DZJSONGP.chunk.css +0 -1
  192. package/dist/css/Dc0zNt2E.chunk.css +0 -1
  193. package/dist/css/DeAfaPiD.chunk.css +0 -1
  194. package/dist/css/Dj731zLm.chunk.css +0 -1
  195. package/dist/css/DjPPxa0A.chunk.css +0 -1
  196. package/dist/css/DlOtoSz0.chunk.css +0 -1
  197. package/dist/css/DwduQat7.chunk.css +0 -1
  198. package/dist/css/Dzuu2GTx.chunk.css +0 -1
  199. package/dist/css/JAvsJreH.chunk.css +0 -1
  200. package/dist/css/NKlFYVOc.chunk.css +0 -1
  201. package/dist/css/VZd8qGtK.chunk.css +0 -1
  202. package/dist/css/Y7U--2na.chunk.css +0 -1
  203. package/dist/css/ir3IcK_l.chunk.css +0 -1
  204. package/dist/css/jbMisi9r.chunk.css +0 -1
  205. package/dist/css/kS5aDtIJ.chunk.css +0 -1
  206. package/dist/css/mqCL1o7m.chunk.css +0 -1
  207. package/dist/css/qZzkUeZk.chunk.css +0 -1
  208. package/dist/css/sC_H3yXE.chunk.css +0 -1
  209. package/dist/css/wR_6C_NV.chunk.css +0 -1
  210. package/dist/en.json +0 -1
  211. package/dist/scripts/-Oi3rE3V.chunk.js +0 -5
  212. package/dist/scripts/-Oi3rE3V.chunk.js.map +0 -1
  213. package/dist/scripts/-cwk-1Iv.chunk.js +0 -2
  214. package/dist/scripts/-cwk-1Iv.chunk.js.map +0 -1
  215. package/dist/scripts/4oi1ldJ4.chunk.js +0 -3
  216. package/dist/scripts/4oi1ldJ4.chunk.js.map +0 -1
  217. package/dist/scripts/6UeJLeAd.chunk.js +0 -2
  218. package/dist/scripts/6UeJLeAd.chunk.js.map +0 -1
  219. package/dist/scripts/8zar0u1i.chunk.js +0 -2
  220. package/dist/scripts/8zar0u1i.chunk.js.map +0 -1
  221. package/dist/scripts/9NIa7Pi_.chunk.js +0 -2
  222. package/dist/scripts/9NIa7Pi_.chunk.js.map +0 -1
  223. package/dist/scripts/B5OOLcT3.chunk.js +0 -2
  224. package/dist/scripts/B5OOLcT3.chunk.js.map +0 -1
  225. package/dist/scripts/B8XJmK96.chunk.js +0 -8
  226. package/dist/scripts/B8XJmK96.chunk.js.map +0 -1
  227. package/dist/scripts/BA6k9XoA.chunk.js +0 -2
  228. package/dist/scripts/BA6k9XoA.chunk.js.map +0 -1
  229. package/dist/scripts/BBnDr_iy.chunk.js +0 -2
  230. package/dist/scripts/BBnDr_iy.chunk.js.map +0 -1
  231. package/dist/scripts/BEL0opwe.chunk.js +0 -2
  232. package/dist/scripts/BEL0opwe.chunk.js.map +0 -1
  233. package/dist/scripts/BHmtLW9C.chunk.js +0 -2
  234. package/dist/scripts/BHmtLW9C.chunk.js.map +0 -1
  235. package/dist/scripts/BJ0C6oH6.chunk.js +0 -2
  236. package/dist/scripts/BJ0C6oH6.chunk.js.map +0 -1
  237. package/dist/scripts/BPcJv8Nj.chunk.js +0 -2
  238. package/dist/scripts/BPcJv8Nj.chunk.js.map +0 -1
  239. package/dist/scripts/BQQ9SPei.chunk.js +0 -10
  240. package/dist/scripts/BQQ9SPei.chunk.js.map +0 -1
  241. package/dist/scripts/BQQZ0Zva.chunk.js +0 -2
  242. package/dist/scripts/BQQZ0Zva.chunk.js.map +0 -1
  243. package/dist/scripts/BRKKXF-k.chunk.js +0 -2
  244. package/dist/scripts/BRKKXF-k.chunk.js.map +0 -1
  245. package/dist/scripts/BUhbk0mt.chunk.js +0 -2
  246. package/dist/scripts/BUhbk0mt.chunk.js.map +0 -1
  247. package/dist/scripts/BXKrMYdw.chunk.js +0 -2
  248. package/dist/scripts/BXKrMYdw.chunk.js.map +0 -1
  249. package/dist/scripts/B_eK8A25.chunk.js +0 -2
  250. package/dist/scripts/B_eK8A25.chunk.js.map +0 -1
  251. package/dist/scripts/BbjveACT.chunk.js +0 -2
  252. package/dist/scripts/BbjveACT.chunk.js.map +0 -1
  253. package/dist/scripts/BdHxGaRy.chunk.js +0 -2
  254. package/dist/scripts/BdHxGaRy.chunk.js.map +0 -1
  255. package/dist/scripts/BeHz9c4V.chunk.js +0 -2
  256. package/dist/scripts/BeHz9c4V.chunk.js.map +0 -1
  257. package/dist/scripts/BexFb8rj.chunk.js +0 -2
  258. package/dist/scripts/BexFb8rj.chunk.js.map +0 -1
  259. package/dist/scripts/Bi8YRFeY.chunk.js +0 -2
  260. package/dist/scripts/Bi8YRFeY.chunk.js.map +0 -1
  261. package/dist/scripts/Bj3i6I7i.chunk.js +0 -2
  262. package/dist/scripts/Bj3i6I7i.chunk.js.map +0 -1
  263. package/dist/scripts/BktU87GA.chunk.js +0 -2
  264. package/dist/scripts/BktU87GA.chunk.js.map +0 -1
  265. package/dist/scripts/Bl1HvG0b.chunk.js +0 -2
  266. package/dist/scripts/Bl1HvG0b.chunk.js.map +0 -1
  267. package/dist/scripts/BnWlQ7-4.chunk.js +0 -2
  268. package/dist/scripts/BnWlQ7-4.chunk.js.map +0 -1
  269. package/dist/scripts/BoqzK1u7.chunk.js +0 -2
  270. package/dist/scripts/BoqzK1u7.chunk.js.map +0 -1
  271. package/dist/scripts/Bsa3zcW0.chunk.js +0 -2
  272. package/dist/scripts/Bsa3zcW0.chunk.js.map +0 -1
  273. package/dist/scripts/Bt3kaRtU.chunk.js +0 -6
  274. package/dist/scripts/Bt3kaRtU.chunk.js.map +0 -1
  275. package/dist/scripts/BtiKTu8r.chunk.js +0 -2
  276. package/dist/scripts/BtiKTu8r.chunk.js.map +0 -1
  277. package/dist/scripts/BwOoIPmc.chunk.js +0 -2
  278. package/dist/scripts/BwOoIPmc.chunk.js.map +0 -1
  279. package/dist/scripts/BwuSNwcs.chunk.js +0 -2
  280. package/dist/scripts/BwuSNwcs.chunk.js.map +0 -1
  281. package/dist/scripts/Byn8R7bs.chunk.js +0 -2
  282. package/dist/scripts/Byn8R7bs.chunk.js.map +0 -1
  283. package/dist/scripts/C2Zu5vKc.chunk.js +0 -2
  284. package/dist/scripts/C2Zu5vKc.chunk.js.map +0 -1
  285. package/dist/scripts/C2uxO8e2.chunk.js +0 -2
  286. package/dist/scripts/C2uxO8e2.chunk.js.map +0 -1
  287. package/dist/scripts/C35NlkUr.chunk.js +0 -2
  288. package/dist/scripts/C35NlkUr.chunk.js.map +0 -1
  289. package/dist/scripts/C5QPXJGU.chunk.js +0 -15
  290. package/dist/scripts/C5QPXJGU.chunk.js.map +0 -1
  291. package/dist/scripts/C6mGMCz4.chunk.js +0 -2
  292. package/dist/scripts/C6mGMCz4.chunk.js.map +0 -1
  293. package/dist/scripts/C8ZuWYfb.chunk.js +0 -2
  294. package/dist/scripts/C8ZuWYfb.chunk.js.map +0 -1
  295. package/dist/scripts/CEmtkty-.chunk.js +0 -2
  296. package/dist/scripts/CEmtkty-.chunk.js.map +0 -1
  297. package/dist/scripts/CICkmQW6.chunk.js +0 -2
  298. package/dist/scripts/CICkmQW6.chunk.js.map +0 -1
  299. package/dist/scripts/CLumRL-T.chunk.js +0 -2
  300. package/dist/scripts/CLumRL-T.chunk.js.map +0 -1
  301. package/dist/scripts/CO_D2O4I.chunk.js +0 -2
  302. package/dist/scripts/CO_D2O4I.chunk.js.map +0 -1
  303. package/dist/scripts/CPXlV0fg.chunk.js +0 -2
  304. package/dist/scripts/CPXlV0fg.chunk.js.map +0 -1
  305. package/dist/scripts/CQZOieOF.chunk.js +0 -2
  306. package/dist/scripts/CQZOieOF.chunk.js.map +0 -1
  307. package/dist/scripts/CQoWqq54.chunk.js +0 -2
  308. package/dist/scripts/CQoWqq54.chunk.js.map +0 -1
  309. package/dist/scripts/CRT9qru0.chunk.js +0 -2
  310. package/dist/scripts/CRT9qru0.chunk.js.map +0 -1
  311. package/dist/scripts/CU6iZ8MR.chunk.js +0 -2
  312. package/dist/scripts/CU6iZ8MR.chunk.js.map +0 -1
  313. package/dist/scripts/CUltMbyK.chunk.js +0 -2
  314. package/dist/scripts/CUltMbyK.chunk.js.map +0 -1
  315. package/dist/scripts/CW7x8M-z.chunk.js +0 -2
  316. package/dist/scripts/CW7x8M-z.chunk.js.map +0 -1
  317. package/dist/scripts/CYlwi5iC.chunk.js +0 -7
  318. package/dist/scripts/CYlwi5iC.chunk.js.map +0 -1
  319. package/dist/scripts/CgJckl-g.chunk.js +0 -2
  320. package/dist/scripts/CgJckl-g.chunk.js.map +0 -1
  321. package/dist/scripts/Cj5ETNHP.chunk.js +0 -2
  322. package/dist/scripts/Cj5ETNHP.chunk.js.map +0 -1
  323. package/dist/scripts/Cmu1J2M7.chunk.js +0 -262
  324. package/dist/scripts/Cmu1J2M7.chunk.js.map +0 -1
  325. package/dist/scripts/Cr8fUgj9.chunk.js +0 -2
  326. package/dist/scripts/Cr8fUgj9.chunk.js.map +0 -1
  327. package/dist/scripts/CtM_cXum.chunk.js +0 -2
  328. package/dist/scripts/CtM_cXum.chunk.js.map +0 -1
  329. package/dist/scripts/Cv1FGdNu.chunk.js +0 -2
  330. package/dist/scripts/Cv1FGdNu.chunk.js.map +0 -1
  331. package/dist/scripts/CvPDjx7y.chunk.js +0 -2
  332. package/dist/scripts/CvPDjx7y.chunk.js.map +0 -1
  333. package/dist/scripts/D0bydDVL.chunk.js +0 -2
  334. package/dist/scripts/D0bydDVL.chunk.js.map +0 -1
  335. package/dist/scripts/D1EE4AEz.chunk.js +0 -356
  336. package/dist/scripts/D1EE4AEz.chunk.js.map +0 -1
  337. package/dist/scripts/D84-WY3k.chunk.js +0 -2
  338. package/dist/scripts/D84-WY3k.chunk.js.map +0 -1
  339. package/dist/scripts/DAh7Ea13.chunk.js +0 -2
  340. package/dist/scripts/DAh7Ea13.chunk.js.map +0 -1
  341. package/dist/scripts/DBIkG3Bu.chunk.js +0 -2
  342. package/dist/scripts/DBIkG3Bu.chunk.js.map +0 -1
  343. package/dist/scripts/DCcI7sWt.chunk.js +0 -2
  344. package/dist/scripts/DCcI7sWt.chunk.js.map +0 -1
  345. package/dist/scripts/DEP24A-f.chunk.js +0 -2
  346. package/dist/scripts/DEP24A-f.chunk.js.map +0 -1
  347. package/dist/scripts/DGFORsAE.chunk.js +0 -2
  348. package/dist/scripts/DGFORsAE.chunk.js.map +0 -1
  349. package/dist/scripts/DGaf-Jy9.chunk.js +0 -2
  350. package/dist/scripts/DGaf-Jy9.chunk.js.map +0 -1
  351. package/dist/scripts/DJyZ6Hx7.chunk.js +0 -2
  352. package/dist/scripts/DJyZ6Hx7.chunk.js.map +0 -1
  353. package/dist/scripts/DOCam-GK.chunk.js +0 -2
  354. package/dist/scripts/DOCam-GK.chunk.js.map +0 -1
  355. package/dist/scripts/DSLX3H2r.chunk.js +0 -2
  356. package/dist/scripts/DSLX3H2r.chunk.js.map +0 -1
  357. package/dist/scripts/DSq4f4jm.chunk.js +0 -2
  358. package/dist/scripts/DSq4f4jm.chunk.js.map +0 -1
  359. package/dist/scripts/DXxBqeLg.chunk.js +0 -2
  360. package/dist/scripts/DXxBqeLg.chunk.js.map +0 -1
  361. package/dist/scripts/DZ6Jrm23.chunk.js +0 -2
  362. package/dist/scripts/DZ6Jrm23.chunk.js.map +0 -1
  363. package/dist/scripts/Daes5Wgy.chunk.js +0 -2
  364. package/dist/scripts/Daes5Wgy.chunk.js.map +0 -1
  365. package/dist/scripts/DeUbJqVo.chunk.js +0 -2
  366. package/dist/scripts/DeUbJqVo.chunk.js.map +0 -1
  367. package/dist/scripts/DgEqkZy0.chunk.js +0 -8
  368. package/dist/scripts/DgEqkZy0.chunk.js.map +0 -1
  369. package/dist/scripts/DhB-Uugx.chunk.js +0 -2
  370. package/dist/scripts/DhB-Uugx.chunk.js.map +0 -1
  371. package/dist/scripts/DhqAA1wT.chunk.js +0 -2
  372. package/dist/scripts/DhqAA1wT.chunk.js.map +0 -1
  373. package/dist/scripts/Di5-l4QJ.chunk.js +0 -2
  374. package/dist/scripts/Di5-l4QJ.chunk.js.map +0 -1
  375. package/dist/scripts/DiQkAtUx.chunk.js +0 -53
  376. package/dist/scripts/DiQkAtUx.chunk.js.map +0 -1
  377. package/dist/scripts/DireiQEp.chunk.js +0 -2
  378. package/dist/scripts/DireiQEp.chunk.js.map +0 -1
  379. package/dist/scripts/Dj66TI5y.chunk.js +0 -2
  380. package/dist/scripts/Dj66TI5y.chunk.js.map +0 -1
  381. package/dist/scripts/DkFkYS-j.chunk.js +0 -2
  382. package/dist/scripts/DkFkYS-j.chunk.js.map +0 -1
  383. package/dist/scripts/Dkq5GtOV.chunk.js +0 -2
  384. package/dist/scripts/Dkq5GtOV.chunk.js.map +0 -1
  385. package/dist/scripts/DmSSmUHZ.chunk.js +0 -2
  386. package/dist/scripts/DmSSmUHZ.chunk.js.map +0 -1
  387. package/dist/scripts/DoQU9vjn.chunk.js +0 -2
  388. package/dist/scripts/DoQU9vjn.chunk.js.map +0 -1
  389. package/dist/scripts/DtHh_hpg.chunk.js +0 -2
  390. package/dist/scripts/DtHh_hpg.chunk.js.map +0 -1
  391. package/dist/scripts/DvDdiDQN.chunk.js +0 -7
  392. package/dist/scripts/DvDdiDQN.chunk.js.map +0 -1
  393. package/dist/scripts/DwhG2uva.chunk.js +0 -2
  394. package/dist/scripts/DwhG2uva.chunk.js.map +0 -1
  395. package/dist/scripts/DxJlWHZr.chunk.js +0 -2
  396. package/dist/scripts/DxJlWHZr.chunk.js.map +0 -1
  397. package/dist/scripts/DxmeZ4C9.chunk.js +0 -2
  398. package/dist/scripts/DxmeZ4C9.chunk.js.map +0 -1
  399. package/dist/scripts/KuveJuNy.chunk.js +0 -2
  400. package/dist/scripts/KuveJuNy.chunk.js.map +0 -1
  401. package/dist/scripts/LKCLmV2A.chunk.js +0 -2
  402. package/dist/scripts/LKCLmV2A.chunk.js.map +0 -1
  403. package/dist/scripts/RnuR8yr3.chunk.js +0 -2
  404. package/dist/scripts/RnuR8yr3.chunk.js.map +0 -1
  405. package/dist/scripts/XxrnElSv.chunk.js +0 -2
  406. package/dist/scripts/XxrnElSv.chunk.js.map +0 -1
  407. package/dist/scripts/YF_QoXEj.chunk.js +0 -3
  408. package/dist/scripts/YF_QoXEj.chunk.js.map +0 -1
  409. package/dist/scripts/Z2sDSVPb.chunk.js +0 -2
  410. package/dist/scripts/Z2sDSVPb.chunk.js.map +0 -1
  411. package/dist/scripts/Zbze2j9b.chunk.js +0 -2
  412. package/dist/scripts/Zbze2j9b.chunk.js.map +0 -1
  413. package/dist/scripts/app-C56EnOMP.js +0 -216
  414. package/dist/scripts/app-C56EnOMP.js.map +0 -1
  415. package/dist/scripts/cvX-F_mx.chunk.js +0 -2
  416. package/dist/scripts/cvX-F_mx.chunk.js.map +0 -1
  417. package/dist/scripts/h34ZSRKe.chunk.js +0 -2
  418. package/dist/scripts/h34ZSRKe.chunk.js.map +0 -1
  419. package/dist/scripts/leubTuJo.chunk.js +0 -2
  420. package/dist/scripts/leubTuJo.chunk.js.map +0 -1
  421. package/dist/scripts/m5XtnRaH.chunk.js +0 -2
  422. package/dist/scripts/m5XtnRaH.chunk.js.map +0 -1
  423. package/dist/scripts/nay4aGaa.chunk.js +0 -2
  424. package/dist/scripts/nay4aGaa.chunk.js.map +0 -1
  425. package/dist/scripts/p61U8kXz.chunk.js +0 -2
  426. package/dist/scripts/p61U8kXz.chunk.js.map +0 -1
  427. package/dist/scripts/pkzD5BEm.chunk.js +0 -2
  428. package/dist/scripts/pkzD5BEm.chunk.js.map +0 -1
  429. package/dist/scripts/sc9-PV9Y.chunk.js +0 -2
  430. package/dist/scripts/sc9-PV9Y.chunk.js.map +0 -1
  431. package/dist/scripts/tAsRziXo.chunk.js +0 -8
  432. package/dist/scripts/tAsRziXo.chunk.js.map +0 -1
  433. package/dist/scripts/xrHhD6CF.chunk.js +0 -8
  434. package/dist/scripts/xrHhD6CF.chunk.js.map +0 -1
  435. package/dist/scripts/xxo027lm.chunk.js +0 -2
  436. package/dist/scripts/xxo027lm.chunk.js.map +0 -1
  437. package/vite.config.ts +0 -6
@@ -1,2 +0,0 @@
1
- import{o as u,s as j,r as C,P as H,D as o,j as n,G as M,J as I,c as v,z as g,F as L}from"./app-C56EnOMP.js";import{S as N,C as s,a as y,T}from"./DGaf-Jy9.chunk.js";import{S as _}from"./BJ0C6oH6.chunk.js";import{L as k}from"./BXKrMYdw.chunk.js";import"./-Oi3rE3V.chunk.js";import"./Bj3i6I7i.chunk.js";import"./m5XtnRaH.chunk.js";import"./DkFkYS-j.chunk.js";import"./B5OOLcT3.chunk.js";import"./CU6iZ8MR.chunk.js";import"./nay4aGaa.chunk.js";import"./8zar0u1i.chunk.js";import"./6UeJLeAd.chunk.js";import"./CEmtkty-.chunk.js";const w="_modalWidth_t2uj7_1",A={modalWidth:w},P="specialEventCalendar.eventListPopup",z=v.encloseNamespace(P),R=400,U=300;function te(t){var l,m;const i=u(j.streamablePresentation()),{hasPermissions:f}=C(),h=f(H.StudentExperience),S=new Date(t.from),D=new Date(t.to),r=u(((l=i.data)==null?void 0:l.id)&&k.calendarLivestreams({from:o.format(S,"YYYY-MM-DD"),to:o.format(D,"YYYY-MM-DD")})),c=((m=r.data)==null?void 0:m.filter(e=>e.startDate===o.format(new Date(t.date),"YYYY-MM-DD")))||[];function x(e){return h||s.isPastEvent(e)?"pastActionLabel":"actionLabel"}function b(e){var a;return g.createUrl((a=e.company.banner)==null?void 0:a.url,{size:L.Large})}function E(e){var a;return g.createUrl((a=e.company.logo)==null?void 0:a.url,{size:L.Small})}return n.jsxs(M,{title:`Events on ${_.getOrdinalDate(t.date)}`,closePopup:t.closePopup,dialogClassName:A.modalWidth,bodyClassName:"p-0",showLoadingSpinner:!r.data,children:[n.jsx(I.Scrollbars,{autoHeight:!0,autoHeightMin:U,autoHeightMax:R,children:n.jsx("div",{className:"px-3 pt-2",children:c.map((e,a)=>{var p;return n.jsx(N,{getAppLink:y().event,event:e,onClick:t.closePopup,inPopup:!0,presentationId:(p=i.data)==null?void 0:p.id,getActionLabel:()=>z(x(e.content)),getBackgroundColor:Y=>{var d;return(d=Y.company.metadata)==null?void 0:d.colour},getBannerUrl:b,getIconUrl:E,getStartTime:s.isSameTime(c,a)?null:s.getStartTime,isPastEvent:s.isPastEvent},e.content.id)})})}),n.jsxs("div",{className:"d-flex justify-content-between align-items-center p-3 border-top",children:[n.jsx(T,{}),n.jsx("button",{onClick:t.closePopup,className:"btn btn-outline-dark",children:v.getPhrase(P,"close")})]})]})}export{te as SpecialEventListView};
2
- //# sourceMappingURL=DwhG2uva.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DwhG2uva.chunk.js","sources":["../../src/apps/calendar/views/special-event-list-view/SpecialEventListView.tsx"],"sourcesContent":["import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SpecialEventListItem } from 'libs/shared/apps/calendar/components/special-event-list-item/SpecialEventListItem';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { TimezoneIndicator } from 'libs/shared/apps/streamable-learning/components/timezone-indicator/TimezoneIndicator';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Livestream, PopupViewProps, Presentation } from 'libs/shared/interfaces';\nimport { CalendarEvent } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { LivestreamRequests } from 'shared/flight-requests/LivestreamRequests';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\n\nimport { CalendarUtils } from 'apps/calendar/utils/CalendarUtils';\nimport { getCalendarAppLinks } from 'apps/calendar/views/calendar-view/CalendarViewUtils';\n\nimport styles from './special-event-list-view.module.scss';\n\nconst namespace = 'specialEventCalendar.eventListPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SCROLL_HEIGHT_MAX = 400;// in px\nconst SCROLL_HEIGHT_MIN = 300;// in px\nexport interface SpecialEventsViewQueryParams extends PopupViewProps {\n from: string;\n to: string;\n date: string;\n}\n\nexport function SpecialEventListView(props: SpecialEventsViewQueryParams): JSX.Element {\n const presentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n const { hasPermissions } = usePermissions();\n const isStudent = hasPermissions(PermissionName.StudentExperience);\n \n const fromDate = new Date(props.from);\n const toDate = new Date(props.to);\n\n const events = Flight.useBasicFetch<CalendarEvent<Livestream>[]>(presentation.data?.id\n && LivestreamRequests.calendarLivestreams({ from: DateHelper.format(fromDate, 'YYYY-MM-DD'), to: DateHelper.format(toDate, 'YYYY-MM-DD') }));\n const eventsOnDay = events.data?.filter(e => e.startDate === DateHelper.format(new Date(props.date), 'YYYY-MM-DD')) || [];\n\n function getActionLabel(livestream: Livestream): string {\n return isStudent || CalendarUtils.isPastEvent(livestream) ? 'pastActionLabel' : 'actionLabel';\n }\n\n function getBannerUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.banner?.url, { size: ImageSize.Large });\n }\n\n function getIconUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.logo?.url, { size: ImageSize.Small });\n }\n\n return (\n <Popup\n title={`Events on ${SpecialEventHelper.getOrdinalDate(props.date)}`}\n closePopup={props.closePopup}\n dialogClassName={styles.modalWidth}\n bodyClassName={'p-0'}\n showLoadingSpinner={!events.data}\n >\n <Scrollbars\n autoHeight\n autoHeightMin={SCROLL_HEIGHT_MIN}\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 pt-2'>\n {eventsOnDay.map((e, i) => (\n <SpecialEventListItem\n key={e.content.id}\n getAppLink={getCalendarAppLinks().event}\n event={e}\n onClick={props.closePopup}\n inPopup\n presentationId={presentation.data?.id}\n getActionLabel={() => getPhrase(getActionLabel(e.content))}\n getBackgroundColor={(content: Livestream) => content.company.metadata?.colour}\n getBannerUrl={getBannerUrl}\n getIconUrl={getIconUrl}\n getStartTime={!CalendarUtils.isSameTime(eventsOnDay, i) ? CalendarUtils.getStartTime : null}\n isPastEvent={CalendarUtils.isPastEvent}\n />\n ))}\n </div>\n </Scrollbars>\n <div className='d-flex justify-content-between align-items-center p-3 border-top'>\n <TimezoneIndicator />\n <button\n onClick={props.closePopup}\n className='btn btn-outline-dark'\n >\n {LanguageService.getPhrase(namespace, 'close')}\n </button>\n </div>\n </Popup>\n\n );\n}"],"names":["namespace","getPhrase","LanguageService","SCROLL_HEIGHT_MAX","SCROLL_HEIGHT_MIN","SpecialEventListView","props","presentation","Flight.useBasicFetch","PresentationRequests","hasPermissions","usePermissions","isStudent","PermissionName","fromDate","toDate","events","_a","LivestreamRequests","DateHelper","eventsOnDay","_b","getActionLabel","livestream","CalendarUtils","getBannerUrl","content","ImageHelper","ImageSize","getIconUrl","jsxs","Popup","SpecialEventHelper","styles","jsx","Scrollbars","i","SpecialEventListItem","getCalendarAppLinks","TimezoneIndicator"],"mappings":"2jBA0BMA,EAAY,sCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDG,EAAoB,IACpBC,EAAoB,IAOnB,SAASC,GAAqBC,EAAkD,SACrF,MAAMC,EAAeC,EACnBC,EAAqB,uBAAA,CAAuB,EAGxC,CAAE,eAAAC,CAAA,EAAmBC,EAAA,EACrBC,EAAYF,EAAeG,EAAe,iBAAiB,EAE3DC,EAAW,IAAI,KAAKR,EAAM,IAAI,EAC9BS,EAAS,IAAI,KAAKT,EAAM,EAAE,EAE1BU,EAASR,IAAkDS,EAAAV,EAAa,OAAb,YAAAU,EAAmB,KAC/EC,EAAmB,oBAAoB,CAAE,KAAMC,EAAW,OAAOL,EAAU,YAAY,EAAG,GAAIK,EAAW,OAAOJ,EAAQ,YAAY,CAAA,CAAG,CAAC,EACvIK,IAAcC,EAAAL,EAAO,OAAP,YAAAK,EAAa,OAAO,GAAK,EAAE,YAAcF,EAAW,OAAO,IAAI,KAAKb,EAAM,IAAI,EAAG,YAAY,KAAM,CAAA,EAEvH,SAASgB,EAAeC,EAAgC,CACtD,OAAOX,GAAaY,EAAc,YAAYD,CAAU,EAAI,kBAAoB,aAClF,CAEA,SAASE,EAAaC,EAAqB,OACzC,OAAOC,EAAY,WAAUV,EAAAS,EAAQ,QAAQ,SAAhB,YAAAT,EAAwB,IAAK,CAAE,KAAMW,EAAU,MAAO,CACrF,CAEA,SAASC,EAAWH,EAAqB,OACvC,OAAOC,EAAY,WAAUV,EAAAS,EAAQ,QAAQ,OAAhB,YAAAT,EAAsB,IAAK,CAAE,KAAMW,EAAU,MAAO,CACnF,CAEA,OACEE,EAAAA,KAACC,EAAA,CACC,MAAO,aAAaC,EAAmB,eAAe1B,EAAM,IAAI,CAAC,GACjE,WAAYA,EAAM,WAClB,gBAAiB2B,EAAO,WACxB,cAAe,MACf,mBAAoB,CAACjB,EAAO,KAE5B,SAAA,CAAAkB,EAAAA,IAACC,EAAAA,WAAA,CACC,WAAU,GACV,cAAe/B,EACf,cAAeD,EAEf,SAAA+B,EAAAA,IAAC,OAAI,UAAU,YACZ,WAAY,IAAI,CAAC,EAAGE,IAAA,OACnBF,OAAAA,EAAAA,IAACG,EAAA,CAEC,WAAYC,IAAsB,MAClC,MAAO,EACP,QAAShC,EAAM,WACf,QAAO,GACP,gBAAgBW,EAAAV,EAAa,OAAb,YAAAU,EAAmB,GACnC,eAAgB,IAAMhB,EAAUqB,EAAe,EAAE,OAAO,CAAC,EACzD,mBAAqBI,GAAA,OAAwB,OAAAT,EAAAS,EAAQ,QAAQ,WAAhB,YAAAT,EAA0B,QACvE,aAAAQ,EACA,WAAAI,EACA,aAAeL,EAAc,WAAWJ,EAAagB,CAAC,EAAiC,KAA7BZ,EAAc,aACxE,YAAaA,EAAc,WAAA,EAXtB,EAAE,QAAQ,EAAA,EAalB,CAAA,CACH,CAAA,CAAA,EAEFM,EAAAA,KAAC,MAAA,CAAI,UAAU,mEACb,SAAA,CAAAI,EAAAA,IAACK,EAAA,EAAkB,EACnBL,EAAAA,IAAC,SAAA,CACC,QAAS5B,EAAM,WACf,UAAU,uBAET,SAAAJ,EAAgB,UAAUF,EAAW,OAAO,CAAA,CAAA,CAC/C,CAAA,CACF,CAAA,CAAA,CAAA,CAIN"}
@@ -1,2 +0,0 @@
1
- import{a5 as u,a6 as c,bb as p,an as l,D as w,a1 as d,bP as _,c as E,i as f,P}from"./app-C56EnOMP.js";import{a as o}from"./CEmtkty-.chunk.js";import{R as b,a as B}from"./RnuR8yr3.chunk.js";import{P as I}from"./pkzD5BEm.chunk.js";import{V as h}from"./DGFORsAE.chunk.js";var $=(e=>(e.Screenrights="screenrights",e.Era="era",e.ClickView="clickview",e))($||{});const T={clip(e,t){return{key:`clip:${e}:${t}`,url:c.urlBuilder(`{gateway}/v1/objects/${e}`,{query:p.CLIP,permissionFilterOption:t})}},videoClips(e,t,r){return{key:`video:${e}:clips:${t}:${r}`,url:c.urlBuilder(`{gateway}/v1/objects/${e}/clips`,{query:p.CLIP_COLLECTION,permissionFilterOption:t,cursor:r})}},clipWithAllInteractives(e,t){return{key:`clip:${e}:${t}:interactives`,url:c.urlBuilder(`{gateway}/v1/objects/${e}`,{query:`${p.CLIP},interactives{status:[0,1]}`,permissionFilterOption:t}),normalize:!1}},publicClip(e,t,r,a){return{key:`clip:${e}:public:${t}`,url:c.urlBuilder(`/api/objects/${e}`,{query:"_parentVideo,_canBeConsumed,_thumbnail",permissionFilterOption:I.StripMetadata,shareId:t}),bootstrapName:`shared:object:${e}`,success:r,error:a}},sharedClip(e,t,r,a){return{key:`shared:clip:${e}`,url:c.urlBuilder(`/api/objects/${e}`,{shareId:t,query:p.CLIP}),success:r,error:a}},createClip(e,t,r,a,s){return{key:"create:clip",url:`{gateway}/v1/objects/${e}/clips`,data:t,type:u.POST,invalidationKeys:[`videos:${e}`,"my:videos"],success:r,error:a,always:s}},updateClip(e,t,r,a,s){return{key:"update:clip",url:`{gateway}/v1/objects/${e}`,data:t,type:u.PUT,success:r,error:a,always:s}},deleteClip(e,t,r,a,s){return{key:"delete:clip",url:`{gateway}/v1/objects/${e}`,type:u.DELETE,invalidationKeys:[`videos:${t}`,"my:videos","videos"],success:r,error:a,always:s}}},k={interactiveMetadata(e,t){return{url:c.urlBuilder(`{gateway}/v1/objects/${e}`,{query:p.INTERACTIVE,permissionFilterOption:t}),key:`interactive:metadata:${e}:${t}`}},videoInteractives(e,t,r){return{key:`video:${e}:interactives:${t}:${r}`,url:c.urlBuilder(`{gateway}/v1/objects/${e}/interactives`,{query:p.INTERACTIVE_COLLECTION,cursor:r}),publicUrl:c.urlBuilder(`/api/objects/${e}/interactives`,{query:p.INTERACTIVE_COLLECTION,cursor:r})}},sharedInteractiveMetadata(e,t,r,a){return{url:c.urlBuilder(`/api/objects/${e}`,{shareId:t,query:p.INTERACTIVE}),key:`shared:interactive:metadata:${e}`,success:r,error:a}},publicInteractiveMetadata(e,t,r,a){return{url:c.urlBuilder(`/api/objects/${e}`,{query:"_parentVideo[_rating],_canBeConsumed,_thumbnail",permissionFilterOption:I.StripMetadata,shareId:t}),key:`interactive:metadata:${e}:public:${t}`,bootstrapName:`shared:object:${e}`,success:r,error:a}},interactive(e){return{url:`/api/domain/v1/interactives/${e}`,key:`interactive:${e}`,normalize:!1}},createInteractive(e,t,r){return{url:"/api/domain/v1/interactives",key:"create:interactive",type:u.POST,invalidationKeys:["my:videos"],data:e,success:t,error:r}},createInteractiveMetadata(e,t,r,a){return{url:`{gateway}/v1/objects/${e}/interactives`,key:"create:interactive:metadata",type:u.POST,data:t,success:r,error:a}},updateInteractive(e,t,r,a){return{url:`/api/domain/v1/interactives/${e}`,key:"update:interactive",type:u.PUT,data:t,success:r,error:a,formatData:()=>t,invalidationKeys:[`interactive:${e}`]}},updateInteractiveMetadata(e,t,r,a){return{url:`{gateway}/v1/objects/${e}`,key:"update:interactive:metadata",type:u.PUT,data:t,success:r,error:a}},interactiveResultSet(e,t){return{url:`/api/domain/v1/analytics/interactives/${e}/metadata/${t}`,key:`interactive:result:set:${e}:${t}`}},copyInteractive(e,t,r){return{url:`/api/domain/v1/interactives/${e}/copy`,key:"copy:interactive",type:u.POST,invalidationKeys:[`interactive:${e}`,"my:videos"],success:t,error:r}},deleteInteractiveMetadata(e,t,r){return{url:`{gateway}/v1/objects/${e}`,key:"delete:interactive",type:u.DELETE,invalidationKeys:[`interactive:${e}`,"my:videos","videos"],success:t,error:r}},removeInteractiveMetadata({libraryId:e,categoryId:t,interactiveMetadataId:r}){return{url:c.urlBuilder(`/api/domain/v1/libraries/${e}/videos`,{categoryId:t,videoIds:r}),key:`remove:interactive:metadata:${r}`,type:u.DELETE,invalidationKeys:[`interactive:${r}`,"my:videos","videos"]}},contributeToCommunity(e){return{url:`/api/domain/v2/interactives/${e}/contribute`,key:"contribute:interactive",type:u.POST}},revokefromCommunity(e){return{url:`/api/domain/v2/interactives/${e}/contribute`,key:"contribute:interactive",type:u.DELETE}},isContributed(e){return{url:`/api/domain/v2/interactives/${e}/contributed`,key:`iscontributed:${e}`,normalize:!1}},updateInteraction(e){return{url:`/api/domain/v1/interactions/bulk/${e.id}`,key:"contribute:interactive",data:e,type:u.PUT,invalidationKeys:[`interactive:${e.interactiveId}`]}}},R="shared.shared-utils",i=E.encloseNamespace(R),n={isVideo(e){return(e==null?void 0:e.typeId)===l.Video},isClip(e){return(e==null?void 0:e.typeId)===l.Clip},isInteractive(e){return(e==null?void 0:e.typeId)===l.Interactive},isVideoTypeArchived(e){return(e==null?void 0:e.status)===o.Archived},isVideoType(e){return n.isVideo(e)||n.isInteractive(e)||n.isClip(e)},hasSeries(e){var t;return!!((t=e==null?void 0:e.series)!=null&&t.id)},showVideoGuidance(e){return!e(P.StudentExperience)},showInteractivesGuidance(e){var r,a;return!e||n.isInteractive(e)?!1:!!(((a=(r=e.interactives)==null?void 0:r.data)==null?void 0:a.length)||0)},showResourcesGuidance(e){var r,a,s,m;return!e||n.isInteractive(e)?!1:!!((((a=(r=e.resources)==null?void 0:r.data)==null?void 0:a.length)||0)+(((m=(s=e.links)==null?void 0:s.data)==null?void 0:m.length)||0))},getVideoProgress(e){var t,r;return e!=null&&e.lastProgressPoint?e==null?void 0:e.lastProgressPoint:(t=e==null?void 0:e._videoProgress)!=null&&t.progress?(r=e==null?void 0:e._videoProgress)==null?void 0:r.progress:0},getThumbnail(e){var t,r,a;if(!e)return null;if(n.isVideo(e))return e.thumbnail;if(e!=null&&e._thumbnail)return e._thumbnail;if(n.isClip(e))return e.thumbnail||((t=e._parentVideo)==null?void 0:t.thumbnail);if(n.isInteractive(e))return((r=e._parentVideo)==null?void 0:r.thumbnail)||((a=e._parentClip)==null?void 0:a.thumbnail)},getDuration(e){var t,r;if(e){if(n.isVideo(e))return e.duration;if(n.isInteractive(e)){if((t=e._parentClip)!=null&&t.id)return(e._parentClip.endTime-e._parentClip.startTime)*1e3;if((r=e._parentVideo)!=null&&r.duration)return e._parentVideo.duration}if(n.isClip(e))return(e.endTime-e.startTime)*1e3}},getAnalyticsEntity(e){if(n.isVideo(e))return f.Video;if(n.isInteractive(e))return f.Interactive;if(n.isClip(e))return f.Clip},getAnalyticsData(e,t={}){var a,s,m,C,g,y;if(n.isVideo(e))return{...t||{},id:e.id,name:e.name};if(n.isClip(e)){const V={...t||{},id:e.id,name:e.name};return(a=e._parentVideo)!=null&&a.id&&(V.video={id:(s=e._parentVideo)==null?void 0:s.id,name:e._parentVideo.name}),V}const r={...t,id:e.id,interactiveId:e.interactiveId,name:e.name,status:e.status,originType:e.originType};return(m=e==null?void 0:e._parentClip)!=null&&m.id&&(r.clip={id:(C=e==null?void 0:e._parentClip)==null?void 0:C.id,name:e==null?void 0:e._parentClip.name}),(g=e==null?void 0:e._parentVideo)!=null&&g.id&&(r.video={id:(y=e==null?void 0:e._parentVideo)==null?void 0:y.id,name:e==null?void 0:e._parentVideo.name}),r},getCanBeConsumed(e){var t,r;return!e||!n.isVideoType(e)?{canNavigate:!1,canConsume:!1}:e._canBeConsumed?{canNavigate:((t=e._canBeConsumed)==null?void 0:t.reason)==="login-required"&&n.isVideo(e)||e._canBeConsumed.value===!0,canConsume:e._canBeConsumed.value,reason:(r=e._canBeConsumed)==null?void 0:r.reason}:{canNavigate:!0,canConsume:!0}},getPrivacyReasoning(e,t=!1){var g;const{canConsume:r,canNavigate:a,reason:s}=n.getCanBeConsumed(e),m=()=>n.isClip(e)?i("clipParentDeleted"):n.isInteractive(e)?i("interactiveParentDeleted"):i("videoDeleted"),C=()=>n.isClip(e)?i("clipLoginRequired"):n.isInteractive(e)?i("interactiveLoginRequired"):i("videoLoginRequired");if(!r&&!a){if(t)return C();switch(s){case"rating-not-allowed":return i("ratingNotAllowed");case"video-deleted":return m();case"clickview-private":return i("clickViewPrivate");case"private":return i("genericCannotAccess");case"login-required":return C();case"restricted-access":{const y=b.getWeightedRestriction((g=e._restrictions)==null?void 0:g.value);return(y==null?void 0:y.type)===B.Custom?i("awaitingApproval"):i("restrictedAccess")}default:return i("genericCannotAccess")}}return n.isInteractive(e)&&e.status===o.Draft?i("draftInteractive"):""},getTitle(e){if(e.name)return n.isInteractive(e)&&e.status===o.Draft?i("draftInteractiveTitle",{name:e.name}):e.name;const{canConsume:t,reason:r}=n.getCanBeConsumed(e);return i(!t&&r==="private"?"privateVideo":!t&&r==="video-deleted"?"videoUnavailable":"privateVideo")},getParentVideo(e){if(n.isVideo(e))return e;if(n.isClip(e)||n.isInteractive(e))return e._parentVideo},getRating(e){var t,r,a;return n.isVideo(e)?((t=e._rating)==null?void 0:t.value)||e.rating:(a=(r=e==null?void 0:e._parentVideo)==null?void 0:r._rating)==null?void 0:a.value},getVideoRequest(e,t,r){if(r){switch(t){case l.Video:return h.sharedVideo(e,r);case l.Clip:return T.sharedClip(e,r);case l.Interactive:return k.sharedInteractiveMetadata(e,r)}d.throw(new _("Unsupported master type"))}switch(t){case l.Video:return h.video(e);case l.Clip:return T.clip(e);case l.Interactive:return k.interactiveMetadata(e)}d.throw(new _("Unsupported master type"))},isBroadcast(e){var t,r;return!!((r=(t=e==null?void 0:e.contentLicences)==null?void 0:t.data)!=null&&r.some(a=>a.systemName===$.Era||a.systemName===$.Screenrights))},getReleaseDate(e){return e&&e.dateReleased&&n.isBroadcast(e)?w.format(e.dateReleased,"DD/MM/YYYY"):""},canViewOriginalVideo(e){var t,r;return!!((r=(t=e==null?void 0:e._parentVideo)==null?void 0:t._canBeConsumed)!=null&&r.value)},getTrackingCode(e){if(n.isVideo(e))return e.trackingCode;if(n.isClip(e)||n.isInteractive(e))return e._parentVideo.trackingCode},isInExchange(e){var t,r;return!!((r=(t=e==null?void 0:e.libraries)==null?void 0:t.data)!=null&&r.some(a=>a.typeId===l.ExchangeCollection))},canViewUploadDate(e){return!(!e||!e.dateCreated||!e._isClickViewCurated||e._isClickViewCurated.value)}};export{T as C,n as V};
2
- //# sourceMappingURL=DxJlWHZr.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DxJlWHZr.chunk.js","sources":["../../../../libs/shared/src/enums/ContentLicenceType.ts","../../../../libs/shared/src/flight-requests/ClipRequests.ts","../../../../libs/shared/src/flight-requests/InteractiveRequests.ts","../../../../libs/shared/src/utils/VideoHelper.ts"],"sourcesContent":["export enum ContentLicenseType {\n Screenrights = 'screenrights',\n Era = 'era',\n ClickView = 'clickview'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { Clip, CreateOrUpdateClipRequest } from 'libs/shared/interfaces';\n\nexport const ClipRequests = {\n clip(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n key: `clip:${id}:${permissionFilterOption}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.CLIP,\n permissionFilterOption\n })\n };\n },\n\n videoClips(parentId: string, permissionFilterOption?: PermissionFilterOption, cursor?: string) {\n return {\n key: `video:${parentId}:clips:${permissionFilterOption}:${cursor}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${parentId}/clips`, {\n query: SharedWithStatements.CLIP_COLLECTION,\n permissionFilterOption,\n cursor\n })\n };\n },\n\n clipWithAllInteractives(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n key: `clip:${id}:${permissionFilterOption}:interactives`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: `${SharedWithStatements.CLIP},interactives{status:[0,1]}`,\n permissionFilterOption\n }),\n normalize: false\n };\n },\n\n publicClip(\n id: string,\n shareId?: string,\n success?: (clip: Clip) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n key: `clip:${id}:public:${shareId}`,\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: '_parentVideo,_canBeConsumed,_thumbnail',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedClip(\n id: string,\n shareId: string,\n success?: (clip: Clip) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n key: `shared:clip:${id}`,\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.CLIP\n }),\n success,\n error\n };\n },\n\n createClip(\n videoId: string,\n data: CreateOrUpdateClipRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: 'create:clip',\n url: `{gateway}/v1/objects/${videoId}/clips`,\n data,\n type: HttpVerbs.POST,\n invalidationKeys: [ `videos:${videoId}`, 'my:videos' ],\n success,\n error,\n always\n };\n },\n\n updateClip(\n id: string,\n data: CreateOrUpdateClipRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: 'update:clip',\n url: `{gateway}/v1/objects/${id}`,\n data,\n type: HttpVerbs.PUT,\n success,\n error,\n always\n };\n },\n\n deleteClip(\n id: string,\n videoId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `delete:clip`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `videos:${videoId}`, 'my:videos', 'videos' ],\n success,\n error,\n always\n };\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { CreateInteractiveMetadataRequest, CreateInteractiveRequest, EditInteractiveMetadataOriginRequest, EditInteractiveMetadataRequest, EditInteractiveRequest, Interaction, InteractiveMetadata } from 'libs/shared/interfaces';\n\nexport const InteractiveRequests = {\n interactiveMetadata(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.INTERACTIVE,\n permissionFilterOption\n }),\n key: `interactive:metadata:${id}:${permissionFilterOption}`\n };\n },\n\n videoInteractives(\n parentId: string,\n permissionFilterOption?: PermissionFilterOption,\n cursor?: string\n ): Flight.PublicRequest {\n return {\n key: `video:${parentId}:interactives:${permissionFilterOption}:${cursor}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${parentId}/interactives`, {\n query: SharedWithStatements.INTERACTIVE_COLLECTION,\n cursor\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${parentId}/interactives`, {\n query: SharedWithStatements.INTERACTIVE_COLLECTION,\n cursor\n })\n };\n },\n\n sharedInteractiveMetadata(\n id: string,\n shareId: string,\n success?: (interactiveMetadata: InteractiveMetadata) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.INTERACTIVE\n }),\n key: `shared:interactive:metadata:${id}`,\n success,\n error\n };\n },\n publicInteractiveMetadata(\n id: string,\n shareId?: string,\n success?: (interactive: InteractiveMetadata) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: '_parentVideo[_rating],_canBeConsumed,_thumbnail',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n key: `interactive:metadata:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n interactive(id: string): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${id}`,\n key: `interactive:${id}`,\n normalize: false\n };\n },\n createInteractive(\n data: CreateInteractiveRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: '/api/domain/v1/interactives',\n key: 'create:interactive',\n type: HttpVerbs.POST,\n invalidationKeys: ['my:videos'],\n data,\n success,\n error\n };\n },\n createInteractiveMetadata(\n videoId: string,\n data: CreateInteractiveMetadataRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}/interactives`,\n key: 'create:interactive:metadata',\n type: HttpVerbs.POST,\n data,\n success,\n error\n };\n },\n updateInteractive(\n id: string,\n data: EditInteractiveRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${id}`,\n key: 'update:interactive',\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n /* Update state because domain doesn't return the updated object */\n formatData: () => data,\n invalidationKeys: [`interactive:${id}`]\n };\n },\n updateInteractiveMetadata(\n id: string,\n data: EditInteractiveMetadataRequest | EditInteractiveMetadataOriginRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'update:interactive:metadata',\n type: HttpVerbs.PUT,\n data,\n success,\n error\n };\n },\n interactiveResultSet(interactiveId: string, interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`\n };\n },\n copyInteractive(\n interactiveId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${interactiveId}/copy`,\n key: 'copy:interactive',\n type: HttpVerbs.POST,\n invalidationKeys: [ `interactive:${interactiveId}`, 'my:videos' ],\n success,\n error\n };\n },\n deleteInteractiveMetadata(\n interactiveMetadataId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${interactiveMetadataId}`,\n key: 'delete:interactive',\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `interactive:${interactiveMetadataId}`, 'my:videos', 'videos' ],\n success,\n error\n };\n },\n removeInteractiveMetadata({\n libraryId,\n categoryId,\n interactiveMetadataId\n }: {\n libraryId: string;\n categoryId: string;\n interactiveMetadataId: string;\n }): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/domain/v1/libraries/${libraryId}/videos`, { categoryId, videoIds: interactiveMetadataId }),\n key: `remove:interactive:metadata:${interactiveMetadataId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `interactive:${interactiveMetadataId}`, 'my:videos', 'videos' ]\n };\n },\n contributeToCommunity(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contribute`,\n key: 'contribute:interactive',\n type: HttpVerbs.POST\n };\n },\n revokefromCommunity(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contribute`,\n key: 'contribute:interactive',\n type: HttpVerbs.DELETE\n };\n },\n isContributed(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contributed`,\n key: `iscontributed:${interactiveMetadataId}`,\n normalize: false\n };\n },\n updateInteraction(interaction: Interaction) {\n return {\n url: `/api/domain/v1/interactions/bulk/${interaction.id}`,\n key: 'contribute:interactive',\n data: interaction,\n type: HttpVerbs.PUT,\n invalidationKeys: [`interactive:${interaction.interactiveId}`]\n };\n }\n};\n","import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { EntityType } from 'libs/analytics/interfaces';\n\nimport { ContentLicenseType } from 'libs/shared/enums/ContentLicenceType';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { BaseObject, CanBeConsumedReason, Clip, InteractiveMetadata, Rating, Thumbnail, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { PermissionName } from '../enums/PermissionName';\nimport { HasPermissionsFunc } from '../hooks/usePermissions';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const VideoHelper = {\n isVideo(obj: BaseObject): obj is Video {\n return obj?.typeId === MasterType.Video;\n },\n\n isClip(obj: BaseObject): obj is Clip {\n return obj?.typeId === MasterType.Clip;\n },\n\n isInteractive(obj: BaseObject): obj is InteractiveMetadata {\n return obj?.typeId === MasterType.Interactive;\n },\n\n isVideoTypeArchived(obj: VideoTypes): boolean {\n return obj?.status === CurationStatus.Archived;\n },\n\n /**\n * Returns true of the object is a video, clip or interactive\n */\n isVideoType(object: BaseObject): object is Video | Clip | InteractiveMetadata {\n return VideoHelper.isVideo(object) || VideoHelper.isInteractive(object) || VideoHelper.isClip(object);\n },\n\n hasSeries(video: Video): boolean {\n return !!video?.series?.id;\n },\n\n showVideoGuidance(hasPermissions: HasPermissionsFunc): boolean {\n return !hasPermissions(PermissionName.StudentExperience);\n },\n\n showInteractivesGuidance(video: VideoTypes): boolean {\n if (!video || VideoHelper.isInteractive(video))\n return false;\n\n const interactiveCount = video.interactives?.data?.length || 0;\n\n return !!interactiveCount;\n },\n\n showResourcesGuidance(video: VideoTypes): boolean {\n if (!video || VideoHelper.isInteractive(video))\n return false;\n\n const resourceCount = (\n (video.resources?.data?.length || 0) +\n (video.links?.data?.length || 0)\n );\n\n return !!resourceCount;\n },\n\n getVideoProgress(video: Video): number {\n if (video?.lastProgressPoint)\n return video?.lastProgressPoint;\n\n // Use virtual assoc\n if (video?._videoProgress?.progress)\n return video?._videoProgress?.progress;\n\n return 0;\n },\n\n getThumbnail(video: VideoTypes): Thumbnail {\n if (!video)\n return null;\n\n if (VideoHelper.isVideo(video))\n return video.thumbnail;\n\n if (video?._thumbnail)\n return video._thumbnail;\n\n // Fallbacks for virtual assoc if needed\n if (VideoHelper.isClip(video))\n return video.thumbnail || video._parentVideo?.thumbnail;\n\n if (VideoHelper.isInteractive(video))\n return video._parentVideo?.thumbnail || video._parentClip?.thumbnail;\n },\n\n getDuration(video: VideoTypes): number {\n if (!video)\n return;\n\n if (VideoHelper.isVideo(video))\n return video.duration;\n\n if (VideoHelper.isInteractive(video)) {\n if (video._parentClip?.id)\n return (video._parentClip.endTime - video._parentClip.startTime) * 1000;\n\n if (video._parentVideo?.duration)\n return video._parentVideo.duration;\n }\n\n if (VideoHelper.isClip(video))\n return (video.endTime - video.startTime) * 1000;\n },\n\n getAnalyticsEntity(video: VideoTypes): EntityType {\n if (VideoHelper.isVideo(video))\n return EntityType.Video;\n\n if (VideoHelper.isInteractive(video))\n return EntityType.Interactive;\n\n if (VideoHelper.isClip(video))\n return EntityType.Clip;\n },\n\n getAnalyticsData(\n video: VideoTypes,\n extraAnalyticsData: HashObject = {}\n ): HashObject {\n if (VideoHelper.isVideo(video)) {\n return {\n ...(extraAnalyticsData || {}),\n id: video.id,\n name: video.name\n };\n }\n\n if (VideoHelper.isClip(video)) {\n const data: HashObject = {\n ...(extraAnalyticsData || {}),\n id: video.id,\n name: video.name\n };\n\n if (video._parentVideo?.id)\n data.video = { id: video._parentVideo?.id, name: video._parentVideo.name };\n\n return data;\n }\n\n const data: HashObject = {\n ...extraAnalyticsData,\n id: video.id,\n interactiveId: video.interactiveId,\n name: video.name,\n status: video.status,\n originType: video.originType\n };\n\n if (video?._parentClip?.id)\n data.clip = { id: video?._parentClip?.id, name: video?._parentClip.name };\n\n if (video?._parentVideo?.id)\n data.video = { id: video?._parentVideo?.id, name: video?._parentVideo.name };\n \n return data;\n },\n\n getCanBeConsumed(video: BaseObject): {\n canNavigate: boolean,\n canConsume: boolean,\n reason?: CanBeConsumedReason\n } {\n if (!video || !VideoHelper.isVideoType(video)) {\n return {\n canNavigate: false,\n canConsume: false\n };\n }\n\n if (video._canBeConsumed) {\n return {\n /**\n * Product navigation is enabled for \"login-required\" reason to support public access. \n * The video itself cannot be consumed, however, clients can allow users to browse the platform.\n * \n * Note: canNavigate is initially available for just videos. Interactives and Clips will be supported in Y2.\n */\n canNavigate: (video._canBeConsumed?.reason === 'login-required' && VideoHelper.isVideo(video)) || video._canBeConsumed.value === true,\n canConsume: video._canBeConsumed.value,\n reason: video._canBeConsumed?.reason\n };\n }\n\n /**\n * Many of the components shared between online and lite read this value.\n * Online doesn't fetch or care about this value, which means by this point it should\n * still be null. In this case, we just set it to true so that the components can render\n * as normal.\n */\n return {\n canNavigate: true,\n canConsume: true\n };\n },\n\n getPrivacyReasoning(video: VideoTypes, showSignIn: boolean = false): string {\n const { canConsume, canNavigate, reason } = VideoHelper.getCanBeConsumed(video);\n\n const getNoLongerAvailableText = () => {\n if (VideoHelper.isClip(video))\n return getPhrase('clipParentDeleted');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveParentDeleted');\n\n return getPhrase('videoDeleted');\n };\n\n const getLoginRequiredText = () => {\n if (VideoHelper.isClip(video))\n return getPhrase('clipLoginRequired');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveLoginRequired');\n\n return getPhrase('videoLoginRequired');\n };\n\n if (!canConsume && !canNavigate) {\n if (showSignIn)\n return getLoginRequiredText();\n\n switch (reason) {\n case 'rating-not-allowed': {\n return getPhrase('ratingNotAllowed');\n }\n\n case 'video-deleted': {\n return getNoLongerAvailableText();\n }\n\n case 'clickview-private': {\n return getPhrase('clickViewPrivate');\n }\n\n case 'private': {\n return getPhrase('genericCannotAccess');\n }\n\n case 'login-required': {\n return getLoginRequiredText();\n }\n\n case 'restricted-access': {\n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n\n if (restriction?.type === RestrictionType.Custom)\n return getPhrase('awaitingApproval');\n\n return getPhrase('restrictedAccess');\n }\n\n default: {\n return getPhrase('genericCannotAccess');\n }\n }\n }\n\n if (VideoHelper.isInteractive(video) && video.status === CurationStatus.Draft)\n return getPhrase('draftInteractive');\n\n return '';\n },\n\n getTitle(video: VideoTypes): string {\n if (video.name) {\n if (VideoHelper.isInteractive(video) && video.status === CurationStatus.Draft) {\n return getPhrase('draftInteractiveTitle', { name: video.name });\n }\n\n return video.name;\n }\n\n const { canConsume, reason } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume && reason === 'private')\n return getPhrase('privateVideo');\n\n if (!canConsume && reason === 'video-deleted')\n return getPhrase('videoUnavailable');\n\n return getPhrase('privateVideo');\n },\n\n getParentVideo(video: VideoTypes): Video | null {\n if (VideoHelper.isVideo(video))\n return video;\n\n if (VideoHelper.isClip(video) || VideoHelper.isInteractive(video))\n return video._parentVideo;\n },\n\n getRating(video: VideoTypes): Rating {\n if (VideoHelper.isVideo(video))\n return video._rating?.value || video.rating;\n\n return video?._parentVideo?._rating?.value;\n },\n\n getVideoRequest(\n objectId: string,\n objectTypeId: MasterType,\n shareId?: string\n ): Flight.Request {\n if (shareId) {\n switch (objectTypeId) {\n case MasterType.Video:\n return VideoRequests.sharedVideo(objectId, shareId);\n case MasterType.Clip:\n return ClipRequests.sharedClip(objectId, shareId);\n case MasterType.Interactive:\n return InteractiveRequests.sharedInteractiveMetadata(objectId, shareId);\n }\n\n Core.ErrorHelper.throw(new DevError('Unsupported master type'));\n }\n\n switch (objectTypeId) {\n case MasterType.Video:\n return VideoRequests.video(objectId);\n case MasterType.Clip:\n return ClipRequests.clip(objectId);\n case MasterType.Interactive:\n return InteractiveRequests.interactiveMetadata(objectId);\n }\n\n Core.ErrorHelper.throw(new DevError('Unsupported master type'));\n },\n\n isBroadcast(video: Video): boolean {\n return !!video?.contentLicences?.data?.some(l =>\n l.systemName === ContentLicenseType.Era ||\n l.systemName === ContentLicenseType.Screenrights);\n },\n\n getReleaseDate(video: Video): string {\n if (!video)\n return '';\n\n if (video.dateReleased && VideoHelper.isBroadcast(video))\n return DateHelper.format(video.dateReleased, 'DD/MM/YYYY');\n\n return '';\n },\n\n canViewOriginalVideo(video: Clip | InteractiveMetadata): boolean {\n return !!video?._parentVideo?._canBeConsumed?.value;\n },\n\n getTrackingCode(video: VideoTypes): string | undefined {\n if (VideoHelper.isVideo(video))\n return video.trackingCode;\n\n if (VideoHelper.isClip(video) || VideoHelper.isInteractive(video))\n return video._parentVideo.trackingCode;\n },\n\n isInExchange(video: Video): boolean {\n return !!video?.libraries?.data?.some(l => l.typeId === MasterType.ExchangeCollection);\n },\n\n canViewUploadDate(video: Video): boolean {\n if (!video || !video.dateCreated)\n return false;\n\n if (!video._isClickViewCurated || video._isClickViewCurated.value)\n return false;\n\n return true;\n }\n};\n"],"names":["ContentLicenseType","ClipRequests","id","permissionFilterOption","UrlHelper","SharedWithStatements","parentId","cursor","shareId","success","error","PermissionFilterOption","videoId","data","always","HttpVerbs","InteractiveRequests","interactiveId","interactiveMetadataId","libraryId","categoryId","interaction","namespace","getPhrase","LanguageService","VideoHelper","obj","MasterType","CurationStatus","object","video","_a","hasPermissions","PermissionName","_b","_d","_c","EntityType","extraAnalyticsData","_e","_f","showSignIn","canConsume","canNavigate","reason","getNoLongerAvailableText","getLoginRequiredText","restriction","RestrictionHelper","RestrictionType","objectId","objectTypeId","VideoRequests","Core.ErrorHelper","DevError","l","DateHelper"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{ah as x,bu as j,j as o,ar as T,O as p,M as $,g as G,bY as I}from"./app-C56EnOMP.js";import{a as f,u as Q,W as U,S as q,C as K}from"./BUhbk0mt.chunk.js";import{W as C,a as w}from"./DSq4f4jm.chunk.js";import{u as V}from"./DEP24A-f.chunk.js";import{u as Y}from"./B5OOLcT3.chunk.js";import{P as J}from"./CPXlV0fg.chunk.js";import{e as _}from"./Z2sDSVPb.chunk.js";function Z(t,i,e=[]){let l;const n=()=>{t(),window.clearTimeout(l),l=window.setTimeout(i,100)};x.useEffect(()=>(window.addEventListener("resize",i?n:t),()=>window.removeEventListener("resize",i?n:t)),[...e])}const tt=(t,i,e)=>()=>{t.container.current&&(t.container.current.style.transition=""),i({type:f.Resize,payload:{elementRefs:t,mediaQuery:e}})},et=t=>()=>{t.current&&(t.current.style.transition="transform .4s ease-in-out")},it=(t,i,e,l,n)=>s=>{const r=s.clientX;let a=l;a||(a={...i,initialMouseX:r},n(a),t.current.style.transition=""),e({type:f.Drag,payload:{widgetSnapshot:a,currentMouseX:r}})},nt=(t,i)=>()=>{t.current.style.transition="transform .4s ease-in-out",i(null)};function M(t){return t===j.XS?200:t===j.SM||t===j.MD?350:500}const E={offset:0,containerLeftPosition:null,containerRightPosition:null,firstElementPosition:null,lastElementPosition:null,hideLeftButton:!0,hideRightButton:!0,maxSlideDistance:0,leftOffsetLimit:null},W=t=>{const{container:i,lastElement:e}=t.elementRefs;if(!(i!=null&&i.current)||!(e!=null&&e.current))return E;const l=i.current.getBoundingClientRect(),n=l.left,s=l.right,r=n,a=e.current.getBoundingClientRect().right,d=s-a;return{...E,containerLeftPosition:n,containerRightPosition:s,firstElementPosition:r,lastElementPosition:a,hideRightButton:a<s,leftOffsetLimit:d,maxSlideDistance:M(t.mediaQuery)}},ot=t=>({...W({...t,...t.elementRefs}),maxSlideDistance:M(t.mediaQuery)}),st=t=>{const{firstElementPosition:i,lastElementPosition:e,maxSlideDistance:l,offset:n,containerRightPosition:s}=t,r=e-s>=l?l:e-s;return{firstElementPosition:i-r,lastElementPosition:e-r,offset:n-r,hideRightButton:e-r===s,hideLeftButton:!1}},at=t=>{const{containerLeftPosition:i,firstElementPosition:e,lastElementPosition:l,maxSlideDistance:n,offset:s}=t,r=e+n<=i,a=r?n:Math.abs(s);return{firstElementPosition:e+a,lastElementPosition:l+a,offset:s+a,hideLeftButton:!r||e+a===i,hideRightButton:!1}},rt=(t,i)=>{const{widgetSnapshot:e,currentMouseX:l}=i;if(e.hideLeftButton&&e.hideRightButton)return{};const n=e.initialMouseX-l;let s=e.offset-n,r=e.firstElementPosition-n,a=e.lastElementPosition-n,d=!1,h=!1;return r>t.containerLeftPosition&&(s=0,r=t.containerLeftPosition,a=t.lastElementPosition,d=!0),a<=t.containerRightPosition&&(s=t.leftOffsetLimit,r=t.containerLeftPosition-Math.abs(t.leftOffsetLimit),a=e.containerRightPosition,h=!0),{offset:s,firstElementPosition:r,lastElementPosition:a,hideLeftButton:d,hideRightButton:h}};function lt(t,i){switch(i.type){case f.Init:return{...t,...W(i.payload)};case f.Resize:return{...t,...ot(i.payload)};case f.Next:return{...t,...st(t)};case f.Previous:return{...t,...at(t)};case f.Drag:return{...t,...rt(t,i.payload)};default:return t}}const dt="_itemSpacing_1j5ri_1",ct="_header_1j5ri_4",ut="_mobileScroll_1j5ri_8",gt="_leftGradient_1j5ri_16",ft="_leftGradientNoPadding_1j5ri_19",mt="_leftButton_1j5ri_22",ht="_leftButtonNoPadding_1j5ri_25",Pt="_rightGradient_1j5ri_28",xt="_rightGradientNoPadding_1j5ri_31",Nt="_rightButton_1j5ri_34",yt="_rightButtonNoPadding_1j5ri_37",g={itemSpacing:dt,header:ct,mobileScroll:ut,leftGradient:gt,leftGradientNoPadding:ft,leftButton:mt,leftButtonNoPadding:ht,rightGradient:Pt,rightGradientNoPadding:xt,rightButton:Nt,rightButtonNoPadding:yt};Bt.defaultProps={heading:"",description:"",childComponentProps:{}};function Bt(t){const{childComponent:i,staticChildren:e,getWidgetItemAnalyticsData:l=()=>{}}=t,[n,s]=x.useReducer(lt,E),[r,a]=x.useState(null),d={container:x.useRef(null),firstElement:x.useRef(null),lastElement:x.useRef(null)},h=V(),L=I.isTabletOrMobile(),{dynamicAttributes:D,focusNext:b,focusPrev:A,onFocusWidget:O,onBlurWidget:v}=Q({type:"dynamic",state:n,containerRef:d.container,mediaQuery:h});Z(tt(d,s,h),et(d.container),[h]);const{ref:H,inView:k}=Y({prevent:!t.lazyLoad});let u=t.collection;!t.collection&&T.isFunction(t.fetch)&&(u=t.fetch(k).data),x.useEffect(()=>{!u||p.isEmpty(u)||s({type:f.Init,payload:{elementRefs:d,mediaQuery:h}})},[u]);function z(){if(!u)return;const P=(e==null?void 0:e.filter(c=>c.position==="start"))??[],y=(e==null?void 0:e.filter(c=>c.position==="end"))??[];let B=u.map((c,m)=>{let N;c===G.first(u)&&(P!=null&&P.length)&&(N=d.firstElement),c===G.last(u)&&!(y!=null&&y.length)&&(N=d.lastElement);const F=m+1===u.length;return o.jsx("li",{id:c.id,ref:N,onFocus:()=>O(m),onBlur:()=>v(),className:`${g.itemSpacing} ${t.childClassName||""} ${F&&L?"pe-4":""}`,...D[c.id],children:o.jsx(i,{getChildAppLink:t.getChildAppLink,data:c,getSubtitle:t.getSubtitle,analyticsData:{itemIndex:m,...t.analyticsData,...l(c)},analyticsOptions:{...t==null?void 0:t.analyticsOptions,..._.getSliderItemAnalyticsOptions()},...t.childComponentProps})},c.id)});return P.length&&(B=[...P.map((c,m)=>{const N=c.component;return o.jsx("li",{ref:m===0?d.firstElement:null,className:`${g.itemSpacing} ${t.childClassName||""}`,children:o.jsx(N,{})},`first-widget-component:${m}`)}),...B]),y.length&&(B=[...B,...y.map((c,m)=>{const N=c.component;return o.jsx("li",{ref:m===y.length-1?d.lastElement:null,className:`${g.itemSpacing} ${t.childClassName||""}`,children:o.jsx(N,{})},`end-widget-component:${m}`)})]),o.jsx(o.Fragment,{children:B})}const X=x.useMemo(z,[u,D,n.offset,h,...t.widgetDataDeps||[]]);if(u&&!u.length&&!(e!=null&&e.length))return o.jsx(o.Fragment,{});if(!u||p.isEmpty(u))return o.jsx("div",{ref:H,children:o.jsx(Lt,{partialLoadingComponent:t.partialLoadingComponent,partialLoadingOptions:t.partialLoadingOptions})});const R=P=>({...t.analyticsData,id:t.id,name:t.heading,direction:P===f.Next?"right":"left"}),S=L||t.hideButtons;return o.jsxs("div",{className:`${t.noNegativePadding?"":"mx-n4"}`,children:[o.jsx("div",{className:`px-4 ${g.header}`,children:o.jsx(U,{name:t.heading,description:t.description,appLink:t.headingAppLink,showSeeMoreLink:!!t.headingAppLink})}),o.jsx("div",{className:"position-relative",children:o.jsx("div",{className:`${t.noNegativePadding?"":"px-4"} py-3 my-n3 position-relative ${L?g.mobileScroll:"overflow-hidden-x"}`,children:o.jsxs("div",{className:`position-relative ${t.hideButtons?"overflow-hidden-x":""}`,children:[!S&&o.jsx(C,{direction:w.Left,onClick:()=>{A(),s({type:f.Previous}),$.logUserAction(R(f.Previous),_.getSliderAnalyticsOptions())},leftButtonClassName:`${g.leftButton} ${t.noNegativePadding?g.leftButtonNoPadding:""}`,leftGradientClassName:`${g.leftGradient} ${t.noNegativePadding?g.leftGradientNoPadding:""}`,hide:n.hideLeftButton,useGradientBackdrop:!0}),o.jsx(q,{position:n.offset,positionType:K.Pixels,onDrag:it(d.container,n,s,r,a),onDragEnd:nt(d.container,a),ref:d.container,children:X}),!S&&o.jsx(C,{direction:w.Right,onClick:()=>{b(),s({type:f.Next}),$.logUserAction(R(f.Next),_.getSliderAnalyticsOptions())},hide:n.hideRightButton,rightButtonClassName:`${g.rightButton} ${t.noNegativePadding?g.rightButtonNoPadding:""}`,rightGradientClassName:`${g.rightGradient} ${t.noNegativePadding?g.rightGradientNoPadding:""}`,useGradientBackdrop:!0})]})})})]})}const Lt=t=>{const{partialLoadingComponent:i,partialLoadingOptions:e}=t;return o.jsx("div",{className:"d-flex flex-nowrap overflow-hidden",children:J.getPartialLoadingItems(e).map((l,n)=>o.jsx(i,{},n))})};export{Bt as D,Lt as P,Z as u};
2
- //# sourceMappingURL=DxmeZ4C9.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DxmeZ4C9.chunk.js","sources":["../../../../libs/shared/src/hooks/UseResizeListener.ts","../../../../libs/shared/src/components/widgets/dynamic-widget/DynamicWidgetEventHandlers.ts","../../../../libs/shared/src/components/widgets/dynamic-widget/DynamicWidgetReducer.tsx","../../../../libs/shared/src/components/widgets/dynamic-widget/DynamicWidget.tsx"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Hook function for listening to scroll events\n * @param onResize - gets called on resize.\n * @param onResizeEnd (optional) - gets called 100ms after the last resize event. Timer restarts everytime the callback\n * runs so that endCallback only fires after a stretch of resize events.\n * @param dependencies - values from the component (e.g. state, props and functions) that are used \n * inside the effect hook.\n */\nexport function useResizeListener(onResize: () => void, onResizeEnd?: () => void, dependencies: any[] = []): void {\n let resizeTimeout: number;\n\n const onResizeModified = () => {\n onResize();\n\n window.clearTimeout(resizeTimeout);\n resizeTimeout = window.setTimeout(onResizeEnd, 100);\n };\n\n React.useEffect(() => {\n window.addEventListener('resize', onResizeEnd ? onResizeModified : onResize);\n return () => window.removeEventListener('resize', onResizeEnd ? onResizeModified : onResize);\n }, [...dependencies]);\n}","import { ReducerActions } from 'libs/common/react/interfaces';\n\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\nimport { SlidingListRefs } from 'libs/shared/interfaces/SlidingListRefs';\n\nimport { DynamicWidgetState } from './DynamicWidgetReducer';\n\ninterface WidgetSnapshot extends DynamicWidgetState {\n initialMouseX: number;\n}\n\n/**\n * Resize events\n */\nexport const getResizeHandler = (\n elementRefs: SlidingListRefs,\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction>>,\n mediaQuery: MediaQueryStrings\n) => () => {\n if (elementRefs.container.current)\n elementRefs.container.current.style.transition = '';\n\n dispatch({\n type: WidgetInteraction.Resize,\n payload: {\n elementRefs,\n mediaQuery\n }\n });\n};\n\nexport const getResizeEndHandler = (containerRef: React.MutableRefObject<HTMLUListElement>) => () => {\n if (containerRef.current)\n containerRef.current.style.transition = 'transform .4s ease-in-out';\n};\n\nexport const getDragHandler = (\n containerRef: React.MutableRefObject<HTMLUListElement>,\n widgetState: DynamicWidgetState,\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction>>,\n widgetSnapshot: WidgetSnapshot,\n setWidgetSnapshot: React.Dispatch<WidgetSnapshot>\n) => (event: React.DragEvent<HTMLUListElement>): void => {\n const mouseX = event.clientX;\n\n let snapshot = widgetSnapshot;\n\n if (!snapshot) {\n snapshot = { ...widgetState, initialMouseX: mouseX };\n setWidgetSnapshot(snapshot);\n containerRef.current.style.transition = '';\n }\n\n dispatch({\n type: WidgetInteraction.Drag,\n payload: {\n widgetSnapshot: snapshot,\n currentMouseX: mouseX\n }\n });\n};\n\nexport const getDragEndHandler = (\n containerRef: React.MutableRefObject<HTMLUListElement>,\n setWidgetSnapshot: React.Dispatch<WidgetSnapshot>\n) => () => {\n containerRef.current.style.transition = 'transform .4s ease-in-out';\n setWidgetSnapshot(null);\n};","import { ReducerActions } from 'libs/common/react/interfaces';\n\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\nimport { SlidingListRefs } from 'libs/shared/interfaces/SlidingListRefs';\n\nexport interface DynamicWidgetState {\n /**\n * X-position argument for `translate3d()` to determine where the slider is positioned.\n */\n offset: number;\n\n /**\n * Left position of the slider container.\n * Set on `Init`, and updated on `Resize`.\n * Used for calculations on `Previous`, or for dragging to the right.\n */\n containerLeftPosition: number;\n\n /**\n * Right position of the slider container.\n * Set on Init, and updated on Resize.\n * Used for calculations on `Next`, or for dragging to the left.\n */\n containerRightPosition: number;\n\n /**\n * The position of the left edge of the very first element in the slider list.\n * Initially this will always be equal to `containerLeftPosition`.\n */\n firstElementPosition: number;\n\n /**\n * The position of the right edge of the very last element in the slider list.\n */\n lastElementPosition: number;\n\n /**\n * True when `firstElementPosition === containerLeftPosition`.\n */\n hideLeftButton: boolean;\n\n /**\n * True when `lastElementPositon === containerRightPosition`.\n */\n hideRightButton: boolean;\n\n /**\n * When clicking left or right, this number is the max distance in pixels that the slider.\n * will move.\n * Default 300.\n * Can only be set once on `Init` action.\n */\n maxSlideDistance: number;\n\n /**\n * This is calculated on `Init`, and is the lowest number the `offset` state can ever be.\n * This is needed for the `Drag` event, as the `Drag` event can only calculate whole numbers.\n * 99% of the time, the leftOffsetLimit is a very specific decimal number, so we calculate it\n * on `Init` and reference it on `Drag` events when necessary.\n */\n leftOffsetLimit: number;\n}\n\nfunction getMaxSlideDistance(mediaQuery: MediaQueryStrings): number {\n if (mediaQuery === MediaQueryStrings.XS)\n return 200;\n\n if (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD)\n return 350;\n\n return 500;\n}\n\n/**\n * `null` values are initialized in the `Init` action. This is dispatched\n * later, because it uses JQuery elements that aren't immediately available\n * when `useReducer` is called.\n */\nexport const initialSliderState: DynamicWidgetState = {\n offset: 0,\n containerLeftPosition: null,\n containerRightPosition: null,\n firstElementPosition: null,\n lastElementPosition: null,\n hideLeftButton: true,\n hideRightButton: true,\n maxSlideDistance: 0,\n leftOffsetLimit: null\n};\n\ninterface InitPayload {\n elementRefs: SlidingListRefs;\n mediaQuery: MediaQueryStrings;\n}\n\nconst onInit = (payload: InitPayload): DynamicWidgetState => {\n const { container, lastElement } = payload.elementRefs;\n\n if (!container?.current || !lastElement?.current)\n return initialSliderState;\n\n const containerRect = container.current.getBoundingClientRect();\n const containerLeftPosition = containerRect.left;\n const containerRightPosition = containerRect.right;\n\n const firstElementPosition = containerLeftPosition;\n const lastElementPosition = lastElement.current.getBoundingClientRect().right;\n const leftOffsetLimit = containerRightPosition - lastElementPosition;\n\n return {\n ...initialSliderState,\n containerLeftPosition,\n containerRightPosition,\n firstElementPosition,\n lastElementPosition,\n hideRightButton: lastElementPosition < containerRightPosition,\n leftOffsetLimit,\n maxSlideDistance: getMaxSlideDistance(payload.mediaQuery)\n };\n};\n\ninterface ResizePayload {\n elementRefs: SlidingListRefs;\n mediaQuery: MediaQueryStrings;\n}\n\nconst onResize = (payload: ResizePayload): DynamicWidgetState => {\n const initialState = onInit({\n ...payload,\n ...payload.elementRefs\n });\n\n return {\n ...initialState,\n maxSlideDistance: getMaxSlideDistance(payload.mediaQuery)\n };\n};\n\nconst onNext = (prevState: DynamicWidgetState): Partial<DynamicWidgetState> => {\n const { firstElementPosition, lastElementPosition, maxSlideDistance, offset, containerRightPosition } = prevState;\n\n /**\n * The distance in pixels that the slider will move along the x-axis.\n * This will be the `maxSlideDistance` constant value, or if that value is too large we calculate\n * the remaining overflowing space and only slide by that amount.\n */\n const slideDistance = lastElementPosition - containerRightPosition >= maxSlideDistance\n ? maxSlideDistance\n : lastElementPosition - containerRightPosition;\n\n return {\n firstElementPosition: firstElementPosition - slideDistance,\n lastElementPosition: lastElementPosition - slideDistance,\n offset: offset - slideDistance,\n hideRightButton: lastElementPosition - slideDistance === containerRightPosition,\n hideLeftButton: false\n };\n};\n\nconst onPrevious = (prevState: DynamicWidgetState): Partial<DynamicWidgetState> => {\n const { containerLeftPosition, firstElementPosition, lastElementPosition, maxSlideDistance, offset } = prevState;\n\n const fullSlide = firstElementPosition + maxSlideDistance <= containerLeftPosition;\n const slideDistance = fullSlide ? maxSlideDistance : Math.abs(offset);\n\n return {\n firstElementPosition: firstElementPosition + slideDistance,\n lastElementPosition: lastElementPosition + slideDistance,\n offset: offset + slideDistance,\n hideLeftButton: !fullSlide || firstElementPosition + slideDistance === containerLeftPosition,\n hideRightButton: false\n };\n};\n\nconst onDrag = (prevState: DynamicWidgetState, payload: any): Partial<DynamicWidgetState> => {\n const { widgetSnapshot, currentMouseX } = payload;\n\n // Disable dragging if the slider isn't long enough\n if (widgetSnapshot.hideLeftButton && widgetSnapshot.hideRightButton)\n return {};\n\n // The distance from the initial `MouseDown` event x-coordinate, to the present x-coordinate\n const dragDistance = widgetSnapshot.initialMouseX - currentMouseX;\n\n let offset = widgetSnapshot.offset - dragDistance;\n let firstElementPosition = widgetSnapshot.firstElementPosition - dragDistance;\n let lastElementPosition = widgetSnapshot.lastElementPosition - dragDistance;\n let hideLeftButton = false;\n let hideRightButton = false;\n\n if (firstElementPosition > prevState.containerLeftPosition) {\n offset = 0;\n firstElementPosition = prevState.containerLeftPosition;\n lastElementPosition = prevState.lastElementPosition;\n hideLeftButton = true;\n }\n\n if (lastElementPosition <= prevState.containerRightPosition) {\n offset = prevState.leftOffsetLimit;\n firstElementPosition = prevState.containerLeftPosition - Math.abs(prevState.leftOffsetLimit);\n lastElementPosition = widgetSnapshot.containerRightPosition;\n hideRightButton = true;\n }\n\n return {\n offset,\n firstElementPosition,\n lastElementPosition,\n hideLeftButton,\n hideRightButton\n };\n};\n\nexport function DynamicWidgetReducer(\n prevState: DynamicWidgetState,\n action: ReducerActions<WidgetInteraction>\n): DynamicWidgetState {\n switch (action.type) {\n case WidgetInteraction.Init:\n return {\n ...prevState,\n ...onInit(action.payload)\n };\n\n case WidgetInteraction.Resize:\n return {\n ...prevState,\n ...onResize(action.payload)\n };\n\n case WidgetInteraction.Next:\n return {\n ...prevState,\n ...onNext(prevState)\n };\n\n case WidgetInteraction.Previous:\n return {\n ...prevState,\n ...onPrevious(prevState)\n };\n\n case WidgetInteraction.Drag:\n return {\n ...prevState,\n ...onDrag(prevState, action.payload)\n };\n\n default:\n return prevState;\n }\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { WidgetHeader } from 'libs/shared/components/widgets/curated-widgets/components/header/WidgetHeader';\nimport { useWidgetKeyboard } from 'libs/shared/components/widgets/hooks/useWidgetKeyboard';\nimport { SlidingListContainer } from 'libs/shared/components/widgets/sliding-list/SlidingListContainer';\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { SlidingListRefs } from 'libs/shared/interfaces/SlidingListRefs';\nimport { PartialLoadingHelper, PartialLoadingOptions } from 'libs/shared/utils/PartialLoadingHelper';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport { getDragEndHandler, getDragHandler, getResizeEndHandler, getResizeHandler } from './DynamicWidgetEventHandlers';\nimport { DynamicWidgetReducer, DynamicWidgetState, initialSliderState } from './DynamicWidgetReducer';\n\nimport styles from './dynamic-widget.module.scss';\n\ninterface WidgetSnapshot extends DynamicWidgetState {\n initialMouseX: number;\n}\n\ninterface StaticChild {\n position: 'start' | 'end';\n component: React.ElementType;\n}\n\ninterface DynamicWidgetProps {\n id?: string;\n childComponent: React.ElementType;\n childComponentProps?: any;\n partialLoadingComponent: React.ElementType;\n partialLoadingOptions?: PartialLoadingOptions;\n\n widgetDataDeps?: (any)[];\n getChildAppLink?: (data: any) => Core.AppLink;\n\n staticChildren?: StaticChild[];\n collection?: BaseObject[];\n fetch?: (...args: any[]) => any;\n lazyLoad?: boolean;\n\n heading?: string;\n headingAppLink?: Core.AppLink;\n description?: string;\n getSubtitle?: (data: any) => string\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n getWidgetItemAnalyticsData?: (data: any) => HashObject;\n hideButtons?: boolean;\n childClassName?: string;\n // set to true if the widget get cut off by the container\n noNegativePadding?: boolean;\n}\n\nDynamicWidget.defaultProps = {\n heading: '',\n description: '',\n childComponentProps: {}\n};\n\nexport function DynamicWidget(props: DynamicWidgetProps): JSX.Element {\n const { childComponent: WidgetItemComponent, staticChildren, getWidgetItemAnalyticsData = () => {} } = props;\n\n const [ state, dispatch ] = React.useReducer(DynamicWidgetReducer, initialSliderState);\n\n // A snapshot of the widget state is captured on the very first `Drag` event as a point of reference\n const [ widgetSnapshot, setWidgetSnapshot ] = React.useState<WidgetSnapshot>(null);\n\n const elementRefs: SlidingListRefs = {\n container: React.useRef(null),\n firstElement: React.useRef(null),\n lastElement: React.useRef(null)\n };\n\n const mediaQuery = useGetMediaQueryString();\n const isTouchScreen = UserAgentHelper.isTabletOrMobile();\n \n const { dynamicAttributes, focusNext, focusPrev, onFocusWidget, onBlurWidget } = useWidgetKeyboard({ type: 'dynamic', state, containerRef: elementRefs.container, mediaQuery });\n\n useResizeListener(\n getResizeHandler(elementRefs, dispatch, mediaQuery),\n getResizeEndHandler(elementRefs.container),\n [mediaQuery]\n );\n\n const { ref, inView } = useLazyLoad({ prevent: !props.lazyLoad });\n\n let widgetData = props.collection;\n\n if (!props.collection && FunctionHelper.isFunction(props.fetch)) {\n const request = props.fetch(inView);\n widgetData = request.data;\n }\n\n /**\n * Once the widget data has been set, we can initialize the reducer. This is because\n * the reducer depends on the refs being set, but they don't get set until the markup has been loaded.\n */\n React.useEffect(() => {\n if (!widgetData || ObjectHelper.isEmpty(widgetData))\n return;\n\n dispatch({\n type: WidgetInteraction.Init,\n payload: {\n elementRefs,\n mediaQuery\n }\n });\n }, [widgetData]);\n\n function getWidgetItems(): JSX.Element {\n if (!widgetData)\n return;\n\n const firstChildren = staticChildren?.filter(child => child.position === 'start') ?? [];\n const lastChildren = staticChildren?.filter(child => child.position === 'end') ?? [];\n\n let items = widgetData.map((widgetItem, index) => {\n let itemRef: React.MutableRefObject<HTMLLIElement>;\n\n if (widgetItem === ArrayHelper.first(widgetData) && firstChildren?.length)\n itemRef = elementRefs.firstElement;\n\n if (widgetItem === ArrayHelper.last(widgetData) && !lastChildren?.length)\n itemRef = elementRefs.lastElement;\n\n const isLast = index + 1 === widgetData.length;\n\n return (\n <li\n id={widgetItem.id}\n key={widgetItem.id}\n ref={itemRef}\n onFocus={() => onFocusWidget(index)}\n onBlur={() => onBlurWidget()}\n className={`${styles.itemSpacing} ${props.childClassName || ''} ${(isLast && isTouchScreen) ? 'pe-4' : ''}`}\n {...dynamicAttributes[widgetItem.id]}\n >\n <WidgetItemComponent\n getChildAppLink={props.getChildAppLink}\n data={widgetItem}\n getSubtitle={props.getSubtitle}\n analyticsData={{\n itemIndex: index,\n ...props.analyticsData,\n ...getWidgetItemAnalyticsData(widgetItem)\n }}\n analyticsOptions={{ ...props?.analyticsOptions, ...WidgetHelper.getSliderItemAnalyticsOptions() }}\n {...props.childComponentProps}\n />\n </li>\n );\n });\n\n if (firstChildren.length) {\n items = [\n ...firstChildren.map((child, i) => {\n const Component = child.component;\n\n return (\n <li\n key={`first-widget-component:${i}`}\n ref={i === 0 ? elementRefs.firstElement : null}\n className={`${styles.itemSpacing} ${props.childClassName || ''}`}\n >\n <Component />\n </li>\n );\n }),\n ...items\n ];\n }\n\n if (lastChildren.length) {\n items = [\n ...items,\n ...lastChildren.map((child, i) => {\n const Component = child.component;\n\n return (\n <li\n key={`end-widget-component:${i}`}\n ref={i === lastChildren.length - 1 ? elementRefs.lastElement : null}\n className={`${styles.itemSpacing} ${props.childClassName || ''}`}\n >\n <Component />\n </li>\n );\n })\n ];\n }\n\n return <>{items}</>;\n }\n const widgetItems = React.useMemo(getWidgetItems, [\n widgetData, dynamicAttributes, state.offset, mediaQuery, ...props.widgetDataDeps || []\n ]);\n\n if (widgetData && !widgetData.length && !staticChildren?.length)\n return <></>;\n\n if (!widgetData || ObjectHelper.isEmpty(widgetData)) {\n return (\n <div ref={ref}>\n <PartialDynamicWidget\n partialLoadingComponent={props.partialLoadingComponent}\n partialLoadingOptions={props.partialLoadingOptions}\n />\n </div>\n );\n }\n\n const getSliderAnalyticsData = (type: WidgetInteraction) => ({\n ...props.analyticsData,\n id: props.id,\n name: props.heading,\n direction: type === WidgetInteraction.Next ? 'right' : 'left'\n });\n\n const hideButtons = isTouchScreen || props.hideButtons;\n\n return (\n <div className={`${props.noNegativePadding ? '' : 'mx-n4'}`}>\n <div className={`px-4 ${styles.header}`}>\n <WidgetHeader\n name={props.heading}\n description={props.description}\n appLink={props.headingAppLink}\n showSeeMoreLink={!!props.headingAppLink}\n />\n </div>\n\n <div className='position-relative'>\n <div className={`${props.noNegativePadding ? '' : 'px-4' } py-3 my-n3 position-relative ${isTouchScreen ? styles.mobileScroll : 'overflow-hidden-x'}`}>\n <div className={`position-relative ${props.hideButtons ? 'overflow-hidden-x' : ''}`}>\n {!hideButtons && (\n <WidgetButton\n direction={WidgetButtonDirection.Left}\n onClick={() => {\n focusPrev();\n\n dispatch({ type: WidgetInteraction.Previous });\n AnalyticsHelper.logUserAction(\n getSliderAnalyticsData(WidgetInteraction.Previous),\n WidgetHelper.getSliderAnalyticsOptions()\n );\n }}\n leftButtonClassName={`${styles.leftButton} ${props.noNegativePadding ? styles.leftButtonNoPadding : ''}`}\n leftGradientClassName={`${styles.leftGradient} ${props.noNegativePadding ? styles.leftGradientNoPadding : ''}`}\n hide={state.hideLeftButton}\n useGradientBackdrop\n />\n )}\n\n <SlidingListContainer\n position={state.offset}\n positionType={CssMeasurement.Pixels}\n onDrag={getDragHandler(elementRefs.container, state, dispatch, widgetSnapshot, setWidgetSnapshot)}\n onDragEnd={getDragEndHandler(elementRefs.container, setWidgetSnapshot)}\n ref={elementRefs.container}\n >\n {widgetItems}\n </SlidingListContainer>\n\n {!hideButtons && (\n <WidgetButton\n direction={WidgetButtonDirection.Right}\n onClick={() => {\n focusNext();\n\n dispatch({ type: WidgetInteraction.Next });\n AnalyticsHelper.logUserAction(\n getSliderAnalyticsData(WidgetInteraction.Next),\n WidgetHelper.getSliderAnalyticsOptions()\n );\n }}\n hide={state.hideRightButton}\n rightButtonClassName={`${styles.rightButton} ${props.noNegativePadding ? styles.rightButtonNoPadding : ''}`}\n rightGradientClassName={`${styles.rightGradient} ${props.noNegativePadding ? styles.rightGradientNoPadding : ''}`}\n useGradientBackdrop\n />\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\ntype PartialDynamicWidgetProps = Pick<DynamicWidgetProps, 'partialLoadingComponent'> & {\n partialLoadingOptions?: PartialLoadingOptions;\n}\n\nexport const PartialDynamicWidget = (props: PartialDynamicWidgetProps) => {\n const { partialLoadingComponent: Component, partialLoadingOptions } = props;\n\n return (\n <div className='d-flex flex-nowrap overflow-hidden'>\n {PartialLoadingHelper.getPartialLoadingItems(partialLoadingOptions).map((item, idx) => <Component key={idx} />)}\n </div>\n );\n};"],"names":["useResizeListener","onResize","onResizeEnd","dependencies","resizeTimeout","onResizeModified","React.useEffect","getResizeHandler","elementRefs","dispatch","mediaQuery","WidgetInteraction","getResizeEndHandler","containerRef","getDragHandler","widgetState","widgetSnapshot","setWidgetSnapshot","event","mouseX","snapshot","getDragEndHandler","getMaxSlideDistance","MediaQueryStrings","initialSliderState","onInit","payload","container","lastElement","containerRect","containerLeftPosition","containerRightPosition","firstElementPosition","lastElementPosition","leftOffsetLimit","onNext","prevState","maxSlideDistance","offset","slideDistance","onPrevious","fullSlide","onDrag","currentMouseX","dragDistance","hideLeftButton","hideRightButton","DynamicWidgetReducer","action","DynamicWidget","props","WidgetItemComponent","staticChildren","getWidgetItemAnalyticsData","state","React.useReducer","React.useState","React.useRef","useGetMediaQueryString","isTouchScreen","UserAgentHelper","dynamicAttributes","focusNext","focusPrev","onFocusWidget","onBlurWidget","useWidgetKeyboard","ref","inView","useLazyLoad","widgetData","FunctionHelper","ObjectHelper","getWidgetItems","firstChildren","child","lastChildren","items","widgetItem","index","itemRef","ArrayHelper","isLast","jsx","styles","WidgetHelper","i","Component","widgetItems","React.useMemo","Fragment","PartialDynamicWidget","getSliderAnalyticsData","type","hideButtons","jsxs","WidgetHeader","WidgetButton","WidgetButtonDirection","AnalyticsHelper","SlidingListContainer","CssMeasurement","partialLoadingOptions","PartialLoadingHelper","item","idx"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{j as s,c as _,ar as j,p as k,q as C,_ as $,ah as y,Y as A,ad as P,T as w,n as f,O as x,l as D}from"./app-C56EnOMP.js";import{P as S}from"./CPXlV0fg.chunk.js";import{b as T,c as I}from"./xrHhD6CF.chunk.js";import{V as L}from"./Bt3kaRtU.chunk.js";import{A as E}from"./CRT9qru0.chunk.js";import{D as l}from"./BdHxGaRy.chunk.js";const H="_disabled_3300r_1",F="_disabledHighlighted_3300r_4",W="_badge_3300r_7",h={disabled:H,disabledHighlighted:F,badge:W},M="shared.audienceItem",O=_.encloseNamespace(M);function B(e){return e.split(" ").map(a=>a.charAt(0).toUpperCase()+a.substring(1)).join(" ")}function V(e,a){return e?a?`${h.disabledHighlighted} text-light`:"bg-gray-900 text-light":a?`${h.disabled} text-secondary`:"bg-light"}v.defaultProps={extraClasses:""};function v(e){const{audience:a,highlight:t,setAudience:n,isDisabled:r,extraClasses:g}=e,u=V(t,r),m=r?"cursor-default":"cursor-pointer",i=`${h.badge} lh-1 rounded-pill d-inline-block me-1 user-select-none ${m} ${u} ${g}`,o=()=>{r||!j.isFunction(n)||n(a,!t)};return s.jsx("button",{type:"button",className:i,onClick:o,role:"checkbox","aria-checked":t,"aria-label":`${O("ariaFilter")} ${a.name}`,disabled:r,children:B(a.name)})}const R="subjects.audienceFilter";function de(e){const{audiences:a,activeAudiences:t,appLink:n}=e,r=e.disabled||!n,[,g]=k($.AUDIENCE_FILTER,void 0,{storage:C.SessionStorage});y.useEffect(()=>{e.disablePersist||g(t)},[t]);function u(i,o){if(r)return;const b=o?[...(t==null?void 0:t.map(c=>c.name))??[],i.name]:t.map(c=>c.name).filter(c=>c!==i.name),N=()=>{const c=x.omit(n.params,["a"]);return b.length?Object.assign({},c,{a:b}):c};f.trigger({...n,params:N()},{replace:!0})}function m(){if(r)return;const i=x.omit(n.params,["a"]);f.trigger({...n,params:i},{replace:!0})}return!a||!a.length?s.jsx(s.Fragment,{}):s.jsx(A,{title:e.tooltip,spanHack:!0,children:s.jsxs("div",{className:"d-flex flex-wrap row-gap-2",children:[a.map(i=>s.jsx(v,{audience:i,highlight:!r&&!!(t!=null&&t.find(o=>o.masterId===i.masterId)),setAudience:u,isDisabled:r},i.masterId)),!r&&!!t&&!!Object.keys(t).length&&s.jsx(P,{className:"info-link d-inline-block ms-1",onClick:m,children:s.jsx(w,{namespace:R,phrase:"clear"})})]})})}const U=S.getPartialLoadingItems({numItems:6}),ge=()=>s.jsx("div",{className:"d-flex flex-wrap row-gap-2",children:U.map(({width:e},a)=>s.jsx("span",{className:"rounded-pill partial-loading-background me-1",dangerouslySetInnerHTML:{__html:"&nbsp"},style:{width:e}},a))}),q={[l.Archived]:{svg:E,svgColorClassName:"text-secondary",actionName:"Archive",statusName:"Archived"},[l.Draft]:{svg:T,svgColorClassName:"",actionName:"Draft",statusName:"Draft"},[l.Published]:{svg:L,svgColorClassName:"text-success",actionName:"Publish",statusName:"Published"}},K="_badge_1fgi1_1",Y="_draftLight_1fgi1_5",z="_draftDark_1fgi1_10",G="_published_1fgi1_15",J="_archived_1fgi1_20",d={badge:K,draftLight:Y,draftDark:z,published:G,archived:J};function Q(e){let a=`rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${d.badge}`;switch(e.status){case l.Published:a+=` ${d.published}`;break;case l.Archived:a+=` ${d.archived}`;break;case l.Draft:a+=` ${e.darkMode?d.draftDark:d.draftLight}`;break}return e.wrapperClassName&&(a+=` ${e.wrapperClassName}`),a}function X(e){const{statusName:a,svg:t}=q[e.status];return s.jsxs("div",{className:Q(e),children:[s.jsx(D,{svg:t}),s.jsx("div",{children:a})]})}const Z="_stickyWrapper_r2aeo_1",ee="_badgeWrapper_r2aeo_8",ae="_badge_r2aeo_8",p={stickyWrapper:Z,badgeWrapper:ee,badge:ae},se="shared.classificationPreviewBanner",te=_.encloseNamespace(se);function ue(e){return s.jsxs("div",{className:`${p.stickyWrapper} py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`,children:[s.jsx("div",{className:`position-absolute d-flex ${p.badgeWrapper}`,children:s.jsx(X,{status:e.status,wrapperClassName:`${p.badge}`,darkMode:!0})}),s.jsx("div",{className:"flex-grow-1",children:s.jsxs("h1",{className:"text-center my-3 h5",children:[s.jsx(I,{emoji:"👀"}),te(e.type==="topic"?"topicTitle":"companyTitle")]})})]})}export{de as A,ue as P,ge as a};
2
- //# sourceMappingURL=KuveJuNy.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KuveJuNy.chunk.js","sources":["../../../../libs/shared/src/apps/subjects/components/audience-item/AudienceItem.tsx","../../../../libs/shared/src/apps/subjects/components/audience-filter/AudienceFilter.tsx","../../../../libs/shared/src/apps/subjects/constants/DashboardStatusConfig.ts","../../../../libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge.tsx","../../../../libs/shared/src/apps/subjects/components/preview-banner/PreviewBanner.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport styles from './audience-item.module.scss';\n\nconst namespace = 'shared.audienceItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction lowerCaseToTitleCase(str: string): string {\n return str.split(' ').map((s: string) => s.charAt(0).toUpperCase() + s.substring(1)).join(' ');\n}\n\nfunction getColourClass(highlight: boolean, isDisabled: boolean): string {\n if (highlight) return isDisabled ? `${styles.disabledHighlighted} text-light` : 'bg-gray-900 text-light';\n if (isDisabled) return `${styles.disabled} text-secondary`;\n return 'bg-light';\n}\n\ninterface AudienceItemProps {\n audience: PresentationAudience;\n highlight: boolean;\n setAudience?: (audience: PresentationAudience, highlight: boolean) => void;\n isDisabled?: boolean;\n extraClasses?: string;\n}\n\nAudienceItem.defaultProps = {\n extraClasses: ''\n};\n\nexport function AudienceItem(props: AudienceItemProps): React.ReactElement {\n const { audience, highlight, setAudience, isDisabled, extraClasses } = props;\n\n const colourClass = getColourClass(highlight, isDisabled);\n const cursorClass = isDisabled ? 'cursor-default' : 'cursor-pointer';\n const className = `${styles.badge} lh-1 rounded-pill d-inline-block me-1 user-select-none ${cursorClass} ${colourClass} ${extraClasses}`;\n\n const onClick = () => {\n if (isDisabled || !FunctionHelper.isFunction(setAudience))\n return;\n\n setAudience(audience, !highlight);\n };\n\n return (\n <button\n type='button'\n className={className}\n onClick={onClick}\n role='checkbox'\n aria-checked={highlight}\n aria-label={`${getPhrase('ariaFilter')} ${audience.name}`}\n disabled={isDisabled}\n >\n {lowerCaseToTitleCase(audience.name)}\n </button>\n );\n}","import * as React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AudienceItem } from 'libs/shared/apps/subjects/components/audience-item/AudienceItem';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { PresentationAudience } from 'libs/shared/interfaces';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\n\nconst namespace = 'subjects.audienceFilter';\n\ninterface AudienceFilterProps {\n audiences: PresentationAudience[];\n activeAudiences?: PresentationAudience[];\n disabled?: boolean;\n appLink: Core.AppLink;\n disablePersist?: boolean;\n tooltip?: string;\n}\n\nexport function AudienceFilter(props: AudienceFilterProps): React.ReactElement {\n const { audiences, activeAudiences, appLink } = props;\n\n const isDisabled = props.disabled || !appLink;\n\n const [ , setActiveAudiences ] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n React.useEffect(() => {\n if (!props.disablePersist)\n setActiveAudiences(activeAudiences);\n }, [activeAudiences]);\n\n function onToggleAudience(audience: PresentationAudience, isSelected: boolean): void {\n if (isDisabled)\n return;\n\n const activeAudienceNames = isSelected\n ? [ ...(activeAudiences?.map(a => a.name) ?? []), audience.name ]\n : activeAudiences.map(a => a.name).filter(name => name !== audience.name);\n\n const getParams = () => {\n const otherParams = ObjectHelper.omit(appLink.params, ['a']);\n\n if (!activeAudienceNames.length)\n return otherParams;\n\n return Object.assign({}, otherParams, { a: activeAudienceNames });\n };\n\n Core.AppLinkHelper.trigger({\n ...appLink,\n params: getParams()\n }, { replace: true });\n }\n\n function onClickClearAudiences(): void {\n if (isDisabled)\n return;\n\n const params = ObjectHelper.omit(appLink.params, ['a']);\n\n Core.AppLinkHelper.trigger({\n ...appLink,\n params\n }, { replace: true });\n }\n\n if (!audiences || !audiences.length)\n return <></>;\n\n return (\n <Tooltip title={props.tooltip} spanHack>\n <div className='d-flex flex-wrap row-gap-2'>\n {audiences.map((a: PresentationAudience) => (\n <AudienceItem\n key={a.masterId}\n audience={a}\n highlight={!isDisabled && !!activeAudiences?.find(aa => aa.masterId === a.masterId)}\n setAudience={onToggleAudience}\n isDisabled={isDisabled}\n />\n ))}\n {(!isDisabled && !!activeAudiences && !!Object.keys(activeAudiences).length) && (\n <DivButton className='info-link d-inline-block ms-1' onClick={onClickClearAudiences}>\n <Text namespace={namespace} phrase='clear' />\n </DivButton>\n )}\n </div>\n </Tooltip>\n );\n}\n\nconst PARTIAL_AUDIENCES = PartialLoadingHelper.getPartialLoadingItems({ numItems: 6 });\n\nexport const PartialAudienceFilter = () => (\n <div className={'d-flex flex-wrap row-gap-2'}>\n {PARTIAL_AUDIENCES.map(({ width }, idx) => (\n <span\n key={idx}\n className='rounded-pill partial-loading-background me-1'\n dangerouslySetInnerHTML={{ __html: '&nbsp' }}\n style={{ width }}\n />\n ))}\n </div>\n);","import { EditSvg } from 'libs/shared/images/svg/actions/EditSvg';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { ArchiveSvg } from 'libs/shared/images/svg/objects/ArchiveSvg';\nimport { DashboardStatus } from 'libs/shared/interfaces/models/Dashboard';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\ninterface DashboardStatusConfigType {\n statusName: string;\n actionName: string;\n svg: SvgIcon;\n svgColorClassName: string;\n}\n\nexport const DashboardStatusConfig: Record<DashboardStatus, DashboardStatusConfigType> = {\n [DashboardStatus.Archived]: {\n svg: ArchiveSvg,\n svgColorClassName: 'text-secondary',\n actionName: 'Archive',\n statusName: 'Archived'\n },\n [DashboardStatus.Draft]: {\n svg: EditSvg,\n svgColorClassName: '',\n actionName: 'Draft',\n statusName: 'Draft'\n },\n [DashboardStatus.Published]: {\n svg: VisibleOnSvg,\n svgColorClassName: 'text-success',\n actionName: 'Publish',\n statusName: 'Published'\n }\n};","import React from 'react';\n\nimport { DashboardStatusConfig } from 'libs/shared/apps/subjects/constants/DashboardStatusConfig';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './dashboard-status-badge.module.scss';\n\nfunction getClassName(props: DashboardStatusBadgeProps): string {\n let className = `rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${styles.badge}`;\n\n switch (props.status) {\n case DashboardStatus.Published:\n className += ` ${styles.published}`;\n break;\n case DashboardStatus.Archived:\n className += ` ${styles.archived}`;\n break;\n case DashboardStatus.Draft:\n className += ` ${props.darkMode ? styles.draftDark : styles.draftLight}`;\n break;\n }\n\n if (props.wrapperClassName)\n className += ` ${props.wrapperClassName}`;\n\n return className;\n}\n\ninterface DashboardStatusBadgeProps {\n status: DashboardStatus;\n darkMode?: boolean;\n wrapperClassName?: string;\n}\n\nexport function DashboardStatusBadge(props: DashboardStatusBadgeProps): JSX.Element {\n const { statusName, svg } = DashboardStatusConfig[props.status];\n\n return (\n <div className={getClassName(props)}>\n <SvgContainer svg={svg} />\n <div>{statusName}</div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DashboardStatusBadge } from 'libs/shared/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './preview-banner.module.scss';\n\nconst namespace = 'shared.classificationPreviewBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PreviewBannerProps {\n status: DashboardStatus;\n type: 'company' | 'topic';\n}\n\nexport function PreviewBanner(props: PreviewBannerProps): JSX.Element {\n return (\n <div className={`${styles.stickyWrapper} py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`}>\n <div className={`position-absolute d-flex ${styles.badgeWrapper}`}>\n <DashboardStatusBadge status={props.status} wrapperClassName={`${styles.badge}`} darkMode />\n </div>\n <div className='flex-grow-1'>\n <h1 className='text-center my-3 h5'>\n <EmojiText emoji='👀' />\n {getPhrase(props.type === 'topic' ? 'topicTitle' : 'companyTitle')}\n </h1>\n </div>\n </div>\n );\n}\n"],"names":["namespace","getPhrase","LanguageService","lowerCaseToTitleCase","str","s","getColourClass","highlight","isDisabled","styles","AudienceItem","props","audience","setAudience","extraClasses","colourClass","cursorClass","className","onClick","FunctionHelper","jsx","AudienceFilter","audiences","activeAudiences","appLink","setActiveAudiences","useViewModel","SharedViewModelKeys","StorageType","React.useEffect","onToggleAudience","isSelected","activeAudienceNames","a","name","getParams","otherParams","ObjectHelper","Core.AppLinkHelper","onClickClearAudiences","params","Fragment","Tooltip","jsxs","aa","DivButton","Text","PARTIAL_AUDIENCES","PartialLoadingHelper","PartialAudienceFilter","width","idx","DashboardStatusConfig","DashboardStatus","ArchiveSvg","EditSvg","VisibleOnSvg","getClassName","DashboardStatusBadge","statusName","svg","SvgContainer","PreviewBanner","EmojiText"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{ah as u,ar as C,bm as f}from"./app-C56EnOMP.js";import{u as E}from"./Di5-l4QJ.chunk.js";const g=400;function H(e){const c=()=>{if(!e.isFetching){if(e.scrollContainer){const{scrollContainer:r}=e,n=r.getBoundingClientRect().height+r.scrollTop,o=r.scrollHeight-g;if(n<o)return}else{const r=window.innerHeight+document.documentElement.scrollTop,n=document.documentElement.scrollHeight-g;if(r<n)return}e.fetchNextPage()}};u.useEffect(()=>{const r=C.throttle(c,200),n=e.scrollContainer||window;return e.hasMore&&n.addEventListener("scroll",r),()=>n.removeEventListener("scroll",r)},[e.hasMore,e.fetchNextPage,e.scrollContainer])}function I(e,c,r,n,o,d){const[m,a]=u.useState(0),s=c;function F(l){if(!e)return null;const i=e(l);return i?i.key:null}const t=E(F,n);function S(){if(!(!c||!e||!t))return a(l=>l+1),s(t.nextCursor)}return H({fetchNextPage:S,hasMore:!!(t!=null&&t.nextCursor),isFetching:t==null?void 0:t.isFetching,scrollContainer:d}),u.useEffect(()=>{t&&t.shouldInitialFetch&&c&&(s(),a(l=>l+1))},[t==null?void 0:t.shouldInitialFetch,c]),u.useEffect(()=>{var i,h;if(!(t!=null&&t.statusCode)||!C.isFunction(r))return;const l=+((h=(i=t.statusCode)==null?void 0:i.toString())==null?void 0:h.substr(0,1));l!==f.ClientError&&l!==f.ServerError||r(m,t.statusCode)},[t==null?void 0:t.statusCode]),{items:t==null?void 0:t.items,hasMore:!!(t!=null&&t.nextCursor),nextCursor:t==null?void 0:t.nextCursor,isFetching:t==null?void 0:t.isFetching,totalItems:t==null?void 0:t.totalItems,hasFirstPageCompleted:t==null?void 0:t.hasFirstPageCompleted}}export{I as u};
2
- //# sourceMappingURL=LKCLmV2A.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LKCLmV2A.chunk.js","sources":["../../../../libs/shared/src/hooks/UseInfiniteScroll.ts","../../../../libs/shared/src/hooks/UseInfiniteList.ts"],"sourcesContent":["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}"],"names":["SCROLL_TOLERANCE","useInfiniteScroll","options","handleScroll","scrollContainer","currentScrollHeight","totalHeight","useEffect","onScroll","FunctionHelper","useInfiniteList","getRequest","fetchNext","onError","getItems","getCursor","pagesFetched","setPagesFetched","useState","fetchNextFn","getKey","cursor","request","response","useSelectAllPages","fetchNextPage","currentVal","httpStatusClass","_b","_a","HttpStatusClass"],"mappings":"+FAIA,MAAMA,EAAmB,IASlB,SAASC,EAAkBC,EAAyC,CACzE,MAAMC,EAAe,IAAY,CAC/B,GAAI,CAAAD,EAAQ,WAGZ,IAAKA,EAAQ,gBAON,CACL,KAAM,CAAE,gBAAAE,GAAoBF,EACtBG,EAAsBD,EAAgB,sBAAA,EAAwB,OAASA,EAAgB,UAEvFE,EAAcF,EAAgB,aAAeJ,EAEnD,GAAIK,EAAsBC,EACxB,MACJ,KAf8B,CAC5B,MAAMD,EAAsB,OAAO,YAAc,SAAS,gBAAgB,UAEpEC,EAAc,SAAS,gBAAgB,aAAeN,EAE5D,GAAIK,EAAsBC,EACxB,MACJ,CAUAJ,EAAQ,cAAA,EACV,EAEAK,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAWC,EAAe,SAASN,EAAc,GAAG,EAEpDC,EAAkBF,EAAQ,iBAAmB,OAEnD,OAAIA,EAAQ,SACVE,EAAgB,iBAAiB,SAAUI,CAAQ,EAE9C,IAAMJ,EAAgB,oBAAoB,SAAUI,CAAQ,CACrE,EAAG,CAAEN,EAAQ,QAASA,EAAQ,cAAeA,EAAQ,eAAgB,CAAC,CACxE,CCjBO,SAASQ,EACdC,EACAC,EACAC,EACAC,EACAC,EACAX,EACgC,CAChC,KAAM,CAAEY,EAAcC,CAAgB,EAAIC,EAAAA,SAAS,CAAC,EAE9CC,EAAcP,EAEpB,SAASQ,EAAOC,EAAyB,CACvC,GAAI,CAACV,EACH,OAAO,KAET,MAAMW,EAAUX,EAAWU,CAAM,EAEjC,OAAKC,EAGEA,EAAQ,IAFN,IAGX,CAEA,MAAMC,EAAWC,EACfJ,EACAN,CAEF,EAEA,SAASW,GAAsB,CAC7B,GAAI,GAACb,GAAa,CAACD,GAAc,CAACY,GAGlC,OAAAN,EAAgBS,GAAcA,EAAa,CAAC,EACrCP,EAAYI,EAAS,UAAU,CACxC,CAEA,OAAAtB,EAAkB,CAChB,cAAAwB,EACA,QAAS,CAAC,EAACF,GAAA,MAAAA,EAAU,YACrB,WAAYA,GAAA,YAAAA,EAAU,WACtB,gBAAAnB,CAAA,CACD,EAEDG,EAAAA,UAAU,IAAM,CACTgB,GAGDA,EAAS,oBAAsBX,IACjCO,EAAA,EACAF,EAAgBS,GAAcA,EAAa,CAAC,EAEhD,EAAG,CAAEH,GAAA,YAAAA,EAAU,mBAAoBX,CAAU,CAAC,EAE9CL,EAAAA,UAAU,IAAM,SACd,GAAI,EAACgB,GAAA,MAAAA,EAAU,aAAc,CAACd,EAAe,WAAWI,CAAO,EAC7D,OAEF,MAAMc,EAAmC,GAAEC,GAAAC,EAAAN,EAAS,aAAT,YAAAM,EAAqB,aAArB,YAAAD,EAAiC,OAAO,EAAG,IAElFD,IAAoBG,EAAgB,aAAeH,IAAoBG,EAAgB,aAG3FjB,EAAQG,EAAcO,EAAS,UAAU,CAC3C,EAAG,CAACA,GAAA,YAAAA,EAAU,UAAU,CAAC,EAElB,CACL,MAAOA,GAAA,YAAAA,EAAU,MACjB,QAAS,CAAC,EAACA,GAAA,MAAAA,EAAU,YACrB,WAAYA,GAAA,YAAAA,EAAU,WACtB,WAAYA,GAAA,YAAAA,EAAU,WACtB,WAAYA,GAAA,YAAAA,EAAU,WACtB,sBAAuBA,GAAA,YAAAA,EAAU,qBAAA,CAErC"}
@@ -1,2 +0,0 @@
1
- import{j as g,D as h,c as f}from"./app-C56EnOMP.js";import{T as C}from"./m5XtnRaH.chunk.js";const d="_minHeight_kz0hs_1",R="_restrictionBadgeCustom_kz0hs_4",y="_restrictionBadgeUser_kz0hs_8",_="_streamable_kz0hs_12",l={minHeight:d,restrictionBadgeCustom:R,restrictionBadgeUser:y,streamable:_};var n=(e=>(e.Custom="custom",e.User="year_group",e))(n||{});function p(e){return g.jsx("svg",{...e,children:g.jsx("path",{d:"M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98",fill:"currentColor"})})}const v="shared.shared-utils",c=f.encloseNamespace(v),B={[n.Custom]:l.restrictionBadgeCustom,[n.User]:l.restrictionBadgeUser},U={[n.Custom]:C,[n.User]:p},T={[n.Custom]:"restrictionCustom",[n.User]:"restrictionYearGroup"},m={[n.Custom]:200,[n.User]:100},o={mapRestrictionToClass(e){var r;if(!((r=e==null?void 0:e.value)!=null&&r.length))return"";const t=o.getWeightedRestriction(e.value);return B[t.type]},mapRestrictionToSvg(e){var r;if(!((r=e==null?void 0:e.value)!=null&&r.length))return p;const t=o.getWeightedRestriction(e.value);return U[t.type]},mapRestrictionToText(e,t){var i;if(!((i=e==null?void 0:e.value)!=null&&i.length)||!(t!=null&&t.length))return"";const r=o.getWeightedRestriction(e.value),s=t.find(u=>u.value===r.yearGroup),a=T[r.type];if(r.type===n.User)return r.yearGroup===null?c("restrictionStaff"):s?t.length===1?c("restrictionStudents"):c(a,{yearGroup:s.name}):"";if(r.type===n.Custom){const u=o.getRestrictionDuration(r);return u?c(a,{duration:u,smartCount:u}):c("restrictionCustomLessThanDay",{duration:u,smartCount:1})}return""},getWeightedRestriction(e,t="highest"){if(e!=null&&e.length)return e.length===1?e[0]:e.reduce((r,s)=>{const a=m[r.type],i=m[s.type];return t==="highest"&&a>i||t==="lowest"&&a<i?r:s})},getRestrictionByType(e,t){if(!o.hasRestrictions(e))return null;const r=Array.isArray(t)?t:[t],s=e._restrictions.value.filter(a=>r.includes(a.type));return o.getWeightedRestriction(s)},getRestrictionDuration(e){if(e.type!==n.Custom||!e.expiresOn)return;const t=h.convertUTCToLocal(e.expiresOn);if(t)return h.diffBetween(t,new Date,"day")},hasCustomRestriction(e){return!!o.getRestrictionByType(e,[n.Custom])},hasRestrictions(e){var t,r;return!!((r=(t=e==null?void 0:e._restrictions)==null?void 0:t.value)!=null&&r.length)}};export{p as L,o as R,n as a,l as s};
2
- //# sourceMappingURL=RnuR8yr3.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RnuR8yr3.chunk.js","sources":["../../../../libs/shared/src/enums/RestrictionType.ts","../../../../libs/shared/src/images/svg/status/LockSvg.tsx","../../../../libs/shared/src/utils/RestrictionHelper.ts"],"sourcesContent":["/**\n * Restriction Types for an object\n */\nexport enum RestrictionType {\n /** Generated for customers who have turned content review on */\n Custom = 'custom',\n\n /** Restriction created by the user */\n User = 'year_group'\n}","import React from 'react';\n\nexport function LockSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport styles from 'libs/shared/components/badges/badge.module.scss';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ObjectsRestriction, Restrictions, VideoTypes, YearGroup } from 'libs/shared/interfaces';\n\nimport { LockSvg } from '../images/svg/status/LockSvg';\nimport { TimerSvg } from '../images/svg/status/TimerSvg';\n\nimport { SvgIcon } from './SvgHelper';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ClassNameMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: styles.restrictionBadgeCustom,\n [RestrictionType.User]: styles.restrictionBadgeUser\n};\n\nconst IconMap: {[key in RestrictionType]: SvgIcon} = {\n [RestrictionType.Custom]: TimerSvg,\n [RestrictionType.User]: LockSvg\n};\n\nconst PhraseMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: 'restrictionCustom',\n [RestrictionType.User]: 'restrictionYearGroup'\n};\n\nconst WeightMap: {[Key in RestrictionType]: number} = {\n [RestrictionType.Custom]: 200,\n [RestrictionType.User]: 100\n};\n\nexport const RestrictionHelper = {\n mapRestrictionToClass(restrictions: Restrictions): string {\n if (!restrictions?.value?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return ClassNameMap[restriction.type];\n },\n\n mapRestrictionToSvg(restrictions: Restrictions): SvgIcon {\n if (!restrictions?.value?.length)\n return LockSvg;\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return IconMap[restriction.type];\n },\n\n mapRestrictionToText(\n restrictions: Restrictions,\n yearGroups: YearGroup[]\n ): string {\n if (!restrictions?.value?.length || !yearGroups?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n const yearGroup = yearGroups.find(y => y.value === restriction.yearGroup);\n\n const phrase = PhraseMap[restriction.type];\n if (restriction.type === RestrictionType.User) {\n if (restriction.yearGroup === null)\n return getPhrase('restrictionStaff');\n\n if (!yearGroup)\n return '';\n\n if (yearGroups.length === 1)\n return getPhrase('restrictionStudents');\n\n return getPhrase(phrase, { yearGroup: yearGroup.name });\n }\n\n if (restriction.type === RestrictionType.Custom) {\n const duration = RestrictionHelper.getRestrictionDuration(restriction);\n return duration ?\n getPhrase(phrase, { duration, smartCount: duration }) :\n getPhrase('restrictionCustomLessThanDay', { duration, smartCount: 1 });\n }\n\n return '';\n },\n\n /**\n * A video can have multiple restrictions, in that case we need to display\n * only one restriction. By default we display the restriction with highest\n * weight bias.\n */\n getWeightedRestriction(\n restrictions: ObjectsRestriction[],\n bias: 'highest' | 'lowest' = 'highest'\n ): ObjectsRestriction {\n if (!restrictions?.length) return;\n \n if (restrictions.length === 1) return restrictions[0];\n\n return restrictions.reduce((previous, current) => {\n const previousWeight = WeightMap[previous.type];\n const currentWeight = WeightMap[current.type];\n\n if (bias === 'highest' && previousWeight > currentWeight) return previous;\n if (bias === 'lowest' && previousWeight < currentWeight) return previous;\n\n return current;\n });\n },\n\n getRestrictionByType(\n video: VideoTypes,\n type: RestrictionType | RestrictionType[]\n ): ObjectsRestriction {\n if (!RestrictionHelper.hasRestrictions(video))\n return null;\n\n const types = Array.isArray(type) ? type : [type];\n\n const restrictions = video._restrictions.value.filter(r => types.includes(r.type));\n return RestrictionHelper.getWeightedRestriction(restrictions);\n },\n\n getRestrictionDuration(\n restriction: ObjectsRestriction\n ): number {\n if (restriction.type !== RestrictionType.Custom || !restriction.expiresOn) return;\n\n const expiresOn = DateHelper.convertUTCToLocal(restriction.expiresOn);\n if (!expiresOn) return;\n\n return DateHelper.diffBetween(expiresOn, new Date(), 'day');\n },\n\n hasCustomRestriction(\n video: VideoTypes\n ): boolean {\n return !!RestrictionHelper.getRestrictionByType(video, [RestrictionType.Custom]);\n },\n\n hasRestrictions(video: VideoTypes): boolean {\n return !!video?._restrictions?.value?.length;\n }\n};"],"names":["RestrictionType","LockSvg","props","jsx","namespace","getPhrase","LanguageService","ClassNameMap","styles","IconMap","TimerSvg","PhraseMap","WeightMap","RestrictionHelper","restrictions","_a","restriction","yearGroups","yearGroup","y","phrase","duration","bias","previous","current","previousWeight","currentWeight","video","type","types","r","expiresOn","DateHelper","_b"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{j as e,d as r,v as d,c as m,a1 as u,a2 as h,T as g}from"./app-C56EnOMP.js";import{u as p}from"./Byn8R7bs.chunk.js";const x="_myAccount_1fl6w_1",j="_group_1fl6w_4",c={myAccount:x,group:j};function N(s){var i;const t=(i=s.modules)==null?void 0:i.filter(n=>!n.hide),a=!!(t!=null&&t.length);function o(){switch(s.id){case"my-account":return`img-fluid ${c.myAccount}`;default:return"img-fluid"}}return e.jsx(r,{appLink:s.appLink,children:e.jsxs("div",{className:`row p-3 border border-dark m-0 w-100 h-100 ${c.group}`,children:[e.jsx("div",{className:"col-3",children:e.jsx("div",{className:"d-flex justify-content-center align-items-center h-100",children:e.jsx("img",{src:s.imageUrl,alt:"",role:"presentation",className:o()})})}),e.jsxs("div",{className:`col-9 h-100 ${a?"":"d-flex align-items-center"}`,children:[e.jsx("h2",{className:"h4",children:s.name}),a&&e.jsx("ul",{className:"list-unstyled mb-0",children:t.map(n=>e.jsx("li",{className:"mb-1",children:"appLink"in n?e.jsx(r,{className:"btn btn-link p-0",appLink:n.appLink,children:n.name}):e.jsx("button",{className:"btn btn-link p-0 text-start",onClick:n.onClick,children:n.name})},n.name))})]})]})})}const f="_groupContainer_fw505_4",k={groupContainer:f},l="settings.settings";function v(){d({title:m.getPhrase(l,"pageTitle")});const s=p();if(!s.length){u.throw(new h);return}return e.jsxs("div",{className:"px-3",children:[e.jsx("h1",{className:"h2",children:e.jsx(g,{namespace:l,phrase:"heading"})}),e.jsx("main",{className:"row",children:s.map(t=>e.jsx("div",{className:"col-md-6 p-0",children:e.jsx("div",{className:`h-100 ${k.groupContainer}`,children:e.jsx(N,{...t})})},t.id))})]})}export{v as SettingsView};
2
- //# sourceMappingURL=XxrnElSv.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XxrnElSv.chunk.js","sources":["../../src/apps/settings/components/settings-group/SettingsGroup.tsx","../../src/apps/settings/views/settings/SettingsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport { SettingsGroup as SettingsGroupProps } from 'apps/settings/interfaces/SettingsGroup';\n\nimport styles from './settings-group.module.scss';\n\nexport function SettingsGroup(props: SettingsGroupProps): JSX.Element {\n const modulesToDisplay = props.modules?.filter(m => !m.hide);\n\n const hasModules = !!modulesToDisplay?.length;\n\n function getImageClassName(): string {\n switch (props.id) {\n case 'my-account':\n return `img-fluid ${styles.myAccount}`;\n\n default:\n return 'img-fluid';\n }\n }\n\n return (\n <AppLink appLink={props.appLink}>\n <div className={`row p-3 border border-dark m-0 w-100 h-100 ${styles.group}`}>\n <div className='col-3'>\n <div className='d-flex justify-content-center align-items-center h-100'>\n <img\n src={props.imageUrl}\n alt=''\n role='presentation'\n className={getImageClassName()}\n />\n </div>\n </div>\n\n <div className={`col-9 h-100 ${!hasModules ? 'd-flex align-items-center' : ''}`}>\n <h2 className='h4'>{props.name}</h2>\n\n {hasModules && (\n <ul className='list-unstyled mb-0'>\n {modulesToDisplay.map(m => (\n <li key={m.name} className='mb-1'>\n {'appLink' in m ?\n <AppLink className='btn btn-link p-0' appLink={m.appLink}>\n {m.name}\n </AppLink> :\n <button className='btn btn-link p-0 text-start' onClick={m.onClick}>\n {m.name}\n </button>\n }\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n </AppLink>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { SettingsGroup as SettingsGroupComponent } from 'apps/settings/components/settings-group/SettingsGroup';\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nimport styles from './settings.module.scss';\n\nconst namespace = 'settings.settings';\n\nexport function SettingsView(): JSX.Element {\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n\n const groups = useGetSettingsGroups();\n\n if (!groups.length) {\n Core.ErrorHelper.throw(new NotFoundError());\n return;\n }\n\n return (\n <div className='px-3'>\n <h1 className='h2'><Text namespace={namespace} phrase='heading' /></h1>\n\n <main className='row'>\n {groups.map(group => (\n <div key={group.id} className='col-md-6 p-0'>\n <div className={`h-100 ${styles.groupContainer}`}>\n <SettingsGroupComponent {...group} />\n </div>\n </div>\n ))}\n </main>\n </div>\n );\n}"],"names":["SettingsGroup","props","modulesToDisplay","_a","m","hasModules","getImageClassName","styles","jsx","AppLink","jsxs","namespace","SettingsView","useSetPageMetadata","LanguageService","groups","useGetSettingsGroups","Core.ErrorHelper","NotFoundError","Text","group","SettingsGroupComponent"],"mappings":"kMAQO,SAASA,EAAcC,EAAwC,OACpE,MAAMC,GAAmBC,EAAAF,EAAM,UAAN,YAAAE,EAAe,OAAOC,GAAK,CAACA,EAAE,MAEjDC,EAAa,CAAC,EAACH,GAAA,MAAAA,EAAkB,QAEvC,SAASI,GAA4B,CACnC,OAAQL,EAAM,GAAA,CACZ,IAAK,aACH,MAAO,aAAaM,EAAO,SAAS,GAEtC,QACE,MAAO,WAAA,CAEb,CAEA,OACEC,EAAAA,IAACC,EAAA,CAAQ,QAASR,EAAM,QACtB,SAAAS,EAAAA,KAAC,MAAA,CAAI,UAAW,8CAA8CH,EAAO,KAAK,GACxE,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,QACb,SAAAA,MAAC,MAAA,CAAI,UAAU,yDACb,SAAAA,EAAAA,IAAC,MAAA,CACC,IAAKP,EAAM,SACX,IAAI,GACJ,KAAK,eACL,UAAWK,EAAA,CAAkB,CAAA,EAEjC,CAAA,CACF,EAEAI,EAAAA,KAAC,OAAI,UAAW,eAAgBL,EAA2C,GAA9B,2BAAgC,GAC3E,SAAA,CAAAG,EAAAA,IAAC,KAAA,CAAG,UAAU,KAAM,SAAAP,EAAM,KAAK,EAE9BI,GACCG,EAAAA,IAAC,KAAA,CAAG,UAAU,qBACX,WAAiB,IAAIJ,GACpBI,EAAAA,IAAC,KAAA,CAAgB,UAAU,OACxB,SAAA,YAAaJ,EACZI,EAAAA,IAACC,GAAQ,UAAU,mBAAmB,QAASL,EAAE,QAC9C,SAAAA,EAAE,IAAA,CACL,EACAI,EAAAA,IAAC,UAAO,UAAU,8BAA8B,QAASJ,EAAE,QACxD,SAAAA,EAAE,IAAA,CACL,GAPKA,EAAE,IASX,CACD,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAEJ,wDC9CMO,EAAY,oBAEX,SAASC,GAA4B,CAC1CC,EAAmB,CAAE,MAAOC,EAAgB,UAAUH,EAAW,WAAW,EAAG,EAE/E,MAAMI,EAASC,EAAA,EAEf,GAAI,CAACD,EAAO,OAAQ,CAClBE,EAAiB,MAAM,IAAIC,CAAe,EAC1C,MACF,CAEA,OACER,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAF,EAAAA,IAAC,KAAA,CAAG,UAAU,KAAK,SAAAA,EAAAA,IAACW,GAAK,UAAAR,EAAsB,OAAO,UAAU,CAAA,CAAE,EAElEH,EAAAA,IAAC,OAAA,CAAK,UAAU,MACb,SAAAO,EAAO,IAAIK,GACVZ,EAAAA,IAAC,MAAA,CAAmB,UAAU,eAC5B,SAAAA,MAAC,MAAA,CAAI,UAAW,SAASD,EAAO,cAAc,GAC5C,SAAAC,EAAAA,IAACa,EAAA,CAAwB,GAAGD,CAAA,CAAO,CAAA,CACrC,CAAA,EAHQA,EAAM,EAIhB,CACD,CAAA,CACH,CAAA,EACF,CAEJ"}
@@ -1,3 +0,0 @@
1
- import{j as a,d as v,z as b,F as S,b3 as w,m as T,au as $,T as y,ah as M,b6 as m,k as r,i as g,h as O,cC as H}from"./app-C56EnOMP.js";import{I as F,C as P}from"./C2Zu5vKc.chunk.js";import{I as U,a as B}from"./DJyZ6Hx7.chunk.js";import{g as D,B as A}from"./BBnDr_iy.chunk.js";import{M as E}from"./sc9-PV9Y.chunk.js";import{C as V}from"./nay4aGaa.chunk.js";const z="_appLink_1diix_1",R="_name_1diix_4",W="_selectedMask_1diix_7",G="_widgetItem_1diix_15",q="_hasThemeColor_1diix_19",J="_text_1diix_26",K="_imagePanel_1diix_29",Q="_partialLargeImage_1diix_29",X="_selected_1diix_7",Y="_image_1diix_29",Z="_dragHandle_1diix_55",p="_large_1diix_59",ee="_comingSoonPanel_1diix_69",ae="_newVideos_1diix_75",te="_draggingItem_1diix_94",ie="_partialLargeFallback_1diix_102",ne="_partialIcon_1diix_106",n={appLink:z,name:R,selectedMask:W,widgetItem:G,hasThemeColor:q,text:J,imagePanel:K,partialLargeImage:Q,selected:X,image:Y,dragHandle:Z,large:p,comingSoonPanel:ee,newVideos:ae,draggingItem:te,partialLargeFallback:ie,partialIcon:ne},L="shared.subjectWidgetItem",le=({name:e,multiline:t,noUnderLine:i})=>{let s=`${n.comingSoonPanel}
2
- d-flex flex-column align-items-center justify-content-center px-3 text-center`,l="";return t?l+=` ${n.clamped} clamp-2`:(s+=" text-nowrap",l+=" text-truncate"),a.jsxs("div",{className:s,children:[a.jsx("small",{className:"text-secondary",children:a.jsx(y,{namespace:L,phrase:"comingSoon"})}),a.jsx("p",{className:`${i?"":n.name} h6`,children:a.jsx("span",{className:l,children:e})})]})},se=({name:e,multiline:t,subtitle:i,noUnderLine:s,newVideosCount:l})=>{let d="px-3 d-flex flex-column justify-content-center",c=`${s?"":n.name} h6`;return t?c+=` ${l?"clamp-2":"clamp-3"} text-start`:(d+=" text-nowrap text-truncate",c+=" text-truncate mb-0"),a.jsxs("div",{className:d,children:[i&&a.jsx("div",{className:`text-secondary clamp-1 ${n.text}`,children:i}),a.jsx("div",{className:c,title:e,children:e}),!!l&&a.jsx("div",{className:`fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ${n.newVideos}`,children:a.jsx(y,{namespace:L,phrase:"newVideos",options:{smartCount:l}})})]})};o.defaultProps={showFallbackBackgroundColour:!0};function o(e){var c;const t=b.createUrl(e.coverUrl,{size:e.isLarge?S.Medium:S.Small});let i;E.isClassification(e.data)&&(i=e.data);const s={name:e.data.name,multiline:e.isLarge||e.multiline,subtitle:e.subtitle,noUnderLine:e.highlightOnHover,newVideosCount:e.showNewVideosCount?(c=i==null?void 0:i.externalMetadata)==null?void 0:c.childDashboardNewVideoCount:0},l={backgroundImage:t?`url('${t}')`:null,backgroundColor:e.coverBgColor},d=D(e.data.name,A);return a.jsxs("div",{className:`${e.themeColor?n.hasThemeColor:"border"} d-flex position-relative ${e.className} ${n.widgetItem} ${e.isSelected?"border-success border-2":""} ${e.highlightOnHover&&!e.themeColor?"bg-light-blue-hover":""}`,style:e.themeColor?{"--themeColor":e.themeColor}:{},id:`${e.data.id}-${w.getRandomInt()}`,children:[e.isSelected&&a.jsx("div",{className:`${n.selectedMask} border-2`}),a.jsxs("div",{className:`${n.imagePanel} ${e.isLarge?n.large:""}`,children:[e.isSelected&&!e.hideCheckmark&&a.jsx("div",{className:n.selected,children:a.jsx(F,{svg:P,svgSize:T.Large,textVariant:"white",variant:"green"})}),t&&a.jsx("div",{className:$(n.image,e.imageClassName,!e.coverBgColor&&e.showFallbackBackgroundColour&&d),style:l}),!e.hideFallback&&a.jsx(U,{type:B.Subject,extraClasses:e.isLarge?n.large:""})]}),e.isComingSoon?a.jsx(le,{...s}):a.jsx(se,{...s})]})}function ce(e){var i;const t=e.getChildAppLink?e.getChildAppLink(e.data):null;return a.jsx(a.Fragment,{children:t?a.jsx(v,{className:n.appLink,appLink:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,appLinkOptions:(i=e.getChildAppLinkOptions)==null?void 0:i.call(e),children:a.jsx(o,{...e})}):a.jsx(o,{...e})})}function de(e,t){var s;if((t==null?void 0:t.length)>=H.MULTI_PRESENTATION_THRESHOLD)return(s=t==null?void 0:t.find(l=>l.id===e))==null?void 0:s.name}function oe(e){var d,c,x,h,C,_,u,k,N,j,I,f;const t=((d=e.data)==null?void 0:d.status)===V.ComingSoon,i=de(e.data.presentationId,e==null?void 0:e.availablePresentations),s={...e.analyticsData,id:((c=e.analyticsData)==null?void 0:c.id)||((x=e.data)==null?void 0:x.id),name:(h=e.data)==null?void 0:h.name,presentationId:((C=e.analyticsData)==null?void 0:C.presentationId)||e.data.presentationId,comingSoon:!!t},l={location:O.ClassificationListItem,entity:g.Classification,...e.analyticsOptions,actionType:r.Click,descriptor:m.Cover};return a.jsx(ce,{...e,analyticsData:s,analyticsOptions:l,coverUrl:(_=e.data.cover)==null?void 0:_.url,coverBgColor:(k=(u=e.data)==null?void 0:u.metadata)==null?void 0:k.backgroundColor,subtitle:((N=e.getSubtitle)==null?void 0:N.call(e,e.data))||i,isComingSoon:t,themeColor:(j=e.shouldHighlight)!=null&&j.call(e,e.data)?((f=(I=e.data)==null?void 0:I.metadata)==null?void 0:f.backgroundColor)??"":""})}const _e=M.memo(oe);r.Click,g.UserSetting,m.Tile;r.Click,g.Url,m.Tile;export{ce as C,_e as M,n as s};
3
- //# sourceMappingURL=YF_QoXEj.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"YF_QoXEj.chunk.js","sources":["../../../../libs/shared/src/components/widgets/items/subject-widget-item/CoverPill.tsx","../../../../libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.tsx","../../../../libs/shared/src/components/widgets/items/subject-widget-item/EditSubjectsWidgetLink.tsx","../../../../libs/shared/src/components/widgets/items/subject-widget-item/AllSubjectsWidgetLink.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { CheckSvg } from 'libs/shared/images/svg/status/CheckSvg';\nimport { BaseObject, Classification, Presentation } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport styles from './cover-pill.module.scss';\n\nconst namespace = 'shared.subjectWidgetItem';\n\ninterface NamePanelProps {\n name: string;\n multiline?: boolean;\n subtitle?: string;\n noUnderLine?: boolean;\n newVideosCount?: number;\n}\n\nconst ComingSoonNamePanel = ({ name, multiline, noUnderLine }: NamePanelProps) => {\n let wrapperClassName = `${styles.comingSoonPanel} \n d-flex flex-column align-items-center justify-content-center px-3 text-center`;\n\n let textClassName = '';\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap';\n textClassName += ' text-truncate';\n } else {\n textClassName += ` ${styles.clamped} clamp-2`;\n }\n\n return (\n <div className={wrapperClassName}>\n <small className='text-secondary'><Text namespace={namespace} phrase='comingSoon' /></small>\n <p className={`${noUnderLine ? '' : styles.name} h6`}><span className={textClassName}>{name}</span></p>\n </div>\n );\n};\n\nconst NormalNamePanel = ({ name, multiline, subtitle, noUnderLine, newVideosCount }: NamePanelProps) => {\n let wrapperClassName = 'px-3 d-flex flex-column justify-content-center';\n let textClassName = `${noUnderLine ? '' : styles.name} h6`;\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap text-truncate';\n textClassName += ' text-truncate mb-0';\n } else {\n textClassName += ` ${newVideosCount ? 'clamp-2' : 'clamp-3'} text-start`;\n }\n\n return (\n <div className={wrapperClassName}>\n {subtitle && <div className={`text-secondary clamp-1 ${styles.text}`}>{subtitle}</div>}\n <div className={textClassName} title={name}>{name}</div>\n {!!newVideosCount && (\n <div className={`fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ${styles.newVideos}`}>\n <Text namespace={namespace} phrase='newVideos' options={{ smartCount: newVideosCount }} />\n </div>\n )}\n </div>\n );\n};\n\nexport interface CoverPillWidgetItemProps<T extends BaseObject> {\n data: T;\n getChildAppLink?: (data: T) => Core.AppLink;\n getChildAppLinkOptions?: () => Core.AppLinkOptions;\n isLarge?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n availablePresentations?: Presentation[];\n getSubtitle?: (data: T) => string;\n multiline?: boolean;\n // set to true it will highlight on hover and also remove the hover text underline\n highlightOnHover?: boolean;\n showNewVideosCount?: boolean;\n shouldHighlight?: (data: T) => boolean;\n showFallbackBackgroundColour?: boolean;\n}\n\nCoverPillWidgetContent.defaultProps = {\n showFallbackBackgroundColour: true\n};\n\ninterface CoverPillWidgetContentProps<T> extends CoverPillWidgetItemProps<T> {\n coverUrl?: string;\n coverBgColor?: string;\n subtitle?: string;\n isComingSoon?: boolean;\n className?: string;\n imageClassName?: string;\n isSelected?: boolean;\n hideFallback?: boolean;\n hideCheckmark?: boolean;\n themeColor?: string;\n}\n\nexport function CoverPillWidgetContent(props: CoverPillWidgetContentProps<BaseObject>): JSX.Element {\n const coverUrl = ImageHelper.createUrl(props.coverUrl, { size: props.isLarge ? ImageSize.Medium : ImageSize.Small });\n\n let classification: Classification | undefined = undefined;\n if (MasterTypeHelper.isClassification(props.data)) {\n classification = props.data;\n }\n\n const childProps = {\n name: props.data.name,\n multiline: props.isLarge || props.multiline,\n subtitle: props.subtitle,\n noUnderLine: props.highlightOnHover,\n newVideosCount: props.showNewVideosCount ? classification?.externalMetadata?.childDashboardNewVideoCount : 0\n };\n\n const coverStyle: React.CSSProperties = {\n backgroundImage: coverUrl ? `url('${coverUrl}')` : null,\n backgroundColor: props.coverBgColor\n };\n\n const fallbackCoverBgClassName = getBgColorClass(props.data.name, BG_COLOUR_CLASS_NAMES);\n\n return (\n <div\n className={`${props.themeColor ? styles.hasThemeColor : 'border'} d-flex position-relative ${props.className} ${styles.widgetItem} ${props.isSelected ? 'border-success border-2' : ''} ${props.highlightOnHover && !props.themeColor ? 'bg-light-blue-hover' : ''}`}\n style={props.themeColor ? { '--themeColor': props.themeColor } as unknown as React.CSSProperties : {}}\n id={`${props.data.id}-${RandomHelper.getRandomInt()}`}\n >\n {props.isSelected && (\n <div className={`${styles.selectedMask} border-2`} />\n )}\n\n <div className={`${styles.imagePanel} ${props.isLarge ? styles.large : ''}`}>\n {props.isSelected && !props.hideCheckmark && (\n <div className={styles.selected}>\n <IconCircle svg={CheckSvg} svgSize={SvgContainerSize.Large} textVariant='white' variant='green' />\n </div>\n )}\n\n {coverUrl &&\n <div\n className={classNames(\n styles.image,\n props.imageClassName,\n !props.coverBgColor && props.showFallbackBackgroundColour && fallbackCoverBgClassName\n )}\n style={coverStyle}\n />\n }\n {!props.hideFallback && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={props.isLarge ? styles.large : ''}\n />\n )}\n </div>\n\n {props.isComingSoon\n ? <ComingSoonNamePanel {...childProps} />\n : <NormalNamePanel {...childProps} />\n }\n </div>\n );\n}\n\nexport function CoverPillWidgetContentWrapper(props: CoverPillWidgetContentProps<BaseObject>) {\n const appLink = props.getChildAppLink ? props.getChildAppLink(props.data) : null;\n\n return (\n <>\n {appLink ? (\n <AppLink\n className={styles.appLink}\n appLink={appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n appLinkOptions={props.getChildAppLinkOptions?.()}\n >\n <CoverPillWidgetContent {...props} />\n </AppLink>\n ) : (<CoverPillWidgetContent {...props} />)\n }\n </>\n );\n}","import * as React from 'react';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CoverPillWidgetContentWrapper, CoverPillWidgetItemProps } from 'libs/shared/components/widgets/items/subject-widget-item/CoverPill';\nimport { TopicsConstants } from 'libs/shared/constants/TopicsConstants';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { Classification, Presentation } from 'libs/shared/interfaces';\n\nfunction usePresentationName(presentationId: string, availablePresentations: Presentation[]): string {\n const showPresentationName = availablePresentations?.length >= TopicsConstants.MULTI_PRESENTATION_THRESHOLD;\n\n if (!showPresentationName) {\n return undefined;\n }\n\n return availablePresentations?.find(p => p.id === presentationId)?.name;\n}\n\nfunction SubjectWidgetItem(props: CoverPillWidgetItemProps<Classification>): JSX.Element {\n const isComingSoon = props.data?.status === ClassificationStatus.ComingSoon;\n const presentationName = usePresentationName(props.data.presentationId, props?.availablePresentations);\n\n const analyticsData = {\n ...props.analyticsData,\n id: props.analyticsData?.id || props.data?.id,\n name: props.data?.name,\n presentationId: props.analyticsData?.presentationId || props.data.presentationId,\n comingSoon: !!isComingSoon\n };\n\n const analyticsOptions = {\n location: LocationContext.ClassificationListItem,\n entity: EntityType.Classification,\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Cover\n };\n\n return (\n <CoverPillWidgetContentWrapper\n {...props}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n coverUrl={props.data.cover?.url}\n coverBgColor={props.data?.metadata?.backgroundColor}\n subtitle={props.getSubtitle?.(props.data) || presentationName}\n isComingSoon={isComingSoon}\n themeColor={props.shouldHighlight?.(props.data) ? props.data?.metadata?.backgroundColor ?? '' : ''}\n />\n );\n}\n\nconst Memoized = React.memo(SubjectWidgetItem);\n\nexport { Memoized as SubjectWidgetItem };","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { EditSvg } from 'libs/shared/images/svg/actions/EditSvg';\n\nimport styles from './cover-pill.module.scss';\n\ninterface EditSubjectsWidgetLinkProps {\n appLink: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.UserSetting,\n descriptor: ClickDescriptor.Tile\n};\n\nexport function EditSubjectsWidgetLink(props: EditSubjectsWidgetLinkProps): JSX.Element {\n const className =\n `${styles.editSubjectsItem} d-flex position-relative px-3 justify-content-center align-items-center`;\n\n return (\n <AppLink\n appLink={props.appLink}\n className='text-decoration-none'\n analyticsData={{ ...props.analyticsData, type: 'subject-preference' }}\n analyticsOptions={ { ...props.analyticsOptions, ...analyticsOptions }}\n >\n <div className={className}>\n <SvgContainer svg={EditSvg} className='me-2 align-middle d-inline-block svg-container' />\n <p className='h6 align-middle text-truncate'><Text namespace='shared.subjectWidgetItem' phrase='edit' /></p>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport styles from './cover-pill.module.scss';\n\ninterface AllSubjectsWidgetLinkProps {\n appLink: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n descriptor: ClickDescriptor.Tile\n};\n\nexport function AllSubjectsWidgetLink(props: AllSubjectsWidgetLinkProps): JSX.Element {\n const className =\n `${styles.allSubjectsItem}\n d-flex flex-column position-relative px-2\n align-items-center justify-content-center text-nowrap bg-navy`;\n\n return (\n <AppLink\n appLink={props.appLink}\n className='text-decoration-none'\n analyticsData={{ ...props.analyticsData, type: 'subject-all' }}\n analyticsOptions={ { ...props.analyticsOptions, ...analyticsOptions }}\n >\n <div className={className}>\n <div className={styles.logoContainer}>\n <ClickViewLogoInverted />\n </div>\n <p className='h6 pt-2 px-3 mb-0'><Text namespace='shared.subjectWidgetItem' phrase='all' /></p>\n </div>\n </AppLink>\n );\n}\n"],"names":["namespace","ComingSoonNamePanel","name","multiline","noUnderLine","wrapperClassName","styles","textClassName","jsxs","jsx","Text","NormalNamePanel","subtitle","newVideosCount","CoverPillWidgetContent","props","coverUrl","ImageHelper","ImageSize","classification","MasterTypeHelper","childProps","_a","coverStyle","fallbackCoverBgClassName","getBgColorClass","BG_COLOUR_CLASS_NAMES","RandomHelper","IconCircle","CheckSvg","SvgContainerSize","classNames","ImageFallback","ImageFallbackType","CoverPillWidgetContentWrapper","appLink","AppLink","usePresentationName","presentationId","availablePresentations","TopicsConstants","p","SubjectWidgetItem","isComingSoon","ClassificationStatus","presentationName","analyticsData","_b","_c","_d","_e","analyticsOptions","LocationContext","EntityType","UserAction","ClickDescriptor","_f","_h","_g","_i","_j","_l","_k","Memoized","React.memo"],"mappings":"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"}