@clickview/exchange 0.62.0-rc.0 → 0.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/.vite/manifest.json +549 -549
  2. package/dist/bundles.json +1 -1
  3. package/dist/css/Crtlho0p.chunk.css +8 -0
  4. package/dist/en.json +1 -1
  5. package/dist/scripts/{Dg-h5qnR.chunk.js → 0uwnPAi2.chunk.js} +2 -2
  6. package/dist/scripts/{Dg-h5qnR.chunk.js.map → 0uwnPAi2.chunk.js.map} +1 -1
  7. package/dist/scripts/{CgGl8jzo.chunk.js → 6f-CHYL3.chunk.js} +2 -2
  8. package/dist/scripts/{CgGl8jzo.chunk.js.map → 6f-CHYL3.chunk.js.map} +1 -1
  9. package/dist/scripts/{CkH6ird3.chunk.js → B09qwiFG.chunk.js} +2 -2
  10. package/dist/scripts/{CkH6ird3.chunk.js.map → B09qwiFG.chunk.js.map} +1 -1
  11. package/dist/scripts/{BRQhDr-02.chunk.js → B0uOvqjG2.chunk.js} +2 -2
  12. package/dist/scripts/{BRQhDr-02.chunk.js.map → B0uOvqjG2.chunk.js.map} +1 -1
  13. package/dist/scripts/{ZSP3Vfha2.chunk.js → B8BobN3r2.chunk.js} +2 -2
  14. package/dist/scripts/{ZSP3Vfha2.chunk.js.map → B8BobN3r2.chunk.js.map} +1 -1
  15. package/dist/scripts/{BHKm8WQq2.chunk.js → B8wHzPHI2.chunk.js} +2 -2
  16. package/dist/scripts/{BHKm8WQq2.chunk.js.map → B8wHzPHI2.chunk.js.map} +1 -1
  17. package/dist/scripts/{CeCXhgoJ.chunk.js → BAIdKirt.chunk.js} +2 -2
  18. package/dist/scripts/{CeCXhgoJ.chunk.js.map → BAIdKirt.chunk.js.map} +1 -1
  19. package/dist/scripts/{Ct8ETEOn2.chunk.js → BAwP70HI2.chunk.js} +2 -2
  20. package/dist/scripts/{Ct8ETEOn2.chunk.js.map → BAwP70HI2.chunk.js.map} +1 -1
  21. package/dist/scripts/{YGLkoFLc.chunk.js → BEv09vqz.chunk.js} +2 -2
  22. package/dist/scripts/{YGLkoFLc.chunk.js.map → BEv09vqz.chunk.js.map} +1 -1
  23. package/dist/scripts/{uPFXIvcK2.chunk.js → BLs3APIS2.chunk.js} +2 -2
  24. package/dist/scripts/{uPFXIvcK2.chunk.js.map → BLs3APIS2.chunk.js.map} +1 -1
  25. package/dist/scripts/{D9zlZIWi2.chunk.js → BP0LMV9S2.chunk.js} +2 -2
  26. package/dist/scripts/{D9zlZIWi2.chunk.js.map → BP0LMV9S2.chunk.js.map} +1 -1
  27. package/dist/scripts/{CqNKzFA4.chunk.js → BPttZx0-.chunk.js} +2 -2
  28. package/dist/scripts/{CqNKzFA4.chunk.js.map → BPttZx0-.chunk.js.map} +1 -1
  29. package/dist/scripts/{B9Rb6IIb.chunk.js → BQk9Mhlr.chunk.js} +2 -2
  30. package/dist/scripts/{B9Rb6IIb.chunk.js.map → BQk9Mhlr.chunk.js.map} +1 -1
  31. package/dist/scripts/{CYUx40jk.chunk.js → BXIfsdxg.chunk.js} +2 -2
  32. package/dist/scripts/{CYUx40jk.chunk.js.map → BXIfsdxg.chunk.js.map} +1 -1
  33. package/dist/scripts/{CvQQNf_J2.chunk.js → B_P4D3Hf2.chunk.js} +2 -2
  34. package/dist/scripts/{CvQQNf_J2.chunk.js.map → B_P4D3Hf2.chunk.js.map} +1 -1
  35. package/dist/scripts/{Dp0gbhZx2.chunk.js → BgskDBpT2.chunk.js} +2 -2
  36. package/dist/scripts/{Dp0gbhZx2.chunk.js.map → BgskDBpT2.chunk.js.map} +1 -1
  37. package/dist/scripts/{Nx0q4bij.chunk.js → BhOZYAZn.chunk.js} +2 -2
  38. package/dist/scripts/{Nx0q4bij.chunk.js.map → BhOZYAZn.chunk.js.map} +1 -1
  39. package/dist/scripts/{CKrB9r9w.chunk.js → Bn9ROglk.chunk.js} +2 -2
  40. package/dist/scripts/{CKrB9r9w.chunk.js.map → Bn9ROglk.chunk.js.map} +1 -1
  41. package/dist/scripts/{Ds3cFntF2.chunk.js → Bo8PhXY12.chunk.js} +3 -3
  42. package/dist/scripts/{Ds3cFntF2.chunk.js.map → Bo8PhXY12.chunk.js.map} +1 -1
  43. package/dist/scripts/{Fu0bLEzl2.chunk.js → BrVyRSUS2.chunk.js} +2 -2
  44. package/dist/scripts/{Fu0bLEzl2.chunk.js.map → BrVyRSUS2.chunk.js.map} +1 -1
  45. package/dist/scripts/{CeHHO1Hv.chunk.js → BxLgTmMl.chunk.js} +2 -2
  46. package/dist/scripts/{CeHHO1Hv.chunk.js.map → BxLgTmMl.chunk.js.map} +1 -1
  47. package/dist/scripts/{BPgKK-d32.chunk.js → Bxsu4S752.chunk.js} +2 -2
  48. package/dist/scripts/{BPgKK-d32.chunk.js.map → Bxsu4S752.chunk.js.map} +1 -1
  49. package/dist/scripts/{B0VKYPiu.chunk.js → C-PORBUs.chunk.js} +2 -2
  50. package/dist/scripts/{B0VKYPiu.chunk.js.map → C-PORBUs.chunk.js.map} +1 -1
  51. package/dist/scripts/{RiPZGw_q2.chunk.js → C1StI3Bl2.chunk.js} +2 -2
  52. package/dist/scripts/{RiPZGw_q2.chunk.js.map → C1StI3Bl2.chunk.js.map} +1 -1
  53. package/dist/scripts/{DoTtsl0X.chunk.js → C6Hr-vqw.chunk.js} +2 -2
  54. package/dist/scripts/{DoTtsl0X.chunk.js.map → C6Hr-vqw.chunk.js.map} +1 -1
  55. package/dist/scripts/{UjMbny4R.chunk.js → CBnNAkzx.chunk.js} +2 -2
  56. package/dist/scripts/{UjMbny4R.chunk.js.map → CBnNAkzx.chunk.js.map} +1 -1
  57. package/dist/scripts/{DyRGf1o8.chunk.js → CFkqPGiT.chunk.js} +2 -2
  58. package/dist/scripts/{DyRGf1o8.chunk.js.map → CFkqPGiT.chunk.js.map} +1 -1
  59. package/dist/scripts/{Xs1Bv1h-.chunk.js → CKD2j1rw.chunk.js} +2 -2
  60. package/dist/scripts/{Xs1Bv1h-.chunk.js.map → CKD2j1rw.chunk.js.map} +1 -1
  61. package/dist/scripts/{aDegERgV2.chunk.js → CSKzCsLv2.chunk.js} +2 -2
  62. package/dist/scripts/{aDegERgV2.chunk.js.map → CSKzCsLv2.chunk.js.map} +1 -1
  63. package/dist/scripts/{DVVx1aiS2.chunk.js → CZgaUoHE2.chunk.js} +2 -2
  64. package/dist/scripts/{DVVx1aiS2.chunk.js.map → CZgaUoHE2.chunk.js.map} +1 -1
  65. package/dist/scripts/{B6mSouu5.chunk.js → C_7tv1r9.chunk.js} +2 -2
  66. package/dist/scripts/{B6mSouu5.chunk.js.map → C_7tv1r9.chunk.js.map} +1 -1
  67. package/dist/scripts/{DtYC8Udi2.chunk.js → C_jUsStb2.chunk.js} +2 -2
  68. package/dist/scripts/{DtYC8Udi2.chunk.js.map → C_jUsStb2.chunk.js.map} +1 -1
  69. package/dist/scripts/{BOvQpQ21.chunk.js → CdNTKjPA.chunk.js} +2 -2
  70. package/dist/scripts/{BOvQpQ21.chunk.js.map → CdNTKjPA.chunk.js.map} +1 -1
  71. package/dist/scripts/{C7OCN_w_.chunk.js → ChDwbV8F.chunk.js} +2 -2
  72. package/dist/scripts/{C7OCN_w_.chunk.js.map → ChDwbV8F.chunk.js.map} +1 -1
  73. package/dist/scripts/{CKUk2HqE.chunk.js → Cq-TpkxJ.chunk.js} +2 -2
  74. package/dist/scripts/{CKUk2HqE.chunk.js.map → Cq-TpkxJ.chunk.js.map} +1 -1
  75. package/dist/scripts/{o2htB_49.chunk.js → CrCX606H.chunk.js} +2 -2
  76. package/dist/scripts/{o2htB_49.chunk.js.map → CrCX606H.chunk.js.map} +1 -1
  77. package/dist/scripts/{D0H6Hjd-2.chunk.js → CrDpB82d2.chunk.js} +2 -2
  78. package/dist/scripts/{D0H6Hjd-2.chunk.js.map → CrDpB82d2.chunk.js.map} +1 -1
  79. package/dist/scripts/{DBKlntFN2.chunk.js → Czivka682.chunk.js} +2 -2
  80. package/dist/scripts/{DBKlntFN2.chunk.js.map → Czivka682.chunk.js.map} +1 -1
  81. package/dist/scripts/{eLmgigsW.chunk.js → DEP_Z-S0.chunk.js} +2 -2
  82. package/dist/scripts/{eLmgigsW.chunk.js.map → DEP_Z-S0.chunk.js.map} +1 -1
  83. package/dist/scripts/{cIPkkuhG.chunk.js → DQBoqkL7.chunk.js} +2 -2
  84. package/dist/scripts/{cIPkkuhG.chunk.js.map → DQBoqkL7.chunk.js.map} +1 -1
  85. package/dist/scripts/{BV2vTX2L.chunk.js → DeXP2wHV.chunk.js} +2 -2
  86. package/dist/scripts/{BV2vTX2L.chunk.js.map → DeXP2wHV.chunk.js.map} +1 -1
  87. package/dist/scripts/{C1u2qBZg2.chunk.js → Df82DFJ62.chunk.js} +2 -2
  88. package/dist/scripts/{C1u2qBZg2.chunk.js.map → Df82DFJ62.chunk.js.map} +1 -1
  89. package/dist/scripts/{Co_6cSBX2.chunk.js → DgrEIxhT2.chunk.js} +2 -2
  90. package/dist/scripts/{Co_6cSBX2.chunk.js.map → DgrEIxhT2.chunk.js.map} +1 -1
  91. package/dist/scripts/{CRHkMr9_2.chunk.js → DhT0tpZm2.chunk.js} +2 -2
  92. package/dist/scripts/{CRHkMr9_2.chunk.js.map → DhT0tpZm2.chunk.js.map} +1 -1
  93. package/dist/scripts/{CUdaR862.chunk.js → Dhe09-jE.chunk.js} +2 -2
  94. package/dist/scripts/{CUdaR862.chunk.js.map → Dhe09-jE.chunk.js.map} +1 -1
  95. package/dist/scripts/{BijIuzIs2.chunk.js → DhtgaF-y2.chunk.js} +2 -2
  96. package/dist/scripts/{BijIuzIs2.chunk.js.map → DhtgaF-y2.chunk.js.map} +1 -1
  97. package/dist/scripts/{BsSKrRku2.chunk.js → Div1wl-R2.chunk.js} +2 -2
  98. package/dist/scripts/{BsSKrRku2.chunk.js.map → Div1wl-R2.chunk.js.map} +1 -1
  99. package/dist/scripts/{CKNdXwxe2.chunk.js → DjuXXgD-2.chunk.js} +2 -2
  100. package/dist/scripts/{CKNdXwxe2.chunk.js.map → DjuXXgD-2.chunk.js.map} +1 -1
  101. package/dist/scripts/{DBJfKQKx.chunk.js → Dkazht4Q.chunk.js} +2 -2
  102. package/dist/scripts/{DBJfKQKx.chunk.js.map → Dkazht4Q.chunk.js.map} +1 -1
  103. package/dist/scripts/{D5qMnGHT2.chunk.js → DmmZ2XbB2.chunk.js} +2 -2
  104. package/dist/scripts/{D5qMnGHT2.chunk.js.map → DmmZ2XbB2.chunk.js.map} +1 -1
  105. package/dist/scripts/{CWsmm40y.chunk.js → Dr35AMvf.chunk.js} +2 -2
  106. package/dist/scripts/{CWsmm40y.chunk.js.map → Dr35AMvf.chunk.js.map} +1 -1
  107. package/dist/scripts/{CyAM5o2e.chunk.js → HgLS_KfH.chunk.js} +2 -2
  108. package/dist/scripts/{CyAM5o2e.chunk.js.map → HgLS_KfH.chunk.js.map} +1 -1
  109. package/dist/scripts/{zp5MUThO.chunk.js → W8Q7Z6fd.chunk.js} +2 -2
  110. package/dist/scripts/{zp5MUThO.chunk.js.map → W8Q7Z6fd.chunk.js.map} +1 -1
  111. package/dist/scripts/{NInuYe7b2.chunk.js → XWykPl9h2.chunk.js} +2 -2
  112. package/dist/scripts/{NInuYe7b2.chunk.js.map → XWykPl9h2.chunk.js.map} +1 -1
  113. package/dist/scripts/{BggsU83p2.chunk.js → _3n_0ch72.chunk.js} +2 -2
  114. package/dist/scripts/{BggsU83p2.chunk.js.map → _3n_0ch72.chunk.js.map} +1 -1
  115. package/dist/scripts/{app-DDrsm5nt.js → app-CgkYY4K0.js} +3 -3
  116. package/dist/scripts/app-CgkYY4K0.js.map +1 -0
  117. package/dist/scripts/{DeevL6eQ.chunk.js → go6zFmPK.chunk.js} +2 -2
  118. package/dist/scripts/{DeevL6eQ.chunk.js.map → go6zFmPK.chunk.js.map} +1 -1
  119. package/dist/scripts/{BJxTZJOX.chunk.js → p5-1Ey-R.chunk.js} +2 -2
  120. package/dist/scripts/{BJxTZJOX.chunk.js.map → p5-1Ey-R.chunk.js.map} +1 -1
  121. package/dist/scripts/{B0hNKKDw2.chunk.js → qrcrWbQJ2.chunk.js} +2 -2
  122. package/dist/scripts/{B0hNKKDw2.chunk.js.map → qrcrWbQJ2.chunk.js.map} +1 -1
  123. package/package.json +1 -1
  124. package/dist/scripts/app-DDrsm5nt.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{C as e,D as t,mn as n}from"./CnnBLBPY.chunk.js";import{g as r,n as i,t as a,v as o}from"./DW0w8_XN.chunk.js";import{t as s}from"./GN6vNflP.chunk.js";import{t as c}from"./BHEKlg6n.chunk.js";import{$ as l}from"./app-DDrsm5nt.js";import{t as u}from"./B7KaaLVd.chunk.js";import{n as d,t as f}from"./DCtkVk2b.chunk.js";var p=n(t()),m=e(),h=s.encloseNamespace(`shared.breadcrumbComponent`),g=64,_=48,v=p.forwardRef((e,t)=>{let{breadcrumb:{name:n,appLink:o,active:s},withBackIcon:c,linkClassName:l}=e,u=n,f=null;return u.length>_&&(u=n.slice(0,_)+`...`,f=n),(0,m.jsx)(`li`,{className:`breadcrumb-item${s?` active`:``}`,title:f,children:s?(0,m.jsx)(`strong`,{children:u}):(0,m.jsxs)(r,{appLink:o,ref:t,className:o?l:``,children:[c&&(0,m.jsx)(a,{svg:d,size:i.Small}),(0,m.jsx)(`span`,{className:c?`ms-2`:``,children:u})]})})}),y=({breadcrumbs:e,linkClassName:t})=>{let n=c(u.XS),r=e?.length||0,[i,a]=p.useState(!1),[o,s]=p.useState(!1),l=p.useRef(null);p.useEffect(()=>{let t=e?.reduce((e,t)=>e+t.name.length,0)??0;r>4&&t>g&&a(!0)},[e?.length]),p.useLayoutEffect(()=>{o&&l.current?.focus()},[l.current,o]);function d(){a(!1),s(!0)}if(!r||n&&r<2)return(0,m.jsx)(m.Fragment,{});if(n)return(0,m.jsx)(`nav`,{"aria-label":`breadcrumb`,children:(0,m.jsx)(`ol`,{className:`breadcrumb m-0 p-0`,children:(0,m.jsx)(v,{breadcrumb:e[r-2],withBackIcon:!0,linkClassName:t})})});let f=(0,m.jsx)(v,{breadcrumb:e[0],linkClassName:t}),_=r>2?(0,m.jsx)(v,{breadcrumb:e[1],linkClassName:t}):(0,m.jsx)(m.Fragment,{}),y=r>3?(0,m.jsx)(v,{breadcrumb:e[r-2],linkClassName:t}):(0,m.jsx)(m.Fragment,{}),b=r>1?(0,m.jsx)(v,{breadcrumb:e[r-1],linkClassName:t}):(0,m.jsx)(m.Fragment,{}),x=e.slice(2,r-2);return(0,m.jsx)(`nav`,{"aria-label":`breadcrumb`,children:(0,m.jsxs)(`ol`,{className:`breadcrumb m-0 p-0`,children:[f,_,i?(0,m.jsx)(`li`,{className:`breadcrumb-item`,children:(0,m.jsx)(`button`,{className:`btn-link`,onClick:d,"aria-label":h(`expand`),children:`...`})}):x.map((e,n)=>(0,m.jsx)(v,{breadcrumb:e,ref:n===0?l:null,linkClassName:t},n)),y,b]})})},b=p.memo(function({numItems:e=3}){return c(u.XS)?(0,m.jsx)(`div`,{className:`partial-loading-background`,style:{height:`1.3125rem`,width:`6rem`}}):(0,m.jsx)(`nav`,{"aria-label":`breadcrumb`,children:(0,m.jsx)(`ol`,{className:`breadcrumb m-0 p-0`,children:f.getPartialLoadingItems({numItems:e}).map(({width:e},t)=>(0,m.jsx)(`li`,{className:`breadcrumb-item`,children:(0,m.jsx)(`span`,{className:`d-inline-block partial-loading-background`,style:{width:e},dangerouslySetInnerHTML:{__html:`&nbsp`}})},t))})})}),x=`shared.videoSortSelect`,S=o.memoize(()=>({[l.RecentlyAdded]:{name:s.getPhrase(x,`recentlyAdded`)},[l.AtoZ]:{name:s.getPhrase(x,`atoz`)},[l.ZtoA]:{name:s.getPhrase(x,`ztoa`)},[l.Newest]:{name:s.getPhrase(x,`newest`)},[l.Oldest]:{name:s.getPhrase(x,`oldest`)},[l.Series]:{name:s.getPhrase(x,`series`)}}));function C(e){let t=S();return e&&(t={[l.ProductionYear]:{name:s.getPhrase(x,`productionYear`)},...t}),t}w.defaultProps={variant:`light`};function w(e){let t=e.sortTypes||C(e.includeProductionYear);return(0,m.jsxs)(`div`,{className:`dropdown`,children:[(0,m.jsx)(`button`,{className:`btn btn-${e.variant} ms-2 dropdown-toggle`,type:`button`,id:`sort-select`,"data-bs-toggle":`dropdown`,"aria-haspopup":`true`,"aria-expanded":`false`,children:t[e.type].name}),(0,m.jsx)(`ul`,{className:`dropdown-menu dropdown-menu-end`,"aria-labelledby":`sort-select`,children:Object.keys(t).map(n=>{let i=`dropdown-item`;return n===e.type&&(i+=` active`),(0,m.jsx)(`li`,{children:(0,m.jsx)(r,{className:i,appLink:e.getSortAppLink(n),analyticsData:{sort:t[n].name},analyticsOptions:e.analyticsOptions,children:t[n].name})},n)})})]})}export{y as n,b as r,w as t};
2
- //# sourceMappingURL=CWsmm40y.chunk.js.map
1
+ import{C as e,D as t,mn as n}from"./CnnBLBPY.chunk.js";import{g as r,n as i,t as a,v as o}from"./DW0w8_XN.chunk.js";import{t as s}from"./GN6vNflP.chunk.js";import{t as c}from"./BHEKlg6n.chunk.js";import{$ as l}from"./app-CgkYY4K0.js";import{t as u}from"./B7KaaLVd.chunk.js";import{n as d,t as f}from"./DCtkVk2b.chunk.js";var p=n(t()),m=e(),h=s.encloseNamespace(`shared.breadcrumbComponent`),g=64,_=48,v=p.forwardRef((e,t)=>{let{breadcrumb:{name:n,appLink:o,active:s},withBackIcon:c,linkClassName:l}=e,u=n,f=null;return u.length>_&&(u=n.slice(0,_)+`...`,f=n),(0,m.jsx)(`li`,{className:`breadcrumb-item${s?` active`:``}`,title:f,children:s?(0,m.jsx)(`strong`,{children:u}):(0,m.jsxs)(r,{appLink:o,ref:t,className:o?l:``,children:[c&&(0,m.jsx)(a,{svg:d,size:i.Small}),(0,m.jsx)(`span`,{className:c?`ms-2`:``,children:u})]})})}),y=({breadcrumbs:e,linkClassName:t})=>{let n=c(u.XS),r=e?.length||0,[i,a]=p.useState(!1),[o,s]=p.useState(!1),l=p.useRef(null);p.useEffect(()=>{let t=e?.reduce((e,t)=>e+t.name.length,0)??0;r>4&&t>g&&a(!0)},[e?.length]),p.useLayoutEffect(()=>{o&&l.current?.focus()},[l.current,o]);function d(){a(!1),s(!0)}if(!r||n&&r<2)return(0,m.jsx)(m.Fragment,{});if(n)return(0,m.jsx)(`nav`,{"aria-label":`breadcrumb`,children:(0,m.jsx)(`ol`,{className:`breadcrumb m-0 p-0`,children:(0,m.jsx)(v,{breadcrumb:e[r-2],withBackIcon:!0,linkClassName:t})})});let f=(0,m.jsx)(v,{breadcrumb:e[0],linkClassName:t}),_=r>2?(0,m.jsx)(v,{breadcrumb:e[1],linkClassName:t}):(0,m.jsx)(m.Fragment,{}),y=r>3?(0,m.jsx)(v,{breadcrumb:e[r-2],linkClassName:t}):(0,m.jsx)(m.Fragment,{}),b=r>1?(0,m.jsx)(v,{breadcrumb:e[r-1],linkClassName:t}):(0,m.jsx)(m.Fragment,{}),x=e.slice(2,r-2);return(0,m.jsx)(`nav`,{"aria-label":`breadcrumb`,children:(0,m.jsxs)(`ol`,{className:`breadcrumb m-0 p-0`,children:[f,_,i?(0,m.jsx)(`li`,{className:`breadcrumb-item`,children:(0,m.jsx)(`button`,{className:`btn-link`,onClick:d,"aria-label":h(`expand`),children:`...`})}):x.map((e,n)=>(0,m.jsx)(v,{breadcrumb:e,ref:n===0?l:null,linkClassName:t},n)),y,b]})})},b=p.memo(function({numItems:e=3}){return c(u.XS)?(0,m.jsx)(`div`,{className:`partial-loading-background`,style:{height:`1.3125rem`,width:`6rem`}}):(0,m.jsx)(`nav`,{"aria-label":`breadcrumb`,children:(0,m.jsx)(`ol`,{className:`breadcrumb m-0 p-0`,children:f.getPartialLoadingItems({numItems:e}).map(({width:e},t)=>(0,m.jsx)(`li`,{className:`breadcrumb-item`,children:(0,m.jsx)(`span`,{className:`d-inline-block partial-loading-background`,style:{width:e},dangerouslySetInnerHTML:{__html:`&nbsp`}})},t))})})}),x=`shared.videoSortSelect`,S=o.memoize(()=>({[l.RecentlyAdded]:{name:s.getPhrase(x,`recentlyAdded`)},[l.AtoZ]:{name:s.getPhrase(x,`atoz`)},[l.ZtoA]:{name:s.getPhrase(x,`ztoa`)},[l.Newest]:{name:s.getPhrase(x,`newest`)},[l.Oldest]:{name:s.getPhrase(x,`oldest`)},[l.Series]:{name:s.getPhrase(x,`series`)}}));function C(e){let t=S();return e&&(t={[l.ProductionYear]:{name:s.getPhrase(x,`productionYear`)},...t}),t}w.defaultProps={variant:`light`};function w(e){let t=e.sortTypes||C(e.includeProductionYear);return(0,m.jsxs)(`div`,{className:`dropdown`,children:[(0,m.jsx)(`button`,{className:`btn btn-${e.variant} ms-2 dropdown-toggle`,type:`button`,id:`sort-select`,"data-bs-toggle":`dropdown`,"aria-haspopup":`true`,"aria-expanded":`false`,children:t[e.type].name}),(0,m.jsx)(`ul`,{className:`dropdown-menu dropdown-menu-end`,"aria-labelledby":`sort-select`,children:Object.keys(t).map(n=>{let i=`dropdown-item`;return n===e.type&&(i+=` active`),(0,m.jsx)(`li`,{children:(0,m.jsx)(r,{className:i,appLink:e.getSortAppLink(n),analyticsData:{sort:t[n].name},analyticsOptions:e.analyticsOptions,children:t[n].name})},n)})})]})}export{y as n,b as r,w as t};
2
+ //# sourceMappingURL=Dr35AMvf.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CWsmm40y.chunk.js","names":[],"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: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\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}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Dr35AMvf.chunk.js","names":[],"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: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\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}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{y as e}from"./D8clSITt.chunk.js";import{t}from"./CBDo4oAU.chunk.js";import{t as n}from"./CrBD6Z4s.chunk.js";import{Q as r,c as i}from"./app-DDrsm5nt.js";import{t as a}from"./D2DuwJJH2.chunk.js";import{r as o}from"./CsCke1Uk.chunk.js";var s={exchange(){return{url:n.urlBuilder(`/api/domain/v2/me/libraries`,{type:[`exchange`],maxCategoryDepth:0}),key:`exchange`,normalize:!1,formatData:e=>t.first(e).data}},categories(){return{url:n.urlBuilder(`/api/domain/v2/me/libraries`,{type:[`exchange`],maxCategoryDepth:2}),key:`exchange:categories`,normalize:!1,formatData:e=>t.first(e).children}},folderVideos(e,t,o){let s=r.getVideoSortParam(t),c=(s?`{${s},libraries.typeid:18}`:``)+i.VIDEO_COLLECTION;return{url:n.urlBuilder(`{gateway}/v1/objects/${e}/videos`,{cursor:o,query:c,permissionFilterOption:a.StripMetadata}),key:[`folder`,`videos`,e,o,t].filter(e=>!!e).join(`:`)}},seriesVideos(e,t,a){let o=r.getVideoSortParam(t),s=(o?`{${o},libraries.typeid:18}`:``)+i.VIDEO_COLLECTION;return{url:n.urlBuilder(`{gateway}/v1/collections/${e}/videos`,{query:s,cursor:a}),key:[`series`,`videos`,e,a,t].filter(e=>!!e).join(`:`)}},mostRecentVideos(e,t){let r=`{orderByDesc:timestamp}`+i.VIDEO_COLLECTION;return{url:n.urlBuilder(`{gateway}/v1/collections/${e}/videos`,{query:r,cursor:t}),key:[`mostRecent`,`videos`,e,t].filter(e=>!!e).join(`:`)}},addVideo(t,n){return{key:`add:video:exchange`,url:`{gateway}/v1/users/me/add-videos`,data:{libraryId:t,objectId:n},type:e.POST,invalidationKeys:`videos:${n}:`}},suggestEdit(t,n){return{key:`suggest:an:edit`,url:`{gateway}/v1/videos/${t}/suggest-edit`,data:n,type:e.POST}},search(e,t,r={},i){let a=`search:${e}:${t}:${i}`;a+=Object.keys(r).map(e=>r[e]).join(`;`);let s=Object.assign({},{index:t,cursor:i??void 0,query:e,...r});return{url:n.urlBuilder(`{gateway}/v3/search/exchange`,s),key:a,formatData:e=>{let t=e.totalResults,n=e?.results?.filter(e=>{if(e._index!==`series`&&e._index!==`playlist`)return!0;if(e._index===`playlist`){let n=e;return n.clips?.data?.length||n.interactives?.data?.length||n.videos?.data?.length?!0:(t--,!1)}return e.videos?.data?.length===0?(t--,!1):!0})??[];e.results=n,e.totalResults=t;let r=n[0]?._score;return{...e,results:o.mapMaxScoreToSearchResults(n,r)}}}}};export{s as t};
2
- //# sourceMappingURL=CyAM5o2e.chunk.js.map
1
+ import{y as e}from"./D8clSITt.chunk.js";import{t}from"./CBDo4oAU.chunk.js";import{t as n}from"./CrBD6Z4s.chunk.js";import{Q as r,c as i}from"./app-CgkYY4K0.js";import{t as a}from"./D2DuwJJH2.chunk.js";import{r as o}from"./CsCke1Uk.chunk.js";var s={exchange(){return{url:n.urlBuilder(`/api/domain/v2/me/libraries`,{type:[`exchange`],maxCategoryDepth:0}),key:`exchange`,normalize:!1,formatData:e=>t.first(e).data}},categories(){return{url:n.urlBuilder(`/api/domain/v2/me/libraries`,{type:[`exchange`],maxCategoryDepth:2}),key:`exchange:categories`,normalize:!1,formatData:e=>t.first(e).children}},folderVideos(e,t,o){let s=r.getVideoSortParam(t),c=(s?`{${s},libraries.typeid:18}`:``)+i.VIDEO_COLLECTION;return{url:n.urlBuilder(`{gateway}/v1/objects/${e}/videos`,{cursor:o,query:c,permissionFilterOption:a.StripMetadata}),key:[`folder`,`videos`,e,o,t].filter(e=>!!e).join(`:`)}},seriesVideos(e,t,a){let o=r.getVideoSortParam(t),s=(o?`{${o},libraries.typeid:18}`:``)+i.VIDEO_COLLECTION;return{url:n.urlBuilder(`{gateway}/v1/collections/${e}/videos`,{query:s,cursor:a}),key:[`series`,`videos`,e,a,t].filter(e=>!!e).join(`:`)}},mostRecentVideos(e,t){let r=`{orderByDesc:timestamp}`+i.VIDEO_COLLECTION;return{url:n.urlBuilder(`{gateway}/v1/collections/${e}/videos`,{query:r,cursor:t}),key:[`mostRecent`,`videos`,e,t].filter(e=>!!e).join(`:`)}},addVideo(t,n){return{key:`add:video:exchange`,url:`{gateway}/v1/users/me/add-videos`,data:{libraryId:t,objectId:n},type:e.POST,invalidationKeys:`videos:${n}:`}},suggestEdit(t,n){return{key:`suggest:an:edit`,url:`{gateway}/v1/videos/${t}/suggest-edit`,data:n,type:e.POST}},search(e,t,r={},i){let a=`search:${e}:${t}:${i}`;a+=Object.keys(r).map(e=>r[e]).join(`;`);let s=Object.assign({},{index:t,cursor:i??void 0,query:e,...r});return{url:n.urlBuilder(`{gateway}/v3/search/exchange`,s),key:a,formatData:e=>{let t=e.totalResults,n=e?.results?.filter(e=>{if(e._index!==`series`&&e._index!==`playlist`)return!0;if(e._index===`playlist`){let n=e;return n.clips?.data?.length||n.interactives?.data?.length||n.videos?.data?.length?!0:(t--,!1)}return e.videos?.data?.length===0?(t--,!1):!0})??[];e.results=n,e.totalResults=t;let r=n[0]?._score;return{...e,results:o.mapMaxScoreToSearchResults(n,r)}}}}};export{s as t};
2
+ //# sourceMappingURL=HgLS_KfH.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CyAM5o2e.chunk.js","names":[],"sources":["../../src/apps/exchange/flight-requests/ExchangeRequests.ts"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SearchIndices, SearchResultObjectTypes, SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport { SharedSearchHelper } from 'libs/shared/apps/search/utils/SharedSearchHelper';\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Playlist, Series, SuggestEditRequest } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nexport const ExchangeRequests = {\n exchange() {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 0\n }),\n key: 'exchange',\n normalize: false,\n formatData: (data: HashObject[]) => {\n return ArrayHelper.first(data).data;\n }\n };\n },\n categories() {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 2\n }),\n key: 'exchange:categories',\n normalize: false,\n formatData: (data: HashObject[]) => {\n return ArrayHelper.first(data).children;\n }\n };\n },\n folderVideos(\n folderId: string,\n sort?: VideoSortType,\n cursor?: string\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n \n const query = (sortFilter ? `{${sortFilter},libraries.typeid:18}` : '') + SharedWithStatements.VIDEO_COLLECTION;\n\n const url = UrlHelper.urlBuilder(`{gateway}/v1/objects/${folderId}/videos`, {\n cursor,\n query,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n });\n\n const key = [ 'folder', 'videos', folderId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url,\n key\n };\n },\n seriesVideos(\n seriesId: string,\n sort?: VideoSortType,\n cursor?: string\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n\n const query = (sortFilter ? `{${sortFilter},libraries.typeid:18}` : '') + SharedWithStatements.VIDEO_COLLECTION;\n\n const url = UrlHelper.urlBuilder(`{gateway}/v1/collections/${seriesId}/videos`, {\n query,\n cursor\n });\n\n const key = [ 'series', 'videos', seriesId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url,\n key\n };\n },\n mostRecentVideos(exchangeId: string, cursor?: string): Flight.Request {\n const query = '{orderByDesc:timestamp}' + SharedWithStatements.VIDEO_COLLECTION;\n \n const url = UrlHelper.urlBuilder(`{gateway}/v1/collections/${exchangeId}/videos`, {\n query,\n cursor\n });\n\n const key = [ 'mostRecent', 'videos', exchangeId, cursor ].filter(k => !!k).join(':');\n\n return {\n url,\n key\n };\n },\n addVideo(\n libraryId: string,\n objectId: string\n ): Flight.Request {\n return {\n key: 'add:video:exchange',\n url: '{gateway}/v1/users/me/add-videos',\n data: {\n libraryId,\n objectId\n },\n type: HttpVerbs.POST,\n invalidationKeys: `videos:${objectId}:`\n };\n },\n\n suggestEdit(id: string, data: SuggestEditRequest): Flight.Request {\n return {\n key: 'suggest:an:edit',\n url: `{gateway}/v1/videos/${id}/suggest-edit`,\n data,\n type: HttpVerbs.POST\n };\n },\n\n search(\n query: string,\n indices: SearchIndices[],\n filters: HashObject = {},\n cursor?: string\n ): Flight.Request {\n let key = `search:${query}:${indices}:${cursor}`;\n\n key += Object.keys(filters).map(filterName => filters[filterName]).join(';');\n\n const params = Object.assign({}, {\n index: indices,\n cursor: cursor ?? undefined,\n query,\n ...filters\n });\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v3/search/exchange', params),\n key,\n formatData: (response: SearchResults<SearchResultObjectTypes>) => {\n /**\n * Until playlists and series are regionalised, search will always return every series/playlist that exists\n * even if the current user doesn't have access to the content inside (which will happen for example when playlists/series)\n * contain all UK library content but is being searched for by an AU user.\n *\n * For some search queries, this may result in search showing a bunch of \"empty\" playlists/series, which sucks.\n * This will filter all empty collections out and decrement the `totalResults` to avoid this and make search a better\n * experience.\n *\n * Ideally this will be removed one day when this regionalisation is no longer an issue.\n */\n let totalResults = response.totalResults;\n\n const results = response?.results?.filter(result => {\n if (result._index !== 'series' && result._index !== 'playlist')\n return true;\n\n if (result._index === 'playlist') {\n const playlist = result as SearchResultsObject<Playlist>;\n\n if (playlist.clips?.data?.length ||\n playlist.interactives?.data?.length ||\n playlist.videos?.data?.length)\n return true;\n\n totalResults--;\n return false;\n }\n\n if ((result as SearchResultsObject<Series>).videos?.data?.length === 0) {\n totalResults--;\n return false;\n }\n\n return true;\n }) ?? [];\n\n response.results = results;\n response.totalResults = totalResults;\n\n // The first search result will always have the highest score value.\n // We store it so that we can access it for subsequent results pages\n const resultMaxScore = results[0]?._score;\n\n return {\n ...response,\n results: SharedSearchHelper.mapMaxScoreToSearchResults(results, resultMaxScore)\n };\n }\n };\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"HgLS_KfH.chunk.js","names":[],"sources":["../../src/apps/exchange/flight-requests/ExchangeRequests.ts"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SearchIndices, SearchResultObjectTypes, SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport { SharedSearchHelper } from 'libs/shared/apps/search/utils/SharedSearchHelper';\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Playlist, Series, SuggestEditRequest } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nexport const ExchangeRequests = {\n exchange() {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 0\n }),\n key: 'exchange',\n normalize: false,\n formatData: (data: HashObject[]) => {\n return ArrayHelper.first(data).data;\n }\n };\n },\n categories() {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 2\n }),\n key: 'exchange:categories',\n normalize: false,\n formatData: (data: HashObject[]) => {\n return ArrayHelper.first(data).children;\n }\n };\n },\n folderVideos(\n folderId: string,\n sort?: VideoSortType,\n cursor?: string\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n \n const query = (sortFilter ? `{${sortFilter},libraries.typeid:18}` : '') + SharedWithStatements.VIDEO_COLLECTION;\n\n const url = UrlHelper.urlBuilder(`{gateway}/v1/objects/${folderId}/videos`, {\n cursor,\n query,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n });\n\n const key = [ 'folder', 'videos', folderId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url,\n key\n };\n },\n seriesVideos(\n seriesId: string,\n sort?: VideoSortType,\n cursor?: string\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n\n const query = (sortFilter ? `{${sortFilter},libraries.typeid:18}` : '') + SharedWithStatements.VIDEO_COLLECTION;\n\n const url = UrlHelper.urlBuilder(`{gateway}/v1/collections/${seriesId}/videos`, {\n query,\n cursor\n });\n\n const key = [ 'series', 'videos', seriesId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url,\n key\n };\n },\n mostRecentVideos(exchangeId: string, cursor?: string): Flight.Request {\n const query = '{orderByDesc:timestamp}' + SharedWithStatements.VIDEO_COLLECTION;\n \n const url = UrlHelper.urlBuilder(`{gateway}/v1/collections/${exchangeId}/videos`, {\n query,\n cursor\n });\n\n const key = [ 'mostRecent', 'videos', exchangeId, cursor ].filter(k => !!k).join(':');\n\n return {\n url,\n key\n };\n },\n addVideo(\n libraryId: string,\n objectId: string\n ): Flight.Request {\n return {\n key: 'add:video:exchange',\n url: '{gateway}/v1/users/me/add-videos',\n data: {\n libraryId,\n objectId\n },\n type: HttpVerbs.POST,\n invalidationKeys: `videos:${objectId}:`\n };\n },\n\n suggestEdit(id: string, data: SuggestEditRequest): Flight.Request {\n return {\n key: 'suggest:an:edit',\n url: `{gateway}/v1/videos/${id}/suggest-edit`,\n data,\n type: HttpVerbs.POST\n };\n },\n\n search(\n query: string,\n indices: SearchIndices[],\n filters: HashObject = {},\n cursor?: string\n ): Flight.Request {\n let key = `search:${query}:${indices}:${cursor}`;\n\n key += Object.keys(filters).map(filterName => filters[filterName]).join(';');\n\n const params = Object.assign({}, {\n index: indices,\n cursor: cursor ?? undefined,\n query,\n ...filters\n });\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v3/search/exchange', params),\n key,\n formatData: (response: SearchResults<SearchResultObjectTypes>) => {\n /**\n * Until playlists and series are regionalised, search will always return every series/playlist that exists\n * even if the current user doesn't have access to the content inside (which will happen for example when playlists/series)\n * contain all UK library content but is being searched for by an AU user.\n *\n * For some search queries, this may result in search showing a bunch of \"empty\" playlists/series, which sucks.\n * This will filter all empty collections out and decrement the `totalResults` to avoid this and make search a better\n * experience.\n *\n * Ideally this will be removed one day when this regionalisation is no longer an issue.\n */\n let totalResults = response.totalResults;\n\n const results = response?.results?.filter(result => {\n if (result._index !== 'series' && result._index !== 'playlist')\n return true;\n\n if (result._index === 'playlist') {\n const playlist = result as SearchResultsObject<Playlist>;\n\n if (playlist.clips?.data?.length ||\n playlist.interactives?.data?.length ||\n playlist.videos?.data?.length)\n return true;\n\n totalResults--;\n return false;\n }\n\n if ((result as SearchResultsObject<Series>).videos?.data?.length === 0) {\n totalResults--;\n return false;\n }\n\n return true;\n }) ?? [];\n\n response.results = results;\n response.totalResults = totalResults;\n\n // The first search result will always have the highest score value.\n // We store it so that we can access it for subsequent results pages\n const resultMaxScore = results[0]?._score;\n\n return {\n ...response,\n results: SharedSearchHelper.mapMaxScoreToSearchResults(results, resultMaxScore)\n };\n }\n };\n }\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{C as e,D as t,St as n,b as r,d as i,mn as a,s as o,yt as s}from"./CnnBLBPY.chunk.js";import{g as c,y as l}from"./DW0w8_XN.chunk.js";import{l as u}from"./D8clSITt.chunk.js";import{t as d}from"./CBDo4oAU.chunk.js";import{t as f}from"./GN6vNflP.chunk.js";import{n as p,t as m}from"./Dn3hwC-o.chunk.js";import{t as h}from"./BjaJoJzM.chunk.js";import{t as g}from"./xL848v0O.chunk.js";import{D as _,Z as v}from"./app-DDrsm5nt.js";import{t as y}from"./Bzw5oyg9.chunk.js";import{t as b}from"./CeHHO1Hv.chunk.js";import{t as x}from"./C7OCN_w_.chunk.js";import{t as S}from"./BOvQpQ21.chunk.js";import{t as C}from"./BcJCL8cu2.chunk.js";import{t as w}from"./BdSdO6n62.chunk.js";import{t as T}from"./C6jF43q92.chunk.js";import{t as E}from"./uPFXIvcK2.chunk.js";import{n as D,r as O,t as k}from"./DdwVkiCn2.chunk.js";import{n as A,t as j}from"./CvQQNf_J2.chunk.js";import{n as M,t as N}from"./6124murE2.chunk.js";import{t as P}from"./Fu0bLEzl2.chunk.js";var F=a(t()),I={pillTabSelector:`_pillTabSelector_1d8n6_1`},L=e(),R=`Custom.#.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z`.split(`.`),z={"#":`0`},B={actionType:r.Click,entity:o.Url,location:i.MagicTabs};function V(e,t){if(!e)return;if(e===`0`)return`#`;let n=R.find(t=>t.toUpperCase()===e.toUpperCase());if(!(n===`Custom`&&!t))return n}function H(e){return R.map(t=>{if(t===`Custom`&&!e.showCustom)return;let r=e.getItemAppLink(z[t]??t);return{name:t,appLink:r,active:e.selected===t,analyticsData:{name:t,url:n.getHref(r)},analyticsOptions:B}}).filter(Boolean)}function U(e){let t=H({selected:V(e.selected,e.showCustom),showCustom:e.showCustom,getItemAppLink:e.getItemAppLink});return(0,L.jsx)(`div`,{className:l(e.noMarginBottom?`mb-0`:`mb-3`,e.className),children:(0,L.jsx)(S,{tabs:t,className:I.pillTabSelector,enableSmallScreenSupport:e.enableSmallScreenSupport,formatDisplayText:e.formatDisplayText,forceSmallScreenDropdown:e.forceSmallScreenDropdown})})}var W={dateContainer:`_dateContainer_b9acj_1`,hover:`_hover_b9acj_4`,channelLogo:`_channelLogo_b9acj_7`,channelLogoContainer:`_channelLogoContainer_b9acj_10`,programsContainer:`_programsContainer_b9acj_13`,date:`_date_b9acj_1`,itemContainer:`_itemContainer_b9acj_19`,badgeWrapper:`_badgeWrapper_b9acj_22`,thumbnail:`_thumbnail_b9acj_27`};function G(e){function t(t){return d.findWhere(e.channels,{name:t})?.logoUrl}return(0,L.jsx)(`div`,{className:`mb-2`,children:e.groupedPrograms.map(([n,r])=>(0,L.jsxs)(`div`,{className:`border-top d-flex pt-3 pb-2`,children:[(0,L.jsx)(`div`,{className:`${W.channelLogoContainer} flex-shrink-0 mb-3`,children:(0,L.jsx)(`img`,{src:t(n),alt:n,className:`${W.channelLogo} ms-4`})}),(0,L.jsx)(`div`,{className:`w-100`,children:r.map(([t,n])=>(0,L.jsx)(K,{date:t,programs:n,tvPreviewUrls:e.tvPreviewUrls},t))})]},n))})}function K(e){let[t,n]=F.useState();function r(e){switch(e.programType){case k.Video:return{application:p.TV,action:m.Tv.PREVIEW,args:[e.regionCode,e.id]};case k.Audio:return{application:p.TV,action:m.Tv.RADIO_DOWNLOAD,args:[e.id]}}}function i(t){return`${e.tvPreviewUrls[t.regionCode]}/thumbnail/${t.globalId.split(`-`).join(``)}.jpg`}return(0,L.jsx)(`div`,{className:`${W.dateContainer} ${t?W.hover:``} py-2 px-3 rounded`,children:(0,L.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,L.jsx)(`div`,{className:`${W.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`,children:(0,L.jsx)(y,{src:i(t||e.programs[0]),alt:g.format(e.date,`D MMM`),extraClasses:`w-100 rounded`})}),(0,L.jsxs)(`p`,{className:`${W.date} fw-semibold flex-shrink-0 mb-0`,children:[g.format(e.date,`D MMM`),`:`]}),(0,L.jsx)(`div`,{className:`${W.programsContainer} d-flex flex-wrap`,children:e.programs.map(e=>(0,L.jsx)(`div`,{onMouseEnter:()=>n(e),onMouseLeave:()=>n(null),children:(0,L.jsx)(c,{appLink:r(e),className:`text-decoration-none`,children:(0,L.jsx)(w,{program:e,showEndTime:!0})},e.id)},e.id))})]},e.date)})}var q=f.encloseNamespace(`tv.programs`),J=/^[a-zA-Z]/;function Y(e){let t=e.startsWith||`A`,n=u(v.config()),r=u(T.region(e.region)),i=u(T.regions()),a=u(T.dateRange(e.region)),o=u(r.data&&T.channels(r.data.code)),c=u(r.data&&a.data&&T.programsByLetter(r.data.code,t,a.data.startDate,a.data.endDate)),{setRegion:l}=P(),{liteUpgradeTypeCustomer:d}=_(null),f=F.useMemo(()=>{if(!c.data?.length)return[];let t={};c.data.forEach(n=>{e.startsWith===`0`&&J.test(n.title)||(t[n.title]||(t[n.title]=[]),t[n.title].push(n))});let n=Object.entries(t);return n=n.sort(([e],[t])=>e<t?-1:1),n.map(([e,t])=>{let n=t.reduce((e,t)=>{let n=t.channelName;e[n]||(e[n]={});let r=C(t.startTime,t.timeZone),i=g.format(r,`YYYY-MM-DD`);return e[n][i]||(e[n][i]=[]),e[n][i].push(t),e},{});return[e,Object.entries(n).map((([e,t])=>[e,Object.entries(t)]))]})},[c.data]);[...R,`0`].includes(t)||b(s.BadRequest),E(r),x([i,c]),h({title:q(`title`)});let y=r.hasCompleted&&i.hasCompleted&&a.hasCompleted&&c.hasCompleted&&n.hasCompleted;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(N,{region:r.data}),(0,L.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,L.jsx)(j,{active:`programs`,currentRegion:r.data,showTvGuide:!!d,config:n.data}),(0,L.jsx)(M,{currentRegion:r.data,regions:i.data,appLink:{application:p.TV,action:m.Tv.PROGRAMS,params:{startsWith:t}},onClick:l})]}),(0,L.jsx)(A,{dateRange:a.data,region:r.data}),(0,L.jsx)(U,{selected:t,getItemAppLink:e=>({application:p.TV,action:m.Tv.PROGRAMS,args:[r.data?.code],params:{startsWith:e}})}),y?(0,L.jsx)(L.Fragment,{children:(0,L.jsx)(O,{children:f.map(([e,t],r)=>(0,L.jsx)(O.Header,{title:e,children:(0,L.jsx)(G,{groupedPrograms:t,channels:o.data,tvPreviewUrls:n.data.tvPreviewUrls})},r))})}):(0,L.jsx)(D,{})]})}export{Y as TvProgramsView};
2
- //# sourceMappingURL=zp5MUThO.chunk.js.map
1
+ import{C as e,D as t,St as n,b as r,d as i,mn as a,s as o,yt as s}from"./CnnBLBPY.chunk.js";import{g as c,y as l}from"./DW0w8_XN.chunk.js";import{l as u}from"./D8clSITt.chunk.js";import{t as d}from"./CBDo4oAU.chunk.js";import{t as f}from"./GN6vNflP.chunk.js";import{n as p,t as m}from"./Dn3hwC-o.chunk.js";import{t as h}from"./BjaJoJzM.chunk.js";import{t as g}from"./xL848v0O.chunk.js";import{D as _,Z as v}from"./app-CgkYY4K0.js";import{t as y}from"./Bzw5oyg9.chunk.js";import{t as b}from"./BxLgTmMl.chunk.js";import{t as x}from"./ChDwbV8F.chunk.js";import{t as S}from"./CdNTKjPA.chunk.js";import{t as C}from"./BcJCL8cu2.chunk.js";import{t as w}from"./BdSdO6n62.chunk.js";import{t as T}from"./C6jF43q92.chunk.js";import{t as E}from"./BLs3APIS2.chunk.js";import{n as D,r as O,t as k}from"./DdwVkiCn2.chunk.js";import{n as A,t as j}from"./B_P4D3Hf2.chunk.js";import{n as M,t as N}from"./6124murE2.chunk.js";import{t as P}from"./BrVyRSUS2.chunk.js";var F=a(t()),I={pillTabSelector:`_pillTabSelector_1d8n6_1`},L=e(),R=`Custom.#.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z`.split(`.`),z={"#":`0`},B={actionType:r.Click,entity:o.Url,location:i.MagicTabs};function V(e,t){if(!e)return;if(e===`0`)return`#`;let n=R.find(t=>t.toUpperCase()===e.toUpperCase());if(!(n===`Custom`&&!t))return n}function H(e){return R.map(t=>{if(t===`Custom`&&!e.showCustom)return;let r=e.getItemAppLink(z[t]??t);return{name:t,appLink:r,active:e.selected===t,analyticsData:{name:t,url:n.getHref(r)},analyticsOptions:B}}).filter(Boolean)}function U(e){let t=H({selected:V(e.selected,e.showCustom),showCustom:e.showCustom,getItemAppLink:e.getItemAppLink});return(0,L.jsx)(`div`,{className:l(e.noMarginBottom?`mb-0`:`mb-3`,e.className),children:(0,L.jsx)(S,{tabs:t,className:I.pillTabSelector,enableSmallScreenSupport:e.enableSmallScreenSupport,formatDisplayText:e.formatDisplayText,forceSmallScreenDropdown:e.forceSmallScreenDropdown})})}var W={dateContainer:`_dateContainer_b9acj_1`,hover:`_hover_b9acj_4`,channelLogo:`_channelLogo_b9acj_7`,channelLogoContainer:`_channelLogoContainer_b9acj_10`,programsContainer:`_programsContainer_b9acj_13`,date:`_date_b9acj_1`,itemContainer:`_itemContainer_b9acj_19`,badgeWrapper:`_badgeWrapper_b9acj_22`,thumbnail:`_thumbnail_b9acj_27`};function G(e){function t(t){return d.findWhere(e.channels,{name:t})?.logoUrl}return(0,L.jsx)(`div`,{className:`mb-2`,children:e.groupedPrograms.map(([n,r])=>(0,L.jsxs)(`div`,{className:`border-top d-flex pt-3 pb-2`,children:[(0,L.jsx)(`div`,{className:`${W.channelLogoContainer} flex-shrink-0 mb-3`,children:(0,L.jsx)(`img`,{src:t(n),alt:n,className:`${W.channelLogo} ms-4`})}),(0,L.jsx)(`div`,{className:`w-100`,children:r.map(([t,n])=>(0,L.jsx)(K,{date:t,programs:n,tvPreviewUrls:e.tvPreviewUrls},t))})]},n))})}function K(e){let[t,n]=F.useState();function r(e){switch(e.programType){case k.Video:return{application:p.TV,action:m.Tv.PREVIEW,args:[e.regionCode,e.id]};case k.Audio:return{application:p.TV,action:m.Tv.RADIO_DOWNLOAD,args:[e.id]}}}function i(t){return`${e.tvPreviewUrls[t.regionCode]}/thumbnail/${t.globalId.split(`-`).join(``)}.jpg`}return(0,L.jsx)(`div`,{className:`${W.dateContainer} ${t?W.hover:``} py-2 px-3 rounded`,children:(0,L.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,L.jsx)(`div`,{className:`${W.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`,children:(0,L.jsx)(y,{src:i(t||e.programs[0]),alt:g.format(e.date,`D MMM`),extraClasses:`w-100 rounded`})}),(0,L.jsxs)(`p`,{className:`${W.date} fw-semibold flex-shrink-0 mb-0`,children:[g.format(e.date,`D MMM`),`:`]}),(0,L.jsx)(`div`,{className:`${W.programsContainer} d-flex flex-wrap`,children:e.programs.map(e=>(0,L.jsx)(`div`,{onMouseEnter:()=>n(e),onMouseLeave:()=>n(null),children:(0,L.jsx)(c,{appLink:r(e),className:`text-decoration-none`,children:(0,L.jsx)(w,{program:e,showEndTime:!0})},e.id)},e.id))})]},e.date)})}var q=f.encloseNamespace(`tv.programs`),J=/^[a-zA-Z]/;function Y(e){let t=e.startsWith||`A`,n=u(v.config()),r=u(T.region(e.region)),i=u(T.regions()),a=u(T.dateRange(e.region)),o=u(r.data&&T.channels(r.data.code)),c=u(r.data&&a.data&&T.programsByLetter(r.data.code,t,a.data.startDate,a.data.endDate)),{setRegion:l}=P(),{liteUpgradeTypeCustomer:d}=_(null),f=F.useMemo(()=>{if(!c.data?.length)return[];let t={};c.data.forEach(n=>{e.startsWith===`0`&&J.test(n.title)||(t[n.title]||(t[n.title]=[]),t[n.title].push(n))});let n=Object.entries(t);return n=n.sort(([e],[t])=>e<t?-1:1),n.map(([e,t])=>{let n=t.reduce((e,t)=>{let n=t.channelName;e[n]||(e[n]={});let r=C(t.startTime,t.timeZone),i=g.format(r,`YYYY-MM-DD`);return e[n][i]||(e[n][i]=[]),e[n][i].push(t),e},{});return[e,Object.entries(n).map((([e,t])=>[e,Object.entries(t)]))]})},[c.data]);[...R,`0`].includes(t)||b(s.BadRequest),E(r),x([i,c]),h({title:q(`title`)});let y=r.hasCompleted&&i.hasCompleted&&a.hasCompleted&&c.hasCompleted&&n.hasCompleted;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(N,{region:r.data}),(0,L.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,L.jsx)(j,{active:`programs`,currentRegion:r.data,showTvGuide:!!d,config:n.data}),(0,L.jsx)(M,{currentRegion:r.data,regions:i.data,appLink:{application:p.TV,action:m.Tv.PROGRAMS,params:{startsWith:t}},onClick:l})]}),(0,L.jsx)(A,{dateRange:a.data,region:r.data}),(0,L.jsx)(U,{selected:t,getItemAppLink:e=>({application:p.TV,action:m.Tv.PROGRAMS,args:[r.data?.code],params:{startsWith:e}})}),y?(0,L.jsx)(L.Fragment,{children:(0,L.jsx)(O,{children:f.map(([e,t],r)=>(0,L.jsx)(O.Header,{title:e,children:(0,L.jsx)(G,{groupedPrograms:t,channels:o.data,tvPreviewUrls:n.data.tvPreviewUrls})},r))})}):(0,L.jsx)(D,{})]})}export{Y as TvProgramsView};
2
+ //# sourceMappingURL=W8Q7Z6fd.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zp5MUThO.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/letters-bar/letters-bar.module.scss","../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/tv/views/tv-programs/components/program-selector/program-selector.module.scss","../../src/apps/tv/views/tv-programs/components/program-selector/ProgramSelector.tsx","../../src/apps/tv/views/tv-programs/TvProgramsView.tsx"],"sourcesContent":[":local {\n .pillTabSelector {\n ul {\n width: 100%;\n display: flex!important;\n }\n\n li {\n min-width: 0!important;\n flex-grow: 1;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string } = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}\n",":local {\n .dateContainer {\n transition: background-color 0.25s ease-in-out;\n &.hover {\n background-color: $light-blue;\n }\n }\n\n .channelLogo {\n max-width: 4rem;\n }\n\n .channelLogoContainer {\n width: 8rem;\n }\n\n .programsContainer {\n gap: map-get($spacers, 2);\n }\n\n .date {\n width: 4.5rem;\n }\n\n .itemContainer {\n &:hover {\n background: $light-blue;\n }\n }\n\n .badgeWrapper {\n position: absolute;\n right: -3.5rem;\n top: 0;\n }\n\n .thumbnail {\n width: 4rem;\n aspect-ratio: 16 / 9;\n }\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { ProgramType } from 'apps/tv/interfaces/enums/ProgramType';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\n\nimport styles from './program-selector.module.scss';\n\ninterface ProgramSelectorProps {\n groupedPrograms: [string, [string, TvProgram[]][]][];\n channels: TvChannel[];\n tvPreviewUrls: {[region: string]: string };\n}\n\nexport function ProgramSelector(props: ProgramSelectorProps) {\n function getChannelLogo(channel: string) {\n const matchingChannel = ArrayHelper.findWhere(props.channels, { name: channel });\n return matchingChannel?.logoUrl;\n }\n\n return (\n <div className='mb-2'>\n {props.groupedPrograms.map(([ channel, dates ]) => (\n <div className='border-top d-flex pt-3 pb-2' key={channel}>\n <div className={`${styles.channelLogoContainer} flex-shrink-0 mb-3`}>\n <img src={getChannelLogo(channel)} alt={channel} className={`${styles.channelLogo} ms-4`} />\n </div>\n\n <div className='w-100'>\n {dates.map(([ date, programs ]) => (\n <GroupedPrograms key={date} date={date} programs={programs} tvPreviewUrls={props.tvPreviewUrls} />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\ninterface GroupedProgramsProps {\n date: string;\n programs: TvProgram[];\n tvPreviewUrls: {[region: string]: string };\n}\n\nexport function GroupedPrograms(props: GroupedProgramsProps) {\n const [ hoveredProgram, setHoveredProgram ] = React.useState<TvProgram>();\n\n function getProgramAppLink(program: TvProgram) {\n switch (program.programType) {\n case ProgramType.Video:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ program.regionCode, program.id ]\n };\n case ProgramType.Audio:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.RADIO_DOWNLOAD,\n args: [program.id]\n };\n }\n }\n\n function getThumbnailUrl(program: TvProgram) {\n const previewUrl = props.tvPreviewUrls[program.regionCode];\n const globalId = program.globalId.split('-').join('');\n return `${previewUrl}/thumbnail/${globalId}.jpg`;\n }\n\n return (\n <div\n className={`${styles.dateContainer} ${hoveredProgram ? styles.hover : ''} py-2 px-3 rounded`}\n >\n <div key={props.date} className='d-flex align-items-center'>\n <div className={`${styles.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`}>\n <LazyImage\n src={getThumbnailUrl(hoveredProgram || props.programs[0])}\n alt={DateHelper.format(props.date, 'D MMM')}\n extraClasses='w-100 rounded'\n />\n </div>\n <p className={`${styles.date} fw-semibold flex-shrink-0 mb-0`}>{DateHelper.format(props.date, 'D MMM')}:</p>\n <div className={`${styles.programsContainer} d-flex flex-wrap`}>\n {props.programs.map((program: TvProgram) => (\n <div\n key={program.id}\n onMouseEnter={() => setHoveredProgram(program)}\n onMouseLeave={() => setHoveredProgram(null)}\n >\n <AppLink appLink={getProgramAppLink(program)} key={program.id} className='text-decoration-none'>\n <TvProgramTimeBadge program={program} showEndTime />\n </AppLink>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ALPHABET, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { AccordionList } from 'shared/components/accordion-list/AccordionList';\nimport { PartialAccordionList } from 'shared/components/accordion-list/partial-loading/PartialAccordionList';\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 { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { ProgramSelector } from 'apps/tv/views/tv-programs/components/program-selector/ProgramSelector';\n\nconst namespace = 'tv.programs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst FIRST_LETTER_REGEX = /^[a-zA-Z]/;\n\ninterface TvProgramsViewProps {\n region: string;\n startsWith: string;\n}\n\nexport function TvProgramsView(props: TvProgramsViewProps): JSX.Element {\n const startsWith = props.startsWith || 'A';\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const programs = Flight.useBasicFetch<TvProgram[]>(\n region.data &&\n dateRange.data &&\n TvRequests.programsByLetter(\n region.data.code,\n startsWith,\n dateRange.data.startDate,\n dateRange.data.endDate\n )\n );\n\n const { setRegion } = useSelectedRegion();\n const { liteUpgradeTypeCustomer } = useSettings(null);\n\n const grouped = React.useMemo(() => {\n if (!programs.data?.length)\n return [] as any[];\n\n const groups: HashObject<TvProgram[]> = {};\n\n programs.data.forEach(program => {\n if (props.startsWith === '0' && FIRST_LETTER_REGEX.test(program.title))\n return;\n\n if (!groups[program.title])\n groups[program.title] = [];\n\n groups[program.title].push(program);\n });\n\n let sorted = Object.entries(groups);\n\n sorted = sorted.sort(([keyA], [keyB]) => (keyA < keyB ? -1 : 1));\n\n const groupedPrograms = sorted.map(([ title, data ]) => {\n const groupedProgram = data.reduce((acc: {[channel: string]: {[date: string]: TvProgram[] } }, program) => {\n const channelKey = program.channelName;\n if (!acc[channelKey]) {\n acc[channelKey] = {};\n }\n \n const startTime = toLocalTime(program.startTime, program.timeZone);\n const dateKey = DateHelper.format(startTime, 'YYYY-MM-DD');\n if (!acc[channelKey][dateKey]) {\n acc[channelKey][dateKey] = [];\n }\n\n acc[channelKey][dateKey].push(program);\n return acc;\n }, {});\n\n const groupedProgramEntries =\n Object\n .entries(groupedProgram)\n .map((([ channel, programs ]) => [ channel, Object.entries(programs) ]));\n \n return [ title, groupedProgramEntries ];\n });\n\n return groupedPrograms as [string, [string, TvProgram[]]];\n }, [programs.data]);\n\n const matchesLetters = [ ...ALPHABET, '0' ].includes(startsWith);\n if (!matchesLetters) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, programs ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n programs.hasCompleted &&\n config.hasCompleted\n );\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='programs'\n currentRegion={region.data}\n showTvGuide={!!liteUpgradeTypeCustomer}\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.PROGRAMS,\n params: { startsWith }\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n <LettersBar\n selected={startsWith}\n getItemAppLink={letter => ({\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS,\n args: [region.data?.code],\n params: { startsWith: letter }\n })}\n />\n\n {dataLoaded ? (\n <>\n <AccordionList>\n {grouped.map(([ title, programs ], index) => (\n <AccordionList.Header key={index} title={title}>\n <ProgramSelector\n groupedPrograms={programs}\n channels={channels.data}\n tvPreviewUrls={config.data.tvPreviewUrls}\n />\n </AccordionList.Header>\n ))}\n </AccordionList>\n </>\n ) : (\n <PartialAccordionList />\n )}\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"W8Q7Z6fd.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/letters-bar/letters-bar.module.scss","../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/tv/views/tv-programs/components/program-selector/program-selector.module.scss","../../src/apps/tv/views/tv-programs/components/program-selector/ProgramSelector.tsx","../../src/apps/tv/views/tv-programs/TvProgramsView.tsx"],"sourcesContent":[":local {\n .pillTabSelector {\n ul {\n width: 100%;\n display: flex!important;\n }\n\n li {\n min-width: 0!important;\n flex-grow: 1;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string } = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}\n",":local {\n .dateContainer {\n transition: background-color 0.25s ease-in-out;\n &.hover {\n background-color: $light-blue;\n }\n }\n\n .channelLogo {\n max-width: 4rem;\n }\n\n .channelLogoContainer {\n width: 8rem;\n }\n\n .programsContainer {\n gap: map-get($spacers, 2);\n }\n\n .date {\n width: 4.5rem;\n }\n\n .itemContainer {\n &:hover {\n background: $light-blue;\n }\n }\n\n .badgeWrapper {\n position: absolute;\n right: -3.5rem;\n top: 0;\n }\n\n .thumbnail {\n width: 4rem;\n aspect-ratio: 16 / 9;\n }\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { ProgramType } from 'apps/tv/interfaces/enums/ProgramType';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\n\nimport styles from './program-selector.module.scss';\n\ninterface ProgramSelectorProps {\n groupedPrograms: [string, [string, TvProgram[]][]][];\n channels: TvChannel[];\n tvPreviewUrls: {[region: string]: string };\n}\n\nexport function ProgramSelector(props: ProgramSelectorProps) {\n function getChannelLogo(channel: string) {\n const matchingChannel = ArrayHelper.findWhere(props.channels, { name: channel });\n return matchingChannel?.logoUrl;\n }\n\n return (\n <div className='mb-2'>\n {props.groupedPrograms.map(([ channel, dates ]) => (\n <div className='border-top d-flex pt-3 pb-2' key={channel}>\n <div className={`${styles.channelLogoContainer} flex-shrink-0 mb-3`}>\n <img src={getChannelLogo(channel)} alt={channel} className={`${styles.channelLogo} ms-4`} />\n </div>\n\n <div className='w-100'>\n {dates.map(([ date, programs ]) => (\n <GroupedPrograms key={date} date={date} programs={programs} tvPreviewUrls={props.tvPreviewUrls} />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\ninterface GroupedProgramsProps {\n date: string;\n programs: TvProgram[];\n tvPreviewUrls: {[region: string]: string };\n}\n\nexport function GroupedPrograms(props: GroupedProgramsProps) {\n const [ hoveredProgram, setHoveredProgram ] = React.useState<TvProgram>();\n\n function getProgramAppLink(program: TvProgram) {\n switch (program.programType) {\n case ProgramType.Video:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ program.regionCode, program.id ]\n };\n case ProgramType.Audio:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.RADIO_DOWNLOAD,\n args: [program.id]\n };\n }\n }\n\n function getThumbnailUrl(program: TvProgram) {\n const previewUrl = props.tvPreviewUrls[program.regionCode];\n const globalId = program.globalId.split('-').join('');\n return `${previewUrl}/thumbnail/${globalId}.jpg`;\n }\n\n return (\n <div\n className={`${styles.dateContainer} ${hoveredProgram ? styles.hover : ''} py-2 px-3 rounded`}\n >\n <div key={props.date} className='d-flex align-items-center'>\n <div className={`${styles.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`}>\n <LazyImage\n src={getThumbnailUrl(hoveredProgram || props.programs[0])}\n alt={DateHelper.format(props.date, 'D MMM')}\n extraClasses='w-100 rounded'\n />\n </div>\n <p className={`${styles.date} fw-semibold flex-shrink-0 mb-0`}>{DateHelper.format(props.date, 'D MMM')}:</p>\n <div className={`${styles.programsContainer} d-flex flex-wrap`}>\n {props.programs.map((program: TvProgram) => (\n <div\n key={program.id}\n onMouseEnter={() => setHoveredProgram(program)}\n onMouseLeave={() => setHoveredProgram(null)}\n >\n <AppLink appLink={getProgramAppLink(program)} key={program.id} className='text-decoration-none'>\n <TvProgramTimeBadge program={program} showEndTime />\n </AppLink>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ALPHABET, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { AccordionList } from 'shared/components/accordion-list/AccordionList';\nimport { PartialAccordionList } from 'shared/components/accordion-list/partial-loading/PartialAccordionList';\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 { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { ProgramSelector } from 'apps/tv/views/tv-programs/components/program-selector/ProgramSelector';\n\nconst namespace = 'tv.programs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst FIRST_LETTER_REGEX = /^[a-zA-Z]/;\n\ninterface TvProgramsViewProps {\n region: string;\n startsWith: string;\n}\n\nexport function TvProgramsView(props: TvProgramsViewProps): JSX.Element {\n const startsWith = props.startsWith || 'A';\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const programs = Flight.useBasicFetch<TvProgram[]>(\n region.data &&\n dateRange.data &&\n TvRequests.programsByLetter(\n region.data.code,\n startsWith,\n dateRange.data.startDate,\n dateRange.data.endDate\n )\n );\n\n const { setRegion } = useSelectedRegion();\n const { liteUpgradeTypeCustomer } = useSettings(null);\n\n const grouped = React.useMemo(() => {\n if (!programs.data?.length)\n return [] as any[];\n\n const groups: HashObject<TvProgram[]> = {};\n\n programs.data.forEach(program => {\n if (props.startsWith === '0' && FIRST_LETTER_REGEX.test(program.title))\n return;\n\n if (!groups[program.title])\n groups[program.title] = [];\n\n groups[program.title].push(program);\n });\n\n let sorted = Object.entries(groups);\n\n sorted = sorted.sort(([keyA], [keyB]) => (keyA < keyB ? -1 : 1));\n\n const groupedPrograms = sorted.map(([ title, data ]) => {\n const groupedProgram = data.reduce((acc: {[channel: string]: {[date: string]: TvProgram[] } }, program) => {\n const channelKey = program.channelName;\n if (!acc[channelKey]) {\n acc[channelKey] = {};\n }\n \n const startTime = toLocalTime(program.startTime, program.timeZone);\n const dateKey = DateHelper.format(startTime, 'YYYY-MM-DD');\n if (!acc[channelKey][dateKey]) {\n acc[channelKey][dateKey] = [];\n }\n\n acc[channelKey][dateKey].push(program);\n return acc;\n }, {});\n\n const groupedProgramEntries =\n Object\n .entries(groupedProgram)\n .map((([ channel, programs ]) => [ channel, Object.entries(programs) ]));\n \n return [ title, groupedProgramEntries ];\n });\n\n return groupedPrograms as [string, [string, TvProgram[]]];\n }, [programs.data]);\n\n const matchesLetters = [ ...ALPHABET, '0' ].includes(startsWith);\n if (!matchesLetters) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, programs ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n programs.hasCompleted &&\n config.hasCompleted\n );\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='programs'\n currentRegion={region.data}\n showTvGuide={!!liteUpgradeTypeCustomer}\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.PROGRAMS,\n params: { startsWith }\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n <LettersBar\n selected={startsWith}\n getItemAppLink={letter => ({\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS,\n args: [region.data?.code],\n params: { startsWith: letter }\n })}\n />\n\n {dataLoaded ? (\n <>\n <AccordionList>\n {grouped.map(([ title, programs ], index) => (\n <AccordionList.Header key={index} title={title}>\n <ProgramSelector\n groupedPrograms={programs}\n channels={channels.data}\n tvPreviewUrls={config.data.tvPreviewUrls}\n />\n </AccordionList.Header>\n ))}\n </AccordionList>\n </>\n ) : (\n <PartialAccordionList />\n )}\n </>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{C as e,D as t,O as n,St as r,mn as i}from"./CnnBLBPY.chunk.js";import{_ as a,r as o}from"./DW0w8_XN.chunk.js";import{d as s,l as c}from"./D8clSITt.chunk.js";import{t as l}from"./CBDo4oAU.chunk.js";import{t as u}from"./GN6vNflP.chunk.js";import{t as d}from"./DXNyYUq4.chunk.js";import{t as f}from"./DzbIsgVg.chunk.js";import{t as p}from"./CrBD6Z4s.chunk.js";import{t as m}from"./CRRZVEmA.chunk.js";import{I as h,J as g,M as _,Q as v,U as y,Z as b,tt as x,z as S}from"./app-DDrsm5nt.js";import{t as C}from"./CtVGVkI72.chunk.js";import{i as w,n as ee,r as T,t as E}from"./BPgKK-d32.chunk.js";import{t as D}from"./DWCNy_Jd2.chunk.js";import{t as te}from"./B9Q0qBO32.chunk.js";import{t as O}from"./ZSP3Vfha2.chunk.js";import{t as k}from"./BijIuzIs2.chunk.js";import{t as ne}from"./CKNdXwxe2.chunk.js";import{t as A}from"./D9zlZIWi2.chunk.js";import{t as re}from"./B0hNKKDw2.chunk.js";import{t as j}from"./BggsU83p2.chunk.js";var M=C(),N=i(t());function P(e,t,n){if(d.isEqual(e.id,t))return[e,n];let r=e.children;if(!r||!r.length)return[null,null];for(let i=0;i<r.length;i++){let[a,o]=P(r[i],t,[...n,e]);if(a)return[a,o]}return[null,null]}var F={find(e,t){if(!(!e||!e.children||!e.children.length))for(let n=0;n<e.children.length;n++){let[r]=P(e.children[n],t,[]);if(r)return r}},getPath(e,t){if(!(!e||!e.children||!e.children.length))for(let n=0;n<e.children.length;n++){let[,r]=P(e.children[n],t,[]);if(r?.length)return r}},getParent(e,t){let n=F.getPath(e,t);return n?.length?n[n.length-1]:null},convertNestedObjectToTree(e){let t={...e.data,children:e.children};return t.children?.length&&(t.children=t.children.map(F.convertNestedObjectToTree)),t},findDepth(e,t,n=0){if(!e||e.length===0)return 0;let r=0;for(let i of e){if(i.data?.id?.toString()===t.toString())return n;let e=F.findDepth(i.children,t,n+1);if(e>0){r=e;break}}return r},findMaxChildDepth(e,t=0){if(!e||e.length===0)return t;let n=t;for(let r of e){let e=F.findMaxChildDepth(r.children,t+1);n=Math.max(n,e)}return n},findTargetNode(e,t){if(!e||e.length===0)return null;for(let n of e){if(n.data?.id?.toString()===t.toString())return n;let e=F.findTargetNode(n.children,t);if(e!==null)return e}return null},isMaxDepth(e,t,n,r=7){let i=F.findTargetNode(e,t);return F.findMaxChildDepth(i.children)+F.findDepth(e,n)>=r},flatten(e){if(!e)return[];let t=[];function r(e){t.push(n.omit(e,[`children`])),e.children.forEach(r)}return e.children.forEach(r),t}},I={tree:`_tree_u0qyb_1`,text:`_text_u0qyb_1`,chevron:`_chevron_u0qyb_4`,disabled:`_disabled_u0qyb_163`,root:`_root_u0qyb_166`,selected:`_selected_u0qyb_172`,actions:`_actions_u0qyb_175`,node:`_node_u0qyb_185`,noActions:`_noActions_u0qyb_188`},L=e();function R(e){function t(){let t=`${I.text} clamp-4`;return e.className&&(t+=` ${e.className}`),t}return e.isDisabled?(0,L.jsx)(o,{title:typeof e.disabledTooltip==`string`?e.disabledTooltip:e.disabledTooltip?.(e.tree),spanHack:!0,spanHackClassName:`d-inline-block flex-grow-1`,children:(0,L.jsx)(`span`,{className:`${t()} text-secondary ${I.disabled}`,children:e.text})}):(0,L.jsx)(`div`,{className:t(),children:e.text})}var z=`tree-actions`;B.defaultProps={selectedLinkClassName:I.selected};function B(e){let{tree:t,selectedIds:n,getAppLink:i,onSelect:o,isDisabled:s,isClickDisabled:c,actions:l,isDropdown:u}=e,f=N.useRef(null),p=N.useMemo(()=>n?.some(e=>F.find(t,e)),[t,n]),m=e.openDepth&&e.depth<e.openDepth,[h,g]=N.useState(p||m),_=n?.some(e=>d.isEqual(t.id,e)),v=!!t.children&&!!t.children.length;e.maxDisplayDepth&&v&&(v=e.depth<e.maxDisplayDepth),N.useEffect(()=>{if(!f.current||!u)return;let e=e=>{e.stopPropagation(),y()};return f.current.addEventListener(`click`,e),()=>{f.current&&f.current.removeEventListener(`click`,e)}},[f.current,o]),N.useEffect(()=>{e.multiSelect||h&&(p||_||!e.selectedIds?.length&&s?.(e.tree)||m||g(!1))},[n]);function y(){if(!c?.(t)){if(e.multiSelect||g(!h),i){r.trigger(i(t));return}if(s?.(t)){o(null);return}o?.(t)}}function b(t){if(t.stopPropagation(),e.multiSelect){g(!h);return}y()}function x(){let t=`py-1 d-flex align-items-center w-100 position-relative ${I.node}`;return _&&(t+=` `+e.selectedLinkClassName),l?.length||(t+=` `+I.noActions),p&&e.multiSelect&&(t+=` text-underline fst-italic`),t}return e.maxDisplayDepth&&e.depth>e.maxDisplayDepth?(0,L.jsx)(L.Fragment,{}):(0,L.jsx)(`li`,{className:`position-relative ${h?``:I.collapsed} ${e.isRoot?I.root:``}`,children:(0,L.jsxs)(`div`,{className:`position-relative`,children:[(0,L.jsxs)(a,{className:x(),onClick:u?null:y,ref:f,children:[v&&(0,L.jsx)(`div`,{className:I.chevron,onClick:b,children:(0,L.jsx)(te,{direction:h?`down`:`right`})}),(0,L.jsx)(R,{tree:t,text:t.name||t.description,isDisabled:s?.(t)||c?.(t),disabledTooltip:e.disabledTooltip})]}),!!e.actions&&(0,L.jsx)(D,{className:I.actions,actions:l?.map(e=>({...e,appLink:e.getAppLink(t)})),actionsDropdownClassName:`btn btn-light ${z} py-0`}),h&&(0,L.jsx)(V,{...e,isChild:!0,depth:e.depth+1},t.id)]})})}function V(e){let{tree:t,...n}=e;return!t||!t.children?(0,L.jsx)(L.Fragment,{}):(0,L.jsx)(`ul`,{className:`m-0 p-0 list-unstyled ${I.tree}`,children:t.children.map((t,r)=>(0,L.jsx)(B,{tree:t,...n,isRoot:!e.isChild,depth:e.depth||0},r))})}var H=`libraries.addToLibraryForm`,U=u.encloseNamespace(H);function W(e){let t=T(),n=!t.values.library.canAddContent,r=e.videoLibraries?.find(e=>e.id===t.values.library.id),i=N.useMemo(()=>({children:e.getCategoryTree(t.values.library.id).map(F.convertNestedObjectToTree)}),[t.values.library.id]);return(0,L.jsxs)(L.Fragment,{children:[r&&(0,L.jsx)(`div`,{className:`alert alert-info`,children:(0,L.jsx)(h,{namespace:H,phrase:`alreadyInLibrary`,options:{library:t.values.library.name}})}),n&&(0,L.jsx)(`p`,{children:(0,L.jsx)(h,{namespace:H,phrase:`sendLibraryRequest`,options:{video:e.video.name}})}),(0,L.jsxs)(S,{children:[e.libraries.length>1&&(0,L.jsx)(w,{as:`select`,label:U(`selectLibrary`),name:`library`,value:t.values.library?.id??``,className:t.values.library?.id?``:`text-secondary`,showRequiredStar:!0,onChange:n=>{t.setFieldValue(`folder`,null);let r=n.target.value;t.setFieldValue(`library`,e.libraries.find(e=>e.id.toString()===r.toString()))},children:e.libraries.map(e=>(0,L.jsx)(`option`,{value:e.id,className:`text-dark`,children:e.name},e.id))}),(0,L.jsx)(w,{label:U(`selectFolder`),name:`folder`,showRequiredStar:!0,disabled:!t.values.library,children:()=>(0,L.jsx)(M.Scrollbars,{autoHeight:!0,autoHeightMax:300,className:`border rounded-3`,children:(0,L.jsx)(V,{tree:i,onSelect:e=>t.setFieldValue(`folder`,e),isDisabled:e.isFolderDisabled,disabledTooltip:u.getPhrase(H,`disabledFolder`),selectedIds:t.values.folder?.id?[t.values.folder.id]:void 0,selectedLinkClassName:`bg-light`})})}),!!t.values.folder&&(0,L.jsx)(`p`,{className:`mt-n2`,children:(0,L.jsx)(h,{namespace:H,phrase:n?`requestTo`:`addTo`,options:{folder:t.values.folder.name}})}),n&&(0,L.jsx)(w,{label:u.getPhrase(H,`comment`),as:`textarea`,name:`comment`,id:`comment`,placeholder:u.getPhrase(H,`commentPlaceholder`),value:t.values.comment}),(0,L.jsxs)(_,{children:[(0,L.jsx)(_.Cancel,{onClick:e.closePopup}),(0,L.jsx)(_.Submit,{variant:`dark`,text:U(`addToLibrary`)})]})]})]})}var G={sort(e){return e?.length?e.sort((e,t)=>{let n=e.isSharedLibrary?`shared_library`:e.type,r=t.isSharedLibrary?`shared_library`:t.type;return n===r?e.name.localeCompare(t.name):n===`custom_library`||n===`shared_library`&&r!==`custom_library`||n===`hosted_library`&&r!==`custom_library`&&r!==`shared_library`?-1:1}):[]},hasTwigOrTigtag(e,t){if(!t)return{hasTwig:!1,hasTigtag:!1};if(!t.isAuthenticated){let e=t.contentRegion===f.UK||t.contentRegion===f.SCOT;return{hasTwig:e,hasTigtag:e}}if(!e)return{hasTwig:!1,hasTigtag:!1};let n=!1,r=!1;for(let t of e)if(t.id.toString()===O.Libraries.TWIG?n=!0:t.id.toString()===O.Libraries.TIGTAG&&(r=!0),n&&r)break;return{hasTwig:n,hasTigtag:r}}},K=i(E()),q=`libraries.validation`,J=(0,K.object)().shape({comment:(0,K.string)().nullable().max(512,()=>u.getPhrase(q,`commentExceeds`)),library:(0,K.object)().required(()=>u.getPhrase(q,`libraryRequired`)).nullable(),folder:(0,K.object)().required(()=>u.getPhrase(q,`folderRequired`)).nullable()}),Y=function(e){return e[e.MasterVideo=1]=`MasterVideo`,e[e.MasterClip=2]=`MasterClip`,e[e.MasterInteractive=3]=`MasterInteractive`,e}({}),X=u.encloseNamespace(`shared.errorMessageHelper`),ie={"operation-not-allowed":`operationNotAllowed`,"library-not-supported":`libraryNotSupported`,"access-denied":`accessDenied`,"library-access-denied":`libraryAccessDenied`,"library-access-denied-create":`libraryAccessDeniedCreate`,"library-access-denied-fulfil":`libraryAccessDeniedFulfill`,"library-access-denied-not-authorized":`libraryAccessDeniedNotAuthorized`,"library-request-access-denied":`accessDenied`,"library-request-access-denied-create-request":`libraryRequestAccessDeniedCreateRequest`,"library-request-access-denied-process-comment":`libraryRequestAccessDeniedProcessComment`,"customer-not-found":`customerNotFound`,"customer-not-found-current-user":`customerNotFound`,"customer-not-found-library-owner":`customerNotFoundLibraryOwner`,"customer-not-found-destination-library-owner":`customerNotFoundLibraryOwner`,"user-not-found":`userNotFound`,"library-not-found":`libraryNotFound`,"video-not-found":`videoNotFound`,"category-not-found":`categoryNotFound`,"category-not-found-destination-not-provided":`categoryNotFoundDestinationNotProvided`,"category-not-found-not-in-library":`categoryNotFoundInLibrary`,"library-request-not-found":`libraryRequestNotFound`,"invalid-category-path":`invalidCategoryPath`,"library-api-error":`somethingWentWrong`,"content-not-playable":`contentNotPlayable`,"invalid-object":`invalidObject`,"same-request-existed":`sameRequestExisted`,"unknown-error":`somethingWentWrong`,"no-email":`noEmailError`},ae={"create-invitation-failed":`createInvitationFailed`,"invitation-resend-failed":`invitationResendFailed`,"failed-to-accept":`failedToAccept`,"invitee-not-found":`inviteeNotFound`,"invitation-not-found":`invitationNotFound`,"invitation-deleted":`invitationDeleted`,"too-many-emails":`tooManyEmails`},Z={libraryApiError(e){let t=ie[e?.responseJSON?.type];return X(t||`somethingWentWrong`)},inviteColleagueError(e){let t=ae[e?.responseJSON?.type];return X(t||`somethingWentWrong`)}},Q={buildOpenAppLinkUrl(e,t,n){return p.urlBuilder(`${e}/open`,{appLink:t,product:n})},buildOpenVideoUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`video:${t}`,n)},buildOpenClipUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`clip:${t}`,n)},buildOpenInteractiveUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`interactive:${t}`,n)},buildOpenTopicUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`topic:${t}`,n)},buildOpenSeriesUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`series:${t}`,n)},buildOpenPlaylistUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`playlist:${t}`,n)},buildOpenCategoryUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`category:${t}`,n)},buildOpenLibraryFolderUrl(e,t,n){let r=`library:${t.libraryId}:folder:${t.folderId}`;return Q.buildOpenAppLinkUrl(e,r,n)}},oe={[x.Video]:Y.MasterVideo,[x.Clip]:Y.MasterClip,[x.Interactive]:Y.MasterInteractive},$=u.encloseNamespace(`libraries.addToLibrary`);function se(e){let t=c(m.currentUser()),n=c(k.librariesWithCategories()),r=c(k.libraryRequestLibraries()),i=c(j.getVideoRequest(e.id,e.typeId)),a=(j.isClip(i.data)||j.isInteractive(i.data))&&i.data?._parentVideo,o=c(a&&ne.video(a.id)),{loading:u,handleGenerateReportError:f}=re(),p=c(b.config()),h=N.useMemo(()=>G.sort(r.data),[r.data]),_=s(),x=A(),S=!!t.data&&v.getOrSetSortType(t.data.id);function C(){let e=null,t=l.first(i.data?.libraries?.data)?.id;if(t&&i.data.categories.data?.length){let n=i.data.categories.data.find(e=>e.libraries?.data?.find(e=>e.id.toString()===t.toString()));n&&(e=n.id)}if(!t&&(t=l.first(o.data?.libraries?.data)?.id,t&&o.data.categories.data?.length)){let n=o.data.categories.data.find(e=>e.libraries?.data?.find(e=>e.id.toString()===t.toString()));n&&(e=n.id)}return{sourceLibraryId:t?+t:null,sourceCategoryId:e?+e:null}}function w(t,n){let{sourceLibraryId:r,sourceCategoryId:a}=C(),o={objectId:e.id.toString(),objectType:oe[e.typeId],message:t.comment,sourceLibraryId:r,destinationLibraryId:+t.library.id,metadata:{destinationCategoryId:+t.folder.id,sourceCategoryId:a}};_(k.addToLibrary(o,S)).then(()=>{t.library.canAddContent?x.success({type:g.Success,heading:``,message:$(`addToLibrarySuccess`,{folder:t.folder.name,video:i.data.name,escapeText:!0}),...e.folderAppLink?{appLink:{...e.folderAppLink,args:[t.library.id,t.folder.id,d.slugify(t.folder.name)]},appLinkText:$(`goToFolder`,{folder:t.folder.name}),appLinkClassName:`info-link`}:{extLink:Q.buildOpenLibraryFolderUrl(p.data.launchUrl,{libraryId:t.library.id,folderId:t.folder.id}),extLinkText:$(`goToFolder`,{folder:t.folder.name}),extLinkClassName:`info-link`}}):x.success({type:g.Pending,heading:$(`pendingApproval`),message:$(`libraryRequestSent`,{library:t.library.name,escapeText:!0})})}).catch(e=>{let t=Z.libraryApiError(e);f(e,t,t),n()}).finally(()=>{e.closePopup()})}function T(e){return n.data.find(t=>t.data.id.toString()===e.toString())?.children}function E(e){return!!i.data.categories?.data?.find(t=>t.id===e.id)}let D=r.data&&i.data&&n.data;return(0,L.jsx)(y,{title:$(`addToLibrary`),closePopup:e.closePopup,showLoadingSpinner:!D||u,children:D&&(0,L.jsx)(ee,{initialValues:{library:l.first(h),folder:null,comment:``},validationSchema:J,onSubmit:w,children:(0,L.jsx)(W,{libraries:h,closePopup:e.closePopup,isFolderDisabled:E,video:i.data,videoLibraries:i.data?.libraries?.data,getCategoryTree:T})})})}export{se as AddToLibraryView};
2
- //# sourceMappingURL=NInuYe7b2.chunk.js.map
1
+ import{C as e,D as t,O as n,St as r,mn as i}from"./CnnBLBPY.chunk.js";import{_ as a,r as o}from"./DW0w8_XN.chunk.js";import{d as s,l as c}from"./D8clSITt.chunk.js";import{t as l}from"./CBDo4oAU.chunk.js";import{t as u}from"./GN6vNflP.chunk.js";import{t as d}from"./DXNyYUq4.chunk.js";import{t as f}from"./DzbIsgVg.chunk.js";import{t as p}from"./CrBD6Z4s.chunk.js";import{t as m}from"./CRRZVEmA.chunk.js";import{I as h,J as g,M as _,Q as v,U as y,Z as b,tt as x,z as S}from"./app-CgkYY4K0.js";import{t as C}from"./CtVGVkI72.chunk.js";import{i as w,n as ee,r as T,t as E}from"./Bxsu4S752.chunk.js";import{t as D}from"./DWCNy_Jd2.chunk.js";import{t as te}from"./B9Q0qBO32.chunk.js";import{t as O}from"./B8BobN3r2.chunk.js";import{t as k}from"./DhtgaF-y2.chunk.js";import{t as ne}from"./DjuXXgD-2.chunk.js";import{t as A}from"./BP0LMV9S2.chunk.js";import{t as re}from"./qrcrWbQJ2.chunk.js";import{t as j}from"./_3n_0ch72.chunk.js";var M=C(),N=i(t());function P(e,t,n){if(d.isEqual(e.id,t))return[e,n];let r=e.children;if(!r||!r.length)return[null,null];for(let i=0;i<r.length;i++){let[a,o]=P(r[i],t,[...n,e]);if(a)return[a,o]}return[null,null]}var F={find(e,t){if(!(!e||!e.children||!e.children.length))for(let n=0;n<e.children.length;n++){let[r]=P(e.children[n],t,[]);if(r)return r}},getPath(e,t){if(!(!e||!e.children||!e.children.length))for(let n=0;n<e.children.length;n++){let[,r]=P(e.children[n],t,[]);if(r?.length)return r}},getParent(e,t){let n=F.getPath(e,t);return n?.length?n[n.length-1]:null},convertNestedObjectToTree(e){let t={...e.data,children:e.children};return t.children?.length&&(t.children=t.children.map(F.convertNestedObjectToTree)),t},findDepth(e,t,n=0){if(!e||e.length===0)return 0;let r=0;for(let i of e){if(i.data?.id?.toString()===t.toString())return n;let e=F.findDepth(i.children,t,n+1);if(e>0){r=e;break}}return r},findMaxChildDepth(e,t=0){if(!e||e.length===0)return t;let n=t;for(let r of e){let e=F.findMaxChildDepth(r.children,t+1);n=Math.max(n,e)}return n},findTargetNode(e,t){if(!e||e.length===0)return null;for(let n of e){if(n.data?.id?.toString()===t.toString())return n;let e=F.findTargetNode(n.children,t);if(e!==null)return e}return null},isMaxDepth(e,t,n,r=7){let i=F.findTargetNode(e,t);return F.findMaxChildDepth(i.children)+F.findDepth(e,n)>=r},flatten(e){if(!e)return[];let t=[];function r(e){t.push(n.omit(e,[`children`])),e.children.forEach(r)}return e.children.forEach(r),t}},I={tree:`_tree_u0qyb_1`,text:`_text_u0qyb_1`,chevron:`_chevron_u0qyb_4`,disabled:`_disabled_u0qyb_163`,root:`_root_u0qyb_166`,selected:`_selected_u0qyb_172`,actions:`_actions_u0qyb_175`,node:`_node_u0qyb_185`,noActions:`_noActions_u0qyb_188`},L=e();function R(e){function t(){let t=`${I.text} clamp-4`;return e.className&&(t+=` ${e.className}`),t}return e.isDisabled?(0,L.jsx)(o,{title:typeof e.disabledTooltip==`string`?e.disabledTooltip:e.disabledTooltip?.(e.tree),spanHack:!0,spanHackClassName:`d-inline-block flex-grow-1`,children:(0,L.jsx)(`span`,{className:`${t()} text-secondary ${I.disabled}`,children:e.text})}):(0,L.jsx)(`div`,{className:t(),children:e.text})}var z=`tree-actions`;B.defaultProps={selectedLinkClassName:I.selected};function B(e){let{tree:t,selectedIds:n,getAppLink:i,onSelect:o,isDisabled:s,isClickDisabled:c,actions:l,isDropdown:u}=e,f=N.useRef(null),p=N.useMemo(()=>n?.some(e=>F.find(t,e)),[t,n]),m=e.openDepth&&e.depth<e.openDepth,[h,g]=N.useState(p||m),_=n?.some(e=>d.isEqual(t.id,e)),v=!!t.children&&!!t.children.length;e.maxDisplayDepth&&v&&(v=e.depth<e.maxDisplayDepth),N.useEffect(()=>{if(!f.current||!u)return;let e=e=>{e.stopPropagation(),y()};return f.current.addEventListener(`click`,e),()=>{f.current&&f.current.removeEventListener(`click`,e)}},[f.current,o]),N.useEffect(()=>{e.multiSelect||h&&(p||_||!e.selectedIds?.length&&s?.(e.tree)||m||g(!1))},[n]);function y(){if(!c?.(t)){if(e.multiSelect||g(!h),i){r.trigger(i(t));return}if(s?.(t)){o(null);return}o?.(t)}}function b(t){if(t.stopPropagation(),e.multiSelect){g(!h);return}y()}function x(){let t=`py-1 d-flex align-items-center w-100 position-relative ${I.node}`;return _&&(t+=` `+e.selectedLinkClassName),l?.length||(t+=` `+I.noActions),p&&e.multiSelect&&(t+=` text-underline fst-italic`),t}return e.maxDisplayDepth&&e.depth>e.maxDisplayDepth?(0,L.jsx)(L.Fragment,{}):(0,L.jsx)(`li`,{className:`position-relative ${h?``:I.collapsed} ${e.isRoot?I.root:``}`,children:(0,L.jsxs)(`div`,{className:`position-relative`,children:[(0,L.jsxs)(a,{className:x(),onClick:u?null:y,ref:f,children:[v&&(0,L.jsx)(`div`,{className:I.chevron,onClick:b,children:(0,L.jsx)(te,{direction:h?`down`:`right`})}),(0,L.jsx)(R,{tree:t,text:t.name||t.description,isDisabled:s?.(t)||c?.(t),disabledTooltip:e.disabledTooltip})]}),!!e.actions&&(0,L.jsx)(D,{className:I.actions,actions:l?.map(e=>({...e,appLink:e.getAppLink(t)})),actionsDropdownClassName:`btn btn-light ${z} py-0`}),h&&(0,L.jsx)(V,{...e,isChild:!0,depth:e.depth+1},t.id)]})})}function V(e){let{tree:t,...n}=e;return!t||!t.children?(0,L.jsx)(L.Fragment,{}):(0,L.jsx)(`ul`,{className:`m-0 p-0 list-unstyled ${I.tree}`,children:t.children.map((t,r)=>(0,L.jsx)(B,{tree:t,...n,isRoot:!e.isChild,depth:e.depth||0},r))})}var H=`libraries.addToLibraryForm`,U=u.encloseNamespace(H);function W(e){let t=T(),n=!t.values.library.canAddContent,r=e.videoLibraries?.find(e=>e.id===t.values.library.id),i=N.useMemo(()=>({children:e.getCategoryTree(t.values.library.id).map(F.convertNestedObjectToTree)}),[t.values.library.id]);return(0,L.jsxs)(L.Fragment,{children:[r&&(0,L.jsx)(`div`,{className:`alert alert-info`,children:(0,L.jsx)(h,{namespace:H,phrase:`alreadyInLibrary`,options:{library:t.values.library.name}})}),n&&(0,L.jsx)(`p`,{children:(0,L.jsx)(h,{namespace:H,phrase:`sendLibraryRequest`,options:{video:e.video.name}})}),(0,L.jsxs)(S,{children:[e.libraries.length>1&&(0,L.jsx)(w,{as:`select`,label:U(`selectLibrary`),name:`library`,value:t.values.library?.id??``,className:t.values.library?.id?``:`text-secondary`,showRequiredStar:!0,onChange:n=>{t.setFieldValue(`folder`,null);let r=n.target.value;t.setFieldValue(`library`,e.libraries.find(e=>e.id.toString()===r.toString()))},children:e.libraries.map(e=>(0,L.jsx)(`option`,{value:e.id,className:`text-dark`,children:e.name},e.id))}),(0,L.jsx)(w,{label:U(`selectFolder`),name:`folder`,showRequiredStar:!0,disabled:!t.values.library,children:()=>(0,L.jsx)(M.Scrollbars,{autoHeight:!0,autoHeightMax:300,className:`border rounded-3`,children:(0,L.jsx)(V,{tree:i,onSelect:e=>t.setFieldValue(`folder`,e),isDisabled:e.isFolderDisabled,disabledTooltip:u.getPhrase(H,`disabledFolder`),selectedIds:t.values.folder?.id?[t.values.folder.id]:void 0,selectedLinkClassName:`bg-light`})})}),!!t.values.folder&&(0,L.jsx)(`p`,{className:`mt-n2`,children:(0,L.jsx)(h,{namespace:H,phrase:n?`requestTo`:`addTo`,options:{folder:t.values.folder.name}})}),n&&(0,L.jsx)(w,{label:u.getPhrase(H,`comment`),as:`textarea`,name:`comment`,id:`comment`,placeholder:u.getPhrase(H,`commentPlaceholder`),value:t.values.comment}),(0,L.jsxs)(_,{children:[(0,L.jsx)(_.Cancel,{onClick:e.closePopup}),(0,L.jsx)(_.Submit,{variant:`dark`,text:U(`addToLibrary`)})]})]})]})}var G={sort(e){return e?.length?e.sort((e,t)=>{let n=e.isSharedLibrary?`shared_library`:e.type,r=t.isSharedLibrary?`shared_library`:t.type;return n===r?e.name.localeCompare(t.name):n===`custom_library`||n===`shared_library`&&r!==`custom_library`||n===`hosted_library`&&r!==`custom_library`&&r!==`shared_library`?-1:1}):[]},hasTwigOrTigtag(e,t){if(!t)return{hasTwig:!1,hasTigtag:!1};if(!t.isAuthenticated){let e=t.contentRegion===f.UK||t.contentRegion===f.SCOT;return{hasTwig:e,hasTigtag:e}}if(!e)return{hasTwig:!1,hasTigtag:!1};let n=!1,r=!1;for(let t of e)if(t.id.toString()===O.Libraries.TWIG?n=!0:t.id.toString()===O.Libraries.TIGTAG&&(r=!0),n&&r)break;return{hasTwig:n,hasTigtag:r}}},K=i(E()),q=`libraries.validation`,J=(0,K.object)().shape({comment:(0,K.string)().nullable().max(512,()=>u.getPhrase(q,`commentExceeds`)),library:(0,K.object)().required(()=>u.getPhrase(q,`libraryRequired`)).nullable(),folder:(0,K.object)().required(()=>u.getPhrase(q,`folderRequired`)).nullable()}),Y=function(e){return e[e.MasterVideo=1]=`MasterVideo`,e[e.MasterClip=2]=`MasterClip`,e[e.MasterInteractive=3]=`MasterInteractive`,e}({}),X=u.encloseNamespace(`shared.errorMessageHelper`),ie={"operation-not-allowed":`operationNotAllowed`,"library-not-supported":`libraryNotSupported`,"access-denied":`accessDenied`,"library-access-denied":`libraryAccessDenied`,"library-access-denied-create":`libraryAccessDeniedCreate`,"library-access-denied-fulfil":`libraryAccessDeniedFulfill`,"library-access-denied-not-authorized":`libraryAccessDeniedNotAuthorized`,"library-request-access-denied":`accessDenied`,"library-request-access-denied-create-request":`libraryRequestAccessDeniedCreateRequest`,"library-request-access-denied-process-comment":`libraryRequestAccessDeniedProcessComment`,"customer-not-found":`customerNotFound`,"customer-not-found-current-user":`customerNotFound`,"customer-not-found-library-owner":`customerNotFoundLibraryOwner`,"customer-not-found-destination-library-owner":`customerNotFoundLibraryOwner`,"user-not-found":`userNotFound`,"library-not-found":`libraryNotFound`,"video-not-found":`videoNotFound`,"category-not-found":`categoryNotFound`,"category-not-found-destination-not-provided":`categoryNotFoundDestinationNotProvided`,"category-not-found-not-in-library":`categoryNotFoundInLibrary`,"library-request-not-found":`libraryRequestNotFound`,"invalid-category-path":`invalidCategoryPath`,"library-api-error":`somethingWentWrong`,"content-not-playable":`contentNotPlayable`,"invalid-object":`invalidObject`,"same-request-existed":`sameRequestExisted`,"unknown-error":`somethingWentWrong`,"no-email":`noEmailError`},ae={"create-invitation-failed":`createInvitationFailed`,"invitation-resend-failed":`invitationResendFailed`,"failed-to-accept":`failedToAccept`,"invitee-not-found":`inviteeNotFound`,"invitation-not-found":`invitationNotFound`,"invitation-deleted":`invitationDeleted`,"too-many-emails":`tooManyEmails`},Z={libraryApiError(e){let t=ie[e?.responseJSON?.type];return X(t||`somethingWentWrong`)},inviteColleagueError(e){let t=ae[e?.responseJSON?.type];return X(t||`somethingWentWrong`)}},Q={buildOpenAppLinkUrl(e,t,n){return p.urlBuilder(`${e}/open`,{appLink:t,product:n})},buildOpenVideoUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`video:${t}`,n)},buildOpenClipUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`clip:${t}`,n)},buildOpenInteractiveUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`interactive:${t}`,n)},buildOpenTopicUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`topic:${t}`,n)},buildOpenSeriesUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`series:${t}`,n)},buildOpenPlaylistUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`playlist:${t}`,n)},buildOpenCategoryUrl(e,t,n){return Q.buildOpenAppLinkUrl(e,`category:${t}`,n)},buildOpenLibraryFolderUrl(e,t,n){let r=`library:${t.libraryId}:folder:${t.folderId}`;return Q.buildOpenAppLinkUrl(e,r,n)}},oe={[x.Video]:Y.MasterVideo,[x.Clip]:Y.MasterClip,[x.Interactive]:Y.MasterInteractive},$=u.encloseNamespace(`libraries.addToLibrary`);function se(e){let t=c(m.currentUser()),n=c(k.librariesWithCategories()),r=c(k.libraryRequestLibraries()),i=c(j.getVideoRequest(e.id,e.typeId)),a=(j.isClip(i.data)||j.isInteractive(i.data))&&i.data?._parentVideo,o=c(a&&ne.video(a.id)),{loading:u,handleGenerateReportError:f}=re(),p=c(b.config()),h=N.useMemo(()=>G.sort(r.data),[r.data]),_=s(),x=A(),S=!!t.data&&v.getOrSetSortType(t.data.id);function C(){let e=null,t=l.first(i.data?.libraries?.data)?.id;if(t&&i.data.categories.data?.length){let n=i.data.categories.data.find(e=>e.libraries?.data?.find(e=>e.id.toString()===t.toString()));n&&(e=n.id)}if(!t&&(t=l.first(o.data?.libraries?.data)?.id,t&&o.data.categories.data?.length)){let n=o.data.categories.data.find(e=>e.libraries?.data?.find(e=>e.id.toString()===t.toString()));n&&(e=n.id)}return{sourceLibraryId:t?+t:null,sourceCategoryId:e?+e:null}}function w(t,n){let{sourceLibraryId:r,sourceCategoryId:a}=C(),o={objectId:e.id.toString(),objectType:oe[e.typeId],message:t.comment,sourceLibraryId:r,destinationLibraryId:+t.library.id,metadata:{destinationCategoryId:+t.folder.id,sourceCategoryId:a}};_(k.addToLibrary(o,S)).then(()=>{t.library.canAddContent?x.success({type:g.Success,heading:``,message:$(`addToLibrarySuccess`,{folder:t.folder.name,video:i.data.name,escapeText:!0}),...e.folderAppLink?{appLink:{...e.folderAppLink,args:[t.library.id,t.folder.id,d.slugify(t.folder.name)]},appLinkText:$(`goToFolder`,{folder:t.folder.name}),appLinkClassName:`info-link`}:{extLink:Q.buildOpenLibraryFolderUrl(p.data.launchUrl,{libraryId:t.library.id,folderId:t.folder.id}),extLinkText:$(`goToFolder`,{folder:t.folder.name}),extLinkClassName:`info-link`}}):x.success({type:g.Pending,heading:$(`pendingApproval`),message:$(`libraryRequestSent`,{library:t.library.name,escapeText:!0})})}).catch(e=>{let t=Z.libraryApiError(e);f(e,t,t),n()}).finally(()=>{e.closePopup()})}function T(e){return n.data.find(t=>t.data.id.toString()===e.toString())?.children}function E(e){return!!i.data.categories?.data?.find(t=>t.id===e.id)}let D=r.data&&i.data&&n.data;return(0,L.jsx)(y,{title:$(`addToLibrary`),closePopup:e.closePopup,showLoadingSpinner:!D||u,children:D&&(0,L.jsx)(ee,{initialValues:{library:l.first(h),folder:null,comment:``},validationSchema:J,onSubmit:w,children:(0,L.jsx)(W,{libraries:h,closePopup:e.closePopup,isFolderDisabled:E,video:i.data,videoLibraries:i.data?.libraries?.data,getCategoryTree:T})})})}export{se as AddToLibraryView};
2
+ //# sourceMappingURL=XWykPl9h2.chunk.js.map