@clickview/exchange 0.47.1-dev.3 → 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/-QmfGLIN.chunk.js +0 -2
  181. package/dist/scripts/-QmfGLIN.chunk.js.map +0 -1
  182. package/dist/scripts/6FhUNBfx.chunk.js +0 -2
  183. package/dist/scripts/6FhUNBfx.chunk.js.map +0 -1
  184. package/dist/scripts/9o-MqpsS.chunk.js +0 -2
  185. package/dist/scripts/9o-MqpsS.chunk.js.map +0 -1
  186. package/dist/scripts/B2HNVRLF.chunk.js +0 -2
  187. package/dist/scripts/B2HNVRLF.chunk.js.map +0 -1
  188. package/dist/scripts/B2yKZtpc.chunk.js +0 -6
  189. package/dist/scripts/B2yKZtpc.chunk.js.map +0 -1
  190. package/dist/scripts/B4NQ482n.chunk.js +0 -2
  191. package/dist/scripts/B4NQ482n.chunk.js.map +0 -1
  192. package/dist/scripts/B4kbE-AG.chunk.js +0 -2
  193. package/dist/scripts/B4kbE-AG.chunk.js.map +0 -1
  194. package/dist/scripts/B668bf5B.chunk.js +0 -2
  195. package/dist/scripts/B668bf5B.chunk.js.map +0 -1
  196. package/dist/scripts/BFoo6g4H.chunk.js +0 -2
  197. package/dist/scripts/BFoo6g4H.chunk.js.map +0 -1
  198. package/dist/scripts/BHWbXJt3.chunk.js +0 -2
  199. package/dist/scripts/BHWbXJt3.chunk.js.map +0 -1
  200. package/dist/scripts/BHdp6IzC.chunk.js +0 -2
  201. package/dist/scripts/BHdp6IzC.chunk.js.map +0 -1
  202. package/dist/scripts/BPlgKoUH.chunk.js +0 -2
  203. package/dist/scripts/BPlgKoUH.chunk.js.map +0 -1
  204. package/dist/scripts/BU7zesZa.chunk.js +0 -2
  205. package/dist/scripts/BU7zesZa.chunk.js.map +0 -1
  206. package/dist/scripts/BbAy6p0a.chunk.js +0 -2
  207. package/dist/scripts/BbAy6p0a.chunk.js.map +0 -1
  208. package/dist/scripts/Bd43MH9s.chunk.js +0 -2
  209. package/dist/scripts/Bd43MH9s.chunk.js.map +0 -1
  210. package/dist/scripts/BdoDNby6.chunk.js +0 -2
  211. package/dist/scripts/BdoDNby6.chunk.js.map +0 -1
  212. package/dist/scripts/BfpVRvba.chunk.js +0 -2
  213. package/dist/scripts/BfpVRvba.chunk.js.map +0 -1
  214. package/dist/scripts/BgY8Fu63.chunk.js +0 -2
  215. package/dist/scripts/BgY8Fu63.chunk.js.map +0 -1
  216. package/dist/scripts/BhzF8k3V.chunk.js +0 -2
  217. package/dist/scripts/BhzF8k3V.chunk.js.map +0 -1
  218. package/dist/scripts/BjlH_9a_.chunk.js +0 -2
  219. package/dist/scripts/BjlH_9a_.chunk.js.map +0 -1
  220. package/dist/scripts/BklWIeq0.chunk.js +0 -2
  221. package/dist/scripts/BklWIeq0.chunk.js.map +0 -1
  222. package/dist/scripts/BlDVEZsX.chunk.js +0 -2
  223. package/dist/scripts/BlDVEZsX.chunk.js.map +0 -1
  224. package/dist/scripts/BoNPAqR7.chunk.js +0 -2
  225. package/dist/scripts/BoNPAqR7.chunk.js.map +0 -1
  226. package/dist/scripts/Bod85SYB.chunk.js +0 -2
  227. package/dist/scripts/Bod85SYB.chunk.js.map +0 -1
  228. package/dist/scripts/Bp6Xb1zN.chunk.js +0 -2
  229. package/dist/scripts/Bp6Xb1zN.chunk.js.map +0 -1
  230. package/dist/scripts/Bx7TgL0C.chunk.js +0 -2
  231. package/dist/scripts/Bx7TgL0C.chunk.js.map +0 -1
  232. package/dist/scripts/C142tn-B.chunk.js +0 -2
  233. package/dist/scripts/C142tn-B.chunk.js.map +0 -1
  234. package/dist/scripts/C48ktK5n.chunk.js +0 -2
  235. package/dist/scripts/C48ktK5n.chunk.js.map +0 -1
  236. package/dist/scripts/C7F2pzz_.chunk.js +0 -2
  237. package/dist/scripts/C7F2pzz_.chunk.js.map +0 -1
  238. package/dist/scripts/CEf5yj2s.chunk.js +0 -2
  239. package/dist/scripts/CEf5yj2s.chunk.js.map +0 -1
  240. package/dist/scripts/CJ3oIQlG.chunk.js +0 -2
  241. package/dist/scripts/CJ3oIQlG.chunk.js.map +0 -1
  242. package/dist/scripts/CMmQbESn.chunk.js +0 -2
  243. package/dist/scripts/CMmQbESn.chunk.js.map +0 -1
  244. package/dist/scripts/CNicqYgW.chunk.js +0 -2
  245. package/dist/scripts/CNicqYgW.chunk.js.map +0 -1
  246. package/dist/scripts/CPvfK9ev.chunk.js +0 -2
  247. package/dist/scripts/CPvfK9ev.chunk.js.map +0 -1
  248. package/dist/scripts/CRROHAqo.chunk.js +0 -2
  249. package/dist/scripts/CRROHAqo.chunk.js.map +0 -1
  250. package/dist/scripts/CSqMWPmN.chunk.js +0 -15
  251. package/dist/scripts/CSqMWPmN.chunk.js.map +0 -1
  252. package/dist/scripts/CTcJ39n0.chunk.js +0 -2
  253. package/dist/scripts/CTcJ39n0.chunk.js.map +0 -1
  254. package/dist/scripts/CY_ZEi17.chunk.js +0 -2
  255. package/dist/scripts/CY_ZEi17.chunk.js.map +0 -1
  256. package/dist/scripts/CbSUH7Rz.chunk.js +0 -2
  257. package/dist/scripts/CbSUH7Rz.chunk.js.map +0 -1
  258. package/dist/scripts/CljRBNOX.chunk.js +0 -2
  259. package/dist/scripts/CljRBNOX.chunk.js.map +0 -1
  260. package/dist/scripts/Cmu1J2M7.chunk.js +0 -262
  261. package/dist/scripts/Cmu1J2M7.chunk.js.map +0 -1
  262. package/dist/scripts/CoCmlowG.chunk.js +0 -2
  263. package/dist/scripts/CoCmlowG.chunk.js.map +0 -1
  264. package/dist/scripts/CoRP6nOB.chunk.js +0 -50
  265. package/dist/scripts/CoRP6nOB.chunk.js.map +0 -1
  266. package/dist/scripts/CoksuIov.chunk.js +0 -2
  267. package/dist/scripts/CoksuIov.chunk.js.map +0 -1
  268. package/dist/scripts/CqaVyU15.chunk.js +0 -2
  269. package/dist/scripts/CqaVyU15.chunk.js.map +0 -1
  270. package/dist/scripts/Cu-wofRC.chunk.js +0 -2
  271. package/dist/scripts/Cu-wofRC.chunk.js.map +0 -1
  272. package/dist/scripts/CyXdP5dX.chunk.js +0 -2
  273. package/dist/scripts/CyXdP5dX.chunk.js.map +0 -1
  274. package/dist/scripts/CyjoA2ph.chunk.js +0 -2
  275. package/dist/scripts/CyjoA2ph.chunk.js.map +0 -1
  276. package/dist/scripts/D-worYR1.chunk.js +0 -2
  277. package/dist/scripts/D-worYR1.chunk.js.map +0 -1
  278. package/dist/scripts/D3oBEMC4.chunk.js +0 -2
  279. package/dist/scripts/D3oBEMC4.chunk.js.map +0 -1
  280. package/dist/scripts/D4oCPyUC.chunk.js +0 -2
  281. package/dist/scripts/D4oCPyUC.chunk.js.map +0 -1
  282. package/dist/scripts/D7WqZb79.chunk.js +0 -2
  283. package/dist/scripts/D7WqZb79.chunk.js.map +0 -1
  284. package/dist/scripts/D8Fb_Kn2.chunk.js +0 -2
  285. package/dist/scripts/D8Fb_Kn2.chunk.js.map +0 -1
  286. package/dist/scripts/DBQcPvhE.chunk.js +0 -362
  287. package/dist/scripts/DBQcPvhE.chunk.js.map +0 -1
  288. package/dist/scripts/DCGqs8ge.chunk.js +0 -2
  289. package/dist/scripts/DCGqs8ge.chunk.js.map +0 -1
  290. package/dist/scripts/DEmNtjut.chunk.js +0 -5
  291. package/dist/scripts/DEmNtjut.chunk.js.map +0 -1
  292. package/dist/scripts/DGoATT2r.chunk.js +0 -2
  293. package/dist/scripts/DGoATT2r.chunk.js.map +0 -1
  294. package/dist/scripts/DHEsU9tx.chunk.js +0 -2
  295. package/dist/scripts/DHEsU9tx.chunk.js.map +0 -1
  296. package/dist/scripts/DJZy0Onv.chunk.js +0 -2
  297. package/dist/scripts/DJZy0Onv.chunk.js.map +0 -1
  298. package/dist/scripts/DML3iinY.chunk.js +0 -2
  299. package/dist/scripts/DML3iinY.chunk.js.map +0 -1
  300. package/dist/scripts/DMM-ZwkR.chunk.js +0 -2
  301. package/dist/scripts/DMM-ZwkR.chunk.js.map +0 -1
  302. package/dist/scripts/DNaYQ0UN.chunk.js +0 -2
  303. package/dist/scripts/DNaYQ0UN.chunk.js.map +0 -1
  304. package/dist/scripts/DOLtnwZR.chunk.js +0 -2
  305. package/dist/scripts/DOLtnwZR.chunk.js.map +0 -1
  306. package/dist/scripts/DSljAm9x.chunk.js +0 -2
  307. package/dist/scripts/DSljAm9x.chunk.js.map +0 -1
  308. package/dist/scripts/DTFETpC1.chunk.js +0 -8
  309. package/dist/scripts/DTFETpC1.chunk.js.map +0 -1
  310. package/dist/scripts/DUHNiExb.chunk.js +0 -2
  311. package/dist/scripts/DUHNiExb.chunk.js.map +0 -1
  312. package/dist/scripts/DUeG7GBo.chunk.js +0 -2
  313. package/dist/scripts/DUeG7GBo.chunk.js.map +0 -1
  314. package/dist/scripts/DVAvC_9o.chunk.js +0 -2
  315. package/dist/scripts/DVAvC_9o.chunk.js.map +0 -1
  316. package/dist/scripts/DWdE-Ugg.chunk.js +0 -2
  317. package/dist/scripts/DWdE-Ugg.chunk.js.map +0 -1
  318. package/dist/scripts/DY6LRP1V.chunk.js +0 -2
  319. package/dist/scripts/DY6LRP1V.chunk.js.map +0 -1
  320. package/dist/scripts/DZNkb9vM.chunk.js +0 -2
  321. package/dist/scripts/DZNkb9vM.chunk.js.map +0 -1
  322. package/dist/scripts/Dbn7vKGF.chunk.js +0 -2
  323. package/dist/scripts/Dbn7vKGF.chunk.js.map +0 -1
  324. package/dist/scripts/Dd3UU4H5.chunk.js +0 -2
  325. package/dist/scripts/Dd3UU4H5.chunk.js.map +0 -1
  326. package/dist/scripts/De4UpC2g.chunk.js +0 -2
  327. package/dist/scripts/De4UpC2g.chunk.js.map +0 -1
  328. package/dist/scripts/DnK4C90o.chunk.js +0 -2
  329. package/dist/scripts/DnK4C90o.chunk.js.map +0 -1
  330. package/dist/scripts/DntTu0XK.chunk.js +0 -2
  331. package/dist/scripts/DntTu0XK.chunk.js.map +0 -1
  332. package/dist/scripts/DoZ1A_qG.chunk.js +0 -2
  333. package/dist/scripts/DoZ1A_qG.chunk.js.map +0 -1
  334. package/dist/scripts/DtnntJxI.chunk.js +0 -2
  335. package/dist/scripts/DtnntJxI.chunk.js.map +0 -1
  336. package/dist/scripts/Dvkaq1WU.chunk.js +0 -2
  337. package/dist/scripts/Dvkaq1WU.chunk.js.map +0 -1
  338. package/dist/scripts/DxYxjVpd.chunk.js +0 -3
  339. package/dist/scripts/DxYxjVpd.chunk.js.map +0 -1
  340. package/dist/scripts/DyDPUyS7.chunk.js +0 -2
  341. package/dist/scripts/DyDPUyS7.chunk.js.map +0 -1
  342. package/dist/scripts/FoPqmw-u.chunk.js +0 -2
  343. package/dist/scripts/FoPqmw-u.chunk.js.map +0 -1
  344. package/dist/scripts/JjH0M1sw.chunk.js +0 -2
  345. package/dist/scripts/JjH0M1sw.chunk.js.map +0 -1
  346. package/dist/scripts/Kj832An8.chunk.js +0 -2
  347. package/dist/scripts/Kj832An8.chunk.js.map +0 -1
  348. package/dist/scripts/QfCSKVqV.chunk.js +0 -2
  349. package/dist/scripts/QfCSKVqV.chunk.js.map +0 -1
  350. package/dist/scripts/VKh9EG4H.chunk.js +0 -2
  351. package/dist/scripts/VKh9EG4H.chunk.js.map +0 -1
  352. package/dist/scripts/W7C_DF7E.chunk.js +0 -2
  353. package/dist/scripts/W7C_DF7E.chunk.js.map +0 -1
  354. package/dist/scripts/ZgtgvdxM.chunk.js +0 -2
  355. package/dist/scripts/ZgtgvdxM.chunk.js.map +0 -1
  356. package/dist/scripts/_sYSSSUN.chunk.js +0 -2
  357. package/dist/scripts/_sYSSSUN.chunk.js.map +0 -1
  358. package/dist/scripts/app-CSgTTsBh.js +0 -215
  359. package/dist/scripts/app-CSgTTsBh.js.map +0 -1
  360. package/dist/scripts/b7w0ESDo.chunk.js +0 -2
  361. package/dist/scripts/b7w0ESDo.chunk.js.map +0 -1
  362. package/dist/scripts/e4J39NdV.chunk.js +0 -2
  363. package/dist/scripts/e4J39NdV.chunk.js.map +0 -1
  364. package/dist/scripts/gmJLp4bX.chunk.js +0 -2
  365. package/dist/scripts/gmJLp4bX.chunk.js.map +0 -1
  366. package/dist/scripts/h4x3qWQ8.chunk.js +0 -2
  367. package/dist/scripts/h4x3qWQ8.chunk.js.map +0 -1
  368. package/dist/scripts/hrQgoDjt.chunk.js +0 -2
  369. package/dist/scripts/hrQgoDjt.chunk.js.map +0 -1
  370. package/dist/scripts/llc4Kymn.chunk.js +0 -2
  371. package/dist/scripts/llc4Kymn.chunk.js.map +0 -1
  372. package/dist/scripts/pkzD5BEm.chunk.js +0 -2
  373. package/dist/scripts/pkzD5BEm.chunk.js.map +0 -1
  374. package/dist/scripts/uM6EBrIh.chunk.js +0 -2
  375. package/dist/scripts/uM6EBrIh.chunk.js.map +0 -1
  376. package/dist/scripts/vtfUwDER.chunk.js +0 -2
  377. package/dist/scripts/vtfUwDER.chunk.js.map +0 -1
  378. package/vite.config.ts +0 -6
@@ -1,2 +0,0 @@
1
- import{j as s,B as z,O as h,b0 as A,r as L,F as v,b1 as S,aR as M}from"./app-CSgTTsBh.js";import{a as N}from"./DHEsU9tx.chunk.js";const P=["bg-green","bg-cyan","bg-teal","bg-blue","bg-indigo","bg-purple"],B=["bg-pink","bg-orange",...P];function H(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z",clipRule:"evenodd"})})}function I(t){return s.jsx("svg",{...t,viewBox:"0 0 24 21",children:s.jsx("path",{d:"M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5",fill:"currentColor"})})}function E(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",d:"M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17"})})}function G(t,e){return e[t.charCodeAt(0)%e.length]}const O="_baseFallbackContainer_14tjv_1",R="_svgFallbackContainer_14tjv_1",V="_subjectFallbackContainer_14tjv_9",w="_subjectFallbackContainerSmall_14tjv_18",q="_subjectFallbackContainerLarge_14tjv_21",U="_seriesItemFallback_14tjv_24",J="_playlistItemFallback_14tjv_24",Q="_playlistFallback_14tjv_28",W="_posterFallback_14tjv_29",X="_subjectFallback_14tjv_9",Y="_fallbackThumbnailImage_14tjv_47",Z="_videoFallback_14tjv_55",K="_folderFallback_14tjv_56",n={baseFallbackContainer:O,svgFallbackContainer:R,subjectFallbackContainer:V,subjectFallbackContainerSmall:w,subjectFallbackContainerLarge:q,seriesItemFallback:U,playlistItemFallback:J,playlistFallback:Q,posterFallback:W,subjectFallback:X,fallbackThumbnailImage:Y,videoFallback:Z,folderFallback:K};var T=(t=>(t[t.Playlist=0]="Playlist",t[t.PlaylistThumbnail=1]="PlaylistThumbnail",t[t.Series=2]="Series",t[t.SeriesThumbnail=3]="SeriesThumbnail",t[t.Subject=4]="Subject",t[t.TallSubject=5]="TallSubject",t[t.Video=6]="Video",t[t.Folder=7]="Folder",t))(T||{});function p(t,e,i){if(e===4){const o=i===0?n.subjectFallbackContainerLarge:n.subjectFallbackContainerSmall;return`${n.subjectFallbackContainer} ${o}`}return t===0?e===3||e===1?`${n.svgFallbackContainer} rounded-3`:n.svgFallbackContainer:n.baseFallbackContainer}function y(t){return t===3?n.seriesItemFallback:t===1?n.playlistItemFallback:t===0?n.playlistFallback:t===2||t===5?n.posterFallback:t===4?`${n.subjectFallback} svg-container d-inline-block`:""}function D(t){return t===3||t===1?H:t===0?I:t===2?E:t===4||t===5?N:null}function tt(t){return t===4?h.ExtraLarge:h.Standard}at.defaultProps={mediaType:0,containerClassSize:0};function at(t){const{type:e,mediaType:i,extraClasses:o,containerClassSize:b}=t;if(e===6)return s.jsx("div",{className:`${n.videoFallback} ${t.extraClasses} bg-light-blue`});if(e===7)return s.jsx("div",{className:`${n.folderFallback} ${t.extraClasses} ${G(t.name,B)}`});const d=y(e),l=D(e),c=tt(e);let r=`${p(i,e,b)}`;return o&&(r+=` ${t.extraClasses}`),s.jsx("div",{className:r,children:i===0?s.jsx(z,{svg:l,className:`${d} ${t.svgContainerClassName??""}`,tagName:"div",size:c}):s.jsx("div",{className:n.fallbackThumbnailImage,style:{backgroundImage:`url('${l}')`}})})}M.Ok;function nt(t,e,i){function o(l){if(l)return v.isFunction(e)?[...e(l)]:[...l.data]}function b(l){var c,r;if(l)return i?i(l):(r=(c=l.pagination)==null?void 0:c.cursors)==null?void 0:r.next}function d(l){if(l)return l==null?void 0:l.count}return A(L.useMemo(()=>l=>{if(!v.isFunction(t))return;const c=t,r=v.isFunction(t)&&c();let a=r&&S(l,r),f=a&&a.isFetching,F=a&&a.statusCode,C=a&&a.hasCompleted;const x=C,$=a&&a.shouldFetch,_=o(a&&a.data);let u=b(a&&a.data);const k=d(a&&a.data);for(;u&&(a=S(l,c(u)),f=f||a.isFetching,F=a.statusCode,C=a.hasCompleted,!a.shouldFetch);){const m=o(a.data);m&&_.push(...m);const g=b(a.data);g===u?u=null:u=g}const j={shouldInitialFetch:$,items:_,nextCursor:u,isFetching:f,statusCode:F,hasCompleted:C,hasFirstPageCompleted:x};return typeof k=="number"&&(j.totalItems=k),j},[t]))}export{B,at as I,T as a,G as g,nt as u};
2
- //# sourceMappingURL=b7w0ESDo.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"b7w0ESDo.chunk.js","sources":["../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/ImageFallback.tsx","../../../../libs/shared/src/hooks/UseSelectAllPages.ts"],"sourcesContent":["/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large\n ? styles.subjectFallbackContainerLarge\n : styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg\n ? (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState } from 'libs/common/react/interfaces';\n\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nexport interface SelectAllPagesResult<T> {\n items: T[];\n shouldInitialFetch: boolean;\n nextCursor: string;\n isFetching: boolean;\n statusCode: HttpStatus;\n hasCompleted: boolean;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\nexport const EmptySelectAllPagesResult: SelectAllPagesResult<any> = {\n items: [],\n shouldInitialFetch: false,\n nextCursor: null,\n isFetching: false,\n statusCode: HttpStatus.Ok,\n hasCompleted: true,\n totalItems: 0,\n hasFirstPageCompleted: true\n};\n\n/**\n * Hook to select all pages of a collection from the store and flatten them.\n * It will not trigger any fetches.\n * \n * @param getKey - callback function to get the key for each page.\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useSelectAllPages<TObject, TResponse = BasePaginatedCollection<TObject>>(\n getKey: ((cursor?: string) => string) | false,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string\n): SelectAllPagesResult<TObject> {\n function safeGetItems(responseData: TResponse): TObject[] {\n if (!responseData)\n return undefined;\n\n if (FunctionHelper.isFunction(getItems))\n return [...getItems(responseData)];\n\n return [...(responseData as unknown as BasePaginatedCollection<TObject>).data];\n }\n\n function safeGetCursor(responseData: TResponse): string {\n if (!responseData)\n return undefined;\n\n if (getCursor)\n return getCursor(responseData);\n\n return (responseData as unknown as BasePaginatedCollection<TObject>).pagination?.cursors?.next;\n }\n\n function safeGetTotalItems(responseData: TResponse): number {\n if (!responseData)\n return undefined;\n\n return (responseData as unknown as BasePaginatedCollection<TObject>)?.count;\n }\n\n return useSelector(useMemo(() => (state: ApplicationState) => {\n if (!FunctionHelper.isFunction(getKey))\n return;\n\n const getKeyFn = getKey as (cursor?: string) => string;\n const key = FunctionHelper.isFunction(getKey) && getKeyFn();\n\n let request = key && Flight.getResponse<TResponse>(state, key);\n\n let isFetching = request && request.isFetching;\n let statusCode = request && request.statusCode;\n let hasCompleted = request && request.hasCompleted;\n const hasFirstPageCompleted = hasCompleted;\n\n const shouldInitialFetch = request && request.shouldFetch;\n\n const items = safeGetItems(request && request.data);\n let nextCursor = safeGetCursor(request && request.data);\n const totalItems = safeGetTotalItems(request && request.data);\n\n // Retrieve all pages that are currently in the store.\n while (nextCursor) {\n request = Flight.getResponse<TResponse>(state, getKeyFn(nextCursor));\n\n isFetching = isFetching || request.isFetching;\n statusCode = request.statusCode;\n hasCompleted = request.hasCompleted;\n\n // If next page hasn't been fetched, break.\n if (request.shouldFetch)\n break;\n\n const newItems = safeGetItems(request.data);\n newItems && items.push(...newItems);\n\n const nextNextCursor = safeGetCursor(request.data);\n\n /**\n * This is a check to basically see if the backend has messed up the cursors it's sent back.\n * For some things (e.g. user manager in Lite), the cursors are generated for a paginated collection,\n * but the collection is then filtered afterwards (making the cursors not entirely accurate).\n * This can lead to problems where a request with a cursor might return that same cursor as the `next`\n * cursor. Confusing, but basically when that happens we want this while loop to end, otherwise it'll\n * run infinitely - Josh\n */\n if (nextNextCursor === nextCursor) {\n nextCursor = null;\n } else {\n nextCursor = nextNextCursor;\n }\n }\n\n const response: SelectAllPagesResult<TObject> = {\n shouldInitialFetch,\n items,\n nextCursor,\n isFetching,\n statusCode,\n hasCompleted,\n hasFirstPageCompleted\n };\n\n if (typeof (totalItems) === 'number')\n response.totalItems = totalItems;\n\n return response;\n }, [getKey]));\n}"],"names":["LOGO_SAFE_BG_CLASS_NAMES","BG_COLOUR_CLASS_NAMES","PlaySvg","props","jsx","ImageSvg","SeriesSvg","getBgColorClass","name","classNames","ImageFallbackType","getContainerClass","type","objectType","containerClassSize","containerSizeClass","styles","getClassByType","getMedia","FileImgSvg","getSize","SvgContainerSize","ImageFallback","mediaType","extraClasses","typeClass","media","size","className","SvgContainer","HttpStatus","useSelectAllPages","getKey","getItems","getCursor","safeGetItems","responseData","FunctionHelper","safeGetCursor","_b","_a","safeGetTotalItems","useSelector","useMemo","state","getKeyFn","key","request","Flight.getResponse","isFetching","statusCode","hasCompleted","hasFirstPageCompleted","shouldInitialFetch","items","nextCursor","totalItems","newItems","nextNextCursor","response"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{ay as t}from"./app-CSgTTsBh.js";const i={"AUS Eastern Standard Time":"Australia/Sydney","W. Australia Standard Time":"Australia/Perth","E. Australia Standard Time":"Australia/Brisbane","Cen. Australia Standard Time":"Australia/Adelaide","New Zealand Standard Time":"Pacific/Auckland","GMT Standard Time":"Europe/London"};function d(a,e){return t.getUtcTimeByTimezone(a,"YYYY-MM-DDTHH:mm:ss",i[e])}export{d as t};
2
- //# sourceMappingURL=e4J39NdV.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e4J39NdV.chunk.js","sources":["../../src/apps/tv/utils/toLocalTime.ts"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\n/**\n * A fully fleshed out Windows to IANA mapping library\n * can be absolutely huge, so instead we're just taking the \n * windows timezones that we know our system can have\n * and are mapping them ourselves here.\n */\nconst WINDOWS_TO_IANA: HashObject = {\n 'AUS Eastern Standard Time': 'Australia/Sydney',\n 'W. Australia Standard Time': 'Australia/Perth',\n 'E. Australia Standard Time': 'Australia/Brisbane',\n 'Cen. Australia Standard Time': 'Australia/Adelaide',\n 'New Zealand Standard Time': 'Pacific/Auckland',\n 'GMT Standard Time': 'Europe/London'\n};\n\n/**\n * When we replace moment with dayjs, we're going to have to import the timezone plugin for dayjs\n * https://day.js.org/docs/en/plugin/timezone\n * in order to support time conversion here - Sha\n */\nexport function toLocalTime(time: string | Date, timezone: string): string {\n /**\n * If for whatever reason we hit a timezone that we don't have a mapping for,\n * just use UTC. This is less than ideal, but any mapping library for mapping\n * windows to IANA times is about 1mb in size - Sha\n */\n const localTime = DateHelper.getUtcTimeByTimezone(time, 'YYYY-MM-DDTHH:mm:ss', WINDOWS_TO_IANA[timezone]);\n \n return localTime;\n}"],"names":["WINDOWS_TO_IANA","toLocalTime","time","timezone","DateHelper"],"mappings":"uCASA,MAAMA,EAA8B,CAClC,4BAA6B,mBAC7B,6BAA8B,kBAC9B,6BAA8B,qBAC9B,+BAAgC,qBAChC,4BAA6B,mBAC7B,oBAAqB,eACvB,EAOO,SAASC,EAAYC,EAAqBC,EAA0B,CAQzE,OAFkBC,EAAW,qBAAqBF,EAAM,sBAAuBF,EAAgBG,CAAQ,CAAC,CAG1G"}
@@ -1,2 +0,0 @@
1
- import{j as e,as as j,B as r,I as x,F as m,ao as b,a9 as N,ae as v,O as f,r as h,bG as y,bx as k}from"./app-CSgTTsBh.js";function T(n){return e.jsx("svg",{...n,children:e.jsx("path",{d:"M12 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0 5.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0-11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3",fill:"currentColor"})})}const C="_dropdownToggle_1jkd1_1",S={dropdownToggle:C};function p(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})}),e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})}),e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})}),e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})})]})}function g(n){let o="dropdown-item";return n&&(o+=` ${n}`),o}function u(n){const o=m.isFunction(n.action.label)?n.action.label():e.jsx(e.Fragment,{children:n.action.label});if(n.action.appLink)return e.jsxs(b,{appLink:n.action.appLink,onClick:n.action.onClick,className:g(n.action.className),analyticsData:n.action.analyticsData,analyticsOptions:n.action.analyticsOptions,openInNewTab:n.action.openInNewTab,disabled:n.action.disabled,children:[n.action.svg&&e.jsx(r,{svg:n.action.svg,className:"d-inline-block svg-container me-2 align-middle"}),e.jsx("span",{className:"align-middle",children:o})]});function s(t){t.preventDefault(),n.action.analyticsData&&n.action.analyticsOptions&&N.logUserAction(n.action.analyticsData,n.action.analyticsOptions),m.isFunction(n.action.onClick)&&n.action.onClick(),n.action.href&&v.PageLoad(n.action.href,n.action.openInNewTab)}return n.action.href?e.jsxs("a",{className:g(n.action.className),onClick:s,href:n.action.href,children:[n.action.svg&&e.jsx(r,{svg:n.action.svg,className:"d-inline-block svg-container me-2 align-middle"}),e.jsx("span",{className:"align-middle",children:o})]}):e.jsxs("span",{className:`cursor-pointer ${g(n.action.className)}`,onClick:s,role:"button",tabIndex:0,onKeyDown:t=>t.key==="Enter"&&s(t),children:[n.action.svg&&e.jsx(r,{svg:n.action.svg,className:"d-inline-block svg-container me-2"}),o]})}w.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:f.Small};function w(n){if(!n.actions||!n.actions.length)return e.jsx(e.Fragment,{});const o=n.actions.some(i=>i.lazyPlaceholder);let s="dropdown";n.className&&(s+=` ${n.className}`);const t=`actions-dropdown-${j.getRandomInt()}`;let l=`dropdown-toggle px-0 ${S.dropdownToggle}`;n.dropdownToggleClassName&&(l+=` ${n.dropdownToggleClassName}`);let a;return e.jsxs("div",{className:s,children:[e.jsx("button",{className:l,type:"button",id:t,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:o?n.fetchMore:null,children:e.jsx(r,{svg:T,size:n.dropdownToggleSvgSize})}),e.jsx("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":t,children:o?e.jsx(p,{}):n.actions.map((i,c)=>{const d=a!==void 0&&a!==i.group;return a=i.group,i.tooltip?e.jsxs("li",{children:[d&&e.jsx("hr",{className:"dropdown-divider",role:"separator"}),e.jsx(x,{title:i.tooltip,spanHack:!0,children:e.jsx(u,{action:i})})]},c):e.jsxs("li",{children:[d&&e.jsx("hr",{className:"dropdown-divider",role:"separator"}),e.jsx(u,{action:i})]},c)})})]})}function I(n){const o=h.useMemo(()=>n.actions.sort((a,i)=>a.order-i.order),[n.actions]),s=[],t=[];o.forEach(a=>{a.button?s.push(a):t.push(a)});let l="d-flex";return n.className&&(l+=` ${n.className}`),!s.length&&!t.length?e.jsx(e.Fragment,{}):e.jsxs("div",{className:l,children:[s.length?s.map((a,i)=>e.jsx(h.Fragment,{children:(()=>{if(a.label){const d=m.isFunction(a.label)?a.label():e.jsx(e.Fragment,{children:a.label});return e.jsx(y,{appLink:a.appLink,href:a.href,onClick:a.onClick,svg:a.svg,svgSize:n.dropdownToggleSvgSize,className:a.className,tooltip:a.tooltip,showSpinner:a.showSpinner,analyticsData:a.analyticsData,analyticsOptions:a.analyticsOptions,openInNewTab:a.openInNewTab,disabled:a.disabled,children:d})}const c=e.jsx(k,{appLink:a.appLink,href:a.href,onClick:a.onClick,svg:a.svg,className:a.className,analyticsData:a.analyticsData,analyticsOptions:a.analyticsOptions,openInNewTab:a.openInNewTab,disabled:a.disabled,showBorder:a.showBorder,customSize:n.customSize,ariaLabel:a.tooltip});return a.tooltip?e.jsx(x,{title:a.tooltip,spanHack:!0,children:c}):c})()},i)):e.jsx(e.Fragment,{}),n.sortComponent&&n.sortComponent,t.length?e.jsx(w,{actions:t,dropdownToggleClassName:n.actionsDropdownClassName,dropdownToggleSvgSize:n.dropdownToggleSvgSize,fetchMore:n.fetchMore}):e.jsx(e.Fragment,{})]})}export{I as A};
2
- //# sourceMappingURL=gmJLp4bX.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gmJLp4bX.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/MoreSvg.tsx","../../../../libs/shared/src/components/actions/ActionsDropdown.tsx","../../../../libs/shared/src/components/actions/Actions.tsx"],"sourcesContent":["import React from 'react';\n\nexport function MoreSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M12 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0 5.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0-11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MoreSvg } from 'libs/shared/images/svg/actions/MoreSvg';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.module.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label()\n : <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svg && <SvgContainer svg={props.action.svg} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svg && <SvgContainer svg={props.action.svg} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svg && <SvgContainer svg={props.action.svg} className='d-inline-block svg-container me-2' />}\n {label}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svg={MoreSvg} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svg?: SvgIcon;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label: JSX.Element = FunctionHelper.isFunction(a.label)\n ? a.label()\n : <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svg={a.svg}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svg={a.svg}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n ariaLabel={a.tooltip}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}"],"names":["MoreSvg","props","jsx","LazyDropdownItems","jsxs","Fragment","getDropdownItemClassName","actionClassName","className","ActionsDropdownItem","label","FunctionHelper","AppLink","SvgContainer","onClick","e","AnalyticsHelper","Core.LocationUtils","ActionsDropdown","SvgContainerSize","isLazy","a","dropdownToggleId","RandomHelper","dropdownToggleClassName","styles","currentGroup","idx","showDivider","Tooltip","Actions","orderedActions","React.useMemo","b","buttonActions","moreActions","React.Fragment","ActionButton","iconButton","IconButton"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{U as a,al as C,S as l,H as p,M as v,m as T}from"./app-CSgTTsBh.js";import{C as y}from"./BlDVEZsX.chunk.js";import{P as $}from"./pkzD5BEm.chunk.js";var m=(e=>(e.Series="series",e.Playlist="playlist",e.Widget="widget",e.Folder="category",e.CategoryTree="categoryTree",e))(m||{});const d={sharedVideo:(e,i)=>a.urlBuilder(`/api/objects/${e}`,{shareId:i,query:l.VIDEO}),publicVideo:(e,i)=>a.urlBuilder(`/api/objects/${e}`,{query:"thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}",permissionFilterOption:$.StripMetadata,shareId:i}),getVideosById:e=>a.urlBuilder("{gateway}/v1/objects",{"query.video":l.VIDEO_COLLECTION,"query.clip":l.CLIP_COLLECTION,"query.interactive":l.INTERACTIVE_COLLECTION,id:e}),relatedVideos:e=>{const{videoId:i,context:t,collectionId:r,moviesAndTv:s,limit:n}=e,o={videoId:i,limit:n,query:l.VIDEO_COLLECTION};return t&&(t===m.Widget?o["context.widgetId"]=r:(o["context.collectionType"]=t,o["context.collectionId"]=r)),s&&(o["context.moviesAndTv"]=!0),a.urlBuilder("{gateway}/v1/suggestions/related-videos",o)}},f={video(e,i){return{url:a.urlBuilder(`{gateway}/v1/objects/${e}`,{query:l.VIDEO,permissionFilterOption:i}),publicUrl:a.urlBuilder(`/api/objects/${e}`,{query:T.VIDEO,permissionFilterOption:i}),key:`videos:${e}:${i}`}},publicVideo(e,i,t,r){return{url:d.publicVideo(e,i),key:`videos:${e}:public:${i}`,bootstrapName:`shared:object:${e}`,success:t,error:r}},sharedVideo(e,i,t,r){return{url:d.sharedVideo(e,i),key:`shared:video:${e}`,success:t,error:r}},myVideos(e,i){const{VIDEO_COLLECTION:t,CLIP_COLLECTION:r,INTERACTIVE:s}=l,n=`videos[${t}]{libraries.typeid:${v.WorkspaceCollection}}`,o=`clips[${r}]`,u=`interactives[${s}]{status:[${y.Published},${y.Draft}]}`,c={query:`(${n}|${o}|${u}){orderbydesc:id}`,permissionFilterOption:$.StripMetadata};return i&&(c.cursor=i),{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,c),key:`my:videos:${i}`}},videos(e,i){return{url:d.getVideosById(e),key:`videos:by:id:${e.join(",")}`,success:i}},watchHistoryVideos(e,i){return{url:d.getVideosById(e),key:`watch:history:videos:by:id:${e.join(",")}`,success:i}},updateVideo(e,i,t,r,s){return{key:`update:video:${e}`,url:`{gateway}/v1/objects/${e}`,type:p.PUT,data:i,success:t,error:r,always:s}},videoRatings(e,i){const t=e.map(r=>`id=${r}`);if(t.length)return{url:`/api/domain/v2/objects?query=rating&${t.join("&")}`,key:`video:ratings:by:id:${e.join(",")}`,normalizeOptions:{namespace:i}}},videoMixinAssocs(e,i){if(e.map(r=>`id=${r}`).length)return{url:a.urlBuilder("{gateway}/v1/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),publicUrl:a.urlBuilder("/api/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),key:`video:mixin:assocs:${e.join(",")}`,normalizeOptions:{namespace:i}}},getRestrictions(e){const i=e.slice().sort();return{url:`/api/domain/v1/restrictedobjects?objectTypeId=${v.Video}${i.map(t=>`&objectId=${t}`).join("")}`,key:`restrictions:${i.join(",")}`,normalizeOptions:{namespace:"domain",idAttribute:"objectId"}}},delete(e,i,t){return{url:`{gateway}/v1/objects/${e}`,key:`delete:video:${e}`,type:p.DELETE,success:i,error:t,invalidationKeys:["videos","search"]}},deleteBulk(e,i,t,r,s){const n=e.map(u=>`videoIds=${u}`).join("&"),o=[`categoryId=${t}`,`${n}`].join("&");return{url:`/api/domain/v1/libraries/${i}/videos?${o}`,key:`delete:bulk:video:${e.join(":")}:${i}:${t}`,type:p.DELETE,success:r,error:s,invalidationKeys:["videos","search"]}},relatedVideos(e){const{videoId:i,context:t,collectionId:r,moviesAndTv:s}=e;return{url:d.relatedVideos(e),key:`related:videos:${i}:${t}:${r}:${s}`}},collectionVideos(e,i,t,r,s,n){const o=C.getVideoSortParam(i),{VIDEO_COLLECTION:u,CLIP_COLLECTION:c,INTERACTIVE:b}=l,g=`videos[${u}]`,j=`clips[${c}]`,I=`interactives[${b}]{status:[${y.Published},${y.Draft}]}`,O={query:`(${g}|${j}|${I})${o?`{${o}}`:""}`,permissionFilterOption:$.FilterOut,...t?{cursor:t}:{}},V=["folder","videos",e,t,i].filter(E=>!!E).join(":");return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,O),key:V,success:r,error:s,always:n}},pointsOfInterest(e,i,t,r,s){const n={query:"{limit:100}",cursor:i};return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/pointsofinterest`,n),publicUrl:a.urlBuilder(`/api/objects/${e}/pointsofinterest`,n),key:`pointsofinterest:${e}${i?`:${i}`:""}`,success:t,error:r,always:s}},regionAlternatives(e,i,t,r){return{url:`/api/objects/videos/${e}/region-alternatives`,publicUrl:`/api/objects/videos/${e}/region-alternatives`,key:`video:regionAlternatives:${e}`,normalize:!1,success:i,error:t,always:r}}};export{f as V};
2
- //# sourceMappingURL=h4x3qWQ8.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"h4x3qWQ8.chunk.js","sources":["../../../../libs/shared/src/enums/RelatedVideosContext.ts","../../../../libs/shared/src/flight-requests/VideoRequests.ts"],"sourcesContent":["export enum RelatedVideosContext {\n Series = 'series',\n Playlist = 'playlist',\n Widget = 'widget',\n Folder = 'category',\n CategoryTree = 'categoryTree'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { PointOfInterestCollection, UpdateVideoRequest, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { RegionAlternative } from 'libs/shared/interfaces/models/RegionAlternative';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nconst endpoints = {\n sharedVideo: (id: string, shareId: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.VIDEO\n }),\n\n publicVideo: (id: string, shareId?: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: 'thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n\n getVideosById: (ids: string[]) => {\n return UrlHelper.urlBuilder('{gateway}/v1/objects', {\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'id': ids\n });\n },\n\n relatedVideos: (options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n limit: number;\n }) => {\n const { videoId, context, collectionId, moviesAndTv, limit } = options;\n\n const params: HashObject = {\n videoId,\n limit,\n query: SharedWithStatements.VIDEO_COLLECTION\n };\n\n if (context) {\n if (context === RelatedVideosContext.Widget) {\n params['context.widgetId'] = collectionId;\n } else {\n params['context.collectionType'] = context;\n params['context.collectionId'] = collectionId;\n }\n }\n\n if (moviesAndTv)\n params['context.moviesAndTv'] = true;\n\n return UrlHelper.urlBuilder('{gateway}/v1/suggestions/related-videos', params);\n }\n};\n\nexport const VideoRequests = {\n video(id: string, permissionFilterOption?: PermissionFilterOption): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.VIDEO,\n permissionFilterOption\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n query: PublicWithStatement.VIDEO,\n permissionFilterOption\n }),\n key: `videos:${id}:${permissionFilterOption}`\n };\n },\n\n publicVideo(\n id: string,\n shareId?: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.publicVideo(id, shareId),\n key: `videos:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedVideo(\n id: string,\n shareId: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.sharedVideo(id, shareId),\n key: `shared:video:${id}`,\n success,\n error\n };\n },\n\n myVideos(userId: string, cursor: string): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery}){orderbydesc:id}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, params),\n key: `my:videos:${cursor}`\n };\n },\n\n videos(ids: string[], success?: (videos: Video[]) => void): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n watchHistoryVideos(\n ids: string[],\n success?: (videos: Video[]) => void\n ): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `watch:history:videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n updateVideo(\n id: string,\n data: UpdateVideoRequest,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:video:${id}`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n always\n };\n },\n\n /**\n * This is simply an example to show the prototype for useVideoMixin\n * eventually there will be endpoints in domain that let us fetch members\n * without fetching the objects properties, so we can fetch stuff like\n * hasInteractives and isFavourited as subsequent calls\n */\n videoRatings(ids: string[], namespace?: string): Flight.Request {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n return {\n url: `/api/domain/v2/objects?query=rating&${params.join('&')}`,\n key: `video:ratings:by:id:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n videoMixinAssocs(ids: string[], namespace?: string): Flight.PublicRequest {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n /**\n * IMPORTANT!\n * \n * This request is used for BOTH clips and videos. This means these requests will fail if you\n * add assocs in the future that are not supported for both object types. If you find yourself in this\n * case, what you should do is:\n * \n * 1. Consider whether clips should support the assoc that you're hydrating for videos. In most cases,\n * I think they should, as we want clips and videos to basically support the same fields and metadata.\n * 2. If the above is false or can't be done right now, you will need to create a separate request for clips\n * and update the logic in useVideoMixin to handle this.\n */\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects`, {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n /**\n * We are intentionally NOT sorting the IDs here. This is because `useVideoMixin` wants to provide\n * the IDs in their original order so that the cache key here doesn't change for subsequent calls.\n * \n * Here is an example of a problem that would occur if we were sorting: say we search for something,\n * and load the first page of 25 results. The videos and clips here would have their IDs sorted in the cache\n * key, then fetched. Then, we scrolled down and fetched the next 25, leading to 50 IDs in the array. If we\n * sort the IDs in the key, the keys would change from the first request, leading to all of the videos/clips\n * from the first request being fetched a second time unnecessarily. Every time you'd fetch a new page, you'd\n * be making multiple unnecessary API calls.\n * \n * TL;DR: Don't sort the IDs here, `useVideoMixin` will handle that.\n */\n key: `video:mixin:assocs:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n getRestrictions(videoIds: string[]): Flight.Request {\n const sortedIds = videoIds.slice().sort();\n\n return {\n url: '/api/domain/v1/restrictedobjects'\n + `?objectTypeId=${MasterType.Video}${sortedIds.map(id => `&objectId=${id}`).join('')}`,\n key: `restrictions:${sortedIds.join(',')}`,\n normalizeOptions: {\n namespace: 'domain',\n idAttribute: 'objectId'\n }\n };\n },\n\n delete(videoId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}`,\n key: `delete:video:${videoId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n deleteBulk(\n videoId: string[],\n libraryId: string,\n categoryId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n const videoIds = videoId.map(id => `videoIds=${id}`).join('&');\n const params = [\n `categoryId=${categoryId}`,\n `${videoIds}`\n ].join('&');\n\n return {\n url: `/api/domain/v1/libraries/${libraryId}/videos?${params}`,\n key: `delete:bulk:video:${videoId.join(':')}:${libraryId}:${categoryId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n relatedVideos(options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n /**\n * This limit is intentionall not in the key. See useGetRelatedVideos for an explanation\n */\n limit: number;\n }): Flight.Request {\n const { videoId, context, collectionId, moviesAndTv } = options;\n\n return {\n url: endpoints.relatedVideos(options),\n key: `related:videos:${videoId}:${context}:${collectionId}:${moviesAndTv}`\n };\n },\n\n collectionVideos(\n collectionId: string,\n sort?: VideoSortType,\n cursor?: string,\n success?: (data: VideoCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery})${sortFilter ? `{${sortFilter}}` : ''}`,\n permissionFilterOption: PermissionFilterOption.FilterOut,\n ...(cursor ? { cursor } : {})\n };\n\n const key = [ 'folder', 'videos', collectionId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${collectionId}/members`, params),\n key,\n success,\n error,\n always\n };\n },\n\n pointsOfInterest(\n videoId: string,\n cursor?: string,\n success?: (data: PointOfInterestCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n const queryStringObj = { query: '{limit:100}', cursor };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}/pointsofinterest`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/pointsofinterest`, queryStringObj),\n key: `pointsofinterest:${videoId}${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n regionAlternatives(\n videoId: string,\n success?: (data: RegionAlternative[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n return {\n url: `/api/objects/videos/${videoId}/region-alternatives`,\n publicUrl: `/api/objects/videos/${videoId}/region-alternatives`,\n key: `video:regionAlternatives:${videoId}`,\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n"],"names":["RelatedVideosContext","endpoints","id","shareId","UrlHelper","SharedWithStatements","PermissionFilterOption","ids","options","videoId","context","collectionId","moviesAndTv","limit","params","VideoRequests","permissionFilterOption","PublicWithStatement","success","error","userId","cursor","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","MasterType","clipQuery","interactiveQuery","CurationStatus","data","always","HttpVerbs","namespace","i","videoIds","sortedIds","libraryId","categoryId","sort","sortFilter","VideoSortHelper","key","k","queryStringObj"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{ch as n,r as a,aO as s,ci as c,cj as i}from"./app-CSgTTsBh.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=hrQgoDjt.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hrQgoDjt.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{a1 as r,aQ as l,l as m,L as h,j as e,a as x,b as u,z as s,bx as j,aH as v,aA as T}from"./app-CSgTTsBh.js";import{a as f,T as R}from"./DSljAm9x.chunk.js";import{T as N,a as b}from"./BbAy6p0a.chunk.js";import{T as i}from"./DML3iinY.chunk.js";import{u as w}from"./BoNPAqR7.chunk.js";import"./e4J39NdV.chunk.js";import"./CSqMWPmN.chunk.js";import"./CY_ZEi17.chunk.js";import"./BlDVEZsX.chunk.js";import"./CljRBNOX.chunk.js";import"./DHEsU9tx.chunk.js";import"./Bod85SYB.chunk.js";import"./6FhUNBfx.chunk.js";import"./B4NQ482n.chunk.js";import"./-QmfGLIN.chunk.js";const a="tv.tvGuide",S=h.encloseNamespace(a);function z(n){const o=r(T.config()),t=r(i.region(n.region)),c=r(i.dateRange(n.region)),p=r(i.regions()),{setRegion:d}=w(),{showTvGuide:g}=l();return m({title:S("title")}),e.jsxs(e.Fragment,{children:[e.jsx(N,{region:t.data}),e.jsx(f,{dateRange:c.data,region:t.data}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(R,{active:"tv-guide",currentRegion:t.data,showTvGuide:g}),e.jsx(b,{currentRegion:t.data,regions:p.data,appLink:{application:u.TV,action:x.Tv.CHANNELS},onClick:d})]}),e.jsx("div",{className:"row",children:e.jsxs("div",{className:"col-6",children:[e.jsx("h1",{className:"h4",children:e.jsx(s,{namespace:a,phrase:"title"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph1"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph2"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph3"})}),o.data&&e.jsx(j,{href:`${o.data.onlineUrl}/login?returnUrl=/tv/guide`,openInNewTab:!0,svg:v,className:"btn btn-dark",children:e.jsx(s,{namespace:a,phrase:"cta"})})]})})]})}export{z as TvGuideView};
2
- //# sourceMappingURL=llc4Kymn.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llc4Kymn.chunk.js","sources":["../../src/apps/tv/views/tv-guide/TvGuideView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.tvGuide';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvGuideViewProps {\n region: string;\n}\n\nexport function TvGuideView(props: TvGuideViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='tv-guide'\n currentRegion={region.data}\n showTvGuide={showTvGuide}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n\n <div className='row'>\n <div className='col-6'>\n <h1 className='h4'>\n <Text namespace={namespace} phrase='title' />\n </h1>\n <p>\n <Text namespace={namespace} phrase='paragraph1' />\n </p>\n <p>\n <Text namespace={namespace} phrase='paragraph2' />\n </p>\n <p>\n <Text namespace={namespace} phrase='paragraph3' />\n </p>\n {config.data &&\n <IconButton\n href={`${config.data.onlineUrl}/login?returnUrl=/tv/guide`}\n openInNewTab\n svg={NewWindowSvg}\n className='btn btn-dark'\n >\n <Text namespace={namespace} phrase='cta' />\n </IconButton>\n }\n </div>\n </div>\n </>\n );\n}"],"names":["namespace","getPhrase","LanguageService","TvGuideView","props","config","Flight.useBasicFetch","ConfigRequests","region","TvRequests","dateRange","regions","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","useSetPageMetadata","jsxs","Fragment","jsx","TvSearchBar","TvInfoAlert","TvTabs","TvRegionSelect","AppChannels","Actions","Text","IconButton","NewWindowSvg"],"mappings":"ujBAwBA,MAAMA,EAAY,aACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASG,EAAYC,EAAsC,CAChE,MAAMC,EAASC,EAA6BC,EAAe,QAAQ,EAC7DC,EAASF,EAA+BG,EAAW,OAAOL,EAAM,MAAM,CAAC,EACvEM,EAAYJ,EAAkCG,EAAW,UAAUL,EAAM,MAAM,CAAC,EAChFO,EAAUL,EAAiCG,EAAW,SAAS,EAE/D,CAAE,UAAAG,CAAA,EAAcC,EAAA,EAChB,CAAE,YAAAC,CAAA,EAAgBC,EAAA,EAExB,OAAAC,EAAmB,CAAE,MAAOf,EAAU,OAAO,EAAG,EAG9CgB,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAY,OAAQZ,EAAO,IAAA,CAAM,QAEjCa,EAAA,CAAY,UAAWX,EAAU,KAAM,OAAQF,EAAO,KAAM,EAE7DS,EAAAA,KAAC,MAAA,CAAI,UAAU,iCACb,SAAA,CAAAE,EAAAA,IAACG,EAAA,CACC,OAAO,WACP,cAAed,EAAO,KACtB,YAAAM,CAAA,CAAA,EAGFK,EAAAA,IAACI,EAAA,CACC,cAAef,EAAO,KACtB,QAASG,EAAQ,KACjB,QAAS,CACP,YAAaa,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,QAASb,CAAA,CAAA,CACX,EACF,QAEC,MAAA,CAAI,UAAU,MACb,SAAAK,EAAAA,KAAC,MAAA,CAAI,UAAU,QACb,SAAA,CAAAE,EAAAA,IAAC,KAAA,CAAG,UAAU,KACZ,SAAAA,EAAAA,IAACO,GAAK,UAAA1B,EAAsB,OAAO,QAAQ,CAAA,CAC7C,QACC,IAAA,CACC,SAAAmB,MAACO,GAAK,UAAA1B,EAAsB,OAAO,aAAa,EAClD,QACC,IAAA,CACC,SAAAmB,MAACO,GAAK,UAAA1B,EAAsB,OAAO,aAAa,EAClD,QACC,IAAA,CACC,SAAAmB,MAACO,GAAK,UAAA1B,EAAsB,OAAO,aAAa,EAClD,EACCK,EAAO,MACNc,EAAAA,IAACQ,EAAA,CACC,KAAM,GAAGtB,EAAO,KAAK,SAAS,6BAC9B,aAAY,GACZ,IAAKuB,EACL,UAAU,eAEV,SAAAT,EAAAA,IAACO,EAAA,CAAK,UAAA1B,EAAsB,OAAO,KAAA,CAAM,CAAA,CAAA,CAC3C,CAAA,CAEJ,CAAA,CACF,CAAA,EACF,CAEJ"}
@@ -1,2 +0,0 @@
1
- var t=(a=>(a[a.FilterOut=0]="FilterOut",a[a.StripMetadata=1]="StripMetadata",a))(t||{});export{t as P};
2
- //# sourceMappingURL=pkzD5BEm.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pkzD5BEm.chunk.js","sources":["../../../../libs/shared/src/enums/PermissionFilterOption.ts"],"sourcesContent":["export enum PermissionFilterOption {\n FilterOut,\n StripMetadata\n}"],"names":["PermissionFilterOption"],"mappings":"AAAO,IAAKA,GAAAA,IACVA,EAAAA,EAAA,UAAA,CAAA,EAAA,YACAA,EAAAA,EAAA,cAAA,CAAA,EAAA,gBAFUA,IAAAA,GAAA,CAAA,CAAA"}
@@ -1,2 +0,0 @@
1
- import{R as i,A as o,a,b as n,j as r}from"./app-CSgTTsBh.js";import{u as s}from"./BoNPAqR7.chunk.js";import"./B4NQ482n.chunk.js";import"./-QmfGLIN.chunk.js";import"./DML3iinY.chunk.js";function f(){const{region:e,isLoading:t}=s();return i.useEffect(()=>{t||o.trigger({application:n.TV,action:a.Tv.CHANNELS,args:[e]},{replace:!0})},[e]),r.jsx(r.Fragment,{})}export{f as TvHomeView};
2
- //# sourceMappingURL=uM6EBrIh.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uM6EBrIh.chunk.js","sources":["../../src/apps/tv/views/tv-home/TvHomeView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TvHomeView(): JSX.Element {\n const { region, isLoading } = useSelectedRegion();\n\n React.useEffect(() => {\n if (isLoading)\n return;\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS,\n args: [region]\n }, { replace: true });\n }, [region]);\n\n return <></>;\n}"],"names":["TvHomeView","region","isLoading","useSelectedRegion","React","Core.AppLinkHelper","AppChannels","Actions","jsx","Fragment"],"mappings":"yLAUO,SAASA,GAA0B,CACxC,KAAM,CAAE,OAAAC,EAAQ,UAAAC,CAAA,EAAcC,EAAA,EAE9B,OAAAC,EAAM,UAAU,IAAM,CAChBF,GAGJG,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,SACnB,KAAM,CAACN,CAAM,CAAA,EACZ,CAAE,QAAS,GAAM,CACtB,EAAG,CAACA,CAAM,CAAC,EAEJO,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CACX"}
@@ -1,2 +0,0 @@
1
- import{X as me,T as te,j as n,I as be,r as I,v as ge,A as pe,R as ue,z as B,$ as ye,L as v,w as G,aN as le,U as ve,a1 as N,a0 as xe,al as Te,P as Le,c as z,a3 as Ne,aO as de,M as J,aA as Ae}from"./app-CSgTTsBh.js";import{l as Ce}from"./DZNkb9vM.chunk.js";import{u as Se,F as X,l as M,a as _e}from"./B2yKZtpc.chunk.js";import{A as je}from"./gmJLp4bX.chunk.js";import{C as Pe}from"./C142tn-B.chunk.js";import{H as ce}from"./Kj832An8.chunk.js";import{L as Y}from"./C48ktK5n.chunk.js";import{V as ke}from"./h4x3qWQ8.chunk.js";import{u as Fe}from"./hrQgoDjt.chunk.js";import{u as Ee}from"./JjH0M1sw.chunk.js";import{V as K}from"./Bx7TgL0C.chunk.js";import"./BfpVRvba.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./CljRBNOX.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",$e="_selected_u0qyb_172",Ue="_actions_u0qyb_175",we="_node_u0qyb_185",He="_noActions_u0qyb_188",b={tree:Ie,text:Re,chevron:Oe,disabled:De,root:Me,selected:$e,actions:Ue,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(),j()};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 j(){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}j()}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:j,ref:h,children:[_&&n.jsx("div",{className:b.chevron,onClick:w,children:n.jsx(Pe,{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(je,{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(X,{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(X,{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(X,{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",ze=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 U=(e=>(e[e.MasterVideo=1]="MasterVideo",e[e.MasterClip=2]="MasterClip",e[e.MasterInteractive=3]="MasterInteractive",e))(U||{});const $=v.encloseNamespace("shared.errorMessageHelper"),Je={"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"},Xe={"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"},Ye={libraryApiError(e){var r;const t=Je[(r=e==null?void 0:e.responseJSON)==null?void 0:r.type];return $(t||"somethingWentWrong")},inviteColleagueError(e){var r;const t=Xe[(r=e==null?void 0:e.responseJSON)==null?void 0:r.type];return $(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)}},Ke={[J.Video]:U.MasterVideo,[J.Clip]:U.MasterClip,[J.Interactive]:U.MasterInteractive},Qe="libraries.addToLibrary",A=v.encloseNamespace(Qe);function mt(e){var re,ie,ne;const t=N(Ne.currentUser()),r=N(Y.librariesWithCategories()),i=N(Y.libraryRequestLibraries()),a=K.getVideoRequest(e.id,e.typeId),o=N(a),f=(K.isClip(o.data)||K.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 j(){var p,L,D,P,k,ae,oe,se;let s=null,u=(D=z.first((L=(p=o.data)==null?void 0:p.libraries)==null?void 0:L.data))==null?void 0:D.id;if(u&&((P=o.data.categories.data)!=null&&P.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=z.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}=j(),D={objectId:e.id.toString(),objectType:Ke[e.typeId],message:s.comment,sourceLibraryId:p,destinationLibraryId:+s.library.id,metadata:{destinationCategoryId:+s.folder.id,sourceCategoryId:L}};C(Y.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(P=>{const k=Ye.libraryApiError(P);x(P,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:z.first(g),folder:null,comment:""},validationSchema:ze,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=vtfUwDER.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vtfUwDER.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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"}
package/vite.config.ts DELETED
@@ -1,6 +0,0 @@
1
- import config from '../../libs/tooling/vite/vite.config';
2
-
3
- export default config({
4
- root: __dirname,
5
- port: 7000
6
- });