@clickview/exchange 0.47.1-dev.4 → 0.48.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 (378) hide show
  1. package/dist/bundles.json +2 -2
  2. package/dist/css/1068-exchange-b5eaf8af44.chunk.css +35 -0
  3. package/dist/css/1127-exchange-0eab318199.chunk.css +40 -0
  4. package/dist/css/1226-exchange-217b44f8b4.chunk.css +57 -0
  5. package/dist/css/1861-exchange-f3ff7e4f0d.chunk.css +85 -0
  6. package/dist/css/2494-exchange-02d7a0249c.chunk.css +2 -0
  7. package/dist/css/2538-exchange-4cbfe56ba3.chunk.css +1 -0
  8. package/dist/css/3291-exchange-3a8e198338.chunk.css +11 -0
  9. package/dist/css/3858-exchange-06944bdfa4.chunk.css +1 -0
  10. package/dist/css/4075-exchange-6d2304419c.chunk.css +5 -0
  11. package/dist/css/5027-exchange-2284222ca6.chunk.css +25 -0
  12. package/dist/css/6298-exchange-78ece5c7c5.chunk.css +37 -0
  13. package/dist/css/6332-exchange-2a22bfa655.chunk.css +1 -0
  14. package/dist/css/6356-exchange-8c5b220bf6.chunk.css +1 -0
  15. package/dist/css/7095-exchange-4cbfe56ba3.chunk.css +1 -0
  16. package/dist/css/7759-exchange-23bb5dd175.chunk.css +8 -0
  17. package/dist/css/8294-exchange-c797263ac2.chunk.css +1 -0
  18. package/dist/css/8589-exchange-71b6bc18f9.chunk.css +11 -0
  19. package/dist/css/8866-exchange-e80e6c6649.chunk.css +10 -0
  20. package/dist/css/9212-exchange-d71527fc65.chunk.css +1 -0
  21. package/dist/css/9611-exchange-cbf2bb5621.chunk.css +5 -0
  22. package/dist/css/9958-exchange-1387f35e92.chunk.css +14 -0
  23. package/dist/css/lite-exchange-306a09841f.css +15 -0
  24. package/dist/languages/en.json +1 -0
  25. package/dist/scripts/1068-0b00683666-exchange.chunk.js +1 -0
  26. package/dist/scripts/1127-356b23351e-exchange.chunk.js +1 -0
  27. package/dist/scripts/1136-4d8336cfdf-exchange.chunk.js +2 -0
  28. package/dist/scripts/1136-4d8336cfdf-exchange.chunk.js.LICENSE.txt +1 -0
  29. package/dist/scripts/1226-a4c0643661-exchange.chunk.js +1 -0
  30. package/dist/scripts/1861-dbceb13d3f-exchange.chunk.js +2 -0
  31. package/dist/scripts/1861-dbceb13d3f-exchange.chunk.js.LICENSE.txt +1 -0
  32. package/dist/scripts/2087-bbc1fd721f-exchange.chunk.js +1 -0
  33. package/dist/scripts/2117-5d867c698d-exchange.chunk.js +1 -0
  34. package/dist/scripts/2127-71bf57d74b-exchange.chunk.js +1 -0
  35. package/dist/scripts/2494-98cce57764-exchange.chunk.js +2 -0
  36. package/dist/scripts/2494-98cce57764-exchange.chunk.js.LICENSE.txt +1 -0
  37. package/dist/scripts/2507-1911a9bdb2-exchange.chunk.js +1 -0
  38. package/dist/scripts/2538-997edb9433-exchange.chunk.js +2 -0
  39. package/dist/scripts/2538-997edb9433-exchange.chunk.js.LICENSE.txt +1 -0
  40. package/dist/scripts/2648-4197959943-exchange.chunk.js +1 -0
  41. package/dist/scripts/2877-eee7fe484e-exchange.chunk.js +1 -0
  42. package/dist/scripts/3291-f9ccc2ea28-exchange.chunk.js +1 -0
  43. package/dist/scripts/3858-cd9d38c31c-exchange.chunk.js +1 -0
  44. package/dist/scripts/4075-6624f96fc6-exchange.chunk.js +1 -0
  45. package/dist/scripts/4299-36e5929cc6-exchange.chunk.js +1 -0
  46. package/dist/scripts/4312-7d095d2f30-exchange.chunk.js +1 -0
  47. package/dist/scripts/442-47e3927b49-exchange.chunk.js +1 -0
  48. package/dist/scripts/455-ceeb969c54-exchange.chunk.js +1 -0
  49. package/dist/scripts/4558-057650ef22-exchange.chunk.js +1 -0
  50. package/dist/scripts/5027-357264982b-exchange.chunk.js +1 -0
  51. package/dist/scripts/5173-9cde8f68d3-exchange.chunk.js +1 -0
  52. package/dist/scripts/5267-443f3cdd59-exchange.chunk.js +1 -0
  53. package/dist/scripts/601-a3c22b0a9f-exchange.chunk.js +1 -0
  54. package/dist/scripts/6156-2bf99d5991-exchange.chunk.js +1 -0
  55. package/dist/scripts/6298-1c7a0ba516-exchange.chunk.js +1 -0
  56. package/dist/scripts/6332-9d2d42e2f9-exchange.chunk.js +1 -0
  57. package/dist/scripts/6356-dd8ff70cbb-exchange.chunk.js +1 -0
  58. package/dist/scripts/6725-25d1542dec-exchange.chunk.js +1 -0
  59. package/dist/scripts/6831-30fa3e741e-exchange.chunk.js +1 -0
  60. package/dist/scripts/7095-bbe1bfbe2f-exchange.chunk.js +2 -0
  61. package/dist/scripts/7095-bbe1bfbe2f-exchange.chunk.js.LICENSE.txt +1 -0
  62. package/dist/scripts/7170-cc2ea0de18-exchange.chunk.js +1 -0
  63. package/dist/scripts/7759-2740213eb8-exchange.chunk.js +1 -0
  64. package/dist/scripts/7782-36924dba92-exchange.chunk.js +1 -0
  65. package/dist/scripts/7925-978cf5d7fb-exchange.chunk.js +1 -0
  66. package/dist/scripts/851-d89fb94a66-exchange.chunk.js +2 -0
  67. package/dist/scripts/851-d89fb94a66-exchange.chunk.js.LICENSE.txt +1 -0
  68. package/dist/scripts/8536-dc903c2f54-exchange.chunk.js +1 -0
  69. package/dist/scripts/8589-912ab9f055-exchange.chunk.js +1 -0
  70. package/dist/scripts/8619-e5f595a594-exchange.chunk.js +1 -0
  71. package/dist/scripts/8866-0993e6b43a-exchange.chunk.js +1 -0
  72. package/dist/scripts/8937-727d080ed9-exchange.chunk.js +1 -0
  73. package/dist/scripts/9212-e8bde56a84-exchange.chunk.js +1 -0
  74. package/dist/scripts/9414-85c7657c8f-exchange.chunk.js +2 -0
  75. package/dist/scripts/9414-85c7657c8f-exchange.chunk.js.LICENSE.txt +60 -0
  76. package/dist/scripts/9566-0625fb0cbe-exchange.chunk.js +1 -0
  77. package/dist/scripts/9611-6fe32ccc83-exchange.chunk.js +1 -0
  78. package/dist/scripts/9866-2d10067a4e-exchange.chunk.js +1 -0
  79. package/dist/scripts/9899-2b571c961b-exchange.chunk.js +1 -0
  80. package/dist/scripts/9958-7f8f5ae2c6-exchange.chunk.js +2 -0
  81. package/dist/scripts/9958-7f8f5ae2c6-exchange.chunk.js.LICENSE.txt +1 -0
  82. package/dist/scripts/bundle-be81211eaf.min.js +2 -0
  83. package/dist/scripts/bundle-be81211eaf.min.js.LICENSE.txt +108 -0
  84. package/package.json +4 -7
  85. package/typings/utils/imports.d.ts +1 -1
  86. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  87. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  88. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  89. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  90. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  91. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  92. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  93. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  94. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  95. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  96. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  97. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  98. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  99. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  100. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  101. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  102. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  103. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  104. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  105. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  106. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  107. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  108. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  109. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  110. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  111. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  112. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  113. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  114. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  115. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  116. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  117. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  118. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  119. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  120. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  121. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  122. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  123. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  124. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  125. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  126. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  127. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  128. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  129. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  130. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  131. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  132. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  133. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  134. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  135. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  136. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  137. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  138. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  139. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  140. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  141. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  142. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  143. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  144. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  145. package/dist/css/B57G3PZD.chunk.css +0 -1
  146. package/dist/css/BBV1d-ZI.chunk.css +0 -1
  147. package/dist/css/BDOTXlob.chunk.css +0 -1
  148. package/dist/css/BIeUeS4h.chunk.css +0 -1
  149. package/dist/css/BPdg7JW4.chunk.css +0 -1
  150. package/dist/css/BiRz4h1c.chunk.css +0 -1
  151. package/dist/css/Bt3pBBLn.chunk.css +0 -1
  152. package/dist/css/Bz8F9buU.chunk.css +0 -1
  153. package/dist/css/C2R4QydJ.chunk.css +0 -1
  154. package/dist/css/C7XoyEPr.chunk.css +0 -1
  155. package/dist/css/CAdv9Saa.chunk.css +0 -1
  156. package/dist/css/CC5F5C8O.chunk.css +0 -1
  157. package/dist/css/CCsCPLDG.chunk.css +0 -1
  158. package/dist/css/CD1qrI1T.chunk.css +0 -1
  159. package/dist/css/CDiJwtuL.chunk.css +0 -1
  160. package/dist/css/CM-cscAF.chunk.css +0 -1
  161. package/dist/css/CY0yvCW4.chunk.css +0 -1
  162. package/dist/css/Ci6HCTb5.chunk.css +0 -1
  163. package/dist/css/CifDVjr-.chunk.css +0 -1
  164. package/dist/css/CphXVlxY.chunk.css +0 -1
  165. package/dist/css/CrSv-tYo.chunk.css +0 -1
  166. package/dist/css/DD13UQOa.chunk.css +0 -1
  167. package/dist/css/DGyCCqtO.chunk.css +0 -1
  168. package/dist/css/DI4l_5OJ.chunk.css +0 -1
  169. package/dist/css/DL_jCfRl.chunk.css +0 -1
  170. package/dist/css/DRlDmMhN.chunk.css +0 -1
  171. package/dist/css/Dkh6sNpi.chunk.css +0 -1
  172. package/dist/css/DlOtoSz0.chunk.css +0 -1
  173. package/dist/css/DnhNnDZN.chunk.css +0 -1
  174. package/dist/css/EnQ3abug.chunk.css +0 -1
  175. package/dist/css/O777zV0C.chunk.css +0 -1
  176. package/dist/css/fs02hBfZ.chunk.css +0 -1
  177. package/dist/css/jbMisi9r.chunk.css +0 -1
  178. package/dist/css/w4TLT4f5.chunk.css +0 -1
  179. package/dist/en.json +0 -1
  180. package/dist/scripts/0eZyUL6x.chunk.js +0 -2
  181. package/dist/scripts/0eZyUL6x.chunk.js.map +0 -1
  182. package/dist/scripts/2tJmZ2Oi.chunk.js +0 -2
  183. package/dist/scripts/2tJmZ2Oi.chunk.js.map +0 -1
  184. package/dist/scripts/81elAOH1.chunk.js +0 -2
  185. package/dist/scripts/81elAOH1.chunk.js.map +0 -1
  186. package/dist/scripts/AkCv9mUX.chunk.js +0 -2
  187. package/dist/scripts/AkCv9mUX.chunk.js.map +0 -1
  188. package/dist/scripts/B-Dp4NBp.chunk.js +0 -2
  189. package/dist/scripts/B-Dp4NBp.chunk.js.map +0 -1
  190. package/dist/scripts/B-DrhpV6.chunk.js +0 -2
  191. package/dist/scripts/B-DrhpV6.chunk.js.map +0 -1
  192. package/dist/scripts/B-Ve87B8.chunk.js +0 -2
  193. package/dist/scripts/B-Ve87B8.chunk.js.map +0 -1
  194. package/dist/scripts/B3fiTt0v.chunk.js +0 -2
  195. package/dist/scripts/B3fiTt0v.chunk.js.map +0 -1
  196. package/dist/scripts/B3gC_Ph0.chunk.js +0 -2
  197. package/dist/scripts/B3gC_Ph0.chunk.js.map +0 -1
  198. package/dist/scripts/B5GSz7JC.chunk.js +0 -2
  199. package/dist/scripts/B5GSz7JC.chunk.js.map +0 -1
  200. package/dist/scripts/B5ReN0O-.chunk.js +0 -2
  201. package/dist/scripts/B5ReN0O-.chunk.js.map +0 -1
  202. package/dist/scripts/B668bf5B.chunk.js +0 -2
  203. package/dist/scripts/B668bf5B.chunk.js.map +0 -1
  204. package/dist/scripts/B6J5cgUO.chunk.js +0 -2
  205. package/dist/scripts/B6J5cgUO.chunk.js.map +0 -1
  206. package/dist/scripts/B70bPb5E.chunk.js +0 -2
  207. package/dist/scripts/B70bPb5E.chunk.js.map +0 -1
  208. package/dist/scripts/BAJmnmDG.chunk.js +0 -2
  209. package/dist/scripts/BAJmnmDG.chunk.js.map +0 -1
  210. package/dist/scripts/BBtnCImF.chunk.js +0 -2
  211. package/dist/scripts/BBtnCImF.chunk.js.map +0 -1
  212. package/dist/scripts/BDF37jEe.chunk.js +0 -2
  213. package/dist/scripts/BDF37jEe.chunk.js.map +0 -1
  214. package/dist/scripts/BHYvYUqt.chunk.js +0 -2
  215. package/dist/scripts/BHYvYUqt.chunk.js.map +0 -1
  216. package/dist/scripts/BIU8qa9K.chunk.js +0 -2
  217. package/dist/scripts/BIU8qa9K.chunk.js.map +0 -1
  218. package/dist/scripts/BKI4hXQ7.chunk.js +0 -2
  219. package/dist/scripts/BKI4hXQ7.chunk.js.map +0 -1
  220. package/dist/scripts/BMZLL3_m.chunk.js +0 -2
  221. package/dist/scripts/BMZLL3_m.chunk.js.map +0 -1
  222. package/dist/scripts/BO2QSQWF.chunk.js +0 -2
  223. package/dist/scripts/BO2QSQWF.chunk.js.map +0 -1
  224. package/dist/scripts/BPdCNtlr.chunk.js +0 -2
  225. package/dist/scripts/BPdCNtlr.chunk.js.map +0 -1
  226. package/dist/scripts/BSruPC6q.chunk.js +0 -2
  227. package/dist/scripts/BSruPC6q.chunk.js.map +0 -1
  228. package/dist/scripts/BXEZ_cH6.chunk.js +0 -2
  229. package/dist/scripts/BXEZ_cH6.chunk.js.map +0 -1
  230. package/dist/scripts/BXihGKiH.chunk.js +0 -2
  231. package/dist/scripts/BXihGKiH.chunk.js.map +0 -1
  232. package/dist/scripts/BZWC2UjJ.chunk.js +0 -2
  233. package/dist/scripts/BZWC2UjJ.chunk.js.map +0 -1
  234. package/dist/scripts/BZiHvyg-.chunk.js +0 -2
  235. package/dist/scripts/BZiHvyg-.chunk.js.map +0 -1
  236. package/dist/scripts/BlDVEZsX.chunk.js +0 -2
  237. package/dist/scripts/BlDVEZsX.chunk.js.map +0 -1
  238. package/dist/scripts/BmeqRFWF.chunk.js +0 -2
  239. package/dist/scripts/BmeqRFWF.chunk.js.map +0 -1
  240. package/dist/scripts/BqNPVwUS.chunk.js +0 -2
  241. package/dist/scripts/BqNPVwUS.chunk.js.map +0 -1
  242. package/dist/scripts/BxCjtYxH.chunk.js +0 -2
  243. package/dist/scripts/BxCjtYxH.chunk.js.map +0 -1
  244. package/dist/scripts/BxIUA4rE.chunk.js +0 -2
  245. package/dist/scripts/BxIUA4rE.chunk.js.map +0 -1
  246. package/dist/scripts/BzTPaPHA.chunk.js +0 -362
  247. package/dist/scripts/BzTPaPHA.chunk.js.map +0 -1
  248. package/dist/scripts/C4qPC8G0.chunk.js +0 -2
  249. package/dist/scripts/C4qPC8G0.chunk.js.map +0 -1
  250. package/dist/scripts/C88MKPgQ.chunk.js +0 -3
  251. package/dist/scripts/C88MKPgQ.chunk.js.map +0 -1
  252. package/dist/scripts/C8QZE6Un.chunk.js +0 -2
  253. package/dist/scripts/C8QZE6Un.chunk.js.map +0 -1
  254. package/dist/scripts/CAm4-U8J.chunk.js +0 -2
  255. package/dist/scripts/CAm4-U8J.chunk.js.map +0 -1
  256. package/dist/scripts/CBHt08r_.chunk.js +0 -2
  257. package/dist/scripts/CBHt08r_.chunk.js.map +0 -1
  258. package/dist/scripts/CC6EHIeg.chunk.js +0 -2
  259. package/dist/scripts/CC6EHIeg.chunk.js.map +0 -1
  260. package/dist/scripts/CCj-BH4j.chunk.js +0 -2
  261. package/dist/scripts/CCj-BH4j.chunk.js.map +0 -1
  262. package/dist/scripts/CFa5wiAZ.chunk.js +0 -2
  263. package/dist/scripts/CFa5wiAZ.chunk.js.map +0 -1
  264. package/dist/scripts/CHtfOuwt.chunk.js +0 -2
  265. package/dist/scripts/CHtfOuwt.chunk.js.map +0 -1
  266. package/dist/scripts/CJ3oIQlG.chunk.js +0 -2
  267. package/dist/scripts/CJ3oIQlG.chunk.js.map +0 -1
  268. package/dist/scripts/CKvmo9qU.chunk.js +0 -2
  269. package/dist/scripts/CKvmo9qU.chunk.js.map +0 -1
  270. package/dist/scripts/CLGeYsiU.chunk.js +0 -2
  271. package/dist/scripts/CLGeYsiU.chunk.js.map +0 -1
  272. package/dist/scripts/CW29yRhD.chunk.js +0 -2
  273. package/dist/scripts/CW29yRhD.chunk.js.map +0 -1
  274. package/dist/scripts/CXB1Dc5J.chunk.js +0 -2
  275. package/dist/scripts/CXB1Dc5J.chunk.js.map +0 -1
  276. package/dist/scripts/CY2lx-Xj.chunk.js +0 -2
  277. package/dist/scripts/CY2lx-Xj.chunk.js.map +0 -1
  278. package/dist/scripts/CacmfpJ3.chunk.js +0 -2
  279. package/dist/scripts/CacmfpJ3.chunk.js.map +0 -1
  280. package/dist/scripts/CbAEl-Vm.chunk.js +0 -2
  281. package/dist/scripts/CbAEl-Vm.chunk.js.map +0 -1
  282. package/dist/scripts/CcijYrFA.chunk.js +0 -2
  283. package/dist/scripts/CcijYrFA.chunk.js.map +0 -1
  284. package/dist/scripts/CdvQhnVd.chunk.js +0 -2
  285. package/dist/scripts/CdvQhnVd.chunk.js.map +0 -1
  286. package/dist/scripts/Cdw__lc8.chunk.js +0 -2
  287. package/dist/scripts/Cdw__lc8.chunk.js.map +0 -1
  288. package/dist/scripts/Cg9HJsEZ.chunk.js +0 -2
  289. package/dist/scripts/Cg9HJsEZ.chunk.js.map +0 -1
  290. package/dist/scripts/Ch0LKWIV.chunk.js +0 -50
  291. package/dist/scripts/Ch0LKWIV.chunk.js.map +0 -1
  292. package/dist/scripts/Cmu1J2M7.chunk.js +0 -262
  293. package/dist/scripts/Cmu1J2M7.chunk.js.map +0 -1
  294. package/dist/scripts/CqytaiSJ.chunk.js +0 -2
  295. package/dist/scripts/CqytaiSJ.chunk.js.map +0 -1
  296. package/dist/scripts/CubAa6F_.chunk.js +0 -2
  297. package/dist/scripts/CubAa6F_.chunk.js.map +0 -1
  298. package/dist/scripts/CwOHSynR.chunk.js +0 -2
  299. package/dist/scripts/CwOHSynR.chunk.js.map +0 -1
  300. package/dist/scripts/D19_0c-8.chunk.js +0 -2
  301. package/dist/scripts/D19_0c-8.chunk.js.map +0 -1
  302. package/dist/scripts/D1S6hwZq.chunk.js +0 -2
  303. package/dist/scripts/D1S6hwZq.chunk.js.map +0 -1
  304. package/dist/scripts/D7pbmK0q.chunk.js +0 -6
  305. package/dist/scripts/D7pbmK0q.chunk.js.map +0 -1
  306. package/dist/scripts/D7uBkU79.chunk.js +0 -8
  307. package/dist/scripts/D7uBkU79.chunk.js.map +0 -1
  308. package/dist/scripts/D8Hat_q8.chunk.js +0 -2
  309. package/dist/scripts/D8Hat_q8.chunk.js.map +0 -1
  310. package/dist/scripts/D8zZvitu.chunk.js +0 -5
  311. package/dist/scripts/D8zZvitu.chunk.js.map +0 -1
  312. package/dist/scripts/DCeinDae.chunk.js +0 -2
  313. package/dist/scripts/DCeinDae.chunk.js.map +0 -1
  314. package/dist/scripts/DEimCdra.chunk.js +0 -2
  315. package/dist/scripts/DEimCdra.chunk.js.map +0 -1
  316. package/dist/scripts/DKoiUoAQ.chunk.js +0 -2
  317. package/dist/scripts/DKoiUoAQ.chunk.js.map +0 -1
  318. package/dist/scripts/DLihS4mZ.chunk.js +0 -2
  319. package/dist/scripts/DLihS4mZ.chunk.js.map +0 -1
  320. package/dist/scripts/DS4k_cAQ.chunk.js +0 -2
  321. package/dist/scripts/DS4k_cAQ.chunk.js.map +0 -1
  322. package/dist/scripts/DVrUHsk4.chunk.js +0 -2
  323. package/dist/scripts/DVrUHsk4.chunk.js.map +0 -1
  324. package/dist/scripts/De8m6Vtf.chunk.js +0 -15
  325. package/dist/scripts/De8m6Vtf.chunk.js.map +0 -1
  326. package/dist/scripts/Dg-4fBAS.chunk.js +0 -2
  327. package/dist/scripts/Dg-4fBAS.chunk.js.map +0 -1
  328. package/dist/scripts/DgBm4Z5H.chunk.js +0 -2
  329. package/dist/scripts/DgBm4Z5H.chunk.js.map +0 -1
  330. package/dist/scripts/Dh8xoOSf.chunk.js +0 -2
  331. package/dist/scripts/Dh8xoOSf.chunk.js.map +0 -1
  332. package/dist/scripts/DlrCPMdZ.chunk.js +0 -2
  333. package/dist/scripts/DlrCPMdZ.chunk.js.map +0 -1
  334. package/dist/scripts/DnMWAYTf.chunk.js +0 -2
  335. package/dist/scripts/DnMWAYTf.chunk.js.map +0 -1
  336. package/dist/scripts/DtLhe3Mi.chunk.js +0 -2
  337. package/dist/scripts/DtLhe3Mi.chunk.js.map +0 -1
  338. package/dist/scripts/DzdwUdxf.chunk.js +0 -2
  339. package/dist/scripts/DzdwUdxf.chunk.js.map +0 -1
  340. package/dist/scripts/IV3bbn1E.chunk.js +0 -2
  341. package/dist/scripts/IV3bbn1E.chunk.js.map +0 -1
  342. package/dist/scripts/K3QqEeXP.chunk.js +0 -2
  343. package/dist/scripts/K3QqEeXP.chunk.js.map +0 -1
  344. package/dist/scripts/Kj832An8.chunk.js +0 -2
  345. package/dist/scripts/Kj832An8.chunk.js.map +0 -1
  346. package/dist/scripts/QfCSKVqV.chunk.js +0 -2
  347. package/dist/scripts/QfCSKVqV.chunk.js.map +0 -1
  348. package/dist/scripts/RAnkajCC.chunk.js +0 -2
  349. package/dist/scripts/RAnkajCC.chunk.js.map +0 -1
  350. package/dist/scripts/RfKhDEFx.chunk.js +0 -2
  351. package/dist/scripts/RfKhDEFx.chunk.js.map +0 -1
  352. package/dist/scripts/RjaJ7sQ8.chunk.js +0 -2
  353. package/dist/scripts/RjaJ7sQ8.chunk.js.map +0 -1
  354. package/dist/scripts/Us_3OHJ6.chunk.js +0 -2
  355. package/dist/scripts/Us_3OHJ6.chunk.js.map +0 -1
  356. package/dist/scripts/W5aHBnKW.chunk.js +0 -2
  357. package/dist/scripts/W5aHBnKW.chunk.js.map +0 -1
  358. package/dist/scripts/_sYSSSUN.chunk.js +0 -2
  359. package/dist/scripts/_sYSSSUN.chunk.js.map +0 -1
  360. package/dist/scripts/aWiaSYnf.chunk.js +0 -2
  361. package/dist/scripts/aWiaSYnf.chunk.js.map +0 -1
  362. package/dist/scripts/ajQ8aa2Z.chunk.js +0 -2
  363. package/dist/scripts/ajQ8aa2Z.chunk.js.map +0 -1
  364. package/dist/scripts/app-BOVAF25L.js +0 -219
  365. package/dist/scripts/app-BOVAF25L.js.map +0 -1
  366. package/dist/scripts/fryHFjND.chunk.js +0 -2
  367. package/dist/scripts/fryHFjND.chunk.js.map +0 -1
  368. package/dist/scripts/gaXZzMcg.chunk.js +0 -2
  369. package/dist/scripts/gaXZzMcg.chunk.js.map +0 -1
  370. package/dist/scripts/pkzD5BEm.chunk.js +0 -2
  371. package/dist/scripts/pkzD5BEm.chunk.js.map +0 -1
  372. package/dist/scripts/rZLzwqIY.chunk.js +0 -2
  373. package/dist/scripts/rZLzwqIY.chunk.js.map +0 -1
  374. package/dist/scripts/sQODx69W.chunk.js +0 -2
  375. package/dist/scripts/sQODx69W.chunk.js.map +0 -1
  376. package/dist/scripts/tP6Wmg__.chunk.js +0 -2
  377. package/dist/scripts/tP6Wmg__.chunk.js.map +0 -1
  378. package/vite.config.ts +0 -6
@@ -1 +0,0 @@
1
- {"version":3,"file":"DKoiUoAQ.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{c,j as n,P as i,T as a,F as l}from"./app-BOVAF25L.js";function x(t){let s=t.buttons.map(e=>{const o=()=>{e.success?l.isFunction(t.onDone)&&t.onDone():l.isFunction(t.onFail)&&t.onFail(),t.closePopup()};return{buttonText:e.text,className:e.className,onClick:o,type:e.type,close:e.close}});return s=c.sortBy(s,"close"),n.jsxs(i,{title:t.title,closePopup:t.closePopup,children:[n.jsx("p",{dangerouslySetInnerHTML:{__html:a.sanitize(t.text)}}),n.jsx("div",{className:"d-flex justify-content-end border-top pt-3 px-3 mx-n3",children:s.map((e,o)=>n.jsx("button",{className:e.className,onClick:e.onClick,type:e.type,children:e.buttonText},o))})]})}export{x as DialogView};
2
- //# sourceMappingURL=DLihS4mZ.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DLihS4mZ.chunk.js","sources":["../../../../libs/shared/src/views/dialog/DialogView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { DialogOptions, PopupViewProps } from 'libs/shared/interfaces';\n\ninterface DialogViewProps extends DialogOptions {\n onDone?: () => void;\n onFail?: () => void;\n}\n\ntype PropTypes = React.PropsWithChildren<DialogViewProps & PopupViewProps>;\n\nexport function DialogView(props: PropTypes): React.ReactElement {\n let buttons = props.buttons.map(b => {\n const onClick = () => {\n if (b.success)\n FunctionHelper.isFunction(props.onDone) && props.onDone();\n else\n FunctionHelper.isFunction(props.onFail) && props.onFail();\n\n props.closePopup();\n };\n\n return {\n buttonText: b.text,\n className: b.className,\n onClick,\n type: b.type,\n close: b.close\n };\n });\n\n /**\n * The dismiss action should always be on the left side of the popup\n */\n buttons = ArrayHelper.sortBy(buttons, 'close');\n\n return (\n <Popup title={props.title} closePopup={props.closePopup}>\n <p dangerouslySetInnerHTML={{ __html: TextHelper.sanitize(props.text) }} />\n <div className='d-flex justify-content-end border-top pt-3 px-3 mx-n3'>\n {buttons.map((b, idx) => (\n <button key={idx} className={b.className} onClick={b.onClick} type={b.type}>\n {b.buttonText}\n </button>\n ))}\n </div>\n </Popup>\n );\n}"],"names":["DialogView","props","buttons","b","onClick","FunctionHelper","ArrayHelper","Popup","jsx","TextHelper","idx"],"mappings":"6DAgBO,SAASA,EAAWC,EAAsC,CAC/D,IAAIC,EAAUD,EAAM,QAAQ,IAAIE,GAAK,CACnC,MAAMC,EAAU,IAAM,CAChBD,EAAE,QACJE,EAAe,WAAWJ,EAAM,MAAM,GAAKA,EAAM,OAAA,EAEjDI,EAAe,WAAWJ,EAAM,MAAM,GAAKA,EAAM,OAAA,EAEnDA,EAAM,WAAA,CACR,EAEA,MAAO,CACL,WAAYE,EAAE,KACd,UAAWA,EAAE,UACb,QAAAC,EACA,KAAMD,EAAE,KACR,MAAOA,EAAE,KAAA,CAEb,CAAC,EAKD,OAAAD,EAAUI,EAAY,OAAOJ,EAAS,OAAO,SAG1CK,EAAA,CAAM,MAAON,EAAM,MAAO,WAAYA,EAAM,WAC3C,SAAA,CAAAO,EAAAA,IAAC,IAAA,CAAE,wBAAyB,CAAE,OAAQC,EAAW,SAASR,EAAM,IAAI,CAAA,EAAK,EACzEO,EAAAA,IAAC,MAAA,CAAI,UAAU,wDACZ,SAAAN,EAAQ,IAAI,CAACC,EAAGO,IACfF,EAAAA,IAAC,SAAA,CAAiB,UAAWL,EAAE,UAAW,QAASA,EAAE,QAAS,KAAMA,EAAE,KACnE,SAAAA,EAAE,UAAA,EADQO,CAEb,CACD,CAAA,CACH,CAAA,EACF,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{r as u,d as w,a_ as $,a$ as E,j as n,f as M,F as _,b0 as k,K as D,G as H,Q as y,av as N,$ as h}from"./app-BOVAF25L.js";import{u as P}from"./D19_0c-8.chunk.js";import{a as X}from"./B6J5cgUO.chunk.js";import{C as T}from"./B3gC_Ph0.chunk.js";import{u as z}from"./BBtnCImF.chunk.js";import{M as l}from"./_sYSSSUN.chunk.js";const j=u.forwardRef(({bsPrefix:e,className:r,as:a="div",...i},o)=>{const m=w(e,"row"),c=$(),g=E(),x=`${m}-cols`,C=[];return c.forEach(t=>{const f=i[t];delete i[t];let s;f!=null&&typeof f=="object"?{cols:s}=f:s=f;const d=t!==g?`-${t}`:"";s!=null&&C.push(`${x}${d}-${s}`)}),n.jsx(a,{ref:o,...i,className:M(r,m,...C)})});j.displayName="Row";const L=400;function B(e){const r=()=>{if(!e.isFetching){if(e.scrollContainer){const{scrollContainer:a}=e,i=a.getBoundingClientRect().height+a.scrollTop,o=a.scrollHeight-L;if(i<o)return}else{const a=window.innerHeight+document.documentElement.scrollTop,i=document.documentElement.scrollHeight-L;if(a<i)return}e.fetchNextPage()}};u.useEffect(()=>{const a=_.throttle(r,200),i=e.scrollContainer||window;return e.hasMore&&i.addEventListener("scroll",a),()=>i.removeEventListener("scroll",a)},[e.hasMore,e.fetchNextPage,e.scrollContainer])}function te(e,r,a,i,o,m){const[c,g]=u.useState(0),x=r;function C(s){if(!e)return null;const d=e(s);return d?d.key:null}const t=P(C,i,o);function f(){if(!(!r||!e||!t))return g(s=>s+1),x(t.nextCursor)}return B({fetchNextPage:f,hasMore:!!(t!=null&&t.nextCursor),isFetching:t==null?void 0:t.isFetching,scrollContainer:m}),u.useEffect(()=>{t&&t.shouldInitialFetch&&r&&(x(),g(s=>s+1))},[t==null?void 0:t.shouldInitialFetch,r]),u.useEffect(()=>{var d,v;if(!(t!=null&&t.statusCode)||!_.isFunction(a))return;const s=+((v=(d=t.statusCode)==null?void 0:d.toString())==null?void 0:v.substr(0,1));s!==k.ClientError&&s!==k.ServerError||a(c,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}}const I="_container_1kfhe_1",V="_spinner_1kfhe_4",F={container:I,spinner:V};G.defaultProps={fetchOnScroll:!1};function G(e){const[r,a]=X();return u.useEffect(()=>{var i;e.fetchOnScroll&&(!a||e.isFetching||(i=e.fetchNext)==null||i.call(e,e.nextCursor))},[a,e.isFetching]),n.jsx("div",{className:`p-3 text-center ${F.container}`,children:e.isFetching?n.jsx(D,{as:"span",animation:"border",role:"status",className:F.spinner}):n.jsx("div",{ref:r,children:n.jsx(H,{svg:T,className:"svg-container cursor-pointer",size:y.Large,onClick:()=>{var i;return(i=e.fetchNext)==null?void 0:i.call(e,e.nextCursor)}})})})}const S={getThumbnailColumns(){return{xs:12,sm:5,lg:3}},getDetailsColumns(){return{xs:12,sm:7,lg:9}},getSize(e,r){return e.sm?"sm":r||"md"},getThumbnailColSize(e){return e?10:12}},R="_partialName_157xw_4",A="_partialDescription_157xw_8",O="_partialThumbnail_157xw_12",Q="_partialDragHandle_157xw_15",b={partialName:R,partialDescription:A,partialThumbnail:O,partialDragHandle:Q};K.defaultProps={numVideos:15};function K(e){return n.jsx(n.Fragment,{children:Array(e.numVideos).fill(null).map((r,a)=>n.jsxs("div",{className:"d-flex",children:[e.allowBulkActions&&n.jsx("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.jsx(J,{...e})]},a))})}function J(e){const r=z(),i=S.getSize(r,"md")==="sm",o=e.withReordering&&!r.xs;return n.jsxs(j,{className:`${i?"":"py-2"} flex-grow-1`,children:[n.jsx(N,{...S.getThumbnailColumns(),className:`flex-column align-items-flex-start ${i?"pb-2 pe-1":"mb-1 pe-3 pe-md-2"}`,children:n.jsxs(j,{children:[!!o&&n.jsx("div",{className:"d-flex align-items-center justify-content-center col-2",children:n.jsx("div",{className:`partial-loading-background ${b.partialDragHandle}`})}),n.jsx(N,{xs:S.getThumbnailColSize(o),children:n.jsx("div",{className:`partial-loading-background ${i?"rounded":"rounded-3"} ${b.partialThumbnail}`})})]})}),n.jsxs(N,{...S.getDetailsColumns(),className:i?"pb-2":"px-2",children:[n.jsx("div",{className:`partial-loading-background mb-1 ${b.partialName}`}),n.jsx("div",{className:`partial-loading-background ${b.partialDescription}`})]})]})}U.defaultProps={checked:!1,label:"",className:""};function U(e){const{isLabelEllipsis:r}=e,a=u.useRef(null);return u.useEffect(()=>{if(a.current){if(e.checked){a.current.indeterminate&&(a.current.indeterminate=!1);return}if(e.indeterminate&&!a.current.indeterminate){a.current.indeterminate=!0;return}!e.indeterminate&&a.current.indeterminate&&(a.current.indeterminate=!1)}},[a.current,e.indeterminate,e.checked]),n.jsxs("div",{className:`form-check pe-2 ${e.className}`,children:[n.jsx("input",{ref:a,type:"checkbox",className:`${e.inputClassName} form-check-input`,id:e.id,name:e.name,checked:e.checked,onChange:e.onChange,disabled:e.disabled,"aria-checked":e.checked,"aria-label":e.ariaLabel}),e.label&&n.jsx("label",{className:"form-check-label cursor-pointer align-top",htmlFor:e.id,children:n.jsx("span",{className:`${r?"clamp-1":""}`,children:e.label})})]})}function ae(e){return n.jsx("svg",{...e,children:n.jsx("path",{fill:"currentColor",d:"M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024"})})}function ne(){const e=h(l.XS),r=h(l.SM),a=h(l.MD),i=h(l.LG),o=h(l.XL),m=h(l.XXL);let c=l.LG;return e&&(c=l.XS),r&&(c=l.SM),a&&(c=l.MD),i&&(c=l.LG),o&&(c=l.XL),m&&(c=l.XXL),c}export{U as C,ae as G,G as I,K as P,j as R,S as V,ne as a,te as u};
2
- //# sourceMappingURL=DS4k_cAQ.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DS4k_cAQ.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../../../libs/shared/src/hooks/UseInfiniteScroll.ts","../../../../libs/shared/src/hooks/UseInfiniteList.ts","../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","../../../../libs/shared/src/components/video-list/VideoListHelper.tsx","../../../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","../../../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx","../../../../libs/shared/src/images/svg/objects/GraduationCapSvg.tsx","../../../../libs/shared/src/hooks/UseGetMediaQueryString.ts"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}","import { ColProps } from 'react-bootstrap';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nexport const VideoListHelper = {\n getThumbnailColumns(): ColProps {\n return {\n xs: 12,\n sm: 5,\n lg: 3\n };\n },\n\n getDetailsColumns(): ColProps {\n return {\n xs: 12,\n sm: 7,\n lg: 9\n };\n },\n\n getSize(breakpoints: Breakpoints, size: VideoItemSize): VideoItemSize {\n if (breakpoints.sm)\n return 'sm';\n \n return size || 'md';\n },\n\n getThumbnailColSize(hasDragHandle: boolean): number {\n return hasDragHandle ? 10 : 12;\n }\n};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.module.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import * as React from 'react';\n\ninterface CheckboxProps {\n id: string;\n checked: boolean;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n label?: string;\n ariaLabel?: string;\n name?: string;\n className?: string;\n inputClassName?: string;\n disabled?: boolean;\n indeterminate?: boolean;\n isLabelEllipsis?: boolean;\n}\n\nCheckbox.defaultProps = {\n checked: false,\n label: '',\n className: ''\n};\n\n/**\n * Use this checkbox outside of Formik contexts\n */\nexport function Checkbox(props: CheckboxProps): JSX.Element {\n const { isLabelEllipsis } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n if (!ref.current)\n return;\n\n if (props.checked) {\n if (ref.current.indeterminate)\n ref.current.indeterminate = false;\n\n return;\n }\n\n if (props.indeterminate && !ref.current.indeterminate) {\n ref.current.indeterminate = true;\n return;\n }\n\n if (!props.indeterminate && ref.current.indeterminate)\n ref.current.indeterminate = false;\n }, [ ref.current, props.indeterminate, props.checked ]);\n\n return (\n <div className={`form-check pe-2 ${props.className}`}>\n <input\n ref={ref}\n type='checkbox'\n className={`${props.inputClassName} form-check-input`}\n id={props.id}\n name={props.name}\n checked={props.checked}\n onChange={props.onChange}\n disabled={props.disabled}\n aria-checked={props.checked}\n aria-label={props.ariaLabel}\n />\n {props.label && (\n <label className='form-check-label cursor-pointer align-top' htmlFor={props.id}>\n <span className={`${isLabelEllipsis ? 'clamp-1' : ''}`}>{props.label}</span>\n </label>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport function GraduationCapSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024'\n />\n </svg>\n );\n}\n","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}"],"names":["Row","React.forwardRef","bsPrefix","className","Component","props","ref","decoratedBsPrefix","useBootstrapPrefix","breakpoints","useBootstrapBreakpoints","minBreakpoint","useBootstrapMinBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","_jsx","classNames","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","InfiniteScrollFooter","inView","useInView","React.useEffect","jsx","styles","Spinner","SvgContainer","ChevronDownSvg","SvgContainerSize","VideoListHelper","size","hasDragHandle","PartialVideoList","Fragment","_","i","jsxs","PartialVideoItem","useBreakpoints","isSmall","withDragHandle","Col","Checkbox","isLabelEllipsis","React.useRef","GraduationCapSvg","useGetMediaQueryString","isXS","useMediaQuery","MediaQueryStrings","isSM","isMD","isLG","isXL","isXXL","currentString"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{j as a}from"./app-BOVAF25L.js";function s(e){return a.jsx("span",{id:`${e.name}Error`,className:`${e.className} invalid-feedback d-block`,role:"status",children:e.children})}export{s as F};
2
- //# sourceMappingURL=DVrUHsk4.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DVrUHsk4.chunk.js","sources":["../../../../libs/shared/src/components/forms/form-feedback/FormFeedback.tsx"],"sourcesContent":["import React from 'react';\n\ninterface FormFeedbackProps extends React.PropsWithChildren {\n name: string;\n className?: string;\n}\n\nexport function FormFeedback(props: FormFeedbackProps) {\n return (\n <span id={`${props.name}Error`} className={`${props.className} invalid-feedback d-block`} role='status'>{props.children}</span>\n );\n}"],"names":["FormFeedback","props","jsx"],"mappings":"sCAOO,SAASA,EAAaC,EAA0B,CACrD,OACEC,EAAAA,IAAC,OAAA,CAAK,GAAI,GAAGD,EAAM,IAAI,QAAS,UAAW,GAAGA,EAAM,SAAS,4BAA6B,KAAK,SAAU,WAAM,SAAS,CAE5H"}
@@ -1,15 +0,0 @@
1
- import{j as t,ap as c,w as r,G as o,aa as d}from"./app-BOVAF25L.js";import{B as m,a as x}from"./BKI4hXQ7.chunk.js";const u="_pillTabSelector_a6f6x_1",f="_tab_a6f6x_4",p="_minWidth_a6f6x_21",b="_radiusSmall_a6f6x_24",j="_tabLink_a6f6x_35",e={pillTabSelector:u,tab:f,minWidth:p,radiusSmall:b,tabLink:j};function i(n){return t.jsxs(t.Fragment,{children:[!!n.tab.svg&&t.jsx("div",{className:n.tab.name?"pe-1":"",children:t.jsx(o,{svg:n.tab.svg})}),n.tab.name,typeof n.tab.count=="number"&&t.jsx("div",{className:"ps-2",children:t.jsx(m,{type:x.Count,data:n.tab.count})})]})}y.defaultProps={borderRadius:"lg"};function y(n){function s(a){a.active||!a.onSelect||(a.onSelect(),a.analyticsData&&a.analyticsOptions&&d.logUserAction(a.analyticsData,a.analyticsOptions))}return t.jsx("nav",{className:n.className??"",ref:n.containerRef,children:t.jsx("ul",{className:`
2
- list-unstyled d-inline-block m-0 ${e.pillTabSelector}
3
- ${n.borderRadius?e.radiusSmall:""}
4
- ${n.listClassName}
5
- `,children:n.tabs.map((a,l)=>t.jsx("li",{className:`
6
- p-0 ${e.tab} ${a.active?"btn btn-dark":"btn btn-outline-dark"}
7
- ${a.name?e.minWidth:""} ${a.className}
8
- `,children:a.appLink?t.jsx(c,{appLink:a.appLink,analyticsData:a.analyticsData,analyticsOptions:a.analyticsOptions,className:`
9
- cursor-pointer d-flex align-items-center justify-content-center
10
- text-decoration-none text-reset px-2 text-nowrap ${e.tabLink}
11
- `,children:t.jsx(i,{tab:a})}):t.jsx(r,{className:`
12
- cursor-pointer d-flex align-items-center justify-content-center
13
- text-decoration-none text-reset px-2 text-nowrap ${e.tabLink}
14
- `,onClick:()=>s(a),children:t.jsx(i,{tab:a})})},l))})})}export{y as P};
15
- //# sourceMappingURL=De8m6Vtf.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"De8m6Vtf.chunk.js","sources":["../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svg?: SvgIcon;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n"],"names":["TabContents","props","jsxs","Fragment","jsx","SvgContainer","Badge","BadgeType","PillTabSelector","onSelectTab","tab","AnalyticsHelper","styles","index","AppLink","DivButton"],"mappings":"6SAqBA,SAASA,EAAYC,EAAsC,CACzD,OACEC,EAAAA,KAAAC,WAAA,CACG,SAAA,CAAA,CAAC,CAACF,EAAM,IAAI,KACXG,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAM,IAAI,KAAO,OAAS,GACxC,SAAAG,EAAAA,IAACC,EAAA,CAAa,IAAKJ,EAAM,IAAI,IAAK,EACpC,EAGDA,EAAM,IAAI,KAEV,OAAQA,EAAM,IAAI,OAAW,UAC5BG,EAAAA,IAAC,OAAI,UAAU,OACb,SAAAA,EAAAA,IAACE,EAAA,CAAM,KAAMC,EAAU,MAAO,KAAMN,EAAM,IAAI,MAAO,CAAA,CACvD,CAAA,EAEJ,CAEJ,CA0BAO,EAAgB,aAAe,CAC7B,aAAc,IAChB,EAEO,SAASA,EAAgBP,EAA0C,CACxE,SAASQ,EAAYC,EAAoB,CACnCA,EAAI,QAAU,CAACA,EAAI,WAGvBA,EAAI,SAAA,EAEAA,EAAI,eAAiBA,EAAI,kBAC3BC,EAAgB,cAAcD,EAAI,cAAeA,EAAI,gBAAgB,EACzE,CAEA,OACEN,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAM,WAAa,GAAI,IAAKA,EAAM,aAChD,SAAAG,EAAAA,IAAC,KAAA,CAAG,UAAW;AAAA,2CACsBQ,EAAO,eAAe;AAAA,UACvDX,EAAM,aAAeW,EAAO,YAAc,EAAE;AAAA,UAC5CX,EAAM,aAAa;AAAA,QAEpB,SAAAA,EAAM,KAAK,IAAI,CAACS,EAAKG,IAElBT,EAAAA,IAAC,KAAA,CACC,UAAW;AAAA,sBACHQ,EAAO,GAAG,IAAIF,EAAI,OAAS,eAAiB,sBAAsB;AAAA,kBACtEA,EAAI,KAAOE,EAAO,SAAW,EAAE,IAAIF,EAAI,SAAS;AAAA,gBAInD,WAAI,QACHN,EAAAA,IAACU,EAAA,CACC,QAASJ,EAAI,QACb,cAAeA,EAAI,cACnB,iBAAkBA,EAAI,iBACtB,UAAW;AAAA;AAAA,uEAE0CE,EAAO,OAAO;AAAA,oBAGnE,SAAAR,EAAAA,IAACJ,GAAY,IAAAU,CAAA,CAAU,CAAA,CAAA,EAGzBN,EAAAA,IAACW,EAAA,CACC,UAAW;AAAA;AAAA,uEAE0CH,EAAO,OAAO;AAAA,oBAEnE,QAAS,IAAMH,EAAYC,CAAG,EAE9B,SAAAN,EAAAA,IAACJ,GAAY,IAAAU,CAAA,CAAU,CAAA,CAAA,CACzB,EAvBGG,CAAA,CA2BV,EACH,EACF,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{j as r}from"./app-BOVAF25L.js";function o(s){return r.jsx("svg",{...s,children:r.jsx("path",{fill:"currentColor",d:"M14.053 14.879a6.28 6.28 0 0 1-3.834 1.294C6.784 16.173 4 13.448 4 10.086S6.784 4 10.219 4c3.434 0 6.218 2.725 6.218 6.086 0 1.59-.622 3.037-1.641 4.12l5.056 4.95a.487.487 0 0 1 0 .699.513.513 0 0 1-.715 0zm1.384-4.793C15.437 7.297 13.121 5 10.22 5S5 7.297 5 10.086s2.316 5.087 5.219 5.087c2.902 0 5.218-2.298 5.218-5.087"})})}export{o as S};
2
- //# sourceMappingURL=Dg-4fBAS.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Dg-4fBAS.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/SearchSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function SearchSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M14.053 14.879a6.28 6.28 0 0 1-3.834 1.294C6.784 16.173 4 13.448 4 10.086S6.784 4 10.219 4c3.434 0 6.218 2.725 6.218 6.086 0 1.59-.622 3.037-1.641 4.12l5.056 4.95a.487.487 0 0 1 0 .699.513.513 0 0 1-.715 0zm1.384-4.793C15.437 7.297 13.121 5 10.22 5S5 7.297 5 10.086s2.316 5.087 5.219 5.087c2.902 0 5.218-2.298 5.218-5.087'\n />\n </svg>\n );\n}\n"],"names":["SearchSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAAUC,EAAsC,CAC9D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,mUAAA,CAAA,EAEN,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{j as e,w as O,a1 as G,a2 as g,a4 as L,A as b,a as j,b as F,aP as v,L as B,bI as R,aa as V,ab as U,ac as _,aQ as I,ad as w,ae as C,R as H,al as M,P as Y,B as u,x as k}from"./app-BOVAF25L.js";import{u as Q}from"./RAnkajCC.chunk.js";import{T as m,a as J}from"./W5aHBnKW.chunk.js";import{u as W}from"./B-DrhpV6.chunk.js";const z="_selected_ii58d_1",K="_disabled_ii58d_4",$={selected:z,disabled:K};function P(a){var i,d,A,t;function n(){var s;(s=a.option)!=null&&s.disabled||a.onSelect(a.option)}let r="text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50";return a.selected&&(r+=` border-info ${$.selected}`),(i=a.option)!=null&&i.disabled&&(r+=` ${$.disabled}`),e.jsxs(O,{onClick:n,className:r,children:[((d=a.option)==null?void 0:d.imageUrl)&&e.jsx("img",{src:a.option.imageUrl,className:`img-fluid my-3 ${a.option.imageClassName??""}`,draggable:!1}),((A=a.option)==null?void 0:A.title)&&e.jsx("h2",{className:"h3",children:a.option.title}),((t=a.option)==null?void 0:t.description)&&e.jsx("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:a.option.description}}),a.children]})}const X="tv.addRequests",p=B.encloseNamespace(X);function Z(a,n){const r=G(),i=W(),d=g(L.currentUser()),A=g(L.workspace()),t=g(m.program(a)),s=g(m.region(n)),l=g(t.data&&d.data&&m.workspaceVideo(t.data.id,d.data.id,d.data.customerId));async function N(){var c;try{await r(m.createAdFreeRequest({programId:t.data.id,regionCode:s.data.code,userId:d.data.id,customerId:d.data.customerId})),i.success({heading:R.Success,message:p("requestAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.AD_FREE_REQUEST,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:w.Video,descriptor:I.AdFreeRequest,location:_.Popup,workflowPhase:U.Complete})}catch(D){const T=(c=D.responseJSON)==null?void 0:c.message;if(T){const S=JSON.parse(T);i.error(p(S.Type,{video:t.data.title}))}else i.error(p("error"))}}async function y(){if(l.data.exists&&l.data.hasAdFree){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={id:t.data.id,userId:d.data.id,customerId:d.data.customerId};await r(m.addAdFreeVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:w.Video,descriptor:I.AddAdFreeVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}async function E(){if(l.data.exists){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={userId:d.data.id,customerId:d.data.customerId,globalId:t.data.globalId,libraryId:A.data.id};await r(m.addFullVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addFullSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:w.Video,descriptor:I.AddFullVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}return{requestAdFreeVideo:N,addAdFreeVideo:y,addFullVideo:E}}const ee="_circle_1yxtg_1",ae={circle:ee},o="tv.add",q=B.encloseNamespace(o),x={id:"ad-free",title:"adFreeTitle",description:"adFreeDescription",imageUrl:M.General.MOUNTAINS_FRAMED},f={id:"request-ad-free",title:"adFreeTitle",imageUrl:M.General.MOUNTAINS_FRAMED},h={id:"full-video",title:"fullVideoTitle",description:"fullVideoDescription",imageUrl:M.General.ANNOUNCEMENT_FRAMED};function re(a){const n=g(L.currentUser()),r=g(m.program(a.id)),i=g(n.data&&m.adFreeCredits(n.data.id,n.data.customerId,a.region)),{requestAdFreeVideo:d,addAdFreeVideo:A,addFullVideo:t}=Z(a.id,a.region);Q(r.statusCode);const[s,l]=H.useState(null),N=!Number.isNaN(a.currentTime);function y(){s&&(s.id===h.id&&t(),s.id===x.id&&A(),s.id===f.id&&d())}function E(){if(!N){a.closePopup();return}b.trigger({application:F.TV,action:j.Tv.PREVIEW,args:[a.region,r.data.id],params:{currentTime:a.currentTime}})}const c=i.data&&i.data.userRequests<i.data.maxAvailableCredit,D=i.data&&i.data.maxAvailableCredit-i.data.userRequests;H.useEffect(()=>{i.hasCompleted&&(c||l(h))},[i,c]);const T=n.hasCompleted&&r.hasCompleted&&i.hasCompleted,S=(s==null?void 0:s.id)===f.id&&J.isHolidayPeriod();return e.jsxs(Y,{size:"lg",title:q("title"),showLoadingSpinner:!T,closePopup:a.closePopup,children:[T&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"d-flex mb-3 mx-n2",children:[r.data.hasAdsFree&&e.jsxs(P,{option:{id:x.id},onSelect:l,selected:(s==null?void 0:s.id)===x.id,children:[e.jsx("img",{src:x.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:x.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:x.description})})]}),!r.data.hasAdsFree&&e.jsxs(P,{option:{id:f.id,disabled:!c},onSelect:l,selected:(s==null?void 0:s.id)===f.id,children:[e.jsx("img",{src:f.imageUrl,className:"img-fluid",draggable:!1}),e.jsxs("div",{className:"d-flex justify-content-center align-items-center mb-1",children:[e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:f.title})}),e.jsx("span",{className:`badge bg-dark rounded-circle ms-2 ${ae.circle}`,children:D})]}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:c?"requestAdFreeDescription":"noRequestsDescription"})})]}),e.jsxs(P,{option:{id:h.id},onSelect:l,selected:(s==null?void 0:s.id)===h.id,children:[e.jsx("img",{src:h.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:h.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:h.description})})]})]}),S&&e.jsxs("div",{className:"alert alert-warning",role:"alert",children:[e.jsx("h3",{className:"h5",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertHeading"})}),e.jsx("p",{className:"m-0",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertBody"})})]})]}),e.jsxs(k,{children:[e.jsx(k.Cancel,{text:q(N?"back":"close"),onClick:E,variant:"link"}),e.jsx(k.Submit,{text:q("continue"),onClick:y,variant:"dark",disabled:!s})]})]})}export{re as TvAddView};
2
- //# sourceMappingURL=DgBm4Z5H.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DgBm4Z5H.chunk.js","sources":["../../../../libs/shared/src/components/choices-popup/components/choices/Choices.tsx","../../src/apps/tv/hooks/useTvAddRequests.ts","../../src/apps/tv/views/tv-add/TvAddView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './choices.module.scss';\n\nexport interface ChoicePopupOption {\n id: string;\n title?: string;\n description?: string;\n imageUrl?: string;\n disabled?: boolean;\n imageClassName?: string;\n}\n\n\ninterface ChoiceProps {\n option?: ChoicePopupOption;\n selected: boolean | ((selectedChoice: boolean) => boolean);\n onSelect: (option: ChoicePopupOption) => void;\n}\n\nexport function Choice(props: React.PropsWithChildren<ChoiceProps>): React.ReactElement {\n function onSelect(): void {\n if (props.option?.disabled)\n return;\n\n props.onSelect(props.option);\n }\n\n let className = 'text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50';\n\n if (props.selected)\n className += ` border-info ${styles.selected}`;\n\n if (props.option?.disabled)\n className += ` ${styles.disabled}`;\n\n return (\n <DivButton onClick={onSelect} className={className}>\n {props.option?.imageUrl && <img src={props.option.imageUrl} className={`img-fluid my-3 ${props.option.imageClassName ?? ''}`} draggable={false} />}\n {props.option?.title && <h2 className='h3'>{props.option.title}</h2>}\n {props.option?.description && <p className='mb-0' dangerouslySetInnerHTML={{ __html: props.option.description }}></p>}\n {props.children}\n </DivButton>\n );\n}\n\ninterface ChoicesProps {\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (option: ChoicePopupOption) => void;\n}\n\nexport function Choices(props: ChoicesProps): React.ReactElement {\n return (\n <div className='d-flex mb-3 mx-n2'>\n {props.options.map(o => (\n <Choice\n key={o.id}\n option={o}\n selected={props.selection?.id === o.id}\n onSelect={props.selectOption}\n />\n ))}\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, TvDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser, Library } from 'libs/shared/interfaces';\n\nimport { DefaultAlertHeading } from 'shared/constants/DefaultAlertHeading';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvWorkspaceVideoResponse } from 'apps/tv/interfaces/responses/TvWorkspaceVideoResponse';\n\nconst namespace = 'tv.addRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useTvAddRequests(programId: string, regionCode: string) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace());\n\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(programId));\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(regionCode));\n const workspaceVideo = Flight.useBasicFetch<TvWorkspaceVideoResponse>(\n program.data && currentUser.data &&\n TvRequests.workspaceVideo(\n program.data.id,\n currentUser.data.id,\n currentUser.data.customerId\n )\n );\n \n async function requestAdFreeVideo(): Promise<void> {\n try {\n await fetchAsync(TvRequests.createAdFreeRequest({\n programId: program.data.id,\n regionCode: region.data.code,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n }));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('requestAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.AD_FREE_REQUEST,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AdFreeRequest,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (error) {\n const errorMessage = error.responseJSON?.message;\n if (errorMessage) {\n const parsedErrorMessage = JSON.parse(errorMessage);\n alerts.error(getPhrase(parsedErrorMessage.Type, { video: program.data.title }));\n } else {\n alerts.error(getPhrase('error'));\n }\n }\n }\n\n async function addAdFreeVideo() {\n if (workspaceVideo.data.exists && workspaceVideo.data.hasAdFree) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n id: program.data.id,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n };\n await fetchAsync(TvRequests.addAdFreeVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddAdFreeVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n async function addFullVideo() {\n if (workspaceVideo.data.exists) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n globalId: program.data.globalId,\n libraryId: workspace.data.id\n };\n await fetchAsync(TvRequests.addFullVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addFullSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddFullVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n return { requestAdFreeVideo, addAdFreeVideo, addFullVideo };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Choice, ChoicePopupOption } from 'libs/shared/components/choices-popup/components/choices/Choices';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useTvAddRequests } from 'apps/tv/hooks/useTvAddRequests';\nimport { AdFreeCredits } from 'apps/tv/interfaces/models/AdFreeCredits';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-add.module.scss';\n\nconst namespace = 'tv.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst AD_FREE = {\n id: 'ad-free',\n title: 'adFreeTitle',\n description: 'adFreeDescription',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst REQUEST_AD_FREE = {\n id: 'request-ad-free',\n title: 'adFreeTitle',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst FULL_VIDEO = {\n id: 'full-video',\n title: 'fullVideoTitle',\n description: 'fullVideoDescription',\n imageUrl: ImageUrls.General.ANNOUNCEMENT_FRAMED\n};\n\ninterface TvAddViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvAddView(props: TvAddViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const adFreeCredits = Flight.useBasicFetch<AdFreeCredits>(\n currentUser.data &&\n TvRequests.adFreeCredits(\n currentUser.data.id,\n currentUser.data.customerId,\n props.region\n )\n );\n\n const { requestAdFreeVideo, addAdFreeVideo, addFullVideo } = useTvAddRequests(props.id, props.region);\n\n useHandleDialogError(program.statusCode);\n\n const [ selectedChoice, setSelectedChoice ] = React.useState<ChoicePopupOption>(null);\n\n const isFromPreview = !Number.isNaN(props.currentTime);\n\n function onClickContinue(): void {\n if (!selectedChoice)\n return;\n\n if (selectedChoice.id === FULL_VIDEO.id) {\n addFullVideo();\n }\n \n if (selectedChoice.id === AD_FREE.id) {\n addAdFreeVideo();\n }\n\n if (selectedChoice.id === REQUEST_AD_FREE.id) {\n requestAdFreeVideo();\n }\n }\n\n function onClickBack(): void {\n if (!isFromPreview) {\n props.closePopup();\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ props.region, program.data.id ],\n params: {\n currentTime: props.currentTime\n }\n });\n }\n\n const hasEnoughCredits = adFreeCredits.data &&\n (adFreeCredits.data.userRequests < adFreeCredits.data.maxAvailableCredit);\n const requestsRemaining = adFreeCredits.data &&\n (adFreeCredits.data.maxAvailableCredit - adFreeCredits.data.userRequests);\n\n React.useEffect(() => {\n if (!adFreeCredits.hasCompleted)\n return;\n \n if (hasEnoughCredits)\n return;\n\n setSelectedChoice(FULL_VIDEO);\n }, [ adFreeCredits, hasEnoughCredits ]);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n program.hasCompleted &&\n adFreeCredits.hasCompleted\n );\n\n const showAdFreeAlert = selectedChoice?.id === REQUEST_AD_FREE.id && TvUtils.isHolidayPeriod();\n\n return (\n <Popup\n size='lg'\n title={getPhrase('title')}\n showLoadingSpinner={!hasLoaded}\n closePopup={props.closePopup}\n >\n {hasLoaded &&\n <>\n <div className='d-flex mb-3 mx-n2'>\n {program.data.hasAdsFree &&\n <Choice\n option={{ id: AD_FREE.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === AD_FREE.id}\n >\n <img src={AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={AD_FREE.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={AD_FREE.description} /></p>\n </Choice>\n }\n \n {!program.data.hasAdsFree &&\n <Choice\n option={{ id: REQUEST_AD_FREE.id, disabled: !hasEnoughCredits }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === REQUEST_AD_FREE.id}\n >\n <img src={REQUEST_AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <div className='d-flex justify-content-center align-items-center mb-1'>\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={REQUEST_AD_FREE.title} /></h2>\n <span className={`badge bg-dark rounded-circle ms-2 ${styles.circle}`}>{requestsRemaining}</span>\n </div>\n <p className='mb-2'><Text namespace={namespace} phrase={hasEnoughCredits ? 'requestAdFreeDescription' : 'noRequestsDescription'} /></p>\n </Choice>\n }\n\n <Choice\n option={{ id: FULL_VIDEO.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === FULL_VIDEO.id}\n >\n <img src={FULL_VIDEO.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={FULL_VIDEO.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={FULL_VIDEO.description} /></p>\n </Choice>\n </div>\n\n {showAdFreeAlert &&\n <div className='alert alert-warning' role='alert'>\n <h3 className='h5'>\n <Text namespace={namespace} phrase='adFreeAlertHeading' />\n </h3>\n <p className='m-0'>\n <Text namespace={namespace} phrase='adFreeAlertBody' />\n </p>\n </div>\n }\n </>\n }\n \n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase(isFromPreview ? 'back' : 'close')}\n onClick={onClickBack}\n variant='link'\n />\n <PopupButtons.Submit\n text={getPhrase('continue')}\n onClick={onClickContinue}\n variant='dark'\n disabled={!selectedChoice}\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["Choice","props","onSelect","_a","className","styles","jsxs","DivButton","_b","jsx","_c","_d","namespace","getPhrase","LanguageService","useTvAddRequests","programId","regionCode","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","workspace","program","TvRequests","region","workspaceVideo","requestAdFreeVideo","DefaultAlertHeading","AlertType","Core.AppLinkHelper","AppChannels","Actions","AnalyticsHelper","UserAction","EntityType","TvDescriptor","LocationContext","WorkflowPhase","error","errorMessage","parsedErrorMessage","addAdFreeVideo","data","addFullVideo","AD_FREE","ImageUrls","REQUEST_AD_FREE","FULL_VIDEO","TvAddView","adFreeCredits","useHandleDialogError","selectedChoice","setSelectedChoice","React","isFromPreview","onClickContinue","onClickBack","hasEnoughCredits","requestsRemaining","hasLoaded","showAdFreeAlert","TvUtils","Popup","Fragment","Text","PopupButtons"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{a7 as o,aN as r}from"./app-BOVAF25L.js";const a={preventScrollTop(){o.Radio.channel(r.SHELL).trigger("prevent:scroll:top")}};export{a as S};
2
- //# sourceMappingURL=Dh8xoOSf.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Dh8xoOSf.chunk.js","sources":["../../../../libs/common/src/backbone/utils/ScrollHelper.ts"],"sourcesContent":["import { Radio } from 'backbone';\n\nimport { CommonChannels } from '../constants/CommonChannels';\n\nexport const ScrollHelper = {\n // Will prevent scrolling to the top of the page when applinks are triggered\n preventScrollTop(): void {\n Radio.channel(CommonChannels.SHELL).trigger('prevent:scroll:top');\n }\n};"],"names":["ScrollHelper","Radio","CommonChannels"],"mappings":"+CAIO,MAAMA,EAAe,CAE1B,kBAAyB,CACvBC,EAAAA,MAAM,QAAQC,EAAe,KAAK,EAAE,QAAQ,oBAAoB,CAClE,CACF"}
@@ -1,2 +0,0 @@
1
- import{D as h,U as g,L as u,a2 as d,a4 as m,a9 as f,aB as p,q as E,a5 as P}from"./app-BOVAF25L.js";import{u as U}from"./B-DrhpV6.chunk.js";const c="shared.verifiedEmailError";class q extends h{constructor(e,r,s){super("VerifiedEmailRequiredError"),this.message=e,this.liteUrl=r,this.hasLite=s}get name(){return"VerifiedEmailRequiredError"}get dialogOptions(){const e=g.safeUrlConcat(this.liteUrl,"settings/account");return{title:u.getPhrase(c,"heading"),text:this.hasLite?`${this.message} ${u.getPhrase(c,"visitSettings",{href:e})}`:this.message,buttons:[{text:u.getPhrase(c,"close"),className:"btn btn-dark",success:!0}]}}}const R=()=>{var a;const t=d(m.currentUser()),e=d(((a=t.data)==null?void 0:a.isAuthenticated)&&f.userProducts()),r=!e.hasCompleted;return{hasProduct:i=>{var o;return r||e.hasError||!((o=e.data)!=null&&o.length)?!1:e.data.some(n=>n.id===i)},products:e,isLoadingProducts:r}};function S(){const t=U(),{hasProduct:e,isLoadingProducts:r}=R(),s=d(p.config());function a(i,o,n){var l;if(!i.responseJSON||((l=i.responseJSON)==null?void 0:l.type)!=="no-email"){t.error(o);return}E.throw(new q(n,s.data.liteUrl,e(P.Primary)))}return{handleGenerateReportError:a,loading:!s.hasCompleted||r}}export{S as u};
2
- //# sourceMappingURL=DlrCPMdZ.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DlrCPMdZ.chunk.js","sources":["../../../../libs/shared/src/errors/general/verified-email/VerifiedEmailRequiredError.ts","../../../../libs/shared/src/hooks/UseProducts.ts","../../../../libs/shared/src/hooks/useVerifiedEmailRequiredErrorHandler.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.verifiedEmailError';\n\nexport class VerifiedEmailRequiredError extends DialogError {\n public message: string;\n public liteUrl: string;\n public hasLite: boolean;\n\n constructor(message: string, liteUrl: string, hasLite: boolean) {\n super('VerifiedEmailRequiredError');\n\n this.message = message;\n this.liteUrl = liteUrl;\n this.hasLite = hasLite;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VerifiedEmailRequiredError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n const href = UrlHelper.safeUrlConcat(this.liteUrl, 'settings/account');\n\n return {\n title: LanguageService.getPhrase(namespace, 'heading'),\n text: this.hasLite\n ? `${this.message} ${LanguageService.getPhrase(namespace, 'visitSettings', { href })}`\n : this.message,\n buttons: [{\n text: LanguageService.getPhrase(namespace, 'close'),\n className: 'btn btn-dark',\n success: true\n }]\n };\n }\n}","import { Flight } from 'libs/common/flight';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { ProductRequests } from 'libs/shared/flight-requests/ProductRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, Product } from 'libs/shared/interfaces';\n\nexport type HasProductFunc = (productId: ProductId) => boolean;\n\nexport interface UseProductsResponse {\n hasProduct: (product: ProductId) => boolean;\n products: Flight.Response<Product[]>;\n isLoadingProducts: boolean;\n}\n\nexport const useProducts = (): UseProductsResponse => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const products = Flight.useBasicFetch<Product[]>(currentUser.data?.isAuthenticated && ProductRequests.userProducts());\n const isLoadingProducts = !products.hasCompleted;\n\n const hasProduct = (productId: ProductId) => {\n if (isLoadingProducts || products.hasError)\n return false;\n\n if (!products.data?.length)\n return false;\n\n return products.data.some(product => product.id === productId);\n };\n\n return {\n hasProduct,\n products,\n isLoadingProducts\n };\n};","import { Core } from 'libs/common/backbone/index';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VerifiedEmailRequiredError } from 'libs/shared/errors/general/verified-email/VerifiedEmailRequiredError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { Config } from 'libs/shared/interfaces';\n\nexport function useVerifiedEmailRequiredErrorHandler() {\n const alerts = useAlerts();\n const { hasProduct, isLoadingProducts } = useProducts();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n function handleGenerateReportError(xhr: Xhr, message: string, noEmailError: string) {\n if (!xhr.responseJSON || xhr.responseJSON?.type !== 'no-email') {\n alerts.error(message);\n return;\n }\n\n Core.ErrorHelper.throw(\n new VerifiedEmailRequiredError(noEmailError, config.data.liteUrl, hasProduct(ProductId.Primary))\n );\n }\n\n return {\n handleGenerateReportError,\n loading: !config.hasCompleted || isLoadingProducts\n };\n}"],"names":["namespace","VerifiedEmailRequiredError","DialogError","message","liteUrl","hasLite","href","UrlHelper","LanguageService","useProducts","currentUser","Flight.useBasicFetch","UserRequests","products","_a","ProductRequests","isLoadingProducts","productId","product","useVerifiedEmailRequiredErrorHandler","alerts","useAlerts","hasProduct","config","ConfigRequests","handleGenerateReportError","xhr","noEmailError","Core.ErrorHelper","ProductId"],"mappings":"2IAMA,MAAMA,EAAY,4BAEX,MAAMC,UAAmCC,CAAY,CAK1D,YAAYC,EAAiBC,EAAiBC,EAAkB,CAC9D,MAAM,4BAA4B,EAElC,KAAK,QAAUF,EACf,KAAK,QAAUC,EACf,KAAK,QAAUC,CACjB,CAGA,IAAW,MAAe,CACxB,MAAO,4BACT,CAGA,IAAW,eAA+B,CACxC,MAAMC,EAAOC,EAAU,cAAc,KAAK,QAAS,kBAAkB,EAErE,MAAO,CACL,MAAOC,EAAgB,UAAUR,EAAW,SAAS,EACrD,KAAM,KAAK,QACP,GAAG,KAAK,OAAO,IAAIQ,EAAgB,UAAUR,EAAW,gBAAiB,CAAE,KAAAM,CAAA,CAAM,CAAC,GAClF,KAAK,QACT,QAAS,CAAC,CACR,KAAME,EAAgB,UAAUR,EAAW,OAAO,EAClD,UAAW,eACX,QAAS,EAAA,CACV,CAAA,CAEL,CACF,CC3BO,MAAMS,EAAc,IAA2B,OACpD,MAAMC,EAAcC,EAAkCC,EAAa,aAAa,EAC1EC,EAAWF,IAAgCG,EAAAJ,EAAY,OAAZ,YAAAI,EAAkB,kBAAmBC,EAAgB,cAAc,EAC9GC,EAAoB,CAACH,EAAS,aAYpC,MAAO,CACL,WAXkBI,GAAyB,OAI3C,OAHID,GAAqBH,EAAS,UAG9B,GAACC,EAAAD,EAAS,OAAT,MAAAC,EAAe,QACX,GAEFD,EAAS,KAAK,KAAKK,GAAWA,EAAQ,KAAOD,CAAS,CAC/D,EAIE,SAAAJ,EACA,kBAAAG,CAAA,CAEJ,ECxBO,SAASG,GAAuC,CACrD,MAAMC,EAASC,EAAA,EACT,CAAE,WAAAC,EAAY,kBAAAN,CAAA,EAAsBP,EAAA,EACpCc,EAASZ,EAA6Ba,EAAe,QAAQ,EAEnE,SAASC,EAA0BC,EAAUvB,EAAiBwB,EAAsB,OAClF,GAAI,CAACD,EAAI,gBAAgBZ,EAAAY,EAAI,eAAJ,YAAAZ,EAAkB,QAAS,WAAY,CAC9DM,EAAO,MAAMjB,CAAO,EACpB,MACF,CAEAyB,EAAiB,MACf,IAAI3B,EAA2B0B,EAAcJ,EAAO,KAAK,QAASD,EAAWO,EAAU,OAAO,CAAC,CAAA,CAEnG,CAEA,MAAO,CACL,0BAAAJ,EACA,QAAS,CAACF,EAAO,cAAgBP,CAAA,CAErC"}
@@ -1,2 +0,0 @@
1
- import{j as g,ac as l,ad as m,ae as E,A as n,L as i,a as s,b as c}from"./app-BOVAF25L.js";import{P as x}from"./De8m6Vtf.chunk.js";const r="exchange.exchangeTabs",e=i.encloseNamespace(r),a={categories:{application:c.EXCHANGE,action:s.Exchange.INDEX},mostRecent:{application:c.EXCHANGE,action:s.Exchange.MOST_RECENT}},o={actionType:E.Click,entity:m.Url,location:l.MagicTabs};function h(p){const{active:t}=p;return g.jsx(x,{tabs:[{name:e("categories"),appLink:a.categories,active:t==="categories",analyticsData:{name:e("categories"),url:n.getHref(a.categories)},analyticsOptions:o},{name:e("mostRecent"),appLink:a.mostRecent,active:t==="most-recent",analyticsData:{name:i.getPhrase(r,"mostRecent"),url:n.getHref(a.mostRecent)},analyticsOptions:o}]})}export{h as E};
2
- //# sourceMappingURL=DnMWAYTf.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DnMWAYTf.chunk.js","sources":["../../src/apps/exchange/components/exchange-tabs/ExchangeTabs.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APP_LINKS = {\n categories: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n },\n mostRecent: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.MOST_RECENT\n }\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\ninterface ExchangeTabs {\n active: 'categories' | 'most-recent' | 'featured-channels';\n}\n\nexport function ExchangeTabs(props: ExchangeTabs): JSX.Element {\n const { active } = props;\n\n return (\n <PillTabSelector\n tabs={[{\n name: getPhrase('categories'),\n appLink: APP_LINKS.categories,\n active: active === 'categories',\n analyticsData: {\n name: getPhrase('categories'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.categories)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }, {\n name: getPhrase('mostRecent'),\n appLink: APP_LINKS.mostRecent,\n active: active === 'most-recent',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'mostRecent'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.mostRecent)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }]}\n />\n );\n}"],"names":["namespace","getPhrase","LanguageService","APP_LINKS","AppChannels","Actions","ANALYTICS_OPTIONS","UserAction","EntityType","LocationContext","ExchangeTabs","props","active","jsx","PillTabSelector","Core.AppLinkHelper"],"mappings":"kIAYA,MAAMA,EAAY,wBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDG,EAAY,CAChB,WAAY,CACV,YAAaC,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,EAE3B,WAAY,CACV,YAAaD,EAAY,SACzB,OAAQC,EAAQ,SAAS,WAAA,CAE7B,EAEMC,EAAoB,CACxB,WAAYC,EAAW,MACvB,OAAQC,EAAW,IACnB,SAAUC,EAAgB,SAC5B,EAMO,SAASC,EAAaC,EAAkC,CAC7D,KAAM,CAAE,OAAAC,GAAWD,EAEnB,OACEE,EAAAA,IAACC,EAAA,CACC,KAAM,CAAC,CACL,KAAMb,EAAU,YAAY,EAC5B,QAASE,EAAU,WACnB,OAAQS,IAAW,aACnB,cAAe,CACb,KAAMX,EAAU,YAAY,EAC5B,IAAKc,EAAmB,QAAQZ,EAAU,UAAU,CAAA,EAEtD,iBAAkBG,CAAA,EACjB,CACD,KAAML,EAAU,YAAY,EAC5B,QAASE,EAAU,WACnB,OAAQS,IAAW,cACnB,cAAe,CACb,KAAMV,EAAgB,UAAUF,EAAW,YAAY,EACvD,IAAKe,EAAmB,QAAQZ,EAAU,UAAU,CAAA,EAEtD,iBAAkBG,CAAA,CACnB,CAAA,CAAA,CAGP"}
@@ -1,2 +0,0 @@
1
- import{j as e,ap as k,a as f,b as j,a2 as m,R as T,aR as E,az as P,aS as S,l as H,aB as I}from"./app-BOVAF25L.js";import{h as B}from"./ajQ8aa2Z.chunk.js";import{u as M}from"./BqNPVwUS.chunk.js";import{P as N,A as b,a as _}from"./81elAOH1.chunk.js";import{L as U}from"./B6J5cgUO.chunk.js";import{T as V}from"./BO2QSQWF.chunk.js";import{T as D}from"./Cg9HJsEZ.chunk.js";import{T as F,a as O}from"./DCeinDae.chunk.js";import{T as $,a as q}from"./AkCv9mUX.chunk.js";import{T as u}from"./W5aHBnKW.chunk.js";import{u as W}from"./BZiHvyg-.chunk.js";import{u as z}from"./CCj-BH4j.chunk.js";import{t as G}from"./CKvmo9qU.chunk.js";import"./gaXZzMcg.chunk.js";import"./De8m6Vtf.chunk.js";import"./BKI4hXQ7.chunk.js";import"./BlDVEZsX.chunk.js";import"./2tJmZ2Oi.chunk.js";import"./B-Dp4NBp.chunk.js";import"./B3gC_Ph0.chunk.js";import"./Dg-4fBAS.chunk.js";const Z="_itemContainer_84hxn_1",J="_thumbnail_84hxn_12",R={itemContainer:Z,thumbnail:J};function K(a){function d(i,l){switch(i.programType){case N.Video:return{application:j.TV,action:f.Tv.PREVIEW,args:[l,i.id]};case N.Audio:return{application:j.TV,action:f.Tv.RADIO_DOWNLOAD,args:[l,i.id]}}}function t(i){const l=i.globalId.split("-").join("");return`${a.previewUrl}/thumbnail/${l}.jpg`}return e.jsx("div",{className:`${R.itemContainer} rounded mx-4 px-2`,children:e.jsxs(k,{appLink:d(a.program,a.region),className:"d-flex align-items-center justify-content-between py-2 px-3 text-decoration-none",children:[e.jsxs("div",{className:"w-50 d-flex align-items-center",children:[e.jsx("div",{className:`${R.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`,children:e.jsx(U,{src:t(a.program),alt:a.program.title,extraClasses:"w-100 rounded"})}),e.jsxs("div",{className:"d-flex align-items-center",children:[e.jsx("span",{className:"me-1",children:a.name}),a.program.hasAdsFree&&e.jsx(V,{small:!0})]})]}),e.jsx(D,{program:a.program,className:"pointer-events-none",showEndTime:!0})]},a.program.id)})}function Q(a){const{channel:d}=a;return e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("div",{className:"d-flex align-items-center me-3",style:{maxWidth:"7.5rem"},children:e.jsx("img",{className:"w-100",src:d.logoUrl})}),e.jsxs("div",{children:[e.jsx("h1",{className:"h3",children:d.displayName}),e.jsx("p",{className:"mb-0",children:d.description})]})]})}function X(){return e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("div",{className:"partial-loading-background d-flex align-items-center me-3",children:e.jsx("div",{style:{width:"7.5rem"}})}),e.jsxs("div",{className:"w-100",children:[e.jsx("div",{className:"partial-loading-background w-25 h3",children:" "}),e.jsx("p",{className:"partial-loading-background w-100 mb-0",children:" "})]})]})}function Te(a){const d=m(I.config()),t=m(u.region(a.region)),i=m(u.regions()),l=m(u.dateRange(a.region)),g=m(t.data&&u.channels(t.data.code)),s=T.useMemo(()=>{var n;return(n=g.data)==null?void 0:n.find(c=>c.id.toString()===a.channelId.toString())},[g.data]),{setRegion:C}=z(),{showTvGuide:w}=E(),h=m(t.data&&s&&u.programsByChannel(t.data.code,s.name,s.startTime,s.stopTime)),A=T.useMemo(()=>{var p;if(!((p=h.data)!=null&&p.length))return[];const n={};return[...h.data].reverse().forEach(r=>{const o=P.format(G(r.startTime,r.timeZone),"dddd Do MMMM");n[o]||(n[o]=[]),n[o].push(r)}),Object.entries(n).map(([r,o])=>[r,o.reverse()])},[h]);g.hasCompleted&&!s&&B(S.BadRequest),W(t),M([i,g,h]),H({title:s==null?void 0:s.displayName});const L=t.hasCompleted&&i.hasCompleted&&g.hasCompleted&&s&&h.hasCompleted;function y(){var n;return a.selectedRegion?(n=i.data)==null?void 0:n.find(c=>c.code===a.selectedRegion):t.data}const x=y();return e.jsxs(e.Fragment,{children:[e.jsx($,{region:x}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(F,{active:"channels",currentRegion:x,showTvGuide:w}),e.jsx(q,{currentRegion:x,regions:i.data,appLink:{application:j.TV,action:f.Tv.CHANNELS},onClick:C})]}),e.jsx(O,{dateRange:l.data,region:t.data}),s?e.jsx(Q,{channel:s}):e.jsx(X,{}),L?e.jsx(e.Fragment,{children:e.jsx(b,{children:A.map(([n,c],p)=>e.jsx(b.Header,{title:n,children:e.jsx("div",{className:"mt-2 pb-2",children:c&&c.map(r=>{var o,v;return e.jsx(K,{name:r.title,program:r,region:t.data.code,previewUrl:(v=d.data)==null?void 0:v.tvPreviewUrls[(o=t.data)==null?void 0:o.code]},r.id)})})},p))})}):e.jsx(_,{})]})}export{Te as TvChannelView};
2
- //# sourceMappingURL=DtLhe3Mi.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DtLhe3Mi.chunk.js","sources":["../../src/apps/tv/components/tv-accordion-list-item/TvAccordionListItem.tsx","../../src/apps/tv/views/tv-channel/components/tv-channel-header/TvChannelHeader.tsx","../../src/apps/tv/views/tv-channel/partial-loading/PartialTvChannelPrograms.tsx","../../src/apps/tv/views/tv-channel/TvChannelView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAdFreeBadge } from 'apps/tv/components/tv-ad-free-badge/TvAdFreeBadge';\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { ProgramType } from 'apps/tv/interfaces/enums/ProgramType';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\n\nimport styles from './tv-accordion-list-item.module.scss';\n\ninterface TvAccordionListItemProps {\n name: string;\n program: TvProgram;\n region: string;\n showDate?: boolean;\n previewUrl: string;\n}\n\nexport function TvAccordionListItem(props: TvAccordionListItemProps) {\n function getProgramAppLink(program: TvProgram, region: string) {\n switch (program.programType) {\n case ProgramType.Video:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ region, program.id ]\n };\n case ProgramType.Audio:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.RADIO_DOWNLOAD,\n args: [ region, program.id ]\n };\n }\n }\n \n function getThumbnailUrl(program: TvProgram) {\n const globalId = program.globalId.split('-').join('');\n return `${props.previewUrl}/thumbnail/${globalId}.jpg`;\n }\n\n return (\n <div className={`${styles.itemContainer} rounded mx-4 px-2`}>\n <AppLink\n key={props.program.id}\n appLink={getProgramAppLink(props.program, props.region)}\n className='d-flex align-items-center justify-content-between py-2 px-3 text-decoration-none'\n >\n <div className='w-50 d-flex align-items-center'>\n <div className={`${styles.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`}>\n <LazyImage\n src={getThumbnailUrl(props.program)}\n alt={props.program.title}\n extraClasses='w-100 rounded'\n />\n </div>\n <div className='d-flex align-items-center'>\n <span className='me-1'>{props.name}</span>\n {props.program.hasAdsFree && <TvAdFreeBadge small />}\n </div>\n </div>\n <TvProgramTimeBadge program={props.program} className='pointer-events-none' showEndTime />\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\n\ninterface TvChannelHeaderProps {\n channel: TvChannel;\n}\n\nexport function TvChannelHeader(props: TvChannelHeaderProps): JSX.Element {\n const { channel } = props;\n\n return (\n <div className='d-flex mb-3'>\n <div\n className='d-flex align-items-center me-3'\n style={{ maxWidth: '7.5rem' }}>\n <img\n className='w-100'\n src={channel.logoUrl}\n />\n </div>\n <div>\n <h1 className='h3'>{channel.displayName}</h1>\n <p className='mb-0'>{channel.description}</p>\n </div>\n </div>\n );\n}","import React from 'react';\n\nexport function PartialTvChannel() {\n return (\n <div className='d-flex mb-3'>\n <div className='partial-loading-background d-flex align-items-center me-3'>\n <div style={{ width: '7.5rem' }}/>\n </div>\n <div className='w-100'>\n <div className='partial-loading-background w-25 h3'>&nbsp;</div>\n <p className='partial-loading-background w-100 mb-0'>&nbsp;</p>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { AccordionList } from 'shared/components/accordion-list/AccordionList';\nimport { PartialAccordionList } from 'shared/components/accordion-list/partial-loading/PartialAccordionList';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAccordionListItem } from 'apps/tv/components/tv-accordion-list-item/TvAccordionListItem';\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport { TvChannelHeader } from './components/tv-channel-header/TvChannelHeader';\nimport { PartialTvChannel } from './partial-loading/PartialTvChannelPrograms';\n\ninterface TvChannelViewProps {\n region: string;\n channelId: string;\n selectedRegion?: string;\n}\n\nexport function TvChannelView(props: TvChannelViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n const channel = React.useMemo(() => {\n return channels.data?.find(c => c.id.toString() === props.channelId.toString());\n }, [channels.data]);\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n const programs = Flight.useBasicFetch<TvProgram[]>(\n region.data &&\n channel &&\n TvRequests.programsByChannel(\n region.data.code,\n channel.name,\n channel.startTime,\n channel.stopTime\n )\n );\n\n const grouped = React.useMemo(() => {\n if (!programs.data?.length)\n return [];\n\n const groups: HashObject<TvProgram[]> = {};\n\n [...programs.data].reverse().forEach(program => {\n const startTime = DateHelper.format(toLocalTime(program.startTime, program.timeZone), 'dddd Do MMMM');\n\n if (!groups[startTime])\n groups[startTime] = [];\n\n groups[startTime].push(program);\n });\n const grouped = Object.entries(groups);\n return grouped.map(([ date, program ]) => [ date, program.reverse() ]);\n }, [programs]);\n\n if ((channels.hasCompleted && !channel)) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels, programs ]);\n\n useSetPageMetadata({ title: channel?.displayName });\n\n const dataLoaded =\n region.hasCompleted && regions.hasCompleted && channels.hasCompleted && channel && programs.hasCompleted;\n\n function getCurrentRegion(): TvRegion {\n if (!props.selectedRegion) return region.data;\n\n return regions.data?.find(region => region.code === props.selectedRegion);\n }\n\n const currentRegion = getCurrentRegion();\n\n return (\n <>\n <TvSearchBar region={currentRegion} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\n currentRegion={currentRegion}\n showTvGuide={showTvGuide}\n />\n <TvRegionSelect\n currentRegion={currentRegion}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n \n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {channel ? <TvChannelHeader channel={channel} /> : <PartialTvChannel />}\n\n {dataLoaded ? (\n <>\n <AccordionList>\n {grouped.map(([ date, programs ]: [string, TvProgram[]], index) => (\n <AccordionList.Header\n key={index}\n title={date}\n >\n <div className='mt-2 pb-2'>\n {programs && programs.map(program => (\n <TvAccordionListItem\n key={program.id}\n name={program.title}\n program={program}\n region={region.data.code}\n previewUrl={config.data?.tvPreviewUrls[region.data?.code]}\n />\n ))}\n </div>\n </AccordionList.Header>\n ))}\n </AccordionList>\n </>\n ) : (\n <PartialAccordionList />\n )}\n </>\n );\n}"],"names":["TvAccordionListItem","props","getProgramAppLink","program","region","ProgramType","AppChannels","Actions","getThumbnailUrl","globalId","styles","jsxs","AppLink","jsx","LazyImage","TvAdFreeBadge","TvProgramTimeBadge","TvChannelHeader","channel","PartialTvChannel","TvChannelView","config","Flight.useBasicFetch","ConfigRequests","TvRequests","regions","dateRange","channels","React","_a","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","programs","grouped","groups","startTime","DateHelper","toLocalTime","date","handleHttpError","HttpStatus","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","getCurrentRegion","currentRegion","Fragment","TvSearchBar","TvTabs","TvRegionSelect","TvInfoAlert","AccordionList","index","_b","PartialAccordionList"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{j as e}from"./app-BOVAF25L.js";var x={exports:{}},o;function u(){return o||(o=1,(function(r){function s(){return r.exports=s=Object.assign?Object.assign.bind():function(i){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(i[a]=n[a])}return i},r.exports.__esModule=!0,r.exports.default=r.exports,s.apply(null,arguments)}r.exports=s,r.exports.__esModule=!0,r.exports.default=r.exports})(x)),x.exports}function f(r){return e.jsxs("svg",{...r,children:[e.jsx("defs",{children:e.jsx("path",{id:"a",d:"M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6",fill:"currentColor"})}),e.jsx("use",{xlinkHref:"#a",fill:"#333"})]})}export{f as V,u as r};
2
- //# sourceMappingURL=DzdwUdxf.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DzdwUdxf.chunk.js","sources":["../../../../../node_modules/@babel/runtime/helpers/extends.js","../../../../libs/shared/src/images/svg/actions/VisibleOnSvg.tsx"],"sourcesContent":["function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React from 'react';\n\nexport function VisibleOnSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6'\n fill='currentColor'\n />\n </defs>\n <use xlinkHref='#a' fill='#333' />\n </svg>\n );\n}\n"],"names":["_extends","module","n","e","t","r","VisibleOnSvg","props","jsxs","jsx"],"mappings":"oGAAA,SAASA,GAAW,CAClB,OAAOC,EAAA,QAAiBD,EAAW,OAAO,OAAS,OAAO,OAAO,OAAS,SAAUE,EAAG,CACrF,QAASC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIC,EAAI,UAAUD,CAAC,EACnB,QAASE,KAAKD,GAAI,CAAA,GAAI,eAAe,KAAKA,EAAGC,CAAC,IAAMH,EAAEG,CAAC,EAAID,EAAEC,CAAC,EACpE,CACI,OAAOH,CACX,EAAKD,qBAA4B,GAAMA,EAAO,QAAQ,QAAaA,EAAO,QAASD,EAAS,MAAM,KAAM,SAAS,CACjH,CACAC,EAAA,QAAiBD,EAAUC,EAAA,QAAA,WAA4B,GAAMA,EAAO,QAAQ,QAAaA,EAAO,wBCPzF,SAASK,EAAaC,EAAsC,CACjE,OACEC,EAAAA,KAAC,MAAA,CAAK,GAAGD,EACP,SAAA,CAAAE,MAAC,OAAA,CACC,SAAAA,EAAAA,IAAC,OAAA,CACC,GAAG,IACH,EAAE,qQACF,KAAK,cAAA,CAAA,EAET,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,KAAK,KAAK,MAAA,CAAO,CAAA,EAClC,CAEJ","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{a2 as b,a4 as O,aB as D,U as k,M as l,L as R,aF as T,ai as M,n as x,o as H,ac as U,ab as m,aG as P,ad as S,ae as C,aH as v,aI as q,a as w,b as E}from"./app-BOVAF25L.js";import{L as _}from"./D8Hat_q8.chunk.js";import{V as $}from"./DKoiUoAQ.chunk.js";import{A as F}from"./B70bPb5E.chunk.js";var L=(e=>(e.Developer="Curator Devs",e.Content="Content",e.Curator="Curators",e.Support="Support",e.SalesSupport="Sales Support",e.GraphicDesigner="Graphic Designers",e.MetadataEditor="Metadata Editors",e.ResourcingManager="Resourcing Managers",e.SeniorContentManager="Senior Content Manager",e.Marketing="Marketing",e.Sales="Sales Representatives",e.StreamableCurator="Streamable Curator",e.SupportExtraPermission="Support - Extra Permissions",e.SeoManager="SEO Manager",e.ContentReviewer="Content Reviewer",e))(L||{});const W="shared.hooks",X=R.encloseNamespace(W);function B(e,i,n,p){const s=k.safeUrlConcat(e,"manage"),r=k.safeUrlConcat(e,"exchange"),a=(o,c,f)=>k.safeUrlConcat(o,`${c}/${f}`);switch(i){case l.Subject:return k.safeUrlConcat(s,`subjects/presentations/${p}/classifications/${n}/edit`);case l.Video:return a(s,"videos",n);case l.Playlist:return a(s,"playlists",n);case l.Series:return a(s,"series",n);case l.Company:return a(s,"companies",n);case l.Interactive:return a(s,"interactives",n);case l.Clip:return a(s,"clips",n);case l.Category:return a(r,"categories",n)}}function j(){return X("openInCurationStudio")}function z(){var r,a;const e=b(O.currentUser()),{data:i}=b(((r=e.data)==null?void 0:r.id)&&O.groups((a=e.data)==null?void 0:a.id)),n=b(D.config()),p=[L.Curator,L.Content,L.Developer];function s(){return p.some(o=>i==null?void 0:i.data.find(c=>c.name===o))}return{openInCurationStudioLabel:j(),isUserCurator:s(),getOpenInCurationStudioLink:(o,c,f)=>{var t;return B((t=n.data)==null?void 0:t.curatorUrl,o,c,f)}}}var N=(e=>(e[e.PlayPage=0]="PlayPage",e))(N||{});function Y(e){const i=T(),n=M();function p(a){return e.type!==0?null:$.getVideoRequest(a.id,a.typeId,e.shareId)}function s(a){const o=p(a);i(o.key).shouldFetch&&n(o)}function r(a){const o=p(a);return i(o.key).hasCompleted}return{hydrate:s,isHydrated:r}}const J="exchange.exchangeHooks",d=R.encloseNamespace(J),K={lazyPlaceholder:!0};function ae(e){const{hasPermissions:i}=x(),{isUserCurator:n,openInCurationStudioLabel:p,getOpenInCurationStudioLink:s}=z(),r=b(D.config()),a=b(i(H.ViewLibraries)&&_.libraryRequestLibraries()),{hydrate:o,isHydrated:c}=Y({type:N.PlayPage});function f(t){var I,V,A;const u=e==="preview",h={id:t.id,name:t.name},g=u?U.VideoItemPreview:U.VideoListItem,y=[{order:10,label:u?d("openInClickView"):"",svg:q,tooltip:u?"":d("openInClickView"),className:u?"btn btn-dark me-2":"",button:!0,href:r.data&&v.safeUrlConcat(r.data.liteUrl,`/videos/${t.id}`),analyticsData:h,analyticsOptions:{actionType:C.Click,entity:S.Video,descriptor:P.OpenInClickView,location:g,workflowPhase:m.Start}},{order:20,label:u?d("addVideo"):null,svg:u?void 0:F,tooltip:u?"":d("addVideo"),button:!u,appLink:{application:E.EXCHANGE,action:w.Exchange.ADD,args:[t.id]},analyticsData:h,analyticsOptions:{actionType:C.Click,entity:S.Video,descriptor:P.AddToWorkspace,location:g,workflowPhase:m.Start}},{order:30,label:d("suggest"),className:"",appLink:{application:E.EXCHANGE,action:w.Exchange.SUGGEST_EDIT,args:[t.id],params:{location:g}},analyticsData:h,analyticsOptions:{actionType:C.Click,entity:S.Video,descriptor:P.SuggestEdit,location:g,workflowPhase:m.Start}}];return c(t)?((I=t._canAddToLibrary)!=null&&I.customLibrary&&((V=a.data)!=null&&V.length)&&y.push({order:25,label:d("addToLibrary"),className:"",appLink:{application:E.EXCHANGE,action:w.Exchange.ADD_TO_LIBRARY,args:[t.id]},analyticsData:h,analyticsOptions:{actionType:C.Create,entity:S.LibraryRequest,workflowPhase:m.Start,location:g}}),(A=t._canDownload)!=null&&A.value&&y.push({order:40,label:d("download"),className:"",appLink:{application:E.EXCHANGE,action:w.Exchange.DOWNLOAD_VIDEO,args:[t.id]},analyticsData:h,analyticsOptions:{actionType:C.Download,entity:S.Video,workflowPhase:m.Start,location:g}}),n&&y.push({order:50,label:p,openInNewTab:!0,href:s(l.Video,t.id)}),y):[...y,K]}return{getVideoActions:f,fetchMoreActions:t=>o(t)}}export{ae as a,z as u};
2
- //# sourceMappingURL=IV3bbn1E.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IV3bbn1E.chunk.js","sources":["../../../../libs/shared/src/enums/CuratorGroup.ts","../../../../libs/shared/src/hooks/useCurationStudio.ts","../../../../libs/shared/src/hooks/useVideohydration.ts","../../src/apps/exchange/hooks/useGetExchangeActions.ts"],"sourcesContent":["/**\n * The values in this enum directly\n * map to the group names in Master.\n */\nexport enum CuratorGroup {\n Developer = 'Curator Devs',\n Content = 'Content',\n Curator = 'Curators',\n Support = 'Support',\n SalesSupport = 'Sales Support',\n GraphicDesigner = 'Graphic Designers',\n MetadataEditor = 'Metadata Editors',\n ResourcingManager = 'Resourcing Managers',\n SeniorContentManager = 'Senior Content Manager',\n Marketing = 'Marketing',\n Sales = 'Sales Representatives',\n StreamableCurator = 'Streamable Curator',\n SupportExtraPermission = 'Support - Extra Permissions',\n SeoManager = 'SEO Manager',\n ContentReviewer = 'Content Reviewer'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { AddVideoSvg } from 'libs/shared/images/svg/actions/AddVideoSvg';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { Config, Library, Video, VideoTypes } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeHooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Location = 'preview' | 'video-list';\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nexport function useGetExchangeActions(location: Location) {\n const { hasPermissions } = usePermissions();\n\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ViewLibraries) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage\n });\n \n function getVideoActions(video: Video): ActionOptions[] {\n const isPreview = location === 'preview';\n const analyticsData = { id: video.id, name: video.name };\n const locationContext = isPreview ? LocationContext.VideoItemPreview : LocationContext.VideoListItem;\n\n const actions: ActionOptions[] = [{\n order: 10,\n label: isPreview ? getPhrase('openInClickView') : '',\n svg: NewWindowSvg,\n tooltip: isPreview ? '' : getPhrase('openInClickView'),\n className: isPreview ? 'btn btn-dark me-2' : '',\n button: true,\n href: config.data && UrlHelper.safeUrlConcat(config.data.liteUrl, `/videos/${video.id}`),\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.OpenInClickView,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 20,\n label: isPreview ? getPhrase('addVideo') : null,\n svg: !isPreview ? AddVideoSvg : undefined,\n tooltip: isPreview ? '' : getPhrase('addVideo'),\n button: !isPreview,\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 30,\n label: getPhrase('suggest'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SUGGEST_EDIT,\n args: [video.id],\n params: { location: locationContext }\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }];\n\n if (!isHydrated(video)) {\n return [ ...actions, FETCH_MORE_ACTION_OPTION ];\n }\n\n if (video._canAddToLibrary?.customLibrary && requestLibraries.data?.length) {\n actions.push({\n order: 25,\n label: getPhrase('addToLibrary'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD_TO_LIBRARY,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (video._canDownload?.value) {\n actions.push({\n order: 40,\n label: getPhrase('download'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.DOWNLOAD_VIDEO,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Download,\n entity: EntityType.Video,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (isUserCurator) {\n actions.push({\n order: 50,\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Video, video.id)\n });\n }\n\n return actions;\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}"],"names":["CuratorGroup","namespace","getPhrase","LanguageService","getOpenInCurationStudioLink","baseUrl","objectType","id","presentationId","baseManageUrl","UrlHelper","baseExchangeUrl","href","MasterType","getOpenInCurationStudioLabel","useCurationStudio","currentUser","Flight.useBasicFetch","UserRequests","userGroups","_a","_b","config","ConfigRequests","curatorGroups","isUserCurator","group","userGroup","VideoHydrationType","useVideoHydration","options","getResponse","Flight.useGetResponseFunc","fetch","Flight.useGetFetch","getRequest","video","VideoHelper","hydrate","request","isHydrated","FETCH_MORE_ACTION_OPTION","useGetExchangeActions","location","hasPermissions","usePermissions","openInCurationStudioLabel","requestLibraries","PermissionName","LibraryRequests","getVideoActions","isPreview","analyticsData","locationContext","LocationContext","actions","NewWindowSvg","UserAction","EntityType","VideoActionDescriptor","WorkflowPhase","AddVideoSvg","AppChannels","Actions","_c"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{j as e,aj as B,ak as c,al as R,B as U,ab as q,ae as H,ad as M,ac as O,ai as G,a2 as g,l as z,am as D,an as Q,Q as Y,a4 as W,M as $,L as J}from"./app-BOVAF25L.js";import{A as K}from"./DEimCdra.chunk.js";import{P as X,u as Z,F as _}from"./BDF37jEe.chunk.js";import{V as ee,u as te,a as se}from"./Ch0LKWIV.chunk.js";import{h as ae}from"./ajQ8aa2Z.chunk.js";import{L as f}from"./D8Hat_q8.chunk.js";import{u as re}from"./B-DrhpV6.chunk.js";import{u as oe,a as ie}from"./IV3bbn1E.chunk.js";import{u as ne}from"./BqNPVwUS.chunk.js";import{P as b,I as de,u as ce}from"./DS4k_cAQ.chunk.js";import{E as me}from"./BmeqRFWF.chunk.js";import{E as le}from"./DnMWAYTf.chunk.js";import{E as ue}from"./CBHt08r_.chunk.js";import{a as he,u as xe,g as j}from"./rZLzwqIY.chunk.js";import{B as pe,V as ge,P as fe}from"./RjaJ7sQ8.chunk.js";import"./gaXZzMcg.chunk.js";import"./BZWC2UjJ.chunk.js";import"./BBtnCImF.chunk.js";import"./B6J5cgUO.chunk.js";import"./D19_0c-8.chunk.js";import"./B-Dp4NBp.chunk.js";import"./Dh8xoOSf.chunk.js";import"./DKoiUoAQ.chunk.js";import"./BlDVEZsX.chunk.js";import"./2tJmZ2Oi.chunk.js";import"./pkzD5BEm.chunk.js";import"./C8QZE6Un.chunk.js";import"./BKI4hXQ7.chunk.js";import"./B70bPb5E.chunk.js";import"./D8zZvitu.chunk.js";import"./CbAEl-Vm.chunk.js";import"./B3fiTt0v.chunk.js";import"./_sYSSSUN.chunk.js";import"./Kj832An8.chunk.js";import"./B3gC_Ph0.chunk.js";import"./Dg-4fBAS.chunk.js";import"./De8m6Vtf.chunk.js";import"./tP6Wmg__.chunk.js";import"./CXB1Dc5J.chunk.js";const je="exchange.exchangeFolderEmptyState";function be(){return e.jsx(B.Provider,{value:je,children:e.jsxs(c,{children:[e.jsx(c.Image,{src:R.EmptyStates.FOLDER}),e.jsx(c.Heading,{children:e.jsx(U,{phrase:"heading"})})]})})}function Fe(t){var r;return!((r=t.videos)!=null&&r.length)&&!t.isFetching?e.jsx(be,{}):e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e.jsx(pe,{breadcrumbs:t.breadcrumbs}),e.jsx(ge,{variant:"outline-dark",type:t.sort,getSortAppLink:t.getSortAppLink,analyticsOptions:{location:O.VideoListHeader,entity:M.Video,actionType:H.Sort,workflowPhase:q.Complete},includeProductionYear:!0})]}),t.videos?e.jsx(ee,{videos:t.videos,getVideoAppLink:he,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:t.commonVideoProps}):e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})}),(t.hasMore||t.isFetching)&&e.jsx(de,{isFetching:t.isFetching,fetchNext:t.fetchNext,nextCursor:t.nextCursor})]})}function Se(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"partial-loading-background h2 mb-3 w-25",children:" "}),e.jsx("div",{className:"mt-1 mb-2",children:e.jsx(X,{})}),e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"mb-3",children:e.jsx(fe,{})}),e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})})]})]})}const ve="exchange.exchangeFolder",Le=J.encloseNamespace(ve);function ct(t){var x,p;const r=G(),F=re(),n=g(W.currentUser()),a=g(f.folder(t.folderId)),{isUserCurator:S,openInCurationStudioLabel:v,getOpenInCurationStudioLink:L}=oe(),m=s=>f.childFolders(a.data.id,s),E=s=>r(m(s)),o=Z(a.data&&m,E);z({title:(x=a.data)==null?void 0:x.name}),ne([a]);const{commonVideoProps:N}=te(),d=!!n.data&&D.getOrSetSortType(n.data.id,t.sort,Q.ProductionYear),{items:i,hasMore:P,isFetching:V,nextCursor:C}=ce(l,u,A);function l(s){return ue.folderVideos(t.folderId,d,s)}function u(s){return r(l(s))}function A(s,T){if(s===1)return ae(T);F.error(Le("error"))}function y(){return S?[{label:v,openInNewTab:!0,href:L($.Category,a.data.id)}]:[]}const k=xe(t.folderId,t.sort),I=ie("video-list"),h=((p=o==null?void 0:o.items)==null?void 0:p.length)>0,w=a.hasCompleted&&n.hasCompleted&&o.hasCompleted;return e.jsxs(se.Provider,{value:I,children:[e.jsxs("div",{className:"mb-3",children:[e.jsx(me,{}),e.jsx(le,{active:"categories"})]}),w?e.jsxs(e.Fragment,{children:[a.data&&e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("h1",{className:"h2 me-1 mb-0",children:a.data.name}),e.jsx(K,{actions:y(),actionsDropdownClassName:"btn btn-sm",dropdownToggleSvgSize:Y.Standard})]}),h&&e.jsx("div",{className:"mx-n2",children:e.jsx(_,{folders:o.items,getAppLink:s=>j(s,d),expandFolders:!(i!=null&&i.length)})}),e.jsx("div",{className:"pb-3",children:e.jsx(Fe,{videos:i,hasSubFolders:h,hasMore:P,isFetching:V,fetchNext:u,nextCursor:C,sort:d,breadcrumbs:k,getSortAppLink:s=>j(a.data,s),commonVideoProps:N})})]}):e.jsx(Se,{})]})}export{ct as ExchangeFolderView};
2
- //# sourceMappingURL=K3QqEeXP.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"K3QqEeXP.chunk.js","sources":["../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading.tsx","../../src/apps/exchange/views/exchange-folder/ExchangeFolderView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'exchange.exchangeFolderEmptyState';\n\nexport function ExchangeFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderEmptyState } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState';\n\ninterface ExchangeFolderVideosProps {\n videos: Video[];\n hasSubFolders: boolean;\n sort: VideoSortType;\n isFetching: boolean;\n hasMore: boolean;\n nextCursor?: string;\n breadcrumbs: Breadcrumb[];\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n fetchNext: (cursor: string) => void;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ExchangeFolderVideos(props: ExchangeFolderVideosProps): JSX.Element {\n if (!props.videos?.length && !props.isFetching)\n return <ExchangeFolderEmptyState />;\n\n return (\n <div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n includeProductionYear\n />\n </div>\n\n {props.videos ? (\n <VideoList\n videos={props.videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function ExchangeFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div\n className='partial-loading-background h2 mb-3 w-25'>\n &nbsp;\n </div>\n\n <div className='mt-1 mb-2'>\n <PartialFolderList />\n </div>\n\n <div className='mb-3'>\n <div className='mb-3'>\n <PartialBreadcrumbs />\n </div>\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getFolderAppLink, useGetFolderBreadcrumbs } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderVideos } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos';\nimport { ExchangeFolderPartialLoading } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading';\n\nconst namespace = 'exchange.exchangeFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeFolderViewProps {\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function ExchangeFolderView(props: ExchangeFolderViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n \n const getFolderRequest = (cursor: string) => LibraryRequests.childFolders(folder.data.id, cursor);\n const fetchNextFolder = (cursor: string) => fetch(getFolderRequest(cursor));\n const subfolders = useFetchAll(folder.data && getFolderRequest, fetchNextFolder);\n\n useSetPageMetadata({ title: folder.data?.name });\n useHandleObjectError([folder]);\n\n const { commonVideoProps } = useCommonVideoProps();\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data\n && VideoSortHelper.getOrSetSortType(currentUser.data.id, props.sort, VideoSortType.ProductionYear);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.folderVideos(props.folderId, sort, cursor);\n }\n\n function fetchNextVideos(cursor?: string): void {\n return fetch(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n function getActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [\n {\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Category, folder.data.id)\n }\n ];\n }\n\n const breadcrumbs = useGetFolderBreadcrumbs(props.folderId, props.sort);\n\n const videoActions = useGetExchangeActions('video-list');\n\n const hasSubfolders = subfolders?.items?.length > 0;\n\n const dataLoaded = (\n folder.hasCompleted &&\n currentUser.hasCompleted &&\n subfolders.hasCompleted\n );\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n\n {dataLoaded ? (\n <>\n {folder.data && (\n <div className='d-flex mb-3'>\n <h1 className='h2 me-1 mb-0'>{folder.data.name}</h1>\n <Actions\n actions={getActions()}\n actionsDropdownClassName='btn btn-sm'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n </div>\n )}\n\n {hasSubfolders && (\n <div className='mx-n2'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f, sort)}\n expandFolders={!videos?.length}\n />\n </div>\n )}\n\n <div className='pb-3'>\n <ExchangeFolderVideos\n videos={videos}\n hasSubFolders={hasSubfolders}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n sort={sort}\n breadcrumbs={breadcrumbs}\n getSortAppLink={sort => getFolderAppLink(folder.data, sort)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n </>\n ) : <ExchangeFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}"],"names":["namespace","ExchangeFolderEmptyState","LanguageNamespaceContext","EmptyState","jsx","ImageUrls","Text","ExchangeFolderVideos","props","_a","jsxs","Breadcrumbs","VideoSortSelect","LocationContext","EntityType","UserAction","WorkflowPhase","VideoList","getVideoAppLink","PartialVideoList","InfiniteScrollFooter","ExchangeFolderPartialLoading","Fragment","PartialFolderList","PartialBreadcrumbs","getPhrase","LanguageService","ExchangeFolderView","fetch","Flight.useGetFetch","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","folder","LibraryRequests","isUserCurator","openInCurationStudioLabel","getOpenInCurationStudioLink","useCurationStudio","getFolderRequest","cursor","fetchNextFolder","subfolders","useFetchAll","useSetPageMetadata","useHandleObjectError","commonVideoProps","useCommonVideoProps","sort","VideoSortHelper","VideoSortType","videos","hasMore","isFetching","nextCursor","useInfiniteList","getVideosRequest","fetchNextVideos","onError","ExchangeRequests","pageNumber","httpStatus","handleHttpError","getActions","MasterType","breadcrumbs","useGetFolderBreadcrumbs","videoActions","useGetExchangeActions","hasSubfolders","_b","dataLoaded","VideoActionsContext","ExchangeSearchBar","ExchangeTabs","Actions","SvgContainerSize","FolderList","f","getFolderAppLink"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const E={PresentationIds:{DEFAULT:1,AU_PRIMARY:18,AU_SECONDARY:9,AU_TERTIARY:81,US_ELEMENTARY:13,CA_ELEMENTARY:100,CA_MIDDLE:101,CA_HIGH:102,STREAMABLE_LEARNING:68,ENG_PRIMARY:16,ENG_SECONDARY:47,SCT_PRIMARY:12,SCT_SECONDARY:24,UK_TERTIARY:82,INT_PRIMARY:19,INT_SECONDARY:21,NZ_PRIMARY:96,NZ_SECONDARY:97},Libraries:{TWIG:"88117784",TIGTAG:"80333935"},Images:{Level_1:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/dlM73E",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/WAe8MP",TOPIC_TALL_POSTER:"https://img.clickviewapp.com/v2/tallposters/raRm7E",NEW_RELEASES_BANNER:"https://img.clickviewapp.com/v2/banners/3kzeZ2"},Level_2:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/WAeKvP",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/9DAZJv",TOPIC_TALL_POSTER:"https://img.clickviewapp.com/v2/tallposters/eKG2bq",NEW_RELEASES_BANNER:"https://img.clickviewapp.com/v2/banners/xyn5eP"},Level_3:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/dl1d0g",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/R0Pz7A",TOPIC_TALL_POSTER:"https://img.clickviewapp.com/v2/tallposters/8LYZ9R",NEW_RELEASES_BANNER:"https://img.clickviewapp.com/v2/banners/nKDyRj"},Level_4:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/vYJPP5",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/PGPLLP"}}};export{E as H};
2
- //# sourceMappingURL=Kj832An8.chunk.js.map