@clickview/exchange 0.55.1-dev.0 → 0.55.1-dev.1
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/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{DYiI4iFo.chunk.js → 6ugYgeSq.chunk.js} +2 -2
- package/dist/scripts/{DYiI4iFo.chunk.js.map → 6ugYgeSq.chunk.js.map} +1 -1
- package/dist/scripts/{DJxQd3OQ.chunk.js → B2k61FX9.chunk.js} +2 -2
- package/dist/scripts/{DJxQd3OQ.chunk.js.map → B2k61FX9.chunk.js.map} +1 -1
- package/dist/scripts/{DAq5gDjR.chunk.js → B3PoX1Ca.chunk.js} +2 -2
- package/dist/scripts/{DAq5gDjR.chunk.js.map → B3PoX1Ca.chunk.js.map} +1 -1
- package/dist/scripts/{CdoPQq72.chunk.js → B5Tnikwj.chunk.js} +2 -2
- package/dist/scripts/{CdoPQq72.chunk.js.map → B5Tnikwj.chunk.js.map} +1 -1
- package/dist/scripts/{NOEoySBM.chunk.js → B5f0Cn6K.chunk.js} +2 -2
- package/dist/scripts/{NOEoySBM.chunk.js.map → B5f0Cn6K.chunk.js.map} +1 -1
- package/dist/scripts/{wwrNvwhU.chunk.js → B695Io16.chunk.js} +2 -2
- package/dist/scripts/{wwrNvwhU.chunk.js.map → B695Io16.chunk.js.map} +1 -1
- package/dist/scripts/{89IgQU35.chunk.js → B6CHLwQE.chunk.js} +2 -2
- package/dist/scripts/{89IgQU35.chunk.js.map → B6CHLwQE.chunk.js.map} +1 -1
- package/dist/scripts/{Cn8IJFAD.chunk.js → B6gXaLCu.chunk.js} +2 -2
- package/dist/scripts/{Cn8IJFAD.chunk.js.map → B6gXaLCu.chunk.js.map} +1 -1
- package/dist/scripts/{DwL60tTx.chunk.js → B7b3dHqh.chunk.js} +2 -2
- package/dist/scripts/{DwL60tTx.chunk.js.map → B7b3dHqh.chunk.js.map} +1 -1
- package/dist/scripts/{D5cTJzMl.chunk.js → B8BWa8rG.chunk.js} +2 -2
- package/dist/scripts/{D5cTJzMl.chunk.js.map → B8BWa8rG.chunk.js.map} +1 -1
- package/dist/scripts/{DdVfOuan.chunk.js → BA6dAji1.chunk.js} +2 -2
- package/dist/scripts/{DdVfOuan.chunk.js.map → BA6dAji1.chunk.js.map} +1 -1
- package/dist/scripts/{BKYS86yt.chunk.js → BDJvxAZr.chunk.js} +2 -2
- package/dist/scripts/{BKYS86yt.chunk.js.map → BDJvxAZr.chunk.js.map} +1 -1
- package/dist/scripts/{L4Ub9t1Q.chunk.js → BDTrB61Q.chunk.js} +2 -2
- package/dist/scripts/{L4Ub9t1Q.chunk.js.map → BDTrB61Q.chunk.js.map} +1 -1
- package/dist/scripts/{D95N1pjr.chunk.js → BENCAb_Y.chunk.js} +2 -2
- package/dist/scripts/{D95N1pjr.chunk.js.map → BENCAb_Y.chunk.js.map} +1 -1
- package/dist/scripts/{rR9pgyKh.chunk.js → BGTivNih.chunk.js} +3 -3
- package/dist/scripts/{rR9pgyKh.chunk.js.map → BGTivNih.chunk.js.map} +1 -1
- package/dist/scripts/{CBhcpqvz.chunk.js → BHjOfQBL.chunk.js} +2 -2
- package/dist/scripts/{CBhcpqvz.chunk.js.map → BHjOfQBL.chunk.js.map} +1 -1
- package/dist/scripts/{v6fMGz1b.chunk.js → BIsRcDFM.chunk.js} +2 -2
- package/dist/scripts/{v6fMGz1b.chunk.js.map → BIsRcDFM.chunk.js.map} +1 -1
- package/dist/scripts/{DVZ1kgun.chunk.js → BKhpM0zm.chunk.js} +2 -2
- package/dist/scripts/{DVZ1kgun.chunk.js.map → BKhpM0zm.chunk.js.map} +1 -1
- package/dist/scripts/BNMMjoWK.chunk.js +2 -0
- package/dist/scripts/{C8et0pLb.chunk.js.map → BNMMjoWK.chunk.js.map} +1 -1
- package/dist/scripts/BSp3iUl8.chunk.js +2 -0
- package/dist/scripts/{DtyB02Sn.chunk.js.map → BSp3iUl8.chunk.js.map} +1 -1
- package/dist/scripts/{DKjn3duF.chunk.js → BcHrOYjt.chunk.js} +2 -2
- package/dist/scripts/{DKjn3duF.chunk.js.map → BcHrOYjt.chunk.js.map} +1 -1
- package/dist/scripts/{DbqmKtbC.chunk.js → BfCrcP0R.chunk.js} +2 -2
- package/dist/scripts/{DbqmKtbC.chunk.js.map → BfCrcP0R.chunk.js.map} +1 -1
- package/dist/scripts/{CHoqd22R.chunk.js → BgN7i6MB.chunk.js} +2 -2
- package/dist/scripts/{CHoqd22R.chunk.js.map → BgN7i6MB.chunk.js.map} +1 -1
- package/dist/scripts/{C-aLs4Ef.chunk.js → BkHLoZ-N.chunk.js} +2 -2
- package/dist/scripts/{C-aLs4Ef.chunk.js.map → BkHLoZ-N.chunk.js.map} +1 -1
- package/dist/scripts/{lrq4lIJa.chunk.js → BniF6LVx.chunk.js} +2 -2
- package/dist/scripts/{lrq4lIJa.chunk.js.map → BniF6LVx.chunk.js.map} +1 -1
- package/dist/scripts/{DZu6jtCJ.chunk.js → C-Mo_AjO.chunk.js} +2 -2
- package/dist/scripts/{DZu6jtCJ.chunk.js.map → C-Mo_AjO.chunk.js.map} +1 -1
- package/dist/scripts/{DG5bX1lj.chunk.js → C00nDP-p.chunk.js} +2 -2
- package/dist/scripts/{DG5bX1lj.chunk.js.map → C00nDP-p.chunk.js.map} +1 -1
- package/dist/scripts/C09X2KJd.chunk.js +2 -0
- package/dist/scripts/{C94eK3Q6.chunk.js.map → C09X2KJd.chunk.js.map} +1 -1
- package/dist/scripts/{j7vmscoo.chunk.js → C0AfgE1f.chunk.js} +2 -2
- package/dist/scripts/{j7vmscoo.chunk.js.map → C0AfgE1f.chunk.js.map} +1 -1
- package/dist/scripts/{Dv1cKAft.chunk.js → C68sCpX6.chunk.js} +2 -2
- package/dist/scripts/{Dv1cKAft.chunk.js.map → C68sCpX6.chunk.js.map} +1 -1
- package/dist/scripts/{BqdID4mk.chunk.js → CAeyI7a_.chunk.js} +2 -2
- package/dist/scripts/{BqdID4mk.chunk.js.map → CAeyI7a_.chunk.js.map} +1 -1
- package/dist/scripts/{BMTODxV2.chunk.js → CC8ClfIm.chunk.js} +2 -2
- package/dist/scripts/{BMTODxV2.chunk.js.map → CC8ClfIm.chunk.js.map} +1 -1
- package/dist/scripts/{CoyUpQya.chunk.js → CE9VNRtH.chunk.js} +2 -2
- package/dist/scripts/{CoyUpQya.chunk.js.map → CE9VNRtH.chunk.js.map} +1 -1
- package/dist/scripts/{DH5pFFkH.chunk.js → CEOJnCgX.chunk.js} +2 -2
- package/dist/scripts/{DH5pFFkH.chunk.js.map → CEOJnCgX.chunk.js.map} +1 -1
- package/dist/scripts/{CSW_ftvw.chunk.js → CF4l8gqP.chunk.js} +2 -2
- package/dist/scripts/{CSW_ftvw.chunk.js.map → CF4l8gqP.chunk.js.map} +1 -1
- package/dist/scripts/{DnoYIjnk.chunk.js → CGs_wDRQ.chunk.js} +2 -2
- package/dist/scripts/{DnoYIjnk.chunk.js.map → CGs_wDRQ.chunk.js.map} +1 -1
- package/dist/scripts/{CloBBmov.chunk.js → CILpxfVo.chunk.js} +2 -2
- package/dist/scripts/{CloBBmov.chunk.js.map → CILpxfVo.chunk.js.map} +1 -1
- package/dist/scripts/{DmpDv9Tr.chunk.js → CK70Pu2i.chunk.js} +2 -2
- package/dist/scripts/{DmpDv9Tr.chunk.js.map → CK70Pu2i.chunk.js.map} +1 -1
- package/dist/scripts/{CcLLbQj9.chunk.js → CPD8tGlR.chunk.js} +2 -2
- package/dist/scripts/{CcLLbQj9.chunk.js.map → CPD8tGlR.chunk.js.map} +1 -1
- package/dist/scripts/{B2pUpkzt.chunk.js → CVZpiAmE.chunk.js} +2 -2
- package/dist/scripts/{B2pUpkzt.chunk.js.map → CVZpiAmE.chunk.js.map} +1 -1
- package/dist/scripts/{DbeS50YB.chunk.js → CWP9OQsX.chunk.js} +2 -2
- package/dist/scripts/{DbeS50YB.chunk.js.map → CWP9OQsX.chunk.js.map} +1 -1
- package/dist/scripts/{VtD9jrXA.chunk.js → CYXKgmT6.chunk.js} +2 -2
- package/dist/scripts/{VtD9jrXA.chunk.js.map → CYXKgmT6.chunk.js.map} +1 -1
- package/dist/scripts/{BFTe3PCJ.chunk.js → CZLa2gZJ.chunk.js} +2 -2
- package/dist/scripts/{BFTe3PCJ.chunk.js.map → CZLa2gZJ.chunk.js.map} +1 -1
- package/dist/scripts/{-oGcs2o7.chunk.js → CaLLQoeO.chunk.js} +2 -2
- package/dist/scripts/{-oGcs2o7.chunk.js.map → CaLLQoeO.chunk.js.map} +1 -1
- package/dist/scripts/{DZQFyYKA.chunk.js → Cb27KTif.chunk.js} +2 -2
- package/dist/scripts/{DZQFyYKA.chunk.js.map → Cb27KTif.chunk.js.map} +1 -1
- package/dist/scripts/{BaSBcMD4.chunk.js → CbeiCIGS.chunk.js} +2 -2
- package/dist/scripts/{BaSBcMD4.chunk.js.map → CbeiCIGS.chunk.js.map} +1 -1
- package/dist/scripts/{CgPcAJSh.chunk.js → CdP3gnNV.chunk.js} +2 -2
- package/dist/scripts/{CgPcAJSh.chunk.js.map → CdP3gnNV.chunk.js.map} +1 -1
- package/dist/scripts/{CmfVxd9w.chunk.js → Cem_15ru.chunk.js} +2 -2
- package/dist/scripts/{CmfVxd9w.chunk.js.map → Cem_15ru.chunk.js.map} +1 -1
- package/dist/scripts/{OBuowdMc.chunk.js → CfS44DXK.chunk.js} +2 -2
- package/dist/scripts/{OBuowdMc.chunk.js.map → CfS44DXK.chunk.js.map} +1 -1
- package/dist/scripts/{gAox6n5o.chunk.js → Cih4Ddbu.chunk.js} +2 -2
- package/dist/scripts/{gAox6n5o.chunk.js.map → Cih4Ddbu.chunk.js.map} +1 -1
- package/dist/scripts/CkF0PdvD.chunk.js +2 -0
- package/dist/scripts/{rzKXH0iU.chunk.js.map → CkF0PdvD.chunk.js.map} +1 -1
- package/dist/scripts/{D6kC-dfM.chunk.js → ClAajgIC.chunk.js} +2 -2
- package/dist/scripts/{D6kC-dfM.chunk.js.map → ClAajgIC.chunk.js.map} +1 -1
- package/dist/scripts/CuaAi3hl.chunk.js +2 -0
- package/dist/scripts/{dncf4usG.chunk.js.map → CuaAi3hl.chunk.js.map} +1 -1
- package/dist/scripts/CxUHqnOh.chunk.js +2 -0
- package/dist/scripts/{D94dUObP.chunk.js.map → CxUHqnOh.chunk.js.map} +1 -1
- package/dist/scripts/{Ca5g2g0M.chunk.js → Cz-DEpIl.chunk.js} +2 -2
- package/dist/scripts/{Ca5g2g0M.chunk.js.map → Cz-DEpIl.chunk.js.map} +1 -1
- package/dist/scripts/{B7vV0_3l.chunk.js → D4xYDc88.chunk.js} +2 -2
- package/dist/scripts/{B7vV0_3l.chunk.js.map → D4xYDc88.chunk.js.map} +1 -1
- package/dist/scripts/{-eOR7hsb.chunk.js → DAbsA9MV.chunk.js} +2 -2
- package/dist/scripts/{-eOR7hsb.chunk.js.map → DAbsA9MV.chunk.js.map} +1 -1
- package/dist/scripts/{MkZBh98f.chunk.js → DBs7i4mg.chunk.js} +2 -2
- package/dist/scripts/{MkZBh98f.chunk.js.map → DBs7i4mg.chunk.js.map} +1 -1
- package/dist/scripts/{BrmJsOUO.chunk.js → DEhxVL2r.chunk.js} +2 -2
- package/dist/scripts/{BrmJsOUO.chunk.js.map → DEhxVL2r.chunk.js.map} +1 -1
- package/dist/scripts/{DtwLBBNK.chunk.js → DFPTM2m4.chunk.js} +2 -2
- package/dist/scripts/{DtwLBBNK.chunk.js.map → DFPTM2m4.chunk.js.map} +1 -1
- package/dist/scripts/{CgqpQ9AK.chunk.js → DG4Gno_E.chunk.js} +2 -2
- package/dist/scripts/{CgqpQ9AK.chunk.js.map → DG4Gno_E.chunk.js.map} +1 -1
- package/dist/scripts/{BH7pP4J6.chunk.js → DH3Nc9P7.chunk.js} +2 -2
- package/dist/scripts/{BH7pP4J6.chunk.js.map → DH3Nc9P7.chunk.js.map} +1 -1
- package/dist/scripts/{DyTWsrqD.chunk.js → DHXvkHsb.chunk.js} +2 -2
- package/dist/scripts/{DyTWsrqD.chunk.js.map → DHXvkHsb.chunk.js.map} +1 -1
- package/dist/scripts/{D41CRehW.chunk.js → DHxv0YeB.chunk.js} +2 -2
- package/dist/scripts/{D41CRehW.chunk.js.map → DHxv0YeB.chunk.js.map} +1 -1
- package/dist/scripts/{C1I_rTQ_.chunk.js → DIJ6qEMe.chunk.js} +2 -2
- package/dist/scripts/{C1I_rTQ_.chunk.js.map → DIJ6qEMe.chunk.js.map} +1 -1
- package/dist/scripts/{SSTeR1Y-.chunk.js → DLBDiFVq.chunk.js} +2 -2
- package/dist/scripts/{SSTeR1Y-.chunk.js.map → DLBDiFVq.chunk.js.map} +1 -1
- package/dist/scripts/{CpXzdHOO.chunk.js → DP3w7A4L.chunk.js} +2 -2
- package/dist/scripts/{CpXzdHOO.chunk.js.map → DP3w7A4L.chunk.js.map} +1 -1
- package/dist/scripts/{CbnRXlsc.chunk.js → DVxew3cs.chunk.js} +2 -2
- package/dist/scripts/{CbnRXlsc.chunk.js.map → DVxew3cs.chunk.js.map} +1 -1
- package/dist/scripts/{CcAH_1Du.chunk.js → DXNAdVdo.chunk.js} +2 -2
- package/dist/scripts/{CcAH_1Du.chunk.js.map → DXNAdVdo.chunk.js.map} +1 -1
- package/dist/scripts/DYFlAuiV.chunk.js +2 -0
- package/dist/scripts/{yJSiv4Zm.chunk.js.map → DYFlAuiV.chunk.js.map} +1 -1
- package/dist/scripts/{FXsyYEqA.chunk.js → Dam_cOwt.chunk.js} +2 -2
- package/dist/scripts/{FXsyYEqA.chunk.js.map → Dam_cOwt.chunk.js.map} +1 -1
- package/dist/scripts/{CRAfTPgM.chunk.js → Dgb7t1K4.chunk.js} +2 -2
- package/dist/scripts/{CRAfTPgM.chunk.js.map → Dgb7t1K4.chunk.js.map} +1 -1
- package/dist/scripts/{cdxXDelE.chunk.js → DogGBezf.chunk.js} +2 -2
- package/dist/scripts/{cdxXDelE.chunk.js.map → DogGBezf.chunk.js.map} +1 -1
- package/dist/scripts/{D_-_6kZe.chunk.js → Dpdkt0GP.chunk.js} +2 -2
- package/dist/scripts/{D_-_6kZe.chunk.js.map → Dpdkt0GP.chunk.js.map} +1 -1
- package/dist/scripts/{TsMmz5NE.chunk.js → DpvM518u.chunk.js} +2 -2
- package/dist/scripts/{TsMmz5NE.chunk.js.map → DpvM518u.chunk.js.map} +1 -1
- package/dist/scripts/{Co0LfXeU.chunk.js → DqYRVHOk.chunk.js} +2 -2
- package/dist/scripts/{Co0LfXeU.chunk.js.map → DqYRVHOk.chunk.js.map} +1 -1
- package/dist/scripts/{DfgmLyT1.chunk.js → DqwgSiMd.chunk.js} +2 -2
- package/dist/scripts/{DfgmLyT1.chunk.js.map → DqwgSiMd.chunk.js.map} +1 -1
- package/dist/scripts/{DobAMdqT.chunk.js → DtgCW8ME.chunk.js} +2 -2
- package/dist/scripts/{DobAMdqT.chunk.js.map → DtgCW8ME.chunk.js.map} +1 -1
- package/dist/scripts/{BHUcf1fG.chunk.js → DxbUcs7w.chunk.js} +2 -2
- package/dist/scripts/{BHUcf1fG.chunk.js.map → DxbUcs7w.chunk.js.map} +1 -1
- package/dist/scripts/{BRRmOX-N.chunk.js → RZpRRsx8.chunk.js} +2 -2
- package/dist/scripts/{BRRmOX-N.chunk.js.map → RZpRRsx8.chunk.js.map} +1 -1
- package/dist/scripts/{COx43m1X.chunk.js → TEzZMW_8.chunk.js} +2 -2
- package/dist/scripts/{COx43m1X.chunk.js.map → TEzZMW_8.chunk.js.map} +1 -1
- package/dist/scripts/{BAo0l-Cr.chunk.js → VYxhnntI.chunk.js} +2 -2
- package/dist/scripts/{BAo0l-Cr.chunk.js.map → VYxhnntI.chunk.js.map} +1 -1
- package/dist/scripts/{app-D1kg55lE.js → app-CWLlxhC4.js} +3 -3
- package/dist/scripts/{app-D1kg55lE.js.map → app-CWLlxhC4.js.map} +1 -1
- package/dist/scripts/{fVRbFunO.chunk.js → ivwPXIiD.chunk.js} +2 -2
- package/dist/scripts/{fVRbFunO.chunk.js.map → ivwPXIiD.chunk.js.map} +1 -1
- package/dist/scripts/{BTLyZrVH.chunk.js → k7QDC8lR.chunk.js} +2 -2
- package/dist/scripts/{BTLyZrVH.chunk.js.map → k7QDC8lR.chunk.js.map} +1 -1
- package/dist/scripts/{B_eCP--R.chunk.js → m3alwmxn.chunk.js} +2 -2
- package/dist/scripts/{B_eCP--R.chunk.js.map → m3alwmxn.chunk.js.map} +1 -1
- package/dist/scripts/{GYrPX6ng.chunk.js → rP9OQnNa.chunk.js} +2 -2
- package/dist/scripts/{GYrPX6ng.chunk.js.map → rP9OQnNa.chunk.js.map} +1 -1
- package/dist/scripts/{4mEjD_Wx.chunk.js → tueKkjSA.chunk.js} +2 -2
- package/dist/scripts/{4mEjD_Wx.chunk.js.map → tueKkjSA.chunk.js.map} +1 -1
- package/dist/scripts/{DQdCoXQk.chunk.js → u39PSbeM.chunk.js} +2 -2
- package/dist/scripts/{DQdCoXQk.chunk.js.map → u39PSbeM.chunk.js.map} +1 -1
- package/dist/scripts/{B0SivR80.chunk.js → v6KzbWE4.chunk.js} +2 -2
- package/dist/scripts/{B0SivR80.chunk.js.map → v6KzbWE4.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/C8et0pLb.chunk.js +0 -2
- package/dist/scripts/C94eK3Q6.chunk.js +0 -2
- package/dist/scripts/D94dUObP.chunk.js +0 -2
- package/dist/scripts/DtyB02Sn.chunk.js +0 -2
- package/dist/scripts/dncf4usG.chunk.js +0 -2
- package/dist/scripts/rzKXH0iU.chunk.js +0 -2
- package/dist/scripts/yJSiv4Zm.chunk.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,a0 as j,j as e,L as r,aq as S,G as A,Q as E,F as M,ao as o}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{r as i,a0 as j,j as e,L as r,aq as S,G as A,Q as E,F as M,ao as o}from"./app-CWLlxhC4.js";import{M as y}from"./_sYSSSUN.chunk.js";import{P as C,C as F}from"./BcHrOYjt.chunk.js";const R="shared.breadcrumbComponent",B=r.encloseNamespace(R),O=64,f=48,u=i.forwardRef((t,a)=>{const{breadcrumb:{name:s,appLink:n,active:h},withBackIcon:p,linkClassName:g}=t;let c=s,d=null;return c.length>f&&(c=s.slice(0,f)+"...",d=s),e.jsx("li",{className:`breadcrumb-item${h?" active":""}`,title:d,children:h?e.jsx("strong",{children:c}):e.jsxs(S,{appLink:n,ref:a,className:n?g:"",children:[p&&e.jsx(A,{svg:F,size:E.Small}),e.jsx("span",{className:p?"ms-2":"",children:c})]})})}),Q=({breadcrumbs:t,linkClassName:a})=>{const s=j(y.XS),n=(t==null?void 0:t.length)||0,[h,p]=i.useState(!1),[g,c]=i.useState(!1),d=i.useRef(null);i.useEffect(()=>{const m=(t==null?void 0:t.reduce((x,T)=>x+T.name.length,0))??0;n>4&&m>O&&p(!0)},[t==null?void 0:t.length]),i.useLayoutEffect(()=>{var m;g&&((m=d.current)==null||m.focus())},[d.current,g]);function v(){p(!1),c(!0)}if(!n||s&&n<2)return e.jsx(e.Fragment,{});if(s)return e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsx("ol",{className:"breadcrumb m-0 p-0",children:e.jsx(u,{breadcrumb:t[n-2],withBackIcon:!0,linkClassName:a})})});const N=e.jsx(u,{breadcrumb:t[0],linkClassName:a}),P=n>2?e.jsx(u,{breadcrumb:t[1],linkClassName:a}):e.jsx(e.Fragment,{}),b=n>3?e.jsx(u,{breadcrumb:t[n-2],linkClassName:a}):e.jsx(e.Fragment,{}),L=n>1?e.jsx(u,{breadcrumb:t[n-1],linkClassName:a}):e.jsx(e.Fragment,{}),w=t.slice(2,n-2);return e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsxs("ol",{className:"breadcrumb m-0 p-0",children:[N,P,h?e.jsx("li",{className:"breadcrumb-item",children:e.jsx("button",{className:"btn-link",onClick:v,"aria-label":B("expand"),children:"..."})}):w.map((m,x)=>e.jsx(u,{breadcrumb:m,ref:x===0?d:null,linkClassName:a},x)),b,L]})})},V=i.memo(function({numItems:t=3}){return j(y.XS)?e.jsx("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsx("ol",{className:"breadcrumb m-0 p-0",children:C.getPartialLoadingItems({numItems:t}).map(({width:s},n)=>e.jsx("li",{className:"breadcrumb-item",children:e.jsx("span",{className:"d-inline-block partial-loading-background",style:{width:s},dangerouslySetInnerHTML:{__html:" "}})},n))})})}),l="shared.videoSortSelect",_=M.memoize(()=>({[o.RecentlyAdded]:{name:r.getPhrase(l,"recentlyAdded")},[o.AtoZ]:{name:r.getPhrase(l,"atoz")},[o.ZtoA]:{name:r.getPhrase(l,"ztoa")},[o.Newest]:{name:r.getPhrase(l,"newest")},[o.Oldest]:{name:r.getPhrase(l,"oldest")},[o.Series]:{name:r.getPhrase(l,"series")}}));function k(t){let a=_();return t&&(a={[o.ProductionYear]:{name:r.getPhrase(l,"productionYear")},...a}),a}z.defaultProps={variant:"light"};function z(t){const a=t.sortTypes||k(t.includeProductionYear);return e.jsxs("div",{className:"dropdown",children:[e.jsx("button",{className:`btn btn-${t.variant} ms-2 dropdown-toggle`,type:"button",id:"sort-select","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",children:a[t.type].name}),e.jsx("ul",{className:"dropdown-menu dropdown-menu-end","aria-labelledby":"sort-select",children:Object.keys(a).map(s=>{let n="dropdown-item";return s===t.type&&(n+=" active"),e.jsx("li",{children:e.jsx(S,{className:n,appLink:t.getSortAppLink(s),analyticsData:{sort:a[s].name},analyticsOptions:t.analyticsOptions,children:a[s].name})},s)})})]})}export{Q as B,V as P,z as V};
|
|
2
|
+
//# sourceMappingURL=DIJ6qEMe.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"C1I_rTQ_.chunk.js","sources":["../../../../libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","../../../../libs/shared/src/components/video-sort-select/VideoSortSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { ChevronLeftSvg } from 'libs/shared/images/svg/arrows/ChevronLeftSvg';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\nconst MAX_SEGMENT_LENGTH = 48;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n linkClassName?: string;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon, linkClassName } = props;\n\n let trimmedName = name;\n let title: string = null;\n\n if (trimmedName.length > MAX_SEGMENT_LENGTH) {\n trimmedName = name.slice(0, MAX_SEGMENT_LENGTH) + '...';\n\n // Only setting the title when we trim, because otherwise it's really not needed - Sha\n title = name;\n }\n\n return (\n <li\n className={`breadcrumb-item${active ? ' active' : ''}`}\n title={title}\n >\n {active\n ? <strong>{trimmedName}</strong>\n : <AppLink appLink={appLink} ref={ref} className={appLink ? linkClassName : ''}>\n {withBackIcon && <SvgContainer svg={ChevronLeftSvg} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{trimmedName}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n linkClassName?: string;\n}\n\nexport const Breadcrumbs = ({ breadcrumbs, linkClassName }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon linkClassName={linkClassName} />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} linkClassName={linkClassName} />;\n const second = length > 2\n ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} linkClassName={linkClassName} />\n : <></>;\n const secondLast = length > 3\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} linkClassName={linkClassName} />\n : <></>;\n const last = length > 1\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} linkClassName={linkClassName} />\n : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n linkClassName={linkClassName}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\n\nconst namespace = 'shared.videoSortSelect';\n\ntype SortTypes = {[sort: string]: { name: string }};\n\nconst getDefaultSortTypes: () => SortTypes = FunctionHelper.memoize(() => {\n return {\n [VideoSortType.RecentlyAdded]: {\n name: LanguageService.getPhrase(namespace, 'recentlyAdded')\n },\n [VideoSortType.AtoZ]: {\n name: LanguageService.getPhrase(namespace, 'atoz')\n },\n [VideoSortType.ZtoA]: {\n name: LanguageService.getPhrase(namespace, 'ztoa')\n },\n [VideoSortType.Newest]: {\n name: LanguageService.getPhrase(namespace, 'newest')\n },\n [VideoSortType.Oldest]: {\n name: LanguageService.getPhrase(namespace, 'oldest')\n },\n [VideoSortType.Series]: {\n name: LanguageService.getPhrase(namespace, 'series')\n }\n };\n});\n\nfunction getSortTypes(productionYear: boolean): SortTypes {\n let defaultSortTypes = getDefaultSortTypes();\n\n if (productionYear) {\n defaultSortTypes = {\n [VideoSortType.ProductionYear]: {\n name: LanguageService.getPhrase(namespace, 'productionYear')\n },\n ...defaultSortTypes\n };\n }\n \n return defaultSortTypes;\n}\n\ninterface VideoSortSelectProps {\n type: VideoSortType;\n getSortAppLink: (sort: string) => Core.AppLink;\n variant?: ButtonProps['variant'];\n sortTypes?: SortTypes;\n analyticsOptions: AnalyticsOptions;\n includeProductionYear?: boolean;\n}\n\nVideoSortSelect.defaultProps = {\n variant: 'light'\n};\n\nexport function VideoSortSelect(props: VideoSortSelectProps): JSX.Element {\n const sortTypes = props.sortTypes || getSortTypes(props.includeProductionYear);\n\n return (\n <div className='dropdown'>\n <button className={`btn btn-${props.variant} ms-2 dropdown-toggle`} type='button' id='sort-select' data-bs-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>\n {sortTypes[props.type].name}\n </button>\n <ul className='dropdown-menu dropdown-menu-end' aria-labelledby='sort-select'>\n {Object.keys(sortTypes).map(k => {\n let className = 'dropdown-item';\n\n if (k === props.type)\n className += ' active';\n\n return (\n <li key={k}>\n <AppLink\n className={className}\n appLink={props.getSortAppLink(k)}\n analyticsData={{\n sort: sortTypes[k].name\n }}\n analyticsOptions={props.analyticsOptions}\n >\n {sortTypes[k].name}\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","COLLAPSE_CHARACTER_COUNT","MAX_SEGMENT_LENGTH","BreadcrumbItem","React.forwardRef","props","ref","name","appLink","active","withBackIcon","linkClassName","trimmedName","title","jsx","jsxs","AppLink","SvgContainer","ChevronLeftSvg","SvgContainerSize","Breadcrumbs","breadcrumbs","isMobile","useMediaQuery","MediaQueryStrings","length","collapse","setCollapse","React.useState","shouldFocus","setShouldFocus","expandRef","React.useRef","React.useEffect","characterLength","prev","next","React.useLayoutEffect","_a","onClickExpand","Fragment","first","second","secondLast","last","rest","breadcrumb","idx","PartialBreadcrumbs","React.memo","numItems","PartialLoadingHelper","width","getDefaultSortTypes","FunctionHelper","VideoSortType","getSortTypes","productionYear","defaultSortTypes","VideoSortSelect","sortTypes","k","className"],"mappings":"wLAaA,MAAMA,EAAY,6BACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDG,EAA2B,GAC3BC,EAAqB,GAcdC,EAAiBC,EAAAA,WAAiB,CAC7CC,EACAC,IACG,CACH,KAAM,CAAE,WAAY,CAAE,KAAAC,EAAM,QAAAC,EAAS,OAAAC,GAAU,aAAAC,EAAc,cAAAC,CAAA,EAAkBN,EAE/E,IAAIO,EAAcL,EACdM,EAAgB,KAEpB,OAAID,EAAY,OAASV,IACvBU,EAAcL,EAAK,MAAM,EAAGL,CAAkB,EAAI,MAGlDW,EAAQN,GAIRO,EAAAA,IAAC,KAAA,CACC,UAAW,kBAAkBL,EAAS,UAAY,EAAE,GACpD,MAAAI,EAEC,SAAAJ,EACGK,MAAC,SAAA,CAAQ,SAAAF,CAAA,CAAY,EACrBG,EAAAA,KAACC,EAAA,CAAQ,QAAAR,EAAkB,IAAAF,EAAU,UAAWE,EAAUG,EAAgB,GACzE,SAAA,CAAAD,SAAiBO,EAAA,CAAa,IAAKC,EAAgB,KAAMC,EAAiB,MAAO,QACjF,OAAA,CAAK,UAAWT,EAAe,OAAS,GAAK,SAAAE,CAAA,CAAY,CAAA,CAAA,CAC5D,CAAA,CAAA,CAIR,CAAC,EAOYQ,EAAc,CAAC,CAAE,YAAAC,EAAa,cAAAV,KAAsC,CAC/E,MAAMW,EAAWC,EAAcC,EAAkB,EAAE,EAE7CC,GAASJ,GAAA,YAAAA,EAAa,SAAU,EAEhC,CAAEK,EAAUC,CAAY,EAAIC,EAAAA,SAAe,EAAK,EAChD,CAAEC,EAAaC,CAAe,EAAIF,EAAAA,SAAe,EAAK,EACtDG,EAAYC,EAAAA,OAA0B,IAAI,EAEhDC,EAAAA,UAAgB,IAAM,CACpB,MAAMC,GAAkBb,GAAA,YAAAA,EAAa,OAAO,CAACc,EAAMC,IAASD,EAAOC,EAAK,KAAK,OAAQ,KAAM,EAEvFX,EAAS,GAAKS,EAAkBjC,GAClC0B,EAAY,EAAI,CACpB,EAAG,CAACN,GAAA,YAAAA,EAAa,MAAM,CAAC,EAKxBgB,EAAAA,gBAAsB,IAAM,OACtBR,KACFS,EAAAP,EAAU,UAAV,MAAAO,EAAmB,QACvB,EAAG,CAAEP,EAAU,QAASF,CAAY,CAAC,EAErC,SAASU,GAAgB,CACvBZ,EAAY,EAAK,EACjBG,EAAe,EAAI,CACrB,CAEA,GAAI,CAACL,GAAWH,GAAYG,EAAS,EACnC,OAAOX,EAAAA,IAAA0B,EAAAA,SAAA,EAAE,EAEX,GAAIlB,EACF,aACG,MAAA,CAAI,aAAW,aACd,SAAAR,EAAAA,IAAC,KAAA,CAAG,UAAU,qBACZ,SAAAA,MAACX,GAAe,WAAYkB,EAAYI,EAAS,CAAC,EAAG,aAAY,GAAC,cAAAd,EAA8B,EAClG,CAAA,CACF,EAGJ,MAAM8B,EAAQ3B,EAAAA,IAACX,EAAA,CAAe,WAAYkB,EAAY,CAAC,EAAG,cAAAV,EAA8B,EAClF+B,EAASjB,EAAS,EACpBX,EAAAA,IAACX,EAAA,CAAe,WAAYkB,EAAY,CAAC,EAAG,cAAAV,CAAA,CAA8B,EAC1EG,EAAAA,IAAA0B,EAAAA,SAAA,CAAA,CAAE,EACAG,EAAalB,EAAS,EACxBX,EAAAA,IAACX,EAAA,CAAe,WAAYkB,EAAYI,EAAS,CAAC,EAAG,cAAAd,CAAA,CAA8B,EACnFG,EAAAA,IAAA0B,EAAAA,SAAA,EAAE,EACAI,EAAOnB,EAAS,EAClBX,EAAAA,IAACX,EAAA,CAAe,WAAYkB,EAAYI,EAAS,CAAC,EAAG,cAAAd,CAAA,CAA8B,EACnFG,EAAAA,IAAA0B,EAAAA,SAAA,EAAE,EACAK,EAAOxB,EAAY,MAAM,EAAGI,EAAS,CAAC,EAE5C,aACG,MAAA,CAAI,aAAW,aACd,SAAAV,EAAAA,KAAC,KAAA,CAAG,UAAU,qBACX,SAAA,CAAA0B,EACAC,EACAhB,EACCZ,EAAAA,IAAC,KAAA,CAAG,UAAU,kBACZ,SAAAA,EAAAA,IAAC,SAAA,CACC,UAAU,WACV,QAASyB,EACT,aAAYxC,EAAU,QAAQ,EAC/B,SAAA,KAAA,CAAA,EAGH,EACA8C,EAAK,IAAI,CAACC,EAAYC,IACpBjC,EAAAA,IAACX,EAAA,CAEC,WAAA2C,EACA,IAAKC,IAAQ,EAAIhB,EAAY,KAC7B,cAAApB,CAAA,EAHKoC,CAAA,CAKR,EAEFJ,EACAC,CAAA,CAAA,CACH,CAAA,CACF,CAEJ,EAEaI,EAAqBC,EAAAA,KAAW,SAAS,CAAE,SAAAC,EAAW,GAA6B,CAG9F,OAFiB3B,EAAcC,EAAkB,EAAE,EAI/CV,MAAC,MAAA,CAAI,UAAU,6BAA6B,MAAO,CAAE,OAAQ,YAAa,MAAO,MAAA,CAAO,CAAG,QAK5F,MAAA,CAAI,aAAW,aACd,SAAAA,EAAAA,IAAC,KAAA,CAAG,UAAU,qBACX,SAAAqC,EAAqB,uBAAuB,CAAE,SAAAD,EAAU,EAAE,IAAI,CAAC,CAAE,MAAAE,GAASL,IACzEjC,EAAAA,IAAC,KAAA,CAAa,UAAU,kBACtB,SAAAA,EAAAA,IAAC,QAAK,UAAU,4CAA4C,MAAO,CAAE,MAAAsC,CAAA,EAAS,wBAAyB,CAAE,OAAQ,OAAA,CAAQ,CAAG,GADrHL,CAET,CACD,EACH,EACF,CAEJ,CAAC,EChKKjD,EAAY,yBAIZuD,EAAuCC,EAAe,QAAQ,KAC3D,CACL,CAACC,EAAc,aAAa,EAAG,CAC7B,KAAMvD,EAAgB,UAAUF,EAAW,eAAe,CAAA,EAE5D,CAACyD,EAAc,IAAI,EAAG,CACpB,KAAMvD,EAAgB,UAAUF,EAAW,MAAM,CAAA,EAEnD,CAACyD,EAAc,IAAI,EAAG,CACpB,KAAMvD,EAAgB,UAAUF,EAAW,MAAM,CAAA,EAEnD,CAACyD,EAAc,MAAM,EAAG,CACtB,KAAMvD,EAAgB,UAAUF,EAAW,QAAQ,CAAA,EAErD,CAACyD,EAAc,MAAM,EAAG,CACtB,KAAMvD,EAAgB,UAAUF,EAAW,QAAQ,CAAA,EAErD,CAACyD,EAAc,MAAM,EAAG,CACtB,KAAMvD,EAAgB,UAAUF,EAAW,QAAQ,CAAA,CACrD,EAEH,EAED,SAAS0D,EAAaC,EAAoC,CACxD,IAAIC,EAAmBL,EAAA,EAEvB,OAAII,IACFC,EAAmB,CACjB,CAACH,EAAc,cAAc,EAAG,CAC9B,KAAMvD,EAAgB,UAAUF,EAAW,gBAAgB,CAAA,EAE7D,GAAG4D,CAAA,GAIAA,CACT,CAWAC,EAAgB,aAAe,CAC7B,QAAS,OACX,EAEO,SAASA,EAAgBtD,EAA0C,CACxE,MAAMuD,EAAYvD,EAAM,WAAamD,EAAanD,EAAM,qBAAqB,EAE7E,OACEU,EAAAA,KAAC,MAAA,CAAI,UAAU,WACb,SAAA,CAAAD,EAAAA,IAAC,SAAA,CAAO,UAAW,WAAWT,EAAM,OAAO,wBAAyB,KAAK,SAAS,GAAG,cAAc,iBAAe,WAAW,gBAAc,OAAO,gBAAc,QAC7J,WAAUA,EAAM,IAAI,EAAE,IAAA,CACzB,EACAS,EAAAA,IAAC,KAAA,CAAG,UAAU,kCAAkC,kBAAgB,cAC7D,SAAA,OAAO,KAAK8C,CAAS,EAAE,IAAIC,GAAK,CAC/B,IAAIC,EAAY,gBAEhB,OAAID,IAAMxD,EAAM,OACdyD,GAAa,iBAGZ,KAAA,CACC,SAAAhD,EAAAA,IAACE,EAAA,CACC,UAAA8C,EACA,QAASzD,EAAM,eAAewD,CAAC,EAC/B,cAAe,CACb,KAAMD,EAAUC,CAAC,EAAE,IAAA,EAErB,iBAAkBxD,EAAM,iBAEvB,SAAAuD,EAAUC,CAAC,EAAE,IAAA,CAAA,GATTA,CAWT,CAEJ,CAAC,CAAA,CACH,CAAA,EACF,CAEJ"}
|
|
1
|
+
{"version":3,"file":"DIJ6qEMe.chunk.js","sources":["../../../../libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","../../../../libs/shared/src/components/video-sort-select/VideoSortSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { ChevronLeftSvg } from 'libs/shared/images/svg/arrows/ChevronLeftSvg';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\nconst MAX_SEGMENT_LENGTH = 48;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n linkClassName?: string;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon, linkClassName } = props;\n\n let trimmedName = name;\n let title: string = null;\n\n if (trimmedName.length > MAX_SEGMENT_LENGTH) {\n trimmedName = name.slice(0, MAX_SEGMENT_LENGTH) + '...';\n\n // Only setting the title when we trim, because otherwise it's really not needed - Sha\n title = name;\n }\n\n return (\n <li\n className={`breadcrumb-item${active ? ' active' : ''}`}\n title={title}\n >\n {active\n ? <strong>{trimmedName}</strong>\n : <AppLink appLink={appLink} ref={ref} className={appLink ? linkClassName : ''}>\n {withBackIcon && <SvgContainer svg={ChevronLeftSvg} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{trimmedName}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n linkClassName?: string;\n}\n\nexport const Breadcrumbs = ({ breadcrumbs, linkClassName }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon linkClassName={linkClassName} />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} linkClassName={linkClassName} />;\n const second = length > 2\n ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} linkClassName={linkClassName} />\n : <></>;\n const secondLast = length > 3\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} linkClassName={linkClassName} />\n : <></>;\n const last = length > 1\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} linkClassName={linkClassName} />\n : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n linkClassName={linkClassName}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\n\nconst namespace = 'shared.videoSortSelect';\n\ntype SortTypes = {[sort: string]: { name: string }};\n\nconst getDefaultSortTypes: () => SortTypes = FunctionHelper.memoize(() => {\n return {\n [VideoSortType.RecentlyAdded]: {\n name: LanguageService.getPhrase(namespace, 'recentlyAdded')\n },\n [VideoSortType.AtoZ]: {\n name: LanguageService.getPhrase(namespace, 'atoz')\n },\n [VideoSortType.ZtoA]: {\n name: LanguageService.getPhrase(namespace, 'ztoa')\n },\n [VideoSortType.Newest]: {\n name: LanguageService.getPhrase(namespace, 'newest')\n },\n [VideoSortType.Oldest]: {\n name: LanguageService.getPhrase(namespace, 'oldest')\n },\n [VideoSortType.Series]: {\n name: LanguageService.getPhrase(namespace, 'series')\n }\n };\n});\n\nfunction getSortTypes(productionYear: boolean): SortTypes {\n let defaultSortTypes = getDefaultSortTypes();\n\n if (productionYear) {\n defaultSortTypes = {\n [VideoSortType.ProductionYear]: {\n name: LanguageService.getPhrase(namespace, 'productionYear')\n },\n ...defaultSortTypes\n };\n }\n \n return defaultSortTypes;\n}\n\ninterface VideoSortSelectProps {\n type: VideoSortType;\n getSortAppLink: (sort: string) => Core.AppLink;\n variant?: ButtonProps['variant'];\n sortTypes?: SortTypes;\n analyticsOptions: AnalyticsOptions;\n includeProductionYear?: boolean;\n}\n\nVideoSortSelect.defaultProps = {\n variant: 'light'\n};\n\nexport function VideoSortSelect(props: VideoSortSelectProps): JSX.Element {\n const sortTypes = props.sortTypes || getSortTypes(props.includeProductionYear);\n\n return (\n <div className='dropdown'>\n <button className={`btn btn-${props.variant} ms-2 dropdown-toggle`} type='button' id='sort-select' data-bs-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>\n {sortTypes[props.type].name}\n </button>\n <ul className='dropdown-menu dropdown-menu-end' aria-labelledby='sort-select'>\n {Object.keys(sortTypes).map(k => {\n let className = 'dropdown-item';\n\n if (k === props.type)\n className += ' active';\n\n return (\n <li key={k}>\n <AppLink\n className={className}\n appLink={props.getSortAppLink(k)}\n analyticsData={{\n sort: sortTypes[k].name\n }}\n analyticsOptions={props.analyticsOptions}\n >\n {sortTypes[k].name}\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","COLLAPSE_CHARACTER_COUNT","MAX_SEGMENT_LENGTH","BreadcrumbItem","React.forwardRef","props","ref","name","appLink","active","withBackIcon","linkClassName","trimmedName","title","jsx","jsxs","AppLink","SvgContainer","ChevronLeftSvg","SvgContainerSize","Breadcrumbs","breadcrumbs","isMobile","useMediaQuery","MediaQueryStrings","length","collapse","setCollapse","React.useState","shouldFocus","setShouldFocus","expandRef","React.useRef","React.useEffect","characterLength","prev","next","React.useLayoutEffect","_a","onClickExpand","Fragment","first","second","secondLast","last","rest","breadcrumb","idx","PartialBreadcrumbs","React.memo","numItems","PartialLoadingHelper","width","getDefaultSortTypes","FunctionHelper","VideoSortType","getSortTypes","productionYear","defaultSortTypes","VideoSortSelect","sortTypes","k","className"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,aq as R,B as L,aS as $,ad as w,ae as S,af as A,a3 as i,aT as U,l as E,L as F,a as o,b as c,a5 as P,aD as q}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as e,aq as R,B as L,aS as $,ad as w,ae as S,af as A,a3 as i,aT as U,l as E,L as F,a as o,b as c,a5 as P,aD as q}from"./app-CWLlxhC4.js";import{u as H}from"./CuaAi3hl.chunk.js";import{T as M,a as V}from"./RZpRRsx8.chunk.js";import{T as I,a as B}from"./C-Mo_AjO.chunk.js";import{T as d}from"./D4xYDc88.chunk.js";import{u as D}from"./BSp3iUl8.chunk.js";import{u as O}from"./BkHLoZ-N.chunk.js";import{g as N}from"./B6CHLwQE.chunk.js";import"./BIsRcDFM.chunk.js";import"./v6KzbWE4.chunk.js";import"./DHXvkHsb.chunk.js";import"./u39PSbeM.chunk.js";import"./BlDVEZsX.chunk.js";import"./B5Tnikwj.chunk.js";import"./6ugYgeSq.chunk.js";import"./CWP9OQsX.chunk.js";import"./DXNAdVdo.chunk.js";const z="_cardContainer_p5jjm_1",G="_image_p5jjm_4",j={cardContainer:z,image:G};function h(a){return e.jsx("div",{className:`${j.cardContainer} px-2 mb-3`,children:e.jsxs(R,{className:`${a.className} border rounded-3 py-3 px-4 d-block text-center`,appLink:a.appLink,children:[e.jsx("div",{className:`${j.image} d-flex align-items-center justify-content-center`,children:e.jsx("img",{className:"mh-100",src:a.logoUrl})}),e.jsx("p",{className:"fw-semibold text-dark text-truncate mb-0",children:a.name})]})})}const Q="_cardContainer_1s4mp_1",J="_image_1s4mp_4",C={cardContainer:Q,image:J};function K(){return e.jsx("div",{className:`${C.cardContainer} px-2 mb-3`,children:e.jsxs("div",{className:"partial-loading-background border rounded-3 py-3 px-4",children:[e.jsx("div",{className:`${C.image}`}),e.jsx("p",{className:"mb-0",children:" "})]})})}function T(a){return e.jsx(e.Fragment,{children:e.jsx("div",{className:"row mb-2",children:[...Array(a.cards)].map((n,t)=>e.jsx(K,{},t))})})}const W="_cardContainer_7wzee_1",X="_image_7wzee_4",f={cardContainer:W,image:X},Y="tv.tvRegionSelectMap",Z=a=>{const n=N(a.instanceRegion);return!a.regions||!a.currentRegion?e.jsx(T,{cards:5}):a.regions.length<=1?e.jsx(e.Fragment,{}):e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"h4",children:e.jsx(L,{namespace:Y,phrase:"regions",options:{country:n.country}})}),e.jsx("div",{className:"row",children:a.regions.map((t,s)=>{if(t.id!==a.currentRegion.id)return e.jsx("div",{className:`${f.cardContainer} px-2 mb-3`,children:e.jsxs(R,{className:"border rounded-3 py-3 px-4 d-block text-center",appLink:{...a.appLink,args:[t.code]},analyticsData:{region:a.currentRegion.code},analyticsOptions:{actionType:A.Click,entity:S.Region,location:w.RegionMap,descriptor:$.RegionSelect},onClick:()=>a.onClick(t),children:[e.jsx("div",{className:`${f.image} d-flex align-items-center justify-content-center`,children:e.jsx("img",{src:`https://tv.clickview.com.au/content/images/${t.code}.png`})}),e.jsx("p",{className:"fw-semibold text-dark mb-0",children:t.stateFull})]})},s)})})]})},ee="tv.channels",v=F.encloseNamespace(ee);function Ce(a){var u;const n=i(d.region(a.region)),t=i(d.dateRange(a.region)),s=i(d.regions()),b=i(q.config()),l=i(n.data&&d.channels(n.data.code)),g=i(P.currentUser()),p=(u=g.data)==null?void 0:u.instanceRegion,{setRegion:x}=O(),{showTvGuide:k}=U();D(n),H([s,l]),E({title:v("title")});const _=n.hasCompleted&&s.hasCompleted&&t.hasCompleted&&l.hasCompleted&&g.hasCompleted,m=N(p);return e.jsxs(e.Fragment,{children:[e.jsx(I,{region:n.data}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(M,{active:"channels",currentRegion:n.data,showTvGuide:k,config:b.data}),e.jsx(B,{currentRegion:n.data,regions:s.data,appLink:{application:c.TV,action:o.Tv.CHANNELS},onClick:x})]}),e.jsx(V,{dateRange:t.data,region:n.data}),_?e.jsx(e.Fragment,{children:e.jsxs("div",{className:"row mb-2",children:[!!m.requestProgram&&e.jsx(h,{appLink:{application:c.TV,action:o.Tv.REQUEST_PROGRAM,args:[a.region]},logoUrl:m.logo,name:v("requestProgram"),className:m.bgColor}),l.data.map((r,y)=>e.jsx(h,{appLink:{application:c.TV,action:o.Tv.CHANNEL,args:[r.region,r.id],params:{region:r.region!==a.region?a.region:null}},logoUrl:r.logoUrl,name:r.displayName},y))]})}):e.jsx(T,{cards:20}),e.jsx(Z,{instanceRegion:p,currentRegion:n.data,regions:s.data,appLink:{application:c.TV,action:o.Tv.CHANNELS},onClick:x})]})}export{Ce as TvChannelsView};
|
|
2
|
+
//# sourceMappingURL=DLBDiFVq.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSTeR1Y-.chunk.js","sources":["../../src/apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard.tsx","../../src/apps/tv/views/tv-channels/partial-loading/PartialCardRow.tsx","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap.tsx","../../src/apps/tv/views/tv-channels/TvChannelsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './tv-channel-card.module.scss';\n\ninterface TvChannelCardProps {\n appLink: Core.AppLink;\n logoUrl: string;\n name: string;\n className?: string;\n}\n\nexport function TvChannelCard(props: TvChannelCardProps): JSX.Element {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className={`${props.className} border rounded-3 py-3 px-4 d-block text-center`}\n appLink={props.appLink}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n className='mh-100'\n src={props.logoUrl}\n />\n </div>\n <p className='fw-semibold text-dark text-truncate mb-0'>\n {props.name}\n </p>\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport styles from './partial-card-row.module.scss';\n\nfunction PartialRow() {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <div className='partial-loading-background border rounded-3 py-3 px-4'>\n <div className={`${styles.image}`}></div>\n <p className='mb-0'> </p>\n </div>\n </div>\n );\n}\n\ninterface PartialCardRowProps {\n cards: number;\n}\n\nexport function PartialCardRow(props: PartialCardRowProps) {\n return (\n <>\n <div className='row mb-2'>\n {[...Array(props.cards)].map((_, index) => <PartialRow key={index} />)}\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { EntityType, LocationContext, TvDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { PartialCardRow } from 'apps/tv/views/tv-channels/partial-loading/PartialCardRow';\n\nimport styles from './tv-region-select-map.module.scss';\n\nconst namespace = 'tv.tvRegionSelectMap';\n\ninterface TvRegionSelectMapProps {\n instanceRegion: InstanceRegion;\n currentRegion: TvRegion;\n regions: TvRegion[];\n appLink: Core.AppLink;\n onClick: (region: TvRegion) => void;\n}\n\nconst TvRegionSelectMap = (props: TvRegionSelectMapProps) => {\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n if (!props.regions || !props.currentRegion)\n return <PartialCardRow cards={5} />;\n\n if (props.regions.length <= 1)\n return <></>;\n \n return (\n <>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase='regions'\n options={{ country: regionInfo.country }}\n />\n </h2>\n <div className='row'>\n {props.regions.map((region, index) => {\n if (region.id !== props.currentRegion.id)\n return (\n <div key={index} className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className='border rounded-3 py-3 px-4 d-block text-center'\n appLink={{\n ...props.appLink,\n args: [region.code]\n }}\n analyticsData={{ region: props.currentRegion.code }}\n analyticsOptions={{\n actionType: UserAction.Click,\n entity: EntityType.Region,\n location: LocationContext.RegionMap,\n descriptor: TvDescriptor.RegionSelect\n }}\n onClick={() => props.onClick(region)}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n src={`https://tv.clickview.com.au/content/images/${region.code}.png`}\n />\n </div>\n <p className='fw-semibold text-dark mb-0'>\n {region.stateFull}\n </p>\n </AppLink>\n </div>\n );\n })}\n </div>\n </>\n );\n};\n\nexport default TvRegionSelectMap;","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { TvChannelCard } from 'apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard';\nimport TvRegionSelectMap from 'apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap';\n\nimport { PartialCardRow } from './partial-loading/PartialCardRow';\n\n\nconst namespace = 'tv.channels';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvChannelsViewProps {\n region: string;\n}\n\nexport function TvChannelsView(props: TvChannelsViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n channels.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const regionInfo = getRegionInfo(instanceRegion);\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\n currentRegion={region.data}\n showTvGuide={showTvGuide}\n config={config.data}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {dataLoaded ? (\n <>\n <div className='row mb-2'>\n {!!regionInfo.requestProgram &&\n <TvChannelCard\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.REQUEST_PROGRAM,\n args: [props.region]\n }}\n logoUrl={regionInfo.logo}\n name={getPhrase('requestProgram')}\n className={regionInfo.bgColor}\n />\n }\n {channels.data.map((channel, index) => {\n return (\n <TvChannelCard\n key={index}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNEL,\n args: [ channel.region, channel.id ],\n params: {\n region: channel.region !== props.region ? props.region : null\n }\n }}\n logoUrl={channel.logoUrl}\n name={channel.displayName}\n />\n );\n })}\n </div>\n </>\n ) : <PartialCardRow cards={20} />}\n \n\n <TvRegionSelectMap\n instanceRegion={instanceRegion}\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </>\n );\n}"],"names":["TvChannelCard","props","styles","jsxs","AppLink","jsx","PartialRow","PartialCardRow","Fragment","_","index","namespace","TvRegionSelectMap","regionInfo","getRegionInfo","Text","region","UserAction","EntityType","LocationContext","TvDescriptor","getPhrase","LanguageService","TvChannelsView","Flight.useBasicFetch","TvRequests","dateRange","regions","config","ConfigRequests","channels","currentUser","UserRequests","instanceRegion","_a","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","TvSearchBar","TvTabs","TvRegionSelect","AppChannels","Actions","TvInfoAlert","channel"],"mappings":"mwBAeO,SAASA,EAAcC,EAAwC,CACpE,aACG,MAAA,CAAI,UAAW,GAAGC,EAAO,aAAa,aACrC,SAAAC,EAAAA,KAACC,EAAA,CACC,UAAW,GAAGH,EAAM,SAAS,kDAC7B,QAASA,EAAM,QAEf,SAAA,CAAAI,MAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,KAAK,oDAC7B,SAAAG,EAAAA,IAAC,MAAA,CACC,UAAU,SACV,IAAKJ,EAAM,OAAA,CAAA,EAEf,EACAI,EAAAA,IAAC,IAAA,CAAE,UAAU,2CACV,WAAM,IAAA,CACT,CAAA,CAAA,CAAA,EAEJ,CAEJ,iFC9BA,SAASC,GAAa,CACpB,OACED,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,aAAa,aACrC,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,wDACb,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,KAAK,GAAI,EACnCG,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,SAAA,GAAA,CAAM,CAAA,CAAA,CAC5B,CAAA,CACF,CAEJ,CAMO,SAASE,EAAeN,EAA4B,CACzD,OACEI,MAAAG,EAAAA,SAAA,CACE,eAAC,MAAA,CAAI,UAAU,WACZ,SAAA,CAAC,GAAG,MAAMP,EAAM,KAAK,CAAC,EAAE,IAAI,CAACQ,EAAGC,UAAWJ,EAAA,GAAgBI,CAAO,CAAE,CAAA,CACvE,CAAA,CACF,CAEJ,iFCXMC,EAAY,uBAUZC,EAAqBX,GAAkC,CAC3D,MAAMY,EAAaC,EAAcb,EAAM,cAAc,EAErD,MAAI,CAACA,EAAM,SAAW,CAACA,EAAM,cACpBI,EAAAA,IAACE,EAAA,CAAe,MAAO,CAAA,CAAG,EAE/BN,EAAM,QAAQ,QAAU,EACnBI,EAAAA,IAAAG,EAAAA,SAAA,EAAE,EAGTL,EAAAA,KAAAK,WAAA,CACE,SAAA,CAAAH,EAAAA,IAAC,KAAA,CAAG,UAAU,KACZ,SAAAA,EAAAA,IAACU,EAAA,CAAA,UACCJ,EACA,OAAO,UACP,QAAS,CAAE,QAASE,EAAW,OAAA,CAAQ,CAAA,EAE3C,EACAR,EAAAA,IAAC,OAAI,UAAU,MACZ,WAAM,QAAQ,IAAI,CAACW,EAAQN,IAAU,CACpC,GAAIM,EAAO,KAAOf,EAAM,cAAc,GACpC,aACG,MAAA,CAAgB,UAAW,GAAGC,EAAO,aAAa,aACjD,SAAAC,EAAAA,KAACC,EAAA,CACC,UAAU,iDACV,QAAS,CACP,GAAGH,EAAM,QACT,KAAM,CAACe,EAAO,IAAI,CAAA,EAEpB,cAAe,CAAE,OAAQf,EAAM,cAAc,IAAA,EAC7C,iBAAkB,CAChB,WAAYgB,EAAW,MACvB,OAAQC,EAAW,OACnB,SAAUC,EAAgB,UAC1B,WAAYC,EAAa,YAAA,EAE3B,QAAS,IAAMnB,EAAM,QAAQe,CAAM,EAEnC,SAAA,CAAAX,MAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,KAAK,oDAC7B,SAAAG,EAAAA,IAAC,MAAA,CACC,IAAK,8CAA8CW,EAAO,IAAI,MAAA,CAAA,EAElE,EACAX,EAAAA,IAAC,IAAA,CAAE,UAAU,6BACV,WAAO,SAAA,CACV,CAAA,CAAA,CAAA,GAvBMK,CAyBV,CAEN,CAAC,CAAA,CACH,CAAA,EACF,CAEJ,EChDMC,GAAY,cACZU,EAAYC,EAAgB,iBAAiBX,EAAS,EAMrD,SAASY,GAAetB,EAAyC,OACtE,MAAMe,EAASQ,EAA+BC,EAAW,OAAOxB,EAAM,MAAM,CAAC,EACvEyB,EAAYF,EAAkCC,EAAW,UAAUxB,EAAM,MAAM,CAAC,EAChF0B,EAAUH,EAAiCC,EAAW,SAAS,EAC/DG,EAASJ,EAA6BK,EAAe,QAAQ,EAC7DC,EAAWN,EACfR,EAAO,MAAQS,EAAW,SAAST,EAAO,KAAK,IAAI,CAAA,EAG/Ce,EAAcP,EAAkCQ,EAAa,aAAa,EAC1EC,GAAiBC,EAAAH,EAAY,OAAZ,YAAAG,EAAkB,eAEnC,CAAE,UAAAC,CAAA,EAAcC,EAAA,EAChB,CAAE,YAAAC,CAAA,EAAgBC,EAAA,EAExBC,EAAqBvB,CAAM,EAC3BwB,EAAqB,CAAEb,EAASG,CAAS,CAAC,EAE1CW,EAAmB,CAAE,MAAOpB,EAAU,OAAO,EAAG,EAEhD,MAAMqB,EACJ1B,EAAO,cACPW,EAAQ,cACRD,EAAU,cACVI,EAAS,cACTC,EAAY,aAGRlB,EAAaC,EAAcmB,CAAc,EAE/C,OACE9B,EAAAA,KAAAK,WAAA,CACE,SAAA,CAAAH,EAAAA,IAACsC,EAAA,CAAY,OAAQ3B,EAAO,IAAA,CAAM,EAGlCb,EAAAA,KAAC,MAAA,CAAI,UAAU,iCACb,SAAA,CAAAE,EAAAA,IAACuC,EAAA,CACC,OAAO,WACP,cAAe5B,EAAO,KACtB,YAAAqB,EACA,OAAQT,EAAO,IAAA,CAAA,EAGjBvB,EAAAA,IAACwC,EAAA,CACC,cAAe7B,EAAO,KACtB,QAASW,EAAQ,KACjB,QAAS,CACP,YAAamB,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,QAASZ,CAAA,CAAA,CACX,EACF,QAECa,EAAA,CAAY,UAAWtB,EAAU,KAAM,OAAQV,EAAO,KAAM,EAE5D0B,EACCrC,EAAAA,IAAAG,EAAAA,SAAA,CACE,SAAAL,OAAC,MAAA,CAAI,UAAU,WACZ,SAAA,CAAA,CAAC,CAACU,EAAW,gBACZR,EAAAA,IAACL,EAAA,CACC,QAAS,CACP,YAAa8C,EAAY,GACzB,OAAQC,EAAQ,GAAG,gBACnB,KAAM,CAAC9C,EAAM,MAAM,CAAA,EAErB,QAASY,EAAW,KACpB,KAAMQ,EAAU,gBAAgB,EAChC,UAAWR,EAAW,OAAA,CAAA,EAGzBiB,EAAS,KAAK,IAAI,CAACmB,EAASvC,IAEzBL,EAAAA,IAACL,EAAA,CAEC,QAAS,CACP,YAAa8C,EAAY,GACzB,OAAQC,EAAQ,GAAG,QACnB,KAAM,CAAEE,EAAQ,OAAQA,EAAQ,EAAG,EACnC,OAAQ,CACN,OAAQA,EAAQ,SAAWhD,EAAM,OAASA,EAAM,OAAS,IAAA,CAC3D,EAEF,QAASgD,EAAQ,QACjB,KAAMA,EAAQ,WAAA,EAVTvC,CAAA,CAaV,CAAA,CAAA,CACH,CAAA,CACF,EACEL,EAAAA,IAACE,EAAA,CAAe,MAAO,GAAI,EAG/BF,EAAAA,IAACO,EAAA,CACC,eAAAqB,EACA,cAAejB,EAAO,KACtB,QAASW,EAAQ,KACjB,QAAS,CACP,YAAamB,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,QAASZ,CAAA,CAAA,CACX,EACF,CAEJ"}
|
|
1
|
+
{"version":3,"file":"DLBDiFVq.chunk.js","sources":["../../src/apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard.tsx","../../src/apps/tv/views/tv-channels/partial-loading/PartialCardRow.tsx","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap.tsx","../../src/apps/tv/views/tv-channels/TvChannelsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './tv-channel-card.module.scss';\n\ninterface TvChannelCardProps {\n appLink: Core.AppLink;\n logoUrl: string;\n name: string;\n className?: string;\n}\n\nexport function TvChannelCard(props: TvChannelCardProps): JSX.Element {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className={`${props.className} border rounded-3 py-3 px-4 d-block text-center`}\n appLink={props.appLink}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n className='mh-100'\n src={props.logoUrl}\n />\n </div>\n <p className='fw-semibold text-dark text-truncate mb-0'>\n {props.name}\n </p>\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport styles from './partial-card-row.module.scss';\n\nfunction PartialRow() {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <div className='partial-loading-background border rounded-3 py-3 px-4'>\n <div className={`${styles.image}`}></div>\n <p className='mb-0'> </p>\n </div>\n </div>\n );\n}\n\ninterface PartialCardRowProps {\n cards: number;\n}\n\nexport function PartialCardRow(props: PartialCardRowProps) {\n return (\n <>\n <div className='row mb-2'>\n {[...Array(props.cards)].map((_, index) => <PartialRow key={index} />)}\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { EntityType, LocationContext, TvDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { PartialCardRow } from 'apps/tv/views/tv-channels/partial-loading/PartialCardRow';\n\nimport styles from './tv-region-select-map.module.scss';\n\nconst namespace = 'tv.tvRegionSelectMap';\n\ninterface TvRegionSelectMapProps {\n instanceRegion: InstanceRegion;\n currentRegion: TvRegion;\n regions: TvRegion[];\n appLink: Core.AppLink;\n onClick: (region: TvRegion) => void;\n}\n\nconst TvRegionSelectMap = (props: TvRegionSelectMapProps) => {\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n if (!props.regions || !props.currentRegion)\n return <PartialCardRow cards={5} />;\n\n if (props.regions.length <= 1)\n return <></>;\n \n return (\n <>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase='regions'\n options={{ country: regionInfo.country }}\n />\n </h2>\n <div className='row'>\n {props.regions.map((region, index) => {\n if (region.id !== props.currentRegion.id)\n return (\n <div key={index} className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className='border rounded-3 py-3 px-4 d-block text-center'\n appLink={{\n ...props.appLink,\n args: [region.code]\n }}\n analyticsData={{ region: props.currentRegion.code }}\n analyticsOptions={{\n actionType: UserAction.Click,\n entity: EntityType.Region,\n location: LocationContext.RegionMap,\n descriptor: TvDescriptor.RegionSelect\n }}\n onClick={() => props.onClick(region)}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n src={`https://tv.clickview.com.au/content/images/${region.code}.png`}\n />\n </div>\n <p className='fw-semibold text-dark mb-0'>\n {region.stateFull}\n </p>\n </AppLink>\n </div>\n );\n })}\n </div>\n </>\n );\n};\n\nexport default TvRegionSelectMap;","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { TvChannelCard } from 'apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard';\nimport TvRegionSelectMap from 'apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap';\n\nimport { PartialCardRow } from './partial-loading/PartialCardRow';\n\n\nconst namespace = 'tv.channels';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvChannelsViewProps {\n region: string;\n}\n\nexport function TvChannelsView(props: TvChannelsViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n channels.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const regionInfo = getRegionInfo(instanceRegion);\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\n currentRegion={region.data}\n showTvGuide={showTvGuide}\n config={config.data}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {dataLoaded ? (\n <>\n <div className='row mb-2'>\n {!!regionInfo.requestProgram &&\n <TvChannelCard\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.REQUEST_PROGRAM,\n args: [props.region]\n }}\n logoUrl={regionInfo.logo}\n name={getPhrase('requestProgram')}\n className={regionInfo.bgColor}\n />\n }\n {channels.data.map((channel, index) => {\n return (\n <TvChannelCard\n key={index}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNEL,\n args: [ channel.region, channel.id ],\n params: {\n region: channel.region !== props.region ? props.region : null\n }\n }}\n logoUrl={channel.logoUrl}\n name={channel.displayName}\n />\n );\n })}\n </div>\n </>\n ) : <PartialCardRow cards={20} />}\n \n\n <TvRegionSelectMap\n instanceRegion={instanceRegion}\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </>\n );\n}"],"names":["TvChannelCard","props","styles","jsxs","AppLink","jsx","PartialRow","PartialCardRow","Fragment","_","index","namespace","TvRegionSelectMap","regionInfo","getRegionInfo","Text","region","UserAction","EntityType","LocationContext","TvDescriptor","getPhrase","LanguageService","TvChannelsView","Flight.useBasicFetch","TvRequests","dateRange","regions","config","ConfigRequests","channels","currentUser","UserRequests","instanceRegion","_a","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","TvSearchBar","TvTabs","TvRegionSelect","AppChannels","Actions","TvInfoAlert","channel"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{U as j,ap as y,ae as L,af as S,j as a,aq as v,ar as w,R as C,as as _,w as m,B as u,at as p,r as N}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{U as j,ap as y,ae as L,af as S,j as a,aq as v,ar as w,R as C,as as _,w as m,B as u,at as p,r as N}from"./app-CWLlxhC4.js";import{C as A}from"./DqYRVHOk.chunk.js";import{A as T}from"./CE9VNRtH.chunk.js";import{D as E}from"./DxbUcs7w.chunk.js";import{B as D}from"./B2k61FX9.chunk.js";import{I as B,a as H,u as I}from"./CfS44DXK.chunk.js";const $="_actions_1psxq_1",q="_actionsContainer_1psxq_14",z="_ownerLogo_1psxq_24",P="_dropStyle_1psxq_33",O="_dragStyle_1psxq_38",d={actions:$,actionsContainer:q,ownerLogo:z,dropStyle:P,dragStyle:O};function U(e){var i,r,f,h,b,F;const s=e.folder.thumbnail?j.urlBuilder(e.folder.thumbnail.url,{size:y.Small}):null,t=(h=(f=(r=(i=e.folder)==null?void 0:i.libraries)==null?void 0:r.data)==null?void 0:f[0])==null?void 0:h.owner,n=e.showOwnerLogo&&((b=t==null?void 0:t.logo)!=null&&b.url)?j.urlBuilder(t.logo.url,{size:y.Small}):null,l=(F=e.getFolderActions)==null?void 0:F.call(e,e.folder),o=e.analyticsData?{id:e.folder.id.toString(),name:e.folder.name,...e.analyticsData}:void 0,c=e.analyticsOptions?{actionType:S.Click,entity:L.Folder,...e.analyticsOptions}:void 0;return a.jsx(E,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:d.dropStyle,dragStyle:d.dragStyle,children:a.jsxs("div",{className:"position-relative",children:[a.jsxs(v,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name,analyticsData:o,analyticsOptions:c,children:[a.jsx(D,{data:s,imageType:w.Thumbnails,imageClassName:"rounded-top-lg",children:a.jsx(B,{name:e.folder.name,type:H.Folder,extraClasses:"rounded-top-lg"})}),a.jsx("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2",children:a.jsx("span",{className:"text-truncate d-block",children:e.folder.name})})]}),(l==null?void 0:l.length)&&a.jsx(T,{actions:l,className:d.actionsContainer,actionsDropdownClassName:d.actions,dropdownToggleSvgSize:null}),!!n&&a.jsx("img",{src:n,className:`rounded-circle ${d.ownerLogo}`,alt:`${t==null?void 0:t.name} logo`,title:(t==null?void 0:t.name)||""})]})})}const g="libraries.folderList",k="has:expanded:library:folders";function R(){const e=p();return e.xxl||e.xl||e.lg?6:e.md?4:3}G.defaultProps={showHeading:!0};function G(e){const[s,t]=C.useState(_.get(k)||!1),n=e.expandFolders||s,l=R();function o(){t(!n),_.set(k,!n)}const c=n?e.folders:e.folders.slice(0,l),i=e.folders.length>l&&!e.expandFolders;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[e.showHeading&&a.jsxs(m,{className:`d-inline-flex align-items-center mb-2 px-2 ${i?"":"cursor-default"}`,onClick:o,children:[i&&a.jsx(A,{direction:n?"down":"right"}),a.jsx("h2",{className:"h4 mb-0",children:a.jsx(u,{namespace:g,phrase:"folders",options:{count:e.folders.length}})})]}),!!(!n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeAll",options:{count:e.folders.length}})})}),!!(n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeLess"})})}),e.extraButtons?e.extraButtons:a.jsx(a.Fragment,{})]}),a.jsx("div",{className:"row mx-1",children:c.map(r=>a.jsx("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:a.jsx(U,{folder:r,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop})},r.id))})]})}const K="_partialFolderHeading_1surw_1",M="_partialFolderThumbnail_1surw_4",V="_partialFolderName_1surw_7",x={partialFolderHeading:K,partialFolderThumbnail:M,partialFolderName:V},W=()=>a.jsxs("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:[a.jsx("div",{className:`${x.partialFolderThumbnail} partial-loading-background rounded-top-lg`}),a.jsx("div",{className:`${x.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`,children:" "})]});function ae({count:e=3}){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`${x.partialFolderHeading} h4 mb-2 partial-loading-background`,children:" "}),a.jsx("div",{className:"row mx-n1",children:Array(e).fill(null).map((s,t)=>a.jsx(W,{},t))})]})}function le(e,s){const t=e,n=s,l=I(e&&(o=>t(o).key));return N.useEffect(()=>{l&&l.shouldInitialFetch&&s&&n()},[l==null?void 0:l.shouldInitialFetch,s]),N.useEffect(()=>{!l||!l.nextCursor||l.isFetching||!s||n(l.nextCursor)},[l==null?void 0:l.nextCursor,l==null?void 0:l.isFetching,s]),l}export{G as F,ae as P,le as u};
|
|
2
|
+
//# sourceMappingURL=DP3w7A4L.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CpXzdHOO.chunk.js","sources":["../../../../libs/shared/src/components/library-folder/LibraryFolder.tsx","../../../../libs/shared/src/components/folder-list/FolderList.tsx","../../../../libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","../../../../libs/shared/src/hooks/UseFetchAll.ts"],"sourcesContent":["import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.module.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n showOwnerLogo?: boolean;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const owner = props.folder?.libraries?.data?.[0]?.owner;\n const ownerLogoUrl = props.showOwnerLogo && !!owner?.logo?.url\n ? UrlHelper.urlBuilder(owner.logo.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n const analyticsData = props.analyticsData ? {\n id: props.folder.id.toString(),\n name: props.folder.name,\n ...props.analyticsData\n } : undefined;\n\n const analyticsOptions = props.analyticsOptions ? {\n actionType: UserAction.Click,\n entity: EntityType.Folder,\n\n ...props.analyticsOptions\n } : undefined;\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n {!!ownerLogoUrl &&\n <img src={ownerLogoUrl} className={`rounded-circle ${styles.ownerLogo}`} alt={`${owner?.name} logo`} title={owner?.name || ''} />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","import React from 'react';\n\nimport styles from './partial-folder-list.module.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { SelectAllPagesResult, useSelectAllPages } from './UseSelectAllPages';\n\n/**\n * Hook to fetch all pages of a collection.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useFetchAll<T = BaseObject>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false\n): SelectAllPagesResult<T> {\n const getRequestFn = getRequest as (cursor?: string) => Flight.Request;\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequestFn(cursor).key));\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext)\n fetchNextFn();\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response || !response.nextCursor || response.isFetching || !fetchNext)\n return;\n\n fetchNextFn(response.nextCursor);\n }, [ response?.nextCursor, response?.isFetching, fetchNext ]);\n\n return response;\n}"],"names":["LibraryFolder","props","thumbnailUrl","UrlHelper","ImageSize","owner","_d","_c","_b","_a","ownerLogoUrl","_e","actions","_f","analyticsData","analyticsOptions","UserAction","EntityType","jsx","DragDropMoveWrapper","styles","jsxs","AppLink","BaseImage","ImageType","ImageFallback","ImageFallbackType","Actions","namespace","EXPANDED_FOLDERS_KEY","useGetFolderLimit","breakpoints","useBreakpoints","FolderList","_hasExpandedFolders","setHasExpandedFolders","React","LocalStorageHelper","hasExpandedFolders","folderLimit","onToggleFolder","displayableFolders","canToggleCollapsedView","Fragment","DivButton","Caret","Text","f","PartialFolder","PartialFolderList","count","_","i","useFetchAll","getRequest","fetchNext","getRequestFn","fetchNextFn","response","useSelectAllPages","cursor","useEffect"],"mappings":"8hBA4BO,SAASA,EAAcC,EAAwC,iBACpE,MAAMC,EAAeD,EAAM,OAAO,UAC9BE,EAAU,WAAWF,EAAM,OAAO,UAAU,IAAK,CAAE,KAAMG,EAAU,KAAA,CAAO,EAC1E,KAEEC,GAAQC,GAAAC,GAAAC,GAAAC,EAAAR,EAAM,SAAN,YAAAQ,EAAc,YAAd,YAAAD,EAAyB,OAAzB,YAAAD,EAAgC,KAAhC,YAAAD,EAAoC,MAC5CI,EAAeT,EAAM,iBAAmBU,EAAAN,GAAA,YAAAA,EAAO,OAAP,MAAAM,EAAa,KACvDR,EAAU,WAAWE,EAAM,KAAK,IAAK,CAAE,KAAMD,EAAU,KAAA,CAAO,EAC9D,KAEEQ,GAAUC,EAAAZ,EAAM,mBAAN,YAAAY,EAAA,KAAAZ,EAAyBA,EAAM,QAEzCa,EAAgBb,EAAM,cAAgB,CAC1C,GAAIA,EAAM,OAAO,GAAG,SAAA,EACpB,KAAMA,EAAM,OAAO,KACnB,GAAGA,EAAM,aAAA,EACP,OAEEc,EAAmBd,EAAM,iBAAmB,CAChD,WAAYe,EAAW,MACvB,OAAQC,EAAW,OAEnB,GAAGhB,EAAM,gBAAA,EACP,OAEJ,OACEiB,EAAAA,IAACC,EAAA,CACC,UAAWlB,EAAM,MAAQ,CAAE,GAAIA,EAAM,OAAO,GAAI,KAAMA,EAAM,MAAA,EAC5D,UAAWA,EAAM,MAAQ,CAAE,GAAIA,EAAM,OAAO,GAAI,KAAMA,EAAM,MAAA,EAC5D,SAAUmB,EAAO,UACjB,UAAWA,EAAO,UAElB,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,oBACb,SAAA,CAAAA,EAAAA,KAACC,EAAA,CACC,UAAU,yCACV,QAASrB,EAAM,WAAWA,EAAM,MAAM,EACtC,MAAOA,EAAM,OAAO,KACpB,cAAAa,EACA,iBAAAC,EAEA,SAAA,CAAAG,EAAAA,IAACK,EAAA,CACC,KAAMrB,EACN,UAAWsB,EAAU,WACrB,eAAe,iBAEf,SAAAN,EAAAA,IAACO,EAAA,CACC,KAAMxB,EAAM,OAAO,KACnB,KAAMyB,EAAkB,OACxB,aAAa,gBAAA,CAAA,CACf,CAAA,EAEFR,EAAAA,IAAC,KAAA,CAAG,UAAU,yGACZ,SAAAA,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAyB,SAAAjB,EAAM,OAAO,IAAA,CAAK,CAAA,CAC7D,CAAA,CAAA,CAAA,GAEDW,GAAA,YAAAA,EAAS,SACRM,EAAAA,IAACS,EAAA,CACC,QAAAf,EACA,UAAWQ,EAAO,iBAClB,yBAA0BA,EAAO,QAEjC,sBAAuB,IAAA,CAAA,EAG1B,CAAC,CAACV,GACDQ,EAAAA,IAAC,OAAI,IAAKR,EAAc,UAAW,kBAAkBU,EAAO,SAAS,GAAI,IAAK,GAAGf,GAAA,YAAAA,EAAO,IAAI,QAAS,OAAOA,GAAA,YAAAA,EAAO,OAAQ,EAAA,CAAI,CAAA,CAAA,CAEnI,CAAA,CAAA,CAGN,CCrFA,MAAMuB,EAAY,uBAEZC,EAAuB,+BAE7B,SAASC,GAA4B,CACnC,MAAMC,EAAcC,EAAA,EAEpB,OAAID,EAAY,KAAOA,EAAY,IAAMA,EAAY,GAC5C,EAELA,EAAY,GACP,EAEF,CACT,CAaAE,EAAW,aAAe,CACxB,YAAa,EACf,EAEO,SAASA,EAAWhC,EAAqC,CAC9D,KAAM,CAAEiC,EAAqBC,CAAsB,EAAIC,EAAM,SAC3DC,EAAmB,IAAIR,CAAoB,GAAK,EAAA,EAG5CS,EAAqBrC,EAAM,eAAiBiC,EAE5CK,EAAcT,EAAA,EAEpB,SAASU,GAAuB,CAC9BL,EAAsB,CAACG,CAAkB,EACzCD,EAAmB,IAAIR,EAAsB,CAACS,CAAkB,CAClE,CAEA,MAAMG,EAAqBH,EAAqBrC,EAAM,QAAUA,EAAM,QAAQ,MAAM,EAAGsC,CAAW,EAE5FG,EAAyBzC,EAAM,QAAQ,OAASsC,GAAe,CAACtC,EAAM,cAE5E,OACEoB,EAAAA,KAAAsB,WAAA,CACE,SAAA,CAAAtB,EAAAA,KAAC,MAAA,CAAI,UAAU,oDACZ,SAAA,CAAApB,EAAM,aACLoB,EAAAA,KAACuB,EAAA,CACC,UAAW,8CAA+CF,EAA4C,GAAnB,gBAAqB,GACxG,QAASF,EAER,SAAA,CAAAE,GACCxB,EAAAA,IAAC2B,EAAA,CAAM,UAAWP,EAAqB,OAAS,QAAS,QAE1D,KAAA,CAAG,UAAU,UACZ,SAAApB,EAAAA,IAAC4B,GAAK,UAAAlB,EAAsB,OAAO,UAAU,QAAS,CAAE,MAAO3B,EAAM,QAAQ,MAAA,EAAU,CAAA,CACzF,CAAA,CAAA,CAAA,EAIH,CAAC,EAAE,CAACqC,GAAsBI,IACzBxB,EAAAA,IAAC,MAAA,CAAI,UAAU,mDACb,SAAAA,EAAAA,IAAC0B,EAAA,CAAU,QAASJ,EAAgB,UAAU,gDAC5C,SAAAtB,EAAAA,IAAC4B,EAAA,CAAK,UAAAlB,EAAsB,OAAO,SAAS,QAAS,CAAE,MAAO3B,EAAM,QAAQ,MAAA,CAAO,CAAG,CAAA,CACxF,EACF,EAED,CAAC,EAAEqC,GAAsBI,UACvB,MAAA,CAAI,UAAU,mDACb,SAAAxB,EAAAA,IAAC0B,EAAA,CAAU,QAASJ,EAAgB,UAAU,gDAC5C,SAAAtB,EAAAA,IAAC4B,EAAA,CAAK,UAAAlB,EAAsB,OAAO,UAAU,EAC/C,CAAA,CACF,EAGD3B,EAAM,aAAeA,EAAM,aAAeiB,EAAAA,IAAAyB,EAAAA,SAAA,CAAA,CAAE,CAAA,EAC/C,EAEAzB,EAAAA,IAAC,MAAA,CAAI,UAAU,WACZ,SAAAuB,EAAmB,IAAIM,GACtB7B,EAAAA,IAAC,MAAA,CAAe,UAAU,oCACxB,SAAAA,EAAAA,IAAClB,EAAA,CACC,OAAQ+C,EACR,WAAY9C,EAAM,WAClB,iBAAkBA,EAAM,iBACxB,KAAMA,EAAM,KACZ,KAAMA,EAAM,IAAA,CAAA,GANN8C,EAAE,EAQZ,CACD,CAAA,CACH,CAAA,EACF,CAEJ,oLC5GMC,EAAgB,IACpB3B,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAH,MAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,sBAAsB,6CAA8C,QAC7F,MAAA,CAAI,UAAW,GAAGA,EAAO,iBAAiB,wFAAyF,SAAA,GAAA,CAEpI,CAAA,EACF,EAGK,SAAS6B,GAAkB,CAAE,MAAAC,EAAQ,GAAuC,CACjF,OACE7B,EAAAA,KAAAsB,WAAA,CACE,SAAA,CAAAzB,EAAAA,IAAC,OAAI,UAAW,GAAGE,EAAO,oBAAoB,sCAAuC,SAAA,IAAM,QAC1F,MAAA,CAAI,UAAU,YACZ,SAAA,MAAM8B,CAAK,EAAE,KAAK,IAAI,EAAE,IAAI,CAACC,EAAGC,UAAOJ,EAAA,CAAA,EAAmBI,CAAG,CAAE,CAAA,CAClE,CAAA,EACF,CAEJ,CCLO,SAASC,GACdC,EACAC,EACyB,CACzB,MAAMC,EAAeF,EACfG,EAAcF,EAEdG,EAAWC,EAAqBL,IAAgBM,GAAoBJ,EAAaI,CAAM,EAAE,IAAI,EAEnGC,OAAAA,EAAAA,UAAU,IAAM,CACTH,GAGDA,EAAS,oBAAsBH,GACjCE,EAAA,CACJ,EAAG,CAAEC,GAAA,YAAAA,EAAU,mBAAoBH,CAAU,CAAC,EAE9CM,EAAAA,UAAU,IAAM,CACV,CAACH,GAAY,CAACA,EAAS,YAAcA,EAAS,YAAc,CAACH,GAGjEE,EAAYC,EAAS,UAAU,CACjC,EAAG,CAAEA,GAAA,YAAAA,EAAU,WAAYA,GAAA,YAAAA,EAAU,WAAYH,CAAU,CAAC,EAErDG,CACT"}
|
|
1
|
+
{"version":3,"file":"DP3w7A4L.chunk.js","sources":["../../../../libs/shared/src/components/library-folder/LibraryFolder.tsx","../../../../libs/shared/src/components/folder-list/FolderList.tsx","../../../../libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","../../../../libs/shared/src/hooks/UseFetchAll.ts"],"sourcesContent":["import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.module.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n showOwnerLogo?: boolean;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const owner = props.folder?.libraries?.data?.[0]?.owner;\n const ownerLogoUrl = props.showOwnerLogo && !!owner?.logo?.url\n ? UrlHelper.urlBuilder(owner.logo.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n const analyticsData = props.analyticsData ? {\n id: props.folder.id.toString(),\n name: props.folder.name,\n ...props.analyticsData\n } : undefined;\n\n const analyticsOptions = props.analyticsOptions ? {\n actionType: UserAction.Click,\n entity: EntityType.Folder,\n\n ...props.analyticsOptions\n } : undefined;\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n {!!ownerLogoUrl &&\n <img src={ownerLogoUrl} className={`rounded-circle ${styles.ownerLogo}`} alt={`${owner?.name} logo`} title={owner?.name || ''} />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","import React from 'react';\n\nimport styles from './partial-folder-list.module.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { SelectAllPagesResult, useSelectAllPages } from './UseSelectAllPages';\n\n/**\n * Hook to fetch all pages of a collection.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useFetchAll<T = BaseObject>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false\n): SelectAllPagesResult<T> {\n const getRequestFn = getRequest as (cursor?: string) => Flight.Request;\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequestFn(cursor).key));\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext)\n fetchNextFn();\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response || !response.nextCursor || response.isFetching || !fetchNext)\n return;\n\n fetchNextFn(response.nextCursor);\n }, [ response?.nextCursor, response?.isFetching, fetchNext ]);\n\n return response;\n}"],"names":["LibraryFolder","props","thumbnailUrl","UrlHelper","ImageSize","owner","_d","_c","_b","_a","ownerLogoUrl","_e","actions","_f","analyticsData","analyticsOptions","UserAction","EntityType","jsx","DragDropMoveWrapper","styles","jsxs","AppLink","BaseImage","ImageType","ImageFallback","ImageFallbackType","Actions","namespace","EXPANDED_FOLDERS_KEY","useGetFolderLimit","breakpoints","useBreakpoints","FolderList","_hasExpandedFolders","setHasExpandedFolders","React","LocalStorageHelper","hasExpandedFolders","folderLimit","onToggleFolder","displayableFolders","canToggleCollapsedView","Fragment","DivButton","Caret","Text","f","PartialFolder","PartialFolderList","count","_","i","useFetchAll","getRequest","fetchNext","getRequestFn","fetchNextFn","response","useSelectAllPages","cursor","useEffect"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{R as o,A as s,a,b as n,j as t}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{R as o,A as s,a,b as n,j as t}from"./app-CWLlxhC4.js";import{u as p}from"./BkHLoZ-N.chunk.js";import"./CuaAi3hl.chunk.js";import"./BIsRcDFM.chunk.js";import"./D4xYDc88.chunk.js";function f(e){const{region:r,isLoading:i}=p();return o.useEffect(()=>{i||s.trigger({application:n.TV,action:a.Tv.CHANNELS,args:[r],params:e.requestVideo?{requestVideo:e.requestVideo}:void 0},{replace:!0})},[r]),t.jsx(t.Fragment,{})}export{f as TvHomeView};
|
|
2
|
+
//# sourceMappingURL=DVxew3cs.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DVxew3cs.chunk.js","sources":["../../src/apps/tv/views/tv-home/TvHomeView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\n\ninterface TvHomeViewProps {\n requestVideo: boolean;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TvHomeView(props: TvHomeViewProps): JSX.Element {\n const { region, isLoading } = useSelectedRegion();\n\n React.useEffect(() => {\n if (isLoading)\n return;\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS,\n args: [region],\n params: props.requestVideo ? {\n requestVideo: props.requestVideo\n } : undefined\n }, { replace: true });\n }, [region]);\n\n return <></>;\n}"],"names":["TvHomeView","props","region","isLoading","useSelectedRegion","React","Core.AppLinkHelper","AppChannels","Actions","jsx","Fragment"],"mappings":"yLAcO,SAASA,EAAWC,EAAqC,CAC9D,KAAM,CAAE,OAAAC,EAAQ,UAAAC,CAAA,EAAcC,EAAA,EAE9B,OAAAC,EAAM,UAAU,IAAM,CAChBF,GAGJG,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,SACnB,KAAM,CAACN,CAAM,EACb,OAAQD,EAAM,aAAe,CAC3B,aAAcA,EAAM,YAAA,EAClB,MAAA,EACH,CAAE,QAAS,GAAM,CACtB,EAAG,CAACC,CAAM,CAAC,EAEJO,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CACX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as r}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as r}from"./app-CWLlxhC4.js";function o(s){return r.jsx("svg",{...s,children:r.jsx("path",{fill:"currentColor",d:"M14.053 14.879a6.28 6.28 0 0 1-3.834 1.294C6.784 16.173 4 13.448 4 10.086S6.784 4 10.219 4c3.434 0 6.218 2.725 6.218 6.086 0 1.59-.622 3.037-1.641 4.12l5.056 4.95a.487.487 0 0 1 0 .699.513.513 0 0 1-.715 0zm1.384-4.793C15.437 7.297 13.121 5 10.22 5S5 7.297 5 10.086s2.316 5.087 5.219 5.087c2.902 0 5.218-2.298 5.218-5.087"})})}export{o as S};
|
|
2
|
+
//# sourceMappingURL=DXNAdVdo.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DXNAdVdo.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/SearchSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function SearchSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M14.053 14.879a6.28 6.28 0 0 1-3.834 1.294C6.784 16.173 4 13.448 4 10.086S6.784 4 10.219 4c3.434 0 6.218 2.725 6.218 6.086 0 1.59-.622 3.037-1.641 4.12l5.056 4.95a.487.487 0 0 1 0 .699.513.513 0 0 1-.715 0zm1.384-4.793C15.437 7.297 13.121 5 10.22 5S5 7.297 5 10.086s2.316 5.087 5.219 5.087c2.902 0 5.218-2.298 5.218-5.087'\n />\n </svg>\n );\n}\n"],"names":["SearchSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAAUC,EAAsC,CAC9D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,mUAAA,CAAA,EAEN,CAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DYFlAuiV.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,2 +1,2 @@
|
|
|
1
|
-
import{c as _,L as g,Z as T}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{c as _,L as g,Z as T}from"./app-CWLlxhC4.js";const O="sharedSearch.utils",m={"featured-result":1,"topic-list":8,company:8,"playlist-with-videos":1,"series-with-videos":1,"series-thumbnail":1,"playlist-thumbnail":1,"video-item":1,"companies-and-topics":16},E="curriculumCode",A={flattenResults(e){return e?e.results?{...e,results:_.flatten(e.results)}:{...e,results:[]}:null},getContextualSearchQueryParams(e){if(!e||!e.get("filterParam"))return{};const t=e.get("filterParam"),r=e.get("filterValue");return{[t]:r}},mapMaxScoreToSearchResults(e,t){return e.map(r=>t?{...r,_maxScore:t}:r)},groupResults(e,t,r,f,a){var c,p;if(!(e!=null&&e.length)&&!((c=t==null?void 0:t.results)!=null&&c.length)&&!((p=r==null?void 0:r.results)!=null&&p.length))return[];const[u,...s]=e,i=a.xs||a.sm,l=P(u,t,r,f,i);return s!=null&&s.length?S(s,l,i):l}};function v(e,t){var r;if(e._index==="video"||e._index==="interactive"||e._index==="clip")return"video-item";if(e._index==="series")return(r=e.tallPoster)!=null&&r.id&&!t?"series-with-videos":"series-thumbnail";if(e._index==="classification")return"topic-list";if(e._index==="playlist")return t?"playlist-thumbnail":"playlist-with-videos"}function P(e,t,r,f,a){var c,p,y;const u=a?"playlist-thumbnail":"playlist-with-videos",s=a?"series-thumbnail":"series-with-videos",i=[{type:"companies-and-topics",items:[...((c=r==null?void 0:r.results)==null?void 0:c.slice(0,m.company))??[],...((p=t==null?void 0:t.results)==null?void 0:p.slice(0,m["topic-list"]))??[]]},{type:"featured-result",items:T.isEmpty(f)?[]:[f]},{type:"video-item",items:[]},{type:"video-item",items:[]},{type:"video-item",items:[]},{type:u,items:[]},{type:s,items:[]},{heading:g.getPhrase(O,"relatedTopics"),type:"topic-list",items:((y=t==null?void 0:t.results)==null?void 0:y.slice(m["topic-list"],m["topic-list"]*2))??[]}];let l=!1;return e==null||e.forEach(n=>{const h=v(n,a);if(n._featured&&!l&&n._index==="video"){l=!0;return}if(i[2].items.length<m["video-item"]&&h==="video-item"){i[2].items.push(n);return}if(i[3].items.length<m["video-item"]&&h==="video-item"){i[3].items.push(n);return}if(i[4].items.length<m["video-item"]&&h==="video-item"){i[4].items.push(n);return}if(i[5].items.length<m[u]&&h===u){i[5].items.push(n);return}if(i[6].items.length<m[s]&&h===s){i[6].items.push(n);return}const d=i[i.length-1];if((d==null?void 0:d.type)===h){const o=m[h];d.items.length>=o?i.push({type:h,items:[n]}):d.items.push(n)}else i.push({type:h,items:[n]})}),i.filter(n=>{var h;return(h=n.items)==null?void 0:h.length})}function S(e,t,r){return e&&e.forEach(f=>{const a=t[t.length-1];let u=!0;f.forEach(s=>{const i=v(s,r);if(u&&a.type===i)a.items.length>=m[i]?(u=!1,t.push({type:i,items:[s]})):a.items.push(s);else{const l=t[t.length-1];(l==null?void 0:l.type)===i?l.items.length>=m[i]?t.push({type:i,items:[s]}):l.items.push(s):t.push({type:i,items:[s]})}})}),t}export{A as S,E as a};
|
|
2
|
+
//# sourceMappingURL=Dam_cOwt.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FXsyYEqA.chunk.js","sources":["../../../../libs/shared/src/apps/search/utils/SharedSearchHelper.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { SearchResultObjectTypes, SearchResults, TabulatedSearchResults } from 'libs/shared/apps/search/interfaces';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Series } from 'libs/shared/interfaces';\n\nconst namespace = 'sharedSearch.utils';\n\nconst ObjectTypeCapacities = {\n 'featured-result': 1,\n 'topic-list': 8,\n 'company': 8,\n 'playlist-with-videos': 1,\n 'series-with-videos': 1,\n 'series-thumbnail': 1,\n 'playlist-thumbnail': 1,\n 'video-item': 1,\n 'companies-and-topics': 16\n};\n\nexport const SEARCH_CURRICULUM_CODE_PARAM = 'curriculumCode';\n\nexport type SearchComponentTypes = 'featured-result' | 'topic-list' | 'playlist-with-videos' | 'playlist-thumbnail' | 'series-with-videos' | 'series-thumbnail' | 'video-item' | 'companies-and-topics';\n\nexport interface ResultGrouping {\n heading?: string;\n type: SearchComponentTypes;\n items: SearchResultObjectTypes[];\n}\n\ntype ResultGroupings = ResultGrouping[];\n\nexport const SharedSearchHelper = {\n flattenResults(tabulatedResults: TabulatedSearchResults): SearchResults {\n if (!tabulatedResults)\n return null;\n\n if (!tabulatedResults.results)\n return {\n ...tabulatedResults,\n results: []\n };\n\n return {\n ...tabulatedResults,\n results: ArrayHelper.flatten(tabulatedResults.results)\n };\n },\n getContextualSearchQueryParams(context: Core.Model): HashObject {\n if (!context || !context.get('filterParam'))\n return {};\n\n const param = context.get('filterParam');\n const value = context.get('filterValue');\n\n return {\n [param]: value\n };\n },\n\n /**\n * In order to better analyse which search results our users are selecting, we'll track both the\n * video's individual search score relative to the result which had the highest score or was considered to be\n * the \"best\" match.\n */\n mapMaxScoreToSearchResults<T extends SearchResultObjectTypes>(results: T[], resultsMaxScore: number): T[] {\n return results.map(r => {\n if (resultsMaxScore)\n return { ...r, _maxScore: resultsMaxScore };\n return r;\n });\n },\n\n groupResults(\n results: TabulatedSearchResults['results'],\n topicResults: SearchResults,\n companyResults: SearchResults,\n featuredResult: SearchResultObjectTypes,\n breakpoints: Breakpoints\n ): ResultGroupings {\n if (!results?.length && !topicResults?.results?.length && !companyResults?.results?.length)\n return [];\n\n const [ firstPageResults, ...otherPagesResults ] = results;\n const useSmallComponent = breakpoints.xs || breakpoints.sm;\n\n // The first page of results has a very specific structure\n const firstPage = structureFirstPage(\n firstPageResults,\n topicResults,\n companyResults,\n featuredResult,\n useSmallComponent\n );\n\n if (!otherPagesResults?.length)\n return firstPage;\n\n // All pages other than the first page have a less-defined structure\n return structureOtherPages(otherPagesResults, firstPage, useSmallComponent);\n }\n};\n\nfunction getObjectGrouping(\n obj: SearchResultObjectTypes,\n isUsingSmallComponent: boolean\n): SearchComponentTypes {\n if (obj._index === 'video' || obj._index === 'interactive' || obj._index === 'clip') {\n return 'video-item';\n }\n\n if (obj._index === 'series') {\n // Use series item when getting small\n if ((obj as Series).tallPoster?.id && !isUsingSmallComponent) {\n return 'series-with-videos';\n }\n\n return 'series-thumbnail';\n }\n\n if (obj._index === 'classification') {\n return 'topic-list';\n }\n\n if (obj._index === 'playlist') {\n if (isUsingSmallComponent) {\n return 'playlist-thumbnail';\n }\n \n return 'playlist-with-videos';\n }\n}\n\nfunction structureFirstPage(\n firstPage: SearchResultObjectTypes[],\n topicResults: SearchResults,\n companyResults: SearchResults,\n featuredResult: SearchResultObjectTypes,\n isUsingSmallComponent: boolean\n): ResultGroupings {\n /**\n * The very top of our search results has a defined structure of:\n * - 8 topics\n * - 1 featured video result (if there is one)\n * - 3 videos\n * - 1 playlist\n * - 1 series\n * - 8 topics\n * \n * We do our best from the first page of results to build this out. From then on, the results\n * render in order of relevancy.\n */\n const playlistType: SearchComponentTypes = isUsingSmallComponent ? 'playlist-thumbnail' : 'playlist-with-videos';\n const seriesType: SearchComponentTypes = isUsingSmallComponent ? 'series-thumbnail' : 'series-with-videos';\n const groupings: ResultGroupings = [\n {\n type: 'companies-and-topics',\n items: [\n ...(companyResults?.results?.slice(0, ObjectTypeCapacities['company']) ?? []),\n ...(topicResults?.results?.slice(0, ObjectTypeCapacities['topic-list']) ?? [])\n ]\n },\n {\n type: 'featured-result',\n items: !ObjectHelper.isEmpty(featuredResult) ? [featuredResult] : []\n },\n {\n type: 'video-item',\n items: []\n },\n {\n type: 'video-item',\n items: []\n },\n {\n type: 'video-item',\n items: []\n },\n {\n type: playlistType,\n items: []\n },\n {\n type: seriesType,\n items: []\n },\n {\n heading: LanguageService.getPhrase(namespace, 'relatedTopics'),\n type: 'topic-list',\n items: topicResults?.results?.slice(ObjectTypeCapacities['topic-list'], ObjectTypeCapacities['topic-list'] * 2) ?? []\n }\n ];\n\n let featuredResultFound = false;\n\n firstPage?.forEach(obj => {\n const currentObjectType = getObjectGrouping(obj, isUsingSmallComponent);\n\n // Identify the featured result, and leave it out of the main groupings\n if (obj._featured && !featuredResultFound && (obj._index === 'video')) {\n featuredResultFound = true;\n return;\n }\n\n if (groupings[2].items.length < ObjectTypeCapacities['video-item'] && currentObjectType === 'video-item') {\n groupings[2].items.push(obj);\n return;\n }\n\n if (groupings[3].items.length < ObjectTypeCapacities['video-item'] && currentObjectType === 'video-item') {\n groupings[3].items.push(obj);\n return;\n }\n\n if (groupings[4].items.length < ObjectTypeCapacities['video-item'] && currentObjectType === 'video-item') {\n groupings[4].items.push(obj);\n return;\n }\n\n if (groupings[5].items.length < ObjectTypeCapacities[playlistType] && currentObjectType === playlistType) {\n groupings[5].items.push(obj);\n return;\n }\n\n if (groupings[6].items.length < ObjectTypeCapacities[seriesType] && currentObjectType === seriesType) {\n groupings[6].items.push(obj);\n return;\n }\n\n const latestGrouping = groupings[groupings.length - 1];\n\n if (latestGrouping?.type === currentObjectType) {\n const capacity = ObjectTypeCapacities[currentObjectType];\n\n if (latestGrouping.items.length >= capacity) {\n groupings.push({ type: currentObjectType, items: [obj]});\n } else {\n latestGrouping.items.push(obj);\n }\n } else {\n groupings.push({ type: currentObjectType, items: [obj]});\n }\n });\n\n return groupings.filter(grouping => grouping.items?.length);\n}\n\nfunction structureOtherPages(\n otherPages: SearchResultObjectTypes[][],\n existingGroupings: ResultGroupings,\n isUsingSmallComponent: boolean\n): ResultGroupings {\n if (!otherPages)\n return existingGroupings;\n\n otherPages.forEach(page => {\n const lastGroupingFromPreviousPage = existingGroupings[existingGroupings.length - 1];\n\n let shouldAppendToPreviousGrouping = true;\n\n page.forEach(obj => {\n const currentObjectType = getObjectGrouping(obj, isUsingSmallComponent);\n\n if (shouldAppendToPreviousGrouping && lastGroupingFromPreviousPage.type === currentObjectType) {\n if (lastGroupingFromPreviousPage.items.length >= ObjectTypeCapacities[currentObjectType]) {\n shouldAppendToPreviousGrouping = false;\n existingGroupings.push({ type: currentObjectType, items: [obj]});\n } else {\n lastGroupingFromPreviousPage.items.push(obj);\n }\n } else {\n const latestGrouping = existingGroupings[existingGroupings.length - 1];\n\n if (latestGrouping?.type === currentObjectType) {\n if (latestGrouping.items.length >= ObjectTypeCapacities[currentObjectType]) {\n existingGroupings.push({ type: currentObjectType, items: [obj]});\n } else {\n latestGrouping.items.push(obj);\n }\n } else {\n existingGroupings.push({ type: currentObjectType, items: [obj]});\n }\n }\n });\n });\n\n return existingGroupings;\n}"],"names":["namespace","ObjectTypeCapacities","SEARCH_CURRICULUM_CODE_PARAM","SharedSearchHelper","tabulatedResults","ArrayHelper","context","param","value","results","resultsMaxScore","topicResults","companyResults","featuredResult","breakpoints","_a","_b","firstPageResults","otherPagesResults","useSmallComponent","firstPage","structureFirstPage","structureOtherPages","getObjectGrouping","obj","isUsingSmallComponent","playlistType","seriesType","groupings","ObjectHelper","LanguageService","_c","featuredResultFound","currentObjectType","latestGrouping","capacity","grouping","otherPages","existingGroupings","page","lastGroupingFromPreviousPage","shouldAppendToPreviousGrouping"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dam_cOwt.chunk.js","sources":["../../../../libs/shared/src/apps/search/utils/SharedSearchHelper.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { SearchResultObjectTypes, SearchResults, TabulatedSearchResults } from 'libs/shared/apps/search/interfaces';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Series } from 'libs/shared/interfaces';\n\nconst namespace = 'sharedSearch.utils';\n\nconst ObjectTypeCapacities = {\n 'featured-result': 1,\n 'topic-list': 8,\n 'company': 8,\n 'playlist-with-videos': 1,\n 'series-with-videos': 1,\n 'series-thumbnail': 1,\n 'playlist-thumbnail': 1,\n 'video-item': 1,\n 'companies-and-topics': 16\n};\n\nexport const SEARCH_CURRICULUM_CODE_PARAM = 'curriculumCode';\n\nexport type SearchComponentTypes = 'featured-result' | 'topic-list' | 'playlist-with-videos' | 'playlist-thumbnail' | 'series-with-videos' | 'series-thumbnail' | 'video-item' | 'companies-and-topics';\n\nexport interface ResultGrouping {\n heading?: string;\n type: SearchComponentTypes;\n items: SearchResultObjectTypes[];\n}\n\ntype ResultGroupings = ResultGrouping[];\n\nexport const SharedSearchHelper = {\n flattenResults(tabulatedResults: TabulatedSearchResults): SearchResults {\n if (!tabulatedResults)\n return null;\n\n if (!tabulatedResults.results)\n return {\n ...tabulatedResults,\n results: []\n };\n\n return {\n ...tabulatedResults,\n results: ArrayHelper.flatten(tabulatedResults.results)\n };\n },\n getContextualSearchQueryParams(context: Core.Model): HashObject {\n if (!context || !context.get('filterParam'))\n return {};\n\n const param = context.get('filterParam');\n const value = context.get('filterValue');\n\n return {\n [param]: value\n };\n },\n\n /**\n * In order to better analyse which search results our users are selecting, we'll track both the\n * video's individual search score relative to the result which had the highest score or was considered to be\n * the \"best\" match.\n */\n mapMaxScoreToSearchResults<T extends SearchResultObjectTypes>(results: T[], resultsMaxScore: number): T[] {\n return results.map(r => {\n if (resultsMaxScore)\n return { ...r, _maxScore: resultsMaxScore };\n return r;\n });\n },\n\n groupResults(\n results: TabulatedSearchResults['results'],\n topicResults: SearchResults,\n companyResults: SearchResults,\n featuredResult: SearchResultObjectTypes,\n breakpoints: Breakpoints\n ): ResultGroupings {\n if (!results?.length && !topicResults?.results?.length && !companyResults?.results?.length)\n return [];\n\n const [ firstPageResults, ...otherPagesResults ] = results;\n const useSmallComponent = breakpoints.xs || breakpoints.sm;\n\n // The first page of results has a very specific structure\n const firstPage = structureFirstPage(\n firstPageResults,\n topicResults,\n companyResults,\n featuredResult,\n useSmallComponent\n );\n\n if (!otherPagesResults?.length)\n return firstPage;\n\n // All pages other than the first page have a less-defined structure\n return structureOtherPages(otherPagesResults, firstPage, useSmallComponent);\n }\n};\n\nfunction getObjectGrouping(\n obj: SearchResultObjectTypes,\n isUsingSmallComponent: boolean\n): SearchComponentTypes {\n if (obj._index === 'video' || obj._index === 'interactive' || obj._index === 'clip') {\n return 'video-item';\n }\n\n if (obj._index === 'series') {\n // Use series item when getting small\n if ((obj as Series).tallPoster?.id && !isUsingSmallComponent) {\n return 'series-with-videos';\n }\n\n return 'series-thumbnail';\n }\n\n if (obj._index === 'classification') {\n return 'topic-list';\n }\n\n if (obj._index === 'playlist') {\n if (isUsingSmallComponent) {\n return 'playlist-thumbnail';\n }\n \n return 'playlist-with-videos';\n }\n}\n\nfunction structureFirstPage(\n firstPage: SearchResultObjectTypes[],\n topicResults: SearchResults,\n companyResults: SearchResults,\n featuredResult: SearchResultObjectTypes,\n isUsingSmallComponent: boolean\n): ResultGroupings {\n /**\n * The very top of our search results has a defined structure of:\n * - 8 topics\n * - 1 featured video result (if there is one)\n * - 3 videos\n * - 1 playlist\n * - 1 series\n * - 8 topics\n * \n * We do our best from the first page of results to build this out. From then on, the results\n * render in order of relevancy.\n */\n const playlistType: SearchComponentTypes = isUsingSmallComponent ? 'playlist-thumbnail' : 'playlist-with-videos';\n const seriesType: SearchComponentTypes = isUsingSmallComponent ? 'series-thumbnail' : 'series-with-videos';\n const groupings: ResultGroupings = [\n {\n type: 'companies-and-topics',\n items: [\n ...(companyResults?.results?.slice(0, ObjectTypeCapacities['company']) ?? []),\n ...(topicResults?.results?.slice(0, ObjectTypeCapacities['topic-list']) ?? [])\n ]\n },\n {\n type: 'featured-result',\n items: !ObjectHelper.isEmpty(featuredResult) ? [featuredResult] : []\n },\n {\n type: 'video-item',\n items: []\n },\n {\n type: 'video-item',\n items: []\n },\n {\n type: 'video-item',\n items: []\n },\n {\n type: playlistType,\n items: []\n },\n {\n type: seriesType,\n items: []\n },\n {\n heading: LanguageService.getPhrase(namespace, 'relatedTopics'),\n type: 'topic-list',\n items: topicResults?.results?.slice(ObjectTypeCapacities['topic-list'], ObjectTypeCapacities['topic-list'] * 2) ?? []\n }\n ];\n\n let featuredResultFound = false;\n\n firstPage?.forEach(obj => {\n const currentObjectType = getObjectGrouping(obj, isUsingSmallComponent);\n\n // Identify the featured result, and leave it out of the main groupings\n if (obj._featured && !featuredResultFound && (obj._index === 'video')) {\n featuredResultFound = true;\n return;\n }\n\n if (groupings[2].items.length < ObjectTypeCapacities['video-item'] && currentObjectType === 'video-item') {\n groupings[2].items.push(obj);\n return;\n }\n\n if (groupings[3].items.length < ObjectTypeCapacities['video-item'] && currentObjectType === 'video-item') {\n groupings[3].items.push(obj);\n return;\n }\n\n if (groupings[4].items.length < ObjectTypeCapacities['video-item'] && currentObjectType === 'video-item') {\n groupings[4].items.push(obj);\n return;\n }\n\n if (groupings[5].items.length < ObjectTypeCapacities[playlistType] && currentObjectType === playlistType) {\n groupings[5].items.push(obj);\n return;\n }\n\n if (groupings[6].items.length < ObjectTypeCapacities[seriesType] && currentObjectType === seriesType) {\n groupings[6].items.push(obj);\n return;\n }\n\n const latestGrouping = groupings[groupings.length - 1];\n\n if (latestGrouping?.type === currentObjectType) {\n const capacity = ObjectTypeCapacities[currentObjectType];\n\n if (latestGrouping.items.length >= capacity) {\n groupings.push({ type: currentObjectType, items: [obj]});\n } else {\n latestGrouping.items.push(obj);\n }\n } else {\n groupings.push({ type: currentObjectType, items: [obj]});\n }\n });\n\n return groupings.filter(grouping => grouping.items?.length);\n}\n\nfunction structureOtherPages(\n otherPages: SearchResultObjectTypes[][],\n existingGroupings: ResultGroupings,\n isUsingSmallComponent: boolean\n): ResultGroupings {\n if (!otherPages)\n return existingGroupings;\n\n otherPages.forEach(page => {\n const lastGroupingFromPreviousPage = existingGroupings[existingGroupings.length - 1];\n\n let shouldAppendToPreviousGrouping = true;\n\n page.forEach(obj => {\n const currentObjectType = getObjectGrouping(obj, isUsingSmallComponent);\n\n if (shouldAppendToPreviousGrouping && lastGroupingFromPreviousPage.type === currentObjectType) {\n if (lastGroupingFromPreviousPage.items.length >= ObjectTypeCapacities[currentObjectType]) {\n shouldAppendToPreviousGrouping = false;\n existingGroupings.push({ type: currentObjectType, items: [obj]});\n } else {\n lastGroupingFromPreviousPage.items.push(obj);\n }\n } else {\n const latestGrouping = existingGroupings[existingGroupings.length - 1];\n\n if (latestGrouping?.type === currentObjectType) {\n if (latestGrouping.items.length >= ObjectTypeCapacities[currentObjectType]) {\n existingGroupings.push({ type: currentObjectType, items: [obj]});\n } else {\n latestGrouping.items.push(obj);\n }\n } else {\n existingGroupings.push({ type: currentObjectType, items: [obj]});\n }\n }\n });\n });\n\n return existingGroupings;\n}"],"names":["namespace","ObjectTypeCapacities","SEARCH_CURRICULUM_CODE_PARAM","SharedSearchHelper","tabulatedResults","ArrayHelper","context","param","value","results","resultsMaxScore","topicResults","companyResults","featuredResult","breakpoints","_a","_b","firstPageResults","otherPagesResults","useSmallComponent","firstPage","structureFirstPage","structureOtherPages","getObjectGrouping","obj","isUsingSmallComponent","playlistType","seriesType","groupings","ObjectHelper","LanguageService","_c","featuredResultFound","currentObjectType","latestGrouping","capacity","grouping","otherPages","existingGroupings","page","lastGroupingFromPreviousPage","shouldAppendToPreviousGrouping"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a3 as A,aD as m,ad as d,ac as T,aI as r,ae as l,af as p,L as V,U as g,A as b,a as f,b as h,a6 as k}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a3 as A,aD as m,ad as d,ac as T,aI as r,ae as l,af as p,L as V,U as g,A as b,a as f,b as h,a6 as k}from"./app-CWLlxhC4.js";import{A as w}from"./Cem_15ru.chunk.js";const C="tv.addRequests",i=V.encloseNamespace(C);function y(u,a,o){const v=A(m.config());return function(e){var c;if(!a)return[];const t=u==="preview",n={id:e.id,name:e.title},s=t?d.VideoItemPreview:d.VideoListItem;return[{label:t?i("addVideo"):"",svg:t?void 0:w,tooltip:t?"":i("addVideo"),className:t?"btn btn-dark me-2 text-nowrap":"btn",button:!0,onClick:()=>{b.trigger({application:h.TV,action:f.Tv.ADD,args:[a.code,e.id],params:{currentTime:Math.floor(+(o==null?void 0:o.currentTime()))||void 0}})},analyticsData:n,analyticsOptions:{actionType:p.Click,entity:l.Video,descriptor:r.AddToWorkspace,location:s,workflowPhase:T.Start}},{label:i("editVideo"),href:g.urlBuilder(`${(c=v.data)==null?void 0:c.cloudEditorUrl}/tv/${e.globalId}`,{product:k.Exchange}),openInNewTab:!0,analyticsData:n,analyticsOptions:{actionType:p.Click,entity:l.Video,location:s,descriptor:r.EditVideo}}]}}export{y as u};
|
|
2
|
+
//# sourceMappingURL=Dgb7t1K4.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"Dgb7t1K4.chunk.js","sources":["../../src/apps/tv/hooks/useGetTvActions.ts"],"sourcesContent":["import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { AddVideoSvg } from 'libs/shared/images/svg/actions/AddVideoSvg';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.addRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Location = 'preview' | 'video-list';\n\nexport function useGetTvActions(location: Location, region: TvRegion, playerRef?: PlayerReference) {\n const config = Flight.useBasicFetch<ExchangeConfig>(ConfigRequests.config());\n \n return function getTvActions(program: TvProgram): ActionOptions[] {\n if (!region)\n return [];\n\n const isPreview = location === 'preview';\n const analyticsData = { id: program.id, name: program.title };\n const locationContext = isPreview ? LocationContext.VideoItemPreview : LocationContext.VideoListItem;\n\n // TODO: Register analytics for all actions\n return [{\n label: isPreview ? getPhrase('addVideo') : '',\n svg: !isPreview ? AddVideoSvg : undefined,\n tooltip: isPreview ? '' : getPhrase('addVideo'),\n className: isPreview ? 'btn btn-dark me-2 text-nowrap' : 'btn',\n button: true,\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ADD,\n args: [ region.code, program.id ],\n params: {\n currentTime: Math.floor(+playerRef?.currentTime()) || undefined\n }\n });\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n label: getPhrase('editVideo'),\n href: UrlHelper.urlBuilder(\n `${config.data?.cloudEditorUrl}/tv/${program.globalId}`,\n { product: ProductId.Exchange }\n ),\n openInNewTab: true,\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n location: locationContext,\n descriptor: VideoActionDescriptor.EditVideo\n }\n }];\n };\n}"],"names":["namespace","getPhrase","LanguageService","useGetTvActions","location","region","playerRef","config","Flight.useBasicFetch","ConfigRequests","program","isPreview","analyticsData","locationContext","LocationContext","AddVideoSvg","Core.AppLinkHelper","AppChannels","Actions","UserAction","EntityType","VideoActionDescriptor","WorkflowPhase","UrlHelper","_a","ProductId"],"mappings":"0KAoBA,MAAMA,EAAY,iBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAIrD,SAASG,EAAgBC,EAAoBC,EAAkBC,EAA6B,CACjG,MAAMC,EAASC,EAAqCC,EAAe,QAAQ,EAE3E,OAAO,SAAsBC,EAAqC,OAChE,GAAI,CAACL,EACH,MAAO,CAAA,EAET,MAAMM,EAAYP,IAAa,UACzBQ,EAAgB,CAAE,GAAIF,EAAQ,GAAI,KAAMA,EAAQ,KAAA,EAChDG,EAAkBF,EAAYG,EAAgB,iBAAmBA,EAAgB,cAGvF,MAAO,CAAC,CACN,MAAOH,EAAYV,EAAU,UAAU,EAAI,GAC3C,IAAMU,EAA0B,OAAdI,EAClB,QAASJ,EAAY,GAAKV,EAAU,UAAU,EAC9C,UAAWU,EAAY,gCAAkC,MACzD,OAAQ,GACR,QAAS,IAAM,CACbK,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,IACnB,KAAM,CAAEb,EAAO,KAAMK,EAAQ,EAAG,EAChC,OAAQ,CACN,YAAa,KAAK,MAAM,EAACJ,GAAA,YAAAA,EAAW,cAAa,GAAK,MAAA,CACxD,CACD,CACH,EACA,cAAAM,EACA,iBAAkB,CAChB,WAAYO,EAAW,MACvB,OAAQC,EAAW,MACnB,WAAYC,EAAsB,eAClC,SAAUR,EACV,cAAeS,EAAc,KAAA,CAC/B,EACC,CACD,MAAOrB,EAAU,WAAW,EAC5B,KAAMsB,EAAU,WACd,IAAGC,EAAAjB,EAAO,OAAP,YAAAiB,EAAa,cAAc,OAAOd,EAAQ,QAAQ,GACrD,CAAE,QAASe,EAAU,QAAA,CAAS,EAEhC,aAAc,GACd,cAAAb,EACA,iBAAkB,CAChB,WAAYO,EAAW,MACvB,OAAQC,EAAW,MACnB,SAAUP,EACV,WAAYQ,EAAsB,SAAA,CACpC,CACD,CACH,CACF"}
|