@clickview/exchange 0.54.0 → 0.54.1-dev.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 (192) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/en.json +1 -1
  3. package/dist/scripts/-rc15O6e.chunk.js +2 -0
  4. package/dist/scripts/{RR_Npo-u.chunk.js.map → -rc15O6e.chunk.js.map} +1 -1
  5. package/dist/scripts/{BMV1koDe.chunk.js → 8cN0DOAw.chunk.js} +2 -2
  6. package/dist/scripts/{BMV1koDe.chunk.js.map → 8cN0DOAw.chunk.js.map} +1 -1
  7. package/dist/scripts/{B4-7nU0g.chunk.js → 93Mytmux.chunk.js} +2 -2
  8. package/dist/scripts/{B4-7nU0g.chunk.js.map → 93Mytmux.chunk.js.map} +1 -1
  9. package/dist/scripts/{DH2yRBmA.chunk.js → 9YLXxYYH.chunk.js} +2 -2
  10. package/dist/scripts/{DH2yRBmA.chunk.js.map → 9YLXxYYH.chunk.js.map} +1 -1
  11. package/dist/scripts/{S8s7mgrG.chunk.js → B77TOWer.chunk.js} +2 -2
  12. package/dist/scripts/{S8s7mgrG.chunk.js.map → B77TOWer.chunk.js.map} +1 -1
  13. package/dist/scripts/{D5fWDfWb.chunk.js → BB_Ud-Dl.chunk.js} +2 -2
  14. package/dist/scripts/{D5fWDfWb.chunk.js.map → BB_Ud-Dl.chunk.js.map} +1 -1
  15. package/dist/scripts/{C7s6znQN.chunk.js → BCGCl500.chunk.js} +2 -2
  16. package/dist/scripts/{C7s6znQN.chunk.js.map → BCGCl500.chunk.js.map} +1 -1
  17. package/dist/scripts/{CZ0_WZo1.chunk.js → BEonThYO.chunk.js} +2 -2
  18. package/dist/scripts/{CZ0_WZo1.chunk.js.map → BEonThYO.chunk.js.map} +1 -1
  19. package/dist/scripts/{DfkRK80r.chunk.js → BFAbrH3V.chunk.js} +2 -2
  20. package/dist/scripts/{DfkRK80r.chunk.js.map → BFAbrH3V.chunk.js.map} +1 -1
  21. package/dist/scripts/{fG3bu7tL.chunk.js → BIciRJHg.chunk.js} +2 -2
  22. package/dist/scripts/{fG3bu7tL.chunk.js.map → BIciRJHg.chunk.js.map} +1 -1
  23. package/dist/scripts/{CDuLjvaV.chunk.js → BJX7CePa.chunk.js} +2 -2
  24. package/dist/scripts/{CDuLjvaV.chunk.js.map → BJX7CePa.chunk.js.map} +1 -1
  25. package/dist/scripts/{wE4X9qJj.chunk.js → BL0xk5Hs.chunk.js} +2 -2
  26. package/dist/scripts/{wE4X9qJj.chunk.js.map → BL0xk5Hs.chunk.js.map} +1 -1
  27. package/dist/scripts/{DKvNIqD3.chunk.js → BN_hH3oW.chunk.js} +2 -2
  28. package/dist/scripts/{DKvNIqD3.chunk.js.map → BN_hH3oW.chunk.js.map} +1 -1
  29. package/dist/scripts/{mj_NgNWo.chunk.js → BWmMHnFV.chunk.js} +2 -2
  30. package/dist/scripts/{mj_NgNWo.chunk.js.map → BWmMHnFV.chunk.js.map} +1 -1
  31. package/dist/scripts/{BHTzCeKb.chunk.js → BapvLPQ5.chunk.js} +2 -2
  32. package/dist/scripts/{BHTzCeKb.chunk.js.map → BapvLPQ5.chunk.js.map} +1 -1
  33. package/dist/scripts/{vQs65oQi.chunk.js → Bbc1-POn.chunk.js} +2 -2
  34. package/dist/scripts/{vQs65oQi.chunk.js.map → Bbc1-POn.chunk.js.map} +1 -1
  35. package/dist/scripts/{CSuv1QVm.chunk.js → Bel5ImAj.chunk.js} +2 -2
  36. package/dist/scripts/{CSuv1QVm.chunk.js.map → Bel5ImAj.chunk.js.map} +1 -1
  37. package/dist/scripts/{CiTtDJue.chunk.js → BfWmIKU0.chunk.js} +2 -2
  38. package/dist/scripts/{CiTtDJue.chunk.js.map → BfWmIKU0.chunk.js.map} +1 -1
  39. package/dist/scripts/{BO7wPiFy.chunk.js → BhJEiLr0.chunk.js} +2 -2
  40. package/dist/scripts/{BO7wPiFy.chunk.js.map → BhJEiLr0.chunk.js.map} +1 -1
  41. package/dist/scripts/{DHx8qw7h.chunk.js → Bi_rU-SG.chunk.js} +2 -2
  42. package/dist/scripts/{DHx8qw7h.chunk.js.map → Bi_rU-SG.chunk.js.map} +1 -1
  43. package/dist/scripts/BldjpTLL.chunk.js +2 -0
  44. package/dist/scripts/{BMOkpx9W.chunk.js.map → BldjpTLL.chunk.js.map} +1 -1
  45. package/dist/scripts/Bm0DywXr.chunk.js +2 -0
  46. package/dist/scripts/{kjcQ0DHK.chunk.js.map → Bm0DywXr.chunk.js.map} +1 -1
  47. package/dist/scripts/BpFMqrCw.chunk.js +2 -0
  48. package/dist/scripts/{D1kNrE2G.chunk.js.map → BpFMqrCw.chunk.js.map} +1 -1
  49. package/dist/scripts/{B2psHTnp.chunk.js → Bw042tZ_.chunk.js} +2 -2
  50. package/dist/scripts/{B2psHTnp.chunk.js.map → Bw042tZ_.chunk.js.map} +1 -1
  51. package/dist/scripts/{DMCTlX1N.chunk.js → ByCaE7oT.chunk.js} +2 -2
  52. package/dist/scripts/{DMCTlX1N.chunk.js.map → ByCaE7oT.chunk.js.map} +1 -1
  53. package/dist/scripts/{BTGAV-7R.chunk.js → BzJeV-bU.chunk.js} +2 -2
  54. package/dist/scripts/{BTGAV-7R.chunk.js.map → BzJeV-bU.chunk.js.map} +1 -1
  55. package/dist/scripts/{Ca7s6d3a.chunk.js → BzOUcl19.chunk.js} +2 -2
  56. package/dist/scripts/{Ca7s6d3a.chunk.js.map → BzOUcl19.chunk.js.map} +1 -1
  57. package/dist/scripts/{C_b02Pfv.chunk.js → C7x-ikz8.chunk.js} +2 -2
  58. package/dist/scripts/{C_b02Pfv.chunk.js.map → C7x-ikz8.chunk.js.map} +1 -1
  59. package/dist/scripts/{Bk6B0Pga.chunk.js → C8gLKdt2.chunk.js} +2 -2
  60. package/dist/scripts/{Bk6B0Pga.chunk.js.map → C8gLKdt2.chunk.js.map} +1 -1
  61. package/dist/scripts/{BNdvuAqI.chunk.js → CA1kXo4c.chunk.js} +2 -2
  62. package/dist/scripts/{BNdvuAqI.chunk.js.map → CA1kXo4c.chunk.js.map} +1 -1
  63. package/dist/scripts/{2RtgJciS.chunk.js → CBpplRfy.chunk.js} +2 -2
  64. package/dist/scripts/{2RtgJciS.chunk.js.map → CBpplRfy.chunk.js.map} +1 -1
  65. package/dist/scripts/{CwGJynkF.chunk.js → CFHfdzmN.chunk.js} +2 -2
  66. package/dist/scripts/{CwGJynkF.chunk.js.map → CFHfdzmN.chunk.js.map} +1 -1
  67. package/dist/scripts/{DtIAQEde.chunk.js → CI1-zjtc.chunk.js} +2 -2
  68. package/dist/scripts/{DtIAQEde.chunk.js.map → CI1-zjtc.chunk.js.map} +1 -1
  69. package/dist/scripts/{CaXurNVJ.chunk.js → CLeOFM0_.chunk.js} +2 -2
  70. package/dist/scripts/{CaXurNVJ.chunk.js.map → CLeOFM0_.chunk.js.map} +1 -1
  71. package/dist/scripts/{CfG52a2J.chunk.js → CLzmMPfE.chunk.js} +2 -2
  72. package/dist/scripts/{CfG52a2J.chunk.js.map → CLzmMPfE.chunk.js.map} +1 -1
  73. package/dist/scripts/{BeYBU_45.chunk.js → CMVCOZiH.chunk.js} +2 -2
  74. package/dist/scripts/{BeYBU_45.chunk.js.map → CMVCOZiH.chunk.js.map} +1 -1
  75. package/dist/scripts/{-IJi77po.chunk.js → CRiSdltq.chunk.js} +2 -2
  76. package/dist/scripts/{-IJi77po.chunk.js.map → CRiSdltq.chunk.js.map} +1 -1
  77. package/dist/scripts/{C6Lm5-pG.chunk.js → CUcESh7x.chunk.js} +2 -2
  78. package/dist/scripts/{C6Lm5-pG.chunk.js.map → CUcESh7x.chunk.js.map} +1 -1
  79. package/dist/scripts/{BVtgkXbb.chunk.js → CWEHmLar.chunk.js} +2 -2
  80. package/dist/scripts/{BVtgkXbb.chunk.js.map → CWEHmLar.chunk.js.map} +1 -1
  81. package/dist/scripts/{BknFbNFb.chunk.js → CYnIJ9Yj.chunk.js} +2 -2
  82. package/dist/scripts/{BknFbNFb.chunk.js.map → CYnIJ9Yj.chunk.js.map} +1 -1
  83. package/dist/scripts/{BM1pKS1x.chunk.js → CeNnu9Uy.chunk.js} +2 -2
  84. package/dist/scripts/{BM1pKS1x.chunk.js.map → CeNnu9Uy.chunk.js.map} +1 -1
  85. package/dist/scripts/{C_N8YDNG.chunk.js → CeWNxrfN.chunk.js} +2 -2
  86. package/dist/scripts/{C_N8YDNG.chunk.js.map → CeWNxrfN.chunk.js.map} +1 -1
  87. package/dist/scripts/{CIC6c94H.chunk.js → Cf7gumlK.chunk.js} +2 -2
  88. package/dist/scripts/{CIC6c94H.chunk.js.map → Cf7gumlK.chunk.js.map} +1 -1
  89. package/dist/scripts/{BeUtct-n.chunk.js → CgYXk-MC.chunk.js} +2 -2
  90. package/dist/scripts/{BeUtct-n.chunk.js.map → CgYXk-MC.chunk.js.map} +1 -1
  91. package/dist/scripts/{CZWyo3vU.chunk.js → ChQd3LFA.chunk.js} +2 -2
  92. package/dist/scripts/{CZWyo3vU.chunk.js.map → ChQd3LFA.chunk.js.map} +1 -1
  93. package/dist/scripts/{Cvh5d6g-.chunk.js → CidOInHw.chunk.js} +2 -2
  94. package/dist/scripts/{Cvh5d6g-.chunk.js.map → CidOInHw.chunk.js.map} +1 -1
  95. package/dist/scripts/{KD76wo2O.chunk.js → CjZVCWS_.chunk.js} +2 -2
  96. package/dist/scripts/{KD76wo2O.chunk.js.map → CjZVCWS_.chunk.js.map} +1 -1
  97. package/dist/scripts/{DllPblbJ.chunk.js → CmFgCSCA.chunk.js} +2 -2
  98. package/dist/scripts/{DllPblbJ.chunk.js.map → CmFgCSCA.chunk.js.map} +1 -1
  99. package/dist/scripts/{D2hwqbbK.chunk.js → CzgpQODl.chunk.js} +2 -2
  100. package/dist/scripts/{D2hwqbbK.chunk.js.map → CzgpQODl.chunk.js.map} +1 -1
  101. package/dist/scripts/{BZDBKDNB.chunk.js → D1uOyG2F.chunk.js} +2 -2
  102. package/dist/scripts/{BZDBKDNB.chunk.js.map → D1uOyG2F.chunk.js.map} +1 -1
  103. package/dist/scripts/D2Qdtc-z.chunk.js +2 -0
  104. package/dist/scripts/{Nx5VrW1O.chunk.js.map → D2Qdtc-z.chunk.js.map} +1 -1
  105. package/dist/scripts/{CvC-3rY8.chunk.js → D6Y1z38S.chunk.js} +2 -2
  106. package/dist/scripts/{CvC-3rY8.chunk.js.map → D6Y1z38S.chunk.js.map} +1 -1
  107. package/dist/scripts/{DVGSZWvj.chunk.js → DAYsHx3K.chunk.js} +2 -2
  108. package/dist/scripts/{DVGSZWvj.chunk.js.map → DAYsHx3K.chunk.js.map} +1 -1
  109. package/dist/scripts/DAlXOlyw.chunk.js +2 -0
  110. package/dist/scripts/{PTNYkU4e.chunk.js.map → DAlXOlyw.chunk.js.map} +1 -1
  111. package/dist/scripts/{C6jzSlOK.chunk.js → DBXgmgfs.chunk.js} +2 -2
  112. package/dist/scripts/{C6jzSlOK.chunk.js.map → DBXgmgfs.chunk.js.map} +1 -1
  113. package/dist/scripts/{DNv0G8YQ.chunk.js → DFV1HGGE.chunk.js} +2 -2
  114. package/dist/scripts/{DNv0G8YQ.chunk.js.map → DFV1HGGE.chunk.js.map} +1 -1
  115. package/dist/scripts/{BaII1chU.chunk.js → DKgBjNhk.chunk.js} +2 -2
  116. package/dist/scripts/{BaII1chU.chunk.js.map → DKgBjNhk.chunk.js.map} +1 -1
  117. package/dist/scripts/{6nLsdj_T.chunk.js → DNamqvBL.chunk.js} +2 -2
  118. package/dist/scripts/{6nLsdj_T.chunk.js.map → DNamqvBL.chunk.js.map} +1 -1
  119. package/dist/scripts/{BoCJPJD9.chunk.js → DS9FoZYs.chunk.js} +2 -2
  120. package/dist/scripts/{BoCJPJD9.chunk.js.map → DS9FoZYs.chunk.js.map} +1 -1
  121. package/dist/scripts/{BARMSVib.chunk.js → DU7fsRWl.chunk.js} +2 -2
  122. package/dist/scripts/{BARMSVib.chunk.js.map → DU7fsRWl.chunk.js.map} +1 -1
  123. package/dist/scripts/{yAkKLflS.chunk.js → DXukh64m.chunk.js} +2 -2
  124. package/dist/scripts/{yAkKLflS.chunk.js.map → DXukh64m.chunk.js.map} +1 -1
  125. package/dist/scripts/{QBPzgKy4.chunk.js → D_UfRtxO.chunk.js} +2 -2
  126. package/dist/scripts/{QBPzgKy4.chunk.js.map → D_UfRtxO.chunk.js.map} +1 -1
  127. package/dist/scripts/{DPzpHWBx.chunk.js → Da4lOHud.chunk.js} +2 -2
  128. package/dist/scripts/{DPzpHWBx.chunk.js.map → Da4lOHud.chunk.js.map} +1 -1
  129. package/dist/scripts/{RFnuS4NM.chunk.js → DbQAirTe.chunk.js} +2 -2
  130. package/dist/scripts/{RFnuS4NM.chunk.js.map → DbQAirTe.chunk.js.map} +1 -1
  131. package/dist/scripts/{wrxKHqa_.chunk.js → DbjqMrGm.chunk.js} +2 -2
  132. package/dist/scripts/{wrxKHqa_.chunk.js.map → DbjqMrGm.chunk.js.map} +1 -1
  133. package/dist/scripts/{DW6Dbl7f.chunk.js → DiYMwIEW.chunk.js} +2 -2
  134. package/dist/scripts/{DW6Dbl7f.chunk.js.map → DiYMwIEW.chunk.js.map} +1 -1
  135. package/dist/scripts/{ZQ2N8RIM.chunk.js → DjZMDa7F.chunk.js} +2 -2
  136. package/dist/scripts/{ZQ2N8RIM.chunk.js.map → DjZMDa7F.chunk.js.map} +1 -1
  137. package/dist/scripts/{D0g725Qb.chunk.js → DmsvtP5R.chunk.js} +2 -2
  138. package/dist/scripts/{D0g725Qb.chunk.js.map → DmsvtP5R.chunk.js.map} +1 -1
  139. package/dist/scripts/{BVFJa4eN.chunk.js → Du1vfrL1.chunk.js} +2 -2
  140. package/dist/scripts/{BVFJa4eN.chunk.js.map → Du1vfrL1.chunk.js.map} +1 -1
  141. package/dist/scripts/{BIM7E_uq.chunk.js → HgZI7ZJw.chunk.js} +2 -2
  142. package/dist/scripts/{BIM7E_uq.chunk.js.map → HgZI7ZJw.chunk.js.map} +1 -1
  143. package/dist/scripts/{De6u_51f.chunk.js → Idf_wk4z.chunk.js} +2 -2
  144. package/dist/scripts/{De6u_51f.chunk.js.map → Idf_wk4z.chunk.js.map} +1 -1
  145. package/dist/scripts/{BzWiry9B.chunk.js → IoMSsrGB.chunk.js} +2 -2
  146. package/dist/scripts/{BzWiry9B.chunk.js.map → IoMSsrGB.chunk.js.map} +1 -1
  147. package/dist/scripts/{BOgut51m.chunk.js → JVtTNBu8.chunk.js} +2 -2
  148. package/dist/scripts/{BOgut51m.chunk.js.map → JVtTNBu8.chunk.js.map} +1 -1
  149. package/dist/scripts/{B6MzAKwF.chunk.js → Jh9dsBNz.chunk.js} +2 -2
  150. package/dist/scripts/{B6MzAKwF.chunk.js.map → Jh9dsBNz.chunk.js.map} +1 -1
  151. package/dist/scripts/{C3DMM71j.chunk.js → L4fynSOH.chunk.js} +2 -2
  152. package/dist/scripts/{C3DMM71j.chunk.js.map → L4fynSOH.chunk.js.map} +1 -1
  153. package/dist/scripts/{DcNBkQk2.chunk.js → L8c9vJSE.chunk.js} +2 -2
  154. package/dist/scripts/{DcNBkQk2.chunk.js.map → L8c9vJSE.chunk.js.map} +1 -1
  155. package/dist/scripts/{RkGsyr47.chunk.js → LSG3wJaJ.chunk.js} +2 -2
  156. package/dist/scripts/{RkGsyr47.chunk.js.map → LSG3wJaJ.chunk.js.map} +1 -1
  157. package/dist/scripts/{BBGrb01P.chunk.js → Nb05HQ70.chunk.js} +2 -2
  158. package/dist/scripts/{BBGrb01P.chunk.js.map → Nb05HQ70.chunk.js.map} +1 -1
  159. package/dist/scripts/{D7ex9pZI.chunk.js → NnLpFayg.chunk.js} +2 -2
  160. package/dist/scripts/{D7ex9pZI.chunk.js.map → NnLpFayg.chunk.js.map} +1 -1
  161. package/dist/scripts/{BObzbMyv.chunk.js → TBgyZjiu.chunk.js} +2 -2
  162. package/dist/scripts/{BObzbMyv.chunk.js.map → TBgyZjiu.chunk.js.map} +1 -1
  163. package/dist/scripts/UAhbVZA6.chunk.js +2 -0
  164. package/dist/scripts/{Cusf4uQr.chunk.js.map → UAhbVZA6.chunk.js.map} +1 -1
  165. package/dist/scripts/{EP_6ctCd.chunk.js → UPyh9hOq.chunk.js} +2 -2
  166. package/dist/scripts/{EP_6ctCd.chunk.js.map → UPyh9hOq.chunk.js.map} +1 -1
  167. package/dist/scripts/{5ulU64GY.chunk.js → aUcmweZz.chunk.js} +2 -2
  168. package/dist/scripts/{5ulU64GY.chunk.js.map → aUcmweZz.chunk.js.map} +1 -1
  169. package/dist/scripts/{BIqgfuNp.chunk.js → afx3pyqK.chunk.js} +2 -2
  170. package/dist/scripts/{BIqgfuNp.chunk.js.map → afx3pyqK.chunk.js.map} +1 -1
  171. package/dist/scripts/{app-BeXfSt3Z.js → app-DQUfzK7M.js} +3 -3
  172. package/dist/scripts/{app-BeXfSt3Z.js.map → app-DQUfzK7M.js.map} +1 -1
  173. package/dist/scripts/{DGZafYHS.chunk.js → ebPScdjM.chunk.js} +2 -2
  174. package/dist/scripts/{DGZafYHS.chunk.js.map → ebPScdjM.chunk.js.map} +1 -1
  175. package/dist/scripts/{kIpQ7ATK.chunk.js → exCRX_FQ.chunk.js} +2 -2
  176. package/dist/scripts/{kIpQ7ATK.chunk.js.map → exCRX_FQ.chunk.js.map} +1 -1
  177. package/dist/scripts/{B_RnEy2g.chunk.js → g-ukO43h.chunk.js} +2 -2
  178. package/dist/scripts/{B_RnEy2g.chunk.js.map → g-ukO43h.chunk.js.map} +1 -1
  179. package/dist/scripts/{DSjj9Urk.chunk.js → rV0ZG7Fa.chunk.js} +2 -2
  180. package/dist/scripts/{DSjj9Urk.chunk.js.map → rV0ZG7Fa.chunk.js.map} +1 -1
  181. package/dist/scripts/{CuymzQcn.chunk.js → rY6Lh6jX.chunk.js} +2 -2
  182. package/dist/scripts/{CuymzQcn.chunk.js.map → rY6Lh6jX.chunk.js.map} +1 -1
  183. package/dist/scripts/{DyEyo6rX.chunk.js → uJkDFf2N.chunk.js} +2 -2
  184. package/dist/scripts/{DyEyo6rX.chunk.js.map → uJkDFf2N.chunk.js.map} +1 -1
  185. package/package.json +1 -1
  186. package/dist/scripts/BMOkpx9W.chunk.js +0 -2
  187. package/dist/scripts/Cusf4uQr.chunk.js +0 -2
  188. package/dist/scripts/D1kNrE2G.chunk.js +0 -2
  189. package/dist/scripts/Nx5VrW1O.chunk.js +0 -2
  190. package/dist/scripts/PTNYkU4e.chunk.js +0 -2
  191. package/dist/scripts/RR_Npo-u.chunk.js +0 -2
  192. package/dist/scripts/kjcQ0DHK.chunk.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"De6u_51f.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":"Idf_wk4z.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":"4wBASA,MAAMA,EAAY,0BACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,IAAyB,CACvC,MAAMC,EAAcC,EAAA,EAEpB,SAASC,EAAeC,EAAgB,CACtCH,EAAY,cAAc,aAAcG,CAAM,CAChD,CAEA,SAASC,GAA0B,CACjC,MAAO,CACLP,EAAU,gBAAgB,EAC1BA,EAAU,aAAa,EACvBA,EAAU,WAAW,EACrBA,EAAU,WAAW,EACrBA,EAAU,gBAAgB,EAC1BA,EAAU,OAAO,EACjBA,EAAU,OAAO,CAAA,CAErB,CAEA,OACEQ,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAA,EAAAA,KAAC,QAAA,CAAM,UAAU,aACf,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAA,UAAKX,EAAsB,OAAO,wBAAA,CAAyB,EAC5DU,EAAAA,IAAC,OAAA,CAAK,UAAU,cAAc,SAAA,GAAA,CAAC,CAAA,EACjC,EACCF,EAAA,EAA0B,IAAI,CAACD,EAAQK,IACtCF,EAAAA,IAACG,EAAK,MAAL,CACC,KAAK,QAEL,MAAON,EACP,KAAMA,EACN,GAAI,QAAQK,CAAK,GACjB,SAAU,IAAMN,EAAeC,CAAM,EACrC,QAASH,EAAY,OAAO,aAAeG,EAC3C,UAAU,MAAA,EANLK,CAAA,CAQR,CAAA,EACH,CAEJ,CCxCA,MAAMZ,EAAY,yBAOX,SAASc,GAA0BC,EAAuC,CAC/E,MAAMX,EAAcC,EAAA,EAEd,CAAEW,EAAgBC,CAAkB,EAAIC,EAAM,SAAA,EAC9C,CAAEC,EAAiBC,CAAmB,EAAIF,EAAM,SAAkB,EAAK,EAE7E,SAASG,EAAeC,EAAgB,CACtC,MAAMH,GAAkBf,GAAA,YAAAA,EAAa,OAAO,WAAYW,EAAM,gBAAkBO,EAAO,KACvFlB,EAAY,cAAc,aAAee,EAAgC,GAAdG,EAAO,IAAS,EAC3EL,EAAkBK,CAAM,EACxBF,EAAmBD,CAAe,CACpC,CAEA,OACEV,EAAAA,KAAC,MAAA,CAAI,UAAU,aACb,SAAA,CAAAC,EAAAA,IAAC,QAAA,CAAM,UAAU,aAAa,SAAAA,EAAAA,IAACC,aAAKX,EAAsB,OAAO,eAAe,CAAA,CAAE,EAClFU,EAAAA,IAAC,MAAA,CAAI,mBAAiB,yBACpB,eAACa,GAAA,CACE,SAAAR,EAAM,QAAQ,IAAIO,GACjBZ,EAAAA,IAACc,EAAA,CAA0B,QAAS,IAAMH,EAAeC,CAAM,EAAG,UAAW,OAAOA,EAAO,MAAON,GAAA,YAAAA,EAAgB,IAAK,WAAa,kBAAkB,GACnJ,SAAAM,EAAO,IAAA,EADMA,EAAO,EAEvB,CACD,EACH,EACF,EACCH,GAAmBT,EAAAA,IAACe,EAAA,CAAa,KAAK,oBAAoB,eAACd,EAAA,CAAA,UAAKX,EAAsB,OAAO,aAAA,CAAc,CAAA,CAAE,CAAA,EAChH,CAEJ,CC1CA,MAAMA,GAAY,+BACZC,EAAYC,EAAgB,iBAAiBF,EAAS,EAErD,SAAS0B,IAAwB,CACtC,OAAOC,EAAAA,OAAA,EAAS,MAAM,CACpB,SAAUC,EAAAA,OAAA,EAAS,SAAU3B,EAAU,UAAU,CAAE,EACnD,OAAQ2B,EAAAA,OAAA,EAAS,KAAK,WAAY,CAChC,MAAqBC,IAAkB,cACvC,KAAMD,EAAAA,OAAA,EAAS,YAAA,EACf,UAAWA,EAAAA,OAAA,EAAS,SAAS3B,EAAU,QAAQ,CAAC,CAAA,CACjD,EACD,WAAY2B,EAAAA,OAAA,EAAS,SAAS3B,EAAU,YAAY,CAAC,EACrD,aAAc2B,EAAAA,OAAA,CAAO,CACtB,CACH,CCUO,MAAME,EAAiC,CAC5C,WAAY,CACV,KAAM,cACN,SAAU,MAAA,EAEZ,YAAa,CACX,KAAM,cACN,SAAU,aAAA,EAEZ,OAAQ,CACN,KAAM,SACN,SAAU,aAAA,EAEZ,YAAa,CACX,KAAM,eACN,SAAU,aAAA,EAEZ,OAAQ,CACN,KAAM,gBACN,SAAU,eAAA,EAEZ,cAAe,CACb,KAAM,iBACN,SAAU,eAAA,EAEZ,cAAe,CACb,KAAM,iBACN,SAAU,eAAA,EAEZ,QAAS,CACP,KAAM,UACN,SAAU,cAAA,EAEZ,eAAgB,CACd,KAAM,kBACN,SAAU,gBAAA,EAEZ,aAAc,CACZ,KAAM,eACN,SAAU,eACV,WAAY,EAAA,EAEd,oBAAqB,CACnB,KAAM,uBACN,SAAU,sBACV,WAAY,EAAA,EAEd,UAAW,CACT,KAAM,YACN,SAAU,YACV,WAAY,EAAA,EAEd,UAAW,CACT,KAAM,YACN,SAAU,YACV,WAAY,EAAA,EAEd,YAAa,CACX,KAAM,kBAAA,EAER,MAAO,CACL,KAAM,OAAA,CAEV,ECvEM9B,EAAY,yBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtD+B,GAAiB,CACrB,SAAU,GACV,WAAY,GACZ,OAAQ,GACR,aAAc,EAChB,EAYA,SAASC,GAAgBjB,EAA6B,SACpD,MAAMkB,GAAUC,EAAAnB,EAAM,UAAN,YAAAmB,EAAe,OAAOZ,GAAUA,EAAO,MACjDlB,EAAcC,EAAA,EAEd,CAAE8B,EAAeC,CAAiB,EAAIlB,EAAM,SAAA,EAE5CmB,EAAWjC,GAAA,YAAAA,EAAa,OAAO,SAErCc,EAAM,UAAU,IAAM,CACpB,MAAMiB,EAAgBG,EAAA,EACtBlC,EAAY,UAAU,CACpB,SAAUiC,EACV,OAAQ,GACR,WAAY,GACZ,aAAcF,GAAiB,EAAA,CAChC,EACD/B,EAAY,WAAW,EAAE,EACzBgC,EAAiBD,CAAa,CAChC,EAAG,CAACE,CAAQ,CAAC,EAEb,SAASC,GAA2B,CAClC,MAAMC,EAAeT,EAAcO,CAAQ,EAE3C,GAAI,CAACE,GAAgB,CAACA,EAAa,SACjC,OAAO,KAET,IAAIC,EAAeC,EAAI1B,EAAM,MAAOwB,EAAa,QAAQ,EAEzD,GAAI,CAACC,GAAiBD,EAAa,YAAc,CAACC,EAAa,KAAK,OAClE,OAAOvC,EAAU,MAAM,EAMzB,OAJIsC,EAAa,aACfC,EAAgBA,EAAa,KAAsB,IAAIE,GAAOA,EAAI,IAAI,EAAE,KAAK,IAAI,GAG3EL,EAAA,CACN,IAAK,gBACH,OAAOM,EAAW,OAAOH,EAAc,aAAa,EACtD,QACE,OAAOA,CAAA,CAEb,CAEA,cACG3B,EAAA,CACC,SAAA,CAAAJ,EAAAA,KAACmC,EAAA,CACC,GAAG,SACH,MAAO3C,EAAU,eAAe,EAChC,GAAG,WACH,KAAK,WACL,MAAOoC,EACP,UAAU,kBACV,iBAAgB,GAEhB,SAAA,CAAA3B,MAAC,SAAA,CAAO,MAAM,GAAI,SAAAT,EAAU,qBAAqB,EAAE,EAClD,OAAO,KAAK6B,CAAa,EAAE,IAAI,CAACO,EAAUzB,IACzCF,MAAC,SAAA,CAAmB,MAAO2B,EACxB,SAAAP,EAAcO,CAAsC,EAAE,IAAA,EAD5CzB,CAEb,CACD,CAAA,CAAA,CAAA,EAGFyB,GACC5B,EAAAA,KAAAoC,WAAA,CACG,SAAA,CAAAV,GACC1B,EAAAA,KAAAoC,WAAA,CACE,SAAA,CAAApC,EAAAA,KAAC,IAAA,CAAE,UAAU,mBACX,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAA,UAAKX,EAAsB,OAAO,mBAAA,CAAoB,EAAE,IAACU,EAAAA,IAAC,OAAA,CAAM,UAAAoC,EAAAhB,EAAcO,CAA2B,IAAzC,YAAAS,EAA4C,IAAA,CAAK,CAAA,EACpH,EACApC,EAAAA,IAAC,KAAG,SAAAyB,CAAA,CAAc,CAAA,EACpB,EAGDE,IAAa,UAAY3B,EAAAA,IAACI,GAAA,CAA0B,QAAAmB,EAAkB,cAAAE,EAA8B,EACpGE,IAAa,eAAiB3B,MAACP,GAAA,CAAA,CAAuB,EACtDkC,IAAa,UAAYA,IAAa,eACrC3B,EAAAA,IAACkC,EAAA,CACC,MAAO3C,EAAU,cAAc,EAC/B,YAAaA,EAAU,oBAAoB,EAC3C,KAAK,OACL,GAAG,aACH,KAAK,aACL,MAAOG,GAAA,YAAAA,EAAa,OAAO,WAC3B,iBAAgB,EAAA,CAAA,EAKlBiC,IAAa,cACX3B,EAAAA,IAACkC,EAAA,CACC,MAAO3C,EAAU,0BAA0B,EAC3C,YAAaA,EAAU,gCAAgC,EACvD,KAAK,OACL,GAAG,SACH,KAAK,SACL,MAAOG,GAAA,YAAAA,EAAa,OAAO,MAAA,CAAA,EAG7BM,EAAAA,IAACkC,EAAA,CACC,MAAO3C,EAAU,aAAa,EAC9B,YAAaA,EAAU,mBAAmB,EAC1C,KAAK,OACL,GAAG,SACH,KAAK,SACL,MAAOG,GAAA,YAAAA,EAAa,OAAO,OAC3B,iBAAgB,EAAA,CAAA,CAClB,EAGN,SAGD2C,EAAA,CACC,SAAA,CAAArC,EAAAA,IAACqC,EAAa,OAAb,CACC,KAAM9C,EAAU,QAAQ,EACxB,QAASc,EAAM,WACf,QAAQ,MAAA,CAAA,QAETiC,EAAA,CAAY,QAAQ,OAAO,WAAY/C,EAAU,QAAQ,CAAA,CAAG,CAAA,CAAA,CAC/D,CAAA,EACF,CAEJ,CAEO,SAASgD,GAAuBlC,EAA6B,CAClE,OACEL,EAAAA,IAACwC,EAAA,CACC,cAAenB,GACf,iBAAkBL,GAAA,EAClB,SAAUX,EAAM,cAEhB,SAAAL,EAAAA,IAACsB,GAAA,CAAiB,GAAGjB,CAAA,CAAO,CAAA,CAAA,CAGlC,CCpJA,MAAMf,EAAY,uBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASmD,GAAwBpC,EAAiC,CACvE,MAAMqC,EAAaC,EAAO,EACpBC,EAASC,GAAA,EAET,CAAE,QAAAC,EAAS,0BAAAC,CAAA,EAA8BC,GAAA,EAEzCC,EAASC,EAA6BC,EAAe,QAAQ,EAC7DC,EAAcF,EAAkCG,EAAa,aAAa,EAC1EC,EAAQJ,EAA4BK,GAAc,MAAMlD,EAAM,OAAO,CAAC,EACtEkB,EAAU2B,EAA+BM,GAAe,SAAS,EAEjE,CAAE,eAAAC,EAAgB,oBAAAC,CAAA,EAAwBC,GAAkBtD,EAAM,QAAS,EAAK,EAEtF,eAAeuD,EACbC,EACAC,EACA,CACA,GAAI,CACF,MAAMpB,EAAWqB,GAAiB,YAAYT,EAAM,KAAK,GAAIO,CAAM,CAAC,EACpEjB,EAAO,QAAQrD,EAAU,SAAS,CAAC,EACnCyE,EAAA,EAEAC,EAAgB,cACd,CAAE,GAAIX,EAAM,KAAK,GAAI,KAAMA,EAAM,KAAK,IAAA,EACtC,CACE,WAAYY,EAAW,OACvB,OAAQC,EAAW,MACnB,WAAYC,EAAsB,YAClC,SAAUC,EAAgB,MAC1B,cAAeC,EAAc,QAAA,CAC/B,CAEJ,OAASC,EAAK,CACZxB,EAA0BwB,EAAKhF,EAAU,OAAO,EAAGA,EAAU,cAAc,CAAC,CAC9E,QAAA,CACEuE,EAAA,CACF,CACF,CAOA,SAASE,GAAmB,CAC1B3D,EAAM,WAAA,EAEDoD,GAAA,MAAAA,EAAgB,UAGrBe,EAAa,iBAAA,EACbC,EAAmB,QAAQhB,EAAe,OAAO,EACjDC,EAAA,EACF,CASA,OANET,EAAO,cACPG,EAAY,cACZE,EAAM,cACN/B,EAAQ,aAQRxB,EAAAA,KAAC2E,EAAA,CACC,MAAOnF,EAAU,OAAO,EACxB,WAAAyE,EACA,mBAAoBlB,EAEpB,SAAA,CAAA9C,EAAAA,IAAC,KAAE,SAAAA,MAACC,EAAA,CAAK,UAAAX,EAAsB,OAAO,cAAc,EAAE,EAEtDU,EAAAA,IAACuC,GAAA,CACC,MAAOe,EAAM,KACb,QAAS/B,EAAQ,KACjB,WAAAyC,EACA,cAAAJ,CAAA,CAAA,CACF,CAAA,CAAA,EAhBK5D,EAAAA,IAAAmC,EAAAA,SAAA,EAAE,CAmBb"}
@@ -1,2 +1,2 @@
1
- import{j as e,w as O,a2 as G,a3 as g,a5 as L,A as b,a as j,b as F,aR as v,L as B,bK as R,ab as V,ac as U,ad as _,aS as w,ae as I,af as C,R as H,am as M,P as Y,B as u,x as k}from"./app-BeXfSt3Z.js";import{u as J}from"./D1kNrE2G.chunk.js";import{T as m,a as Q}from"./BM1pKS1x.chunk.js";import{u as W}from"./BOgut51m.chunk.js";const z="_selected_ii58d_1",K="_disabled_ii58d_4",$={selected:z,disabled:K};function P(a){var i,d,A,t;function n(){var s;(s=a.option)!=null&&s.disabled||a.onSelect(a.option)}let r="text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50";return a.selected&&(r+=` border-info ${$.selected}`),(i=a.option)!=null&&i.disabled&&(r+=` ${$.disabled}`),e.jsxs(O,{onClick:n,className:r,children:[((d=a.option)==null?void 0:d.imageUrl)&&e.jsx("img",{src:a.option.imageUrl,className:`img-fluid my-3 ${a.option.imageClassName??""}`,draggable:!1}),((A=a.option)==null?void 0:A.title)&&e.jsx("h2",{className:"h3",children:a.option.title}),((t=a.option)==null?void 0:t.description)&&e.jsx("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:a.option.description}}),a.children]})}const X="tv.addRequests",p=B.encloseNamespace(X);function Z(a,n){const r=G(),i=W(),d=g(L.currentUser()),A=g(L.workspace()),t=g(m.program(a)),s=g(m.region(n)),l=g(t.data&&d.data&&m.workspaceVideo(t.data.id,d.data.id,d.data.customerId));async function N(){var c;try{await r(m.createAdFreeRequest({programId:t.data.id,regionCode:s.data.code,userId:d.data.id,customerId:d.data.customerId})),i.success({heading:R.Success,message:p("requestAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.AD_FREE_REQUEST,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AdFreeRequest,location:_.Popup,workflowPhase:U.Complete})}catch(D){const T=(c=D.responseJSON)==null?void 0:c.message;if(T){const S=JSON.parse(T);i.error(p(S.Type,{video:t.data.title}))}else i.error(p("error"))}}async function y(){if(l.data.exists&&l.data.hasAdFree){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={id:t.data.id,userId:d.data.id,customerId:d.data.customerId};await r(m.addAdFreeVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddAdFreeVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}async function E(){if(l.data.exists){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={userId:d.data.id,customerId:d.data.customerId,globalId:t.data.globalId,libraryId:A.data.id};await r(m.addFullVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addFullSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddFullVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}return{requestAdFreeVideo:N,addAdFreeVideo:y,addFullVideo:E}}const ee="_circle_1yxtg_1",ae={circle:ee},o="tv.add",q=B.encloseNamespace(o),x={id:"ad-free",title:"adFreeTitle",description:"adFreeDescription",imageUrl:M.General.MOUNTAINS_FRAMED},f={id:"request-ad-free",title:"adFreeTitle",imageUrl:M.General.MOUNTAINS_FRAMED},h={id:"full-video",title:"fullVideoTitle",description:"fullVideoDescription",imageUrl:M.General.ANNOUNCEMENT_FRAMED};function re(a){const n=g(L.currentUser()),r=g(m.program(a.id)),i=g(n.data&&m.adFreeCredits(n.data.id,n.data.customerId,a.region)),{requestAdFreeVideo:d,addAdFreeVideo:A,addFullVideo:t}=Z(a.id,a.region);J(r.statusCode);const[s,l]=H.useState(null),N=!Number.isNaN(a.currentTime);function y(){s&&(s.id===h.id&&t(),s.id===x.id&&A(),s.id===f.id&&d())}function E(){if(!N){a.closePopup();return}b.trigger({application:F.TV,action:j.Tv.PREVIEW,args:[a.region,r.data.id],params:{currentTime:a.currentTime}})}const c=i.data&&i.data.userRequests<i.data.maxAvailableCredit,D=i.data&&i.data.maxAvailableCredit-i.data.userRequests;H.useEffect(()=>{i.hasCompleted&&(c||l(h))},[i,c]);const T=n.hasCompleted&&r.hasCompleted&&i.hasCompleted,S=(s==null?void 0:s.id)===f.id&&Q.isHolidayPeriod();return e.jsxs(Y,{size:"lg",title:q("title"),showLoadingSpinner:!T,closePopup:a.closePopup,children:[T&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"d-flex mb-3 mx-n2",children:[r.data.hasAdsFree&&e.jsxs(P,{option:{id:x.id},onSelect:l,selected:(s==null?void 0:s.id)===x.id,children:[e.jsx("img",{src:x.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:x.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:x.description})})]}),!r.data.hasAdsFree&&e.jsxs(P,{option:{id:f.id,disabled:!c},onSelect:l,selected:(s==null?void 0:s.id)===f.id,children:[e.jsx("img",{src:f.imageUrl,className:"img-fluid",draggable:!1}),e.jsxs("div",{className:"d-flex justify-content-center align-items-center mb-1",children:[e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:f.title})}),e.jsx("span",{className:`badge bg-dark rounded-circle ms-2 ${ae.circle}`,children:D})]}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:c?"requestAdFreeDescription":"noRequestsDescription"})})]}),e.jsxs(P,{option:{id:h.id},onSelect:l,selected:(s==null?void 0:s.id)===h.id,children:[e.jsx("img",{src:h.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:h.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:h.description})})]})]}),S&&e.jsxs("div",{className:"alert alert-warning",role:"alert",children:[e.jsx("h3",{className:"h5",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertHeading"})}),e.jsx("p",{className:"m-0",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertBody"})})]})]}),e.jsxs(k,{children:[e.jsx(k.Cancel,{text:q(N?"back":"close"),onClick:E,variant:"link"}),e.jsx(k.Submit,{text:q("continue"),onClick:y,variant:"dark",disabled:!s})]})]})}export{re as TvAddView};
2
- //# sourceMappingURL=BzWiry9B.chunk.js.map
1
+ import{j as e,w as O,a2 as G,a3 as g,a5 as L,A as b,a as j,b as F,aR as v,L as B,bK as R,ab as V,ac as U,ad as _,aS as w,ae as I,af as C,R as H,am as M,P as Y,B as u,x as k}from"./app-DQUfzK7M.js";import{u as J}from"./BpFMqrCw.chunk.js";import{T as m,a as Q}from"./CeNnu9Uy.chunk.js";import{u as W}from"./JVtTNBu8.chunk.js";const z="_selected_ii58d_1",K="_disabled_ii58d_4",$={selected:z,disabled:K};function P(a){var i,d,A,t;function n(){var s;(s=a.option)!=null&&s.disabled||a.onSelect(a.option)}let r="text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50";return a.selected&&(r+=` border-info ${$.selected}`),(i=a.option)!=null&&i.disabled&&(r+=` ${$.disabled}`),e.jsxs(O,{onClick:n,className:r,children:[((d=a.option)==null?void 0:d.imageUrl)&&e.jsx("img",{src:a.option.imageUrl,className:`img-fluid my-3 ${a.option.imageClassName??""}`,draggable:!1}),((A=a.option)==null?void 0:A.title)&&e.jsx("h2",{className:"h3",children:a.option.title}),((t=a.option)==null?void 0:t.description)&&e.jsx("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:a.option.description}}),a.children]})}const X="tv.addRequests",p=B.encloseNamespace(X);function Z(a,n){const r=G(),i=W(),d=g(L.currentUser()),A=g(L.workspace()),t=g(m.program(a)),s=g(m.region(n)),l=g(t.data&&d.data&&m.workspaceVideo(t.data.id,d.data.id,d.data.customerId));async function N(){var c;try{await r(m.createAdFreeRequest({programId:t.data.id,regionCode:s.data.code,userId:d.data.id,customerId:d.data.customerId})),i.success({heading:R.Success,message:p("requestAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.AD_FREE_REQUEST,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AdFreeRequest,location:_.Popup,workflowPhase:U.Complete})}catch(D){const T=(c=D.responseJSON)==null?void 0:c.message;if(T){const S=JSON.parse(T);i.error(p(S.Type,{video:t.data.title}))}else i.error(p("error"))}}async function y(){if(l.data.exists&&l.data.hasAdFree){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={id:t.data.id,userId:d.data.id,customerId:d.data.customerId};await r(m.addAdFreeVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addAdFreeSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddAdFreeVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}async function E(){if(l.data.exists){b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,params:{alreadyAdded:!0}});return}try{const c={userId:d.data.id,customerId:d.data.customerId,globalId:t.data.globalId,libraryId:A.data.id};await r(m.addFullVideo(c,t.data.id)),i.success({heading:R.Success,message:p("addFullSuccess",{video:t.data.title}),type:v.Success}),b.trigger({application:F.TV,action:j.Tv.ALREADY_ADDED,args:[s.data.code,t.data.id]}),V.logUserAction({id:t.data.id,name:t.data.title},{actionType:C.Submit,entity:I.Video,descriptor:w.AddFullVideo,location:_.Popup,workflowPhase:U.Complete})}catch{i.error(p("error"))}}return{requestAdFreeVideo:N,addAdFreeVideo:y,addFullVideo:E}}const ee="_circle_1yxtg_1",ae={circle:ee},o="tv.add",q=B.encloseNamespace(o),x={id:"ad-free",title:"adFreeTitle",description:"adFreeDescription",imageUrl:M.General.MOUNTAINS_FRAMED},f={id:"request-ad-free",title:"adFreeTitle",imageUrl:M.General.MOUNTAINS_FRAMED},h={id:"full-video",title:"fullVideoTitle",description:"fullVideoDescription",imageUrl:M.General.ANNOUNCEMENT_FRAMED};function re(a){const n=g(L.currentUser()),r=g(m.program(a.id)),i=g(n.data&&m.adFreeCredits(n.data.id,n.data.customerId,a.region)),{requestAdFreeVideo:d,addAdFreeVideo:A,addFullVideo:t}=Z(a.id,a.region);J(r.statusCode);const[s,l]=H.useState(null),N=!Number.isNaN(a.currentTime);function y(){s&&(s.id===h.id&&t(),s.id===x.id&&A(),s.id===f.id&&d())}function E(){if(!N){a.closePopup();return}b.trigger({application:F.TV,action:j.Tv.PREVIEW,args:[a.region,r.data.id],params:{currentTime:a.currentTime}})}const c=i.data&&i.data.userRequests<i.data.maxAvailableCredit,D=i.data&&i.data.maxAvailableCredit-i.data.userRequests;H.useEffect(()=>{i.hasCompleted&&(c||l(h))},[i,c]);const T=n.hasCompleted&&r.hasCompleted&&i.hasCompleted,S=(s==null?void 0:s.id)===f.id&&Q.isHolidayPeriod();return e.jsxs(Y,{size:"lg",title:q("title"),showLoadingSpinner:!T,closePopup:a.closePopup,children:[T&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"d-flex mb-3 mx-n2",children:[r.data.hasAdsFree&&e.jsxs(P,{option:{id:x.id},onSelect:l,selected:(s==null?void 0:s.id)===x.id,children:[e.jsx("img",{src:x.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:x.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:x.description})})]}),!r.data.hasAdsFree&&e.jsxs(P,{option:{id:f.id,disabled:!c},onSelect:l,selected:(s==null?void 0:s.id)===f.id,children:[e.jsx("img",{src:f.imageUrl,className:"img-fluid",draggable:!1}),e.jsxs("div",{className:"d-flex justify-content-center align-items-center mb-1",children:[e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:f.title})}),e.jsx("span",{className:`badge bg-dark rounded-circle ms-2 ${ae.circle}`,children:D})]}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:c?"requestAdFreeDescription":"noRequestsDescription"})})]}),e.jsxs(P,{option:{id:h.id},onSelect:l,selected:(s==null?void 0:s.id)===h.id,children:[e.jsx("img",{src:h.imageUrl,className:"img-fluid",draggable:!1}),e.jsx("h2",{className:"h4 mb-1",children:e.jsx(u,{namespace:o,phrase:h.title})}),e.jsx("p",{className:"mb-2",children:e.jsx(u,{namespace:o,phrase:h.description})})]})]}),S&&e.jsxs("div",{className:"alert alert-warning",role:"alert",children:[e.jsx("h3",{className:"h5",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertHeading"})}),e.jsx("p",{className:"m-0",children:e.jsx(u,{namespace:o,phrase:"adFreeAlertBody"})})]})]}),e.jsxs(k,{children:[e.jsx(k.Cancel,{text:q(N?"back":"close"),onClick:E,variant:"link"}),e.jsx(k.Submit,{text:q("continue"),onClick:y,variant:"dark",disabled:!s})]})]})}export{re as TvAddView};
2
+ //# sourceMappingURL=IoMSsrGB.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BzWiry9B.chunk.js","sources":["../../../../libs/shared/src/components/choices-popup/components/choices/Choices.tsx","../../src/apps/tv/hooks/useTvAddRequests.ts","../../src/apps/tv/views/tv-add/TvAddView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './choices.module.scss';\n\nexport interface ChoicePopupOption {\n id: string;\n title?: string;\n description?: string;\n imageUrl?: string;\n disabled?: boolean;\n imageClassName?: string;\n}\n\n\ninterface ChoiceProps {\n option?: ChoicePopupOption;\n selected: boolean | ((selectedChoice: boolean) => boolean);\n onSelect: (option: ChoicePopupOption) => void;\n}\n\nexport function Choice(props: React.PropsWithChildren<ChoiceProps>): React.ReactElement {\n function onSelect(): void {\n if (props.option?.disabled)\n return;\n\n props.onSelect(props.option);\n }\n\n let className = 'text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50';\n\n if (props.selected)\n className += ` border-info ${styles.selected}`;\n\n if (props.option?.disabled)\n className += ` ${styles.disabled}`;\n\n return (\n <DivButton onClick={onSelect} className={className}>\n {props.option?.imageUrl && <img src={props.option.imageUrl} className={`img-fluid my-3 ${props.option.imageClassName ?? ''}`} draggable={false} />}\n {props.option?.title && <h2 className='h3'>{props.option.title}</h2>}\n {props.option?.description && <p className='mb-0' dangerouslySetInnerHTML={{ __html: props.option.description }}></p>}\n {props.children}\n </DivButton>\n );\n}\n\ninterface ChoicesProps {\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (option: ChoicePopupOption) => void;\n}\n\nexport function Choices(props: ChoicesProps): React.ReactElement {\n return (\n <div className='d-flex mb-3 mx-n2'>\n {props.options.map(o => (\n <Choice\n key={o.id}\n option={o}\n selected={props.selection?.id === o.id}\n onSelect={props.selectOption}\n />\n ))}\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, TvDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser, Library } from 'libs/shared/interfaces';\n\nimport { DefaultAlertHeading } from 'shared/constants/DefaultAlertHeading';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvWorkspaceVideoResponse } from 'apps/tv/interfaces/responses/TvWorkspaceVideoResponse';\n\nconst namespace = 'tv.addRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useTvAddRequests(programId: string, regionCode: string) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace());\n\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(programId));\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(regionCode));\n const workspaceVideo = Flight.useBasicFetch<TvWorkspaceVideoResponse>(\n program.data && currentUser.data &&\n TvRequests.workspaceVideo(\n program.data.id,\n currentUser.data.id,\n currentUser.data.customerId\n )\n );\n \n async function requestAdFreeVideo(): Promise<void> {\n try {\n await fetchAsync(TvRequests.createAdFreeRequest({\n programId: program.data.id,\n regionCode: region.data.code,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n }));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('requestAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.AD_FREE_REQUEST,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AdFreeRequest,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (error) {\n const errorMessage = error.responseJSON?.message;\n if (errorMessage) {\n const parsedErrorMessage = JSON.parse(errorMessage);\n alerts.error(getPhrase(parsedErrorMessage.Type, { video: program.data.title }));\n } else {\n alerts.error(getPhrase('error'));\n }\n }\n }\n\n async function addAdFreeVideo() {\n if (workspaceVideo.data.exists && workspaceVideo.data.hasAdFree) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n id: program.data.id,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n };\n await fetchAsync(TvRequests.addAdFreeVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddAdFreeVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n async function addFullVideo() {\n if (workspaceVideo.data.exists) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n globalId: program.data.globalId,\n libraryId: workspace.data.id\n };\n await fetchAsync(TvRequests.addFullVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addFullSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddFullVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n return { requestAdFreeVideo, addAdFreeVideo, addFullVideo };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Choice, ChoicePopupOption } from 'libs/shared/components/choices-popup/components/choices/Choices';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useTvAddRequests } from 'apps/tv/hooks/useTvAddRequests';\nimport { AdFreeCredits } from 'apps/tv/interfaces/models/AdFreeCredits';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-add.module.scss';\n\nconst namespace = 'tv.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst AD_FREE = {\n id: 'ad-free',\n title: 'adFreeTitle',\n description: 'adFreeDescription',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst REQUEST_AD_FREE = {\n id: 'request-ad-free',\n title: 'adFreeTitle',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst FULL_VIDEO = {\n id: 'full-video',\n title: 'fullVideoTitle',\n description: 'fullVideoDescription',\n imageUrl: ImageUrls.General.ANNOUNCEMENT_FRAMED\n};\n\ninterface TvAddViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvAddView(props: TvAddViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const adFreeCredits = Flight.useBasicFetch<AdFreeCredits>(\n currentUser.data &&\n TvRequests.adFreeCredits(\n currentUser.data.id,\n currentUser.data.customerId,\n props.region\n )\n );\n\n const { requestAdFreeVideo, addAdFreeVideo, addFullVideo } = useTvAddRequests(props.id, props.region);\n\n useHandleDialogError(program.statusCode);\n\n const [ selectedChoice, setSelectedChoice ] = React.useState<ChoicePopupOption>(null);\n\n const isFromPreview = !Number.isNaN(props.currentTime);\n\n function onClickContinue(): void {\n if (!selectedChoice)\n return;\n\n if (selectedChoice.id === FULL_VIDEO.id) {\n addFullVideo();\n }\n \n if (selectedChoice.id === AD_FREE.id) {\n addAdFreeVideo();\n }\n\n if (selectedChoice.id === REQUEST_AD_FREE.id) {\n requestAdFreeVideo();\n }\n }\n\n function onClickBack(): void {\n if (!isFromPreview) {\n props.closePopup();\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ props.region, program.data.id ],\n params: {\n currentTime: props.currentTime\n }\n });\n }\n\n const hasEnoughCredits = adFreeCredits.data &&\n (adFreeCredits.data.userRequests < adFreeCredits.data.maxAvailableCredit);\n const requestsRemaining = adFreeCredits.data &&\n (adFreeCredits.data.maxAvailableCredit - adFreeCredits.data.userRequests);\n\n React.useEffect(() => {\n if (!adFreeCredits.hasCompleted)\n return;\n \n if (hasEnoughCredits)\n return;\n\n setSelectedChoice(FULL_VIDEO);\n }, [ adFreeCredits, hasEnoughCredits ]);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n program.hasCompleted &&\n adFreeCredits.hasCompleted\n );\n\n const showAdFreeAlert = selectedChoice?.id === REQUEST_AD_FREE.id && TvUtils.isHolidayPeriod();\n\n return (\n <Popup\n size='lg'\n title={getPhrase('title')}\n showLoadingSpinner={!hasLoaded}\n closePopup={props.closePopup}\n >\n {hasLoaded &&\n <>\n <div className='d-flex mb-3 mx-n2'>\n {program.data.hasAdsFree &&\n <Choice\n option={{ id: AD_FREE.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === AD_FREE.id}\n >\n <img src={AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={AD_FREE.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={AD_FREE.description} /></p>\n </Choice>\n }\n \n {!program.data.hasAdsFree &&\n <Choice\n option={{ id: REQUEST_AD_FREE.id, disabled: !hasEnoughCredits }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === REQUEST_AD_FREE.id}\n >\n <img src={REQUEST_AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <div className='d-flex justify-content-center align-items-center mb-1'>\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={REQUEST_AD_FREE.title} /></h2>\n <span className={`badge bg-dark rounded-circle ms-2 ${styles.circle}`}>{requestsRemaining}</span>\n </div>\n <p className='mb-2'><Text namespace={namespace} phrase={hasEnoughCredits ? 'requestAdFreeDescription' : 'noRequestsDescription'} /></p>\n </Choice>\n }\n\n <Choice\n option={{ id: FULL_VIDEO.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === FULL_VIDEO.id}\n >\n <img src={FULL_VIDEO.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={FULL_VIDEO.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={FULL_VIDEO.description} /></p>\n </Choice>\n </div>\n\n {showAdFreeAlert &&\n <div className='alert alert-warning' role='alert'>\n <h3 className='h5'>\n <Text namespace={namespace} phrase='adFreeAlertHeading' />\n </h3>\n <p className='m-0'>\n <Text namespace={namespace} phrase='adFreeAlertBody' />\n </p>\n </div>\n }\n </>\n }\n \n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase(isFromPreview ? 'back' : 'close')}\n onClick={onClickBack}\n variant='link'\n />\n <PopupButtons.Submit\n text={getPhrase('continue')}\n onClick={onClickContinue}\n variant='dark'\n disabled={!selectedChoice}\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["Choice","props","onSelect","_a","className","styles","jsxs","DivButton","_b","jsx","_c","_d","namespace","getPhrase","LanguageService","useTvAddRequests","programId","regionCode","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","workspace","program","TvRequests","region","workspaceVideo","requestAdFreeVideo","DefaultAlertHeading","AlertType","Core.AppLinkHelper","AppChannels","Actions","AnalyticsHelper","UserAction","EntityType","TvDescriptor","LocationContext","WorkflowPhase","error","errorMessage","parsedErrorMessage","addAdFreeVideo","data","addFullVideo","AD_FREE","ImageUrls","REQUEST_AD_FREE","FULL_VIDEO","TvAddView","adFreeCredits","useHandleDialogError","selectedChoice","setSelectedChoice","React","isFromPreview","onClickContinue","onClickBack","hasEnoughCredits","requestsRemaining","hasLoaded","showAdFreeAlert","TvUtils","Popup","Fragment","Text","PopupButtons"],"mappings":"gZAsBO,SAASA,EAAOC,EAAiE,aACtF,SAASC,GAAiB,QACpBC,EAAAF,EAAM,SAAN,MAAAE,EAAc,UAGlBF,EAAM,SAASA,EAAM,MAAM,CAC7B,CAEA,IAAIG,EAAY,6EAEhB,OAAIH,EAAM,WACRG,GAAa,gBAAgBC,EAAO,QAAQ,KAE1CF,EAAAF,EAAM,SAAN,MAAAE,EAAc,WAChBC,GAAa,IAAIC,EAAO,QAAQ,IAGhCC,EAAAA,KAACC,EAAA,CAAU,QAASL,EAAU,UAAAE,EAC3B,SAAA,GAAAI,EAAAP,EAAM,SAAN,YAAAO,EAAc,WAAYC,EAAAA,IAAC,MAAA,CAAI,IAAKR,EAAM,OAAO,SAAU,UAAW,kBAAkBA,EAAM,OAAO,gBAAkB,EAAE,GAAI,UAAW,GAAO,IAC/IS,EAAAT,EAAM,SAAN,YAAAS,EAAc,QAASD,EAAAA,IAAC,MAAG,UAAU,KAAM,SAAAR,EAAM,OAAO,KAAA,CAAM,IAC9DU,EAAAV,EAAM,SAAN,YAAAU,EAAc,cAAeF,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,wBAAyB,CAAE,OAAQR,EAAM,OAAO,YAAY,CAAG,EAChHA,EAAM,QAAA,EACT,CAEJ,CCzBA,MAAMW,EAAY,iBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,EAAiBC,EAAmBC,EAAoB,CACtE,MAAMC,EAAaC,EAAO,EACpBC,EAASC,EAAA,EAETC,EAAcC,EAAkCC,EAAa,aAAa,EAC1EC,EAAYF,EAA8BC,EAAa,WAAW,EAElEE,EAAUH,EAAgCI,EAAW,QAAQX,CAAS,CAAC,EACvEY,EAASL,EAA+BI,EAAW,OAAOV,CAAU,CAAC,EACrEY,EAAiBN,EACrBG,EAAQ,MAAQJ,EAAY,MAC5BK,EAAW,eACTD,EAAQ,KAAK,GACbJ,EAAY,KAAK,GACjBA,EAAY,KAAK,UAAA,CACnB,EAGF,eAAeQ,GAAoC,OACjD,GAAI,CACF,MAAMZ,EAAWS,EAAW,oBAAoB,CAC9C,UAAWD,EAAQ,KAAK,GACxB,WAAYE,EAAO,KAAK,KACxB,OAAQN,EAAY,KAAK,GACzB,WAAYA,EAAY,KAAK,UAAA,CAC9B,CAAC,EAEFF,EAAO,QAAQ,CACb,QAASW,EAAoB,QAC7B,QAASlB,EAAU,uBAAwB,CAAE,MAAOa,EAAQ,KAAK,MAAO,EACxE,KAAMM,EAAU,OAAA,CACjB,EAEDC,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,gBACnB,KAAM,CAAEP,EAAO,KAAK,KAAMF,EAAQ,KAAK,EAAG,CAAA,CAC3C,EAEDU,EAAgB,cACd,CAAE,GAAIV,EAAQ,KAAK,GAAI,KAAMA,EAAQ,KAAK,KAAA,EAC1C,CACE,WAAYW,EAAW,OACvB,OAAQC,EAAW,MACnB,WAAYC,EAAa,cACzB,SAAUC,EAAgB,MAC1B,cAAeC,EAAc,QAAA,CAC/B,CAEJ,OAASC,EAAO,CACd,MAAMC,GAAexC,EAAAuC,EAAM,eAAN,YAAAvC,EAAoB,QACzC,GAAIwC,EAAc,CAChB,MAAMC,EAAqB,KAAK,MAAMD,CAAY,EAClDvB,EAAO,MAAMP,EAAU+B,EAAmB,KAAM,CAAE,MAAOlB,EAAQ,KAAK,KAAA,CAAO,CAAC,CAChF,MACEN,EAAO,MAAMP,EAAU,OAAO,CAAC,CAEnC,CACF,CAEA,eAAegC,GAAiB,CAC9B,GAAIhB,EAAe,KAAK,QAAUA,EAAe,KAAK,UAAW,CAC/DI,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,cACnB,OAAQ,CAAE,aAAc,EAAA,CAAK,CAC9B,EACD,MACF,CAEA,GAAI,CACF,MAAMW,EAAO,CACX,GAAIpB,EAAQ,KAAK,GACjB,OAAQJ,EAAY,KAAK,GACzB,WAAYA,EAAY,KAAK,UAAA,EAE/B,MAAMJ,EAAWS,EAAW,eAAemB,EAAMpB,EAAQ,KAAK,EAAE,CAAC,EAEjEN,EAAO,QAAQ,CACb,QAASW,EAAoB,QAC7B,QAASlB,EAAU,mBAAoB,CAAE,MAAOa,EAAQ,KAAK,MAAO,EACpE,KAAMM,EAAU,OAAA,CACjB,EAEDC,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,cACnB,KAAM,CAAEP,EAAO,KAAK,KAAMF,EAAQ,KAAK,EAAG,CAAA,CAC3C,EAEDU,EAAgB,cACd,CAAE,GAAIV,EAAQ,KAAK,GAAI,KAAMA,EAAQ,KAAK,KAAA,EAC1C,CACE,WAAYW,EAAW,OACvB,OAAQC,EAAW,MACnB,WAAYC,EAAa,eACzB,SAAUC,EAAgB,MAC1B,cAAeC,EAAc,QAAA,CAC/B,CAEJ,MAAQ,CACNrB,EAAO,MAAMP,EAAU,OAAO,CAAC,CACjC,CACF,CAEA,eAAekC,GAAe,CAC5B,GAAIlB,EAAe,KAAK,OAAQ,CAC9BI,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,cACnB,OAAQ,CAAE,aAAc,EAAA,CAAK,CAC9B,EACD,MACF,CAEA,GAAI,CACF,MAAMW,EAAO,CACX,OAAQxB,EAAY,KAAK,GACzB,WAAYA,EAAY,KAAK,WAC7B,SAAUI,EAAQ,KAAK,SACvB,UAAWD,EAAU,KAAK,EAAA,EAE5B,MAAMP,EAAWS,EAAW,aAAamB,EAAMpB,EAAQ,KAAK,EAAE,CAAC,EAE/DN,EAAO,QAAQ,CACb,QAASW,EAAoB,QAC7B,QAASlB,EAAU,iBAAkB,CAAE,MAAOa,EAAQ,KAAK,MAAO,EAClE,KAAMM,EAAU,OAAA,CACjB,EAEDC,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,cACnB,KAAM,CAAEP,EAAO,KAAK,KAAMF,EAAQ,KAAK,EAAG,CAAA,CAC3C,EAEDU,EAAgB,cACd,CAAE,GAAIV,EAAQ,KAAK,GAAI,KAAMA,EAAQ,KAAK,KAAA,EAC1C,CACE,WAAYW,EAAW,OACvB,OAAQC,EAAW,MACnB,WAAYC,EAAa,aACzB,SAAUC,EAAgB,MAC1B,cAAeC,EAAc,QAAA,CAC/B,CAEJ,MAAQ,CACNrB,EAAO,MAAMP,EAAU,OAAO,CAAC,CACjC,CACF,CAEA,MAAO,CAAE,mBAAAiB,EAAoB,eAAAe,EAAgB,aAAAE,CAAA,CAC/C,2CCtJMnC,EAAY,SACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDoC,EAAU,CACd,GAAI,UACJ,MAAO,cACP,YAAa,oBACb,SAAUC,EAAU,QAAQ,gBAC9B,EAEMC,EAAkB,CACtB,GAAI,kBACJ,MAAO,cACP,SAAUD,EAAU,QAAQ,gBAC9B,EAEME,EAAa,CACjB,GAAI,aACJ,MAAO,iBACP,YAAa,uBACb,SAAUF,EAAU,QAAQ,mBAC9B,EAQO,SAASG,GAAUnD,EAAoC,CAC5D,MAAMqB,EAAcC,EAAkCC,EAAa,aAAa,EAC1EE,EAAUH,EAAgCI,EAAW,QAAQ1B,EAAM,EAAE,CAAC,EACtEoD,EAAgB9B,EACpBD,EAAY,MACZK,EAAW,cACTL,EAAY,KAAK,GACjBA,EAAY,KAAK,WACjBrB,EAAM,MAAA,CACR,EAGI,CAAE,mBAAA6B,EAAoB,eAAAe,EAAgB,aAAAE,CAAA,EAAiBhC,EAAiBd,EAAM,GAAIA,EAAM,MAAM,EAEpGqD,EAAqB5B,EAAQ,UAAU,EAEvC,KAAM,CAAE6B,EAAgBC,CAAkB,EAAIC,EAAM,SAA4B,IAAI,EAE9EC,EAAgB,CAAC,OAAO,MAAMzD,EAAM,WAAW,EAErD,SAAS0D,GAAwB,CAC1BJ,IAGDA,EAAe,KAAOJ,EAAW,IACnCJ,EAAA,EAGEQ,EAAe,KAAOP,EAAQ,IAChCH,EAAA,EAGEU,EAAe,KAAOL,EAAgB,IACxCpB,EAAA,EAEJ,CAEA,SAAS8B,GAAoB,CAC3B,GAAI,CAACF,EAAe,CAClBzD,EAAM,WAAA,EACN,MACF,CAEAgC,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,QACnB,KAAM,CAAElC,EAAM,OAAQyB,EAAQ,KAAK,EAAG,EACtC,OAAQ,CACN,YAAazB,EAAM,WAAA,CACrB,CACD,CACH,CAEA,MAAM4D,EAAmBR,EAAc,MACpCA,EAAc,KAAK,aAAeA,EAAc,KAAK,mBAClDS,EAAoBT,EAAc,MACvCA,EAAc,KAAK,mBAAqBA,EAAc,KAAK,aAE5DI,EAAM,UAAU,IAAM,CACfJ,EAAc,eAGfQ,GAGJL,EAAkBL,CAAU,EAC9B,EAAG,CAAEE,EAAeQ,CAAiB,CAAC,EAEtC,MAAME,EACJzC,EAAY,cACZI,EAAQ,cACR2B,EAAc,aAGVW,GAAkBT,GAAA,YAAAA,EAAgB,MAAOL,EAAgB,IAAMe,EAAQ,gBAAA,EAE7E,OACE3D,EAAAA,KAAC4D,EAAA,CACC,KAAK,KACL,MAAOrD,EAAU,OAAO,EACxB,mBAAoB,CAACkD,EACrB,WAAY9D,EAAM,WAEjB,SAAA,CAAA8D,GACCzD,EAAAA,KAAA6D,WAAA,CACE,SAAA,CAAA7D,EAAAA,KAAC,MAAA,CAAI,UAAU,oBACZ,SAAA,CAAAoB,EAAQ,KAAK,YACZpB,EAAAA,KAACN,EAAA,CACC,OAAQ,CAAE,GAAIgD,EAAQ,EAAA,EACtB,SAAUQ,EACV,UAAUD,GAAA,YAAAA,EAAgB,MAAOP,EAAQ,GAEzC,SAAA,CAAAvC,MAAC,OAAI,IAAKuC,EAAQ,SAAU,UAAU,YAAY,UAAW,GAAO,EACpEvC,EAAAA,IAAC,KAAA,CAAG,UAAU,UAAU,SAAAA,EAAAA,IAAC2D,GAAK,UAAAxD,EAAsB,OAAQoC,EAAQ,KAAA,CAAO,CAAA,CAAE,EAC7EvC,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,SAAAA,EAAAA,IAAC2D,GAAK,UAAAxD,EAAsB,OAAQoC,EAAQ,WAAA,CAAa,CAAA,CAAE,CAAA,CAAA,CAAA,EAIlF,CAACtB,EAAQ,KAAK,YACbpB,EAAAA,KAACN,EAAA,CACC,OAAQ,CAAE,GAAIkD,EAAgB,GAAI,SAAU,CAACW,CAAA,EAC7C,SAAUL,EACV,UAAUD,GAAA,YAAAA,EAAgB,MAAOL,EAAgB,GAEjD,SAAA,CAAAzC,MAAC,OAAI,IAAKyC,EAAgB,SAAU,UAAU,YAAY,UAAW,GAAO,EAC5E5C,EAAAA,KAAC,MAAA,CAAI,UAAU,wDACb,SAAA,CAAAG,EAAAA,IAAC,KAAA,CAAG,UAAU,UAAU,SAAAA,EAAAA,IAAC2D,GAAK,UAAAxD,EAAsB,OAAQsC,EAAgB,KAAA,CAAO,CAAA,CAAE,QACpF,OAAA,CAAK,UAAW,qCAAqC7C,GAAO,MAAM,GAAK,SAAAyD,CAAA,CAAkB,CAAA,EAC5F,EACArD,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,SAAAA,EAAAA,IAAC2D,EAAA,CAAK,UAAAxD,EAAsB,OAAQiD,EAAmB,2BAA6B,uBAAA,CAAyB,CAAA,CAAE,CAAA,CAAA,CAAA,EAIvIvD,EAAAA,KAACN,EAAA,CACC,OAAQ,CAAE,GAAImD,EAAW,EAAA,EACzB,SAAUK,EACV,UAAUD,GAAA,YAAAA,EAAgB,MAAOJ,EAAW,GAE5C,SAAA,CAAA1C,MAAC,OAAI,IAAK0C,EAAW,SAAU,UAAU,YAAY,UAAW,GAAO,EACvE1C,EAAAA,IAAC,KAAA,CAAG,UAAU,UAAU,SAAAA,EAAAA,IAAC2D,GAAK,UAAAxD,EAAsB,OAAQuC,EAAW,KAAA,CAAO,CAAA,CAAE,EAChF1C,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,SAAAA,EAAAA,IAAC2D,GAAK,UAAAxD,EAAsB,OAAQuC,EAAW,WAAA,CAAa,CAAA,CAAE,CAAA,CAAA,CAAA,CACpF,EACF,EAECa,GACC1D,EAAAA,KAAC,MAAA,CAAI,UAAU,sBAAsB,KAAK,QACxC,SAAA,CAAAG,EAAAA,IAAC,KAAA,CAAG,UAAU,KACZ,SAAAA,EAAAA,IAAC2D,GAAK,UAAAxD,EAAsB,OAAO,qBAAqB,CAAA,CAC1D,EACAH,EAAAA,IAAC,KAAE,UAAU,MACX,eAAC2D,EAAA,CAAK,UAAAxD,EAAsB,OAAO,iBAAA,CAAkB,CAAA,CACvD,CAAA,CAAA,CACF,CAAA,EAEJ,SAGDyD,EAAA,CACC,SAAA,CAAA5D,EAAAA,IAAC4D,EAAa,OAAb,CACC,KAAMxD,EAAU6C,EAAgB,OAAS,OAAO,EAChD,QAASE,EACT,QAAQ,MAAA,CAAA,EAEVnD,EAAAA,IAAC4D,EAAa,OAAb,CACC,KAAMxD,EAAU,UAAU,EAC1B,QAAS8C,EACT,QAAQ,OACR,SAAU,CAACJ,CAAA,CAAA,CACb,CAAA,CACF,CAAA,CAAA,CAAA,CAGN"}
1
+ {"version":3,"file":"IoMSsrGB.chunk.js","sources":["../../../../libs/shared/src/components/choices-popup/components/choices/Choices.tsx","../../src/apps/tv/hooks/useTvAddRequests.ts","../../src/apps/tv/views/tv-add/TvAddView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './choices.module.scss';\n\nexport interface ChoicePopupOption {\n id: string;\n title?: string;\n description?: string;\n imageUrl?: string;\n disabled?: boolean;\n imageClassName?: string;\n}\n\n\ninterface ChoiceProps {\n option?: ChoicePopupOption;\n selected: boolean | ((selectedChoice: boolean) => boolean);\n onSelect: (option: ChoicePopupOption) => void;\n}\n\nexport function Choice(props: React.PropsWithChildren<ChoiceProps>): React.ReactElement {\n function onSelect(): void {\n if (props.option?.disabled)\n return;\n\n props.onSelect(props.option);\n }\n\n let className = 'text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50';\n\n if (props.selected)\n className += ` border-info ${styles.selected}`;\n\n if (props.option?.disabled)\n className += ` ${styles.disabled}`;\n\n return (\n <DivButton onClick={onSelect} className={className}>\n {props.option?.imageUrl && <img src={props.option.imageUrl} className={`img-fluid my-3 ${props.option.imageClassName ?? ''}`} draggable={false} />}\n {props.option?.title && <h2 className='h3'>{props.option.title}</h2>}\n {props.option?.description && <p className='mb-0' dangerouslySetInnerHTML={{ __html: props.option.description }}></p>}\n {props.children}\n </DivButton>\n );\n}\n\ninterface ChoicesProps {\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (option: ChoicePopupOption) => void;\n}\n\nexport function Choices(props: ChoicesProps): React.ReactElement {\n return (\n <div className='d-flex mb-3 mx-n2'>\n {props.options.map(o => (\n <Choice\n key={o.id}\n option={o}\n selected={props.selection?.id === o.id}\n onSelect={props.selectOption}\n />\n ))}\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, TvDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser, Library } from 'libs/shared/interfaces';\n\nimport { DefaultAlertHeading } from 'shared/constants/DefaultAlertHeading';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvWorkspaceVideoResponse } from 'apps/tv/interfaces/responses/TvWorkspaceVideoResponse';\n\nconst namespace = 'tv.addRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useTvAddRequests(programId: string, regionCode: string) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace());\n\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(programId));\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(regionCode));\n const workspaceVideo = Flight.useBasicFetch<TvWorkspaceVideoResponse>(\n program.data && currentUser.data &&\n TvRequests.workspaceVideo(\n program.data.id,\n currentUser.data.id,\n currentUser.data.customerId\n )\n );\n \n async function requestAdFreeVideo(): Promise<void> {\n try {\n await fetchAsync(TvRequests.createAdFreeRequest({\n programId: program.data.id,\n regionCode: region.data.code,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n }));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('requestAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.AD_FREE_REQUEST,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AdFreeRequest,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (error) {\n const errorMessage = error.responseJSON?.message;\n if (errorMessage) {\n const parsedErrorMessage = JSON.parse(errorMessage);\n alerts.error(getPhrase(parsedErrorMessage.Type, { video: program.data.title }));\n } else {\n alerts.error(getPhrase('error'));\n }\n }\n }\n\n async function addAdFreeVideo() {\n if (workspaceVideo.data.exists && workspaceVideo.data.hasAdFree) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n id: program.data.id,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId\n };\n await fetchAsync(TvRequests.addAdFreeVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addAdFreeSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddAdFreeVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n async function addFullVideo() {\n if (workspaceVideo.data.exists) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n params: { alreadyAdded: true }\n });\n return;\n }\n\n try {\n const data = {\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n globalId: program.data.globalId,\n libraryId: workspace.data.id\n };\n await fetchAsync(TvRequests.addFullVideo(data, program.data.id));\n\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('addFullSuccess', { video: program.data.title }),\n type: AlertType.Success\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ALREADY_ADDED,\n args: [ region.data.code, program.data.id ]\n });\n\n AnalyticsHelper.logUserAction(\n { id: program.data.id, name: program.data.title },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: TvDescriptor.AddFullVideo,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n }\n }\n\n return { requestAdFreeVideo, addAdFreeVideo, addFullVideo };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Choice, ChoicePopupOption } from 'libs/shared/components/choices-popup/components/choices/Choices';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useTvAddRequests } from 'apps/tv/hooks/useTvAddRequests';\nimport { AdFreeCredits } from 'apps/tv/interfaces/models/AdFreeCredits';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-add.module.scss';\n\nconst namespace = 'tv.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst AD_FREE = {\n id: 'ad-free',\n title: 'adFreeTitle',\n description: 'adFreeDescription',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst REQUEST_AD_FREE = {\n id: 'request-ad-free',\n title: 'adFreeTitle',\n imageUrl: ImageUrls.General.MOUNTAINS_FRAMED\n};\n\nconst FULL_VIDEO = {\n id: 'full-video',\n title: 'fullVideoTitle',\n description: 'fullVideoDescription',\n imageUrl: ImageUrls.General.ANNOUNCEMENT_FRAMED\n};\n\ninterface TvAddViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvAddView(props: TvAddViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const adFreeCredits = Flight.useBasicFetch<AdFreeCredits>(\n currentUser.data &&\n TvRequests.adFreeCredits(\n currentUser.data.id,\n currentUser.data.customerId,\n props.region\n )\n );\n\n const { requestAdFreeVideo, addAdFreeVideo, addFullVideo } = useTvAddRequests(props.id, props.region);\n\n useHandleDialogError(program.statusCode);\n\n const [ selectedChoice, setSelectedChoice ] = React.useState<ChoicePopupOption>(null);\n\n const isFromPreview = !Number.isNaN(props.currentTime);\n\n function onClickContinue(): void {\n if (!selectedChoice)\n return;\n\n if (selectedChoice.id === FULL_VIDEO.id) {\n addFullVideo();\n }\n \n if (selectedChoice.id === AD_FREE.id) {\n addAdFreeVideo();\n }\n\n if (selectedChoice.id === REQUEST_AD_FREE.id) {\n requestAdFreeVideo();\n }\n }\n\n function onClickBack(): void {\n if (!isFromPreview) {\n props.closePopup();\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ props.region, program.data.id ],\n params: {\n currentTime: props.currentTime\n }\n });\n }\n\n const hasEnoughCredits = adFreeCredits.data &&\n (adFreeCredits.data.userRequests < adFreeCredits.data.maxAvailableCredit);\n const requestsRemaining = adFreeCredits.data &&\n (adFreeCredits.data.maxAvailableCredit - adFreeCredits.data.userRequests);\n\n React.useEffect(() => {\n if (!adFreeCredits.hasCompleted)\n return;\n \n if (hasEnoughCredits)\n return;\n\n setSelectedChoice(FULL_VIDEO);\n }, [ adFreeCredits, hasEnoughCredits ]);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n program.hasCompleted &&\n adFreeCredits.hasCompleted\n );\n\n const showAdFreeAlert = selectedChoice?.id === REQUEST_AD_FREE.id && TvUtils.isHolidayPeriod();\n\n return (\n <Popup\n size='lg'\n title={getPhrase('title')}\n showLoadingSpinner={!hasLoaded}\n closePopup={props.closePopup}\n >\n {hasLoaded &&\n <>\n <div className='d-flex mb-3 mx-n2'>\n {program.data.hasAdsFree &&\n <Choice\n option={{ id: AD_FREE.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === AD_FREE.id}\n >\n <img src={AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={AD_FREE.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={AD_FREE.description} /></p>\n </Choice>\n }\n \n {!program.data.hasAdsFree &&\n <Choice\n option={{ id: REQUEST_AD_FREE.id, disabled: !hasEnoughCredits }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === REQUEST_AD_FREE.id}\n >\n <img src={REQUEST_AD_FREE.imageUrl} className='img-fluid' draggable={false} />\n <div className='d-flex justify-content-center align-items-center mb-1'>\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={REQUEST_AD_FREE.title} /></h2>\n <span className={`badge bg-dark rounded-circle ms-2 ${styles.circle}`}>{requestsRemaining}</span>\n </div>\n <p className='mb-2'><Text namespace={namespace} phrase={hasEnoughCredits ? 'requestAdFreeDescription' : 'noRequestsDescription'} /></p>\n </Choice>\n }\n\n <Choice\n option={{ id: FULL_VIDEO.id }}\n onSelect={setSelectedChoice}\n selected={selectedChoice?.id === FULL_VIDEO.id}\n >\n <img src={FULL_VIDEO.imageUrl} className='img-fluid' draggable={false} />\n <h2 className='h4 mb-1'><Text namespace={namespace} phrase={FULL_VIDEO.title} /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase={FULL_VIDEO.description} /></p>\n </Choice>\n </div>\n\n {showAdFreeAlert &&\n <div className='alert alert-warning' role='alert'>\n <h3 className='h5'>\n <Text namespace={namespace} phrase='adFreeAlertHeading' />\n </h3>\n <p className='m-0'>\n <Text namespace={namespace} phrase='adFreeAlertBody' />\n </p>\n </div>\n }\n </>\n }\n \n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase(isFromPreview ? 'back' : 'close')}\n onClick={onClickBack}\n variant='link'\n />\n <PopupButtons.Submit\n text={getPhrase('continue')}\n onClick={onClickContinue}\n variant='dark'\n disabled={!selectedChoice}\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["Choice","props","onSelect","_a","className","styles","jsxs","DivButton","_b","jsx","_c","_d","namespace","getPhrase","LanguageService","useTvAddRequests","programId","regionCode","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","workspace","program","TvRequests","region","workspaceVideo","requestAdFreeVideo","DefaultAlertHeading","AlertType","Core.AppLinkHelper","AppChannels","Actions","AnalyticsHelper","UserAction","EntityType","TvDescriptor","LocationContext","WorkflowPhase","error","errorMessage","parsedErrorMessage","addAdFreeVideo","data","addFullVideo","AD_FREE","ImageUrls","REQUEST_AD_FREE","FULL_VIDEO","TvAddView","adFreeCredits","useHandleDialogError","selectedChoice","setSelectedChoice","React","isFromPreview","onClickContinue","onClickBack","hasEnoughCredits","requestsRemaining","hasLoaded","showAdFreeAlert","TvUtils","Popup","Fragment","Text","PopupButtons"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{cj as n,r as a,aR as s,ck as c,cl as o}from"./app-BeXfSt3Z.js";function i(r){const e=n.getInstance(r);return a.useEffect(()=>()=>{n.releaseInstance(r)}),e}function u(r){return i(r)}function l(){const r=u(o.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,l as u};
2
- //# sourceMappingURL=BOgut51m.chunk.js.map
1
+ import{cj as n,r as a,aR as s,ck as c,cl as o}from"./app-DQUfzK7M.js";function i(r){const e=n.getInstance(r);return a.useEffect(()=>()=>{n.releaseInstance(r)}),e}function u(r){return i(r)}function l(){const r=u(o.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,l as u};
2
+ //# sourceMappingURL=JVtTNBu8.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BOgut51m.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":"JVtTNBu8.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{r as o,d,j as e,e as D,f as c,g as L,h as R,i as p,k as $,C as b,l as S}from"./app-BeXfSt3Z.js";const g=D("h4");g.displayName="DivStyledAsH4";const N=o.forwardRef(({className:s,bsPrefix:a,as:r=g,...n},t)=>(a=d(a,"alert-heading"),e.jsx(r,{ref:t,className:c(s,a),...n})));N.displayName="AlertHeading";const A=o.forwardRef(({className:s,bsPrefix:a,as:r=L,...n},t)=>(a=d(a,"alert-link"),e.jsx(r,{ref:t,className:c(s,a),...n})));A.displayName="AlertLink";const C=o.forwardRef((s,a)=>{const{bsPrefix:r,show:n=!0,closeLabel:t="Close alert",closeVariant:k,className:w,children:y,variant:h="primary",onClose:m,dismissible:u,transition:f=p,...x}=R(s,{show:"onClose"}),l=d(r,"alert"),E=$(H=>{m&&m(!1,H)}),i=f===!0?p:f,j=e.jsxs("div",{role:"alert",...i?void 0:x,ref:a,className:c(w,l,h&&`${l}-${h}`,u&&`${l}-dismissible`),children:[u&&e.jsx(b,{onClick:E,"aria-label":t,variant:k}),y]});return i?e.jsx(i,{unmountOnExit:!0,...x,ref:void 0,in:n,children:j}):n?j:null});C.displayName="Alert";const v=Object.assign(C,{Link:A,Heading:N});function F({error:s}){return S({title:"Dev Error"}),s?e.jsxs("div",{className:"px-3",children:[e.jsx("h1",{children:s.name}),e.jsx(v,{variant:"danger",children:e.jsx("h2",{children:s.message})}),e.jsxs(v,{variant:"warning",children:[e.jsx("h3",{children:"Call stack"}),e.jsx("code",{children:s.stack})]})]}):e.jsx(e.Fragment,{})}export{F as DevErrorView};
2
- //# sourceMappingURL=B6MzAKwF.chunk.js.map
1
+ import{r as o,d,j as e,e as D,f as c,g as L,h as R,i as p,k as $,C as b,l as S}from"./app-DQUfzK7M.js";const g=D("h4");g.displayName="DivStyledAsH4";const N=o.forwardRef(({className:s,bsPrefix:a,as:r=g,...n},t)=>(a=d(a,"alert-heading"),e.jsx(r,{ref:t,className:c(s,a),...n})));N.displayName="AlertHeading";const A=o.forwardRef(({className:s,bsPrefix:a,as:r=L,...n},t)=>(a=d(a,"alert-link"),e.jsx(r,{ref:t,className:c(s,a),...n})));A.displayName="AlertLink";const C=o.forwardRef((s,a)=>{const{bsPrefix:r,show:n=!0,closeLabel:t="Close alert",closeVariant:k,className:w,children:y,variant:h="primary",onClose:m,dismissible:u,transition:f=p,...x}=R(s,{show:"onClose"}),l=d(r,"alert"),E=$(H=>{m&&m(!1,H)}),i=f===!0?p:f,j=e.jsxs("div",{role:"alert",...i?void 0:x,ref:a,className:c(w,l,h&&`${l}-${h}`,u&&`${l}-dismissible`),children:[u&&e.jsx(b,{onClick:E,"aria-label":t,variant:k}),y]});return i?e.jsx(i,{unmountOnExit:!0,...x,ref:void 0,in:n,children:j}):n?j:null});C.displayName="Alert";const v=Object.assign(C,{Link:A,Heading:N});function F({error:s}){return S({title:"Dev Error"}),s?e.jsxs("div",{className:"px-3",children:[e.jsx("h1",{children:s.name}),e.jsx(v,{variant:"danger",children:e.jsx("h2",{children:s.message})}),e.jsxs(v,{variant:"warning",children:[e.jsx("h3",{children:"Call stack"}),e.jsx("code",{children:s.stack})]})]}):e.jsx(e.Fragment,{})}export{F as DevErrorView};
2
+ //# sourceMappingURL=Jh9dsBNz.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"B6MzAKwF.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/AlertHeading.js","../../../../../node_modules/react-bootstrap/esm/AlertLink.js","../../../../../node_modules/react-bootstrap/esm/Alert.js","../../../../libs/shared/src/views/dev-error/DevErrorView.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport divWithClassName from './divWithClassName';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nDivStyledAsH4.displayName = 'DivStyledAsH4';\nconst AlertHeading = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-heading');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertHeading.displayName = 'AlertHeading';\nexport default AlertHeading;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AlertLink = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = Anchor,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-link');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertLink.displayName = 'AlertLink';\nexport default AlertLink;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AlertHeading from './AlertHeading';\nimport AlertLink from './AlertLink';\nimport Fade from './Fade';\nimport CloseButton from './CloseButton';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Alert = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n bsPrefix,\n show = true,\n closeLabel = 'Close alert',\n closeVariant,\n className,\n children,\n variant = 'primary',\n onClose,\n dismissible,\n transition = Fade,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n show: 'onClose'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'alert');\n const handleClose = useEventCallback(e => {\n if (onClose) {\n onClose(false, e);\n }\n });\n const Transition = transition === true ? Fade : transition;\n const alert = /*#__PURE__*/_jsxs(\"div\", {\n role: \"alert\",\n ...(!Transition ? props : undefined),\n ref: ref,\n className: classNames(className, prefix, variant && `${prefix}-${variant}`, dismissible && `${prefix}-dismissible`),\n children: [dismissible && /*#__PURE__*/_jsx(CloseButton, {\n onClick: handleClose,\n \"aria-label\": closeLabel,\n variant: closeVariant\n }), children]\n });\n if (!Transition) return show ? alert : null;\n return /*#__PURE__*/_jsx(Transition, {\n unmountOnExit: true,\n ...props,\n ref: undefined,\n in: show,\n children: alert\n });\n});\nAlert.displayName = 'Alert';\nexport default Object.assign(Alert, {\n Link: AlertLink,\n Heading: AlertHeading\n});","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\ninterface DevErrorViewProps {\n error: Error;\n}\n\nexport function DevErrorView({ error }: DevErrorViewProps): React.ReactElement {\n useSetPageMetadata({ title: 'Dev Error' });\n\n if (!error)\n return <></>;\n\n return (\n <div className='px-3'>\n <h1>{error.name}</h1>\n <Alert variant='danger'>\n <h2>{error.message}</h2>\n </Alert>\n <Alert variant='warning'>\n <h3>Call stack</h3>\n <code>{error.stack}</code>\n </Alert>\n </div>\n );\n}"],"names":["DivStyledAsH4","divWithClassName","AlertHeading","React.forwardRef","className","bsPrefix","Component","props","ref","useBootstrapPrefix","_jsx","classNames","AlertLink","Anchor","Alert","uncontrolledProps","show","closeLabel","closeVariant","children","variant","onClose","dismissible","transition","Fade","useUncontrolled","prefix","handleClose","useEventCallback","e","Transition","alert","_jsxs","CloseButton","Alert$1","DevErrorView","error","useSetPageMetadata","jsxs","jsx","Fragment"],"mappings":"uGAOA,MAAMA,EAAgBC,EAAiB,IAAI,EAC3CD,EAAc,YAAc,gBAC5B,MAAME,EAA4BC,EAAAA,WAAiB,CAAC,CAClD,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYN,EAChB,GAAGO,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,eAAe,EACnCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDL,EAAa,YAAc,eCf3B,MAAMU,EAAyBT,EAAAA,WAAiB,CAAC,CAC/C,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYO,EAChB,GAAGN,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,YAAY,EAChCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDK,EAAU,YAAc,YCPxB,MAAME,EAAqBX,EAAAA,WAAiB,CAACY,EAAmBP,IAAQ,CACtE,KAAM,CACJ,SAAAH,EACA,KAAAW,EAAO,GACP,WAAAC,EAAa,cACb,aAAAC,EACA,UAAAd,EACA,SAAAe,EACA,QAAAC,EAAU,UACV,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaC,EACb,GAAGjB,CACP,EAAMkB,EAAgBV,EAAmB,CACrC,KAAM,SACV,CAAG,EACKW,EAASjB,EAAmBJ,EAAU,OAAO,EAC7CsB,EAAcC,EAAiBC,GAAK,CACpCR,GACFA,EAAQ,GAAOQ,CAAC,CAEpB,CAAC,EACKC,EAAaP,IAAe,GAAOC,EAAOD,EAC1CQ,EAAqBC,EAAAA,KAAM,MAAO,CACtC,KAAM,QACN,GAAKF,EAAqB,OAARvB,EAClB,IAAKC,EACL,UAAWG,EAAWP,EAAWsB,EAAQN,GAAW,GAAGM,CAAM,IAAIN,CAAO,GAAIE,GAAe,GAAGI,CAAM,cAAc,EAClH,SAAU,CAACJ,GAA4BZ,EAAAA,IAAKuB,EAAa,CACvD,QAASN,EACT,aAAcV,EACd,QAASC,CACf,CAAK,EAAGC,CAAQ,CAChB,CAAG,EACD,OAAKW,EACepB,EAAAA,IAAKoB,EAAY,CACnC,cAAe,GACf,GAAGvB,EACH,IAAK,OACL,GAAIS,EACJ,SAAUe,CACd,CAAG,EAPuBf,EAAOe,EAAQ,IAQzC,CAAC,EACDjB,EAAM,YAAc,QACpB,MAAAoB,EAAe,OAAO,OAAOpB,EAAO,CAClC,KAAMF,EACN,QAASV,CACX,CAAC,ECnDM,SAASiC,EAAa,CAAE,MAAAC,GAAgD,CAG7E,OAFAC,EAAmB,CAAE,MAAO,YAAa,EAEpCD,EAIHE,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAI,WAAM,IAAA,CAAK,EAChBA,EAAAA,IAACzB,GAAM,QAAQ,SACb,eAAC,KAAA,CAAI,SAAAsB,EAAM,QAAQ,CAAA,CACrB,EACAE,EAAAA,KAACxB,EAAA,CAAM,QAAQ,UACb,SAAA,CAAAyB,EAAAA,IAAC,MAAG,SAAA,YAAA,CAAU,EACdA,EAAAA,IAAC,OAAA,CAAM,SAAAH,EAAM,KAAA,CAAM,CAAA,CAAA,CACrB,CAAA,EACF,EAZOG,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CAcb","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"Jh9dsBNz.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/AlertHeading.js","../../../../../node_modules/react-bootstrap/esm/AlertLink.js","../../../../../node_modules/react-bootstrap/esm/Alert.js","../../../../libs/shared/src/views/dev-error/DevErrorView.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport divWithClassName from './divWithClassName';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nDivStyledAsH4.displayName = 'DivStyledAsH4';\nconst AlertHeading = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-heading');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertHeading.displayName = 'AlertHeading';\nexport default AlertHeading;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AlertLink = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = Anchor,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-link');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertLink.displayName = 'AlertLink';\nexport default AlertLink;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AlertHeading from './AlertHeading';\nimport AlertLink from './AlertLink';\nimport Fade from './Fade';\nimport CloseButton from './CloseButton';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Alert = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n bsPrefix,\n show = true,\n closeLabel = 'Close alert',\n closeVariant,\n className,\n children,\n variant = 'primary',\n onClose,\n dismissible,\n transition = Fade,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n show: 'onClose'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'alert');\n const handleClose = useEventCallback(e => {\n if (onClose) {\n onClose(false, e);\n }\n });\n const Transition = transition === true ? Fade : transition;\n const alert = /*#__PURE__*/_jsxs(\"div\", {\n role: \"alert\",\n ...(!Transition ? props : undefined),\n ref: ref,\n className: classNames(className, prefix, variant && `${prefix}-${variant}`, dismissible && `${prefix}-dismissible`),\n children: [dismissible && /*#__PURE__*/_jsx(CloseButton, {\n onClick: handleClose,\n \"aria-label\": closeLabel,\n variant: closeVariant\n }), children]\n });\n if (!Transition) return show ? alert : null;\n return /*#__PURE__*/_jsx(Transition, {\n unmountOnExit: true,\n ...props,\n ref: undefined,\n in: show,\n children: alert\n });\n});\nAlert.displayName = 'Alert';\nexport default Object.assign(Alert, {\n Link: AlertLink,\n Heading: AlertHeading\n});","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\ninterface DevErrorViewProps {\n error: Error;\n}\n\nexport function DevErrorView({ error }: DevErrorViewProps): React.ReactElement {\n useSetPageMetadata({ title: 'Dev Error' });\n\n if (!error)\n return <></>;\n\n return (\n <div className='px-3'>\n <h1>{error.name}</h1>\n <Alert variant='danger'>\n <h2>{error.message}</h2>\n </Alert>\n <Alert variant='warning'>\n <h3>Call stack</h3>\n <code>{error.stack}</code>\n </Alert>\n </div>\n );\n}"],"names":["DivStyledAsH4","divWithClassName","AlertHeading","React.forwardRef","className","bsPrefix","Component","props","ref","useBootstrapPrefix","_jsx","classNames","AlertLink","Anchor","Alert","uncontrolledProps","show","closeLabel","closeVariant","children","variant","onClose","dismissible","transition","Fade","useUncontrolled","prefix","handleClose","useEventCallback","e","Transition","alert","_jsxs","CloseButton","Alert$1","DevErrorView","error","useSetPageMetadata","jsxs","jsx","Fragment"],"mappings":"uGAOA,MAAMA,EAAgBC,EAAiB,IAAI,EAC3CD,EAAc,YAAc,gBAC5B,MAAME,EAA4BC,EAAAA,WAAiB,CAAC,CAClD,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYN,EAChB,GAAGO,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,eAAe,EACnCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDL,EAAa,YAAc,eCf3B,MAAMU,EAAyBT,EAAAA,WAAiB,CAAC,CAC/C,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYO,EAChB,GAAGN,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,YAAY,EAChCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDK,EAAU,YAAc,YCPxB,MAAME,EAAqBX,EAAAA,WAAiB,CAACY,EAAmBP,IAAQ,CACtE,KAAM,CACJ,SAAAH,EACA,KAAAW,EAAO,GACP,WAAAC,EAAa,cACb,aAAAC,EACA,UAAAd,EACA,SAAAe,EACA,QAAAC,EAAU,UACV,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaC,EACb,GAAGjB,CACP,EAAMkB,EAAgBV,EAAmB,CACrC,KAAM,SACV,CAAG,EACKW,EAASjB,EAAmBJ,EAAU,OAAO,EAC7CsB,EAAcC,EAAiBC,GAAK,CACpCR,GACFA,EAAQ,GAAOQ,CAAC,CAEpB,CAAC,EACKC,EAAaP,IAAe,GAAOC,EAAOD,EAC1CQ,EAAqBC,EAAAA,KAAM,MAAO,CACtC,KAAM,QACN,GAAKF,EAAqB,OAARvB,EAClB,IAAKC,EACL,UAAWG,EAAWP,EAAWsB,EAAQN,GAAW,GAAGM,CAAM,IAAIN,CAAO,GAAIE,GAAe,GAAGI,CAAM,cAAc,EAClH,SAAU,CAACJ,GAA4BZ,EAAAA,IAAKuB,EAAa,CACvD,QAASN,EACT,aAAcV,EACd,QAASC,CACf,CAAK,EAAGC,CAAQ,CAChB,CAAG,EACD,OAAKW,EACepB,EAAAA,IAAKoB,EAAY,CACnC,cAAe,GACf,GAAGvB,EACH,IAAK,OACL,GAAIS,EACJ,SAAUe,CACd,CAAG,EAPuBf,EAAOe,EAAQ,IAQzC,CAAC,EACDjB,EAAM,YAAc,QACpB,MAAAoB,EAAe,OAAO,OAAOpB,EAAO,CAClC,KAAMF,EACN,QAASV,CACX,CAAC,ECnDM,SAASiC,EAAa,CAAE,MAAAC,GAAgD,CAG7E,OAFAC,EAAmB,CAAE,MAAO,YAAa,EAEpCD,EAIHE,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAI,WAAM,IAAA,CAAK,EAChBA,EAAAA,IAACzB,GAAM,QAAQ,SACb,eAAC,KAAA,CAAI,SAAAsB,EAAM,QAAQ,CAAA,CACrB,EACAE,EAAAA,KAACxB,EAAA,CAAM,QAAQ,UACb,SAAA,CAAAyB,EAAAA,IAAC,MAAG,SAAA,YAAA,CAAU,EACdA,EAAAA,IAAC,OAAA,CAAM,SAAAH,EAAM,KAAA,CAAM,CAAA,CAAA,CACrB,CAAA,EACF,EAZOG,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CAcb","x_google_ignoreList":[0,1,2]}
@@ -1,4 +1,4 @@
1
- import{r as y,a3 as vn,aD as hn,j as t,ak as Ct,aq as $,B as X,aE as ft,ab as Oe,af as O,ae as ke,ad as ae,R as w,aF as Gt,c as I,F as B,w as Me,G as T,L as E,Q as Y,K as Q,az as Cn,V as fn,J as xn,au as yn,ap as de,M as Ee,Z as ue,aw as Ne,ar as He,q as zt,aG as Ut,aB as xt,a0 as Ln,ax as F,at as Be,A as jn}from"./app-BeXfSt3Z.js";import{b as wn}from"./RkGsyr47.chunk.js";import{u as bn,a as kn,b as Nn,C as Ge,i as In,c as Sn,g as Pn,K as fe,D as _n}from"./DPzpHWBx.chunk.js";import{G as An,V,R as ze,a as Vn,C as $n}from"./BNdvuAqI.chunk.js";import{S as Tn}from"./RR_Npo-u.chunk.js";import{V as u}from"./CfG52a2J.chunk.js";import{B as p,a as W,C as Dn}from"./CaXurNVJ.chunk.js";import{B as Ue}from"./BVtgkXbb.chunk.js";import{u as Rn}from"./BOgut51m.chunk.js";import{B as Ze}from"./EP_6ctCd.chunk.js";import{g as Fn,B as On,I as We,a as Ye}from"./BVFJa4eN.chunk.js";import{L as Zt,R as Qe,a as En}from"./C7s6znQN.chunk.js";import{T as yt,u as Mn,O as Lt,V as Ie,c as Hn,I as Bn,b as Gn,R as zn,L as Un}from"./BIqgfuNp.chunk.js";import{a as qe,u as ge}from"./CSuv1QVm.chunk.js";import{C as Zn}from"./DfkRK80r.chunk.js";import{M as re}from"./_sYSSSUN.chunk.js";import{A as Wn}from"./BknFbNFb.chunk.js";import{H as P}from"./Kj832An8.chunk.js";var R=(e=>(e[e.MultipleChoice=1]="MultipleChoice",e[e.ShortAnswer=2]="ShortAnswer",e[e.TrueOrFalse=3]="TrueOrFalse",e[e.Annotation=4]="Annotation",e[e.Image=5]="Image",e[e.MissingWord=6]="MissingWord",e[e.Illustration=7]="Illustration",e))(R||{});const Yn={},Qn=y.createContext(null);function qn(e){return"series"in e?wn(e.series):null}function as(){var i;const e=vn(hn.config());return{hasCommonVideoPropsCompleted:e.hasCompleted,commonVideoProps:{subTextType:"series",getSubTextAppLink:qn,isPlugin:!1,canFavourite:null,setFavourite:null,yearGroups:null,imageCdnUrl:(i=e.data)==null?void 0:i.imageCdnUrl,getClassroomGuideAppLink:null,getInteractiveGuidanceAppLink:null,getResourceGuidanceAppLink:null,showNewVideoIndicator:!1,companyLogoFallbackUrl:null,hasStudentExperience:!1,hasGuestExperience:!1}}}function jt(e,n,i){if(!n)return null;const a=e.params??{};return i?a!=null&&a.previous?{application:e.application,action:e.action,args:e.args,params:{...a,cursor:a==null?void 0:a.previous,previous:null}}:{application:e.application,action:e.action,args:e.args,params:{...a,cursor:null,previous:null}}:{application:e.application,action:e.action,args:e.args,params:{...a,cursor:n,previous:a.cursor}}}Wt.defaultProps={className:"py-2",buttonVariant:"secondary"};function Wt({appLink:e,cursors:n,className:i,buttonVariant:a,prevHack:s,scrollTop:c,onClick:r}){function o(l){e&&c===!1&&Tn.preventScrollTop(),Oe.logUserAction({page:l},{location:ae.Pagination,entity:ke.Pagination,actionType:O.Navigate}),r&&r(n[l])}return e?t.jsx(Ct.Provider,{value:"shared.pagination",children:t.jsxs("div",{className:i,children:[t.jsx($,{appLink:jt(e,n.previous,s),className:`btn btn-${a} me-1 ${n.previous?"":"disabled"}`,onClick:()=>o("previous"),style:{display:"inline-block"},children:t.jsx(X,{phrase:"previous"})}),t.jsx($,{appLink:jt(e,n.next),className:`btn btn-${a} ${n.next?"":"disabled"}`,onClick:()=>o("next"),style:{display:"inline-block"},children:t.jsx(X,{phrase:"next"})})]})}):t.jsx(Ct.Provider,{value:"shared.pagination",children:t.jsxs("div",{className:i,children:[t.jsx(ft,{variant:a,className:`me-1 ${n.previous?"":"disabled"}`,onClick:()=>o("previous"),children:t.jsx(X,{phrase:"previous"})}),t.jsx(ft,{variant:a,className:`btn ${n.next?"":"disabled"}`,onClick:()=>o("next"),children:t.jsx(X,{phrase:"next"})})]})})}function Yt(e,n,i){const a=e.slice();return a.splice(i<0?a.length+i:i,0,a.splice(n,1)[0]),a}function xe(e){return e!==null&&e>=0}const Kn=e=>{let{rects:n,activeIndex:i,overIndex:a,index:s}=e;const c=Yt(n,a,i),r=n[s],o=c[s];return!o||!r?null:{x:o.left-r.left,y:o.top-r.top,scaleX:o.width/r.width,scaleY:o.height/r.height}},Xn="Sortable",Jn=w.createContext({activeIndex:-1,containerId:Xn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Kn,disabled:{draggable:!1,droppable:!1}}),pn=e=>{let{id:n,items:i,activeIndex:a,overIndex:s}=e;return Yt(i,a,s).indexOf(n)},ei=e=>{let{containerId:n,isSorting:i,wasDragging:a,index:s,items:c,newIndex:r,previousItems:o,previousContainerId:l,transition:d}=e;return!d||!a||o!==c&&s===r?!1:i?!0:r!==s&&n===l},ti={duration:200,easing:"ease"},Qt="transform",ni=Ge.Transition.toString({property:Qt,duration:0,easing:"linear"}),ii={roleDescription:"sortable"};function ai(e){let{disabled:n,index:i,node:a,rect:s}=e;const[c,r]=y.useState(null),o=y.useRef(i);return Sn(()=>{if(!n&&i!==o.current&&a.current){const l=s.current;if(l){const d=Pn(a.current,{ignoreTransform:!0}),m={x:l.left-d.left,y:l.top-d.top,scaleX:l.width/d.width,scaleY:l.height/d.height};(m.x||m.y)&&r(m)}}i!==o.current&&(o.current=i)},[n,i,a,s]),y.useEffect(()=>{c&&requestAnimationFrame(()=>{r(null)})},[c]),c}function si(e){let{animateLayoutChanges:n=ei,attributes:i,disabled:a,data:s,getNewIndex:c=pn,id:r,strategy:o,resizeObserverConfig:l,transition:d=ti}=e;const{items:m,containerId:g,activeIndex:v,disabled:h,disableTransforms:x,sortedRects:f,overIndex:C,useDragOverlay:N,strategy:_}=y.useContext(Jn),L=oi(a,h),j=m.indexOf(r),S=y.useMemo(()=>({sortable:{containerId:g,index:j,items:m},...s}),[g,s,j,m]),G=y.useMemo(()=>m.slice(m.indexOf(r)),[m,r]),{rect:z,node:D,isOver:q,setNodeRef:se}=bn({id:r,data:S,disabled:L.droppable,resizeObserverConfig:{updateMeasurementsFor:G,...l}}),{active:U,activatorEvent:he,activeNodeRect:b,attributes:Ce,setNodeRef:ut,listeners:sn,isDragging:Te,over:on,setActivatorNodeRef:rn,transform:cn}=kn({id:r,data:S,attributes:{...ii,...i},disabled:L.draggable}),ln=Nn(se,ut),ee=!!U,mt=ee&&!x&&xe(v)&&xe(C),gt=!N&&Te,vt=gt&&mt?cn:null,dn=mt?vt??(o??_)({rects:f,activeNodeRect:b,activeIndex:v,overIndex:C,index:j}):null,oe=xe(v)&&xe(C)?c({id:r,items:m,activeIndex:v,overIndex:C}):j,te=U==null?void 0:U.id,k=y.useRef({activeId:te,items:m,newIndex:oe,containerId:g}),un=m!==k.current.items,ht=n({active:U,containerId:g,isDragging:Te,isSorting:ee,id:r,index:j,items:m,newIndex:k.current.newIndex,previousItems:k.current.items,previousContainerId:k.current.containerId,transition:d,wasDragging:k.current.activeId!=null}),De=ai({disabled:!ht,index:j,node:D,rect:z});return y.useEffect(()=>{ee&&k.current.newIndex!==oe&&(k.current.newIndex=oe),g!==k.current.containerId&&(k.current.containerId=g),m!==k.current.items&&(k.current.items=m)},[ee,oe,g,m]),y.useEffect(()=>{if(te===k.current.activeId)return;if(te&&!k.current.activeId){k.current.activeId=te;return}const gn=setTimeout(()=>{k.current.activeId=te},50);return()=>clearTimeout(gn)},[te]),{active:U,activeIndex:v,attributes:Ce,data:S,rect:z,index:j,newIndex:oe,items:m,isOver:q,isSorting:ee,isDragging:Te,listeners:sn,node:D,overIndex:C,over:on,setNodeRef:ln,setActivatorNodeRef:rn,setDroppableNodeRef:se,setDraggableNodeRef:ut,transform:De??dn,transition:mn()};function mn(){if(De||un&&k.current.newIndex===j)return ni;if(!(gt&&!In(he)||!d)&&(ee||ht))return Ge.Transition.toString({...d,property:Qt})}}function oi(e,n){var i,a;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(i=e==null?void 0:e.draggable)!=null?i:n.draggable,droppable:(a=e==null?void 0:e.droppable)!=null?a:n.droppable}}fe.Down,fe.Right,fe.Up,fe.Left;function ri(e,n,i){return n!==e?null:i>n?"down":i<n?"up":null}function Ke(e){const{setNodeRef:n,transform:i,transition:a,isSorting:s,listeners:c,attributes:r,activeIndex:o,overIndex:l,index:d}=si({id:e.id}),m={transform:Ge.Transform.toString(i),transition:a,touchAction:"none",position:"relative"};s&&d===o&&(m.visibility="hidden");const g=e.childComponent,v=ri(d,o,l);return t.jsx(g,{...e.childProps,ref:n,style:m,dragListeners:c,dragAttributes:r,dragDirection:v})}function ci(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805m.812-10.7.001-.004.007-.022.03-.097a5.83 5.83 0 0 1 .744-1.463c.565-.798 1.428-1.532 2.72-1.532 2.03 0 3.516 1.72 3.516 3.866 0 1.445-.713 2.686-2.089 4.119-.944.984-2.151 2.01-3.579 3.224-.575.49-1.187 1.01-1.832 1.57-.645-.56-1.257-1.08-1.832-1.57-1.428-1.214-2.635-2.24-3.58-3.224C5.214 12.11 4.5 10.869 4.5 9.423c0-2.146 1.487-3.865 3.517-3.865 1.29 0 2.154.734 2.719 1.532a5.8 5.8 0 0 1 .774 1.56l.007.022v.004a.5.5 0 0 0 .965 0"})})}function li(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",fillOpacity:.9,d:"M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805"})})}const ve={isFavouritedByCurrentUser(e){var n;return((n=e==null?void 0:e.favouritedBy)==null?void 0:n.data.length)===1},isFavouritedByUser(e,n){var i;return!!I.findWhere((i=e==null?void 0:e.favouritedBy)==null?void 0:i.data,{id:n==null?void 0:n.id})},updateVideoState(e,n,i){return{id:e.id,favouritedBy:{data:i?[{id:n.id}]:[],pagination:{limit:25,cursors:{next:"",previous:""}}}}},showFavouriteButton(e,n){var i;return(i=u.getCanBeConsumed(e))!=null&&i.canConsume?!!(n||Gt.isTabletOrMobile()||ve.isFavouritedByCurrentUser(e)):!1}},di="_favourited_19h9u_1",ui="_favouriteButton_19h9u_1",mi="_heart_19h9u_5",gi="_heartOutline_19h9u_16",ye={favourited:di,favouriteButton:ui,heart:mi,heartOutline:gi},vi="shared.favouriteButton",hi=E.encloseNamespace(vi);function Xe(e){const n=Rn(),i=ve.isFavouritedByCurrentUser(e.video),[a,s]=y.useState(i);y.useEffect(()=>{s(i)},[i]);let r=`d-flex align-items-center justify-content-center cursor-pointer ${ye.favouriteButton} ${a?ye.favourited:""}`;e.className&&(r+=` ${e.className}`);function o(){const l=!a;function d(){function m(){return u.isClip(e.video)?l?"favouriteClipError":"unfavouriteClipError":u.isInteractive(e.video)?l?"favouriteInteractiveError":"unfavouriteInteractiveError":l?"favouriteVideoError":"unfavouriteVideoError"}n.error(hi(m())),s(!l)}s(l),e.setFavourite(e.video,l,null,d,e.analyticsData,e.analyticsOptions)}return!B.isFunction(e.setFavourite)||!B.isFunction(e.canFavourite)?t.jsx(t.Fragment,{}):e.canFavourite(e.video)?t.jsxs(Me,{className:r,onClick:o,tabIndex:e.preventFocus?-1:void 0,children:[t.jsx(T,{svg:li,className:`svg-container ${ye.heart}`}),t.jsx(T,{svg:ci,className:`svg-container ${ye.heartOutline}`})]}):t.jsx(t.Fragment,{})}function Ci(e){const n=u.getVideoProgress(e.video),i=n&&e.video.duration&&n/e.video.duration*1e5;return i?t.jsx("div",{className:"bg-primary h-100",style:{width:`${i}%`}}):t.jsx(t.Fragment,{})}const fi="_bottomBar_575p1_1",xi={bottomBar:fi};function Je(e){return u.isVideo(e.video)?t.jsx("div",{className:xi.bottomBar,children:t.jsx(Ci,{video:e.video})}):t.jsx(t.Fragment,{})}const yi="d-inline-block svg-container",Li="span";function ji(e){const{children:n,className:i=yi,tagName:a=Li,size:s=Y.Standard,onClick:c,title:r,tooltipPlacement:o="right"}=e,l=a,d={className:`${i} svg-container ${s}`,onClick:B.isFunction(c)?c:null};return r?t.jsx(Q,{title:r,placement:o,children:t.jsx(l,{...d,children:n})}):t.jsx(l,{...d,children:n})}const wi="_std_1fcr4_1",bi="_sm_1fcr4_5",ki="_stdIcon_1fcr4_10",Ni="_smIcon_1fcr4_21",ne={std:wi,sm:bi,stdIcon:ki,smIcon:Ni};function pe(e){var n,i,a;return!u.isInteractive(e.video)&&!u.isClip(e.video)?t.jsx(t.Fragment,{}):!e.video._liteOwner&&!((n=e.video._isClickViewCurated)!=null&&n.value)?t.jsx(t.Fragment,{}):(i=e.video._isClickViewCurated)!=null&&i.value?t.jsx("div",{className:`${e.size==="sm"?ne.sm:ne.std} me-1 rounded-circle position-relative bg-white`,children:t.jsx(ji,{className:`me-1 ${e.size==="sm"?ne.smIcon:ne.stdIcon}`,children:t.jsx(Cn,{})})}):t.jsx("div",{className:`${e.size==="sm"?ne.sm:ne.std} me-1`,children:t.jsx(fn,{imageCdnUrl:e.imageCdnUrl,initials:xn.getInitials(e.video._liteOwner.name,e.video._liteOwner.surname),imageUrl:(a=e.video._liteOwner.avatar)==null?void 0:a.url})})}const Ii="_pluginHover_wpoz0_1",Si={pluginHover:Ii},Pi="shared.pluginHover";function et(e){return!e.isPlugin||e.isPluginPopup?t.jsx(t.Fragment,{}):t.jsx($,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,onClick:e.onClick,className:`
1
+ import{r as y,a3 as vn,aD as hn,j as t,ak as Ct,aq as $,B as X,aE as ft,ab as Oe,af as O,ae as ke,ad as ae,R as w,aF as Gt,c as I,F as B,w as Me,G as T,L as E,Q as Y,K as Q,az as Cn,V as fn,J as xn,au as yn,ap as de,M as Ee,Z as ue,aw as Ne,ar as He,q as zt,aG as Ut,aB as xt,a0 as Ln,ax as F,at as Be,A as jn}from"./app-DQUfzK7M.js";import{b as wn}from"./LSG3wJaJ.chunk.js";import{u as bn,a as kn,b as Nn,C as Ge,i as In,c as Sn,g as Pn,K as fe,D as _n}from"./Da4lOHud.chunk.js";import{G as An,V,R as ze,a as Vn,C as $n}from"./CA1kXo4c.chunk.js";import{S as Tn}from"./-rc15O6e.chunk.js";import{V as u}from"./CLzmMPfE.chunk.js";import{B as p,a as W,C as Dn}from"./CLeOFM0_.chunk.js";import{B as Ue}from"./CWEHmLar.chunk.js";import{u as Rn}from"./JVtTNBu8.chunk.js";import{B as Ze}from"./UPyh9hOq.chunk.js";import{g as Fn,B as On,I as We,a as Ye}from"./Du1vfrL1.chunk.js";import{L as Zt,R as Qe,a as En}from"./BCGCl500.chunk.js";import{T as yt,u as Mn,O as Lt,V as Ie,c as Hn,I as Bn,b as Gn,R as zn,L as Un}from"./afx3pyqK.chunk.js";import{a as qe,u as ge}from"./Bel5ImAj.chunk.js";import{C as Zn}from"./BFAbrH3V.chunk.js";import{M as re}from"./_sYSSSUN.chunk.js";import{A as Wn}from"./CYnIJ9Yj.chunk.js";import{H as P}from"./Kj832An8.chunk.js";var R=(e=>(e[e.MultipleChoice=1]="MultipleChoice",e[e.ShortAnswer=2]="ShortAnswer",e[e.TrueOrFalse=3]="TrueOrFalse",e[e.Annotation=4]="Annotation",e[e.Image=5]="Image",e[e.MissingWord=6]="MissingWord",e[e.Illustration=7]="Illustration",e))(R||{});const Yn={},Qn=y.createContext(null);function qn(e){return"series"in e?wn(e.series):null}function as(){var i;const e=vn(hn.config());return{hasCommonVideoPropsCompleted:e.hasCompleted,commonVideoProps:{subTextType:"series",getSubTextAppLink:qn,isPlugin:!1,canFavourite:null,setFavourite:null,yearGroups:null,imageCdnUrl:(i=e.data)==null?void 0:i.imageCdnUrl,getClassroomGuideAppLink:null,getInteractiveGuidanceAppLink:null,getResourceGuidanceAppLink:null,showNewVideoIndicator:!1,companyLogoFallbackUrl:null,hasStudentExperience:!1,hasGuestExperience:!1}}}function jt(e,n,i){if(!n)return null;const a=e.params??{};return i?a!=null&&a.previous?{application:e.application,action:e.action,args:e.args,params:{...a,cursor:a==null?void 0:a.previous,previous:null}}:{application:e.application,action:e.action,args:e.args,params:{...a,cursor:null,previous:null}}:{application:e.application,action:e.action,args:e.args,params:{...a,cursor:n,previous:a.cursor}}}Wt.defaultProps={className:"py-2",buttonVariant:"secondary"};function Wt({appLink:e,cursors:n,className:i,buttonVariant:a,prevHack:s,scrollTop:c,onClick:r}){function o(l){e&&c===!1&&Tn.preventScrollTop(),Oe.logUserAction({page:l},{location:ae.Pagination,entity:ke.Pagination,actionType:O.Navigate}),r&&r(n[l])}return e?t.jsx(Ct.Provider,{value:"shared.pagination",children:t.jsxs("div",{className:i,children:[t.jsx($,{appLink:jt(e,n.previous,s),className:`btn btn-${a} me-1 ${n.previous?"":"disabled"}`,onClick:()=>o("previous"),style:{display:"inline-block"},children:t.jsx(X,{phrase:"previous"})}),t.jsx($,{appLink:jt(e,n.next),className:`btn btn-${a} ${n.next?"":"disabled"}`,onClick:()=>o("next"),style:{display:"inline-block"},children:t.jsx(X,{phrase:"next"})})]})}):t.jsx(Ct.Provider,{value:"shared.pagination",children:t.jsxs("div",{className:i,children:[t.jsx(ft,{variant:a,className:`me-1 ${n.previous?"":"disabled"}`,onClick:()=>o("previous"),children:t.jsx(X,{phrase:"previous"})}),t.jsx(ft,{variant:a,className:`btn ${n.next?"":"disabled"}`,onClick:()=>o("next"),children:t.jsx(X,{phrase:"next"})})]})})}function Yt(e,n,i){const a=e.slice();return a.splice(i<0?a.length+i:i,0,a.splice(n,1)[0]),a}function xe(e){return e!==null&&e>=0}const Kn=e=>{let{rects:n,activeIndex:i,overIndex:a,index:s}=e;const c=Yt(n,a,i),r=n[s],o=c[s];return!o||!r?null:{x:o.left-r.left,y:o.top-r.top,scaleX:o.width/r.width,scaleY:o.height/r.height}},Xn="Sortable",Jn=w.createContext({activeIndex:-1,containerId:Xn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Kn,disabled:{draggable:!1,droppable:!1}}),pn=e=>{let{id:n,items:i,activeIndex:a,overIndex:s}=e;return Yt(i,a,s).indexOf(n)},ei=e=>{let{containerId:n,isSorting:i,wasDragging:a,index:s,items:c,newIndex:r,previousItems:o,previousContainerId:l,transition:d}=e;return!d||!a||o!==c&&s===r?!1:i?!0:r!==s&&n===l},ti={duration:200,easing:"ease"},Qt="transform",ni=Ge.Transition.toString({property:Qt,duration:0,easing:"linear"}),ii={roleDescription:"sortable"};function ai(e){let{disabled:n,index:i,node:a,rect:s}=e;const[c,r]=y.useState(null),o=y.useRef(i);return Sn(()=>{if(!n&&i!==o.current&&a.current){const l=s.current;if(l){const d=Pn(a.current,{ignoreTransform:!0}),m={x:l.left-d.left,y:l.top-d.top,scaleX:l.width/d.width,scaleY:l.height/d.height};(m.x||m.y)&&r(m)}}i!==o.current&&(o.current=i)},[n,i,a,s]),y.useEffect(()=>{c&&requestAnimationFrame(()=>{r(null)})},[c]),c}function si(e){let{animateLayoutChanges:n=ei,attributes:i,disabled:a,data:s,getNewIndex:c=pn,id:r,strategy:o,resizeObserverConfig:l,transition:d=ti}=e;const{items:m,containerId:g,activeIndex:v,disabled:h,disableTransforms:x,sortedRects:f,overIndex:C,useDragOverlay:N,strategy:_}=y.useContext(Jn),L=oi(a,h),j=m.indexOf(r),S=y.useMemo(()=>({sortable:{containerId:g,index:j,items:m},...s}),[g,s,j,m]),G=y.useMemo(()=>m.slice(m.indexOf(r)),[m,r]),{rect:z,node:D,isOver:q,setNodeRef:se}=bn({id:r,data:S,disabled:L.droppable,resizeObserverConfig:{updateMeasurementsFor:G,...l}}),{active:U,activatorEvent:he,activeNodeRect:b,attributes:Ce,setNodeRef:ut,listeners:sn,isDragging:Te,over:on,setActivatorNodeRef:rn,transform:cn}=kn({id:r,data:S,attributes:{...ii,...i},disabled:L.draggable}),ln=Nn(se,ut),ee=!!U,mt=ee&&!x&&xe(v)&&xe(C),gt=!N&&Te,vt=gt&&mt?cn:null,dn=mt?vt??(o??_)({rects:f,activeNodeRect:b,activeIndex:v,overIndex:C,index:j}):null,oe=xe(v)&&xe(C)?c({id:r,items:m,activeIndex:v,overIndex:C}):j,te=U==null?void 0:U.id,k=y.useRef({activeId:te,items:m,newIndex:oe,containerId:g}),un=m!==k.current.items,ht=n({active:U,containerId:g,isDragging:Te,isSorting:ee,id:r,index:j,items:m,newIndex:k.current.newIndex,previousItems:k.current.items,previousContainerId:k.current.containerId,transition:d,wasDragging:k.current.activeId!=null}),De=ai({disabled:!ht,index:j,node:D,rect:z});return y.useEffect(()=>{ee&&k.current.newIndex!==oe&&(k.current.newIndex=oe),g!==k.current.containerId&&(k.current.containerId=g),m!==k.current.items&&(k.current.items=m)},[ee,oe,g,m]),y.useEffect(()=>{if(te===k.current.activeId)return;if(te&&!k.current.activeId){k.current.activeId=te;return}const gn=setTimeout(()=>{k.current.activeId=te},50);return()=>clearTimeout(gn)},[te]),{active:U,activeIndex:v,attributes:Ce,data:S,rect:z,index:j,newIndex:oe,items:m,isOver:q,isSorting:ee,isDragging:Te,listeners:sn,node:D,overIndex:C,over:on,setNodeRef:ln,setActivatorNodeRef:rn,setDroppableNodeRef:se,setDraggableNodeRef:ut,transform:De??dn,transition:mn()};function mn(){if(De||un&&k.current.newIndex===j)return ni;if(!(gt&&!In(he)||!d)&&(ee||ht))return Ge.Transition.toString({...d,property:Qt})}}function oi(e,n){var i,a;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(i=e==null?void 0:e.draggable)!=null?i:n.draggable,droppable:(a=e==null?void 0:e.droppable)!=null?a:n.droppable}}fe.Down,fe.Right,fe.Up,fe.Left;function ri(e,n,i){return n!==e?null:i>n?"down":i<n?"up":null}function Ke(e){const{setNodeRef:n,transform:i,transition:a,isSorting:s,listeners:c,attributes:r,activeIndex:o,overIndex:l,index:d}=si({id:e.id}),m={transform:Ge.Transform.toString(i),transition:a,touchAction:"none",position:"relative"};s&&d===o&&(m.visibility="hidden");const g=e.childComponent,v=ri(d,o,l);return t.jsx(g,{...e.childProps,ref:n,style:m,dragListeners:c,dragAttributes:r,dragDirection:v})}function ci(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805m.812-10.7.001-.004.007-.022.03-.097a5.83 5.83 0 0 1 .744-1.463c.565-.798 1.428-1.532 2.72-1.532 2.03 0 3.516 1.72 3.516 3.866 0 1.445-.713 2.686-2.089 4.119-.944.984-2.151 2.01-3.579 3.224-.575.49-1.187 1.01-1.832 1.57-.645-.56-1.257-1.08-1.832-1.57-1.428-1.214-2.635-2.24-3.58-3.224C5.214 12.11 4.5 10.869 4.5 9.423c0-2.146 1.487-3.865 3.517-3.865 1.29 0 2.154.734 2.719 1.532a5.8 5.8 0 0 1 .774 1.56l.007.022v.004a.5.5 0 0 0 .965 0"})})}function li(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",fillOpacity:.9,d:"M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805"})})}const ve={isFavouritedByCurrentUser(e){var n;return((n=e==null?void 0:e.favouritedBy)==null?void 0:n.data.length)===1},isFavouritedByUser(e,n){var i;return!!I.findWhere((i=e==null?void 0:e.favouritedBy)==null?void 0:i.data,{id:n==null?void 0:n.id})},updateVideoState(e,n,i){return{id:e.id,favouritedBy:{data:i?[{id:n.id}]:[],pagination:{limit:25,cursors:{next:"",previous:""}}}}},showFavouriteButton(e,n){var i;return(i=u.getCanBeConsumed(e))!=null&&i.canConsume?!!(n||Gt.isTabletOrMobile()||ve.isFavouritedByCurrentUser(e)):!1}},di="_favourited_19h9u_1",ui="_favouriteButton_19h9u_1",mi="_heart_19h9u_5",gi="_heartOutline_19h9u_16",ye={favourited:di,favouriteButton:ui,heart:mi,heartOutline:gi},vi="shared.favouriteButton",hi=E.encloseNamespace(vi);function Xe(e){const n=Rn(),i=ve.isFavouritedByCurrentUser(e.video),[a,s]=y.useState(i);y.useEffect(()=>{s(i)},[i]);let r=`d-flex align-items-center justify-content-center cursor-pointer ${ye.favouriteButton} ${a?ye.favourited:""}`;e.className&&(r+=` ${e.className}`);function o(){const l=!a;function d(){function m(){return u.isClip(e.video)?l?"favouriteClipError":"unfavouriteClipError":u.isInteractive(e.video)?l?"favouriteInteractiveError":"unfavouriteInteractiveError":l?"favouriteVideoError":"unfavouriteVideoError"}n.error(hi(m())),s(!l)}s(l),e.setFavourite(e.video,l,null,d,e.analyticsData,e.analyticsOptions)}return!B.isFunction(e.setFavourite)||!B.isFunction(e.canFavourite)?t.jsx(t.Fragment,{}):e.canFavourite(e.video)?t.jsxs(Me,{className:r,onClick:o,tabIndex:e.preventFocus?-1:void 0,children:[t.jsx(T,{svg:li,className:`svg-container ${ye.heart}`}),t.jsx(T,{svg:ci,className:`svg-container ${ye.heartOutline}`})]}):t.jsx(t.Fragment,{})}function Ci(e){const n=u.getVideoProgress(e.video),i=n&&e.video.duration&&n/e.video.duration*1e5;return i?t.jsx("div",{className:"bg-primary h-100",style:{width:`${i}%`}}):t.jsx(t.Fragment,{})}const fi="_bottomBar_575p1_1",xi={bottomBar:fi};function Je(e){return u.isVideo(e.video)?t.jsx("div",{className:xi.bottomBar,children:t.jsx(Ci,{video:e.video})}):t.jsx(t.Fragment,{})}const yi="d-inline-block svg-container",Li="span";function ji(e){const{children:n,className:i=yi,tagName:a=Li,size:s=Y.Standard,onClick:c,title:r,tooltipPlacement:o="right"}=e,l=a,d={className:`${i} svg-container ${s}`,onClick:B.isFunction(c)?c:null};return r?t.jsx(Q,{title:r,placement:o,children:t.jsx(l,{...d,children:n})}):t.jsx(l,{...d,children:n})}const wi="_std_1fcr4_1",bi="_sm_1fcr4_5",ki="_stdIcon_1fcr4_10",Ni="_smIcon_1fcr4_21",ne={std:wi,sm:bi,stdIcon:ki,smIcon:Ni};function pe(e){var n,i,a;return!u.isInteractive(e.video)&&!u.isClip(e.video)?t.jsx(t.Fragment,{}):!e.video._liteOwner&&!((n=e.video._isClickViewCurated)!=null&&n.value)?t.jsx(t.Fragment,{}):(i=e.video._isClickViewCurated)!=null&&i.value?t.jsx("div",{className:`${e.size==="sm"?ne.sm:ne.std} me-1 rounded-circle position-relative bg-white`,children:t.jsx(ji,{className:`me-1 ${e.size==="sm"?ne.smIcon:ne.stdIcon}`,children:t.jsx(Cn,{})})}):t.jsx("div",{className:`${e.size==="sm"?ne.sm:ne.std} me-1`,children:t.jsx(fn,{imageCdnUrl:e.imageCdnUrl,initials:xn.getInitials(e.video._liteOwner.name,e.video._liteOwner.surname),imageUrl:(a=e.video._liteOwner.avatar)==null?void 0:a.url})})}const Ii="_pluginHover_wpoz0_1",Si={pluginHover:Ii},Pi="shared.pluginHover";function et(e){return!e.isPlugin||e.isPluginPopup?t.jsx(t.Fragment,{}):t.jsx($,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,onClick:e.onClick,className:`
2
2
  position-absolute top-0 start-0 end-0 bottom-0 opacity-0 cursor-pointer
3
3
  ${Si.pluginHover}
4
4
  ${e.className?e.className:""}
@@ -47,4 +47,4 @@ import{r as y,a3 as vn,aD as hn,j as t,ak as Ct,aq as $,B as X,aE as ft,ab as Oe
47
47
  <path fill-rule='evenodd' clip-rule='evenodd' d='M18.2411 13.7881C18.2887 13.5157 18.0395 13.2465 17.6953 13.3346C17.3344 13.4271 16.9508 13.4506 16.5627 13.3938C15.8185 14.404 15.232 15.0693 14.7556 15.4771C14.9397 15.8591 14.9223 16.3164 14.7953 16.7237C14.663 17.148 14.3965 17.5746 14.004 17.9197C13.1974 18.6288 11.9124 18.9538 10.252 18.3555L9.6361 18.1336L10.8248 16.4403C10.8536 16.3994 10.895 16.2797 10.948 15.9967C10.9568 15.9502 10.9658 15.8998 10.9752 15.8466L10.9753 15.846L10.9754 15.8459L10.9754 15.8459C11.0141 15.6287 11.0613 15.3639 11.1335 15.1223C11.2242 14.8188 11.3771 14.4637 11.6835 14.2095C11.9817 13.9622 12.3608 13.8619 12.8023 13.9024C13.0571 13.2864 13.5182 12.476 14.2494 11.3987L14.2357 11.357C14.2007 11.2488 14.1511 11.0868 14.119 10.8858C14.0536 10.4764 14.0643 9.9266 14.3604 9.29657C14.4494 9.10715 14.5146 8.91445 14.5573 8.72168C14.8536 7.38674 14.077 6.0484 12.7163 5.76998C12.6531 5.75701 12.5892 5.74486 12.5246 5.73347C8.70188 5.05944 5.05659 7.61193 4.38254 11.4346C3.70848 15.2574 6.26101 18.9027 10.0837 19.5768C13.9064 20.2508 17.5518 17.6983 18.2258 13.8756L18.2411 13.7881ZM15.8626 12.6572C15.8947 12.5723 15.9481 12.5005 16.0149 12.4463C16.091 12.34 16.1692 12.2296 16.2493 12.1152C17.2716 10.6552 18.1315 9.27136 18.6754 8.22122C18.8855 7.81559 19.042 7.47194 19.1431 7.19994C18.9065 7.38016 18.6161 7.63896 18.2839 7.97168C17.4465 8.81052 16.4034 10.0589 15.3866 11.5111C14.5179 12.7517 14.0214 13.6064 13.7659 14.1913L14.285 14.5548C14.6757 14.1827 15.1887 13.5831 15.8626 12.6572ZM17.4471 12.3659C17.3881 12.381 17.3282 12.3933 17.2674 12.4027C18.2189 11.0249 19.029 9.71286 19.5633 8.68114C19.8471 8.13334 20.0641 7.64372 20.1787 7.25589C20.2351 7.06519 20.2765 6.8674 20.2745 6.68479C20.2725 6.51587 20.2295 6.23216 19.9736 6.05296C19.7244 5.87848 19.4469 5.92652 19.2885 5.97523C19.1139 6.02893 18.9362 6.12717 18.7674 6.23956C18.4249 6.46764 18.0169 6.82379 17.5762 7.26518C16.8442 7.99842 15.9806 9.00929 15.1147 10.1778C15.1398 10.0455 15.1836 9.90125 15.2542 9.74611L15.2654 9.72185C16.2163 7.69819 15.1756 5.25268 12.9173 4.7904C12.8445 4.77544 12.7715 4.76158 12.6983 4.74868C8.33172 3.97872 4.16769 6.89438 3.39773 11.261C2.62777 15.6276 5.54347 19.7916 9.91006 20.5616C14.2767 21.3315 18.4407 18.4159 19.2106 14.0492L19.2262 13.9606C19.4123 12.8961 18.4178 12.1172 17.4471 12.3659ZM11.6433 17.0149C11.8176 16.7665 11.8855 16.4229 11.9309 16.1811C11.9432 16.1158 11.9545 16.0525 11.9655 15.9909C12.0033 15.7804 12.0374 15.5901 12.0916 15.4086C12.161 15.1765 12.2405 15.0468 12.3219 14.9792C12.3717 14.9379 12.4608 14.8871 12.649 14.894L13.8774 15.9774C13.9004 16.0738 13.9028 16.2267 13.8406 16.426C13.7637 16.6728 13.6001 16.9432 13.3438 17.1686C12.934 17.5288 12.2479 17.8037 11.2342 17.5976L11.6433 17.0149ZM7 14.5C7 14.7761 7.22386 15 7.5 15C7.77614 15 8 14.7761 8 14.5C8 14.2239 7.77614 14 7.5 14C7.22386 14 7 14.2239 7 14.5ZM9 14.5C9 15.3284 8.32843 16 7.5 16C6.67157 16 6 15.3284 6 14.5C6 13.6716 6.67157 13 7.5 13C8.32843 13 9 13.6716 9 14.5ZM11.6 8.5C11.6 8.77614 11.3761 9 11.1 9C10.8238 9 10.6 8.77614 10.6 8.5C10.6 8.22386 10.8238 8 11.1 8C11.3761 8 11.6 8.22386 11.6 8.5ZM9.59998 8.5C9.59998 9.32843 10.2715 10 11.1 10C11.9284 10 12.6 9.32843 12.6 8.5C12.6 7.67157 11.9284 7 11.1 7C10.2715 7 9.59998 7.67157 9.59998 8.5ZM7.70007 11C7.42393 11 7.20007 10.7761 7.20007 10.5C7.20007 10.2239 7.42393 10 7.70007 10C7.97622 10 8.20007 10.2239 8.20007 10.5C8.20007 10.7761 7.97622 11 7.70007 11ZM7.70007 12C8.5285 12 9.20007 11.3284 9.20007 10.5C9.20007 9.67157 8.5285 9 7.70007 9C6.87165 9 6.20007 9.67157 6.20007 10.5C6.20007 11.3284 6.87165 12 7.70007 12Z' />
48
48
  </svg>
49
49
  `}const j1=E.encloseNamespace("shared.interactionTypes"),A=(e,n)=>E.isInitialised()?j1(e):n;function K(e){return t.jsx("div",{dangerouslySetInnerHTML:{__html:e}})}const w1={[R.Annotation](){return{name:A("annotationName","Annotation"),bgClassName:"bg-pink",Svg:()=>K(Et()),svgEl:Et(),typeName:"annotation"}},[R.Image](){return{name:A("imageName","Image"),bgClassName:"bg-orange",Svg:()=>K(Ot()),svgEl:Ot(),typeName:"image"}},[R.MissingWord](){return{name:A("missingWordName","Fill in the blank"),prompt:A("missingWordPrompt","Fill in the blank by typing the missing word(s)"),bgClassName:"bg-teal",Svg:()=>K(Rt()),svgEl:Rt(),typeName:"missing-word"}},[R.MultipleChoice](){return{name:A("multipleChoiceName","Multiple choice"),prompt:A("multipleChoicePrompt","Choose the correct answer(s)"),bgClassName:"bg-blue",Svg:()=>K(Ft()),svgEl:Ft(),typeName:"multiple-choice"}},[R.ShortAnswer](){return{name:A("shortAnswerName","Short answer"),prompt:A("shortAnswerPrompt","Type in your answer to the question"),bgClassName:"bg-green",Svg:()=>K(Dt()),svgEl:Dt(),typeName:"short-answer"}},[R.TrueOrFalse](){return{name:A("trueOrFalseName","True or false"),prompt:A("trueOrFalsePrompt","Choose the correct answer"),bgClassName:"bg-purple",Svg:()=>K(Tt()),svgEl:Tt(),typeName:"true-or-false"}},[R.Illustration](){return{name:A("illustrationName","Illustrate"),prompt:A("illustrationPrompt","Draw the answer"),bgClassName:"bg-indigo",Svg:()=>K(Mt()),svgEl:Mt(),typeName:"illustration"}}},b1={getTypeInfo:e=>{const n=w1[e];if(!n){zt.throw(new Ut(`No type info defined for typeId: ${e}`));return}return n()}};function k1(e,n,i){return e.replace(new RegExp(`<${n}.*?>`,"gi"),"").replace(new RegExp(`</${n}>`,"gi"),i?"<br>":"")}function Ht(e,n,i=!1){return!e||!n.length?e:n.reduce((a,s)=>k1(a,s,i),e)}const N1={stripTags(e){var s,c,r;const{text:n,fallbackText:i}=e;if(!n)return;let a=n;return a=Ht(a,["ul","ol","b","i","u","old","em","strong","sup","sub","a","span","svg","path"]),a=Ht(a,["li","p","div"],!0),((r=(c=(s=a.split("<br>"))==null?void 0:s.filter(o=>!!o))==null?void 0:c.join(""))==null?void 0:r.trim())||i}};function I1(e){return N1.stripTags({text:e,fallbackText:"Annotation"})}nn.defaultProps={showIcon:!0,showQuestion:!0};function nn(e){const{name:n,bgClassName:i,Svg:a}=b1.getTypeInfo(e.interaction.typeId),s=e.questionNumber?`${e.questionNumber}. `:"";let c=`interaction-type-icon flex-shrink-0 ${i}`;return e.smallIcon&&(c+=" sm"),(e.showQuestion||e.showTypeName)&&(c+=e.smallIcon?" me-1":" me-2"),e.iconClassName&&(c+=` ${e.iconClassName}`),t.jsxs("span",{className:e.containerClassName,children:[!!e.showIcon&&t.jsx("span",{className:c,children:t.jsx(a,{})}),t.jsxs($,{appLink:e.appLink,onClick:e.onClick,children:[!!e.showTypeName&&t.jsx("span",{className:e.typeNameClassName,children:t.jsxs("strong",{children:[s,n]})}),!!e.showQuestion&&t.jsx("span",{className:e.questionClassName,children:e.interaction.typeId===R.Annotation?t.jsx("span",{dangerouslySetInnerHTML:{__html:I1(e.interaction.data.annotation)}}):e.interaction.name})]})]})}const S1="shared.interactiveItem";function P1(e){const n=Vn();return typeof e=="number"?e:n===re.XS?3:n===re.SM?1:n===re.MD||n===re.LG?2:3}function _1(e){var c;const n=P1(e.totalToDisplay);if(!((c=e.timepoints)!=null&&c.length))return t.jsx(t.Fragment,{});const i=[];let a=0;e.timepoints.forEach(r=>{r==null||r.interactions.forEach(o=>{if(Yn[o.typeId]||a>=n)return;a++;const l=o.typeId===R.Annotation&&typeof o.data=="string"?JSON.parse(o.data):o.data,d={...o,data:{...l,appLink:e.appLink&&{...e.appLink,params:{t:Math.floor(r.visibleAt/1e3)}}}};i.push(d)})});const s=e.timepoints.reduce((r,o)=>{var d;const l=((d=o==null?void 0:o.interactions)==null?void 0:d.length)??0;return r+=l,r},0);return i.length?t.jsxs(t.Fragment,{children:[i.map((r,o)=>{var l,d;return t.jsx("div",{className:"d-flex align-items-center mb-1",children:t.jsx("div",{className:"clamp-1",children:t.jsx(nn,{interaction:r,appLink:(l=r.data)==null?void 0:l.appLink,onClick:(d=r.data)!=null&&d.appLink?e.onClickAppLink:null,smallIcon:!0})})},o)}),t.jsx("div",{className:"mb-1 text-link",children:t.jsx($,{className:"cursor-pointer hover-text-underline",appLink:e.previewAppLink,onClick:e.onClickAppLink,children:t.jsx(X,{namespace:S1,phrase:"previewQuestions",options:{questionsShown:i.length,smartCount:s}})})})]}):t.jsx(t.Fragment,{})}const an=y.forwardRef((e,n)=>{var f,C,N;const i=Be(),[a,s]=ge(),c=V.getSize(i,e.size),r=c==="sm",{isSortable:o}=y.useContext($e),l=lt((f=e.video.subjectPresentationAudiences)==null?void 0:f.data,e.presentationAudiences),d=o&&!i.xs&&(s||typeof e.index>"u"||!e.showIndexes),m=e.showIndexes&&!d&&!i.xs,g=(d||e.showIndexes)&&!i.xs,v=e.getVideoAppLink(e.video,{}),h={analyticsData:e.analyticsData,analyticsOptions:{entity:ke.Interactive,location:ae.InteractiveListItem}},{canNavigate:x}=u.getCanBeConsumed(e.video);return t.jsx("div",{ref:a,className:"w-100",children:t.jsxs("div",{className:"row g-0 py-2",ref:n,style:e.style,children:[t.jsx(F,{...V.getThumbnailColumns(),className:`flex-column align-items-flex-start ${r?"pb-2 pe-2":"mb-1 px-2"}`,children:t.jsxs(ze,{children:[t.jsx(Ae,{index:e.index,showDragHandle:d,showIndexes:m,dragHandleIcon:e.dragHandleIcon,dragHandleIconSize:e.dragHandleIconSize,dragAttributes:e.dragAttributes,dragListeners:e.dragListeners}),t.jsx(F,{xs:V.getThumbnailColSize(g),children:t.jsx(_e,{...h,video:e.video,appLink:v,audience:l,imageOptions:{size:de.Medium},textPosition:H.Independent,type:"static",hideDuration:r,commonVideoProps:{...e.commonVideoProps,subTextType:"none"}})})]})}),t.jsxs(F,{...V.getDetailsColumns(),className:`position-relative ${r?"pb-2":"px-2"}`,children:[t.jsxs("div",{className:"d-flex justify-content-between",children:[t.jsx(Ve,{video:e.video,appLink:v,size:c,yearGroups:e.commonVideoProps.yearGroups,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience,linkClassName:"flex-grow-1",...h}),t.jsx(ct,{...h,video:e.video,showSignIn:e.showSignIn,signInAppLink:(C=e.getSignInAppLink)==null?void 0:C.call(e,v)})]}),x?t.jsx("div",{className:"pt-sm-1 pt-md-0",children:t.jsx(_1,{timepoints:(N=e.video._timepoints)==null?void 0:N.value,appLink:v,previewAppLink:e.getPreviewQuestionsAppLink(e.video)})}):t.jsx(ot,{video:e.video,showSignIn:e.showSignIn,hasStudentExperience:e.commonVideoProps.hasStudentExperience,hasGuestExperience:e.commonVideoProps.hasGuestExperience}),!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience&&t.jsx(rt,{video:e.video,yearGroups:e.commonVideoProps.yearGroups})]})]})})}),A1=e=>t.jsx(Ke,{id:e.video.id,childComponent:an,childProps:e}),V1="_responsiveGuidance_kx84c_2",$1={responsiveGuidance:V1},dt=y.forwardRef((e,n)=>{var N,_,L,j;const i=Be(),[a,s]=ge(),c=V.getSize(i,e.size),r=c==="sm",{isSortable:o}=y.useContext($e),l=(_=(N=e.video)==null?void 0:N.subjectPresentationAudiences)==null?void 0:_.data,d=lt(l,e.presentationAudiences),m=o&&!i.xs&&(s||typeof e.index>"u"||!e.showIndexes),g=e.showIndexes&&!m&&!i.xs,v=(m||e.showIndexes)&&!i.xs,h=(L=e.getVideoAppLink)==null?void 0:L.call(e,e.video,{});function x(){var S,G;return(G=(S=e.commonVideoProps).getSubTextAppLink)==null?void 0:G.call(S,e.video)}const f=x(),C={analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions??{entity:ke.Video,location:ae.VideoListItem}};return t.jsx("div",{ref:a,className:"w-100",children:t.jsxs("div",{className:`row g-0 ${r?"":"py-2"}`,style:e.style,ref:n,children:[t.jsx(F,{...V.getThumbnailColumns(),className:"flex-column align-items-flex-start mb-1 mb-sm-0 pb-sm-2 pe-sm-2 px-md-2 pb-md-0",children:t.jsxs(ze,{children:[t.jsx(Ae,{index:e.index,showDragHandle:m,showIndexes:g,dragHandleIcon:e.dragHandleIcon,dragHandleIconSize:e.dragHandleIconSize,dragAttributes:e.dragAttributes,dragListeners:e.dragListeners}),t.jsx(F,{xs:V.getThumbnailColSize(v),children:t.jsx(_e,{...C,video:e.video,appLink:h,audience:d,imageOptions:{size:v?de.Small:de.Medium},textPosition:H.Independent,type:"static",hideRating:!1,commonVideoProps:e.commonVideoProps})})]})}),t.jsxs(F,{...V.getDetailsColumns(),className:"d-flex position-relative flex-column px-0 px-md-2 pb-0 pb-sm-2 pb-md-0 justify-content-md-between",children:[t.jsxs("div",{children:[t.jsxs("div",{className:"d-flex justify-content-between",children:[t.jsxs("div",{className:"flex-grow-1",children:[t.jsx(Ie,{...C,video:e.video,appLink:f,type:e.commonVideoProps.subTextType}),t.jsx(Ve,{...C,video:e.video,appLink:h,size:c,yearGroups:e.commonVideoProps.yearGroups,showNewVideoIndicator:e.commonVideoProps.showNewVideoIndicator,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience,titleClassName:"mb-0"})]}),t.jsx(ct,{...C,video:e.video,showSignIn:e.showSignIn,signInAppLink:(j=e.getSignInAppLink)==null?void 0:j.call(e,h)})]}),!r&&t.jsx(ot,{video:e.video,showSignIn:e.showSignIn,hasStudentExperience:e.commonVideoProps.hasStudentExperience,hasGuestExperience:e.commonVideoProps.hasGuestExperience}),!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience&&t.jsx(rt,{video:e.video,yearGroups:e.commonVideoProps.yearGroups})]}),!e.hideVideoGuidance&&t.jsx(st,{video:e.video,getVideoAppLink:e.getVideoAppLink,commonVideoProps:e.commonVideoProps,containerClassName:"d-flex justify-content-start align-items-center pt-sm-1 gap-1",responsiveClassName:$1.responsiveGuidance,...C})]})]})})});dt.defaultProps={dragHandleIcon:en,dragHandleIconSize:Y.Small,size:"md"};const T1=e=>t.jsx(Ke,{id:e.video.id,childComponent:dt,childProps:e}),D1="_videoList_ix6n3_4",R1="_dragStyle_ix6n3_31",Bt={videoList:D1,dragStyle:R1},F1="shared.videoList",O1=E.encloseNamespace(F1);function E1(e,n){return u.isClip(e)?n?L1:tn:u.isInteractive(e)?n?A1:an:n?T1:dt}const $e=y.createContext({isSortable:!1});function ss(e){const{isSortable:n}=y.useContext($e),[i,a]=y.useState(!1),{checkboxHelper:s}=e,c=jn.getCurrentAppLink();return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:`position-relative ${Bt.videoList}`,children:e.videos.map((r,o)=>{const l=E1(r,n),d=Number.isInteger(e.startingPositionIndex)?e.startingPositionIndex:0,m=s&&s.getSelectedCount()>1&&s.isChecked(r.id)?s.getSelected():r,g=typeof e.getAnalyticsData=="function"?e.getAnalyticsData(o):{pagePositionIndex:d+o};return t.jsx(_n,{draggable:e.drag&&!n&&{id:r.id,data:m},dragStyle:Bt.dragStyle,isDragging:i,setIsDragging:a,children:t.jsxs("div",{className:"d-flex flex-row align-items-center",children:[e.allowBulkAction&&t.jsx($n,{className:"mx-0 mx-md-2",id:r.id,ariaLabel:`${O1("ariaBulkAction")}: ${r.name}`,onChange:()=>s.onToggleItem(r.id),checked:s.isChecked(r.id)}),t.jsx(l,{video:r,index:o,getVideoAppLink:e.getVideoAppLink,dragHandleIcon:e.dragHandleIcon,dragHandleIconSize:e.dragHandleIconSize,showSignIn:e.showSignIn,getSignInAppLink:e.getSignInAppLink,analyticsData:g,hasPermissions:e.hasPermissions,canRemovePrivateVideos:e.canRemovePrivateVideos,presentationAudiences:e.presentationAudiences,showIndexes:e.showIndexes,getPreviewQuestionsAppLink:e.getPreviewQuestionsAppLink,hideVideoGuidance:e.hideVideoGuidance,showOwner:e.showOwner,commonVideoProps:e.commonVideoProps,analyticsOptions:e.analyticsOptions})]})},`${r.id}:${o}`)})}),e.cursors&&t.jsx(Wt,{appLink:c,cursors:e.cursors})]})}export{Ji as A,tn as C,an as I,Jt as M,H as T,ss as V,Qn as a,dt as b,lt as c,_e as d,Ve as e,u1 as f,st as g,Xt as h,as as u};
50
- //# sourceMappingURL=C3DMM71j.chunk.js.map
50
+ //# sourceMappingURL=L4fynSOH.chunk.js.map