@clickview/exchange 0.63.0-rc.0 → 0.63.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.
- package/dist/.vite/manifest.json +525 -525
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{XXzDL37Y.chunk.js → -x9MMtVv.chunk.js} +2 -2
- package/dist/scripts/{XXzDL37Y.chunk.js.map → -x9MMtVv.chunk.js.map} +1 -1
- package/dist/scripts/{BRJldyG42.chunk.js → 4oWF2EyV2.chunk.js} +2 -2
- package/dist/scripts/{BRJldyG42.chunk.js.map → 4oWF2EyV2.chunk.js.map} +1 -1
- package/dist/scripts/{Bbv7q795.chunk.js → 5Z0rGCy2.chunk.js} +2 -2
- package/dist/scripts/{Bbv7q795.chunk.js.map → 5Z0rGCy2.chunk.js.map} +1 -1
- package/dist/scripts/{Buz0cl_A2.chunk.js → 8vJGuJF-2.chunk.js} +2 -2
- package/dist/scripts/{Buz0cl_A2.chunk.js.map → 8vJGuJF-2.chunk.js.map} +1 -1
- package/dist/scripts/{DHyCd_bU2.chunk.js → B0jhFNam2.chunk.js} +3 -3
- package/dist/scripts/{DHyCd_bU2.chunk.js.map → B0jhFNam2.chunk.js.map} +1 -1
- package/dist/scripts/{C56J8vQn2.chunk.js → B3tq0EFi2.chunk.js} +2 -2
- package/dist/scripts/{C56J8vQn2.chunk.js.map → B3tq0EFi2.chunk.js.map} +1 -1
- package/dist/scripts/{z3xPIUA8.chunk.js → B6EmIhMh.chunk.js} +2 -2
- package/dist/scripts/{z3xPIUA8.chunk.js.map → B6EmIhMh.chunk.js.map} +1 -1
- package/dist/scripts/{CvGdC4sR2.chunk.js → BEgLlK2Z2.chunk.js} +2 -2
- package/dist/scripts/{CvGdC4sR2.chunk.js.map → BEgLlK2Z2.chunk.js.map} +1 -1
- package/dist/scripts/{DZzghMqE2.chunk.js → BEyI0jsC2.chunk.js} +2 -2
- package/dist/scripts/{DZzghMqE2.chunk.js.map → BEyI0jsC2.chunk.js.map} +1 -1
- package/dist/scripts/{hZmx1ZBr.chunk.js → BHzUOyzG.chunk.js} +2 -2
- package/dist/scripts/{hZmx1ZBr.chunk.js.map → BHzUOyzG.chunk.js.map} +1 -1
- package/dist/scripts/{CBskpS-O.chunk.js → BI2S4EFA.chunk.js} +2 -2
- package/dist/scripts/{CBskpS-O.chunk.js.map → BI2S4EFA.chunk.js.map} +1 -1
- package/dist/scripts/{_yGE4YHL2.chunk.js → BTsePUCN2.chunk.js} +2 -2
- package/dist/scripts/{_yGE4YHL2.chunk.js.map → BTsePUCN2.chunk.js.map} +1 -1
- package/dist/scripts/{CSI2paIO2.chunk.js → BaXT2aKo2.chunk.js} +2 -2
- package/dist/scripts/{CSI2paIO2.chunk.js.map → BaXT2aKo2.chunk.js.map} +1 -1
- package/dist/scripts/{CmvWR08f.chunk.js → BibFbDqs.chunk.js} +2 -2
- package/dist/scripts/{CmvWR08f.chunk.js.map → BibFbDqs.chunk.js.map} +1 -1
- package/dist/scripts/{DUcxhK9t.chunk.js → BjzONPz9.chunk.js} +2 -2
- package/dist/scripts/{DUcxhK9t.chunk.js.map → BjzONPz9.chunk.js.map} +1 -1
- package/dist/scripts/{DRwPcxvr.chunk.js → BnbM9YhY.chunk.js} +2 -2
- package/dist/scripts/{DRwPcxvr.chunk.js.map → BnbM9YhY.chunk.js.map} +1 -1
- package/dist/scripts/{l5SFnLQO.chunk.js → BrEvIvRP.chunk.js} +2 -2
- package/dist/scripts/{l5SFnLQO.chunk.js.map → BrEvIvRP.chunk.js.map} +1 -1
- package/dist/scripts/{CcQK2DGq2.chunk.js → C1guWVFU2.chunk.js} +2 -2
- package/dist/scripts/{CcQK2DGq2.chunk.js.map → C1guWVFU2.chunk.js.map} +1 -1
- package/dist/scripts/{BWVFXuZ42.chunk.js → C3K3VtRR2.chunk.js} +2 -2
- package/dist/scripts/{BWVFXuZ42.chunk.js.map → C3K3VtRR2.chunk.js.map} +1 -1
- package/dist/scripts/{lWeC_K_B.chunk.js → CAJOpkKZ.chunk.js} +2 -2
- package/dist/scripts/{lWeC_K_B.chunk.js.map → CAJOpkKZ.chunk.js.map} +1 -1
- package/dist/scripts/{feXppHqr.chunk.js → CAOBwDbU.chunk.js} +2 -2
- package/dist/scripts/{feXppHqr.chunk.js.map → CAOBwDbU.chunk.js.map} +1 -1
- package/dist/scripts/{BTP30DaC.chunk.js → CAQAUQMB.chunk.js} +2 -2
- package/dist/scripts/{BTP30DaC.chunk.js.map → CAQAUQMB.chunk.js.map} +1 -1
- package/dist/scripts/{4onqOCbS.chunk.js → CAoPaL8M.chunk.js} +2 -2
- package/dist/scripts/{4onqOCbS.chunk.js.map → CAoPaL8M.chunk.js.map} +1 -1
- package/dist/scripts/{YL1EBDd_.chunk.js → CCvXN2-C.chunk.js} +2 -2
- package/dist/scripts/{YL1EBDd_.chunk.js.map → CCvXN2-C.chunk.js.map} +1 -1
- package/dist/scripts/{D7MdAl-52.chunk.js → CDXcKno52.chunk.js} +2 -2
- package/dist/scripts/{D7MdAl-52.chunk.js.map → CDXcKno52.chunk.js.map} +1 -1
- package/dist/scripts/{B1_Y3iw-.chunk.js → CGLWqKaa.chunk.js} +2 -2
- package/dist/scripts/{B1_Y3iw-.chunk.js.map → CGLWqKaa.chunk.js.map} +1 -1
- package/dist/scripts/{BX4WdpiX.chunk.js → CHQN7xOX.chunk.js} +2 -2
- package/dist/scripts/{BX4WdpiX.chunk.js.map → CHQN7xOX.chunk.js.map} +1 -1
- package/dist/scripts/{3OI-aLOc.chunk.js → CSbvS-Cl.chunk.js} +2 -2
- package/dist/scripts/{3OI-aLOc.chunk.js.map → CSbvS-Cl.chunk.js.map} +1 -1
- package/dist/scripts/{CWY-sFVd.chunk.js → CYFRcx63.chunk.js} +2 -2
- package/dist/scripts/{CWY-sFVd.chunk.js.map → CYFRcx63.chunk.js.map} +1 -1
- package/dist/scripts/{DfMfBgzn2.chunk.js → CeeAb-HT2.chunk.js} +2 -2
- package/dist/scripts/{DfMfBgzn2.chunk.js.map → CeeAb-HT2.chunk.js.map} +1 -1
- package/dist/scripts/{DspWTyv22.chunk.js → Cllrumah2.chunk.js} +2 -2
- package/dist/scripts/{DspWTyv22.chunk.js.map → Cllrumah2.chunk.js.map} +1 -1
- package/dist/scripts/{CPzPIQB92.chunk.js → CoK2sqzN2.chunk.js} +2 -2
- package/dist/scripts/{CPzPIQB92.chunk.js.map → CoK2sqzN2.chunk.js.map} +1 -1
- package/dist/scripts/{DUVTdegJ.chunk.js → CsrTrVKj.chunk.js} +2 -2
- package/dist/scripts/{DUVTdegJ.chunk.js.map → CsrTrVKj.chunk.js.map} +1 -1
- package/dist/scripts/{C-mZmrh2.chunk.js → CuE3TVwa.chunk.js} +2 -2
- package/dist/scripts/{C-mZmrh2.chunk.js.map → CuE3TVwa.chunk.js.map} +1 -1
- package/dist/scripts/{D9yYpvIx.chunk.js → D-ivDlyL.chunk.js} +2 -2
- package/dist/scripts/{D9yYpvIx.chunk.js.map → D-ivDlyL.chunk.js.map} +1 -1
- package/dist/scripts/{ZgHZpHus2.chunk.js → D36Shrdb2.chunk.js} +2 -2
- package/dist/scripts/{ZgHZpHus2.chunk.js.map → D36Shrdb2.chunk.js.map} +1 -1
- package/dist/scripts/{DiivzK1E.chunk.js → D3Jgk2dT.chunk.js} +2 -2
- package/dist/scripts/{DiivzK1E.chunk.js.map → D3Jgk2dT.chunk.js.map} +1 -1
- package/dist/scripts/{DDU0lRB02.chunk.js → D6EZoO4S2.chunk.js} +2 -2
- package/dist/scripts/{DDU0lRB02.chunk.js.map → D6EZoO4S2.chunk.js.map} +1 -1
- package/dist/scripts/{Ca1aJXXk.chunk.js → DDO16-at.chunk.js} +2 -2
- package/dist/scripts/{Ca1aJXXk.chunk.js.map → DDO16-at.chunk.js.map} +1 -1
- package/dist/scripts/{DQhm12vh2.chunk.js → DGRBUJ6T2.chunk.js} +2 -2
- package/dist/scripts/{DQhm12vh2.chunk.js.map → DGRBUJ6T2.chunk.js.map} +1 -1
- package/dist/scripts/{PVFChK662.chunk.js → DGy73Ett2.chunk.js} +2 -2
- package/dist/scripts/{PVFChK662.chunk.js.map → DGy73Ett2.chunk.js.map} +1 -1
- package/dist/scripts/{BhygUKHG2.chunk.js → DHV6S1fA2.chunk.js} +2 -2
- package/dist/scripts/{BhygUKHG2.chunk.js.map → DHV6S1fA2.chunk.js.map} +1 -1
- package/dist/scripts/{ClJxBHin2.chunk.js → DM0JzOpR2.chunk.js} +2 -2
- package/dist/scripts/{ClJxBHin2.chunk.js.map → DM0JzOpR2.chunk.js.map} +1 -1
- package/dist/scripts/{Ovy1FgPr2.chunk.js → DOuiFwIH2.chunk.js} +2 -2
- package/dist/scripts/{Ovy1FgPr2.chunk.js.map → DOuiFwIH2.chunk.js.map} +1 -1
- package/dist/scripts/{C5zVzLiv.chunk.js → DRZvc_n5.chunk.js} +2 -2
- package/dist/scripts/{C5zVzLiv.chunk.js.map → DRZvc_n5.chunk.js.map} +1 -1
- package/dist/scripts/{e-cJ9kRJ.chunk.js → DUCTNoXj.chunk.js} +2 -2
- package/dist/scripts/{e-cJ9kRJ.chunk.js.map → DUCTNoXj.chunk.js.map} +1 -1
- package/dist/scripts/{MsShPjH12.chunk.js → Da2KHzN02.chunk.js} +2 -2
- package/dist/scripts/{MsShPjH12.chunk.js.map → Da2KHzN02.chunk.js.map} +1 -1
- package/dist/scripts/{VrblzwSV.chunk.js → DklryBsJ.chunk.js} +2 -2
- package/dist/scripts/{VrblzwSV.chunk.js.map → DklryBsJ.chunk.js.map} +1 -1
- package/dist/scripts/{V1sSszjJ.chunk.js → DsA2RTbF.chunk.js} +2 -2
- package/dist/scripts/{V1sSszjJ.chunk.js.map → DsA2RTbF.chunk.js.map} +1 -1
- package/dist/scripts/{kAq4UzUo.chunk.js → Dsmr6Wly.chunk.js} +2 -2
- package/dist/scripts/{kAq4UzUo.chunk.js.map → Dsmr6Wly.chunk.js.map} +1 -1
- package/dist/scripts/{PVKBLI-T2.chunk.js → DsolW3Wd2.chunk.js} +2 -2
- package/dist/scripts/{PVKBLI-T2.chunk.js.map → DsolW3Wd2.chunk.js.map} +1 -1
- package/dist/scripts/{C4y3yewN.chunk.js → UK8sD-oL.chunk.js} +2 -2
- package/dist/scripts/{C4y3yewN.chunk.js.map → UK8sD-oL.chunk.js.map} +1 -1
- package/dist/scripts/{C79TzhHV.chunk.js → aXgcldgY.chunk.js} +2 -2
- package/dist/scripts/{C79TzhHV.chunk.js.map → aXgcldgY.chunk.js.map} +1 -1
- package/dist/scripts/{app-DddMB3QD.js → app-lnmpv5W4.js} +3 -3
- package/dist/scripts/app-lnmpv5W4.js.map +1 -0
- package/dist/scripts/{CRtOlUhH.chunk.js → c2oA1XgG.chunk.js} +2 -2
- package/dist/scripts/{CRtOlUhH.chunk.js.map → c2oA1XgG.chunk.js.map} +1 -1
- package/dist/scripts/{CKC7r8Ck2.chunk.js → dkfSCDWH2.chunk.js} +2 -2
- package/dist/scripts/{CKC7r8Ck2.chunk.js.map → dkfSCDWH2.chunk.js.map} +1 -1
- package/dist/scripts/{Dwhojt8g2.chunk.js → jErHNuXU2.chunk.js} +2 -2
- package/dist/scripts/{Dwhojt8g2.chunk.js.map → jErHNuXU2.chunk.js.map} +1 -1
- package/dist/scripts/{BXh_8LxI2.chunk.js → mkasrghR2.chunk.js} +2 -2
- package/dist/scripts/{BXh_8LxI2.chunk.js.map → mkasrghR2.chunk.js.map} +1 -1
- package/dist/scripts/{D2D0ku9V2.chunk.js → s776Po8a2.chunk.js} +2 -2
- package/dist/scripts/{D2D0ku9V2.chunk.js.map → s776Po8a2.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/app-DddMB3QD.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,bt as n,fn as r}from"./B1i9atik.chunk.js";import{n as i,t as a}from"./Dn3hwC-o.chunk.js";import{D as o}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,bt as n,fn as r}from"./B1i9atik.chunk.js";import{n as i,t as a}from"./Dn3hwC-o.chunk.js";import{D as o}from"./app-lnmpv5W4.js";var s=r(t()),c=e();function l(){let{exchangeTvProductOption:e,isLoadingSettings:t}=o(null);return s.useEffect(()=>{if(!t){if(e===`tv`){n.trigger({application:i.TV,action:a.Tv.INDEX});return}n.trigger({application:i.EXCHANGE,action:a.Exchange.INDEX})}},[e,t]),(0,c.jsx)(c.Fragment,{})}export{l as RedirectView};
|
|
2
|
+
//# sourceMappingURL=CsrTrVKj.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CsrTrVKj.chunk.js","names":[],"sources":["../../src/apps/default/views/redirect/RedirectView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function RedirectView() {\n const { exchangeTvProductOption, isLoadingSettings } = useSettings(null);\n\n React.useEffect(() => {\n if (isLoadingSettings) return;\n\n if (exchangeTvProductOption === 'tv') {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.INDEX\n });\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n });\n }, [ exchangeTvProductOption, isLoadingSettings ]);\n\n return (\n <></>\n );\n}\n"],"mappings":"uKAUA,SAAgB,GAAe,CAC7B,GAAM,CAAE,0BAAyB,qBAAsB,EAAY,KAAK,CAmBxE,OAjBA,EAAM,cAAgB,CAChB,MAEJ,IAAI,IAA4B,KAAM,CACpC,EAAmB,QAAQ,CACzB,YAAa,EAAY,GACzB,OAAQ,EAAQ,GAAG,MACpB,CAAC,CACF,OAGF,EAAmB,QAAQ,CACzB,YAAa,EAAY,SACzB,OAAQ,EAAQ,SAAS,MAC1B,CAAC,GACD,CAAE,EAAyB,EAAmB,CAAC,EAGhD,EAAA,EAAA,KAAA,EAAA,SAAA,EAAK,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,_t as n,d as r,fn as i,s as a}from"./B1i9atik.chunk.js";import{g as o}from"./NpQVkKE2.chunk.js";import{l as s,u as c}from"./TJBzqR6k.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{i as d,o as f,s as p}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,_t as n,d as r,fn as i,s as a}from"./B1i9atik.chunk.js";import{g as o}from"./NpQVkKE2.chunk.js";import{l as s,u as c}from"./TJBzqR6k.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{i as d,o as f,s as p}from"./CYFRcx63.chunk.js";import{t as m}from"./C1F_DBsV.chunk.js";import{t as h}from"./DgSFdSfV.chunk.js";import{t as g}from"./YhCzLJGK.chunk.js";import{t as _}from"./DRTfS6nN.chunk.js";import{r as v}from"./kh-nUTBX.chunk.js";import{F as y,I as b}from"./app-lnmpv5W4.js";import{t as x}from"./DXN-HToH2.chunk.js";import{t as S}from"./BEyI0jsC2.chunk.js";import{n as C,t as w}from"./B4b3fF2e.chunk.js";import{r as T,t as E}from"./BHzUOyzG.chunk.js";import{n as D}from"./KRUU7yGI.chunk.js";import{n as O,r as k}from"./CnBbU5eq.chunk.js";import{t as A}from"./D-ivDlyL.chunk.js";import{t as j}from"./CAJOpkKZ.chunk.js";import{t as M}from"./M-OKfIH7.chunk.js";import{t as N}from"./Da2KHzN02.chunk.js";import{t as P}from"./CBQgY9MD2.chunk.js";import{t as F}from"./BmEexpMP2.chunk.js";import{t as I}from"./B7sWLg9v2.chunk.js";import{t as L}from"./BuSq2beZ2.chunk.js";import{t as R}from"./DGRBUJ6T2.chunk.js";import{n as z,t as B}from"./CjNkj1Q92.chunk.js";import{t as V}from"./DsolW3Wd2.chunk.js";import{t as H}from"./CSbvS-Cl.chunk.js";var U=i(t()),W=e(),G=`tv.searchResultsEmptyState`;function K(e){return(0,W.jsx)(y.Provider,{value:G,children:(0,W.jsxs)(m,{children:[(0,W.jsx)(m.Image,{src:_.EmptyStates.SEARCH}),(0,W.jsx)(m.Heading,{children:e.query?(0,W.jsx)(b,{phrase:`headingWithQuery`,options:{query:e.query}}):(0,W.jsx)(b,{phrase:`headingWithoutQuery`})}),(0,W.jsx)(m.Info,{children:(0,W.jsx)(b,{phrase:`info`})})]})})}var q={highlight:`_highlight_107l1_1`,badgeOverlay:`_badgeOverlay_107l1_8`};function J(e,t){let n=new RegExp(t,`gi`);return e.replace(n,e=>`<span class=${q.highlight}>${e}</span>`)}function Y(e){let{program:t,query:n,region:r,getVideoActions:i}=e,[a,s]=U.useState(!1),c={application:l.TV,action:u.Tv.PREVIEW,args:[r.code,t.id]},d=F(t.startTime,t.timeZone),f=F(t.stopTime,t.timeZone),p=Math.abs(g.diffBetween(d,f,`milliseconds`));return(0,W.jsxs)(`div`,{className:`row gx-3 mb-3`,children:[(0,W.jsx)(`div`,{className:`col-3 flex-column align-items-flex-start pe-2`,children:(0,W.jsx)(`div`,{className:`rounded rounded-3 overflow-hidden`,children:(0,W.jsxs)(D,{imageType:v.Thumbnails,data:t.thumbnailUrl,appLink:c,children:[(0,W.jsx)(O,{type:k.Video}),(0,W.jsx)(`div`,{className:q.badgeOverlay,children:(0,W.jsx)(w,{type:C.DurationApproximate,data:p})})]})})}),(0,W.jsxs)(`div`,{className:`col-9 pb-2`,children:[(0,W.jsx)(x,{actions:i(t),className:`float-end mt-n1`,actionsDropdownClassName:`btn btn-link ms-1`}),(0,W.jsx)(o,{appLink:c,children:(0,W.jsx)(`h5`,{className:`h4 mb-1 align-middle text-dark text-truncate`,title:t.title??``,children:(0,W.jsx)(`span`,{dangerouslySetInnerHTML:{__html:J(t.title,n)}})})}),(0,W.jsxs)(M,{className:`mb-1`,children:[t.channelLogoUrl&&(0,W.jsx)(P,{logoUrl:t.channelLogoUrl,className:`me-1`,small:!0}),(0,W.jsx)(I,{program:t,className:`me-1`,showDate:!0,showEndTime:!0}),t.hasAdsFree&&(0,W.jsx)(N,{small:!0})]}),(0,W.jsx)(`div`,{className:`mb-1`,children:(0,W.jsx)(`span`,{dangerouslySetInnerHTML:{__html:J(t.description,n)}})}),!!t.subtitleHits?.length&&(0,W.jsxs)(`div`,{children:[t.subtitleHits?.map(((e,t)=>!a&&t>1?(0,W.jsx)(U.Fragment,{},t):(0,W.jsxs)(o,{appLink:{...c,args:[...c.args],params:{currentTime:e.hitStartTime/1e3}},className:`d-block text-dark`,children:[(0,W.jsxs)(`span`,{className:`fw-semibold`,children:[`[`,g.format(g.add(d,e.hitStartTime,`milliseconds`),`h:mm:ss a`),`]`]}),`\xA0`,(0,W.jsx)(`span`,{dangerouslySetInnerHTML:{__html:J(e.srtFragment,n)}})]},t))),!a&&t.subtitleHits?.length>2&&(0,W.jsx)(`div`,{className:`text-info cursor-pointer`,onClick:()=>s(!0),children:`Show more`})]})]})]})}X.defaultProps={queryParams:{}};function X(e){let{queryParams:t}=e,{query:i}=t,o=c(),m=S(),g=s(L.region(e.region)),_=s(L.regions()),v=s(g.data&&L.channels(g.data.code));g.hasCompleted&&!g.data&&A(n.BadRequest);let{setRegion:y}=V();R(g),j([_,v]),h({title:i??``});let{items:b,hasMore:x,isFetching:C,nextCursor:w}=p(g.data&&D,O,k,e=>e.results,e=>e.page*25>e.totalNumber?null:(e.page+1).toString());function D(e){return L.search(g.data.code,t,+e)}function O(e){return o(D(e))}function k(e,t){if(e===1)return A(t);m.error(`Something went wrong`)}let M=H(`video-list`,g.data),N=g.hasCompleted&&_.hasCompleted&&v.hasCompleted,P=[T.TvChannel(v.data),T.TvDateBroadcast(),T.TvFields()];return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(B,{query:i,region:g.data}),(0,W.jsxs)(`div`,{className:`d-flex justify-content-between mb-2`,children:[(0,W.jsx)(E,{queryParams:t,mainFilters:P,analyticsOptions:{entity:a.SearchResults,location:r.SearchFilters},appLink:{application:l.TV,action:u.Tv.SEARCH,args:[g.data?.code]},hideDivider:!0,isFetchingOptions:!N}),(0,W.jsx)(z,{currentRegion:g.data,regions:_.data,appLink:{application:l.TV,action:u.Tv.SEARCH,params:{query:i}},onClick:y})]}),N&&(0,W.jsx)(W.Fragment,{children:b?.length?(0,W.jsxs)(W.Fragment,{children:[b.map((e,t)=>(0,W.jsx)(Y,{program:e,query:i,region:g.data,getVideoActions:M},t)),(x||C)&&(0,W.jsx)(f,{isFetching:C,fetchNext:O,nextCursor:w})]}):(0,W.jsx)(W.Fragment,{children:C?(0,W.jsx)(`div`,{className:`m-n2`,children:(0,W.jsx)(d,{})}):(0,W.jsx)(K,{query:i})})})]})}export{X as TvSearchResultsView};
|
|
2
|
+
//# sourceMappingURL=CuE3TVwa.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"C-mZmrh2.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState.tsx","../../src/apps/tv/views/tv-search-results/components/tv-search-result-item/tv-search-result-item.module.scss","../../src/apps/tv/views/tv-search-results/components/tv-search-result-item/TvSearchResultItem.tsx","../../src/apps/tv/views/tv-search-results/TvSearchResultsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'tv.searchResultsEmptyState';\n\ninterface TvSearchResultsStateProps {\n query?: string;\n}\n\nexport function TvSearchResultsState(props: TvSearchResultsStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.SEARCH} />\n\n <EmptyState.Heading>\n {props.query ?\n <Text phrase='headingWithQuery' options={{ query: props.query }} /> :\n <Text phrase='headingWithoutQuery' />\n }\n </EmptyState.Heading>\n\n <EmptyState.Info>\n <Text phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n",":local {\n .highlight {\n background-color: rgba($yellow, 0.5);\n display: inline-block;\n margin: 0px -0.1875rem;\n padding: 0px 0.1875rem;\n border-radius: $border-radius;\n }\n\n .badgeOverlay {\n position: absolute;\n right: map-get($spacers, 2);\n bottom: map-get($spacers, 2);\n height: 1.5rem;\n z-index: 2;\n\n :global(.duration-badge-new) {\n font-size: 100%;\n font-weight: 500;\n height: 100%;\n }\n }\n}","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ActionOptions, Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageType } from 'libs/shared/enums/Images';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAdFreeBadge } from 'apps/tv/components/tv-ad-free-badge/TvAdFreeBadge';\nimport { TvChannelBadge } from 'apps/tv/components/tv-channel-badge/TvChannelBadge';\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport styles from './tv-search-result-item.module.scss';\n\nfunction highlightText(text: string, query: string): string {\n const regex = new RegExp(query, 'gi');\n return text.replace(regex, match => `<span class=${styles.highlight}>${match}</span>`);\n}\n\ninterface TvSearchResultItemProps {\n query: string;\n program: TvSearchResult;\n region: TvRegion;\n getVideoActions: (video: TvProgram) => ActionOptions[];\n}\n\nexport function TvSearchResultItem(props: TvSearchResultItemProps): JSX.Element {\n const { program, query, region, getVideoActions } = props;\n\n const [ showMore, setShowMore ] = React.useState(false);\n\n const appLink = {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ region.code, program.id ]\n };\n\n const startTime = toLocalTime(program.startTime, program.timeZone);\n const stopTime = toLocalTime(program.stopTime, program.timeZone);\n const diff = Math.abs(DateHelper.diffBetween(startTime, stopTime, 'milliseconds'));\n\n return (\n <div className='row gx-3 mb-3'>\n <div className='col-3 flex-column align-items-flex-start pe-2'>\n <div className='rounded rounded-3 overflow-hidden'>\n <BaseImage\n imageType={ImageType.Thumbnails}\n data={program.thumbnailUrl}\n appLink={appLink}\n >\n <ImageFallback type={ImageFallbackType.Video} />\n\n <div className={styles.badgeOverlay}>\n <Badge\n type={BadgeType.DurationApproximate}\n data={diff}\n />\n </div>\n </BaseImage>\n </div>\n </div>\n <div className='col-9 pb-2'>\n <ActionsComponent\n actions={getVideoActions(program as TvProgram)}\n className='float-end mt-n1'\n actionsDropdownClassName='btn btn-link ms-1'\n />\n <AppLink appLink={appLink}>\n <h5 className='h4 mb-1 align-middle text-dark text-truncate' title={program.title ?? ''}>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.title, query)\n }}></span>\n </h5>\n </AppLink>\n <BadgeListContainer className='mb-1'>\n {program.channelLogoUrl && <TvChannelBadge logoUrl={program.channelLogoUrl} className='me-1' small />}\n <TvProgramTimeBadge program={program as TvProgram} className='me-1' showDate showEndTime />\n {program.hasAdsFree && <TvAdFreeBadge small />}\n </BadgeListContainer>\n <div className='mb-1'>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.description, query)\n }}></span>\n </div>\n {!!program.subtitleHits?.length &&\n <div>\n {program.subtitleHits?.map(((hit, index) => {\n if (!showMore && index > 1)\n return <React.Fragment key={index} />;\n\n return (\n <AppLink\n key={index}\n appLink={{\n ...appLink,\n args: [...appLink.args],\n params: {\n currentTime: hit.hitStartTime / 1000\n }\n }}\n className='d-block text-dark'\n >\n <span className='fw-semibold'>\n [{DateHelper.format(DateHelper.add(startTime, hit.hitStartTime, 'milliseconds'), 'h:mm:ss a')}]\n </span>\n \n <span dangerouslySetInnerHTML={{\n __html: highlightText(hit.srtFragment, query)\n }}></span>\n </AppLink>\n );\n }))}\n {!showMore && program.subtitleHits?.length > 2 && <div className='text-info cursor-pointer' onClick={() => setShowMore(true)}>Show more</div>}\n </div>\n }\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SearchFilters } from 'libs/shared/apps/search/components/search-filters/SearchFilters';\nimport { Filters } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useGetTvActions } from 'apps/tv/hooks/useGetTvActions';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { TvSearchResponse } from 'apps/tv/interfaces/responses/TvSearchResponse';\nimport { TvSearchResultsState } from 'apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState';\n\nimport { TvSearchResultItem } from './components/tv-search-result-item/TvSearchResultItem';\n\ninterface TvSearchResultsViewProps {\n region: string;\n queryParams: HashObject;\n}\n\nTvSearchResultsView.defaultProps = {\n queryParams: {}\n};\n\nexport function TvSearchResultsView(props: TvSearchResultsViewProps): JSX.Element {\n const { queryParams } = props;\n const { query } = queryParams;\n\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n if (region.hasCompleted && !region.data) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n const { setRegion } = useSelectedRegion();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: query ?? '' });\n\n const {\n items: programs,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<TvSearchResult, TvSearchResponse>(\n region.data && getRequest,\n fetchNext,\n onError,\n response => response.results,\n response => {\n if (response.page * 25 > response.totalNumber)\n return null;\n\n return (response.page + 1).toString();\n }\n );\n\n function getRequest(cursor?: string): Flight.Request {\n return TvRequests.search(\n region.data.code,\n queryParams,\n +cursor\n );\n }\n\n function fetchNext(cursor?: string): void {\n return fetch(getRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error('Something went wrong');\n }\n\n const getVideoActions = useGetTvActions('video-list', region.data);\n\n const dataLoaded = region.hasCompleted && regions.hasCompleted && channels.hasCompleted;\n\n const mainFilters = [\n Filters.TvChannel(channels.data),\n Filters.TvDateBroadcast(),\n Filters.TvFields()\n ];\n\n return (\n <>\n <TvSearchBar query={query} region={region.data} />\n\n <div className='d-flex justify-content-between mb-2'>\n <SearchFilters\n queryParams={queryParams}\n mainFilters={mainFilters}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.SearchFilters\n }}\n appLink={{ application: AppChannels.TV, action: Actions.Tv.SEARCH, args: [region.data?.code]}}\n hideDivider\n isFetchingOptions={!dataLoaded}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.SEARCH,\n params: { query: query }\n }}\n onClick={setRegion}\n />\n </div>\n\n {dataLoaded && (\n <>\n {programs?.length ? (\n <>\n {programs.map((program, index) => {\n return (\n <TvSearchResultItem\n key={index}\n program={program}\n query={query}\n region={region.data}\n getVideoActions={getVideoActions}\n />\n );\n })}\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n ) : (\n <>\n {isFetching ? (\n <div className='m-n2'>\n <PartialVideoList />\n </div>\n ) : <TvSearchResultsState query={query} />}\n </>\n )}\n </>\n )}\n </>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CuE3TVwa.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState.tsx","../../src/apps/tv/views/tv-search-results/components/tv-search-result-item/tv-search-result-item.module.scss","../../src/apps/tv/views/tv-search-results/components/tv-search-result-item/TvSearchResultItem.tsx","../../src/apps/tv/views/tv-search-results/TvSearchResultsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'tv.searchResultsEmptyState';\n\ninterface TvSearchResultsStateProps {\n query?: string;\n}\n\nexport function TvSearchResultsState(props: TvSearchResultsStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.SEARCH} />\n\n <EmptyState.Heading>\n {props.query ?\n <Text phrase='headingWithQuery' options={{ query: props.query }} /> :\n <Text phrase='headingWithoutQuery' />\n }\n </EmptyState.Heading>\n\n <EmptyState.Info>\n <Text phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n",":local {\n .highlight {\n background-color: rgba($yellow, 0.5);\n display: inline-block;\n margin: 0px -0.1875rem;\n padding: 0px 0.1875rem;\n border-radius: $border-radius;\n }\n\n .badgeOverlay {\n position: absolute;\n right: map-get($spacers, 2);\n bottom: map-get($spacers, 2);\n height: 1.5rem;\n z-index: 2;\n\n :global(.duration-badge-new) {\n font-size: 100%;\n font-weight: 500;\n height: 100%;\n }\n }\n}","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ActionOptions, Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageType } from 'libs/shared/enums/Images';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAdFreeBadge } from 'apps/tv/components/tv-ad-free-badge/TvAdFreeBadge';\nimport { TvChannelBadge } from 'apps/tv/components/tv-channel-badge/TvChannelBadge';\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport styles from './tv-search-result-item.module.scss';\n\nfunction highlightText(text: string, query: string): string {\n const regex = new RegExp(query, 'gi');\n return text.replace(regex, match => `<span class=${styles.highlight}>${match}</span>`);\n}\n\ninterface TvSearchResultItemProps {\n query: string;\n program: TvSearchResult;\n region: TvRegion;\n getVideoActions: (video: TvProgram) => ActionOptions[];\n}\n\nexport function TvSearchResultItem(props: TvSearchResultItemProps): JSX.Element {\n const { program, query, region, getVideoActions } = props;\n\n const [ showMore, setShowMore ] = React.useState(false);\n\n const appLink = {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ region.code, program.id ]\n };\n\n const startTime = toLocalTime(program.startTime, program.timeZone);\n const stopTime = toLocalTime(program.stopTime, program.timeZone);\n const diff = Math.abs(DateHelper.diffBetween(startTime, stopTime, 'milliseconds'));\n\n return (\n <div className='row gx-3 mb-3'>\n <div className='col-3 flex-column align-items-flex-start pe-2'>\n <div className='rounded rounded-3 overflow-hidden'>\n <BaseImage\n imageType={ImageType.Thumbnails}\n data={program.thumbnailUrl}\n appLink={appLink}\n >\n <ImageFallback type={ImageFallbackType.Video} />\n\n <div className={styles.badgeOverlay}>\n <Badge\n type={BadgeType.DurationApproximate}\n data={diff}\n />\n </div>\n </BaseImage>\n </div>\n </div>\n <div className='col-9 pb-2'>\n <ActionsComponent\n actions={getVideoActions(program as TvProgram)}\n className='float-end mt-n1'\n actionsDropdownClassName='btn btn-link ms-1'\n />\n <AppLink appLink={appLink}>\n <h5 className='h4 mb-1 align-middle text-dark text-truncate' title={program.title ?? ''}>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.title, query)\n }}></span>\n </h5>\n </AppLink>\n <BadgeListContainer className='mb-1'>\n {program.channelLogoUrl && <TvChannelBadge logoUrl={program.channelLogoUrl} className='me-1' small />}\n <TvProgramTimeBadge program={program as TvProgram} className='me-1' showDate showEndTime />\n {program.hasAdsFree && <TvAdFreeBadge small />}\n </BadgeListContainer>\n <div className='mb-1'>\n <span dangerouslySetInnerHTML={{\n __html: highlightText(program.description, query)\n }}></span>\n </div>\n {!!program.subtitleHits?.length &&\n <div>\n {program.subtitleHits?.map(((hit, index) => {\n if (!showMore && index > 1)\n return <React.Fragment key={index} />;\n\n return (\n <AppLink\n key={index}\n appLink={{\n ...appLink,\n args: [...appLink.args],\n params: {\n currentTime: hit.hitStartTime / 1000\n }\n }}\n className='d-block text-dark'\n >\n <span className='fw-semibold'>\n [{DateHelper.format(DateHelper.add(startTime, hit.hitStartTime, 'milliseconds'), 'h:mm:ss a')}]\n </span>\n \n <span dangerouslySetInnerHTML={{\n __html: highlightText(hit.srtFragment, query)\n }}></span>\n </AppLink>\n );\n }))}\n {!showMore && program.subtitleHits?.length > 2 && <div className='text-info cursor-pointer' onClick={() => setShowMore(true)}>Show more</div>}\n </div>\n }\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SearchFilters } from 'libs/shared/apps/search/components/search-filters/SearchFilters';\nimport { Filters } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useGetTvActions } from 'apps/tv/hooks/useGetTvActions';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { TvSearchResult } from 'apps/tv/interfaces/models/TvSearchResult';\nimport { TvSearchResponse } from 'apps/tv/interfaces/responses/TvSearchResponse';\nimport { TvSearchResultsState } from 'apps/tv/views/tv-search-results/empty-state/TvSearchEmptyState';\n\nimport { TvSearchResultItem } from './components/tv-search-result-item/TvSearchResultItem';\n\ninterface TvSearchResultsViewProps {\n region: string;\n queryParams: HashObject;\n}\n\nTvSearchResultsView.defaultProps = {\n queryParams: {}\n};\n\nexport function TvSearchResultsView(props: TvSearchResultsViewProps): JSX.Element {\n const { queryParams } = props;\n const { query } = queryParams;\n\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n if (region.hasCompleted && !region.data) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n const { setRegion } = useSelectedRegion();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: query ?? '' });\n\n const {\n items: programs,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<TvSearchResult, TvSearchResponse>(\n region.data && getRequest,\n fetchNext,\n onError,\n response => response.results,\n response => {\n if (response.page * 25 > response.totalNumber)\n return null;\n\n return (response.page + 1).toString();\n }\n );\n\n function getRequest(cursor?: string): Flight.Request {\n return TvRequests.search(\n region.data.code,\n queryParams,\n +cursor\n );\n }\n\n function fetchNext(cursor?: string): void {\n return fetch(getRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error('Something went wrong');\n }\n\n const getVideoActions = useGetTvActions('video-list', region.data);\n\n const dataLoaded = region.hasCompleted && regions.hasCompleted && channels.hasCompleted;\n\n const mainFilters = [\n Filters.TvChannel(channels.data),\n Filters.TvDateBroadcast(),\n Filters.TvFields()\n ];\n\n return (\n <>\n <TvSearchBar query={query} region={region.data} />\n\n <div className='d-flex justify-content-between mb-2'>\n <SearchFilters\n queryParams={queryParams}\n mainFilters={mainFilters}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.SearchFilters\n }}\n appLink={{ application: AppChannels.TV, action: Actions.Tv.SEARCH, args: [region.data?.code]}}\n hideDivider\n isFetchingOptions={!dataLoaded}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.SEARCH,\n params: { query: query }\n }}\n onClick={setRegion}\n />\n </div>\n\n {dataLoaded && (\n <>\n {programs?.length ? (\n <>\n {programs.map((program, index) => {\n return (\n <TvSearchResultItem\n key={index}\n program={program}\n query={query}\n region={region.data}\n getVideoActions={getVideoActions}\n />\n );\n })}\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n ) : (\n <>\n {isFetching ? (\n <div className='m-n2'>\n <PartialVideoList />\n </div>\n ) : <TvSearchResultsState query={query} />}\n </>\n )}\n </>\n )}\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_t as e,ht as t}from"./B1i9atik.chunk.js";import{t as n}from"./CzvVp9iC.chunk.js";import{it as r,ot as i,st as a}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{_t as e,ht as t}from"./B1i9atik.chunk.js";import{t as n}from"./CzvVp9iC.chunk.js";import{it as r,ot as i,st as a}from"./app-lnmpv5W4.js";var o=`shared.privateResourceError`,s=class extends a{constructor(){super(n.getPhrase(o,`title`))}get name(){return`PrivateResourceError`}get heading(){return n.getPhrase(o,`heading`)}get description(){return n.getPhrase(o,`description`)}},c=`shared.regionLockedResourceError`,l={notFound:r,forbidden:{rating:s,yearLevel:s,region:class extends a{constructor(){super(n.getPhrase(c,`title`))}get name(){return`RegionLockedResourceError`}get heading(){return n.getPhrase(c,`heading`)}get description(){return n.getPhrase(c,`description`)}},privacy:s},badRequest:i,internalServerError:i};function u(n,r={},a={}){if(!n)return;let o;o=typeof n==`number`?n:n.status;let s={...l,...r};if(o&&t.isStatusCodeError(o)){if(o===e.InternalServer){a.internalServerError||t.throw(new i);return}if(o===e.NotFound){a.notFound||t.throw(new s.notFound);return}if(o===e.Forbidden){a.forbidden||t.throw(new s.forbidden.privacy);return}a.badRequest||t.throw(new s.badRequest)}}export{u as t};
|
|
2
|
+
//# sourceMappingURL=D-ivDlyL.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"D-ivDlyL.chunk.js","names":[],"sources":["../../../../libs/shared/src/errors/general/private-resource/PrivateResourceError.ts","../../../../libs/shared/src/errors/general/region-locked-resource/RegionLockedResourceError.ts","../../../../libs/shared/src/errors/handlers/HttpErrorHandlers.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.privateResourceError';\n\nexport class PrivateResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'PrivateResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.regionLockedResourceError';\n\nexport class RegionLockedResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'RegionLockedResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}\n","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError,\n yearLevel?: new (description: string) => BaseError,\n region?: new () => BaseError,\n privacy?: new (video?: VideoTypes) => BaseError\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}\n"],"mappings":"gJAIA,IAAM,EAAY,8BAEL,EAAb,cAA0C,CAAe,CACvD,aAAc,CACZ,MAAM,EAAgB,UAAU,EAAW,QAAQ,CAAC,CAItD,IAAW,MAAe,CACxB,MAAO,uBAIT,IAAW,SAAkB,CAC3B,OAAO,EAAgB,UAAU,EAAW,UAAU,CAIxD,IAAW,aAAsB,CAC/B,OAAO,EAAgB,UAAU,EAAW,cAAc,GCnBxD,EAAY,mCCuBZ,EAA8B,CAClC,SAAU,EACV,UAAW,CACT,OAAQ,EACR,UAAW,EACX,OD1BJ,cAA+C,CAAe,CAC5D,aAAc,CACZ,MAAM,EAAgB,UAAU,EAAW,QAAQ,CAAC,CAItD,IAAW,MAAe,CACxB,MAAO,4BAIT,IAAW,SAAkB,CAC3B,OAAO,EAAgB,UAAU,EAAW,UAAU,CAIxD,IAAW,aAAsB,CAC/B,OAAO,EAAgB,UAAU,EAAW,cAAc,GCU1D,QAAS,EACV,CACD,WAAY,EACZ,oBAAqB,EACtB,CAED,SAAgB,EACd,EACA,EAA+B,EAAE,CAKjC,EAAgC,EAAE,CAC5B,CACN,GAAI,CAAC,EACH,OAEF,IAAI,EAEJ,AAGE,EAHE,OAAO,GAAU,SACN,EAEA,EAAK,OAGpB,IAAM,EAAW,CACf,GAAG,EACH,GAAG,EACJ,CAEI,MAGD,EAAkB,kBAAkB,EAAW,CAGnD,IAAI,IAAe,EAAW,eAAgB,CACvC,EAAU,qBACb,EAAiB,MAAM,IAAI,EAAmB,CAChD,OAGF,GAAI,IAAe,EAAW,SAAU,CACjC,EAAU,UACb,EAAiB,MAAM,IAAI,EAAS,SAAW,CACjD,OAGF,GAAI,IAAe,EAAW,UAAW,CAKlC,EAAU,WACb,EAAiB,MAAM,IAAI,EAAS,UAAU,QAAU,CAC1D,OAGG,EAAU,YACb,EAAiB,MAAM,IAAI,EAAS,WAAa"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t}from"./B1i9atik.chunk.js";import{g as n}from"./NpQVkKE2.chunk.js";import{l as r}from"./TJBzqR6k.chunk.js";import{t as i}from"./CzvVp9iC.chunk.js";import{n as a,t as o}from"./Dn3hwC-o.chunk.js";import{I as s,M as c,U as l}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t}from"./B1i9atik.chunk.js";import{g as n}from"./NpQVkKE2.chunk.js";import{l as r}from"./TJBzqR6k.chunk.js";import{t as i}from"./CzvVp9iC.chunk.js";import{n as a,t as o}from"./Dn3hwC-o.chunk.js";import{I as s,M as c,U as l}from"./app-lnmpv5W4.js";import{t as u}from"./BmEexpMP2.chunk.js";import{n as d,t as f}from"./BuSq2beZ2.chunk.js";t();var p={infoAlert:`_infoAlert_r916y_1`},m=e(),h=`tv.broadcastContent`,g=i.encloseNamespace(h);function _(e){let t=r(f.region(e.region)),i=r(f.dateRange(e.region));return(0,m.jsxs)(l,{title:g(`title`),closePopup:e.closePopup,children:[(0,m.jsx)(`div`,{className:`${p.infoAlert} rounded w-100 p-2 mb-4`,children:(0,m.jsxs)(`p`,{className:`d-inline fw-semibold mb-0 me-2`,children:[(0,m.jsx)(s,{namespace:h,phrase:`programsAvailable`}),i.data&&d.getFormattedDateRange(u(i.data.startDate,t.data.timeZone),u(i.data.endDate,t.data.timeZone))]})}),(0,m.jsx)(`h2`,{className:`h5`,children:(0,m.jsx)(s,{namespace:h,phrase:`subTitle`})}),(0,m.jsx)(`p`,{className:`mb-2`,children:(0,m.jsx)(s,{namespace:h,phrase:`description`})}),(0,m.jsxs)(`div`,{className:`mb-2`,children:[(0,m.jsx)(`p`,{className:`d-inline`,children:(0,m.jsx)(s,{namespace:h,phrase:`missedProgram`})}),(0,m.jsx)(n,{appLink:{application:a.EXCHANGE,action:o.Exchange.INDEX},className:`text-info`,onClick:e.closePopup,children:(0,m.jsx)(`span`,{children:(0,m.jsx)(s,{namespace:h,phrase:`exchangeArchive`})})}),`.`]}),(0,m.jsx)(`p`,{className:`mb-3`,children:(0,m.jsx)(s,{namespace:h,phrase:`emailContent`})}),(0,m.jsx)(c,{children:(0,m.jsx)(c.Cancel,{text:g(`close`),onClick:e.closePopup,variant:`link`})})]})}export{_ as TvBroadcastContentView};
|
|
2
|
+
//# sourceMappingURL=D36Shrdb2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"D36Shrdb2.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-broadcast-content/tv-broadcast-content.module.scss","../../src/apps/tv/views/tv-broadcast-content/TvBroadcastContentView.tsx"],"sourcesContent":[":local {\n .infoAlert {\n background-color: $gray-100;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\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 { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-broadcast-content.module.scss';\n\nconst namespace = 'tv.broadcastContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvBroadcastContentViewProps extends PopupViewProps {\n region: string;\n}\n\nexport function TvBroadcastContentView(props: TvBroadcastContentViewProps) {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n \n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n >\n <div className={`${styles.infoAlert} rounded w-100 p-2 mb-4`}>\n <p className='d-inline fw-semibold mb-0 me-2'>\n <Text namespace={namespace} phrase='programsAvailable' />\n {dateRange.data &&\n TvUtils.getFormattedDateRange(\n toLocalTime(dateRange.data.startDate, region.data.timeZone),\n toLocalTime(dateRange.data.endDate, region.data.timeZone)\n )\n }\n </p>\n </div>\n\n <h2 className='h5'><Text namespace={namespace} phrase='subTitle' /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase='description' /></p>\n\n <div className='mb-2'>\n <p className='d-inline'><Text namespace={namespace} phrase='missedProgram' /></p>\n <AppLink\n appLink={{ application: AppChannels.EXCHANGE, action: Actions.Exchange.INDEX }}\n className='text-info'\n onClick={props.closePopup}\n >\n <span><Text namespace={namespace} phrase='exchangeArchive' /></span>\n </AppLink>.\n </div>\n <p className='mb-3'><Text namespace={namespace} phrase='emailContent' /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={props.closePopup}\n variant='link'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"mappings":"oZCqBM,EAAY,sBACZ,EAAY,EAAgB,iBAAiB,EAAU,CAM7D,SAAgB,EAAuB,EAAoC,CACzE,IAAM,EAAS,EAA+B,EAAW,OAAO,EAAM,OAAO,CAAC,CACxE,EAAY,EAAkC,EAAW,UAAU,EAAM,OAAO,CAAC,CAEvF,OACE,EAAA,EAAA,MAAC,EAAD,CACE,MAAO,EAAU,QAAQ,CACzB,WAAY,EAAM,oBAFpB,EAIE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,UAAU,mCAClC,EAAA,EAAA,MAAC,IAAD,CAAG,UAAU,0CAAb,EACE,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,oBAAsB,CAAA,CACxD,EAAU,MACT,EAAQ,sBACN,EAAY,EAAU,KAAK,UAAW,EAAO,KAAK,SAAS,CAC3D,EAAY,EAAU,KAAK,QAAS,EAAO,KAAK,SAAS,CAC1D,CAAA,GAGD,CAAA,EAEN,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,eAAK,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,WAAa,CAAA,CAAK,CAAA,EACxE,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,iBAAO,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,cAAgB,CAAA,CAAI,CAAA,EAE3E,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,qBAAW,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,gBAAkB,CAAA,CAAI,CAAA,EACjF,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,CAAE,YAAa,EAAY,SAAU,OAAQ,EAAQ,SAAS,MAAO,CAC9E,UAAU,YACV,QAAS,EAAM,qBAEf,EAAA,EAAA,KAAC,OAAD,CAAA,UAAM,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,kBAAoB,CAAA,CAAO,CAAA,CAC5D,CAAA,SAEZ,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,iBAAO,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,eAAiB,CAAA,CAAI,CAAA,EAE5E,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,EAAa,OAAd,CACE,KAAM,EAAU,QAAQ,CACxB,QAAS,EAAM,WACf,QAAQ,OACR,CAAA,CACW,CAAA"}
|