@clickview/exchange 0.62.0-rc.0 → 0.62.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +531 -531
- package/dist/bundles.json +1 -1
- package/dist/css/Crtlho0p.chunk.css +8 -0
- package/dist/en.json +1 -1
- package/dist/scripts/{cIPkkuhG.chunk.js → 1iKkdpYv.chunk.js} +2 -2
- package/dist/scripts/{cIPkkuhG.chunk.js.map → 1iKkdpYv.chunk.js.map} +1 -1
- package/dist/scripts/{uPFXIvcK2.chunk.js → 8pXw5z942.chunk.js} +2 -2
- package/dist/scripts/{uPFXIvcK2.chunk.js.map → 8pXw5z942.chunk.js.map} +1 -1
- package/dist/scripts/{DVVx1aiS2.chunk.js → B7m3cCi42.chunk.js} +2 -2
- package/dist/scripts/{DVVx1aiS2.chunk.js.map → B7m3cCi42.chunk.js.map} +1 -1
- package/dist/scripts/{DBJfKQKx.chunk.js → BAN6QE-X.chunk.js} +2 -2
- package/dist/scripts/{DBJfKQKx.chunk.js.map → BAN6QE-X.chunk.js.map} +1 -1
- package/dist/scripts/{YGLkoFLc.chunk.js → BHbt9wzx.chunk.js} +2 -2
- package/dist/scripts/{YGLkoFLc.chunk.js.map → BHbt9wzx.chunk.js.map} +1 -1
- package/dist/scripts/{DeevL6eQ.chunk.js → BINz0dmF.chunk.js} +2 -2
- package/dist/scripts/{DeevL6eQ.chunk.js.map → BINz0dmF.chunk.js.map} +1 -1
- package/dist/scripts/{Dg-h5qnR.chunk.js → BPYdRA7H.chunk.js} +2 -2
- package/dist/scripts/{Dg-h5qnR.chunk.js.map → BPYdRA7H.chunk.js.map} +1 -1
- package/dist/scripts/{CkH6ird3.chunk.js → BS8sYAAh.chunk.js} +2 -2
- package/dist/scripts/{CkH6ird3.chunk.js.map → BS8sYAAh.chunk.js.map} +1 -1
- package/dist/scripts/{CKrB9r9w.chunk.js → BaSi1pig.chunk.js} +2 -2
- package/dist/scripts/{CKrB9r9w.chunk.js.map → BaSi1pig.chunk.js.map} +1 -1
- package/dist/scripts/{BRQhDr-02.chunk.js → BbrEvwAi2.chunk.js} +2 -2
- package/dist/scripts/{BRQhDr-02.chunk.js.map → BbrEvwAi2.chunk.js.map} +1 -1
- package/dist/scripts/{Ct8ETEOn2.chunk.js → Bi8itw8v2.chunk.js} +2 -2
- package/dist/scripts/{Ct8ETEOn2.chunk.js.map → Bi8itw8v2.chunk.js.map} +1 -1
- package/dist/scripts/{Co_6cSBX2.chunk.js → BlOKamx72.chunk.js} +2 -2
- package/dist/scripts/{Co_6cSBX2.chunk.js.map → BlOKamx72.chunk.js.map} +1 -1
- package/dist/scripts/{B0hNKKDw2.chunk.js → BobZ5p_m2.chunk.js} +2 -2
- package/dist/scripts/{B0hNKKDw2.chunk.js.map → BobZ5p_m2.chunk.js.map} +1 -1
- package/dist/scripts/{Nx0q4bij.chunk.js → BsLLiG1-.chunk.js} +2 -2
- package/dist/scripts/{Nx0q4bij.chunk.js.map → BsLLiG1-.chunk.js.map} +1 -1
- package/dist/scripts/{D0H6Hjd-2.chunk.js → BtdygabL2.chunk.js} +2 -2
- package/dist/scripts/{D0H6Hjd-2.chunk.js.map → BtdygabL2.chunk.js.map} +1 -1
- package/dist/scripts/{UjMbny4R.chunk.js → Bue5_bLM.chunk.js} +2 -2
- package/dist/scripts/{UjMbny4R.chunk.js.map → Bue5_bLM.chunk.js.map} +1 -1
- package/dist/scripts/{DBKlntFN2.chunk.js → BvamDkjt2.chunk.js} +2 -2
- package/dist/scripts/{DBKlntFN2.chunk.js.map → BvamDkjt2.chunk.js.map} +1 -1
- package/dist/scripts/{NInuYe7b2.chunk.js → BzJLc19T2.chunk.js} +2 -2
- package/dist/scripts/{NInuYe7b2.chunk.js.map → BzJLc19T2.chunk.js.map} +1 -1
- package/dist/scripts/{DyRGf1o8.chunk.js → C03mMZ4k.chunk.js} +2 -2
- package/dist/scripts/{DyRGf1o8.chunk.js.map → C03mMZ4k.chunk.js.map} +1 -1
- package/dist/scripts/{BV2vTX2L.chunk.js → C2AXrtJf.chunk.js} +2 -2
- package/dist/scripts/{BV2vTX2L.chunk.js.map → C2AXrtJf.chunk.js.map} +1 -1
- package/dist/scripts/{Fu0bLEzl2.chunk.js → C3Hw2TpW2.chunk.js} +2 -2
- package/dist/scripts/{Fu0bLEzl2.chunk.js.map → C3Hw2TpW2.chunk.js.map} +1 -1
- package/dist/scripts/{DoTtsl0X.chunk.js → CKL4ViMC.chunk.js} +2 -2
- package/dist/scripts/{DoTtsl0X.chunk.js.map → CKL4ViMC.chunk.js.map} +1 -1
- package/dist/scripts/{DtYC8Udi2.chunk.js → CKZJ2qae2.chunk.js} +2 -2
- package/dist/scripts/{DtYC8Udi2.chunk.js.map → CKZJ2qae2.chunk.js.map} +1 -1
- package/dist/scripts/{CyAM5o2e.chunk.js → CK_CN_mA.chunk.js} +2 -2
- package/dist/scripts/{CyAM5o2e.chunk.js.map → CK_CN_mA.chunk.js.map} +1 -1
- package/dist/scripts/{B6mSouu5.chunk.js → CL9SkODG.chunk.js} +2 -2
- package/dist/scripts/{B6mSouu5.chunk.js.map → CL9SkODG.chunk.js.map} +1 -1
- package/dist/scripts/{BHKm8WQq2.chunk.js → Ca_-2JTE2.chunk.js} +2 -2
- package/dist/scripts/{BHKm8WQq2.chunk.js.map → Ca_-2JTE2.chunk.js.map} +1 -1
- package/dist/scripts/{C7OCN_w_.chunk.js → CfNYdg0m.chunk.js} +2 -2
- package/dist/scripts/{C7OCN_w_.chunk.js.map → CfNYdg0m.chunk.js.map} +1 -1
- package/dist/scripts/{CUdaR862.chunk.js → Ct_4zyE3.chunk.js} +2 -2
- package/dist/scripts/{CUdaR862.chunk.js.map → Ct_4zyE3.chunk.js.map} +1 -1
- package/dist/scripts/{RiPZGw_q2.chunk.js → CxUrOnxW2.chunk.js} +2 -2
- package/dist/scripts/{RiPZGw_q2.chunk.js.map → CxUrOnxW2.chunk.js.map} +1 -1
- package/dist/scripts/{BJxTZJOX.chunk.js → DFXpg6rF.chunk.js} +2 -2
- package/dist/scripts/{BJxTZJOX.chunk.js.map → DFXpg6rF.chunk.js.map} +1 -1
- package/dist/scripts/{CKNdXwxe2.chunk.js → DG6L7zHU2.chunk.js} +2 -2
- package/dist/scripts/{CKNdXwxe2.chunk.js.map → DG6L7zHU2.chunk.js.map} +1 -1
- package/dist/scripts/{CvQQNf_J2.chunk.js → DKz4jhnr2.chunk.js} +2 -2
- package/dist/scripts/{CvQQNf_J2.chunk.js.map → DKz4jhnr2.chunk.js.map} +1 -1
- package/dist/scripts/{BOvQpQ21.chunk.js → DSZkTUVU.chunk.js} +2 -2
- package/dist/scripts/{BOvQpQ21.chunk.js.map → DSZkTUVU.chunk.js.map} +1 -1
- package/dist/scripts/{D5qMnGHT2.chunk.js → D_k-Kl3-2.chunk.js} +2 -2
- package/dist/scripts/{D5qMnGHT2.chunk.js.map → D_k-Kl3-2.chunk.js.map} +1 -1
- package/dist/scripts/{Dp0gbhZx2.chunk.js → DfOgl-0-2.chunk.js} +2 -2
- package/dist/scripts/{Dp0gbhZx2.chunk.js.map → DfOgl-0-2.chunk.js.map} +1 -1
- package/dist/scripts/{CeCXhgoJ.chunk.js → DkB0qBxI.chunk.js} +2 -2
- package/dist/scripts/{CeCXhgoJ.chunk.js.map → DkB0qBxI.chunk.js.map} +1 -1
- package/dist/scripts/{CeHHO1Hv.chunk.js → DmVXt6_V.chunk.js} +2 -2
- package/dist/scripts/{CeHHO1Hv.chunk.js.map → DmVXt6_V.chunk.js.map} +1 -1
- package/dist/scripts/{aDegERgV2.chunk.js → DqM6hYTJ2.chunk.js} +2 -2
- package/dist/scripts/{aDegERgV2.chunk.js.map → DqM6hYTJ2.chunk.js.map} +1 -1
- package/dist/scripts/{BPgKK-d32.chunk.js → DsHiClyc2.chunk.js} +2 -2
- package/dist/scripts/{BPgKK-d32.chunk.js.map → DsHiClyc2.chunk.js.map} +1 -1
- package/dist/scripts/{D9zlZIWi2.chunk.js → DuPL-nK72.chunk.js} +2 -2
- package/dist/scripts/{D9zlZIWi2.chunk.js.map → DuPL-nK72.chunk.js.map} +1 -1
- package/dist/scripts/{ZSP3Vfha2.chunk.js → EIJf9JbR2.chunk.js} +2 -2
- package/dist/scripts/{ZSP3Vfha2.chunk.js.map → EIJf9JbR2.chunk.js.map} +1 -1
- package/dist/scripts/{CqNKzFA4.chunk.js → EO2xPuAQ.chunk.js} +2 -2
- package/dist/scripts/{CqNKzFA4.chunk.js.map → EO2xPuAQ.chunk.js.map} +1 -1
- package/dist/scripts/{o2htB_49.chunk.js → F1LOVRO_.chunk.js} +2 -2
- package/dist/scripts/{o2htB_49.chunk.js.map → F1LOVRO_.chunk.js.map} +1 -1
- package/dist/scripts/{BggsU83p2.chunk.js → G-hiM6b42.chunk.js} +2 -2
- package/dist/scripts/{BggsU83p2.chunk.js.map → G-hiM6b42.chunk.js.map} +1 -1
- package/dist/scripts/{B0VKYPiu.chunk.js → MYu2AEsL.chunk.js} +2 -2
- package/dist/scripts/{B0VKYPiu.chunk.js.map → MYu2AEsL.chunk.js.map} +1 -1
- package/dist/scripts/{B9Rb6IIb.chunk.js → NtrZI2Ef.chunk.js} +2 -2
- package/dist/scripts/{B9Rb6IIb.chunk.js.map → NtrZI2Ef.chunk.js.map} +1 -1
- package/dist/scripts/{CRHkMr9_2.chunk.js → OBYDGOgI2.chunk.js} +2 -2
- package/dist/scripts/{CRHkMr9_2.chunk.js.map → OBYDGOgI2.chunk.js.map} +1 -1
- package/dist/scripts/{zp5MUThO.chunk.js → Pixwk-h-.chunk.js} +2 -2
- package/dist/scripts/{zp5MUThO.chunk.js.map → Pixwk-h-.chunk.js.map} +1 -1
- package/dist/scripts/{Ds3cFntF2.chunk.js → SDRXIwM22.chunk.js} +3 -3
- package/dist/scripts/{Ds3cFntF2.chunk.js.map → SDRXIwM22.chunk.js.map} +1 -1
- package/dist/scripts/{C1u2qBZg2.chunk.js → U0UyGd9c2.chunk.js} +2 -2
- package/dist/scripts/{C1u2qBZg2.chunk.js.map → U0UyGd9c2.chunk.js.map} +1 -1
- package/dist/scripts/{CYUx40jk.chunk.js → amjwjus3.chunk.js} +2 -2
- package/dist/scripts/{CYUx40jk.chunk.js.map → amjwjus3.chunk.js.map} +1 -1
- package/dist/scripts/{app-DDrsm5nt.js → app-BGxmHvGl.js} +3 -3
- package/dist/scripts/{app-DDrsm5nt.js.map → app-BGxmHvGl.js.map} +1 -1
- package/dist/scripts/{CgGl8jzo.chunk.js → eUKFc6dK.chunk.js} +2 -2
- package/dist/scripts/{CgGl8jzo.chunk.js.map → eUKFc6dK.chunk.js.map} +1 -1
- package/dist/scripts/{CWsmm40y.chunk.js → l7UAnIb0.chunk.js} +2 -2
- package/dist/scripts/{CWsmm40y.chunk.js.map → l7UAnIb0.chunk.js.map} +1 -1
- package/dist/scripts/{BsSKrRku2.chunk.js → nMyWveQA2.chunk.js} +2 -2
- package/dist/scripts/{BsSKrRku2.chunk.js.map → nMyWveQA2.chunk.js.map} +1 -1
- package/dist/scripts/{CKUk2HqE.chunk.js → pOL5_XNC.chunk.js} +2 -2
- package/dist/scripts/{CKUk2HqE.chunk.js.map → pOL5_XNC.chunk.js.map} +1 -1
- package/dist/scripts/{eLmgigsW.chunk.js → sViLex0Q.chunk.js} +2 -2
- package/dist/scripts/{eLmgigsW.chunk.js.map → sViLex0Q.chunk.js.map} +1 -1
- package/dist/scripts/{Xs1Bv1h-.chunk.js → vvCGyl_q.chunk.js} +2 -2
- package/dist/scripts/{Xs1Bv1h-.chunk.js.map → vvCGyl_q.chunk.js.map} +1 -1
- package/dist/scripts/{BijIuzIs2.chunk.js → xEGWFFpD2.chunk.js} +2 -2
- package/dist/scripts/{BijIuzIs2.chunk.js.map → xEGWFFpD2.chunk.js.map} +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,bt as n,mn as r}from"./CnnBLBPY.chunk.js";import{n as i,t as a,v as o}from"./DW0w8_XN.chunk.js";import{C as s,M as c,T as l,w as u}from"./Cme1qeEa.chunk.js";import{t as d}from"./QxhzRpcg.chunk.js";import{n as f}from"./dawN348Z.chunk.js";import{t as p}from"./BHEKlg6n.chunk.js";import{T as m}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,bt as n,mn as r}from"./CnnBLBPY.chunk.js";import{n as i,t as a,v as o}from"./DW0w8_XN.chunk.js";import{C as s,M as c,T as l,w as u}from"./Cme1qeEa.chunk.js";import{t as d}from"./QxhzRpcg.chunk.js";import{n as f}from"./dawN348Z.chunk.js";import{t as p}from"./BHEKlg6n.chunk.js";import{T as m}from"./app-BGxmHvGl.js";import{t as h}from"./B7KaaLVd.chunk.js";import{r as g}from"./Bzw5oyg9.chunk.js";import{t as _}from"./ApcDOLl8.chunk.js";import{t as v}from"./CHUTfIvf.chunk.js";var y=r(c()),b=r(t()),x=e(),S=b.forwardRef(({bsPrefix:e,className:t,as:n=`div`,...r},i)=>{let a=l(e,`row`),o=s(),c=u(),d=`${a}-cols`,f=[];return o.forEach(e=>{let t=r[e];delete r[e];let n;typeof t==`object`&&t?{cols:n}=t:n=t;let i=e===c?``:`-${e}`;n!=null&&f.push(`${d}${i}-${n}`)}),(0,x.jsx)(n,{ref:i,...r,className:(0,y.default)(t,a,...f)})});S.displayName=`Row`;var C=400;function w(e){let t=()=>{if(!e.isFetching){if(e.scrollContainer){let{scrollContainer:t}=e;if(t.getBoundingClientRect().height+t.scrollTop<t.scrollHeight-C)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-C)return;e.fetchNextPage()}};(0,b.useEffect)(()=>{let n=o.throttle(t,200),r=e.scrollContainer||window;return e.hasMore&&r.addEventListener(`scroll`,n),()=>r.removeEventListener(`scroll`,n)},[e.hasMore,e.fetchNextPage,e.scrollContainer])}function T(e,t,r,i,a,s){let[c,l]=(0,b.useState)(0),u=t;function d(t){if(!e)return null;let n=e(t);return n?n.key:null}let f=_(d,i,a);function p(){if(!(!t||!e||!f))return l(e=>e+1),u(f.nextCursor)}return w({fetchNextPage:p,hasMore:!!f?.nextCursor,isFetching:f?.isFetching,scrollContainer:s}),(0,b.useEffect)(()=>{f&&f.shouldInitialFetch&&t&&(u(),l(e=>e+1))},[f?.shouldInitialFetch,t]),(0,b.useEffect)(()=>{if(!f?.statusCode||!o.isFunction(r))return;let e=+f.statusCode?.toString()?.substr(0,1);e!==n.ClientError&&e!==n.ServerError||r(c,f.statusCode)},[f?.statusCode]),{items:f?.items,hasMore:!!f?.nextCursor,nextCursor:f?.nextCursor,isFetching:f?.isFetching,totalItems:f?.totalItems,hasFirstPageCompleted:f?.hasFirstPageCompleted}}var E={container:`_container_1kfhe_1`,spinner:`_spinner_1kfhe_4`};D.defaultProps={fetchOnScroll:!1};function D(e){let[t,n]=g();return b.useEffect(()=>{e.fetchOnScroll&&(!n||e.isFetching||e.fetchNext?.(e.nextCursor))},[n,e.isFetching]),(0,x.jsx)(`div`,{className:`p-3 text-center ${E.container}`,children:e.isFetching?(0,x.jsx)(f,{as:`span`,animation:`border`,role:`status`,className:E.spinner}):(0,x.jsx)(`div`,{ref:t,children:(0,x.jsx)(a,{svg:v,className:`svg-container cursor-pointer`,size:i.Large,onClick:()=>e.fetchNext?.(e.nextCursor)})})})}var O={getThumbnailColumns(){return{xs:12,sm:5,lg:3}},getDetailsColumns(){return{xs:12,sm:7,lg:9}},getSize(e,t){return e.sm?`sm`:t||`md`},getThumbnailColSize(e){return e?10:12}},k={partialOptions:`_partialOptions_157xw_1`,partialName:`_partialName_157xw_4`,partialDescription:`_partialDescription_157xw_8`,partialThumbnail:`_partialThumbnail_157xw_12`,partialDragHandle:`_partialDragHandle_157xw_15`};A.defaultProps={numVideos:15};function A(e){return(0,x.jsx)(x.Fragment,{children:Array(e.numVideos).fill(null).map((t,n)=>(0,x.jsxs)(`div`,{className:`d-flex`,children:[e.allowBulkActions&&(0,x.jsx)(`div`,{className:`form-check pe-3 pe-sm-2 mx-0 mx-md-2`}),(0,x.jsx)(j,{...e})]},n))})}function j(e){let t=m(),n=O.getSize(t,`md`)===`sm`,r=e.withReordering&&!t.xs;return(0,x.jsxs)(S,{className:`${n?``:`py-2`} flex-grow-1`,children:[(0,x.jsx)(d,{...O.getThumbnailColumns(),className:`flex-column align-items-flex-start ${n?`pb-2 pe-1`:`mb-1 pe-3 pe-md-2`}`,children:(0,x.jsxs)(S,{children:[!!r&&(0,x.jsx)(`div`,{className:`d-flex align-items-center justify-content-center col-2`,children:(0,x.jsx)(`div`,{className:`partial-loading-background ${k.partialDragHandle}`})}),(0,x.jsx)(d,{xs:O.getThumbnailColSize(r),children:(0,x.jsx)(`div`,{className:`partial-loading-background ${n?`rounded`:`rounded-3`} ${k.partialThumbnail}`})})]})}),(0,x.jsxs)(d,{...O.getDetailsColumns(),className:n?`pb-2`:`px-2`,children:[(0,x.jsx)(`div`,{className:`partial-loading-background mb-1 ${k.partialName}`}),(0,x.jsx)(`div`,{className:`partial-loading-background ${k.partialDescription}`})]})]})}M.defaultProps={checked:!1,label:``,className:``};function M(e){let{isLabelEllipsis:t}=e,n=b.useRef(null);return b.useEffect(()=>{if(n.current){if(e.checked){n.current.indeterminate&&(n.current.indeterminate=!1);return}if(e.indeterminate&&!n.current.indeterminate){n.current.indeterminate=!0;return}!e.indeterminate&&n.current.indeterminate&&(n.current.indeterminate=!1)}},[n.current,e.indeterminate,e.checked]),(0,x.jsxs)(`div`,{className:`form-check pe-2 ${e.className}`,children:[(0,x.jsx)(`input`,{ref:n,type:`checkbox`,className:`${e.inputClassName} form-check-input`,id:e.id,name:e.name,checked:e.checked,onChange:e.onChange,disabled:e.disabled,"aria-checked":e.checked,"aria-label":e.ariaLabel}),e.label&&(0,x.jsx)(`label`,{className:`form-check-label cursor-pointer align-top`,htmlFor:e.id,children:(0,x.jsx)(`span`,{className:`${t?`clamp-1`:``}`,children:e.label})})]})}function N(e){return(0,x.jsx)(`svg`,{...e,children:(0,x.jsx)(`path`,{fill:`currentColor`,d:`M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024`})})}function P(){let e=p(h.XS),t=p(h.SM),n=p(h.MD),r=p(h.LG),i=p(h.XL),a=p(h.XXL),o=h.LG;return e&&(o=h.XS),t&&(o=h.SM),n&&(o=h.MD),r&&(o=h.LG),i&&(o=h.XL),a&&(o=h.XXL),o}export{O as a,S as c,A as i,N as n,D as o,M as r,T as s,P as t};
|
|
2
|
+
//# sourceMappingURL=1iKkdpYv.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cIPkkuhG.chunk.js","names":[],"sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../../../libs/shared/src/hooks/UseInfiniteScroll.ts","../../../../libs/shared/src/hooks/UseInfiniteList.ts","../../../../libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.module.scss","../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","../../../../libs/shared/src/components/video-list/VideoListHelper.tsx","../../../../libs/shared/src/components/video-list/partial-loading/partial-video-list.module.scss","../../../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","../../../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx","../../../../libs/shared/src/images/svg/objects/GraduationCapSvg.tsx","../../../../libs/shared/src/hooks/UseGetMediaQueryString.ts"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}\n","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}\n",":local {\n .container {\n color: $gray-900;\n }\n\n .spinner {\n width: $cv-svg-size-md;\n height: $cv-svg-size-md;\n }\n}","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching ?\n <Spinner as='span' animation='border' role='status' className={styles.spinner} /> :\n (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}\n","import { ColProps } from 'react-bootstrap';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nexport const VideoListHelper = {\n getThumbnailColumns(): ColProps {\n return {\n xs: 12,\n sm: 5,\n lg: 3\n };\n },\n\n getDetailsColumns(): ColProps {\n return {\n xs: 12,\n sm: 7,\n lg: 9\n };\n },\n\n getSize(breakpoints: Breakpoints, size: VideoItemSize): VideoItemSize {\n if (breakpoints.sm)\n return 'sm';\n \n return size || 'md';\n },\n\n getThumbnailColSize(hasDragHandle: boolean): number {\n return hasDragHandle ? 10 : 12;\n }\n};\n",":local {\n .partialOptions {\n width: 5.375rem;\n }\n\n .partialName {\n width: 18.75rem;\n height: 1.3125rem;\n }\n\n .partialDescription {\n width: 12.5rem;\n height: 1.3125rem;\n }\n\n .partialThumbnail {\n padding-bottom: 56.25%;\n }\n\n .partialDragHandle {\n width: 1.25rem;\n height: 1.25rem;\n }\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.module.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import * as React from 'react';\n\ninterface CheckboxProps {\n id: string;\n checked: boolean;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n label?: string;\n ariaLabel?: string;\n name?: string;\n className?: string;\n inputClassName?: string;\n disabled?: boolean;\n indeterminate?: boolean;\n isLabelEllipsis?: boolean;\n}\n\nCheckbox.defaultProps = {\n checked: false,\n label: '',\n className: ''\n};\n\n/**\n * Use this checkbox outside of Formik contexts\n */\nexport function Checkbox(props: CheckboxProps): JSX.Element {\n const { isLabelEllipsis } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n if (!ref.current)\n return;\n\n if (props.checked) {\n if (ref.current.indeterminate)\n ref.current.indeterminate = false;\n\n return;\n }\n\n if (props.indeterminate && !ref.current.indeterminate) {\n ref.current.indeterminate = true;\n return;\n }\n\n if (!props.indeterminate && ref.current.indeterminate)\n ref.current.indeterminate = false;\n }, [ ref.current, props.indeterminate, props.checked ]);\n\n return (\n <div className={`form-check pe-2 ${props.className}`}>\n <input\n ref={ref}\n type='checkbox'\n className={`${props.inputClassName} form-check-input`}\n id={props.id}\n name={props.name}\n checked={props.checked}\n onChange={props.onChange}\n disabled={props.disabled}\n aria-checked={props.checked}\n aria-label={props.ariaLabel}\n />\n {props.label && (\n <label className='form-check-label cursor-pointer align-top' htmlFor={props.id}>\n <span className={`${isLabelEllipsis ? 'clamp-1' : ''}`}>{props.label}</span>\n </label>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport function GraduationCapSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024'\n />\n </svg>\n );\n}\n","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"1iKkdpYv.chunk.js","names":[],"sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../../../libs/shared/src/hooks/UseInfiniteScroll.ts","../../../../libs/shared/src/hooks/UseInfiniteList.ts","../../../../libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.module.scss","../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","../../../../libs/shared/src/components/video-list/VideoListHelper.tsx","../../../../libs/shared/src/components/video-list/partial-loading/partial-video-list.module.scss","../../../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","../../../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx","../../../../libs/shared/src/images/svg/objects/GraduationCapSvg.tsx","../../../../libs/shared/src/hooks/UseGetMediaQueryString.ts"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}\n","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}\n",":local {\n .container {\n color: $gray-900;\n }\n\n .spinner {\n width: $cv-svg-size-md;\n height: $cv-svg-size-md;\n }\n}","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching ?\n <Spinner as='span' animation='border' role='status' className={styles.spinner} /> :\n (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}\n","import { ColProps } from 'react-bootstrap';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nexport const VideoListHelper = {\n getThumbnailColumns(): ColProps {\n return {\n xs: 12,\n sm: 5,\n lg: 3\n };\n },\n\n getDetailsColumns(): ColProps {\n return {\n xs: 12,\n sm: 7,\n lg: 9\n };\n },\n\n getSize(breakpoints: Breakpoints, size: VideoItemSize): VideoItemSize {\n if (breakpoints.sm)\n return 'sm';\n \n return size || 'md';\n },\n\n getThumbnailColSize(hasDragHandle: boolean): number {\n return hasDragHandle ? 10 : 12;\n }\n};\n",":local {\n .partialOptions {\n width: 5.375rem;\n }\n\n .partialName {\n width: 18.75rem;\n height: 1.3125rem;\n }\n\n .partialDescription {\n width: 12.5rem;\n height: 1.3125rem;\n }\n\n .partialThumbnail {\n padding-bottom: 56.25%;\n }\n\n .partialDragHandle {\n width: 1.25rem;\n height: 1.25rem;\n }\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.module.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import * as React from 'react';\n\ninterface CheckboxProps {\n id: string;\n checked: boolean;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n label?: string;\n ariaLabel?: string;\n name?: string;\n className?: string;\n inputClassName?: string;\n disabled?: boolean;\n indeterminate?: boolean;\n isLabelEllipsis?: boolean;\n}\n\nCheckbox.defaultProps = {\n checked: false,\n label: '',\n className: ''\n};\n\n/**\n * Use this checkbox outside of Formik contexts\n */\nexport function Checkbox(props: CheckboxProps): JSX.Element {\n const { isLabelEllipsis } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n if (!ref.current)\n return;\n\n if (props.checked) {\n if (ref.current.indeterminate)\n ref.current.indeterminate = false;\n\n return;\n }\n\n if (props.indeterminate && !ref.current.indeterminate) {\n ref.current.indeterminate = true;\n return;\n }\n\n if (!props.indeterminate && ref.current.indeterminate)\n ref.current.indeterminate = false;\n }, [ ref.current, props.indeterminate, props.checked ]);\n\n return (\n <div className={`form-check pe-2 ${props.className}`}>\n <input\n ref={ref}\n type='checkbox'\n className={`${props.inputClassName} form-check-input`}\n id={props.id}\n name={props.name}\n checked={props.checked}\n onChange={props.onChange}\n disabled={props.disabled}\n aria-checked={props.checked}\n aria-label={props.ariaLabel}\n />\n {props.label && (\n <label className='form-check-label cursor-pointer align-top' htmlFor={props.id}>\n <span className={`${isLabelEllipsis ? 'clamp-1' : ''}`}>{props.label}</span>\n </label>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport function GraduationCapSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024'\n />\n </svg>\n );\n}\n","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{D as e,_t as t,mn as n,yt as r}from"./CnnBLBPY.chunk.js";import{k as i}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{D as e,_t as t,mn as n,yt as r}from"./CnnBLBPY.chunk.js";import{k as i}from"./app-BGxmHvGl.js";import{t as a}from"./DmVXt6_V.chunk.js";var o=n(e());function s(e,n){o.useEffect(()=>{e.hasCompleted&&(e.data||(e.hasError&&a(e.statusCode),n?t.throw(new i):a(r.BadRequest)))},[e.hasCompleted,e.data])}export{s as t};
|
|
2
|
+
//# sourceMappingURL=8pXw5z942.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"8pXw5z942.chunk.js","names":[],"sources":["../../src/apps/tv/hooks/useHandleRegionError.ts"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { UnspecifiedDialogError } from 'libs/shared/errors/general/unspecified-dialog/UnspecifiedDialogError';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nexport function useHandleRegionError(response: Flight.Response<TvRegion>, popup?: boolean): void {\n React.useEffect(() => {\n if (!response.hasCompleted)\n return;\n\n if (response.data)\n return;\n\n if (response.hasError) {\n handleHttpError(response.statusCode);\n }\n\n if (popup)\n Core.ErrorHelper.throw(new UnspecifiedDialogError());\n else {\n handleHttpError(HttpStatus.BadRequest);\n }\n }, [ response.hasCompleted, response.data ]);\n}\n"],"mappings":"2JAWA,SAAgB,EAAqB,EAAqC,EAAuB,CAC/F,EAAM,cAAgB,CACf,EAAS,eAGV,EAAS,OAGT,EAAS,UACX,EAAgB,EAAS,WAAW,CAGlC,EACF,EAAiB,MAAM,IAAI,EAAyB,CAEpD,EAAgB,EAAW,WAAW,IAEvC,CAAE,EAAS,aAAc,EAAS,KAAM,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t}from"./CnnBLBPY.chunk.js";import{l as n,u as r}from"./D8clSITt.chunk.js";import{t as i}from"./GN6vNflP.chunk.js";import{t as a}from"./BjaJoJzM.chunk.js";import{t as o}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t}from"./CnnBLBPY.chunk.js";import{l as n,u as r}from"./D8clSITt.chunk.js";import{t as i}from"./GN6vNflP.chunk.js";import{t as a}from"./BjaJoJzM.chunk.js";import{t as o}from"./xEGWFFpD2.chunk.js";import{t as s}from"./CK_CN_mA.chunk.js";import{n as c,r as l,t as u}from"./sViLex0Q.chunk.js";import{t as d}from"./CfNYdg0m.chunk.js";import{t as f}from"./d3WuXtzH.chunk.js";import{t as p}from"./MYu2AEsL.chunk.js";import{t as m}from"./amjwjus3.chunk.js";t();var h=e(),g=i.encloseNamespace(`exchange.exchange`);function _(){let e=r(),t=n(s.exchange()),i=e=>o.childFolders(t.data.categoryTree.id,e),_=c(t.data&&i,t=>e(i(t)));return d(t),a({title:g(`exchangeArchive`)}),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`div`,{className:`mb-3`,children:[(0,h.jsx)(f,{}),(0,h.jsx)(p,{active:`categories`})]}),_?.items?_.items.length?(0,h.jsx)(`div`,{className:`mx-n2`,children:(0,h.jsx)(l,{folders:_.items,getAppLink:e=>m(e),expandFolders:!0,showHeading:!1})}):(0,h.jsx)(h.Fragment,{}):(0,h.jsx)(`div`,{className:`mt-3`,children:(0,h.jsx)(u,{count:22})})]})}export{_ as ExchangeView};
|
|
2
|
+
//# sourceMappingURL=B7m3cCi42.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"B7m3cCi42.chunk.js","names":[],"sources":["../../src/apps/exchange/views/exchange/ExchangeView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { getFolderAppLink } from 'apps/exchange/utils/ExchangeUtils';\n\nconst namespace = 'exchange.exchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function ExchangeView(): JSX.Element {\n const fetch = Flight.useGetFetch();\n\n const exchange = Flight.useBasicFetch<Library>(ExchangeRequests.exchange());\n const getRequest = (cursor: string) => LibraryRequests.childFolders(exchange.data.categoryTree.id, cursor);\n const fetchNext = (cursor: string) => fetch(getRequest(cursor));\n const libraryFolders = useFetchAll(exchange.data && getRequest, fetchNext);\n\n useHandleObjectError(exchange);\n\n useSetPageMetadata({ title: getPhrase('exchangeArchive') });\n\n return (\n <>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n \n {(() => {\n if (!libraryFolders?.items)\n return <div className='mt-3'><PartialFolderList count={22} /></div>;\n\n if (!libraryFolders.items.length)\n return <></>;\n\n return (\n <div className='mx-n2'>\n <FolderList\n folders={libraryFolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f)}\n expandFolders\n showHeading={false}\n />\n </div>\n );\n })()}\n </>\n );\n}\n"],"mappings":"meAmBM,EAAY,EAAgB,iBADhB,oBAC2C,CAE7D,SAAgB,GAA4B,CAC1C,IAAM,EAAQ,GAAoB,CAE5B,EAAW,EAA8B,EAAiB,UAAU,CAAC,CACrE,EAAc,GAAmB,EAAgB,aAAa,EAAS,KAAK,aAAa,GAAI,EAAO,CAEpG,EAAiB,EAAY,EAAS,MAAQ,EADjC,GAAmB,EAAM,EAAW,EAAO,CAAC,CACW,CAM1E,OAJA,EAAqB,EAAS,CAE9B,EAAmB,CAAE,MAAO,EAAU,kBAAkB,CAAE,CAAC,EAGzD,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,EAAD,EAAqB,CAAA,EACrB,EAAA,EAAA,KAAC,EAAD,CAAc,OAAO,aAAe,CAAA,CAChC,GAGC,GAAgB,MAGhB,EAAe,MAAM,QAIxB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kBACb,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAe,MACxB,WAAa,GAAc,EAAiB,EAAE,CAC9C,cAAA,GACA,YAAa,GACb,CAAA,CACE,CAAA,EAVC,EAAA,EAAA,KAAA,EAAA,SAAA,EAAK,CAAA,EAHL,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBAAO,EAAA,EAAA,KAAC,EAAD,CAAmB,MAAO,GAAM,CAAA,CAAM,CAAA,CAgBtE,CAAA,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{S as e,b as t,d as n,s as r,x as i}from"./CnnBLBPY.chunk.js";import{l as a,p as o,u as s}from"./D8clSITt.chunk.js";import{t as c}from"./GN6vNflP.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{t as d}from"./CrBD6Z4s.chunk.js";import{t as f}from"./CRRZVEmA.chunk.js";import{t as p}from"./D_PyfoSL.chunk.js";import{C as m,S as h,Z as g,l as _,tt as v}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{S as e,b as t,d as n,s as r,x as i}from"./CnnBLBPY.chunk.js";import{l as a,p as o,u as s}from"./D8clSITt.chunk.js";import{t as c}from"./GN6vNflP.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{t as d}from"./CrBD6Z4s.chunk.js";import{t as f}from"./CRRZVEmA.chunk.js";import{t as p}from"./D_PyfoSL.chunk.js";import{C as m,S as h,Z as g,l as _,tt as v}from"./app-BGxmHvGl.js";import{t as y}from"./xEGWFFpD2.chunk.js";import{t as b}from"./G-hiM6b42.chunk.js";import{n as x}from"./BLtXMKpA.chunk.js";var S=function(e){return e.Developer=`Curator Devs`,e.Content=`Content`,e.Curator=`Curators`,e.Support=`Support`,e.SalesSupport=`Sales Support`,e.GraphicDesigner=`Graphic Designers`,e.MetadataEditor=`Metadata Editors`,e.ResourcingManager=`Resourcing Managers`,e.SeniorContentManager=`Senior Content Manager`,e.Marketing=`Marketing`,e.Sales=`Sales Representatives`,e.StreamableCurator=`Streamable Curator`,e.SupportExtraPermission=`Support - Extra Permissions`,e.SeoManager=`SEO Manager`,e.ContentReviewer=`Content Reviewer`,e}({}),C=c.encloseNamespace(`shared.hooks`);function w(e,t,n,r){let i=d.safeUrlConcat(e,`manage`),a=d.safeUrlConcat(e,`exchange`),o=(e,t,n)=>d.safeUrlConcat(e,`${t}/${n}`);switch(t){case v.Subject:return d.safeUrlConcat(i,`subjects/presentations/${r}/classifications/${n}/edit`);case v.Video:return o(i,`videos`,n);case v.Playlist:return o(i,`playlists`,n);case v.Series:return o(i,`series`,n);case v.Company:return o(i,`companies`,n);case v.Interactive:return o(i,`interactives`,n);case v.Clip:return o(i,`clips`,n);case v.Category:return o(a,`categories`,n)}}function T(){return C(`openInCurationStudio`)}function E(){let e=a(f.currentUser()),{data:t}=a(e.data?.id&&f.groups(e.data?.id)),n=a(g.config()),r=[S.Curator,S.Content,S.Developer];function i(){return r.some(e=>t?.data.find(t=>t.name===e))}return{openInCurationStudioLabel:T(),isUserCurator:i(),getOpenInCurationStudioLink:(e,t,r)=>w(n.data?.curatorUrl,e,t,r)}}var D=function(e){return e[e.PlayPage=0]=`PlayPage`,e}({});function O(e){let t=o(),n=s();function r(t){return e.type===D.PlayPage?b.getVideoRequest(t.id,t.typeId,e.shareId):null}function i(e){let i=r(e);t(i.key).shouldFetch&&n(i)}function a(e){return t(r(e).key).hasCompleted}return{hydrate:i,isHydrated:a}}var k=c.encloseNamespace(`exchange.exchangeHooks`),A={lazyPlaceholder:!0};function j(o){let{hasPermissions:s}=m(),{isUserCurator:c,openInCurationStudioLabel:d,getOpenInCurationStudioLink:f}=E(),b=a(g.config()),S=a(s(p.ContributeVideo)&&y.libraryRequestLibraries()),{hydrate:C,isHydrated:w}=O({type:D.PlayPage});function T(a){let s=o===`preview`,p={id:a.id,name:a.name},m=s?n.VideoItemPreview:n.VideoListItem,g=[{order:10,label:s?k(`openInClickView`):``,svg:h,tooltip:s?``:k(`openInClickView`),className:s?`btn btn-dark me-2`:``,button:!0,href:b.data&&_.safeUrlConcat(b.data.liteUrl,`/videos/${a.id}`),analyticsData:p,analyticsOptions:{actionType:t.Click,entity:r.Video,descriptor:i.OpenInClickView,location:m,workflowPhase:e.Start}},{order:20,label:s?k(`addVideo`):null,svg:s?void 0:x,tooltip:s?``:k(`addVideo`),button:!s,appLink:{application:l.EXCHANGE,action:u.Exchange.ADD,args:[a.id]},analyticsData:p,analyticsOptions:{actionType:t.Click,entity:r.Video,descriptor:i.AddToWorkspace,location:m,workflowPhase:e.Start}},{order:30,label:k(`suggest`),className:``,appLink:{application:l.EXCHANGE,action:u.Exchange.SUGGEST_EDIT,args:[a.id],params:{location:m}},analyticsData:p,analyticsOptions:{actionType:t.Click,entity:r.Video,descriptor:i.SuggestEdit,location:m,workflowPhase:e.Start}}];return w(a)?(a._canAddToLibrary?.customLibrary&&S.data?.length&&g.push({order:25,label:k(`addToLibrary`),className:``,appLink:{application:l.EXCHANGE,action:u.Exchange.ADD_TO_LIBRARY,args:[a.id]},analyticsData:p,analyticsOptions:{actionType:t.Create,entity:r.LibraryRequest,workflowPhase:e.Start,location:m}}),a._canDownload?.value&&g.push({order:40,label:k(`download`),className:``,appLink:{application:l.EXCHANGE,action:u.Exchange.DOWNLOAD_VIDEO,args:[a.id]},analyticsData:p,analyticsOptions:{actionType:t.Download,entity:r.Video,workflowPhase:e.Start,location:m}}),c&&g.push({order:50,label:d,openInNewTab:!0,href:f(v.Video,a.id)}),g):[...g,A]}return{getVideoActions:T,fetchMoreActions:e=>C(e)}}export{E as n,j as t};
|
|
2
|
+
//# sourceMappingURL=BAN6QE-X.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBJfKQKx.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/CuratorGroup.ts","../../../../libs/shared/src/hooks/useCurationStudio.ts","../../../../libs/shared/src/hooks/useVideohydration.ts","../../src/apps/exchange/hooks/useGetExchangeActions.ts"],"sourcesContent":["/**\n * The values in this enum directly\n * map to the group names in Master.\n */\nexport enum CuratorGroup {\n Developer = 'Curator Devs',\n Content = 'Content',\n Curator = 'Curators',\n Support = 'Support',\n SalesSupport = 'Sales Support',\n GraphicDesigner = 'Graphic Designers',\n MetadataEditor = 'Metadata Editors',\n ResourcingManager = 'Resourcing Managers',\n SeniorContentManager = 'Senior Content Manager',\n Marketing = 'Marketing',\n Sales = 'Sales Representatives',\n StreamableCurator = 'Streamable Curator',\n SupportExtraPermission = 'Support - Extra Permissions',\n SeoManager = 'SEO Manager',\n ContentReviewer = 'Content Reviewer'\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { AddVideoSvg } from 'libs/shared/images/svg/actions/AddVideoSvg';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { Config, Library, Video, VideoTypes } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeHooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Location = 'preview' | 'video-list';\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nexport function useGetExchangeActions(location: Location) {\n const { hasPermissions } = usePermissions();\n\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ContributeVideo) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage\n });\n \n function getVideoActions(video: Video): ActionOptions[] {\n const isPreview = location === 'preview';\n const analyticsData = { id: video.id, name: video.name };\n const locationContext = isPreview ? LocationContext.VideoItemPreview : LocationContext.VideoListItem;\n\n const actions: ActionOptions[] = [{\n order: 10,\n label: isPreview ? getPhrase('openInClickView') : '',\n svg: NewWindowSvg,\n tooltip: isPreview ? '' : getPhrase('openInClickView'),\n className: isPreview ? 'btn btn-dark me-2' : '',\n button: true,\n href: config.data && UrlHelper.safeUrlConcat(config.data.liteUrl, `/videos/${video.id}`),\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.OpenInClickView,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 20,\n label: isPreview ? getPhrase('addVideo') : null,\n svg: !isPreview ? AddVideoSvg : undefined,\n tooltip: isPreview ? '' : getPhrase('addVideo'),\n button: !isPreview,\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 30,\n label: getPhrase('suggest'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SUGGEST_EDIT,\n args: [video.id],\n params: { location: locationContext }\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }];\n\n if (!isHydrated(video)) {\n return [ ...actions, FETCH_MORE_ACTION_OPTION ];\n }\n\n if (video._canAddToLibrary?.customLibrary && requestLibraries.data?.length) {\n actions.push({\n order: 25,\n label: getPhrase('addToLibrary'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD_TO_LIBRARY,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (video._canDownload?.value) {\n actions.push({\n order: 40,\n label: getPhrase('download'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.DOWNLOAD_VIDEO,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Download,\n entity: EntityType.Video,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (isUserCurator) {\n actions.push({\n order: 50,\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Video, video.id)\n });\n }\n\n return actions;\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BAN6QE-X.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/CuratorGroup.ts","../../../../libs/shared/src/hooks/useCurationStudio.ts","../../../../libs/shared/src/hooks/useVideohydration.ts","../../src/apps/exchange/hooks/useGetExchangeActions.ts"],"sourcesContent":["/**\n * The values in this enum directly\n * map to the group names in Master.\n */\nexport enum CuratorGroup {\n Developer = 'Curator Devs',\n Content = 'Content',\n Curator = 'Curators',\n Support = 'Support',\n SalesSupport = 'Sales Support',\n GraphicDesigner = 'Graphic Designers',\n MetadataEditor = 'Metadata Editors',\n ResourcingManager = 'Resourcing Managers',\n SeniorContentManager = 'Senior Content Manager',\n Marketing = 'Marketing',\n Sales = 'Sales Representatives',\n StreamableCurator = 'Streamable Curator',\n SupportExtraPermission = 'Support - Extra Permissions',\n SeoManager = 'SEO Manager',\n ContentReviewer = 'Content Reviewer'\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { AddVideoSvg } from 'libs/shared/images/svg/actions/AddVideoSvg';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { Config, Library, Video, VideoTypes } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeHooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Location = 'preview' | 'video-list';\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nexport function useGetExchangeActions(location: Location) {\n const { hasPermissions } = usePermissions();\n\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ContributeVideo) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage\n });\n \n function getVideoActions(video: Video): ActionOptions[] {\n const isPreview = location === 'preview';\n const analyticsData = { id: video.id, name: video.name };\n const locationContext = isPreview ? LocationContext.VideoItemPreview : LocationContext.VideoListItem;\n\n const actions: ActionOptions[] = [{\n order: 10,\n label: isPreview ? getPhrase('openInClickView') : '',\n svg: NewWindowSvg,\n tooltip: isPreview ? '' : getPhrase('openInClickView'),\n className: isPreview ? 'btn btn-dark me-2' : '',\n button: true,\n href: config.data && UrlHelper.safeUrlConcat(config.data.liteUrl, `/videos/${video.id}`),\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.OpenInClickView,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 20,\n label: isPreview ? getPhrase('addVideo') : null,\n svg: !isPreview ? AddVideoSvg : undefined,\n tooltip: isPreview ? '' : getPhrase('addVideo'),\n button: !isPreview,\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 30,\n label: getPhrase('suggest'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SUGGEST_EDIT,\n args: [video.id],\n params: { location: locationContext }\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }];\n\n if (!isHydrated(video)) {\n return [ ...actions, FETCH_MORE_ACTION_OPTION ];\n }\n\n if (video._canAddToLibrary?.customLibrary && requestLibraries.data?.length) {\n actions.push({\n order: 25,\n label: getPhrase('addToLibrary'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD_TO_LIBRARY,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (video._canDownload?.value) {\n actions.push({\n order: 40,\n label: getPhrase('download'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.DOWNLOAD_VIDEO,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Download,\n entity: EntityType.Video,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (isUserCurator) {\n actions.push({\n order: 50,\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Video, video.id)\n });\n }\n\n return actions;\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,b as n,d as r,s as i,y as a}from"./CnnBLBPY.chunk.js";import{g as o}from"./DW0w8_XN.chunk.js";import{l as s}from"./D8clSITt.chunk.js";import{t as c}from"./GN6vNflP.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{t as d}from"./BjaJoJzM.chunk.js";import{t as f}from"./CRRZVEmA.chunk.js";import{D as p,I as m,Z as h}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,b as n,d as r,s as i,y as a}from"./CnnBLBPY.chunk.js";import{g as o}from"./DW0w8_XN.chunk.js";import{l as s}from"./D8clSITt.chunk.js";import{t as c}from"./GN6vNflP.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{t as d}from"./BjaJoJzM.chunk.js";import{t as f}from"./CRRZVEmA.chunk.js";import{D as p,I as m,Z as h}from"./app-BGxmHvGl.js";import{t as g}from"./CfNYdg0m.chunk.js";import{t as _}from"./C6jF43q92.chunk.js";import{t as v}from"./8pXw5z942.chunk.js";import{n as y,t as b}from"./DKz4jhnr2.chunk.js";import{n as x,t as S}from"./6124murE2.chunk.js";import{t as C}from"./C3Hw2TpW2.chunk.js";import{t as w}from"./OBYDGOgI2.chunk.js";t();var T={cardContainer:`_cardContainer_p5jjm_1`,image:`_image_p5jjm_4`},E=e();function D(e){return(0,E.jsx)(`div`,{className:`${T.cardContainer} px-2 mb-3`,children:(0,E.jsxs)(o,{className:`${e.className} border rounded-3 py-3 px-4 d-block text-center`,appLink:e.appLink,children:[(0,E.jsx)(`div`,{className:`${T.image} d-flex align-items-center justify-content-center`,children:(0,E.jsx)(`img`,{className:`mh-100`,src:e.logoUrl})}),(0,E.jsx)(`p`,{className:`fw-semibold text-dark text-truncate mb-0`,children:e.name})]})})}var O={cardContainer:`_cardContainer_1s4mp_1`,image:`_image_1s4mp_4`};function k(){return(0,E.jsx)(`div`,{className:`${O.cardContainer} px-2 mb-3`,children:(0,E.jsxs)(`div`,{className:`partial-loading-background border rounded-3 py-3 px-4`,children:[(0,E.jsx)(`div`,{className:`${O.image}`}),(0,E.jsx)(`p`,{className:`mb-0`,children:`\xA0`})]})})}function A(e){return(0,E.jsx)(E.Fragment,{children:(0,E.jsx)(`div`,{className:`row mb-2`,children:[...Array(e.cards)].map((e,t)=>(0,E.jsx)(k,{},t))})})}var j={cardContainer:`_cardContainer_7wzee_1`,image:`_image_7wzee_4`},M=`tv.tvRegionSelectMap`,N=e=>{let t=w(e.instanceRegion);return!e.regions||!e.currentRegion?(0,E.jsx)(A,{cards:5}):e.regions.length<=1?(0,E.jsx)(E.Fragment,{}):(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`h2`,{className:`h4`,children:(0,E.jsx)(m,{namespace:M,phrase:`regions`,options:{country:t.country}})}),(0,E.jsx)(`div`,{className:`row`,children:e.regions.map((t,s)=>{if(t.id!==e.currentRegion.id)return(0,E.jsx)(`div`,{className:`${j.cardContainer} px-2 mb-3`,children:(0,E.jsxs)(o,{className:`border rounded-3 py-3 px-4 d-block text-center`,appLink:{...e.appLink,args:[t.code]},analyticsData:{region:e.currentRegion.code},analyticsOptions:{actionType:n.Click,entity:i.Region,location:r.RegionMap,descriptor:a.RegionSelect},onClick:()=>e.onClick(t),children:[(0,E.jsx)(`div`,{className:`${j.image} d-flex align-items-center justify-content-center`,children:(0,E.jsx)(`img`,{src:`https://tv.clickview.com.au/content/images/${t.code}.png`})}),(0,E.jsx)(`p`,{className:`fw-semibold text-dark mb-0`,children:t.stateFull})]})},s)})})]})},P=c.encloseNamespace(`tv.channels`);function F(e){let t=s(_.region(e.region)),n=s(_.dateRange(e.region)),r=s(_.regions()),i=s(h.config()),a=s(t.data&&_.channels(t.data.code)),o=s(f.currentUser()),c=o.data?.instanceRegion,{setRegion:m}=C(),{liteUpgradeTypeCustomer:T}=p(null);v(t),g([r,a]),d({title:P(`title`)});let O=t.hasCompleted&&r.hasCompleted&&n.hasCompleted&&a.hasCompleted&&o.hasCompleted,k=w(c);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(S,{region:t.data}),(0,E.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,E.jsx)(b,{active:`channels`,currentRegion:t.data,showTvGuide:!!T,config:i.data}),(0,E.jsx)(x,{currentRegion:t.data,regions:r.data,appLink:{application:l.TV,action:u.Tv.CHANNELS},onClick:m})]}),(0,E.jsx)(y,{dateRange:n.data,region:t.data}),O?(0,E.jsx)(E.Fragment,{children:(0,E.jsxs)(`div`,{className:`row mb-2`,children:[!!k.requestProgram&&(0,E.jsx)(D,{appLink:{application:l.TV,action:u.Tv.REQUEST_PROGRAM,args:[e.region]},logoUrl:k.logo,name:P(`requestProgram`),className:k.bgColor}),a.data.map((t,n)=>(0,E.jsx)(D,{appLink:{application:l.TV,action:u.Tv.CHANNEL,args:[t.region,t.id],params:{region:t.region===e.region?null:e.region}},logoUrl:t.logoUrl,name:t.displayName},n))]})}):(0,E.jsx)(A,{cards:20}),(0,E.jsx)(N,{instanceRegion:c,currentRegion:t.data,regions:r.data,appLink:{application:l.TV,action:u.Tv.CHANNELS},onClick:m})]})}export{F as TvChannelsView};
|
|
2
|
+
//# sourceMappingURL=BHbt9wzx.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YGLkoFLc.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-channels/components/tv-channel-card/tv-channel-card.module.scss","../../src/apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard.tsx","../../src/apps/tv/views/tv-channels/partial-loading/partial-card-row.module.scss","../../src/apps/tv/views/tv-channels/partial-loading/PartialCardRow.tsx","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/tv-region-select-map.module.scss","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap.tsx","../../src/apps/tv/views/tv-channels/TvChannelsView.tsx"],"sourcesContent":[":local {\n .cardContainer {\n width: 20%;\n }\n\n .image {\n height: 5rem;\n\n img {\n max-width: 7.5rem;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './tv-channel-card.module.scss';\n\ninterface TvChannelCardProps {\n appLink: Core.AppLink;\n logoUrl: string;\n name: string;\n className?: string;\n}\n\nexport function TvChannelCard(props: TvChannelCardProps): JSX.Element {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className={`${props.className} border rounded-3 py-3 px-4 d-block text-center`}\n appLink={props.appLink}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n className='mh-100'\n src={props.logoUrl}\n />\n </div>\n <p className='fw-semibold text-dark text-truncate mb-0'>\n {props.name}\n </p>\n </AppLink>\n </div>\n );\n}\n",":local {\n .cardContainer {\n width: 20%;\n }\n\n .image {\n height: 5rem;\n }\n}","import React from 'react';\n\nimport styles from './partial-card-row.module.scss';\n\nfunction PartialRow() {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <div className='partial-loading-background border rounded-3 py-3 px-4'>\n <div className={`${styles.image}`}></div>\n <p className='mb-0'> </p>\n </div>\n </div>\n );\n}\n\ninterface PartialCardRowProps {\n cards: number;\n}\n\nexport function PartialCardRow(props: PartialCardRowProps) {\n return (\n <>\n <div className='row mb-2'>\n {[...Array(props.cards)].map((_, index) => <PartialRow key={index} />)}\n </div>\n </>\n );\n}\n",":local {\n .cardContainer {\n width: 20%;\n }\n\n .image {\n height: 5rem;\n\n img {\n max-width: 7.5rem;\n max-height: 100%;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { EntityType, LocationContext, TvDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { PartialCardRow } from 'apps/tv/views/tv-channels/partial-loading/PartialCardRow';\n\nimport styles from './tv-region-select-map.module.scss';\n\nconst namespace = 'tv.tvRegionSelectMap';\n\ninterface TvRegionSelectMapProps {\n instanceRegion: InstanceRegion;\n currentRegion: TvRegion;\n regions: TvRegion[];\n appLink: Core.AppLink;\n onClick: (region: TvRegion) => void;\n}\n\nconst TvRegionSelectMap = (props: TvRegionSelectMapProps) => {\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n if (!props.regions || !props.currentRegion)\n return <PartialCardRow cards={5} />;\n\n if (props.regions.length <= 1)\n return <></>;\n \n return (\n <>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase='regions'\n options={{ country: regionInfo.country }}\n />\n </h2>\n <div className='row'>\n {props.regions.map((region, index) => {\n if (region.id !== props.currentRegion.id)\n return (\n <div key={index} className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className='border rounded-3 py-3 px-4 d-block text-center'\n appLink={{\n ...props.appLink,\n args: [region.code]\n }}\n analyticsData={{ region: props.currentRegion.code }}\n analyticsOptions={{\n actionType: UserAction.Click,\n entity: EntityType.Region,\n location: LocationContext.RegionMap,\n descriptor: TvDescriptor.RegionSelect\n }}\n onClick={() => props.onClick(region)}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n src={`https://tv.clickview.com.au/content/images/${region.code}.png`}\n />\n </div>\n <p className='fw-semibold text-dark mb-0'>\n {region.stateFull}\n </p>\n </AppLink>\n </div>\n );\n })}\n </div>\n </>\n );\n};\n\nexport default TvRegionSelectMap;\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { TvChannelCard } from 'apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard';\nimport TvRegionSelectMap from 'apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap';\n\nimport { PartialCardRow } from './partial-loading/PartialCardRow';\n\nconst namespace = 'tv.channels';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvChannelsViewProps {\n region: string;\n}\n\nexport function TvChannelsView(props: TvChannelsViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n\n const { setRegion } = useSelectedRegion();\n const { liteUpgradeTypeCustomer } = useSettings(null);\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n channels.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const regionInfo = getRegionInfo(instanceRegion);\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\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.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {dataLoaded ? (\n <>\n <div className='row mb-2'>\n {!!regionInfo.requestProgram &&\n <TvChannelCard\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.REQUEST_PROGRAM,\n args: [props.region]\n }}\n logoUrl={regionInfo.logo}\n name={getPhrase('requestProgram')}\n className={regionInfo.bgColor}\n />\n }\n {channels.data.map((channel, index) => {\n return (\n <TvChannelCard\n key={index}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNEL,\n args: [ channel.region, channel.id ],\n params: {\n region: channel.region !== props.region ? props.region : null\n }\n }}\n logoUrl={channel.logoUrl}\n name={channel.displayName}\n />\n );\n })}\n </div>\n </>\n ) : <PartialCardRow cards={20} />}\n\n <TvRegionSelectMap\n instanceRegion={instanceRegion}\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BHbt9wzx.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-channels/components/tv-channel-card/tv-channel-card.module.scss","../../src/apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard.tsx","../../src/apps/tv/views/tv-channels/partial-loading/partial-card-row.module.scss","../../src/apps/tv/views/tv-channels/partial-loading/PartialCardRow.tsx","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/tv-region-select-map.module.scss","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap.tsx","../../src/apps/tv/views/tv-channels/TvChannelsView.tsx"],"sourcesContent":[":local {\n .cardContainer {\n width: 20%;\n }\n\n .image {\n height: 5rem;\n\n img {\n max-width: 7.5rem;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './tv-channel-card.module.scss';\n\ninterface TvChannelCardProps {\n appLink: Core.AppLink;\n logoUrl: string;\n name: string;\n className?: string;\n}\n\nexport function TvChannelCard(props: TvChannelCardProps): JSX.Element {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className={`${props.className} border rounded-3 py-3 px-4 d-block text-center`}\n appLink={props.appLink}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n className='mh-100'\n src={props.logoUrl}\n />\n </div>\n <p className='fw-semibold text-dark text-truncate mb-0'>\n {props.name}\n </p>\n </AppLink>\n </div>\n );\n}\n",":local {\n .cardContainer {\n width: 20%;\n }\n\n .image {\n height: 5rem;\n }\n}","import React from 'react';\n\nimport styles from './partial-card-row.module.scss';\n\nfunction PartialRow() {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <div className='partial-loading-background border rounded-3 py-3 px-4'>\n <div className={`${styles.image}`}></div>\n <p className='mb-0'> </p>\n </div>\n </div>\n );\n}\n\ninterface PartialCardRowProps {\n cards: number;\n}\n\nexport function PartialCardRow(props: PartialCardRowProps) {\n return (\n <>\n <div className='row mb-2'>\n {[...Array(props.cards)].map((_, index) => <PartialRow key={index} />)}\n </div>\n </>\n );\n}\n",":local {\n .cardContainer {\n width: 20%;\n }\n\n .image {\n height: 5rem;\n\n img {\n max-width: 7.5rem;\n max-height: 100%;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { EntityType, LocationContext, TvDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { PartialCardRow } from 'apps/tv/views/tv-channels/partial-loading/PartialCardRow';\n\nimport styles from './tv-region-select-map.module.scss';\n\nconst namespace = 'tv.tvRegionSelectMap';\n\ninterface TvRegionSelectMapProps {\n instanceRegion: InstanceRegion;\n currentRegion: TvRegion;\n regions: TvRegion[];\n appLink: Core.AppLink;\n onClick: (region: TvRegion) => void;\n}\n\nconst TvRegionSelectMap = (props: TvRegionSelectMapProps) => {\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n if (!props.regions || !props.currentRegion)\n return <PartialCardRow cards={5} />;\n\n if (props.regions.length <= 1)\n return <></>;\n \n return (\n <>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase='regions'\n options={{ country: regionInfo.country }}\n />\n </h2>\n <div className='row'>\n {props.regions.map((region, index) => {\n if (region.id !== props.currentRegion.id)\n return (\n <div key={index} className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className='border rounded-3 py-3 px-4 d-block text-center'\n appLink={{\n ...props.appLink,\n args: [region.code]\n }}\n analyticsData={{ region: props.currentRegion.code }}\n analyticsOptions={{\n actionType: UserAction.Click,\n entity: EntityType.Region,\n location: LocationContext.RegionMap,\n descriptor: TvDescriptor.RegionSelect\n }}\n onClick={() => props.onClick(region)}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n src={`https://tv.clickview.com.au/content/images/${region.code}.png`}\n />\n </div>\n <p className='fw-semibold text-dark mb-0'>\n {region.stateFull}\n </p>\n </AppLink>\n </div>\n );\n })}\n </div>\n </>\n );\n};\n\nexport default TvRegionSelectMap;\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { TvChannelCard } from 'apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard';\nimport TvRegionSelectMap from 'apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap';\n\nimport { PartialCardRow } from './partial-loading/PartialCardRow';\n\nconst namespace = 'tv.channels';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvChannelsViewProps {\n region: string;\n}\n\nexport function TvChannelsView(props: TvChannelsViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n\n const { setRegion } = useSelectedRegion();\n const { liteUpgradeTypeCustomer } = useSettings(null);\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n channels.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const regionInfo = getRegionInfo(instanceRegion);\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\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.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {dataLoaded ? (\n <>\n <div className='row mb-2'>\n {!!regionInfo.requestProgram &&\n <TvChannelCard\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.REQUEST_PROGRAM,\n args: [props.region]\n }}\n logoUrl={regionInfo.logo}\n name={getPhrase('requestProgram')}\n className={regionInfo.bgColor}\n />\n }\n {channels.data.map((channel, index) => {\n return (\n <TvChannelCard\n key={index}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNEL,\n args: [ channel.region, channel.id ],\n params: {\n region: channel.region !== props.region ? props.region : null\n }\n }}\n logoUrl={channel.logoUrl}\n name={channel.displayName}\n />\n );\n })}\n </div>\n </>\n ) : <PartialCardRow cards={20} />}\n\n <TvRegionSelectMap\n instanceRegion={instanceRegion}\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{tt as e}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{tt as e}from"./app-BGxmHvGl.js";var t={isType(t,n){return t?.typeId?t.typeId===n:t?.type?.toLowerCase()===e[n].toLowerCase()},isResource(n){return t.isType(n,e.Resource)},isClassification(e){return e.type===`Subject`}};export{t};
|
|
2
|
+
//# sourceMappingURL=BINz0dmF.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BINz0dmF.chunk.js","names":[],"sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};\n"],"mappings":"uCAGA,IAAa,EAAmB,CAC9B,OAA6B,EAAU,EAA8B,CAKnE,OAJI,GAAK,OACA,EAAI,SAAW,EAGjB,GAAK,MAAM,aAAa,GAAK,EAAW,GAAQ,aAAa,EAGtE,WAAW,EAA2B,CACpC,OAAO,EAAiB,OAAiB,EAAK,EAAW,SAAS,EAGpE,iBAAiB,EAAiC,CAChD,OAAO,EAAI,OAAS,WAEvB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t}from"./CnnBLBPY.chunk.js";import{l as n}from"./D8clSITt.chunk.js";import{t as r}from"./GN6vNflP.chunk.js";import{I as i,M as a,U as o,Z as s}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t}from"./CnnBLBPY.chunk.js";import{l as n}from"./D8clSITt.chunk.js";import{t as r}from"./GN6vNflP.chunk.js";import{I as i,M as a,U as o,Z as s}from"./app-BGxmHvGl.js";import{t as c}from"./BdSdO6n62.chunk.js";import{t as l}from"./C6jF43q92.chunk.js";t();var u=e(),d=`tv.radioDownload`,f=r.encloseNamespace(d);function p(e){let t=n(s.config()),r=n(l.program(e.id)),p=n(l.region(e.region));function m(){let e=r.data?.globalId.split(`-`).join(``);return`${t.data.tvPreviewUrls[p.data.code]}/audio/${e}.mp3`}return t.hasCompleted&&r.hasCompleted?(0,u.jsxs)(o,{title:f(`title`),closePopup:e.closePopup,showLoadingSpinner:!r.hasCompleted,children:[r.data&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`p`,{className:`fw-semibold mb-2`,children:r.data.title}),(0,u.jsx)(`div`,{className:`d-flex mb-2`,children:(0,u.jsx)(c,{program:r.data,showDate:!0,showEndTime:!0})}),(0,u.jsx)(`p`,{children:r.data.description})]}),(0,u.jsxs)(a,{children:[(0,u.jsx)(a.Cancel,{text:f(`cancel`),onClick:e.closePopup,variant:`link`}),(0,u.jsx)(`a`,{target:`_blank`,href:m(),className:`btn btn-dark`,children:(0,u.jsx)(i,{namespace:d,phrase:`download`})})]})]}):(0,u.jsx)(u.Fragment,{})}export{p as TvRadioDownloadView};
|
|
2
|
+
//# sourceMappingURL=BPYdRA7H.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BPYdRA7H.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-radio-download/TvRadioDownloadView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { Popup, PopupProps } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.radioDownload';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvRadioDownloadProps extends PopupProps {\n id: string;\n region: string;\n}\n\nexport function TvRadioDownloadView(props: TvRadioDownloadProps) {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n\n function getDownloadLink() {\n const globalId = program.data?.globalId.split('-').join('');\n return `${config.data.tvPreviewUrls[region.data.code]}/audio/${globalId}.mp3`;\n }\n\n const hasLoaded = (config.hasCompleted && program.hasCompleted);\n\n if (!hasLoaded) {\n return <></>;\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!program.hasCompleted}\n >\n {program.data &&\n <>\n <p className='fw-semibold mb-2'>{program.data.title}</p>\n <div className='d-flex mb-2'>\n <TvProgramTimeBadge program={program.data} showDate showEndTime />\n </div>\n <p>{program.data.description}</p>\n </>\n }\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('cancel')}\n onClick={props.closePopup}\n variant='link'\n />\n <a target='_blank' href={getDownloadLink()} className='btn btn-dark'>\n <Text namespace={namespace} phrase='download' />\n </a>\n </PopupButtons>\n </Popup>\n );\n}\n"],"mappings":"0RAgBM,EAAY,mBACZ,EAAY,EAAgB,iBAAiB,EAAU,CAO7D,SAAgB,EAAoB,EAA6B,CAC/D,IAAM,EAAS,EAA6B,EAAe,QAAQ,CAAC,CAC9D,EAAU,EAAgC,EAAW,QAAQ,EAAM,GAAG,CAAC,CACvE,EAAS,EAA+B,EAAW,OAAO,EAAM,OAAO,CAAC,CAE9E,SAAS,GAAkB,CACzB,IAAM,EAAW,EAAQ,MAAM,SAAS,MAAM,IAAI,CAAC,KAAK,GAAG,CAC3D,MAAO,GAAG,EAAO,KAAK,cAAc,EAAO,KAAK,MAAM,SAAS,EAAS,MAS1E,OANmB,EAAO,cAAgB,EAAQ,cAOhD,EAAA,EAAA,MAAC,EAAD,CACE,MAAO,EAAU,QAAQ,CACzB,WAAY,EAAM,WAClB,mBAAoB,CAAC,EAAQ,sBAH/B,CAKG,EAAQ,OACP,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,4BAAoB,EAAQ,KAAK,MAAU,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wBACb,EAAA,EAAA,KAAC,EAAD,CAAoB,QAAS,EAAQ,KAAM,SAAA,GAAS,YAAA,GAAc,CAAA,CAC9D,CAAA,EACN,EAAA,EAAA,KAAC,IAAD,CAAA,SAAI,EAAQ,KAAK,YAAgB,CAAA,CAChC,CAAA,CAAA,EAEL,EAAA,EAAA,MAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAa,OAAd,CACE,KAAM,EAAU,SAAS,CACzB,QAAS,EAAM,WACf,QAAQ,OACR,CAAA,EACF,EAAA,EAAA,KAAC,IAAD,CAAG,OAAO,SAAS,KAAM,GAAiB,CAAE,UAAU,yBACpD,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,WAAa,CAAA,CAC9C,CAAA,CACS,CAAA,CAAA,CAAA,IA3BV,EAAA,EAAA,KAAA,EAAA,SAAA,EAAK,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t}from"./CnnBLBPY.chunk.js";import{nt as n}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t}from"./CnnBLBPY.chunk.js";import{nt as n}from"./app-BGxmHvGl.js";t();var r=e();function i({error:e}){return(0,r.jsx)(n,{error:e})}export{i as NotFoundView};
|
|
2
|
+
//# sourceMappingURL=BS8sYAAh.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BS8sYAAh.chunk.js","names":[],"sources":["../../src/apps/default/views/not-found/ExchangeNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/ExchangeErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}\n"],"mappings":"oGAWA,SAAgB,EAAa,CAAE,SAAgD,CAC7E,OAAO,EAAA,EAAA,KAAC,EAAD,CAAkB,QAAS,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,S as n,b as r,d as i,mn as a,s as o,t as s,y as c}from"./CnnBLBPY.chunk.js";import{d as l,l as u}from"./D8clSITt.chunk.js";import{t as d}from"./GN6vNflP.chunk.js";import{t as f}from"./xL848v0O.chunk.js";import{t as p}from"./CRRZVEmA.chunk.js";import{H as m,I as h,M as g,U as _,_ as v,m as y,z as b}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,S as n,b as r,d as i,mn as a,s as o,t as s,y as c}from"./CnnBLBPY.chunk.js";import{d as l,l as u}from"./D8clSITt.chunk.js";import{t as d}from"./GN6vNflP.chunk.js";import{t as f}from"./xL848v0O.chunk.js";import{t as p}from"./CRRZVEmA.chunk.js";import{H as m,I as h,M as g,U as _,_ as v,m as y,z as b}from"./app-BGxmHvGl.js";import{i as x,n as S,t as C}from"./DsHiClyc2.chunk.js";import{t as w}from"./DuPL-nK72.chunk.js";import{t as T}from"./BobZ5p_m2.chunk.js";import{t as E}from"./Ca_-2JTE2.chunk.js";import{n as D,t as O}from"./C6jF43q92.chunk.js";import{t as k}from"./OBYDGOgI2.chunk.js";t();var A=function(e){return e[e.BbcRes=0]=`BbcRes`,e}({}),j=a(C()),M=d.encloseNamespace(`tv.requestProgramValidation`);function N(e){return e?(0,j.object)().shape({channelId:(0,j.string)().required(M(`channelRequired`)),title:(0,j.string)().required(M(`programRequired`)),broadcastDate:(0,j.string)().required(M(`dateRequired`)),broadcastTime:(0,j.string)().required(M(`timeRequired`)),closedCaptions:(0,j.string)(),comments:(0,j.string)()}):(0,j.object)().shape({title:(0,j.string)().required(M(`programRequired`)),comments:(0,j.string)()})}var P=e(),F=`tv.requestProgramForm`,I=d.encloseNamespace(F);function L(e){let t=m(),n=f.format(f.add(new Date,4,`days`),`YYYY-MM-DD`),r=f.format(f.add(n,11,`days`),`YYYY-MM-DD`),i=k(e.instanceRegion);return(0,P.jsxs)(b,{children:[e.channels&&(0,P.jsxs)(x,{as:`select`,label:I(`channelLabel`),name:`channelId`,value:t.values.channelId,showRequiredStar:!0,children:[(0,P.jsx)(`option`,{value:``,children:d.getPhrase(F,`channelPlaceholder`)},0),e.channels.map(e=>(0,P.jsx)(`option`,{value:e.id,children:`${e.name} - (${e.number})`},e.id))]}),(0,P.jsx)(x,{label:I(`programLabel`),placeholder:I(`programPlaceholder`),type:`text`,name:`title`,value:t.values.title,showRequiredStar:!0}),e.channels&&(0,P.jsxs)(`div`,{className:`d-flex`,children:[(0,P.jsx)(`div`,{className:`w-50 me-2`,children:(0,P.jsx)(x,{label:I(`broadcastDateLabel`),type:`date`,name:`broadcastDate`,value:t.values.broadcastDate,min:n,max:r,showRequiredStar:!0})}),(0,P.jsx)(`div`,{className:`w-50`,children:(0,P.jsx)(x,{label:I(`broadcastTimeLabel`),type:`time`,name:`broadcastTime`,value:t.values.broadcastTime,className:`mb-0`,showRequiredStar:!0})})]}),(0,P.jsx)(`p`,{className:`mt-n1`,children:(0,P.jsx)(`small`,{children:(0,P.jsx)(h,{namespace:F,phrase:i.programGuidePhraseKey})})}),e.channels&&(0,P.jsxs)(`div`,{className:`d-flex`,children:[(0,P.jsx)(`div`,{className:`w-50 me-2`,children:(0,P.jsxs)(x,{as:`select`,label:I(`ccLabel`),name:`closedCaptions`,value:t.values.closedCaptions,children:[(0,P.jsx)(`option`,{value:``,children:d.getPhrase(F,`ccNo`)}),(0,P.jsx)(`option`,{value:`yes`,children:d.getPhrase(F,`ccYes`)})]})}),(0,P.jsx)(`div`,{className:`w-50`})]}),(0,P.jsx)(x,{label:I(e.channels?`commentsLabel`:`additionalInfoLabel`),placeholder:I(e.channels?`commentsPlaceholder`:`additionalInfoPlaceholder`),type:`text`,name:`comments`,value:t.values.comments}),(0,P.jsx)(`p`,{children:(0,P.jsx)(h,{namespace:F,phrase:`note`,options:{tv:i.tv}})}),(0,P.jsxs)(g,{children:[(0,P.jsx)(g.Cancel,{text:I(`cancel`),onClick:e.onClickCancel,variant:`link`}),(0,P.jsx)(E,{variant:`dark`,submitText:I(`request`)})]})]})}var R={channelId:``,title:``,broadcastDate:``,broadcastTime:``,closedCaptions:``,comments:``},z=`tv.requestProgram`,B=d.encloseNamespace(z);function V(e){let t=l(),a=w(),d=u(p.currentUser()),f=d.data?.instanceRegion,m=f===v.AU,g=f===v.UK,b=u(g&&y.customer(d.data.customerId)),x=u(m&&O.payTvChannels()),C=k(f);function E(){e.closePopup()}let{loading:j,handleGenerateReportError:M}=T();function F(t){if(m){let l=x.data?.find(e=>String(e.id)===t.channelId);a.success(B(`successChannel`,{tv:C.tv,program:t.title,channel:l?.name})),s.logUserAction({channel:l.id,name:l.name,program:t.title,region:e.region},{actionType:r.Submit,entity:o.Video,location:i.Popup,workflowPhase:n.Complete,descriptor:c.RequestProgram})}else a.success(B(`successNoChannel`,{tv:C.tv,program:t.title})),s.logUserAction({program:t.title,region:e.region},{actionType:r.Submit,entity:o.Video,location:i.Popup,workflowPhase:n.Complete,descriptor:c.RequestProgram})}function I(t){let{broadcastDate:n,broadcastTime:r,closedCaptions:i,...a}=t;return g?{title:a.title,comments:a.comments,crmId:b.data.crmId,customerName:b.data.name,email:d.data.email,type:A.BbcRes,username:d.data.username}:m?{...a,closedCaptions:!!i,regionCode:e.region,programDateTime:`${n}T${r}`,userId:d.data?.id,customerId:d.data?.customerId}:{...a,regionCode:e.region,userId:d.data?.id,customerId:d.data?.customerId}}async function V(n,r){let i=I(n),a=g?O.requestProgramUk(i):O.requestProgram(i);try{await t(a),r(),F(n)}catch(e){M(e,B(`error`),B(`noEmailError`))}e.closePopup()}let H=d.hasCompleted&&(m&&x.hasCompleted||!m);return(0,P.jsxs)(_,{title:B(`title`,{tv:C.tv}),closePopup:e.closePopup,showLoadingSpinner:!H||j,children:[D.isHolidayPeriod()&&(0,P.jsxs)(`div`,{className:`alert alert-warning`,role:`alert`,children:[(0,P.jsx)(`h3`,{className:`h5`,children:(0,P.jsx)(h,{namespace:z,phrase:`requestAlertHeading`})}),(0,P.jsx)(`p`,{className:`m-0`,children:(0,P.jsx)(h,{namespace:z,phrase:`requestAlertBody`,options:{tv:C.tv}})})]}),(0,P.jsx)(`p`,{children:(0,P.jsx)(h,{namespace:z,phrase:`description`,options:{tv:C.tv}})}),(0,P.jsx)(`p`,{children:(0,P.jsx)(h,{namespace:z,phrase:`moreInfo`})}),x&&(0,P.jsx)(S,{initialValues:R,validationSchema:N(m),onSubmit:V,children:(0,P.jsx)(L,{onClickCancel:E,channels:m&&x.data,instanceRegion:f})})]})}export{V as TvRequestProgramView};
|
|
2
|
+
//# sourceMappingURL=BaSi1pig.chunk.js.map
|