@clickview/reports 0.90.0-rc.2 → 0.90.0-rc.4
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 +210 -210
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{Bzx4bLV8.chunk.js → B9syewbL.chunk.js} +2 -2
- package/dist/scripts/{Bzx4bLV8.chunk.js.map → B9syewbL.chunk.js.map} +1 -1
- package/dist/scripts/{D2gRMPGY.chunk.js → BDLgF915.chunk.js} +2 -2
- package/dist/scripts/{D2gRMPGY.chunk.js.map → BDLgF915.chunk.js.map} +1 -1
- package/dist/scripts/{BJOOjdj2.chunk.js → BHwx99h9.chunk.js} +2 -2
- package/dist/scripts/{BJOOjdj2.chunk.js.map → BHwx99h9.chunk.js.map} +1 -1
- package/dist/scripts/{CowQEpZQ2.chunk.js → B_QHbZ3D2.chunk.js} +2 -2
- package/dist/scripts/{CowQEpZQ2.chunk.js.map → B_QHbZ3D2.chunk.js.map} +1 -1
- package/dist/scripts/{TzLygaBE.chunk.js → BcjF3S7y.chunk.js} +2 -2
- package/dist/scripts/{TzLygaBE.chunk.js.map → BcjF3S7y.chunk.js.map} +1 -1
- package/dist/scripts/{DbSzdDBS2.chunk.js → C5nG9HKq2.chunk.js} +2 -2
- package/dist/scripts/{DbSzdDBS2.chunk.js.map → C5nG9HKq2.chunk.js.map} +1 -1
- package/dist/scripts/{4ViYfbV7.chunk.js → CCdxPE8F.chunk.js} +2 -2
- package/dist/scripts/{4ViYfbV7.chunk.js.map → CCdxPE8F.chunk.js.map} +1 -1
- package/dist/scripts/{Dj87pb142.chunk.js → CDx9_B5h2.chunk.js} +2 -2
- package/dist/scripts/{Dj87pb142.chunk.js.map → CDx9_B5h2.chunk.js.map} +1 -1
- package/dist/scripts/{DDS7ndOq2.chunk.js → CEM-Xsc32.chunk.js} +2 -2
- package/dist/scripts/{DDS7ndOq2.chunk.js.map → CEM-Xsc32.chunk.js.map} +1 -1
- package/dist/scripts/{PSwC3iEf2.chunk.js → CGYMpd9x2.chunk.js} +2 -2
- package/dist/scripts/{PSwC3iEf2.chunk.js.map → CGYMpd9x2.chunk.js.map} +1 -1
- package/dist/scripts/{CitsW6ql.chunk.js → CLDXLTBe.chunk.js} +2 -2
- package/dist/scripts/{CitsW6ql.chunk.js.map → CLDXLTBe.chunk.js.map} +1 -1
- package/dist/scripts/{BL1X9vs52.chunk.js → CWVwHN-C2.chunk.js} +2 -2
- package/dist/scripts/{BL1X9vs52.chunk.js.map → CWVwHN-C2.chunk.js.map} +1 -1
- package/dist/scripts/{kAYY_iVY2.chunk.js → CXyHtApp2.chunk.js} +2 -2
- package/dist/scripts/{kAYY_iVY2.chunk.js.map → CXyHtApp2.chunk.js.map} +1 -1
- package/dist/scripts/{BU8DxGLM2.chunk.js → C_gBUP2y2.chunk.js} +2 -2
- package/dist/scripts/{BU8DxGLM2.chunk.js.map → C_gBUP2y2.chunk.js.map} +1 -1
- package/dist/scripts/{BXWs2cI72.chunk.js → C_nTmCTH2.chunk.js} +2 -2
- package/dist/scripts/{BXWs2cI72.chunk.js.map → C_nTmCTH2.chunk.js.map} +1 -1
- package/dist/scripts/{DPJbiCR02.chunk.js → CeSe3AP62.chunk.js} +18 -18
- package/dist/scripts/CeSe3AP62.chunk.js.map +1 -0
- package/dist/scripts/{fh6sbun-.chunk.js → Cv7tjWWS.chunk.js} +2 -2
- package/dist/scripts/{fh6sbun-.chunk.js.map → Cv7tjWWS.chunk.js.map} +1 -1
- package/dist/scripts/{BLzRzOyq.chunk.js → D63nJT6V.chunk.js} +2 -2
- package/dist/scripts/{BLzRzOyq.chunk.js.map → D63nJT6V.chunk.js.map} +1 -1
- package/dist/scripts/{Ch4Y5yk4.chunk.js → DATsYYMP.chunk.js} +2 -2
- package/dist/scripts/{Ch4Y5yk4.chunk.js.map → DATsYYMP.chunk.js.map} +1 -1
- package/dist/scripts/{DNY9inGn2.chunk.js → DBpZNnAI2.chunk.js} +2 -2
- package/dist/scripts/{DNY9inGn2.chunk.js.map → DBpZNnAI2.chunk.js.map} +1 -1
- package/dist/scripts/{CKKR2-wU2.chunk.js → DGuSwgQf2.chunk.js} +2 -2
- package/dist/scripts/{CKKR2-wU2.chunk.js.map → DGuSwgQf2.chunk.js.map} +1 -1
- package/dist/scripts/{DWQdiwUw.chunk.js → DHz5C_j8.chunk.js} +2 -2
- package/dist/scripts/{DWQdiwUw.chunk.js.map → DHz5C_j8.chunk.js.map} +1 -1
- package/dist/scripts/{4mtEyuqT2.chunk.js → DJpo4rMq2.chunk.js} +2 -2
- package/dist/scripts/{4mtEyuqT2.chunk.js.map → DJpo4rMq2.chunk.js.map} +1 -1
- package/dist/scripts/{EvtCZWZL2.chunk.js → DKgzSSZ12.chunk.js} +2 -2
- package/dist/scripts/{EvtCZWZL2.chunk.js.map → DKgzSSZ12.chunk.js.map} +1 -1
- package/dist/scripts/{Bl13dT192.chunk.js → DqX2L2fn2.chunk.js} +2 -2
- package/dist/scripts/{Bl13dT192.chunk.js.map → DqX2L2fn2.chunk.js.map} +1 -1
- package/dist/scripts/{7M6FzdyD.chunk.js → J0H9O8cX.chunk.js} +2 -2
- package/dist/scripts/{7M6FzdyD.chunk.js.map → J0H9O8cX.chunk.js.map} +1 -1
- package/dist/scripts/{app-B1NVV4PT.js → app-F8o5al1q.js} +3 -3
- package/dist/scripts/{app-B1NVV4PT.js.map → app-F8o5al1q.js.map} +1 -1
- package/dist/scripts/{CcjJpEaF2.chunk.js → med1nnv82.chunk.js} +2 -2
- package/dist/scripts/{CcjJpEaF2.chunk.js.map → med1nnv82.chunk.js.map} +1 -1
- package/dist/scripts/{DE24b7R6.chunk.js → q1iKm4P4.chunk.js} +2 -2
- package/dist/scripts/{DE24b7R6.chunk.js.map → q1iKm4P4.chunk.js.map} +1 -1
- package/dist/scripts/{4gz8eG_F.chunk.js → r68VJd6w.chunk.js} +2 -2
- package/dist/scripts/{4gz8eG_F.chunk.js.map → r68VJd6w.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/DPJbiCR02.chunk.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Dr as e,N as t,at as n,ot as r}from"./CrTgNROp.chunk.js";import{i,n as a,o,r as s,v as c}from"./CxNc1BDX.chunk.js";import{t as l}from"./BIVEB8w0.chunk.js";import{n as u}from"./C4rkNAyl.chunk.js";import{i as d,n as f,r as p}from"./7M6FzdyD.chunk.js";import{U as m,g as ee,m as h,x as g}from"./app-B1NVV4PT.js";import{n as te,t as _}from"./CPUQYzyc.chunk.js";var v=e(n()),y=function(e){return e.Exchange=`exchange`,e.Streamable=`streamable`,e.MoviesAndTv=`movies_and_tv`,e.Twig=`twig`,e.Espresso=`espresso`,e}({}),b=t();function x(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z`,clipRule:`evenodd`})})}function S(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z`,fill:`currentColor`})})}var C=function(e){return e.Folder=`category`,e.CategoryTree=`category_tree`,e.CustomLibrary=`custom_library`,e.HostedLibrary=`hosted_library`,e.Exchange=`exchange`,e.Workspace=`workspace`,e.Video=`video`,e.Clip=`clip`,e.Interactive=`interactive`,e}({}),w=function(e){return e.Pdf=`pdf`,e.Image=`image`,e.PowerPoint=`powerpoint`,e.Document=`document`,e.Excel=`excel`,e.Zip=`archive`,e.File=`text`,e}({});function T(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z`,fill:`currentColor`})})}function E(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39`,fill:`currentColor`})})}function ne(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z`,fill:`currentColor`})})}function re(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z`,fill:`currentColor`})})}function ie(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z`,fill:`currentColor`})})}function ae(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z`,fill:`currentColor`})})}var D=`shared.shared-utils`,O={mapRatingToClass(e){return e?(e=>{switch(!0){case e<32:return`bg-purple`;case e<48:return`bg-green`;case e<80:return`bg-blue`;case e<96:return`bg-red`;case e<128:return`bg-pink`;case e>=128:return`bg-yellow`;default:return``}})(e):``},mapSourceToDisplayName(e,t){switch(e.type){case C.HostedLibrary:case C.CustomLibrary:return e.name;case C.Exchange:return l.getPhrase(D,`exchange`);case C.Workspace:return l.getPhrase(D,t?`myVideos`:`workspace`);default:return``}},mapSourceToClass(e){switch(e){case C.HostedLibrary:case C.CustomLibrary:return`bg-blue`;case C.Exchange:return`bg-green`;case C.Workspace:default:return`bg-red`}},isInteractive(e){return!!e?.interactives?.data?.length},mapTypeToSvg(e){let t={[w.Pdf]:E,[w.Image]:_,[w.PowerPoint]:ne,[w.Document]:ie,[w.Excel]:T,[w.Zip]:ae,[w.File]:re}[e];return t||=te,t},mapTypeToClass(e){switch(e){case w.Pdf:return`icon-red`;case w.Image:return`icon-purple`;case w.Document:return`icon-blue`;case w.Excel:return`icon-green`;case w.PowerPoint:return`icon-orange`;case w.Zip:return`icon-teal`;case w.File:return`icon-gray`;default:return``}},mapTypeToExtension(e){return e?{pdf:`pdf`,image:`png`,powerpoint:`pptx`}[e.toLowerCase()]:``},mapTypeToName(e){if(!e)return``;switch(e){case w.Pdf:return l.getPhrase(D,`pdf`);case w.Image:return l.getPhrase(D,`image`);case w.Document:return l.getPhrase(D,`document`);case w.Excel:return l.getPhrase(D,`spreadsheet`);case w.PowerPoint:return l.getPhrase(D,`presentation`);case w.Zip:return l.getPhrase(D,`zipArchive`);case w.File:return l.getPhrase(D,`file`);default:return``}}},k=l.encloseNamespace(`shared.badges`),A=function(e){return e.DurationExact=`duration-exact`,e.DurationApproximate=`duration-approximate`,e.Interactive=`interactive`,e.Rating=`rating`,e.ProductionYear=`production-year`,e.Captions=`captions`,e.Status=`status`,e.Trending=`trending`,e.Count=`count`,e.RoundCount=`round-count`,e.Restriction=`restriction`,e.Source=`source`,e}({}),j={xs:i.ExtraSmall,sm:i.Small,std:i.Standard,lg:i.Large},M={xs:`badge-xs`,sm:`badge-sm`,std:`badge-std`,lg:`badge-lg`};function N(e){switch(e){case g.Published:case d.Published:return`bg-success`;case g.Archived:case g.Rejected:case d.Archived:return`bg-danger`;case g.Draft:case d.Draft:return`draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center`;case g.Pending:case g.Processing:return`bg-warning`}}function P(e){return e.includes(y.Streamable)?`px-1 text-nowrap d-flex align-items-center ${ee.streamable}`:e.includes(y.MoviesAndTv)?`bg-indigo text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Exchange)?`bg-orange text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Twig)?`bg-pink text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Espresso)?`bg-navy text-white px-1 text-nowrap d-flex align-items-center`:``}function F(e,t,n){let r=M[n],i=``;return e===`duration-approximate`&&(i=`duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center`),e===`duration-exact`&&(i=`duration-badge`),e===`interactive`&&(i=`interactive-badge`),e===`rating`&&(i=`rating-badge text-shadow ${O.mapRatingToClass(t.value)}`),e===`production-year`&&(i=`production-year-badge text-shadow`),e===`captions`?`p-0`:e===`status`?`badge ${N(t)}`:e===`trending`?`trending-badge px-1 d-flex align-items-center ${r}`:(e===`count`&&(i=`count-badge px-1 rounded`),e===`round-count`&&(i=`round-badge rounded-circle`),e===`restriction`?a(`restriction-badge rounded-pill px-2 d-flex align-items-center`,h.mapRestrictionToClass(t.restrictions)):(e===`source`&&(i=P(t)),a(`badge`,i)))}function I(e,t,n){if(e===`interactive`)return k(`interactive`);if(e===`duration-approximate`)return p.ToDisplayDurationNewStyle(t);if(e===`duration-exact`)return p.ToDisplayDuration(t);if(e===`rating`)return t.code;if(e===`production-year`)return t;if(e===`captions`)return(0,b.jsx)(s,{svg:S});if(e===`status`)return typeof t==`number`?g[t]:t;if(e===`trending`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:x,size:j[n]}),(0,b.jsx)(`span`,{className:`ps-1`,children:t})]});if(e===`count`||e===`round-count`)return t;if(e===`restriction`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:h.mapRestrictionToSvg(t.restrictions)}),(0,b.jsx)(`span`,{children:h.mapRestrictionToText(t.restrictions,t.yearGroups)})]});if(e===`source`){let e=t;return e.includes(y.Streamable)?`streamable`:e.includes(y.MoviesAndTv)?`movies + tv`:e.includes(y.Exchange)?`exchange`:e.includes(y.Twig)?`twig`:e.includes(y.Espresso)?`espresso`:`-`}}function L(e,t){return e===`rating`?{title:t.name,placement:`top`}:null}function R(e,t){return typeof t==`boolean`?!!t:e===`rating`?t&&!!t.value:e===`interactive`||e===`captions`?!!t?.length||!!t?.data?.length:e===`status`?typeof t==`number`||typeof t==`string`:!!t}function z(e){let{type:t,data:n,size:r=`std`}=e;if(!R(t,n))return(0,b.jsx)(b.Fragment,{});let i=F(t,n,r);i=`${i} ${e.inline?`d-inline-block`:`d-flex justify-content-center`} ${e.className||``}`;let a=I(t,n,r),s=L(t,n),c=e.inline&&`d-inline-block`;return s?(0,b.jsx)(`div`,{className:`badge-wrapper d-inline`,children:(0,b.jsx)(o,{...s,spanHack:!0,spanHackClassName:c,children:(0,b.jsx)(`span`,{className:i,children:a})})}):(0,b.jsx)(`span`,{className:`${i} badge-wrapper`,children:a})}function B(e={}){let{prevent:t,rootMargin:n,triggerOnce:r=!0}=e,[i,a,o]=f({triggerOnce:r,rootMargin:n});return(t===!0||window.IntersectionObserver===void 0)&&(a=!0,i=null),{ref:i,inView:a,initialized:!!o}}var V={image:`_image_pp6me_1`},H=`500px`,U=`data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=`,W=v.memo(function(e){let{forceLoad:t,extraClasses:n=``,errorFallbackImageSrc:r,preventLoad:i=!1,errorFallbackImageClassName:a,src:o,alt:s,...c}=e,{ref:l,inView:u}=B({rootMargin:H}),[d,f]=v.useState(!1);v.useEffect(()=>{if(!t&&!u||i)return;let e=new Image;return e.onerror=()=>{f(!0),r&&(e.src=r)},e.src=o,()=>e.onerror=null},[u,i]);function p(){return d&&r?r:e.src}if(d&&!r)return(0,b.jsx)(b.Fragment,{});if(!l)return(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,alt:s,src:p(),...c});let m={alt:s,...c,...(u||t)&&!i?{src:p()}:{src:U}};return t||(m.ref=l),(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,...m})}),G={image:`_image_1himm_1`,thumbnail:`_thumbnail_1himm_13`,tallPoster:`_tallPoster_1himm_16`,cover:`_cover_1himm_19`,banner:`_banner_1himm_22`,poster:`_poster_1himm_25`,pdf:`_pdf_1himm_28`,link:`_link_1himm_31`};function K(e){let t=G.image,n=``;return e.imageType===u.Thumbnails&&(n=`thumbnail ${G.thumbnail}`),e.imageType===u.TallPosters&&(n=G.tallPoster),e.imageType===u.Covers&&(n=G.cover),e.imageType===u.Banners&&(n=G.banner),e.imageType===u.Posters&&(n=G.poster),e.imageType===u.Pdf&&(n=G.pdf),e.imageType===u.Link&&(n=G.link),n&&(t+=` ${n}`),e.className&&(t+=` ${e.className}`),t}function q(e){let{data:t,imageOptions:n,appLink:i,preload:a,preventLoad:o,analyticsOptions:s,analyticsData:l,imageClassName:u,alt:d}=e,f=``;typeof t==`string`?f=t:r.isObject(t)&&(f=t.url);let p=f&&n?m.createUrl(f,n):f;return(0,b.jsx)(`div`,{className:K(e),style:e.imageStyle,children:(0,b.jsxs)(c,{appLink:i,analyticsData:l,analyticsOptions:s,onClick:e.onClick,preventFocus:e.preventFocus,className:e.appLinkClassName,openInNewTab:e.openInNewTab,forcePageLoad:e.forcePageLoad,children:[e.children,p&&(0,b.jsx)(W,{src:p,alt:d,forceLoad:a,preventLoad:o,extraClasses:u,errorFallbackImageSrc:e.errorFallbackImageSrc,errorFallbackImageClassName:e.errorFallbackImageClassName,onLoad:e.onLoad})]})})}var J=[`bg-pink`,`bg-orange`,`bg-green`,`bg-cyan`,`bg-teal`,`bg-blue`,`bg-indigo`,`bg-purple`];function oe(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z`,clipRule:`evenodd`})})}function Y(e){return(0,b.jsx)(`svg`,{...e,viewBox:`0 0 24 21`,children:(0,b.jsx)(`path`,{d:`M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5`,fill:`currentColor`})})}function se(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,d:`M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17`})})}function X(e,t){return t[e.charCodeAt(0)%t.length]}var Z={baseFallbackContainer:`_baseFallbackContainer_14tjv_1`,svgFallbackContainer:`_svgFallbackContainer_14tjv_1`,subjectFallbackContainer:`_subjectFallbackContainer_14tjv_9`,subjectFallbackContainerSmall:`_subjectFallbackContainerSmall_14tjv_18`,subjectFallbackContainerLarge:`_subjectFallbackContainerLarge_14tjv_21`,seriesItemFallback:`_seriesItemFallback_14tjv_24`,playlistItemFallback:`_playlistItemFallback_14tjv_24`,playlistFallback:`_playlistFallback_14tjv_28`,posterFallback:`_posterFallback_14tjv_29`,subjectFallback:`_subjectFallback_14tjv_9`,fallbackThumbnailImage:`_fallbackThumbnailImage_14tjv_47`,videoFallback:`_videoFallback_14tjv_55`,folderFallback:`_folderFallback_14tjv_56`},ce=function(e){return e[e.Playlist=0]=`Playlist`,e[e.PlaylistThumbnail=1]=`PlaylistThumbnail`,e[e.Series=2]=`Series`,e[e.SeriesThumbnail=3]=`SeriesThumbnail`,e[e.Subject=4]=`Subject`,e[e.TallSubject=5]=`TallSubject`,e[e.Video=6]=`Video`,e[e.Folder=7]=`Folder`,e}({});function le(e,t,n){if(t===4){let e=n===0?Z.subjectFallbackContainerLarge:Z.subjectFallbackContainerSmall;return`${Z.subjectFallbackContainer} ${e}`}return e===0?t===3||t===1?`${Z.svgFallbackContainer} rounded-3`:Z.svgFallbackContainer:Z.baseFallbackContainer}function ue(e){return e===3?Z.seriesItemFallback:e===1?Z.playlistItemFallback:e===0?Z.playlistFallback:e===2||e===5?Z.posterFallback:e===4?`${Z.subjectFallback} svg-container d-inline-block`:``}function Q(e){return e===3||e===1?oe:e===0?Y:e===2?se:e===4||e===5?_:null}function de(e){return e===4?i.ExtraLarge:i.Standard}$.defaultProps={mediaType:0,containerClassSize:0};function $(e){let{type:t,mediaType:n,extraClasses:r,containerClassSize:i}=e;if(t===6)return(0,b.jsx)(`div`,{className:`${Z.videoFallback} ${e.extraClasses} bg-light-blue`});if(t===7)return(0,b.jsx)(`div`,{className:`${Z.folderFallback} ${e.extraClasses} ${X(e.name,J)}`});let a=ue(t),o=Q(t),c=de(t),l=`${le(n,t,i)}`;return r&&(l+=` ${e.extraClasses}`),(0,b.jsx)(`div`,{className:l,children:n===0?(0,b.jsx)(s,{svg:o,className:`${a} ${e.svgContainerClassName??``}`,tagName:`div`,size:c}):(0,b.jsx)(`div`,{className:Z.fallbackThumbnailImage,style:{backgroundImage:`url('${o}')`}})})}export{J as a,A as c,S as d,Y as i,E as l,ce as n,q as o,X as r,z as s,$ as t,w as u};
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{Dr as e,N as t,at as n,ot as r}from"./CrTgNROp.chunk.js";import{i,n as a,o,r as s,v as c}from"./CxNc1BDX.chunk.js";import{t as l}from"./BIVEB8w0.chunk.js";import{n as u}from"./C4rkNAyl.chunk.js";import{i as d,n as f,r as p}from"./J0H9O8cX.chunk.js";import{U as m,g as ee,m as h,x as g}from"./app-F8o5al1q.js";import{n as te,t as _}from"./CPUQYzyc.chunk.js";var v=e(n()),y=function(e){return e.Exchange=`exchange`,e.Streamable=`streamable`,e.MoviesAndTv=`movies_and_tv`,e.Twig=`twig`,e.Espresso=`espresso`,e}({}),b=t();function x(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z`,clipRule:`evenodd`})})}function S(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z`,fill:`currentColor`})})}var C=function(e){return e.Folder=`category`,e.CategoryTree=`category_tree`,e.CustomLibrary=`custom_library`,e.HostedLibrary=`hosted_library`,e.Exchange=`exchange`,e.Workspace=`workspace`,e.Video=`video`,e.Clip=`clip`,e.Interactive=`interactive`,e}({}),w=function(e){return e.Pdf=`pdf`,e.Image=`image`,e.PowerPoint=`powerpoint`,e.Document=`document`,e.Excel=`excel`,e.Zip=`archive`,e.File=`text`,e}({});function T(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z`,fill:`currentColor`})})}function E(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39`,fill:`currentColor`})})}function ne(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z`,fill:`currentColor`})})}function re(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z`,fill:`currentColor`})})}function ie(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z`,fill:`currentColor`})})}function ae(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z`,fill:`currentColor`})})}var D=`shared.shared-utils`,O={mapRatingToClass(e){return e?(e=>{switch(!0){case e<32:return`bg-purple`;case e<48:return`bg-green`;case e<80:return`bg-blue`;case e<96:return`bg-red`;case e<128:return`bg-pink`;case e>=128:return`bg-yellow`;default:return``}})(e):``},mapSourceToDisplayName(e,t){switch(e.type){case C.HostedLibrary:case C.CustomLibrary:return e.name;case C.Exchange:return l.getPhrase(D,`exchange`);case C.Workspace:return l.getPhrase(D,t?`myVideos`:`workspace`);default:return``}},mapSourceToClass(e){switch(e){case C.HostedLibrary:case C.CustomLibrary:return`bg-blue`;case C.Exchange:return`bg-green`;case C.Workspace:default:return`bg-red`}},isInteractive(e){return!!e?.interactives?.data?.length},mapTypeToSvg(e){let t={[w.Pdf]:E,[w.Image]:_,[w.PowerPoint]:ne,[w.Document]:ie,[w.Excel]:T,[w.Zip]:ae,[w.File]:re}[e];return t||=te,t},mapTypeToClass(e){switch(e){case w.Pdf:return`icon-red`;case w.Image:return`icon-purple`;case w.Document:return`icon-blue`;case w.Excel:return`icon-green`;case w.PowerPoint:return`icon-orange`;case w.Zip:return`icon-teal`;case w.File:return`icon-gray`;default:return``}},mapTypeToExtension(e){return e?{pdf:`pdf`,image:`png`,powerpoint:`pptx`}[e.toLowerCase()]:``},mapTypeToName(e){if(!e)return``;switch(e){case w.Pdf:return l.getPhrase(D,`pdf`);case w.Image:return l.getPhrase(D,`image`);case w.Document:return l.getPhrase(D,`document`);case w.Excel:return l.getPhrase(D,`spreadsheet`);case w.PowerPoint:return l.getPhrase(D,`presentation`);case w.Zip:return l.getPhrase(D,`zipArchive`);case w.File:return l.getPhrase(D,`file`);default:return``}}},k=l.encloseNamespace(`shared.badges`),A=function(e){return e.DurationExact=`duration-exact`,e.DurationApproximate=`duration-approximate`,e.Interactive=`interactive`,e.Rating=`rating`,e.ProductionYear=`production-year`,e.Captions=`captions`,e.Status=`status`,e.Trending=`trending`,e.Count=`count`,e.RoundCount=`round-count`,e.Restriction=`restriction`,e.Source=`source`,e}({}),j={xs:i.ExtraSmall,sm:i.Small,std:i.Standard,lg:i.Large},M={xs:`badge-xs`,sm:`badge-sm`,std:`badge-std`,lg:`badge-lg`};function N(e){switch(e){case g.Published:case d.Published:return`bg-success`;case g.Archived:case g.Rejected:case d.Archived:return`bg-danger`;case g.Draft:case d.Draft:return`draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center`;case g.Pending:case g.Processing:return`bg-warning`}}function P(e){return e.includes(y.Streamable)?`px-1 text-nowrap d-flex align-items-center ${ee.streamable}`:e.includes(y.MoviesAndTv)?`bg-indigo text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Exchange)?`bg-orange text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Twig)?`bg-pink text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Espresso)?`bg-navy text-white px-1 text-nowrap d-flex align-items-center`:``}function F(e,t,n){let r=M[n],i=``;return e===`duration-approximate`&&(i=`duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center`),e===`duration-exact`&&(i=`duration-badge`),e===`interactive`&&(i=`interactive-badge`),e===`rating`&&(i=`rating-badge text-shadow ${O.mapRatingToClass(t.value)}`),e===`production-year`&&(i=`production-year-badge text-shadow`),e===`captions`?`p-0`:e===`status`?`badge ${N(t)}`:e===`trending`?`trending-badge px-1 d-flex align-items-center ${r}`:(e===`count`&&(i=`count-badge px-1 rounded`),e===`round-count`&&(i=`round-badge rounded-circle`),e===`restriction`?a(`restriction-badge rounded-pill px-2 d-flex align-items-center`,h.mapRestrictionToClass(t.restrictions)):(e===`source`&&(i=P(t)),a(`badge`,i)))}function I(e,t,n){if(e===`interactive`)return k(`interactive`);if(e===`duration-approximate`)return p.ToDisplayDurationNewStyle(t);if(e===`duration-exact`)return p.ToDisplayDuration(t);if(e===`rating`)return t.code;if(e===`production-year`)return t;if(e===`captions`)return(0,b.jsx)(s,{svg:S});if(e===`status`)return typeof t==`number`?g[t]:t;if(e===`trending`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:x,size:j[n]}),(0,b.jsx)(`span`,{className:`ps-1`,children:t})]});if(e===`count`||e===`round-count`)return t;if(e===`restriction`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:h.mapRestrictionToSvg(t.restrictions)}),(0,b.jsx)(`span`,{children:h.mapRestrictionToText(t.restrictions,t.yearGroups)})]});if(e===`source`){let e=t;return e.includes(y.Streamable)?`streamable`:e.includes(y.MoviesAndTv)?`movies + tv`:e.includes(y.Exchange)?`exchange`:e.includes(y.Twig)?`twig`:e.includes(y.Espresso)?`espresso`:`-`}}function L(e,t){return e===`rating`?{title:t.name,placement:`top`}:null}function R(e,t){return typeof t==`boolean`?!!t:e===`rating`?t&&!!t.value:e===`interactive`||e===`captions`?!!t?.length||!!t?.data?.length:e===`status`?typeof t==`number`||typeof t==`string`:!!t}function z(e){let{type:t,data:n,size:r=`std`}=e;if(!R(t,n))return(0,b.jsx)(b.Fragment,{});let i=F(t,n,r);i=`${i} ${e.inline?`d-inline-block`:`d-flex justify-content-center`} ${e.className||``}`;let a=I(t,n,r),s=L(t,n),c=e.inline&&`d-inline-block`;return s?(0,b.jsx)(`div`,{className:`badge-wrapper d-inline`,children:(0,b.jsx)(o,{...s,spanHack:!0,spanHackClassName:c,children:(0,b.jsx)(`span`,{className:i,children:a})})}):(0,b.jsx)(`span`,{className:`${i} badge-wrapper`,children:a})}function B(e={}){let{prevent:t,rootMargin:n,triggerOnce:r=!0}=e,[i,a,o]=f({triggerOnce:r,rootMargin:n});return(t===!0||window.IntersectionObserver===void 0)&&(a=!0,i=null),{ref:i,inView:a,initialized:!!o}}var V={image:`_image_pp6me_1`},H=`500px`,U=`data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=`,W=v.memo(function(e){let{forceLoad:t,extraClasses:n=``,errorFallbackImageSrc:r,preventLoad:i=!1,errorFallbackImageClassName:a,src:o,alt:s,...c}=e,{ref:l,inView:u}=B({rootMargin:H}),[d,f]=v.useState(!1);v.useEffect(()=>{if(!t&&!u||i)return;let e=new Image;return e.onerror=()=>{f(!0),r&&(e.src=r)},e.src=o,()=>e.onerror=null},[u,i]);function p(){return d&&r?r:e.src}if(d&&!r)return(0,b.jsx)(b.Fragment,{});if(!l)return(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,alt:s,src:p(),...c});let m={alt:s,...c,...(u||t)&&!i?{src:p()}:{src:U}};return t||(m.ref=l),(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,...m})}),G={image:`_image_1himm_1`,thumbnail:`_thumbnail_1himm_13`,tallPoster:`_tallPoster_1himm_16`,cover:`_cover_1himm_19`,banner:`_banner_1himm_22`,poster:`_poster_1himm_25`,pdf:`_pdf_1himm_28`,link:`_link_1himm_31`};function K(e){let t=G.image,n=``;return e.imageType===u.Thumbnails&&(n=`thumbnail ${G.thumbnail}`),e.imageType===u.TallPosters&&(n=G.tallPoster),e.imageType===u.Covers&&(n=G.cover),e.imageType===u.Banners&&(n=G.banner),e.imageType===u.Posters&&(n=G.poster),e.imageType===u.Pdf&&(n=G.pdf),e.imageType===u.Link&&(n=G.link),n&&(t+=` ${n}`),e.className&&(t+=` ${e.className}`),t}function q(e){let{data:t,imageOptions:n,appLink:i,preload:a,preventLoad:o,analyticsOptions:s,analyticsData:l,imageClassName:u,alt:d}=e,f=``;typeof t==`string`?f=t:r.isObject(t)&&(f=t.url);let p=f&&n?m.createUrl(f,n):f;return(0,b.jsx)(`div`,{className:K(e),style:e.imageStyle,children:(0,b.jsxs)(c,{appLink:i,analyticsData:l,analyticsOptions:s,onClick:e.onClick,preventFocus:e.preventFocus,className:e.appLinkClassName,openInNewTab:e.openInNewTab,forcePageLoad:e.forcePageLoad,children:[e.children,p&&(0,b.jsx)(W,{src:p,alt:d,forceLoad:a,preventLoad:o,extraClasses:u,errorFallbackImageSrc:e.errorFallbackImageSrc,errorFallbackImageClassName:e.errorFallbackImageClassName,onLoad:e.onLoad})]})})}var J=[`bg-pink`,`bg-orange`,`bg-green`,`bg-cyan`,`bg-teal`,`bg-blue`,`bg-indigo`,`bg-purple`];function oe(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z`,clipRule:`evenodd`})})}function Y(e){return(0,b.jsx)(`svg`,{...e,viewBox:`0 0 24 21`,children:(0,b.jsx)(`path`,{d:`M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5`,fill:`currentColor`})})}function se(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,d:`M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17`})})}function X(e,t){return t[e.charCodeAt(0)%t.length]}var Z={baseFallbackContainer:`_baseFallbackContainer_14tjv_1`,svgFallbackContainer:`_svgFallbackContainer_14tjv_1`,subjectFallbackContainer:`_subjectFallbackContainer_14tjv_9`,subjectFallbackContainerSmall:`_subjectFallbackContainerSmall_14tjv_18`,subjectFallbackContainerLarge:`_subjectFallbackContainerLarge_14tjv_21`,seriesItemFallback:`_seriesItemFallback_14tjv_24`,playlistItemFallback:`_playlistItemFallback_14tjv_24`,playlistFallback:`_playlistFallback_14tjv_28`,posterFallback:`_posterFallback_14tjv_29`,subjectFallback:`_subjectFallback_14tjv_9`,fallbackThumbnailImage:`_fallbackThumbnailImage_14tjv_47`,videoFallback:`_videoFallback_14tjv_55`,folderFallback:`_folderFallback_14tjv_56`},ce=function(e){return e[e.Playlist=0]=`Playlist`,e[e.PlaylistThumbnail=1]=`PlaylistThumbnail`,e[e.Series=2]=`Series`,e[e.SeriesThumbnail=3]=`SeriesThumbnail`,e[e.Subject=4]=`Subject`,e[e.TallSubject=5]=`TallSubject`,e[e.Video=6]=`Video`,e[e.Folder=7]=`Folder`,e}({});function le(e,t,n){if(t===4){let e=n===0?Z.subjectFallbackContainerLarge:Z.subjectFallbackContainerSmall;return`${Z.subjectFallbackContainer} ${e}`}return e===0?t===3||t===1?`${Z.svgFallbackContainer} rounded-3`:Z.svgFallbackContainer:Z.baseFallbackContainer}function ue(e){return e===3?Z.seriesItemFallback:e===1?Z.playlistItemFallback:e===0?Z.playlistFallback:e===2||e===5?Z.posterFallback:e===4?`${Z.subjectFallback} svg-container d-inline-block`:``}function Q(e){return e===3||e===1?oe:e===0?Y:e===2?se:e===4||e===5?_:null}function de(e){return e===4?i.ExtraLarge:i.Standard}$.defaultProps={mediaType:0,containerClassSize:0};function $(e){let{type:t,mediaType:n,extraClasses:r,containerClassSize:i}=e;if(t===6)return(0,b.jsx)(`div`,{className:`${Z.videoFallback} ${e.extraClasses} bg-light-blue`});if(t===7)return(0,b.jsx)(`div`,{className:`${Z.folderFallback} ${e.extraClasses} ${X(e.name,J)}`});let a=ue(t),o=Q(t),c=de(t),l=`${le(n,t,i)}`;return r&&(l+=` ${e.extraClasses}`),(0,b.jsx)(`div`,{className:l,children:n===0?(0,b.jsx)(s,{svg:o,className:`${a} ${e.svgContainerClassName??``}`,tagName:`div`,size:c}):(0,b.jsx)(`div`,{className:Z.fallbackThumbnailImage,style:{backgroundImage:`url('${o}')`}})})}export{J as a,A as c,S as d,Y as i,E as l,ce as n,q as o,X as r,z as s,$ as t,w as u};
|
|
2
|
+
//# sourceMappingURL=DATsYYMP.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ch4Y5yk4.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/VideoSource.ts","../../../../libs/shared/src/images/svg/objects/TrendingSvg.tsx","../../../../libs/shared/src/images/svg/status/CloseCaptionBadgeSvg.tsx","../../../../libs/shared/src/enums/MasterObjectTypes.ts","../../../../libs/shared/src/enums/ResourceFileType.ts","../../../../libs/shared/src/images/svg/objects/FileExcelSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePdfSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePptSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileWordSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileZipSvg.tsx","../../../../libs/shared/src/utils/VideoDetailsHelper.ts","../../../../libs/shared/src/components/badges/Badge.tsx","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/lazy-image.module.scss","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx","../../../../libs/shared/src/components/image/image.module.scss","../../../../libs/shared/src/components/image/BaseImage.tsx","../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/image-fallback.module.scss","../../../../libs/shared/src/components/image/ImageFallback.tsx"],"sourcesContent":["export enum VideoSource {\n Exchange = 'exchange',\n Streamable = 'streamable',\n MoviesAndTv = 'movies_and_tv',\n Twig = 'twig',\n Espresso = 'espresso'\n}\n","import React from 'react';\n\nexport function TrendingSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CloseCaptionBadgeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","export enum MasterObjectTypes {\n Folder = 'category',\n CategoryTree = 'category_tree',\n CustomLibrary = 'custom_library',\n HostedLibrary = 'hosted_library',\n Exchange = 'exchange',\n Workspace = 'workspace',\n Video = 'video',\n Clip = 'clip',\n Interactive = 'interactive'\n}\n","// File types match metadata for a resource FileApi\nexport enum ResourceFileType {\n Pdf = 'pdf',\n Image = 'image',\n PowerPoint = 'powerpoint',\n Document = 'document',\n Excel = 'excel',\n Zip = 'archive',\n File = 'text'\n}\n","import React from 'react';\n\nexport function FileExcelSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePdfSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePptSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileWordSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileZipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Library, Video } from 'libs/shared/interfaces';\n\nimport { FileExcelSvg } from '../images/svg/objects/FileExcelSvg';\nimport { FileImgSvg } from '../images/svg/objects/FileImgSvg';\nimport { FilePdfSvg } from '../images/svg/objects/FilePdfSvg';\nimport { FilePptSvg } from '../images/svg/objects/FilePptSvg';\nimport { FileSvg } from '../images/svg/objects/FileSvg';\nimport { FileWordSvg } from '../images/svg/objects/FileWordSvg';\nimport { FileZipSvg } from '../images/svg/objects/FileZipSvg';\nimport { FolderSvg } from '../images/svg/objects/FolderSvg';\n\nconst lang = 'shared.shared-utils';\n\nexport const VideoDetailsHelper = {\n mapRatingToClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'bg-purple';\n case (rating < 48):\n return 'bg-green';\n case (rating < 80):\n return 'bg-blue';\n case (rating < 96):\n return 'bg-red';\n case (rating < 128):\n return 'bg-pink';\n case (rating >= 128):\n return 'bg-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n },\n\n mapSourceToDisplayName(library: Library, hasLite?: boolean): string {\n switch (library.type) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return library.name;\n case MasterObjectTypes.Exchange:\n return LanguageService.getPhrase(lang, 'exchange');\n case MasterObjectTypes.Workspace:\n return LanguageService.getPhrase(lang, hasLite ? 'myVideos' : 'workspace');\n default:\n return '';\n }\n },\n\n mapSourceToClass(sourceType: MasterObjectTypes | 'online_supplementary_library'): string {\n switch (sourceType) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return 'bg-blue';\n case MasterObjectTypes.Exchange:\n return 'bg-green';\n case MasterObjectTypes.Workspace:\n default:\n return 'bg-red';\n }\n },\n\n isInteractive(video: Video): boolean {\n return !!video?.interactives?.data?.length;\n },\n\n mapTypeToSvg(type: string): any {\n const types: HashObject = {\n [ResourceFileType.Pdf]: FilePdfSvg,\n [ResourceFileType.Image]: FileImgSvg,\n [ResourceFileType.PowerPoint]: FilePptSvg,\n [ResourceFileType.Document]: FileWordSvg,\n [ResourceFileType.Excel]: FileExcelSvg,\n [ResourceFileType.Zip]: FileZipSvg,\n [ResourceFileType.File]: FileSvg\n };\n\n let mappedType = types[type];\n\n if (!mappedType)\n mappedType = FolderSvg;\n\n return mappedType;\n },\n\n mapTypeToClass(type: string): any {\n switch (type) {\n case ResourceFileType.Pdf:\n return 'icon-red';\n\n case ResourceFileType.Image:\n return 'icon-purple';\n\n case ResourceFileType.Document:\n return 'icon-blue';\n\n case ResourceFileType.Excel:\n return 'icon-green';\n\n case ResourceFileType.PowerPoint:\n return 'icon-orange';\n\n case ResourceFileType.Zip:\n return 'icon-teal';\n\n case ResourceFileType.File:\n return 'icon-gray';\n\n default:\n return '';\n }\n },\n\n mapTypeToExtension(type: string): string {\n if (!type) return '';\n\n const extensions: HashObject = {\n pdf: 'pdf',\n image: 'png',\n powerpoint: 'pptx'\n };\n\n return extensions[type.toLowerCase()];\n },\n\n mapTypeToName(type: string): string {\n if (!type) return '';\n\n switch (type) {\n case ResourceFileType.Pdf: return LanguageService.getPhrase(lang, 'pdf');\n case ResourceFileType.Image: return LanguageService.getPhrase(lang, 'image');\n case ResourceFileType.Document: return LanguageService.getPhrase(lang, 'document');\n case ResourceFileType.Excel: return LanguageService.getPhrase(lang, 'spreadsheet');\n case ResourceFileType.PowerPoint: return LanguageService.getPhrase(lang, 'presentation');\n case ResourceFileType.Zip: return LanguageService.getPhrase(lang, 'zipArchive');\n case ResourceFileType.File: return LanguageService.getPhrase(lang, 'file');\n\n default:\n return '';\n }\n }\n};\n","import * as React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { VideoSource } from 'libs/shared/enums/VideoSource';\nimport { TrendingSvg } from 'libs/shared/images/svg/objects/TrendingSvg';\nimport { CloseCaptionBadgeSvg } from 'libs/shared/images/svg/status/CloseCaptionBadgeSvg';\nimport { DashboardStatus, Rating } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './badge.module.scss';\n\nconst namespace = 'shared.badges';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum BadgeType {\n DurationExact = 'duration-exact',\n DurationApproximate = 'duration-approximate',\n Interactive = 'interactive',\n Rating = 'rating',\n ProductionYear = 'production-year',\n Captions = 'captions',\n Status = 'status',\n Trending = 'trending',\n Count = 'count',\n RoundCount = 'round-count',\n Restriction = 'restriction',\n Source = 'source'\n}\n\ntype BadgeSize = 'xs' | 'sm' | 'std' | 'lg';\n\ninterface BadgeProps {\n type: BadgeType;\n data: any;\n inline?: boolean;\n className?: string;\n /**\n * Only Trending badge supports this attribute atm\n */\n size?: BadgeSize;\n}\n\ninterface TooltipOptions {\n placement: Placement;\n title: string;\n}\n\nconst badgeSvgContainerSizeMap: {[key in BadgeSize]: SvgContainerSize } = {\n xs: SvgContainerSize.ExtraSmall,\n sm: SvgContainerSize.Small,\n std: SvgContainerSize.Standard,\n lg: SvgContainerSize.Large\n};\n\nconst badgeSizeClassNameMap: {[key in BadgeSize]: string } = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n std: 'badge-std',\n lg: 'badge-lg'\n};\n\nfunction getStatusClassName(status: CurationStatus | DashboardStatus): string {\n switch (status) {\n case CurationStatus.Published:\n case DashboardStatus.Published:\n return 'bg-success';\n\n case CurationStatus.Archived:\n case CurationStatus.Rejected:\n case DashboardStatus.Archived:\n return 'bg-danger';\n\n case CurationStatus.Draft:\n case DashboardStatus.Draft:\n return 'draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n case CurationStatus.Pending:\n case CurationStatus.Processing:\n return 'bg-warning';\n }\n}\n\nfunction getSourceClassName(sources: VideoSource[]): string {\n if (sources.includes(VideoSource.Streamable))\n return `px-1 text-nowrap d-flex align-items-center ${styles.streamable}`;\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'bg-indigo text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Exchange))\n return 'bg-orange text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Twig))\n return `bg-pink text-white px-1 text-nowrap d-flex align-items-center`;\n\n if (sources.includes(VideoSource.Espresso))\n return `bg-navy text-white px-1 text-nowrap d-flex align-items-center`;\n\n return '';\n}\n\nfunction getClassName(type: BadgeType, data: any, size: BadgeSize): string {\n const baseClass = 'badge';\n const sizeClass = badgeSizeClassNameMap[size];\n\n let typeClass = '';\n\n if (type === BadgeType.DurationApproximate)\n typeClass = 'duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n if (type === BadgeType.DurationExact)\n typeClass = 'duration-badge';\n\n if (type === BadgeType.Interactive)\n typeClass = 'interactive-badge';\n\n if (type === BadgeType.Rating)\n typeClass = `rating-badge text-shadow ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\n\n if (type === BadgeType.ProductionYear)\n typeClass = 'production-year-badge text-shadow';\n\n if (type === BadgeType.Captions)\n return 'p-0';\n\n if (type === BadgeType.Status)\n return `badge ${getStatusClassName(data)}`;\n\n if (type === BadgeType.Trending)\n return `trending-badge px-1 d-flex align-items-center ${sizeClass}`;\n\n if (type === BadgeType.Count)\n typeClass = 'count-badge px-1 rounded';\n\n if (type === BadgeType.RoundCount)\n typeClass = 'round-badge rounded-circle';\n\n if (type === BadgeType.Restriction) {\n const restrictionBgClass = RestrictionHelper.mapRestrictionToClass(data.restrictions);\n return classNames('restriction-badge rounded-pill px-2 d-flex align-items-center', restrictionBgClass);\n }\n \n if (type === BadgeType.Source)\n typeClass = getSourceClassName(data);\n\n return classNames(baseClass, typeClass);\n}\n\nfunction getBadgeContent(type: BadgeType, data: any, size: BadgeSize): string | JSX.Element {\n if (type === BadgeType.Interactive)\n return getPhrase('interactive');\n\n if (type === BadgeType.DurationApproximate)\n return DurationHelper.ToDisplayDurationNewStyle(data);\n\n if (type === BadgeType.DurationExact)\n return DurationHelper.ToDisplayDuration(data);\n\n if (type === BadgeType.Rating)\n return (data as Rating).code; // data expected to be a rating object\n\n if (type === BadgeType.ProductionYear)\n return data; // data should be the production year\n\n if (type === BadgeType.Captions)\n return <SvgContainer svg={CloseCaptionBadgeSvg} />;\n\n if (type === BadgeType.Status) {\n if (typeof(data) === 'number') {\n return CurationStatus[data];\n }\n return data;\n }\n\n if (type === BadgeType.Trending)\n return (\n <>\n <SvgContainer svg={TrendingSvg} size={badgeSvgContainerSizeMap[size]} />\n <span className='ps-1'>{data}</span>\n </>\n );\n\n if (type === BadgeType.Count || type === BadgeType.RoundCount)\n return data;\n\n if (type === BadgeType.Restriction)\n return (\n <>\n <SvgContainer\n svg={RestrictionHelper.mapRestrictionToSvg(data.restrictions)}\n />\n <span>\n {RestrictionHelper.mapRestrictionToText(data.restrictions, data.yearGroups)}\n </span>\n </>\n );\n\n if (type === BadgeType.Source) {\n const sources = data as VideoSource[];\n\n if (sources.includes(VideoSource.Streamable))\n return 'streamable';\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'movies + tv';\n\n if (sources.includes(VideoSource.Exchange))\n return 'exchange';\n\n if (sources.includes(VideoSource.Twig))\n return 'twig';\n\n if (sources.includes(VideoSource.Espresso))\n return 'espresso';\n\n return '-';\n }\n}\n\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\n if (type === BadgeType.Rating)\n return {\n title: (data as Rating).name,\n placement: 'top'\n };\n\n return null;\n}\n\nfunction hasData(type: BadgeType, data: any): boolean {\n if (typeof(data) === 'boolean')\n return !!data;\n\n if (type === BadgeType.Rating)\n return data && !!(data as Rating).value;\n\n if (type === BadgeType.Interactive)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Captions)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Status)\n return typeof(data) === 'number' || typeof(data) === 'string';\n\n return !!data;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { type, data, size = 'std' } = props;\n \n if (!hasData(type, data))\n return <></>;\n\n let className = getClassName(type, data, size);\n className = `${className} ${props.inline ? 'd-inline-block' : 'd-flex justify-content-center'} ${props.className || ''}`;\n const content = getBadgeContent(type, data, size);\n const tooltip = getTooltip(type, data);\n const spanHackClassName = props.inline && 'd-inline-block';\n\n if (tooltip) {\n return (\n <div className='badge-wrapper d-inline'>\n <Tooltip {...tooltip} spanHack spanHackClassName={spanHackClassName}>\n <span className={className}>{content}</span>\n </Tooltip>\n </div>\n );\n }\n\n return <span className={`${className} badge-wrapper`}>{content}</span>;\n}\n","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}\n",":local {\n .image {\n width: 100%;\n height: 100%;\n }\n}\n","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});\n",":local {\n .image {\n position: relative;\n width: 100%;\n height: 100%;\n\n :global(img) {\n position: absolute;\n top: 0; \n bottom: 0; \n left: 0; \n right: 0;\n }\n }\n\n // Aspect Ratios\n .thumbnail {\n padding-bottom: 56.25%;\n }\n\n .tallPoster {\n padding-bottom: 177.77778%;\n }\n\n .cover {\n padding-bottom: 100%;\n }\n\n .banner {\n padding-bottom: 18.50%\n }\n\n .poster {\n padding-bottom: 150%;\n }\n\n .pdf {\n :global(img) {\n height: auto;\n }\n }\n\n .link {\n :global(img) {\n width: auto;\n margin: 0 auto;\n }\n }\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { Image } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './image.module.scss';\n\nfunction getImageClassName(props: BaseImageProps): string {\n let className = styles.image;\n\n let imageTypeClassName = '';\n\n if (props.imageType === ImageType.Thumbnails)\n imageTypeClassName = `thumbnail ${styles.thumbnail}`;\n\n if (props.imageType === ImageType.TallPosters)\n imageTypeClassName = styles.tallPoster;\n\n if (props.imageType === ImageType.Covers)\n imageTypeClassName = styles.cover;\n\n if (props.imageType === ImageType.Banners)\n imageTypeClassName = styles.banner;\n\n if (props.imageType === ImageType.Posters)\n imageTypeClassName = styles.poster;\n\n if (props.imageType === ImageType.Pdf)\n imageTypeClassName = styles.pdf;\n\n if (props.imageType === ImageType.Link)\n imageTypeClassName = styles.link;\n\n if (imageTypeClassName)\n className += ` ${imageTypeClassName}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return className;\n}\n\ninterface BaseImageProps {\n data: Image | string;\n imageOptions?: ImageOptions;\n appLink?: Core.AppLink;\n imageType?: ImageType;\n className?: string;\n imageClassName?: string;\n imageStyle?: HashObject;\n preload?: boolean;\n preventLoad?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n alt?: string;\n preventFocus?: boolean;\n appLinkClassName?: string;\n onClick?: () => void;\n onLoad?: () => void;\n openInNewTab?: boolean;\n forcePageLoad?: boolean;\n}\n\nexport function BaseImage(props: React.PropsWithChildren<BaseImageProps>): React.ReactElement {\n const {\n data,\n imageOptions,\n appLink,\n preload,\n preventLoad,\n analyticsOptions,\n analyticsData,\n imageClassName,\n alt\n } = props;\n\n let url = '';\n\n if (typeof data === 'string') {\n url = data;\n } else if (ObjectHelper.isObject(data)) {\n url = data.url;\n }\n\n const imageUrl = (url && imageOptions) ? ImageHelper.createUrl(url, imageOptions) : url;\n\n return (\n <div className={getImageClassName(props)} style={props.imageStyle}>\n <AppLink\n appLink={appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n onClick={props.onClick}\n preventFocus={props.preventFocus}\n className={props.appLinkClassName}\n openInNewTab={props.openInNewTab}\n forcePageLoad={props.forcePageLoad}\n >\n {props.children}\n {imageUrl && (\n <LazyImage\n src={imageUrl}\n alt={alt}\n forceLoad={preload}\n preventLoad={preventLoad}\n extraClasses={imageClassName}\n errorFallbackImageSrc={props.errorFallbackImageSrc}\n errorFallbackImageClassName={props.errorFallbackImageClassName}\n onLoad={props.onLoad}\n />\n )}\n </AppLink>\n </div>\n );\n}\n\n","/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];\n","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}\n",":local {\n .baseFallbackContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n .svgFallbackContainer {\n @extend .baseFallbackContainer;\n background-color: $gray-100;\n }\n\n .subjectFallbackContainer {\n background-color: $gray-100;\n height: 100%;\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n\n position: absolute;\n top: 0;\n left: 0;\n\n &Small {\n width: 2rem;\n }\n\n &Large {\n width: 5rem;\n }\n }\n\n .seriesItemFallback, .playlistItemFallback {\n @extend %icon;\n width: 3.75rem;\n height: 3.75rem;\n }\n\n .playlistFallback,\n .posterFallback { // poster fallback is used by series' & and subjects tall poster's\n @extend %icon;\n width: 7.5rem;\n height: 7.5rem;\n\n svg {\n width: 100%;\n height: 100%;\n }\n }\n\n .subjectFallback {\n @extend %icon;\n }\n\n %icon {\n position: absolute;\n top: 50%;\n left: 50%;\n color: $gray-400;\n transform: translate3D(-50%, -50%, 0);\n transition: opacity 100ms ease-in-out;\n }\n\n .fallbackThumbnailImage {\n padding: map-get($spacers, 1);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n }\n\n .videoFallback,\n .folderFallback {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large ?\n styles.subjectFallbackContainerLarge :\n styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize;\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg ?\n (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DATsYYMP.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/VideoSource.ts","../../../../libs/shared/src/images/svg/objects/TrendingSvg.tsx","../../../../libs/shared/src/images/svg/status/CloseCaptionBadgeSvg.tsx","../../../../libs/shared/src/enums/MasterObjectTypes.ts","../../../../libs/shared/src/enums/ResourceFileType.ts","../../../../libs/shared/src/images/svg/objects/FileExcelSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePdfSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePptSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileWordSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileZipSvg.tsx","../../../../libs/shared/src/utils/VideoDetailsHelper.ts","../../../../libs/shared/src/components/badges/Badge.tsx","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/lazy-image.module.scss","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx","../../../../libs/shared/src/components/image/image.module.scss","../../../../libs/shared/src/components/image/BaseImage.tsx","../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/image-fallback.module.scss","../../../../libs/shared/src/components/image/ImageFallback.tsx"],"sourcesContent":["export enum VideoSource {\n Exchange = 'exchange',\n Streamable = 'streamable',\n MoviesAndTv = 'movies_and_tv',\n Twig = 'twig',\n Espresso = 'espresso'\n}\n","import React from 'react';\n\nexport function TrendingSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CloseCaptionBadgeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","export enum MasterObjectTypes {\n Folder = 'category',\n CategoryTree = 'category_tree',\n CustomLibrary = 'custom_library',\n HostedLibrary = 'hosted_library',\n Exchange = 'exchange',\n Workspace = 'workspace',\n Video = 'video',\n Clip = 'clip',\n Interactive = 'interactive'\n}\n","// File types match metadata for a resource FileApi\nexport enum ResourceFileType {\n Pdf = 'pdf',\n Image = 'image',\n PowerPoint = 'powerpoint',\n Document = 'document',\n Excel = 'excel',\n Zip = 'archive',\n File = 'text'\n}\n","import React from 'react';\n\nexport function FileExcelSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePdfSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePptSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileWordSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileZipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Library, Video } from 'libs/shared/interfaces';\n\nimport { FileExcelSvg } from '../images/svg/objects/FileExcelSvg';\nimport { FileImgSvg } from '../images/svg/objects/FileImgSvg';\nimport { FilePdfSvg } from '../images/svg/objects/FilePdfSvg';\nimport { FilePptSvg } from '../images/svg/objects/FilePptSvg';\nimport { FileSvg } from '../images/svg/objects/FileSvg';\nimport { FileWordSvg } from '../images/svg/objects/FileWordSvg';\nimport { FileZipSvg } from '../images/svg/objects/FileZipSvg';\nimport { FolderSvg } from '../images/svg/objects/FolderSvg';\n\nconst lang = 'shared.shared-utils';\n\nexport const VideoDetailsHelper = {\n mapRatingToClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'bg-purple';\n case (rating < 48):\n return 'bg-green';\n case (rating < 80):\n return 'bg-blue';\n case (rating < 96):\n return 'bg-red';\n case (rating < 128):\n return 'bg-pink';\n case (rating >= 128):\n return 'bg-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n },\n\n mapSourceToDisplayName(library: Library, hasLite?: boolean): string {\n switch (library.type) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return library.name;\n case MasterObjectTypes.Exchange:\n return LanguageService.getPhrase(lang, 'exchange');\n case MasterObjectTypes.Workspace:\n return LanguageService.getPhrase(lang, hasLite ? 'myVideos' : 'workspace');\n default:\n return '';\n }\n },\n\n mapSourceToClass(sourceType: MasterObjectTypes | 'online_supplementary_library'): string {\n switch (sourceType) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return 'bg-blue';\n case MasterObjectTypes.Exchange:\n return 'bg-green';\n case MasterObjectTypes.Workspace:\n default:\n return 'bg-red';\n }\n },\n\n isInteractive(video: Video): boolean {\n return !!video?.interactives?.data?.length;\n },\n\n mapTypeToSvg(type: string): any {\n const types: HashObject = {\n [ResourceFileType.Pdf]: FilePdfSvg,\n [ResourceFileType.Image]: FileImgSvg,\n [ResourceFileType.PowerPoint]: FilePptSvg,\n [ResourceFileType.Document]: FileWordSvg,\n [ResourceFileType.Excel]: FileExcelSvg,\n [ResourceFileType.Zip]: FileZipSvg,\n [ResourceFileType.File]: FileSvg\n };\n\n let mappedType = types[type];\n\n if (!mappedType)\n mappedType = FolderSvg;\n\n return mappedType;\n },\n\n mapTypeToClass(type: string): any {\n switch (type) {\n case ResourceFileType.Pdf:\n return 'icon-red';\n\n case ResourceFileType.Image:\n return 'icon-purple';\n\n case ResourceFileType.Document:\n return 'icon-blue';\n\n case ResourceFileType.Excel:\n return 'icon-green';\n\n case ResourceFileType.PowerPoint:\n return 'icon-orange';\n\n case ResourceFileType.Zip:\n return 'icon-teal';\n\n case ResourceFileType.File:\n return 'icon-gray';\n\n default:\n return '';\n }\n },\n\n mapTypeToExtension(type: string): string {\n if (!type) return '';\n\n const extensions: HashObject = {\n pdf: 'pdf',\n image: 'png',\n powerpoint: 'pptx'\n };\n\n return extensions[type.toLowerCase()];\n },\n\n mapTypeToName(type: string): string {\n if (!type) return '';\n\n switch (type) {\n case ResourceFileType.Pdf: return LanguageService.getPhrase(lang, 'pdf');\n case ResourceFileType.Image: return LanguageService.getPhrase(lang, 'image');\n case ResourceFileType.Document: return LanguageService.getPhrase(lang, 'document');\n case ResourceFileType.Excel: return LanguageService.getPhrase(lang, 'spreadsheet');\n case ResourceFileType.PowerPoint: return LanguageService.getPhrase(lang, 'presentation');\n case ResourceFileType.Zip: return LanguageService.getPhrase(lang, 'zipArchive');\n case ResourceFileType.File: return LanguageService.getPhrase(lang, 'file');\n\n default:\n return '';\n }\n }\n};\n","import * as React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { VideoSource } from 'libs/shared/enums/VideoSource';\nimport { TrendingSvg } from 'libs/shared/images/svg/objects/TrendingSvg';\nimport { CloseCaptionBadgeSvg } from 'libs/shared/images/svg/status/CloseCaptionBadgeSvg';\nimport { DashboardStatus, Rating } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './badge.module.scss';\n\nconst namespace = 'shared.badges';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum BadgeType {\n DurationExact = 'duration-exact',\n DurationApproximate = 'duration-approximate',\n Interactive = 'interactive',\n Rating = 'rating',\n ProductionYear = 'production-year',\n Captions = 'captions',\n Status = 'status',\n Trending = 'trending',\n Count = 'count',\n RoundCount = 'round-count',\n Restriction = 'restriction',\n Source = 'source'\n}\n\ntype BadgeSize = 'xs' | 'sm' | 'std' | 'lg';\n\ninterface BadgeProps {\n type: BadgeType;\n data: any;\n inline?: boolean;\n className?: string;\n /**\n * Only Trending badge supports this attribute atm\n */\n size?: BadgeSize;\n}\n\ninterface TooltipOptions {\n placement: Placement;\n title: string;\n}\n\nconst badgeSvgContainerSizeMap: {[key in BadgeSize]: SvgContainerSize } = {\n xs: SvgContainerSize.ExtraSmall,\n sm: SvgContainerSize.Small,\n std: SvgContainerSize.Standard,\n lg: SvgContainerSize.Large\n};\n\nconst badgeSizeClassNameMap: {[key in BadgeSize]: string } = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n std: 'badge-std',\n lg: 'badge-lg'\n};\n\nfunction getStatusClassName(status: CurationStatus | DashboardStatus): string {\n switch (status) {\n case CurationStatus.Published:\n case DashboardStatus.Published:\n return 'bg-success';\n\n case CurationStatus.Archived:\n case CurationStatus.Rejected:\n case DashboardStatus.Archived:\n return 'bg-danger';\n\n case CurationStatus.Draft:\n case DashboardStatus.Draft:\n return 'draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n case CurationStatus.Pending:\n case CurationStatus.Processing:\n return 'bg-warning';\n }\n}\n\nfunction getSourceClassName(sources: VideoSource[]): string {\n if (sources.includes(VideoSource.Streamable))\n return `px-1 text-nowrap d-flex align-items-center ${styles.streamable}`;\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'bg-indigo text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Exchange))\n return 'bg-orange text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Twig))\n return `bg-pink text-white px-1 text-nowrap d-flex align-items-center`;\n\n if (sources.includes(VideoSource.Espresso))\n return `bg-navy text-white px-1 text-nowrap d-flex align-items-center`;\n\n return '';\n}\n\nfunction getClassName(type: BadgeType, data: any, size: BadgeSize): string {\n const baseClass = 'badge';\n const sizeClass = badgeSizeClassNameMap[size];\n\n let typeClass = '';\n\n if (type === BadgeType.DurationApproximate)\n typeClass = 'duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n if (type === BadgeType.DurationExact)\n typeClass = 'duration-badge';\n\n if (type === BadgeType.Interactive)\n typeClass = 'interactive-badge';\n\n if (type === BadgeType.Rating)\n typeClass = `rating-badge text-shadow ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\n\n if (type === BadgeType.ProductionYear)\n typeClass = 'production-year-badge text-shadow';\n\n if (type === BadgeType.Captions)\n return 'p-0';\n\n if (type === BadgeType.Status)\n return `badge ${getStatusClassName(data)}`;\n\n if (type === BadgeType.Trending)\n return `trending-badge px-1 d-flex align-items-center ${sizeClass}`;\n\n if (type === BadgeType.Count)\n typeClass = 'count-badge px-1 rounded';\n\n if (type === BadgeType.RoundCount)\n typeClass = 'round-badge rounded-circle';\n\n if (type === BadgeType.Restriction) {\n const restrictionBgClass = RestrictionHelper.mapRestrictionToClass(data.restrictions);\n return classNames('restriction-badge rounded-pill px-2 d-flex align-items-center', restrictionBgClass);\n }\n \n if (type === BadgeType.Source)\n typeClass = getSourceClassName(data);\n\n return classNames(baseClass, typeClass);\n}\n\nfunction getBadgeContent(type: BadgeType, data: any, size: BadgeSize): string | JSX.Element {\n if (type === BadgeType.Interactive)\n return getPhrase('interactive');\n\n if (type === BadgeType.DurationApproximate)\n return DurationHelper.ToDisplayDurationNewStyle(data);\n\n if (type === BadgeType.DurationExact)\n return DurationHelper.ToDisplayDuration(data);\n\n if (type === BadgeType.Rating)\n return (data as Rating).code; // data expected to be a rating object\n\n if (type === BadgeType.ProductionYear)\n return data; // data should be the production year\n\n if (type === BadgeType.Captions)\n return <SvgContainer svg={CloseCaptionBadgeSvg} />;\n\n if (type === BadgeType.Status) {\n if (typeof(data) === 'number') {\n return CurationStatus[data];\n }\n return data;\n }\n\n if (type === BadgeType.Trending)\n return (\n <>\n <SvgContainer svg={TrendingSvg} size={badgeSvgContainerSizeMap[size]} />\n <span className='ps-1'>{data}</span>\n </>\n );\n\n if (type === BadgeType.Count || type === BadgeType.RoundCount)\n return data;\n\n if (type === BadgeType.Restriction)\n return (\n <>\n <SvgContainer\n svg={RestrictionHelper.mapRestrictionToSvg(data.restrictions)}\n />\n <span>\n {RestrictionHelper.mapRestrictionToText(data.restrictions, data.yearGroups)}\n </span>\n </>\n );\n\n if (type === BadgeType.Source) {\n const sources = data as VideoSource[];\n\n if (sources.includes(VideoSource.Streamable))\n return 'streamable';\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'movies + tv';\n\n if (sources.includes(VideoSource.Exchange))\n return 'exchange';\n\n if (sources.includes(VideoSource.Twig))\n return 'twig';\n\n if (sources.includes(VideoSource.Espresso))\n return 'espresso';\n\n return '-';\n }\n}\n\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\n if (type === BadgeType.Rating)\n return {\n title: (data as Rating).name,\n placement: 'top'\n };\n\n return null;\n}\n\nfunction hasData(type: BadgeType, data: any): boolean {\n if (typeof(data) === 'boolean')\n return !!data;\n\n if (type === BadgeType.Rating)\n return data && !!(data as Rating).value;\n\n if (type === BadgeType.Interactive)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Captions)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Status)\n return typeof(data) === 'number' || typeof(data) === 'string';\n\n return !!data;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { type, data, size = 'std' } = props;\n \n if (!hasData(type, data))\n return <></>;\n\n let className = getClassName(type, data, size);\n className = `${className} ${props.inline ? 'd-inline-block' : 'd-flex justify-content-center'} ${props.className || ''}`;\n const content = getBadgeContent(type, data, size);\n const tooltip = getTooltip(type, data);\n const spanHackClassName = props.inline && 'd-inline-block';\n\n if (tooltip) {\n return (\n <div className='badge-wrapper d-inline'>\n <Tooltip {...tooltip} spanHack spanHackClassName={spanHackClassName}>\n <span className={className}>{content}</span>\n </Tooltip>\n </div>\n );\n }\n\n return <span className={`${className} badge-wrapper`}>{content}</span>;\n}\n","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}\n",":local {\n .image {\n width: 100%;\n height: 100%;\n }\n}\n","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});\n",":local {\n .image {\n position: relative;\n width: 100%;\n height: 100%;\n\n :global(img) {\n position: absolute;\n top: 0; \n bottom: 0; \n left: 0; \n right: 0;\n }\n }\n\n // Aspect Ratios\n .thumbnail {\n padding-bottom: 56.25%;\n }\n\n .tallPoster {\n padding-bottom: 177.77778%;\n }\n\n .cover {\n padding-bottom: 100%;\n }\n\n .banner {\n padding-bottom: 18.50%\n }\n\n .poster {\n padding-bottom: 150%;\n }\n\n .pdf {\n :global(img) {\n height: auto;\n }\n }\n\n .link {\n :global(img) {\n width: auto;\n margin: 0 auto;\n }\n }\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { Image } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './image.module.scss';\n\nfunction getImageClassName(props: BaseImageProps): string {\n let className = styles.image;\n\n let imageTypeClassName = '';\n\n if (props.imageType === ImageType.Thumbnails)\n imageTypeClassName = `thumbnail ${styles.thumbnail}`;\n\n if (props.imageType === ImageType.TallPosters)\n imageTypeClassName = styles.tallPoster;\n\n if (props.imageType === ImageType.Covers)\n imageTypeClassName = styles.cover;\n\n if (props.imageType === ImageType.Banners)\n imageTypeClassName = styles.banner;\n\n if (props.imageType === ImageType.Posters)\n imageTypeClassName = styles.poster;\n\n if (props.imageType === ImageType.Pdf)\n imageTypeClassName = styles.pdf;\n\n if (props.imageType === ImageType.Link)\n imageTypeClassName = styles.link;\n\n if (imageTypeClassName)\n className += ` ${imageTypeClassName}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return className;\n}\n\ninterface BaseImageProps {\n data: Image | string;\n imageOptions?: ImageOptions;\n appLink?: Core.AppLink;\n imageType?: ImageType;\n className?: string;\n imageClassName?: string;\n imageStyle?: HashObject;\n preload?: boolean;\n preventLoad?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n alt?: string;\n preventFocus?: boolean;\n appLinkClassName?: string;\n onClick?: () => void;\n onLoad?: () => void;\n openInNewTab?: boolean;\n forcePageLoad?: boolean;\n}\n\nexport function BaseImage(props: React.PropsWithChildren<BaseImageProps>): React.ReactElement {\n const {\n data,\n imageOptions,\n appLink,\n preload,\n preventLoad,\n analyticsOptions,\n analyticsData,\n imageClassName,\n alt\n } = props;\n\n let url = '';\n\n if (typeof data === 'string') {\n url = data;\n } else if (ObjectHelper.isObject(data)) {\n url = data.url;\n }\n\n const imageUrl = (url && imageOptions) ? ImageHelper.createUrl(url, imageOptions) : url;\n\n return (\n <div className={getImageClassName(props)} style={props.imageStyle}>\n <AppLink\n appLink={appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n onClick={props.onClick}\n preventFocus={props.preventFocus}\n className={props.appLinkClassName}\n openInNewTab={props.openInNewTab}\n forcePageLoad={props.forcePageLoad}\n >\n {props.children}\n {imageUrl && (\n <LazyImage\n src={imageUrl}\n alt={alt}\n forceLoad={preload}\n preventLoad={preventLoad}\n extraClasses={imageClassName}\n errorFallbackImageSrc={props.errorFallbackImageSrc}\n errorFallbackImageClassName={props.errorFallbackImageClassName}\n onLoad={props.onLoad}\n />\n )}\n </AppLink>\n </div>\n );\n}\n\n","/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];\n","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}\n",":local {\n .baseFallbackContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n .svgFallbackContainer {\n @extend .baseFallbackContainer;\n background-color: $gray-100;\n }\n\n .subjectFallbackContainer {\n background-color: $gray-100;\n height: 100%;\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n\n position: absolute;\n top: 0;\n left: 0;\n\n &Small {\n width: 2rem;\n }\n\n &Large {\n width: 5rem;\n }\n }\n\n .seriesItemFallback, .playlistItemFallback {\n @extend %icon;\n width: 3.75rem;\n height: 3.75rem;\n }\n\n .playlistFallback,\n .posterFallback { // poster fallback is used by series' & and subjects tall poster's\n @extend %icon;\n width: 7.5rem;\n height: 7.5rem;\n\n svg {\n width: 100%;\n height: 100%;\n }\n }\n\n .subjectFallback {\n @extend %icon;\n }\n\n %icon {\n position: absolute;\n top: 50%;\n left: 50%;\n color: $gray-400;\n transform: translate3D(-50%, -50%, 0);\n transition: opacity 100ms ease-in-out;\n }\n\n .fallbackThumbnailImage {\n padding: map-get($spacers, 1);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n }\n\n .videoFallback,\n .folderFallback {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large ?\n styles.subjectFallbackContainerLarge :\n styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize;\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg ?\n (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,s as t}from"./HeoWyBUD.chunk.js";import{I as n}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{n as e,s as t}from"./HeoWyBUD.chunk.js";import{I as n}from"./app-F8o5al1q.js";function r(r){let[i,a]=e(n.CLASSROOM_VIEWS_ALERT,!0,{storage:t.LocalStorage});function o(){a(!1)}function s(){a(!0)}let c=`none`;return i&&(c=r?`info`:`reminder`),{alertVariant:c,dismissAlert:o,enableAlert:s}}export{r as t};
|
|
2
|
+
//# sourceMappingURL=DBpZNnAI2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DBpZNnAI2.chunk.js","names":[],"sources":["../../src/shared/hooks/useClassroomViewsAlert.ts"],"sourcesContent":["import { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nexport type ClassroomViewsAlertVariant = 'info' | 'reminder' | 'none';\n\ninterface ClassroomViewsAlert {\n alertVariant: ClassroomViewsAlertVariant;\n dismissAlert: () => void;\n enableAlert: () => void;\n}\n\nexport function useClassroomViewsAlert(hasClassroomViews: boolean): ClassroomViewsAlert {\n const [ alertVisible, setAlertVisible ] = useViewModel<boolean>(\n ViewModelKeys.CLASSROOM_VIEWS_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function dismissAlert(): void {\n setAlertVisible(false);\n }\n\n function enableAlert(): void {\n setAlertVisible(true);\n }\n\n let alertVariant: ClassroomViewsAlertVariant = 'none';\n\n if (alertVisible)\n alertVariant = hasClassroomViews ? 'info' : 'reminder';\n\n return { alertVariant, dismissAlert, enableAlert };\n}\n"],"mappings":"qFAaA,SAAgB,EAAuB,EAAiD,CACtF,GAAM,CAAE,EAAc,GAAoB,EACxC,EAAc,sBACd,GACA,CAAE,QAAS,EAAY,YAAa,CACtC,EAEA,SAAS,GAAqB,CAC5B,EAAgB,EAAK,CACvB,CAEA,SAAS,GAAoB,CAC3B,EAAgB,EAAI,CACtB,CAEA,IAAI,EAA2C,OAK/C,OAHI,IACF,EAAe,EAAoB,OAAS,YAEvC,CAAE,eAAc,eAAc,aAAY,CACnD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Dr as e,M as t,N as n,Qt as r,at as i}from"./CrTgNROp.chunk.js";import{r as a,v as o,y as s}from"./CxNc1BDX.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{Tt as l,V as u,i as d,kt as f,wt as p}from"./app-
|
|
1
|
+
import{Dr as e,M as t,N as n,Qt as r,at as i}from"./CrTgNROp.chunk.js";import{r as a,v as o,y as s}from"./CxNc1BDX.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{Tt as l,V as u,i as d,kt as f,wt as p}from"./app-F8o5al1q.js";import{c as m,s as h}from"./DATsYYMP.chunk.js";var g=e(i()),_={pillTabSelector:`_pillTabSelector_a6f6x_1`,tab:`_tab_a6f6x_4`,minWidth:`_minWidth_a6f6x_21`,radiusSmall:`_radiusSmall_a6f6x_24`,tabLink:`_tabLink_a6f6x_35`},v=n();function y(e){return typeof e.tab.count==`number`?e.badgeType===m.RoundCount?(0,v.jsx)(`div`,{className:`ps-2`,children:(0,v.jsx)(h,{type:e.badgeType,data:e.tab.count,className:e.className})}):(0,v.jsx)(`div`,{className:`ps-2`,children:(0,v.jsx)(h,{type:m.Count,data:e.tab.count,className:e.className})}):(0,v.jsx)(v.Fragment,{})}function b(e){return(0,v.jsxs)(v.Fragment,{children:[!!e.tab.svg&&(0,v.jsx)(`div`,{className:e.tab.name?`pe-1`:``,children:(0,v.jsx)(a,{svg:e.tab.svg,size:e.tab.svgSize})}),e.formatDisplayText?.(e.tab.name)??e.tab.name,(0,v.jsx)(y,{tab:e.tab,badgeType:e.badgeType,className:e.badgeClassName})]})}function x(e){let{borderRadius:n=`lg`}=e,i=u();function a(e){e.analyticsData&&e.analyticsOptions&&t.logUserAction(e.analyticsData,e.analyticsOptions)}function c(e){e.active||!e.onSelect||(e.onSelect(),a(e))}function l(t){let n=t.target.value,i=e.tabs.find(e=>e.name===n);!i||i.active||(a(i),r.trigger(i.appLink))}let d=e.tabs.find(e=>e.active),f=e.forceSmallScreenDropdown||e.enableSmallScreenSupport&&(i.sm||i.xs);return(0,v.jsxs)(`nav`,{className:e.className??``,children:[f&&(0,v.jsx)(`select`,{className:`form-select`,onChange:l,value:d?.name,style:{minWidth:`150px`},children:e.tabs.map((t,n)=>t.hide?(0,v.jsx)(g.Fragment,{},n):(0,v.jsx)(`option`,{value:t.name,children:e.formatDisplayText?.(t.name)??t.name},n))}),!f&&(0,v.jsx)(`ul`,{className:`
|
|
2
2
|
list-unstyled d-inline-block m-0 ${_.pillTabSelector}
|
|
3
3
|
${n?_.radiusSmall:``}
|
|
4
4
|
${e.listClassName}
|
|
@@ -12,4 +12,4 @@ import{Dr as e,M as t,N as n,Qt as r,at as i}from"./CrTgNROp.chunk.js";import{r
|
|
|
12
12
|
cursor-pointer d-flex align-items-center justify-content-center
|
|
13
13
|
text-decoration-none text-reset px-2 text-nowrap ${_.tabLink}
|
|
14
14
|
`,onClick:()=>c(t),children:(0,v.jsx)(b,{tab:t,formatDisplayText:e.formatDisplayText,badgeClassName:e.badgeClassName,badgeType:e.badgeType})})},n))})]})}function S(e){return(0,v.jsx)(x,{className:`pb-3`,tabs:e.items.map(e=>({name:e.label,onSelect:()=>r.trigger(e.appLink),active:e.appLink.action===l.getCurrentRoute()?.appLink?.action}))})}var C=c.encloseNamespace(`reportsVideos.schoolVideosNav`);function w(e){return[{label:C(`overview`),appLink:{application:f.VIDEOS,action:p.Videos.HOME,params:e}},{label:C(`views`),appLink:{application:f.VIDEOS,action:p.Videos.TOP_VIDEOS,params:e}}]}function T(){return(0,v.jsx)(S,{items:w(d())})}export{T as t};
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=DGuSwgQf2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CKKR2-wU2.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/pill-tab-selector/pill-tab-selector.module.scss","../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","../../src/shared/components/sub-nav/SubNav.tsx","../../src/apps/videos/components/school-videos-nav/SchoolVideosNav.tsx"],"sourcesContent":[":local {\n $pill-tab-min-width: 7rem;\n\n .pillTabSelector {\n border-radius: $border-radius-lg;\n\n .tab {\n border-radius: 0;\n\n &:first-child {\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n }\n\n &:last-child {\n border-top-right-radius: $border-radius-lg;\n border-bottom-right-radius: $border-radius-lg;\n }\n\n &:not(:first-child) {\n border-left: none;\n }\n\n &:not(:last-child) {\n border-right: none;\n }\n\n &.minWidth {\n min-width: $pill-tab-min-width;\n }\n }\n\n &.radiusSmall {\n border-radius: $border-radius;\n\n li {\n &:first-child {\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n \n &:last-child {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n }\n }\n }\n\n .tabLink {\n padding-top: $input-btn-padding-y;\n padding-bottom: $input-btn-padding-y;\n }\n }\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentComplicationProps {\n badgeType?: BadgeType;\n className?: string;\n tab: PillTab;\n}\n\nfunction TabContentComplication(props: TabContentComplicationProps) {\n if (typeof (props.tab.count) !== 'number')\n return <></>;\n\n if (props.badgeType === BadgeType.RoundCount) {\n return (\n <div className='ps-2'>\n <Badge type={props.badgeType} data={props.tab.count} className={props.className}/>\n </div>\n );\n }\n\n return (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} className={props.className}/>\n </div>\n );\n}\n\ninterface TabContentsProps {\n tab: PillTab;\n formatDisplayText?: (name: string) => string;\n badgeClassName?: string;\n badgeType?: BadgeType;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} size={props.tab.svgSize} />\n </div>\n )}\n\n {props.formatDisplayText?.(props.tab.name) ?? props.tab.name}\n\n <TabContentComplication\n tab={props.tab}\n badgeType={props.badgeType}\n className={props.badgeClassName}\n />\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svg?: SvgIcon;\n svgSize?: SvgContainerSize;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n\n hide?: boolean;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg';\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n forceSmallScreenDropdown?: boolean;\n badgeClassName?: string;\n badgeType?: BadgeType;\n}\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n const { borderRadius = 'lg' } = props;\n \n const breakpoints = useBreakpoints();\n \n function logAnalytics(tab: PillTab): void {\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n \n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n logAnalytics(tab);\n }\n\n function onChangeSelect(event: React.ChangeEvent<HTMLSelectElement>): void {\n const value = event.target.value;\n const tab = props.tabs.find(tab => tab.name === value);\n if (!tab || tab.active)\n return;\n \n logAnalytics(tab);\n AppLinkHelper.trigger(tab.appLink);\n }\n\n const selectedTab = props.tabs.find(tab => tab.active);\n const showSelectDropdown = props.forceSmallScreenDropdown\n || (props.enableSmallScreenSupport && (breakpoints.sm || breakpoints.xs));\n\n return (\n <nav className={props.className ?? ''}>\n {showSelectDropdown && (\n <select className='form-select' onChange={onChangeSelect} value={selectedTab?.name} style={{ minWidth: '150px' }}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n\n return (\n <option\n key={index}\n value={tab.name}>\n {props.formatDisplayText?.(tab.name) ?? tab.name}\n </option>\n );\n })}\n </select>\n )}\n \n {!showSelectDropdown && (\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n \n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} formatDisplayText={props.formatDisplayText} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents\n tab={tab}\n formatDisplayText={props.formatDisplayText}\n badgeClassName={props.badgeClassName}\n badgeType={props.badgeType}\n />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </nav>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\nexport interface SubNavItem {\n label: string;\n appLink: Core.AppLink;\n}\n\ninterface SubNavProps {\n items: SubNavItem[];\n}\n\nexport function SubNav(props: SubNavProps): JSX.Element {\n const tabs: PillTab[] = props.items.map(i => ({\n name: i.label,\n onSelect: () => Core.AppLinkHelper.trigger(i.appLink),\n active: i.appLink.action === ContextService.getCurrentRoute()?.appLink?.action\n }));\n\n return <PillTabSelector className='pb-3' tabs={tabs} />;\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\n\nimport { SubNav, SubNavItem } from 'shared/components/sub-nav/SubNav';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\n\nconst namespace = 'reportsVideos.schoolVideosNav';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getNavItems(params: FilterQueryParams): SubNavItem[] {\n return [\n {\n label: getPhrase('overview'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.HOME, params }\n },\n {\n label: getPhrase('views'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.TOP_VIDEOS, params }\n }\n ];\n}\n\nexport function SchoolVideosNav(): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n const navItems = getNavItems(filterQueryParams);\n\n return (\n <SubNav items={navItems} />\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DGuSwgQf2.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/pill-tab-selector/pill-tab-selector.module.scss","../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","../../src/shared/components/sub-nav/SubNav.tsx","../../src/apps/videos/components/school-videos-nav/SchoolVideosNav.tsx"],"sourcesContent":[":local {\n $pill-tab-min-width: 7rem;\n\n .pillTabSelector {\n border-radius: $border-radius-lg;\n\n .tab {\n border-radius: 0;\n\n &:first-child {\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n }\n\n &:last-child {\n border-top-right-radius: $border-radius-lg;\n border-bottom-right-radius: $border-radius-lg;\n }\n\n &:not(:first-child) {\n border-left: none;\n }\n\n &:not(:last-child) {\n border-right: none;\n }\n\n &.minWidth {\n min-width: $pill-tab-min-width;\n }\n }\n\n &.radiusSmall {\n border-radius: $border-radius;\n\n li {\n &:first-child {\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n \n &:last-child {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n }\n }\n }\n\n .tabLink {\n padding-top: $input-btn-padding-y;\n padding-bottom: $input-btn-padding-y;\n }\n }\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentComplicationProps {\n badgeType?: BadgeType;\n className?: string;\n tab: PillTab;\n}\n\nfunction TabContentComplication(props: TabContentComplicationProps) {\n if (typeof (props.tab.count) !== 'number')\n return <></>;\n\n if (props.badgeType === BadgeType.RoundCount) {\n return (\n <div className='ps-2'>\n <Badge type={props.badgeType} data={props.tab.count} className={props.className}/>\n </div>\n );\n }\n\n return (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} className={props.className}/>\n </div>\n );\n}\n\ninterface TabContentsProps {\n tab: PillTab;\n formatDisplayText?: (name: string) => string;\n badgeClassName?: string;\n badgeType?: BadgeType;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} size={props.tab.svgSize} />\n </div>\n )}\n\n {props.formatDisplayText?.(props.tab.name) ?? props.tab.name}\n\n <TabContentComplication\n tab={props.tab}\n badgeType={props.badgeType}\n className={props.badgeClassName}\n />\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svg?: SvgIcon;\n svgSize?: SvgContainerSize;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n\n hide?: boolean;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg';\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n forceSmallScreenDropdown?: boolean;\n badgeClassName?: string;\n badgeType?: BadgeType;\n}\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n const { borderRadius = 'lg' } = props;\n \n const breakpoints = useBreakpoints();\n \n function logAnalytics(tab: PillTab): void {\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n \n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n logAnalytics(tab);\n }\n\n function onChangeSelect(event: React.ChangeEvent<HTMLSelectElement>): void {\n const value = event.target.value;\n const tab = props.tabs.find(tab => tab.name === value);\n if (!tab || tab.active)\n return;\n \n logAnalytics(tab);\n AppLinkHelper.trigger(tab.appLink);\n }\n\n const selectedTab = props.tabs.find(tab => tab.active);\n const showSelectDropdown = props.forceSmallScreenDropdown\n || (props.enableSmallScreenSupport && (breakpoints.sm || breakpoints.xs));\n\n return (\n <nav className={props.className ?? ''}>\n {showSelectDropdown && (\n <select className='form-select' onChange={onChangeSelect} value={selectedTab?.name} style={{ minWidth: '150px' }}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n\n return (\n <option\n key={index}\n value={tab.name}>\n {props.formatDisplayText?.(tab.name) ?? tab.name}\n </option>\n );\n })}\n </select>\n )}\n \n {!showSelectDropdown && (\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n \n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} formatDisplayText={props.formatDisplayText} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents\n tab={tab}\n formatDisplayText={props.formatDisplayText}\n badgeClassName={props.badgeClassName}\n badgeType={props.badgeType}\n />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </nav>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\nexport interface SubNavItem {\n label: string;\n appLink: Core.AppLink;\n}\n\ninterface SubNavProps {\n items: SubNavItem[];\n}\n\nexport function SubNav(props: SubNavProps): JSX.Element {\n const tabs: PillTab[] = props.items.map(i => ({\n name: i.label,\n onSelect: () => Core.AppLinkHelper.trigger(i.appLink),\n active: i.appLink.action === ContextService.getCurrentRoute()?.appLink?.action\n }));\n\n return <PillTabSelector className='pb-3' tabs={tabs} />;\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\n\nimport { SubNav, SubNavItem } from 'shared/components/sub-nav/SubNav';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\n\nconst namespace = 'reportsVideos.schoolVideosNav';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getNavItems(params: FilterQueryParams): SubNavItem[] {\n return [\n {\n label: getPhrase('overview'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.HOME, params }\n },\n {\n label: getPhrase('views'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.TOP_VIDEOS, params }\n }\n ];\n}\n\nexport function SchoolVideosNav(): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n const navItems = getNavItems(filterQueryParams);\n\n return (\n <SubNav items={navItems} />\n );\n}\n"],"mappings":"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"}
|