@clickview/exchange 0.50.0-rc.2 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/en.json +1 -1
  3. package/dist/scripts/{DiR2eKm4.chunk.js → 00ZZVkz8.chunk.js} +2 -2
  4. package/dist/scripts/{DiR2eKm4.chunk.js.map → 00ZZVkz8.chunk.js.map} +1 -1
  5. package/dist/scripts/{C36BgTJV.chunk.js → 5Bk7WUgq.chunk.js} +2 -2
  6. package/dist/scripts/{C36BgTJV.chunk.js.map → 5Bk7WUgq.chunk.js.map} +1 -1
  7. package/dist/scripts/{C97fjHLE.chunk.js → 8KUv63J7.chunk.js} +2 -2
  8. package/dist/scripts/{C97fjHLE.chunk.js.map → 8KUv63J7.chunk.js.map} +1 -1
  9. package/dist/scripts/9z6_p6X0.chunk.js +2 -0
  10. package/dist/scripts/{C7lfPlyo.chunk.js.map → 9z6_p6X0.chunk.js.map} +1 -1
  11. package/dist/scripts/{CidPoXbD.chunk.js → B0940TpS.chunk.js} +2 -2
  12. package/dist/scripts/{CidPoXbD.chunk.js.map → B0940TpS.chunk.js.map} +1 -1
  13. package/dist/scripts/{Cyhg-nBj.chunk.js → B3i6vWFI.chunk.js} +2 -2
  14. package/dist/scripts/{Cyhg-nBj.chunk.js.map → B3i6vWFI.chunk.js.map} +1 -1
  15. package/dist/scripts/{DcA5xG6o.chunk.js → B67thHHx.chunk.js} +2 -2
  16. package/dist/scripts/{DcA5xG6o.chunk.js.map → B67thHHx.chunk.js.map} +1 -1
  17. package/dist/scripts/{x8TB7tv6.chunk.js → B6WUgONl.chunk.js} +2 -2
  18. package/dist/scripts/{x8TB7tv6.chunk.js.map → B6WUgONl.chunk.js.map} +1 -1
  19. package/dist/scripts/{1oBN4k-t.chunk.js → BDMJzZJS.chunk.js} +2 -2
  20. package/dist/scripts/{1oBN4k-t.chunk.js.map → BDMJzZJS.chunk.js.map} +1 -1
  21. package/dist/scripts/{CHPVU_Qn.chunk.js → BIqqvbli.chunk.js} +2 -2
  22. package/dist/scripts/{CHPVU_Qn.chunk.js.map → BIqqvbli.chunk.js.map} +1 -1
  23. package/dist/scripts/{CRomQTdh.chunk.js → BKRUQoRy.chunk.js} +2 -2
  24. package/dist/scripts/{CRomQTdh.chunk.js.map → BKRUQoRy.chunk.js.map} +1 -1
  25. package/dist/scripts/{C5r1_Fc_.chunk.js → BKyPrPT1.chunk.js} +2 -2
  26. package/dist/scripts/{C5r1_Fc_.chunk.js.map → BKyPrPT1.chunk.js.map} +1 -1
  27. package/dist/scripts/{CiRJHxmU.chunk.js → BLCv9gK3.chunk.js} +2 -2
  28. package/dist/scripts/{CiRJHxmU.chunk.js.map → BLCv9gK3.chunk.js.map} +1 -1
  29. package/dist/scripts/{BoXsW16j.chunk.js → BOqS0oAv.chunk.js} +2 -2
  30. package/dist/scripts/{BoXsW16j.chunk.js.map → BOqS0oAv.chunk.js.map} +1 -1
  31. package/dist/scripts/{dnQMOuPg.chunk.js → BP9xX_4y.chunk.js} +2 -2
  32. package/dist/scripts/{dnQMOuPg.chunk.js.map → BP9xX_4y.chunk.js.map} +1 -1
  33. package/dist/scripts/{BHy7EHYB.chunk.js → BSSwzvSU.chunk.js} +2 -2
  34. package/dist/scripts/{BHy7EHYB.chunk.js.map → BSSwzvSU.chunk.js.map} +1 -1
  35. package/dist/scripts/{B93FMGSP.chunk.js → BX6q5kK6.chunk.js} +2 -2
  36. package/dist/scripts/{B93FMGSP.chunk.js.map → BX6q5kK6.chunk.js.map} +1 -1
  37. package/dist/scripts/{C8geGHZf.chunk.js → B_Fzcc5G.chunk.js} +2 -2
  38. package/dist/scripts/{C8geGHZf.chunk.js.map → B_Fzcc5G.chunk.js.map} +1 -1
  39. package/dist/scripts/{Bq1eQRV_.chunk.js → BbKbh5tw.chunk.js} +2 -2
  40. package/dist/scripts/{Bq1eQRV_.chunk.js.map → BbKbh5tw.chunk.js.map} +1 -1
  41. package/dist/scripts/{BvnJNI_Y.chunk.js → BelnzR7T.chunk.js} +2 -2
  42. package/dist/scripts/{BvnJNI_Y.chunk.js.map → BelnzR7T.chunk.js.map} +1 -1
  43. package/dist/scripts/{DbVI3h0V.chunk.js → Bh_H4xlD.chunk.js} +2 -2
  44. package/dist/scripts/{DbVI3h0V.chunk.js.map → Bh_H4xlD.chunk.js.map} +1 -1
  45. package/dist/scripts/{C99JIGI3.chunk.js → Blfyr1LY.chunk.js} +2 -2
  46. package/dist/scripts/{C99JIGI3.chunk.js.map → Blfyr1LY.chunk.js.map} +1 -1
  47. package/dist/scripts/{B1QnQX6X.chunk.js → BnvEXqRe.chunk.js} +2 -2
  48. package/dist/scripts/{B1QnQX6X.chunk.js.map → BnvEXqRe.chunk.js.map} +1 -1
  49. package/dist/scripts/{DYjoaCnl.chunk.js → BoHka3Ec.chunk.js} +2 -2
  50. package/dist/scripts/{DYjoaCnl.chunk.js.map → BoHka3Ec.chunk.js.map} +1 -1
  51. package/dist/scripts/{OvG1eOzS.chunk.js → Bq4Y5pwG.chunk.js} +2 -2
  52. package/dist/scripts/{OvG1eOzS.chunk.js.map → Bq4Y5pwG.chunk.js.map} +1 -1
  53. package/dist/scripts/{CX6fV4JE.chunk.js → BrRctFvx.chunk.js} +2 -2
  54. package/dist/scripts/{CX6fV4JE.chunk.js.map → BrRctFvx.chunk.js.map} +1 -1
  55. package/dist/scripts/{BNoyVB0N.chunk.js → C9hXChxH.chunk.js} +2 -2
  56. package/dist/scripts/{BNoyVB0N.chunk.js.map → C9hXChxH.chunk.js.map} +1 -1
  57. package/dist/scripts/CAk0J_8c.chunk.js +2 -0
  58. package/dist/scripts/{DU8kVZuh.chunk.js.map → CAk0J_8c.chunk.js.map} +1 -1
  59. package/dist/scripts/{DuHiL0j5.chunk.js → CB8-mvyD.chunk.js} +2 -2
  60. package/dist/scripts/{DuHiL0j5.chunk.js.map → CB8-mvyD.chunk.js.map} +1 -1
  61. package/dist/scripts/{z6Us1EdG.chunk.js → CGsO0liR.chunk.js} +2 -2
  62. package/dist/scripts/{z6Us1EdG.chunk.js.map → CGsO0liR.chunk.js.map} +1 -1
  63. package/dist/scripts/{CxB8O87g.chunk.js → CGuGkRe6.chunk.js} +2 -2
  64. package/dist/scripts/{CxB8O87g.chunk.js.map → CGuGkRe6.chunk.js.map} +1 -1
  65. package/dist/scripts/{Cdo-iAIt.chunk.js → CLEMYZCv.chunk.js} +2 -2
  66. package/dist/scripts/{Cdo-iAIt.chunk.js.map → CLEMYZCv.chunk.js.map} +1 -1
  67. package/dist/scripts/{BopIehJE.chunk.js → CLn62x3p.chunk.js} +2 -2
  68. package/dist/scripts/{BopIehJE.chunk.js.map → CLn62x3p.chunk.js.map} +1 -1
  69. package/dist/scripts/{WHGl124l.chunk.js → CSpsN9Sf.chunk.js} +2 -2
  70. package/dist/scripts/{WHGl124l.chunk.js.map → CSpsN9Sf.chunk.js.map} +1 -1
  71. package/dist/scripts/{l-2DoY9E.chunk.js → CYnTOjxg.chunk.js} +2 -2
  72. package/dist/scripts/{l-2DoY9E.chunk.js.map → CYnTOjxg.chunk.js.map} +1 -1
  73. package/dist/scripts/{CDVd8Gzo.chunk.js → CbbLJMD7.chunk.js} +2 -2
  74. package/dist/scripts/{CDVd8Gzo.chunk.js.map → CbbLJMD7.chunk.js.map} +1 -1
  75. package/dist/scripts/{CmcCT6Mq.chunk.js → Ch4JUcCU.chunk.js} +2 -2
  76. package/dist/scripts/{CmcCT6Mq.chunk.js.map → Ch4JUcCU.chunk.js.map} +1 -1
  77. package/dist/scripts/{CrAxON7A.chunk.js → Co1fFZfW.chunk.js} +2 -2
  78. package/dist/scripts/{CrAxON7A.chunk.js.map → Co1fFZfW.chunk.js.map} +1 -1
  79. package/dist/scripts/{-rDA7laA.chunk.js → Cr24Qwk-.chunk.js} +2 -2
  80. package/dist/scripts/{-rDA7laA.chunk.js.map → Cr24Qwk-.chunk.js.map} +1 -1
  81. package/dist/scripts/{mALBAvSP.chunk.js → CtWcMjF1.chunk.js} +2 -2
  82. package/dist/scripts/{mALBAvSP.chunk.js.map → CtWcMjF1.chunk.js.map} +1 -1
  83. package/dist/scripts/{BOzZT1qL.chunk.js → Cz5ywK2M.chunk.js} +2 -2
  84. package/dist/scripts/{BOzZT1qL.chunk.js.map → Cz5ywK2M.chunk.js.map} +1 -1
  85. package/dist/scripts/{BpkgwVDj.chunk.js → CzvwQ7VE.chunk.js} +2 -2
  86. package/dist/scripts/{BpkgwVDj.chunk.js.map → CzvwQ7VE.chunk.js.map} +1 -1
  87. package/dist/scripts/{CtciUXp4.chunk.js → D2GbHqkj.chunk.js} +2 -2
  88. package/dist/scripts/{CtciUXp4.chunk.js.map → D2GbHqkj.chunk.js.map} +1 -1
  89. package/dist/scripts/D4szUN7u.chunk.js +2 -0
  90. package/dist/scripts/{CfRzFJ31.chunk.js.map → D4szUN7u.chunk.js.map} +1 -1
  91. package/dist/scripts/{C_sNZ3q9.chunk.js → DC9G8zGt.chunk.js} +2 -2
  92. package/dist/scripts/{C_sNZ3q9.chunk.js.map → DC9G8zGt.chunk.js.map} +1 -1
  93. package/dist/scripts/{DxkmuWkI.chunk.js → DDH7BcMI.chunk.js} +2 -2
  94. package/dist/scripts/{DxkmuWkI.chunk.js.map → DDH7BcMI.chunk.js.map} +1 -1
  95. package/dist/scripts/{DHjeFsuP.chunk.js → DDceUbL5.chunk.js} +2 -2
  96. package/dist/scripts/{DHjeFsuP.chunk.js.map → DDceUbL5.chunk.js.map} +1 -1
  97. package/dist/scripts/{CHa6bZJR.chunk.js → DE4Juqeg.chunk.js} +2 -2
  98. package/dist/scripts/{CHa6bZJR.chunk.js.map → DE4Juqeg.chunk.js.map} +1 -1
  99. package/dist/scripts/{Ct_04zDE.chunk.js → DHDAcKGM.chunk.js} +2 -2
  100. package/dist/scripts/{Ct_04zDE.chunk.js.map → DHDAcKGM.chunk.js.map} +1 -1
  101. package/dist/scripts/DIiIA5hY.chunk.js +2 -0
  102. package/dist/scripts/{DsCrIxlP.chunk.js.map → DIiIA5hY.chunk.js.map} +1 -1
  103. package/dist/scripts/DLCJG-Fm.chunk.js +2 -0
  104. package/dist/scripts/{CYuY28rl.chunk.js.map → DLCJG-Fm.chunk.js.map} +1 -1
  105. package/dist/scripts/{cw1CbjiZ.chunk.js → DORu23Pq.chunk.js} +2 -2
  106. package/dist/scripts/{cw1CbjiZ.chunk.js.map → DORu23Pq.chunk.js.map} +1 -1
  107. package/dist/scripts/{Dmfr0hZx.chunk.js → DOqvCLjE.chunk.js} +2 -2
  108. package/dist/scripts/{Dmfr0hZx.chunk.js.map → DOqvCLjE.chunk.js.map} +1 -1
  109. package/dist/scripts/{DWmgmt8-.chunk.js → DQNTWWrq.chunk.js} +2 -2
  110. package/dist/scripts/{DWmgmt8-.chunk.js.map → DQNTWWrq.chunk.js.map} +1 -1
  111. package/dist/scripts/{h68xZO90.chunk.js → DWDiqXD7.chunk.js} +2 -2
  112. package/dist/scripts/{h68xZO90.chunk.js.map → DWDiqXD7.chunk.js.map} +1 -1
  113. package/dist/scripts/{Bi0GaEZE.chunk.js → DZ4UeBKW.chunk.js} +2 -2
  114. package/dist/scripts/{Bi0GaEZE.chunk.js.map → DZ4UeBKW.chunk.js.map} +1 -1
  115. package/dist/scripts/{6D5NxiDj.chunk.js → D_JsKNZh.chunk.js} +2 -2
  116. package/dist/scripts/{6D5NxiDj.chunk.js.map → D_JsKNZh.chunk.js.map} +1 -1
  117. package/dist/scripts/DaW5IrMJ.chunk.js +2 -0
  118. package/dist/scripts/{BTq4W22K.chunk.js.map → DaW5IrMJ.chunk.js.map} +1 -1
  119. package/dist/scripts/{DwMcJ3Ip.chunk.js → DdcBDgpq.chunk.js} +2 -2
  120. package/dist/scripts/{DwMcJ3Ip.chunk.js.map → DdcBDgpq.chunk.js.map} +1 -1
  121. package/dist/scripts/{BeyY1CwV.chunk.js → Dgk7nYlV.chunk.js} +2 -2
  122. package/dist/scripts/{BeyY1CwV.chunk.js.map → Dgk7nYlV.chunk.js.map} +1 -1
  123. package/dist/scripts/{CEZiVSXU.chunk.js → DihXm5mz.chunk.js} +2 -2
  124. package/dist/scripts/{CEZiVSXU.chunk.js.map → DihXm5mz.chunk.js.map} +1 -1
  125. package/dist/scripts/{DXRtwYU8.chunk.js → DlvwqUyz.chunk.js} +2 -2
  126. package/dist/scripts/{DXRtwYU8.chunk.js.map → DlvwqUyz.chunk.js.map} +1 -1
  127. package/dist/scripts/{C8aildLX.chunk.js → Dp7JDODj.chunk.js} +2 -2
  128. package/dist/scripts/{C8aildLX.chunk.js.map → Dp7JDODj.chunk.js.map} +1 -1
  129. package/dist/scripts/{wKPIC1H3.chunk.js → Dq-OnBBE.chunk.js} +2 -2
  130. package/dist/scripts/{wKPIC1H3.chunk.js.map → Dq-OnBBE.chunk.js.map} +1 -1
  131. package/dist/scripts/{DRxJfu3A.chunk.js → DrTbksPR.chunk.js} +2 -2
  132. package/dist/scripts/{DRxJfu3A.chunk.js.map → DrTbksPR.chunk.js.map} +1 -1
  133. package/dist/scripts/{aFUDBFEd.chunk.js → Dw4FOx_G.chunk.js} +2 -2
  134. package/dist/scripts/{aFUDBFEd.chunk.js.map → Dw4FOx_G.chunk.js.map} +1 -1
  135. package/dist/scripts/DwDASoj9.chunk.js +2 -0
  136. package/dist/scripts/{D1fkcw30.chunk.js.map → DwDASoj9.chunk.js.map} +1 -1
  137. package/dist/scripts/{U4HYh7oC.chunk.js → DwIQTRkx.chunk.js} +2 -2
  138. package/dist/scripts/{U4HYh7oC.chunk.js.map → DwIQTRkx.chunk.js.map} +1 -1
  139. package/dist/scripts/{BBhJOnJs.chunk.js → DxF4GLPa.chunk.js} +2 -2
  140. package/dist/scripts/{BBhJOnJs.chunk.js.map → DxF4GLPa.chunk.js.map} +1 -1
  141. package/dist/scripts/{Dh_LRqD1.chunk.js → DxQXGtZm.chunk.js} +2 -2
  142. package/dist/scripts/{Dh_LRqD1.chunk.js.map → DxQXGtZm.chunk.js.map} +1 -1
  143. package/dist/scripts/{CRuObGvW.chunk.js → PbxMeR6l.chunk.js} +2 -2
  144. package/dist/scripts/{CRuObGvW.chunk.js.map → PbxMeR6l.chunk.js.map} +1 -1
  145. package/dist/scripts/{W8wegH66.chunk.js → QpdkfjyT.chunk.js} +2 -2
  146. package/dist/scripts/{W8wegH66.chunk.js.map → QpdkfjyT.chunk.js.map} +1 -1
  147. package/dist/scripts/{d_OewpIc.chunk.js → UXYD7sDO.chunk.js} +2 -2
  148. package/dist/scripts/{d_OewpIc.chunk.js.map → UXYD7sDO.chunk.js.map} +1 -1
  149. package/dist/scripts/{DgWxzhMg.chunk.js → _mZm6AP_.chunk.js} +2 -2
  150. package/dist/scripts/{DgWxzhMg.chunk.js.map → _mZm6AP_.chunk.js.map} +1 -1
  151. package/dist/scripts/{app-Det8y4U1.js → app-C2md4v6O.js} +4 -4
  152. package/dist/scripts/{app-Det8y4U1.js.map → app-C2md4v6O.js.map} +1 -1
  153. package/dist/scripts/{DzbCvkXx.chunk.js → ccYLdwq0.chunk.js} +2 -2
  154. package/dist/scripts/{DzbCvkXx.chunk.js.map → ccYLdwq0.chunk.js.map} +1 -1
  155. package/dist/scripts/{CeVw08Ln.chunk.js → dDxecIoU.chunk.js} +2 -2
  156. package/dist/scripts/{CeVw08Ln.chunk.js.map → dDxecIoU.chunk.js.map} +1 -1
  157. package/dist/scripts/{Bsw4ZO9U.chunk.js → e36s_itU.chunk.js} +2 -2
  158. package/dist/scripts/{Bsw4ZO9U.chunk.js.map → e36s_itU.chunk.js.map} +1 -1
  159. package/dist/scripts/{CdGLJKZk.chunk.js → jCscKGvY.chunk.js} +2 -2
  160. package/dist/scripts/{CdGLJKZk.chunk.js.map → jCscKGvY.chunk.js.map} +1 -1
  161. package/dist/scripts/{7fC_wUI0.chunk.js → k1zcITmm.chunk.js} +2 -2
  162. package/dist/scripts/{7fC_wUI0.chunk.js.map → k1zcITmm.chunk.js.map} +1 -1
  163. package/dist/scripts/{DT1DdOeu.chunk.js → kCVTwqsj.chunk.js} +2 -2
  164. package/dist/scripts/{DT1DdOeu.chunk.js.map → kCVTwqsj.chunk.js.map} +1 -1
  165. package/dist/scripts/{CBlUYGqN.chunk.js → lqnuKFoF.chunk.js} +2 -2
  166. package/dist/scripts/{CBlUYGqN.chunk.js.map → lqnuKFoF.chunk.js.map} +1 -1
  167. package/dist/scripts/{BuawzJwd.chunk.js → msdkwRcQ.chunk.js} +2 -2
  168. package/dist/scripts/msdkwRcQ.chunk.js.map +1 -0
  169. package/dist/scripts/{OpOTepmF.chunk.js → nXVR9Bqt.chunk.js} +2 -2
  170. package/dist/scripts/{OpOTepmF.chunk.js.map → nXVR9Bqt.chunk.js.map} +1 -1
  171. package/dist/scripts/o_RrBIf7.chunk.js +2 -0
  172. package/dist/scripts/{Bksx5ui9.chunk.js.map → o_RrBIf7.chunk.js.map} +1 -1
  173. package/dist/scripts/{C6bEPV55.chunk.js → pMgyVPKQ.chunk.js} +2 -2
  174. package/dist/scripts/{C6bEPV55.chunk.js.map → pMgyVPKQ.chunk.js.map} +1 -1
  175. package/dist/scripts/{CBTOSLnS.chunk.js → qk22xon7.chunk.js} +2 -2
  176. package/dist/scripts/{CBTOSLnS.chunk.js.map → qk22xon7.chunk.js.map} +1 -1
  177. package/dist/scripts/{5EeDosB6.chunk.js → sw2_FVPM.chunk.js} +2 -2
  178. package/dist/scripts/{5EeDosB6.chunk.js.map → sw2_FVPM.chunk.js.map} +1 -1
  179. package/dist/scripts/{B5a9j4D_.chunk.js → tK-xYIyK.chunk.js} +2 -2
  180. package/dist/scripts/{B5a9j4D_.chunk.js.map → tK-xYIyK.chunk.js.map} +1 -1
  181. package/dist/scripts/{Bz18U45-.chunk.js → uev2agHh.chunk.js} +2 -2
  182. package/dist/scripts/{Bz18U45-.chunk.js.map → uev2agHh.chunk.js.map} +1 -1
  183. package/dist/scripts/{BI7-pkuo.chunk.js → wScha29a.chunk.js} +2 -2
  184. package/dist/scripts/{BI7-pkuo.chunk.js.map → wScha29a.chunk.js.map} +1 -1
  185. package/package.json +1 -1
  186. package/dist/scripts/BTq4W22K.chunk.js +0 -2
  187. package/dist/scripts/Bksx5ui9.chunk.js +0 -2
  188. package/dist/scripts/BuawzJwd.chunk.js.map +0 -1
  189. package/dist/scripts/C7lfPlyo.chunk.js +0 -2
  190. package/dist/scripts/CYuY28rl.chunk.js +0 -2
  191. package/dist/scripts/CfRzFJ31.chunk.js +0 -2
  192. package/dist/scripts/D1fkcw30.chunk.js +0 -2
  193. package/dist/scripts/DU8kVZuh.chunk.js +0 -2
  194. package/dist/scripts/DsCrIxlP.chunk.js +0 -2
@@ -1,2 +1,2 @@
1
- import{aK as F,j as e,B as h,aL as k,L as j,R as y,w as T,aM as B,aA as $,a0 as D,x as V,a1 as I,a2 as x,P as M,aC as H,a4 as U,A as Y,aa as O,ab as G,ac as W,aH as z,ad as K,ae as Q}from"./app-Det8y4U1.js";import{S as _}from"./CYuY28rl.chunk.js";import{F as J}from"./wKPIC1H3.chunk.js";import{l as m,a as X,F as f}from"./OvG1eOzS.chunk.js";import{F as Z}from"./1oBN4k-t.chunk.js";import{B as ee}from"./x8TB7tv6.chunk.js";import{R as ae}from"./QfCSKVqV.chunk.js";import{V as te}from"./CdGLJKZk.chunk.js";import{u as se}from"./C36BgTJV.chunk.js";import{u as re}from"./CRuObGvW.chunk.js";import{E as ne}from"./CxB8O87g.chunk.js";import{u as oe}from"./z6Us1EdG.chunk.js";import"./Bi0GaEZE.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./DYjoaCnl.chunk.js";const L="shared.flagRemovalRadio",p=j.encloseNamespace(L);function ie(){const t=F();function l(o){t.setFieldValue("suggestion",o)}function a(){return[p("nonEducational"),p("poorQuality"),p("offensive"),p("copyright"),p("ageAppropriate"),p("audio"),p("other")]}return e.jsxs("div",{className:"mb-3",children:[e.jsxs("label",{className:"form-label",children:[e.jsx(h,{namespace:L,phrase:"flagRemovalReasonLabel"}),e.jsx("span",{className:"text-danger",children:"*"})]}),a().map((o,d)=>e.jsx(k.Check,{type:"radio",label:o,name:o,id:`flag-${d}`,onChange:()=>l(o),checked:t.values.suggestion===o,className:"mb-2"},d))]})}const C="shared.suggestEditForm";function le(t){const l=F(),[a,o]=y.useState(),[d,n]=y.useState(!1);function g(r){const u=(l==null?void 0:l.values.property)&&t.metadataValue===r.name;l.setFieldValue("suggestion",u?"":r.name),o(r),n(u)}return e.jsxs("div",{className:"form-group",children:[e.jsx("label",{className:"form-label",children:e.jsx(h,{namespace:C,phrase:"suggestLabel"})}),e.jsx("div",{"aria-describedby":"suggestEditRatingError",children:e.jsx(ee,{children:t.ratings.map(r=>e.jsx(T,{onClick:()=>g(r),className:`btn ${r.id===(a==null?void 0:a.id)?"btn-dark":"btn-outline-dark"}`,children:r.code},r.id))})}),d&&e.jsx(Z,{name:"suggestEditRating",children:e.jsx(h,{namespace:C,phrase:"ratingError"})})]})}const ce="shared.suggestEditValidation",S=j.encloseNamespace(ce);function de(){return m.object().shape({property:m.string().required(S("metadata")),reason:m.string().when("property",{is:t=>t==="FlagRemoval",then:m.string().notRequired(),otherwise:m.string().required(S("reason"))}),suggestion:m.string().required(S("suggestion")),currentValue:m.string()})}const b={VideoTitle:{name:"video title",property:"name"},Description:{name:"description",property:"description"},Rating:{name:"rating",property:"rating.name"},SeriesTitle:{name:"series title",property:"series.name"},Season:{name:"season number",property:"season.number"},EpisodeNumber:{name:"episode number",property:"episodeNumber"},BroadcastDate:{name:"broadcast date",property:"dateBroadcast"},Channel:{name:"channel",property:"channel.name"},ProductionYear:{name:"production year",property:"productionYear"},Distributors:{name:"distributors",property:"distributors",collection:!0},ProductionCompanies:{name:"production companies",property:"productionCompanies",collection:!0},Directors:{name:"directors",property:"directors",collection:!0},Producers:{name:"producers",property:"producers",collection:!0},FlagRemoval:{name:"flag for removal"},Other:{name:"other"}},N="shared.suggestEditForm",i=j.encloseNamespace(N),ue={property:"",suggestion:"",reason:"",currentValue:""};function me(t){var r,u;const l=(r=t.ratings)==null?void 0:r.filter(s=>s.code),a=F(),[o,d]=y.useState(),n=a==null?void 0:a.values.property;y.useEffect(()=>{const s=g();a.setValues({property:n,reason:"",suggestion:"",currentValue:s||""}),a.setTouched({}),d(s)},[n]);function g(){const s=b[n];if(!s||!s.property)return null;let c=B(t.video,s.property);if(!c||s.collection&&!c.data.length)return i("none");switch(s.collection&&(c=c.data.map(R=>R.name).join(", ")),n){case"BroadcastDate":return $.format(c,"D MMMM YYYY");default:return c}}return e.jsxs(D,{children:[e.jsxs(f,{as:"select",label:i("metadataLabel"),id:"property",name:"property",value:n,className:"text-capitalize",showRequiredStar:!0,children:[e.jsx("option",{value:"",children:i("metadataPlaceholder")}),Object.keys(b).map((s,c)=>e.jsx("option",{value:s,children:b[s].name},c))]}),n&&e.jsxs(e.Fragment,{children:[o&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"fw-semibold mb-0",children:[e.jsx(h,{namespace:N,phrase:"currentValueLabel"})," ",e.jsx("span",{children:(u=b[n])==null?void 0:u.name})]}),e.jsx("p",{children:o})]}),n==="Rating"&&e.jsx(le,{ratings:l,metadataValue:o}),n==="FlagRemoval"&&e.jsx(ie,{}),n!=="Rating"&&n!=="FlagRemoval"&&e.jsx(f,{label:i("suggestLabel"),placeholder:i("suggestPlaceholder"),type:"text",id:"suggestion",name:"suggestion",value:a==null?void 0:a.values.suggestion,showRequiredStar:!0}),n==="FlagRemoval"?e.jsx(f,{label:i("flagRemovalCommentsLabel"),placeholder:i("flagRemovalCommentsPlaceholder"),type:"text",id:"reason",name:"reason",value:a==null?void 0:a.values.reason}):e.jsx(f,{label:i("reasonLabel"),placeholder:i("reasonPlaceholder"),type:"text",id:"reason",name:"reason",value:a==null?void 0:a.values.reason,showRequiredStar:!0})]}),e.jsxs(V,{children:[e.jsx(V.Cancel,{text:i("cancel"),onClick:t.closePopup,variant:"link"}),e.jsx(J,{variant:"dark",submitText:i("submit")})]})]})}function pe(t){return e.jsx(X,{initialValues:ue,validationSchema:de(),onSubmit:t.onClickSubmit,children:e.jsx(me,{...t})})}const w="exchange.suggestEdit",v=j.encloseNamespace(w);function Pe(t){const l=I(),a=se(),{loading:o,handleGenerateReportError:d}=re(),n=x(H.config()),g=x(U.currentUser()),r=x(te.video(t.videoId)),u=x(ae.ratings()),{previewContext:s,clearPreviewContext:c}=oe(t.videoId,!1);async function R(P,q){try{await l(ne.suggestEdit(r.data.id,P)),a.success(v("success")),E(),O.logUserAction({id:r.data.id,name:r.data.name},{actionType:Q.Submit,entity:K.Video,descriptor:z.SuggestEdit,location:W.Popup,workflowPhase:G.Complete})}catch(A){d(A,v("error"),v("noEmailError"))}finally{q()}}function E(){t.closePopup(),s!=null&&s.appLink&&(_.preventScrollTop(),Y.trigger(s.appLink),c())}return n.hasCompleted&&g.hasCompleted&&r.hasCompleted&&u.hasCompleted?e.jsxs(M,{title:v("title"),closePopup:E,showLoadingSpinner:o,children:[e.jsx("p",{children:e.jsx(h,{namespace:w,phrase:"description"})}),e.jsx(pe,{video:r.data,ratings:u.data,closePopup:E,onClickSubmit:R})]}):e.jsx(e.Fragment,{})}export{Pe as ExchangeSuggestEditView};
2
- //# sourceMappingURL=DiR2eKm4.chunk.js.map
1
+ import{aK as F,j as e,B as h,aL as k,L as j,R as y,w as T,aM as B,aA as $,a0 as D,x as V,a1 as I,a2 as x,P as M,aC as H,a4 as U,A as Y,aa as O,ab as G,ac as W,aH as z,ad as K,ae as Q}from"./app-C2md4v6O.js";import{S as _}from"./DLCJG-Fm.chunk.js";import{F as J}from"./Dq-OnBBE.chunk.js";import{l as m,a as X,F as f}from"./Bq4Y5pwG.chunk.js";import{F as Z}from"./BDMJzZJS.chunk.js";import{B as ee}from"./B6WUgONl.chunk.js";import{R as ae}from"./QfCSKVqV.chunk.js";import{V as te}from"./jCscKGvY.chunk.js";import{u as se}from"./5Bk7WUgq.chunk.js";import{u as re}from"./PbxMeR6l.chunk.js";import{E as ne}from"./CGuGkRe6.chunk.js";import{u as oe}from"./CGsO0liR.chunk.js";import"./DZ4UeBKW.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./BoHka3Ec.chunk.js";const L="shared.flagRemovalRadio",p=j.encloseNamespace(L);function ie(){const t=F();function l(o){t.setFieldValue("suggestion",o)}function a(){return[p("nonEducational"),p("poorQuality"),p("offensive"),p("copyright"),p("ageAppropriate"),p("audio"),p("other")]}return e.jsxs("div",{className:"mb-3",children:[e.jsxs("label",{className:"form-label",children:[e.jsx(h,{namespace:L,phrase:"flagRemovalReasonLabel"}),e.jsx("span",{className:"text-danger",children:"*"})]}),a().map((o,d)=>e.jsx(k.Check,{type:"radio",label:o,name:o,id:`flag-${d}`,onChange:()=>l(o),checked:t.values.suggestion===o,className:"mb-2"},d))]})}const C="shared.suggestEditForm";function le(t){const l=F(),[a,o]=y.useState(),[d,n]=y.useState(!1);function g(r){const u=(l==null?void 0:l.values.property)&&t.metadataValue===r.name;l.setFieldValue("suggestion",u?"":r.name),o(r),n(u)}return e.jsxs("div",{className:"form-group",children:[e.jsx("label",{className:"form-label",children:e.jsx(h,{namespace:C,phrase:"suggestLabel"})}),e.jsx("div",{"aria-describedby":"suggestEditRatingError",children:e.jsx(ee,{children:t.ratings.map(r=>e.jsx(T,{onClick:()=>g(r),className:`btn ${r.id===(a==null?void 0:a.id)?"btn-dark":"btn-outline-dark"}`,children:r.code},r.id))})}),d&&e.jsx(Z,{name:"suggestEditRating",children:e.jsx(h,{namespace:C,phrase:"ratingError"})})]})}const ce="shared.suggestEditValidation",S=j.encloseNamespace(ce);function de(){return m.object().shape({property:m.string().required(S("metadata")),reason:m.string().when("property",{is:t=>t==="FlagRemoval",then:m.string().notRequired(),otherwise:m.string().required(S("reason"))}),suggestion:m.string().required(S("suggestion")),currentValue:m.string()})}const b={VideoTitle:{name:"video title",property:"name"},Description:{name:"description",property:"description"},Rating:{name:"rating",property:"rating.name"},SeriesTitle:{name:"series title",property:"series.name"},Season:{name:"season number",property:"season.number"},EpisodeNumber:{name:"episode number",property:"episodeNumber"},BroadcastDate:{name:"broadcast date",property:"dateBroadcast"},Channel:{name:"channel",property:"channel.name"},ProductionYear:{name:"production year",property:"productionYear"},Distributors:{name:"distributors",property:"distributors",collection:!0},ProductionCompanies:{name:"production companies",property:"productionCompanies",collection:!0},Directors:{name:"directors",property:"directors",collection:!0},Producers:{name:"producers",property:"producers",collection:!0},FlagRemoval:{name:"flag for removal"},Other:{name:"other"}},N="shared.suggestEditForm",i=j.encloseNamespace(N),ue={property:"",suggestion:"",reason:"",currentValue:""};function me(t){var r,u;const l=(r=t.ratings)==null?void 0:r.filter(s=>s.code),a=F(),[o,d]=y.useState(),n=a==null?void 0:a.values.property;y.useEffect(()=>{const s=g();a.setValues({property:n,reason:"",suggestion:"",currentValue:s||""}),a.setTouched({}),d(s)},[n]);function g(){const s=b[n];if(!s||!s.property)return null;let c=B(t.video,s.property);if(!c||s.collection&&!c.data.length)return i("none");switch(s.collection&&(c=c.data.map(R=>R.name).join(", ")),n){case"BroadcastDate":return $.format(c,"D MMMM YYYY");default:return c}}return e.jsxs(D,{children:[e.jsxs(f,{as:"select",label:i("metadataLabel"),id:"property",name:"property",value:n,className:"text-capitalize",showRequiredStar:!0,children:[e.jsx("option",{value:"",children:i("metadataPlaceholder")}),Object.keys(b).map((s,c)=>e.jsx("option",{value:s,children:b[s].name},c))]}),n&&e.jsxs(e.Fragment,{children:[o&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"fw-semibold mb-0",children:[e.jsx(h,{namespace:N,phrase:"currentValueLabel"})," ",e.jsx("span",{children:(u=b[n])==null?void 0:u.name})]}),e.jsx("p",{children:o})]}),n==="Rating"&&e.jsx(le,{ratings:l,metadataValue:o}),n==="FlagRemoval"&&e.jsx(ie,{}),n!=="Rating"&&n!=="FlagRemoval"&&e.jsx(f,{label:i("suggestLabel"),placeholder:i("suggestPlaceholder"),type:"text",id:"suggestion",name:"suggestion",value:a==null?void 0:a.values.suggestion,showRequiredStar:!0}),n==="FlagRemoval"?e.jsx(f,{label:i("flagRemovalCommentsLabel"),placeholder:i("flagRemovalCommentsPlaceholder"),type:"text",id:"reason",name:"reason",value:a==null?void 0:a.values.reason}):e.jsx(f,{label:i("reasonLabel"),placeholder:i("reasonPlaceholder"),type:"text",id:"reason",name:"reason",value:a==null?void 0:a.values.reason,showRequiredStar:!0})]}),e.jsxs(V,{children:[e.jsx(V.Cancel,{text:i("cancel"),onClick:t.closePopup,variant:"link"}),e.jsx(J,{variant:"dark",submitText:i("submit")})]})]})}function pe(t){return e.jsx(X,{initialValues:ue,validationSchema:de(),onSubmit:t.onClickSubmit,children:e.jsx(me,{...t})})}const w="exchange.suggestEdit",v=j.encloseNamespace(w);function Pe(t){const l=I(),a=se(),{loading:o,handleGenerateReportError:d}=re(),n=x(H.config()),g=x(U.currentUser()),r=x(te.video(t.videoId)),u=x(ae.ratings()),{previewContext:s,clearPreviewContext:c}=oe(t.videoId,!1);async function R(P,q){try{await l(ne.suggestEdit(r.data.id,P)),a.success(v("success")),E(),O.logUserAction({id:r.data.id,name:r.data.name},{actionType:Q.Submit,entity:K.Video,descriptor:z.SuggestEdit,location:W.Popup,workflowPhase:G.Complete})}catch(A){d(A,v("error"),v("noEmailError"))}finally{q()}}function E(){t.closePopup(),s!=null&&s.appLink&&(_.preventScrollTop(),Y.trigger(s.appLink),c())}return n.hasCompleted&&g.hasCompleted&&r.hasCompleted&&u.hasCompleted?e.jsxs(M,{title:v("title"),closePopup:E,showLoadingSpinner:o,children:[e.jsx("p",{children:e.jsx(h,{namespace:w,phrase:"description"})}),e.jsx(pe,{video:r.data,ratings:u.data,closePopup:E,onClickSubmit:R})]}):e.jsx(e.Fragment,{})}export{Pe as ExchangeSuggestEditView};
2
+ //# sourceMappingURL=00ZZVkz8.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DiR2eKm4.chunk.js","sources":["../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval.tsx","../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector.tsx","../../../../libs/shared/src/components/suggest-edit-form/validation/SuggestEditValidation.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditMetadataTypes.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditForm.tsx","../../src/apps/exchange/views/exchange-suggest-edit/ExchangeSuggestEditView.tsx"],"sourcesContent":["import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.flagRemovalRadio';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditFlagRemoval() {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n function onSelectOption(option: string) {\n formikProps.setFieldValue('suggestion', option);\n }\n\n function flagRemovalRadioOptions() {\n return [\n getPhrase('nonEducational'),\n getPhrase('poorQuality'),\n getPhrase('offensive'),\n getPhrase('copyright'),\n getPhrase('ageAppropriate'),\n getPhrase('audio'),\n getPhrase('other')\n ];\n }\n\n return (\n <div className='mb-3'>\n <label className='form-label'>\n <Text namespace={namespace} phrase='flagRemovalReasonLabel' />\n <span className='text-danger'>*</span>\n </label>\n {flagRemovalRadioOptions().map((option, index) => (\n <Form.Check\n type='radio'\n key={index}\n label={option}\n name={option}\n id={`flag-${index}`}\n onChange={() => onSelectOption(option)}\n checked={formikProps.values.suggestion === option}\n className='mb-2'\n />\n ))}\n </div>\n );\n}","import React from 'react';\nimport { ButtonGroup } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { Rating } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { FormFeedback } from 'libs/shared/components/forms/form-feedback/FormFeedback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.suggestEditForm';\n\ninterface SuggestEditRatingSelectorProps {\n ratings: Rating[];\n metadataValue: string\n}\n\nexport function SuggestEditRatingSelector(props: SuggestEditRatingSelectorProps) {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ selectedRating, setSelectedRating ] = React.useState<Rating>();\n const [ isRatingInvalid, setIsRatingInvalid ] = React.useState<boolean>(false);\n \n function onRatingSelect(rating: Rating) {\n const isRatingInvalid = formikProps?.values.property && props.metadataValue === rating.name;\n formikProps.setFieldValue('suggestion', !isRatingInvalid ? rating.name : '');\n setSelectedRating(rating);\n setIsRatingInvalid(isRatingInvalid);\n }\n\n return (\n <div className='form-group'>\n <label className='form-label'><Text namespace={namespace} phrase='suggestLabel' /></label>\n <div aria-describedby='suggestEditRatingError'>\n <ButtonGroup>\n {props.ratings.map(rating => (\n <DivButton key={rating.id} onClick={() => onRatingSelect(rating)} className={`btn ${rating.id === selectedRating?.id ? 'btn-dark' : 'btn-outline-dark'}`}>\n {rating.code}\n </DivButton>\n ))}\n </ButtonGroup>\n </div>\n {isRatingInvalid && <FormFeedback name='suggestEditRating'><Text namespace={namespace} phrase='ratingError' /></FormFeedback>}\n </div>\n );\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'shared.suggestEditValidation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditValidation() {\n return object().shape({\n property: string().required((getPhrase('metadata'))),\n reason: string().when('property', {\n is: propertyValue => propertyValue === 'FlagRemoval',\n then: string().notRequired(),\n otherwise: string().required(getPhrase('reason'))\n }),\n suggestion: string().required(getPhrase('suggestion')),\n currentValue: string()\n });\n}","export enum MetadataType {\n VideoTitle = 'video title',\n Description = 'description',\n Rating = 'rating',\n SeriesTitle = 'series title',\n Season = 'season number',\n EpisodeNumber = 'episode number',\n BroadcastDate = 'broadcast date',\n Channel = 'channel',\n ProductionYear = 'production year',\n Distributors = 'distributors',\n ProductionCompanies = 'production companies',\n Directors = 'directors',\n Producers = 'producers',\n FlagRemoval = 'flag for removal',\n Other = 'other'\n}\n\nexport type MetadataTypeKey = keyof typeof MetadataType;\n\nexport type MetadataTypeMap = {\n [K in MetadataTypeKey]: {\n name: MetadataType;\n property?: string;\n collection?: boolean;\n };\n};\n\nexport const MetadataTypes: MetadataTypeMap = {\n VideoTitle: {\n name: MetadataType.VideoTitle,\n property: 'name'\n },\n Description: {\n name: MetadataType.Description,\n property: 'description'\n },\n Rating: {\n name: MetadataType.Rating,\n property: 'rating.name'\n },\n SeriesTitle: {\n name: MetadataType.SeriesTitle,\n property: 'series.name'\n },\n Season: {\n name: MetadataType.Season,\n property: 'season.number'\n },\n EpisodeNumber: {\n name: MetadataType.EpisodeNumber,\n property: 'episodeNumber'\n },\n BroadcastDate: {\n name: MetadataType.BroadcastDate,\n property: 'dateBroadcast'\n },\n Channel: {\n name: MetadataType.Channel,\n property: 'channel.name'\n },\n ProductionYear: {\n name: MetadataType.ProductionYear,\n property: 'productionYear'\n },\n Distributors: {\n name: MetadataType.Distributors,\n property: 'distributors',\n collection: true\n },\n ProductionCompanies: {\n name: MetadataType.ProductionCompanies,\n property: 'productionCompanies',\n collection: true\n },\n Directors: {\n name: MetadataType.Directors,\n property: 'directors',\n collection: true\n },\n Producers: {\n name: MetadataType.Producers,\n property: 'producers',\n collection: true\n },\n FlagRemoval: {\n name: MetadataType.FlagRemoval\n },\n Other: {\n name: MetadataType.Other\n }\n};","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\nimport get from 'lodash/get';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SuggestEditFlagRemoval } from 'libs/shared/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval';\nimport { SuggestEditRatingSelector } from 'libs/shared/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseObject, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { SuggestEditValidation } from './validation/SuggestEditValidation';\nimport { MetadataTypeKey, MetadataTypes } from './SuggestEditMetadataTypes';\n\nconst namespace = 'shared.suggestEditForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst INITIAL_VALUES = {\n property: '',\n suggestion: '',\n reason: '',\n currentValue: ''\n};\n\ninterface SuggestEditFormProps {\n video: Video;\n ratings: Rating[];\n onClickSubmit: (\n data: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) => void;\n closePopup: () => void\n}\n\nfunction SuggestEditForm(props: SuggestEditFormProps) {\n const ratings = props.ratings?.filter(rating => rating.code);\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ metadataValue, setMetadataValue ] = React.useState<string>();\n\n const metadata = formikProps?.values.property as MetadataTypeKey;\n\n React.useEffect(() => {\n const metadataValue = getMetadataValue();\n formikProps.setValues({\n property: metadata,\n reason: '',\n suggestion: '',\n currentValue: metadataValue || ''\n });\n formikProps.setTouched({});\n setMetadataValue(metadataValue);\n }, [metadata]);\n\n function getMetadataValue(): string {\n const metadataType = MetadataTypes[metadata];\n\n if (!metadataType || !metadataType.property)\n return null;\n\n let currentValue = get(props.video, metadataType.property);\n\n if (!currentValue || (metadataType.collection && !currentValue.data.length))\n return getPhrase('none');\n\n if (metadataType.collection) {\n currentValue = (currentValue.data as BaseObject[]).map(obj => obj.name).join(', ');\n }\n\n switch (metadata) {\n case 'BroadcastDate':\n return DateHelper.format(currentValue, 'D MMMM YYYY');\n default:\n return currentValue;\n }\n }\n\n return (\n <Form>\n <FormField\n as='select'\n label={getPhrase('metadataLabel')}\n id='property'\n name='property'\n value={metadata}\n className='text-capitalize'\n showRequiredStar\n >\n <option value=''>{getPhrase('metadataPlaceholder')}</option>\n {Object.keys(MetadataTypes).map((metadata, index) => (\n <option key={index} value={metadata}>\n {MetadataTypes[metadata as keyof typeof MetadataTypes].name}\n </option>\n ))}\n </FormField>\n\n {metadata &&\n <>\n {metadataValue && (\n <>\n <p className='fw-semibold mb-0'>\n <Text namespace={namespace} phrase='currentValueLabel' /> <span>{MetadataTypes[metadata as MetadataTypeKey]?.name}</span>\n </p>\n <p>{metadataValue}</p>\n </>\n )}\n\n {metadata === 'Rating' && <SuggestEditRatingSelector ratings={ratings} metadataValue={metadataValue} />}\n {metadata === 'FlagRemoval' && <SuggestEditFlagRemoval />}\n {metadata !== 'Rating' && metadata !== 'FlagRemoval' &&\n <FormField\n label={getPhrase('suggestLabel')}\n placeholder={getPhrase('suggestPlaceholder')}\n type='text'\n id='suggestion'\n name='suggestion'\n value={formikProps?.values.suggestion}\n showRequiredStar\n />\n }\n\n {\n metadata === 'FlagRemoval' ? (\n <FormField\n label={getPhrase('flagRemovalCommentsLabel')}\n placeholder={getPhrase('flagRemovalCommentsPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n />\n ) : (\n <FormField\n label={getPhrase('reasonLabel')}\n placeholder={getPhrase('reasonPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n showRequiredStar\n />\n )\n }\n </>\n }\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('cancel')}\n onClick={props.closePopup}\n variant='link'\n />\n <FormButtons variant='dark' submitText={getPhrase('submit')} />\n </PopupButtons>\n </Form>\n );\n}\n\nexport function SuggestEditFormWrapper(props: SuggestEditFormProps) {\n return (\n <FormWrapper<SuggestEditModel>\n initialValues={INITIAL_VALUES}\n validationSchema={SuggestEditValidation()}\n onSubmit={props.onClickSubmit}\n >\n <SuggestEditForm {...props} />\n </FormWrapper>\n );\n}","\nimport React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SuggestEditFormWrapper } from 'libs/shared/components/suggest-edit-form/SuggestEditForm';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { RatingRequests } from 'libs/shared/flight-requests/RatingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { Config, CurrentUser, PopupViewProps, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\nconst namespace = 'exchange.suggestEdit';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeSuggestEditProps extends PopupViewProps {\n videoId: string;\n}\n\nexport function ExchangeSuggestEditView(props: ExchangeSuggestEditProps) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, false);\n\n async function onClickSubmit(\n values: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) {\n try {\n await fetchAsync(ExchangeRequests.suggestEdit(video.data.id, values));\n alerts.success(getPhrase('success'));\n closePopup();\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (xhr) {\n handleGenerateReportError(xhr, getPhrase('error'), getPhrase('noEmailError'));\n } finally {\n onDone();\n }\n }\n\n /**\n * Because the add view can be navigated to from the ExchangePreviewView\n * which is an addressable popup, we need to navigate back to the \n * original route when this popup is closed - Sha\n */\n function closePopup(): void {\n props.closePopup();\n\n if (!previewContext?.appLink)\n return;\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext.appLink);\n clearPreviewContext();\n }\n\n const hasLoaded = (\n config.hasCompleted &&\n currentUser.hasCompleted &&\n video.hasCompleted &&\n ratings.hasCompleted\n );\n\n if (!hasLoaded) {\n return <></>;\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={loading}\n >\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <SuggestEditFormWrapper\n video={video.data}\n ratings={ratings.data}\n closePopup={closePopup}\n onClickSubmit={onClickSubmit}\n />\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","SuggestEditFlagRemoval","formikProps","useFormikContext","onSelectOption","option","flagRemovalRadioOptions","jsxs","jsx","Text","index","Form","SuggestEditRatingSelector","props","selectedRating","setSelectedRating","React","isRatingInvalid","setIsRatingInvalid","onRatingSelect","rating","ButtonGroup","DivButton","FormFeedback","SuggestEditValidation","object","string","propertyValue","MetadataTypes","INITIAL_VALUES","SuggestEditForm","ratings","_a","metadataValue","setMetadataValue","metadata","getMetadataValue","metadataType","currentValue","get","obj","DateHelper","FormField","Fragment","_b","PopupButtons","FormButtons","SuggestEditFormWrapper","FormWrapper","ExchangeSuggestEditView","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","loading","handleGenerateReportError","useVerifiedEmailRequiredErrorHandler","config","Flight.useBasicFetch","ConfigRequests","currentUser","UserRequests","video","VideoRequests","RatingRequests","previewContext","clearPreviewContext","usePreviewContext","onClickSubmit","values","onDone","ExchangeRequests","closePopup","AnalyticsHelper","UserAction","EntityType","VideoActionDescriptor","LocationContext","WorkflowPhase","xhr","ScrollHelper","Core.AppLinkHelper","Popup"],"mappings":"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"}
1
+ {"version":3,"file":"00ZZVkz8.chunk.js","sources":["../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval.tsx","../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector.tsx","../../../../libs/shared/src/components/suggest-edit-form/validation/SuggestEditValidation.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditMetadataTypes.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditForm.tsx","../../src/apps/exchange/views/exchange-suggest-edit/ExchangeSuggestEditView.tsx"],"sourcesContent":["import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.flagRemovalRadio';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditFlagRemoval() {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n function onSelectOption(option: string) {\n formikProps.setFieldValue('suggestion', option);\n }\n\n function flagRemovalRadioOptions() {\n return [\n getPhrase('nonEducational'),\n getPhrase('poorQuality'),\n getPhrase('offensive'),\n getPhrase('copyright'),\n getPhrase('ageAppropriate'),\n getPhrase('audio'),\n getPhrase('other')\n ];\n }\n\n return (\n <div className='mb-3'>\n <label className='form-label'>\n <Text namespace={namespace} phrase='flagRemovalReasonLabel' />\n <span className='text-danger'>*</span>\n </label>\n {flagRemovalRadioOptions().map((option, index) => (\n <Form.Check\n type='radio'\n key={index}\n label={option}\n name={option}\n id={`flag-${index}`}\n onChange={() => onSelectOption(option)}\n checked={formikProps.values.suggestion === option}\n className='mb-2'\n />\n ))}\n </div>\n );\n}","import React from 'react';\nimport { ButtonGroup } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { Rating } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { FormFeedback } from 'libs/shared/components/forms/form-feedback/FormFeedback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.suggestEditForm';\n\ninterface SuggestEditRatingSelectorProps {\n ratings: Rating[];\n metadataValue: string\n}\n\nexport function SuggestEditRatingSelector(props: SuggestEditRatingSelectorProps) {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ selectedRating, setSelectedRating ] = React.useState<Rating>();\n const [ isRatingInvalid, setIsRatingInvalid ] = React.useState<boolean>(false);\n \n function onRatingSelect(rating: Rating) {\n const isRatingInvalid = formikProps?.values.property && props.metadataValue === rating.name;\n formikProps.setFieldValue('suggestion', !isRatingInvalid ? rating.name : '');\n setSelectedRating(rating);\n setIsRatingInvalid(isRatingInvalid);\n }\n\n return (\n <div className='form-group'>\n <label className='form-label'><Text namespace={namespace} phrase='suggestLabel' /></label>\n <div aria-describedby='suggestEditRatingError'>\n <ButtonGroup>\n {props.ratings.map(rating => (\n <DivButton key={rating.id} onClick={() => onRatingSelect(rating)} className={`btn ${rating.id === selectedRating?.id ? 'btn-dark' : 'btn-outline-dark'}`}>\n {rating.code}\n </DivButton>\n ))}\n </ButtonGroup>\n </div>\n {isRatingInvalid && <FormFeedback name='suggestEditRating'><Text namespace={namespace} phrase='ratingError' /></FormFeedback>}\n </div>\n );\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'shared.suggestEditValidation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditValidation() {\n return object().shape({\n property: string().required((getPhrase('metadata'))),\n reason: string().when('property', {\n is: propertyValue => propertyValue === 'FlagRemoval',\n then: string().notRequired(),\n otherwise: string().required(getPhrase('reason'))\n }),\n suggestion: string().required(getPhrase('suggestion')),\n currentValue: string()\n });\n}","export enum MetadataType {\n VideoTitle = 'video title',\n Description = 'description',\n Rating = 'rating',\n SeriesTitle = 'series title',\n Season = 'season number',\n EpisodeNumber = 'episode number',\n BroadcastDate = 'broadcast date',\n Channel = 'channel',\n ProductionYear = 'production year',\n Distributors = 'distributors',\n ProductionCompanies = 'production companies',\n Directors = 'directors',\n Producers = 'producers',\n FlagRemoval = 'flag for removal',\n Other = 'other'\n}\n\nexport type MetadataTypeKey = keyof typeof MetadataType;\n\nexport type MetadataTypeMap = {\n [K in MetadataTypeKey]: {\n name: MetadataType;\n property?: string;\n collection?: boolean;\n };\n};\n\nexport const MetadataTypes: MetadataTypeMap = {\n VideoTitle: {\n name: MetadataType.VideoTitle,\n property: 'name'\n },\n Description: {\n name: MetadataType.Description,\n property: 'description'\n },\n Rating: {\n name: MetadataType.Rating,\n property: 'rating.name'\n },\n SeriesTitle: {\n name: MetadataType.SeriesTitle,\n property: 'series.name'\n },\n Season: {\n name: MetadataType.Season,\n property: 'season.number'\n },\n EpisodeNumber: {\n name: MetadataType.EpisodeNumber,\n property: 'episodeNumber'\n },\n BroadcastDate: {\n name: MetadataType.BroadcastDate,\n property: 'dateBroadcast'\n },\n Channel: {\n name: MetadataType.Channel,\n property: 'channel.name'\n },\n ProductionYear: {\n name: MetadataType.ProductionYear,\n property: 'productionYear'\n },\n Distributors: {\n name: MetadataType.Distributors,\n property: 'distributors',\n collection: true\n },\n ProductionCompanies: {\n name: MetadataType.ProductionCompanies,\n property: 'productionCompanies',\n collection: true\n },\n Directors: {\n name: MetadataType.Directors,\n property: 'directors',\n collection: true\n },\n Producers: {\n name: MetadataType.Producers,\n property: 'producers',\n collection: true\n },\n FlagRemoval: {\n name: MetadataType.FlagRemoval\n },\n Other: {\n name: MetadataType.Other\n }\n};","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\nimport get from 'lodash/get';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SuggestEditFlagRemoval } from 'libs/shared/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval';\nimport { SuggestEditRatingSelector } from 'libs/shared/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseObject, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { SuggestEditValidation } from './validation/SuggestEditValidation';\nimport { MetadataTypeKey, MetadataTypes } from './SuggestEditMetadataTypes';\n\nconst namespace = 'shared.suggestEditForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst INITIAL_VALUES = {\n property: '',\n suggestion: '',\n reason: '',\n currentValue: ''\n};\n\ninterface SuggestEditFormProps {\n video: Video;\n ratings: Rating[];\n onClickSubmit: (\n data: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) => void;\n closePopup: () => void\n}\n\nfunction SuggestEditForm(props: SuggestEditFormProps) {\n const ratings = props.ratings?.filter(rating => rating.code);\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ metadataValue, setMetadataValue ] = React.useState<string>();\n\n const metadata = formikProps?.values.property as MetadataTypeKey;\n\n React.useEffect(() => {\n const metadataValue = getMetadataValue();\n formikProps.setValues({\n property: metadata,\n reason: '',\n suggestion: '',\n currentValue: metadataValue || ''\n });\n formikProps.setTouched({});\n setMetadataValue(metadataValue);\n }, [metadata]);\n\n function getMetadataValue(): string {\n const metadataType = MetadataTypes[metadata];\n\n if (!metadataType || !metadataType.property)\n return null;\n\n let currentValue = get(props.video, metadataType.property);\n\n if (!currentValue || (metadataType.collection && !currentValue.data.length))\n return getPhrase('none');\n\n if (metadataType.collection) {\n currentValue = (currentValue.data as BaseObject[]).map(obj => obj.name).join(', ');\n }\n\n switch (metadata) {\n case 'BroadcastDate':\n return DateHelper.format(currentValue, 'D MMMM YYYY');\n default:\n return currentValue;\n }\n }\n\n return (\n <Form>\n <FormField\n as='select'\n label={getPhrase('metadataLabel')}\n id='property'\n name='property'\n value={metadata}\n className='text-capitalize'\n showRequiredStar\n >\n <option value=''>{getPhrase('metadataPlaceholder')}</option>\n {Object.keys(MetadataTypes).map((metadata, index) => (\n <option key={index} value={metadata}>\n {MetadataTypes[metadata as keyof typeof MetadataTypes].name}\n </option>\n ))}\n </FormField>\n\n {metadata &&\n <>\n {metadataValue && (\n <>\n <p className='fw-semibold mb-0'>\n <Text namespace={namespace} phrase='currentValueLabel' /> <span>{MetadataTypes[metadata as MetadataTypeKey]?.name}</span>\n </p>\n <p>{metadataValue}</p>\n </>\n )}\n\n {metadata === 'Rating' && <SuggestEditRatingSelector ratings={ratings} metadataValue={metadataValue} />}\n {metadata === 'FlagRemoval' && <SuggestEditFlagRemoval />}\n {metadata !== 'Rating' && metadata !== 'FlagRemoval' &&\n <FormField\n label={getPhrase('suggestLabel')}\n placeholder={getPhrase('suggestPlaceholder')}\n type='text'\n id='suggestion'\n name='suggestion'\n value={formikProps?.values.suggestion}\n showRequiredStar\n />\n }\n\n {\n metadata === 'FlagRemoval' ? (\n <FormField\n label={getPhrase('flagRemovalCommentsLabel')}\n placeholder={getPhrase('flagRemovalCommentsPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n />\n ) : (\n <FormField\n label={getPhrase('reasonLabel')}\n placeholder={getPhrase('reasonPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n showRequiredStar\n />\n )\n }\n </>\n }\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('cancel')}\n onClick={props.closePopup}\n variant='link'\n />\n <FormButtons variant='dark' submitText={getPhrase('submit')} />\n </PopupButtons>\n </Form>\n );\n}\n\nexport function SuggestEditFormWrapper(props: SuggestEditFormProps) {\n return (\n <FormWrapper<SuggestEditModel>\n initialValues={INITIAL_VALUES}\n validationSchema={SuggestEditValidation()}\n onSubmit={props.onClickSubmit}\n >\n <SuggestEditForm {...props} />\n </FormWrapper>\n );\n}","\nimport React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SuggestEditFormWrapper } from 'libs/shared/components/suggest-edit-form/SuggestEditForm';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { RatingRequests } from 'libs/shared/flight-requests/RatingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { Config, CurrentUser, PopupViewProps, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\nconst namespace = 'exchange.suggestEdit';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeSuggestEditProps extends PopupViewProps {\n videoId: string;\n}\n\nexport function ExchangeSuggestEditView(props: ExchangeSuggestEditProps) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, false);\n\n async function onClickSubmit(\n values: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) {\n try {\n await fetchAsync(ExchangeRequests.suggestEdit(video.data.id, values));\n alerts.success(getPhrase('success'));\n closePopup();\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (xhr) {\n handleGenerateReportError(xhr, getPhrase('error'), getPhrase('noEmailError'));\n } finally {\n onDone();\n }\n }\n\n /**\n * Because the add view can be navigated to from the ExchangePreviewView\n * which is an addressable popup, we need to navigate back to the \n * original route when this popup is closed - Sha\n */\n function closePopup(): void {\n props.closePopup();\n\n if (!previewContext?.appLink)\n return;\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext.appLink);\n clearPreviewContext();\n }\n\n const hasLoaded = (\n config.hasCompleted &&\n currentUser.hasCompleted &&\n video.hasCompleted &&\n ratings.hasCompleted\n );\n\n if (!hasLoaded) {\n return <></>;\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={loading}\n >\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <SuggestEditFormWrapper\n video={video.data}\n ratings={ratings.data}\n closePopup={closePopup}\n onClickSubmit={onClickSubmit}\n />\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","SuggestEditFlagRemoval","formikProps","useFormikContext","onSelectOption","option","flagRemovalRadioOptions","jsxs","jsx","Text","index","Form","SuggestEditRatingSelector","props","selectedRating","setSelectedRating","React","isRatingInvalid","setIsRatingInvalid","onRatingSelect","rating","ButtonGroup","DivButton","FormFeedback","SuggestEditValidation","object","string","propertyValue","MetadataTypes","INITIAL_VALUES","SuggestEditForm","ratings","_a","metadataValue","setMetadataValue","metadata","getMetadataValue","metadataType","currentValue","get","obj","DateHelper","FormField","Fragment","_b","PopupButtons","FormButtons","SuggestEditFormWrapper","FormWrapper","ExchangeSuggestEditView","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","loading","handleGenerateReportError","useVerifiedEmailRequiredErrorHandler","config","Flight.useBasicFetch","ConfigRequests","currentUser","UserRequests","video","VideoRequests","RatingRequests","previewContext","clearPreviewContext","usePreviewContext","onClickSubmit","values","onDone","ExchangeRequests","closePopup","AnalyticsHelper","UserAction","EntityType","VideoActionDescriptor","LocationContext","WorkflowPhase","xhr","ScrollHelper","Core.AppLinkHelper","Popup"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{ci as n,r as a,aQ as s,cj as c,ck as i}from"./app-Det8y4U1.js";function o(r){const e=n.getInstance(r);return a.useEffect(()=>()=>{n.releaseInstance(r)}),e}function u(r){return o(r)}function g(){const r=u(i.ALERT);return{success(e){r.success(e)()},error(e){r.error(e)()},warning(e){r.createAlert({type:s.Warning,heading:c.Warning,message:e})},info(e,t){r.createAlert({heading:e,message:t,type:s.Info})}}}export{u as a,g as u};
2
- //# sourceMappingURL=C36BgTJV.chunk.js.map
1
+ import{ci as n,r as a,aQ as s,cj as c,ck as i}from"./app-C2md4v6O.js";function o(r){const e=n.getInstance(r);return a.useEffect(()=>()=>{n.releaseInstance(r)}),e}function u(r){return o(r)}function g(){const r=u(i.ALERT);return{success(e){r.success(e)()},error(e){r.error(e)()},warning(e){r.createAlert({type:s.Warning,heading:c.Warning,message:e})},info(e,t){r.createAlert({heading:e,message:t,type:s.Info})}}}export{u as a,g as u};
2
+ //# sourceMappingURL=5Bk7WUgq.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"C36BgTJV.chunk.js","sources":["../../../../libs/common/src/react/hooks/UseInstance.ts","../../../../libs/common/src/react/hooks/UseService.ts","../../../../libs/shared/src/hooks/UseAlerts.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { InstanceManager } from 'libs/common/backbone/services/InstanceManager';\n\n/**\n * Hook to retrieve an instance from InstanceManager.\n * It handles releasing the instance in the cleanup function.\n * @param instanceName \n */\nexport function useInstance<T>(instanceName: string): T {\n const instance = InstanceManager.getInstance<T>(instanceName);\n\n React.useEffect(() => {\n return () => { InstanceManager.releaseInstance(instanceName); };\n }), [];\n\n return instance;\n}\n\n/**\n * Can be used to conditionally get an instance safely. Passing in a falsey value\n * will not return an instance, and will also not error\n */\nexport function useInstanceSafe<T>(instanceName: string): T {\n let instance: T = null;\n\n if (instanceName)\n instance = InstanceManager.getInstance<T>(instanceName);\n\n React.useEffect(() => {\n return () => { InstanceManager.releaseInstance(instanceName); };\n }), [];\n\n return instance;\n}","import { BaseService } from 'libs/common/backbone/core/BaseService';\n\nimport { useInstance } from './UseInstance';\n\nexport function useService<T extends BaseService>(serviceName: string): T {\n const service = useInstance<T>(serviceName);\n\n return service;\n}","import { CommonServices } from 'libs/common/backbone/constants/CommonServices';\nimport { AlertType, BaseAlert, BaseAlertOptions, BaseAlertService, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\nimport { useService } from 'libs/common/react/hooks/UseService';\n\nexport interface Alerts {\n success(alertContent: string | BaseAlert | BaseAlertOptions): void,\n error(alertContent: string | BaseAlert | BaseAlertOptions): void,\n warning(alertContent: string): void\n info(heading: string, message: string): void\n}\n\nexport function useAlerts(): Alerts {\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\n\n return {\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\n alertService.success(alertContent)();\n },\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\n alertService.error(alertContent)();\n },\n warning(alertContent: string): void {\n alertService.createAlert({\n type: AlertType.Warning,\n heading: DefaultAlertHeading.Warning,\n message: alertContent\n });\n },\n info(heading: string, message: string): void {\n alertService.createAlert({\n heading,\n message,\n type: AlertType.Info\n });\n }\n };\n}"],"names":["useInstance","instanceName","instance","InstanceManager","React.useEffect","useService","serviceName","useAlerts","alertService","CommonServices","alertContent","AlertType","DefaultAlertHeading","heading","message"],"mappings":"sEASO,SAASA,EAAeC,EAAyB,CACtD,MAAMC,EAAWC,EAAgB,YAAeF,CAAY,EAE5DG,OAAAA,EAAAA,UAAgB,IACP,IAAM,CAAED,EAAgB,gBAAgBF,CAAY,CAAG,CAC/D,EAEMC,CACT,CCbO,SAASG,EAAkCC,EAAwB,CAGxE,OAFgBN,EAAeM,CAAW,CAG5C,CCGO,SAASC,GAAoB,CAClC,MAAMC,EAAeH,EAA6BI,EAAe,KAAK,EAEtE,MAAO,CACL,QAAQC,EAA2D,CACjEF,EAAa,QAAQE,CAAY,EAAA,CACnC,EACA,MAAMA,EAA2D,CAC/DF,EAAa,MAAME,CAAY,EAAA,CACjC,EACA,QAAQA,EAA4B,CAClCF,EAAa,YAAY,CACvB,KAAMG,EAAU,QAChB,QAASC,EAAoB,QAC7B,QAASF,CAAA,CACV,CACH,EACA,KAAKG,EAAiBC,EAAuB,CAC3CN,EAAa,YAAY,CACvB,QAAAK,EACA,QAAAC,EACA,KAAMH,EAAU,IAAA,CACjB,CACH,CAAA,CAEJ"}
1
+ {"version":3,"file":"5Bk7WUgq.chunk.js","sources":["../../../../libs/common/src/react/hooks/UseInstance.ts","../../../../libs/common/src/react/hooks/UseService.ts","../../../../libs/shared/src/hooks/UseAlerts.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { InstanceManager } from 'libs/common/backbone/services/InstanceManager';\n\n/**\n * Hook to retrieve an instance from InstanceManager.\n * It handles releasing the instance in the cleanup function.\n * @param instanceName \n */\nexport function useInstance<T>(instanceName: string): T {\n const instance = InstanceManager.getInstance<T>(instanceName);\n\n React.useEffect(() => {\n return () => { InstanceManager.releaseInstance(instanceName); };\n }), [];\n\n return instance;\n}\n\n/**\n * Can be used to conditionally get an instance safely. Passing in a falsey value\n * will not return an instance, and will also not error\n */\nexport function useInstanceSafe<T>(instanceName: string): T {\n let instance: T = null;\n\n if (instanceName)\n instance = InstanceManager.getInstance<T>(instanceName);\n\n React.useEffect(() => {\n return () => { InstanceManager.releaseInstance(instanceName); };\n }), [];\n\n return instance;\n}","import { BaseService } from 'libs/common/backbone/core/BaseService';\n\nimport { useInstance } from './UseInstance';\n\nexport function useService<T extends BaseService>(serviceName: string): T {\n const service = useInstance<T>(serviceName);\n\n return service;\n}","import { CommonServices } from 'libs/common/backbone/constants/CommonServices';\nimport { AlertType, BaseAlert, BaseAlertOptions, BaseAlertService, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\nimport { useService } from 'libs/common/react/hooks/UseService';\n\nexport interface Alerts {\n success(alertContent: string | BaseAlert | BaseAlertOptions): void,\n error(alertContent: string | BaseAlert | BaseAlertOptions): void,\n warning(alertContent: string): void\n info(heading: string, message: string): void\n}\n\nexport function useAlerts(): Alerts {\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\n\n return {\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\n alertService.success(alertContent)();\n },\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\n alertService.error(alertContent)();\n },\n warning(alertContent: string): void {\n alertService.createAlert({\n type: AlertType.Warning,\n heading: DefaultAlertHeading.Warning,\n message: alertContent\n });\n },\n info(heading: string, message: string): void {\n alertService.createAlert({\n heading,\n message,\n type: AlertType.Info\n });\n }\n };\n}"],"names":["useInstance","instanceName","instance","InstanceManager","React.useEffect","useService","serviceName","useAlerts","alertService","CommonServices","alertContent","AlertType","DefaultAlertHeading","heading","message"],"mappings":"sEASO,SAASA,EAAeC,EAAyB,CACtD,MAAMC,EAAWC,EAAgB,YAAeF,CAAY,EAE5DG,OAAAA,EAAAA,UAAgB,IACP,IAAM,CAAED,EAAgB,gBAAgBF,CAAY,CAAG,CAC/D,EAEMC,CACT,CCbO,SAASG,EAAkCC,EAAwB,CAGxE,OAFgBN,EAAeM,CAAW,CAG5C,CCGO,SAASC,GAAoB,CAClC,MAAMC,EAAeH,EAA6BI,EAAe,KAAK,EAEtE,MAAO,CACL,QAAQC,EAA2D,CACjEF,EAAa,QAAQE,CAAY,EAAA,CACnC,EACA,MAAMA,EAA2D,CAC/DF,EAAa,MAAME,CAAY,EAAA,CACjC,EACA,QAAQA,EAA4B,CAClCF,EAAa,YAAY,CACvB,KAAMG,EAAU,QAChB,QAASC,EAAoB,QAC7B,QAASF,CAAA,CACV,CACH,EACA,KAAKG,EAAiBC,EAAuB,CAC3CN,EAAa,YAAY,CACvB,QAAAK,EACA,QAAAC,EACA,KAAMH,EAAU,IAAA,CACjB,CACH,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{j as r}from"./app-Det8y4U1.js";function m(t){return r.jsx("svg",{...t,children:r.jsx("path",{d:"m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466",fill:"currentColor"})})}const o={numItems:5,minWidth:50,maxWidth:100},e={getPartialLoadingItems(t={}){const a={...o,...t},n=()=>Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth);return[...Array(a.numItems)].map(()=>({width:`${n()}px`}))}};export{m as C,e as P};
2
- //# sourceMappingURL=C97fjHLE.chunk.js.map
1
+ import{j as r}from"./app-C2md4v6O.js";function m(t){return r.jsx("svg",{...t,children:r.jsx("path",{d:"m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466",fill:"currentColor"})})}const o={numItems:5,minWidth:50,maxWidth:100},e={getPartialLoadingItems(t={}){const a={...o,...t},n=()=>Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth);return[...Array(a.numItems)].map(()=>({width:`${n()}px`}))}};export{m as C,e as P};
2
+ //# sourceMappingURL=8KUv63J7.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"C97fjHLE.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/ChevronLeftSvg.tsx","../../../../libs/shared/src/utils/PartialLoadingHelper.ts"],"sourcesContent":["import React from 'react';\n\nexport function ChevronLeftSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466'\n fill='currentColor'\n />\n </svg>\n );\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};"],"names":["ChevronLeftSvg","props","jsx","DEFAULT_PARTIAL_LOADING_OPTIONS","PartialLoadingHelper","options","opts","getRandomFilterWidth"],"mappings":"sCAEO,SAASA,EAAeC,EAAsC,CACnE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,iNACF,KAAK,cAAA,CAAA,EAET,CAEJ,CCXA,MAAMC,EAAyD,CAC7D,SAAU,EACV,SAAU,GACV,SAAU,GACZ,EAYaC,EAAuB,CAClC,uBAAuBC,EAAiC,GAA0B,CAChF,MAAMC,EAAO,CACX,GAAGH,EACH,GAAGE,CAAA,EAGCE,EAAuB,IAAM,KAAK,IAAI,KAAK,MAAM,KAAK,OAAA,EAAWD,EAAK,QAAQ,EAAGA,EAAK,QAAQ,EAEpG,MAAO,CAAC,GAAG,MAAMA,EAAK,QAAQ,CAAC,EAAE,IAAI,KAAO,CAAE,MAAO,GAAGC,EAAA,CAAsB,MAAO,CACvF,CACF"}
1
+ {"version":3,"file":"8KUv63J7.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/ChevronLeftSvg.tsx","../../../../libs/shared/src/utils/PartialLoadingHelper.ts"],"sourcesContent":["import React from 'react';\n\nexport function ChevronLeftSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466'\n fill='currentColor'\n />\n </svg>\n );\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};"],"names":["ChevronLeftSvg","props","jsx","DEFAULT_PARTIAL_LOADING_OPTIONS","PartialLoadingHelper","options","opts","getRandomFilterWidth"],"mappings":"sCAEO,SAASA,EAAeC,EAAsC,CACnE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,iNACF,KAAK,cAAA,CAAA,EAET,CAEJ,CCXA,MAAMC,EAAyD,CAC7D,SAAU,EACV,SAAU,GACV,SAAU,GACZ,EAYaC,EAAuB,CAClC,uBAAuBC,EAAiC,GAA0B,CAChF,MAAMC,EAAO,CACX,GAAGH,EACH,GAAGE,CAAA,EAGCE,EAAuB,IAAM,KAAK,IAAI,KAAK,MAAM,KAAK,OAAA,EAAWD,EAAK,QAAQ,EAAGA,EAAK,QAAQ,EAEpG,MAAO,CAAC,GAAG,MAAMA,EAAK,QAAQ,CAAC,EAAE,IAAI,KAAO,CAAE,MAAO,GAAGC,EAAA,CAAsB,MAAO,CACvF,CACF"}
@@ -0,0 +1,2 @@
1
+ import{R as i,A as o,a,b as n,j as r}from"./app-C2md4v6O.js";import{u as s}from"./CB8-mvyD.chunk.js";import"./D4szUN7u.chunk.js";import"./Cz5ywK2M.chunk.js";import"./msdkwRcQ.chunk.js";function f(){const{region:e,isLoading:t}=s();return i.useEffect(()=>{t||o.trigger({application:n.TV,action:a.Tv.CHANNELS,args:[e]},{replace:!0})},[e]),r.jsx(r.Fragment,{})}export{f as TvHomeView};
2
+ //# sourceMappingURL=9z6_p6X0.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"C7lfPlyo.chunk.js","sources":["../../src/apps/tv/views/tv-home/TvHomeView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TvHomeView(): JSX.Element {\n const { region, isLoading } = useSelectedRegion();\n\n React.useEffect(() => {\n if (isLoading)\n return;\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS,\n args: [region]\n }, { replace: true });\n }, [region]);\n\n return <></>;\n}"],"names":["TvHomeView","region","isLoading","useSelectedRegion","React","Core.AppLinkHelper","AppChannels","Actions","jsx","Fragment"],"mappings":"yLAUO,SAASA,GAA0B,CACxC,KAAM,CAAE,OAAAC,EAAQ,UAAAC,CAAA,EAAcC,EAAA,EAE9B,OAAAC,EAAM,UAAU,IAAM,CAChBF,GAGJG,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,SACnB,KAAM,CAACN,CAAM,CAAA,EACZ,CAAE,QAAS,GAAM,CACtB,EAAG,CAACA,CAAM,CAAC,EAEJO,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CACX"}
1
+ {"version":3,"file":"9z6_p6X0.chunk.js","sources":["../../src/apps/tv/views/tv-home/TvHomeView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TvHomeView(): JSX.Element {\n const { region, isLoading } = useSelectedRegion();\n\n React.useEffect(() => {\n if (isLoading)\n return;\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS,\n args: [region]\n }, { replace: true });\n }, [region]);\n\n return <></>;\n}"],"names":["TvHomeView","region","isLoading","useSelectedRegion","React","Core.AppLinkHelper","AppChannels","Actions","jsx","Fragment"],"mappings":"yLAUO,SAASA,GAA0B,CACxC,KAAM,CAAE,OAAAC,EAAQ,UAAAC,CAAA,EAAcC,EAAA,EAE9B,OAAAC,EAAM,UAAU,IAAM,CAChBF,GAGJG,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,SACnB,KAAM,CAACN,CAAM,CAAA,EACZ,CAAE,QAAS,GAAM,CACtB,EAAG,CAACA,CAAM,CAAC,EAEJO,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CACX"}
@@ -1,2 +1,2 @@
1
- import{j as s,G as z,Q as h,b2 as A,r as L,F as v,b3 as S,aT as M}from"./app-Det8y4U1.js";import{a as N}from"./CX6fV4JE.chunk.js";const P=["bg-green","bg-cyan","bg-teal","bg-blue","bg-indigo","bg-purple"],G=["bg-pink","bg-orange",...P];function H(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z",clipRule:"evenodd"})})}function I(t){return s.jsx("svg",{...t,viewBox:"0 0 24 21",children:s.jsx("path",{d:"M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5",fill:"currentColor"})})}function B(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",d:"M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17"})})}function E(t,e){return e[t.charCodeAt(0)%e.length]}const O="_baseFallbackContainer_14tjv_1",R="_svgFallbackContainer_14tjv_1",V="_subjectFallbackContainer_14tjv_9",w="_subjectFallbackContainerSmall_14tjv_18",q="_subjectFallbackContainerLarge_14tjv_21",Q="_seriesItemFallback_14tjv_24",U="_playlistItemFallback_14tjv_24",J="_playlistFallback_14tjv_28",W="_posterFallback_14tjv_29",X="_subjectFallback_14tjv_9",Y="_fallbackThumbnailImage_14tjv_47",Z="_videoFallback_14tjv_55",K="_folderFallback_14tjv_56",n={baseFallbackContainer:O,svgFallbackContainer:R,subjectFallbackContainer:V,subjectFallbackContainerSmall:w,subjectFallbackContainerLarge:q,seriesItemFallback:Q,playlistItemFallback:U,playlistFallback:J,posterFallback:W,subjectFallback:X,fallbackThumbnailImage:Y,videoFallback:Z,folderFallback:K};var T=(t=>(t[t.Playlist=0]="Playlist",t[t.PlaylistThumbnail=1]="PlaylistThumbnail",t[t.Series=2]="Series",t[t.SeriesThumbnail=3]="SeriesThumbnail",t[t.Subject=4]="Subject",t[t.TallSubject=5]="TallSubject",t[t.Video=6]="Video",t[t.Folder=7]="Folder",t))(T||{});function p(t,e,i){if(e===4){const o=i===0?n.subjectFallbackContainerLarge:n.subjectFallbackContainerSmall;return`${n.subjectFallbackContainer} ${o}`}return t===0?e===3||e===1?`${n.svgFallbackContainer} rounded-3`:n.svgFallbackContainer:n.baseFallbackContainer}function y(t){return t===3?n.seriesItemFallback:t===1?n.playlistItemFallback:t===0?n.playlistFallback:t===2||t===5?n.posterFallback:t===4?`${n.subjectFallback} svg-container d-inline-block`:""}function D(t){return t===3||t===1?H:t===0?I:t===2?B:t===4||t===5?N:null}function tt(t){return t===4?h.ExtraLarge:h.Standard}at.defaultProps={mediaType:0,containerClassSize:0};function at(t){const{type:e,mediaType:i,extraClasses:o,containerClassSize:b}=t;if(e===6)return s.jsx("div",{className:`${n.videoFallback} ${t.extraClasses} bg-light-blue`});if(e===7)return s.jsx("div",{className:`${n.folderFallback} ${t.extraClasses} ${E(t.name,G)}`});const d=y(e),l=D(e),c=tt(e);let r=`${p(i,e,b)}`;return o&&(r+=` ${t.extraClasses}`),s.jsx("div",{className:r,children:i===0?s.jsx(z,{svg:l,className:`${d} ${t.svgContainerClassName??""}`,tagName:"div",size:c}):s.jsx("div",{className:n.fallbackThumbnailImage,style:{backgroundImage:`url('${l}')`}})})}M.Ok;function nt(t,e,i){function o(l){if(l)return v.isFunction(e)?[...e(l)]:[...l.data]}function b(l){var c,r;if(l)return i?i(l):(r=(c=l.pagination)==null?void 0:c.cursors)==null?void 0:r.next}function d(l){if(l)return l==null?void 0:l.count}return A(L.useMemo(()=>l=>{if(!v.isFunction(t))return;const c=t,r=v.isFunction(t)&&c();let a=r&&S(l,r),f=a&&a.isFetching,F=a&&a.statusCode,C=a&&a.hasCompleted;const x=C,$=a&&a.shouldFetch,_=o(a&&a.data);let u=b(a&&a.data);const k=d(a&&a.data);for(;u&&(a=S(l,c(u)),f=f||a.isFetching,F=a.statusCode,C=a.hasCompleted,!a.shouldFetch);){const m=o(a.data);m&&_.push(...m);const g=b(a.data);g===u?u=null:u=g}const j={shouldInitialFetch:$,items:_,nextCursor:u,isFetching:f,statusCode:F,hasCompleted:C,hasFirstPageCompleted:x};return typeof k=="number"&&(j.totalItems=k),j},[t]))}export{G as B,at as I,T as a,E as g,nt as u};
2
- //# sourceMappingURL=CidPoXbD.chunk.js.map
1
+ import{j as s,G as z,Q as h,b2 as A,r as L,F as v,b3 as S,aT as M}from"./app-C2md4v6O.js";import{a as N}from"./BrRctFvx.chunk.js";const P=["bg-green","bg-cyan","bg-teal","bg-blue","bg-indigo","bg-purple"],G=["bg-pink","bg-orange",...P];function H(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z",clipRule:"evenodd"})})}function I(t){return s.jsx("svg",{...t,viewBox:"0 0 24 21",children:s.jsx("path",{d:"M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5",fill:"currentColor"})})}function B(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",d:"M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17"})})}function E(t,e){return e[t.charCodeAt(0)%e.length]}const O="_baseFallbackContainer_14tjv_1",R="_svgFallbackContainer_14tjv_1",V="_subjectFallbackContainer_14tjv_9",w="_subjectFallbackContainerSmall_14tjv_18",q="_subjectFallbackContainerLarge_14tjv_21",Q="_seriesItemFallback_14tjv_24",U="_playlistItemFallback_14tjv_24",J="_playlistFallback_14tjv_28",W="_posterFallback_14tjv_29",X="_subjectFallback_14tjv_9",Y="_fallbackThumbnailImage_14tjv_47",Z="_videoFallback_14tjv_55",K="_folderFallback_14tjv_56",n={baseFallbackContainer:O,svgFallbackContainer:R,subjectFallbackContainer:V,subjectFallbackContainerSmall:w,subjectFallbackContainerLarge:q,seriesItemFallback:Q,playlistItemFallback:U,playlistFallback:J,posterFallback:W,subjectFallback:X,fallbackThumbnailImage:Y,videoFallback:Z,folderFallback:K};var T=(t=>(t[t.Playlist=0]="Playlist",t[t.PlaylistThumbnail=1]="PlaylistThumbnail",t[t.Series=2]="Series",t[t.SeriesThumbnail=3]="SeriesThumbnail",t[t.Subject=4]="Subject",t[t.TallSubject=5]="TallSubject",t[t.Video=6]="Video",t[t.Folder=7]="Folder",t))(T||{});function p(t,e,i){if(e===4){const o=i===0?n.subjectFallbackContainerLarge:n.subjectFallbackContainerSmall;return`${n.subjectFallbackContainer} ${o}`}return t===0?e===3||e===1?`${n.svgFallbackContainer} rounded-3`:n.svgFallbackContainer:n.baseFallbackContainer}function y(t){return t===3?n.seriesItemFallback:t===1?n.playlistItemFallback:t===0?n.playlistFallback:t===2||t===5?n.posterFallback:t===4?`${n.subjectFallback} svg-container d-inline-block`:""}function D(t){return t===3||t===1?H:t===0?I:t===2?B:t===4||t===5?N:null}function tt(t){return t===4?h.ExtraLarge:h.Standard}at.defaultProps={mediaType:0,containerClassSize:0};function at(t){const{type:e,mediaType:i,extraClasses:o,containerClassSize:b}=t;if(e===6)return s.jsx("div",{className:`${n.videoFallback} ${t.extraClasses} bg-light-blue`});if(e===7)return s.jsx("div",{className:`${n.folderFallback} ${t.extraClasses} ${E(t.name,G)}`});const d=y(e),l=D(e),c=tt(e);let r=`${p(i,e,b)}`;return o&&(r+=` ${t.extraClasses}`),s.jsx("div",{className:r,children:i===0?s.jsx(z,{svg:l,className:`${d} ${t.svgContainerClassName??""}`,tagName:"div",size:c}):s.jsx("div",{className:n.fallbackThumbnailImage,style:{backgroundImage:`url('${l}')`}})})}M.Ok;function nt(t,e,i){function o(l){if(l)return v.isFunction(e)?[...e(l)]:[...l.data]}function b(l){var c,r;if(l)return i?i(l):(r=(c=l.pagination)==null?void 0:c.cursors)==null?void 0:r.next}function d(l){if(l)return l==null?void 0:l.count}return A(L.useMemo(()=>l=>{if(!v.isFunction(t))return;const c=t,r=v.isFunction(t)&&c();let a=r&&S(l,r),f=a&&a.isFetching,F=a&&a.statusCode,C=a&&a.hasCompleted;const x=C,$=a&&a.shouldFetch,_=o(a&&a.data);let u=b(a&&a.data);const k=d(a&&a.data);for(;u&&(a=S(l,c(u)),f=f||a.isFetching,F=a.statusCode,C=a.hasCompleted,!a.shouldFetch);){const m=o(a.data);m&&_.push(...m);const g=b(a.data);g===u?u=null:u=g}const j={shouldInitialFetch:$,items:_,nextCursor:u,isFetching:f,statusCode:F,hasCompleted:C,hasFirstPageCompleted:x};return typeof k=="number"&&(j.totalItems=k),j},[t]))}export{G as B,at as I,T as a,E as g,nt as u};
2
+ //# sourceMappingURL=B0940TpS.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CidPoXbD.chunk.js","sources":["../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/ImageFallback.tsx","../../../../libs/shared/src/hooks/UseSelectAllPages.ts"],"sourcesContent":["/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large\n ? styles.subjectFallbackContainerLarge\n : styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg\n ? (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState } from 'libs/common/react/interfaces';\n\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nexport interface SelectAllPagesResult<T> {\n items: T[];\n shouldInitialFetch: boolean;\n nextCursor: string;\n isFetching: boolean;\n statusCode: HttpStatus;\n hasCompleted: boolean;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\nexport const EmptySelectAllPagesResult: SelectAllPagesResult<any> = {\n items: [],\n shouldInitialFetch: false,\n nextCursor: null,\n isFetching: false,\n statusCode: HttpStatus.Ok,\n hasCompleted: true,\n totalItems: 0,\n hasFirstPageCompleted: true\n};\n\n/**\n * Hook to select all pages of a collection from the store and flatten them.\n * It will not trigger any fetches.\n * \n * @param getKey - callback function to get the key for each page.\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useSelectAllPages<TObject, TResponse = BasePaginatedCollection<TObject>>(\n getKey: ((cursor?: string) => string) | false,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string\n): SelectAllPagesResult<TObject> {\n function safeGetItems(responseData: TResponse): TObject[] {\n if (!responseData)\n return undefined;\n\n if (FunctionHelper.isFunction(getItems))\n return [...getItems(responseData)];\n\n return [...(responseData as unknown as BasePaginatedCollection<TObject>).data];\n }\n\n function safeGetCursor(responseData: TResponse): string {\n if (!responseData)\n return undefined;\n\n if (getCursor)\n return getCursor(responseData);\n\n return (responseData as unknown as BasePaginatedCollection<TObject>).pagination?.cursors?.next;\n }\n\n function safeGetTotalItems(responseData: TResponse): number {\n if (!responseData)\n return undefined;\n\n return (responseData as unknown as BasePaginatedCollection<TObject>)?.count;\n }\n\n return useSelector(useMemo(() => (state: ApplicationState) => {\n if (!FunctionHelper.isFunction(getKey))\n return;\n\n const getKeyFn = getKey as (cursor?: string) => string;\n const key = FunctionHelper.isFunction(getKey) && getKeyFn();\n\n let request = key && Flight.getResponse<TResponse>(state, key);\n\n let isFetching = request && request.isFetching;\n let statusCode = request && request.statusCode;\n let hasCompleted = request && request.hasCompleted;\n const hasFirstPageCompleted = hasCompleted;\n\n const shouldInitialFetch = request && request.shouldFetch;\n\n const items = safeGetItems(request && request.data);\n let nextCursor = safeGetCursor(request && request.data);\n const totalItems = safeGetTotalItems(request && request.data);\n\n // Retrieve all pages that are currently in the store.\n while (nextCursor) {\n request = Flight.getResponse<TResponse>(state, getKeyFn(nextCursor));\n\n isFetching = isFetching || request.isFetching;\n statusCode = request.statusCode;\n hasCompleted = request.hasCompleted;\n\n // If next page hasn't been fetched, break.\n if (request.shouldFetch)\n break;\n\n const newItems = safeGetItems(request.data);\n newItems && items.push(...newItems);\n\n const nextNextCursor = safeGetCursor(request.data);\n\n /**\n * This is a check to basically see if the backend has messed up the cursors it's sent back.\n * For some things (e.g. user manager in Lite), the cursors are generated for a paginated collection,\n * but the collection is then filtered afterwards (making the cursors not entirely accurate).\n * This can lead to problems where a request with a cursor might return that same cursor as the `next`\n * cursor. Confusing, but basically when that happens we want this while loop to end, otherwise it'll\n * run infinitely - Josh\n */\n if (nextNextCursor === nextCursor) {\n nextCursor = null;\n } else {\n nextCursor = nextNextCursor;\n }\n }\n\n const response: SelectAllPagesResult<TObject> = {\n shouldInitialFetch,\n items,\n nextCursor,\n isFetching,\n statusCode,\n hasCompleted,\n hasFirstPageCompleted\n };\n\n if (typeof (totalItems) === 'number')\n response.totalItems = totalItems;\n\n return response;\n }, [getKey]));\n}"],"names":["LOGO_SAFE_BG_CLASS_NAMES","BG_COLOUR_CLASS_NAMES","PlaySvg","props","jsx","ImageSvg","SeriesSvg","getBgColorClass","name","classNames","ImageFallbackType","getContainerClass","type","objectType","containerClassSize","containerSizeClass","styles","getClassByType","getMedia","FileImgSvg","getSize","SvgContainerSize","ImageFallback","mediaType","extraClasses","typeClass","media","size","className","SvgContainer","HttpStatus","useSelectAllPages","getKey","getItems","getCursor","safeGetItems","responseData","FunctionHelper","safeGetCursor","_b","_a","safeGetTotalItems","useSelector","useMemo","state","getKeyFn","key","request","Flight.getResponse","isFetching","statusCode","hasCompleted","hasFirstPageCompleted","shouldInitialFetch","items","nextCursor","totalItems","newItems","nextNextCursor","response"],"mappings":"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"}
1
+ {"version":3,"file":"B0940TpS.chunk.js","sources":["../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/ImageFallback.tsx","../../../../libs/shared/src/hooks/UseSelectAllPages.ts"],"sourcesContent":["/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large\n ? styles.subjectFallbackContainerLarge\n : styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg\n ? (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState } from 'libs/common/react/interfaces';\n\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nexport interface SelectAllPagesResult<T> {\n items: T[];\n shouldInitialFetch: boolean;\n nextCursor: string;\n isFetching: boolean;\n statusCode: HttpStatus;\n hasCompleted: boolean;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\nexport const EmptySelectAllPagesResult: SelectAllPagesResult<any> = {\n items: [],\n shouldInitialFetch: false,\n nextCursor: null,\n isFetching: false,\n statusCode: HttpStatus.Ok,\n hasCompleted: true,\n totalItems: 0,\n hasFirstPageCompleted: true\n};\n\n/**\n * Hook to select all pages of a collection from the store and flatten them.\n * It will not trigger any fetches.\n * \n * @param getKey - callback function to get the key for each page.\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useSelectAllPages<TObject, TResponse = BasePaginatedCollection<TObject>>(\n getKey: ((cursor?: string) => string) | false,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string\n): SelectAllPagesResult<TObject> {\n function safeGetItems(responseData: TResponse): TObject[] {\n if (!responseData)\n return undefined;\n\n if (FunctionHelper.isFunction(getItems))\n return [...getItems(responseData)];\n\n return [...(responseData as unknown as BasePaginatedCollection<TObject>).data];\n }\n\n function safeGetCursor(responseData: TResponse): string {\n if (!responseData)\n return undefined;\n\n if (getCursor)\n return getCursor(responseData);\n\n return (responseData as unknown as BasePaginatedCollection<TObject>).pagination?.cursors?.next;\n }\n\n function safeGetTotalItems(responseData: TResponse): number {\n if (!responseData)\n return undefined;\n\n return (responseData as unknown as BasePaginatedCollection<TObject>)?.count;\n }\n\n return useSelector(useMemo(() => (state: ApplicationState) => {\n if (!FunctionHelper.isFunction(getKey))\n return;\n\n const getKeyFn = getKey as (cursor?: string) => string;\n const key = FunctionHelper.isFunction(getKey) && getKeyFn();\n\n let request = key && Flight.getResponse<TResponse>(state, key);\n\n let isFetching = request && request.isFetching;\n let statusCode = request && request.statusCode;\n let hasCompleted = request && request.hasCompleted;\n const hasFirstPageCompleted = hasCompleted;\n\n const shouldInitialFetch = request && request.shouldFetch;\n\n const items = safeGetItems(request && request.data);\n let nextCursor = safeGetCursor(request && request.data);\n const totalItems = safeGetTotalItems(request && request.data);\n\n // Retrieve all pages that are currently in the store.\n while (nextCursor) {\n request = Flight.getResponse<TResponse>(state, getKeyFn(nextCursor));\n\n isFetching = isFetching || request.isFetching;\n statusCode = request.statusCode;\n hasCompleted = request.hasCompleted;\n\n // If next page hasn't been fetched, break.\n if (request.shouldFetch)\n break;\n\n const newItems = safeGetItems(request.data);\n newItems && items.push(...newItems);\n\n const nextNextCursor = safeGetCursor(request.data);\n\n /**\n * This is a check to basically see if the backend has messed up the cursors it's sent back.\n * For some things (e.g. user manager in Lite), the cursors are generated for a paginated collection,\n * but the collection is then filtered afterwards (making the cursors not entirely accurate).\n * This can lead to problems where a request with a cursor might return that same cursor as the `next`\n * cursor. Confusing, but basically when that happens we want this while loop to end, otherwise it'll\n * run infinitely - Josh\n */\n if (nextNextCursor === nextCursor) {\n nextCursor = null;\n } else {\n nextCursor = nextNextCursor;\n }\n }\n\n const response: SelectAllPagesResult<TObject> = {\n shouldInitialFetch,\n items,\n nextCursor,\n isFetching,\n statusCode,\n hasCompleted,\n hasFirstPageCompleted\n };\n\n if (typeof (totalItems) === 'number')\n response.totalItems = totalItems;\n\n return response;\n }, [getKey]));\n}"],"names":["LOGO_SAFE_BG_CLASS_NAMES","BG_COLOUR_CLASS_NAMES","PlaySvg","props","jsx","ImageSvg","SeriesSvg","getBgColorClass","name","classNames","ImageFallbackType","getContainerClass","type","objectType","containerClassSize","containerSizeClass","styles","getClassByType","getMedia","FileImgSvg","getSize","SvgContainerSize","ImageFallback","mediaType","extraClasses","typeClass","media","size","className","SvgContainer","HttpStatus","useSelectAllPages","getKey","getItems","getCursor","safeGetItems","responseData","FunctionHelper","safeGetCursor","_b","_a","safeGetTotalItems","useSelector","useMemo","state","getKeyFn","key","request","Flight.getResponse","isFetching","statusCode","hasCompleted","hasFirstPageCompleted","shouldInitialFetch","items","nextCursor","totalItems","newItems","nextNextCursor","response"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s,aA as h,L as d}from"./app-Det8y4U1.js";const p="_minHeight_kz0hs_1",C="_restrictionBadgeCustom_kz0hs_4",R="_restrictionBadgeUser_kz0hs_8",v="_streamable_kz0hs_12",g={minHeight:p,restrictionBadgeCustom:C,restrictionBadgeUser:R,streamable:v};var n=(e=>(e.Custom="custom",e.User="year_group",e))(n||{});function f(e){return s.jsx("svg",{...e,children:s.jsx("path",{d:"M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98",fill:"currentColor"})})}function x(e){return s.jsxs("svg",{...e,children:[s.jsx("defs",{children:s.jsx("path",{id:"a",d:"M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457",fill:"currentColor"})}),s.jsxs("g",{fill:"none",fillRule:"evenodd",children:[s.jsx("mask",{id:"b",fill:"#fff",children:s.jsx("use",{href:"#a"})}),s.jsx("use",{fill:"#000",fillRule:"nonzero",href:"#a"}),s.jsx("g",{fill:"#383838",mask:"url(#b)",children:s.jsx("path",{d:"M0 0h24v24H0z",fill:"currentColor"})})]})]})}const y="shared.shared-utils",c=d.encloseNamespace(y),_={[n.Custom]:g.restrictionBadgeCustom,[n.User]:g.restrictionBadgeUser},j={[n.Custom]:x,[n.User]:f},B={[n.Custom]:"restrictionCustom",[n.User]:"restrictionYearGroup"},m={[n.Custom]:200,[n.User]:100},o={mapRestrictionToClass(e){var r;if(!((r=e==null?void 0:e.value)!=null&&r.length))return"";const t=o.getWeightedRestriction(e.value);return _[t.type]},mapRestrictionToSvg(e){var r;if(!((r=e==null?void 0:e.value)!=null&&r.length))return f;const t=o.getWeightedRestriction(e.value);return j[t.type]},mapRestrictionToText(e,t){var l;if(!((l=e==null?void 0:e.value)!=null&&l.length)||!(t!=null&&t.length))return"";const r=o.getWeightedRestriction(e.value),a=t.find(u=>u.value===r.yearGroup),i=B[r.type];if(r.type===n.User)return r.yearGroup===null?c("restrictionStaff"):a?t.length===1?c("restrictionStudents"):c(i,{yearGroup:a.name}):"";if(r.type===n.Custom){const u=o.getRestrictionDuration(r);return u?c(i,{duration:u,smartCount:u}):c("restrictionCustomLessThanDay",{duration:u,smartCount:1})}return""},getWeightedRestriction(e,t="highest"){if(e!=null&&e.length)return e.length===1?e[0]:e.reduce((r,a)=>{const i=m[r.type],l=m[a.type];return t==="highest"&&i>l||t==="lowest"&&i<l?r:a})},getRestrictionByType(e,t){if(!o.hasRestrictions(e))return null;const r=Array.isArray(t)?t:[t],a=e._restrictions.value.filter(i=>r.includes(i.type));return o.getWeightedRestriction(a)},getRestrictionDuration(e){if(e.type!==n.Custom||!e.expiresOn)return;const t=h.convertUTCToLocal(e.expiresOn);if(t)return h.diffBetween(t,new Date,"day")},hasCustomRestriction(e){return!!o.getRestrictionByType(e,[n.Custom])},hasRestrictions(e){var t,r;return!!((r=(t=e==null?void 0:e._restrictions)==null?void 0:t.value)!=null&&r.length)}};export{f as L,o as R,n as a,g as s};
2
- //# sourceMappingURL=Cyhg-nBj.chunk.js.map
1
+ import{j as s,aA as h,L as d}from"./app-C2md4v6O.js";const p="_minHeight_kz0hs_1",C="_restrictionBadgeCustom_kz0hs_4",R="_restrictionBadgeUser_kz0hs_8",v="_streamable_kz0hs_12",g={minHeight:p,restrictionBadgeCustom:C,restrictionBadgeUser:R,streamable:v};var n=(e=>(e.Custom="custom",e.User="year_group",e))(n||{});function f(e){return s.jsx("svg",{...e,children:s.jsx("path",{d:"M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98",fill:"currentColor"})})}function x(e){return s.jsxs("svg",{...e,children:[s.jsx("defs",{children:s.jsx("path",{id:"a",d:"M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457",fill:"currentColor"})}),s.jsxs("g",{fill:"none",fillRule:"evenodd",children:[s.jsx("mask",{id:"b",fill:"#fff",children:s.jsx("use",{href:"#a"})}),s.jsx("use",{fill:"#000",fillRule:"nonzero",href:"#a"}),s.jsx("g",{fill:"#383838",mask:"url(#b)",children:s.jsx("path",{d:"M0 0h24v24H0z",fill:"currentColor"})})]})]})}const y="shared.shared-utils",c=d.encloseNamespace(y),_={[n.Custom]:g.restrictionBadgeCustom,[n.User]:g.restrictionBadgeUser},j={[n.Custom]:x,[n.User]:f},B={[n.Custom]:"restrictionCustom",[n.User]:"restrictionYearGroup"},m={[n.Custom]:200,[n.User]:100},o={mapRestrictionToClass(e){var r;if(!((r=e==null?void 0:e.value)!=null&&r.length))return"";const t=o.getWeightedRestriction(e.value);return _[t.type]},mapRestrictionToSvg(e){var r;if(!((r=e==null?void 0:e.value)!=null&&r.length))return f;const t=o.getWeightedRestriction(e.value);return j[t.type]},mapRestrictionToText(e,t){var l;if(!((l=e==null?void 0:e.value)!=null&&l.length)||!(t!=null&&t.length))return"";const r=o.getWeightedRestriction(e.value),a=t.find(u=>u.value===r.yearGroup),i=B[r.type];if(r.type===n.User)return r.yearGroup===null?c("restrictionStaff"):a?t.length===1?c("restrictionStudents"):c(i,{yearGroup:a.name}):"";if(r.type===n.Custom){const u=o.getRestrictionDuration(r);return u?c(i,{duration:u,smartCount:u}):c("restrictionCustomLessThanDay",{duration:u,smartCount:1})}return""},getWeightedRestriction(e,t="highest"){if(e!=null&&e.length)return e.length===1?e[0]:e.reduce((r,a)=>{const i=m[r.type],l=m[a.type];return t==="highest"&&i>l||t==="lowest"&&i<l?r:a})},getRestrictionByType(e,t){if(!o.hasRestrictions(e))return null;const r=Array.isArray(t)?t:[t],a=e._restrictions.value.filter(i=>r.includes(i.type));return o.getWeightedRestriction(a)},getRestrictionDuration(e){if(e.type!==n.Custom||!e.expiresOn)return;const t=h.convertUTCToLocal(e.expiresOn);if(t)return h.diffBetween(t,new Date,"day")},hasCustomRestriction(e){return!!o.getRestrictionByType(e,[n.Custom])},hasRestrictions(e){var t,r;return!!((r=(t=e==null?void 0:e._restrictions)==null?void 0:t.value)!=null&&r.length)}};export{f as L,o as R,n as a,g as s};
2
+ //# sourceMappingURL=B3i6vWFI.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cyhg-nBj.chunk.js","sources":["../../../../libs/shared/src/enums/RestrictionType.ts","../../../../libs/shared/src/images/svg/status/LockSvg.tsx","../../../../libs/shared/src/images/svg/status/TimerSvg.tsx","../../../../libs/shared/src/utils/RestrictionHelper.ts"],"sourcesContent":["/**\n * Restriction Types for an object\n */\nexport enum RestrictionType {\n /** Generated for customers who have turned content review on */\n Custom = 'custom',\n\n /** Restriction created by the user */\n User = 'year_group'\n}","import React from 'react';\n\nexport function LockSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function TimerSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457'\n fill='currentColor'\n />\n </defs>\n <g fill='none' fillRule='evenodd'>\n <mask id='b' fill='#fff'>\n <use href='#a' />\n </mask>\n <use fill='#000' fillRule='nonzero' href='#a' />\n <g fill='#383838' mask='url(#b)'>\n <path d='M0 0h24v24H0z' fill='currentColor' />\n </g>\n </g>\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport styles from 'libs/shared/components/badges/badge.module.scss';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ObjectsRestriction, Restrictions, VideoTypes, YearGroup } from 'libs/shared/interfaces';\n\nimport { LockSvg } from '../images/svg/status/LockSvg';\nimport { TimerSvg } from '../images/svg/status/TimerSvg';\n\nimport { SvgIcon } from './SvgHelper';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ClassNameMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: styles.restrictionBadgeCustom,\n [RestrictionType.User]: styles.restrictionBadgeUser\n};\n\nconst IconMap: {[key in RestrictionType]: SvgIcon} = {\n [RestrictionType.Custom]: TimerSvg,\n [RestrictionType.User]: LockSvg\n};\n\nconst PhraseMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: 'restrictionCustom',\n [RestrictionType.User]: 'restrictionYearGroup'\n};\n\nconst WeightMap: {[Key in RestrictionType]: number} = {\n [RestrictionType.Custom]: 200,\n [RestrictionType.User]: 100\n};\n\nexport const RestrictionHelper = {\n mapRestrictionToClass(restrictions: Restrictions): string {\n if (!restrictions?.value?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return ClassNameMap[restriction.type];\n },\n\n mapRestrictionToSvg(restrictions: Restrictions): SvgIcon {\n if (!restrictions?.value?.length)\n return LockSvg;\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return IconMap[restriction.type];\n },\n\n mapRestrictionToText(\n restrictions: Restrictions,\n yearGroups: YearGroup[]\n ): string {\n if (!restrictions?.value?.length || !yearGroups?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n const yearGroup = yearGroups.find(y => y.value === restriction.yearGroup);\n\n const phrase = PhraseMap[restriction.type];\n if (restriction.type === RestrictionType.User) {\n if (restriction.yearGroup === null)\n return getPhrase('restrictionStaff');\n\n if (!yearGroup)\n return '';\n\n if (yearGroups.length === 1)\n return getPhrase('restrictionStudents');\n\n return getPhrase(phrase, { yearGroup: yearGroup.name });\n }\n\n if (restriction.type === RestrictionType.Custom) {\n const duration = RestrictionHelper.getRestrictionDuration(restriction);\n return duration ?\n getPhrase(phrase, { duration, smartCount: duration }) :\n getPhrase('restrictionCustomLessThanDay', { duration, smartCount: 1 });\n }\n\n return '';\n },\n\n /**\n * A video can have multiple restrictions, in that case we need to display\n * only one restriction. By default we display the restriction with highest\n * weight bias.\n */\n getWeightedRestriction(\n restrictions: ObjectsRestriction[],\n bias: 'highest' | 'lowest' = 'highest'\n ): ObjectsRestriction {\n if (!restrictions?.length) return;\n \n if (restrictions.length === 1) return restrictions[0];\n\n return restrictions.reduce((previous, current) => {\n const previousWeight = WeightMap[previous.type];\n const currentWeight = WeightMap[current.type];\n\n if (bias === 'highest' && previousWeight > currentWeight) return previous;\n if (bias === 'lowest' && previousWeight < currentWeight) return previous;\n\n return current;\n });\n },\n\n getRestrictionByType(\n video: VideoTypes,\n type: RestrictionType | RestrictionType[]\n ): ObjectsRestriction {\n if (!RestrictionHelper.hasRestrictions(video))\n return null;\n\n const types = Array.isArray(type) ? type : [type];\n\n const restrictions = video._restrictions.value.filter(r => types.includes(r.type));\n return RestrictionHelper.getWeightedRestriction(restrictions);\n },\n\n getRestrictionDuration(\n restriction: ObjectsRestriction\n ): number {\n if (restriction.type !== RestrictionType.Custom || !restriction.expiresOn) return;\n\n const expiresOn = DateHelper.convertUTCToLocal(restriction.expiresOn);\n if (!expiresOn) return;\n\n return DateHelper.diffBetween(expiresOn, new Date(), 'day');\n },\n\n hasCustomRestriction(\n video: VideoTypes\n ): boolean {\n return !!RestrictionHelper.getRestrictionByType(video, [RestrictionType.Custom]);\n },\n\n hasRestrictions(video: VideoTypes): boolean {\n return !!video?._restrictions?.value?.length;\n }\n};"],"names":["RestrictionType","LockSvg","props","jsx","TimerSvg","jsxs","namespace","getPhrase","LanguageService","ClassNameMap","styles","IconMap","PhraseMap","WeightMap","RestrictionHelper","restrictions","_a","restriction","yearGroups","yearGroup","y","phrase","duration","bias","previous","current","previousWeight","currentWeight","video","type","types","r","expiresOn","DateHelper","_b"],"mappings":"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"}
1
+ {"version":3,"file":"B3i6vWFI.chunk.js","sources":["../../../../libs/shared/src/enums/RestrictionType.ts","../../../../libs/shared/src/images/svg/status/LockSvg.tsx","../../../../libs/shared/src/images/svg/status/TimerSvg.tsx","../../../../libs/shared/src/utils/RestrictionHelper.ts"],"sourcesContent":["/**\n * Restriction Types for an object\n */\nexport enum RestrictionType {\n /** Generated for customers who have turned content review on */\n Custom = 'custom',\n\n /** Restriction created by the user */\n User = 'year_group'\n}","import React from 'react';\n\nexport function LockSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function TimerSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457'\n fill='currentColor'\n />\n </defs>\n <g fill='none' fillRule='evenodd'>\n <mask id='b' fill='#fff'>\n <use href='#a' />\n </mask>\n <use fill='#000' fillRule='nonzero' href='#a' />\n <g fill='#383838' mask='url(#b)'>\n <path d='M0 0h24v24H0z' fill='currentColor' />\n </g>\n </g>\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport styles from 'libs/shared/components/badges/badge.module.scss';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ObjectsRestriction, Restrictions, VideoTypes, YearGroup } from 'libs/shared/interfaces';\n\nimport { LockSvg } from '../images/svg/status/LockSvg';\nimport { TimerSvg } from '../images/svg/status/TimerSvg';\n\nimport { SvgIcon } from './SvgHelper';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ClassNameMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: styles.restrictionBadgeCustom,\n [RestrictionType.User]: styles.restrictionBadgeUser\n};\n\nconst IconMap: {[key in RestrictionType]: SvgIcon} = {\n [RestrictionType.Custom]: TimerSvg,\n [RestrictionType.User]: LockSvg\n};\n\nconst PhraseMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: 'restrictionCustom',\n [RestrictionType.User]: 'restrictionYearGroup'\n};\n\nconst WeightMap: {[Key in RestrictionType]: number} = {\n [RestrictionType.Custom]: 200,\n [RestrictionType.User]: 100\n};\n\nexport const RestrictionHelper = {\n mapRestrictionToClass(restrictions: Restrictions): string {\n if (!restrictions?.value?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return ClassNameMap[restriction.type];\n },\n\n mapRestrictionToSvg(restrictions: Restrictions): SvgIcon {\n if (!restrictions?.value?.length)\n return LockSvg;\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return IconMap[restriction.type];\n },\n\n mapRestrictionToText(\n restrictions: Restrictions,\n yearGroups: YearGroup[]\n ): string {\n if (!restrictions?.value?.length || !yearGroups?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n const yearGroup = yearGroups.find(y => y.value === restriction.yearGroup);\n\n const phrase = PhraseMap[restriction.type];\n if (restriction.type === RestrictionType.User) {\n if (restriction.yearGroup === null)\n return getPhrase('restrictionStaff');\n\n if (!yearGroup)\n return '';\n\n if (yearGroups.length === 1)\n return getPhrase('restrictionStudents');\n\n return getPhrase(phrase, { yearGroup: yearGroup.name });\n }\n\n if (restriction.type === RestrictionType.Custom) {\n const duration = RestrictionHelper.getRestrictionDuration(restriction);\n return duration ?\n getPhrase(phrase, { duration, smartCount: duration }) :\n getPhrase('restrictionCustomLessThanDay', { duration, smartCount: 1 });\n }\n\n return '';\n },\n\n /**\n * A video can have multiple restrictions, in that case we need to display\n * only one restriction. By default we display the restriction with highest\n * weight bias.\n */\n getWeightedRestriction(\n restrictions: ObjectsRestriction[],\n bias: 'highest' | 'lowest' = 'highest'\n ): ObjectsRestriction {\n if (!restrictions?.length) return;\n \n if (restrictions.length === 1) return restrictions[0];\n\n return restrictions.reduce((previous, current) => {\n const previousWeight = WeightMap[previous.type];\n const currentWeight = WeightMap[current.type];\n\n if (bias === 'highest' && previousWeight > currentWeight) return previous;\n if (bias === 'lowest' && previousWeight < currentWeight) return previous;\n\n return current;\n });\n },\n\n getRestrictionByType(\n video: VideoTypes,\n type: RestrictionType | RestrictionType[]\n ): ObjectsRestriction {\n if (!RestrictionHelper.hasRestrictions(video))\n return null;\n\n const types = Array.isArray(type) ? type : [type];\n\n const restrictions = video._restrictions.value.filter(r => types.includes(r.type));\n return RestrictionHelper.getWeightedRestriction(restrictions);\n },\n\n getRestrictionDuration(\n restriction: ObjectsRestriction\n ): number {\n if (restriction.type !== RestrictionType.Custom || !restriction.expiresOn) return;\n\n const expiresOn = DateHelper.convertUTCToLocal(restriction.expiresOn);\n if (!expiresOn) return;\n\n return DateHelper.diffBetween(expiresOn, new Date(), 'day');\n },\n\n hasCustomRestriction(\n video: VideoTypes\n ): boolean {\n return !!RestrictionHelper.getRestrictionByType(video, [RestrictionType.Custom]);\n },\n\n hasRestrictions(video: VideoTypes): boolean {\n return !!video?._restrictions?.value?.length;\n }\n};"],"names":["RestrictionType","LockSvg","props","jsx","TimerSvg","jsxs","namespace","getPhrase","LanguageService","ClassNameMap","styles","IconMap","PhraseMap","WeightMap","RestrictionHelper","restrictions","_a","restriction","yearGroups","yearGroup","y","phrase","duration","bias","previous","current","previousWeight","currentWeight","video","type","types","r","expiresOn","DateHelper","_b"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{H as v,a2 as p,j as o,P as y,aC as h,A as w,a as f,b as g}from"./app-Det8y4U1.js";import{S as P}from"./CYuY28rl.chunk.js";import{V as x}from"./CdGLJKZk.chunk.js";import{u as C}from"./DsCrIxlP.chunk.js";import{C as j,P as A,a as E}from"./CHPVU_Qn.chunk.js";import{a as V}from"./Bq1eQRV_.chunk.js";import{u as S}from"./z6Us1EdG.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./Bi0GaEZE.chunk.js";import"./C6bEPV55.chunk.js";import"./DHjeFsuP.chunk.js";import"./d_OewpIc.chunk.js";import"./Cyhg-nBj.chunk.js";import"./cw1CbjiZ.chunk.js";import"./CBlUYGqN.chunk.js";import"./C99JIGI3.chunk.js";import"./W8wegH66.chunk.js";import"./Kj832An8.chunk.js";import"./CJ3oIQlG.chunk.js";import"./DwMcJ3Ip.chunk.js";import"./CX6fV4JE.chunk.js";import"./BeyY1CwV.chunk.js";import"./CHa6bZJR.chunk.js";import"./C36BgTJV.chunk.js";import"./Cdo-iAIt.chunk.js";import"./DzbCvkXx.chunk.js";import"./C8geGHZf.chunk.js";import"./B93FMGSP.chunk.js";import"./DgWxzhMg.chunk.js";import"./B668bf5B.chunk.js";import"./DXRtwYU8.chunk.js";import"./h68xZO90.chunk.js";import"./Bz18U45-.chunk.js";import"./Dmfr0hZx.chunk.js";import"./OpOTepmF.chunk.js";import"./DWmgmt8-.chunk.js";var c=(e=>(e.Share="share",e.MasterObject="masterobject",e))(c||{});const b={createViewKey(e,t,r,a,s){const i={mediaId:e.toString(),mediaIdType:t};return r&&(i.shareContextId=r),{url:"/api/player/create-view-key",key:`view:key:${e}:${t}`,type:v.POST,data:i,cacheDuration:28800,success:a,error:s}}};function ue(e){var l;const t=p(x.video(e.videoId)),r=p(h.config()),a=p(b.createViewKey(e.videoId,c.MasterObject)),s=V("preview");C(t.statusCode);const{previewContext:i,clearPreviewContext:d}=S(e.videoId,!0);function u(k){}function n(){e.closePopup(),P.preventScrollTop(),w.trigger((i==null?void 0:i.appLink)??{application:g.EXCHANGE,action:f.Exchange.INDEX}),d()}const m=t.data&&r.hasCompleted&&a.hasCompleted;return o.jsx(y,{title:(l=t.data)==null?void 0:l.name,hideTitle:!0,closePopup:n,showLoadingSpinner:!m,size:"lg",bodyClassName:"p-0 rounded-3 position-relative",children:m&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"overflow-hidden rounded-top-lg",children:o.jsx(j,{viewKey:a.data.viewKey,playerApi:new URL(r.data.playerApiUrl),autoplay:!0,hotkeyElQuerySelector:"body",onReady:u,allowFullscreen:!1})}),o.jsx(A,{video:t.data,title:t.data.name,description:t.data.description,videoActions:s.getVideoActions(t.data)}),o.jsx(E,{closePopup:n})]})})}export{ue as ExchangePreviewView};
2
- //# sourceMappingURL=DcA5xG6o.chunk.js.map
1
+ import{H as v,a2 as p,j as o,P as y,aC as h,A as w,a as f,b as g}from"./app-C2md4v6O.js";import{S as P}from"./DLCJG-Fm.chunk.js";import{V as x}from"./jCscKGvY.chunk.js";import{u as C}from"./DIiIA5hY.chunk.js";import{C as j,P as A,a as E}from"./BIqqvbli.chunk.js";import{a as V}from"./BbKbh5tw.chunk.js";import{u as S}from"./CGsO0liR.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./DZ4UeBKW.chunk.js";import"./pMgyVPKQ.chunk.js";import"./DDceUbL5.chunk.js";import"./UXYD7sDO.chunk.js";import"./B3i6vWFI.chunk.js";import"./DORu23Pq.chunk.js";import"./lqnuKFoF.chunk.js";import"./Blfyr1LY.chunk.js";import"./QpdkfjyT.chunk.js";import"./Kj832An8.chunk.js";import"./CJ3oIQlG.chunk.js";import"./DdcBDgpq.chunk.js";import"./BrRctFvx.chunk.js";import"./Dgk7nYlV.chunk.js";import"./DE4Juqeg.chunk.js";import"./5Bk7WUgq.chunk.js";import"./CLEMYZCv.chunk.js";import"./ccYLdwq0.chunk.js";import"./B_Fzcc5G.chunk.js";import"./BX6q5kK6.chunk.js";import"./_mZm6AP_.chunk.js";import"./B668bf5B.chunk.js";import"./DlvwqUyz.chunk.js";import"./DWDiqXD7.chunk.js";import"./uev2agHh.chunk.js";import"./DOqvCLjE.chunk.js";import"./nXVR9Bqt.chunk.js";import"./DQNTWWrq.chunk.js";var c=(e=>(e.Share="share",e.MasterObject="masterobject",e))(c||{});const b={createViewKey(e,t,r,a,s){const i={mediaId:e.toString(),mediaIdType:t};return r&&(i.shareContextId=r),{url:"/api/player/create-view-key",key:`view:key:${e}:${t}`,type:v.POST,data:i,cacheDuration:28800,success:a,error:s}}};function ue(e){var l;const t=p(x.video(e.videoId)),r=p(h.config()),a=p(b.createViewKey(e.videoId,c.MasterObject)),s=V("preview");C(t.statusCode);const{previewContext:i,clearPreviewContext:d}=S(e.videoId,!0);function u(k){}function n(){e.closePopup(),P.preventScrollTop(),w.trigger((i==null?void 0:i.appLink)??{application:g.EXCHANGE,action:f.Exchange.INDEX}),d()}const m=t.data&&r.hasCompleted&&a.hasCompleted;return o.jsx(y,{title:(l=t.data)==null?void 0:l.name,hideTitle:!0,closePopup:n,showLoadingSpinner:!m,size:"lg",bodyClassName:"p-0 rounded-3 position-relative",children:m&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"overflow-hidden rounded-top-lg",children:o.jsx(j,{viewKey:a.data.viewKey,playerApi:new URL(r.data.playerApiUrl),autoplay:!0,hotkeyElQuerySelector:"body",onReady:u,allowFullscreen:!1})}),o.jsx(A,{video:t.data,title:t.data.name,description:t.data.description,videoActions:s.getVideoActions(t.data)}),o.jsx(E,{closePopup:n})]})})}export{ue as ExchangePreviewView};
2
+ //# sourceMappingURL=B67thHHx.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DcA5xG6o.chunk.js","sources":["../../../../libs/shared/src/enums/MediaIdType.ts","../../../../libs/shared/src/flight-requests/PlayerRequests.ts","../../src/apps/exchange/views/exchange-preview/ExchangePreviewView.tsx"],"sourcesContent":["export enum MediaIdType {\n Share = 'share',\n MasterObject = 'masterobject'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerViewKey } from 'libs/shared/interfaces';\n\nexport const PlayerRequests = {\n createViewKey(\n mediaId: string,\n mediaIdType: MediaIdType,\n shareContextId?: string,\n success?: (viewKey: PlayerViewKey) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n const data: HashObject = {\n mediaId: mediaId.toString(),\n mediaIdType\n };\n\n if (shareContextId)\n data.shareContextId = shareContextId;\n\n return {\n url: `/api/player/create-view-key`,\n key: `view:key:${mediaId}:${mediaIdType}`,\n type: HttpVerbs.POST,\n data,\n /**\n * A view key is valid for 8 hours, at that point we need refetch the view key\n */\n cacheDuration: 28800,\n success,\n error\n };\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { Config, PlayerViewKey, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { PlayerOverlayButtons } from 'shared/components/player-overlay-buttons/PlayerOverlayButtons';\nimport { PreviewVideoDetails } from 'shared/components/preview-video-details/PreviewVideoDetails';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\ninterface ExchangePreviewViewProps extends PopupViewProps {\n videoId: string;\n currentTime: number;\n}\n\nexport function ExchangePreviewView(props: ExchangePreviewViewProps): JSX.Element {\n // const analyticsTracker = React.useRef<PlayerAnalyticsTracker>(null);\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.videoId, MediaIdType.MasterObject)\n );\n\n const videoActions = useGetExchangeActions('preview');\n useHandleDialogError(video.statusCode);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, true);\n\n // TODO: Solve analytics collection\n function onReady(player: PlayerReference): void {\n player;\n // setupAnalytics(player);\n }\n\n // function setupAnalytics(player: PlayerReference): void {\n // analyticsTracker.current = new PlayerAnalyticsTracker({\n // player,\n // video: props.video,\n // analyticsLocation: props.embed ?\n // LocationContext.EmbeddedPlayer :\n // LocationContext.PlayPage,\n // shareId: props.shareLink?.id\n // });\n // }\n\n function onClose(): void {\n props.closePopup();\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext?.appLink ?? {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n });\n clearPreviewContext();\n }\n\n const hasLoaded = (\n video.data &&\n config.hasCompleted &&\n viewKey.hasCompleted\n );\n\n return (\n <Popup\n title={video.data?.name}\n hideTitle\n closePopup={onClose}\n showLoadingSpinner={!hasLoaded}\n size='lg'\n bodyClassName='p-0 rounded-3 position-relative'\n >\n {hasLoaded &&\n <>\n <div className='overflow-hidden rounded-top-lg'>\n <ClickViewPlayer\n viewKey={viewKey.data.viewKey}\n playerApi={new URL(config.data.playerApiUrl)}\n autoplay\n hotkeyElQuerySelector='body'\n onReady={onReady}\n allowFullscreen={false}\n />\n </div>\n <PreviewVideoDetails\n video={video.data}\n title={video.data.name}\n description={video.data.description}\n videoActions={videoActions.getVideoActions(video.data)}\n />\n <PlayerOverlayButtons closePopup={onClose} />\n </>\n }\n </Popup>\n );\n}"],"names":["MediaIdType","PlayerRequests","mediaId","mediaIdType","shareContextId","success","error","data","HttpVerbs","ExchangePreviewView","props","video","Flight.useBasicFetch","VideoRequests","config","ConfigRequests","viewKey","videoActions","useGetExchangeActions","useHandleDialogError","previewContext","clearPreviewContext","usePreviewContext","onReady","player","onClose","ScrollHelper","Core.AppLinkHelper","AppChannels","Actions","hasLoaded","jsx","Popup","_a","jsxs","Fragment","ClickViewPlayer","PreviewVideoDetails","PlayerOverlayButtons"],"mappings":"+pCAAO,IAAKA,GAAAA,IACVA,EAAA,MAAQ,QACRA,EAAA,aAAe,eAFLA,IAAAA,GAAA,CAAA,CAAA,ECQL,MAAMC,EAAiB,CAC5B,cACEC,EACAC,EACAC,EACAC,EACAC,EACgB,CAChB,MAAMC,EAAmB,CACvB,QAASL,EAAQ,SAAA,EACjB,YAAAC,CAAA,EAGF,OAAIC,IACFG,EAAK,eAAiBH,GAEjB,CACL,IAAK,8BACL,IAAK,YAAYF,CAAO,IAAIC,CAAW,GACvC,KAAMK,EAAU,KAChB,KAAAD,EAIA,cAAe,MACf,QAAAF,EACA,MAAAC,CAAA,CAEJ,CACF,ECPO,SAASG,GAAoBC,EAA8C,OAEhF,MAAMC,EAAQC,EAA4BC,EAAc,MAAMH,EAAM,OAAO,CAAC,EACtEI,EAASF,EAA6BG,EAAe,QAAQ,EAC7DC,EAAUJ,EACdX,EAAe,cAAcS,EAAM,QAASV,EAAY,YAAY,CAAA,EAGhEiB,EAAeC,EAAsB,SAAS,EACpDC,EAAqBR,EAAM,UAAU,EAErC,KAAM,CAAE,eAAAS,EAAgB,oBAAAC,CAAA,EAAwBC,EAAkBZ,EAAM,QAAS,EAAI,EAGrF,SAASa,EAAQC,EAA+B,CAGhD,CAaA,SAASC,GAAgB,CACvBf,EAAM,WAAA,EAENgB,EAAa,iBAAA,EACbC,EAAmB,SAAQP,GAAA,YAAAA,EAAgB,UAAW,CACpD,YAAaQ,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,CAC1B,EACDR,EAAA,CACF,CAEA,MAAMS,EACJnB,EAAM,MACNG,EAAO,cACPE,EAAQ,aAGV,OACEe,EAAAA,IAACC,EAAA,CACC,OAAOC,EAAAtB,EAAM,OAAN,YAAAsB,EAAY,KACnB,UAAS,GACT,WAAYR,EACZ,mBAAoB,CAACK,EACrB,KAAK,KACL,cAAc,kCAEb,YACCI,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAJ,EAAAA,IAAC,MAAA,CAAI,UAAU,iCACb,SAAAA,EAAAA,IAACK,EAAA,CACC,QAASpB,EAAQ,KAAK,QACtB,UAAW,IAAI,IAAIF,EAAO,KAAK,YAAY,EAC3C,SAAQ,GACR,sBAAsB,OACtB,QAAAS,EACA,gBAAiB,EAAA,CAAA,EAErB,EACAQ,EAAAA,IAACM,EAAA,CACC,MAAO1B,EAAM,KACb,MAAOA,EAAM,KAAK,KAClB,YAAaA,EAAM,KAAK,YACxB,aAAcM,EAAa,gBAAgBN,EAAM,IAAI,CAAA,CAAA,EAEvDoB,EAAAA,IAACO,EAAA,CAAqB,WAAYb,CAAA,CAAS,CAAA,CAAA,CAC7C,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"B67thHHx.chunk.js","sources":["../../../../libs/shared/src/enums/MediaIdType.ts","../../../../libs/shared/src/flight-requests/PlayerRequests.ts","../../src/apps/exchange/views/exchange-preview/ExchangePreviewView.tsx"],"sourcesContent":["export enum MediaIdType {\n Share = 'share',\n MasterObject = 'masterobject'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerViewKey } from 'libs/shared/interfaces';\n\nexport const PlayerRequests = {\n createViewKey(\n mediaId: string,\n mediaIdType: MediaIdType,\n shareContextId?: string,\n success?: (viewKey: PlayerViewKey) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n const data: HashObject = {\n mediaId: mediaId.toString(),\n mediaIdType\n };\n\n if (shareContextId)\n data.shareContextId = shareContextId;\n\n return {\n url: `/api/player/create-view-key`,\n key: `view:key:${mediaId}:${mediaIdType}`,\n type: HttpVerbs.POST,\n data,\n /**\n * A view key is valid for 8 hours, at that point we need refetch the view key\n */\n cacheDuration: 28800,\n success,\n error\n };\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { Config, PlayerViewKey, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { PlayerOverlayButtons } from 'shared/components/player-overlay-buttons/PlayerOverlayButtons';\nimport { PreviewVideoDetails } from 'shared/components/preview-video-details/PreviewVideoDetails';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\ninterface ExchangePreviewViewProps extends PopupViewProps {\n videoId: string;\n currentTime: number;\n}\n\nexport function ExchangePreviewView(props: ExchangePreviewViewProps): JSX.Element {\n // const analyticsTracker = React.useRef<PlayerAnalyticsTracker>(null);\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.videoId, MediaIdType.MasterObject)\n );\n\n const videoActions = useGetExchangeActions('preview');\n useHandleDialogError(video.statusCode);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, true);\n\n // TODO: Solve analytics collection\n function onReady(player: PlayerReference): void {\n player;\n // setupAnalytics(player);\n }\n\n // function setupAnalytics(player: PlayerReference): void {\n // analyticsTracker.current = new PlayerAnalyticsTracker({\n // player,\n // video: props.video,\n // analyticsLocation: props.embed ?\n // LocationContext.EmbeddedPlayer :\n // LocationContext.PlayPage,\n // shareId: props.shareLink?.id\n // });\n // }\n\n function onClose(): void {\n props.closePopup();\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext?.appLink ?? {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n });\n clearPreviewContext();\n }\n\n const hasLoaded = (\n video.data &&\n config.hasCompleted &&\n viewKey.hasCompleted\n );\n\n return (\n <Popup\n title={video.data?.name}\n hideTitle\n closePopup={onClose}\n showLoadingSpinner={!hasLoaded}\n size='lg'\n bodyClassName='p-0 rounded-3 position-relative'\n >\n {hasLoaded &&\n <>\n <div className='overflow-hidden rounded-top-lg'>\n <ClickViewPlayer\n viewKey={viewKey.data.viewKey}\n playerApi={new URL(config.data.playerApiUrl)}\n autoplay\n hotkeyElQuerySelector='body'\n onReady={onReady}\n allowFullscreen={false}\n />\n </div>\n <PreviewVideoDetails\n video={video.data}\n title={video.data.name}\n description={video.data.description}\n videoActions={videoActions.getVideoActions(video.data)}\n />\n <PlayerOverlayButtons closePopup={onClose} />\n </>\n }\n </Popup>\n );\n}"],"names":["MediaIdType","PlayerRequests","mediaId","mediaIdType","shareContextId","success","error","data","HttpVerbs","ExchangePreviewView","props","video","Flight.useBasicFetch","VideoRequests","config","ConfigRequests","viewKey","videoActions","useGetExchangeActions","useHandleDialogError","previewContext","clearPreviewContext","usePreviewContext","onReady","player","onClose","ScrollHelper","Core.AppLinkHelper","AppChannels","Actions","hasLoaded","jsx","Popup","_a","jsxs","Fragment","ClickViewPlayer","PreviewVideoDetails","PlayerOverlayButtons"],"mappings":"+pCAAO,IAAKA,GAAAA,IACVA,EAAA,MAAQ,QACRA,EAAA,aAAe,eAFLA,IAAAA,GAAA,CAAA,CAAA,ECQL,MAAMC,EAAiB,CAC5B,cACEC,EACAC,EACAC,EACAC,EACAC,EACgB,CAChB,MAAMC,EAAmB,CACvB,QAASL,EAAQ,SAAA,EACjB,YAAAC,CAAA,EAGF,OAAIC,IACFG,EAAK,eAAiBH,GAEjB,CACL,IAAK,8BACL,IAAK,YAAYF,CAAO,IAAIC,CAAW,GACvC,KAAMK,EAAU,KAChB,KAAAD,EAIA,cAAe,MACf,QAAAF,EACA,MAAAC,CAAA,CAEJ,CACF,ECPO,SAASG,GAAoBC,EAA8C,OAEhF,MAAMC,EAAQC,EAA4BC,EAAc,MAAMH,EAAM,OAAO,CAAC,EACtEI,EAASF,EAA6BG,EAAe,QAAQ,EAC7DC,EAAUJ,EACdX,EAAe,cAAcS,EAAM,QAASV,EAAY,YAAY,CAAA,EAGhEiB,EAAeC,EAAsB,SAAS,EACpDC,EAAqBR,EAAM,UAAU,EAErC,KAAM,CAAE,eAAAS,EAAgB,oBAAAC,CAAA,EAAwBC,EAAkBZ,EAAM,QAAS,EAAI,EAGrF,SAASa,EAAQC,EAA+B,CAGhD,CAaA,SAASC,GAAgB,CACvBf,EAAM,WAAA,EAENgB,EAAa,iBAAA,EACbC,EAAmB,SAAQP,GAAA,YAAAA,EAAgB,UAAW,CACpD,YAAaQ,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,CAC1B,EACDR,EAAA,CACF,CAEA,MAAMS,EACJnB,EAAM,MACNG,EAAO,cACPE,EAAQ,aAGV,OACEe,EAAAA,IAACC,EAAA,CACC,OAAOC,EAAAtB,EAAM,OAAN,YAAAsB,EAAY,KACnB,UAAS,GACT,WAAYR,EACZ,mBAAoB,CAACK,EACrB,KAAK,KACL,cAAc,kCAEb,YACCI,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAJ,EAAAA,IAAC,MAAA,CAAI,UAAU,iCACb,SAAAA,EAAAA,IAACK,EAAA,CACC,QAASpB,EAAQ,KAAK,QACtB,UAAW,IAAI,IAAIF,EAAO,KAAK,YAAY,EAC3C,SAAQ,GACR,sBAAsB,OACtB,QAAAS,EACA,gBAAiB,EAAA,CAAA,EAErB,EACAQ,EAAAA,IAACM,EAAA,CACC,MAAO1B,EAAM,KACb,MAAOA,EAAM,KAAK,KAClB,YAAaA,EAAM,KAAK,YACxB,aAAcM,EAAa,gBAAgBN,EAAM,IAAI,CAAA,CAAA,EAEvDoB,EAAAA,IAACO,EAAA,CAAqB,WAAYb,CAAA,CAAS,CAAA,CAAA,CAC7C,CAAA,CAAA,CAIR"}
@@ -1,2 +1,2 @@
1
- import{r as i,d as n,j as x,f as c}from"./app-Det8y4U1.js";const m=i.forwardRef(({bsPrefix:t,size:r,vertical:o=!1,className:e,role:p="group",as:f="div",...u},l)=>{const s=n(t,"btn-group");let a=s;return o&&(a=`${s}-vertical`),x.jsx(f,{...u,ref:l,role:p,className:c(e,a,r&&`${s}-${r}`)})});m.displayName="ButtonGroup";export{m as B};
2
- //# sourceMappingURL=x8TB7tv6.chunk.js.map
1
+ import{r as i,d as n,j as x,f as c}from"./app-C2md4v6O.js";const m=i.forwardRef(({bsPrefix:t,size:r,vertical:o=!1,className:e,role:p="group",as:f="div",...u},l)=>{const s=n(t,"btn-group");let a=s;return o&&(a=`${s}-vertical`),x.jsx(f,{...u,ref:l,role:p,className:c(e,a,r&&`${s}-${r}`)})});m.displayName="ButtonGroup";export{m as B};
2
+ //# sourceMappingURL=B6WUgONl.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"x8TB7tv6.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/ButtonGroup.js"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ButtonGroup = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n vertical = false,\n className,\n role = 'group',\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...rest\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn-group');\n let baseClass = prefix;\n if (vertical) baseClass = `${prefix}-vertical`;\n return /*#__PURE__*/_jsx(Component, {\n ...rest,\n ref: ref,\n role: role,\n className: classNames(className, baseClass, size && `${prefix}-${size}`)\n });\n});\nButtonGroup.displayName = 'ButtonGroup';\nexport default ButtonGroup;"],"names":["ButtonGroup","React.forwardRef","bsPrefix","size","vertical","className","role","Component","rest","ref","prefix","useBootstrapPrefix","baseClass","_jsx","classNames"],"mappings":"2DAMK,MAACA,EAA2BC,EAAAA,WAAiB,CAAC,CACjD,SAAAC,EACA,KAAAC,EACA,SAAAC,EAAW,GACX,UAAAC,EACA,KAAAC,EAAO,QAEP,GAAIC,EAAY,MAChB,GAAGC,CACL,EAAGC,IAAQ,CACT,MAAMC,EAASC,EAAmBT,EAAU,WAAW,EACvD,IAAIU,EAAYF,EAChB,OAAIN,IAAUQ,EAAY,GAAGF,CAAM,aACfG,EAAAA,IAAKN,EAAW,CAClC,GAAGC,EACH,IAAKC,EACL,KAAMH,EACN,UAAWQ,EAAWT,EAAWO,EAAWT,GAAQ,GAAGO,CAAM,IAAIP,CAAI,EAAE,CAC3E,CAAG,CACH,CAAC,EACDH,EAAY,YAAc","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"B6WUgONl.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/ButtonGroup.js"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ButtonGroup = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n vertical = false,\n className,\n role = 'group',\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...rest\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn-group');\n let baseClass = prefix;\n if (vertical) baseClass = `${prefix}-vertical`;\n return /*#__PURE__*/_jsx(Component, {\n ...rest,\n ref: ref,\n role: role,\n className: classNames(className, baseClass, size && `${prefix}-${size}`)\n });\n});\nButtonGroup.displayName = 'ButtonGroup';\nexport default ButtonGroup;"],"names":["ButtonGroup","React.forwardRef","bsPrefix","size","vertical","className","role","Component","rest","ref","prefix","useBootstrapPrefix","baseClass","_jsx","classNames"],"mappings":"2DAMK,MAACA,EAA2BC,EAAAA,WAAiB,CAAC,CACjD,SAAAC,EACA,KAAAC,EACA,SAAAC,EAAW,GACX,UAAAC,EACA,KAAAC,EAAO,QAEP,GAAIC,EAAY,MAChB,GAAGC,CACL,EAAGC,IAAQ,CACT,MAAMC,EAASC,EAAmBT,EAAU,WAAW,EACvD,IAAIU,EAAYF,EAChB,OAAIN,IAAUQ,EAAY,GAAGF,CAAM,aACfG,EAAAA,IAAKN,EAAW,CAClC,GAAGC,EACH,IAAKC,EACL,KAAMH,EACN,UAAWQ,EAAWT,EAAWO,EAAWT,GAAQ,GAAGO,CAAM,IAAIP,CAAI,EAAE,CAC3E,CAAG,CACH,CAAC,EACDH,EAAY,YAAc","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{j as a}from"./app-Det8y4U1.js";function s(e){return a.jsx("span",{id:`${e.name}Error`,className:`${e.className} invalid-feedback d-block`,role:"status",children:e.children})}export{s as F};
2
- //# sourceMappingURL=1oBN4k-t.chunk.js.map
1
+ import{j as a}from"./app-C2md4v6O.js";function s(e){return a.jsx("span",{id:`${e.name}Error`,className:`${e.className} invalid-feedback d-block`,role:"status",children:e.children})}export{s as F};
2
+ //# sourceMappingURL=BDMJzZJS.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1oBN4k-t.chunk.js","sources":["../../../../libs/shared/src/components/forms/form-feedback/FormFeedback.tsx"],"sourcesContent":["import React from 'react';\n\ninterface FormFeedbackProps extends React.PropsWithChildren {\n name: string;\n className?: string;\n}\n\nexport function FormFeedback(props: FormFeedbackProps) {\n return (\n <span id={`${props.name}Error`} className={`${props.className} invalid-feedback d-block`} role='status'>{props.children}</span>\n );\n}"],"names":["FormFeedback","props","jsx"],"mappings":"sCAOO,SAASA,EAAaC,EAA0B,CACrD,OACEC,EAAAA,IAAC,OAAA,CAAK,GAAI,GAAGD,EAAM,IAAI,QAAS,UAAW,GAAGA,EAAM,SAAS,4BAA6B,KAAK,SAAU,WAAM,SAAS,CAE5H"}
1
+ {"version":3,"file":"BDMJzZJS.chunk.js","sources":["../../../../libs/shared/src/components/forms/form-feedback/FormFeedback.tsx"],"sourcesContent":["import React from 'react';\n\ninterface FormFeedbackProps extends React.PropsWithChildren {\n name: string;\n className?: string;\n}\n\nexport function FormFeedback(props: FormFeedbackProps) {\n return (\n <span id={`${props.name}Error`} className={`${props.className} invalid-feedback d-block`} role='status'>{props.children}</span>\n );\n}"],"names":["FormFeedback","props","jsx"],"mappings":"sCAOO,SAASA,EAAaC,EAA0B,CACrD,OACEC,EAAAA,IAAC,OAAA,CAAK,GAAI,GAAGD,EAAM,IAAI,QAAS,UAAW,GAAGA,EAAM,SAAS,4BAA6B,KAAK,SAAU,WAAM,SAAS,CAE5H"}