@clickview/exchange 0.54.0 → 0.54.1-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/en.json +1 -1
  3. package/dist/scripts/-rc15O6e.chunk.js +2 -0
  4. package/dist/scripts/{RR_Npo-u.chunk.js.map → -rc15O6e.chunk.js.map} +1 -1
  5. package/dist/scripts/{BMV1koDe.chunk.js → 8cN0DOAw.chunk.js} +2 -2
  6. package/dist/scripts/{BMV1koDe.chunk.js.map → 8cN0DOAw.chunk.js.map} +1 -1
  7. package/dist/scripts/{B4-7nU0g.chunk.js → 93Mytmux.chunk.js} +2 -2
  8. package/dist/scripts/{B4-7nU0g.chunk.js.map → 93Mytmux.chunk.js.map} +1 -1
  9. package/dist/scripts/{DH2yRBmA.chunk.js → 9YLXxYYH.chunk.js} +2 -2
  10. package/dist/scripts/{DH2yRBmA.chunk.js.map → 9YLXxYYH.chunk.js.map} +1 -1
  11. package/dist/scripts/{S8s7mgrG.chunk.js → B77TOWer.chunk.js} +2 -2
  12. package/dist/scripts/{S8s7mgrG.chunk.js.map → B77TOWer.chunk.js.map} +1 -1
  13. package/dist/scripts/{D5fWDfWb.chunk.js → BB_Ud-Dl.chunk.js} +2 -2
  14. package/dist/scripts/{D5fWDfWb.chunk.js.map → BB_Ud-Dl.chunk.js.map} +1 -1
  15. package/dist/scripts/{C7s6znQN.chunk.js → BCGCl500.chunk.js} +2 -2
  16. package/dist/scripts/{C7s6znQN.chunk.js.map → BCGCl500.chunk.js.map} +1 -1
  17. package/dist/scripts/{CZ0_WZo1.chunk.js → BEonThYO.chunk.js} +2 -2
  18. package/dist/scripts/{CZ0_WZo1.chunk.js.map → BEonThYO.chunk.js.map} +1 -1
  19. package/dist/scripts/{DfkRK80r.chunk.js → BFAbrH3V.chunk.js} +2 -2
  20. package/dist/scripts/{DfkRK80r.chunk.js.map → BFAbrH3V.chunk.js.map} +1 -1
  21. package/dist/scripts/{fG3bu7tL.chunk.js → BIciRJHg.chunk.js} +2 -2
  22. package/dist/scripts/{fG3bu7tL.chunk.js.map → BIciRJHg.chunk.js.map} +1 -1
  23. package/dist/scripts/{CDuLjvaV.chunk.js → BJX7CePa.chunk.js} +2 -2
  24. package/dist/scripts/{CDuLjvaV.chunk.js.map → BJX7CePa.chunk.js.map} +1 -1
  25. package/dist/scripts/{wE4X9qJj.chunk.js → BL0xk5Hs.chunk.js} +2 -2
  26. package/dist/scripts/{wE4X9qJj.chunk.js.map → BL0xk5Hs.chunk.js.map} +1 -1
  27. package/dist/scripts/{DKvNIqD3.chunk.js → BN_hH3oW.chunk.js} +2 -2
  28. package/dist/scripts/{DKvNIqD3.chunk.js.map → BN_hH3oW.chunk.js.map} +1 -1
  29. package/dist/scripts/{mj_NgNWo.chunk.js → BWmMHnFV.chunk.js} +2 -2
  30. package/dist/scripts/{mj_NgNWo.chunk.js.map → BWmMHnFV.chunk.js.map} +1 -1
  31. package/dist/scripts/{BHTzCeKb.chunk.js → BapvLPQ5.chunk.js} +2 -2
  32. package/dist/scripts/{BHTzCeKb.chunk.js.map → BapvLPQ5.chunk.js.map} +1 -1
  33. package/dist/scripts/{vQs65oQi.chunk.js → Bbc1-POn.chunk.js} +2 -2
  34. package/dist/scripts/{vQs65oQi.chunk.js.map → Bbc1-POn.chunk.js.map} +1 -1
  35. package/dist/scripts/{CSuv1QVm.chunk.js → Bel5ImAj.chunk.js} +2 -2
  36. package/dist/scripts/{CSuv1QVm.chunk.js.map → Bel5ImAj.chunk.js.map} +1 -1
  37. package/dist/scripts/{CiTtDJue.chunk.js → BfWmIKU0.chunk.js} +2 -2
  38. package/dist/scripts/{CiTtDJue.chunk.js.map → BfWmIKU0.chunk.js.map} +1 -1
  39. package/dist/scripts/{BO7wPiFy.chunk.js → BhJEiLr0.chunk.js} +2 -2
  40. package/dist/scripts/{BO7wPiFy.chunk.js.map → BhJEiLr0.chunk.js.map} +1 -1
  41. package/dist/scripts/{DHx8qw7h.chunk.js → Bi_rU-SG.chunk.js} +2 -2
  42. package/dist/scripts/{DHx8qw7h.chunk.js.map → Bi_rU-SG.chunk.js.map} +1 -1
  43. package/dist/scripts/BldjpTLL.chunk.js +2 -0
  44. package/dist/scripts/{BMOkpx9W.chunk.js.map → BldjpTLL.chunk.js.map} +1 -1
  45. package/dist/scripts/Bm0DywXr.chunk.js +2 -0
  46. package/dist/scripts/{kjcQ0DHK.chunk.js.map → Bm0DywXr.chunk.js.map} +1 -1
  47. package/dist/scripts/BpFMqrCw.chunk.js +2 -0
  48. package/dist/scripts/{D1kNrE2G.chunk.js.map → BpFMqrCw.chunk.js.map} +1 -1
  49. package/dist/scripts/{B2psHTnp.chunk.js → Bw042tZ_.chunk.js} +2 -2
  50. package/dist/scripts/{B2psHTnp.chunk.js.map → Bw042tZ_.chunk.js.map} +1 -1
  51. package/dist/scripts/{DMCTlX1N.chunk.js → ByCaE7oT.chunk.js} +2 -2
  52. package/dist/scripts/{DMCTlX1N.chunk.js.map → ByCaE7oT.chunk.js.map} +1 -1
  53. package/dist/scripts/{BTGAV-7R.chunk.js → BzJeV-bU.chunk.js} +2 -2
  54. package/dist/scripts/{BTGAV-7R.chunk.js.map → BzJeV-bU.chunk.js.map} +1 -1
  55. package/dist/scripts/{Ca7s6d3a.chunk.js → BzOUcl19.chunk.js} +2 -2
  56. package/dist/scripts/{Ca7s6d3a.chunk.js.map → BzOUcl19.chunk.js.map} +1 -1
  57. package/dist/scripts/{C_b02Pfv.chunk.js → C7x-ikz8.chunk.js} +2 -2
  58. package/dist/scripts/{C_b02Pfv.chunk.js.map → C7x-ikz8.chunk.js.map} +1 -1
  59. package/dist/scripts/{Bk6B0Pga.chunk.js → C8gLKdt2.chunk.js} +2 -2
  60. package/dist/scripts/{Bk6B0Pga.chunk.js.map → C8gLKdt2.chunk.js.map} +1 -1
  61. package/dist/scripts/{BNdvuAqI.chunk.js → CA1kXo4c.chunk.js} +2 -2
  62. package/dist/scripts/{BNdvuAqI.chunk.js.map → CA1kXo4c.chunk.js.map} +1 -1
  63. package/dist/scripts/{2RtgJciS.chunk.js → CBpplRfy.chunk.js} +2 -2
  64. package/dist/scripts/{2RtgJciS.chunk.js.map → CBpplRfy.chunk.js.map} +1 -1
  65. package/dist/scripts/{CwGJynkF.chunk.js → CFHfdzmN.chunk.js} +2 -2
  66. package/dist/scripts/{CwGJynkF.chunk.js.map → CFHfdzmN.chunk.js.map} +1 -1
  67. package/dist/scripts/{DtIAQEde.chunk.js → CI1-zjtc.chunk.js} +2 -2
  68. package/dist/scripts/{DtIAQEde.chunk.js.map → CI1-zjtc.chunk.js.map} +1 -1
  69. package/dist/scripts/{CaXurNVJ.chunk.js → CLeOFM0_.chunk.js} +2 -2
  70. package/dist/scripts/{CaXurNVJ.chunk.js.map → CLeOFM0_.chunk.js.map} +1 -1
  71. package/dist/scripts/{CfG52a2J.chunk.js → CLzmMPfE.chunk.js} +2 -2
  72. package/dist/scripts/{CfG52a2J.chunk.js.map → CLzmMPfE.chunk.js.map} +1 -1
  73. package/dist/scripts/{BeYBU_45.chunk.js → CMVCOZiH.chunk.js} +2 -2
  74. package/dist/scripts/{BeYBU_45.chunk.js.map → CMVCOZiH.chunk.js.map} +1 -1
  75. package/dist/scripts/{-IJi77po.chunk.js → CRiSdltq.chunk.js} +2 -2
  76. package/dist/scripts/{-IJi77po.chunk.js.map → CRiSdltq.chunk.js.map} +1 -1
  77. package/dist/scripts/{C6Lm5-pG.chunk.js → CUcESh7x.chunk.js} +2 -2
  78. package/dist/scripts/{C6Lm5-pG.chunk.js.map → CUcESh7x.chunk.js.map} +1 -1
  79. package/dist/scripts/{BVtgkXbb.chunk.js → CWEHmLar.chunk.js} +2 -2
  80. package/dist/scripts/{BVtgkXbb.chunk.js.map → CWEHmLar.chunk.js.map} +1 -1
  81. package/dist/scripts/{BknFbNFb.chunk.js → CYnIJ9Yj.chunk.js} +2 -2
  82. package/dist/scripts/{BknFbNFb.chunk.js.map → CYnIJ9Yj.chunk.js.map} +1 -1
  83. package/dist/scripts/{BM1pKS1x.chunk.js → CeNnu9Uy.chunk.js} +2 -2
  84. package/dist/scripts/{BM1pKS1x.chunk.js.map → CeNnu9Uy.chunk.js.map} +1 -1
  85. package/dist/scripts/{C_N8YDNG.chunk.js → CeWNxrfN.chunk.js} +2 -2
  86. package/dist/scripts/{C_N8YDNG.chunk.js.map → CeWNxrfN.chunk.js.map} +1 -1
  87. package/dist/scripts/{CIC6c94H.chunk.js → Cf7gumlK.chunk.js} +2 -2
  88. package/dist/scripts/{CIC6c94H.chunk.js.map → Cf7gumlK.chunk.js.map} +1 -1
  89. package/dist/scripts/{BeUtct-n.chunk.js → CgYXk-MC.chunk.js} +2 -2
  90. package/dist/scripts/{BeUtct-n.chunk.js.map → CgYXk-MC.chunk.js.map} +1 -1
  91. package/dist/scripts/{CZWyo3vU.chunk.js → ChQd3LFA.chunk.js} +2 -2
  92. package/dist/scripts/{CZWyo3vU.chunk.js.map → ChQd3LFA.chunk.js.map} +1 -1
  93. package/dist/scripts/{Cvh5d6g-.chunk.js → CidOInHw.chunk.js} +2 -2
  94. package/dist/scripts/{Cvh5d6g-.chunk.js.map → CidOInHw.chunk.js.map} +1 -1
  95. package/dist/scripts/{KD76wo2O.chunk.js → CjZVCWS_.chunk.js} +2 -2
  96. package/dist/scripts/{KD76wo2O.chunk.js.map → CjZVCWS_.chunk.js.map} +1 -1
  97. package/dist/scripts/{DllPblbJ.chunk.js → CmFgCSCA.chunk.js} +2 -2
  98. package/dist/scripts/{DllPblbJ.chunk.js.map → CmFgCSCA.chunk.js.map} +1 -1
  99. package/dist/scripts/{D2hwqbbK.chunk.js → CzgpQODl.chunk.js} +2 -2
  100. package/dist/scripts/{D2hwqbbK.chunk.js.map → CzgpQODl.chunk.js.map} +1 -1
  101. package/dist/scripts/{BZDBKDNB.chunk.js → D1uOyG2F.chunk.js} +2 -2
  102. package/dist/scripts/{BZDBKDNB.chunk.js.map → D1uOyG2F.chunk.js.map} +1 -1
  103. package/dist/scripts/D2Qdtc-z.chunk.js +2 -0
  104. package/dist/scripts/{Nx5VrW1O.chunk.js.map → D2Qdtc-z.chunk.js.map} +1 -1
  105. package/dist/scripts/{CvC-3rY8.chunk.js → D6Y1z38S.chunk.js} +2 -2
  106. package/dist/scripts/{CvC-3rY8.chunk.js.map → D6Y1z38S.chunk.js.map} +1 -1
  107. package/dist/scripts/{DVGSZWvj.chunk.js → DAYsHx3K.chunk.js} +2 -2
  108. package/dist/scripts/{DVGSZWvj.chunk.js.map → DAYsHx3K.chunk.js.map} +1 -1
  109. package/dist/scripts/DAlXOlyw.chunk.js +2 -0
  110. package/dist/scripts/{PTNYkU4e.chunk.js.map → DAlXOlyw.chunk.js.map} +1 -1
  111. package/dist/scripts/{C6jzSlOK.chunk.js → DBXgmgfs.chunk.js} +2 -2
  112. package/dist/scripts/{C6jzSlOK.chunk.js.map → DBXgmgfs.chunk.js.map} +1 -1
  113. package/dist/scripts/{DNv0G8YQ.chunk.js → DFV1HGGE.chunk.js} +2 -2
  114. package/dist/scripts/{DNv0G8YQ.chunk.js.map → DFV1HGGE.chunk.js.map} +1 -1
  115. package/dist/scripts/{BaII1chU.chunk.js → DKgBjNhk.chunk.js} +2 -2
  116. package/dist/scripts/{BaII1chU.chunk.js.map → DKgBjNhk.chunk.js.map} +1 -1
  117. package/dist/scripts/{6nLsdj_T.chunk.js → DNamqvBL.chunk.js} +2 -2
  118. package/dist/scripts/{6nLsdj_T.chunk.js.map → DNamqvBL.chunk.js.map} +1 -1
  119. package/dist/scripts/{BoCJPJD9.chunk.js → DS9FoZYs.chunk.js} +2 -2
  120. package/dist/scripts/{BoCJPJD9.chunk.js.map → DS9FoZYs.chunk.js.map} +1 -1
  121. package/dist/scripts/{BARMSVib.chunk.js → DU7fsRWl.chunk.js} +2 -2
  122. package/dist/scripts/{BARMSVib.chunk.js.map → DU7fsRWl.chunk.js.map} +1 -1
  123. package/dist/scripts/{yAkKLflS.chunk.js → DXukh64m.chunk.js} +2 -2
  124. package/dist/scripts/{yAkKLflS.chunk.js.map → DXukh64m.chunk.js.map} +1 -1
  125. package/dist/scripts/{QBPzgKy4.chunk.js → D_UfRtxO.chunk.js} +2 -2
  126. package/dist/scripts/{QBPzgKy4.chunk.js.map → D_UfRtxO.chunk.js.map} +1 -1
  127. package/dist/scripts/{DPzpHWBx.chunk.js → Da4lOHud.chunk.js} +2 -2
  128. package/dist/scripts/{DPzpHWBx.chunk.js.map → Da4lOHud.chunk.js.map} +1 -1
  129. package/dist/scripts/{RFnuS4NM.chunk.js → DbQAirTe.chunk.js} +2 -2
  130. package/dist/scripts/{RFnuS4NM.chunk.js.map → DbQAirTe.chunk.js.map} +1 -1
  131. package/dist/scripts/{wrxKHqa_.chunk.js → DbjqMrGm.chunk.js} +2 -2
  132. package/dist/scripts/{wrxKHqa_.chunk.js.map → DbjqMrGm.chunk.js.map} +1 -1
  133. package/dist/scripts/{DW6Dbl7f.chunk.js → DiYMwIEW.chunk.js} +2 -2
  134. package/dist/scripts/{DW6Dbl7f.chunk.js.map → DiYMwIEW.chunk.js.map} +1 -1
  135. package/dist/scripts/{ZQ2N8RIM.chunk.js → DjZMDa7F.chunk.js} +2 -2
  136. package/dist/scripts/{ZQ2N8RIM.chunk.js.map → DjZMDa7F.chunk.js.map} +1 -1
  137. package/dist/scripts/{D0g725Qb.chunk.js → DmsvtP5R.chunk.js} +2 -2
  138. package/dist/scripts/{D0g725Qb.chunk.js.map → DmsvtP5R.chunk.js.map} +1 -1
  139. package/dist/scripts/{BVFJa4eN.chunk.js → Du1vfrL1.chunk.js} +2 -2
  140. package/dist/scripts/{BVFJa4eN.chunk.js.map → Du1vfrL1.chunk.js.map} +1 -1
  141. package/dist/scripts/{BIM7E_uq.chunk.js → HgZI7ZJw.chunk.js} +2 -2
  142. package/dist/scripts/{BIM7E_uq.chunk.js.map → HgZI7ZJw.chunk.js.map} +1 -1
  143. package/dist/scripts/{De6u_51f.chunk.js → Idf_wk4z.chunk.js} +2 -2
  144. package/dist/scripts/{De6u_51f.chunk.js.map → Idf_wk4z.chunk.js.map} +1 -1
  145. package/dist/scripts/{BzWiry9B.chunk.js → IoMSsrGB.chunk.js} +2 -2
  146. package/dist/scripts/{BzWiry9B.chunk.js.map → IoMSsrGB.chunk.js.map} +1 -1
  147. package/dist/scripts/{BOgut51m.chunk.js → JVtTNBu8.chunk.js} +2 -2
  148. package/dist/scripts/{BOgut51m.chunk.js.map → JVtTNBu8.chunk.js.map} +1 -1
  149. package/dist/scripts/{B6MzAKwF.chunk.js → Jh9dsBNz.chunk.js} +2 -2
  150. package/dist/scripts/{B6MzAKwF.chunk.js.map → Jh9dsBNz.chunk.js.map} +1 -1
  151. package/dist/scripts/{C3DMM71j.chunk.js → L4fynSOH.chunk.js} +2 -2
  152. package/dist/scripts/{C3DMM71j.chunk.js.map → L4fynSOH.chunk.js.map} +1 -1
  153. package/dist/scripts/{DcNBkQk2.chunk.js → L8c9vJSE.chunk.js} +2 -2
  154. package/dist/scripts/{DcNBkQk2.chunk.js.map → L8c9vJSE.chunk.js.map} +1 -1
  155. package/dist/scripts/{RkGsyr47.chunk.js → LSG3wJaJ.chunk.js} +2 -2
  156. package/dist/scripts/{RkGsyr47.chunk.js.map → LSG3wJaJ.chunk.js.map} +1 -1
  157. package/dist/scripts/{BBGrb01P.chunk.js → Nb05HQ70.chunk.js} +2 -2
  158. package/dist/scripts/{BBGrb01P.chunk.js.map → Nb05HQ70.chunk.js.map} +1 -1
  159. package/dist/scripts/{D7ex9pZI.chunk.js → NnLpFayg.chunk.js} +2 -2
  160. package/dist/scripts/{D7ex9pZI.chunk.js.map → NnLpFayg.chunk.js.map} +1 -1
  161. package/dist/scripts/{BObzbMyv.chunk.js → TBgyZjiu.chunk.js} +2 -2
  162. package/dist/scripts/{BObzbMyv.chunk.js.map → TBgyZjiu.chunk.js.map} +1 -1
  163. package/dist/scripts/UAhbVZA6.chunk.js +2 -0
  164. package/dist/scripts/{Cusf4uQr.chunk.js.map → UAhbVZA6.chunk.js.map} +1 -1
  165. package/dist/scripts/{EP_6ctCd.chunk.js → UPyh9hOq.chunk.js} +2 -2
  166. package/dist/scripts/{EP_6ctCd.chunk.js.map → UPyh9hOq.chunk.js.map} +1 -1
  167. package/dist/scripts/{5ulU64GY.chunk.js → aUcmweZz.chunk.js} +2 -2
  168. package/dist/scripts/{5ulU64GY.chunk.js.map → aUcmweZz.chunk.js.map} +1 -1
  169. package/dist/scripts/{BIqgfuNp.chunk.js → afx3pyqK.chunk.js} +2 -2
  170. package/dist/scripts/{BIqgfuNp.chunk.js.map → afx3pyqK.chunk.js.map} +1 -1
  171. package/dist/scripts/{app-BeXfSt3Z.js → app-DQUfzK7M.js} +3 -3
  172. package/dist/scripts/{app-BeXfSt3Z.js.map → app-DQUfzK7M.js.map} +1 -1
  173. package/dist/scripts/{DGZafYHS.chunk.js → ebPScdjM.chunk.js} +2 -2
  174. package/dist/scripts/{DGZafYHS.chunk.js.map → ebPScdjM.chunk.js.map} +1 -1
  175. package/dist/scripts/{kIpQ7ATK.chunk.js → exCRX_FQ.chunk.js} +2 -2
  176. package/dist/scripts/{kIpQ7ATK.chunk.js.map → exCRX_FQ.chunk.js.map} +1 -1
  177. package/dist/scripts/{B_RnEy2g.chunk.js → g-ukO43h.chunk.js} +2 -2
  178. package/dist/scripts/{B_RnEy2g.chunk.js.map → g-ukO43h.chunk.js.map} +1 -1
  179. package/dist/scripts/{DSjj9Urk.chunk.js → rV0ZG7Fa.chunk.js} +2 -2
  180. package/dist/scripts/{DSjj9Urk.chunk.js.map → rV0ZG7Fa.chunk.js.map} +1 -1
  181. package/dist/scripts/{CuymzQcn.chunk.js → rY6Lh6jX.chunk.js} +2 -2
  182. package/dist/scripts/{CuymzQcn.chunk.js.map → rY6Lh6jX.chunk.js.map} +1 -1
  183. package/dist/scripts/{DyEyo6rX.chunk.js → uJkDFf2N.chunk.js} +2 -2
  184. package/dist/scripts/{DyEyo6rX.chunk.js.map → uJkDFf2N.chunk.js.map} +1 -1
  185. package/package.json +1 -1
  186. package/dist/scripts/BMOkpx9W.chunk.js +0 -2
  187. package/dist/scripts/Cusf4uQr.chunk.js +0 -2
  188. package/dist/scripts/D1kNrE2G.chunk.js +0 -2
  189. package/dist/scripts/Nx5VrW1O.chunk.js +0 -2
  190. package/dist/scripts/PTNYkU4e.chunk.js +0 -2
  191. package/dist/scripts/RR_Npo-u.chunk.js +0 -2
  192. package/dist/scripts/kjcQ0DHK.chunk.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"BHTzCeKb.chunk.js","sources":["../../../../../node_modules/react-intersection-observer/index.mjs","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root)\n return \"0\";\n if (RootIds.has(root))\n return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip)\n return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref)\n return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current)\n callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});"],"names":["observerMap","RootIds","rootId","unsupportedValue","getRootId","root","optionsToId","options","key","createObserver","id","instance","elements","thresholds","observer","entries","entry","_a","inView","threshold","callback","observe","element","fallbackInView","bounds","callbacks","useInView","delay","trackVisibility","rootMargin","triggerOnce","skip","initialInView","onChange","ref","setRef","React2.useState","React2.useRef","state","setState","React2.useEffect","unobserve","entryTarget","previousEntryTarget","result","useLazyLoad","prevent","PRELOAD_DISTANCE","PLACEHOLDER_SRC","LazyImage","React.memo","props","forceLoad","extraClasses","errorFallbackImageSrc","preventLoad","errorFallbackImageClassName","src","alt","propsWithoutSrc","error","setError","React.useState","React.useEffect","img","getSrc","jsx","Fragment","styles","imgProps"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"BapvLPQ5.chunk.js","sources":["../../../../../node_modules/react-intersection-observer/index.mjs","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root)\n return \"0\";\n if (RootIds.has(root))\n return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip)\n return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref)\n return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current)\n callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});"],"names":["observerMap","RootIds","rootId","unsupportedValue","getRootId","root","optionsToId","options","key","createObserver","id","instance","elements","thresholds","observer","entries","entry","_a","inView","threshold","callback","observe","element","fallbackInView","bounds","callbacks","useInView","delay","trackVisibility","rootMargin","triggerOnce","skip","initialInView","onChange","ref","setRef","React2.useState","React2.useRef","state","setState","React2.useEffect","unobserve","entryTarget","previousEntryTarget","result","useLazyLoad","prevent","PRELOAD_DISTANCE","PLACEHOLDER_SRC","LazyImage","React.memo","props","forceLoad","extraClasses","errorFallbackImageSrc","preventLoad","errorFallbackImageClassName","src","alt","propsWithoutSrc","error","setError","React.useState","React.useEffect","img","getSrc","jsx","Fragment","styles","imgProps"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{U as p,a3 as m,R as v,j as o,P as y,aD as U,a5 as h}from"./app-BeXfSt3Z.js";import{u as C}from"./D1kNrE2G.chunk.js";import{C as P,P as w,a as R}from"./BMV1koDe.chunk.js";import{T as b}from"./BM1pKS1x.chunk.js";import{u as T}from"./DKvNIqD3.chunk.js";import{u as j}from"./Cusf4uQr.chunk.js";import"./D0g725Qb.chunk.js";import"./DtIAQEde.chunk.js";import"./BIqgfuNp.chunk.js";import"./CfG52a2J.chunk.js";import"./BlDVEZsX.chunk.js";import"./C7s6znQN.chunk.js";import"./pkzD5BEm.chunk.js";import"./Cvh5d6g-.chunk.js";import"./DfkRK80r.chunk.js";import"./BoCJPJD9.chunk.js";import"./CIC6c94H.chunk.js";import"./CwGJynkF.chunk.js";import"./Kj832An8.chunk.js";import"./CaXurNVJ.chunk.js";import"./DGZafYHS.chunk.js";import"./Ca7s6d3a.chunk.js";import"./CSuv1QVm.chunk.js";import"./BOgut51m.chunk.js";import"./C6Lm5-pG.chunk.js";import"./EP_6ctCd.chunk.js";import"./BHTzCeKb.chunk.js";import"./BknFbNFb.chunk.js";import"./BVtgkXbb.chunk.js";import"./B668bf5B.chunk.js";import"./RkGsyr47.chunk.js";import"./BaII1chU.chunk.js";import"./KD76wo2O.chunk.js";import"./BTGAV-7R.chunk.js";import"./DcNBkQk2.chunk.js";import"./D5fWDfWb.chunk.js";import"./fG3bu7tL.chunk.js";function x(r){const{currentUser:t,region:i,config:e,program:a}=r,s=e.tvPreviewUrls[i.code],l=a.globalId.replace(/-/g,""),c=p.safeUrlConcat(s,`/thumbnail/${l}.jpg`),u=p.safeUrlConcat(s,`/144p/${l.toUpperCase()}_144p.mp4`),n=p.safeUrlConcat(s,`/subtitle/${l.toUpperCase()}.srt`),d=p.urlBuilder(p.safeUrlConcat(e.playerApiUrl,"/api/srt-to-vtt"),{url:n});return{videoId:null,episodeNumber:0,seriesName:null,mediaId:null,mediaType:null,ratingCode:null,region:t.instanceRegion,seasonNumber:null,viewerId:t.id,viewerCustomerId:t.customerId,files:{fileToken:"",progressive:[{mimeType:"video/mp4",profile:"144",url:u}]},chapters:{list:[]},instanceRegion:t.instanceRegion,localCacheAddresses:[],posterUrl:c,resources:{list:[]},settings:{showSubtitles:!1,playbackProfile:"144",playbackProfileLocalCache:"144",playbackSubtitleSizeDefault:"medium"},subtitles:{list:[{url:d,isDefault:!1,language:"en-AU",mimeType:"text/vtt",label:"English"}]},title:a.title}}function ce(r){var g;const t=m(b.region(r.region)),i=m(U.config()),e=m(b.program(r.id)),a=m(h.currentUser()),[s,l]=v.useState(),c=T("preview",t.data,s);j(t,!0),C(e.statusCode);function u(f){l(f),r.currentTime&&f.currentTime(r.currentTime)}const n=t.hasCompleted&&e.hasCompleted&&i.hasCompleted&&a.hasCompleted,d=n&&x({currentUser:a.data,region:t.data,config:i.data,program:e.data});return o.jsx(y,{title:(g=e.data)==null?void 0:g.title,closePopup:r.closePopup,showLoadingSpinner:!n,size:"lg",bodyClassName:"p-0 rounded-3 position-relative",hideTitle:!0,children:n&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"overflow-hidden rounded-top-lg",children:o.jsx(P,{viewKey:null,offlinePlaybackObject:d,playerApi:new URL(i.data.playerApiUrl),autoplay:!0,hotkeyElQuerySelector:"body",onReady:u,allowFullscreen:!1})}),o.jsx(w,{program:e.data,title:e.data.title,description:e.data.description,videoActions:c(e.data)}),o.jsx(R,{closePopup:r.closePopup})]})})}export{ce as TvPreviewView};
2
- //# sourceMappingURL=vQs65oQi.chunk.js.map
1
+ import{U as p,a3 as m,R as v,j as o,P as y,aD as U,a5 as h}from"./app-DQUfzK7M.js";import{u as C}from"./BpFMqrCw.chunk.js";import{C as P,P as w,a as R}from"./8cN0DOAw.chunk.js";import{T as b}from"./CeNnu9Uy.chunk.js";import{u as T}from"./BN_hH3oW.chunk.js";import{u as j}from"./UAhbVZA6.chunk.js";import"./DmsvtP5R.chunk.js";import"./CI1-zjtc.chunk.js";import"./afx3pyqK.chunk.js";import"./CLzmMPfE.chunk.js";import"./BlDVEZsX.chunk.js";import"./BCGCl500.chunk.js";import"./pkzD5BEm.chunk.js";import"./CidOInHw.chunk.js";import"./BFAbrH3V.chunk.js";import"./DS9FoZYs.chunk.js";import"./Cf7gumlK.chunk.js";import"./CFHfdzmN.chunk.js";import"./Kj832An8.chunk.js";import"./CLeOFM0_.chunk.js";import"./ebPScdjM.chunk.js";import"./BzOUcl19.chunk.js";import"./Bel5ImAj.chunk.js";import"./JVtTNBu8.chunk.js";import"./CUcESh7x.chunk.js";import"./UPyh9hOq.chunk.js";import"./BapvLPQ5.chunk.js";import"./CYnIJ9Yj.chunk.js";import"./CWEHmLar.chunk.js";import"./B668bf5B.chunk.js";import"./LSG3wJaJ.chunk.js";import"./DKgBjNhk.chunk.js";import"./CjZVCWS_.chunk.js";import"./BzJeV-bU.chunk.js";import"./L8c9vJSE.chunk.js";import"./BB_Ud-Dl.chunk.js";import"./BIciRJHg.chunk.js";function x(r){const{currentUser:t,region:i,config:e,program:a}=r,s=e.tvPreviewUrls[i.code],l=a.globalId.replace(/-/g,""),c=p.safeUrlConcat(s,`/thumbnail/${l}.jpg`),u=p.safeUrlConcat(s,`/144p/${l.toUpperCase()}_144p.mp4`),n=p.safeUrlConcat(s,`/subtitle/${l.toUpperCase()}.srt`),d=p.urlBuilder(p.safeUrlConcat(e.playerApiUrl,"/api/srt-to-vtt"),{url:n});return{videoId:null,episodeNumber:0,seriesName:null,mediaId:null,mediaType:null,ratingCode:null,region:t.instanceRegion,seasonNumber:null,viewerId:t.id,viewerCustomerId:t.customerId,files:{fileToken:"",progressive:[{mimeType:"video/mp4",profile:"144",url:u}]},chapters:{list:[]},instanceRegion:t.instanceRegion,localCacheAddresses:[],posterUrl:c,resources:{list:[]},settings:{showSubtitles:!1,playbackProfile:"144",playbackProfileLocalCache:"144",playbackSubtitleSizeDefault:"medium"},subtitles:{list:[{url:d,isDefault:!1,language:"en-AU",mimeType:"text/vtt",label:"English"}]},title:a.title}}function ce(r){var g;const t=m(b.region(r.region)),i=m(U.config()),e=m(b.program(r.id)),a=m(h.currentUser()),[s,l]=v.useState(),c=T("preview",t.data,s);j(t,!0),C(e.statusCode);function u(f){l(f),r.currentTime&&f.currentTime(r.currentTime)}const n=t.hasCompleted&&e.hasCompleted&&i.hasCompleted&&a.hasCompleted,d=n&&x({currentUser:a.data,region:t.data,config:i.data,program:e.data});return o.jsx(y,{title:(g=e.data)==null?void 0:g.title,closePopup:r.closePopup,showLoadingSpinner:!n,size:"lg",bodyClassName:"p-0 rounded-3 position-relative",hideTitle:!0,children:n&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"overflow-hidden rounded-top-lg",children:o.jsx(P,{viewKey:null,offlinePlaybackObject:d,playerApi:new URL(i.data.playerApiUrl),autoplay:!0,hotkeyElQuerySelector:"body",onReady:u,allowFullscreen:!1})}),o.jsx(w,{program:e.data,title:e.data.title,description:e.data.description,videoActions:c(e.data)}),o.jsx(R,{closePopup:r.closePopup})]})})}export{ce as TvPreviewView};
2
+ //# sourceMappingURL=Bbc1-POn.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vQs65oQi.chunk.js","sources":["../../src/apps/tv/views/tv-preview/utils/getTvPlaybackObject.ts","../../src/apps/tv/views/tv-preview/TvPreviewView.tsx"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { RegionName } from 'libs/analytics/enums/RegionName';\n\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';\n\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\ninterface GetTvPlaybackObjectOptions {\n currentUser: CurrentUser;\n region: TvRegion;\n config: ExchangeConfig;\n program: TvProgram;\n}\n\nexport function getTvPlaybackObject(options: GetTvPlaybackObjectOptions): PlaybackObject {\n const { currentUser, region, config, program } = options;\n\n const previewUrl = config.tvPreviewUrls[region.code];\n\n const globalId = program.globalId.replace(/-/g, '');\n\n const thumbnailUrl = UrlHelper.safeUrlConcat(\n previewUrl,\n `/thumbnail/${globalId}.jpg`\n );\n const fileUrl = UrlHelper.safeUrlConcat(\n previewUrl,\n `/144p/${globalId.toUpperCase()}_144p.mp4`\n );\n const subtitleLocation = UrlHelper.safeUrlConcat(\n previewUrl,\n `/subtitle/${globalId.toUpperCase()}.srt`\n );\n const subtitleUrl = UrlHelper.urlBuilder(\n UrlHelper.safeUrlConcat(config.playerApiUrl, `/api/srt-to-vtt`),\n { url: subtitleLocation }\n );\n\n return ({\n videoId: null,\n episodeNumber: 0,\n seriesName: null,\n mediaId: null,\n mediaType: null,\n ratingCode: null,\n region: currentUser.instanceRegion,\n seasonNumber: null,\n viewerId: currentUser.id,\n viewerCustomerId: currentUser.customerId,\n files: {\n fileToken: '',\n progressive: [{\n mimeType: 'video/mp4',\n profile: '144',\n url: fileUrl\n }]\n },\n chapters: { list: []},\n instanceRegion: currentUser.instanceRegion as unknown as RegionName,\n localCacheAddresses: [],\n posterUrl: thumbnailUrl,\n resources: { list: []},\n settings: {\n showSubtitles: false,\n playbackProfile: '144',\n playbackProfileLocalCache: '144',\n playbackSubtitleSizeDefault: 'medium'\n },\n subtitles: {\n list: [{\n url: subtitleUrl,\n isDefault: false,\n language: 'en-AU',\n mimeType: 'text/vtt',\n label: 'English'\n }]\n },\n title: program.title\n });\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { PlayerOverlayButtons } from 'shared/components/player-overlay-buttons/PlayerOverlayButtons';\nimport { PreviewVideoDetails } from 'shared/components/preview-video-details/PreviewVideoDetails';\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useGetTvActions } from 'apps/tv/hooks/useGetTvActions';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nimport { getTvPlaybackObject } from './utils/getTvPlaybackObject';\n\ninterface TvPreviewViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvPreviewView(props: TvPreviewViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const config = Flight.useBasicFetch<ExchangeConfig>(ConfigRequests.config());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ playerRef, setPlayerRef ] = React.useState<PlayerReference>();\n\n const getVideoActions = useGetTvActions('preview', region.data, playerRef);\n\n useHandleRegionError(region, true);\n useHandleDialogError(program.statusCode);\n\n // TODO: Solve analytics collection\n function onReady(player: PlayerReference): void {\n setPlayerRef(player);\n\n if (props.currentTime)\n player.currentTime(props.currentTime);\n // setupAnalytics(player);\n }\n\n const dataLoaded = (\n region.hasCompleted &&\n program.hasCompleted &&\n config.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const playbackObject = dataLoaded && getTvPlaybackObject({\n currentUser: currentUser.data,\n region: region.data,\n config: config.data,\n program: program.data\n });\n\n return (\n <Popup\n title={program.data?.title}\n closePopup={props.closePopup}\n showLoadingSpinner={!dataLoaded}\n size='lg'\n bodyClassName='p-0 rounded-3 position-relative'\n hideTitle\n >\n {dataLoaded &&\n <>\n <div className='overflow-hidden rounded-top-lg'>\n <ClickViewPlayer\n viewKey={null}\n offlinePlaybackObject={playbackObject}\n playerApi={new URL(config.data.playerApiUrl)}\n autoplay\n hotkeyElQuerySelector='body'\n onReady={onReady}\n allowFullscreen={false}\n />\n </div>\n <PreviewVideoDetails\n program={program.data}\n title={program.data.title}\n description={program.data.description}\n videoActions={getVideoActions(program.data)}\n />\n <PlayerOverlayButtons closePopup={props.closePopup} />\n </>\n }\n </Popup>\n );\n}"],"names":["getTvPlaybackObject","options","currentUser","region","config","program","previewUrl","globalId","thumbnailUrl","UrlHelper","fileUrl","subtitleLocation","subtitleUrl","TvPreviewView","props","Flight.useBasicFetch","TvRequests","ConfigRequests","UserRequests","playerRef","setPlayerRef","React","getVideoActions","useGetTvActions","useHandleRegionError","useHandleDialogError","onReady","player","dataLoaded","playbackObject","jsx","Popup","_a","jsxs","Fragment","ClickViewPlayer","PreviewVideoDetails","PlayerOverlayButtons"],"mappings":"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"}
1
+ {"version":3,"file":"Bbc1-POn.chunk.js","sources":["../../src/apps/tv/views/tv-preview/utils/getTvPlaybackObject.ts","../../src/apps/tv/views/tv-preview/TvPreviewView.tsx"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { RegionName } from 'libs/analytics/enums/RegionName';\n\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';\n\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\ninterface GetTvPlaybackObjectOptions {\n currentUser: CurrentUser;\n region: TvRegion;\n config: ExchangeConfig;\n program: TvProgram;\n}\n\nexport function getTvPlaybackObject(options: GetTvPlaybackObjectOptions): PlaybackObject {\n const { currentUser, region, config, program } = options;\n\n const previewUrl = config.tvPreviewUrls[region.code];\n\n const globalId = program.globalId.replace(/-/g, '');\n\n const thumbnailUrl = UrlHelper.safeUrlConcat(\n previewUrl,\n `/thumbnail/${globalId}.jpg`\n );\n const fileUrl = UrlHelper.safeUrlConcat(\n previewUrl,\n `/144p/${globalId.toUpperCase()}_144p.mp4`\n );\n const subtitleLocation = UrlHelper.safeUrlConcat(\n previewUrl,\n `/subtitle/${globalId.toUpperCase()}.srt`\n );\n const subtitleUrl = UrlHelper.urlBuilder(\n UrlHelper.safeUrlConcat(config.playerApiUrl, `/api/srt-to-vtt`),\n { url: subtitleLocation }\n );\n\n return ({\n videoId: null,\n episodeNumber: 0,\n seriesName: null,\n mediaId: null,\n mediaType: null,\n ratingCode: null,\n region: currentUser.instanceRegion,\n seasonNumber: null,\n viewerId: currentUser.id,\n viewerCustomerId: currentUser.customerId,\n files: {\n fileToken: '',\n progressive: [{\n mimeType: 'video/mp4',\n profile: '144',\n url: fileUrl\n }]\n },\n chapters: { list: []},\n instanceRegion: currentUser.instanceRegion as unknown as RegionName,\n localCacheAddresses: [],\n posterUrl: thumbnailUrl,\n resources: { list: []},\n settings: {\n showSubtitles: false,\n playbackProfile: '144',\n playbackProfileLocalCache: '144',\n playbackSubtitleSizeDefault: 'medium'\n },\n subtitles: {\n list: [{\n url: subtitleUrl,\n isDefault: false,\n language: 'en-AU',\n mimeType: 'text/vtt',\n label: 'English'\n }]\n },\n title: program.title\n });\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { PlayerOverlayButtons } from 'shared/components/player-overlay-buttons/PlayerOverlayButtons';\nimport { PreviewVideoDetails } from 'shared/components/preview-video-details/PreviewVideoDetails';\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useGetTvActions } from 'apps/tv/hooks/useGetTvActions';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nimport { getTvPlaybackObject } from './utils/getTvPlaybackObject';\n\ninterface TvPreviewViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvPreviewView(props: TvPreviewViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const config = Flight.useBasicFetch<ExchangeConfig>(ConfigRequests.config());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ playerRef, setPlayerRef ] = React.useState<PlayerReference>();\n\n const getVideoActions = useGetTvActions('preview', region.data, playerRef);\n\n useHandleRegionError(region, true);\n useHandleDialogError(program.statusCode);\n\n // TODO: Solve analytics collection\n function onReady(player: PlayerReference): void {\n setPlayerRef(player);\n\n if (props.currentTime)\n player.currentTime(props.currentTime);\n // setupAnalytics(player);\n }\n\n const dataLoaded = (\n region.hasCompleted &&\n program.hasCompleted &&\n config.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const playbackObject = dataLoaded && getTvPlaybackObject({\n currentUser: currentUser.data,\n region: region.data,\n config: config.data,\n program: program.data\n });\n\n return (\n <Popup\n title={program.data?.title}\n closePopup={props.closePopup}\n showLoadingSpinner={!dataLoaded}\n size='lg'\n bodyClassName='p-0 rounded-3 position-relative'\n hideTitle\n >\n {dataLoaded &&\n <>\n <div className='overflow-hidden rounded-top-lg'>\n <ClickViewPlayer\n viewKey={null}\n offlinePlaybackObject={playbackObject}\n playerApi={new URL(config.data.playerApiUrl)}\n autoplay\n hotkeyElQuerySelector='body'\n onReady={onReady}\n allowFullscreen={false}\n />\n </div>\n <PreviewVideoDetails\n program={program.data}\n title={program.data.title}\n description={program.data.description}\n videoActions={getVideoActions(program.data)}\n />\n <PlayerOverlayButtons closePopup={props.closePopup} />\n </>\n }\n </Popup>\n );\n}"],"names":["getTvPlaybackObject","options","currentUser","region","config","program","previewUrl","globalId","thumbnailUrl","UrlHelper","fileUrl","subtitleLocation","subtitleUrl","TvPreviewView","props","Flight.useBasicFetch","TvRequests","ConfigRequests","UserRequests","playerRef","setPlayerRef","React","getVideoActions","useGetTvActions","useHandleRegionError","useHandleDialogError","onReady","player","dataLoaded","playbackObject","jsx","Popup","_a","jsxs","Fragment","ClickViewPlayer","PreviewVideoDetails","PlayerOverlayButtons"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{R as L,r as s,Z as M,F as d}from"./app-BeXfSt3Z.js";const g=()=>{const e=L.useRef(!0);return L.useEffect(()=>()=>{e.current=!1},[]),e},R=275,y=5,T={className:"",delay:0,style:null},Y={screenX:0,screenY:0};function H(e,t){var n;e.current&&(t.className&&((n=e.current.classList)==null||n.add(t.className)),t.style&&Object.keys(t.style).forEach(u=>{e.current.style[u]=t.style[u]}))}function h(e,t){var n;e.current&&(t.className&&((n=e.current.classList)==null||n.remove(t.className)),t.style&&Object.keys(t.style).forEach(u=>{e.current.style[u]=null}))}function b(e,t){return Math.abs(e.screenX-t.screenX)>y||Math.abs(e.screenY-t.screenY)>y}function X(e=T){const t=g(),[n,u]=s.useState(e),[l,c]=s.useState(!1),r=s.useRef(null);s.useEffect(()=>{M.isEqual(e,n)||u(e)},[e]);const i=d.throttle(()=>{H(r,n),t.current&&c(!0)},n.delay,{leading:!1}),f=()=>{d.isFunction(i.cancel)&&i.cancel(),h(r,n),t.current&&c(!1)};return s.useLayoutEffect(()=>{const o=r.current;if(o)return o.addEventListener("mouseenter",i),o.addEventListener("mouseleave",f),()=>{o.removeEventListener("mouseenter",i),o.removeEventListener("mouseleave",f)}},[r.current,n]),[r,l]}function w(e){const[t,n]=s.useState(e),u=s.useRef({...Y}),l=s.useRef(!1),c=s.useRef(0),r=s.useRef(null),[i,f]=s.useState(!1);s.useEffect(()=>{M.isEqual(e,t)||n(e)},[e]);function o(){c.current&&(window.clearTimeout(c.current),c.current=0)}function O(a,v){c.current||(c.current=window.setTimeout(a,v))}function m(){l.current=!0}function S(a){if(!l.current)return;const v={...u.current};u.current.screenX=a.screenX,u.current.screenY=a.screenY,b(v,a)&&o(),O(()=>{H(r,t),f(!0)},t.delay||R)}function E(){o(),h(r,t),l.current=!1,f(!1)}return s.useLayoutEffect(()=>{if(!r.current)return;const a=d.throttle(S,25,{leading:!1});return r.current.addEventListener("mouseenter",m),r.current.addEventListener("mousemove",a),r.current.addEventListener("mouseleave",E),()=>{r.current&&(r.current.removeEventListener("mouseenter",m),r.current.removeEventListener("mousemove",a),r.current.removeEventListener("mouseleave",E))}},[r.current,t]),[r,i]}export{w as a,X as u};
2
- //# sourceMappingURL=CSuv1QVm.chunk.js.map
1
+ import{R as L,r as s,Z as M,F as d}from"./app-DQUfzK7M.js";const g=()=>{const e=L.useRef(!0);return L.useEffect(()=>()=>{e.current=!1},[]),e},R=275,y=5,T={className:"",delay:0,style:null},Y={screenX:0,screenY:0};function H(e,t){var n;e.current&&(t.className&&((n=e.current.classList)==null||n.add(t.className)),t.style&&Object.keys(t.style).forEach(u=>{e.current.style[u]=t.style[u]}))}function h(e,t){var n;e.current&&(t.className&&((n=e.current.classList)==null||n.remove(t.className)),t.style&&Object.keys(t.style).forEach(u=>{e.current.style[u]=null}))}function b(e,t){return Math.abs(e.screenX-t.screenX)>y||Math.abs(e.screenY-t.screenY)>y}function X(e=T){const t=g(),[n,u]=s.useState(e),[l,c]=s.useState(!1),r=s.useRef(null);s.useEffect(()=>{M.isEqual(e,n)||u(e)},[e]);const i=d.throttle(()=>{H(r,n),t.current&&c(!0)},n.delay,{leading:!1}),f=()=>{d.isFunction(i.cancel)&&i.cancel(),h(r,n),t.current&&c(!1)};return s.useLayoutEffect(()=>{const o=r.current;if(o)return o.addEventListener("mouseenter",i),o.addEventListener("mouseleave",f),()=>{o.removeEventListener("mouseenter",i),o.removeEventListener("mouseleave",f)}},[r.current,n]),[r,l]}function w(e){const[t,n]=s.useState(e),u=s.useRef({...Y}),l=s.useRef(!1),c=s.useRef(0),r=s.useRef(null),[i,f]=s.useState(!1);s.useEffect(()=>{M.isEqual(e,t)||n(e)},[e]);function o(){c.current&&(window.clearTimeout(c.current),c.current=0)}function O(a,v){c.current||(c.current=window.setTimeout(a,v))}function m(){l.current=!0}function S(a){if(!l.current)return;const v={...u.current};u.current.screenX=a.screenX,u.current.screenY=a.screenY,b(v,a)&&o(),O(()=>{H(r,t),f(!0)},t.delay||R)}function E(){o(),h(r,t),l.current=!1,f(!1)}return s.useLayoutEffect(()=>{if(!r.current)return;const a=d.throttle(S,25,{leading:!1});return r.current.addEventListener("mouseenter",m),r.current.addEventListener("mousemove",a),r.current.addEventListener("mouseleave",E),()=>{r.current&&(r.current.removeEventListener("mouseenter",m),r.current.removeEventListener("mousemove",a),r.current.removeEventListener("mouseleave",E))}},[r.current,t]),[r,i]}export{w as a,X as u};
2
+ //# sourceMappingURL=Bel5ImAj.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CSuv1QVm.chunk.js","sources":["../../../../libs/shared/src/hooks/UseIsComponentMounted.ts","../../../../libs/shared/src/hooks/UseHover.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsComponentMounted = () => {\n const isMounted = React.useRef(true);\n\n React.useEffect(() => {\n return () => { isMounted.current = false; };\n }, []);\n\n return isMounted;\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { useIsComponentMounted } from 'libs/shared/hooks/UseIsComponentMounted';\n\nconst DEFAULT_HOVER_DELAY = 275;\nconst MOUSE_MOVE_THRESHOLD = 5; // value is in pixels\n\ninterface HoverOptions {\n /**\n * Classes to be applied to the target element on hover. Useful if you want to style the element on hover\n * after a delay (controlled by the `timeout` option below)\n */\n className?: string;\n\n /**\n * Style attribute to be applied to the target element on hover. Should only be used \n */\n style?: HashObject;\n\n /**\n * A delay between when the user actually hovers on the element, and when the hook returns `true` for `isHovering`.\n * This can be used to determine whether a user has actually intended for a hover event on an element to be\n * triggered or not. Defaults to 0.\n */\n delay?: number;\n}\n\nconst defaultOptions: HoverOptions = {\n className: '',\n delay: 0,\n style: null\n};\n\ninterface MousePosition {\n screenX: number;\n screenY: number;\n}\n\nconst defaultHoverState: MousePosition = {\n screenX: 0,\n screenY: 0\n};\n\nfunction setHoveringStyles<T extends HTMLElement>(\n ref: React.MutableRefObject<T>,\n options: HoverOptions\n): void {\n if (!ref.current)\n return;\n\n if (options.className)\n ref.current.classList?.add(options.className);\n\n if (options.style) {\n Object.keys(options.style).forEach((styleName: any) => {\n ref.current.style[styleName] = options.style[styleName];\n });\n }\n}\n\nfunction unSetHoveringStyles<T extends HTMLElement>(\n ref: React.MutableRefObject<T>,\n options: HoverOptions\n): void {\n if (!ref.current)\n return;\n\n if (options.className)\n ref.current.classList?.remove(options.className);\n\n if (options.style) {\n Object.keys(options.style).forEach((styleName: any) => {\n ref.current.style[styleName] = null;\n });\n }\n}\n\nfunction hasMouseMoved(prev: MousePosition, current: MousePosition): boolean {\n return Math.abs(prev.screenX - current.screenX) > MOUSE_MOVE_THRESHOLD ||\n Math.abs(prev.screenY - current.screenY) > MOUSE_MOVE_THRESHOLD;\n}\n\n/**\n * This hook detects hover events on an element.\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\n * It will trigger after the delay regardless of pointer movement within the container, if you want\n * it to trigger only after the pointer has stopped moving, consider the `useHoverIntent` hook.\n */\nexport function useHover<T extends HTMLElement>(\n options: HoverOptions = defaultOptions\n): [ React.MutableRefObject<T>, boolean ] {\n const isMounted = useIsComponentMounted();\n const [ cachedOptions, setCachedOptions ] = React.useState(options);\n const [ isHovering, setIsHovering ] = React.useState(false);\n\n const ref = React.useRef<T>(null);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(options, cachedOptions))\n return;\n\n setCachedOptions(options);\n }, [options]);\n\n const triggerHover = FunctionHelper.throttle(() => {\n setHoveringStyles(ref, cachedOptions);\n if (isMounted.current)\n setIsHovering(true);\n }, cachedOptions.delay, { leading: false });\n\n const handleMouseOut = () => {\n if (FunctionHelper.isFunction(triggerHover.cancel))\n triggerHover.cancel();\n\n unSetHoveringStyles(ref, cachedOptions);\n\n if (isMounted.current)\n setIsHovering(false);\n };\n\n React.useLayoutEffect(() => {\n const node = ref.current;\n\n if (node) {\n node.addEventListener('mouseenter', triggerHover);\n node.addEventListener('mouseleave', handleMouseOut);\n\n return () => {\n node.removeEventListener('mouseenter', triggerHover);\n node.removeEventListener('mouseleave', handleMouseOut);\n };\n }\n }, [ ref.current, cachedOptions ]);\n\n return [ ref, isHovering ];\n}\n\n\n/**\n * This hook detects hover events on an element with intent.\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\n * It will trigger after the pointer has stopped moving and the delay has elapsed, if you want it to trigger\n * regardless of pointer movement within the container, consider the `useHover` hook`.\n */\nexport function useHoverIntent<T extends HTMLElement>(options: HoverOptions): [ React.MutableRefObject<T>, boolean ] {\n const [ cachedOptions, setCachedOptions ] = React.useState(options);\n\n /**\n * Using refs for frequently updated state in order to not trigger react rendering\n */\n const mousePosition = React.useRef<MousePosition>({ ...defaultHoverState });\n const isInside = React.useRef<boolean>(false);\n const timeout = React.useRef<number>(0);\n\n const ref = React.useRef<T>(null);\n const [ isHovering, setIsHovering ] = React.useState(false);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(options, cachedOptions))\n return;\n\n setCachedOptions(options);\n }, [options]);\n\n function localClearTimeout(): void {\n if (!timeout.current)\n return;\n\n window.clearTimeout(timeout.current);\n timeout.current = 0;\n }\n\n function localSetTimeout(fn: () => void, delay: number): void {\n if (timeout.current)\n return;\n\n timeout.current = window.setTimeout(fn, delay);\n }\n\n function onMouseEnter(): void {\n isInside.current = true;\n }\n\n function onMouseMove(event: MouseEvent): void {\n if (!isInside.current)\n return;\n\n const prev = { ...mousePosition.current };\n mousePosition.current.screenX = event.screenX;\n mousePosition.current.screenY = event.screenY;\n\n if (hasMouseMoved(prev, event))\n localClearTimeout();\n \n localSetTimeout(() => {\n setHoveringStyles(ref, cachedOptions);\n setIsHovering(true);\n }, cachedOptions.delay || DEFAULT_HOVER_DELAY);\n }\n\n function onMouseLeave(): void {\n localClearTimeout();\n unSetHoveringStyles(ref, cachedOptions);\n isInside.current = false;\n setIsHovering(false);\n }\n\n React.useLayoutEffect(() => {\n if (!ref.current)\n return;\n\n const throttledMouseMove = FunctionHelper.throttle(onMouseMove, 25, { leading: false });\n ref.current.addEventListener('mouseenter', onMouseEnter);\n ref.current.addEventListener('mousemove', throttledMouseMove);\n ref.current.addEventListener('mouseleave', onMouseLeave);\n \n return () => {\n if (!ref.current)\n return;\n ref.current.removeEventListener('mouseenter', onMouseEnter);\n ref.current.removeEventListener('mousemove', throttledMouseMove);\n ref.current.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [ ref.current, cachedOptions ]);\n \n return [ ref, isHovering ];\n}"],"names":["useIsComponentMounted","isMounted","React","DEFAULT_HOVER_DELAY","MOUSE_MOVE_THRESHOLD","defaultOptions","defaultHoverState","setHoveringStyles","ref","options","_a","styleName","unSetHoveringStyles","hasMouseMoved","prev","current","useHover","cachedOptions","setCachedOptions","React.useState","isHovering","setIsHovering","React.useRef","React.useEffect","ObjectHelper","triggerHover","FunctionHelper","handleMouseOut","React.useLayoutEffect","node","useHoverIntent","mousePosition","isInside","timeout","localClearTimeout","localSetTimeout","fn","delay","onMouseEnter","onMouseMove","event","onMouseLeave","throttledMouseMove"],"mappings":"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"}
1
+ {"version":3,"file":"Bel5ImAj.chunk.js","sources":["../../../../libs/shared/src/hooks/UseIsComponentMounted.ts","../../../../libs/shared/src/hooks/UseHover.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsComponentMounted = () => {\n const isMounted = React.useRef(true);\n\n React.useEffect(() => {\n return () => { isMounted.current = false; };\n }, []);\n\n return isMounted;\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { useIsComponentMounted } from 'libs/shared/hooks/UseIsComponentMounted';\n\nconst DEFAULT_HOVER_DELAY = 275;\nconst MOUSE_MOVE_THRESHOLD = 5; // value is in pixels\n\ninterface HoverOptions {\n /**\n * Classes to be applied to the target element on hover. Useful if you want to style the element on hover\n * after a delay (controlled by the `timeout` option below)\n */\n className?: string;\n\n /**\n * Style attribute to be applied to the target element on hover. Should only be used \n */\n style?: HashObject;\n\n /**\n * A delay between when the user actually hovers on the element, and when the hook returns `true` for `isHovering`.\n * This can be used to determine whether a user has actually intended for a hover event on an element to be\n * triggered or not. Defaults to 0.\n */\n delay?: number;\n}\n\nconst defaultOptions: HoverOptions = {\n className: '',\n delay: 0,\n style: null\n};\n\ninterface MousePosition {\n screenX: number;\n screenY: number;\n}\n\nconst defaultHoverState: MousePosition = {\n screenX: 0,\n screenY: 0\n};\n\nfunction setHoveringStyles<T extends HTMLElement>(\n ref: React.MutableRefObject<T>,\n options: HoverOptions\n): void {\n if (!ref.current)\n return;\n\n if (options.className)\n ref.current.classList?.add(options.className);\n\n if (options.style) {\n Object.keys(options.style).forEach((styleName: any) => {\n ref.current.style[styleName] = options.style[styleName];\n });\n }\n}\n\nfunction unSetHoveringStyles<T extends HTMLElement>(\n ref: React.MutableRefObject<T>,\n options: HoverOptions\n): void {\n if (!ref.current)\n return;\n\n if (options.className)\n ref.current.classList?.remove(options.className);\n\n if (options.style) {\n Object.keys(options.style).forEach((styleName: any) => {\n ref.current.style[styleName] = null;\n });\n }\n}\n\nfunction hasMouseMoved(prev: MousePosition, current: MousePosition): boolean {\n return Math.abs(prev.screenX - current.screenX) > MOUSE_MOVE_THRESHOLD ||\n Math.abs(prev.screenY - current.screenY) > MOUSE_MOVE_THRESHOLD;\n}\n\n/**\n * This hook detects hover events on an element.\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\n * It will trigger after the delay regardless of pointer movement within the container, if you want\n * it to trigger only after the pointer has stopped moving, consider the `useHoverIntent` hook.\n */\nexport function useHover<T extends HTMLElement>(\n options: HoverOptions = defaultOptions\n): [ React.MutableRefObject<T>, boolean ] {\n const isMounted = useIsComponentMounted();\n const [ cachedOptions, setCachedOptions ] = React.useState(options);\n const [ isHovering, setIsHovering ] = React.useState(false);\n\n const ref = React.useRef<T>(null);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(options, cachedOptions))\n return;\n\n setCachedOptions(options);\n }, [options]);\n\n const triggerHover = FunctionHelper.throttle(() => {\n setHoveringStyles(ref, cachedOptions);\n if (isMounted.current)\n setIsHovering(true);\n }, cachedOptions.delay, { leading: false });\n\n const handleMouseOut = () => {\n if (FunctionHelper.isFunction(triggerHover.cancel))\n triggerHover.cancel();\n\n unSetHoveringStyles(ref, cachedOptions);\n\n if (isMounted.current)\n setIsHovering(false);\n };\n\n React.useLayoutEffect(() => {\n const node = ref.current;\n\n if (node) {\n node.addEventListener('mouseenter', triggerHover);\n node.addEventListener('mouseleave', handleMouseOut);\n\n return () => {\n node.removeEventListener('mouseenter', triggerHover);\n node.removeEventListener('mouseleave', handleMouseOut);\n };\n }\n }, [ ref.current, cachedOptions ]);\n\n return [ ref, isHovering ];\n}\n\n\n/**\n * This hook detects hover events on an element with intent.\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\n * It will trigger after the pointer has stopped moving and the delay has elapsed, if you want it to trigger\n * regardless of pointer movement within the container, consider the `useHover` hook`.\n */\nexport function useHoverIntent<T extends HTMLElement>(options: HoverOptions): [ React.MutableRefObject<T>, boolean ] {\n const [ cachedOptions, setCachedOptions ] = React.useState(options);\n\n /**\n * Using refs for frequently updated state in order to not trigger react rendering\n */\n const mousePosition = React.useRef<MousePosition>({ ...defaultHoverState });\n const isInside = React.useRef<boolean>(false);\n const timeout = React.useRef<number>(0);\n\n const ref = React.useRef<T>(null);\n const [ isHovering, setIsHovering ] = React.useState(false);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(options, cachedOptions))\n return;\n\n setCachedOptions(options);\n }, [options]);\n\n function localClearTimeout(): void {\n if (!timeout.current)\n return;\n\n window.clearTimeout(timeout.current);\n timeout.current = 0;\n }\n\n function localSetTimeout(fn: () => void, delay: number): void {\n if (timeout.current)\n return;\n\n timeout.current = window.setTimeout(fn, delay);\n }\n\n function onMouseEnter(): void {\n isInside.current = true;\n }\n\n function onMouseMove(event: MouseEvent): void {\n if (!isInside.current)\n return;\n\n const prev = { ...mousePosition.current };\n mousePosition.current.screenX = event.screenX;\n mousePosition.current.screenY = event.screenY;\n\n if (hasMouseMoved(prev, event))\n localClearTimeout();\n \n localSetTimeout(() => {\n setHoveringStyles(ref, cachedOptions);\n setIsHovering(true);\n }, cachedOptions.delay || DEFAULT_HOVER_DELAY);\n }\n\n function onMouseLeave(): void {\n localClearTimeout();\n unSetHoveringStyles(ref, cachedOptions);\n isInside.current = false;\n setIsHovering(false);\n }\n\n React.useLayoutEffect(() => {\n if (!ref.current)\n return;\n\n const throttledMouseMove = FunctionHelper.throttle(onMouseMove, 25, { leading: false });\n ref.current.addEventListener('mouseenter', onMouseEnter);\n ref.current.addEventListener('mousemove', throttledMouseMove);\n ref.current.addEventListener('mouseleave', onMouseLeave);\n \n return () => {\n if (!ref.current)\n return;\n ref.current.removeEventListener('mouseenter', onMouseEnter);\n ref.current.removeEventListener('mousemove', throttledMouseMove);\n ref.current.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [ ref.current, cachedOptions ]);\n \n return [ ref, isHovering ];\n}"],"names":["useIsComponentMounted","isMounted","React","DEFAULT_HOVER_DELAY","MOUSE_MOVE_THRESHOLD","defaultOptions","defaultHoverState","setHoveringStyles","ref","options","_a","styleName","unSetHoveringStyles","hasMouseMoved","prev","current","useHover","cachedOptions","setCachedOptions","React.useState","isHovering","setIsHovering","React.useRef","React.useEffect","ObjectHelper","triggerHover","FunctionHelper","handleMouseOut","React.useLayoutEffect","node","useHoverIntent","mousePosition","isInside","timeout","localClearTimeout","localSetTimeout","fn","delay","onMouseEnter","onMouseMove","event","onMouseLeave","throttledMouseMove"],"mappings":"2DAEO,MAAMA,EAAwB,IAAM,CACzC,MAAMC,EAAYC,EAAM,OAAO,EAAI,EAEnC,OAAAA,EAAM,UAAU,IACP,IAAM,CAAED,EAAU,QAAU,EAAO,EACzC,CAAA,CAAE,EAEEA,CACT,ECFME,EAAsB,IACtBC,EAAuB,EAsBvBC,EAA+B,CACnC,UAAW,GACX,MAAO,EACP,MAAO,IACT,EAOMC,EAAmC,CACvC,QAAS,EACT,QAAS,CACX,EAEA,SAASC,EACPC,EACAC,EACM,OACDD,EAAI,UAGLC,EAAQ,aACVC,EAAAF,EAAI,QAAQ,YAAZ,MAAAE,EAAuB,IAAID,EAAQ,YAEjCA,EAAQ,OACV,OAAO,KAAKA,EAAQ,KAAK,EAAE,QAASE,GAAmB,CACrDH,EAAI,QAAQ,MAAMG,CAAS,EAAIF,EAAQ,MAAME,CAAS,CACxD,CAAC,EAEL,CAEA,SAASC,EACPJ,EACAC,EACM,OACDD,EAAI,UAGLC,EAAQ,aACVC,EAAAF,EAAI,QAAQ,YAAZ,MAAAE,EAAuB,OAAOD,EAAQ,YAEpCA,EAAQ,OACV,OAAO,KAAKA,EAAQ,KAAK,EAAE,QAASE,GAAmB,CACrDH,EAAI,QAAQ,MAAMG,CAAS,EAAI,IACjC,CAAC,EAEL,CAEA,SAASE,EAAcC,EAAqBC,EAAiC,CAC3E,OAAO,KAAK,IAAID,EAAK,QAAUC,EAAQ,OAAO,EAAIX,GAChD,KAAK,IAAIU,EAAK,QAAUC,EAAQ,OAAO,EAAIX,CAC/C,CAQO,SAASY,EACdP,EAAwBJ,EACgB,CACxC,MAAMJ,EAAYD,EAAA,EACZ,CAAEiB,EAAeC,CAAiB,EAAIC,EAAAA,SAAeV,CAAO,EAC5D,CAAEW,EAAYC,CAAc,EAAIF,EAAAA,SAAe,EAAK,EAEpDX,EAAMc,EAAAA,OAAgB,IAAI,EAEhCC,EAAAA,UAAgB,IAAM,CAChBC,EAAa,QAAQf,EAASQ,CAAa,GAG/CC,EAAiBT,CAAO,CAC1B,EAAG,CAACA,CAAO,CAAC,EAEZ,MAAMgB,EAAeC,EAAe,SAAS,IAAM,CACjDnB,EAAkBC,EAAKS,CAAa,EAChChB,EAAU,SACZoB,EAAc,EAAI,CACtB,EAAGJ,EAAc,MAAO,CAAE,QAAS,GAAO,EAEpCU,EAAiB,IAAM,CACvBD,EAAe,WAAWD,EAAa,MAAM,GAC/CA,EAAa,OAAA,EAEfb,EAAoBJ,EAAKS,CAAa,EAElChB,EAAU,SACZoB,EAAc,EAAK,CACvB,EAEAO,OAAAA,EAAAA,gBAAsB,IAAM,CAC1B,MAAMC,EAAOrB,EAAI,QAEjB,GAAIqB,EACF,OAAAA,EAAK,iBAAiB,aAAcJ,CAAY,EAChDI,EAAK,iBAAiB,aAAcF,CAAc,EAE3C,IAAM,CACXE,EAAK,oBAAoB,aAAcJ,CAAY,EACnDI,EAAK,oBAAoB,aAAcF,CAAc,CACvD,CAEJ,EAAG,CAAEnB,EAAI,QAASS,CAAc,CAAC,EAE1B,CAAET,EAAKY,CAAW,CAC3B,CASO,SAASU,EAAsCrB,EAA+D,CACnH,KAAM,CAAEQ,EAAeC,CAAiB,EAAIC,EAAAA,SAAeV,CAAO,EAK5DsB,EAAgBT,EAAAA,OAA4B,CAAE,GAAGhB,EAAmB,EACpE0B,EAAWV,EAAAA,OAAsB,EAAK,EACtCW,EAAUX,EAAAA,OAAqB,CAAC,EAEhCd,EAAMc,EAAAA,OAAgB,IAAI,EAC1B,CAAEF,EAAYC,CAAc,EAAIF,EAAAA,SAAe,EAAK,EAE1DI,EAAAA,UAAgB,IAAM,CAChBC,EAAa,QAAQf,EAASQ,CAAa,GAG/CC,EAAiBT,CAAO,CAC1B,EAAG,CAACA,CAAO,CAAC,EAEZ,SAASyB,GAA0B,CAC5BD,EAAQ,UAGb,OAAO,aAAaA,EAAQ,OAAO,EACnCA,EAAQ,QAAU,EACpB,CAEA,SAASE,EAAgBC,EAAgBC,EAAqB,CACxDJ,EAAQ,UAGZA,EAAQ,QAAU,OAAO,WAAWG,EAAIC,CAAK,EAC/C,CAEA,SAASC,GAAqB,CAC5BN,EAAS,QAAU,EACrB,CAEA,SAASO,EAAYC,EAAyB,CAC5C,GAAI,CAACR,EAAS,QACZ,OAEF,MAAMlB,EAAO,CAAE,GAAGiB,EAAc,OAAA,EAChCA,EAAc,QAAQ,QAAUS,EAAM,QACtCT,EAAc,QAAQ,QAAUS,EAAM,QAElC3B,EAAcC,EAAM0B,CAAK,GAC3BN,EAAA,EAEFC,EAAgB,IAAM,CACpB5B,EAAkBC,EAAKS,CAAa,EACpCI,EAAc,EAAI,CACpB,EAAGJ,EAAc,OAASd,CAAmB,CAC/C,CAEA,SAASsC,GAAqB,CAC5BP,EAAA,EACAtB,EAAoBJ,EAAKS,CAAa,EACtCe,EAAS,QAAU,GACnBX,EAAc,EAAK,CACrB,CAEAO,OAAAA,EAAAA,gBAAsB,IAAM,CAC1B,GAAI,CAACpB,EAAI,QACP,OAEF,MAAMkC,EAAqBhB,EAAe,SAASa,EAAa,GAAI,CAAE,QAAS,GAAO,EACtF,OAAA/B,EAAI,QAAQ,iBAAiB,aAAc8B,CAAY,EACvD9B,EAAI,QAAQ,iBAAiB,YAAakC,CAAkB,EAC5DlC,EAAI,QAAQ,iBAAiB,aAAciC,CAAY,EAEhD,IAAM,CACNjC,EAAI,UAETA,EAAI,QAAQ,oBAAoB,aAAc8B,CAAY,EAC1D9B,EAAI,QAAQ,oBAAoB,YAAakC,CAAkB,EAC/DlC,EAAI,QAAQ,oBAAoB,aAAciC,CAAY,EAC5D,CACF,EAAG,CAAEjC,EAAI,QAASS,CAAc,CAAC,EAE1B,CAAET,EAAKY,CAAW,CAC3B"}
@@ -1,2 +1,2 @@
1
- import{a3 as o,j as e,P as x,L as h,am as g,B as d,x as c,a5 as j}from"./app-BeXfSt3Z.js";import{u as b}from"./D1kNrE2G.chunk.js";import{T as n}from"./BM1pKS1x.chunk.js";import{u as C}from"./Cusf4uQr.chunk.js";import"./fG3bu7tL.chunk.js";const a="tv.adFreeRequest",u=h.encloseNamespace(a);function f(t){const r=o(j.currentUser()),i=o(n.region(t.region)),l=o(n.program(t.id)),s=o(r.data&&i.data&&n.adFreeCredits(r.data.id,r.data.customerId,i.data.code));C(i,!0),b(l.statusCode);const m=r.hasCompleted&&i.hasCompleted&&l.hasCompleted&&s.hasCompleted,p=s.data.maxAvailableCredit-s.data.userRequests;return e.jsxs(x,{title:u("title"),closePopup:t.closePopup,showLoadingSpinner:!m,children:[m&&e.jsxs("div",{className:"text-center",children:[e.jsx("img",{src:g.General.PAPER_PLANE,className:"img-fluid w-50 mb-3",draggable:!1}),e.jsx("h2",{className:"h4 mb-2",children:e.jsx(d,{namespace:a,phrase:"requestSent"})}),e.jsx("div",{className:"bg-dark rounded-pill text-white d-inline-block fw-semibold border border-dark py-0 px-2 mb-2",children:e.jsx(d,{namespace:a,phrase:"remaining",options:{smartCount:p}})}),e.jsxs("div",{className:"pb-1",children:[e.jsx("p",{className:"mb-2",children:e.jsx(d,{namespace:a,phrase:"requestDaily",options:{dailyLimit:s.data.maxAvailableCredit}})}),e.jsx("p",{className:"mb-3",children:e.jsx(d,{namespace:a,phrase:"requestHours",options:{dailyLimit:s.data.maxAvailableCredit}})})]})]}),e.jsx(c,{children:e.jsx(c.Cancel,{text:u("close"),onClick:t.closePopup,variant:"link"})})]})}export{f as TvAdFreeRequestView};
2
- //# sourceMappingURL=CiTtDJue.chunk.js.map
1
+ import{a3 as o,j as e,P as x,L as h,am as g,B as d,x as c,a5 as j}from"./app-DQUfzK7M.js";import{u as b}from"./BpFMqrCw.chunk.js";import{T as n}from"./CeNnu9Uy.chunk.js";import{u as C}from"./UAhbVZA6.chunk.js";import"./BIciRJHg.chunk.js";const a="tv.adFreeRequest",u=h.encloseNamespace(a);function f(t){const r=o(j.currentUser()),i=o(n.region(t.region)),l=o(n.program(t.id)),s=o(r.data&&i.data&&n.adFreeCredits(r.data.id,r.data.customerId,i.data.code));C(i,!0),b(l.statusCode);const m=r.hasCompleted&&i.hasCompleted&&l.hasCompleted&&s.hasCompleted,p=s.data.maxAvailableCredit-s.data.userRequests;return e.jsxs(x,{title:u("title"),closePopup:t.closePopup,showLoadingSpinner:!m,children:[m&&e.jsxs("div",{className:"text-center",children:[e.jsx("img",{src:g.General.PAPER_PLANE,className:"img-fluid w-50 mb-3",draggable:!1}),e.jsx("h2",{className:"h4 mb-2",children:e.jsx(d,{namespace:a,phrase:"requestSent"})}),e.jsx("div",{className:"bg-dark rounded-pill text-white d-inline-block fw-semibold border border-dark py-0 px-2 mb-2",children:e.jsx(d,{namespace:a,phrase:"remaining",options:{smartCount:p}})}),e.jsxs("div",{className:"pb-1",children:[e.jsx("p",{className:"mb-2",children:e.jsx(d,{namespace:a,phrase:"requestDaily",options:{dailyLimit:s.data.maxAvailableCredit}})}),e.jsx("p",{className:"mb-3",children:e.jsx(d,{namespace:a,phrase:"requestHours",options:{dailyLimit:s.data.maxAvailableCredit}})})]})]}),e.jsx(c,{children:e.jsx(c.Cancel,{text:u("close"),onClick:t.closePopup,variant:"link"})})]})}export{f as TvAdFreeRequestView};
2
+ //# sourceMappingURL=BfWmIKU0.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CiTtDJue.chunk.js","sources":["../../src/apps/tv/views/tv-ad-free-request/TvAdFreeRequestView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\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 { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { AdFreeCredits } from 'apps/tv/interfaces/models/AdFreeCredits';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.adFreeRequest';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvAdFreeRequestViewProps extends PopupViewProps {\n id: string;\n region: string;\n}\n\nexport function TvAdFreeRequestView(props: TvAdFreeRequestViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const adFreeCredits = Flight.useBasicFetch<AdFreeCredits>(\n currentUser.data &&\n region.data &&\n TvRequests.adFreeCredits(\n currentUser.data.id,\n currentUser.data.customerId,\n region.data.code\n )\n );\n\n useHandleRegionError(region, true);\n useHandleDialogError(program.statusCode);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n region.hasCompleted &&\n program.hasCompleted &&\n adFreeCredits.hasCompleted\n );\n\n const remainingRequests = adFreeCredits.data.maxAvailableCredit - adFreeCredits.data.userRequests;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!hasLoaded}\n >\n {hasLoaded &&\n <div className='text-center'>\n <img src={ImageUrls.General.PAPER_PLANE} className='img-fluid w-50 mb-3' draggable={false} />\n <h2 className='h4 mb-2'><Text namespace={namespace} phrase='requestSent' /></h2>\n <div className='bg-dark rounded-pill text-white d-inline-block fw-semibold border border-dark py-0 px-2 mb-2'>\n <Text namespace={namespace} phrase='remaining' options={{ smartCount: remainingRequests }} />\n </div>\n <div className='pb-1'>\n <p className='mb-2'>\n <Text namespace={namespace} phrase='requestDaily' options={{ dailyLimit: adFreeCredits.data.maxAvailableCredit }} />\n </p>\n <p className='mb-3'>\n <Text namespace={namespace} phrase='requestHours' options={{ dailyLimit: adFreeCredits.data.maxAvailableCredit }} />\n </p>\n </div>\n </div>\n }\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={props.closePopup}\n variant='link'\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","TvAdFreeRequestView","props","currentUser","Flight.useBasicFetch","UserRequests","region","TvRequests","program","adFreeCredits","useHandleRegionError","useHandleDialogError","hasLoaded","remainingRequests","jsxs","Popup","jsx","ImageUrls","Text","PopupButtons"],"mappings":"8OAoBA,MAAMA,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAOrD,SAASG,EAAoBC,EAA8C,CAChF,MAAMC,EAAcC,EAAkCC,EAAa,aAAa,EAC1EC,EAASF,EAA+BG,EAAW,OAAOL,EAAM,MAAM,CAAC,EACvEM,EAAUJ,EAAgCG,EAAW,QAAQL,EAAM,EAAE,CAAC,EACtEO,EAAgBL,EACpBD,EAAY,MACZG,EAAO,MACPC,EAAW,cACTJ,EAAY,KAAK,GACjBA,EAAY,KAAK,WACjBG,EAAO,KAAK,IAAA,CACd,EAGFI,EAAqBJ,EAAQ,EAAI,EACjCK,EAAqBH,EAAQ,UAAU,EAEvC,MAAMI,EACJT,EAAY,cACZG,EAAO,cACPE,EAAQ,cACRC,EAAc,aAGVI,EAAoBJ,EAAc,KAAK,mBAAqBA,EAAc,KAAK,aAErF,OACEK,EAAAA,KAACC,EAAA,CACC,MAAOhB,EAAU,OAAO,EACxB,WAAYG,EAAM,WAClB,mBAAoB,CAACU,EAEpB,SAAA,CAAAA,GACCE,EAAAA,KAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,IAAKC,EAAU,QAAQ,YAAa,UAAU,sBAAsB,UAAW,EAAA,CAAO,EAC3FD,EAAAA,IAAC,MAAG,UAAU,UAAU,eAACE,EAAA,CAAK,UAAApB,EAAsB,OAAO,aAAA,CAAc,CAAA,CAAE,EAC3EkB,EAAAA,IAAC,MAAA,CAAI,UAAU,+FACb,eAACE,EAAA,CAAK,UAAApB,EAAsB,OAAO,YAAY,QAAS,CAAE,WAAYe,CAAA,EAAqB,EAC7F,EACAC,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAE,MAAC,IAAA,CAAE,UAAU,OACX,SAAAA,EAAAA,IAACE,GAAK,UAAApB,EAAsB,OAAO,eAAe,QAAS,CAAE,WAAYW,EAAc,KAAK,kBAAA,EAAsB,EACpH,QACC,IAAA,CAAE,UAAU,OACX,SAAAO,EAAAA,IAACE,GAAK,UAAApB,EAAsB,OAAO,eAAe,QAAS,CAAE,WAAYW,EAAc,KAAK,kBAAA,EAAsB,CAAA,CACpH,CAAA,CAAA,CACF,CAAA,EACF,QAGDU,EAAA,CACC,SAAAH,EAAAA,IAACG,EAAa,OAAb,CACC,KAAMpB,EAAU,OAAO,EACvB,QAASG,EAAM,WACf,QAAQ,MAAA,CAAA,CACV,CACF,CAAA,CAAA,CAAA,CAGN"}
1
+ {"version":3,"file":"BfWmIKU0.chunk.js","sources":["../../src/apps/tv/views/tv-ad-free-request/TvAdFreeRequestView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\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 { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { AdFreeCredits } from 'apps/tv/interfaces/models/AdFreeCredits';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.adFreeRequest';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvAdFreeRequestViewProps extends PopupViewProps {\n id: string;\n region: string;\n}\n\nexport function TvAdFreeRequestView(props: TvAdFreeRequestViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const adFreeCredits = Flight.useBasicFetch<AdFreeCredits>(\n currentUser.data &&\n region.data &&\n TvRequests.adFreeCredits(\n currentUser.data.id,\n currentUser.data.customerId,\n region.data.code\n )\n );\n\n useHandleRegionError(region, true);\n useHandleDialogError(program.statusCode);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n region.hasCompleted &&\n program.hasCompleted &&\n adFreeCredits.hasCompleted\n );\n\n const remainingRequests = adFreeCredits.data.maxAvailableCredit - adFreeCredits.data.userRequests;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!hasLoaded}\n >\n {hasLoaded &&\n <div className='text-center'>\n <img src={ImageUrls.General.PAPER_PLANE} className='img-fluid w-50 mb-3' draggable={false} />\n <h2 className='h4 mb-2'><Text namespace={namespace} phrase='requestSent' /></h2>\n <div className='bg-dark rounded-pill text-white d-inline-block fw-semibold border border-dark py-0 px-2 mb-2'>\n <Text namespace={namespace} phrase='remaining' options={{ smartCount: remainingRequests }} />\n </div>\n <div className='pb-1'>\n <p className='mb-2'>\n <Text namespace={namespace} phrase='requestDaily' options={{ dailyLimit: adFreeCredits.data.maxAvailableCredit }} />\n </p>\n <p className='mb-3'>\n <Text namespace={namespace} phrase='requestHours' options={{ dailyLimit: adFreeCredits.data.maxAvailableCredit }} />\n </p>\n </div>\n </div>\n }\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={props.closePopup}\n variant='link'\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","TvAdFreeRequestView","props","currentUser","Flight.useBasicFetch","UserRequests","region","TvRequests","program","adFreeCredits","useHandleRegionError","useHandleDialogError","hasLoaded","remainingRequests","jsxs","Popup","jsx","ImageUrls","Text","PopupButtons"],"mappings":"8OAoBA,MAAMA,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAOrD,SAASG,EAAoBC,EAA8C,CAChF,MAAMC,EAAcC,EAAkCC,EAAa,aAAa,EAC1EC,EAASF,EAA+BG,EAAW,OAAOL,EAAM,MAAM,CAAC,EACvEM,EAAUJ,EAAgCG,EAAW,QAAQL,EAAM,EAAE,CAAC,EACtEO,EAAgBL,EACpBD,EAAY,MACZG,EAAO,MACPC,EAAW,cACTJ,EAAY,KAAK,GACjBA,EAAY,KAAK,WACjBG,EAAO,KAAK,IAAA,CACd,EAGFI,EAAqBJ,EAAQ,EAAI,EACjCK,EAAqBH,EAAQ,UAAU,EAEvC,MAAMI,EACJT,EAAY,cACZG,EAAO,cACPE,EAAQ,cACRC,EAAc,aAGVI,EAAoBJ,EAAc,KAAK,mBAAqBA,EAAc,KAAK,aAErF,OACEK,EAAAA,KAACC,EAAA,CACC,MAAOhB,EAAU,OAAO,EACxB,WAAYG,EAAM,WAClB,mBAAoB,CAACU,EAEpB,SAAA,CAAAA,GACCE,EAAAA,KAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,IAAKC,EAAU,QAAQ,YAAa,UAAU,sBAAsB,UAAW,EAAA,CAAO,EAC3FD,EAAAA,IAAC,MAAG,UAAU,UAAU,eAACE,EAAA,CAAK,UAAApB,EAAsB,OAAO,aAAA,CAAc,CAAA,CAAE,EAC3EkB,EAAAA,IAAC,MAAA,CAAI,UAAU,+FACb,eAACE,EAAA,CAAK,UAAApB,EAAsB,OAAO,YAAY,QAAS,CAAE,WAAYe,CAAA,EAAqB,EAC7F,EACAC,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAE,MAAC,IAAA,CAAE,UAAU,OACX,SAAAA,EAAAA,IAACE,GAAK,UAAApB,EAAsB,OAAO,eAAe,QAAS,CAAE,WAAYW,EAAc,KAAK,kBAAA,EAAsB,EACpH,QACC,IAAA,CAAE,UAAU,OACX,SAAAO,EAAAA,IAACE,GAAK,UAAApB,EAAsB,OAAO,eAAe,QAAS,CAAE,WAAYW,EAAc,KAAK,kBAAA,EAAsB,CAAA,CACpH,CAAA,CAAA,CACF,CAAA,EACF,QAGDU,EAAA,CACC,SAAAH,EAAAA,IAACG,EAAa,OAAb,CACC,KAAMpB,EAAU,OAAO,EACvB,QAASG,EAAM,WACf,QAAQ,MAAA,CAAA,CACV,CACF,CAAA,CAAA,CAAA,CAGN"}
@@ -1,2 +1,2 @@
1
- import{I as o,L as n,q as t,aG as s,am as a}from"./app-BeXfSt3Z.js";const i="tv.getRegionInfo",e=n.encloseNamespace(i);function l(g){const r={[o.AU]:{tv:e("foxtel"),country:e("au"),requestProgram:!0,programGuidePhraseKey:"foxtelTvGuide",logo:a.ProgramLogos.FOXTEL,bgColor:"bg-light-yellow"},[o.UK]:{tv:e("bbcRes"),country:e("uk"),requestProgram:!0,programGuidePhraseKey:"bbcSearch",logo:a.ProgramLogos.BBC,bgColor:"bg-light-blue"},[o.NZ]:{country:e("nz"),requestProgram:!1}}[g];return r||t.throw(new s("No region info mapped for instance region")),r}export{l as g};
2
- //# sourceMappingURL=BO7wPiFy.chunk.js.map
1
+ import{I as o,L as n,q as t,aG as s,am as a}from"./app-DQUfzK7M.js";const i="tv.getRegionInfo",e=n.encloseNamespace(i);function l(g){const r={[o.AU]:{tv:e("foxtel"),country:e("au"),requestProgram:!0,programGuidePhraseKey:"foxtelTvGuide",logo:a.ProgramLogos.FOXTEL,bgColor:"bg-light-yellow"},[o.UK]:{tv:e("bbcRes"),country:e("uk"),requestProgram:!0,programGuidePhraseKey:"bbcSearch",logo:a.ProgramLogos.BBC,bgColor:"bg-light-blue"},[o.NZ]:{country:e("nz"),requestProgram:!1}}[g];return r||t.throw(new s("No region info mapped for instance region")),r}export{l as g};
2
+ //# sourceMappingURL=BhJEiLr0.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BO7wPiFy.chunk.js","sources":["../../src/apps/tv/utils/getRegionInfo/getRegionInfo.ts"],"sourcesContent":["import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'tv.getRegionInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype RegionInfo = {\n country: string;\n requestProgram: boolean;\n tv?: string;\n programGuidePhraseKey?: string;\n logo?: string;\n bgColor?: string;\n}\n\nexport function getRegionInfo(instanceRegion: InstanceRegion): RegionInfo {\n const regionMap: Partial<Record<InstanceRegion, RegionInfo>> = {\n [InstanceRegion.AU]: {\n tv: getPhrase('foxtel'),\n country: getPhrase('au'),\n requestProgram: true,\n programGuidePhraseKey: 'foxtelTvGuide',\n logo: ImageUrls.ProgramLogos.FOXTEL,\n bgColor: 'bg-light-yellow'\n },\n [InstanceRegion.UK]: {\n tv: getPhrase('bbcRes'),\n country: getPhrase('uk'),\n requestProgram: true,\n programGuidePhraseKey: 'bbcSearch',\n logo: ImageUrls.ProgramLogos.BBC,\n bgColor: 'bg-light-blue'\n },\n [InstanceRegion.NZ]: {\n country: getPhrase('nz'),\n requestProgram: false\n }\n };\n\n const regionInfo = regionMap[instanceRegion];\n\n if (!regionInfo)\n Core.ErrorHelper.throw(new DevError('No region info mapped for instance region'));\n\n return regionInfo;\n}"],"names":["namespace","getPhrase","LanguageService","getRegionInfo","instanceRegion","regionInfo","InstanceRegion","ImageUrls","Core.ErrorHelper","DevError"],"mappings":"oEAQA,MAAMA,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAWrD,SAASG,EAAcC,EAA4C,CAwBxE,MAAMC,EAvByD,CAC7D,CAACC,EAAe,EAAE,EAAG,CACnB,GAAIL,EAAU,QAAQ,EACtB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,gBACvB,KAAMM,EAAU,aAAa,OAC7B,QAAS,iBAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,GAAKL,EAAU,QAAQ,EACvB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,YACvB,KAAMM,EAAU,aAAa,IAC7B,QAAS,eAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,QAASL,EAAU,IAAI,EACvB,eAAgB,EAAA,CAClB,EAG2BG,CAAc,EAE3C,OAAKC,GACHG,EAAiB,MAAM,IAAIC,EAAS,2CAA2C,CAAC,EAE3EJ,CACT"}
1
+ {"version":3,"file":"BhJEiLr0.chunk.js","sources":["../../src/apps/tv/utils/getRegionInfo/getRegionInfo.ts"],"sourcesContent":["import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'tv.getRegionInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype RegionInfo = {\n country: string;\n requestProgram: boolean;\n tv?: string;\n programGuidePhraseKey?: string;\n logo?: string;\n bgColor?: string;\n}\n\nexport function getRegionInfo(instanceRegion: InstanceRegion): RegionInfo {\n const regionMap: Partial<Record<InstanceRegion, RegionInfo>> = {\n [InstanceRegion.AU]: {\n tv: getPhrase('foxtel'),\n country: getPhrase('au'),\n requestProgram: true,\n programGuidePhraseKey: 'foxtelTvGuide',\n logo: ImageUrls.ProgramLogos.FOXTEL,\n bgColor: 'bg-light-yellow'\n },\n [InstanceRegion.UK]: {\n tv: getPhrase('bbcRes'),\n country: getPhrase('uk'),\n requestProgram: true,\n programGuidePhraseKey: 'bbcSearch',\n logo: ImageUrls.ProgramLogos.BBC,\n bgColor: 'bg-light-blue'\n },\n [InstanceRegion.NZ]: {\n country: getPhrase('nz'),\n requestProgram: false\n }\n };\n\n const regionInfo = regionMap[instanceRegion];\n\n if (!regionInfo)\n Core.ErrorHelper.throw(new DevError('No region info mapped for instance region'));\n\n return regionInfo;\n}"],"names":["namespace","getPhrase","LanguageService","getRegionInfo","instanceRegion","regionInfo","InstanceRegion","ImageUrls","Core.ErrorHelper","DevError"],"mappings":"oEAQA,MAAMA,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAWrD,SAASG,EAAcC,EAA4C,CAwBxE,MAAMC,EAvByD,CAC7D,CAACC,EAAe,EAAE,EAAG,CACnB,GAAIL,EAAU,QAAQ,EACtB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,gBACvB,KAAMM,EAAU,aAAa,OAC7B,QAAS,iBAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,GAAKL,EAAU,QAAQ,EACvB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,YACvB,KAAMM,EAAU,aAAa,IAC7B,QAAS,eAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,QAASL,EAAU,IAAI,EACvB,eAAgB,EAAA,CAClB,EAG2BG,CAAc,EAE3C,OAAKC,GACHG,EAAiB,MAAM,IAAIC,EAAS,2CAA2C,CAAC,EAE3EJ,CACT"}
@@ -1,2 +1,2 @@
1
- import{aL as i,bM as n,j as t,bN as m,B as r}from"./app-BeXfSt3Z.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=DHx8qw7h.chunk.js.map
1
+ import{aL as i,bM as n,j as t,bN as m,B as r}from"./app-DQUfzK7M.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=Bi_rU-SG.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DHx8qw7h.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":"Bi_rU-SG.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"}
@@ -0,0 +1,2 @@
1
+ import{r as n}from"./app-DQUfzK7M.js";import{h as s}from"./BIciRJHg.chunk.js";function c(t){return t.map(e=>e.statusCode).join(":")}function p(t,e,r){const a=Array.isArray(t)?t:[t];n.useEffect(()=>{a.forEach(o=>{s(o.statusCode,e,r)})},[c(a),e,r])}export{p as u};
2
+ //# sourceMappingURL=BldjpTLL.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BMOkpx9W.chunk.js","sources":["../../../../libs/shared/src/hooks/UseHandleObjectError.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}"],"names":["generateCacheKey","flightObjs","obj","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","handleHttpError"],"mappings":"8EAMA,SAASA,EAAiBC,EAAiD,CACzE,OAAOA,EAAW,IAAIC,GAAOA,EAAI,UAAU,EAAE,KAAK,GAAG,CACvD,CAGO,SAASC,EACdC,EACAC,EACAC,EACM,CACN,MAAML,EAAa,MAAM,QAAQG,CAAW,EAAIA,EAAc,CAACA,CAAW,EAE1EG,EAAAA,UAAU,IAAM,CACdN,EAAW,QAAQC,GAAO,CACxBM,EAAgBN,EAAI,WAAYG,EAAcC,CAAY,CAC5D,CAAC,CACH,EAAG,CAAEN,EAAiBC,CAAU,EAAGI,EAAcC,CAAa,CAAC,CACjE"}
1
+ {"version":3,"file":"BldjpTLL.chunk.js","sources":["../../../../libs/shared/src/hooks/UseHandleObjectError.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}"],"names":["generateCacheKey","flightObjs","obj","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","handleHttpError"],"mappings":"8EAMA,SAASA,EAAiBC,EAAiD,CACzE,OAAOA,EAAW,IAAIC,GAAOA,EAAI,UAAU,EAAE,KAAK,GAAG,CACvD,CAGO,SAASC,EACdC,EACAC,EACAC,EACM,CACN,MAAML,EAAa,MAAM,QAAQG,CAAW,EAAIA,EAAc,CAACA,CAAW,EAE1EG,EAAAA,UAAU,IAAM,CACdN,EAAW,QAAQC,GAAO,CACxBM,EAAgBN,EAAI,WAAYG,EAAcC,CAAY,CAC5D,CAAC,CACH,EAAG,CAAEN,EAAiBC,CAAU,EAAGI,EAAcC,CAAa,CAAC,CACjE"}
@@ -0,0 +1,2 @@
1
+ import{j as o,E as t}from"./app-DQUfzK7M.js";function i({error:r}){return o.jsx(t,{error:r})}export{i as NotFoundView};
2
+ //# sourceMappingURL=Bm0DywXr.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kjcQ0DHK.chunk.js","sources":["../../src/apps/default/views/not-found/ExchangeNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/ExchangeErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}"],"names":["NotFoundView","error","jsx","ErrorView"],"mappings":"6CAWO,SAASA,EAAa,CAAE,MAAAC,GAAgD,CAC7E,OAAOC,MAACC,GAAU,MAAAF,EAAc,CAClC"}
1
+ {"version":3,"file":"Bm0DywXr.chunk.js","sources":["../../src/apps/default/views/not-found/ExchangeNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/ExchangeErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}"],"names":["NotFoundView","error","jsx","ErrorView"],"mappings":"6CAWO,SAASA,EAAa,CAAE,MAAAC,GAAgD,CAC7E,OAAOC,MAACC,GAAU,MAAAF,EAAc,CAClC"}
@@ -0,0 +1,2 @@
1
+ import{R as o,q as e,bL as a}from"./app-DQUfzK7M.js";function t(...r){o.useEffect(()=>{!r.length||!r.some(e.isStatusCodeError)||e.throw(new a)},r)}export{t as u};
2
+ //# sourceMappingURL=BpFMqrCw.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"D1kNrE2G.chunk.js","sources":["../../../../libs/shared/src/hooks/UseHandleDialogError.ts"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { UnspecifiedDialogError } from 'libs/shared/errors/general/unspecified-dialog/UnspecifiedDialogError';\n\nexport function useHandleDialogError(...statusCodes: HttpStatus[]): void {\n React.useEffect(() => {\n if (!statusCodes.length)\n return;\n\n const hasErrorCode = statusCodes.some(Core.ErrorHelper.isStatusCodeError);\n\n if (!hasErrorCode)\n return;\n\n Core.ErrorHelper.throw(new UnspecifiedDialogError());\n }, statusCodes);\n}"],"names":["useHandleDialogError","statusCodes","React","Core.ErrorHelper","UnspecifiedDialogError"],"mappings":"qDAOO,SAASA,KAAwBC,EAAiC,CACvEC,EAAM,UAAU,IAAM,CAChB,CAACD,EAAY,QAKb,CAFiBA,EAAY,KAAKE,EAAiB,iBAAiB,GAKxEA,EAAiB,MAAM,IAAIC,CAAwB,CACrD,EAAGH,CAAW,CAChB"}
1
+ {"version":3,"file":"BpFMqrCw.chunk.js","sources":["../../../../libs/shared/src/hooks/UseHandleDialogError.ts"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { UnspecifiedDialogError } from 'libs/shared/errors/general/unspecified-dialog/UnspecifiedDialogError';\n\nexport function useHandleDialogError(...statusCodes: HttpStatus[]): void {\n React.useEffect(() => {\n if (!statusCodes.length)\n return;\n\n const hasErrorCode = statusCodes.some(Core.ErrorHelper.isStatusCodeError);\n\n if (!hasErrorCode)\n return;\n\n Core.ErrorHelper.throw(new UnspecifiedDialogError());\n }, statusCodes);\n}"],"names":["useHandleDialogError","statusCodes","React","Core.ErrorHelper","UnspecifiedDialogError"],"mappings":"qDAOO,SAASA,KAAwBC,EAAiC,CACvEC,EAAM,UAAU,IAAM,CAChB,CAACD,EAAY,QAKb,CAFiBA,EAAY,KAAKE,EAAiB,iBAAiB,GAKxEA,EAAiB,MAAM,IAAIC,CAAwB,CACrD,EAAGH,CAAW,CAChB"}
@@ -1,2 +1,2 @@
1
- import{j as e,ak as B,al as c,am as R,B as U,ac as q,af as H,ae as M,ad as O,aj as G,a3 as g,l as z,an as D,ao as Q,Q as Y,a5 as W,M as $,L as J}from"./app-BeXfSt3Z.js";import{A as K}from"./BknFbNFb.chunk.js";import{P as X,u as Z,F as _}from"./6nLsdj_T.chunk.js";import{V as ee,u as te,a as se}from"./C3DMM71j.chunk.js";import{h as ae}from"./fG3bu7tL.chunk.js";import{L as f}from"./BaII1chU.chunk.js";import{u as re}from"./BOgut51m.chunk.js";import{u as oe,a as ie}from"./wrxKHqa_.chunk.js";import{u as ne}from"./BMOkpx9W.chunk.js";import{P as b,I as de,u as ce}from"./BNdvuAqI.chunk.js";import{E as me}from"./CZ0_WZo1.chunk.js";import{E as le}from"./DNv0G8YQ.chunk.js";import{E as ue}from"./QBPzgKy4.chunk.js";import{a as he,u as xe,g as j}from"./RkGsyr47.chunk.js";import{B as pe,V as ge,P as fe}from"./CDuLjvaV.chunk.js";import"./S8s7mgrG.chunk.js";import"./DPzpHWBx.chunk.js";import"./EP_6ctCd.chunk.js";import"./BHTzCeKb.chunk.js";import"./BVFJa4eN.chunk.js";import"./DGZafYHS.chunk.js";import"./RR_Npo-u.chunk.js";import"./CfG52a2J.chunk.js";import"./BlDVEZsX.chunk.js";import"./C7s6znQN.chunk.js";import"./pkzD5BEm.chunk.js";import"./Cvh5d6g-.chunk.js";import"./CaXurNVJ.chunk.js";import"./BVtgkXbb.chunk.js";import"./BIqgfuNp.chunk.js";import"./CSuv1QVm.chunk.js";import"./DfkRK80r.chunk.js";import"./_sYSSSUN.chunk.js";import"./Kj832An8.chunk.js";import"./CIC6c94H.chunk.js";import"./BoCJPJD9.chunk.js";import"./wE4X9qJj.chunk.js";import"./DVGSZWvj.chunk.js";import"./DMCTlX1N.chunk.js";const je="exchange.exchangeFolderEmptyState";function be(){return e.jsx(B.Provider,{value:je,children:e.jsxs(c,{children:[e.jsx(c.Image,{src:R.EmptyStates.FOLDER}),e.jsx(c.Heading,{children:e.jsx(U,{phrase:"heading"})})]})})}function Fe(t){var r;return!((r=t.videos)!=null&&r.length)&&!t.isFetching?e.jsx(be,{}):e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e.jsx(pe,{breadcrumbs:t.breadcrumbs}),e.jsx(ge,{variant:"outline-dark",type:t.sort,getSortAppLink:t.getSortAppLink,analyticsOptions:{location:O.VideoListHeader,entity:M.Video,actionType:H.Sort,workflowPhase:q.Complete},includeProductionYear:!0})]}),t.videos?e.jsx(ee,{videos:t.videos,getVideoAppLink:he,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:t.commonVideoProps}):e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})}),(t.hasMore||t.isFetching)&&e.jsx(de,{isFetching:t.isFetching,fetchNext:t.fetchNext,nextCursor:t.nextCursor})]})}function Se(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"partial-loading-background h2 mb-3 w-25",children:" "}),e.jsx("div",{className:"mt-1 mb-2",children:e.jsx(X,{})}),e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"mb-3",children:e.jsx(fe,{})}),e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})})]})]})}const ve="exchange.exchangeFolder",Le=J.encloseNamespace(ve);function ct(t){var x,p;const r=G(),F=re(),n=g(W.currentUser()),a=g(f.folder(t.folderId)),{isUserCurator:S,openInCurationStudioLabel:v,getOpenInCurationStudioLink:L}=oe(),m=s=>f.childFolders(a.data.id,s),E=s=>r(m(s)),o=Z(a.data&&m,E);z({title:(x=a.data)==null?void 0:x.name}),ne([a]);const{commonVideoProps:N}=te(),d=!!n.data&&D.getOrSetSortType(n.data.id,t.sort,Q.ProductionYear),{items:i,hasMore:P,isFetching:V,nextCursor:C}=ce(l,u,A);function l(s){return ue.folderVideos(t.folderId,d,s)}function u(s){return r(l(s))}function A(s,T){if(s===1)return ae(T);F.error(Le("error"))}function y(){return S?[{label:v,openInNewTab:!0,href:L($.Category,a.data.id)}]:[]}const k=xe(t.folderId,t.sort),I=ie("video-list"),h=((p=o==null?void 0:o.items)==null?void 0:p.length)>0,w=a.hasCompleted&&n.hasCompleted&&o.hasCompleted;return e.jsxs(se.Provider,{value:I,children:[e.jsxs("div",{className:"mb-3",children:[e.jsx(me,{}),e.jsx(le,{active:"categories"})]}),w?e.jsxs(e.Fragment,{children:[a.data&&e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("h1",{className:"h2 me-1 mb-0",children:a.data.name}),e.jsx(K,{actions:y(),actionsDropdownClassName:"btn btn-sm",dropdownToggleSvgSize:Y.Standard})]}),h&&e.jsx("div",{className:"mx-n2",children:e.jsx(_,{folders:o.items,getAppLink:s=>j(s,d),expandFolders:!(i!=null&&i.length)})}),e.jsx("div",{className:"pb-3",children:e.jsx(Fe,{videos:i,hasSubFolders:h,hasMore:P,isFetching:V,fetchNext:u,nextCursor:C,sort:d,breadcrumbs:k,getSortAppLink:s=>j(a.data,s),commonVideoProps:N})})]}):e.jsx(Se,{})]})}export{ct as ExchangeFolderView};
2
- //# sourceMappingURL=B2psHTnp.chunk.js.map
1
+ import{j as e,ak as B,al as c,am as R,B as U,ac as q,af as H,ae as M,ad as O,aj as G,a3 as g,l as z,an as D,ao as Q,Q as Y,a5 as W,M as $,L as J}from"./app-DQUfzK7M.js";import{A as K}from"./CYnIJ9Yj.chunk.js";import{P as X,u as Z,F as _}from"./DNamqvBL.chunk.js";import{V as ee,u as te,a as se}from"./L4fynSOH.chunk.js";import{h as ae}from"./BIciRJHg.chunk.js";import{L as f}from"./DKgBjNhk.chunk.js";import{u as re}from"./JVtTNBu8.chunk.js";import{u as oe,a as ie}from"./DbjqMrGm.chunk.js";import{u as ne}from"./BldjpTLL.chunk.js";import{P as b,I as de,u as ce}from"./CA1kXo4c.chunk.js";import{E as me}from"./BEonThYO.chunk.js";import{E as le}from"./DFV1HGGE.chunk.js";import{E as ue}from"./D_UfRtxO.chunk.js";import{a as he,u as xe,g as j}from"./LSG3wJaJ.chunk.js";import{B as pe,V as ge,P as fe}from"./BJX7CePa.chunk.js";import"./B77TOWer.chunk.js";import"./Da4lOHud.chunk.js";import"./UPyh9hOq.chunk.js";import"./BapvLPQ5.chunk.js";import"./Du1vfrL1.chunk.js";import"./ebPScdjM.chunk.js";import"./-rc15O6e.chunk.js";import"./CLzmMPfE.chunk.js";import"./BlDVEZsX.chunk.js";import"./BCGCl500.chunk.js";import"./pkzD5BEm.chunk.js";import"./CidOInHw.chunk.js";import"./CLeOFM0_.chunk.js";import"./CWEHmLar.chunk.js";import"./afx3pyqK.chunk.js";import"./Bel5ImAj.chunk.js";import"./BFAbrH3V.chunk.js";import"./_sYSSSUN.chunk.js";import"./Kj832An8.chunk.js";import"./Cf7gumlK.chunk.js";import"./DS9FoZYs.chunk.js";import"./BL0xk5Hs.chunk.js";import"./DAYsHx3K.chunk.js";import"./ByCaE7oT.chunk.js";const je="exchange.exchangeFolderEmptyState";function be(){return e.jsx(B.Provider,{value:je,children:e.jsxs(c,{children:[e.jsx(c.Image,{src:R.EmptyStates.FOLDER}),e.jsx(c.Heading,{children:e.jsx(U,{phrase:"heading"})})]})})}function Fe(t){var r;return!((r=t.videos)!=null&&r.length)&&!t.isFetching?e.jsx(be,{}):e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e.jsx(pe,{breadcrumbs:t.breadcrumbs}),e.jsx(ge,{variant:"outline-dark",type:t.sort,getSortAppLink:t.getSortAppLink,analyticsOptions:{location:O.VideoListHeader,entity:M.Video,actionType:H.Sort,workflowPhase:q.Complete},includeProductionYear:!0})]}),t.videos?e.jsx(ee,{videos:t.videos,getVideoAppLink:he,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:t.commonVideoProps}):e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})}),(t.hasMore||t.isFetching)&&e.jsx(de,{isFetching:t.isFetching,fetchNext:t.fetchNext,nextCursor:t.nextCursor})]})}function Se(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"partial-loading-background h2 mb-3 w-25",children:" "}),e.jsx("div",{className:"mt-1 mb-2",children:e.jsx(X,{})}),e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"mb-3",children:e.jsx(fe,{})}),e.jsx("div",{className:"mx-n2",children:e.jsx(b,{})})]})]})}const ve="exchange.exchangeFolder",Le=J.encloseNamespace(ve);function ct(t){var x,p;const r=G(),F=re(),n=g(W.currentUser()),a=g(f.folder(t.folderId)),{isUserCurator:S,openInCurationStudioLabel:v,getOpenInCurationStudioLink:L}=oe(),m=s=>f.childFolders(a.data.id,s),E=s=>r(m(s)),o=Z(a.data&&m,E);z({title:(x=a.data)==null?void 0:x.name}),ne([a]);const{commonVideoProps:N}=te(),d=!!n.data&&D.getOrSetSortType(n.data.id,t.sort,Q.ProductionYear),{items:i,hasMore:P,isFetching:V,nextCursor:C}=ce(l,u,A);function l(s){return ue.folderVideos(t.folderId,d,s)}function u(s){return r(l(s))}function A(s,T){if(s===1)return ae(T);F.error(Le("error"))}function y(){return S?[{label:v,openInNewTab:!0,href:L($.Category,a.data.id)}]:[]}const k=xe(t.folderId,t.sort),I=ie("video-list"),h=((p=o==null?void 0:o.items)==null?void 0:p.length)>0,w=a.hasCompleted&&n.hasCompleted&&o.hasCompleted;return e.jsxs(se.Provider,{value:I,children:[e.jsxs("div",{className:"mb-3",children:[e.jsx(me,{}),e.jsx(le,{active:"categories"})]}),w?e.jsxs(e.Fragment,{children:[a.data&&e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("h1",{className:"h2 me-1 mb-0",children:a.data.name}),e.jsx(K,{actions:y(),actionsDropdownClassName:"btn btn-sm",dropdownToggleSvgSize:Y.Standard})]}),h&&e.jsx("div",{className:"mx-n2",children:e.jsx(_,{folders:o.items,getAppLink:s=>j(s,d),expandFolders:!(i!=null&&i.length)})}),e.jsx("div",{className:"pb-3",children:e.jsx(Fe,{videos:i,hasSubFolders:h,hasMore:P,isFetching:V,fetchNext:u,nextCursor:C,sort:d,breadcrumbs:k,getSortAppLink:s=>j(a.data,s),commonVideoProps:N})})]}):e.jsx(Se,{})]})}export{ct as ExchangeFolderView};
2
+ //# sourceMappingURL=Bw042tZ_.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"B2psHTnp.chunk.js","sources":["../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading.tsx","../../src/apps/exchange/views/exchange-folder/ExchangeFolderView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'exchange.exchangeFolderEmptyState';\n\nexport function ExchangeFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderEmptyState } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState';\n\ninterface ExchangeFolderVideosProps {\n videos: Video[];\n hasSubFolders: boolean;\n sort: VideoSortType;\n isFetching: boolean;\n hasMore: boolean;\n nextCursor?: string;\n breadcrumbs: Breadcrumb[];\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n fetchNext: (cursor: string) => void;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ExchangeFolderVideos(props: ExchangeFolderVideosProps): JSX.Element {\n if (!props.videos?.length && !props.isFetching)\n return <ExchangeFolderEmptyState />;\n\n return (\n <div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n includeProductionYear\n />\n </div>\n\n {props.videos ? (\n <VideoList\n videos={props.videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function ExchangeFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div\n className='partial-loading-background h2 mb-3 w-25'>\n &nbsp;\n </div>\n\n <div className='mt-1 mb-2'>\n <PartialFolderList />\n </div>\n\n <div className='mb-3'>\n <div className='mb-3'>\n <PartialBreadcrumbs />\n </div>\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getFolderAppLink, useGetFolderBreadcrumbs } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderVideos } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos';\nimport { ExchangeFolderPartialLoading } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading';\n\nconst namespace = 'exchange.exchangeFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeFolderViewProps {\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function ExchangeFolderView(props: ExchangeFolderViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n \n const getFolderRequest = (cursor: string) => LibraryRequests.childFolders(folder.data.id, cursor);\n const fetchNextFolder = (cursor: string) => fetch(getFolderRequest(cursor));\n const subfolders = useFetchAll(folder.data && getFolderRequest, fetchNextFolder);\n\n useSetPageMetadata({ title: folder.data?.name });\n useHandleObjectError([folder]);\n\n const { commonVideoProps } = useCommonVideoProps();\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data\n && VideoSortHelper.getOrSetSortType(currentUser.data.id, props.sort, VideoSortType.ProductionYear);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.folderVideos(props.folderId, sort, cursor);\n }\n\n function fetchNextVideos(cursor?: string): void {\n return fetch(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n function getActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [\n {\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Category, folder.data.id)\n }\n ];\n }\n\n const breadcrumbs = useGetFolderBreadcrumbs(props.folderId, props.sort);\n\n const videoActions = useGetExchangeActions('video-list');\n\n const hasSubfolders = subfolders?.items?.length > 0;\n\n const dataLoaded = (\n folder.hasCompleted &&\n currentUser.hasCompleted &&\n subfolders.hasCompleted\n );\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n\n {dataLoaded ? (\n <>\n {folder.data && (\n <div className='d-flex mb-3'>\n <h1 className='h2 me-1 mb-0'>{folder.data.name}</h1>\n <Actions\n actions={getActions()}\n actionsDropdownClassName='btn btn-sm'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n </div>\n )}\n\n {hasSubfolders && (\n <div className='mx-n2'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f, sort)}\n expandFolders={!videos?.length}\n />\n </div>\n )}\n\n <div className='pb-3'>\n <ExchangeFolderVideos\n videos={videos}\n hasSubFolders={hasSubfolders}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n sort={sort}\n breadcrumbs={breadcrumbs}\n getSortAppLink={sort => getFolderAppLink(folder.data, sort)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n </>\n ) : <ExchangeFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}"],"names":["namespace","ExchangeFolderEmptyState","LanguageNamespaceContext","EmptyState","jsx","ImageUrls","Text","ExchangeFolderVideos","props","_a","jsxs","Breadcrumbs","VideoSortSelect","LocationContext","EntityType","UserAction","WorkflowPhase","VideoList","getVideoAppLink","PartialVideoList","InfiniteScrollFooter","ExchangeFolderPartialLoading","Fragment","PartialFolderList","PartialBreadcrumbs","getPhrase","LanguageService","ExchangeFolderView","fetch","Flight.useGetFetch","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","folder","LibraryRequests","isUserCurator","openInCurationStudioLabel","getOpenInCurationStudioLink","useCurationStudio","getFolderRequest","cursor","fetchNextFolder","subfolders","useFetchAll","useSetPageMetadata","useHandleObjectError","commonVideoProps","useCommonVideoProps","sort","VideoSortHelper","VideoSortType","videos","hasMore","isFetching","nextCursor","useInfiniteList","getVideosRequest","fetchNextVideos","onError","ExchangeRequests","pageNumber","httpStatus","handleHttpError","getActions","MasterType","breadcrumbs","useGetFolderBreadcrumbs","videoActions","useGetExchangeActions","hasSubfolders","_b","dataLoaded","VideoActionsContext","ExchangeSearchBar","ExchangeTabs","Actions","SvgContainerSize","FolderList","f","getFolderAppLink"],"mappings":"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"}
1
+ {"version":3,"file":"Bw042tZ_.chunk.js","sources":["../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading.tsx","../../src/apps/exchange/views/exchange-folder/ExchangeFolderView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'exchange.exchangeFolderEmptyState';\n\nexport function ExchangeFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderEmptyState } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState';\n\ninterface ExchangeFolderVideosProps {\n videos: Video[];\n hasSubFolders: boolean;\n sort: VideoSortType;\n isFetching: boolean;\n hasMore: boolean;\n nextCursor?: string;\n breadcrumbs: Breadcrumb[];\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n fetchNext: (cursor: string) => void;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ExchangeFolderVideos(props: ExchangeFolderVideosProps): JSX.Element {\n if (!props.videos?.length && !props.isFetching)\n return <ExchangeFolderEmptyState />;\n\n return (\n <div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n includeProductionYear\n />\n </div>\n\n {props.videos ? (\n <VideoList\n videos={props.videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function ExchangeFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div\n className='partial-loading-background h2 mb-3 w-25'>\n &nbsp;\n </div>\n\n <div className='mt-1 mb-2'>\n <PartialFolderList />\n </div>\n\n <div className='mb-3'>\n <div className='mb-3'>\n <PartialBreadcrumbs />\n </div>\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getFolderAppLink, useGetFolderBreadcrumbs } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderVideos } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos';\nimport { ExchangeFolderPartialLoading } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading';\n\nconst namespace = 'exchange.exchangeFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeFolderViewProps {\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function ExchangeFolderView(props: ExchangeFolderViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n \n const getFolderRequest = (cursor: string) => LibraryRequests.childFolders(folder.data.id, cursor);\n const fetchNextFolder = (cursor: string) => fetch(getFolderRequest(cursor));\n const subfolders = useFetchAll(folder.data && getFolderRequest, fetchNextFolder);\n\n useSetPageMetadata({ title: folder.data?.name });\n useHandleObjectError([folder]);\n\n const { commonVideoProps } = useCommonVideoProps();\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data\n && VideoSortHelper.getOrSetSortType(currentUser.data.id, props.sort, VideoSortType.ProductionYear);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.folderVideos(props.folderId, sort, cursor);\n }\n\n function fetchNextVideos(cursor?: string): void {\n return fetch(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n function getActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [\n {\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Category, folder.data.id)\n }\n ];\n }\n\n const breadcrumbs = useGetFolderBreadcrumbs(props.folderId, props.sort);\n\n const videoActions = useGetExchangeActions('video-list');\n\n const hasSubfolders = subfolders?.items?.length > 0;\n\n const dataLoaded = (\n folder.hasCompleted &&\n currentUser.hasCompleted &&\n subfolders.hasCompleted\n );\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n\n {dataLoaded ? (\n <>\n {folder.data && (\n <div className='d-flex mb-3'>\n <h1 className='h2 me-1 mb-0'>{folder.data.name}</h1>\n <Actions\n actions={getActions()}\n actionsDropdownClassName='btn btn-sm'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n </div>\n )}\n\n {hasSubfolders && (\n <div className='mx-n2'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f, sort)}\n expandFolders={!videos?.length}\n />\n </div>\n )}\n\n <div className='pb-3'>\n <ExchangeFolderVideos\n videos={videos}\n hasSubFolders={hasSubfolders}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n sort={sort}\n breadcrumbs={breadcrumbs}\n getSortAppLink={sort => getFolderAppLink(folder.data, sort)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n </>\n ) : <ExchangeFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}"],"names":["namespace","ExchangeFolderEmptyState","LanguageNamespaceContext","EmptyState","jsx","ImageUrls","Text","ExchangeFolderVideos","props","_a","jsxs","Breadcrumbs","VideoSortSelect","LocationContext","EntityType","UserAction","WorkflowPhase","VideoList","getVideoAppLink","PartialVideoList","InfiniteScrollFooter","ExchangeFolderPartialLoading","Fragment","PartialFolderList","PartialBreadcrumbs","getPhrase","LanguageService","ExchangeFolderView","fetch","Flight.useGetFetch","alerts","useAlerts","currentUser","Flight.useBasicFetch","UserRequests","folder","LibraryRequests","isUserCurator","openInCurationStudioLabel","getOpenInCurationStudioLink","useCurationStudio","getFolderRequest","cursor","fetchNextFolder","subfolders","useFetchAll","useSetPageMetadata","useHandleObjectError","commonVideoProps","useCommonVideoProps","sort","VideoSortHelper","VideoSortType","videos","hasMore","isFetching","nextCursor","useInfiniteList","getVideosRequest","fetchNextVideos","onError","ExchangeRequests","pageNumber","httpStatus","handleHttpError","getActions","MasterType","breadcrumbs","useGetFolderBreadcrumbs","videoActions","useGetExchangeActions","hasSubfolders","_b","dataLoaded","VideoActionsContext","ExchangeSearchBar","ExchangeTabs","Actions","SvgContainerSize","FolderList","f","getFolderAppLink"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as r}from"./app-BeXfSt3Z.js";function m(t){return r.jsx("svg",{...t,children:r.jsx("path",{d:"m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466",fill:"currentColor"})})}const o={numItems:5,minWidth:50,maxWidth:100},e={getPartialLoadingItems(t={}){const a={...o,...t},n=()=>Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth);return[...Array(a.numItems)].map(()=>({width:`${n()}px`}))}};export{m as C,e as P};
2
- //# sourceMappingURL=DMCTlX1N.chunk.js.map
1
+ import{j as r}from"./app-DQUfzK7M.js";function m(t){return r.jsx("svg",{...t,children:r.jsx("path",{d:"m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466",fill:"currentColor"})})}const o={numItems:5,minWidth:50,maxWidth:100},e={getPartialLoadingItems(t={}){const a={...o,...t},n=()=>Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth);return[...Array(a.numItems)].map(()=>({width:`${n()}px`}))}};export{m as C,e as P};
2
+ //# sourceMappingURL=ByCaE7oT.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DMCTlX1N.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/ChevronLeftSvg.tsx","../../../../libs/shared/src/utils/PartialLoadingHelper.ts"],"sourcesContent":["import React from 'react';\n\nexport function ChevronLeftSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466'\n fill='currentColor'\n />\n </svg>\n );\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};"],"names":["ChevronLeftSvg","props","jsx","DEFAULT_PARTIAL_LOADING_OPTIONS","PartialLoadingHelper","options","opts","getRandomFilterWidth"],"mappings":"sCAEO,SAASA,EAAeC,EAAsC,CACnE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,iNACF,KAAK,cAAA,CAAA,EAET,CAEJ,CCXA,MAAMC,EAAyD,CAC7D,SAAU,EACV,SAAU,GACV,SAAU,GACZ,EAYaC,EAAuB,CAClC,uBAAuBC,EAAiC,GAA0B,CAChF,MAAMC,EAAO,CACX,GAAGH,EACH,GAAGE,CAAA,EAGCE,EAAuB,IAAM,KAAK,IAAI,KAAK,MAAM,KAAK,OAAA,EAAWD,EAAK,QAAQ,EAAGA,EAAK,QAAQ,EAEpG,MAAO,CAAC,GAAG,MAAMA,EAAK,QAAQ,CAAC,EAAE,IAAI,KAAO,CAAE,MAAO,GAAGC,EAAA,CAAsB,MAAO,CACvF,CACF"}
1
+ {"version":3,"file":"ByCaE7oT.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/ChevronLeftSvg.tsx","../../../../libs/shared/src/utils/PartialLoadingHelper.ts"],"sourcesContent":["import React from 'react';\n\nexport function ChevronLeftSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466'\n fill='currentColor'\n />\n </svg>\n );\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};"],"names":["ChevronLeftSvg","props","jsx","DEFAULT_PARTIAL_LOADING_OPTIONS","PartialLoadingHelper","options","opts","getRandomFilterWidth"],"mappings":"sCAEO,SAASA,EAAeC,EAAsC,CACnE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,iNACF,KAAK,cAAA,CAAA,EAET,CAEJ,CCXA,MAAMC,EAAyD,CAC7D,SAAU,EACV,SAAU,GACV,SAAU,GACZ,EAYaC,EAAuB,CAClC,uBAAuBC,EAAiC,GAA0B,CAChF,MAAMC,EAAO,CACX,GAAGH,EACH,GAAGE,CAAA,EAGCE,EAAuB,IAAM,KAAK,IAAI,KAAK,MAAM,KAAK,OAAA,EAAWD,EAAK,QAAQ,EAAGA,EAAK,QAAQ,EAEpG,MAAO,CAAC,GAAG,MAAMA,EAAK,QAAQ,CAAC,EAAE,IAAI,KAAO,CAAE,MAAO,GAAGC,EAAA,CAAsB,MAAO,CACvF,CACF"}
@@ -1,2 +1,2 @@
1
- import{j as l}from"./app-BeXfSt3Z.js";const s="_channelBadge_1riea_1",n="_small_1riea_4",e={channelBadge:s,small:n};function m(a){return l.jsx("div",{className:`${e.channelBadge} ${a.small?e.small:""} ${a.className||""}`,children:l.jsx("img",{className:"h-100 align-baseline",src:a.logoUrl})})}export{m as T};
2
- //# sourceMappingURL=BTGAV-7R.chunk.js.map
1
+ import{j as l}from"./app-DQUfzK7M.js";const s="_channelBadge_1riea_1",n="_small_1riea_4",e={channelBadge:s,small:n};function m(a){return l.jsx("div",{className:`${e.channelBadge} ${a.small?e.small:""} ${a.className||""}`,children:l.jsx("img",{className:"h-100 align-baseline",src:a.logoUrl})})}export{m as T};
2
+ //# sourceMappingURL=BzJeV-bU.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BTGAV-7R.chunk.js","sources":["../../src/apps/tv/components/tv-channel-badge/TvChannelBadge.tsx"],"sourcesContent":["import React from 'react';\n\nimport styles from './tv-channel-badge.module.scss';\n\ninterface TvChannelBadgeProps {\n logoUrl: string;\n small?: boolean;\n className?: string;\n}\n\nexport function TvChannelBadge(props: TvChannelBadgeProps) {\n return (\n <div className={`${styles.channelBadge} ${props.small ? styles.small : ''} ${props.className || ''}`}>\n <img className='h-100 align-baseline' src={props.logoUrl} />\n </div>\n );\n}"],"names":["TvChannelBadge","props","jsx","styles"],"mappings":"oHAUO,SAASA,EAAeC,EAA4B,CACzD,OACEC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGC,EAAO,YAAY,IAAIF,EAAM,MAAQE,EAAO,MAAQ,EAAE,IAAIF,EAAM,WAAa,EAAE,GAChG,SAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,uBAAuB,IAAKD,EAAM,OAAA,CAAS,CAAA,CAC5D,CAEJ"}
1
+ {"version":3,"file":"BzJeV-bU.chunk.js","sources":["../../src/apps/tv/components/tv-channel-badge/TvChannelBadge.tsx"],"sourcesContent":["import React from 'react';\n\nimport styles from './tv-channel-badge.module.scss';\n\ninterface TvChannelBadgeProps {\n logoUrl: string;\n small?: boolean;\n className?: string;\n}\n\nexport function TvChannelBadge(props: TvChannelBadgeProps) {\n return (\n <div className={`${styles.channelBadge} ${props.small ? styles.small : ''} ${props.className || ''}`}>\n <img className='h-100 align-baseline' src={props.logoUrl} />\n </div>\n );\n}"],"names":["TvChannelBadge","props","jsx","styles"],"mappings":"oHAUO,SAASA,EAAeC,EAA4B,CACzD,OACEC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGC,EAAO,YAAY,IAAIF,EAAM,MAAQE,EAAO,MAAQ,EAAE,IAAIF,EAAM,WAAa,EAAE,GAChG,SAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,uBAAuB,IAAKD,EAAM,OAAA,CAAS,CAAA,CAC5D,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{M as s}from"./app-BeXfSt3Z.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=Ca7s6d3a.chunk.js.map
1
+ import{M as s}from"./app-DQUfzK7M.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=BzOUcl19.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ca7s6d3a.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":"BzOUcl19.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{a3 as r,aT as l,l as m,L as h,j as e,a as x,b as u,B as s,bA as j,aK as v,aD as T}from"./app-BeXfSt3Z.js";import{a as f,T as R}from"./2RtgJciS.chunk.js";import{T as N,a as b}from"./BBGrb01P.chunk.js";import{T as i}from"./BM1pKS1x.chunk.js";import{u as w}from"./CZWyo3vU.chunk.js";import"./D5fWDfWb.chunk.js";import"./wE4X9qJj.chunk.js";import"./CaXurNVJ.chunk.js";import"./BlDVEZsX.chunk.js";import"./C7s6znQN.chunk.js";import"./DGZafYHS.chunk.js";import"./CIC6c94H.chunk.js";import"./BoCJPJD9.chunk.js";import"./BMOkpx9W.chunk.js";import"./fG3bu7tL.chunk.js";const a="tv.tvGuide",S=h.encloseNamespace(a);function H(n){const o=r(T.config()),t=r(i.region(n.region)),c=r(i.dateRange(n.region)),p=r(i.regions()),{setRegion:d}=w(),{showTvGuide:g}=l();return m({title:S("title")}),e.jsxs(e.Fragment,{children:[e.jsx(N,{region:t.data}),e.jsx(f,{dateRange:c.data,region:t.data}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(R,{active:"tv-guide",currentRegion:t.data,showTvGuide:g}),e.jsx(b,{currentRegion:t.data,regions:p.data,appLink:{application:u.TV,action:x.Tv.CHANNELS},onClick:d})]}),e.jsx("div",{className:"row",children:e.jsxs("div",{className:"col-6",children:[e.jsx("h1",{className:"h4",children:e.jsx(s,{namespace:a,phrase:"title"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph1"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph2"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph3"})}),o.data&&e.jsx(j,{href:`${o.data.onlineUrl}/login?returnUrl=/tv/guide`,openInNewTab:!0,svg:v,className:"btn btn-dark",children:e.jsx(s,{namespace:a,phrase:"cta"})})]})})]})}export{H as TvGuideView};
2
- //# sourceMappingURL=C_b02Pfv.chunk.js.map
1
+ import{a3 as r,aT as l,l as m,L as h,j as e,a as x,b as u,B as s,bA as j,aK as v,aD as T}from"./app-DQUfzK7M.js";import{a as f,T as R}from"./CBpplRfy.chunk.js";import{T as N,a as b}from"./Nb05HQ70.chunk.js";import{T as i}from"./CeNnu9Uy.chunk.js";import{u as w}from"./ChQd3LFA.chunk.js";import"./BB_Ud-Dl.chunk.js";import"./BL0xk5Hs.chunk.js";import"./CLeOFM0_.chunk.js";import"./BlDVEZsX.chunk.js";import"./BCGCl500.chunk.js";import"./ebPScdjM.chunk.js";import"./Cf7gumlK.chunk.js";import"./DS9FoZYs.chunk.js";import"./BldjpTLL.chunk.js";import"./BIciRJHg.chunk.js";const a="tv.tvGuide",S=h.encloseNamespace(a);function H(n){const o=r(T.config()),t=r(i.region(n.region)),c=r(i.dateRange(n.region)),p=r(i.regions()),{setRegion:d}=w(),{showTvGuide:g}=l();return m({title:S("title")}),e.jsxs(e.Fragment,{children:[e.jsx(N,{region:t.data}),e.jsx(f,{dateRange:c.data,region:t.data}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(R,{active:"tv-guide",currentRegion:t.data,showTvGuide:g}),e.jsx(b,{currentRegion:t.data,regions:p.data,appLink:{application:u.TV,action:x.Tv.CHANNELS},onClick:d})]}),e.jsx("div",{className:"row",children:e.jsxs("div",{className:"col-6",children:[e.jsx("h1",{className:"h4",children:e.jsx(s,{namespace:a,phrase:"title"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph1"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph2"})}),e.jsx("p",{children:e.jsx(s,{namespace:a,phrase:"paragraph3"})}),o.data&&e.jsx(j,{href:`${o.data.onlineUrl}/login?returnUrl=/tv/guide`,openInNewTab:!0,svg:v,className:"btn btn-dark",children:e.jsx(s,{namespace:a,phrase:"cta"})})]})})]})}export{H as TvGuideView};
2
+ //# sourceMappingURL=C7x-ikz8.chunk.js.map