@clickview/exchange 0.53.0-rc.4 → 0.53.0-rc.5

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 (193) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/en.json +1 -1
  3. package/dist/scripts/{DFLHDfV1.chunk.js → B-mi70jm.chunk.js} +2 -2
  4. package/dist/scripts/{DFLHDfV1.chunk.js.map → B-mi70jm.chunk.js.map} +1 -1
  5. package/dist/scripts/{B5ab16ux.chunk.js → B-tbSNDR.chunk.js} +2 -2
  6. package/dist/scripts/{B5ab16ux.chunk.js.map → B-tbSNDR.chunk.js.map} +1 -1
  7. package/dist/scripts/{DcKDSzxe.chunk.js → B0xEoBKV.chunk.js} +2 -2
  8. package/dist/scripts/{DcKDSzxe.chunk.js.map → B0xEoBKV.chunk.js.map} +1 -1
  9. package/dist/scripts/B4WSuL_R.chunk.js +2 -0
  10. package/dist/scripts/{CZVuzuXf.chunk.js.map → B4WSuL_R.chunk.js.map} +1 -1
  11. package/dist/scripts/{C1lszv3N.chunk.js → B60atIyl.chunk.js} +2 -2
  12. package/dist/scripts/{C1lszv3N.chunk.js.map → B60atIyl.chunk.js.map} +1 -1
  13. package/dist/scripts/{CllCtq0-.chunk.js → BCqWrOur.chunk.js} +2 -2
  14. package/dist/scripts/{CllCtq0-.chunk.js.map → BCqWrOur.chunk.js.map} +1 -1
  15. package/dist/scripts/{BHUkwlPw.chunk.js → BJeXgaQK.chunk.js} +2 -2
  16. package/dist/scripts/{BHUkwlPw.chunk.js.map → BJeXgaQK.chunk.js.map} +1 -1
  17. package/dist/scripts/{DQgnWU-I.chunk.js → BYbvldmA.chunk.js} +2 -2
  18. package/dist/scripts/{DQgnWU-I.chunk.js.map → BYbvldmA.chunk.js.map} +1 -1
  19. package/dist/scripts/{CbEBLWWY.chunk.js → BZiMjWc1.chunk.js} +2 -2
  20. package/dist/scripts/{CbEBLWWY.chunk.js.map → BZiMjWc1.chunk.js.map} +1 -1
  21. package/dist/scripts/{CK7qxCzb.chunk.js → B_ipiOyh.chunk.js} +2 -2
  22. package/dist/scripts/{CK7qxCzb.chunk.js.map → B_ipiOyh.chunk.js.map} +1 -1
  23. package/dist/scripts/{CqnxxpxX.chunk.js → Bb6yXi56.chunk.js} +2 -2
  24. package/dist/scripts/{CqnxxpxX.chunk.js.map → Bb6yXi56.chunk.js.map} +1 -1
  25. package/dist/scripts/{B9eYOwJp.chunk.js → BdbdAFu1.chunk.js} +2 -2
  26. package/dist/scripts/{B9eYOwJp.chunk.js.map → BdbdAFu1.chunk.js.map} +1 -1
  27. package/dist/scripts/{ov91D2RT.chunk.js → BhjoIeom.chunk.js} +2 -2
  28. package/dist/scripts/{ov91D2RT.chunk.js.map → BhjoIeom.chunk.js.map} +1 -1
  29. package/dist/scripts/Bho9orFk.chunk.js +2 -0
  30. package/dist/scripts/{Dtn-5-Dc.chunk.js.map → Bho9orFk.chunk.js.map} +1 -1
  31. package/dist/scripts/{D-hP0WNi.chunk.js → Bi7c3pdT.chunk.js} +2 -2
  32. package/dist/scripts/{D-hP0WNi.chunk.js.map → Bi7c3pdT.chunk.js.map} +1 -1
  33. package/dist/scripts/{LHI3oaCV.chunk.js → BkHazlQk.chunk.js} +2 -2
  34. package/dist/scripts/{LHI3oaCV.chunk.js.map → BkHazlQk.chunk.js.map} +1 -1
  35. package/dist/scripts/{CpLpE8Im.chunk.js → Bl-wWq3F.chunk.js} +3 -3
  36. package/dist/scripts/{CpLpE8Im.chunk.js.map → Bl-wWq3F.chunk.js.map} +1 -1
  37. package/dist/scripts/{DSEhNJwx.chunk.js → BpAshDEq.chunk.js} +2 -2
  38. package/dist/scripts/{DSEhNJwx.chunk.js.map → BpAshDEq.chunk.js.map} +1 -1
  39. package/dist/scripts/Br8_3pQR.chunk.js +2 -0
  40. package/dist/scripts/{CeXuvOA5.chunk.js.map → Br8_3pQR.chunk.js.map} +1 -1
  41. package/dist/scripts/{BeJhgZUK.chunk.js → BrVFMC8Z.chunk.js} +2 -2
  42. package/dist/scripts/{BeJhgZUK.chunk.js.map → BrVFMC8Z.chunk.js.map} +1 -1
  43. package/dist/scripts/{DRF-fC47.chunk.js → BtCxZZ5N.chunk.js} +2 -2
  44. package/dist/scripts/{DRF-fC47.chunk.js.map → BtCxZZ5N.chunk.js.map} +1 -1
  45. package/dist/scripts/{DQqQBQqj.chunk.js → BtXeOaIU.chunk.js} +2 -2
  46. package/dist/scripts/{DQqQBQqj.chunk.js.map → BtXeOaIU.chunk.js.map} +1 -1
  47. package/dist/scripts/{CQBoRtuI.chunk.js → BttaqS1Q.chunk.js} +2 -2
  48. package/dist/scripts/{CQBoRtuI.chunk.js.map → BttaqS1Q.chunk.js.map} +1 -1
  49. package/dist/scripts/{CSPZpMnD.chunk.js → BwCUdl81.chunk.js} +2 -2
  50. package/dist/scripts/{CSPZpMnD.chunk.js.map → BwCUdl81.chunk.js.map} +1 -1
  51. package/dist/scripts/{CmFTfavO.chunk.js → Bxof9qR3.chunk.js} +2 -2
  52. package/dist/scripts/{CmFTfavO.chunk.js.map → Bxof9qR3.chunk.js.map} +1 -1
  53. package/dist/scripts/{DdtiM4q4.chunk.js → C4nvmLjJ.chunk.js} +2 -2
  54. package/dist/scripts/{DdtiM4q4.chunk.js.map → C4nvmLjJ.chunk.js.map} +1 -1
  55. package/dist/scripts/{Bx8ThkKE.chunk.js → C5MXXDzO.chunk.js} +2 -2
  56. package/dist/scripts/{Bx8ThkKE.chunk.js.map → C5MXXDzO.chunk.js.map} +1 -1
  57. package/dist/scripts/{C5uDJfs-.chunk.js → C8mmLu5P.chunk.js} +2 -2
  58. package/dist/scripts/{C5uDJfs-.chunk.js.map → C8mmLu5P.chunk.js.map} +1 -1
  59. package/dist/scripts/{BqNxbGAd.chunk.js → C8wzS3f9.chunk.js} +2 -2
  60. package/dist/scripts/{BqNxbGAd.chunk.js.map → C8wzS3f9.chunk.js.map} +1 -1
  61. package/dist/scripts/{D-4Cgpy-.chunk.js → CBjqJQeP.chunk.js} +2 -2
  62. package/dist/scripts/{D-4Cgpy-.chunk.js.map → CBjqJQeP.chunk.js.map} +1 -1
  63. package/dist/scripts/{BevPAwSq.chunk.js → CI-iVFxS.chunk.js} +2 -2
  64. package/dist/scripts/{BevPAwSq.chunk.js.map → CI-iVFxS.chunk.js.map} +1 -1
  65. package/dist/scripts/{BK8xvE8O.chunk.js → CIYnyMM7.chunk.js} +2 -2
  66. package/dist/scripts/{BK8xvE8O.chunk.js.map → CIYnyMM7.chunk.js.map} +1 -1
  67. package/dist/scripts/{BVZ_6O_2.chunk.js → CJD2tQAP.chunk.js} +2 -2
  68. package/dist/scripts/{BVZ_6O_2.chunk.js.map → CJD2tQAP.chunk.js.map} +1 -1
  69. package/dist/scripts/CJuVEV64.chunk.js +2 -0
  70. package/dist/scripts/{D1g4_5rR.chunk.js.map → CJuVEV64.chunk.js.map} +1 -1
  71. package/dist/scripts/{BZJ9wVLS.chunk.js → CR6eQFf-.chunk.js} +2 -2
  72. package/dist/scripts/{BZJ9wVLS.chunk.js.map → CR6eQFf-.chunk.js.map} +1 -1
  73. package/dist/scripts/{LvDJgDKk.chunk.js → CRi1yEnr.chunk.js} +2 -2
  74. package/dist/scripts/{LvDJgDKk.chunk.js.map → CRi1yEnr.chunk.js.map} +1 -1
  75. package/dist/scripts/{C0U8L3bs.chunk.js → CSKX6jCV.chunk.js} +2 -2
  76. package/dist/scripts/{C0U8L3bs.chunk.js.map → CSKX6jCV.chunk.js.map} +1 -1
  77. package/dist/scripts/{BgKdA1OP.chunk.js → CUOLims3.chunk.js} +2 -2
  78. package/dist/scripts/{BgKdA1OP.chunk.js.map → CUOLims3.chunk.js.map} +1 -1
  79. package/dist/scripts/{Cwb-wgJ-.chunk.js → CY2gzjHY.chunk.js} +2 -2
  80. package/dist/scripts/{Cwb-wgJ-.chunk.js.map → CY2gzjHY.chunk.js.map} +1 -1
  81. package/dist/scripts/C_AwqPr_.chunk.js +2 -0
  82. package/dist/scripts/{D2Szos_W.chunk.js.map → C_AwqPr_.chunk.js.map} +1 -1
  83. package/dist/scripts/{CVYxTfiV.chunk.js → CakiFvV4.chunk.js} +2 -2
  84. package/dist/scripts/{CVYxTfiV.chunk.js.map → CakiFvV4.chunk.js.map} +1 -1
  85. package/dist/scripts/{BcZspO6C.chunk.js → Cb27J2-B.chunk.js} +2 -2
  86. package/dist/scripts/{BcZspO6C.chunk.js.map → Cb27J2-B.chunk.js.map} +1 -1
  87. package/dist/scripts/{CJZbn4PU.chunk.js → CdVUBGIW.chunk.js} +2 -2
  88. package/dist/scripts/{CJZbn4PU.chunk.js.map → CdVUBGIW.chunk.js.map} +1 -1
  89. package/dist/scripts/CdmZcJJE.chunk.js +2 -0
  90. package/dist/scripts/{CjttP5Uk.chunk.js.map → CdmZcJJE.chunk.js.map} +1 -1
  91. package/dist/scripts/{e3PHoSfW.chunk.js → CmIyH6d9.chunk.js} +2 -2
  92. package/dist/scripts/{e3PHoSfW.chunk.js.map → CmIyH6d9.chunk.js.map} +1 -1
  93. package/dist/scripts/{r83d385M.chunk.js → Cpbdo5JA.chunk.js} +2 -2
  94. package/dist/scripts/{r83d385M.chunk.js.map → Cpbdo5JA.chunk.js.map} +1 -1
  95. package/dist/scripts/{CjbS9gjG.chunk.js → Cpe75H8y.chunk.js} +2 -2
  96. package/dist/scripts/{CjbS9gjG.chunk.js.map → Cpe75H8y.chunk.js.map} +1 -1
  97. package/dist/scripts/{BZ1tO2w1.chunk.js → CqXGUZGd.chunk.js} +2 -2
  98. package/dist/scripts/{BZ1tO2w1.chunk.js.map → CqXGUZGd.chunk.js.map} +1 -1
  99. package/dist/scripts/{rJhp74_5.chunk.js → Cse_a4SB.chunk.js} +2 -2
  100. package/dist/scripts/{rJhp74_5.chunk.js.map → Cse_a4SB.chunk.js.map} +1 -1
  101. package/dist/scripts/{CrejgQYb.chunk.js → CtBCUmkx.chunk.js} +2 -2
  102. package/dist/scripts/{CrejgQYb.chunk.js.map → CtBCUmkx.chunk.js.map} +1 -1
  103. package/dist/scripts/{rHycMxyI.chunk.js → CvlJsC2N.chunk.js} +2 -2
  104. package/dist/scripts/{rHycMxyI.chunk.js.map → CvlJsC2N.chunk.js.map} +1 -1
  105. package/dist/scripts/{rv4f8H6-.chunk.js → CwrB0rxp.chunk.js} +2 -2
  106. package/dist/scripts/{rv4f8H6-.chunk.js.map → CwrB0rxp.chunk.js.map} +1 -1
  107. package/dist/scripts/{BUmvIVcf.chunk.js → D32zb_D4.chunk.js} +2 -2
  108. package/dist/scripts/{BUmvIVcf.chunk.js.map → D32zb_D4.chunk.js.map} +1 -1
  109. package/dist/scripts/{B4V5N8Aj.chunk.js → D4IS2gly.chunk.js} +2 -2
  110. package/dist/scripts/{B4V5N8Aj.chunk.js.map → D4IS2gly.chunk.js.map} +1 -1
  111. package/dist/scripts/{CsxfXB_f.chunk.js → D62fgP9E.chunk.js} +2 -2
  112. package/dist/scripts/{CsxfXB_f.chunk.js.map → D62fgP9E.chunk.js.map} +1 -1
  113. package/dist/scripts/{DDbz6pxh.chunk.js → D6KwovjJ.chunk.js} +2 -2
  114. package/dist/scripts/{DDbz6pxh.chunk.js.map → D6KwovjJ.chunk.js.map} +1 -1
  115. package/dist/scripts/{CJfEp2eL.chunk.js → D80MqhUE.chunk.js} +2 -2
  116. package/dist/scripts/{CJfEp2eL.chunk.js.map → D80MqhUE.chunk.js.map} +1 -1
  117. package/dist/scripts/{fXlIwRMe.chunk.js → DBukvchw.chunk.js} +2 -2
  118. package/dist/scripts/{fXlIwRMe.chunk.js.map → DBukvchw.chunk.js.map} +1 -1
  119. package/dist/scripts/{C6L3Q2Qr.chunk.js → DCKHN9x6.chunk.js} +2 -2
  120. package/dist/scripts/{C6L3Q2Qr.chunk.js.map → DCKHN9x6.chunk.js.map} +1 -1
  121. package/dist/scripts/{bTy6Dmvr.chunk.js → DGcpkvpe.chunk.js} +2 -2
  122. package/dist/scripts/{bTy6Dmvr.chunk.js.map → DGcpkvpe.chunk.js.map} +1 -1
  123. package/dist/scripts/DHkkcZFt.chunk.js +2 -0
  124. package/dist/scripts/{BrXQ02P1.chunk.js.map → DHkkcZFt.chunk.js.map} +1 -1
  125. package/dist/scripts/{Dtb7_e7t.chunk.js → DHlQlWkE.chunk.js} +2 -2
  126. package/dist/scripts/{Dtb7_e7t.chunk.js.map → DHlQlWkE.chunk.js.map} +1 -1
  127. package/dist/scripts/{Bo3WoX3a.chunk.js → DJrX_udN.chunk.js} +2 -2
  128. package/dist/scripts/{Bo3WoX3a.chunk.js.map → DJrX_udN.chunk.js.map} +1 -1
  129. package/dist/scripts/DKP8OSLt.chunk.js +2 -0
  130. package/dist/scripts/{EXqfWnts.chunk.js.map → DKP8OSLt.chunk.js.map} +1 -1
  131. package/dist/scripts/{BDTzvMwe.chunk.js → DPihVRin.chunk.js} +2 -2
  132. package/dist/scripts/{BDTzvMwe.chunk.js.map → DPihVRin.chunk.js.map} +1 -1
  133. package/dist/scripts/{DqA_qmQz.chunk.js → DSUbR6Ld.chunk.js} +2 -2
  134. package/dist/scripts/{DqA_qmQz.chunk.js.map → DSUbR6Ld.chunk.js.map} +1 -1
  135. package/dist/scripts/{DgCSpWkC.chunk.js → DTQrc2Wc.chunk.js} +2 -2
  136. package/dist/scripts/{DgCSpWkC.chunk.js.map → DTQrc2Wc.chunk.js.map} +1 -1
  137. package/dist/scripts/{DOwzdCZ2.chunk.js → DdGmmqcK.chunk.js} +2 -2
  138. package/dist/scripts/{DOwzdCZ2.chunk.js.map → DdGmmqcK.chunk.js.map} +1 -1
  139. package/dist/scripts/{DnWI-onh.chunk.js → DezZNCrr.chunk.js} +2 -2
  140. package/dist/scripts/{DnWI-onh.chunk.js.map → DezZNCrr.chunk.js.map} +1 -1
  141. package/dist/scripts/{DEH_8veD.chunk.js → DsEwMbUK.chunk.js} +2 -2
  142. package/dist/scripts/{DEH_8veD.chunk.js.map → DsEwMbUK.chunk.js.map} +1 -1
  143. package/dist/scripts/{Ck7ICj8m.chunk.js → DuUYsdgx.chunk.js} +2 -2
  144. package/dist/scripts/{Ck7ICj8m.chunk.js.map → DuUYsdgx.chunk.js.map} +1 -1
  145. package/dist/scripts/{DuHONSHj.chunk.js → DwEB5UWK.chunk.js} +2 -2
  146. package/dist/scripts/{DuHONSHj.chunk.js.map → DwEB5UWK.chunk.js.map} +1 -1
  147. package/dist/scripts/{2cWOXJSc.chunk.js → Io7g60l1.chunk.js} +2 -2
  148. package/dist/scripts/{2cWOXJSc.chunk.js.map → Io7g60l1.chunk.js.map} +1 -1
  149. package/dist/scripts/{XZOjwf5m.chunk.js → Kl0OBl_7.chunk.js} +2 -2
  150. package/dist/scripts/{XZOjwf5m.chunk.js.map → Kl0OBl_7.chunk.js.map} +1 -1
  151. package/dist/scripts/{EZNN4Yu0.chunk.js → L5XMY5e5.chunk.js} +2 -2
  152. package/dist/scripts/{EZNN4Yu0.chunk.js.map → L5XMY5e5.chunk.js.map} +1 -1
  153. package/dist/scripts/{jduQkbdO.chunk.js → N0_8Eite.chunk.js} +2 -2
  154. package/dist/scripts/{jduQkbdO.chunk.js.map → N0_8Eite.chunk.js.map} +1 -1
  155. package/dist/scripts/{Bk8pUghK.chunk.js → PK8MTnH4.chunk.js} +2 -2
  156. package/dist/scripts/{Bk8pUghK.chunk.js.map → PK8MTnH4.chunk.js.map} +1 -1
  157. package/dist/scripts/{CeOQ6-zQ.chunk.js → RBxC7AKW.chunk.js} +2 -2
  158. package/dist/scripts/{CeOQ6-zQ.chunk.js.map → RBxC7AKW.chunk.js.map} +1 -1
  159. package/dist/scripts/{oHfhDsTp.chunk.js → Rwi7StPz.chunk.js} +2 -2
  160. package/dist/scripts/{oHfhDsTp.chunk.js.map → Rwi7StPz.chunk.js.map} +1 -1
  161. package/dist/scripts/{kRwTHNNb.chunk.js → WTzdZQUn.chunk.js} +2 -2
  162. package/dist/scripts/{kRwTHNNb.chunk.js.map → WTzdZQUn.chunk.js.map} +1 -1
  163. package/dist/scripts/{BswyFk_N.chunk.js → a1BWyh3I.chunk.js} +2 -2
  164. package/dist/scripts/{BswyFk_N.chunk.js.map → a1BWyh3I.chunk.js.map} +1 -1
  165. package/dist/scripts/{app-B9-iRU1r.js → app-YVcc0mcr.js} +3 -3
  166. package/dist/scripts/{app-B9-iRU1r.js.map → app-YVcc0mcr.js.map} +1 -1
  167. package/dist/scripts/{B574uaRU.chunk.js → dSRpz5ai.chunk.js} +2 -2
  168. package/dist/scripts/{B574uaRU.chunk.js.map → dSRpz5ai.chunk.js.map} +1 -1
  169. package/dist/scripts/{D0odoQbM.chunk.js → fkoL2rxf.chunk.js} +2 -2
  170. package/dist/scripts/{D0odoQbM.chunk.js.map → fkoL2rxf.chunk.js.map} +1 -1
  171. package/dist/scripts/{DbBmb_UT.chunk.js → gnYc5RVO.chunk.js} +2 -2
  172. package/dist/scripts/{DbBmb_UT.chunk.js.map → gnYc5RVO.chunk.js.map} +1 -1
  173. package/dist/scripts/{DbhlPXNV.chunk.js → mrKudPlz.chunk.js} +2 -2
  174. package/dist/scripts/{DbhlPXNV.chunk.js.map → mrKudPlz.chunk.js.map} +1 -1
  175. package/dist/scripts/{DCEbF62l.chunk.js → sBvSQI9I.chunk.js} +2 -2
  176. package/dist/scripts/{DCEbF62l.chunk.js.map → sBvSQI9I.chunk.js.map} +1 -1
  177. package/dist/scripts/{CZHoEn2m.chunk.js → sqBAxDOa.chunk.js} +2 -2
  178. package/dist/scripts/{CZHoEn2m.chunk.js.map → sqBAxDOa.chunk.js.map} +1 -1
  179. package/dist/scripts/{Bbct_sP7.chunk.js → teFtDXco.chunk.js} +2 -2
  180. package/dist/scripts/{Bbct_sP7.chunk.js.map → teFtDXco.chunk.js.map} +1 -1
  181. package/dist/scripts/{CV5zDyPS.chunk.js → v_B4I3Qe.chunk.js} +2 -2
  182. package/dist/scripts/{CV5zDyPS.chunk.js.map → v_B4I3Qe.chunk.js.map} +1 -1
  183. package/dist/scripts/{CoJMfNPY.chunk.js → wfZZ1M4z.chunk.js} +2 -2
  184. package/dist/scripts/{CoJMfNPY.chunk.js.map → wfZZ1M4z.chunk.js.map} +1 -1
  185. package/package.json +1 -1
  186. package/dist/scripts/BrXQ02P1.chunk.js +0 -2
  187. package/dist/scripts/CZVuzuXf.chunk.js +0 -2
  188. package/dist/scripts/CeXuvOA5.chunk.js +0 -2
  189. package/dist/scripts/CjttP5Uk.chunk.js +0 -2
  190. package/dist/scripts/D1g4_5rR.chunk.js +0 -2
  191. package/dist/scripts/D2Szos_W.chunk.js +0 -2
  192. package/dist/scripts/Dtn-5-Dc.chunk.js +0 -2
  193. package/dist/scripts/EXqfWnts.chunk.js +0 -2
@@ -1,2 +1,2 @@
1
- import{j as e,ak as B,al as c,am as R,B as U,ac as q,af as H,ae as M,ad as O,aj as G,a3 as g,l as z,an as D,ao as Y,V as Q,a5 as W,M as $,L as J}from"./app-B9-iRU1r.js";import{A as K}from"./LvDJgDKk.chunk.js";import{P as X,u as Z,F as _}from"./Bk8pUghK.chunk.js";import{V as ee,u as te,a as se}from"./fXlIwRMe.chunk.js";import{h as ae}from"./kRwTHNNb.chunk.js";import{L as f}from"./CSPZpMnD.chunk.js";import{u as re}from"./C1lszv3N.chunk.js";import{u as oe,a as ie}from"./DnWI-onh.chunk.js";import{u as ne}from"./D2Szos_W.chunk.js";import{P as b,I as de,u as ce}from"./D-4Cgpy-.chunk.js";import{E as me}from"./Dtb7_e7t.chunk.js";import{E as le}from"./Ck7ICj8m.chunk.js";import{E as ue}from"./BHUkwlPw.chunk.js";import{a as he,u as xe,g as j}from"./BqNxbGAd.chunk.js";import{B as pe,V as ge,P as fe}from"./BcZspO6C.chunk.js";import"./CK7qxCzb.chunk.js";import"./CQBoRtuI.chunk.js";import"./DSEhNJwx.chunk.js";import"./BevPAwSq.chunk.js";import"./DQqQBQqj.chunk.js";import"./B5ab16ux.chunk.js";import"./EXqfWnts.chunk.js";import"./C6L3Q2Qr.chunk.js";import"./BlDVEZsX.chunk.js";import"./Bbct_sP7.chunk.js";import"./pkzD5BEm.chunk.js";import"./2cWOXJSc.chunk.js";import"./DgCSpWkC.chunk.js";import"./DEH_8veD.chunk.js";import"./EZNN4Yu0.chunk.js";import"./CV5zDyPS.chunk.js";import"./CeOQ6-zQ.chunk.js";import"./_sYSSSUN.chunk.js";import"./Kj832An8.chunk.js";import"./DRF-fC47.chunk.js";import"./CqnxxpxX.chunk.js";import"./DcKDSzxe.chunk.js";import"./C0U8L3bs.chunk.js";import"./CmFTfavO.chunk.js";const je="exchange.exchangeFolderEmptyState";function be(){return e.jsx(B.Provider,{value:je,children:e.jsxs(c,{children:[e.jsx(c.Image,{src:R.EmptyStates.FOLDER}),e.jsx(c.Heading,{children:e.jsx(U,{phrase:"heading"})})]})})}function Fe(t){var r;return!((r=t.videos)!=null&&r.length)&&!t.isFetching?e.jsx(be,{}):e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e.jsx(pe,{breadcrumbs:t.breadcrumbs}),e.jsx(ge,{variant:"outline-dark",type:t.sort,getSortAppLink:t.getSortAppLink,analyticsOptions:{location:O.VideoListHeader,entity:M.Video,actionType:H.Sort,workflowPhase:q.Complete},includeProductionYear:!0})]}),t.videos?e.jsx(ee,{videos:t.videos,getVideoAppLink:he,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:t.commonVideoProps}):e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})}),(t.hasMore||t.isFetching)&&e.jsx(de,{isFetching:t.isFetching,fetchNext:t.fetchNext,nextCursor:t.nextCursor})]})}function Se(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"partial-loading-background h2 mb-3 w-25",children:" "}),e.jsx("div",{className:"mt-1 mb-2",children:e.jsx(X,{})}),e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"mb-3",children:e.jsx(fe,{})}),e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})})]})]})}const ve="exchange.exchangeFolder",Le=J.encloseNamespace(ve);function ct(t){var x,p;const r=G(),F=re(),n=g(W.currentUser()),a=g(f.folder(t.folderId)),{isUserCurator:S,openInCurationStudioLabel:v,getOpenInCurationStudioLink:L}=oe(),m=s=>f.childFolders(a.data.id,s),V=s=>r(m(s)),o=Z(a.data&&m,V);z({title:(x=a.data)==null?void 0:x.name}),ne([a]);const{commonVideoProps:E}=te(),d=!!n.data&&D.getOrSetSortType(n.data.id,t.sort,Y.ProductionYear),{items:i,hasMore:N,isFetching:P,nextCursor:C}=ce(l,u,A);function l(s){return ue.folderVideos(t.folderId,d,s)}function u(s){return r(l(s))}function A(s,T){if(s===1)return ae(T);F.error(Le("error"))}function y(){return S?[{label:v,openInNewTab:!0,href:L($.Category,a.data.id)}]:[]}const k=xe(t.folderId,t.sort),I=ie("video-list"),h=((p=o==null?void 0:o.items)==null?void 0:p.length)>0,w=a.hasCompleted&&n.hasCompleted&&o.hasCompleted;return e.jsxs(se.Provider,{value:I,children:[e.jsxs("div",{className:"mb-3",children:[e.jsx(me,{}),e.jsx(le,{active:"categories"})]}),w?e.jsxs(e.Fragment,{children:[a.data&&e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("h1",{className:"h2 me-1 mb-0",children:a.data.name}),e.jsx(K,{actions:y(),actionsDropdownClassName:"btn btn-sm",dropdownToggleSvgSize:Q.Standard})]}),h&&e.jsx("div",{className:"mx-n2",children:e.jsx(_,{folders:o.items,getAppLink:s=>j(s,d),expandFolders:!(i!=null&&i.length)})}),e.jsx("div",{className:"pb-3",children:e.jsx(Fe,{videos:i,hasSubFolders:h,hasMore:N,isFetching:P,fetchNext:u,nextCursor:C,sort:d,breadcrumbs:k,getSortAppLink:s=>j(a.data,s),commonVideoProps:E})})]}):e.jsx(Se,{})]})}export{ct as ExchangeFolderView};
2
- //# sourceMappingURL=jduQkbdO.chunk.js.map
1
+ import{j as e,ak as B,al as c,am as R,B as U,ac as q,af as H,ae as M,ad as O,aj as G,a3 as g,l as z,an as D,ao as Y,V as Q,a5 as W,M as $,L as J}from"./app-YVcc0mcr.js";import{A as K}from"./CRi1yEnr.chunk.js";import{P as X,u as Z,F as _}from"./PK8MTnH4.chunk.js";import{V as ee,u as te,a as se}from"./DBukvchw.chunk.js";import{h as ae}from"./WTzdZQUn.chunk.js";import{L as f}from"./BwCUdl81.chunk.js";import{u as re}from"./B60atIyl.chunk.js";import{u as oe,a as ie}from"./DezZNCrr.chunk.js";import{u as ne}from"./C_AwqPr_.chunk.js";import{P as b,I as de,u as ce}from"./CBjqJQeP.chunk.js";import{E as me}from"./DHlQlWkE.chunk.js";import{E as le}from"./DuUYsdgx.chunk.js";import{E as ue}from"./BJeXgaQK.chunk.js";import{a as he,u as xe,g as j}from"./C8wzS3f9.chunk.js";import{B as pe,V as ge,P as fe}from"./Cb27J2-B.chunk.js";import"./B_ipiOyh.chunk.js";import"./BttaqS1Q.chunk.js";import"./BpAshDEq.chunk.js";import"./CI-iVFxS.chunk.js";import"./BtXeOaIU.chunk.js";import"./B-tbSNDR.chunk.js";import"./DKP8OSLt.chunk.js";import"./DCKHN9x6.chunk.js";import"./BlDVEZsX.chunk.js";import"./teFtDXco.chunk.js";import"./pkzD5BEm.chunk.js";import"./Io7g60l1.chunk.js";import"./DTQrc2Wc.chunk.js";import"./DsEwMbUK.chunk.js";import"./L5XMY5e5.chunk.js";import"./v_B4I3Qe.chunk.js";import"./RBxC7AKW.chunk.js";import"./_sYSSSUN.chunk.js";import"./Kj832An8.chunk.js";import"./BtCxZZ5N.chunk.js";import"./Bb6yXi56.chunk.js";import"./B0xEoBKV.chunk.js";import"./CSKX6jCV.chunk.js";import"./Bxof9qR3.chunk.js";const je="exchange.exchangeFolderEmptyState";function be(){return e.jsx(B.Provider,{value:je,children:e.jsxs(c,{children:[e.jsx(c.Image,{src:R.EmptyStates.FOLDER}),e.jsx(c.Heading,{children:e.jsx(U,{phrase:"heading"})})]})})}function Fe(t){var r;return!((r=t.videos)!=null&&r.length)&&!t.isFetching?e.jsx(be,{}):e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e.jsx(pe,{breadcrumbs:t.breadcrumbs}),e.jsx(ge,{variant:"outline-dark",type:t.sort,getSortAppLink:t.getSortAppLink,analyticsOptions:{location:O.VideoListHeader,entity:M.Video,actionType:H.Sort,workflowPhase:q.Complete},includeProductionYear:!0})]}),t.videos?e.jsx(ee,{videos:t.videos,getVideoAppLink:he,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:t.commonVideoProps}):e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})}),(t.hasMore||t.isFetching)&&e.jsx(de,{isFetching:t.isFetching,fetchNext:t.fetchNext,nextCursor:t.nextCursor})]})}function Se(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"partial-loading-background h2 mb-3 w-25",children:" "}),e.jsx("div",{className:"mt-1 mb-2",children:e.jsx(X,{})}),e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"mb-3",children:e.jsx(fe,{})}),e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})})]})]})}const ve="exchange.exchangeFolder",Le=J.encloseNamespace(ve);function ct(t){var x,p;const r=G(),F=re(),n=g(W.currentUser()),a=g(f.folder(t.folderId)),{isUserCurator:S,openInCurationStudioLabel:v,getOpenInCurationStudioLink:L}=oe(),m=s=>f.childFolders(a.data.id,s),V=s=>r(m(s)),o=Z(a.data&&m,V);z({title:(x=a.data)==null?void 0:x.name}),ne([a]);const{commonVideoProps:E}=te(),d=!!n.data&&D.getOrSetSortType(n.data.id,t.sort,Y.ProductionYear),{items:i,hasMore:N,isFetching:P,nextCursor:C}=ce(l,u,A);function l(s){return ue.folderVideos(t.folderId,d,s)}function u(s){return r(l(s))}function A(s,T){if(s===1)return ae(T);F.error(Le("error"))}function y(){return S?[{label:v,openInNewTab:!0,href:L($.Category,a.data.id)}]:[]}const k=xe(t.folderId,t.sort),I=ie("video-list"),h=((p=o==null?void 0:o.items)==null?void 0:p.length)>0,w=a.hasCompleted&&n.hasCompleted&&o.hasCompleted;return e.jsxs(se.Provider,{value:I,children:[e.jsxs("div",{className:"mb-3",children:[e.jsx(me,{}),e.jsx(le,{active:"categories"})]}),w?e.jsxs(e.Fragment,{children:[a.data&&e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("h1",{className:"h2 me-1 mb-0",children:a.data.name}),e.jsx(K,{actions:y(),actionsDropdownClassName:"btn btn-sm",dropdownToggleSvgSize:Q.Standard})]}),h&&e.jsx("div",{className:"mx-n2",children:e.jsx(_,{folders:o.items,getAppLink:s=>j(s,d),expandFolders:!(i!=null&&i.length)})}),e.jsx("div",{className:"pb-3",children:e.jsx(Fe,{videos:i,hasSubFolders:h,hasMore:N,isFetching:P,fetchNext:u,nextCursor:C,sort:d,breadcrumbs:k,getSortAppLink:s=>j(a.data,s),commonVideoProps:E})})]}):e.jsx(Se,{})]})}export{ct as ExchangeFolderView};
2
+ //# sourceMappingURL=N0_8Eite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jduQkbdO.chunk.js","sources":["../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading.tsx","../../src/apps/exchange/views/exchange-folder/ExchangeFolderView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'exchange.exchangeFolderEmptyState';\n\nexport function ExchangeFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderEmptyState } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState';\n\ninterface ExchangeFolderVideosProps {\n videos: Video[];\n hasSubFolders: boolean;\n sort: VideoSortType;\n isFetching: boolean;\n hasMore: boolean;\n nextCursor?: string;\n breadcrumbs: Breadcrumb[];\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n fetchNext: (cursor: string) => void;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ExchangeFolderVideos(props: ExchangeFolderVideosProps): JSX.Element {\n if (!props.videos?.length && !props.isFetching)\n return <ExchangeFolderEmptyState />;\n\n return (\n <div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n includeProductionYear\n />\n </div>\n\n {props.videos ? (\n <VideoList\n videos={props.videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function ExchangeFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div\n className='partial-loading-background h2 mb-3 w-25'>\n &nbsp;\n </div>\n\n <div className='mt-1 mb-2'>\n <PartialFolderList />\n </div>\n\n <div className='mb-3'>\n <div className='mb-3'>\n <PartialBreadcrumbs />\n </div>\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getFolderAppLink, useGetFolderBreadcrumbs } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderVideos } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos';\nimport { ExchangeFolderPartialLoading } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading';\n\nconst namespace = 'exchange.exchangeFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeFolderViewProps {\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function ExchangeFolderView(props: ExchangeFolderViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n \n const getFolderRequest = (cursor: string) => LibraryRequests.childFolders(folder.data.id, cursor);\n const fetchNextFolder = (cursor: string) => fetch(getFolderRequest(cursor));\n const subfolders = useFetchAll(folder.data && getFolderRequest, fetchNextFolder);\n\n useSetPageMetadata({ title: folder.data?.name });\n useHandleObjectError([folder]);\n\n const { commonVideoProps } = useCommonVideoProps();\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data\n && VideoSortHelper.getOrSetSortType(currentUser.data.id, props.sort, VideoSortType.ProductionYear);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.folderVideos(props.folderId, sort, cursor);\n }\n\n function fetchNextVideos(cursor?: string): void {\n return fetch(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n function getActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [\n {\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Category, folder.data.id)\n }\n ];\n }\n\n const breadcrumbs = useGetFolderBreadcrumbs(props.folderId, props.sort);\n\n const videoActions = useGetExchangeActions('video-list');\n\n const hasSubfolders = subfolders?.items?.length > 0;\n\n const dataLoaded = (\n folder.hasCompleted &&\n currentUser.hasCompleted &&\n subfolders.hasCompleted\n );\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n\n {dataLoaded ? (\n <>\n {folder.data && (\n <div className='d-flex mb-3'>\n <h1 className='h2 me-1 mb-0'>{folder.data.name}</h1>\n <Actions\n actions={getActions()}\n actionsDropdownClassName='btn btn-sm'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n </div>\n )}\n\n {hasSubfolders && (\n <div className='mx-n2'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f, sort)}\n expandFolders={!videos?.length}\n />\n </div>\n )}\n\n <div className='pb-3'>\n <ExchangeFolderVideos\n videos={videos}\n hasSubFolders={hasSubfolders}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n sort={sort}\n breadcrumbs={breadcrumbs}\n getSortAppLink={sort => getFolderAppLink(folder.data, sort)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n </>\n ) : <ExchangeFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}"],"names":["namespace","ExchangeFolderEmptyState","LanguageNamespaceContext","EmptyState","jsx","ImageUrls","Text","ExchangeFolderVideos","props","_a","jsxs","Breadcrumbs","VideoSortSelect","LocationContext","EntityType","UserAction","WorkflowPhase","VideoList","getVideoAppLink","PartialVideoList","InfiniteScrollFooter","ExchangeFolderPartialLoading","Fragment","PartialFolderList","PartialBreadcrumbs","getPhrase","LanguageService","ExchangeFolderView","fetch","Flight.useGetFetch","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","folder","LibraryRequests","isUserCurator","openInCurationStudioLabel","getOpenInCurationStudioLink","useCurationStudio","getFolderRequest","cursor","fetchNextFolder","subfolders","useFetchAll","useSetPageMetadata","useHandleObjectError","commonVideoProps","useCommonVideoProps","sort","VideoSortHelper","VideoSortType","videos","hasMore","isFetching","nextCursor","useInfiniteList","getVideosRequest","fetchNextVideos","onError","ExchangeRequests","pageNumber","httpStatus","handleHttpError","getActions","MasterType","breadcrumbs","useGetFolderBreadcrumbs","videoActions","useGetExchangeActions","hasSubfolders","_b","dataLoaded","VideoActionsContext","ExchangeSearchBar","ExchangeTabs","Actions","SvgContainerSize","FolderList","f","getFolderAppLink"],"mappings":"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"}
1
+ {"version":3,"file":"N0_8Eite.chunk.js","sources":["../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading.tsx","../../src/apps/exchange/views/exchange-folder/ExchangeFolderView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'exchange.exchangeFolderEmptyState';\n\nexport function ExchangeFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderEmptyState } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState';\n\ninterface ExchangeFolderVideosProps {\n videos: Video[];\n hasSubFolders: boolean;\n sort: VideoSortType;\n isFetching: boolean;\n hasMore: boolean;\n nextCursor?: string;\n breadcrumbs: Breadcrumb[];\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n fetchNext: (cursor: string) => void;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ExchangeFolderVideos(props: ExchangeFolderVideosProps): JSX.Element {\n if (!props.videos?.length && !props.isFetching)\n return <ExchangeFolderEmptyState />;\n\n return (\n <div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n includeProductionYear\n />\n </div>\n\n {props.videos ? (\n <VideoList\n videos={props.videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function ExchangeFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div\n className='partial-loading-background h2 mb-3 w-25'>\n &nbsp;\n </div>\n\n <div className='mt-1 mb-2'>\n <PartialFolderList />\n </div>\n\n <div className='mb-3'>\n <div className='mb-3'>\n <PartialBreadcrumbs />\n </div>\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getFolderAppLink, useGetFolderBreadcrumbs } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderVideos } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos';\nimport { ExchangeFolderPartialLoading } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading';\n\nconst namespace = 'exchange.exchangeFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeFolderViewProps {\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function ExchangeFolderView(props: ExchangeFolderViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n \n const getFolderRequest = (cursor: string) => LibraryRequests.childFolders(folder.data.id, cursor);\n const fetchNextFolder = (cursor: string) => fetch(getFolderRequest(cursor));\n const subfolders = useFetchAll(folder.data && getFolderRequest, fetchNextFolder);\n\n useSetPageMetadata({ title: folder.data?.name });\n useHandleObjectError([folder]);\n\n const { commonVideoProps } = useCommonVideoProps();\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data\n && VideoSortHelper.getOrSetSortType(currentUser.data.id, props.sort, VideoSortType.ProductionYear);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.folderVideos(props.folderId, sort, cursor);\n }\n\n function fetchNextVideos(cursor?: string): void {\n return fetch(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n function getActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [\n {\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Category, folder.data.id)\n }\n ];\n }\n\n const breadcrumbs = useGetFolderBreadcrumbs(props.folderId, props.sort);\n\n const videoActions = useGetExchangeActions('video-list');\n\n const hasSubfolders = subfolders?.items?.length > 0;\n\n const dataLoaded = (\n folder.hasCompleted &&\n currentUser.hasCompleted &&\n subfolders.hasCompleted\n );\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n\n {dataLoaded ? (\n <>\n {folder.data && (\n <div className='d-flex mb-3'>\n <h1 className='h2 me-1 mb-0'>{folder.data.name}</h1>\n <Actions\n actions={getActions()}\n actionsDropdownClassName='btn btn-sm'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n </div>\n )}\n\n {hasSubfolders && (\n <div className='mx-n2'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f, sort)}\n expandFolders={!videos?.length}\n />\n </div>\n )}\n\n <div className='pb-3'>\n <ExchangeFolderVideos\n videos={videos}\n hasSubFolders={hasSubfolders}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n sort={sort}\n breadcrumbs={breadcrumbs}\n getSortAppLink={sort => getFolderAppLink(folder.data, sort)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n </>\n ) : <ExchangeFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}"],"names":["namespace","ExchangeFolderEmptyState","LanguageNamespaceContext","EmptyState","jsx","ImageUrls","Text","ExchangeFolderVideos","props","_a","jsxs","Breadcrumbs","VideoSortSelect","LocationContext","EntityType","UserAction","WorkflowPhase","VideoList","getVideoAppLink","PartialVideoList","InfiniteScrollFooter","ExchangeFolderPartialLoading","Fragment","PartialFolderList","PartialBreadcrumbs","getPhrase","LanguageService","ExchangeFolderView","fetch","Flight.useGetFetch","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","folder","LibraryRequests","isUserCurator","openInCurationStudioLabel","getOpenInCurationStudioLink","useCurationStudio","getFolderRequest","cursor","fetchNextFolder","subfolders","useFetchAll","useSetPageMetadata","useHandleObjectError","commonVideoProps","useCommonVideoProps","sort","VideoSortHelper","VideoSortType","videos","hasMore","isFetching","nextCursor","useInfiniteList","getVideosRequest","fetchNextVideos","onError","ExchangeRequests","pageNumber","httpStatus","handleHttpError","getActions","MasterType","breadcrumbs","useGetFolderBreadcrumbs","videoActions","useGetExchangeActions","hasSubfolders","_b","dataLoaded","VideoActionsContext","ExchangeSearchBar","ExchangeTabs","Actions","SvgContainerSize","FolderList","f","getFolderAppLink"],"mappings":"w9CAOA,MAAMA,GAAY,oCAEX,SAASC,IAAwC,CACtD,aACGC,EAAyB,SAAzB,CAAkC,MAAOF,GACxC,gBAACG,EAAA,CACC,SAAA,CAAAC,EAAAA,IAACD,EAAW,MAAX,CAAiB,IAAKE,EAAU,YAAY,OAAQ,EAErDD,MAACD,EAAW,QAAX,CAAmB,eAACG,EAAA,CAAK,OAAO,UAAU,CAAA,CAAE,CAAA,CAAA,CAC/C,CAAA,CACF,CAEJ,CCYO,SAASC,GAAqBC,EAA+C,OAClF,MAAI,GAACC,EAAAD,EAAM,SAAN,MAAAC,EAAc,SAAU,CAACD,EAAM,iBAC1BP,GAAA,EAAyB,SAGhC,MAAA,CACC,SAAA,CAAAS,EAAAA,KAAC,MAAA,CAAI,UAAU,yDACb,SAAA,CAAAN,EAAAA,IAACO,GAAA,CAAY,YAAaH,EAAM,WAAA,CAAa,EAE7CJ,EAAAA,IAACQ,GAAA,CACC,QAAQ,eACR,KAAMJ,EAAM,KACZ,eAAgBA,EAAM,eACtB,iBAAkB,CAChB,SAAUK,EAAgB,gBAC1B,OAAQC,EAAW,MACnB,WAAYC,EAAW,KACvB,cAAeC,EAAc,QAAA,EAE/B,sBAAqB,EAAA,CAAA,CACvB,EACF,EAECR,EAAM,OACLJ,EAAAA,IAACa,GAAA,CACC,OAAQT,EAAM,OACd,gBAAAU,GACA,sBAAuB,KACvB,2BAA4B,IAAM,KAClC,eAAgB,IAAM,GACtB,kBAAiB,GACjB,iBAAkBV,EAAM,gBAAA,CAAA,EAG1BJ,EAAAA,IAAC,MAAA,CAAI,UAAU,QACb,SAAAA,MAACe,IAAiB,EACpB,GAGAX,EAAM,SAAWA,EAAM,aACvBJ,EAAAA,IAACgB,GAAA,CACC,WAAYZ,EAAM,WAClB,UAAWA,EAAM,UACjB,WAAYA,EAAM,UAAA,CAAA,CACpB,EAEJ,CAEJ,CCzEO,SAASa,IAA4C,CAC1D,OACEX,EAAAA,KAAAY,WAAA,CACE,SAAA,CAAAlB,EAAAA,IAAC,MAAA,CACC,UAAU,0CAA0C,SAAA,GAAA,CAAA,QAIrD,MAAA,CAAI,UAAU,YACb,SAAAA,MAACmB,IAAkB,EACrB,EAEAb,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAN,MAAC,MAAA,CAAI,UAAU,OACb,SAAAA,MAACoB,KAAmB,EACtB,QACC,MAAA,CAAI,UAAU,QACb,SAAApB,EAAAA,IAACe,IAAiB,CAAA,CACpB,CAAA,CAAA,CACF,CAAA,EACF,CAEJ,CCKA,MAAMnB,GAAY,0BACZyB,GAAYC,EAAgB,iBAAiB1B,EAAS,EAOrD,SAAS2B,GAAmBnB,EAA6C,SAC9E,MAAMoB,EAAQC,EAAO,EACfC,EAASC,GAAA,EAETC,EAAcC,EAAkCC,EAAa,aAAa,EAC1EC,EAASF,EAA6BG,EAAgB,OAAO5B,EAAM,QAAQ,CAAC,EAC5E,CAAE,cAAA6B,EAAe,0BAAAC,EAA2B,4BAAAC,CAAA,EAAgCC,GAAA,EAE5EC,EAAoBC,GAAmBN,EAAgB,aAAaD,EAAO,KAAK,GAAIO,CAAM,EAC1FC,EAAmBD,GAAmBd,EAAMa,EAAiBC,CAAM,CAAC,EACpEE,EAAaC,EAAYV,EAAO,MAAQM,EAAkBE,CAAe,EAE/EG,EAAmB,CAAE,OAAOrC,EAAA0B,EAAO,OAAP,YAAA1B,EAAa,KAAM,EAC/CsC,GAAqB,CAACZ,CAAM,CAAC,EAE7B,KAAM,CAAE,iBAAAa,CAAA,EAAqBC,GAAA,EAGvBC,EAAO,CAAC,CAAClB,EAAY,MACtBmB,EAAgB,iBAAiBnB,EAAY,KAAK,GAAIxB,EAAM,KAAM4C,EAAc,cAAc,EAE7F,CACJ,MAAOC,EACP,QAAAC,EACA,WAAAC,EACA,WAAAC,CAAA,EACEC,GAAuBC,EAAkBC,EAAiBC,CAAO,EAErE,SAASF,EAAiBhB,EAAiC,CACzD,OAAOmB,GAAiB,aAAarD,EAAM,SAAU0C,EAAMR,CAAM,CACnE,CAEA,SAASiB,EAAgBjB,EAAuB,CAC9C,OAAOd,EAAM8B,EAAiBhB,CAAM,CAAC,CACvC,CAEA,SAASkB,EAAQE,EAAoBC,EAA8B,CACjE,GAAID,IAAe,EACjB,OAAOE,GAAgBD,CAAU,EAEnCjC,EAAO,MAAML,GAAU,OAAO,CAAC,CACjC,CAEA,SAASwC,GAA8B,CACrC,OAAK5B,EAGE,CACL,CACE,MAAOC,EACP,aAAc,GACd,KAAMC,EAA4B2B,EAAW,SAAU/B,EAAO,KAAK,EAAE,CAAA,CACvE,EAPO,CAAA,CASX,CAEA,MAAMgC,EAAcC,GAAwB5D,EAAM,SAAUA,EAAM,IAAI,EAEhE6D,EAAeC,GAAsB,YAAY,EAEjDC,IAAgBC,EAAA5B,GAAA,YAAAA,EAAY,QAAZ,YAAA4B,EAAmB,QAAS,EAE5CC,EACJtC,EAAO,cACPH,EAAY,cACZY,EAAW,aAGb,OACElC,EAAAA,KAACgE,GAAoB,SAApB,CAA6B,MAAOL,EACnC,SAAA,CAAA3D,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAN,EAAAA,IAACuE,GAAA,EAAkB,EACnBvE,EAAAA,IAACwE,GAAA,CAAa,OAAO,YAAA,CAAa,CAAA,EACpC,EAECH,EACC/D,EAAAA,KAAAY,WAAA,CACG,SAAA,CAAAa,EAAO,MACNzB,OAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAN,MAAC,KAAA,CAAG,UAAU,eAAgB,SAAA+B,EAAO,KAAK,KAAK,EAC/C/B,EAAAA,IAACyE,EAAA,CACC,QAASZ,EAAA,EACT,yBAAyB,aACzB,sBAAuBa,EAAiB,QAAA,CAAA,CAC1C,EACF,EAGDP,GACCnE,EAAAA,IAAC,MAAA,CAAI,UAAU,QACb,SAAAA,EAAAA,IAAC2E,EAAA,CACC,QAASnC,EAAW,MACpB,WAAaoC,GAAcC,EAAiBD,EAAG9B,CAAI,EACnD,cAAe,EAACG,GAAA,MAAAA,EAAQ,OAAA,CAAA,EAE5B,EAGFjD,EAAAA,IAAC,MAAA,CAAI,UAAU,OACb,SAAAA,EAAAA,IAACG,GAAA,CACC,OAAA8C,EACA,cAAekB,EACf,QAAAjB,EACA,WAAAC,EACA,UAAWI,EACX,WAAAH,EACA,KAAAN,EACA,YAAAiB,EACA,eAAgBjB,GAAQ+B,EAAiB9C,EAAO,KAAMe,CAAI,EAC1D,iBAAAF,CAAA,CAAA,CACF,CACF,CAAA,EACF,QACG3B,GAAA,CAAA,CAA6B,CAAA,EACpC,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{U as j,ap as y,ae as L,af as S,j as a,aq as v,ar as w,R as C,as as _,w as m,B as u,at as p,r as N}from"./app-B9-iRU1r.js";import{C as A}from"./CK7qxCzb.chunk.js";import{A as T}from"./LvDJgDKk.chunk.js";import{D as E}from"./CQBoRtuI.chunk.js";import{B as D}from"./DSEhNJwx.chunk.js";import{I as B,a as H,u as I}from"./DQqQBQqj.chunk.js";const $="_actions_1psxq_1",q="_actionsContainer_1psxq_14",z="_ownerLogo_1psxq_24",P="_dropStyle_1psxq_33",O="_dragStyle_1psxq_38",d={actions:$,actionsContainer:q,ownerLogo:z,dropStyle:P,dragStyle:O};function U(e){var i,r,f,h,b,F;const s=e.folder.thumbnail?j.urlBuilder(e.folder.thumbnail.url,{size:y.Small}):null,t=(h=(f=(r=(i=e.folder)==null?void 0:i.libraries)==null?void 0:r.data)==null?void 0:f[0])==null?void 0:h.owner,n=e.showOwnerLogo&&((b=t==null?void 0:t.logo)!=null&&b.url)?j.urlBuilder(t.logo.url,{size:y.Small}):null,l=(F=e.getFolderActions)==null?void 0:F.call(e,e.folder),o=e.analyticsData?{id:e.folder.id.toString(),name:e.folder.name,...e.analyticsData}:void 0,c=e.analyticsOptions?{actionType:S.Click,entity:L.Folder,...e.analyticsOptions}:void 0;return a.jsx(E,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:d.dropStyle,dragStyle:d.dragStyle,children:a.jsxs("div",{className:"position-relative",children:[a.jsxs(v,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name,analyticsData:o,analyticsOptions:c,children:[a.jsx(D,{data:s,imageType:w.Thumbnails,imageClassName:"rounded-top-lg",children:a.jsx(B,{name:e.folder.name,type:H.Folder,extraClasses:"rounded-top-lg"})}),a.jsx("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2",children:a.jsx("span",{className:"text-truncate d-block",children:e.folder.name})})]}),(l==null?void 0:l.length)&&a.jsx(T,{actions:l,className:d.actionsContainer,actionsDropdownClassName:d.actions,dropdownToggleSvgSize:null}),!!n&&a.jsx("img",{src:n,className:`rounded-circle ${d.ownerLogo}`,alt:`${t==null?void 0:t.name} logo`,title:(t==null?void 0:t.name)||""})]})})}const g="libraries.folderList",k="has:expanded:library:folders";function R(){const e=p();return e.xxl||e.xl||e.lg?6:e.md?4:3}G.defaultProps={showHeading:!0};function G(e){const[s,t]=C.useState(_.get(k)||!1),n=e.expandFolders||s,l=R();function o(){t(!n),_.set(k,!n)}const c=n?e.folders:e.folders.slice(0,l),i=e.folders.length>l&&!e.expandFolders;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[e.showHeading&&a.jsxs(m,{className:`d-inline-flex align-items-center mb-2 px-2 ${i?"":"cursor-default"}`,onClick:o,children:[i&&a.jsx(A,{direction:n?"down":"right"}),a.jsx("h2",{className:"h4 mb-0",children:a.jsx(u,{namespace:g,phrase:"folders",options:{count:e.folders.length}})})]}),!!(!n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeAll",options:{count:e.folders.length}})})}),!!(n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeLess"})})}),e.extraButtons?e.extraButtons:a.jsx(a.Fragment,{})]}),a.jsx("div",{className:"row mx-1",children:c.map(r=>a.jsx("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:a.jsx(U,{folder:r,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop})},r.id))})]})}const K="_partialFolderHeading_1surw_1",M="_partialFolderThumbnail_1surw_4",V="_partialFolderName_1surw_7",x={partialFolderHeading:K,partialFolderThumbnail:M,partialFolderName:V},W=()=>a.jsxs("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:[a.jsx("div",{className:`${x.partialFolderThumbnail} partial-loading-background rounded-top-lg`}),a.jsx("div",{className:`${x.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`,children:" "})]});function ae({count:e=3}){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`${x.partialFolderHeading} h4 mb-2 partial-loading-background`,children:" "}),a.jsx("div",{className:"row mx-n1",children:Array(e).fill(null).map((s,t)=>a.jsx(W,{},t))})]})}function le(e,s){const t=e,n=s,l=I(e&&(o=>t(o).key));return N.useEffect(()=>{l&&l.shouldInitialFetch&&s&&n()},[l==null?void 0:l.shouldInitialFetch,s]),N.useEffect(()=>{!l||!l.nextCursor||l.isFetching||!s||n(l.nextCursor)},[l==null?void 0:l.nextCursor,l==null?void 0:l.isFetching,s]),l}export{G as F,ae as P,le as u};
2
- //# sourceMappingURL=Bk8pUghK.chunk.js.map
1
+ import{U as j,ap as y,ae as L,af as S,j as a,aq as v,ar as w,R as C,as as _,w as m,B as u,at as p,r as N}from"./app-YVcc0mcr.js";import{C as A}from"./B_ipiOyh.chunk.js";import{A as T}from"./CRi1yEnr.chunk.js";import{D as E}from"./BttaqS1Q.chunk.js";import{B as D}from"./BpAshDEq.chunk.js";import{I as B,a as H,u as I}from"./BtXeOaIU.chunk.js";const $="_actions_1psxq_1",q="_actionsContainer_1psxq_14",z="_ownerLogo_1psxq_24",P="_dropStyle_1psxq_33",O="_dragStyle_1psxq_38",d={actions:$,actionsContainer:q,ownerLogo:z,dropStyle:P,dragStyle:O};function U(e){var i,r,f,h,b,F;const s=e.folder.thumbnail?j.urlBuilder(e.folder.thumbnail.url,{size:y.Small}):null,t=(h=(f=(r=(i=e.folder)==null?void 0:i.libraries)==null?void 0:r.data)==null?void 0:f[0])==null?void 0:h.owner,n=e.showOwnerLogo&&((b=t==null?void 0:t.logo)!=null&&b.url)?j.urlBuilder(t.logo.url,{size:y.Small}):null,l=(F=e.getFolderActions)==null?void 0:F.call(e,e.folder),o=e.analyticsData?{id:e.folder.id.toString(),name:e.folder.name,...e.analyticsData}:void 0,c=e.analyticsOptions?{actionType:S.Click,entity:L.Folder,...e.analyticsOptions}:void 0;return a.jsx(E,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:d.dropStyle,dragStyle:d.dragStyle,children:a.jsxs("div",{className:"position-relative",children:[a.jsxs(v,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name,analyticsData:o,analyticsOptions:c,children:[a.jsx(D,{data:s,imageType:w.Thumbnails,imageClassName:"rounded-top-lg",children:a.jsx(B,{name:e.folder.name,type:H.Folder,extraClasses:"rounded-top-lg"})}),a.jsx("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2",children:a.jsx("span",{className:"text-truncate d-block",children:e.folder.name})})]}),(l==null?void 0:l.length)&&a.jsx(T,{actions:l,className:d.actionsContainer,actionsDropdownClassName:d.actions,dropdownToggleSvgSize:null}),!!n&&a.jsx("img",{src:n,className:`rounded-circle ${d.ownerLogo}`,alt:`${t==null?void 0:t.name} logo`,title:(t==null?void 0:t.name)||""})]})})}const g="libraries.folderList",k="has:expanded:library:folders";function R(){const e=p();return e.xxl||e.xl||e.lg?6:e.md?4:3}G.defaultProps={showHeading:!0};function G(e){const[s,t]=C.useState(_.get(k)||!1),n=e.expandFolders||s,l=R();function o(){t(!n),_.set(k,!n)}const c=n?e.folders:e.folders.slice(0,l),i=e.folders.length>l&&!e.expandFolders;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[e.showHeading&&a.jsxs(m,{className:`d-inline-flex align-items-center mb-2 px-2 ${i?"":"cursor-default"}`,onClick:o,children:[i&&a.jsx(A,{direction:n?"down":"right"}),a.jsx("h2",{className:"h4 mb-0",children:a.jsx(u,{namespace:g,phrase:"folders",options:{count:e.folders.length}})})]}),!!(!n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeAll",options:{count:e.folders.length}})})}),!!(n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeLess"})})}),e.extraButtons?e.extraButtons:a.jsx(a.Fragment,{})]}),a.jsx("div",{className:"row mx-1",children:c.map(r=>a.jsx("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:a.jsx(U,{folder:r,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop})},r.id))})]})}const K="_partialFolderHeading_1surw_1",M="_partialFolderThumbnail_1surw_4",V="_partialFolderName_1surw_7",x={partialFolderHeading:K,partialFolderThumbnail:M,partialFolderName:V},W=()=>a.jsxs("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:[a.jsx("div",{className:`${x.partialFolderThumbnail} partial-loading-background rounded-top-lg`}),a.jsx("div",{className:`${x.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`,children:" "})]});function ae({count:e=3}){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`${x.partialFolderHeading} h4 mb-2 partial-loading-background`,children:" "}),a.jsx("div",{className:"row mx-n1",children:Array(e).fill(null).map((s,t)=>a.jsx(W,{},t))})]})}function le(e,s){const t=e,n=s,l=I(e&&(o=>t(o).key));return N.useEffect(()=>{l&&l.shouldInitialFetch&&s&&n()},[l==null?void 0:l.shouldInitialFetch,s]),N.useEffect(()=>{!l||!l.nextCursor||l.isFetching||!s||n(l.nextCursor)},[l==null?void 0:l.nextCursor,l==null?void 0:l.isFetching,s]),l}export{G as F,ae as P,le as u};
2
+ //# sourceMappingURL=PK8MTnH4.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bk8pUghK.chunk.js","sources":["../../../../libs/shared/src/components/library-folder/LibraryFolder.tsx","../../../../libs/shared/src/components/folder-list/FolderList.tsx","../../../../libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","../../../../libs/shared/src/hooks/UseFetchAll.ts"],"sourcesContent":["import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.module.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n showOwnerLogo?: boolean;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const owner = props.folder?.libraries?.data?.[0]?.owner;\n const ownerLogoUrl = props.showOwnerLogo && !!owner?.logo?.url\n ? UrlHelper.urlBuilder(owner.logo.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n const analyticsData = props.analyticsData ? {\n id: props.folder.id.toString(),\n name: props.folder.name,\n ...props.analyticsData\n } : undefined;\n\n const analyticsOptions = props.analyticsOptions ? {\n actionType: UserAction.Click,\n entity: EntityType.Folder,\n\n ...props.analyticsOptions\n } : undefined;\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n {!!ownerLogoUrl &&\n <img src={ownerLogoUrl} className={`rounded-circle ${styles.ownerLogo}`} alt={`${owner?.name} logo`} title={owner?.name || ''} />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","import React from 'react';\n\nimport styles from './partial-folder-list.module.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n &nbsp;\n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}>&nbsp;</div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { SelectAllPagesResult, useSelectAllPages } from './UseSelectAllPages';\n\n/**\n * Hook to fetch all pages of a collection.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useFetchAll<T = BaseObject>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false\n): SelectAllPagesResult<T> {\n const getRequestFn = getRequest as (cursor?: string) => Flight.Request;\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequestFn(cursor).key));\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext)\n fetchNextFn();\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response || !response.nextCursor || response.isFetching || !fetchNext)\n return;\n\n fetchNextFn(response.nextCursor);\n }, [ response?.nextCursor, response?.isFetching, fetchNext ]);\n\n return response;\n}"],"names":["LibraryFolder","props","thumbnailUrl","UrlHelper","ImageSize","owner","_d","_c","_b","_a","ownerLogoUrl","_e","actions","_f","analyticsData","analyticsOptions","UserAction","EntityType","jsx","DragDropMoveWrapper","styles","jsxs","AppLink","BaseImage","ImageType","ImageFallback","ImageFallbackType","Actions","namespace","EXPANDED_FOLDERS_KEY","useGetFolderLimit","breakpoints","useBreakpoints","FolderList","_hasExpandedFolders","setHasExpandedFolders","React","LocalStorageHelper","hasExpandedFolders","folderLimit","onToggleFolder","displayableFolders","canToggleCollapsedView","Fragment","DivButton","Caret","Text","f","PartialFolder","PartialFolderList","count","_","i","useFetchAll","getRequest","fetchNext","getRequestFn","fetchNextFn","response","useSelectAllPages","cursor","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"PK8MTnH4.chunk.js","sources":["../../../../libs/shared/src/components/library-folder/LibraryFolder.tsx","../../../../libs/shared/src/components/folder-list/FolderList.tsx","../../../../libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","../../../../libs/shared/src/hooks/UseFetchAll.ts"],"sourcesContent":["import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.module.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n showOwnerLogo?: boolean;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const owner = props.folder?.libraries?.data?.[0]?.owner;\n const ownerLogoUrl = props.showOwnerLogo && !!owner?.logo?.url\n ? UrlHelper.urlBuilder(owner.logo.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n const analyticsData = props.analyticsData ? {\n id: props.folder.id.toString(),\n name: props.folder.name,\n ...props.analyticsData\n } : undefined;\n\n const analyticsOptions = props.analyticsOptions ? {\n actionType: UserAction.Click,\n entity: EntityType.Folder,\n\n ...props.analyticsOptions\n } : undefined;\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n {!!ownerLogoUrl &&\n <img src={ownerLogoUrl} className={`rounded-circle ${styles.ownerLogo}`} alt={`${owner?.name} logo`} title={owner?.name || ''} />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","import React from 'react';\n\nimport styles from './partial-folder-list.module.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n &nbsp;\n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}>&nbsp;</div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { SelectAllPagesResult, useSelectAllPages } from './UseSelectAllPages';\n\n/**\n * Hook to fetch all pages of a collection.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useFetchAll<T = BaseObject>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false\n): SelectAllPagesResult<T> {\n const getRequestFn = getRequest as (cursor?: string) => Flight.Request;\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequestFn(cursor).key));\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext)\n fetchNextFn();\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response || !response.nextCursor || response.isFetching || !fetchNext)\n return;\n\n fetchNextFn(response.nextCursor);\n }, [ response?.nextCursor, response?.isFetching, fetchNext ]);\n\n return response;\n}"],"names":["LibraryFolder","props","thumbnailUrl","UrlHelper","ImageSize","owner","_d","_c","_b","_a","ownerLogoUrl","_e","actions","_f","analyticsData","analyticsOptions","UserAction","EntityType","jsx","DragDropMoveWrapper","styles","jsxs","AppLink","BaseImage","ImageType","ImageFallback","ImageFallbackType","Actions","namespace","EXPANDED_FOLDERS_KEY","useGetFolderLimit","breakpoints","useBreakpoints","FolderList","_hasExpandedFolders","setHasExpandedFolders","React","LocalStorageHelper","hasExpandedFolders","folderLimit","onToggleFolder","displayableFolders","canToggleCollapsedView","Fragment","DivButton","Caret","Text","f","PartialFolder","PartialFolderList","count","_","i","useFetchAll","getRequest","fetchNext","getRequestFn","fetchNextFn","response","useSelectAllPages","cursor","useEffect"],"mappings":"8hBA4BO,SAASA,EAAcC,EAAwC,iBACpE,MAAMC,EAAeD,EAAM,OAAO,UAC9BE,EAAU,WAAWF,EAAM,OAAO,UAAU,IAAK,CAAE,KAAMG,EAAU,KAAA,CAAO,EAC1E,KAEEC,GAAQC,GAAAC,GAAAC,GAAAC,EAAAR,EAAM,SAAN,YAAAQ,EAAc,YAAd,YAAAD,EAAyB,OAAzB,YAAAD,EAAgC,KAAhC,YAAAD,EAAoC,MAC5CI,EAAeT,EAAM,iBAAmBU,EAAAN,GAAA,YAAAA,EAAO,OAAP,MAAAM,EAAa,KACvDR,EAAU,WAAWE,EAAM,KAAK,IAAK,CAAE,KAAMD,EAAU,KAAA,CAAO,EAC9D,KAEEQ,GAAUC,EAAAZ,EAAM,mBAAN,YAAAY,EAAA,KAAAZ,EAAyBA,EAAM,QAEzCa,EAAgBb,EAAM,cAAgB,CAC1C,GAAIA,EAAM,OAAO,GAAG,SAAA,EACpB,KAAMA,EAAM,OAAO,KACnB,GAAGA,EAAM,aAAA,EACP,OAEEc,EAAmBd,EAAM,iBAAmB,CAChD,WAAYe,EAAW,MACvB,OAAQC,EAAW,OAEnB,GAAGhB,EAAM,gBAAA,EACP,OAEJ,OACEiB,EAAAA,IAACC,EAAA,CACC,UAAWlB,EAAM,MAAQ,CAAE,GAAIA,EAAM,OAAO,GAAI,KAAMA,EAAM,MAAA,EAC5D,UAAWA,EAAM,MAAQ,CAAE,GAAIA,EAAM,OAAO,GAAI,KAAMA,EAAM,MAAA,EAC5D,SAAUmB,EAAO,UACjB,UAAWA,EAAO,UAElB,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,oBACb,SAAA,CAAAA,EAAAA,KAACC,EAAA,CACC,UAAU,yCACV,QAASrB,EAAM,WAAWA,EAAM,MAAM,EACtC,MAAOA,EAAM,OAAO,KACpB,cAAAa,EACA,iBAAAC,EAEA,SAAA,CAAAG,EAAAA,IAACK,EAAA,CACC,KAAMrB,EACN,UAAWsB,EAAU,WACrB,eAAe,iBAEf,SAAAN,EAAAA,IAACO,EAAA,CACC,KAAMxB,EAAM,OAAO,KACnB,KAAMyB,EAAkB,OACxB,aAAa,gBAAA,CAAA,CACf,CAAA,EAEFR,EAAAA,IAAC,KAAA,CAAG,UAAU,yGACZ,SAAAA,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAyB,SAAAjB,EAAM,OAAO,IAAA,CAAK,CAAA,CAC7D,CAAA,CAAA,CAAA,GAEDW,GAAA,YAAAA,EAAS,SACRM,EAAAA,IAACS,EAAA,CACC,QAAAf,EACA,UAAWQ,EAAO,iBAClB,yBAA0BA,EAAO,QAEjC,sBAAuB,IAAA,CAAA,EAG1B,CAAC,CAACV,GACDQ,EAAAA,IAAC,OAAI,IAAKR,EAAc,UAAW,kBAAkBU,EAAO,SAAS,GAAI,IAAK,GAAGf,GAAA,YAAAA,EAAO,IAAI,QAAS,OAAOA,GAAA,YAAAA,EAAO,OAAQ,EAAA,CAAI,CAAA,CAAA,CAEnI,CAAA,CAAA,CAGN,CCrFA,MAAMuB,EAAY,uBAEZC,EAAuB,+BAE7B,SAASC,GAA4B,CACnC,MAAMC,EAAcC,EAAA,EAEpB,OAAID,EAAY,KAAOA,EAAY,IAAMA,EAAY,GAC5C,EAELA,EAAY,GACP,EAEF,CACT,CAaAE,EAAW,aAAe,CACxB,YAAa,EACf,EAEO,SAASA,EAAWhC,EAAqC,CAC9D,KAAM,CAAEiC,EAAqBC,CAAsB,EAAIC,EAAM,SAC3DC,EAAmB,IAAIR,CAAoB,GAAK,EAAA,EAG5CS,EAAqBrC,EAAM,eAAiBiC,EAE5CK,EAAcT,EAAA,EAEpB,SAASU,GAAuB,CAC9BL,EAAsB,CAACG,CAAkB,EACzCD,EAAmB,IAAIR,EAAsB,CAACS,CAAkB,CAClE,CAEA,MAAMG,EAAqBH,EAAqBrC,EAAM,QAAUA,EAAM,QAAQ,MAAM,EAAGsC,CAAW,EAE5FG,EAAyBzC,EAAM,QAAQ,OAASsC,GAAe,CAACtC,EAAM,cAE5E,OACEoB,EAAAA,KAAAsB,WAAA,CACE,SAAA,CAAAtB,EAAAA,KAAC,MAAA,CAAI,UAAU,oDACZ,SAAA,CAAApB,EAAM,aACLoB,EAAAA,KAACuB,EAAA,CACC,UAAW,8CAA+CF,EAA4C,GAAnB,gBAAqB,GACxG,QAASF,EAER,SAAA,CAAAE,GACCxB,EAAAA,IAAC2B,EAAA,CAAM,UAAWP,EAAqB,OAAS,QAAS,QAE1D,KAAA,CAAG,UAAU,UACZ,SAAApB,EAAAA,IAAC4B,GAAK,UAAAlB,EAAsB,OAAO,UAAU,QAAS,CAAE,MAAO3B,EAAM,QAAQ,MAAA,EAAU,CAAA,CACzF,CAAA,CAAA,CAAA,EAIH,CAAC,EAAE,CAACqC,GAAsBI,IACzBxB,EAAAA,IAAC,MAAA,CAAI,UAAU,mDACb,SAAAA,EAAAA,IAAC0B,EAAA,CAAU,QAASJ,EAAgB,UAAU,gDAC5C,SAAAtB,EAAAA,IAAC4B,EAAA,CAAK,UAAAlB,EAAsB,OAAO,SAAS,QAAS,CAAE,MAAO3B,EAAM,QAAQ,MAAA,CAAO,CAAG,CAAA,CACxF,EACF,EAED,CAAC,EAAEqC,GAAsBI,UACvB,MAAA,CAAI,UAAU,mDACb,SAAAxB,EAAAA,IAAC0B,EAAA,CAAU,QAASJ,EAAgB,UAAU,gDAC5C,SAAAtB,EAAAA,IAAC4B,EAAA,CAAK,UAAAlB,EAAsB,OAAO,UAAU,EAC/C,CAAA,CACF,EAGD3B,EAAM,aAAeA,EAAM,aAAeiB,EAAAA,IAAAyB,EAAAA,SAAA,CAAA,CAAE,CAAA,EAC/C,EAEAzB,EAAAA,IAAC,MAAA,CAAI,UAAU,WACZ,SAAAuB,EAAmB,IAAIM,GACtB7B,EAAAA,IAAC,MAAA,CAAe,UAAU,oCACxB,SAAAA,EAAAA,IAAClB,EAAA,CACC,OAAQ+C,EACR,WAAY9C,EAAM,WAClB,iBAAkBA,EAAM,iBACxB,KAAMA,EAAM,KACZ,KAAMA,EAAM,IAAA,CAAA,GANN8C,EAAE,EAQZ,CACD,CAAA,CACH,CAAA,EACF,CAEJ,oLC5GMC,EAAgB,IACpB3B,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAH,MAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,sBAAsB,6CAA8C,QAC7F,MAAA,CAAI,UAAW,GAAGA,EAAO,iBAAiB,wFAAyF,SAAA,GAAA,CAEpI,CAAA,EACF,EAGK,SAAS6B,GAAkB,CAAE,MAAAC,EAAQ,GAAuC,CACjF,OACE7B,EAAAA,KAAAsB,WAAA,CACE,SAAA,CAAAzB,EAAAA,IAAC,OAAI,UAAW,GAAGE,EAAO,oBAAoB,sCAAuC,SAAA,IAAM,QAC1F,MAAA,CAAI,UAAU,YACZ,SAAA,MAAM8B,CAAK,EAAE,KAAK,IAAI,EAAE,IAAI,CAACC,EAAGC,UAAOJ,EAAA,CAAA,EAAmBI,CAAG,CAAE,CAAA,CAClE,CAAA,EACF,CAEJ,CCLO,SAASC,GACdC,EACAC,EACyB,CACzB,MAAMC,EAAeF,EACfG,EAAcF,EAEdG,EAAWC,EAAqBL,IAAgBM,GAAoBJ,EAAaI,CAAM,EAAE,IAAI,EAEnGC,OAAAA,EAAAA,UAAU,IAAM,CACTH,GAGDA,EAAS,oBAAsBH,GACjCE,EAAA,CACJ,EAAG,CAAEC,GAAA,YAAAA,EAAU,mBAAoBH,CAAU,CAAC,EAE9CM,EAAAA,UAAU,IAAM,CACV,CAACH,GAAY,CAACA,EAAS,YAAcA,EAAS,YAAc,CAACH,GAGjEE,EAAYC,EAAS,UAAU,CACjC,EAAG,CAAEA,GAAA,YAAAA,EAAU,WAAYA,GAAA,YAAAA,EAAU,WAAYH,CAAU,CAAC,EAErDG,CACT"}
@@ -1,2 +1,2 @@
1
- import{j as r}from"./app-B9-iRU1r.js";function s(l){return r.jsx("svg",{...l,children:r.jsx("path",{d:"m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z",fill:"currentColor"})})}export{s as C};
2
- //# sourceMappingURL=CeOQ6-zQ.chunk.js.map
1
+ import{j as r}from"./app-YVcc0mcr.js";function s(l){return r.jsx("svg",{...l,children:r.jsx("path",{d:"m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z",fill:"currentColor"})})}export{s as C};
2
+ //# sourceMappingURL=RBxC7AKW.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CeOQ6-zQ.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/CloseSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function CloseSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n"],"names":["CloseSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,+QACF,KAAK,cAAA,CAAA,EAET,CAEJ"}
1
+ {"version":3,"file":"RBxC7AKW.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/CloseSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function CloseSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n"],"names":["CloseSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,+QACF,KAAK,cAAA,CAAA,EAET,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{j as e,w as O,a2 as G,a3 as g,a5 as L,A as b,a as j,b as F,aR as v,L as B,bK as R,ab as V,ac as U,ad as _,aS as w,ae as I,af as C,R as H,am as M,P as Y,B as u,x as k}from"./app-B9-iRU1r.js";import{u as J}from"./CjttP5Uk.chunk.js";import{T as m,a as Q}from"./DuHONSHj.chunk.js";import{u as W}from"./C1lszv3N.chunk.js";const z="_selected_ii58d_1",K="_disabled_ii58d_4",$={selected:z,disabled:K};function P(a){var i,d,A,t;function n(){var s;(s=a.option)!=null&&s.disabled||a.onSelect(a.option)}let r="text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50";return a.selected&&(r+=` border-info ${$.selected}`),(i=a.option)!=null&&i.disabled&&(r+=` ${$.disabled}`),e.jsxs(O,{onClick:n,className:r,children:[((d=a.option)==null?void 0:d.imageUrl)&&e.jsx("img",{src:a.option.imageUrl,className:`img-fluid my-3 ${a.option.imageClassName??""}`,draggable:!1}),((A=a.option)==null?void 0:A.title)&&e.jsx("h2",{className:"h3",children:a.option.title}),((t=a.option)==null?void 0:t.description)&&e.jsx("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:a.option.description}}),a.children]})}const X="tv.addRequests",p=B.encloseNamespace(X);function Z(a,n){const r=G(),i=W(),d=g(L.currentUser()),A=g(L.workspace()),t=g(m.program(a)),s=g(m.region(n)),l=g(t.data&&d.data&&m.workspaceVideo(t.data.id,d.data.id,d.data.customerId));async function N(){var c;try{await r(m.createAdFreeRequest({programId:t.data.id,regionCode:s.data.code,userId:d.data.id,customerId:d.data.customerId})),i.success({heading:R.Success,message:p("requestAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.AD_FREE_REQUEST,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AdFreeRequest,location:_.Popup,workflowPhase:U.Complete})}catch(D){const T=(c=D.responseJSON)==null?void 0:c.message;if(T){const S=JSON.parse(T);i.error(p(S.Type,{video:t.data.title}))}else i.error(p("error"))}}async function y(){if(l.data.exists&&l.data.hasAdFree){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={id:t.data.id,userId:d.data.id,customerId:d.data.customerId};await r(m.addAdFreeVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddAdFreeVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}async function E(){if(l.data.exists){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={userId:d.data.id,customerId:d.data.customerId,globalId:t.data.globalId,libraryId:A.data.id};await r(m.addFullVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addFullSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddFullVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}return{requestAdFreeVideo:N,addAdFreeVideo:y,addFullVideo:E}}const ee="_circle_1yxtg_1",ae={circle:ee},o="tv.add",q=B.encloseNamespace(o),x={id:"ad-free",title:"adFreeTitle",description:"adFreeDescription",imageUrl:M.General.MOUNTAINS_FRAMED},f={id:"request-ad-free",title:"adFreeTitle",imageUrl:M.General.MOUNTAINS_FRAMED},h={id:"full-video",title:"fullVideoTitle",description:"fullVideoDescription",imageUrl:M.General.ANNOUNCEMENT_FRAMED};function re(a){const n=g(L.currentUser()),r=g(m.program(a.id)),i=g(n.data&&m.adFreeCredits(n.data.id,n.data.customerId,a.region)),{requestAdFreeVideo:d,addAdFreeVideo:A,addFullVideo:t}=Z(a.id,a.region);J(r.statusCode);const[s,l]=H.useState(null),N=!Number.isNaN(a.currentTime);function y(){s&&(s.id===h.id&&t(),s.id===x.id&&A(),s.id===f.id&&d())}function E(){if(!N){a.closePopup();return}b.trigger({application:F.TV,action:j.Tv.PREVIEW,args:[a.region,r.data.id],params:{currentTime:a.currentTime}})}const c=i.data&&i.data.userRequests<i.data.maxAvailableCredit,D=i.data&&i.data.maxAvailableCredit-i.data.userRequests;H.useEffect(()=>{i.hasCompleted&&(c||l(h))},[i,c]);const T=n.hasCompleted&&r.hasCompleted&&i.hasCompleted,S=(s==null?void 0:s.id)===f.id&&Q.isHolidayPeriod();return e.jsxs(Y,{size:"lg",title:q("title"),showLoadingSpinner:!T,closePopup:a.closePopup,children:[T&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"d-flex mb-3 mx-n2",children:[r.data.hasAdsFree&&e.jsxs(P,{option:{id:x.id},onSelect:l,selected:(s==null?void 0:s.id)===x.id,children:[e.jsx("img",{src:x.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:x.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:x.description})})]}),!r.data.hasAdsFree&&e.jsxs(P,{option:{id:f.id,disabled:!c},onSelect:l,selected:(s==null?void 0:s.id)===f.id,children:[e.jsx("img",{src:f.imageUrl,className:"img-fluid",draggable:!1}),e.jsxs("div",{className:"d-flex justify-content-center align-items-center mb-1",children:[e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:f.title})}),e.jsx("span",{className:`badge bg-dark rounded-circle ms-2 ${ae.circle}`,children:D})]}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:c?"requestAdFreeDescription":"noRequestsDescription"})})]}),e.jsxs(P,{option:{id:h.id},onSelect:l,selected:(s==null?void 0:s.id)===h.id,children:[e.jsx("img",{src:h.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:h.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:h.description})})]})]}),S&&e.jsxs("div",{className:"alert alert-warning",role:"alert",children:[e.jsx("h3",{className:"h5",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertHeading"})}),e.jsx("p",{className:"m-0",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertBody"})})]})]}),e.jsxs(k,{children:[e.jsx(k.Cancel,{text:q(N?"back":"close"),onClick:E,variant:"link"}),e.jsx(k.Submit,{text:q("continue"),onClick:y,variant:"dark",disabled:!s})]})]})}export{re as TvAddView};
2
- //# sourceMappingURL=oHfhDsTp.chunk.js.map
1
+ import{j as e,w as O,a2 as G,a3 as g,a5 as L,A as b,a as j,b as F,aR as v,L as B,bK as R,ab as V,ac as U,ad as _,aS as w,ae as I,af as C,R as H,am as M,P as Y,B as u,x as k}from"./app-YVcc0mcr.js";import{u as J}from"./CdmZcJJE.chunk.js";import{T as m,a as Q}from"./DwEB5UWK.chunk.js";import{u as W}from"./B60atIyl.chunk.js";const z="_selected_ii58d_1",K="_disabled_ii58d_4",$={selected:z,disabled:K};function P(a){var i,d,A,t;function n(){var s;(s=a.option)!=null&&s.disabled||a.onSelect(a.option)}let r="text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50";return a.selected&&(r+=` border-info ${$.selected}`),(i=a.option)!=null&&i.disabled&&(r+=` ${$.disabled}`),e.jsxs(O,{onClick:n,className:r,children:[((d=a.option)==null?void 0:d.imageUrl)&&e.jsx("img",{src:a.option.imageUrl,className:`img-fluid my-3 ${a.option.imageClassName??""}`,draggable:!1}),((A=a.option)==null?void 0:A.title)&&e.jsx("h2",{className:"h3",children:a.option.title}),((t=a.option)==null?void 0:t.description)&&e.jsx("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:a.option.description}}),a.children]})}const X="tv.addRequests",p=B.encloseNamespace(X);function Z(a,n){const r=G(),i=W(),d=g(L.currentUser()),A=g(L.workspace()),t=g(m.program(a)),s=g(m.region(n)),l=g(t.data&&d.data&&m.workspaceVideo(t.data.id,d.data.id,d.data.customerId));async function N(){var c;try{await r(m.createAdFreeRequest({programId:t.data.id,regionCode:s.data.code,userId:d.data.id,customerId:d.data.customerId})),i.success({heading:R.Success,message:p("requestAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.AD_FREE_REQUEST,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AdFreeRequest,location:_.Popup,workflowPhase:U.Complete})}catch(D){const T=(c=D.responseJSON)==null?void 0:c.message;if(T){const S=JSON.parse(T);i.error(p(S.Type,{video:t.data.title}))}else i.error(p("error"))}}async function y(){if(l.data.exists&&l.data.hasAdFree){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={id:t.data.id,userId:d.data.id,customerId:d.data.customerId};await r(m.addAdFreeVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddAdFreeVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}async function E(){if(l.data.exists){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={userId:d.data.id,customerId:d.data.customerId,globalId:t.data.globalId,libraryId:A.data.id};await r(m.addFullVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addFullSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddFullVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}return{requestAdFreeVideo:N,addAdFreeVideo:y,addFullVideo:E}}const ee="_circle_1yxtg_1",ae={circle:ee},o="tv.add",q=B.encloseNamespace(o),x={id:"ad-free",title:"adFreeTitle",description:"adFreeDescription",imageUrl:M.General.MOUNTAINS_FRAMED},f={id:"request-ad-free",title:"adFreeTitle",imageUrl:M.General.MOUNTAINS_FRAMED},h={id:"full-video",title:"fullVideoTitle",description:"fullVideoDescription",imageUrl:M.General.ANNOUNCEMENT_FRAMED};function re(a){const n=g(L.currentUser()),r=g(m.program(a.id)),i=g(n.data&&m.adFreeCredits(n.data.id,n.data.customerId,a.region)),{requestAdFreeVideo:d,addAdFreeVideo:A,addFullVideo:t}=Z(a.id,a.region);J(r.statusCode);const[s,l]=H.useState(null),N=!Number.isNaN(a.currentTime);function y(){s&&(s.id===h.id&&t(),s.id===x.id&&A(),s.id===f.id&&d())}function E(){if(!N){a.closePopup();return}b.trigger({application:F.TV,action:j.Tv.PREVIEW,args:[a.region,r.data.id],params:{currentTime:a.currentTime}})}const c=i.data&&i.data.userRequests<i.data.maxAvailableCredit,D=i.data&&i.data.maxAvailableCredit-i.data.userRequests;H.useEffect(()=>{i.hasCompleted&&(c||l(h))},[i,c]);const T=n.hasCompleted&&r.hasCompleted&&i.hasCompleted,S=(s==null?void 0:s.id)===f.id&&Q.isHolidayPeriod();return e.jsxs(Y,{size:"lg",title:q("title"),showLoadingSpinner:!T,closePopup:a.closePopup,children:[T&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"d-flex mb-3 mx-n2",children:[r.data.hasAdsFree&&e.jsxs(P,{option:{id:x.id},onSelect:l,selected:(s==null?void 0:s.id)===x.id,children:[e.jsx("img",{src:x.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:x.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:x.description})})]}),!r.data.hasAdsFree&&e.jsxs(P,{option:{id:f.id,disabled:!c},onSelect:l,selected:(s==null?void 0:s.id)===f.id,children:[e.jsx("img",{src:f.imageUrl,className:"img-fluid",draggable:!1}),e.jsxs("div",{className:"d-flex justify-content-center align-items-center mb-1",children:[e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:f.title})}),e.jsx("span",{className:`badge bg-dark rounded-circle ms-2 ${ae.circle}`,children:D})]}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:c?"requestAdFreeDescription":"noRequestsDescription"})})]}),e.jsxs(P,{option:{id:h.id},onSelect:l,selected:(s==null?void 0:s.id)===h.id,children:[e.jsx("img",{src:h.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:h.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:h.description})})]})]}),S&&e.jsxs("div",{className:"alert alert-warning",role:"alert",children:[e.jsx("h3",{className:"h5",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertHeading"})}),e.jsx("p",{className:"m-0",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertBody"})})]})]}),e.jsxs(k,{children:[e.jsx(k.Cancel,{text:q(N?"back":"close"),onClick:E,variant:"link"}),e.jsx(k.Submit,{text:q("continue"),onClick:y,variant:"dark",disabled:!s})]})]})}export{re as TvAddView};
2
+ //# sourceMappingURL=Rwi7StPz.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oHfhDsTp.chunk.js","sources":["../../../../libs/shared/src/components/choices-popup/components/choices/Choices.tsx","../../src/apps/tv/hooks/useTvAddRequests.ts","../../src/apps/tv/views/tv-add/TvAddView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './choices.module.scss';\n\nexport interface ChoicePopupOption {\n id: string;\n title?: string;\n description?: string;\n imageUrl?: string;\n disabled?: boolean;\n imageClassName?: string;\n}\n\n\ninterface ChoiceProps {\n option?: ChoicePopupOption;\n selected: boolean | ((selectedChoice: boolean) => boolean);\n onSelect: (option: ChoicePopupOption) => void;\n}\n\nexport function Choice(props: React.PropsWithChildren<ChoiceProps>): React.ReactElement {\n function onSelect(): void {\n if (props.option?.disabled)\n return;\n\n props.onSelect(props.option);\n }\n\n let className = 'text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50';\n\n if (props.selected)\n className += ` border-info ${styles.selected}`;\n\n if (props.option?.disabled)\n className += ` ${styles.disabled}`;\n\n return (\n <DivButton onClick={onSelect} className={className}>\n {props.option?.imageUrl && <img src={props.option.imageUrl} className={`img-fluid my-3 ${props.option.imageClassName ?? ''}`} draggable={false} />}\n {props.option?.title && <h2 className='h3'>{props.option.title}</h2>}\n {props.option?.description && <p className='mb-0' dangerouslySetInnerHTML={{ __html: props.option.description }}></p>}\n {props.children}\n </DivButton>\n );\n}\n\ninterface ChoicesProps {\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (option: ChoicePopupOption) => void;\n}\n\nexport function Choices(props: ChoicesProps): React.ReactElement {\n return (\n <div className='d-flex mb-3 mx-n2'>\n {props.options.map(o => (\n <Choice\n key={o.id}\n option={o}\n selected={props.selection?.id === o.id}\n onSelect={props.selectOption}\n />\n ))}\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, TvDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser, Library } from 'libs/shared/interfaces';\n\nimport { DefaultAlertHeading } from 'shared/constants/DefaultAlertHeading';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvWorkspaceVideoResponse } from 'apps/tv/interfaces/responses/TvWorkspaceVideoResponse';\n\nconst namespace = 'tv.addRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useTvAddRequests(programId: string, regionCode: string) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace());\n\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(programId));\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(regionCode));\n const workspaceVideo = Flight.useBasicFetch<TvWorkspaceVideoResponse>(\n program.data && currentUser.data &&\n TvRequests.workspaceVideo(\n program.data.id,\n currentUser.data.id,\n currentUser.data.customerId\n )\n );\n \n async function requestAdFreeVideo(): Promise<void> {\n try {\n await fetchAsync(TvRequests.createAdFreeRequest({\n programId: program.data.id,\n regionCode: region.data.code,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n }));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('requestAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.AD_FREE_REQUEST,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AdFreeRequest,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (error) {\n const errorMessage = error.responseJSON?.message;\n if (errorMessage) {\n const parsedErrorMessage = JSON.parse(errorMessage);\n alerts.error(getPhrase(parsedErrorMessage.Type, { video: program.data.title }));\n } else {\n alerts.error(getPhrase('error'));\n }\n }\n }\n\n async function addAdFreeVideo() {\n if (workspaceVideo.data.exists && workspaceVideo.data.hasAdFree) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n id: program.data.id,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n };\n await fetchAsync(TvRequests.addAdFreeVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddAdFreeVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n async function addFullVideo() {\n if (workspaceVideo.data.exists) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n globalId: program.data.globalId,\n libraryId: workspace.data.id\n };\n await fetchAsync(TvRequests.addFullVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addFullSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddFullVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n return { requestAdFreeVideo, addAdFreeVideo, addFullVideo };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Choice, ChoicePopupOption } from 'libs/shared/components/choices-popup/components/choices/Choices';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useTvAddRequests } from 'apps/tv/hooks/useTvAddRequests';\nimport { AdFreeCredits } from 'apps/tv/interfaces/models/AdFreeCredits';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-add.module.scss';\n\nconst namespace = 'tv.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst AD_FREE = {\n id: 'ad-free',\n title: 'adFreeTitle',\n description: 'adFreeDescription',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst REQUEST_AD_FREE = {\n id: 'request-ad-free',\n title: 'adFreeTitle',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst FULL_VIDEO = {\n id: 'full-video',\n title: 'fullVideoTitle',\n description: 'fullVideoDescription',\n imageUrl: ImageUrls.General.ANNOUNCEMENT_FRAMED\n};\n\ninterface TvAddViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvAddView(props: TvAddViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const adFreeCredits = Flight.useBasicFetch<AdFreeCredits>(\n currentUser.data &&\n TvRequests.adFreeCredits(\n currentUser.data.id,\n currentUser.data.customerId,\n props.region\n )\n );\n\n const { requestAdFreeVideo, addAdFreeVideo, addFullVideo } = useTvAddRequests(props.id, props.region);\n\n useHandleDialogError(program.statusCode);\n\n const [ selectedChoice, setSelectedChoice ] = React.useState<ChoicePopupOption>(null);\n\n const isFromPreview = !Number.isNaN(props.currentTime);\n\n function onClickContinue(): void {\n if (!selectedChoice)\n return;\n\n if (selectedChoice.id === FULL_VIDEO.id) {\n addFullVideo();\n }\n \n if (selectedChoice.id === AD_FREE.id) {\n addAdFreeVideo();\n }\n\n if (selectedChoice.id === REQUEST_AD_FREE.id) {\n requestAdFreeVideo();\n }\n }\n\n function onClickBack(): void {\n if (!isFromPreview) {\n props.closePopup();\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ props.region, program.data.id ],\n params: {\n currentTime: props.currentTime\n }\n });\n }\n\n const hasEnoughCredits = adFreeCredits.data &&\n (adFreeCredits.data.userRequests < adFreeCredits.data.maxAvailableCredit);\n const requestsRemaining = adFreeCredits.data &&\n (adFreeCredits.data.maxAvailableCredit - adFreeCredits.data.userRequests);\n\n React.useEffect(() => {\n if (!adFreeCredits.hasCompleted)\n return;\n \n if (hasEnoughCredits)\n return;\n\n setSelectedChoice(FULL_VIDEO);\n }, [ adFreeCredits, hasEnoughCredits ]);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n program.hasCompleted &&\n adFreeCredits.hasCompleted\n );\n\n const showAdFreeAlert = selectedChoice?.id === REQUEST_AD_FREE.id && TvUtils.isHolidayPeriod();\n\n return (\n <Popup\n size='lg'\n title={getPhrase('title')}\n showLoadingSpinner={!hasLoaded}\n closePopup={props.closePopup}\n >\n {hasLoaded &&\n <>\n <div className='d-flex mb-3 mx-n2'>\n {program.data.hasAdsFree &&\n <Choice\n option={{ id: AD_FREE.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === AD_FREE.id}\n >\n <img src={AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={AD_FREE.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={AD_FREE.description} /></p>\n </Choice>\n }\n \n {!program.data.hasAdsFree &&\n <Choice\n option={{ id: REQUEST_AD_FREE.id, disabled: !hasEnoughCredits }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === REQUEST_AD_FREE.id}\n >\n <img src={REQUEST_AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <div className='d-flex justify-content-center align-items-center mb-1'>\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={REQUEST_AD_FREE.title} /></h2>\n <span className={`badge bg-dark rounded-circle ms-2 ${styles.circle}`}>{requestsRemaining}</span>\n </div>\n <p className='mb-2'><Text namespace={namespace} phrase={hasEnoughCredits ? 'requestAdFreeDescription' : 'noRequestsDescription'} /></p>\n </Choice>\n }\n\n <Choice\n option={{ id: FULL_VIDEO.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === FULL_VIDEO.id}\n >\n <img src={FULL_VIDEO.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={FULL_VIDEO.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={FULL_VIDEO.description} /></p>\n </Choice>\n </div>\n\n {showAdFreeAlert &&\n <div className='alert alert-warning' role='alert'>\n <h3 className='h5'>\n <Text namespace={namespace} phrase='adFreeAlertHeading' />\n </h3>\n <p className='m-0'>\n <Text namespace={namespace} phrase='adFreeAlertBody' />\n </p>\n </div>\n }\n </>\n }\n \n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase(isFromPreview ? 'back' : 'close')}\n onClick={onClickBack}\n variant='link'\n />\n <PopupButtons.Submit\n text={getPhrase('continue')}\n onClick={onClickContinue}\n variant='dark'\n disabled={!selectedChoice}\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["Choice","props","onSelect","_a","className","styles","jsxs","DivButton","_b","jsx","_c","_d","namespace","getPhrase","LanguageService","useTvAddRequests","programId","regionCode","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","workspace","program","TvRequests","region","workspaceVideo","requestAdFreeVideo","DefaultAlertHeading","AlertType","Core.AppLinkHelper","AppChannels","Actions","AnalyticsHelper","UserAction","EntityType","TvDescriptor","LocationContext","WorkflowPhase","error","errorMessage","parsedErrorMessage","addAdFreeVideo","data","addFullVideo","AD_FREE","ImageUrls","REQUEST_AD_FREE","FULL_VIDEO","TvAddView","adFreeCredits","useHandleDialogError","selectedChoice","setSelectedChoice","React","isFromPreview","onClickContinue","onClickBack","hasEnoughCredits","requestsRemaining","hasLoaded","showAdFreeAlert","TvUtils","Popup","Fragment","Text","PopupButtons"],"mappings":"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"}
1
+ {"version":3,"file":"Rwi7StPz.chunk.js","sources":["../../../../libs/shared/src/components/choices-popup/components/choices/Choices.tsx","../../src/apps/tv/hooks/useTvAddRequests.ts","../../src/apps/tv/views/tv-add/TvAddView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './choices.module.scss';\n\nexport interface ChoicePopupOption {\n id: string;\n title?: string;\n description?: string;\n imageUrl?: string;\n disabled?: boolean;\n imageClassName?: string;\n}\n\n\ninterface ChoiceProps {\n option?: ChoicePopupOption;\n selected: boolean | ((selectedChoice: boolean) => boolean);\n onSelect: (option: ChoicePopupOption) => void;\n}\n\nexport function Choice(props: React.PropsWithChildren<ChoiceProps>): React.ReactElement {\n function onSelect(): void {\n if (props.option?.disabled)\n return;\n\n props.onSelect(props.option);\n }\n\n let className = 'text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50';\n\n if (props.selected)\n className += ` border-info ${styles.selected}`;\n\n if (props.option?.disabled)\n className += ` ${styles.disabled}`;\n\n return (\n <DivButton onClick={onSelect} className={className}>\n {props.option?.imageUrl && <img src={props.option.imageUrl} className={`img-fluid my-3 ${props.option.imageClassName ?? ''}`} draggable={false} />}\n {props.option?.title && <h2 className='h3'>{props.option.title}</h2>}\n {props.option?.description && <p className='mb-0' dangerouslySetInnerHTML={{ __html: props.option.description }}></p>}\n {props.children}\n </DivButton>\n );\n}\n\ninterface ChoicesProps {\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (option: ChoicePopupOption) => void;\n}\n\nexport function Choices(props: ChoicesProps): React.ReactElement {\n return (\n <div className='d-flex mb-3 mx-n2'>\n {props.options.map(o => (\n <Choice\n key={o.id}\n option={o}\n selected={props.selection?.id === o.id}\n onSelect={props.selectOption}\n />\n ))}\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, TvDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser, Library } from 'libs/shared/interfaces';\n\nimport { DefaultAlertHeading } from 'shared/constants/DefaultAlertHeading';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvWorkspaceVideoResponse } from 'apps/tv/interfaces/responses/TvWorkspaceVideoResponse';\n\nconst namespace = 'tv.addRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useTvAddRequests(programId: string, regionCode: string) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace());\n\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(programId));\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(regionCode));\n const workspaceVideo = Flight.useBasicFetch<TvWorkspaceVideoResponse>(\n program.data && currentUser.data &&\n TvRequests.workspaceVideo(\n program.data.id,\n currentUser.data.id,\n currentUser.data.customerId\n )\n );\n \n async function requestAdFreeVideo(): Promise<void> {\n try {\n await fetchAsync(TvRequests.createAdFreeRequest({\n programId: program.data.id,\n regionCode: region.data.code,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n }));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('requestAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.AD_FREE_REQUEST,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AdFreeRequest,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (error) {\n const errorMessage = error.responseJSON?.message;\n if (errorMessage) {\n const parsedErrorMessage = JSON.parse(errorMessage);\n alerts.error(getPhrase(parsedErrorMessage.Type, { video: program.data.title }));\n } else {\n alerts.error(getPhrase('error'));\n }\n }\n }\n\n async function addAdFreeVideo() {\n if (workspaceVideo.data.exists && workspaceVideo.data.hasAdFree) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n id: program.data.id,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n };\n await fetchAsync(TvRequests.addAdFreeVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddAdFreeVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n async function addFullVideo() {\n if (workspaceVideo.data.exists) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n globalId: program.data.globalId,\n libraryId: workspace.data.id\n };\n await fetchAsync(TvRequests.addFullVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addFullSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddFullVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n return { requestAdFreeVideo, addAdFreeVideo, addFullVideo };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Choice, ChoicePopupOption } from 'libs/shared/components/choices-popup/components/choices/Choices';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useTvAddRequests } from 'apps/tv/hooks/useTvAddRequests';\nimport { AdFreeCredits } from 'apps/tv/interfaces/models/AdFreeCredits';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-add.module.scss';\n\nconst namespace = 'tv.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst AD_FREE = {\n id: 'ad-free',\n title: 'adFreeTitle',\n description: 'adFreeDescription',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst REQUEST_AD_FREE = {\n id: 'request-ad-free',\n title: 'adFreeTitle',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst FULL_VIDEO = {\n id: 'full-video',\n title: 'fullVideoTitle',\n description: 'fullVideoDescription',\n imageUrl: ImageUrls.General.ANNOUNCEMENT_FRAMED\n};\n\ninterface TvAddViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvAddView(props: TvAddViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const adFreeCredits = Flight.useBasicFetch<AdFreeCredits>(\n currentUser.data &&\n TvRequests.adFreeCredits(\n currentUser.data.id,\n currentUser.data.customerId,\n props.region\n )\n );\n\n const { requestAdFreeVideo, addAdFreeVideo, addFullVideo } = useTvAddRequests(props.id, props.region);\n\n useHandleDialogError(program.statusCode);\n\n const [ selectedChoice, setSelectedChoice ] = React.useState<ChoicePopupOption>(null);\n\n const isFromPreview = !Number.isNaN(props.currentTime);\n\n function onClickContinue(): void {\n if (!selectedChoice)\n return;\n\n if (selectedChoice.id === FULL_VIDEO.id) {\n addFullVideo();\n }\n \n if (selectedChoice.id === AD_FREE.id) {\n addAdFreeVideo();\n }\n\n if (selectedChoice.id === REQUEST_AD_FREE.id) {\n requestAdFreeVideo();\n }\n }\n\n function onClickBack(): void {\n if (!isFromPreview) {\n props.closePopup();\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ props.region, program.data.id ],\n params: {\n currentTime: props.currentTime\n }\n });\n }\n\n const hasEnoughCredits = adFreeCredits.data &&\n (adFreeCredits.data.userRequests < adFreeCredits.data.maxAvailableCredit);\n const requestsRemaining = adFreeCredits.data &&\n (adFreeCredits.data.maxAvailableCredit - adFreeCredits.data.userRequests);\n\n React.useEffect(() => {\n if (!adFreeCredits.hasCompleted)\n return;\n \n if (hasEnoughCredits)\n return;\n\n setSelectedChoice(FULL_VIDEO);\n }, [ adFreeCredits, hasEnoughCredits ]);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n program.hasCompleted &&\n adFreeCredits.hasCompleted\n );\n\n const showAdFreeAlert = selectedChoice?.id === REQUEST_AD_FREE.id && TvUtils.isHolidayPeriod();\n\n return (\n <Popup\n size='lg'\n title={getPhrase('title')}\n showLoadingSpinner={!hasLoaded}\n closePopup={props.closePopup}\n >\n {hasLoaded &&\n <>\n <div className='d-flex mb-3 mx-n2'>\n {program.data.hasAdsFree &&\n <Choice\n option={{ id: AD_FREE.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === AD_FREE.id}\n >\n <img src={AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={AD_FREE.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={AD_FREE.description} /></p>\n </Choice>\n }\n \n {!program.data.hasAdsFree &&\n <Choice\n option={{ id: REQUEST_AD_FREE.id, disabled: !hasEnoughCredits }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === REQUEST_AD_FREE.id}\n >\n <img src={REQUEST_AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <div className='d-flex justify-content-center align-items-center mb-1'>\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={REQUEST_AD_FREE.title} /></h2>\n <span className={`badge bg-dark rounded-circle ms-2 ${styles.circle}`}>{requestsRemaining}</span>\n </div>\n <p className='mb-2'><Text namespace={namespace} phrase={hasEnoughCredits ? 'requestAdFreeDescription' : 'noRequestsDescription'} /></p>\n </Choice>\n }\n\n <Choice\n option={{ id: FULL_VIDEO.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === FULL_VIDEO.id}\n >\n <img src={FULL_VIDEO.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={FULL_VIDEO.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={FULL_VIDEO.description} /></p>\n </Choice>\n </div>\n\n {showAdFreeAlert &&\n <div className='alert alert-warning' role='alert'>\n <h3 className='h5'>\n <Text namespace={namespace} phrase='adFreeAlertHeading' />\n </h3>\n <p className='m-0'>\n <Text namespace={namespace} phrase='adFreeAlertBody' />\n </p>\n </div>\n }\n </>\n }\n \n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase(isFromPreview ? 'back' : 'close')}\n onClick={onClickBack}\n variant='link'\n />\n <PopupButtons.Submit\n text={getPhrase('continue')}\n onClick={onClickContinue}\n variant='dark'\n disabled={!selectedChoice}\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["Choice","props","onSelect","_a","className","styles","jsxs","DivButton","_b","jsx","_c","_d","namespace","getPhrase","LanguageService","useTvAddRequests","programId","regionCode","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","workspace","program","TvRequests","region","workspaceVideo","requestAdFreeVideo","DefaultAlertHeading","AlertType","Core.AppLinkHelper","AppChannels","Actions","AnalyticsHelper","UserAction","EntityType","TvDescriptor","LocationContext","WorkflowPhase","error","errorMessage","parsedErrorMessage","addAdFreeVideo","data","addFullVideo","AD_FREE","ImageUrls","REQUEST_AD_FREE","FULL_VIDEO","TvAddView","adFreeCredits","useHandleDialogError","selectedChoice","setSelectedChoice","React","isFromPreview","onClickContinue","onClickBack","hasEnoughCredits","requestsRemaining","hasLoaded","showAdFreeAlert","TvUtils","Popup","Fragment","Text","PopupButtons"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{co as g,L as t,q as o,aU as a,cp as c,cq as p}from"./app-B9-iRU1r.js";const i="shared.privateResourceError";class u extends g{constructor(){super(t.getPhrase(i,"title"))}get name(){return"PrivateResourceError"}get heading(){return t.getPhrase(i,"heading")}get description(){return t.getPhrase(i,"description")}}const d="shared.regionLockedResourceError";class f extends g{constructor(){super(t.getPhrase(d,"title"))}get name(){return"RegionLockedResourceError"}get heading(){return t.getPhrase(d,"heading")}get description(){return t.getPhrase(d,"description")}}const E={notFound:p,forbidden:{rating:u,yearLevel:u,region:f,privacy:u},badRequest:c,internalServerError:c};function R(e,h={},n={}){if(!e)return;let r;typeof e=="number"?r=e:r=e.status;const s={...E,...h};if(r&&o.isStatusCodeError(r)){if(r===a.InternalServer){n.internalServerError||o.throw(new c);return}if(r===a.NotFound){n.notFound||o.throw(new s.notFound);return}if(r===a.Forbidden){n.forbidden||o.throw(new s.forbidden.privacy);return}n.badRequest||o.throw(new s.badRequest)}}export{R as h};
2
- //# sourceMappingURL=kRwTHNNb.chunk.js.map
1
+ import{co as g,L as t,q as o,aU as a,cp as c,cq as p}from"./app-YVcc0mcr.js";const i="shared.privateResourceError";class u extends g{constructor(){super(t.getPhrase(i,"title"))}get name(){return"PrivateResourceError"}get heading(){return t.getPhrase(i,"heading")}get description(){return t.getPhrase(i,"description")}}const d="shared.regionLockedResourceError";class f extends g{constructor(){super(t.getPhrase(d,"title"))}get name(){return"RegionLockedResourceError"}get heading(){return t.getPhrase(d,"heading")}get description(){return t.getPhrase(d,"description")}}const E={notFound:p,forbidden:{rating:u,yearLevel:u,region:f,privacy:u},badRequest:c,internalServerError:c};function R(e,h={},n={}){if(!e)return;let r;typeof e=="number"?r=e:r=e.status;const s={...E,...h};if(r&&o.isStatusCodeError(r)){if(r===a.InternalServer){n.internalServerError||o.throw(new c);return}if(r===a.NotFound){n.notFound||o.throw(new s.notFound);return}if(r===a.Forbidden){n.forbidden||o.throw(new s.forbidden.privacy);return}n.badRequest||o.throw(new s.badRequest)}}export{R as h};
2
+ //# sourceMappingURL=WTzdZQUn.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kRwTHNNb.chunk.js","sources":["../../../../libs/shared/src/errors/general/private-resource/PrivateResourceError.ts","../../../../libs/shared/src/errors/general/region-locked-resource/RegionLockedResourceError.ts","../../../../libs/shared/src/errors/handlers/HttpErrorHandlers.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.privateResourceError';\n\nexport class PrivateResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'PrivateResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.regionLockedResourceError';\n\nexport class RegionLockedResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'RegionLockedResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}"],"names":["namespace","PrivateResourceError","ErrorPageError","LanguageService","RegionLockedResourceError","defaultErrors","NotFoundError","UnspecifiedError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","errorMap","Core.ErrorHelper","HttpStatus"],"mappings":"6EAIA,MAAMA,EAAY,8BAEX,MAAMC,UAA6BC,CAAe,CACvD,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,sBACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCrBA,MAAMA,EAAY,mCAEX,MAAMI,UAAkCF,CAAe,CAC5D,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,2BACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCEA,MAAMK,EAA8B,CAClC,SAAUC,EACV,UAAW,CACT,OAAQL,EACR,UAAWA,EACX,OAAQG,EACR,QAASH,CAAA,EAEX,WAAYM,EACZ,oBAAqBA,CACvB,EAEO,SAASC,EACdC,EACAC,EAA+B,CAAA,EAK/BC,EAAgC,CAAA,EAC1B,CACN,GAAI,CAACF,EACH,OAEF,IAAIG,EAEA,OAAOH,GAAU,SACnBG,EAAaH,EAEbG,EAAaH,EAAK,OAGpB,MAAMI,EAAW,CACf,GAAGR,EACH,GAAGK,CAAA,EAGL,GAAKE,GAGAE,EAAiB,kBAAkBF,CAAU,EAGlD,IAAIA,IAAeG,EAAW,eAAgB,CACvCJ,EAAU,qBACbG,EAAiB,MAAM,IAAIP,CAAkB,EAC/C,MACF,CAEA,GAAIK,IAAeG,EAAW,SAAU,CACjCJ,EAAU,UACbG,EAAiB,MAAM,IAAID,EAAS,QAAU,EAChD,MACF,CAEA,GAAID,IAAeG,EAAW,UAAW,CAKlCJ,EAAU,WACbG,EAAiB,MAAM,IAAID,EAAS,UAAU,OAAS,EACzD,MACF,CAEKF,EAAU,YACbG,EAAiB,MAAM,IAAID,EAAS,UAAY,EACpD"}
1
+ {"version":3,"file":"WTzdZQUn.chunk.js","sources":["../../../../libs/shared/src/errors/general/private-resource/PrivateResourceError.ts","../../../../libs/shared/src/errors/general/region-locked-resource/RegionLockedResourceError.ts","../../../../libs/shared/src/errors/handlers/HttpErrorHandlers.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.privateResourceError';\n\nexport class PrivateResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'PrivateResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.regionLockedResourceError';\n\nexport class RegionLockedResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'RegionLockedResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}"],"names":["namespace","PrivateResourceError","ErrorPageError","LanguageService","RegionLockedResourceError","defaultErrors","NotFoundError","UnspecifiedError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","errorMap","Core.ErrorHelper","HttpStatus"],"mappings":"6EAIA,MAAMA,EAAY,8BAEX,MAAMC,UAA6BC,CAAe,CACvD,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,sBACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCrBA,MAAMA,EAAY,mCAEX,MAAMI,UAAkCF,CAAe,CAC5D,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,2BACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCEA,MAAMK,EAA8B,CAClC,SAAUC,EACV,UAAW,CACT,OAAQL,EACR,UAAWA,EACX,OAAQG,EACR,QAASH,CAAA,EAEX,WAAYM,EACZ,oBAAqBA,CACvB,EAEO,SAASC,EACdC,EACAC,EAA+B,CAAA,EAK/BC,EAAgC,CAAA,EAC1B,CACN,GAAI,CAACF,EACH,OAEF,IAAIG,EAEA,OAAOH,GAAU,SACnBG,EAAaH,EAEbG,EAAaH,EAAK,OAGpB,MAAMI,EAAW,CACf,GAAGR,EACH,GAAGK,CAAA,EAGL,GAAKE,GAGAE,EAAiB,kBAAkBF,CAAU,EAGlD,IAAIA,IAAeG,EAAW,eAAgB,CACvCJ,EAAU,qBACbG,EAAiB,MAAM,IAAIP,CAAkB,EAC/C,MACF,CAEA,GAAIK,IAAeG,EAAW,SAAU,CACjCJ,EAAU,UACbG,EAAiB,MAAM,IAAID,EAAS,QAAU,EAChD,MACF,CAEA,GAAID,IAAeG,EAAW,UAAW,CAKlCJ,EAAU,WACbG,EAAiB,MAAM,IAAID,EAAS,UAAU,OAAS,EACzD,MACF,CAEKF,EAAU,YACbG,EAAiB,MAAM,IAAID,EAAS,UAAY,EACpD"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"./app-B9-iRU1r.js";var x={exports:{}},o;function u(){return o||(o=1,(function(r){function s(){return r.exports=s=Object.assign?Object.assign.bind():function(i){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(i[a]=n[a])}return i},r.exports.__esModule=!0,r.exports.default=r.exports,s.apply(null,arguments)}r.exports=s,r.exports.__esModule=!0,r.exports.default=r.exports})(x)),x.exports}function f(r){return e.jsxs("svg",{...r,children:[e.jsx("defs",{children:e.jsx("path",{id:"a",d:"M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6",fill:"currentColor"})}),e.jsx("use",{xlinkHref:"#a",fill:"#333"})]})}export{f as V,u as r};
2
- //# sourceMappingURL=BswyFk_N.chunk.js.map
1
+ import{j as e}from"./app-YVcc0mcr.js";var x={exports:{}},o;function u(){return o||(o=1,(function(r){function s(){return r.exports=s=Object.assign?Object.assign.bind():function(i){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(i[a]=n[a])}return i},r.exports.__esModule=!0,r.exports.default=r.exports,s.apply(null,arguments)}r.exports=s,r.exports.__esModule=!0,r.exports.default=r.exports})(x)),x.exports}function f(r){return e.jsxs("svg",{...r,children:[e.jsx("defs",{children:e.jsx("path",{id:"a",d:"M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6",fill:"currentColor"})}),e.jsx("use",{xlinkHref:"#a",fill:"#333"})]})}export{f as V,u as r};
2
+ //# sourceMappingURL=a1BWyh3I.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BswyFk_N.chunk.js","sources":["../../../../../node_modules/@babel/runtime/helpers/extends.js","../../../../libs/shared/src/images/svg/actions/VisibleOnSvg.tsx"],"sourcesContent":["function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React from 'react';\n\nexport function VisibleOnSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6'\n fill='currentColor'\n />\n </defs>\n <use xlinkHref='#a' fill='#333' />\n </svg>\n );\n}\n"],"names":["_extends","module","n","e","t","r","VisibleOnSvg","props","jsxs","jsx"],"mappings":"oGAAA,SAASA,GAAW,CAClB,OAAOC,EAAA,QAAiBD,EAAW,OAAO,OAAS,OAAO,OAAO,OAAS,SAAUE,EAAG,CACrF,QAASC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIC,EAAI,UAAUD,CAAC,EACnB,QAASE,KAAKD,GAAI,CAAA,GAAI,eAAe,KAAKA,EAAGC,CAAC,IAAMH,EAAEG,CAAC,EAAID,EAAEC,CAAC,EACpE,CACI,OAAOH,CACX,EAAKD,qBAA4B,GAAMA,EAAO,QAAQ,QAAaA,EAAO,QAASD,EAAS,MAAM,KAAM,SAAS,CACjH,CACAC,EAAA,QAAiBD,EAAUC,EAAA,QAAA,WAA4B,GAAMA,EAAO,QAAQ,QAAaA,EAAO,wBCPzF,SAASK,EAAaC,EAAsC,CACjE,OACEC,EAAAA,KAAC,MAAA,CAAK,GAAGD,EACP,SAAA,CAAAE,MAAC,OAAA,CACC,SAAAA,EAAAA,IAAC,OAAA,CACC,GAAG,IACH,EAAE,qQACF,KAAK,cAAA,CAAA,EAET,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,KAAK,KAAK,MAAA,CAAO,CAAA,EAClC,CAEJ","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"a1BWyh3I.chunk.js","sources":["../../../../../node_modules/@babel/runtime/helpers/extends.js","../../../../libs/shared/src/images/svg/actions/VisibleOnSvg.tsx"],"sourcesContent":["function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React from 'react';\n\nexport function VisibleOnSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6'\n fill='currentColor'\n />\n </defs>\n <use xlinkHref='#a' fill='#333' />\n </svg>\n );\n}\n"],"names":["_extends","module","n","e","t","r","VisibleOnSvg","props","jsxs","jsx"],"mappings":"oGAAA,SAASA,GAAW,CAClB,OAAOC,EAAA,QAAiBD,EAAW,OAAO,OAAS,OAAO,OAAO,OAAS,SAAUE,EAAG,CACrF,QAASC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIC,EAAI,UAAUD,CAAC,EACnB,QAASE,KAAKD,GAAI,CAAA,GAAI,eAAe,KAAKA,EAAGC,CAAC,IAAMH,EAAEG,CAAC,EAAID,EAAEC,CAAC,EACpE,CACI,OAAOH,CACX,EAAKD,qBAA4B,GAAMA,EAAO,QAAQ,QAAaA,EAAO,QAASD,EAAS,MAAM,KAAM,SAAS,CACjH,CACAC,EAAA,QAAiBD,EAAUC,EAAA,QAAA,WAA4B,GAAMA,EAAO,QAAQ,QAAaA,EAAO,wBCPzF,SAASK,EAAaC,EAAsC,CACjE,OACEC,EAAAA,KAAC,MAAA,CAAK,GAAGD,EACP,SAAA,CAAAE,MAAC,OAAA,CACC,SAAAA,EAAAA,IAAC,OAAA,CACC,GAAG,IACH,EAAE,qQACF,KAAK,cAAA,CAAA,EAET,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,KAAK,KAAK,MAAA,CAAO,CAAA,EAClC,CAEJ","x_google_ignoreList":[0]}