@clickview/exchange 0.50.0-rc.2 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/en.json +1 -1
  3. package/dist/scripts/{DiR2eKm4.chunk.js → 00ZZVkz8.chunk.js} +2 -2
  4. package/dist/scripts/{DiR2eKm4.chunk.js.map → 00ZZVkz8.chunk.js.map} +1 -1
  5. package/dist/scripts/{C36BgTJV.chunk.js → 5Bk7WUgq.chunk.js} +2 -2
  6. package/dist/scripts/{C36BgTJV.chunk.js.map → 5Bk7WUgq.chunk.js.map} +1 -1
  7. package/dist/scripts/{C97fjHLE.chunk.js → 8KUv63J7.chunk.js} +2 -2
  8. package/dist/scripts/{C97fjHLE.chunk.js.map → 8KUv63J7.chunk.js.map} +1 -1
  9. package/dist/scripts/9z6_p6X0.chunk.js +2 -0
  10. package/dist/scripts/{C7lfPlyo.chunk.js.map → 9z6_p6X0.chunk.js.map} +1 -1
  11. package/dist/scripts/{CidPoXbD.chunk.js → B0940TpS.chunk.js} +2 -2
  12. package/dist/scripts/{CidPoXbD.chunk.js.map → B0940TpS.chunk.js.map} +1 -1
  13. package/dist/scripts/{Cyhg-nBj.chunk.js → B3i6vWFI.chunk.js} +2 -2
  14. package/dist/scripts/{Cyhg-nBj.chunk.js.map → B3i6vWFI.chunk.js.map} +1 -1
  15. package/dist/scripts/{DcA5xG6o.chunk.js → B67thHHx.chunk.js} +2 -2
  16. package/dist/scripts/{DcA5xG6o.chunk.js.map → B67thHHx.chunk.js.map} +1 -1
  17. package/dist/scripts/{x8TB7tv6.chunk.js → B6WUgONl.chunk.js} +2 -2
  18. package/dist/scripts/{x8TB7tv6.chunk.js.map → B6WUgONl.chunk.js.map} +1 -1
  19. package/dist/scripts/{1oBN4k-t.chunk.js → BDMJzZJS.chunk.js} +2 -2
  20. package/dist/scripts/{1oBN4k-t.chunk.js.map → BDMJzZJS.chunk.js.map} +1 -1
  21. package/dist/scripts/{CHPVU_Qn.chunk.js → BIqqvbli.chunk.js} +2 -2
  22. package/dist/scripts/{CHPVU_Qn.chunk.js.map → BIqqvbli.chunk.js.map} +1 -1
  23. package/dist/scripts/{CRomQTdh.chunk.js → BKRUQoRy.chunk.js} +2 -2
  24. package/dist/scripts/{CRomQTdh.chunk.js.map → BKRUQoRy.chunk.js.map} +1 -1
  25. package/dist/scripts/{C5r1_Fc_.chunk.js → BKyPrPT1.chunk.js} +2 -2
  26. package/dist/scripts/{C5r1_Fc_.chunk.js.map → BKyPrPT1.chunk.js.map} +1 -1
  27. package/dist/scripts/{CiRJHxmU.chunk.js → BLCv9gK3.chunk.js} +2 -2
  28. package/dist/scripts/{CiRJHxmU.chunk.js.map → BLCv9gK3.chunk.js.map} +1 -1
  29. package/dist/scripts/{BoXsW16j.chunk.js → BOqS0oAv.chunk.js} +2 -2
  30. package/dist/scripts/{BoXsW16j.chunk.js.map → BOqS0oAv.chunk.js.map} +1 -1
  31. package/dist/scripts/{dnQMOuPg.chunk.js → BP9xX_4y.chunk.js} +2 -2
  32. package/dist/scripts/{dnQMOuPg.chunk.js.map → BP9xX_4y.chunk.js.map} +1 -1
  33. package/dist/scripts/{BHy7EHYB.chunk.js → BSSwzvSU.chunk.js} +2 -2
  34. package/dist/scripts/{BHy7EHYB.chunk.js.map → BSSwzvSU.chunk.js.map} +1 -1
  35. package/dist/scripts/{B93FMGSP.chunk.js → BX6q5kK6.chunk.js} +2 -2
  36. package/dist/scripts/{B93FMGSP.chunk.js.map → BX6q5kK6.chunk.js.map} +1 -1
  37. package/dist/scripts/{C8geGHZf.chunk.js → B_Fzcc5G.chunk.js} +2 -2
  38. package/dist/scripts/{C8geGHZf.chunk.js.map → B_Fzcc5G.chunk.js.map} +1 -1
  39. package/dist/scripts/{Bq1eQRV_.chunk.js → BbKbh5tw.chunk.js} +2 -2
  40. package/dist/scripts/{Bq1eQRV_.chunk.js.map → BbKbh5tw.chunk.js.map} +1 -1
  41. package/dist/scripts/{BvnJNI_Y.chunk.js → BelnzR7T.chunk.js} +2 -2
  42. package/dist/scripts/{BvnJNI_Y.chunk.js.map → BelnzR7T.chunk.js.map} +1 -1
  43. package/dist/scripts/{DbVI3h0V.chunk.js → Bh_H4xlD.chunk.js} +2 -2
  44. package/dist/scripts/{DbVI3h0V.chunk.js.map → Bh_H4xlD.chunk.js.map} +1 -1
  45. package/dist/scripts/{C99JIGI3.chunk.js → Blfyr1LY.chunk.js} +2 -2
  46. package/dist/scripts/{C99JIGI3.chunk.js.map → Blfyr1LY.chunk.js.map} +1 -1
  47. package/dist/scripts/{B1QnQX6X.chunk.js → BnvEXqRe.chunk.js} +2 -2
  48. package/dist/scripts/{B1QnQX6X.chunk.js.map → BnvEXqRe.chunk.js.map} +1 -1
  49. package/dist/scripts/{DYjoaCnl.chunk.js → BoHka3Ec.chunk.js} +2 -2
  50. package/dist/scripts/{DYjoaCnl.chunk.js.map → BoHka3Ec.chunk.js.map} +1 -1
  51. package/dist/scripts/{OvG1eOzS.chunk.js → Bq4Y5pwG.chunk.js} +2 -2
  52. package/dist/scripts/{OvG1eOzS.chunk.js.map → Bq4Y5pwG.chunk.js.map} +1 -1
  53. package/dist/scripts/{CX6fV4JE.chunk.js → BrRctFvx.chunk.js} +2 -2
  54. package/dist/scripts/{CX6fV4JE.chunk.js.map → BrRctFvx.chunk.js.map} +1 -1
  55. package/dist/scripts/{BNoyVB0N.chunk.js → C9hXChxH.chunk.js} +2 -2
  56. package/dist/scripts/{BNoyVB0N.chunk.js.map → C9hXChxH.chunk.js.map} +1 -1
  57. package/dist/scripts/CAk0J_8c.chunk.js +2 -0
  58. package/dist/scripts/{DU8kVZuh.chunk.js.map → CAk0J_8c.chunk.js.map} +1 -1
  59. package/dist/scripts/{DuHiL0j5.chunk.js → CB8-mvyD.chunk.js} +2 -2
  60. package/dist/scripts/{DuHiL0j5.chunk.js.map → CB8-mvyD.chunk.js.map} +1 -1
  61. package/dist/scripts/{z6Us1EdG.chunk.js → CGsO0liR.chunk.js} +2 -2
  62. package/dist/scripts/{z6Us1EdG.chunk.js.map → CGsO0liR.chunk.js.map} +1 -1
  63. package/dist/scripts/{CxB8O87g.chunk.js → CGuGkRe6.chunk.js} +2 -2
  64. package/dist/scripts/{CxB8O87g.chunk.js.map → CGuGkRe6.chunk.js.map} +1 -1
  65. package/dist/scripts/{Cdo-iAIt.chunk.js → CLEMYZCv.chunk.js} +2 -2
  66. package/dist/scripts/{Cdo-iAIt.chunk.js.map → CLEMYZCv.chunk.js.map} +1 -1
  67. package/dist/scripts/{BopIehJE.chunk.js → CLn62x3p.chunk.js} +2 -2
  68. package/dist/scripts/{BopIehJE.chunk.js.map → CLn62x3p.chunk.js.map} +1 -1
  69. package/dist/scripts/{WHGl124l.chunk.js → CSpsN9Sf.chunk.js} +2 -2
  70. package/dist/scripts/{WHGl124l.chunk.js.map → CSpsN9Sf.chunk.js.map} +1 -1
  71. package/dist/scripts/{l-2DoY9E.chunk.js → CYnTOjxg.chunk.js} +2 -2
  72. package/dist/scripts/{l-2DoY9E.chunk.js.map → CYnTOjxg.chunk.js.map} +1 -1
  73. package/dist/scripts/{CDVd8Gzo.chunk.js → CbbLJMD7.chunk.js} +2 -2
  74. package/dist/scripts/{CDVd8Gzo.chunk.js.map → CbbLJMD7.chunk.js.map} +1 -1
  75. package/dist/scripts/{CmcCT6Mq.chunk.js → Ch4JUcCU.chunk.js} +2 -2
  76. package/dist/scripts/{CmcCT6Mq.chunk.js.map → Ch4JUcCU.chunk.js.map} +1 -1
  77. package/dist/scripts/{CrAxON7A.chunk.js → Co1fFZfW.chunk.js} +2 -2
  78. package/dist/scripts/{CrAxON7A.chunk.js.map → Co1fFZfW.chunk.js.map} +1 -1
  79. package/dist/scripts/{-rDA7laA.chunk.js → Cr24Qwk-.chunk.js} +2 -2
  80. package/dist/scripts/{-rDA7laA.chunk.js.map → Cr24Qwk-.chunk.js.map} +1 -1
  81. package/dist/scripts/{mALBAvSP.chunk.js → CtWcMjF1.chunk.js} +2 -2
  82. package/dist/scripts/{mALBAvSP.chunk.js.map → CtWcMjF1.chunk.js.map} +1 -1
  83. package/dist/scripts/{BOzZT1qL.chunk.js → Cz5ywK2M.chunk.js} +2 -2
  84. package/dist/scripts/{BOzZT1qL.chunk.js.map → Cz5ywK2M.chunk.js.map} +1 -1
  85. package/dist/scripts/{BpkgwVDj.chunk.js → CzvwQ7VE.chunk.js} +2 -2
  86. package/dist/scripts/{BpkgwVDj.chunk.js.map → CzvwQ7VE.chunk.js.map} +1 -1
  87. package/dist/scripts/{CtciUXp4.chunk.js → D2GbHqkj.chunk.js} +2 -2
  88. package/dist/scripts/{CtciUXp4.chunk.js.map → D2GbHqkj.chunk.js.map} +1 -1
  89. package/dist/scripts/D4szUN7u.chunk.js +2 -0
  90. package/dist/scripts/{CfRzFJ31.chunk.js.map → D4szUN7u.chunk.js.map} +1 -1
  91. package/dist/scripts/{C_sNZ3q9.chunk.js → DC9G8zGt.chunk.js} +2 -2
  92. package/dist/scripts/{C_sNZ3q9.chunk.js.map → DC9G8zGt.chunk.js.map} +1 -1
  93. package/dist/scripts/{DxkmuWkI.chunk.js → DDH7BcMI.chunk.js} +2 -2
  94. package/dist/scripts/{DxkmuWkI.chunk.js.map → DDH7BcMI.chunk.js.map} +1 -1
  95. package/dist/scripts/{DHjeFsuP.chunk.js → DDceUbL5.chunk.js} +2 -2
  96. package/dist/scripts/{DHjeFsuP.chunk.js.map → DDceUbL5.chunk.js.map} +1 -1
  97. package/dist/scripts/{CHa6bZJR.chunk.js → DE4Juqeg.chunk.js} +2 -2
  98. package/dist/scripts/{CHa6bZJR.chunk.js.map → DE4Juqeg.chunk.js.map} +1 -1
  99. package/dist/scripts/{Ct_04zDE.chunk.js → DHDAcKGM.chunk.js} +2 -2
  100. package/dist/scripts/{Ct_04zDE.chunk.js.map → DHDAcKGM.chunk.js.map} +1 -1
  101. package/dist/scripts/DIiIA5hY.chunk.js +2 -0
  102. package/dist/scripts/{DsCrIxlP.chunk.js.map → DIiIA5hY.chunk.js.map} +1 -1
  103. package/dist/scripts/DLCJG-Fm.chunk.js +2 -0
  104. package/dist/scripts/{CYuY28rl.chunk.js.map → DLCJG-Fm.chunk.js.map} +1 -1
  105. package/dist/scripts/{cw1CbjiZ.chunk.js → DORu23Pq.chunk.js} +2 -2
  106. package/dist/scripts/{cw1CbjiZ.chunk.js.map → DORu23Pq.chunk.js.map} +1 -1
  107. package/dist/scripts/{Dmfr0hZx.chunk.js → DOqvCLjE.chunk.js} +2 -2
  108. package/dist/scripts/{Dmfr0hZx.chunk.js.map → DOqvCLjE.chunk.js.map} +1 -1
  109. package/dist/scripts/{DWmgmt8-.chunk.js → DQNTWWrq.chunk.js} +2 -2
  110. package/dist/scripts/{DWmgmt8-.chunk.js.map → DQNTWWrq.chunk.js.map} +1 -1
  111. package/dist/scripts/{h68xZO90.chunk.js → DWDiqXD7.chunk.js} +2 -2
  112. package/dist/scripts/{h68xZO90.chunk.js.map → DWDiqXD7.chunk.js.map} +1 -1
  113. package/dist/scripts/{Bi0GaEZE.chunk.js → DZ4UeBKW.chunk.js} +2 -2
  114. package/dist/scripts/{Bi0GaEZE.chunk.js.map → DZ4UeBKW.chunk.js.map} +1 -1
  115. package/dist/scripts/{6D5NxiDj.chunk.js → D_JsKNZh.chunk.js} +2 -2
  116. package/dist/scripts/{6D5NxiDj.chunk.js.map → D_JsKNZh.chunk.js.map} +1 -1
  117. package/dist/scripts/DaW5IrMJ.chunk.js +2 -0
  118. package/dist/scripts/{BTq4W22K.chunk.js.map → DaW5IrMJ.chunk.js.map} +1 -1
  119. package/dist/scripts/{DwMcJ3Ip.chunk.js → DdcBDgpq.chunk.js} +2 -2
  120. package/dist/scripts/{DwMcJ3Ip.chunk.js.map → DdcBDgpq.chunk.js.map} +1 -1
  121. package/dist/scripts/{BeyY1CwV.chunk.js → Dgk7nYlV.chunk.js} +2 -2
  122. package/dist/scripts/{BeyY1CwV.chunk.js.map → Dgk7nYlV.chunk.js.map} +1 -1
  123. package/dist/scripts/{CEZiVSXU.chunk.js → DihXm5mz.chunk.js} +2 -2
  124. package/dist/scripts/{CEZiVSXU.chunk.js.map → DihXm5mz.chunk.js.map} +1 -1
  125. package/dist/scripts/{DXRtwYU8.chunk.js → DlvwqUyz.chunk.js} +2 -2
  126. package/dist/scripts/{DXRtwYU8.chunk.js.map → DlvwqUyz.chunk.js.map} +1 -1
  127. package/dist/scripts/{C8aildLX.chunk.js → Dp7JDODj.chunk.js} +2 -2
  128. package/dist/scripts/{C8aildLX.chunk.js.map → Dp7JDODj.chunk.js.map} +1 -1
  129. package/dist/scripts/{wKPIC1H3.chunk.js → Dq-OnBBE.chunk.js} +2 -2
  130. package/dist/scripts/{wKPIC1H3.chunk.js.map → Dq-OnBBE.chunk.js.map} +1 -1
  131. package/dist/scripts/{DRxJfu3A.chunk.js → DrTbksPR.chunk.js} +2 -2
  132. package/dist/scripts/{DRxJfu3A.chunk.js.map → DrTbksPR.chunk.js.map} +1 -1
  133. package/dist/scripts/{aFUDBFEd.chunk.js → Dw4FOx_G.chunk.js} +2 -2
  134. package/dist/scripts/{aFUDBFEd.chunk.js.map → Dw4FOx_G.chunk.js.map} +1 -1
  135. package/dist/scripts/DwDASoj9.chunk.js +2 -0
  136. package/dist/scripts/{D1fkcw30.chunk.js.map → DwDASoj9.chunk.js.map} +1 -1
  137. package/dist/scripts/{U4HYh7oC.chunk.js → DwIQTRkx.chunk.js} +2 -2
  138. package/dist/scripts/{U4HYh7oC.chunk.js.map → DwIQTRkx.chunk.js.map} +1 -1
  139. package/dist/scripts/{BBhJOnJs.chunk.js → DxF4GLPa.chunk.js} +2 -2
  140. package/dist/scripts/{BBhJOnJs.chunk.js.map → DxF4GLPa.chunk.js.map} +1 -1
  141. package/dist/scripts/{Dh_LRqD1.chunk.js → DxQXGtZm.chunk.js} +2 -2
  142. package/dist/scripts/{Dh_LRqD1.chunk.js.map → DxQXGtZm.chunk.js.map} +1 -1
  143. package/dist/scripts/{CRuObGvW.chunk.js → PbxMeR6l.chunk.js} +2 -2
  144. package/dist/scripts/{CRuObGvW.chunk.js.map → PbxMeR6l.chunk.js.map} +1 -1
  145. package/dist/scripts/{W8wegH66.chunk.js → QpdkfjyT.chunk.js} +2 -2
  146. package/dist/scripts/{W8wegH66.chunk.js.map → QpdkfjyT.chunk.js.map} +1 -1
  147. package/dist/scripts/{d_OewpIc.chunk.js → UXYD7sDO.chunk.js} +2 -2
  148. package/dist/scripts/{d_OewpIc.chunk.js.map → UXYD7sDO.chunk.js.map} +1 -1
  149. package/dist/scripts/{DgWxzhMg.chunk.js → _mZm6AP_.chunk.js} +2 -2
  150. package/dist/scripts/{DgWxzhMg.chunk.js.map → _mZm6AP_.chunk.js.map} +1 -1
  151. package/dist/scripts/{app-Det8y4U1.js → app-C2md4v6O.js} +4 -4
  152. package/dist/scripts/{app-Det8y4U1.js.map → app-C2md4v6O.js.map} +1 -1
  153. package/dist/scripts/{DzbCvkXx.chunk.js → ccYLdwq0.chunk.js} +2 -2
  154. package/dist/scripts/{DzbCvkXx.chunk.js.map → ccYLdwq0.chunk.js.map} +1 -1
  155. package/dist/scripts/{CeVw08Ln.chunk.js → dDxecIoU.chunk.js} +2 -2
  156. package/dist/scripts/{CeVw08Ln.chunk.js.map → dDxecIoU.chunk.js.map} +1 -1
  157. package/dist/scripts/{Bsw4ZO9U.chunk.js → e36s_itU.chunk.js} +2 -2
  158. package/dist/scripts/{Bsw4ZO9U.chunk.js.map → e36s_itU.chunk.js.map} +1 -1
  159. package/dist/scripts/{CdGLJKZk.chunk.js → jCscKGvY.chunk.js} +2 -2
  160. package/dist/scripts/{CdGLJKZk.chunk.js.map → jCscKGvY.chunk.js.map} +1 -1
  161. package/dist/scripts/{7fC_wUI0.chunk.js → k1zcITmm.chunk.js} +2 -2
  162. package/dist/scripts/{7fC_wUI0.chunk.js.map → k1zcITmm.chunk.js.map} +1 -1
  163. package/dist/scripts/{DT1DdOeu.chunk.js → kCVTwqsj.chunk.js} +2 -2
  164. package/dist/scripts/{DT1DdOeu.chunk.js.map → kCVTwqsj.chunk.js.map} +1 -1
  165. package/dist/scripts/{CBlUYGqN.chunk.js → lqnuKFoF.chunk.js} +2 -2
  166. package/dist/scripts/{CBlUYGqN.chunk.js.map → lqnuKFoF.chunk.js.map} +1 -1
  167. package/dist/scripts/{BuawzJwd.chunk.js → msdkwRcQ.chunk.js} +2 -2
  168. package/dist/scripts/msdkwRcQ.chunk.js.map +1 -0
  169. package/dist/scripts/{OpOTepmF.chunk.js → nXVR9Bqt.chunk.js} +2 -2
  170. package/dist/scripts/{OpOTepmF.chunk.js.map → nXVR9Bqt.chunk.js.map} +1 -1
  171. package/dist/scripts/o_RrBIf7.chunk.js +2 -0
  172. package/dist/scripts/{Bksx5ui9.chunk.js.map → o_RrBIf7.chunk.js.map} +1 -1
  173. package/dist/scripts/{C6bEPV55.chunk.js → pMgyVPKQ.chunk.js} +2 -2
  174. package/dist/scripts/{C6bEPV55.chunk.js.map → pMgyVPKQ.chunk.js.map} +1 -1
  175. package/dist/scripts/{CBTOSLnS.chunk.js → qk22xon7.chunk.js} +2 -2
  176. package/dist/scripts/{CBTOSLnS.chunk.js.map → qk22xon7.chunk.js.map} +1 -1
  177. package/dist/scripts/{5EeDosB6.chunk.js → sw2_FVPM.chunk.js} +2 -2
  178. package/dist/scripts/{5EeDosB6.chunk.js.map → sw2_FVPM.chunk.js.map} +1 -1
  179. package/dist/scripts/{B5a9j4D_.chunk.js → tK-xYIyK.chunk.js} +2 -2
  180. package/dist/scripts/{B5a9j4D_.chunk.js.map → tK-xYIyK.chunk.js.map} +1 -1
  181. package/dist/scripts/{Bz18U45-.chunk.js → uev2agHh.chunk.js} +2 -2
  182. package/dist/scripts/{Bz18U45-.chunk.js.map → uev2agHh.chunk.js.map} +1 -1
  183. package/dist/scripts/{BI7-pkuo.chunk.js → wScha29a.chunk.js} +2 -2
  184. package/dist/scripts/{BI7-pkuo.chunk.js.map → wScha29a.chunk.js.map} +1 -1
  185. package/package.json +1 -1
  186. package/dist/scripts/BTq4W22K.chunk.js +0 -2
  187. package/dist/scripts/Bksx5ui9.chunk.js +0 -2
  188. package/dist/scripts/BuawzJwd.chunk.js.map +0 -1
  189. package/dist/scripts/C7lfPlyo.chunk.js +0 -2
  190. package/dist/scripts/CYuY28rl.chunk.js +0 -2
  191. package/dist/scripts/CfRzFJ31.chunk.js +0 -2
  192. package/dist/scripts/D1fkcw30.chunk.js +0 -2
  193. package/dist/scripts/DU8kVZuh.chunk.js +0 -2
  194. package/dist/scripts/DsCrIxlP.chunk.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"DwMcJ3Ip.chunk.js","sources":["../../../../libs/shared/src/interfaces/models/Dashboard.ts","../../../../libs/shared/src/enums/VideoSource.ts","../../../../libs/shared/src/images/svg/objects/TrendingSvg.tsx","../../../../libs/shared/src/images/svg/status/CloseCaptionBadgeSvg.tsx","../../../../libs/shared/src/utils/DurationHelper.ts","../../../../libs/shared/src/enums/MasterObjectTypes.ts","../../../../libs/shared/src/enums/ResourceFileType.ts","../../../../libs/shared/src/images/svg/objects/FileExcelSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePdfSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePptSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileWordSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileZipSvg.tsx","../../../../libs/shared/src/utils/VideoDetailsHelper.ts","../../../../libs/shared/src/components/badges/Badge.tsx"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { CustomerType } from 'libs/shared/enums/CustomerType';\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\nimport { BaseObject, BasePaginatedCollection, CuratedWidget, CuratedWidgetContent, CuratedWidgetData } from 'libs/shared/interfaces';\n\nexport enum DashboardLearningLevel {\n Any = 'Any',\n Level_1 = 'Level_1',\n Level_2 = 'Level_2',\n Level_3 = 'Level_3',\n Level_4 = 'Level_4',\n}\n\nexport enum DashboardUserType {\n Any = 'Any',\n Staff = 'Staff',\n Learner = 'Learner',\n}\n\nexport enum DashboardStatus {\n Draft = 'Draft',\n Published = 'Published',\n Archived = 'Archived',\n}\n\nexport interface Dashboard extends BaseObject {\n libraryType: LibraryType;\n customerType: CustomerType;\n userRole: number;\n}\n\nexport interface CuratedDashboard<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BaseObject {\n contentRegion: ContentRegion;\n description: string;\n learningLevel: DashboardLearningLevel;\n userType: DashboardUserType;\n status: DashboardStatus;\n target: string;\n widgets: CuratedWidget<TWidgetData, TWidgetContent>[];\n metadata: HashObject;\n datePublished: string;\n}\n\nexport interface CuratedDashboardCollection<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BasePaginatedCollection<CuratedDashboard<TWidgetData, TWidgetContent>>{}\n\n/**\n * Dashboard identification below\n */\nexport enum DashboardTargetType {\n Discover = 'discover',\n Classification = 'classification',\n ClassificationDirectory = 'classification-directory',\n ClassificationCurriculum = 'classification-curriculum',\n MoviesAndTv = 'movies-and-tv',\n Company = 'company',\n Search = 'search'\n}\n\ninterface DiscoverDashboardInfo {\n targetType: DashboardTargetType.Discover;\n presentationId: string;\n}\n\nexport interface ClassificationDashboardInfo {\n targetType: DashboardTargetType.Classification;\n classificationId: string;\n}\n\nexport interface ClassificationDirectoryInfo {\n targetType: DashboardTargetType.ClassificationDirectory;\n classificationId: string;\n}\n\nexport interface ClassificationCurriculumInfo {\n targetType: DashboardTargetType.ClassificationCurriculum;\n classificationId: string;\n}\n\ninterface MoviesAndTvDashboardInfo {\n targetType: DashboardTargetType.MoviesAndTv;\n presentationId: string;\n}\n\nexport interface CompanyDashboardInfo {\n targetType: DashboardTargetType.Company;\n companyId: string;\n presentationId: string;\n}\n\nexport type DashboardTargetInfo = DiscoverDashboardInfo |\n ClassificationDashboardInfo |\n ClassificationDirectoryInfo |\n ClassificationCurriculumInfo |\n MoviesAndTvDashboardInfo |\n CompanyDashboardInfo;\n\nexport interface UnknownDashboardTargetInfo {\n targetType: DashboardTargetType;\n presentationId: string;\n classificationId: string;\n companyId: string;\n}","export enum VideoSource {\n Exchange = 'exchange',\n Streamable = 'streamable',\n MoviesAndTv = 'movies_and_tv',\n Twig = 'twig'\n}","import React from 'react';\n\nexport function TrendingSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CloseCaptionBadgeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import * as _ from 'underscore';\n\nconst padLeft = (value: string | number, totalLength: number, padChar: string) => {\n value = value.toString();\n\n const diff = totalLength - value.length;\n\n if (diff <= 0)\n return value;\n\n return new Array(diff + 1).join(padChar) + value;\n};\n\nconst DurationHelper = {\n /**\n * Copypasta from Online. Feel free to improve it if you see fit - Sha\n */\n ToDisplayDuration(milliseconds: number, showAll?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n \n const time = new Date(milliseconds);\n \n const h = time.getUTCHours();\n const m = padLeft(time.getUTCMinutes(), 2, '0');\n const s = padLeft(time.getUTCSeconds(), 2, '0');\n \n if (showAll || h > 0) {\n return `${h}:${m}:${s}`;\n }\n \n return `${m}:${s}`;\n },\n\n ToDisplayDurationNewStyle(milliseconds: number, includeSeconds?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n\n const time = new Date(milliseconds);\n\n const h = time.getUTCHours();\n let m = time.getUTCMinutes();\n const s = time.getUTCSeconds();\n\n // Round up 1m when >= 30s\n if ((h > 0 || m > 0) && s >= 30) {\n m = m + 1;\n }\n \n if (h > 0) {\n const hourUnit = h > 1 ? 'hrs' : 'hr';\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${h}${hourUnit} ${m}m ${s}s`;\n }\n\n return `${h}${hourUnit} ${m}m `;\n }\n \n return `${h} ${hourUnit}`;\n }\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${m}m ${s}s`;\n }\n\n return `${m}m`;\n }\n\n return `${s}s`;\n }\n};\n\nexport { DurationHelper };","export enum MasterObjectTypes {\n Folder = 'category',\n CategoryTree = 'category_tree',\n CustomLibrary = 'custom_library',\n HostedLibrary = 'hosted_library',\n Exchange = 'exchange',\n Workspace = 'workspace',\n Video = 'video',\n Clip = 'clip',\n Interactive = 'interactive'\n}","// File types match metadata for a resource FileApi\nexport enum ResourceFileType {\n Pdf = 'pdf',\n Image = 'image',\n PowerPoint = 'powerpoint',\n Document = 'document',\n Excel = 'excel',\n Zip = 'archive',\n File = 'text'\n}\n","import React from 'react';\n\nexport function FileExcelSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePdfSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePptSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileWordSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileZipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Library, Video } from 'libs/shared/interfaces';\n\nimport { FileExcelSvg } from '../images/svg/objects/FileExcelSvg';\nimport { FileImgSvg } from '../images/svg/objects/FileImgSvg';\nimport { FilePdfSvg } from '../images/svg/objects/FilePdfSvg';\nimport { FilePptSvg } from '../images/svg/objects/FilePptSvg';\nimport { FileSvg } from '../images/svg/objects/FileSvg';\nimport { FileWordSvg } from '../images/svg/objects/FileWordSvg';\nimport { FileZipSvg } from '../images/svg/objects/FileZipSvg';\nimport { FolderSvg } from '../images/svg/objects/FolderSvg';\n\n\nconst lang = 'shared.shared-utils';\n\nexport const VideoDetailsHelper = {\n mapRatingToClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'bg-purple';\n case (rating < 48):\n return 'bg-green';\n case (rating < 80):\n return 'bg-blue';\n case (rating < 96):\n return 'bg-red';\n case (rating < 128):\n return 'bg-pink';\n case (rating >= 128):\n return 'bg-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n },\n\n mapSourceToDisplayName(library: Library, hasLite?: boolean): string {\n switch (library.type) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return library.name;\n case MasterObjectTypes.Exchange:\n return LanguageService.getPhrase(lang, 'exchange');\n case MasterObjectTypes.Workspace:\n return LanguageService.getPhrase(lang, hasLite ? 'myVideos' : 'workspace');\n default:\n return '';\n }\n },\n\n mapSourceToClass(sourceType: MasterObjectTypes | 'online_supplementary_library'): string {\n switch (sourceType) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return 'bg-blue';\n case MasterObjectTypes.Exchange:\n return 'bg-green';\n case MasterObjectTypes.Workspace:\n default:\n return 'bg-red';\n }\n },\n\n isInteractive(video: Video): boolean {\n return !!video?.interactives?.data?.length;\n },\n\n mapTypeToSvg(type: string): any {\n const types: HashObject = {\n [ResourceFileType.Pdf]: FilePdfSvg,\n [ResourceFileType.Image]: FileImgSvg,\n [ResourceFileType.PowerPoint]: FilePptSvg,\n [ResourceFileType.Document]: FileWordSvg,\n [ResourceFileType.Excel]: FileExcelSvg,\n [ResourceFileType.Zip]: FileZipSvg,\n [ResourceFileType.File]: FileSvg\n };\n\n let mappedType = types[type];\n\n if (!mappedType)\n mappedType = FolderSvg;\n\n return mappedType;\n },\n\n mapTypeToClass(type: string): any {\n switch (type) {\n case ResourceFileType.Pdf:\n return 'icon-red';\n\n case ResourceFileType.Image:\n return 'icon-purple';\n\n case ResourceFileType.Document:\n return 'icon-blue';\n\n case ResourceFileType.Excel:\n return 'icon-green';\n\n case ResourceFileType.PowerPoint:\n return 'icon-orange';\n\n case ResourceFileType.Zip:\n return 'icon-teal';\n\n case ResourceFileType.File:\n return 'icon-gray';\n\n default:\n return '';\n }\n },\n\n mapTypeToExtension(type: string): string {\n if (!type) return '';\n\n const extensions: HashObject = {\n pdf: 'pdf',\n image: 'png',\n powerpoint: 'pptx'\n };\n\n return extensions[type.toLowerCase()];\n },\n\n mapTypeToName(type: string): string {\n if (!type) return '';\n\n switch (type) {\n case ResourceFileType.Pdf: return LanguageService.getPhrase(lang, 'pdf');\n case ResourceFileType.Image: return LanguageService.getPhrase(lang, 'image');\n case ResourceFileType.Document: return LanguageService.getPhrase(lang, 'document');\n case ResourceFileType.Excel: return LanguageService.getPhrase(lang, 'spreadsheet');\n case ResourceFileType.PowerPoint: return LanguageService.getPhrase(lang, 'presentation');\n case ResourceFileType.Zip: return LanguageService.getPhrase(lang, 'zipArchive');\n case ResourceFileType.File: return LanguageService.getPhrase(lang, 'file');\n\n default:\n return '';\n }\n }\n};\n","import * as React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { VideoSource } from 'libs/shared/enums/VideoSource';\nimport { TrendingSvg } from 'libs/shared/images/svg/objects/TrendingSvg';\nimport { CloseCaptionBadgeSvg } from 'libs/shared/images/svg/status/CloseCaptionBadgeSvg';\nimport { DashboardStatus, Rating } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './badge.module.scss';\n\nconst namespace = 'shared.badges';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum BadgeType {\n DurationExact = 'duration-exact',\n DurationApproximate = 'duration-approximate',\n Interactive = 'interactive',\n Rating = 'rating',\n ProductionYear = 'production-year',\n Captions = 'captions',\n Status = 'status',\n Trending = 'trending',\n Count = 'count',\n Restriction = 'restriction',\n Source = 'source'\n}\n\ntype BadgeSize = 'xs' | 'sm' | 'std' | 'lg';\n\ninterface BadgeProps {\n type: BadgeType;\n data: any;\n inline?: boolean;\n className?: string;\n /**\n * Only Trending badge supports this attribute atm\n */\n size?: BadgeSize;\n}\n\ninterface TooltipOptions {\n placement: Placement;\n title: string;\n}\n\nconst badgeSvgContainerSizeMap: {[key in BadgeSize]: SvgContainerSize} = {\n xs: SvgContainerSize.ExtraSmall,\n sm: SvgContainerSize.Small,\n std: SvgContainerSize.Standard,\n lg: SvgContainerSize.Large\n};\n\nconst badgeSizeClassNameMap: {[key in BadgeSize]: string} = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n std: 'badge-std',\n lg: 'badge-lg'\n};\n\nfunction getStatusClassName(status: CurationStatus | DashboardStatus): string {\n switch (status) {\n case CurationStatus.Published:\n case DashboardStatus.Published:\n return 'bg-success';\n\n case CurationStatus.Archived:\n case CurationStatus.Rejected:\n case DashboardStatus.Archived:\n return 'bg-danger';\n\n case CurationStatus.Draft:\n case DashboardStatus.Draft:\n return 'draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n case CurationStatus.Pending:\n case CurationStatus.Processing:\n return 'bg-warning';\n }\n}\n\nfunction getSourceClassName(sources: VideoSource[]): string {\n if (sources.includes(VideoSource.Streamable))\n return `px-1 text-nowrap d-flex align-items-center ${styles.streamable}`;\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'bg-indigo text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Exchange))\n return 'bg-orange text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Twig))\n return `bg-pink text-white px-1 text-nowrap d-flex align-items-center`;\n\n return '';\n}\n\nfunction getClassName(type: BadgeType, data: any, size: BadgeSize): string {\n const baseClass = 'badge';\n const sizeClass = badgeSizeClassNameMap[size];\n\n let typeClass = '';\n\n if (type === BadgeType.DurationApproximate)\n typeClass = 'duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n if (type === BadgeType.DurationExact)\n typeClass = 'duration-badge';\n\n if (type === BadgeType.Interactive)\n typeClass = 'interactive-badge';\n\n if (type === BadgeType.Rating)\n typeClass = `rating-badge text-shadow ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\n\n if (type === BadgeType.ProductionYear)\n typeClass = 'production-year-badge text-shadow';\n\n if (type === BadgeType.Captions)\n return 'p-0';\n\n if (type === BadgeType.Status)\n return `badge ${getStatusClassName(data)}`;\n\n if (type === BadgeType.Trending)\n return `trending-badge px-1 d-flex align-items-center ${sizeClass}`;\n\n if (type === BadgeType.Count)\n typeClass = 'count-badge px-1 rounded';\n\n if (type === BadgeType.Restriction) {\n const restrictionBgClass = RestrictionHelper.mapRestrictionToClass(data.restrictions);\n return classNames('restriction-badge rounded-pill px-2 d-flex align-items-center', restrictionBgClass);\n }\n \n if (type === BadgeType.Source)\n typeClass = getSourceClassName(data);\n\n return classNames(baseClass, typeClass);\n}\n\nfunction getBadgeContent(type: BadgeType, data: any, size: BadgeSize): string | JSX.Element {\n if (type === BadgeType.Interactive)\n return getPhrase('interactive');\n\n if (type === BadgeType.DurationApproximate)\n return DurationHelper.ToDisplayDurationNewStyle(data);\n\n if (type === BadgeType.DurationExact)\n return DurationHelper.ToDisplayDuration(data);\n\n if (type === BadgeType.Rating)\n return (data as Rating).code; // data expected to be a rating object\n\n if (type === BadgeType.ProductionYear)\n return data; // data should be the production year\n\n if (type === BadgeType.Captions)\n return <SvgContainer svg={CloseCaptionBadgeSvg} />;\n\n if (type === BadgeType.Status) {\n if (typeof(data) === 'number') {\n return CurationStatus[data];\n }\n return data;\n }\n\n if (type === BadgeType.Trending)\n return (\n <>\n <SvgContainer svg={TrendingSvg} size={badgeSvgContainerSizeMap[size]} />\n <span className='ps-1'>{data}</span>\n </>\n );\n\n if (type === BadgeType.Count)\n return data;\n\n if (type === BadgeType.Restriction)\n return (\n <>\n <SvgContainer\n svg={RestrictionHelper.mapRestrictionToSvg(data.restrictions)}\n />\n <span>\n {RestrictionHelper.mapRestrictionToText(data.restrictions, data.yearGroups)}\n </span>\n </>\n );\n\n if (type === BadgeType.Source) {\n const sources = data as VideoSource[];\n\n if (sources.includes(VideoSource.Streamable))\n return 'streamable';\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'movies + tv';\n\n if (sources.includes(VideoSource.Exchange))\n return 'exchange';\n\n if (sources.includes(VideoSource.Twig))\n return 'twig';\n\n return '-';\n }\n}\n\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\n if (type === BadgeType.Rating)\n return {\n title: (data as Rating).name,\n placement: 'top'\n };\n\n return null;\n}\n\nfunction hasData(type: BadgeType, data: any): boolean {\n if (typeof(data) === 'boolean')\n return !!data;\n\n if (type === BadgeType.Rating)\n return data && !!(data as Rating).value;\n\n if (type === BadgeType.Interactive)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Captions)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Status)\n return typeof(data) === 'number' || typeof(data) === 'string';\n\n return !!data;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { type, data, size = 'std' } = props;\n \n if (!hasData(type, data))\n return <></>;\n\n let className = getClassName(type, data, size);\n className = `${className} ${props.inline ? 'd-inline-block' : 'd-flex justify-content-center'} ${props.className || ''}`;\n const content = getBadgeContent(type, data, size);\n const tooltip = getTooltip(type, data);\n const spanHackClassName = props.inline && 'd-inline-block';\n\n if (tooltip) {\n return (\n <div className='badge-wrapper d-inline'>\n <Tooltip {...tooltip} spanHack spanHackClassName={spanHackClassName}>\n <span className={className}>{content}</span>\n </Tooltip>\n </div>\n );\n }\n\n return <span className={`${className} badge-wrapper`}>{content}</span>;\n}"],"names":["DashboardStatus","DashboardTargetType","VideoSource","TrendingSvg","props","jsx","CloseCaptionBadgeSvg","padLeft","value","totalLength","padChar","diff","DurationHelper","milliseconds","showAll","_.isNumber","time","h","m","s","includeSeconds","hourUnit","MasterObjectTypes","ResourceFileType","FileExcelSvg","FilePdfSvg","FilePptSvg","FileSvg","FileWordSvg","FileZipSvg","lang","VideoDetailsHelper","ratingValue","rating","library","hasLite","LanguageService","sourceType","video","_b","_a","type","mappedType","FileImgSvg","FolderSvg","namespace","getPhrase","BadgeType","badgeSvgContainerSizeMap","SvgContainerSize","badgeSizeClassNameMap","getStatusClassName","status","CurationStatus","getSourceClassName","sources","styles","getClassName","data","size","baseClass","sizeClass","typeClass","restrictionBgClass","RestrictionHelper","classNames","getBadgeContent","SvgContainer","jsxs","Fragment","getTooltip","hasData","Badge","className","content","tooltip","spanHackClassName","Tooltip"],"mappings":"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"}
1
+ {"version":3,"file":"DdcBDgpq.chunk.js","sources":["../../../../libs/shared/src/interfaces/models/Dashboard.ts","../../../../libs/shared/src/enums/VideoSource.ts","../../../../libs/shared/src/images/svg/objects/TrendingSvg.tsx","../../../../libs/shared/src/images/svg/status/CloseCaptionBadgeSvg.tsx","../../../../libs/shared/src/utils/DurationHelper.ts","../../../../libs/shared/src/enums/MasterObjectTypes.ts","../../../../libs/shared/src/enums/ResourceFileType.ts","../../../../libs/shared/src/images/svg/objects/FileExcelSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePdfSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePptSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileWordSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileZipSvg.tsx","../../../../libs/shared/src/utils/VideoDetailsHelper.ts","../../../../libs/shared/src/components/badges/Badge.tsx"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { CustomerType } from 'libs/shared/enums/CustomerType';\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\nimport { BaseObject, BasePaginatedCollection, CuratedWidget, CuratedWidgetContent, CuratedWidgetData } from 'libs/shared/interfaces';\n\nexport enum DashboardLearningLevel {\n Any = 'Any',\n Level_1 = 'Level_1',\n Level_2 = 'Level_2',\n Level_3 = 'Level_3',\n Level_4 = 'Level_4',\n}\n\nexport enum DashboardUserType {\n Any = 'Any',\n Staff = 'Staff',\n Learner = 'Learner',\n}\n\nexport enum DashboardStatus {\n Draft = 'Draft',\n Published = 'Published',\n Archived = 'Archived',\n}\n\nexport interface Dashboard extends BaseObject {\n libraryType: LibraryType;\n customerType: CustomerType;\n userRole: number;\n}\n\nexport interface CuratedDashboard<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BaseObject {\n contentRegion: ContentRegion;\n description: string;\n learningLevel: DashboardLearningLevel;\n userType: DashboardUserType;\n status: DashboardStatus;\n target: string;\n widgets: CuratedWidget<TWidgetData, TWidgetContent>[];\n metadata: HashObject;\n datePublished: string;\n}\n\nexport interface CuratedDashboardCollection<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BasePaginatedCollection<CuratedDashboard<TWidgetData, TWidgetContent>>{}\n\n/**\n * Dashboard identification below\n */\nexport enum DashboardTargetType {\n Discover = 'discover',\n Classification = 'classification',\n ClassificationDirectory = 'classification-directory',\n ClassificationCurriculum = 'classification-curriculum',\n MoviesAndTv = 'movies-and-tv',\n Company = 'company',\n Search = 'search'\n}\n\ninterface DiscoverDashboardInfo {\n targetType: DashboardTargetType.Discover;\n presentationId: string;\n}\n\nexport interface ClassificationDashboardInfo {\n targetType: DashboardTargetType.Classification;\n classificationId: string;\n}\n\nexport interface ClassificationDirectoryInfo {\n targetType: DashboardTargetType.ClassificationDirectory;\n classificationId: string;\n}\n\nexport interface ClassificationCurriculumInfo {\n targetType: DashboardTargetType.ClassificationCurriculum;\n classificationId: string;\n}\n\ninterface MoviesAndTvDashboardInfo {\n targetType: DashboardTargetType.MoviesAndTv;\n presentationId: string;\n}\n\nexport interface CompanyDashboardInfo {\n targetType: DashboardTargetType.Company;\n companyId: string;\n presentationId: string;\n}\n\nexport type DashboardTargetInfo = DiscoverDashboardInfo |\n ClassificationDashboardInfo |\n ClassificationDirectoryInfo |\n ClassificationCurriculumInfo |\n MoviesAndTvDashboardInfo |\n CompanyDashboardInfo;\n\nexport interface UnknownDashboardTargetInfo {\n targetType: DashboardTargetType;\n presentationId: string;\n classificationId: string;\n companyId: string;\n}","export enum VideoSource {\n Exchange = 'exchange',\n Streamable = 'streamable',\n MoviesAndTv = 'movies_and_tv',\n Twig = 'twig'\n}","import React from 'react';\n\nexport function TrendingSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CloseCaptionBadgeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import * as _ from 'underscore';\n\nconst padLeft = (value: string | number, totalLength: number, padChar: string) => {\n value = value.toString();\n\n const diff = totalLength - value.length;\n\n if (diff <= 0)\n return value;\n\n return new Array(diff + 1).join(padChar) + value;\n};\n\nconst DurationHelper = {\n /**\n * Copypasta from Online. Feel free to improve it if you see fit - Sha\n */\n ToDisplayDuration(milliseconds: number, showAll?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n \n const time = new Date(milliseconds);\n \n const h = time.getUTCHours();\n const m = padLeft(time.getUTCMinutes(), 2, '0');\n const s = padLeft(time.getUTCSeconds(), 2, '0');\n \n if (showAll || h > 0) {\n return `${h}:${m}:${s}`;\n }\n \n return `${m}:${s}`;\n },\n\n ToDisplayDurationNewStyle(milliseconds: number, includeSeconds?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n\n const time = new Date(milliseconds);\n\n const h = time.getUTCHours();\n let m = time.getUTCMinutes();\n const s = time.getUTCSeconds();\n\n // Round up 1m when >= 30s\n if ((h > 0 || m > 0) && s >= 30) {\n m = m + 1;\n }\n \n if (h > 0) {\n const hourUnit = h > 1 ? 'hrs' : 'hr';\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${h}${hourUnit} ${m}m ${s}s`;\n }\n\n return `${h}${hourUnit} ${m}m `;\n }\n \n return `${h} ${hourUnit}`;\n }\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${m}m ${s}s`;\n }\n\n return `${m}m`;\n }\n\n return `${s}s`;\n }\n};\n\nexport { DurationHelper };","export enum MasterObjectTypes {\n Folder = 'category',\n CategoryTree = 'category_tree',\n CustomLibrary = 'custom_library',\n HostedLibrary = 'hosted_library',\n Exchange = 'exchange',\n Workspace = 'workspace',\n Video = 'video',\n Clip = 'clip',\n Interactive = 'interactive'\n}","// File types match metadata for a resource FileApi\nexport enum ResourceFileType {\n Pdf = 'pdf',\n Image = 'image',\n PowerPoint = 'powerpoint',\n Document = 'document',\n Excel = 'excel',\n Zip = 'archive',\n File = 'text'\n}\n","import React from 'react';\n\nexport function FileExcelSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePdfSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePptSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileWordSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileZipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Library, Video } from 'libs/shared/interfaces';\n\nimport { FileExcelSvg } from '../images/svg/objects/FileExcelSvg';\nimport { FileImgSvg } from '../images/svg/objects/FileImgSvg';\nimport { FilePdfSvg } from '../images/svg/objects/FilePdfSvg';\nimport { FilePptSvg } from '../images/svg/objects/FilePptSvg';\nimport { FileSvg } from '../images/svg/objects/FileSvg';\nimport { FileWordSvg } from '../images/svg/objects/FileWordSvg';\nimport { FileZipSvg } from '../images/svg/objects/FileZipSvg';\nimport { FolderSvg } from '../images/svg/objects/FolderSvg';\n\n\nconst lang = 'shared.shared-utils';\n\nexport const VideoDetailsHelper = {\n mapRatingToClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'bg-purple';\n case (rating < 48):\n return 'bg-green';\n case (rating < 80):\n return 'bg-blue';\n case (rating < 96):\n return 'bg-red';\n case (rating < 128):\n return 'bg-pink';\n case (rating >= 128):\n return 'bg-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n },\n\n mapSourceToDisplayName(library: Library, hasLite?: boolean): string {\n switch (library.type) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return library.name;\n case MasterObjectTypes.Exchange:\n return LanguageService.getPhrase(lang, 'exchange');\n case MasterObjectTypes.Workspace:\n return LanguageService.getPhrase(lang, hasLite ? 'myVideos' : 'workspace');\n default:\n return '';\n }\n },\n\n mapSourceToClass(sourceType: MasterObjectTypes | 'online_supplementary_library'): string {\n switch (sourceType) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return 'bg-blue';\n case MasterObjectTypes.Exchange:\n return 'bg-green';\n case MasterObjectTypes.Workspace:\n default:\n return 'bg-red';\n }\n },\n\n isInteractive(video: Video): boolean {\n return !!video?.interactives?.data?.length;\n },\n\n mapTypeToSvg(type: string): any {\n const types: HashObject = {\n [ResourceFileType.Pdf]: FilePdfSvg,\n [ResourceFileType.Image]: FileImgSvg,\n [ResourceFileType.PowerPoint]: FilePptSvg,\n [ResourceFileType.Document]: FileWordSvg,\n [ResourceFileType.Excel]: FileExcelSvg,\n [ResourceFileType.Zip]: FileZipSvg,\n [ResourceFileType.File]: FileSvg\n };\n\n let mappedType = types[type];\n\n if (!mappedType)\n mappedType = FolderSvg;\n\n return mappedType;\n },\n\n mapTypeToClass(type: string): any {\n switch (type) {\n case ResourceFileType.Pdf:\n return 'icon-red';\n\n case ResourceFileType.Image:\n return 'icon-purple';\n\n case ResourceFileType.Document:\n return 'icon-blue';\n\n case ResourceFileType.Excel:\n return 'icon-green';\n\n case ResourceFileType.PowerPoint:\n return 'icon-orange';\n\n case ResourceFileType.Zip:\n return 'icon-teal';\n\n case ResourceFileType.File:\n return 'icon-gray';\n\n default:\n return '';\n }\n },\n\n mapTypeToExtension(type: string): string {\n if (!type) return '';\n\n const extensions: HashObject = {\n pdf: 'pdf',\n image: 'png',\n powerpoint: 'pptx'\n };\n\n return extensions[type.toLowerCase()];\n },\n\n mapTypeToName(type: string): string {\n if (!type) return '';\n\n switch (type) {\n case ResourceFileType.Pdf: return LanguageService.getPhrase(lang, 'pdf');\n case ResourceFileType.Image: return LanguageService.getPhrase(lang, 'image');\n case ResourceFileType.Document: return LanguageService.getPhrase(lang, 'document');\n case ResourceFileType.Excel: return LanguageService.getPhrase(lang, 'spreadsheet');\n case ResourceFileType.PowerPoint: return LanguageService.getPhrase(lang, 'presentation');\n case ResourceFileType.Zip: return LanguageService.getPhrase(lang, 'zipArchive');\n case ResourceFileType.File: return LanguageService.getPhrase(lang, 'file');\n\n default:\n return '';\n }\n }\n};\n","import * as React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { VideoSource } from 'libs/shared/enums/VideoSource';\nimport { TrendingSvg } from 'libs/shared/images/svg/objects/TrendingSvg';\nimport { CloseCaptionBadgeSvg } from 'libs/shared/images/svg/status/CloseCaptionBadgeSvg';\nimport { DashboardStatus, Rating } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './badge.module.scss';\n\nconst namespace = 'shared.badges';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum BadgeType {\n DurationExact = 'duration-exact',\n DurationApproximate = 'duration-approximate',\n Interactive = 'interactive',\n Rating = 'rating',\n ProductionYear = 'production-year',\n Captions = 'captions',\n Status = 'status',\n Trending = 'trending',\n Count = 'count',\n Restriction = 'restriction',\n Source = 'source'\n}\n\ntype BadgeSize = 'xs' | 'sm' | 'std' | 'lg';\n\ninterface BadgeProps {\n type: BadgeType;\n data: any;\n inline?: boolean;\n className?: string;\n /**\n * Only Trending badge supports this attribute atm\n */\n size?: BadgeSize;\n}\n\ninterface TooltipOptions {\n placement: Placement;\n title: string;\n}\n\nconst badgeSvgContainerSizeMap: {[key in BadgeSize]: SvgContainerSize} = {\n xs: SvgContainerSize.ExtraSmall,\n sm: SvgContainerSize.Small,\n std: SvgContainerSize.Standard,\n lg: SvgContainerSize.Large\n};\n\nconst badgeSizeClassNameMap: {[key in BadgeSize]: string} = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n std: 'badge-std',\n lg: 'badge-lg'\n};\n\nfunction getStatusClassName(status: CurationStatus | DashboardStatus): string {\n switch (status) {\n case CurationStatus.Published:\n case DashboardStatus.Published:\n return 'bg-success';\n\n case CurationStatus.Archived:\n case CurationStatus.Rejected:\n case DashboardStatus.Archived:\n return 'bg-danger';\n\n case CurationStatus.Draft:\n case DashboardStatus.Draft:\n return 'draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n case CurationStatus.Pending:\n case CurationStatus.Processing:\n return 'bg-warning';\n }\n}\n\nfunction getSourceClassName(sources: VideoSource[]): string {\n if (sources.includes(VideoSource.Streamable))\n return `px-1 text-nowrap d-flex align-items-center ${styles.streamable}`;\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'bg-indigo text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Exchange))\n return 'bg-orange text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Twig))\n return `bg-pink text-white px-1 text-nowrap d-flex align-items-center`;\n\n return '';\n}\n\nfunction getClassName(type: BadgeType, data: any, size: BadgeSize): string {\n const baseClass = 'badge';\n const sizeClass = badgeSizeClassNameMap[size];\n\n let typeClass = '';\n\n if (type === BadgeType.DurationApproximate)\n typeClass = 'duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n if (type === BadgeType.DurationExact)\n typeClass = 'duration-badge';\n\n if (type === BadgeType.Interactive)\n typeClass = 'interactive-badge';\n\n if (type === BadgeType.Rating)\n typeClass = `rating-badge text-shadow ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\n\n if (type === BadgeType.ProductionYear)\n typeClass = 'production-year-badge text-shadow';\n\n if (type === BadgeType.Captions)\n return 'p-0';\n\n if (type === BadgeType.Status)\n return `badge ${getStatusClassName(data)}`;\n\n if (type === BadgeType.Trending)\n return `trending-badge px-1 d-flex align-items-center ${sizeClass}`;\n\n if (type === BadgeType.Count)\n typeClass = 'count-badge px-1 rounded';\n\n if (type === BadgeType.Restriction) {\n const restrictionBgClass = RestrictionHelper.mapRestrictionToClass(data.restrictions);\n return classNames('restriction-badge rounded-pill px-2 d-flex align-items-center', restrictionBgClass);\n }\n \n if (type === BadgeType.Source)\n typeClass = getSourceClassName(data);\n\n return classNames(baseClass, typeClass);\n}\n\nfunction getBadgeContent(type: BadgeType, data: any, size: BadgeSize): string | JSX.Element {\n if (type === BadgeType.Interactive)\n return getPhrase('interactive');\n\n if (type === BadgeType.DurationApproximate)\n return DurationHelper.ToDisplayDurationNewStyle(data);\n\n if (type === BadgeType.DurationExact)\n return DurationHelper.ToDisplayDuration(data);\n\n if (type === BadgeType.Rating)\n return (data as Rating).code; // data expected to be a rating object\n\n if (type === BadgeType.ProductionYear)\n return data; // data should be the production year\n\n if (type === BadgeType.Captions)\n return <SvgContainer svg={CloseCaptionBadgeSvg} />;\n\n if (type === BadgeType.Status) {\n if (typeof(data) === 'number') {\n return CurationStatus[data];\n }\n return data;\n }\n\n if (type === BadgeType.Trending)\n return (\n <>\n <SvgContainer svg={TrendingSvg} size={badgeSvgContainerSizeMap[size]} />\n <span className='ps-1'>{data}</span>\n </>\n );\n\n if (type === BadgeType.Count)\n return data;\n\n if (type === BadgeType.Restriction)\n return (\n <>\n <SvgContainer\n svg={RestrictionHelper.mapRestrictionToSvg(data.restrictions)}\n />\n <span>\n {RestrictionHelper.mapRestrictionToText(data.restrictions, data.yearGroups)}\n </span>\n </>\n );\n\n if (type === BadgeType.Source) {\n const sources = data as VideoSource[];\n\n if (sources.includes(VideoSource.Streamable))\n return 'streamable';\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'movies + tv';\n\n if (sources.includes(VideoSource.Exchange))\n return 'exchange';\n\n if (sources.includes(VideoSource.Twig))\n return 'twig';\n\n return '-';\n }\n}\n\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\n if (type === BadgeType.Rating)\n return {\n title: (data as Rating).name,\n placement: 'top'\n };\n\n return null;\n}\n\nfunction hasData(type: BadgeType, data: any): boolean {\n if (typeof(data) === 'boolean')\n return !!data;\n\n if (type === BadgeType.Rating)\n return data && !!(data as Rating).value;\n\n if (type === BadgeType.Interactive)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Captions)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Status)\n return typeof(data) === 'number' || typeof(data) === 'string';\n\n return !!data;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { type, data, size = 'std' } = props;\n \n if (!hasData(type, data))\n return <></>;\n\n let className = getClassName(type, data, size);\n className = `${className} ${props.inline ? 'd-inline-block' : 'd-flex justify-content-center'} ${props.className || ''}`;\n const content = getBadgeContent(type, data, size);\n const tooltip = getTooltip(type, data);\n const spanHackClassName = props.inline && 'd-inline-block';\n\n if (tooltip) {\n return (\n <div className='badge-wrapper d-inline'>\n <Tooltip {...tooltip} spanHack spanHackClassName={spanHackClassName}>\n <span className={className}>{content}</span>\n </Tooltip>\n </div>\n );\n }\n\n return <span className={`${className} badge-wrapper`}>{content}</span>;\n}"],"names":["DashboardStatus","DashboardTargetType","VideoSource","TrendingSvg","props","jsx","CloseCaptionBadgeSvg","padLeft","value","totalLength","padChar","diff","DurationHelper","milliseconds","showAll","_.isNumber","time","h","m","s","includeSeconds","hourUnit","MasterObjectTypes","ResourceFileType","FileExcelSvg","FilePdfSvg","FilePptSvg","FileSvg","FileWordSvg","FileZipSvg","lang","VideoDetailsHelper","ratingValue","rating","library","hasLite","LanguageService","sourceType","video","_b","_a","type","mappedType","FileImgSvg","FolderSvg","namespace","getPhrase","BadgeType","badgeSvgContainerSizeMap","SvgContainerSize","badgeSizeClassNameMap","getStatusClassName","status","CurationStatus","getSourceClassName","sources","styles","getClassName","data","size","baseClass","sizeClass","typeClass","restrictionBgClass","RestrictionHelper","classNames","getBadgeContent","SvgContainer","jsxs","Fragment","getTooltip","hasData","Badge","className","content","tooltip","spanHackClassName","Tooltip"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{M as s}from"./app-Det8y4U1.js";const p={isType(e,r){var t;return e!=null&&e.typeId?e.typeId===r:((t=e==null?void 0:e.type)==null?void 0:t.toLowerCase())===s[r].toLowerCase()},isResource(e){return p.isType(e,s.Resource)},isClassification(e){return e.type==="Subject"}};export{p as M};
2
- //# sourceMappingURL=BeyY1CwV.chunk.js.map
1
+ import{M as s}from"./app-C2md4v6O.js";const p={isType(e,r){var t;return e!=null&&e.typeId?e.typeId===r:((t=e==null?void 0:e.type)==null?void 0:t.toLowerCase())===s[r].toLowerCase()},isResource(e){return p.isType(e,s.Resource)},isClassification(e){return e.type==="Subject"}};export{p as M};
2
+ //# sourceMappingURL=Dgk7nYlV.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BeyY1CwV.chunk.js","sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};"],"names":["MasterTypeHelper","obj","typeId","_a","MasterType"],"mappings":"sCAGO,MAAMA,EAAmB,CAC9B,OAA6BC,EAAUC,EAA8B,OACnE,OAAID,GAAA,MAAAA,EAAK,OACAA,EAAI,SAAWC,IAGjBC,EAAAF,GAAA,YAAAA,EAAK,OAAL,YAAAE,EAAW,iBAAkBC,EAAWF,CAAM,EAAE,YAAA,CACzD,EAEA,WAAWD,EAA2B,CACpC,OAAOD,EAAiB,OAAiBC,EAAKG,EAAW,QAAQ,CACnE,EAEA,iBAAiBH,EAAiC,CAChD,OAAOA,EAAI,OAAS,SACtB,CACF"}
1
+ {"version":3,"file":"Dgk7nYlV.chunk.js","sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};"],"names":["MasterTypeHelper","obj","typeId","_a","MasterType"],"mappings":"sCAGO,MAAMA,EAAmB,CAC9B,OAA6BC,EAAUC,EAA8B,OACnE,OAAID,GAAA,MAAAA,EAAK,OACAA,EAAI,SAAWC,IAGjBC,EAAAF,GAAA,YAAAA,EAAK,OAAL,YAAAE,EAAW,iBAAkBC,EAAWF,CAAM,EAAE,YAAA,CACzD,EAEA,WAAWD,EAA2B,CACpC,OAAOD,EAAiB,OAAiBC,EAAKG,EAAW,QAAQ,CACnE,EAEA,iBAAiBH,EAAiC,CAChD,OAAOA,EAAI,OAAS,SACtB,CACF"}
@@ -1,2 +1,2 @@
1
- import{a1 as b,a2 as n,R as i,aa as w,ad as k,ac as C,aH as E,ae as L,L as T,j as e,P as R,al as F,B as p,x as m,A as H,aC as I}from"./app-Det8y4U1.js";import{S as U}from"./CYuY28rl.chunk.js";import{V as q}from"./CdGLJKZk.chunk.js";import{u as B}from"./C36BgTJV.chunk.js";import{E as u}from"./CxB8O87g.chunk.js";import{u as G}from"./z6Us1EdG.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./DYjoaCnl.chunk.js";const c="exchange.add",o=T.encloseNamespace(c);function X(s){var l;const x=B(),g=b(),f=n(I.config()),h=n(u.exchange()),a=n(q.video(s.id)),[r,j]=i.useState(!1),[A,P]=i.useState(!1),[V,v]=i.useState(null),{previewContext:t,clearPreviewContext:y}=G(s.id,!1);i.useEffect(()=>{!a.data||A||N()},[(l=a.data)==null?void 0:l.id]);async function N(){P(!0);try{const S=await g(u.addVideo(h.data.id,a.data.id));j(!0),v(S.id),w.logUserAction({id:a.data.id,name:a.data.name},{actionType:L.Submit,descriptor:E.AddToWorkspace,location:C.Popup,entity:k.Video})}catch{x.error(o("error")),s.closePopup()}}function d(){s.closePopup(),t!=null&&t.appLink&&(U.preventScrollTop(),H.trigger(t.appLink),y())}return e.jsx(R,{title:o("title"),closePopup:d,showLoadingSpinner:!r,children:r&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mx-auto w-75 mt-1 mb-2",children:e.jsx("img",{src:F.General.CONFETTI,className:"img-fluid",draggable:!1})}),e.jsx("div",{className:"text-center pb-3",children:e.jsx("h4",{className:"mb-2",children:e.jsx(p,{namespace:c,phrase:"added"})})}),e.jsxs(m,{children:[e.jsx(m.Cancel,{text:o("close"),onClick:d,variant:"link"}),e.jsx("a",{href:`${f.data.liteUrl}/videos/${V}`,className:"btn btn-dark",children:e.jsx("span",{className:"align-text-bottom me-1",children:e.jsx(p,{namespace:c,phrase:"open"})})})]})]})})}export{X as ExchangeAddView};
2
- //# sourceMappingURL=CEZiVSXU.chunk.js.map
1
+ import{a1 as b,a2 as n,R as i,aa as w,ad as k,ac as C,aH as E,ae as L,L as T,j as e,P as R,al as F,B as p,x as m,A as H,aC as I}from"./app-C2md4v6O.js";import{S as U}from"./DLCJG-Fm.chunk.js";import{V as q}from"./jCscKGvY.chunk.js";import{u as B}from"./5Bk7WUgq.chunk.js";import{E as u}from"./CGuGkRe6.chunk.js";import{u as G}from"./CGsO0liR.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./BoHka3Ec.chunk.js";const c="exchange.add",o=T.encloseNamespace(c);function X(s){var l;const x=B(),g=b(),f=n(I.config()),h=n(u.exchange()),a=n(q.video(s.id)),[r,j]=i.useState(!1),[A,P]=i.useState(!1),[V,v]=i.useState(null),{previewContext:t,clearPreviewContext:y}=G(s.id,!1);i.useEffect(()=>{!a.data||A||N()},[(l=a.data)==null?void 0:l.id]);async function N(){P(!0);try{const S=await g(u.addVideo(h.data.id,a.data.id));j(!0),v(S.id),w.logUserAction({id:a.data.id,name:a.data.name},{actionType:L.Submit,descriptor:E.AddToWorkspace,location:C.Popup,entity:k.Video})}catch{x.error(o("error")),s.closePopup()}}function d(){s.closePopup(),t!=null&&t.appLink&&(U.preventScrollTop(),H.trigger(t.appLink),y())}return e.jsx(R,{title:o("title"),closePopup:d,showLoadingSpinner:!r,children:r&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mx-auto w-75 mt-1 mb-2",children:e.jsx("img",{src:F.General.CONFETTI,className:"img-fluid",draggable:!1})}),e.jsx("div",{className:"text-center pb-3",children:e.jsx("h4",{className:"mb-2",children:e.jsx(p,{namespace:c,phrase:"added"})})}),e.jsxs(m,{children:[e.jsx(m.Cancel,{text:o("close"),onClick:d,variant:"link"}),e.jsx("a",{href:`${f.data.liteUrl}/videos/${V}`,className:"btn btn-dark",children:e.jsx("span",{className:"align-text-bottom me-1",children:e.jsx(p,{namespace:c,phrase:"open"})})})]})]})})}export{X as ExchangeAddView};
2
+ //# sourceMappingURL=DihXm5mz.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CEZiVSXU.chunk.js","sources":["../../src/apps/exchange/views/exchange-add/ExchangeAddView.tsx"],"sourcesContent":["import 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 } from 'libs/analytics/interfaces';\n\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 { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Config, Library, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\nconst namespace = 'exchange.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeAddViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function ExchangeAddView(props: ExchangeAddViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const exchange = Flight.useBasicFetch<Library>(ExchangeRequests.exchange());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n\n const [ added, setAdded ] = React.useState<boolean>(false);\n const [ adding, setAdding ] = React.useState<boolean>(false);\n const [ newVideoId, setNewVideoId ] = React.useState<string>(null);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.id, false);\n\n React.useEffect(() => {\n if (!video.data || adding)\n return;\n\n addVideo();\n }, [video.data?.id]);\n\n async function addVideo() {\n setAdding(true);\n\n try {\n const newVideo = await fetchAsync<Video>(ExchangeRequests.addVideo(\n exchange.data.id,\n video.data.id\n ));\n\n setAdded(true);\n setNewVideoId(newVideo.id);\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: LocationContext.Popup,\n entity: EntityType.Video\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\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 return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={!added}\n >\n {added &&\n <>\n <div className='mx-auto w-75 mt-1 mb-2'>\n <img src={ImageUrls.General.CONFETTI} className='img-fluid' draggable={false} />\n </div>\n\n <div className='text-center pb-3'>\n <h4 className='mb-2'>\n <Text namespace={namespace} phrase={'added'} />\n </h4>\n </div>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={closePopup}\n variant='link'\n />\n <a href={`${config.data.liteUrl}/videos/${newVideoId}`} className={'btn btn-dark'}>\n <span className='align-text-bottom me-1'>\n <Text namespace={namespace} phrase={'open'} />\n </span>\n </a>\n </PopupButtons>\n </>\n }\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","ExchangeAddView","props","alerts","useAlerts","fetchAsync","Flight.useGetFetchAsync","config","Flight.useBasicFetch","ConfigRequests","exchange","ExchangeRequests","video","VideoRequests","added","setAdded","React","adding","setAdding","newVideoId","setNewVideoId","previewContext","clearPreviewContext","usePreviewContext","addVideo","_a","newVideo","AnalyticsHelper","UserAction","VideoActionDescriptor","LocationContext","EntityType","closePopup","ScrollHelper","Core.AppLinkHelper","jsx","Popup","jsxs","Fragment","ImageUrls","Text","PopupButtons"],"mappings":"obAuBA,MAAMA,EAAY,eACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASG,EAAgBC,EAA0C,OACxE,MAAMC,EAASC,EAAA,EACTC,EAAaC,EAAO,EAEpBC,EAASC,EAA6BC,EAAe,QAAQ,EAC7DC,EAAWF,EAA8BG,EAAiB,UAAU,EACpEC,EAAQJ,EAA4BK,EAAc,MAAMX,EAAM,EAAE,CAAC,EAEjE,CAAEY,EAAOC,CAAS,EAAIC,EAAM,SAAkB,EAAK,EACnD,CAAEC,EAAQC,CAAU,EAAIF,EAAM,SAAkB,EAAK,EACrD,CAAEG,EAAYC,CAAc,EAAIJ,EAAM,SAAiB,IAAI,EAE3D,CAAE,eAAAK,EAAgB,oBAAAC,CAAA,EAAwBC,EAAkBrB,EAAM,GAAI,EAAK,EAEjFc,EAAM,UAAU,IAAM,CAChB,CAACJ,EAAM,MAAQK,GAGnBO,EAAA,CACF,EAAG,EAACC,EAAAb,EAAM,OAAN,YAAAa,EAAY,EAAE,CAAC,EAEnB,eAAeD,GAAW,CACxBN,EAAU,EAAI,EAEd,GAAI,CACF,MAAMQ,EAAW,MAAMrB,EAAkBM,EAAiB,SACxDD,EAAS,KAAK,GACdE,EAAM,KAAK,EAAA,CACZ,EAEDG,EAAS,EAAI,EACbK,EAAcM,EAAS,EAAE,EAEzBC,EAAgB,cACd,CAAE,GAAIf,EAAM,KAAK,GAAI,KAAMA,EAAM,KAAK,IAAA,EACtC,CACE,WAAYgB,EAAW,OACvB,WAAYC,EAAsB,eAClC,SAAUC,EAAgB,MAC1B,OAAQC,EAAW,KAAA,CACrB,CAEJ,MAAQ,CACN5B,EAAO,MAAMJ,EAAU,OAAO,CAAC,EAC/BG,EAAM,WAAA,CACR,CACF,CAOA,SAAS8B,GAAmB,CAC1B9B,EAAM,WAAA,EAEDmB,GAAA,MAAAA,EAAgB,UAGrBY,EAAa,iBAAA,EACbC,EAAmB,QAAQb,EAAe,OAAO,EACjDC,EAAA,EACF,CAEA,OACEa,EAAAA,IAACC,EAAA,CACC,MAAOrC,EAAU,OAAO,EACxB,WAAAiC,EACA,mBAAoB,CAAClB,EAEpB,YACCuB,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAH,EAAAA,IAAC,MAAA,CAAI,UAAU,yBACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,IAAKI,EAAU,QAAQ,SAAU,UAAU,YAAY,UAAW,GAAO,EAChF,EAEAJ,MAAC,MAAA,CAAI,UAAU,mBACb,eAAC,KAAA,CAAG,UAAU,OACZ,SAAAA,EAAAA,IAACK,EAAA,CAAK,UAAA1C,EAAsB,OAAQ,OAAA,CAAS,EAC/C,EACF,SAEC2C,EAAA,CACC,SAAA,CAAAN,EAAAA,IAACM,EAAa,OAAb,CACC,KAAM1C,EAAU,OAAO,EACvB,QAASiC,EACT,QAAQ,MAAA,CAAA,EAEVG,EAAAA,IAAC,KAAE,KAAM,GAAG5B,EAAO,KAAK,OAAO,WAAWY,CAAU,GAAI,UAAW,eACjE,SAAAgB,EAAAA,IAAC,OAAA,CAAK,UAAU,yBACd,SAAAA,EAAAA,IAACK,GAAK,UAAA1C,EAAsB,OAAQ,MAAA,CAAQ,CAAA,CAC9C,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"DihXm5mz.chunk.js","sources":["../../src/apps/exchange/views/exchange-add/ExchangeAddView.tsx"],"sourcesContent":["import 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 } from 'libs/analytics/interfaces';\n\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 { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Config, Library, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\nconst namespace = 'exchange.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeAddViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function ExchangeAddView(props: ExchangeAddViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const exchange = Flight.useBasicFetch<Library>(ExchangeRequests.exchange());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n\n const [ added, setAdded ] = React.useState<boolean>(false);\n const [ adding, setAdding ] = React.useState<boolean>(false);\n const [ newVideoId, setNewVideoId ] = React.useState<string>(null);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.id, false);\n\n React.useEffect(() => {\n if (!video.data || adding)\n return;\n\n addVideo();\n }, [video.data?.id]);\n\n async function addVideo() {\n setAdding(true);\n\n try {\n const newVideo = await fetchAsync<Video>(ExchangeRequests.addVideo(\n exchange.data.id,\n video.data.id\n ));\n\n setAdded(true);\n setNewVideoId(newVideo.id);\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: LocationContext.Popup,\n entity: EntityType.Video\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\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 return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={!added}\n >\n {added &&\n <>\n <div className='mx-auto w-75 mt-1 mb-2'>\n <img src={ImageUrls.General.CONFETTI} className='img-fluid' draggable={false} />\n </div>\n\n <div className='text-center pb-3'>\n <h4 className='mb-2'>\n <Text namespace={namespace} phrase={'added'} />\n </h4>\n </div>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={closePopup}\n variant='link'\n />\n <a href={`${config.data.liteUrl}/videos/${newVideoId}`} className={'btn btn-dark'}>\n <span className='align-text-bottom me-1'>\n <Text namespace={namespace} phrase={'open'} />\n </span>\n </a>\n </PopupButtons>\n </>\n }\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","ExchangeAddView","props","alerts","useAlerts","fetchAsync","Flight.useGetFetchAsync","config","Flight.useBasicFetch","ConfigRequests","exchange","ExchangeRequests","video","VideoRequests","added","setAdded","React","adding","setAdding","newVideoId","setNewVideoId","previewContext","clearPreviewContext","usePreviewContext","addVideo","_a","newVideo","AnalyticsHelper","UserAction","VideoActionDescriptor","LocationContext","EntityType","closePopup","ScrollHelper","Core.AppLinkHelper","jsx","Popup","jsxs","Fragment","ImageUrls","Text","PopupButtons"],"mappings":"obAuBA,MAAMA,EAAY,eACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASG,EAAgBC,EAA0C,OACxE,MAAMC,EAASC,EAAA,EACTC,EAAaC,EAAO,EAEpBC,EAASC,EAA6BC,EAAe,QAAQ,EAC7DC,EAAWF,EAA8BG,EAAiB,UAAU,EACpEC,EAAQJ,EAA4BK,EAAc,MAAMX,EAAM,EAAE,CAAC,EAEjE,CAAEY,EAAOC,CAAS,EAAIC,EAAM,SAAkB,EAAK,EACnD,CAAEC,EAAQC,CAAU,EAAIF,EAAM,SAAkB,EAAK,EACrD,CAAEG,EAAYC,CAAc,EAAIJ,EAAM,SAAiB,IAAI,EAE3D,CAAE,eAAAK,EAAgB,oBAAAC,CAAA,EAAwBC,EAAkBrB,EAAM,GAAI,EAAK,EAEjFc,EAAM,UAAU,IAAM,CAChB,CAACJ,EAAM,MAAQK,GAGnBO,EAAA,CACF,EAAG,EAACC,EAAAb,EAAM,OAAN,YAAAa,EAAY,EAAE,CAAC,EAEnB,eAAeD,GAAW,CACxBN,EAAU,EAAI,EAEd,GAAI,CACF,MAAMQ,EAAW,MAAMrB,EAAkBM,EAAiB,SACxDD,EAAS,KAAK,GACdE,EAAM,KAAK,EAAA,CACZ,EAEDG,EAAS,EAAI,EACbK,EAAcM,EAAS,EAAE,EAEzBC,EAAgB,cACd,CAAE,GAAIf,EAAM,KAAK,GAAI,KAAMA,EAAM,KAAK,IAAA,EACtC,CACE,WAAYgB,EAAW,OACvB,WAAYC,EAAsB,eAClC,SAAUC,EAAgB,MAC1B,OAAQC,EAAW,KAAA,CACrB,CAEJ,MAAQ,CACN5B,EAAO,MAAMJ,EAAU,OAAO,CAAC,EAC/BG,EAAM,WAAA,CACR,CACF,CAOA,SAAS8B,GAAmB,CAC1B9B,EAAM,WAAA,EAEDmB,GAAA,MAAAA,EAAgB,UAGrBY,EAAa,iBAAA,EACbC,EAAmB,QAAQb,EAAe,OAAO,EACjDC,EAAA,EACF,CAEA,OACEa,EAAAA,IAACC,EAAA,CACC,MAAOrC,EAAU,OAAO,EACxB,WAAAiC,EACA,mBAAoB,CAAClB,EAEpB,YACCuB,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAH,EAAAA,IAAC,MAAA,CAAI,UAAU,yBACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,IAAKI,EAAU,QAAQ,SAAU,UAAU,YAAY,UAAW,GAAO,EAChF,EAEAJ,MAAC,MAAA,CAAI,UAAU,mBACb,eAAC,KAAA,CAAG,UAAU,OACZ,SAAAA,EAAAA,IAACK,EAAA,CAAK,UAAA1C,EAAsB,OAAQ,OAAA,CAAS,EAC/C,EACF,SAEC2C,EAAA,CACC,SAAA,CAAAN,EAAAA,IAACM,EAAa,OAAb,CACC,KAAM1C,EAAU,OAAO,EACvB,QAASiC,EACT,QAAQ,MAAA,CAAA,EAEVG,EAAAA,IAAC,KAAE,KAAM,GAAG5B,EAAO,KAAK,OAAO,WAAWY,CAAU,GAAI,UAAW,eACjE,SAAAgB,EAAAA,IAAC,OAAA,CAAK,UAAU,yBACd,SAAAA,EAAAA,IAACK,GAAK,UAAA1C,EAAsB,OAAQ,MAAA,CAAQ,CAAA,CAC9C,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAIR"}
@@ -1,2 +1,2 @@
1
- import{a2 as f,T as o,a as p,b as c,L as E,an as A}from"./app-Det8y4U1.js";import{L}from"./h68xZO90.chunk.js";function x(a){var g,h;const{folderId:e,firstItem:r,lastItem:u,getAppLink:m}=a,l=f(e&&L.folderParentTree(e));if(!((h=(g=l.data)==null?void 0:g.children)!=null&&h.length))return[];const s=l.data.children.map(t=>({node:t,path:[t]}));let n=[];for(;s.length;){const{node:t,path:d}=s.pop();t.data.id.toString()===e.toString()&&(n=d.map(i=>({name:i.data.name,appLink:m(i)}))),t.children&&s.push(...t.children.map(i=>({node:i,path:[...d,i]})))}return r&&n.unshift(r),u&&n.push(u),a.setLastActive!==!1&&(n[n.length-1].active=!0),n}const S="exchange.exchangeUtils",k=E.encloseNamespace(S);function y(a){return{application:c.EXCHANGE,action:p.Exchange.PREVIEW,args:[a.id,o.slugify(a.name)]}}function C(a,e){return a!=null&&a.id?{application:c.EXCHANGE,action:p.Exchange.SERIES,args:[a.id,o.slugify(a.name)],params:{sort:e??A.Series}}:null}function I(a,e){return a?{application:c.EXCHANGE,action:p.Exchange.FOLDER,args:[a.id,o.slugify(a.name)],params:{sort:e}}:null}function G(a,e){return x({folderId:a,getAppLink:r=>I(r.data,e),firstItem:{name:k("exchangeArchive"),appLink:{application:c.EXCHANGE,action:p.Exchange.INDEX}}})}export{y as a,C as b,I as g,G as u};
2
- //# sourceMappingURL=DXRtwYU8.chunk.js.map
1
+ import{a2 as f,T as o,a as p,b as c,L as E,an as A}from"./app-C2md4v6O.js";import{L}from"./DWDiqXD7.chunk.js";function x(a){var g,h;const{folderId:e,firstItem:r,lastItem:u,getAppLink:m}=a,l=f(e&&L.folderParentTree(e));if(!((h=(g=l.data)==null?void 0:g.children)!=null&&h.length))return[];const s=l.data.children.map(t=>({node:t,path:[t]}));let n=[];for(;s.length;){const{node:t,path:d}=s.pop();t.data.id.toString()===e.toString()&&(n=d.map(i=>({name:i.data.name,appLink:m(i)}))),t.children&&s.push(...t.children.map(i=>({node:i,path:[...d,i]})))}return r&&n.unshift(r),u&&n.push(u),a.setLastActive!==!1&&(n[n.length-1].active=!0),n}const S="exchange.exchangeUtils",k=E.encloseNamespace(S);function y(a){return{application:c.EXCHANGE,action:p.Exchange.PREVIEW,args:[a.id,o.slugify(a.name)]}}function C(a,e){return a!=null&&a.id?{application:c.EXCHANGE,action:p.Exchange.SERIES,args:[a.id,o.slugify(a.name)],params:{sort:e??A.Series}}:null}function I(a,e){return a?{application:c.EXCHANGE,action:p.Exchange.FOLDER,args:[a.id,o.slugify(a.name)],params:{sort:e}}:null}function G(a,e){return x({folderId:a,getAppLink:r=>I(r.data,e),firstItem:{name:k("exchangeArchive"),appLink:{application:c.EXCHANGE,action:p.Exchange.INDEX}}})}export{y as a,C as b,I as g,G as u};
2
+ //# sourceMappingURL=DlvwqUyz.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DXRtwYU8.chunk.js","sources":["../../../../libs/shared/src/hooks/useBuildBreadcrumbs.ts","../../src/apps/exchange/utils/ExchangeUtils.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n setLastActive?: boolean;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(\n folderId && LibraryRequests.folderParentTree(folderId)\n );\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n if (options.setLastActive !== false)\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library, Series, Video } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getVideoAppLink(video: Video): Core.AppLink {\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.PREVIEW,\n args: [ video.id, TextHelper.slugify(video.name) ]\n };\n}\n\nexport function getSeriesAppLink(series: Series, sort?: string): Core.AppLink {\n if (!series?.id)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SERIES,\n args: [ series.id, TextHelper.slugify(series.name) ],\n params: {\n sort: sort ?? VideoSortType.Series\n }\n };\n}\n\nexport function getFolderAppLink(folder: Folder, sort?: string): Core.AppLink {\n if (!folder)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.FOLDER,\n args: [ folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < (folder.name?.length ?? 0); i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId,\n getAppLink: object => getFolderAppLink(object.data, sort),\n firstItem: {\n name: getPhrase('exchangeArchive'),\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n }\n }\n });\n}"],"names":["useBuildBreadcrumbs","options","folderId","firstItem","lastItem","getAppLink","parentTree","Flight.useBasicFetch","LibraryRequests","_b","_a","searchStack","c","breadcrumbs","node","path","object","namespace","getPhrase","LanguageService","getVideoAppLink","video","AppChannels","Actions","TextHelper","getSeriesAppLink","series","sort","VideoSortType","getFolderAppLink","folder","useGetFolderBreadcrumbs"],"mappings":"8GAeO,SAASA,EAAoBC,EAAqC,SACvE,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,SAAAC,EAAU,WAAAC,GAAeJ,EAEhDK,EAAaC,EACjBL,GAAYM,EAAgB,iBAAiBN,CAAQ,CAAA,EAGvD,GAAI,GAACO,GAAAC,EAAAJ,EAAW,OAAX,YAAAI,EAAiB,WAAjB,MAAAD,EAA2B,QAC9B,MAAO,CAAA,EAET,MAAME,EAGAL,EAAW,KAAK,SAAS,IAAIM,IAAM,CAAE,KAAMA,EAAG,KAAM,CAACA,CAAC,GAAG,EAE/D,IAAIC,EAA4B,CAAA,EAEhC,KAAOF,EAAY,QAAQ,CACzB,KAAM,CAAE,KAAAG,EAAM,KAAAC,GAASJ,EAAY,IAAA,EAE/BG,EAAK,KAAK,GAAG,SAAA,IAAeZ,EAAS,SAAA,IACvCW,EAAcE,EAAK,IAAIC,IAAW,CAChC,KAAMA,EAAO,KAAK,KAClB,QAASX,EAAWW,CAAM,CAAA,EAC1B,GAEAF,EAAK,UACPH,EAAY,KAAK,GAAGG,EAAK,SAAS,QAAU,CAAE,KAAMF,EAAG,KAAM,CAAE,GAAGG,EAAMH,CAAE,CAAA,EAAG,CAAC,CAClF,CAEA,OAAIT,GAAWU,EAAY,QAAQV,CAAS,EACxCC,GAAUS,EAAY,KAAKT,CAAQ,EAEnCH,EAAQ,gBAAkB,KAC5BY,EAAYA,EAAY,OAAS,CAAC,EAAE,OAAS,IAExCA,CACT,CCvCA,MAAMI,EAAY,yBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,EAAgBC,EAA4B,CAC1D,MAAO,CACL,YAAaC,EAAY,SACzB,OAAQC,EAAQ,SAAS,QACzB,KAAM,CAAEF,EAAM,GAAIG,EAAW,QAAQH,EAAM,IAAI,CAAE,CAAA,CAErD,CAEO,SAASI,EAAiBC,EAAgBC,EAA6B,CAC5E,OAAKD,GAAA,MAAAA,EAAQ,GAGN,CACL,YAAaJ,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEG,EAAO,GAAIF,EAAW,QAAQE,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAMC,GAAQC,EAAc,MAAA,CAC9B,EARO,IAUX,CAEO,SAASC,EAAiBC,EAAgBH,EAA6B,CAC5E,OAAKG,EAGE,CACL,YAAaR,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEO,EAAO,GAAIN,EAAW,QAAQM,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAAH,CAAA,CACF,EARO,IAUX,CAYO,SAASI,EAAwB7B,EAAkByB,EAAmC,CAC3F,OAAO3B,EAAoB,CACzB,SAAAE,EACA,WAAYc,GAAUa,EAAiBb,EAAO,KAAMW,CAAI,EACxD,UAAW,CACT,KAAMT,EAAU,iBAAiB,EACjC,QAAS,CACP,YAAaI,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,CAC3B,CACF,CACD,CACH"}
1
+ {"version":3,"file":"DlvwqUyz.chunk.js","sources":["../../../../libs/shared/src/hooks/useBuildBreadcrumbs.ts","../../src/apps/exchange/utils/ExchangeUtils.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n setLastActive?: boolean;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(\n folderId && LibraryRequests.folderParentTree(folderId)\n );\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n if (options.setLastActive !== false)\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library, Series, Video } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getVideoAppLink(video: Video): Core.AppLink {\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.PREVIEW,\n args: [ video.id, TextHelper.slugify(video.name) ]\n };\n}\n\nexport function getSeriesAppLink(series: Series, sort?: string): Core.AppLink {\n if (!series?.id)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SERIES,\n args: [ series.id, TextHelper.slugify(series.name) ],\n params: {\n sort: sort ?? VideoSortType.Series\n }\n };\n}\n\nexport function getFolderAppLink(folder: Folder, sort?: string): Core.AppLink {\n if (!folder)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.FOLDER,\n args: [ folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < (folder.name?.length ?? 0); i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId,\n getAppLink: object => getFolderAppLink(object.data, sort),\n firstItem: {\n name: getPhrase('exchangeArchive'),\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n }\n }\n });\n}"],"names":["useBuildBreadcrumbs","options","folderId","firstItem","lastItem","getAppLink","parentTree","Flight.useBasicFetch","LibraryRequests","_b","_a","searchStack","c","breadcrumbs","node","path","object","namespace","getPhrase","LanguageService","getVideoAppLink","video","AppChannels","Actions","TextHelper","getSeriesAppLink","series","sort","VideoSortType","getFolderAppLink","folder","useGetFolderBreadcrumbs"],"mappings":"8GAeO,SAASA,EAAoBC,EAAqC,SACvE,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,SAAAC,EAAU,WAAAC,GAAeJ,EAEhDK,EAAaC,EACjBL,GAAYM,EAAgB,iBAAiBN,CAAQ,CAAA,EAGvD,GAAI,GAACO,GAAAC,EAAAJ,EAAW,OAAX,YAAAI,EAAiB,WAAjB,MAAAD,EAA2B,QAC9B,MAAO,CAAA,EAET,MAAME,EAGAL,EAAW,KAAK,SAAS,IAAIM,IAAM,CAAE,KAAMA,EAAG,KAAM,CAACA,CAAC,GAAG,EAE/D,IAAIC,EAA4B,CAAA,EAEhC,KAAOF,EAAY,QAAQ,CACzB,KAAM,CAAE,KAAAG,EAAM,KAAAC,GAASJ,EAAY,IAAA,EAE/BG,EAAK,KAAK,GAAG,SAAA,IAAeZ,EAAS,SAAA,IACvCW,EAAcE,EAAK,IAAIC,IAAW,CAChC,KAAMA,EAAO,KAAK,KAClB,QAASX,EAAWW,CAAM,CAAA,EAC1B,GAEAF,EAAK,UACPH,EAAY,KAAK,GAAGG,EAAK,SAAS,QAAU,CAAE,KAAMF,EAAG,KAAM,CAAE,GAAGG,EAAMH,CAAE,CAAA,EAAG,CAAC,CAClF,CAEA,OAAIT,GAAWU,EAAY,QAAQV,CAAS,EACxCC,GAAUS,EAAY,KAAKT,CAAQ,EAEnCH,EAAQ,gBAAkB,KAC5BY,EAAYA,EAAY,OAAS,CAAC,EAAE,OAAS,IAExCA,CACT,CCvCA,MAAMI,EAAY,yBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,EAAgBC,EAA4B,CAC1D,MAAO,CACL,YAAaC,EAAY,SACzB,OAAQC,EAAQ,SAAS,QACzB,KAAM,CAAEF,EAAM,GAAIG,EAAW,QAAQH,EAAM,IAAI,CAAE,CAAA,CAErD,CAEO,SAASI,EAAiBC,EAAgBC,EAA6B,CAC5E,OAAKD,GAAA,MAAAA,EAAQ,GAGN,CACL,YAAaJ,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEG,EAAO,GAAIF,EAAW,QAAQE,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAMC,GAAQC,EAAc,MAAA,CAC9B,EARO,IAUX,CAEO,SAASC,EAAiBC,EAAgBH,EAA6B,CAC5E,OAAKG,EAGE,CACL,YAAaR,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEO,EAAO,GAAIN,EAAW,QAAQM,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAAH,CAAA,CACF,EARO,IAUX,CAYO,SAASI,EAAwB7B,EAAkByB,EAAmC,CAC3F,OAAO3B,EAAoB,CACzB,SAAAE,EACA,WAAYc,GAAUa,EAAiBb,EAAO,KAAMW,CAAI,EACxD,UAAW,CACT,KAAMT,EAAU,iBAAiB,EACjC,QAAS,CACP,YAAaI,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,CAC3B,CACF,CACD,CACH"}
@@ -1,2 +1,2 @@
1
- import{j as e,aj as q,ak as x,al as P,B as y,R as A,aA as S,a as N,b as C,aq as V,ap as B,ai as M,a2 as b,aT as O,l as D,ac as U,ad as W}from"./app-Det8y4U1.js";import{F,S as $}from"./BNoyVB0N.chunk.js";import{u as G,I as Q,P as Z}from"./CrAxON7A.chunk.js";import{h as E}from"./BOzZT1qL.chunk.js";import{u as z}from"./C36BgTJV.chunk.js";import{u as J}from"./CfRzFJ31.chunk.js";import{T as K,a as X}from"./BBhJOnJs.chunk.js";import{T as f}from"./BuawzJwd.chunk.js";import{u as Y}from"./DbVI3h0V.chunk.js";import{u as ee}from"./D1fkcw30.chunk.js";import{u as te}from"./DuHiL0j5.chunk.js";import{A as ae}from"./B93FMGSP.chunk.js";import{B as se,a as re}from"./DwMcJ3Ip.chunk.js";import{B as ie}from"./DgWxzhMg.chunk.js";import{B as ne}from"./DzbCvkXx.chunk.js";import{I as oe,a as le}from"./CidPoXbD.chunk.js";import{T as me}from"./Bz18U45-.chunk.js";import{T as ce}from"./Dmfr0hZx.chunk.js";import{T as de}from"./OpOTepmF.chunk.js";import{t as I}from"./DWmgmt8-.chunk.js";import"./CHa6bZJR.chunk.js";import"./x8TB7tv6.chunk.js";import"./W8wegH66.chunk.js";import"./Kj832An8.chunk.js";import"./CJ3oIQlG.chunk.js";import"./BeyY1CwV.chunk.js";import"./C5r1_Fc_.chunk.js";import"./CX6fV4JE.chunk.js";import"./DYjoaCnl.chunk.js";import"./C97fjHLE.chunk.js";import"./C8geGHZf.chunk.js";import"./_sYSSSUN.chunk.js";import"./C99JIGI3.chunk.js";import"./CBlUYGqN.chunk.js";import"./BlDVEZsX.chunk.js";import"./Cyhg-nBj.chunk.js";const pe="tv.searchResultsEmptyState";function he(i){return e.jsx(q.Provider,{value:pe,children:e.jsxs(x,{children:[e.jsx(x.Image,{src:P.EmptyStates.SEARCH}),e.jsx(x.Heading,{children:i.query?e.jsx(y,{phrase:"headingWithQuery",options:{query:i.query}}):e.jsx(y,{phrase:"headingWithoutQuery"})}),e.jsx(x.Info,{children:e.jsx(y,{phrase:"info"})})]})})}const ue="_highlight_107l1_1",ge="_badgeOverlay_107l1_8",w={highlight:ue,badgeOverlay:ge};function R(i,t){const r=new RegExp(t,"gi");return i.replace(r,c=>`<span class=${w.highlight}>${c}</span>`)}function xe(i){var l,g,p;const{program:t,query:r,region:c,getVideoActions:j}=i,[a,d]=A.useState(!1),n={application:C.TV,action:N.Tv.PREVIEW,args:[c.code,t.id]},u=I(t.startTime,t.timeZone),o=I(t.stopTime,t.timeZone),T=Math.abs(S.diffBetween(u,o,"milliseconds"));return e.jsxs("div",{className:"row g-0 mb-3",children:[e.jsx("div",{className:"col-3 flex-column align-items-flex-start pe-2",children:e.jsx("div",{className:"rounded rounded-3 overflow-hidden",children:e.jsxs(ne,{imageType:V.Thumbnails,data:t.thumbnailUrl,appLink:n,children:[e.jsx(oe,{type:le.Video}),e.jsx("div",{className:w.badgeOverlay,children:e.jsx(se,{type:re.DurationApproximate,data:T})})]})})}),e.jsxs("div",{className:"col-9 pb-2",children:[e.jsx(ae,{actions:j(t),className:"float-end mt-n1",actionsDropdownClassName:"btn btn-link ms-1"}),e.jsx(B,{appLink:n,children:e.jsx("h5",{className:"h4 mb-1 align-middle text-dark text-truncate",title:t.title??"",children:e.jsx("span",{dangerouslySetInnerHTML:{__html:R(t.title,r)}})})}),e.jsxs(ie,{className:"mb-1",children:[t.channelLogoUrl&&e.jsx(ce,{logoUrl:t.channelLogoUrl,className:"me-1",small:!0}),e.jsx(de,{program:t,className:"me-1",showDate:!0,showEndTime:!0}),t.hasAdsFree&&e.jsx(me,{small:!0})]}),e.jsx("div",{className:"mb-1",children:e.jsx("span",{dangerouslySetInnerHTML:{__html:R(t.description,r)}})}),!!((l=t.subtitleHits)!=null&&l.length)&&e.jsxs("div",{children:[(g=t.subtitleHits)==null?void 0:g.map(((m,h)=>!a&&h>1?e.jsx(A.Fragment,{},h):e.jsxs(B,{appLink:{...n,args:[...n.args],params:{currentTime:m.HitStartTime/1e3}},className:"d-block text-dark",children:[e.jsxs("span",{className:"fw-semibold",children:["[",S.format(S.add(u,m.HitStartTime,"milliseconds"),"h:mm:ss a"),"]"]})," ",e.jsx("span",{dangerouslySetInnerHTML:{__html:R(m.SrtFragment,r)}})]},h))),!a&&((p=t.subtitleHits)==null?void 0:p.length)>2&&e.jsx("div",{className:"text-info cursor-pointer",onClick:()=>d(!0),children:"Show more"})]})]})]})}fe.defaultProps={queryParams:{}};function fe(i){var L;const{queryParams:t}=i,{query:r}=t,c=M(),j=z(),a=b(f.region(i.region)),d=b(f.regions()),n=b(a.data&&f.channels(a.data.code));a.hasCompleted&&!a.data&&E(O.BadRequest);const{setRegion:u}=te();ee(a),J([d,n]),D({title:r??""});const{items:o,hasMore:T,isFetching:l,nextCursor:g}=G(a.data&&p,m,h,s=>s.results,s=>s.page*25>s.totalNumber?null:(s.page+1).toString());function p(s){return f.search(a.data.code,t,+s)}function m(s){return c(p(s))}function h(s,v){if(s===1)return E(v);j.error("Something went wrong")}const k=Y("video-list",a.data),H=a.hasCompleted&&d.hasCompleted&&n.hasCompleted,_=[F.TvChannel(n.data),F.TvDateBroadcast(),F.TvFields()];return e.jsxs(e.Fragment,{children:[e.jsx(K,{query:r,region:a.data}),e.jsxs("div",{className:"d-flex justify-content-between mb-2",children:[e.jsx($,{queryParams:t,mainFilters:_,analyticsOptions:{entity:W.SearchResults,location:U.SearchFilters},appLink:{application:C.TV,action:N.Tv.SEARCH,args:[(L=a.data)==null?void 0:L.code]},hideDivider:!0,isFetchingOptions:!H}),e.jsx(X,{currentRegion:a.data,regions:d.data,appLink:{application:C.TV,action:N.Tv.SEARCH,params:{query:r}},onClick:u})]}),H&&e.jsx(e.Fragment,{children:o!=null&&o.length?e.jsxs(e.Fragment,{children:[o.map((s,v)=>e.jsx(xe,{program:s,query:r,region:a.data,getVideoActions:k},v)),(T||l)&&e.jsx(Q,{isFetching:l,fetchNext:m,nextCursor:g})]}):e.jsx(e.Fragment,{children:l?e.jsx("div",{className:"m-n2",children:e.jsx(Z,{})}):e.jsx(he,{query:r})})})]})}export{fe as TvSearchResultsView};
2
- //# sourceMappingURL=C8aildLX.chunk.js.map
1
+ import{j as e,aj as q,ak as x,al as P,B as y,R as A,aA as S,a as N,b as C,aq as V,ap as B,ai as M,a2 as b,aT as O,l as D,ac as U,ad as W}from"./app-C2md4v6O.js";import{F,S as $}from"./C9hXChxH.chunk.js";import{u as G,I as Q,P as Z}from"./Co1fFZfW.chunk.js";import{h as E}from"./Cz5ywK2M.chunk.js";import{u as z}from"./5Bk7WUgq.chunk.js";import{u as J}from"./D4szUN7u.chunk.js";import{T as K,a as X}from"./DxF4GLPa.chunk.js";import{T as f}from"./msdkwRcQ.chunk.js";import{u as Y}from"./Bh_H4xlD.chunk.js";import{u as ee}from"./DwDASoj9.chunk.js";import{u as te}from"./CB8-mvyD.chunk.js";import{A as ae}from"./BX6q5kK6.chunk.js";import{B as se,a as re}from"./DdcBDgpq.chunk.js";import{B as ie}from"./_mZm6AP_.chunk.js";import{B as ne}from"./ccYLdwq0.chunk.js";import{I as oe,a as le}from"./B0940TpS.chunk.js";import{T as me}from"./uev2agHh.chunk.js";import{T as ce}from"./DOqvCLjE.chunk.js";import{T as de}from"./nXVR9Bqt.chunk.js";import{t as I}from"./DQNTWWrq.chunk.js";import"./DE4Juqeg.chunk.js";import"./B6WUgONl.chunk.js";import"./QpdkfjyT.chunk.js";import"./Kj832An8.chunk.js";import"./CJ3oIQlG.chunk.js";import"./Dgk7nYlV.chunk.js";import"./BKyPrPT1.chunk.js";import"./BrRctFvx.chunk.js";import"./BoHka3Ec.chunk.js";import"./8KUv63J7.chunk.js";import"./B_Fzcc5G.chunk.js";import"./_sYSSSUN.chunk.js";import"./Blfyr1LY.chunk.js";import"./lqnuKFoF.chunk.js";import"./BlDVEZsX.chunk.js";import"./B3i6vWFI.chunk.js";const pe="tv.searchResultsEmptyState";function he(i){return e.jsx(q.Provider,{value:pe,children:e.jsxs(x,{children:[e.jsx(x.Image,{src:P.EmptyStates.SEARCH}),e.jsx(x.Heading,{children:i.query?e.jsx(y,{phrase:"headingWithQuery",options:{query:i.query}}):e.jsx(y,{phrase:"headingWithoutQuery"})}),e.jsx(x.Info,{children:e.jsx(y,{phrase:"info"})})]})})}const ue="_highlight_107l1_1",ge="_badgeOverlay_107l1_8",w={highlight:ue,badgeOverlay:ge};function R(i,t){const r=new RegExp(t,"gi");return i.replace(r,c=>`<span class=${w.highlight}>${c}</span>`)}function xe(i){var l,g,p;const{program:t,query:r,region:c,getVideoActions:j}=i,[a,d]=A.useState(!1),n={application:C.TV,action:N.Tv.PREVIEW,args:[c.code,t.id]},u=I(t.startTime,t.timeZone),o=I(t.stopTime,t.timeZone),T=Math.abs(S.diffBetween(u,o,"milliseconds"));return e.jsxs("div",{className:"row g-0 mb-3",children:[e.jsx("div",{className:"col-3 flex-column align-items-flex-start pe-2",children:e.jsx("div",{className:"rounded rounded-3 overflow-hidden",children:e.jsxs(ne,{imageType:V.Thumbnails,data:t.thumbnailUrl,appLink:n,children:[e.jsx(oe,{type:le.Video}),e.jsx("div",{className:w.badgeOverlay,children:e.jsx(se,{type:re.DurationApproximate,data:T})})]})})}),e.jsxs("div",{className:"col-9 pb-2",children:[e.jsx(ae,{actions:j(t),className:"float-end mt-n1",actionsDropdownClassName:"btn btn-link ms-1"}),e.jsx(B,{appLink:n,children:e.jsx("h5",{className:"h4 mb-1 align-middle text-dark text-truncate",title:t.title??"",children:e.jsx("span",{dangerouslySetInnerHTML:{__html:R(t.title,r)}})})}),e.jsxs(ie,{className:"mb-1",children:[t.channelLogoUrl&&e.jsx(ce,{logoUrl:t.channelLogoUrl,className:"me-1",small:!0}),e.jsx(de,{program:t,className:"me-1",showDate:!0,showEndTime:!0}),t.hasAdsFree&&e.jsx(me,{small:!0})]}),e.jsx("div",{className:"mb-1",children:e.jsx("span",{dangerouslySetInnerHTML:{__html:R(t.description,r)}})}),!!((l=t.subtitleHits)!=null&&l.length)&&e.jsxs("div",{children:[(g=t.subtitleHits)==null?void 0:g.map(((m,h)=>!a&&h>1?e.jsx(A.Fragment,{},h):e.jsxs(B,{appLink:{...n,args:[...n.args],params:{currentTime:m.HitStartTime/1e3}},className:"d-block text-dark",children:[e.jsxs("span",{className:"fw-semibold",children:["[",S.format(S.add(u,m.HitStartTime,"milliseconds"),"h:mm:ss a"),"]"]})," ",e.jsx("span",{dangerouslySetInnerHTML:{__html:R(m.SrtFragment,r)}})]},h))),!a&&((p=t.subtitleHits)==null?void 0:p.length)>2&&e.jsx("div",{className:"text-info cursor-pointer",onClick:()=>d(!0),children:"Show more"})]})]})]})}fe.defaultProps={queryParams:{}};function fe(i){var L;const{queryParams:t}=i,{query:r}=t,c=M(),j=z(),a=b(f.region(i.region)),d=b(f.regions()),n=b(a.data&&f.channels(a.data.code));a.hasCompleted&&!a.data&&E(O.BadRequest);const{setRegion:u}=te();ee(a),J([d,n]),D({title:r??""});const{items:o,hasMore:T,isFetching:l,nextCursor:g}=G(a.data&&p,m,h,s=>s.results,s=>s.page*25>s.totalNumber?null:(s.page+1).toString());function p(s){return f.search(a.data.code,t,+s)}function m(s){return c(p(s))}function h(s,v){if(s===1)return E(v);j.error("Something went wrong")}const k=Y("video-list",a.data),H=a.hasCompleted&&d.hasCompleted&&n.hasCompleted,_=[F.TvChannel(n.data),F.TvDateBroadcast(),F.TvFields()];return e.jsxs(e.Fragment,{children:[e.jsx(K,{query:r,region:a.data}),e.jsxs("div",{className:"d-flex justify-content-between mb-2",children:[e.jsx($,{queryParams:t,mainFilters:_,analyticsOptions:{entity:W.SearchResults,location:U.SearchFilters},appLink:{application:C.TV,action:N.Tv.SEARCH,args:[(L=a.data)==null?void 0:L.code]},hideDivider:!0,isFetchingOptions:!H}),e.jsx(X,{currentRegion:a.data,regions:d.data,appLink:{application:C.TV,action:N.Tv.SEARCH,params:{query:r}},onClick:u})]}),H&&e.jsx(e.Fragment,{children:o!=null&&o.length?e.jsxs(e.Fragment,{children:[o.map((s,v)=>e.jsx(xe,{program:s,query:r,region:a.data,getVideoActions:k},v)),(T||l)&&e.jsx(Q,{isFetching:l,fetchNext:m,nextCursor:g})]}):e.jsx(e.Fragment,{children:l?e.jsx("div",{className:"m-n2",children:e.jsx(Z,{})}):e.jsx(he,{query:r})})})]})}export{fe as TvSearchResultsView};
2
+ //# sourceMappingURL=Dp7JDODj.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"C8aildLX.chunk.js","sources":["../../src/apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState.tsx","../../src/apps/tv/views/tv-search-results/components/tv-search-result-item/TvSearchResultItem.tsx","../../src/apps/tv/views/tv-search-results/TvSearchResultsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\n\nconst namespace = 'tv.searchResultsEmptyState';\n\ninterface TvSearchResultsStateProps {\n query?: string;\n}\n\nexport function TvSearchResultsState(props: TvSearchResultsStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.SEARCH} />\n\n <EmptyState.Heading>\n {props.query\n ? <Text phrase='headingWithQuery' options={{ query: props.query }} />\n : <Text phrase='headingWithoutQuery' />\n }\n </EmptyState.Heading>\n\n <EmptyState.Info>\n <Text phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ActionOptions, Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageType } from 'libs/shared/enums/Images';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAdFreeBadge } from 'apps/tv/components/tv-ad-free-badge/TvAdFreeBadge';\nimport { TvChannelBadge } from 'apps/tv/components/tv-channel-badge/TvChannelBadge';\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport styles from './tv-search-result-item.module.scss';\n\nfunction highlightText(text: string, query: string): string {\n const regex = new RegExp(query, 'gi');\n return text.replace(regex, match => `<span class=${styles.highlight}>${match}</span>`);\n}\n\ninterface TvSearchResultItemProps {\n query: string;\n program: TvSearchResult;\n region: TvRegion;\n getVideoActions: (video: TvProgram) => ActionOptions[];\n}\n\nexport function TvSearchResultItem(props: TvSearchResultItemProps): JSX.Element {\n const { program, query, region, getVideoActions } = props;\n\n const [ showMore, setShowMore ] = React.useState(false);\n\n const appLink = {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ region.code, program.id ]\n };\n\n const startTime = toLocalTime(program.startTime, program.timeZone);\n const stopTime = toLocalTime(program.stopTime, program.timeZone);\n const diff = Math.abs(DateHelper.diffBetween(startTime, stopTime, 'milliseconds'));\n\n return (\n <div className='row g-0 mb-3'>\n <div className='col-3 flex-column align-items-flex-start pe-2'>\n <div className='rounded rounded-3 overflow-hidden'>\n <BaseImage\n imageType={ImageType.Thumbnails}\n data={program.thumbnailUrl}\n appLink={appLink}\n >\n <ImageFallback type={ImageFallbackType.Video} />\n\n <div className={styles.badgeOverlay}>\n <Badge\n type={BadgeType.DurationApproximate}\n data={diff}\n />\n </div>\n </BaseImage>\n </div>\n </div>\n <div className='col-9 pb-2'>\n <ActionsComponent\n actions={getVideoActions(program as TvProgram)}\n className='float-end mt-n1'\n actionsDropdownClassName='btn btn-link ms-1'\n />\n <AppLink appLink={appLink}>\n <h5 className='h4 mb-1 align-middle text-dark text-truncate' title={program.title ?? ''}>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.title, query)\n }}></span>\n </h5>\n </AppLink>\n <BadgeListContainer className='mb-1'>\n {program.channelLogoUrl && <TvChannelBadge logoUrl={program.channelLogoUrl} className='me-1' small />}\n <TvProgramTimeBadge program={program as TvProgram} className='me-1' showDate showEndTime />\n {program.hasAdsFree && <TvAdFreeBadge small />}\n </BadgeListContainer>\n <div className='mb-1'>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.description, query)\n }}></span>\n </div>\n {!!program.subtitleHits?.length &&\n <div>\n {program.subtitleHits?.map(((hit, index) => {\n if (!showMore && index > 1)\n return <React.Fragment key={index} />;\n\n return (\n <AppLink\n key={index}\n appLink={{\n ...appLink,\n args: [...appLink.args],\n params: {\n currentTime: hit.HitStartTime / 1000\n }\n }}\n className='d-block text-dark'\n >\n <span className='fw-semibold'>\n [{DateHelper.format(DateHelper.add(startTime, hit.HitStartTime, 'milliseconds'), 'h:mm:ss a')}]\n </span>\n &nbsp;\n <span dangerouslySetInnerHTML={{\n __html: highlightText(hit.SrtFragment, query)\n }}></span>\n </AppLink>\n );\n }))}\n {!showMore && program.subtitleHits?.length > 2 && <div className='text-info cursor-pointer' onClick={() => setShowMore(true)}>Show more</div>}\n </div>\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SearchFilters } from 'libs/shared/apps/search/components/search-filters/SearchFilters';\nimport { Filters } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useGetTvActions } from 'apps/tv/hooks/useGetTvActions';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { TvSearchResponse } from 'apps/tv/interfaces/responses/TvSearchResponse';\nimport { TvSearchResultsState } from 'apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState';\n\nimport { TvSearchResultItem } from './components/tv-search-result-item/TvSearchResultItem';\n\ninterface TvSearchResultsViewProps {\n region: string;\n queryParams: HashObject;\n}\n\nTvSearchResultsView.defaultProps = {\n queryParams: {}\n};\n\nexport function TvSearchResultsView(props: TvSearchResultsViewProps): JSX.Element {\n const { queryParams } = props;\n const { query } = queryParams;\n\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n if (region.hasCompleted && !region.data) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n const { setRegion } = useSelectedRegion();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: query ?? '' });\n\n const {\n items: programs,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<TvSearchResult, TvSearchResponse>(\n region.data && getRequest,\n fetchNext,\n onError,\n response => response.results,\n response => {\n if (response.page * 25 > response.totalNumber)\n return null;\n\n return (response.page + 1).toString();\n }\n );\n\n function getRequest(cursor?: string): Flight.Request {\n return TvRequests.search(\n region.data.code,\n queryParams,\n +cursor\n );\n }\n\n function fetchNext(cursor?: string): void {\n return fetch(getRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error('Something went wrong');\n }\n\n const getVideoActions = useGetTvActions('video-list', region.data);\n\n const dataLoaded = region.hasCompleted && regions.hasCompleted && channels.hasCompleted;\n\n const mainFilters = [\n Filters.TvChannel(channels.data),\n Filters.TvDateBroadcast(),\n Filters.TvFields()\n ];\n\n return (\n <>\n <TvSearchBar query={query} region={region.data} />\n\n <div className='d-flex justify-content-between mb-2'>\n <SearchFilters\n queryParams={queryParams}\n mainFilters={mainFilters}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.SearchFilters\n }}\n appLink={{ application: AppChannels.TV, action: Actions.Tv.SEARCH, args: [region.data?.code]}}\n hideDivider\n isFetchingOptions={!dataLoaded}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.SEARCH,\n params: { query: query }\n }}\n onClick={setRegion}\n />\n </div>\n\n {dataLoaded && (\n <>\n {programs?.length ? (\n <>\n {programs.map((program, index) => {\n return (\n <TvSearchResultItem\n key={index}\n program={program}\n query={query}\n region={region.data}\n getVideoActions={getVideoActions}\n />\n );\n })}\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n ) : (\n <>\n {isFetching ? (\n <div className='m-n2'>\n <PartialVideoList />\n </div>\n ) : <TvSearchResultsState query={query} />}\n </>\n )}\n </>\n )}\n </>\n );\n}"],"names":["namespace","TvSearchResultsState","props","LanguageNamespaceContext","EmptyState","jsx","ImageUrls","Text","highlightText","text","query","regex","match","styles","TvSearchResultItem","program","region","getVideoActions","showMore","setShowMore","React","appLink","AppChannels","Actions","startTime","toLocalTime","stopTime","diff","DateHelper","jsxs","BaseImage","ImageType","ImageFallback","ImageFallbackType","Badge","BadgeType","ActionsComponent","AppLink","BadgeListContainer","TvChannelBadge","TvProgramTimeBadge","TvAdFreeBadge","_a","_b","hit","index","_c","TvSearchResultsView","queryParams","fetch","Flight.useGetFetch","alerts","useAlerts","Flight.useBasicFetch","TvRequests","regions","channels","handleHttpError","HttpStatus","setRegion","useSelectedRegion","useHandleRegionError","useHandleObjectError","useSetPageMetadata","programs","hasMore","isFetching","nextCursor","useInfiniteList","getRequest","fetchNext","onError","response","cursor","pageNumber","httpStatus","useGetTvActions","dataLoaded","mainFilters","Filters","Fragment","TvSearchBar","SearchFilters","EntityType","LocationContext","TvRegionSelect","InfiniteScrollFooter","PartialVideoList"],"mappings":"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"}
1
+ {"version":3,"file":"Dp7JDODj.chunk.js","sources":["../../src/apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState.tsx","../../src/apps/tv/views/tv-search-results/components/tv-search-result-item/TvSearchResultItem.tsx","../../src/apps/tv/views/tv-search-results/TvSearchResultsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\n\nconst namespace = 'tv.searchResultsEmptyState';\n\ninterface TvSearchResultsStateProps {\n query?: string;\n}\n\nexport function TvSearchResultsState(props: TvSearchResultsStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.SEARCH} />\n\n <EmptyState.Heading>\n {props.query\n ? <Text phrase='headingWithQuery' options={{ query: props.query }} />\n : <Text phrase='headingWithoutQuery' />\n }\n </EmptyState.Heading>\n\n <EmptyState.Info>\n <Text phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ActionOptions, Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageType } from 'libs/shared/enums/Images';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAdFreeBadge } from 'apps/tv/components/tv-ad-free-badge/TvAdFreeBadge';\nimport { TvChannelBadge } from 'apps/tv/components/tv-channel-badge/TvChannelBadge';\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport styles from './tv-search-result-item.module.scss';\n\nfunction highlightText(text: string, query: string): string {\n const regex = new RegExp(query, 'gi');\n return text.replace(regex, match => `<span class=${styles.highlight}>${match}</span>`);\n}\n\ninterface TvSearchResultItemProps {\n query: string;\n program: TvSearchResult;\n region: TvRegion;\n getVideoActions: (video: TvProgram) => ActionOptions[];\n}\n\nexport function TvSearchResultItem(props: TvSearchResultItemProps): JSX.Element {\n const { program, query, region, getVideoActions } = props;\n\n const [ showMore, setShowMore ] = React.useState(false);\n\n const appLink = {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ region.code, program.id ]\n };\n\n const startTime = toLocalTime(program.startTime, program.timeZone);\n const stopTime = toLocalTime(program.stopTime, program.timeZone);\n const diff = Math.abs(DateHelper.diffBetween(startTime, stopTime, 'milliseconds'));\n\n return (\n <div className='row g-0 mb-3'>\n <div className='col-3 flex-column align-items-flex-start pe-2'>\n <div className='rounded rounded-3 overflow-hidden'>\n <BaseImage\n imageType={ImageType.Thumbnails}\n data={program.thumbnailUrl}\n appLink={appLink}\n >\n <ImageFallback type={ImageFallbackType.Video} />\n\n <div className={styles.badgeOverlay}>\n <Badge\n type={BadgeType.DurationApproximate}\n data={diff}\n />\n </div>\n </BaseImage>\n </div>\n </div>\n <div className='col-9 pb-2'>\n <ActionsComponent\n actions={getVideoActions(program as TvProgram)}\n className='float-end mt-n1'\n actionsDropdownClassName='btn btn-link ms-1'\n />\n <AppLink appLink={appLink}>\n <h5 className='h4 mb-1 align-middle text-dark text-truncate' title={program.title ?? ''}>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.title, query)\n }}></span>\n </h5>\n </AppLink>\n <BadgeListContainer className='mb-1'>\n {program.channelLogoUrl && <TvChannelBadge logoUrl={program.channelLogoUrl} className='me-1' small />}\n <TvProgramTimeBadge program={program as TvProgram} className='me-1' showDate showEndTime />\n {program.hasAdsFree && <TvAdFreeBadge small />}\n </BadgeListContainer>\n <div className='mb-1'>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.description, query)\n }}></span>\n </div>\n {!!program.subtitleHits?.length &&\n <div>\n {program.subtitleHits?.map(((hit, index) => {\n if (!showMore && index > 1)\n return <React.Fragment key={index} />;\n\n return (\n <AppLink\n key={index}\n appLink={{\n ...appLink,\n args: [...appLink.args],\n params: {\n currentTime: hit.HitStartTime / 1000\n }\n }}\n className='d-block text-dark'\n >\n <span className='fw-semibold'>\n [{DateHelper.format(DateHelper.add(startTime, hit.HitStartTime, 'milliseconds'), 'h:mm:ss a')}]\n </span>\n &nbsp;\n <span dangerouslySetInnerHTML={{\n __html: highlightText(hit.SrtFragment, query)\n }}></span>\n </AppLink>\n );\n }))}\n {!showMore && program.subtitleHits?.length > 2 && <div className='text-info cursor-pointer' onClick={() => setShowMore(true)}>Show more</div>}\n </div>\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SearchFilters } from 'libs/shared/apps/search/components/search-filters/SearchFilters';\nimport { Filters } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useGetTvActions } from 'apps/tv/hooks/useGetTvActions';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { TvSearchResponse } from 'apps/tv/interfaces/responses/TvSearchResponse';\nimport { TvSearchResultsState } from 'apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState';\n\nimport { TvSearchResultItem } from './components/tv-search-result-item/TvSearchResultItem';\n\ninterface TvSearchResultsViewProps {\n region: string;\n queryParams: HashObject;\n}\n\nTvSearchResultsView.defaultProps = {\n queryParams: {}\n};\n\nexport function TvSearchResultsView(props: TvSearchResultsViewProps): JSX.Element {\n const { queryParams } = props;\n const { query } = queryParams;\n\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n if (region.hasCompleted && !region.data) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n const { setRegion } = useSelectedRegion();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: query ?? '' });\n\n const {\n items: programs,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<TvSearchResult, TvSearchResponse>(\n region.data && getRequest,\n fetchNext,\n onError,\n response => response.results,\n response => {\n if (response.page * 25 > response.totalNumber)\n return null;\n\n return (response.page + 1).toString();\n }\n );\n\n function getRequest(cursor?: string): Flight.Request {\n return TvRequests.search(\n region.data.code,\n queryParams,\n +cursor\n );\n }\n\n function fetchNext(cursor?: string): void {\n return fetch(getRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error('Something went wrong');\n }\n\n const getVideoActions = useGetTvActions('video-list', region.data);\n\n const dataLoaded = region.hasCompleted && regions.hasCompleted && channels.hasCompleted;\n\n const mainFilters = [\n Filters.TvChannel(channels.data),\n Filters.TvDateBroadcast(),\n Filters.TvFields()\n ];\n\n return (\n <>\n <TvSearchBar query={query} region={region.data} />\n\n <div className='d-flex justify-content-between mb-2'>\n <SearchFilters\n queryParams={queryParams}\n mainFilters={mainFilters}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.SearchFilters\n }}\n appLink={{ application: AppChannels.TV, action: Actions.Tv.SEARCH, args: [region.data?.code]}}\n hideDivider\n isFetchingOptions={!dataLoaded}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.SEARCH,\n params: { query: query }\n }}\n onClick={setRegion}\n />\n </div>\n\n {dataLoaded && (\n <>\n {programs?.length ? (\n <>\n {programs.map((program, index) => {\n return (\n <TvSearchResultItem\n key={index}\n program={program}\n query={query}\n region={region.data}\n getVideoActions={getVideoActions}\n />\n );\n })}\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n ) : (\n <>\n {isFetching ? (\n <div className='m-n2'>\n <PartialVideoList />\n </div>\n ) : <TvSearchResultsState query={query} />}\n </>\n )}\n </>\n )}\n </>\n );\n}"],"names":["namespace","TvSearchResultsState","props","LanguageNamespaceContext","EmptyState","jsx","ImageUrls","Text","highlightText","text","query","regex","match","styles","TvSearchResultItem","program","region","getVideoActions","showMore","setShowMore","React","appLink","AppChannels","Actions","startTime","toLocalTime","stopTime","diff","DateHelper","jsxs","BaseImage","ImageType","ImageFallback","ImageFallbackType","Badge","BadgeType","ActionsComponent","AppLink","BadgeListContainer","TvChannelBadge","TvProgramTimeBadge","TvAdFreeBadge","_a","_b","hit","index","_c","TvSearchResultsView","queryParams","fetch","Flight.useGetFetch","alerts","useAlerts","Flight.useBasicFetch","TvRequests","regions","channels","handleHttpError","HttpStatus","setRegion","useSelectedRegion","useHandleRegionError","useHandleObjectError","useSetPageMetadata","programs","hasMore","isFetching","nextCursor","useInfiniteList","getRequest","fetchNext","onError","response","cursor","pageNumber","httpStatus","useGetTvActions","dataLoaded","mainFilters","Filters","Fragment","TvSearchBar","SearchFilters","EntityType","LocationContext","TvRegionSelect","InfiniteScrollFooter","PartialVideoList"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{aK as i,bL as n,j as t,bM as m,B as r}from"./app-Det8y4U1.js";const u="shared.formButtons";function c(s){const e=i(),a=n(e);return t.jsx(m,{variant:s.variant||"primary",type:"submit",disabled:!a,size:s.size,className:s.className?s.className:"",showSpinner:e.isSubmitting,children:s.submitText?t.jsx(t.Fragment,{children:s.submitText}):t.jsx(r,{namespace:u,phrase:s.isNew?"create":"save"})})}export{c as F};
2
- //# sourceMappingURL=wKPIC1H3.chunk.js.map
1
+ import{aK as i,bL as n,j as t,bM as m,B as r}from"./app-C2md4v6O.js";const u="shared.formButtons";function c(s){const e=i(),a=n(e);return t.jsx(m,{variant:s.variant||"primary",type:"submit",disabled:!a,size:s.size,className:s.className?s.className:"",showSpinner:e.isSubmitting,children:s.submitText?t.jsx(t.Fragment,{children:s.submitText}):t.jsx(r,{namespace:u,phrase:s.isNew?"create":"save"})})}export{c as F};
2
+ //# sourceMappingURL=Dq-OnBBE.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wKPIC1H3.chunk.js","sources":["../../../../libs/shared/src/components/forms/form-buttons/FormButtons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nconst namespace = 'shared.formButtons';\n\ninterface FormButtonsProps {\n isNew?: boolean;\n submitText?: string;\n variant?: ButtonProps['variant'];\n size?: FormSize;\n className?: string;\n}\n\nexport function FormButtons<Values extends HashObject>(props: FormButtonsProps): JSX.Element {\n const formikProps = useFormikContext<Values>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <SpinnerButton\n variant={props.variant || 'primary'}\n type='submit'\n disabled={!canSubmit}\n size={props.size}\n className={props.className ? props.className : ''}\n showSpinner={formikProps.isSubmitting}\n >\n {props.submitText\n ? <>{props.submitText}</>\n : <Text namespace={namespace} phrase={props.isNew ? 'create' : 'save'} />}\n </SpinnerButton>\n );\n}\n"],"names":["namespace","FormButtons","props","formikProps","useFormikContext","canSubmit","useCanSubmitForm","jsx","SpinnerButton","Fragment","Text"],"mappings":"qEAWA,MAAMA,EAAY,qBAUX,SAASC,EAAuCC,EAAsC,CAC3F,MAAMC,EAAcC,EAAA,EAEdC,EAAYC,EAAiBH,CAAW,EAE9C,OACEI,EAAAA,IAACC,EAAA,CACC,QAASN,EAAM,SAAW,UAC1B,KAAK,SACL,SAAU,CAACG,EACX,KAAMH,EAAM,KACZ,UAAWA,EAAM,UAAYA,EAAM,UAAY,GAC/C,YAAaC,EAAY,aAExB,SAAAD,EAAM,WACHK,EAAAA,IAAAE,EAAAA,SAAA,CAAG,SAAAP,EAAM,UAAA,CAAW,EACpBK,MAACG,EAAA,CAAK,UAAAV,EAAsB,OAAQE,EAAM,MAAQ,SAAW,MAAA,CAAQ,CAAA,CAAA,CAG/E"}
1
+ {"version":3,"file":"Dq-OnBBE.chunk.js","sources":["../../../../libs/shared/src/components/forms/form-buttons/FormButtons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nconst namespace = 'shared.formButtons';\n\ninterface FormButtonsProps {\n isNew?: boolean;\n submitText?: string;\n variant?: ButtonProps['variant'];\n size?: FormSize;\n className?: string;\n}\n\nexport function FormButtons<Values extends HashObject>(props: FormButtonsProps): JSX.Element {\n const formikProps = useFormikContext<Values>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <SpinnerButton\n variant={props.variant || 'primary'}\n type='submit'\n disabled={!canSubmit}\n size={props.size}\n className={props.className ? props.className : ''}\n showSpinner={formikProps.isSubmitting}\n >\n {props.submitText\n ? <>{props.submitText}</>\n : <Text namespace={namespace} phrase={props.isNew ? 'create' : 'save'} />}\n </SpinnerButton>\n );\n}\n"],"names":["namespace","FormButtons","props","formikProps","useFormikContext","canSubmit","useCanSubmitForm","jsx","SpinnerButton","Fragment","Text"],"mappings":"qEAWA,MAAMA,EAAY,qBAUX,SAASC,EAAuCC,EAAsC,CAC3F,MAAMC,EAAcC,EAAA,EAEdC,EAAYC,EAAiBH,CAAW,EAE9C,OACEI,EAAAA,IAACC,EAAA,CACC,QAASN,EAAM,SAAW,UAC1B,KAAK,SACL,SAAU,CAACG,EACX,KAAMH,EAAM,KACZ,UAAWA,EAAM,UAAYA,EAAM,UAAY,GAC/C,YAAaC,EAAY,aAExB,SAAAD,EAAM,WACHK,EAAAA,IAAAE,EAAAA,SAAA,CAAG,SAAAP,EAAM,UAAA,CAAW,EACpBK,MAACG,EAAA,CAAK,UAAAV,EAAsB,OAAQE,EAAM,MAAQ,SAAW,MAAA,CAAQ,CAAA,CAAA,CAG/E"}
@@ -1,2 +1,2 @@
1
- import{j as t,ap as v,a as c,b as o,B as g,ac as h,ad as A,ae as f,A as l,L as d}from"./app-Det8y4U1.js";import{t as p}from"./DWmgmt8-.chunk.js";import{a as x}from"./BuawzJwd.chunk.js";import{P as L}from"./5EeDosB6.chunk.js";const u="tv.infoAlert";function D(a){var s;return t.jsx("div",{className:"mb-3",children:t.jsx("div",{children:a.dateRange&&t.jsx(t.Fragment,{children:t.jsx(v,{appLink:{application:o.TV,action:c.Tv.BROADCAST_CONTENT,args:[(s=a.region)==null?void 0:s.code]},className:"text-info",children:t.jsxs("p",{className:"fw-semibold mb-0 me-2",children:[t.jsx(g,{namespace:u,phrase:"programsAvailable"}),x.getFormattedDateRange(p(a.dateRange.startDate,a.dateRange.timeZone),p(a.dateRange.endDate,a.dateRange.timeZone))]})})})})})}const T="tv.tvTabs",i=d.encloseNamespace(T),n={channels:{application:o.TV,action:c.Tv.CHANNELS},programs:{application:o.TV,action:c.Tv.PROGRAMS},tvGuide:{application:o.TV,action:c.Tv.TV_GUIDE}},r={actionType:f.Click,entity:A.Url,location:h.MagicTabs};function G(a){const{active:s,currentRegion:e}=a,m=[{name:i("channels"),appLink:{...n.channels,args:[e==null?void 0:e.code]},active:s==="channels",analyticsData:{name:i("channels"),url:l.getHref(n.channels)},analyticsOptions:r},{name:i("programs"),appLink:{...n.programs,args:[e==null?void 0:e.code]},active:s==="programs",analyticsData:{name:d.getPhrase(T,"programs"),url:l.getHref(n.programs)},analyticsOptions:r}];return a.showTvGuide&&m.push({name:i("tvGuide"),appLink:{...n.tvGuide,args:[e==null?void 0:e.code]},active:s==="tv-guide",analyticsData:{name:i("tvGuide"),url:l.getHref(n.tvGuide)},analyticsOptions:r}),t.jsx("div",{className:"mb-3",children:t.jsx(L,{tabs:m})})}export{G as T,D as a};
2
- //# sourceMappingURL=DRxJfu3A.chunk.js.map
1
+ import{j as t,ap as v,a as c,b as o,B as g,ac as h,ad as A,ae as f,A as l,L as d}from"./app-C2md4v6O.js";import{t as p}from"./DQNTWWrq.chunk.js";import{a as x}from"./msdkwRcQ.chunk.js";import{P as L}from"./sw2_FVPM.chunk.js";const u="tv.infoAlert";function D(a){var s;return t.jsx("div",{className:"mb-3",children:t.jsx("div",{children:a.dateRange&&t.jsx(t.Fragment,{children:t.jsx(v,{appLink:{application:o.TV,action:c.Tv.BROADCAST_CONTENT,args:[(s=a.region)==null?void 0:s.code]},className:"text-info",children:t.jsxs("p",{className:"fw-semibold mb-0 me-2",children:[t.jsx(g,{namespace:u,phrase:"programsAvailable"}),x.getFormattedDateRange(p(a.dateRange.startDate,a.dateRange.timeZone),p(a.dateRange.endDate,a.dateRange.timeZone))]})})})})})}const T="tv.tvTabs",i=d.encloseNamespace(T),n={channels:{application:o.TV,action:c.Tv.CHANNELS},programs:{application:o.TV,action:c.Tv.PROGRAMS},tvGuide:{application:o.TV,action:c.Tv.TV_GUIDE}},r={actionType:f.Click,entity:A.Url,location:h.MagicTabs};function G(a){const{active:s,currentRegion:e}=a,m=[{name:i("channels"),appLink:{...n.channels,args:[e==null?void 0:e.code]},active:s==="channels",analyticsData:{name:i("channels"),url:l.getHref(n.channels)},analyticsOptions:r},{name:i("programs"),appLink:{...n.programs,args:[e==null?void 0:e.code]},active:s==="programs",analyticsData:{name:d.getPhrase(T,"programs"),url:l.getHref(n.programs)},analyticsOptions:r}];return a.showTvGuide&&m.push({name:i("tvGuide"),appLink:{...n.tvGuide,args:[e==null?void 0:e.code]},active:s==="tv-guide",analyticsData:{name:i("tvGuide"),url:l.getHref(n.tvGuide)},analyticsOptions:r}),t.jsx("div",{className:"mb-3",children:t.jsx(L,{tabs:m})})}export{G as T,D as a};
2
+ //# sourceMappingURL=DrTbksPR.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DRxJfu3A.chunk.js","sources":["../../src/apps/tv/components/tv-info-alert/TvInfoAlert.tsx","../../src/apps/tv/components/tv-tabs/TvTabs.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nconst namespace = 'tv.infoAlert';\n\ninterface TvInfoAlertProps {\n dateRange: TvDateRange;\n region: TvRegion;\n}\n\nexport function TvInfoAlert(props: TvInfoAlertProps) {\n return (\n <div className='mb-3'>\n <div>\n {props.dateRange && (\n <>\n <AppLink\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.BROADCAST_CONTENT,\n args: [props.region?.code]\n }}\n className='text-info'\n >\n <p className='fw-semibold mb-0 me-2'>\n <Text namespace={namespace} phrase='programsAvailable' />\n {TvUtils.getFormattedDateRange(\n toLocalTime(props.dateRange.startDate, props.dateRange.timeZone),\n toLocalTime(props.dateRange.endDate, props.dateRange.timeZone)\n )}\n </p>\n </AppLink>\n </>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.tvTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APP_LINKS = {\n channels: {\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n },\n programs: {\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS\n },\n tvGuide: {\n application: AppChannels.TV,\n action: Actions.Tv.TV_GUIDE\n }\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\ninterface TvTabs {\n active: 'channels' | 'programs' | 'tv-guide' | null;\n currentRegion: TvRegion;\n showTvGuide: boolean;\n}\n\nexport function TvTabs(props: TvTabs): JSX.Element {\n const { active, currentRegion } = props;\n\n const tabs: PillTab[] = [{\n name: getPhrase('channels'),\n appLink: {\n ...APP_LINKS.channels,\n args: [currentRegion?.code]\n },\n active: active === 'channels',\n analyticsData: {\n name: getPhrase('channels'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.channels)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }, {\n name: getPhrase('programs'),\n appLink: {\n ...APP_LINKS.programs,\n args: [currentRegion?.code]\n },\n active: active === 'programs',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'programs'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.programs)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }];\n\n if (props.showTvGuide) {\n tabs.push({\n name: getPhrase('tvGuide'),\n appLink: {\n ...APP_LINKS.tvGuide,\n args: [currentRegion?.code]\n },\n active: active === 'tv-guide',\n analyticsData: {\n name: getPhrase('tvGuide'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.tvGuide)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n });\n }\n\n return (\n <div className='mb-3'>\n <PillTabSelector tabs={tabs} />\n </div>\n );\n}"],"names":["namespace","TvInfoAlert","props","jsx","Fragment","AppLink","AppChannels","Actions","_a","jsxs","Text","TvUtils","toLocalTime","getPhrase","LanguageService","APP_LINKS","ANALYTICS_OPTIONS","UserAction","EntityType","LocationContext","TvTabs","active","currentRegion","tabs","Core.AppLinkHelper","PillTabSelector"],"mappings":"iOAYA,MAAMA,EAAY,eAOX,SAASC,EAAYC,EAAyB,OACnD,OACEC,EAAAA,IAAC,OAAI,UAAU,OACb,eAAC,MAAA,CACE,SAAAD,EAAM,WACLC,EAAAA,IAAAC,EAAAA,SAAA,CACE,SAAAD,EAAAA,IAACE,EAAA,CACC,QAAS,CACP,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,kBACnB,KAAM,EAACC,EAAAN,EAAM,SAAN,YAAAM,EAAc,IAAI,CAAA,EAE3B,UAAU,YAEV,SAAAC,EAAAA,KAAC,IAAA,CAAE,UAAU,wBACX,SAAA,CAAAN,EAAAA,IAACO,EAAA,CAAA,UAAKV,EAAsB,OAAO,mBAAA,CAAoB,EACtDW,EAAQ,sBACPC,EAAYV,EAAM,UAAU,UAAWA,EAAM,UAAU,QAAQ,EAC/DU,EAAYV,EAAM,UAAU,QAASA,EAAM,UAAU,QAAQ,CAAA,CAC/D,CAAA,CACF,CAAA,CAAA,CACF,CACF,EAEJ,EACF,CAEJ,CChCA,MAAMF,EAAY,YACZa,EAAYC,EAAgB,iBAAiBd,CAAS,EAEtDe,EAAY,CAChB,SAAU,CACR,YAAaT,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,SAAU,CACR,YAAaD,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,QAAS,CACP,YAAaD,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,CAEvB,EAEMS,EAAoB,CACxB,WAAYC,EAAW,MACvB,OAAQC,EAAW,IACnB,SAAUC,EAAgB,SAC5B,EAQO,SAASC,EAAOlB,EAA4B,CACjD,KAAM,CAAE,OAAAmB,EAAQ,cAAAC,CAAA,EAAkBpB,EAE5BqB,EAAkB,CAAC,CACvB,KAAMV,EAAU,UAAU,EAC1B,QAAS,CACP,GAAGE,EAAU,SACb,KAAM,CAACO,GAAA,YAAAA,EAAe,IAAI,CAAA,EAE5B,OAAQD,IAAW,WACnB,cAAe,CACb,KAAMR,EAAU,UAAU,EAC1B,IAAKW,EAAmB,QAAQT,EAAU,QAAQ,CAAA,EAEpD,iBAAkBC,CAAA,EACjB,CACD,KAAMH,EAAU,UAAU,EAC1B,QAAS,CACP,GAAGE,EAAU,SACb,KAAM,CAACO,GAAA,YAAAA,EAAe,IAAI,CAAA,EAE5B,OAAQD,IAAW,WACnB,cAAe,CACb,KAAMP,EAAgB,UAAUd,EAAW,UAAU,EACrD,IAAKwB,EAAmB,QAAQT,EAAU,QAAQ,CAAA,EAEpD,iBAAkBC,CAAA,CACnB,EAED,OAAId,EAAM,aACRqB,EAAK,KAAK,CACR,KAAMV,EAAU,SAAS,EACzB,QAAS,CACP,GAAGE,EAAU,QACb,KAAM,CAACO,GAAA,YAAAA,EAAe,IAAI,CAAA,EAE5B,OAAQD,IAAW,WACnB,cAAe,CACb,KAAMR,EAAU,SAAS,EACzB,IAAKW,EAAmB,QAAQT,EAAU,OAAO,CAAA,EAEnD,iBAAkBC,CAAA,CACnB,QAIA,MAAA,CAAI,UAAU,OACb,SAAAb,EAAAA,IAACsB,EAAA,CAAgB,KAAAF,EAAY,CAAA,CAC/B,CAEJ"}
1
+ {"version":3,"file":"DrTbksPR.chunk.js","sources":["../../src/apps/tv/components/tv-info-alert/TvInfoAlert.tsx","../../src/apps/tv/components/tv-tabs/TvTabs.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nconst namespace = 'tv.infoAlert';\n\ninterface TvInfoAlertProps {\n dateRange: TvDateRange;\n region: TvRegion;\n}\n\nexport function TvInfoAlert(props: TvInfoAlertProps) {\n return (\n <div className='mb-3'>\n <div>\n {props.dateRange && (\n <>\n <AppLink\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.BROADCAST_CONTENT,\n args: [props.region?.code]\n }}\n className='text-info'\n >\n <p className='fw-semibold mb-0 me-2'>\n <Text namespace={namespace} phrase='programsAvailable' />\n {TvUtils.getFormattedDateRange(\n toLocalTime(props.dateRange.startDate, props.dateRange.timeZone),\n toLocalTime(props.dateRange.endDate, props.dateRange.timeZone)\n )}\n </p>\n </AppLink>\n </>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.tvTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APP_LINKS = {\n channels: {\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n },\n programs: {\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS\n },\n tvGuide: {\n application: AppChannels.TV,\n action: Actions.Tv.TV_GUIDE\n }\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\ninterface TvTabs {\n active: 'channels' | 'programs' | 'tv-guide' | null;\n currentRegion: TvRegion;\n showTvGuide: boolean;\n}\n\nexport function TvTabs(props: TvTabs): JSX.Element {\n const { active, currentRegion } = props;\n\n const tabs: PillTab[] = [{\n name: getPhrase('channels'),\n appLink: {\n ...APP_LINKS.channels,\n args: [currentRegion?.code]\n },\n active: active === 'channels',\n analyticsData: {\n name: getPhrase('channels'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.channels)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }, {\n name: getPhrase('programs'),\n appLink: {\n ...APP_LINKS.programs,\n args: [currentRegion?.code]\n },\n active: active === 'programs',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'programs'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.programs)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }];\n\n if (props.showTvGuide) {\n tabs.push({\n name: getPhrase('tvGuide'),\n appLink: {\n ...APP_LINKS.tvGuide,\n args: [currentRegion?.code]\n },\n active: active === 'tv-guide',\n analyticsData: {\n name: getPhrase('tvGuide'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.tvGuide)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n });\n }\n\n return (\n <div className='mb-3'>\n <PillTabSelector tabs={tabs} />\n </div>\n );\n}"],"names":["namespace","TvInfoAlert","props","jsx","Fragment","AppLink","AppChannels","Actions","_a","jsxs","Text","TvUtils","toLocalTime","getPhrase","LanguageService","APP_LINKS","ANALYTICS_OPTIONS","UserAction","EntityType","LocationContext","TvTabs","active","currentRegion","tabs","Core.AppLinkHelper","PillTabSelector"],"mappings":"iOAYA,MAAMA,EAAY,eAOX,SAASC,EAAYC,EAAyB,OACnD,OACEC,EAAAA,IAAC,OAAI,UAAU,OACb,eAAC,MAAA,CACE,SAAAD,EAAM,WACLC,EAAAA,IAAAC,EAAAA,SAAA,CACE,SAAAD,EAAAA,IAACE,EAAA,CACC,QAAS,CACP,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,kBACnB,KAAM,EAACC,EAAAN,EAAM,SAAN,YAAAM,EAAc,IAAI,CAAA,EAE3B,UAAU,YAEV,SAAAC,EAAAA,KAAC,IAAA,CAAE,UAAU,wBACX,SAAA,CAAAN,EAAAA,IAACO,EAAA,CAAA,UAAKV,EAAsB,OAAO,mBAAA,CAAoB,EACtDW,EAAQ,sBACPC,EAAYV,EAAM,UAAU,UAAWA,EAAM,UAAU,QAAQ,EAC/DU,EAAYV,EAAM,UAAU,QAASA,EAAM,UAAU,QAAQ,CAAA,CAC/D,CAAA,CACF,CAAA,CAAA,CACF,CACF,EAEJ,EACF,CAEJ,CChCA,MAAMF,EAAY,YACZa,EAAYC,EAAgB,iBAAiBd,CAAS,EAEtDe,EAAY,CAChB,SAAU,CACR,YAAaT,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,SAAU,CACR,YAAaD,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,QAAS,CACP,YAAaD,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,CAEvB,EAEMS,EAAoB,CACxB,WAAYC,EAAW,MACvB,OAAQC,EAAW,IACnB,SAAUC,EAAgB,SAC5B,EAQO,SAASC,EAAOlB,EAA4B,CACjD,KAAM,CAAE,OAAAmB,EAAQ,cAAAC,CAAA,EAAkBpB,EAE5BqB,EAAkB,CAAC,CACvB,KAAMV,EAAU,UAAU,EAC1B,QAAS,CACP,GAAGE,EAAU,SACb,KAAM,CAACO,GAAA,YAAAA,EAAe,IAAI,CAAA,EAE5B,OAAQD,IAAW,WACnB,cAAe,CACb,KAAMR,EAAU,UAAU,EAC1B,IAAKW,EAAmB,QAAQT,EAAU,QAAQ,CAAA,EAEpD,iBAAkBC,CAAA,EACjB,CACD,KAAMH,EAAU,UAAU,EAC1B,QAAS,CACP,GAAGE,EAAU,SACb,KAAM,CAACO,GAAA,YAAAA,EAAe,IAAI,CAAA,EAE5B,OAAQD,IAAW,WACnB,cAAe,CACb,KAAMP,EAAgB,UAAUd,EAAW,UAAU,EACrD,IAAKwB,EAAmB,QAAQT,EAAU,QAAQ,CAAA,EAEpD,iBAAkBC,CAAA,CACnB,EAED,OAAId,EAAM,aACRqB,EAAK,KAAK,CACR,KAAMV,EAAU,SAAS,EACzB,QAAS,CACP,GAAGE,EAAU,QACb,KAAM,CAACO,GAAA,YAAAA,EAAe,IAAI,CAAA,EAE5B,OAAQD,IAAW,WACnB,cAAe,CACb,KAAMR,EAAU,SAAS,EACzB,IAAKW,EAAmB,QAAQT,EAAU,OAAO,CAAA,EAEnD,iBAAkBC,CAAA,CACnB,QAIA,MAAA,CAAI,UAAU,OACb,SAAAb,EAAAA,IAACsB,EAAA,CAAgB,KAAAF,EAAY,CAAA,CAC/B,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{L as v,aK as O,aA as q,j as a,a0 as Q,B as x,x as D,a1 as X,a2 as C,a3 as Z,P as S,bK as ee,a4 as ae,aa as U,aR as k,ab as E,ac as Y,ad as B,ae as V}from"./app-Det8y4U1.js";import{l as o,F as h,a as se}from"./OvG1eOzS.chunk.js";import{I as M}from"./CJ3oIQlG.chunk.js";import{u as ne}from"./C36BgTJV.chunk.js";import{u as te}from"./CRuObGvW.chunk.js";import{a as oe,T as I}from"./BuawzJwd.chunk.js";import{g as $}from"./l-2DoY9E.chunk.js";import{F as re}from"./wKPIC1H3.chunk.js";import"./Bi0GaEZE.chunk.js";var G=(e=>(e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="42463303326489",e.AddFromLite="42450541662233",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705",e.MarcFormatDifferences="48276917260441",e.ExportLibraries="17684275853465",e.StudentSharingGuide="50326395499417",e.Sharing="49512742828953",e))(G||{}),H=(e=>(e[e.BbcRes=0]="BbcRes",e))(H||{});const ie="tv.requestProgramValidation",f=v.encloseNamespace(ie);function ce(e){return e?o.object().shape({channelId:o.string().required(f("channelRequired")),title:o.string().required(f("programRequired")),broadcastDate:o.string().required(f("dateRequired")),broadcastTime:o.string().required(f("timeRequired")),closedCaptions:o.string(),comments:o.string()}):o.object().shape({title:o.string().required(f("programRequired")),comments:o.string()})}const g="tv.requestProgramForm",r=v.encloseNamespace(g);function le(e){const c=O(),b=q.format(q.add(new Date,4,"days"),"YYYY-MM-DD"),i=q.format(q.add(b,11,"days"),"YYYY-MM-DD"),s=$(e.instanceRegion);return a.jsxs(Q,{children:[e.channels&&a.jsxs(h,{as:"select",label:r("channelLabel"),name:"channelId",value:c.values.channelId,showRequiredStar:!0,children:[a.jsx("option",{value:"",children:v.getPhrase(g,"channelPlaceholder")},0),e.channels.map(l=>a.jsx("option",{value:l.id,children:`${l.name} - (${l.number})`},l.id))]}),a.jsx(h,{label:r("programLabel"),placeholder:r("programPlaceholder"),type:"text",name:"title",value:c.values.title,showRequiredStar:!0}),e.channels&&a.jsxs("div",{className:"d-flex",children:[a.jsx("div",{className:"w-50 me-2",children:a.jsx(h,{label:r("broadcastDateLabel"),type:"date",name:"broadcastDate",value:c.values.broadcastDate,min:b,max:i,showRequiredStar:!0})}),a.jsx("div",{className:"w-50",children:a.jsx(h,{label:r("broadcastTimeLabel"),type:"time",name:"broadcastTime",value:c.values.broadcastTime,className:"mb-0",showRequiredStar:!0})})]}),a.jsx("p",{className:"mt-n1",children:a.jsx("small",{children:a.jsx(x,{namespace:g,phrase:s.programGuidePhraseKey})})}),e.channels&&a.jsxs("div",{className:"d-flex",children:[a.jsx("div",{className:"w-50 me-2",children:a.jsxs(h,{as:"select",label:r("ccLabel"),name:"closedCaptions",value:c.values.closedCaptions,children:[a.jsx("option",{value:"",children:v.getPhrase(g,"ccNo")}),a.jsx("option",{value:"yes",children:v.getPhrase(g,"ccYes")})]})}),a.jsx("div",{className:"w-50"})]}),a.jsx(h,{label:r(e.channels?"commentsLabel":"additionalInfoLabel"),placeholder:r(e.channels?"commentsPlaceholder":"additionalInfoPlaceholder"),type:"text",name:"comments",value:c.values.comments}),a.jsx("p",{children:a.jsx(x,{namespace:g,phrase:"note",options:{tv:s.tv}})}),a.jsxs(D,{children:[a.jsx(D.Cancel,{text:r("cancel"),onClick:e.onClickCancel,variant:"link"}),a.jsx(re,{variant:"dark",submitText:r("request")})]})]})}const de={channelId:"",title:"",broadcastDate:"",broadcastTime:"",closedCaptions:"",comments:""},R="tv.requestProgram",P=v.encloseNamespace(R);function Pe(e){const c=X(),b=ne(),i=e.instanceRegion===M.AU,s=C(ae.currentUser()),l=e.instanceRegion===M.UK,y=C(l&&Z.customer(s.data.customerId)),p=C(i&&I.payTvChannels()),d=$(e.instanceRegion);function K(){e.closePopup()}const{loading:W,handleGenerateReportError:A}=te();function _(n){var m;if(i){const t=(m=p.data)==null?void 0:m.find(j=>String(j.id)===n.channelId);b.success(P("successChannel",{tv:d.tv,program:n.title,channel:t==null?void 0:t.name})),U.logUserAction({channel:t.id,name:t.name,program:n.title,region:e.region},{actionType:V.Submit,entity:B.Video,location:Y.Popup,workflowPhase:E.Complete,descriptor:k.RequestProgram})}else b.success(P("successNoChannel",{tv:d.tv,program:n.title})),U.logUserAction({program:n.title,region:e.region},{actionType:V.Submit,entity:B.Video,location:Y.Popup,workflowPhase:E.Complete,descriptor:k.RequestProgram})}function z(n){var T,w,F,N;const{broadcastDate:m,broadcastTime:t,closedCaptions:j,...u}=n;return l?{title:u.title,comments:u.comments,crmId:y.data.crmId,customerName:y.data.name,email:s.data.email,type:H.BbcRes,username:s.data.username}:i?{...u,closedCaptions:!!j,regionCode:e.region,programDateTime:`${m}T${t}`,userId:(T=s.data)==null?void 0:T.id,customerId:(w=s.data)==null?void 0:w.customerId}:{...u,regionCode:e.region,userId:(F=s.data)==null?void 0:F.id,customerId:(N=s.data)==null?void 0:N.customerId}}async function J(n,m){const t=z(n),j=l?I.requestProgramUk(t):I.requestProgram(t);try{await c(j),m(),_(n)}catch(u){A(u,P("error"),P("noEmailError"))}e.closePopup()}const L=s.hasCompleted&&(i&&p.hasCompleted||!i);return a.jsxs(S,{title:P("title",{tv:d.tv}),closePopup:e.closePopup,showLoadingSpinner:!L||W,children:[oe.isHolidayPeriod()&&a.jsxs("div",{className:"alert alert-warning",role:"alert",children:[a.jsx("h3",{className:"h5",children:a.jsx(x,{namespace:R,phrase:"requestAlertHeading"})}),a.jsx("p",{className:"m-0",children:a.jsx(x,{namespace:R,phrase:"requestAlertBody",options:{tv:d.tv}})})]}),a.jsx("p",{children:a.jsx(x,{namespace:R,phrase:"description",options:{tv:d.tv}})}),a.jsx("p",{children:a.jsx(x,{namespace:R,phrase:"moreInfo",options:{tv:d.tv,faqUrl:ee.getLiteArticle(G.FoxtelFaq)}})}),p&&a.jsx(se,{initialValues:de,validationSchema:ce(i),onSubmit:J,children:a.jsx(le,{onClickCancel:K,channels:i&&p.data,instanceRegion:e.instanceRegion})})]})}export{Pe as TvRequestProgramView};
2
- //# sourceMappingURL=aFUDBFEd.chunk.js.map
1
+ import{L as v,aK as O,aA as q,j as a,a0 as Q,B as x,x as D,a1 as X,a2 as C,a3 as Z,P as S,bK as ee,a4 as ae,aa as U,aR as k,ab as E,ac as Y,ad as B,ae as V}from"./app-C2md4v6O.js";import{l as o,F as h,a as se}from"./Bq4Y5pwG.chunk.js";import{I as M}from"./CJ3oIQlG.chunk.js";import{u as ne}from"./5Bk7WUgq.chunk.js";import{u as te}from"./PbxMeR6l.chunk.js";import{a as oe,T as I}from"./msdkwRcQ.chunk.js";import{g as $}from"./CYnTOjxg.chunk.js";import{F as re}from"./Dq-OnBBE.chunk.js";import"./DZ4UeBKW.chunk.js";var G=(e=>(e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="42463303326489",e.AddFromLite="42450541662233",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705",e.MarcFormatDifferences="48276917260441",e.ExportLibraries="17684275853465",e.StudentSharingGuide="50326395499417",e.Sharing="49512742828953",e))(G||{}),H=(e=>(e[e.BbcRes=0]="BbcRes",e))(H||{});const ie="tv.requestProgramValidation",f=v.encloseNamespace(ie);function ce(e){return e?o.object().shape({channelId:o.string().required(f("channelRequired")),title:o.string().required(f("programRequired")),broadcastDate:o.string().required(f("dateRequired")),broadcastTime:o.string().required(f("timeRequired")),closedCaptions:o.string(),comments:o.string()}):o.object().shape({title:o.string().required(f("programRequired")),comments:o.string()})}const g="tv.requestProgramForm",r=v.encloseNamespace(g);function le(e){const c=O(),b=q.format(q.add(new Date,4,"days"),"YYYY-MM-DD"),i=q.format(q.add(b,11,"days"),"YYYY-MM-DD"),s=$(e.instanceRegion);return a.jsxs(Q,{children:[e.channels&&a.jsxs(h,{as:"select",label:r("channelLabel"),name:"channelId",value:c.values.channelId,showRequiredStar:!0,children:[a.jsx("option",{value:"",children:v.getPhrase(g,"channelPlaceholder")},0),e.channels.map(l=>a.jsx("option",{value:l.id,children:`${l.name} - (${l.number})`},l.id))]}),a.jsx(h,{label:r("programLabel"),placeholder:r("programPlaceholder"),type:"text",name:"title",value:c.values.title,showRequiredStar:!0}),e.channels&&a.jsxs("div",{className:"d-flex",children:[a.jsx("div",{className:"w-50 me-2",children:a.jsx(h,{label:r("broadcastDateLabel"),type:"date",name:"broadcastDate",value:c.values.broadcastDate,min:b,max:i,showRequiredStar:!0})}),a.jsx("div",{className:"w-50",children:a.jsx(h,{label:r("broadcastTimeLabel"),type:"time",name:"broadcastTime",value:c.values.broadcastTime,className:"mb-0",showRequiredStar:!0})})]}),a.jsx("p",{className:"mt-n1",children:a.jsx("small",{children:a.jsx(x,{namespace:g,phrase:s.programGuidePhraseKey})})}),e.channels&&a.jsxs("div",{className:"d-flex",children:[a.jsx("div",{className:"w-50 me-2",children:a.jsxs(h,{as:"select",label:r("ccLabel"),name:"closedCaptions",value:c.values.closedCaptions,children:[a.jsx("option",{value:"",children:v.getPhrase(g,"ccNo")}),a.jsx("option",{value:"yes",children:v.getPhrase(g,"ccYes")})]})}),a.jsx("div",{className:"w-50"})]}),a.jsx(h,{label:r(e.channels?"commentsLabel":"additionalInfoLabel"),placeholder:r(e.channels?"commentsPlaceholder":"additionalInfoPlaceholder"),type:"text",name:"comments",value:c.values.comments}),a.jsx("p",{children:a.jsx(x,{namespace:g,phrase:"note",options:{tv:s.tv}})}),a.jsxs(D,{children:[a.jsx(D.Cancel,{text:r("cancel"),onClick:e.onClickCancel,variant:"link"}),a.jsx(re,{variant:"dark",submitText:r("request")})]})]})}const de={channelId:"",title:"",broadcastDate:"",broadcastTime:"",closedCaptions:"",comments:""},R="tv.requestProgram",P=v.encloseNamespace(R);function Pe(e){const c=X(),b=ne(),i=e.instanceRegion===M.AU,s=C(ae.currentUser()),l=e.instanceRegion===M.UK,y=C(l&&Z.customer(s.data.customerId)),p=C(i&&I.payTvChannels()),d=$(e.instanceRegion);function K(){e.closePopup()}const{loading:W,handleGenerateReportError:A}=te();function _(n){var m;if(i){const t=(m=p.data)==null?void 0:m.find(j=>String(j.id)===n.channelId);b.success(P("successChannel",{tv:d.tv,program:n.title,channel:t==null?void 0:t.name})),U.logUserAction({channel:t.id,name:t.name,program:n.title,region:e.region},{actionType:V.Submit,entity:B.Video,location:Y.Popup,workflowPhase:E.Complete,descriptor:k.RequestProgram})}else b.success(P("successNoChannel",{tv:d.tv,program:n.title})),U.logUserAction({program:n.title,region:e.region},{actionType:V.Submit,entity:B.Video,location:Y.Popup,workflowPhase:E.Complete,descriptor:k.RequestProgram})}function z(n){var T,w,F,N;const{broadcastDate:m,broadcastTime:t,closedCaptions:j,...u}=n;return l?{title:u.title,comments:u.comments,crmId:y.data.crmId,customerName:y.data.name,email:s.data.email,type:H.BbcRes,username:s.data.username}:i?{...u,closedCaptions:!!j,regionCode:e.region,programDateTime:`${m}T${t}`,userId:(T=s.data)==null?void 0:T.id,customerId:(w=s.data)==null?void 0:w.customerId}:{...u,regionCode:e.region,userId:(F=s.data)==null?void 0:F.id,customerId:(N=s.data)==null?void 0:N.customerId}}async function J(n,m){const t=z(n),j=l?I.requestProgramUk(t):I.requestProgram(t);try{await c(j),m(),_(n)}catch(u){A(u,P("error"),P("noEmailError"))}e.closePopup()}const L=s.hasCompleted&&(i&&p.hasCompleted||!i);return a.jsxs(S,{title:P("title",{tv:d.tv}),closePopup:e.closePopup,showLoadingSpinner:!L||W,children:[oe.isHolidayPeriod()&&a.jsxs("div",{className:"alert alert-warning",role:"alert",children:[a.jsx("h3",{className:"h5",children:a.jsx(x,{namespace:R,phrase:"requestAlertHeading"})}),a.jsx("p",{className:"m-0",children:a.jsx(x,{namespace:R,phrase:"requestAlertBody",options:{tv:d.tv}})})]}),a.jsx("p",{children:a.jsx(x,{namespace:R,phrase:"description",options:{tv:d.tv}})}),a.jsx("p",{children:a.jsx(x,{namespace:R,phrase:"moreInfo",options:{tv:d.tv,faqUrl:ee.getLiteArticle(G.FoxtelFaq)}})}),p&&a.jsx(se,{initialValues:de,validationSchema:ce(i),onSubmit:J,children:a.jsx(le,{onClickCancel:K,channels:i&&p.data,instanceRegion:e.instanceRegion})})]})}export{Pe as TvRequestProgramView};
2
+ //# sourceMappingURL=Dw4FOx_G.chunk.js.map