@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,2 +0,0 @@
1
- import{ci as n,r as a,aP as s,cj as c,ck as i}from"./app-BOVAF25L.js";function o(r){const e=n.getInstance(r);return a.useEffect(()=>()=>{n.releaseInstance(r)}),e}function u(r){return o(r)}function g(){const r=u(i.ALERT);return{success(e){r.success(e)()},error(e){r.error(e)()},warning(e){r.createAlert({type:s.Warning,heading:c.Warning,message:e})},info(e,t){r.createAlert({heading:e,message:t,type:s.Info})}}}export{u as a,g as u};
2
- //# sourceMappingURL=B-DrhpV6.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B-DrhpV6.chunk.js","sources":["../../../../libs/common/src/react/hooks/UseInstance.ts","../../../../libs/common/src/react/hooks/UseService.ts","../../../../libs/shared/src/hooks/UseAlerts.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { InstanceManager } from 'libs/common/backbone/services/InstanceManager';\n\n/**\n * Hook to retrieve an instance from InstanceManager.\n * It handles releasing the instance in the cleanup function.\n * @param instanceName \n */\nexport function useInstance<T>(instanceName: string): T {\n const instance = InstanceManager.getInstance<T>(instanceName);\n\n React.useEffect(() => {\n return () => { InstanceManager.releaseInstance(instanceName); };\n }), [];\n\n return instance;\n}\n\n/**\n * Can be used to conditionally get an instance safely. Passing in a falsey value\n * will not return an instance, and will also not error\n */\nexport function useInstanceSafe<T>(instanceName: string): T {\n let instance: T = null;\n\n if (instanceName)\n instance = InstanceManager.getInstance<T>(instanceName);\n\n React.useEffect(() => {\n return () => { InstanceManager.releaseInstance(instanceName); };\n }), [];\n\n return instance;\n}","import { BaseService } from 'libs/common/backbone/core/BaseService';\n\nimport { useInstance } from './UseInstance';\n\nexport function useService<T extends BaseService>(serviceName: string): T {\n const service = useInstance<T>(serviceName);\n\n return service;\n}","import { CommonServices } from 'libs/common/backbone/constants/CommonServices';\nimport { AlertType, BaseAlert, BaseAlertOptions, BaseAlertService, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\nimport { useService } from 'libs/common/react/hooks/UseService';\n\nexport interface Alerts {\n success(alertContent: string | BaseAlert | BaseAlertOptions): void,\n error(alertContent: string | BaseAlert | BaseAlertOptions): void,\n warning(alertContent: string): void\n info(heading: string, message: string): void\n}\n\nexport function useAlerts(): Alerts {\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\n\n return {\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\n alertService.success(alertContent)();\n },\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\n alertService.error(alertContent)();\n },\n warning(alertContent: string): void {\n alertService.createAlert({\n type: AlertType.Warning,\n heading: DefaultAlertHeading.Warning,\n message: alertContent\n });\n },\n info(heading: string, message: string): void {\n alertService.createAlert({\n heading,\n message,\n type: AlertType.Info\n });\n }\n };\n}"],"names":["useInstance","instanceName","instance","InstanceManager","React.useEffect","useService","serviceName","useAlerts","alertService","CommonServices","alertContent","AlertType","DefaultAlertHeading","heading","message"],"mappings":"sEASO,SAASA,EAAeC,EAAyB,CACtD,MAAMC,EAAWC,EAAgB,YAAeF,CAAY,EAE5DG,OAAAA,EAAAA,UAAgB,IACP,IAAM,CAAED,EAAgB,gBAAgBF,CAAY,CAAG,CAC/D,EAEMC,CACT,CCbO,SAASG,EAAkCC,EAAwB,CAGxE,OAFgBN,EAAeM,CAAW,CAG5C,CCGO,SAASC,GAAoB,CAClC,MAAMC,EAAeH,EAA6BI,EAAe,KAAK,EAEtE,MAAO,CACL,QAAQC,EAA2D,CACjEF,EAAa,QAAQE,CAAY,EAAA,CACnC,EACA,MAAMA,EAA2D,CAC/DF,EAAa,MAAME,CAAY,EAAA,CACjC,EACA,QAAQA,EAA4B,CAClCF,EAAa,YAAY,CACvB,KAAMG,EAAU,QAChB,QAASC,EAAoB,QAC7B,QAASF,CAAA,CACV,CACH,EACA,KAAKG,EAAiBC,EAAuB,CAC3CN,EAAa,YAAY,CACvB,QAAAK,EACA,QAAAC,EACA,KAAMH,EAAU,IAAA,CACjB,CACH,CAAA,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{j as i,G as a}from"./app-BOVAF25L.js";function s(e){return i.jsx("svg",{...e,children:i.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z",clipRule:"evenodd"})})}const l="_circle_15nxd_1",n="_img_15nxd_6",r={circle:l,img:n};t.defaultProps={textVariant:"white"};function t(e){return!e.imageUrl&&!e.svg?i.jsx(i.Fragment,{}):e.imageUrl?i.jsx("div",{className:`${r.img} rounded-circle h-100 w-100`,style:{backgroundImage:`url(${e.imageUrl})`},children:" "}):i.jsx("div",{className:`${r.circle} ${e.variant?`bg-${e.variant}`:""} text-${e.textVariant} rounded-circle h-100 w-100 ${e.svgWrapperClassName??""}`,children:i.jsx(a,{svg:e.svg,size:e.svgSize})})}export{s as C,t as I};
2
- //# sourceMappingURL=B-Ve87B8.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B-Ve87B8.chunk.js","sources":["../../../../libs/shared/src/images/svg/status/CheckSvg.tsx","../../../../libs/shared/src/components/icon-circle/IconCircle.tsx"],"sourcesContent":["import React from 'react';\n\nexport function CheckSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './icon-circle.module.scss';\n\ninterface IconCircleProps {\n svg?: SvgIcon;\n imageUrl?: string;\n svgSize?: SvgContainerSize;\n variant?: ButtonProps['variant'];\n textVariant?: ButtonProps['variant'];\n svgWrapperClassName?: string;\n}\n\nIconCircle.defaultProps = {\n textVariant: 'white'\n};\n\nexport function IconCircle(props: IconCircleProps): JSX.Element {\n if (!props.imageUrl && !props.svg)\n return <></>;\n\n if (props.imageUrl) {\n return (\n <div className={`${styles.img} rounded-circle h-100 w-100`} style={{ backgroundImage: `url(${props.imageUrl})` }}>\n &nbsp;\n </div>\n );\n }\n\n return (\n <div className={`${styles.circle} ${props.variant ? `bg-${props.variant}` : ''} text-${props.textVariant} rounded-circle h-100 w-100 ${props.svgWrapperClassName ?? ''}`}>\n <SvgContainer svg={props.svg} size={props.svgSize} />\n </div>\n );\n}"],"names":["CheckSvg","props","jsx","IconCircle","Fragment","styles","SvgContainer"],"mappings":"6CAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,sGACF,SAAS,SAAA,CAAA,EAEb,CAEJ,+DCIAC,EAAW,aAAe,CACxB,YAAa,OACf,EAEO,SAASA,EAAWF,EAAqC,CAC9D,MAAI,CAACA,EAAM,UAAY,CAACA,EAAM,IACrBC,EAAAA,IAAAE,EAAAA,SAAA,EAAE,EAEPH,EAAM,SAENC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGG,EAAO,GAAG,8BAA+B,MAAO,CAAE,gBAAiB,OAAOJ,EAAM,QAAQ,GAAA,EAAO,SAAA,IAElH,EAKFC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGG,EAAO,MAAM,IAAIJ,EAAM,QAAU,MAAMA,EAAM,OAAO,GAAK,EAAE,SAASA,EAAM,WAAW,+BAA+BA,EAAM,qBAAuB,EAAE,GACpK,SAAAC,MAACI,EAAA,CAAa,IAAKL,EAAM,IAAK,KAAMA,EAAM,QAAS,EACrD,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{j as r}from"./app-BOVAF25L.js";function s(l){return r.jsx("svg",{...l,children:r.jsx("path",{d:"m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z",fill:"currentColor"})})}export{s as C};
2
- //# sourceMappingURL=B3fiTt0v.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B3fiTt0v.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/CloseSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function CloseSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n"],"names":["CloseSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,+QACF,KAAK,cAAA,CAAA,EAET,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{j as r}from"./app-BOVAF25L.js";function l(o){return r.jsx("svg",{...o,children:r.jsx("path",{d:"M11.267 15.695 5.304 9.79a1.046 1.046 0 0 1 0-1.473l.01-.011a1.034 1.034 0 0 1 1.467 0L12 13.474l5.22-5.17a1.034 1.034 0 0 1 1.465 0l.011.012a1.046 1.046 0 0 1 0 1.473l-5.963 5.906a1.034 1.034 0 0 1-1.466 0",fill:"currentColor"})})}export{l as C};
2
- //# sourceMappingURL=B3gC_Ph0.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B3gC_Ph0.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/ChevronDownSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function ChevronDownSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M11.267 15.695 5.304 9.79a1.046 1.046 0 0 1 0-1.473l.01-.011a1.034 1.034 0 0 1 1.467 0L12 13.474l5.22-5.17a1.034 1.034 0 0 1 1.465 0l.011.012a1.046 1.046 0 0 1 0 1.473l-5.963 5.906a1.034 1.034 0 0 1-1.466 0'\n fill='currentColor'\n />\n </svg>\n );\n}\n"],"names":["ChevronDownSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAAeC,EAAsC,CACnE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,iNACF,KAAK,cAAA,CAAA,EAET,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{ai as g,a2 as V,l as E,L as j,j as e}from"./app-BOVAF25L.js";import{u as v,P,I as A}from"./DS4k_cAQ.chunk.js";import{u as L,a as R,V as N}from"./Ch0LKWIV.chunk.js";import{h as F}from"./ajQ8aa2Z.chunk.js";import{u as S}from"./B-DrhpV6.chunk.js";import{E as C}from"./BmeqRFWF.chunk.js";import{E as G}from"./DnMWAYTf.chunk.js";import{E as n}from"./CBHt08r_.chunk.js";import{a as I}from"./IV3bbn1E.chunk.js";import{a as M}from"./rZLzwqIY.chunk.js";import"./D19_0c-8.chunk.js";import"./B-Dp4NBp.chunk.js";import"./B6J5cgUO.chunk.js";import"./B3gC_Ph0.chunk.js";import"./BBtnCImF.chunk.js";import"./_sYSSSUN.chunk.js";import"./BZWC2UjJ.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"./DEimCdra.chunk.js";import"./Kj832An8.chunk.js";import"./Dg-4fBAS.chunk.js";import"./De8m6Vtf.chunk.js";import"./tP6Wmg__.chunk.js";import"./D8Hat_q8.chunk.js";const b="exchange.mostRecent",m=j.encloseNamespace(b);function xe(){const c=g(),p=S(),o=V(n.exchange()),u=I("video-list"),{commonVideoProps:d}=L();E({title:m("title")});const{items:i,hasMore:h,isFetching:r,nextCursor:x}=v(o.data&&s,a,l);function s(t){return n.mostRecentVideos(o.data.id,t)}function a(t){return c(s(t))}function l(t,f){if(t===1)return F(f);p.error(m("error"))}return e.jsxs(R.Provider,{value:u,children:[e.jsxs("div",{className:"mb-2",children:[e.jsx(C,{}),e.jsx(G,{active:"most-recent"})]}),i?e.jsx(N,{videos:i,getVideoAppLink:M,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:d}):e.jsx("div",{className:"mx-n2",children:e.jsx(P,{})}),(h||r)&&e.jsx(A,{isFetching:r,fetchNext:a,nextCursor:x})]})}export{xe as ExchangeMostRecentView};
2
- //# sourceMappingURL=B5GSz7JC.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B5GSz7JC.chunk.js","sources":["../../src/apps/exchange/views/exchange-most-recent/ExchangeMostRecentView.tsx"],"sourcesContent":["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/react/index';\n\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 { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Library, Video } from 'libs/shared/interfaces';\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 { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\n\nconst namespace = 'exchange.mostRecent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function ExchangeMostRecentView() {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const exchange = Flight.useBasicFetch<Library>(ExchangeRequests.exchange());\n \n const videoActions = useGetExchangeActions('video-list');\n\n const { commonVideoProps } = useCommonVideoProps();\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(exchange.data && getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.mostRecentVideos(exchange.data.id, 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 return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-2'>\n <ExchangeSearchBar />\n <ExchangeTabs active='most-recent' />\n </div>\n\n {videos ? (\n <VideoList\n videos={videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n />\n )}\n </VideoActionsContext.Provider>\n );\n}\n"],"names":["namespace","getPhrase","LanguageService","ExchangeMostRecentView","fetch","Flight.useGetFetch","alerts","useAlerts","exchange","Flight.useBasicFetch","ExchangeRequests","videoActions","useGetExchangeActions","commonVideoProps","useCommonVideoProps","useSetPageMetadata","videos","hasMore","isFetching","nextCursor","useInfiniteList","getVideosRequest","fetchNextVideos","onError","cursor","pageNumber","httpStatus","handleHttpError","jsxs","VideoActionsContext","jsx","ExchangeSearchBar","ExchangeTabs","VideoList","getVideoAppLink","PartialVideoList","InfiniteScrollFooter"],"mappings":"mmCAuBA,MAAMA,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,IAAyB,CACvC,MAAMC,EAAQC,EAAO,EACfC,EAASC,EAAA,EAETC,EAAWC,EAA8BC,EAAiB,UAAU,EAEpEC,EAAeC,EAAsB,YAAY,EAEjD,CAAE,iBAAAC,CAAA,EAAqBC,EAAA,EAE7BC,EAAmB,CAAE,MAAOd,EAAU,OAAO,EAAG,EAEhD,KAAM,CACJ,MAAOe,EACP,QAAAC,EACA,WAAAC,EACA,WAAAC,CAAA,EACEC,EAAuBZ,EAAS,MAAQa,EAAkBC,EAAiBC,CAAO,EAEtF,SAASF,EAAiBG,EAAiC,CACzD,OAAOd,EAAiB,iBAAiBF,EAAS,KAAK,GAAIgB,CAAM,CACnE,CAEA,SAASF,EAAgBE,EAAuB,CAC9C,OAAOpB,EAAMiB,EAAiBG,CAAM,CAAC,CACvC,CAEA,SAASD,EAAQE,EAAoBC,EAA8B,CACjE,GAAID,IAAe,EACjB,OAAOE,EAAgBD,CAAU,EAEnCpB,EAAO,MAAML,EAAU,OAAO,CAAC,CACjC,CAEA,OACE2B,EAAAA,KAACC,EAAoB,SAApB,CAA6B,MAAOlB,EACnC,SAAA,CAAAiB,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAE,EAAAA,IAACC,EAAA,EAAkB,EACnBD,EAAAA,IAACE,EAAA,CAAa,OAAO,aAAA,CAAc,CAAA,EACrC,EAEChB,EACCc,EAAAA,IAACG,EAAA,CACC,OAAAjB,EACA,gBAAAkB,EACA,sBAAuB,KACvB,2BAA4B,IAAM,KAClC,eAAgB,IAAM,GACtB,kBAAiB,GACjB,iBAAArB,CAAA,CAAA,EAGFiB,EAAAA,IAAC,MAAA,CAAI,UAAU,QACb,SAAAA,MAACK,IAAiB,EACpB,GAGAlB,GAAWC,IACXY,EAAAA,IAACM,EAAA,CACC,WAAAlB,EACA,UAAWI,EACX,WAAAH,CAAA,CAAA,CACF,EAEJ,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{am as j,U as o,m as L,S as l,j as s,ai as A,a2 as b,l as k,an as N,a as w,b as C,L as I,ab as q,ae as B,ad as O,ac as U,a4 as R}from"./app-BOVAF25L.js";import{P as T,B as W,V as F}from"./RjaJ7sQ8.chunk.js";import{P as S,u as H,I as G}from"./DS4k_cAQ.chunk.js";import{u as _,a as D,V as M}from"./Ch0LKWIV.chunk.js";import{h as X}from"./ajQ8aa2Z.chunk.js";import{u as Y}from"./B-DrhpV6.chunk.js";import{u as Q}from"./BqNPVwUS.chunk.js";import{E as z}from"./CBHt08r_.chunk.js";import{a as J}from"./IV3bbn1E.chunk.js";import{b as K,a as Z}from"./rZLzwqIY.chunk.js";import"./_sYSSSUN.chunk.js";import"./CXB1Dc5J.chunk.js";import"./D19_0c-8.chunk.js";import"./B-Dp4NBp.chunk.js";import"./B6J5cgUO.chunk.js";import"./B3gC_Ph0.chunk.js";import"./BBtnCImF.chunk.js";import"./BZWC2UjJ.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"./DEimCdra.chunk.js";import"./Kj832An8.chunk.js";import"./tP6Wmg__.chunk.js";import"./D8Hat_q8.chunk.js";const f={sharedSeries:(e,t)=>o.urlBuilder(`/api/objects/${e}`,{query:l.SERIES,shareId:t}),seriesWithVideos:(e,t=3)=>`{gateway}/v1/objects/${e}?query=banner,videos[season,thumbnail,_canBeConsumed]{limit:${t}}`},ee={series(e){const t={query:l.SERIES};return{url:o.urlBuilder(`{gateway}/v1/objects/${e}`,t),publicUrl:o.urlBuilder(`/api/objects/${e}`,t),key:`series:${e}`}},sharedSeries(e,t){return{url:f.sharedSeries(e,t),key:`shared:series:${e}:${t}`}},seriesWithVideos(e,t=3){return{url:f.seriesWithVideos(e,t),key:`series:${e}:with:videos:${t}`}},seriesWithThumbnailAndCount(e){return{url:`{gateway}/v1/objects/${e}?query=videos[season,thumbnail,_canBeConsumed,count()]{limit:1}`,key:`series:${e}:thumbnail:count`}},seriesVideos(e,t,n,r){const a=j.getVideoSortParam(n),u=["series",e,"videos",r,n].filter(c=>!!c).join(":");return{url:o.urlBuilder(`{gateway}/v1/collections/${e}/videos`,{query:`{${a}}${l.VIDEO_COLLECTION}`,cursor:r}),publicUrl:o.urlBuilder(`/api/objects/collections/${e}/videos`,{query:`{${a}}${L.VIDEO_COLLECTION}`,cursor:r}),key:u}}};function se(){return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"partial-loading-background pb-4 mb-3 w-50"}),s.jsx("div",{className:"d-flex align-items-center justify-content-between mb-2",children:s.jsx(T,{})}),s.jsx("div",{className:"mx-n2",children:s.jsx(S,{})})]})}const te="exchange.exchangeSeries",g=I.encloseNamespace(te);function Oe(e){var x;const t=A(),n=Y(),r=b(ee.series(e.seriesId)),a=b(R.currentUser());k({title:(x=r.data)==null?void 0:x.name}),Q(r);const{commonVideoProps:u}=_(),c=!!a.data&&j.getOrSetSortType(a.data.id,e.sort,N.ProductionYear,"series"),{items:d,hasMore:y,isFetching:m,nextCursor:v}=H(p,h,V);function p(i){return z.seriesVideos(e.seriesId,c,i)}function h(i){return t(p(i))}function V(i,$){if(i===1)return X($);n.error(g("error"))}const E=J("video-list"),P=r.data?[{name:g("exchangeArchive"),appLink:{application:C.EXCHANGE,action:w.Exchange.INDEX}},{name:r.data.name,active:!0}]:[];return!r.data||m?s.jsx(se,{}):s.jsxs(D.Provider,{value:E,children:[s.jsx("h1",{className:"h2",children:r.data.name}),s.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[s.jsx(W,{breadcrumbs:P}),s.jsx(F,{variant:"outline-dark",type:c,getSortAppLink:i=>K(r.data,i),analyticsOptions:{location:U.VideoListHeader,entity:O.Video,actionType:B.Sort,workflowPhase:q.Complete},includeProductionYear:!0})]}),s.jsxs("div",{className:"pb-3",children:[d?s.jsx(M,{videos:d,getVideoAppLink:Z,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:u}):s.jsx("div",{className:"mx-n2",children:s.jsx(S,{})}),(y||m)&&s.jsx(G,{isFetching:m,fetchNext:h,nextCursor:v})]})]})}export{Oe as ExchangeSeriesView};
2
- //# sourceMappingURL=B5ReN0O-.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B5ReN0O-.chunk.js","sources":["../../../../libs/shared/src/flight-requests/SeriesRequests.ts","../../src/apps/exchange/views/exchange-series/partial-loading/PartialExchangeSeries.tsx","../../src/apps/exchange/views/exchange-series/ExchangeSeriesView.tsx"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nconst endpoints = {\n sharedSeries: (id: string, shareId: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n query: SharedWithStatements.SERIES,\n shareId\n }),\n seriesWithVideos: (id: string, videoCount: number = 3) => {\n return `{gateway}/v1/objects/${id}?query=banner,videos[season,thumbnail,_canBeConsumed]{limit:${videoCount}}`;\n }\n};\n\nexport const SeriesRequests = {\n series(id: string): Flight.PublicRequest {\n const queryStringObj = { query: SharedWithStatements.SERIES };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, queryStringObj),\n key: `series:${id}`\n };\n },\n sharedSeries(id: string, shareId: string): Flight.Request {\n return {\n url: endpoints.sharedSeries(id, shareId),\n key: `shared:series:${id}:${shareId}`\n };\n },\n seriesWithVideos(id: string, videoCount: number = 3): Flight.Request {\n return {\n url: endpoints.seriesWithVideos(id, videoCount),\n key: `series:${id}:with:videos:${videoCount}`\n };\n },\n seriesWithThumbnailAndCount(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}?query=videos[season,thumbnail,_canBeConsumed,count()]{limit:1}`,\n key: `series:${id}:thumbnail:count`\n };\n },\n seriesVideos(id: string, userId?: string, sort?: VideoSortType, cursor?: string): Flight.PublicRequest {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n\n const key = [ 'series', id, 'videos', cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/collections/${id}/videos`, {\n query: `{${sortFilter}}${SharedWithStatements.VIDEO_COLLECTION}`,\n cursor\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/collections/${id}/videos`, {\n query: `{${sortFilter}}${PublicWithStatement.VIDEO_COLLECTION}`,\n cursor\n }),\n key\n };\n }\n};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function PartialExchangeSeries() {\n return (\n <>\n <div\n className='partial-loading-background pb-4 mb-3 w-50'\n ></div>\n\n <div className='d-flex align-items-center justify-content-between mb-2'>\n <PartialBreadcrumbs />\n </div>\n \n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </>\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/react/index';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { 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 { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Series, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getSeriesAppLink, getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\n\nimport { PartialExchangeSeries } from './partial-loading/PartialExchangeSeries';\n\nconst namespace = 'exchange.exchangeSeries';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeSeriesViewProps {\n seriesId: string;\n sort: VideoSortType;\n}\n\nexport function ExchangeSeriesView(props: ExchangeSeriesViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const series = Flight.useBasicFetch<Series>(SeriesRequests.series(props.seriesId));\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n useSetPageMetadata({ title: series.data?.name });\n useHandleObjectError(series);\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, 'series');\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.seriesVideos(props.seriesId, 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 const videoActions = useGetExchangeActions('video-list');\n\n const breadcrumbs = series.data ? [{\n name: getPhrase('exchangeArchive'),\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n }\n }, {\n name: series.data.name,\n active: true\n }] : [];\n\n if (!series.data || isFetching)\n return <PartialExchangeSeries />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <h1 className='h2'>{series.data.name}</h1>\n\n <div className='d-flex justify-content-between align-items-center'>\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n getSortAppLink={sort => getSeriesAppLink(series.data, sort)}\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 <div className='pb-3'>\n {videos ? (\n <VideoList\n videos={videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={commonVideoProps}\n />) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n />\n )}\n </div>\n </VideoActionsContext.Provider>\n );\n}"],"names":["endpoints","id","shareId","UrlHelper","SharedWithStatements","videoCount","SeriesRequests","queryStringObj","userId","sort","cursor","sortFilter","VideoSortHelper","key","k","PublicWithStatement","PartialExchangeSeries","jsxs","Fragment","jsx","PartialBreadcrumbs","PartialVideoList","namespace","getPhrase","LanguageService","ExchangeSeriesView","props","fetch","Flight.useGetFetch","alerts","useAlerts","series","Flight.useBasicFetch","currentUser","UserRequests","useSetPageMetadata","_a","useHandleObjectError","commonVideoProps","useCommonVideoProps","VideoSortType","videos","hasMore","isFetching","nextCursor","useInfiniteList","getVideosRequest","fetchNextVideos","onError","ExchangeRequests","pageNumber","httpStatus","handleHttpError","videoActions","useGetExchangeActions","breadcrumbs","AppChannels","Actions","VideoActionsContext","Breadcrumbs","VideoSortSelect","getSeriesAppLink","LocationContext","EntityType","UserAction","WorkflowPhase","VideoList","getVideoAppLink","InfiniteScrollFooter"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const r={isNumber(e){return r.isType(e,"number")},isString(e){return r.isType(e,"string")},isType(e,s){return typeof e===s}};export{r as T};
2
- //# sourceMappingURL=B668bf5B.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B668bf5B.chunk.js","sources":["../../../../libs/common/src/react/utils/TypeHelper.ts"],"sourcesContent":["export const TypeHelper = {\n isNumber(obj: any): boolean {\n return TypeHelper.isType(obj, 'number');\n },\n\n isString(obj: any): boolean {\n return TypeHelper.isType(obj, 'string');\n },\n\n isType(obj: any, type: string): boolean {\n return typeof obj === type;\n }\n};"],"names":["TypeHelper","obj","type"],"mappings":"AAAO,MAAMA,EAAa,CACxB,SAASC,EAAmB,CAC1B,OAAOD,EAAW,OAAOC,EAAK,QAAQ,CACxC,EAEA,SAASA,EAAmB,CAC1B,OAAOD,EAAW,OAAOC,EAAK,QAAQ,CACxC,EAEA,OAAOA,EAAUC,EAAuB,CACtC,OAAO,OAAOD,IAAQC,CACxB,CACF"}
@@ -1,2 +0,0 @@
1
- import{r as d,j as h}from"./app-BOVAF25L.js";var I=new Map,R=new WeakMap,y=0,L=void 0;function O(e){return e?(R.has(e)||(y+=1,R.set(e,y.toString())),R.get(e)):"0"}function _(e){return Object.keys(e).sort().filter(r=>e[r]!==void 0).map(r=>`${r}_${r==="root"?O(e.root):e[r]}`).toString()}function $(e){const r=_(e);let s=I.get(r);if(!s){const n=new Map;let a;const i=new IntersectionObserver(o=>{o.forEach(t=>{var c;const g=t.isIntersecting&&a.some(u=>t.intersectionRatio>=u);e.trackVisibility&&typeof t.isVisible>"u"&&(t.isVisible=g),(c=n.get(t.target))==null||c.forEach(u=>{u(g,t)})})},e);a=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),s={id:r,observer:i,elements:n},I.set(r,s)}return s}function j(e,r,s={},n=L){if(typeof window.IntersectionObserver>"u"&&n!==void 0){const c=e.getBoundingClientRect();return r(n,{isIntersecting:n,target:e,intersectionRatio:typeof s.threshold=="number"?s.threshold:0,time:0,boundingClientRect:c,intersectionRect:c,rootBounds:c}),()=>{}}const{id:a,observer:i,elements:o}=$(s),t=o.get(e)||[];return o.has(e)||o.set(e,t),t.push(r),i.observe(e),function(){t.splice(t.indexOf(r),1),t.length===0&&(o.delete(e),i.unobserve(e)),o.size===0&&(i.disconnect(),I.delete(a))}}function D({threshold:e,delay:r,trackVisibility:s,rootMargin:n,root:a,triggerOnce:i,skip:o,initialInView:t,fallbackInView:c,onChange:g}={}){var u;const[f,p]=d.useState(null),m=d.useRef(),[A,l]=d.useState({inView:!!t,entry:void 0});m.current=g,d.useEffect(()=>{if(o||!f)return;let b;return b=j(f,(x,E)=>{l({inView:x,entry:E}),m.current&&m.current(x,E),E.isIntersecting&&i&&b&&(b(),b=void 0)},{root:a,rootMargin:n,threshold:e,trackVisibility:s,delay:r},c),()=>{b&&b()}},[Array.isArray(e)?e.toString():e,f,a,n,i,o,s,c,r]);const w=(u=A.entry)==null?void 0:u.target,S=d.useRef();!f&&w&&!i&&!o&&S.current!==w&&(S.current=w,l({inView:!!t,entry:void 0}));const v=[p,A.inView,A.entry];return v.ref=v[0],v.inView=v[1],v.entry=v[2],v}function V(e={}){const{prevent:r,rootMargin:s,triggerOnce:n=!0}=e;let[a,i,o]=D({triggerOnce:n,rootMargin:s});return(r===!0||typeof window.IntersectionObserver>"u")&&(i=!0,a=null),{ref:a,inView:i,initialized:!!o}}const M="_image_pp6me_1",C={image:M},z="500px",B="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",T=d.memo(function(e){const{forceLoad:r,extraClasses:s="",errorFallbackImageSrc:n,preventLoad:a=!1,errorFallbackImageClassName:i,src:o,alt:t,...c}=e,{ref:g,inView:u}=V({rootMargin:z}),[f,p]=d.useState(!1);d.useEffect(()=>{if(!r&&!u||a)return;const l=new Image;return l.onerror=()=>{p(!0),n&&(l.src=n)},l.src=o,()=>l.onerror=null},[u,a]);function m(){return f&&n?n:e.src}if(f&&!n)return h.jsx(h.Fragment,{});if(!g)return h.jsx("img",{className:`${C.image} ${s} ${f&&i||""}`,alt:t,src:m(),...c});const A={alt:t,...c,...(u||r)&&!a?{src:m()}:{src:B}};return r||(A.ref=g),h.jsx("img",{className:`${C.image} ${s} ${f&&i||""}`,...A})});export{T as L,D as a,V as u};
2
- //# sourceMappingURL=B6J5cgUO.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B6J5cgUO.chunk.js","sources":["../../../../../node_modules/react-intersection-observer/index.mjs","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root)\n return \"0\";\n if (RootIds.has(root))\n return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip)\n return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref)\n return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current)\n callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});"],"names":["observerMap","RootIds","rootId","unsupportedValue","getRootId","root","optionsToId","options","key","createObserver","id","instance","elements","thresholds","observer","entries","entry","_a","inView","threshold","callback","observe","element","fallbackInView","bounds","callbacks","useInView","delay","trackVisibility","rootMargin","triggerOnce","skip","initialInView","onChange","ref","setRef","React2.useState","React2.useRef","state","setState","React2.useEffect","unobserve","entryTarget","previousEntryTarget","result","useLazyLoad","prevent","PRELOAD_DISTANCE","PLACEHOLDER_SRC","LazyImage","React.memo","props","forceLoad","extraClasses","errorFallbackImageSrc","preventLoad","errorFallbackImageClassName","src","alt","propsWithoutSrc","error","setError","React.useState","React.useEffect","img","getSrc","jsx","Fragment","styles","imgProps"],"mappings":"6CAYA,IAAIA,EAA8B,IAAI,IAClCC,EAA0B,IAAI,QAC9BC,EAAS,EACTC,EAAmB,OAIvB,SAASC,EAAUC,EAAM,CACvB,OAAKA,GAEDJ,EAAQ,IAAII,CAAI,IAEpBH,GAAU,EACVD,EAAQ,IAAII,EAAMH,EAAO,SAAQ,CAAE,GAC5BD,EAAQ,IAAII,CAAI,GALd,GAMX,CACA,SAASC,EAAYC,EAAS,CAC5B,OAAO,OAAO,KAAKA,CAAO,EAAE,KAAI,EAAG,OAChCC,GAAQD,EAAQC,CAAG,IAAM,MAC9B,EAAI,IAAKA,GACE,GAAGA,CAAG,IAAIA,IAAQ,OAASJ,EAAUG,EAAQ,IAAI,EAAIA,EAAQC,CAAG,CAAC,EACzE,EAAE,SAAQ,CACb,CACA,SAASC,EAAeF,EAAS,CAC/B,MAAMG,EAAKJ,EAAYC,CAAO,EAC9B,IAAII,EAAWX,EAAY,IAAIU,CAAE,EACjC,GAAI,CAACC,EAAU,CACb,MAAMC,EAA2B,IAAI,IACrC,IAAIC,EACJ,MAAMC,EAAW,IAAI,qBAAsBC,GAAY,CACrDA,EAAQ,QAASC,GAAU,CACzB,IAAIC,EACJ,MAAMC,EAASF,EAAM,gBAAkBH,EAAW,KAAMM,GAAcH,EAAM,mBAAqBG,CAAS,EACtGZ,EAAQ,iBAAmB,OAAOS,EAAM,UAAc,MACxDA,EAAM,UAAYE,IAEnBD,EAAKL,EAAS,IAAII,EAAM,MAAM,IAAM,MAAgBC,EAAG,QAASG,GAAa,CAC5EA,EAASF,EAAQF,CAAK,CACxB,CAAC,CACH,CAAC,CACH,EAAGT,CAAO,EACVM,EAAaC,EAAS,aAAe,MAAM,QAAQP,EAAQ,SAAS,EAAIA,EAAQ,UAAY,CAACA,EAAQ,WAAa,CAAC,GACnHI,EAAW,CACT,GAAAD,EACA,SAAAI,EACA,SAAAF,CACN,EACIZ,EAAY,IAAIU,EAAIC,CAAQ,CAC9B,CACA,OAAOA,CACT,CACA,SAASU,EAAQC,EAASF,EAAUb,EAAU,CAAA,EAAIgB,EAAiBpB,EAAkB,CACnF,GAAI,OAAO,OAAO,qBAAyB,KAAeoB,IAAmB,OAAQ,CACnF,MAAMC,EAASF,EAAQ,sBAAqB,EAC5C,OAAAF,EAASG,EAAgB,CACvB,eAAgBA,EAChB,OAAQD,EACR,kBAAmB,OAAOf,EAAQ,WAAc,SAAWA,EAAQ,UAAY,EAC/E,KAAM,EACN,mBAAoBiB,EACpB,iBAAkBA,EAClB,WAAYA,CAClB,CAAK,EACM,IAAM,CACb,CACF,CACA,KAAM,CAAE,GAAAd,EAAI,SAAAI,EAAU,SAAAF,CAAQ,EAAKH,EAAeF,CAAO,EACnDkB,EAAYb,EAAS,IAAIU,CAAO,GAAK,CAAA,EAC3C,OAAKV,EAAS,IAAIU,CAAO,GACvBV,EAAS,IAAIU,EAASG,CAAS,EAEjCA,EAAU,KAAKL,CAAQ,EACvBN,EAAS,QAAQQ,CAAO,EACjB,UAAqB,CAC1BG,EAAU,OAAOA,EAAU,QAAQL,CAAQ,EAAG,CAAC,EAC3CK,EAAU,SAAW,IACvBb,EAAS,OAAOU,CAAO,EACvBR,EAAS,UAAUQ,CAAO,GAExBV,EAAS,OAAS,IACpBE,EAAS,WAAU,EACnBd,EAAY,OAAOU,CAAE,EAEzB,CACF,CAgHA,SAASgB,EAAU,CACjB,UAAAP,EACA,MAAAQ,EACA,gBAAAC,EACA,WAAAC,EACA,KAAAxB,EACA,YAAAyB,EACA,KAAAC,EACA,cAAAC,EACA,eAAAT,EACA,SAAAU,CACF,EAAI,GAAI,CACN,IAAIhB,EACJ,KAAM,CAACiB,EAAKC,CAAM,EAAIC,EAAAA,SAAgB,IAAI,EACpChB,EAAWiB,EAAAA,OAAa,EACxB,CAACC,EAAOC,CAAQ,EAAIH,WAAgB,CACxC,OAAQ,CAAC,CAACJ,EACV,MAAO,MACX,CAAG,EACDZ,EAAS,QAAUa,EACnBO,EAAAA,UACE,IAAM,CACJ,GAAIT,GAAQ,CAACG,EACX,OACF,IAAIO,EACJ,OAAAA,EAAYpB,EACVa,EACA,CAAChB,EAAQF,IAAU,CACjBuB,EAAS,CACP,OAAArB,EACA,MAAAF,CACZ,CAAW,EACGI,EAAS,SACXA,EAAS,QAAQF,EAAQF,CAAK,EAC5BA,EAAM,gBAAkBc,GAAeW,IACzCA,EAAS,EACTA,EAAY,OAEhB,EACA,CACE,KAAApC,EACA,WAAAwB,EACA,UAAAV,EAEA,gBAAAS,EAEA,MAAAD,CACV,EACQJ,CACR,EACa,IAAM,CACPkB,GACFA,EAAS,CAEb,CACF,EAGA,CAEE,MAAM,QAAQtB,CAAS,EAAIA,EAAU,SAAQ,EAAKA,EAClDe,EACA7B,EACAwB,EACAC,EACAC,EACAH,EACAL,EACAI,CACN,CACA,EACE,MAAMe,GAAezB,EAAKqB,EAAM,QAAU,KAAO,OAASrB,EAAG,OACvD0B,EAAsBN,EAAAA,OAAa,EACrC,CAACH,GAAOQ,GAAe,CAACZ,GAAe,CAACC,GAAQY,EAAoB,UAAYD,IAClFC,EAAoB,QAAUD,EAC9BH,EAAS,CACP,OAAQ,CAAC,CAACP,EACV,MAAO,MACb,CAAK,GAEH,MAAMY,EAAS,CAACT,EAAQG,EAAM,OAAQA,EAAM,KAAK,EACjD,OAAAM,EAAO,IAAMA,EAAO,CAAC,EACrBA,EAAO,OAASA,EAAO,CAAC,EACxBA,EAAO,MAAQA,EAAO,CAAC,EAChBA,CACT,CC5QO,SAASC,EAAYtC,EAA8B,GAAe,CACvE,KAAM,CAAE,QAAAuC,EAAS,WAAAjB,EAAY,YAAAC,EAAc,IAASvB,EAGpD,GAAI,CAAE2B,EAAKhB,EAAQF,CAAM,EAAIU,EAAU,CAAE,YAAAI,EAAa,WAAAD,EAAwB,EAE9E,OAAIiB,IAAY,IAAQ,OAAQ,OAAe,qBAAyB,OACtE5B,EAAS,GACTgB,EAAM,MAGD,CAAE,IAAAA,EAAK,OAAAhB,EAAQ,YAAa,CAAC,CAACF,CAAA,CACvC,sCC1BM+B,EAAmB,QAInBC,EAAkB,6DAUXC,EAAYC,EAAAA,KAAW,SAASC,EAA2C,CACtF,KAAM,CAAE,UAAAC,EAAW,aAAAC,EAAe,GAAI,sBAAAC,EAAuB,YAAAC,EAAc,GAAO,4BAAAC,EAA6B,IAAAC,EAAK,IAAAC,EAAK,GAAGC,CAAA,EAAoBR,EAE1I,CAAE,IAAAjB,EAAK,OAAAhB,CAAA,EAAW2B,EAAY,CAAE,WAAYE,EAAkB,EAC9D,CAAEa,EAAOC,CAAS,EAAIC,EAAAA,SAAe,EAAK,EAEhDC,EAAAA,UAAgB,IAAM,CACpB,GAAK,CAACX,GAAa,CAAClC,GAAWqC,EAC7B,OAGF,MAAMS,EAAM,IAAI,MAEhB,OAAAA,EAAI,QAAU,IAAM,CAClBH,EAAS,EAAI,EAETP,IACFU,EAAI,IAAMV,EACd,EAEAU,EAAI,IAAMP,EACH,IAAMO,EAAI,QAAU,IAC7B,EAAG,CAAE9C,EAAQqC,CAAY,CAAC,EAE1B,SAASU,GAAiB,CACxB,OAAIL,GAASN,EACJA,EAEFH,EAAM,GACf,CAEA,GAAIS,GAAS,CAACN,EACZ,OAAOY,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEX,GAAI,CAACjC,EACH,OACEgC,EAAAA,IAAC,MAAA,CACC,UAAW,GAAGE,EAAO,KAAK,IAAIf,CAAY,IAAIO,GAAQJ,GAA+B,EAAO,GAC5F,IAAAE,EACA,IAAKO,EAAA,EACJ,GAAGN,CAAA,CAAA,EAKV,MAAMU,EAAiG,CACrG,IAAAX,EACA,GAAGC,EACH,IAAMzC,GAAUkC,IAAc,CAACG,EAAe,CAAE,IAAKU,EAAA,CAAO,EAAM,CAAE,IAAKjB,CAAA,CAAgB,EAG3F,OAAKI,IACHiB,EAAS,IAAMnC,GAGfgC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,KAAK,IAAIf,CAAY,IAAIO,GAAQJ,GAA+B,EAAO,GAAK,GAAGa,EAAU,CAEvH,CAAC","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- import{j as e}from"./app-BOVAF25L.js";import{s}from"./2tJmZ2Oi.chunk.js";function n(a){return e.jsx("svg",{...a,children:e.jsx("path",{d:"M4.5 6a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5l12.313.035a.478.478 0 0 1 .337.816l-.007.006a.49.49 0 0 1-.345.143H4.5A1.5 1.5 0 0 1 3 17.5v-11A1.5 1.5 0 0 1 4.5 5h15A1.5 1.5 0 0 1 21 6.5v4.293a.5.5 0 0 1-1 0V6.5a.5.5 0 0 0-.5-.5zm5.538 3.123a.26.26 0 0 0-.038.133v5.479a.256.256 0 0 0 .39.218l4.482-2.74a.256.256 0 0 0 0-.436l-4.482-2.74a.256.256 0 0 0-.352.086m10.867 4.348a.46.46 0 0 0-.463-.471h-.046a.467.467 0 0 0-.464.47v2.03h-1.974c-.153.013-.458.123-.458.465v.07c0 .377.305.467.458.465l1.974-.001v2.03c0 .271.208.471.464.471h.046c.257 0 .463-.21.463-.47v-2.031l1.975.001c.25 0 .458-.208.458-.465v-.07a.464.464 0 0 0-.458-.465h-1.975z",fill:"currentColor"})})}function r(a){let l=`d-flex align-items-center badge-list ${s.minHeight}`;return a.className&&(l+=` ${a.className}`),e.jsx("div",{className:l,children:a.children})}export{n as A,r as B};
2
- //# sourceMappingURL=B70bPb5E.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"B70bPb5E.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/AddVideoSvg.tsx","../../../../libs/shared/src/components/badges/BadgeListContainer.tsx"],"sourcesContent":["import React from 'react';\n\nexport function AddVideoSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M4.5 6a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5l12.313.035a.478.478 0 0 1 .337.816l-.007.006a.49.49 0 0 1-.345.143H4.5A1.5 1.5 0 0 1 3 17.5v-11A1.5 1.5 0 0 1 4.5 5h15A1.5 1.5 0 0 1 21 6.5v4.293a.5.5 0 0 1-1 0V6.5a.5.5 0 0 0-.5-.5zm5.538 3.123a.26.26 0 0 0-.038.133v5.479a.256.256 0 0 0 .39.218l4.482-2.74a.256.256 0 0 0 0-.436l-4.482-2.74a.256.256 0 0 0-.352.086m10.867 4.348a.46.46 0 0 0-.463-.471h-.046a.467.467 0 0 0-.464.47v2.03h-1.974c-.153.013-.458.123-.458.465v.07c0 .377.305.467.458.465l1.974-.001v2.03c0 .271.208.471.464.471h.046c.257 0 .463-.21.463-.47v-2.031l1.975.001c.25 0 .458-.208.458-.465v-.07a.464.464 0 0 0-.458-.465h-1.975z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import * as React from 'react';\n\nimport styles from './badge.module.scss';\n\ninterface BadgeListContainerProps {\n className?: string;\n}\n\nexport function BadgeListContainer(props: React.PropsWithChildren<BadgeListContainerProps>): JSX.Element {\n let className = `d-flex align-items-center badge-list ${styles.minHeight}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return (\n <div className={className}>\n {props.children}\n </div>\n );\n}"],"names":["AddVideoSvg","props","jsx","BadgeListContainer","className","styles"],"mappings":"yEAEO,SAASA,EAAYC,EAAsC,CAChE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,+nBACF,KAAK,cAAA,CAAA,EAET,CAEJ,CCHO,SAASC,EAAmBF,EAAsE,CACvG,IAAIG,EAAY,wCAAwCC,EAAO,SAAS,GAExE,OAAIJ,EAAM,YACRG,GAAa,IAAIH,EAAM,SAAS,IAGhCC,EAAAA,IAAC,MAAA,CAAI,UAAAE,EACF,SAAAH,EAAM,SACT,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{L as n,q as t,aE as s,al as a}from"./app-BOVAF25L.js";import{I as o}from"./CJ3oIQlG.chunk.js";const i="tv.getRegionInfo",e=n.encloseNamespace(i);function m(g){const r={[o.AU]:{tv:e("foxtel"),country:e("au"),requestProgram:!0,programGuidePhraseKey:"foxtelTvGuide",logo:a.ProgramLogos.FOXTEL,bgColor:"bg-light-yellow"},[o.UK]:{tv:e("bbcRes"),country:e("uk"),requestProgram:!0,programGuidePhraseKey:"bbcSearch",logo:a.ProgramLogos.BBC,bgColor:"bg-light-blue"},[o.NZ]:{country:e("nz"),requestProgram:!1}}[g];return r||t.throw(new s("No region info mapped for instance region")),r}export{m as g};
2
- //# sourceMappingURL=BAJmnmDG.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BAJmnmDG.chunk.js","sources":["../../src/apps/tv/utils/getRegionInfo/getRegionInfo.ts"],"sourcesContent":["import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'tv.getRegionInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype RegionInfo = {\n country: string;\n requestProgram: boolean;\n tv?: string;\n programGuidePhraseKey?: string;\n logo?: string;\n bgColor?: string;\n}\n\nexport function getRegionInfo(instanceRegion: InstanceRegion): RegionInfo {\n const regionMap: Partial<Record<InstanceRegion, RegionInfo>> = {\n [InstanceRegion.AU]: {\n tv: getPhrase('foxtel'),\n country: getPhrase('au'),\n requestProgram: true,\n programGuidePhraseKey: 'foxtelTvGuide',\n logo: ImageUrls.ProgramLogos.FOXTEL,\n bgColor: 'bg-light-yellow'\n },\n [InstanceRegion.UK]: {\n tv: getPhrase('bbcRes'),\n country: getPhrase('uk'),\n requestProgram: true,\n programGuidePhraseKey: 'bbcSearch',\n logo: ImageUrls.ProgramLogos.BBC,\n bgColor: 'bg-light-blue'\n },\n [InstanceRegion.NZ]: {\n country: getPhrase('nz'),\n requestProgram: false\n }\n };\n\n const regionInfo = regionMap[instanceRegion];\n\n if (!regionInfo)\n Core.ErrorHelper.throw(new DevError('No region info mapped for instance region'));\n\n return regionInfo;\n}"],"names":["namespace","getPhrase","LanguageService","getRegionInfo","instanceRegion","regionInfo","InstanceRegion","ImageUrls","Core.ErrorHelper","DevError"],"mappings":"qGAQA,MAAMA,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAWrD,SAASG,EAAcC,EAA4C,CAwBxE,MAAMC,EAvByD,CAC7D,CAACC,EAAe,EAAE,EAAG,CACnB,GAAIL,EAAU,QAAQ,EACtB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,gBACvB,KAAMM,EAAU,aAAa,OAC7B,QAAS,iBAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,GAAKL,EAAU,QAAQ,EACvB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,YACvB,KAAMM,EAAU,aAAa,IAC7B,QAAS,eAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,QAASL,EAAU,IAAI,EACvB,eAAgB,EAAA,CAClB,EAG2BG,CAAc,EAE3C,OAAKC,GACHG,EAAiB,MAAM,IAAIC,EAAS,2CAA2C,CAAC,EAE3EJ,CACT"}
@@ -1,2 +0,0 @@
1
- import{Y as b,as as h,j as m,ap as k,aq as i,R as y,bG as d}from"./app-BOVAF25L.js";import{L as C}from"./B6J5cgUO.chunk.js";const x="_image_1himm_1",N="_thumbnail_1himm_13",T="_tallPoster_1himm_16",L="_cover_1himm_19",v="_banner_1himm_22",I="_poster_1himm_25",j="_pdf_1himm_28",P="_link_1himm_31",s={image:x,thumbnail:N,tallPoster:T,cover:L,banner:v,poster:I,pdf:j,link:P};function F(e){let t=s.image,a="";return e.imageType===i.Thumbnails&&(a=`thumbnail ${s.thumbnail}`),e.imageType===i.TallPosters&&(a=s.tallPoster),e.imageType===i.Covers&&(a=s.cover),e.imageType===i.Banners&&(a=s.banner),e.imageType===i.Posters&&(a=s.poster),e.imageType===i.Pdf&&(a=s.pdf),e.imageType===i.Link&&(a=s.link),a&&(t+=` ${a}`),e.className&&(t+=` ${e.className}`),t}function O(e){const{data:t,imageOptions:a,appLink:r,preload:c,preventLoad:o,analyticsOptions:g,analyticsData:_,imageClassName:f,alt:u}=e;let n="";typeof t=="string"?n=t:b.isObject(t)&&(n=t.url);const l=n&&a?h.createUrl(n,a):n;return m.jsx("div",{className:F(e),style:e.imageStyle,children:m.jsxs(k,{appLink:r,analyticsData:_,analyticsOptions:g,onClick:e.onClick,preventFocus:e.preventFocus,className:e.appLinkClassName,children:[e.children,l&&m.jsx(C,{src:l,alt:u,forceLoad:c,preventLoad:o,extraClasses:f,errorFallbackImageSrc:e.errorFallbackImageSrc,errorFallbackImageClassName:e.errorFallbackImageClassName,onLoad:e.onLoad})]})})}function R(){return y.useContext(d)}export{O as B,R as u};
2
- //# sourceMappingURL=BBtnCImF.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BBtnCImF.chunk.js","sources":["../../../../libs/shared/src/components/image/BaseImage.tsx","../../../../libs/shared/src/hooks/useBreakpoints.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { Image } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './image.module.scss';\n\nfunction getImageClassName(props: BaseImageProps): string {\n let className = styles.image;\n\n let imageTypeClassName = '';\n\n if (props.imageType === ImageType.Thumbnails)\n imageTypeClassName = `thumbnail ${styles.thumbnail}`;\n\n if (props.imageType === ImageType.TallPosters)\n imageTypeClassName = styles.tallPoster;\n\n if (props.imageType === ImageType.Covers)\n imageTypeClassName = styles.cover;\n\n if (props.imageType === ImageType.Banners)\n imageTypeClassName = styles.banner;\n\n if (props.imageType === ImageType.Posters)\n imageTypeClassName = styles.poster;\n\n if (props.imageType === ImageType.Pdf)\n imageTypeClassName = styles.pdf;\n\n if (props.imageType === ImageType.Link)\n imageTypeClassName = styles.link;\n\n if (imageTypeClassName)\n className += ` ${imageTypeClassName}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return className;\n}\n\ninterface BaseImageProps {\n data: Image | string;\n imageOptions?: ImageOptions;\n appLink?: Core.AppLink;\n imageType?: ImageType;\n className?: string;\n imageClassName?: string;\n imageStyle?: HashObject;\n preload?: boolean;\n preventLoad?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n alt?: string;\n preventFocus?: boolean;\n appLinkClassName?: string;\n onClick?: () => void;\n onLoad?: () => void;\n}\n\nexport function BaseImage(props: React.PropsWithChildren<BaseImageProps>): React.ReactElement {\n const {\n data,\n imageOptions,\n appLink,\n preload,\n preventLoad,\n analyticsOptions,\n analyticsData,\n imageClassName,\n alt\n } = props;\n\n let url = '';\n\n if (typeof data === 'string') {\n url = data;\n } else if (ObjectHelper.isObject(data)) {\n url = data.url;\n }\n\n const imageUrl = (url && imageOptions) ? ImageHelper.createUrl(url, imageOptions) : url;\n\n return (\n <div className={getImageClassName(props)} style={props.imageStyle}>\n <AppLink\n appLink={appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n onClick={props.onClick}\n preventFocus={props.preventFocus}\n className={props.appLinkClassName}\n >\n {props.children}\n {imageUrl && (\n <LazyImage\n src={imageUrl}\n alt={alt}\n forceLoad={preload}\n preventLoad={preventLoad}\n extraClasses={imageClassName}\n errorFallbackImageSrc={props.errorFallbackImageSrc}\n errorFallbackImageClassName={props.errorFallbackImageClassName}\n onLoad={props.onLoad}\n />\n )}\n </AppLink>\n </div>\n );\n}\n\n","import React from 'react';\n\nimport { BreakpointsContext } from 'libs/shared/context/BreakpointsContext';\n\nexport interface Breakpoints {\n xs: boolean;\n sm: boolean;\n md: boolean;\n lg: boolean;\n xl: boolean;\n xxl: boolean;\n}\n\nexport function useBreakpoints(): Breakpoints {\n const context = React.useContext<Breakpoints>(BreakpointsContext);\n\n return context;\n}"],"names":["getImageClassName","props","className","styles","imageTypeClassName","ImageType","BaseImage","data","imageOptions","appLink","preload","preventLoad","analyticsOptions","analyticsData","imageClassName","alt","url","ObjectHelper","imageUrl","ImageHelper","jsx","jsxs","AppLink","LazyImage","useBreakpoints","React","BreakpointsContext"],"mappings":"qXAeA,SAASA,EAAkBC,EAA+B,CACxD,IAAIC,EAAYC,EAAO,MAEnBC,EAAqB,GAEzB,OAAIH,EAAM,YAAcI,EAAU,aAChCD,EAAqB,aAAaD,EAAO,SAAS,IAEhDF,EAAM,YAAcI,EAAU,cAChCD,EAAqBD,EAAO,YAE1BF,EAAM,YAAcI,EAAU,SAChCD,EAAqBD,EAAO,OAE1BF,EAAM,YAAcI,EAAU,UAChCD,EAAqBD,EAAO,QAE1BF,EAAM,YAAcI,EAAU,UAChCD,EAAqBD,EAAO,QAE1BF,EAAM,YAAcI,EAAU,MAChCD,EAAqBD,EAAO,KAE1BF,EAAM,YAAcI,EAAU,OAChCD,EAAqBD,EAAO,MAE1BC,IACFF,GAAa,IAAIE,CAAkB,IAEjCH,EAAM,YACRC,GAAa,IAAID,EAAM,SAAS,IAE3BC,CACT,CAuBO,SAASI,EAAUL,EAAoE,CAC5F,KAAM,CACJ,KAAAM,EACA,aAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,eAAAC,EACA,IAAAC,CAAA,EACEd,EAEJ,IAAIe,EAAM,GAEN,OAAOT,GAAS,SAClBS,EAAMT,EACGU,EAAa,SAASV,CAAI,IACnCS,EAAMT,EAAK,KAGb,MAAMW,EAAYF,GAAOR,EAAgBW,EAAY,UAAUH,EAAKR,CAAY,EAAIQ,EAEpF,OACEI,MAAC,OAAI,UAAWpB,EAAkBC,CAAK,EAAG,MAAOA,EAAM,WACrD,SAAAoB,EAAAA,KAACC,EAAA,CACC,QAAAb,EACA,cAAAI,EACA,iBAAAD,EACA,QAASX,EAAM,QACf,aAAcA,EAAM,aACpB,UAAWA,EAAM,iBAEhB,SAAA,CAAAA,EAAM,SACNiB,GACCE,EAAAA,IAACG,EAAA,CACC,IAAKL,EACL,IAAAH,EACA,UAAWL,EACX,YAAAC,EACA,aAAcG,EACd,sBAAuBb,EAAM,sBAC7B,4BAA6BA,EAAM,4BACnC,OAAQA,EAAM,MAAA,CAAA,CAChB,CAAA,CAAA,EAGN,CAEJ,CC3GO,SAASuB,GAA8B,CAG5C,OAFgBC,EAAM,WAAwBC,CAAkB,CAGlE"}
@@ -1,2 +0,0 @@
1
- import{U as j,ao as y,ad as L,ae as S,j as a,ap as v,aq as w,R as C,ar as _,w as m,B as u,r as N}from"./app-BOVAF25L.js";import{C as p}from"./gaXZzMcg.chunk.js";import{A}from"./DEimCdra.chunk.js";import{D as T}from"./BZWC2UjJ.chunk.js";import{B as E,u as D}from"./BBtnCImF.chunk.js";import{I as B,a as H,u as I}from"./D19_0c-8.chunk.js";const $="_actions_1psxq_1",q="_actionsContainer_1psxq_14",z="_ownerLogo_1psxq_24",P="_dropStyle_1psxq_33",O="_dragStyle_1psxq_38",d={actions:$,actionsContainer:q,ownerLogo:z,dropStyle:P,dragStyle:O};function U(e){var i,r,f,h,b,F;const s=e.folder.thumbnail?j.urlBuilder(e.folder.thumbnail.url,{size:y.Small}):null,t=(h=(f=(r=(i=e.folder)==null?void 0:i.libraries)==null?void 0:r.data)==null?void 0:f[0])==null?void 0:h.owner,n=e.showOwnerLogo&&((b=t==null?void 0:t.logo)!=null&&b.url)?j.urlBuilder(t.logo.url,{size:y.Small}):null,l=(F=e.getFolderActions)==null?void 0:F.call(e,e.folder),o=e.analyticsData?{id:e.folder.id.toString(),name:e.folder.name,...e.analyticsData}:void 0,c=e.analyticsOptions?{actionType:S.Click,entity:L.Folder,...e.analyticsOptions}:void 0;return a.jsx(T,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:d.dropStyle,dragStyle:d.dragStyle,children:a.jsxs("div",{className:"position-relative",children:[a.jsxs(v,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name,analyticsData:o,analyticsOptions:c,children:[a.jsx(E,{data:s,imageType:w.Thumbnails,imageClassName:"rounded-top-lg",children:a.jsx(B,{name:e.folder.name,type:H.Folder,extraClasses:"rounded-top-lg"})}),a.jsx("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2",children:a.jsx("span",{className:"text-truncate d-block",children:e.folder.name})})]}),(l==null?void 0:l.length)&&a.jsx(A,{actions:l,className:d.actionsContainer,actionsDropdownClassName:d.actions,dropdownToggleSvgSize:null}),!!n&&a.jsx("img",{src:n,className:`rounded-circle ${d.ownerLogo}`,alt:`${t==null?void 0:t.name} logo`,title:(t==null?void 0:t.name)||""})]})})}const g="libraries.folderList",k="has:expanded:library:folders";function R(){const e=D();return e.xxl||e.xl||e.lg?6:e.md?4:3}G.defaultProps={showHeading:!0};function G(e){const[s,t]=C.useState(_.get(k)||!1),n=e.expandFolders||s,l=R();function o(){t(!n),_.set(k,!n)}const c=n?e.folders:e.folders.slice(0,l),i=e.folders.length>l&&!e.expandFolders;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[e.showHeading&&a.jsxs(m,{className:`d-inline-flex align-items-center mb-2 px-2 ${i?"":"cursor-default"}`,onClick:o,children:[i&&a.jsx(p,{direction:n?"down":"right"}),a.jsx("h2",{className:"h4 mb-0",children:a.jsx(u,{namespace:g,phrase:"folders",options:{count:e.folders.length}})})]}),!!(!n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeAll",options:{count:e.folders.length}})})}),!!(n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeLess"})})}),e.extraButtons?e.extraButtons:a.jsx(a.Fragment,{})]}),a.jsx("div",{className:"row mx-1",children:c.map(r=>a.jsx("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:a.jsx(U,{folder:r,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop})},r.id))})]})}const K="_partialFolderHeading_1surw_1",M="_partialFolderThumbnail_1surw_4",V="_partialFolderName_1surw_7",x={partialFolderHeading:K,partialFolderThumbnail:M,partialFolderName:V},W=()=>a.jsxs("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:[a.jsx("div",{className:`${x.partialFolderThumbnail} partial-loading-background rounded-top-lg`}),a.jsx("div",{className:`${x.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`,children:" "})]});function ae({count:e=3}){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`${x.partialFolderHeading} h4 mb-2 partial-loading-background`,children:" "}),a.jsx("div",{className:"row mx-n1",children:Array(e).fill(null).map((s,t)=>a.jsx(W,{},t))})]})}function le(e,s){const t=e,n=s,l=I(e&&(o=>t(o).key));return N.useEffect(()=>{l&&l.shouldInitialFetch&&s&&n()},[l==null?void 0:l.shouldInitialFetch,s]),N.useEffect(()=>{!l||!l.nextCursor||l.isFetching||!s||n(l.nextCursor)},[l==null?void 0:l.nextCursor,l==null?void 0:l.isFetching,s]),l}export{G as F,ae as P,le as u};
2
- //# sourceMappingURL=BDF37jEe.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BDF37jEe.chunk.js","sources":["../../../../libs/shared/src/components/library-folder/LibraryFolder.tsx","../../../../libs/shared/src/components/folder-list/FolderList.tsx","../../../../libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","../../../../libs/shared/src/hooks/UseFetchAll.ts"],"sourcesContent":["import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.module.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n showOwnerLogo?: boolean;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const owner = props.folder?.libraries?.data?.[0]?.owner;\n const ownerLogoUrl = props.showOwnerLogo && !!owner?.logo?.url\n ? UrlHelper.urlBuilder(owner.logo.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n const analyticsData = props.analyticsData ? {\n id: props.folder.id.toString(),\n name: props.folder.name,\n ...props.analyticsData\n } : undefined;\n\n const analyticsOptions = props.analyticsOptions ? {\n actionType: UserAction.Click,\n entity: EntityType.Folder,\n\n ...props.analyticsOptions\n } : undefined;\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n {!!ownerLogoUrl &&\n <img src={ownerLogoUrl} className={`rounded-circle ${styles.ownerLogo}`} alt={`${owner?.name} logo`} title={owner?.name || ''} />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","import React from 'react';\n\nimport styles from './partial-folder-list.module.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n &nbsp;\n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}>&nbsp;</div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { SelectAllPagesResult, useSelectAllPages } from './UseSelectAllPages';\n\n/**\n * Hook to fetch all pages of a collection.\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 useFetchAll<T = BaseObject>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false\n): SelectAllPagesResult<T> {\n const getRequestFn = getRequest as (cursor?: string) => Flight.Request;\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequestFn(cursor).key));\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext)\n fetchNextFn();\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response || !response.nextCursor || response.isFetching || !fetchNext)\n return;\n\n fetchNextFn(response.nextCursor);\n }, [ response?.nextCursor, response?.isFetching, fetchNext ]);\n\n return response;\n}"],"names":["LibraryFolder","props","thumbnailUrl","UrlHelper","ImageSize","owner","_d","_c","_b","_a","ownerLogoUrl","_e","actions","_f","analyticsData","analyticsOptions","UserAction","EntityType","jsx","DragDropMoveWrapper","styles","jsxs","AppLink","BaseImage","ImageType","ImageFallback","ImageFallbackType","Actions","namespace","EXPANDED_FOLDERS_KEY","useGetFolderLimit","breakpoints","useBreakpoints","FolderList","_hasExpandedFolders","setHasExpandedFolders","React","LocalStorageHelper","hasExpandedFolders","folderLimit","onToggleFolder","displayableFolders","canToggleCollapsedView","Fragment","DivButton","Caret","Text","f","PartialFolder","PartialFolderList","count","_","i","useFetchAll","getRequest","fetchNext","getRequestFn","fetchNextFn","response","useSelectAllPages","cursor","useEffect"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{Y as me,T as te,j as n,J as be,r as I,w as ge,A as pe,R as ue,B,a0 as ye,L as v,x as G,aO as le,U as ve,a2 as N,a1 as xe,am as Te,P as Le,c as J,a4 as Ne,aP as de,M as Y,aB as Ae}from"./app-BOVAF25L.js";import{l as Ce}from"./Cdw__lc8.chunk.js";import{u as Se,F as z,l as M,a as _e}from"./D7pbmK0q.chunk.js";import{A as Pe}from"./DEimCdra.chunk.js";import{C as je}from"./gaXZzMcg.chunk.js";import{H as ce}from"./Kj832An8.chunk.js";import{L as K}from"./D8Hat_q8.chunk.js";import{V as ke}from"./C8QZE6Un.chunk.js";import{u as Fe}from"./B-DrhpV6.chunk.js";import{u as Ee}from"./DlrCPMdZ.chunk.js";import{V as X}from"./DKoiUoAQ.chunk.js";import"./DzdwUdxf.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./2tJmZ2Oi.chunk.js";function ee(e,t,r){if(te.isEqual(e.id,t))return[e,r];const i=e.children;if(!i||!i.length)return[null,null];for(let a=0;a<i.length;a++){const[o,c]=ee(i[a],t,[...r,e]);if(o)return[o,c]}return[null,null]}const qe=7,m={find(e,t){if(!(!e||!e.children||!e.children.length))for(let r=0;r<e.children.length;r++){const[i]=ee(e.children[r],t,[]);if(i)return i}},getPath(e,t){if(!(!e||!e.children||!e.children.length))for(let r=0;r<e.children.length;r++){const[,i]=ee(e.children[r],t,[]);if(i!=null&&i.length)return i}},getParent(e,t){const r=m.getPath(e,t);return r!=null&&r.length?r[r.length-1]:null},convertNestedObjectToTree(e){var r;const t={...e.data,children:e.children};return(r=t.children)!=null&&r.length&&(t.children=t.children.map(m.convertNestedObjectToTree)),t},findDepth(e,t,r=0){var a,o;if(!e||e.length===0)return 0;let i=0;for(const c of e){if(((o=(a=c.data)==null?void 0:a.id)==null?void 0:o.toString())===t.toString())return r;const f=m.findDepth(c.children,t,r+1);if(f>0){i=f;break}}return i},findMaxChildDepth(e,t=0){if(!e||e.length===0)return t;let r=t;for(const i of e){const a=m.findMaxChildDepth(i.children,t+1);r=Math.max(r,a)}return r},findTargetNode(e,t){var r,i;if(!e||e.length===0)return null;for(const a of e){if(((i=(r=a.data)==null?void 0:r.id)==null?void 0:i.toString())===t.toString())return a;const o=m.findTargetNode(a.children,t);if(o!==null)return o}return null},isMaxDepth(e,t,r,i=qe){const a=m.findTargetNode(e,t),o=m.findMaxChildDepth(a.children),c=m.findDepth(e,r);return o+c>=i},flatten(e){if(!e)return[];const t=[];function r(i){t.push(me.omit(i,["children"])),i.children.forEach(r)}return e.children.forEach(r),t}},Ie="_tree_u0qyb_1",Re="_text_u0qyb_1",Oe="_chevron_u0qyb_4",De="_disabled_u0qyb_163",Me="_root_u0qyb_166",Ue="_selected_u0qyb_172",$e="_actions_u0qyb_175",we="_node_u0qyb_185",He="_noActions_u0qyb_188",b={tree:Ie,text:Re,chevron:Oe,disabled:De,root:Me,selected:Ue,actions:$e,node:we,noActions:He};function Ve(e){var r;function t(){let i=`${b.text} clamp-4`;return e.className&&(i+=` ${e.className}`),i}if(e.isDisabled){const i=typeof e.disabledTooltip=="string"?e.disabledTooltip:(r=e.disabledTooltip)==null?void 0:r.call(e,e.tree);return n.jsx(be,{title:i,spanHack:!0,spanHackClassName:"d-inline-block flex-grow-1",children:n.jsx("span",{className:`${t()} text-secondary ${b.disabled}`,children:e.text})})}return n.jsx("div",{className:t(),children:e.text})}const We="tree-actions";fe.defaultProps={selectedLinkClassName:b.selected};function fe(e){const{tree:t,selectedIds:r,getAppLink:i,onSelect:a,isDisabled:o,isClickDisabled:c,actions:f,isDropdown:d}=e,h=I.useRef(null),x=I.useMemo(()=>r==null?void 0:r.some(l=>m.find(t,l)),[t,r]),R=e.openDepth&&e.depth<e.openDepth,[g,C]=I.useState(x||R),S=r==null?void 0:r.some(l=>te.isEqual(t.id,l));let _=!!t.children&&!!t.children.length;e.maxDisplayDepth&&_&&(_=e.depth<e.maxDisplayDepth),I.useEffect(()=>{if(!h.current||!d)return;const l=O=>{O.stopPropagation(),P()};return h.current.addEventListener("click",l),()=>{h.current&&h.current.removeEventListener("click",l)}},[h.current,a]),I.useEffect(()=>{var l;e.multiSelect||g&&(x||S||!((l=e.selectedIds)!=null&&l.length)&&(o!=null&&o(e.tree))||R||C(!1))},[r]);function P(){if(!(c!=null&&c(t))){if(e.multiSelect||C(!g),i){pe.trigger(i(t));return}if(o!=null&&o(t)){a(null);return}a==null||a(t)}}function w(l){if(l.stopPropagation(),e.multiSelect){C(!g);return}P()}function H(){let l=`py-1 d-flex align-items-center w-100 position-relative ${b.node}`;return S&&(l+=" "+e.selectedLinkClassName),f!=null&&f.length||(l+=" "+b.noActions),x&&e.multiSelect&&(l+=" text-underline fst-italic"),l}return e.maxDisplayDepth&&e.depth>e.maxDisplayDepth?n.jsx(n.Fragment,{}):n.jsx("li",{className:`position-relative ${g?"":b.collapsed} ${e.isRoot?b.root:""}`,children:n.jsxs("div",{className:"position-relative",children:[n.jsxs(ge,{className:H(),onClick:d?null:P,ref:h,children:[_&&n.jsx("div",{className:b.chevron,onClick:w,children:n.jsx(je,{direction:g?"down":"right"})}),n.jsx(Ve,{tree:t,text:t.name||t.description,isDisabled:(o==null?void 0:o(t))||(c==null?void 0:c(t)),disabledTooltip:e.disabledTooltip})]}),!!e.actions&&n.jsx(Pe,{className:b.actions,actions:f==null?void 0:f.map(l=>({...l,appLink:l.getAppLink(t)})),actionsDropdownClassName:`btn btn-light ${We} py-0`}),g&&n.jsx(he,{...e,isChild:!0,depth:e.depth+1},t.id)]})})}function he(e){const{tree:t,...r}=e;return!t||!t.children?n.jsx(n.Fragment,{}):n.jsx("ul",{className:`m-0 p-0 list-unstyled ${b.tree}`,children:t.children.map((i,a)=>n.jsx(fe,{tree:i,...r,isRoot:!e.isChild,depth:e.depth||0},a))})}const T="libraries.addToLibraryForm",Q=v.encloseNamespace(T);function Be(e){var o,c,f;const t=Se(),r=!t.values.library.canAddContent,i=(o=e.videoLibraries)==null?void 0:o.find(d=>d.id===t.values.library.id),a=ue.useMemo(()=>({children:e.getCategoryTree(t.values.library.id).map(m.convertNestedObjectToTree)}),[t.values.library.id]);return n.jsxs(n.Fragment,{children:[i&&n.jsx("div",{className:"alert alert-info",children:n.jsx(B,{namespace:T,phrase:"alreadyInLibrary",options:{library:t.values.library.name}})}),r&&n.jsx("p",{children:n.jsx(B,{namespace:T,phrase:"sendLibraryRequest",options:{video:e.video.name}})}),n.jsxs(ye,{children:[e.libraries.length>1&&n.jsx(z,{as:"select",label:Q("selectLibrary"),name:"library",value:((c=t.values.library)==null?void 0:c.id)??"",className:(f=t.values.library)!=null&&f.id?"":"text-secondary",showRequiredStar:!0,onChange:d=>{t.setFieldValue("folder",null);const h=d.target.value;t.setFieldValue("library",e.libraries.find(x=>x.id.toString()===h.toString()))},children:e.libraries.map(d=>n.jsx("option",{value:d.id,className:"text-dark",children:d.name},d.id))}),n.jsx(z,{label:Q("selectFolder"),name:"folder",showRequiredStar:!0,disabled:!t.values.library,children:()=>{var d;return n.jsx(Ce.Scrollbars,{autoHeight:!0,autoHeightMax:300,className:"border rounded-3",children:n.jsx(he,{tree:a,onSelect:h=>t.setFieldValue("folder",h),isDisabled:e.isFolderDisabled,disabledTooltip:v.getPhrase(T,"disabledFolder"),selectedIds:(d=t.values.folder)!=null&&d.id?[t.values.folder.id]:void 0,selectedLinkClassName:"bg-light"})})}}),!!t.values.folder&&n.jsx("p",{className:"mt-n2",children:n.jsx(B,{namespace:T,phrase:r?"requestTo":"addTo",options:{folder:t.values.folder.name}})}),r&&n.jsx(z,{label:v.getPhrase(T,"comment"),as:"textarea",name:"comment",id:"comment",placeholder:v.getPhrase(T,"commentPlaceholder"),value:t.values.comment}),n.jsxs(G,{children:[n.jsx(G.Cancel,{onClick:e.closePopup}),n.jsx(G.Submit,{variant:"dark",text:Q("addToLibrary")})]})]})]})}const Ge={sort(e){return e!=null&&e.length?e.sort((t,r)=>{const i=t.isSharedLibrary?"shared_library":t.type,a=r.isSharedLibrary?"shared_library":r.type;return i===a?t.name.localeCompare(r.name):i==="custom_library"||i==="shared_library"&&a!=="custom_library"||i==="hosted_library"&&a!=="custom_library"&&a!=="shared_library"?-1:1}):[]},hasTwigOrTigtag(e,t){if(!t)return{hasTwig:!1,hasTigtag:!1};if(!t.isAuthenticated){const a=t.contentRegion===le.UK||t.contentRegion===le.SCOT;return{hasTwig:a,hasTigtag:a}}if(!e)return{hasTwig:!1,hasTigtag:!1};let r=!1,i=!1;for(const a of e)if(a.id.toString()===ce.Libraries.TWIG?r=!0:a.id.toString()===ce.Libraries.TIGTAG&&(i=!0),r&&i)break;return{hasTwig:r,hasTigtag:i}}},Z="libraries.validation",Je=M.object().shape({comment:M.string().nullable().max(512,()=>v.getPhrase(Z,"commentExceeds")),library:M.object().required(()=>v.getPhrase(Z,"libraryRequired")).nullable(),folder:M.object().required(()=>v.getPhrase(Z,"folderRequired")).nullable()});var $=(e=>(e[e.MasterVideo=1]="MasterVideo",e[e.MasterClip=2]="MasterClip",e[e.MasterInteractive=3]="MasterInteractive",e))($||{});const U=v.encloseNamespace("shared.errorMessageHelper"),Ye={"operation-not-allowed":"operationNotAllowed","library-not-supported":"libraryNotSupported","access-denied":"accessDenied","library-access-denied":"libraryAccessDenied","library-access-denied-create":"libraryAccessDeniedCreate","library-access-denied-fulfil":"libraryAccessDeniedFulfill","library-access-denied-not-authorized":"libraryAccessDeniedNotAuthorized","library-request-access-denied":"accessDenied","library-request-access-denied-create-request":"libraryRequestAccessDeniedCreateRequest","library-request-access-denied-process-comment":"libraryRequestAccessDeniedProcessComment","customer-not-found":"customerNotFound","customer-not-found-current-user":"customerNotFound","customer-not-found-library-owner":"customerNotFoundLibraryOwner","customer-not-found-destination-library-owner":"customerNotFoundLibraryOwner","user-not-found":"userNotFound","library-not-found":"libraryNotFound","video-not-found":"videoNotFound","category-not-found":"categoryNotFound","category-not-found-destination-not-provided":"categoryNotFoundDestinationNotProvided","category-not-found-not-in-library":"categoryNotFoundInLibrary","library-request-not-found":"libraryRequestNotFound","invalid-category-path":"invalidCategoryPath","library-api-error":"somethingWentWrong","content-not-playable":"contentNotPlayable","invalid-object":"invalidObject","same-request-existed":"sameRequestExisted","unknown-error":"somethingWentWrong","no-email":"noEmailError"},ze={"create-invitation-failed":"createInvitationFailed","invitation-resend-failed":"invitationResendFailed","failed-to-accept":"failedToAccept","invitee-not-found":"inviteeNotFound","invitation-not-found":"invitationNotFound","invitation-deleted":"invitationDeleted","too-many-emails":"tooManyEmails"},Ke={libraryApiError(e){var r;const t=Ye[(r=e==null?void 0:e.responseJSON)==null?void 0:r.type];return U(t||"somethingWentWrong")},inviteColleagueError(e){var r;const t=ze[(r=e==null?void 0:e.responseJSON)==null?void 0:r.type];return U(t||"somethingWentWrong")}},y={buildOpenAppLinkUrl(e,t,r){return ve.urlBuilder(`${e}/open`,{appLink:t,product:r})},buildOpenVideoUrl(e,t,r){return y.buildOpenAppLinkUrl(e,`video:${t}`,r)},buildOpenClipUrl(e,t,r){return y.buildOpenAppLinkUrl(e,`clip:${t}`,r)},buildOpenInteractiveUrl(e,t,r){return y.buildOpenAppLinkUrl(e,`interactive:${t}`,r)},buildOpenTopicUrl(e,t,r){return y.buildOpenAppLinkUrl(e,`topic:${t}`,r)},buildOpenSeriesUrl(e,t,r){return y.buildOpenAppLinkUrl(e,`series:${t}`,r)},buildOpenPlaylistUrl(e,t,r){return y.buildOpenAppLinkUrl(e,`playlist:${t}`,r)},buildOpenCategoryUrl(e,t,r){return y.buildOpenAppLinkUrl(e,`category:${t}`,r)},buildOpenLibraryFolderUrl(e,t,r){const i=`library:${t.libraryId}:folder:${t.folderId}`;return y.buildOpenAppLinkUrl(e,i,r)}},Xe={[Y.Video]:$.MasterVideo,[Y.Clip]:$.MasterClip,[Y.Interactive]:$.MasterInteractive},Qe="libraries.addToLibrary",A=v.encloseNamespace(Qe);function mt(e){var re,ie,ne;const t=N(Ne.currentUser()),r=N(K.librariesWithCategories()),i=N(K.libraryRequestLibraries()),a=X.getVideoRequest(e.id,e.typeId),o=N(a),f=(X.isClip(o.data)||X.isInteractive(o.data))&&((re=o.data)==null?void 0:re._parentVideo),d=N(f&&ke.video(f.id)),{loading:h,handleGenerateReportError:x}=Ee(),R=N(Ae.config()),g=ue.useMemo(()=>Ge.sort(i.data),[i.data]),C=xe(),S=Fe(),_=!!t.data&&Te.getOrSetSortType(t.data.id);function P(){var p,L,D,j,k,ae,oe,se;let s=null,u=(D=J.first((L=(p=o.data)==null?void 0:p.libraries)==null?void 0:L.data))==null?void 0:D.id;if(u&&((j=o.data.categories.data)!=null&&j.length)){const F=o.data.categories.data.find(V=>{var E,q;return(q=(E=V.libraries)==null?void 0:E.data)==null?void 0:q.find(W=>W.id.toString()===u.toString())});F&&(s=F.id)}if(!u&&(u=(oe=J.first((ae=(k=d.data)==null?void 0:k.libraries)==null?void 0:ae.data))==null?void 0:oe.id,u&&((se=d.data.categories.data)!=null&&se.length))){const F=d.data.categories.data.find(V=>{var E,q;return(q=(E=V.libraries)==null?void 0:E.data)==null?void 0:q.find(W=>W.id.toString()===u.toString())});F&&(s=F.id)}return{sourceLibraryId:u?+u:null,sourceCategoryId:s?+s:null}}function w(s,u){const{sourceLibraryId:p,sourceCategoryId:L}=P(),D={objectId:e.id.toString(),objectType:Xe[e.typeId],message:s.comment,sourceLibraryId:p,destinationLibraryId:+s.library.id,metadata:{destinationCategoryId:+s.folder.id,sourceCategoryId:L}};C(K.addToLibrary(D,_)).then(()=>{s.library.canAddContent?S.success({type:de.Success,heading:"",message:A("addToLibrarySuccess",{folder:s.folder.name,video:o.data.name,escapeText:!0}),...e.folderAppLink?{appLink:{...e.folderAppLink,args:[s.library.id,s.folder.id,te.slugify(s.folder.name)]},appLinkText:A("goToFolder",{folder:s.folder.name}),appLinkClassName:"info-link"}:{extLink:y.buildOpenLibraryFolderUrl(R.data.launchUrl,{libraryId:s.library.id,folderId:s.folder.id}),extLinkText:A("goToFolder",{folder:s.folder.name}),extLinkClassName:"info-link"}}):S.success({type:de.Pending,heading:A("pendingApproval"),message:A("libraryRequestSent",{library:s.library.name,escapeText:!0})})}).catch(j=>{const k=Ke.libraryApiError(j);x(j,k,k),u()}).finally(()=>{e.closePopup()})}function H(s){var u;return(u=r.data.find(p=>p.data.id.toString()===s.toString()))==null?void 0:u.children}function l(s){var u,p;return!!((p=(u=o.data.categories)==null?void 0:u.data)!=null&&p.find(L=>L.id===s.id))}const O=i.data&&o.data&&r.data;return n.jsx(Le,{title:A("addToLibrary"),closePopup:e.closePopup,showLoadingSpinner:!O||h,children:O&&n.jsx(_e,{initialValues:{library:J.first(g),folder:null,comment:""},validationSchema:Je,onSubmit:w,children:n.jsx(Be,{libraries:g,closePopup:e.closePopup,isFolderDisabled:l,video:o.data,videoLibraries:(ne=(ie=o.data)==null?void 0:ie.libraries)==null?void 0:ne.data,getCategoryTree:H})})})}export{mt as AddToLibraryView};
2
- //# sourceMappingURL=BHYvYUqt.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BHYvYUqt.chunk.js","sources":["../../../../libs/shared/src/utils/TreeHelper.ts","../../../../libs/shared/src/components/tree/TreeNodeText.tsx","../../../../libs/shared/src/components/tree/TreeNode.tsx","../../../../libs/shared/src/components/tree/Tree.tsx","../../../../libs/shared/src/apps/libraries/components/add-to-library-form/AddToLibraryForm.tsx","../../../../libs/shared/src/apps/libraries/utils/LibraryHelper.ts","../../../../libs/shared/src/apps/libraries/validation/AddToLibraryValidationSchema.ts","../../../../libs/shared/src/enums/LibraryRequestObjectType.ts","../../../../libs/shared/src/utils/error-message-helper/ErrorMessageHelper.ts","../../../../libs/shared/src/utils/LaunchUrlHelper.ts","../../../../libs/shared/src/apps/libraries/views/add-to-library/AddToLibraryView.tsx"],"sourcesContent":["import { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { BaseObject, MasterNestedObject } from 'libs/shared/interfaces';\nimport { BaseTree } from 'libs/shared/interfaces';\n\nfunction _find<T extends BaseTree<BaseObject>>(\n node: T,\n id: string | number,\n parents: T[]\n): [ T | null, T[] ] {\n if (TextHelper.isEqual(node.id, id))\n return [ node, parents ];\n\n const children = node.children;\n\n if (!children || !children.length)\n return [ null, null ];\n\n for (let i = 0; i < children.length; i++) {\n const [ child, foundParents ] = _find(children[i] as T, id, [ ...parents, node ]);\n\n if (child)\n return [ child, foundParents ];\n }\n\n return [ null, null ];\n}\n\nexport const DEFAULT_MAX_DEPTH = 7;\n\nexport const TreeHelper = {\n find<T extends BaseTree<BaseObject>>(tree: T, id: string | number): T | null {\n if (!tree || !tree.children || !tree.children.length)\n return;\n\n for (let j = 0; j < tree.children.length; j++) {\n const [child] = _find(tree.children[j] as T, id, []);\n \n if (child)\n return child;\n }\n },\n\n getPath<T extends BaseTree<BaseObject>>(tree: T, id: string | number): T[] {\n if (!tree || !tree.children || !tree.children.length)\n return;\n\n for (let j = 0; j < tree.children.length; j++) {\n const [ , path ] = _find(tree.children[j] as T, id, []);\n \n if (path?.length)\n return path;\n }\n },\n\n getParent<T extends BaseTree<BaseObject>>(tree: T, id: string | number): T {\n const path = TreeHelper.getPath(tree, id);\n\n if (!path?.length)\n return null;\n\n return path[path.length - 1];\n },\n\n convertNestedObjectToTree<T extends BaseObject>(nestedObject: MasterNestedObject<T>): BaseTree<T> {\n const node: BaseTree<T> = {\n ...nestedObject.data,\n children: nestedObject.children\n };\n\n if (node.children?.length)\n node.children = node.children.map(TreeHelper.convertNestedObjectToTree);\n\n return node;\n },\n\n findDepth<T extends MasterNestedObject<BaseObject>>(nodes: T[], targetId: string, currentDepth: number = 0): number {\n if (!nodes || nodes.length === 0) {\n return 0;\n }\n\n let depth = 0;\n\n for (const node of nodes) {\n if (node.data?.id?.toString() === targetId.toString()) {\n return currentDepth;\n }\n\n const childDepth = TreeHelper.findDepth(node.children, targetId, currentDepth + 1);\n\n if (childDepth > 0) {\n depth = childDepth;\n break;\n }\n }\n\n return depth;\n },\n\n findMaxChildDepth<T extends BaseObject>(nodes: MasterNestedObject<T>[], currentDepth: number = 0): number {\n if (!nodes || nodes.length === 0) {\n return currentDepth;\n }\n \n let deepestLevel = currentDepth;\n \n for (const node of nodes) {\n const childLevel = TreeHelper.findMaxChildDepth(node.children, currentDepth + 1);\n deepestLevel = Math.max(deepestLevel, childLevel);\n }\n \n return deepestLevel;\n },\n\n findTargetNode<T extends BaseObject>(nodes: MasterNestedObject<T>[], targetId: string): MasterNestedObject<T> | null {\n if (!nodes || nodes.length === 0) {\n return null;\n }\n \n for (const node of nodes) {\n if (node.data?.id?.toString() === targetId.toString()) {\n return node;\n }\n \n const result = TreeHelper.findTargetNode(node.children, targetId);\n if (result !== null) {\n return result;\n }\n }\n \n return null;\n },\n\n isMaxDepth<T extends MasterNestedObject<BaseObject>>(\n nodes: T[],\n sourceId: string,\n targetId: string,\n maxDepth: number = DEFAULT_MAX_DEPTH\n ): boolean {\n const sourceTree = TreeHelper.findTargetNode(nodes, sourceId);\n const maxChildDepth = TreeHelper.findMaxChildDepth(sourceTree.children);\n const targetDepth = TreeHelper.findDepth(nodes, targetId);\n \n return maxChildDepth + targetDepth >= maxDepth;\n },\n\n flatten<T>(\n tree: BaseTree<T>\n ): T[] {\n if (!tree)\n return [];\n\n const nodes: T[] = [];\n\n function pushNode(node: BaseTree<T>): void {\n nodes.push(ObjectHelper.omit(node, ['children']));\n node.children.forEach(pushNode);\n }\n\n tree.children.forEach(pushNode);\n\n return nodes;\n }\n};","import React from 'react';\n\nimport { BaseObject } from 'libs/analytics/interfaces';\n\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseTree } from 'libs/shared/interfaces';\n\nimport styles from './tree.module.scss';\n\ninterface TreeNodeTextProps<T extends BaseTree<BaseObject>> {\n tree: T;\n text: string;\n className?: string;\n isDisabled?: boolean;\n disabledTooltip?: string | ((tree: T) => string);\n}\n\nexport function TreeNodeText<T extends BaseTree<BaseObject>>(props: TreeNodeTextProps<T>): React.ReactElement {\n function getTextClass(): string {\n let textClassName = `${styles.text} clamp-4`;\n\n if (props.className)\n textClassName += ` ${props.className}`;\n\n return textClassName;\n }\n\n if (props.isDisabled) {\n const disabledToolTip = typeof props.disabledTooltip === 'string' ?\n props.disabledTooltip :\n props.disabledTooltip?.(props.tree);\n\n return (\n <Tooltip title={disabledToolTip} spanHack spanHackClassName='d-inline-block flex-grow-1'>\n <span className={`${getTextClass()} text-secondary ${styles.disabled}`}>\n {props.text}\n </span>\n </Tooltip>\n );\n }\n\n return (\n <div className={getTextClass()}>\n {props.text}\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Actions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { BaseTree } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nimport { Tree } from './Tree';\nimport { TreeNodeText } from './TreeNodeText';\n\nimport styles from './tree.module.scss';\n\nconst TREE_ACTIONS_CLASS = 'tree-actions';\n\nexport interface TreeNodeAction<T extends BaseTree<BaseObject>> {\n label: string;\n getAppLink: (node: T) => Core.AppLink;\n className?: string;\n}\n\ninterface TreeNodeProps<T extends BaseTree<BaseObject>> {\n tree: T;\n selectedIds?: string[];\n getAppLink?: (item: T) => Core.AppLink;\n onSelect?: (item: T) => void;\n isDisabled?: (item: T) => boolean;\n isClickDisabled?: (item: T) => boolean;\n actions?: TreeNodeAction<T>[];\n selectedLinkClassName?: string;\n disabledTooltip?: string | ((tree: T) => string);\n isRoot?: boolean;\n isDropdown?: boolean;\n multiSelect?: boolean;\n depth: number;\n openDepth?: number;\n maxDisplayDepth?: number;\n}\n\nTreeNode.defaultProps = {\n selectedLinkClassName: styles.selected\n};\n\nexport function TreeNode<T extends BaseTree<BaseObject>>(props: TreeNodeProps<T>): React.ReactElement {\n const { tree, selectedIds, getAppLink, onSelect, isDisabled, isClickDisabled, actions, isDropdown } = props;\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n // If one of our children is selected\n const isParentOfSelected = React.useMemo(() => {\n return selectedIds?.some(id => TreeHelper.find(tree, id));\n }, [ tree, selectedIds ]);\n\n // Or we are below the initial open depth\n const initiallyOpen = props.openDepth && props.depth < props.openDepth;\n\n // We render expanded initially\n const [ isExpanded, setIsExpanded ] = React.useState(isParentOfSelected || initiallyOpen);\n\n const isSelected = selectedIds?.some(id => TextHelper.isEqual(tree.id, id));\n let hasChildren = !!tree.children && !!tree.children.length;\n\n if (props.maxDisplayDepth && hasChildren)\n hasChildren = props.depth < props.maxDisplayDepth;\n\n /**\n * We need to stop propagation of our event if our tree is rendered\n * inside of a bootstrap dropdown - Sha\n */\n React.useEffect(() => {\n if (!ref.current || !isDropdown)\n return;\n\n const onClick = (e: Event) => {\n e.stopPropagation();\n onSelectNode();\n };\n\n ref.current.addEventListener('click', onClick);\n return () => {\n if (!ref.current)\n return;\n\n ref.current.removeEventListener('click', onClick);\n };\n }, [ ref.current, onSelect ]);\n\n /**\n * Check if an expanded item should actually be collapsed\n */\n React.useEffect(() => {\n // Don't do auto collapsing for trees that support multiple selections\n if (props.multiSelect)\n return;\n\n // Skip item if it's already collapsed\n if (!isExpanded)\n return;\n\n // Parents of a selected item should remain expanded\n if (isParentOfSelected)\n return;\n\n // Selected items should remain expanded\n if (isSelected)\n return;\n\n // Disabled items can be expanded if nothing has been selected\n if (!props.selectedIds?.length && isDisabled?.(props.tree))\n return;\n\n // If we want it to be initially open\n if (initiallyOpen)\n return;\n\n setIsExpanded(false);\n }, [selectedIds]);\n\n function onSelectNode(): void {\n if (isClickDisabled?.(tree))\n return;\n\n if (!props.multiSelect)\n setIsExpanded(!isExpanded);\n\n if (getAppLink) {\n Core.AppLinkHelper.trigger(getAppLink(tree));\n return;\n }\n\n if (isDisabled?.(tree)) {\n onSelect(null);\n return;\n }\n\n onSelect?.(tree);\n }\n\n function onClickCaret(e: any): void {\n e.stopPropagation();\n\n if (props.multiSelect) {\n setIsExpanded(!isExpanded);\n return;\n }\n\n onSelectNode();\n }\n\n function getNodeClass(): string {\n let className = `py-1 d-flex align-items-center w-100 position-relative ${styles.node}`;\n\n if (isSelected)\n className += ' ' + props.selectedLinkClassName;\n\n if (!actions?.length)\n className += ' ' + styles.noActions;\n\n if (isParentOfSelected && props.multiSelect)\n className += ' text-underline fst-italic';\n\n return className;\n }\n\n if (props.maxDisplayDepth && (props.depth > props.maxDisplayDepth))\n return <></>;\n\n return (\n <li className={`position-relative ${isExpanded ? '' : styles.collapsed} ${props.isRoot ? styles.root : ''}`}>\n <div className='position-relative'>\n <DivButton\n className={getNodeClass()}\n onClick={isDropdown ? null : onSelectNode}\n ref={ref}\n >\n {hasChildren && (\n <div className={styles.chevron} onClick={onClickCaret}>\n <Caret direction={isExpanded ? 'down' : 'right'} />\n </div>\n )}\n\n <TreeNodeText\n tree={tree}\n // Always prefer name over description\n text={tree.name || tree.description}\n isDisabled={isDisabled?.(tree) || isClickDisabled?.(tree)}\n disabledTooltip={props.disabledTooltip}\n />\n </DivButton>\n\n {!!props.actions && (\n <Actions\n className={styles.actions}\n actions={actions?.map(a => ({ ...a, appLink: a.getAppLink(tree) }))}\n actionsDropdownClassName={`btn btn-light ${TREE_ACTIONS_CLASS} py-0`}\n />\n )}\n\n {isExpanded && <Tree key={tree.id} {...props} isChild depth={props.depth + 1} />}\n </div>\n </li>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { BaseTree } from 'libs/shared/interfaces';\n\nimport { TreeNode, TreeNodeAction } from './TreeNode';\n\nimport styles from './tree.module.scss';\n\nexport interface TreeProps<T extends BaseTree<BaseObject>> {\n tree: T;\n selectedIds?: string[];\n getAppLink?: (item: T) => Core.AppLink;\n onSelect?: (item: T) => void;\n isDisabled?: (item: T) => boolean;\n isClickDisabled?: (item: T) => boolean;\n actions?: TreeNodeAction<T>[];\n selectedLinkClassName?: string;\n disabledTooltip?: string | ((tree: T) => string);\n isChild?: boolean;\n depth?: number;\n multiSelect?: boolean;\n /**\n * Set to true if you are using this component inside of\n * a bootstrap dropdown menu and don't want it to close\n * on click events - Sha\n */\n isDropdown?: boolean;\n /**\n * If you want to initially render open to a certain depth\n */\n openDepth?: number;\n maxDisplayDepth?: number;\n}\n\nexport function Tree<T extends BaseTree<BaseObject>>(props: TreeProps<T>): React.ReactElement {\n const { tree, ...childProps } = props;\n\n if (!tree || !tree.children)\n return <></>;\n\n return (\n <ul className={`m-0 p-0 list-unstyled ${styles.tree}`}>\n {tree.children.map((child, key) => (\n <TreeNode key={key} tree={child} {...childProps} isRoot={!props.isChild} depth={props.depth || 0} />\n ))}\n </ul>\n );\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AddToLibraryFormValues } from 'libs/shared/apps/libraries/views/add-to-library/AddToLibraryView';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tree } from 'libs/shared/components/tree/Tree';\nimport { BaseTree, Folder, Library, LibraryTree, PopupViewProps, VideoTypes } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nconst namespace = 'libraries.addToLibraryForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToLibraryFormProps extends PopupViewProps {\n libraries: Library[];\n isFolderDisabled: (folder: BaseTree<Folder>) => boolean;\n video: VideoTypes;\n videoLibraries?: Library[];\n getCategoryTree: (libraryId: string) => LibraryTree[];\n}\n\nexport function AddToLibraryForm(props: AddToLibraryFormProps): JSX.Element {\n const formikProps = useFormikContextWrapper<AddToLibraryFormValues>();\n\n const isMakingLibraryRequest = !formikProps.values.library.canAddContent;\n const isAlreadyInLibrary = props.videoLibraries?.find(l => l.id === formikProps.values.library.id);\n\n const tree = React.useMemo(() => {\n const categoryTree = props.getCategoryTree(formikProps.values.library.id);\n\n const rootBranches = categoryTree.map(TreeHelper.convertNestedObjectToTree);\n\n return {\n children: rootBranches\n } as BaseTree<Library>;\n }, [formikProps.values.library.id]);\n\n return (\n <>\n {isAlreadyInLibrary && (\n <div className='alert alert-info'>\n <Text namespace={namespace} phrase='alreadyInLibrary' options={{ library: formikProps.values.library.name }} />\n </div>\n )}\n\n {isMakingLibraryRequest && (\n <p>\n <Text namespace={namespace} phrase='sendLibraryRequest' options={{ video: props.video.name }} />\n </p>\n )}\n\n <Form>\n {props.libraries.length > 1 && (\n <FormField\n as='select'\n label={getPhrase('selectLibrary')}\n name='library'\n value={formikProps.values.library?.id ?? ''}\n className={!formikProps.values.library?.id ? 'text-secondary' : ''}\n showRequiredStar\n onChange={(e: any) => {\n formikProps.setFieldValue('folder', null);\n\n const libraryId = e.target.value;\n\n formikProps.setFieldValue('library', props.libraries.find(l => l.id.toString() === libraryId.toString()));\n }}\n >\n {props.libraries.map(library => (\n <option key={library.id} value={library.id} className='text-dark'>\n {library.name}\n </option>\n ))}\n </FormField>\n )}\n\n <FormField\n label={getPhrase('selectFolder')}\n name='folder'\n showRequiredStar\n disabled={!formikProps.values.library}\n >\n {() => (\n <Scrollbars autoHeight autoHeightMax={300} className='border rounded-3'>\n <Tree\n tree={tree}\n onSelect={(folder: Folder) => formikProps.setFieldValue('folder', folder)}\n isDisabled={props.isFolderDisabled}\n disabledTooltip={LanguageService.getPhrase(namespace, 'disabledFolder')}\n selectedIds={formikProps.values.folder?.id ? [formikProps.values.folder.id] : undefined}\n selectedLinkClassName='bg-light'\n />\n </Scrollbars>\n )}\n </FormField>\n \n {!!formikProps.values.folder && (\n <p className='mt-n2'>\n <Text\n namespace={namespace}\n phrase={isMakingLibraryRequest ? 'requestTo' : 'addTo'}\n options={{ folder: formikProps.values.folder.name }}\n />\n </p>\n )}\n\n {isMakingLibraryRequest && (\n <FormField\n label={LanguageService.getPhrase(namespace, 'comment')}\n as='textarea'\n name='comment'\n id='comment'\n placeholder={LanguageService.getPhrase(namespace, 'commentPlaceholder')}\n value={formikProps.values.comment}\n />\n )}\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit variant='dark' text={getPhrase('addToLibrary')} />\n </PopupButtons>\n </Form>\n </>\n );\n}","import { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { CurrentUser, Library } from 'libs/shared/interfaces';\n\ntype LibraryTypes = Library['type'] | 'shared_library';\n\nexport const LibraryHelper = {\n /**\n * Orders libraries by type (custom -> shared -> hosted).\n * Also orders libraries of same type alphabetically.\n */\n sort(libraries: Library[]): Library[] {\n if (!libraries?.length)\n return [];\n\n return libraries.sort((a: Library, b: Library) => {\n // This is required because shared libraries have a type of `custom_library`\n const aType: LibraryTypes = a.isSharedLibrary ? 'shared_library' : a.type;\n const bType: LibraryTypes = b.isSharedLibrary ? 'shared_library' : b.type;\n \n if (aType === bType)\n return a.name.localeCompare(b.name);\n \n if (aType === 'custom_library')\n return -1;\n \n if (aType === 'shared_library' && bType !== 'custom_library')\n return -1;\n\n if (aType === 'hosted_library' && bType !== 'custom_library' && bType !== 'shared_library')\n return -1;\n \n return 1;\n });\n },\n\n hasTwigOrTigtag(libraries: Library[], currentUser: CurrentUser) {\n if (!currentUser)\n return { hasTwig: false, hasTigtag: false };\n\n // Anon users can see Twig/Tigtag if they're in England.\n if (!currentUser.isAuthenticated) {\n const hasAnonAccess = (\n currentUser.contentRegion === ContentRegion.UK ||\n currentUser.contentRegion === ContentRegion.SCOT\n );\n\n return {\n hasTwig: hasAnonAccess,\n hasTigtag: hasAnonAccess\n };\n }\n\n if (!libraries)\n return { hasTwig: false, hasTigtag: false };\n \n let hasTwig = false;\n let hasTigtag = false;\n\n for (const lib of libraries) {\n if (lib.id.toString() === HardCoded.Libraries.TWIG)\n hasTwig = true;\n else if (lib.id.toString() === HardCoded.Libraries.TIGTAG)\n hasTigtag = true;\n\n // If both are true we don't need to keep searching\n if (hasTwig && hasTigtag)\n break;\n }\n\n return { hasTwig, hasTigtag };\n }\n};","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'libraries.validation';\n\nexport const AddToLibraryValidationSchema = object().shape({\n comment: string()\n .nullable()\n .max(512, () => LanguageService.getPhrase(namespace, 'commentExceeds')),\n library: object()\n .required(() => LanguageService.getPhrase(namespace, 'libraryRequired'))\n .nullable(),\n folder: object()\n .required(() => LanguageService.getPhrase(namespace, 'folderRequired'))\n .nullable()\n});","export enum LibraryRequestObjectType {\n MasterVideo = 1,\n MasterClip = 2,\n MasterInteractive = 3\n}","import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { InviteColleagueXhr, LibraryApiXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\n\nconst getPhrase = LanguageService.encloseNamespace('shared.errorMessageHelper');\n\nconst LIBRARY_ERROR_PHRASE_MAPPING = {\n 'operation-not-allowed': 'operationNotAllowed',\n 'library-not-supported': 'libraryNotSupported',\n 'access-denied': 'accessDenied',\n 'library-access-denied': 'libraryAccessDenied',\n 'library-access-denied-create': 'libraryAccessDeniedCreate',\n 'library-access-denied-fulfil': 'libraryAccessDeniedFulfill',\n 'library-access-denied-not-authorized': 'libraryAccessDeniedNotAuthorized',\n 'library-request-access-denied': 'accessDenied',\n 'library-request-access-denied-create-request': 'libraryRequestAccessDeniedCreateRequest',\n 'library-request-access-denied-process-comment': 'libraryRequestAccessDeniedProcessComment',\n 'customer-not-found': 'customerNotFound',\n 'customer-not-found-current-user': 'customerNotFound',\n 'customer-not-found-library-owner': 'customerNotFoundLibraryOwner',\n 'customer-not-found-destination-library-owner': 'customerNotFoundLibraryOwner',\n 'user-not-found': 'userNotFound',\n 'library-not-found': 'libraryNotFound',\n 'video-not-found': 'videoNotFound',\n 'category-not-found': 'categoryNotFound',\n 'category-not-found-destination-not-provided': 'categoryNotFoundDestinationNotProvided',\n 'category-not-found-not-in-library': 'categoryNotFoundInLibrary',\n 'library-request-not-found': 'libraryRequestNotFound',\n 'invalid-category-path': 'invalidCategoryPath',\n 'library-api-error': 'somethingWentWrong',\n 'content-not-playable': 'contentNotPlayable',\n 'invalid-object': 'invalidObject',\n 'same-request-existed': 'sameRequestExisted',\n 'unknown-error': 'somethingWentWrong',\n 'no-email': 'noEmailError'\n};\n\nconst INVITE_COLLEAGUE_PHRASE_MAPPING = {\n 'create-invitation-failed': 'createInvitationFailed',\n 'invitation-resend-failed': 'invitationResendFailed',\n 'failed-to-accept': 'failedToAccept',\n 'invitee-not-found': 'inviteeNotFound',\n 'invitation-not-found': 'invitationNotFound',\n 'invitation-deleted': 'invitationDeleted',\n 'too-many-emails': 'tooManyEmails'\n};\n\nexport const ErrorMessageHelper = {\n libraryApiError(xhr: LibraryApiXhr): string {\n const phrase = LIBRARY_ERROR_PHRASE_MAPPING[xhr?.responseJSON?.type];\n\n if (!phrase)\n return getPhrase('somethingWentWrong');\n\n return getPhrase(phrase);\n },\n inviteColleagueError(xhr: InviteColleagueXhr): string {\n const phrase = INVITE_COLLEAGUE_PHRASE_MAPPING[xhr?.responseJSON?.type];\n\n if (!phrase)\n return getPhrase('somethingWentWrong');\n\n return getPhrase(phrase);\n }\n};\n\nexport const ErrorMessageHelperValidation = {\n libraryApiErrors(): void {\n Object.values(LIBRARY_ERROR_PHRASE_MAPPING).forEach(value => {\n const phrase = getPhrase(value);\n\n if (!phrase)\n Core.ErrorHelper.throw(new DevError(`No language mapping found for library api error type: ${value}`));\n });\n },\n inviteColleagueErrors(): void {\n Object.values(INVITE_COLLEAGUE_PHRASE_MAPPING).forEach(value => {\n const phrase = getPhrase(value);\n\n if (!phrase)\n Core.ErrorHelper.throw(new DevError(`No language mapping found for library api error type: ${value}`));\n });\n }\n};","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\ninterface OpenLibraryFolderParams {\n libraryId: string;\n folderId: string;\n}\n\nexport const LaunchUrlHelper = {\n buildOpenAppLinkUrl(baseLaunchUrl: string, appLink: string, product?: string): string {\n return UrlHelper.urlBuilder(`${baseLaunchUrl}/open`, { appLink, product });\n },\n\n buildOpenVideoUrl(baseLaunchUrl: string, videoId: string, product?: string): string {\n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, `video:${videoId}`, product);\n },\n\n buildOpenClipUrl(baseLaunchUrl: string, clipId: string, product?: string): string {\n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, `clip:${clipId}`, product);\n },\n\n buildOpenInteractiveUrl(baseLaunchUrl: string, interactiveId: string, product?: string): string {\n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, `interactive:${interactiveId}`, product);\n },\n\n buildOpenTopicUrl(baseLaunchUrl: string, topicId: string, product?: string): string {\n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, `topic:${topicId}`, product);\n },\n\n buildOpenSeriesUrl(baseLaunchUrl: string, seriesId: string, product?: string): string {\n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, `series:${seriesId}`, product);\n },\n\n buildOpenPlaylistUrl(baseLaunchUrl: string, playlistId: string, product?: string): string {\n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, `playlist:${playlistId}`, product);\n },\n\n buildOpenCategoryUrl(baseLaunchUrl: string, categoryId: string, product?: string): string {\n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, `category:${categoryId}`, product);\n },\n\n buildOpenLibraryFolderUrl(baseLaunchUrl: string, params: OpenLibraryFolderParams, product?: string): string {\n const appLink = `library:${params.libraryId}:folder:${params.folderId}`;\n \n return LaunchUrlHelper.buildOpenAppLinkUrl(baseLaunchUrl, appLink, product);\n }\n};","import React from 'react';\n\nimport { 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/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AddToLibraryForm } from 'libs/shared/apps/libraries/components/add-to-library-form/AddToLibraryForm';\nimport { LibraryHelper } from 'libs/shared/apps/libraries/utils/LibraryHelper';\nimport { AddToLibraryValidationSchema } from 'libs/shared/apps/libraries/validation/AddToLibraryValidationSchema';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { LibraryRequestObjectType } from 'libs/shared/enums/LibraryRequestObjectType';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { BaseTree, Clip, Config, CurrentUser, Folder, InteractiveMetadata, Library, LibraryTree, PopupViewProps, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { AddToLibraryRequest } from 'libs/shared/interfaces/requests/AddToLibraryRequest';\nimport { LibraryApiXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\nimport { ErrorMessageHelper } from 'libs/shared/utils/error-message-helper/ErrorMessageHelper';\nimport { LaunchUrlHelper } from 'libs/shared/utils/LaunchUrlHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nexport interface AddToLibraryFormValues {\n library: Library;\n folder: Folder;\n comment?: string;\n}\n\ntype LibraryObjectType = MasterType.Video | MasterType.Clip | MasterType.Interactive;\n\ntype ObjectTypeMap = {\n [K in LibraryObjectType]: LibraryRequestObjectType;\n};\n\nconst OBJECT_TYPE_MAP: ObjectTypeMap = {\n [MasterType.Video]: LibraryRequestObjectType.MasterVideo,\n [MasterType.Clip]: LibraryRequestObjectType.MasterClip,\n [MasterType.Interactive]: LibraryRequestObjectType.MasterInteractive\n};\n\nconst namespace = 'libraries.addToLibrary';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToLibraryViewProps extends PopupViewProps {\n id: string;\n typeId: MasterType;\n folderAppLink?: Core.AppLink;\n}\n\nexport function AddToLibraryView(props: AddToLibraryViewProps): JSX.Element {\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const librariesWithCategories = Flight.useBasicFetch<LibraryTree[]>(LibraryRequests.librariesWithCategories());\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.libraryRequestLibraries());\n\n const videoRequest = VideoHelper.getVideoRequest(props.id, props.typeId);\n const video = Flight.useBasicFetch<VideoTypes>(videoRequest);\n\n const isClipOrInteractive = VideoHelper.isClip(video.data) || VideoHelper.isInteractive(video.data);\n const parentVideo = isClipOrInteractive && (video.data as Clip | InteractiveMetadata)?._parentVideo;\n const parentVideoDetails = Flight.useBasicFetch<Video>(\n parentVideo && VideoRequests.video(parentVideo.id)\n );\n\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const sortedLibraries = React.useMemo(() => LibraryHelper.sort(libraries.data), [libraries.data]);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id);\n\n /**\n * We try to pull the library and category id off the video/clip/interactive.\n * If we can't, then we try to get them off the _parentVideo. \n */\n function getSourceIds() {\n let sourceCategoryId: string = null;\n let sourceLibraryId = ArrayHelper.first(video.data?.libraries?.data)?.id;\n\n if (sourceLibraryId && video.data.categories.data?.length) {\n const category = video.data.categories.data.find(category => {\n return category.libraries?.data?.find(l => l.id.toString() === sourceLibraryId.toString());\n });\n\n if (category)\n sourceCategoryId = category.id;\n }\n\n if (!sourceLibraryId) {\n sourceLibraryId = ArrayHelper.first(parentVideoDetails.data?.libraries?.data)?.id;\n\n if (sourceLibraryId && parentVideoDetails.data.categories.data?.length) {\n const category = parentVideoDetails.data.categories.data.find(category => {\n return category.libraries?.data?.find(l => l.id.toString() === sourceLibraryId.toString());\n });\n \n if (category)\n sourceCategoryId = category.id;\n }\n }\n\n return {\n sourceLibraryId: sourceLibraryId ? +sourceLibraryId : null,\n sourceCategoryId: sourceCategoryId ? +sourceCategoryId : null\n };\n }\n\n function addToLibrary(data: AddToLibraryFormValues, onDone: () => void): void {\n const { sourceLibraryId, sourceCategoryId } = getSourceIds();\n\n const request: AddToLibraryRequest = {\n objectId: props.id.toString(),\n objectType: OBJECT_TYPE_MAP[props.typeId as LibraryObjectType],\n message: data.comment,\n sourceLibraryId,\n destinationLibraryId: +data.library.id,\n metadata: {\n destinationCategoryId: +data.folder.id,\n sourceCategoryId\n }\n };\n\n fetchAsync(LibraryRequests.addToLibrary(request, sort))\n .then(() => {\n if (!data.library.canAddContent) {\n alerts.success({\n type: AlertType.Pending,\n heading: getPhrase('pendingApproval'),\n message: getPhrase('libraryRequestSent', { library: data.library.name, escapeText: true })\n });\n } else {\n alerts.success({\n type: AlertType.Success,\n heading: '',\n message: getPhrase('addToLibrarySuccess', { folder: data.folder.name, video: video.data.name, escapeText: true }),\n ...(props.folderAppLink ? {\n appLink: {\n ...props.folderAppLink,\n args: [ data.library.id, data.folder.id, TextHelper.slugify(data.folder.name) ]\n },\n appLinkText: getPhrase('goToFolder', { folder: data.folder.name }),\n appLinkClassName: 'info-link'\n } : {\n extLink: LaunchUrlHelper.buildOpenLibraryFolderUrl(config.data.launchUrl, {\n libraryId: data.library.id,\n folderId: data.folder.id\n }),\n extLinkText: getPhrase('goToFolder', { folder: data.folder.name }),\n extLinkClassName: 'info-link'\n })\n });\n }\n })\n .catch((xhr: LibraryApiXhr) => {\n const errorMessage = ErrorMessageHelper.libraryApiError(xhr);\n handleGenerateReportError(xhr, errorMessage, errorMessage);\n onDone();\n })\n .finally(() => {\n props.closePopup();\n });\n }\n\n function getCategoryTree(libraryId: string): LibraryTree[] {\n return librariesWithCategories.data.find(l => l.data.id.toString() === libraryId.toString())?.children;\n }\n\n function isFolderDisabled(folder: BaseTree<Folder>): boolean {\n return !!video.data.categories?.data?.find(category => category.id === folder.id);\n }\n\n const dataLoaded = (\n libraries.data &&\n video.data &&\n librariesWithCategories.data\n );\n\n return (\n <Popup title={getPhrase('addToLibrary')} closePopup={props.closePopup} showLoadingSpinner={!dataLoaded || loading}>\n {dataLoaded && (\n <FormWrapper<AddToLibraryFormValues>\n initialValues={{\n library: ArrayHelper.first(sortedLibraries),\n folder: null,\n comment: ''\n }}\n validationSchema={AddToLibraryValidationSchema}\n onSubmit={addToLibrary}\n >\n <AddToLibraryForm\n libraries={sortedLibraries}\n closePopup={props.closePopup}\n isFolderDisabled={isFolderDisabled}\n video={video.data}\n videoLibraries={video.data?.libraries?.data}\n getCategoryTree={getCategoryTree}\n />\n </FormWrapper>\n )}\n </Popup>\n );\n}"],"names":["_find","node","id","parents","TextHelper","children","i","child","foundParents","DEFAULT_MAX_DEPTH","TreeHelper","tree","j","path","nestedObject","_a","nodes","targetId","currentDepth","depth","_b","childDepth","deepestLevel","childLevel","result","sourceId","maxDepth","sourceTree","maxChildDepth","targetDepth","pushNode","ObjectHelper","TreeNodeText","props","getTextClass","textClassName","styles","disabledToolTip","jsx","Tooltip","TREE_ACTIONS_CLASS","TreeNode","selectedIds","getAppLink","onSelect","isDisabled","isClickDisabled","actions","isDropdown","ref","React.useRef","isParentOfSelected","React.useMemo","initiallyOpen","isExpanded","setIsExpanded","React.useState","isSelected","hasChildren","React.useEffect","onClick","e","onSelectNode","Core.AppLinkHelper","onClickCaret","getNodeClass","className","Fragment","jsxs","DivButton","Caret","Actions","a","Tree","childProps","key","namespace","getPhrase","LanguageService","AddToLibraryForm","formikProps","useFormikContextWrapper","isMakingLibraryRequest","isAlreadyInLibrary","l","React","Text","Form","FormField","_c","libraryId","library","Scrollbars","folder","PopupButtons","LibraryHelper","libraries","b","aType","bType","currentUser","hasAnonAccess","ContentRegion","hasTwig","hasTigtag","lib","HardCoded","AddToLibraryValidationSchema","object","string","LibraryRequestObjectType","LIBRARY_ERROR_PHRASE_MAPPING","INVITE_COLLEAGUE_PHRASE_MAPPING","ErrorMessageHelper","xhr","phrase","LaunchUrlHelper","baseLaunchUrl","appLink","product","UrlHelper","videoId","clipId","interactiveId","topicId","seriesId","playlistId","categoryId","params","OBJECT_TYPE_MAP","MasterType","AddToLibraryView","user","Flight.useBasicFetch","UserRequests","librariesWithCategories","LibraryRequests","videoRequest","VideoHelper","video","parentVideo","parentVideoDetails","VideoRequests","loading","handleGenerateReportError","useVerifiedEmailRequiredErrorHandler","config","ConfigRequests","sortedLibraries","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","sort","VideoSortHelper","getSourceIds","sourceCategoryId","sourceLibraryId","ArrayHelper","_d","category","_g","_f","_e","_h","addToLibrary","data","onDone","request","AlertType","errorMessage","getCategoryTree","isFolderDisabled","dataLoaded","Popup","FormWrapper"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{L as v,aJ as L,az as R,j as a,a0 as O,B as x,x as D,a1 as X,a2 as C,a3 as Z,P as S,bK as ee,a4 as ae,aa as U,aQ as k,ab as E,ac as Y,ad as B,ae as V}from"./app-BOVAF25L.js";import{l as o,F as h,a as se}from"./D7pbmK0q.chunk.js";import{I as M}from"./CJ3oIQlG.chunk.js";import{u as ne}from"./B-DrhpV6.chunk.js";import{u as te}from"./DlrCPMdZ.chunk.js";import{a as oe,T as I}from"./W5aHBnKW.chunk.js";import{g as $}from"./BAJmnmDG.chunk.js";import{F as re}from"./CC6EHIeg.chunk.js";import"./DzdwUdxf.chunk.js";var G=(e=>(e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705",e.MarcFormatDifferences="48276917260441",e.ExportLibraries="17684275853465",e.StudentSharingGuide="50326395499417",e.Sharing="49512742828953",e))(G||{}),H=(e=>(e[e.BbcRes=0]="BbcRes",e))(H||{});const ie="tv.requestProgramValidation",f=v.encloseNamespace(ie);function ce(e){return e?o.object().shape({channelId:o.string().required(f("channelRequired")),title:o.string().required(f("programRequired")),broadcastDate:o.string().required(f("dateRequired")),broadcastTime:o.string().required(f("timeRequired")),closedCaptions:o.string(),comments:o.string()}):o.object().shape({title:o.string().required(f("programRequired")),comments:o.string()})}const g="tv.requestProgramForm",r=v.encloseNamespace(g);function le(e){const c=L(),b=R.format(R.add(new Date,4,"days"),"YYYY-MM-DD"),i=R.format(R.add(b,11,"days"),"YYYY-MM-DD"),s=$(e.instanceRegion);return a.jsxs(O,{children:[e.channels&&a.jsxs(h,{as:"select",label:r("channelLabel"),name:"channelId",value:c.values.channelId,showRequiredStar:!0,children:[a.jsx("option",{value:"",children:v.getPhrase(g,"channelPlaceholder")},0),e.channels.map(l=>a.jsx("option",{value:l.id,children:`${l.name} - (${l.number})`},l.id))]}),a.jsx(h,{label:r("programLabel"),placeholder:r("programPlaceholder"),type:"text",name:"title",value:c.values.title,showRequiredStar:!0}),e.channels&&a.jsxs("div",{className:"d-flex",children:[a.jsx("div",{className:"w-50 me-2",children:a.jsx(h,{label:r("broadcastDateLabel"),type:"date",name:"broadcastDate",value:c.values.broadcastDate,min:b,max:i,showRequiredStar:!0})}),a.jsx("div",{className:"w-50",children:a.jsx(h,{label:r("broadcastTimeLabel"),type:"time",name:"broadcastTime",value:c.values.broadcastTime,className:"mb-0",showRequiredStar:!0})})]}),a.jsx("p",{className:"mt-n1",children:a.jsx("small",{children:a.jsx(x,{namespace:g,phrase:s.programGuidePhraseKey})})}),e.channels&&a.jsxs("div",{className:"d-flex",children:[a.jsx("div",{className:"w-50 me-2",children:a.jsxs(h,{as:"select",label:r("ccLabel"),name:"closedCaptions",value:c.values.closedCaptions,children:[a.jsx("option",{value:"",children:v.getPhrase(g,"ccNo")}),a.jsx("option",{value:"yes",children:v.getPhrase(g,"ccYes")})]})}),a.jsx("div",{className:"w-50"})]}),a.jsx(h,{label:r(e.channels?"commentsLabel":"additionalInfoLabel"),placeholder:r(e.channels?"commentsPlaceholder":"additionalInfoPlaceholder"),type:"text",name:"comments",value:c.values.comments}),a.jsx("p",{children:a.jsx(x,{namespace:g,phrase:"note",options:{tv:s.tv}})}),a.jsxs(D,{children:[a.jsx(D.Cancel,{text:r("cancel"),onClick:e.onClickCancel,variant:"link"}),a.jsx(re,{variant:"dark",submitText:r("request")})]})]})}const de={channelId:"",title:"",broadcastDate:"",broadcastTime:"",closedCaptions:"",comments:""},p="tv.requestProgram",P=v.encloseNamespace(p);function Pe(e){const c=X(),b=ne(),i=e.instanceRegion===M.AU,s=C(ae.currentUser()),l=e.instanceRegion===M.UK,y=C(l&&Z.customer(s.data.customerId)),q=C(i&&I.payTvChannels()),d=$(e.instanceRegion);function K(){e.closePopup()}const{loading:W,handleGenerateReportError:z}=te();function J(n){var m;if(i){const t=(m=q.data)==null?void 0:m.find(j=>String(j.id)===n.channelId);b.success(P("successChannel",{tv:d.tv,program:n.title,channel:t==null?void 0:t.name})),U.logUserAction({channel:t.id,name:t.name,program:n.title,region:e.region},{actionType:V.Submit,entity:B.Video,location:Y.Popup,workflowPhase:E.Complete,descriptor:k.RequestProgram})}else b.success(P("successNoChannel",{tv:d.tv,program:n.title})),U.logUserAction({program:n.title,region:e.region},{actionType:V.Submit,entity:B.Video,location:Y.Popup,workflowPhase:E.Complete,descriptor:k.RequestProgram})}function Q(n){var T,w,F,N;const{broadcastDate:m,broadcastTime:t,closedCaptions:j,...u}=n;return l?{title:u.title,comments:u.comments,crmId:y.data.crmId,customerName:y.data.name,email:s.data.email,type:H.BbcRes,username:s.data.username}:i?{...u,closedCaptions:!!j,regionCode:e.region,programDateTime:`${m}T${t}`,userId:(T=s.data)==null?void 0:T.id,customerId:(w=s.data)==null?void 0:w.customerId}:{...u,regionCode:e.region,userId:(F=s.data)==null?void 0:F.id,customerId:(N=s.data)==null?void 0:N.customerId}}async function _(n,m){const t=Q(n),j=l?I.requestProgramUk(t):I.requestProgram(t);try{await c(j),m(),J(n)}catch(u){z(u,P("error"),P("noEmailError"))}e.closePopup()}const A=s.hasCompleted&&(i&&q.hasCompleted||!i);return a.jsxs(S,{title:P("title",{tv:d.tv}),closePopup:e.closePopup,showLoadingSpinner:!A||W,children:[oe.isHolidayPeriod()&&a.jsxs("div",{className:"alert alert-warning",role:"alert",children:[a.jsx("h3",{className:"h5",children:a.jsx(x,{namespace:p,phrase:"requestAlertHeading"})}),a.jsx("p",{className:"m-0",children:a.jsx(x,{namespace:p,phrase:"requestAlertBody",options:{tv:d.tv}})})]}),a.jsx("p",{children:a.jsx(x,{namespace:p,phrase:"description",options:{tv:d.tv}})}),a.jsx("p",{children:a.jsx(x,{namespace:p,phrase:"moreInfo",options:{tv:d.tv,faqUrl:ee.getLiteArticle(G.FoxtelFaq)}})}),q&&a.jsx(se,{initialValues:de,validationSchema:ce(i),onSubmit:_,children:a.jsx(le,{onClickCancel:K,channels:i&&q.data,instanceRegion:e.instanceRegion})})]})}export{Pe as TvRequestProgramView};
2
- //# sourceMappingURL=BIU8qa9K.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BIU8qa9K.chunk.js","sources":["../../../../libs/shared/src/enums/SupportArticle.ts","../../src/apps/tv/interfaces/requests/RequestProgramRequest.ts","../../src/apps/tv/utils/validation/RequestProgramValidation.ts","../../src/apps/tv/views/tv-request-program/components/TvRequestProgramForm.tsx","../../src/apps/tv/views/tv-request-program/TvRequestProgramView.tsx"],"sourcesContent":["// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705',\n MarcFormatDifferences = '48276917260441',\n ExportLibraries = '17684275853465',\n StudentSharingGuide = '50326395499417',\n Sharing = '49512742828953'\n}\n","export enum FulfillmentStatus {\n Unfulfilled = 0,\n CurrentlyBeingProcessed = 1,\n Fulfilled = 2\n}\n\nexport interface RequestProgramRequest {\n title: string;\n comments: string;\n regionCode: string;\n userId: string;\n customerId: string;\n channelId?: string;\n programDateTime?: string;\n closedCaptions?: boolean;\n}\n\nexport enum ProgramRequestType {\n BbcRes\n}\n\nexport interface RequestProgramUkRequest {\n title: string;\n comments: string;\n customerName: string;\n email: string;\n crmId: string;\n type: 0;\n username: string;\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'tv.requestProgramValidation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function RequestProgramValidation(hasChannels: boolean) {\n return hasChannels\n ? object().shape({\n channelId: string().required(getPhrase('channelRequired')),\n title: string().required(getPhrase('programRequired')),\n broadcastDate: string().required(getPhrase('dateRequired')),\n broadcastTime: string().required(getPhrase('timeRequired')),\n closedCaptions: string(),\n comments: string()\n })\n : object().shape({\n title: string().required(getPhrase('programRequired')),\n comments: string()\n });\n}\n","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { RequestProgramModel } from 'apps/tv/interfaces/models/RequestProgram';\nimport { PayTvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { RequestProgramRequest } from 'apps/tv/interfaces/requests/RequestProgramRequest';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\n\nconst namespace = 'tv.requestProgramForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvRequestProgramFormProps {\n channels?: PayTvChannel[];\n instanceRegion: InstanceRegion;\n onClickCancel: () => void;\n}\n\nexport function TvRequestProgramForm(props: TvRequestProgramFormProps) {\n const formikProps = useFormikContext<RequestProgramModel>();\n\n const minDate = DateHelper.format(DateHelper.add(new Date(), 4, 'days'), 'YYYY-MM-DD');\n const maxDate = DateHelper.format(DateHelper.add(minDate, 11, 'days'), 'YYYY-MM-DD');\n\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n return (\n <Form>\n {props.channels && (\n <FormField\n as='select'\n label={getPhrase('channelLabel')}\n name='channelId'\n value={formikProps.values.channelId}\n showRequiredStar\n >\n <option key={0} value=''>{LanguageService.getPhrase(namespace, 'channelPlaceholder')}</option>\n {props.channels.map(channel => (\n <option key={channel.id} value={channel.id}>{`${channel.name} - (${channel.number})`}</option>\n ))}\n </FormField>)\n }\n\n <FormField\n label={getPhrase('programLabel')}\n placeholder={getPhrase('programPlaceholder')}\n type='text'\n name='title'\n value={formikProps.values.title}\n showRequiredStar\n />\n\n {props.channels && (\n <div className='d-flex'>\n <div className='w-50 me-2'>\n <FormField\n label={getPhrase('broadcastDateLabel')}\n type='date'\n name='broadcastDate'\n value={formikProps.values.broadcastDate}\n min={minDate}\n max={maxDate}\n showRequiredStar\n />\n </div>\n <div className='w-50'>\n <FormField\n label={getPhrase('broadcastTimeLabel')}\n type='time'\n name='broadcastTime'\n value={formikProps.values.broadcastTime}\n className='mb-0'\n showRequiredStar\n />\n </div>\n </div>\n )}\n\n <p className='mt-n1'>\n <small><Text namespace={namespace} phrase={regionInfo.programGuidePhraseKey} /></small>\n </p>\n\n {props.channels && (\n <div className='d-flex'>\n <div className='w-50 me-2'>\n <FormField\n as='select'\n label={getPhrase('ccLabel')}\n name='closedCaptions'\n value={formikProps.values.closedCaptions}\n >\n <option value=''>{LanguageService.getPhrase(namespace, 'ccNo')}</option>\n <option value='yes'>{LanguageService.getPhrase(namespace, 'ccYes')}</option>\n </FormField>\n </div>\n <div className='w-50'></div>\n </div>\n )}\n \n <FormField\n label={getPhrase(props.channels ? 'commentsLabel' : 'additionalInfoLabel')}\n placeholder={getPhrase(props.channels ? 'commentsPlaceholder' : 'additionalInfoPlaceholder')}\n type='text'\n name='comments'\n value={formikProps.values.comments}\n />\n\n <p><Text namespace={namespace} phrase='note' options={{ tv: regionInfo.tv }} /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('cancel')}\n onClick={props.onClickCancel}\n variant='link'\n />\n <FormButtons<RequestProgramRequest> variant='dark' submitText={getPhrase('request')}/>\n </PopupButtons>\n </Form>\n );\n}\n","import React from 'react';\n\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 { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { CurrentUser, Customer, PopupViewProps } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { RequestProgramModel } from 'apps/tv/interfaces/models/RequestProgram';\nimport { PayTvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { ProgramRequestType, RequestProgramRequest, RequestProgramUkRequest } from 'apps/tv/interfaces/requests/RequestProgramRequest';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\nimport { RequestProgramValidation } from 'apps/tv/utils/validation/RequestProgramValidation';\nimport { TvRequestProgramForm } from 'apps/tv/views/tv-request-program/components/TvRequestProgramForm';\n\nconst INITIAL_VALUES = {\n channelId: '',\n title: '',\n broadcastDate: '',\n broadcastTime: '',\n closedCaptions: '',\n comments: ''\n};\n\nconst namespace = 'tv.requestProgram';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvRequestProgramProps extends PopupViewProps {\n region: string;\n instanceRegion: InstanceRegion;\n}\n\nexport function TvRequestProgramView(props: TvRequestProgramProps) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const hasPayTvChannels = props.instanceRegion === InstanceRegion.AU;\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const isUK = props.instanceRegion === InstanceRegion.UK;\n const customer = Flight.useBasicFetch<Customer>(isUK && CustomerRequests.customer(currentUser.data.customerId));\n\n const channels = Flight.useBasicFetch<PayTvChannel[]>(\n hasPayTvChannels && TvRequests.payTvChannels()\n );\n\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n function onClickCancel() {\n props.closePopup();\n }\n\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n\n function alertAndLogging(requestData: RequestProgramModel) {\n if (hasPayTvChannels) {\n const channel = channels.data?.find(channel => String(channel.id) === requestData.channelId);\n alerts.success(\n getPhrase(\n 'successChannel',\n {\n tv: regionInfo.tv,\n program: requestData.title,\n channel: channel?.name\n }\n )\n );\n AnalyticsHelper.logUserAction(\n { channel: channel.id, name: channel.name, program: requestData.title, region: props.region },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: TvDescriptor.RequestProgram\n }\n );\n } else {\n alerts.success(\n getPhrase(\n 'successNoChannel',\n {\n tv: regionInfo.tv,\n program: requestData.title\n }\n )\n );\n AnalyticsHelper.logUserAction(\n { program: requestData.title, region: props.region },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: TvDescriptor.RequestProgram\n }\n );\n }\n }\n\n function getRequestData(values: RequestProgramModel): RequestProgramRequest | RequestProgramUkRequest {\n const { broadcastDate, broadcastTime, closedCaptions, ...requestData } = values;\n\n if (isUK) {\n return {\n title: requestData.title,\n comments: requestData.comments,\n crmId: customer.data.crmId,\n customerName: customer.data.name,\n email: currentUser.data.email,\n type: ProgramRequestType.BbcRes,\n username: currentUser.data.username\n };\n }\n\n if (hasPayTvChannels) {\n return {\n ...requestData,\n closedCaptions: Boolean(closedCaptions),\n regionCode: props.region,\n programDateTime: `${broadcastDate}T${broadcastTime}`,\n userId: currentUser.data?.id,\n customerId: currentUser.data?.customerId\n };\n }\n\n return {\n ...requestData,\n regionCode: props.region,\n userId: currentUser.data?.id,\n customerId: currentUser.data?.customerId\n };\n }\n\n async function onClickRequest(\n values: RequestProgramModel,\n onDone: () => void\n ) {\n const requestData = getRequestData(values);\n const request = isUK\n ? TvRequests.requestProgramUk(requestData as RequestProgramUkRequest)\n : TvRequests.requestProgram(requestData as RequestProgramRequest);\n\n try {\n await fetchAsync(request);\n onDone();\n alertAndLogging(values);\n } catch (xhr) {\n handleGenerateReportError(xhr, getPhrase('error'), getPhrase('noEmailError'));\n }\n\n props.closePopup();\n }\n\n const hasLoaded = (currentUser.hasCompleted && ((hasPayTvChannels && channels.hasCompleted) || !hasPayTvChannels));\n\n return (\n <Popup\n title={getPhrase('title', { tv: regionInfo.tv })}\n closePopup={props.closePopup}\n showLoadingSpinner={!hasLoaded || loading}\n >\n {TvUtils.isHolidayPeriod() &&\n <div className='alert alert-warning' role='alert'>\n <h3 className='h5'>\n <Text namespace={namespace} phrase='requestAlertHeading'/>\n </h3>\n <p className='m-0'>\n <Text namespace={namespace} phrase='requestAlertBody' options={{\n tv: regionInfo.tv\n }} />\n </p>\n </div>\n }\n <p>\n <Text\n namespace={namespace}\n phrase='description'\n options={{ tv: regionInfo.tv }}\n />\n </p>\n <p>\n <Text\n namespace={namespace}\n phrase='moreInfo'\n options={{\n tv: regionInfo.tv,\n faqUrl: ArticleHelper.getLiteArticle(LiteSupportArticle.FoxtelFaq)\n }}\n />\n </p>\n {channels &&\n <FormWrapper<RequestProgramModel>\n initialValues={INITIAL_VALUES}\n validationSchema={RequestProgramValidation(hasPayTvChannels)}\n onSubmit={onClickRequest}\n >\n <TvRequestProgramForm\n onClickCancel={onClickCancel}\n channels={hasPayTvChannels && channels.data}\n instanceRegion={props.instanceRegion}\n />\n </FormWrapper>\n }\n </Popup>\n );\n}\n"],"names":["LiteSupportArticle","ProgramRequestType","namespace","getPhrase","LanguageService","RequestProgramValidation","hasChannels","object","string","TvRequestProgramForm","props","formikProps","useFormikContext","minDate","DateHelper","maxDate","regionInfo","getRegionInfo","Form","jsxs","FormField","jsx","channel","Text","PopupButtons","FormButtons","INITIAL_VALUES","TvRequestProgramView","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","hasPayTvChannels","InstanceRegion","currentUser","Flight.useBasicFetch","UserRequests","isUK","customer","CustomerRequests","channels","TvRequests","onClickCancel","loading","handleGenerateReportError","useVerifiedEmailRequiredErrorHandler","alertAndLogging","requestData","_a","AnalyticsHelper","UserAction","EntityType","LocationContext","WorkflowPhase","TvDescriptor","getRequestData","values","broadcastDate","broadcastTime","closedCaptions","_b","_c","_d","onClickRequest","onDone","request","xhr","hasLoaded","Popup","TvUtils","ArticleHelper","FormWrapper"],"mappings":"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"}