@clickview/lite 0.103.1 → 0.103.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/.vite/manifest.json +271 -271
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{igSDXA6g.chunk.js → 1WHinyQW.chunk.js} +2 -2
  5. package/dist/scripts/{igSDXA6g.chunk.js.map → 1WHinyQW.chunk.js.map} +1 -1
  6. package/dist/scripts/{kMWvzbRv2.chunk.js → B1ag1ah72.chunk.js} +2 -2
  7. package/dist/scripts/{kMWvzbRv2.chunk.js.map → B1ag1ah72.chunk.js.map} +1 -1
  8. package/dist/scripts/{D2_GYzlb.chunk.js → B6Pc3q-u.chunk.js} +2 -2
  9. package/dist/scripts/{D2_GYzlb.chunk.js.map → B6Pc3q-u.chunk.js.map} +1 -1
  10. package/dist/scripts/{sCuSDiER2.chunk.js → BPbjSFkC2.chunk.js} +2 -2
  11. package/dist/scripts/{sCuSDiER2.chunk.js.map → BPbjSFkC2.chunk.js.map} +1 -1
  12. package/dist/scripts/{CNm_4jj62.chunk.js → BZFomoIH2.chunk.js} +2 -2
  13. package/dist/scripts/BZFomoIH2.chunk.js.map +1 -0
  14. package/dist/scripts/{CW_rYB-i2.chunk.js → BazdM9Ah2.chunk.js} +2 -2
  15. package/dist/scripts/{CW_rYB-i2.chunk.js.map → BazdM9Ah2.chunk.js.map} +1 -1
  16. package/dist/scripts/{BcPrUEuC2.chunk.js → CNPnPJMp2.chunk.js} +2 -2
  17. package/dist/scripts/{BcPrUEuC2.chunk.js.map → CNPnPJMp2.chunk.js.map} +1 -1
  18. package/dist/scripts/{Dd23z1_x2.chunk.js → CUp7_5gE2.chunk.js} +2 -2
  19. package/dist/scripts/{Dd23z1_x2.chunk.js.map → CUp7_5gE2.chunk.js.map} +1 -1
  20. package/dist/scripts/{C-zUHAyD.chunk.js → CajcIz6S.chunk.js} +2 -2
  21. package/dist/scripts/{C-zUHAyD.chunk.js.map → CajcIz6S.chunk.js.map} +1 -1
  22. package/dist/scripts/{Drx3PvJj.chunk.js → Cc9f2ux0.chunk.js} +2 -2
  23. package/dist/scripts/{Drx3PvJj.chunk.js.map → Cc9f2ux0.chunk.js.map} +1 -1
  24. package/dist/scripts/Cj_F4Lv92.chunk.js +2 -0
  25. package/dist/scripts/{C8l37H7t2.chunk.js.map → Cj_F4Lv92.chunk.js.map} +1 -1
  26. package/dist/scripts/{DFrz_upP2.chunk.js → CtBGtgb32.chunk.js} +2 -2
  27. package/dist/scripts/{DFrz_upP2.chunk.js.map → CtBGtgb32.chunk.js.map} +1 -1
  28. package/dist/scripts/{BpiZZWnJ2.chunk.js → CtWAorP42.chunk.js} +2 -2
  29. package/dist/scripts/{BpiZZWnJ2.chunk.js.map → CtWAorP42.chunk.js.map} +1 -1
  30. package/dist/scripts/{C3Qd_bbV2.chunk.js → D8mi6CVp2.chunk.js} +2 -2
  31. package/dist/scripts/{C3Qd_bbV2.chunk.js.map → D8mi6CVp2.chunk.js.map} +1 -1
  32. package/dist/scripts/{3K2h5K5-.chunk.js → DJfIirut.chunk.js} +2 -2
  33. package/dist/scripts/{3K2h5K5-.chunk.js.map → DJfIirut.chunk.js.map} +1 -1
  34. package/dist/scripts/{Cc63s6rS2.chunk.js → DaaQ5htA2.chunk.js} +2 -2
  35. package/dist/scripts/{Cc63s6rS2.chunk.js.map → DaaQ5htA2.chunk.js.map} +1 -1
  36. package/dist/scripts/{CHwPLUZK.chunk.js → DkFP4cXM.chunk.js} +2 -2
  37. package/dist/scripts/{CHwPLUZK.chunk.js.map → DkFP4cXM.chunk.js.map} +1 -1
  38. package/dist/scripts/{izXlxhJf.chunk.js → Dzy1nQk7.chunk.js} +2 -2
  39. package/dist/scripts/{izXlxhJf.chunk.js.map → Dzy1nQk7.chunk.js.map} +1 -1
  40. package/dist/scripts/{DGy8Ldlr.chunk.js → FIUOppmy.chunk.js} +2 -2
  41. package/dist/scripts/{DGy8Ldlr.chunk.js.map → FIUOppmy.chunk.js.map} +1 -1
  42. package/dist/scripts/{CPBvCqVK.chunk.js → H511PXuG.chunk.js} +2 -2
  43. package/dist/scripts/{CPBvCqVK.chunk.js.map → H511PXuG.chunk.js.map} +1 -1
  44. package/dist/scripts/{D8Op6EUa2.chunk.js → IYIY9hIU2.chunk.js} +2 -2
  45. package/dist/scripts/{D8Op6EUa2.chunk.js.map → IYIY9hIU2.chunk.js.map} +1 -1
  46. package/dist/scripts/{app-BHlllGhO.js → app-DvYKGw_S.js} +3 -3
  47. package/dist/scripts/{app-BHlllGhO.js.map → app-DvYKGw_S.js.map} +1 -1
  48. package/dist/scripts/{2HZlmQRs2.chunk.js → lJ6ZVpyv2.chunk.js} +2 -2
  49. package/dist/scripts/{2HZlmQRs2.chunk.js.map → lJ6ZVpyv2.chunk.js.map} +1 -1
  50. package/package.json +1 -1
  51. package/dist/scripts/C8l37H7t2.chunk.js +0 -2
  52. package/dist/scripts/CNm_4jj62.chunk.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{o as e}from"./DAXXjFlN.chunk.js";import{_ as t,y as n}from"./BftnFbcr.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./C2w0pmFW.chunk.js";import{t as a}from"./wrLrTezN.chunk.js";import{u as o}from"./BX0wDJmp.chunk.js";import{t as s}from"./C1SLt-ar.chunk.js";import{l as c,y as l,z as u}from"./NlCAcBdo.chunk.js";import{i as d,r as f,t as p}from"./Cr6TXzQQ2.chunk.js";import{t as m}from"./oPIkfKWW2.chunk.js";import{n as h}from"./CmcCVXi32.chunk.js";import{t as ee}from"./CcDvlSWl2.chunk.js";import{t as g}from"./BWaKdG0l.chunk.js";import{t as _}from"./PgzMrOyM.chunk.js";import{n as v}from"./C0exjRXJ2.chunk.js";import{t as y}from"./Vp01-r6R.chunk.js";import{t as b}from"./A8xLZrSw.chunk.js";import{t as x}from"./BQKcAczf.chunk.js";import{t as S}from"./CpP_XziV2.chunk.js";import{n as C}from"./CpFtf-tI2.chunk.js";import{t as w}from"./5ONJSThP.chunk.js";import{t as T}from"./DOnmTMfX.chunk.js";import{t as E}from"./DewCxv4i.chunk.js";import{t as D}from"./NVkf8UeY.chunk.js";import{t as O}from"./CJPrWMiv.chunk.js";import{t as k}from"./BmR4qY-v2.chunk.js";import{o as te}from"./YcLj4o6h.chunk.js";import{n as A,t as j}from"./Bp_pLLKM.chunk.js";import{n as M,t as N}from"./DWeyYfUG.chunk.js";import{t as P}from"./kMWvzbRv2.chunk.js";var F=e(i()),I=a(),L=`contentPartner.contentPartnerIndexDashboardEmptyState`;function R(e){return(0,I.jsxs)(y,{children:[e.image&&(0,I.jsx)(y.Image,{src:e.image}),(0,I.jsx)(y.Heading,{children:(0,I.jsx)(C,{namespace:L,phrase:`heading`,options:{letterFilter:e.letterFilter}})}),(0,I.jsx)(y.Info,{children:(0,I.jsx)(C,{namespace:L,phrase:`info`})})]})}function z(e){let t=s.sortBy(e.dashboard?.widgets,`index`),{isEmptyWidget:n,setEmptyWidget:r}=A(t);function i(n,r,i,a){if(!t.length)return;let o=f.getWidgetParams(r,i,f.getDashboardTargetType(e.dashboard),void 0,void 0,{params:e.queryParams});return e.getWidgetContentRequest(n,o,i,a)}let a=t.every(e=>n(e.id));return!t.length||a?(0,I.jsx)(R,{image:e.emptyStateImage,letterFilter:e.queryParams?.letterPrefix}):(0,I.jsx)(`div`,{className:`mt-3`,children:t.map((t,n)=>(0,I.jsx)(P,{dashboardTarget:h.DiscoverPartnerProfiles,index:n,item:t,infiniteFetch:e.dashboard.widgets.length-1===n,getName:e=>e.name,getWidgetMetadata:e=>e.metadata,appLinks:e.widgetAppLinks,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps,audiences:e.audiences,setIsEmpty:e=>r(t.id,e),getCursor:e=>e.cursor,getRequest:e=>i(t.id,t.widgetId,t.templateId,e),hasLocalPermissions:e.hasLocalPermissions,currentUser:e.currentUser,availablePresentations:e.availablePresentations,settingsHash:e.settings,getContent:e=>e.content,resultsTransformers:p.getWidgetResultsTransformers(),isEmptyPredicate:e=>Array.isArray(e)&&Array.isArray(e[0]?.content)&&!e[0]?.content?.length,getSelectedItems:null,getSeeMoreAppLink:null,appLinkOptions:null},t.id))})}var B={pillTabSelector:`_pillTabSelector_1d8n6_1`},V=`Custom`,H=[V,`#`,`A`,`B`,`C`,`D`,`E`,`F`,`G`,`H`,`I`,`J`,`K`,`L`,`M`,`N`,`O`,`P`,`Q`,`R`,`S`,`T`,`U`,`V`,`W`,`X`,`Y`,`Z`],U={"#":`0`},W={actionType:u.Click,entity:c.Url,location:l.MagicTabs};function G(e,t){if(!e)return;if(e===`0`)return`#`;let n=H.find(t=>t.toUpperCase()===e.toUpperCase());if(!(n===`Custom`&&!t))return n}function K(e){return H.map(t=>{if(t===`Custom`&&!e.showCustom)return;let r=e.getItemAppLink(U[t]??t);return{name:t,appLink:r,active:e.selected===t,analyticsData:{name:t,url:n.getHref(r)},analyticsOptions:W}}).filter(Boolean)}function q(e){let t=K({selected:G(e.selected,e.showCustom),showCustom:e.showCustom,getItemAppLink:e.getItemAppLink});return(0,I.jsx)(`div`,{className:v(e.noMarginBottom?`mb-0`:`mb-3`,e.className),children:(0,I.jsx)(O,{tabs:t,className:B.pillTabSelector,enableSmallScreenSupport:e.enableSmallScreenSupport,formatDisplayText:e.formatDisplayText,forceSmallScreenDropdown:e.forceSmallScreenDropdown})})}var J=function(e){return e.RecentlyUpdated=`lastupdated`,e.ATOZ=`name`,e.Newest=`datecreated`,e}({}),Y={[J.RecentlyUpdated]:`Recently Updated`,[J.ATOZ]:`A to Z`,[J.Newest]:`Newest`};function X(e){return(0,I.jsx)(`select`,{id:`widget-sort-selector`,disabled:e.disabled,className:`form-select`,value:e.selected,onChange:t=>e.onSortChange(t.target.value),children:Object.entries(Y).map(([e,t])=>(0,I.jsx)(`option`,{value:e,children:t},e))})}function Z(e){return!e||e.length!==1?V:e}function ne(e){return e?Object.values(J).find(t=>t.toLowerCase()===e.toLowerCase())??J.RecentlyUpdated:J.RecentlyUpdated}function re(e){let{letter:t,sort:n}=e;return{selectedLetter:Z(t),selectedSort:ne(n)}}var Q=`contentPartners.discover`,$=r.encloseNamespace(Q);function ie(e){if(e!==`Custom`)return e}function ae(e){return e===`Custom`?$(`featuredChannels`):e}function oe(e){let{dashboard:t,selectedLetter:n}=e;if(t)return n===`Custom`?t:{...t,widgets:t.widgets.filter(e=>e.widgetId===d.ContentPartners)}}function se(e){let{selectedLetter:r,selectedSort:i}=re({letter:e.letter,sort:e.sort});b({title:$(`pageTitle`),description:$(`pageDescription`)});let a=w(),s=a.md||a.sm||a.xs,c=o(m.currentUser()),u=M({location:N.VideoItem,presentationSlug:null}),{commonVideoProps:d}=k({locationContext:l.VideoThumbnail}),{hasPermissions:f,hasLocalPermissions:p}=x(),v=ee(null),{availablePresentations:y}=T(),{dashboard:O}=D({targetType:h.DiscoverPartnerProfiles,queryParams:{}});function A(e,t,n,r){return E.dashboardWidgetContent(e,t,n,void 0,{cursor:r??void 0})}F.useEffect(()=>{!O.hasCompleted||O.data||t.throw(new g)},[O.data,O.hasCompleted]);let P=F.useCallback(({forceSmallScreenDropdown:e})=>(0,I.jsx)(q,{showCustom:!0,noMarginBottom:!0,selected:r,getItemAppLink:e=>S.getPartnerHomeAppLink({letter:ie(e)}),formatDisplayText:ae,forceSmallScreenDropdown:e}),[r]),L=oe({dashboard:O.data,selectedLetter:r}),R={letterPrefix:r===`Custom`?void 0:r,sort:r===`Custom`?void 0:i};function B(e){let t=e===J.RecentlyUpdated?void 0:e;n.trigger(S.getPartnerHomeAppLink({letter:R.letterPrefix,sort:t}))}return O.hasCompleted?(0,I.jsxs)(`div`,{className:`bg-white px-3`,children:[(0,I.jsxs)(`div`,{className:`d-flex d-md-block flex-column mb-4 gap-4`,children:[(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3`,children:[(0,I.jsx)(`h1`,{className:`h2 mb-0`,children:(0,I.jsx)(C,{namespace:Q,phrase:`headerTitle`})}),(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row gap-3`,children:[s&&(0,I.jsx)(P,{forceSmallScreenDropdown:!0}),(0,I.jsx)(X,{selected:i,onSortChange:B,disabled:r===V})]})]}),!s&&(0,I.jsx)(P,{})]}),(0,I.jsx)(`div`,{className:`mb-4`,children:(0,I.jsx)(te.Provider,{value:u,children:(0,I.jsx)(z,{currentUser:c.data,availablePresentations:y,dashboard:L,getWidgetContentRequest:A,commonVideoProps:d,hasPermissions:f,hasLocalPermissions:p,settings:v,widgetAppLinks:j(c.data),queryParams:R,emptyStateImage:_.EmptyStates.WATCH_HISTORY},r)})})]}):(0,I.jsx)(I.Fragment,{})}export{se as ContentPartnersDiscoverView};
2
- //# sourceMappingURL=2HZlmQRs2.chunk.js.map
1
+ import{o as e}from"./DAXXjFlN.chunk.js";import{_ as t,y as n}from"./BftnFbcr.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./C2w0pmFW.chunk.js";import{t as a}from"./wrLrTezN.chunk.js";import{u as o}from"./BX0wDJmp.chunk.js";import{t as s}from"./C1SLt-ar.chunk.js";import{l as c,y as l,z as u}from"./NlCAcBdo.chunk.js";import{i as d,r as f,t as p}from"./Cr6TXzQQ2.chunk.js";import{t as m}from"./oPIkfKWW2.chunk.js";import{n as h}from"./CmcCVXi32.chunk.js";import{t as ee}from"./CcDvlSWl2.chunk.js";import{t as g}from"./BWaKdG0l.chunk.js";import{t as _}from"./PgzMrOyM.chunk.js";import{n as v}from"./C0exjRXJ2.chunk.js";import{t as y}from"./Vp01-r6R.chunk.js";import{t as b}from"./A8xLZrSw.chunk.js";import{t as x}from"./BQKcAczf.chunk.js";import{t as S}from"./CpP_XziV2.chunk.js";import{n as C}from"./CpFtf-tI2.chunk.js";import{t as w}from"./5ONJSThP.chunk.js";import{t as T}from"./DOnmTMfX.chunk.js";import{t as E}from"./DewCxv4i.chunk.js";import{t as D}from"./NVkf8UeY.chunk.js";import{t as O}from"./CJPrWMiv.chunk.js";import{t as k}from"./BmR4qY-v2.chunk.js";import{o as te}from"./YcLj4o6h.chunk.js";import{n as A,t as j}from"./Bp_pLLKM.chunk.js";import{n as M,t as N}from"./DWeyYfUG.chunk.js";import{t as P}from"./B1ag1ah72.chunk.js";var F=e(i()),I=a(),L=`contentPartner.contentPartnerIndexDashboardEmptyState`;function R(e){return(0,I.jsxs)(y,{children:[e.image&&(0,I.jsx)(y.Image,{src:e.image}),(0,I.jsx)(y.Heading,{children:(0,I.jsx)(C,{namespace:L,phrase:`heading`,options:{letterFilter:e.letterFilter}})}),(0,I.jsx)(y.Info,{children:(0,I.jsx)(C,{namespace:L,phrase:`info`})})]})}function z(e){let t=s.sortBy(e.dashboard?.widgets,`index`),{isEmptyWidget:n,setEmptyWidget:r}=A(t);function i(n,r,i,a){if(!t.length)return;let o=f.getWidgetParams(r,i,f.getDashboardTargetType(e.dashboard),void 0,void 0,{params:e.queryParams});return e.getWidgetContentRequest(n,o,i,a)}let a=t.every(e=>n(e.id));return!t.length||a?(0,I.jsx)(R,{image:e.emptyStateImage,letterFilter:e.queryParams?.letterPrefix}):(0,I.jsx)(`div`,{className:`mt-3`,children:t.map((t,n)=>(0,I.jsx)(P,{dashboardTarget:h.DiscoverPartnerProfiles,index:n,item:t,infiniteFetch:e.dashboard.widgets.length-1===n,getName:e=>e.name,getWidgetMetadata:e=>e.metadata,appLinks:e.widgetAppLinks,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps,audiences:e.audiences,setIsEmpty:e=>r(t.id,e),getCursor:e=>e.cursor,getRequest:e=>i(t.id,t.widgetId,t.templateId,e),hasLocalPermissions:e.hasLocalPermissions,currentUser:e.currentUser,availablePresentations:e.availablePresentations,settingsHash:e.settings,getContent:e=>e.content,resultsTransformers:p.getWidgetResultsTransformers(),isEmptyPredicate:e=>Array.isArray(e)&&Array.isArray(e[0]?.content)&&!e[0]?.content?.length,getSelectedItems:null,getSeeMoreAppLink:null,appLinkOptions:null},t.id))})}var B={pillTabSelector:`_pillTabSelector_1d8n6_1`},V=`Custom`,H=[V,`#`,`A`,`B`,`C`,`D`,`E`,`F`,`G`,`H`,`I`,`J`,`K`,`L`,`M`,`N`,`O`,`P`,`Q`,`R`,`S`,`T`,`U`,`V`,`W`,`X`,`Y`,`Z`],U={"#":`0`},W={actionType:u.Click,entity:c.Url,location:l.MagicTabs};function G(e,t){if(!e)return;if(e===`0`)return`#`;let n=H.find(t=>t.toUpperCase()===e.toUpperCase());if(!(n===`Custom`&&!t))return n}function K(e){return H.map(t=>{if(t===`Custom`&&!e.showCustom)return;let r=e.getItemAppLink(U[t]??t);return{name:t,appLink:r,active:e.selected===t,analyticsData:{name:t,url:n.getHref(r)},analyticsOptions:W}}).filter(Boolean)}function q(e){let t=K({selected:G(e.selected,e.showCustom),showCustom:e.showCustom,getItemAppLink:e.getItemAppLink});return(0,I.jsx)(`div`,{className:v(e.noMarginBottom?`mb-0`:`mb-3`,e.className),children:(0,I.jsx)(O,{tabs:t,className:B.pillTabSelector,enableSmallScreenSupport:e.enableSmallScreenSupport,formatDisplayText:e.formatDisplayText,forceSmallScreenDropdown:e.forceSmallScreenDropdown})})}var J=function(e){return e.RecentlyUpdated=`lastupdated`,e.ATOZ=`name`,e.Newest=`datecreated`,e}({}),Y={[J.RecentlyUpdated]:`Recently Updated`,[J.ATOZ]:`A to Z`,[J.Newest]:`Newest`};function X(e){return(0,I.jsx)(`select`,{id:`widget-sort-selector`,disabled:e.disabled,className:`form-select`,value:e.selected,onChange:t=>e.onSortChange(t.target.value),children:Object.entries(Y).map(([e,t])=>(0,I.jsx)(`option`,{value:e,children:t},e))})}function Z(e){return!e||e.length!==1?V:e}function ne(e){return e?Object.values(J).find(t=>t.toLowerCase()===e.toLowerCase())??J.RecentlyUpdated:J.RecentlyUpdated}function re(e){let{letter:t,sort:n}=e;return{selectedLetter:Z(t),selectedSort:ne(n)}}var Q=`contentPartners.discover`,$=r.encloseNamespace(Q);function ie(e){if(e!==`Custom`)return e}function ae(e){return e===`Custom`?$(`featuredChannels`):e}function oe(e){let{dashboard:t,selectedLetter:n}=e;if(t)return n===`Custom`?t:{...t,widgets:t.widgets.filter(e=>e.widgetId===d.ContentPartners)}}function se(e){let{selectedLetter:r,selectedSort:i}=re({letter:e.letter,sort:e.sort});b({title:$(`pageTitle`),description:$(`pageDescription`)});let a=w(),s=a.md||a.sm||a.xs,c=o(m.currentUser()),u=M({location:N.VideoItem,presentationSlug:null}),{commonVideoProps:d}=k({locationContext:l.VideoThumbnail}),{hasPermissions:f,hasLocalPermissions:p}=x(),v=ee(null),{availablePresentations:y}=T(),{dashboard:O}=D({targetType:h.DiscoverPartnerProfiles,queryParams:{}});function A(e,t,n,r){return E.dashboardWidgetContent(e,t,n,void 0,{cursor:r??void 0})}F.useEffect(()=>{!O.hasCompleted||O.data||t.throw(new g)},[O.data,O.hasCompleted]);let P=F.useCallback(({forceSmallScreenDropdown:e})=>(0,I.jsx)(q,{showCustom:!0,noMarginBottom:!0,selected:r,getItemAppLink:e=>S.getPartnerHomeAppLink({letter:ie(e)}),formatDisplayText:ae,forceSmallScreenDropdown:e}),[r]),L=oe({dashboard:O.data,selectedLetter:r}),R={letterPrefix:r===`Custom`?void 0:r,sort:r===`Custom`?void 0:i};function B(e){let t=e===J.RecentlyUpdated?void 0:e;n.trigger(S.getPartnerHomeAppLink({letter:R.letterPrefix,sort:t}))}return O.hasCompleted?(0,I.jsxs)(`div`,{className:`bg-white px-3`,children:[(0,I.jsxs)(`div`,{className:`d-flex d-md-block flex-column mb-4 gap-4`,children:[(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3`,children:[(0,I.jsx)(`h1`,{className:`h2 mb-0`,children:(0,I.jsx)(C,{namespace:Q,phrase:`headerTitle`})}),(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row gap-3`,children:[s&&(0,I.jsx)(P,{forceSmallScreenDropdown:!0}),(0,I.jsx)(X,{selected:i,onSortChange:B,disabled:r===V})]})]}),!s&&(0,I.jsx)(P,{})]}),(0,I.jsx)(`div`,{className:`mb-4`,children:(0,I.jsx)(te.Provider,{value:u,children:(0,I.jsx)(z,{currentUser:c.data,availablePresentations:y,dashboard:L,getWidgetContentRequest:A,commonVideoProps:d,hasPermissions:f,hasLocalPermissions:p,settings:v,widgetAppLinks:j(c.data),queryParams:R,emptyStateImage:_.EmptyStates.WATCH_HISTORY},r)})})]}):(0,I.jsx)(I.Fragment,{})}export{se as ContentPartnersDiscoverView};
2
+ //# sourceMappingURL=lJ6ZVpyv2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"2HZlmQRs2.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState.tsx","../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard.tsx","../../../../libs/shared/src/components/letters-bar/letters-bar.module.scss","../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/content-partners/enums/WidgetSort.ts","../../src/apps/content-partners/components/widget-sort-selector/WidgetSortSelector.tsx","../../src/apps/content-partners/utils/getContentPartnerParams.ts","../../src/apps/content-partners/views/content-partners-discover/ContentPartnersDiscoverView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'contentPartner.contentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardEmptyStateProps {\n image?: string;\n letterFilter?: string;\n}\n\nexport function ContentPartnerIndexDashboardEmptyState(\n props: ContentPartnerIndexDashboardEmptyStateProps\n): JSX.Element {\n return (\n <EmptyState>\n {props.image &&\n <EmptyState.Image src={props.image} />\n }\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' options={{ letterFilter: props.letterFilter }} />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { InfiniteWidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/InfiniteWidgetContainerView';\nimport { AllPartnerProfileWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { useEmptyWidgets } from 'libs/shared/hooks/useEmptyWidgets';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CuratedDashboard, CuratedWidget, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport { ContentPartnerIndexDashboardEmptyState } from './empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n cursor?: string\n ) => Flight.Request;\n commonVideoProps: CommonVideoProps;\n isReadonly?: boolean;\n widgetAppLinks?: AllPartnerProfileWidgetTemplates['appLinks'];\n scrollToWidgetId?: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n settings?: AllPartnerProfileWidgetTemplates['settings'];\n audiences?: PresentationAudience[];\n queryParams?: CuratedWidgetQueryParams;\n currentUser: CurrentUser;\n availablePresentations: Presentation[];\n emptyStateImage?: string;\n}\n\nexport function ContentPartnerIndexDashboard(props: ContentPartnerIndexDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n const { isEmptyWidget, setEmptyWidget } = useEmptyWidgets(widgets);\n\n function getWidgetContentRequest(\n id: string,\n widgetTypeId: WidgetTypeId,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n if (!widgets.length) return;\n\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard),\n undefined,\n undefined,\n { params: props.queryParams }\n );\n\n return props.getWidgetContentRequest(id, params, template, cursor);\n }\n\n const isContentPartnerWidgetEmpty = widgets.every(\n widget => isEmptyWidget(widget.id)\n );\n\n if (!widgets.length || isContentPartnerWidgetEmpty)\n return (\n <ContentPartnerIndexDashboardEmptyState\n image={props.emptyStateImage}\n letterFilter={props.queryParams?.letterPrefix}\n />\n );\n \n return (\n <div className='mt-3'>\n {widgets.map((widget, idx) => (\n <InfiniteWidgetContainerView<CuratedWidget, CuratedWidget, AllPartnerProfileWidgetTemplates>\n dashboardTarget={DashboardTargetType.DiscoverPartnerProfiles}\n key={widget.id}\n index={idx}\n item={widget}\n\n infiniteFetch={props.dashboard.widgets.length - 1 === idx}\n getName={widget => widget.name}\n getWidgetMetadata={w => w.metadata}\n appLinks={props.widgetAppLinks}\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n audiences={props.audiences}\n setIsEmpty={isEmpty => setEmptyWidget(widget.id, isEmpty)}\n getCursor={w => w.cursor}\n getRequest={cursor => getWidgetContentRequest(widget.id, widget.widgetId, widget.templateId, cursor)}\n hasLocalPermissions={props.hasLocalPermissions}\n currentUser={props.currentUser}\n availablePresentations={props.availablePresentations}\n settingsHash={props.settings}\n getContent={w => w.content}\n resultsTransformers={WidgetHelper.getWidgetResultsTransformers()}\n isEmptyPredicate={items => (\n Array.isArray(items) && Array.isArray(items[0]?.content) && !items[0]?.content?.length\n )}\n getSelectedItems={null}\n getSeeMoreAppLink={null}\n appLinkOptions={null}\n />\n ))}\n </div>\n );\n}\n",":local {\n .pillTabSelector {\n ul {\n width: 100%;\n display: flex!important;\n }\n\n li {\n min-width: 0!important;\n flex-grow: 1;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string } = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}\n","export enum WidgetSort {\n RecentlyUpdated = 'lastupdated',\n ATOZ = 'name',\n Newest = 'datecreated'\n}\n","import React from 'react';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nconst WidgetSortLabel: Record<WidgetSort, string> = {\n [WidgetSort.RecentlyUpdated]: 'Recently Updated',\n [WidgetSort.ATOZ]: 'A to Z',\n [WidgetSort.Newest]: 'Newest'\n};\n\ninterface WidgetSortSelectorProps {\n disabled?: boolean;\n selected: WidgetSort;\n onSortChange: (sort: WidgetSort) => void;\n}\n\nexport function WidgetSortSelector(props: WidgetSortSelectorProps): JSX.Element {\n return (\n <select\n id='widget-sort-selector'\n disabled={props.disabled}\n className='form-select'\n value={props.selected}\n onChange={e => props.onSortChange(e.target.value as WidgetSort)}\n >\n {Object.entries(WidgetSortLabel).map(([ key, value ]) => (\n <option key={key} value={key}>{value}</option>\n ))}\n </select>\n );\n}\n","import { CUSTOM_LETTER_TEMPLATE } from 'libs/shared/components/letters-bar/LettersBar';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nfunction getSelectedLetter(letter: string) {\n if (!letter || letter.length !== 1)\n return CUSTOM_LETTER_TEMPLATE;\n\n return letter;\n}\n\nfunction getSelectedSort(sort: string) {\n if (!sort)\n return WidgetSort.RecentlyUpdated;\n\n return Object.values(WidgetSort).find(s => s.toLowerCase() === sort.toLowerCase()) ?? WidgetSort.RecentlyUpdated;\n}\n\ninterface GetContentPartnerParamsOptions {\n letter?: string;\n sort?: string;\n}\n\nexport function getContentPartnerParams(options: GetContentPartnerParamsOptions) {\n const { letter, sort } = options;\n\n return {\n selectedLetter: getSelectedLetter(letter),\n selectedSort: getSelectedSort(sort)\n };\n}\n","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ContentPartnerIndexDashboard } from 'libs/shared/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard';\nimport { CUSTOM_LETTER_TEMPLATE, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CuratedDashboard, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useAvailablePresentations } from 'shared/hooks/presentations/useAvailablePresentations';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { ContentPartnerAppLinkHelper } from 'shared/utils/ContentPartnerAppLinkHelper';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\n\nimport { WidgetSortSelector } from 'apps/content-partners/components/widget-sort-selector/WidgetSortSelector';\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\nimport { getContentPartnerParams } from 'apps/content-partners/utils/getContentPartnerParams';\nimport { getContentPartnerWidgetAppLinks } from 'apps/content-partners/utils/getContentPartnerWidgetAppLinks';\n\nconst namespace = 'contentPartners.discover';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ContentPartnersDiscoverViewProps {\n letter?: string;\n sort?: string;\n}\n\nfunction getParamLetter(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return;\n\n return letter;\n}\n\nfunction formatText(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return getPhrase('featuredChannels');\n \n return letter;\n}\n\ninterface GetDashboardOptions {\n dashboard: CuratedDashboard;\n selectedLetter: string;\n}\n\n/**\n * If the selected letter is not 'Featured' we filter the\n * dashboard to only include the content partners widgets\n */\nfunction getDashboard(options: GetDashboardOptions) {\n const { dashboard, selectedLetter } = options;\n \n if (!dashboard)\n return;\n \n if (selectedLetter === CUSTOM_LETTER_TEMPLATE)\n return dashboard;\n\n return { ...dashboard, widgets: dashboard.widgets.filter(w => w.widgetId === WidgetTypeId.ContentPartners) };\n}\n\nexport function ContentPartnersDiscoverView(props: ContentPartnersDiscoverViewProps): JSX.Element {\n const {\n selectedLetter,\n selectedSort\n } = getContentPartnerParams({\n letter: props.letter,\n sort: props.sort\n });\n \n useSetPageMetadata({\n title: getPhrase('pageTitle'),\n description: getPhrase('pageDescription')\n });\n\n const breakpoints = useBreakpoints();\n const isMdAndDown = breakpoints.md || breakpoints.sm || breakpoints.xs;\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, presentationSlug: null });\n const { commonVideoProps } = useCommonVideoProps({\n locationContext: LocationContext.VideoThumbnail\n });\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const settings = useSettings(null);\n\n const { availablePresentations } = useAvailablePresentations();\n\n const { dashboard } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.DiscoverPartnerProfiles,\n queryParams: {}\n });\n\n function getWidgetContentRequest(\n id: string,\n params: CuratedWidgetQueryParams,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n return DashboardRequests.dashboardWidgetContent(id, params, template, undefined, { cursor: cursor ?? undefined });\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n const ChannelLettersBar = React.useCallback(({\n forceSmallScreenDropdown\n }: {\n forceSmallScreenDropdown?: boolean\n }): JSX.Element => (\n <LettersBar\n showCustom\n noMarginBottom\n selected={selectedLetter}\n getItemAppLink={(letter: string) =>\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({ letter: getParamLetter(letter) })\n }\n formatDisplayText={formatText}\n forceSmallScreenDropdown={forceSmallScreenDropdown}\n />\n ), [selectedLetter]);\n \n const filteredDashboard = getDashboard({ dashboard: dashboard.data, selectedLetter });\n \n /**\n * We only want to sort / add letter prefix to api request\n * if the selected letter is not 'Featured'\n */\n const queryParams: CuratedWidgetQueryParams = {\n letterPrefix: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedLetter,\n sort: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedSort\n };\n\n function handleSortChange(sort: WidgetSort) {\n const sortParam = sort === WidgetSort.RecentlyUpdated ? undefined : sort;\n AppLinkHelper.trigger(\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({\n letter: queryParams.letterPrefix,\n sort: sortParam\n })\n );\n }\n\n const loaded = dashboard.hasCompleted;\n\n if (!loaded)\n return <></>;\n\n return (\n <div className='bg-white px-3'>\n <div className='d-flex d-md-block flex-column mb-4 gap-4'>\n <div className='d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='headerTitle' />\n </h1>\n <div className='d-flex flex-column flex-md-row gap-3'>\n {isMdAndDown && <ChannelLettersBar forceSmallScreenDropdown />}\n <WidgetSortSelector\n selected={selectedSort}\n onSortChange={handleSortChange}\n disabled={selectedLetter === CUSTOM_LETTER_TEMPLATE}\n />\n </div>\n </div>\n {!isMdAndDown && <ChannelLettersBar />}\n </div>\n\n <div className='mb-4'>\n <VideoActionsContext.Provider value={videoActions}>\n <ContentPartnerIndexDashboard\n // Need to re-render the dashboard when the letter changes\n key={selectedLetter}\n \n currentUser={currentUser.data}\n availablePresentations={availablePresentations}\n dashboard={filteredDashboard}\n getWidgetContentRequest={getWidgetContentRequest}\n commonVideoProps={commonVideoProps}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n settings={settings}\n widgetAppLinks={getContentPartnerWidgetAppLinks(currentUser.data)}\n queryParams={queryParams}\n emptyStateImage={ImageUrls.EmptyStates.WATCH_HISTORY}\n />\n </VideoActionsContext.Provider>\n </div>\n \n </div>\n );\n}\n"],"mappings":"+vCAKM,EAAY,wDAOlB,SAAgB,EACd,EACa,CACb,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,CACG,EAAM,QACL,EAAA,EAAA,IAAA,CAAC,EAAW,MAAZ,CAAkB,IAAK,EAAM,KAAQ,CAAA,GAEvC,EAAA,EAAA,IAAA,CAAC,EAAW,QAAZ,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,UAAA,EAAW,OAAO,UAAU,QAAS,CAAE,aAAc,EAAM,YAAa,CAAI,CAAA,CAC3E,CAAA,GACpB,EAAA,EAAA,IAAA,CAAC,EAAW,KAAZ,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,UAAA,EAAW,OAAO,MAAQ,CAAA,CAC5B,CAAA,CACP,CAAA,CAAA,CAEhB,CCYA,SAAgB,EAA6B,EAAuD,CAClG,IAAM,EAAU,EAAY,OAAO,EAAM,WAAW,QAAS,OAAO,EAE9D,CAAE,gBAAe,kBAAmB,EAAgB,CAAO,EAEjE,SAAS,EACP,EACA,EACA,EACA,EACgB,CAChB,GAAI,CAAC,EAAQ,OAAQ,OAErB,IAAM,EAAS,EAAuB,gBACpC,EACA,EACA,EAAuB,uBAAuB,EAAM,SAAS,EAC7D,IAAA,GACA,IAAA,GACA,CAAE,OAAQ,EAAM,WAAY,CAC9B,EAEA,OAAO,EAAM,wBAAwB,EAAI,EAAQ,EAAU,CAAM,CACnE,CAEA,IAAM,EAA8B,EAAQ,MAC1C,GAAU,EAAc,EAAO,EAAE,CACnC,EAUA,MARI,CAAC,EAAQ,QAAU,GAEnB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,EAAM,gBACb,aAAc,EAAM,aAAa,YAClC,CAAA,GAIH,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,gBACZ,EAAQ,KAAK,EAAQ,KACpB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,gBAAiB,EAAoB,wBAErC,MAAO,EACP,KAAM,EAEN,cAAe,EAAM,UAAU,QAAQ,OAAS,IAAM,EACtD,QAAS,GAAU,EAAO,KAC1B,kBAAmB,GAAK,EAAE,SAC1B,SAAU,EAAM,eAChB,eAAgB,EAAM,eACtB,iBAAkB,EAAM,iBACxB,UAAW,EAAM,UACjB,WAAY,GAAW,EAAe,EAAO,GAAI,CAAO,EACxD,UAAW,GAAK,EAAE,OAClB,WAAY,GAAU,EAAwB,EAAO,GAAI,EAAO,SAAU,EAAO,WAAY,CAAM,EACnG,oBAAqB,EAAM,oBAC3B,YAAa,EAAM,YACnB,uBAAwB,EAAM,uBAC9B,aAAc,EAAM,SACpB,WAAY,GAAK,EAAE,QACnB,oBAAqB,EAAa,6BAA6B,EAC/D,iBAAkB,GAChB,MAAM,QAAQ,CAAK,GAAK,MAAM,QAAQ,EAAM,EAAE,EAAE,OAAO,GAAK,CAAC,EAAM,EAAE,EAAE,SAAS,OAElF,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,IACjB,EA1BM,EAAO,EA0Bb,CACF,CACE,CAAA,CAET,oDErGa,EAAyB,SAEzB,EAAW,CACtB,EACA,IACA,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC5D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC9D,EAIM,EAAwD,CAC5D,IAAK,GACP,EAEM,EAAoB,CACxB,WAAY,EAAW,MACvB,OAAQ,EAAW,IACnB,SAAU,EAAgB,SAC5B,EAEA,SAAS,EAAoB,EAAkB,EAAmD,CAChG,GAAI,CAAC,EACH,OAEF,GAAI,IAAa,IACf,MAAO,IAET,IAAM,EAAW,EAAS,KAAK,GAAU,EAAO,YAAY,IAAM,EAAS,YAAY,CAAC,EAEpF,SAAA,UAAuC,CAAC,GAG5C,OAAO,CACT,CAQA,SAAS,EAAa,EAAyC,CAC7D,OAAO,EAAS,IAAI,GAAU,CAC5B,GAAI,IAAA,UAAqC,CAAC,EAAQ,WAChD,OAEF,IAAM,EAAU,EAAQ,eAAe,EAAe,IAAW,CAAM,EAEvE,MAAO,CACL,KAAM,EACN,UACA,OAAQ,EAAQ,WAAa,EAC7B,cAAe,CACb,KAAM,EACN,IAAA,EAAwB,QAAQ,CAAO,CACzC,EACA,iBAAkB,CACpB,CACF,CAAC,CAAC,CAAC,OAAO,OAAO,CACnB,CAaA,SAAgB,EAAW,EAAqC,CAG9D,IAAM,EAAO,EAAa,CACxB,SAHoB,EAAoB,EAAM,SAAU,EAAM,UAGpD,EACV,WAAY,EAAM,WAClB,eAAgB,EAAM,cACxB,CAAC,EAED,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAW,EAAM,eAAiB,OAAS,OAAQ,EAAM,SAAS,YAChF,EAAA,EAAA,IAAA,CAAC,EAAD,CACQ,OACN,UAAW,EAAO,gBAClB,yBAA0B,EAAM,yBAChC,kBAAmB,EAAM,kBACzB,yBAA0B,EAAM,wBACjC,CAAA,CACE,CAAA,CAET,CCxGA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,gBAAA,cACA,EAAA,KAAA,OACA,EAAA,OAAA,eACF,EAAA,CAAA,CAAA,ECAM,EAA8C,EACjD,EAAW,iBAAkB,oBAC7B,EAAW,MAAO,UAClB,EAAW,QAAS,QACvB,EAQA,SAAgB,EAAmB,EAA6C,CAC9E,OACE,EAAA,EAAA,IAAA,CAAC,SAAD,CACE,GAAG,uBACH,SAAU,EAAM,SAChB,UAAU,cACV,MAAO,EAAM,SACb,SAAU,GAAK,EAAM,aAAa,EAAE,OAAO,KAAmB,WAE7D,OAAO,QAAQ,CAAe,CAAC,CAAC,KAAK,CAAE,EAAK,MAC3C,EAAA,EAAA,IAAA,CAAC,SAAD,CAAkB,MAAO,WAAM,CAAc,EAAhC,CAAgC,CAC9C,CACK,CAAA,CAEZ,CC1BA,SAAS,EAAkB,EAAgB,CAIzC,MAHI,CAAC,GAAU,EAAO,SAAW,EACxB,EAEF,CACT,CAEA,SAAS,GAAgB,EAAc,CAIrC,OAHK,EAGE,OAAO,OAAO,CAAU,CAAC,CAAC,KAAK,GAAK,EAAE,YAAY,IAAM,EAAK,YAAY,CAAC,GAAK,EAAW,gBAFxF,EAAW,eAGtB,CAOA,SAAgB,GAAwB,EAAyC,CAC/E,GAAM,CAAE,SAAQ,QAAS,EAEzB,MAAO,CACL,eAAgB,EAAkB,CAAM,EACxC,aAAc,GAAgB,CAAI,CACpC,CACF,CCMA,IAAM,EAAY,2BACZ,EAAY,EAAgB,iBAAiB,CAAS,EAO5D,SAAS,GAAe,EAAgB,CAClC,OAAA,SAGJ,OAAO,CACT,CAEA,SAAS,GAAW,EAAgB,CAIlC,OAHI,IAAA,SACK,EAAU,kBAAkB,EAE9B,CACT,CAWA,SAAS,GAAa,EAA8B,CAClD,GAAM,CAAE,YAAW,kBAAmB,EAEjC,KAML,OAHI,IAAA,SACK,EAEF,CAAE,GAAG,EAAW,QAAS,EAAU,QAAQ,OAAO,GAAK,EAAE,WAAa,EAAa,eAAe,CAAE,CAC7G,CAEA,SAAgB,GAA4B,EAAsD,CAChG,GAAM,CACJ,iBACA,gBACE,GAAwB,CAC1B,OAAQ,EAAM,OACd,KAAM,EAAM,IACd,CAAC,EAED,EAAmB,CACjB,MAAO,EAAU,WAAW,EAC5B,YAAa,EAAU,iBAAiB,CAC1C,CAAC,EAED,IAAM,EAAc,EAAe,EAC7B,EAAc,EAAY,IAAM,EAAY,IAAM,EAAY,GAE9D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAe,EAAgB,CAAE,SAAU,EAAqB,UAAW,iBAAkB,IAAK,CAAC,EACnG,CAAE,oBAAqB,EAAoB,CAC/C,gBAAiB,EAAgB,cACnC,CAAC,EAEK,CAAE,iBAAgB,uBAAwB,EAAe,EACzD,EAAW,GAAY,IAAI,EAE3B,CAAE,0BAA2B,EAA0B,EAEvD,CAAE,aAAc,EAAyB,CAC7C,WAAY,EAAoB,wBAChC,YAAa,CAAC,CAChB,CAAC,EAED,SAAS,EACP,EACA,EACA,EACA,EACgB,CAChB,OAAO,EAAkB,uBAAuB,EAAI,EAAQ,EAAU,IAAA,GAAW,CAAE,OAAQ,GAAU,IAAA,EAAU,CAAC,CAClH,CAEA,EAAM,cAAgB,CAChB,CAAC,EAAU,cAAgB,EAAU,MAGzC,EAAiB,MAAM,IAAI,CAAe,CAC5C,EAAG,CAAE,EAAU,KAAM,EAAU,YAAa,CAAC,EAE7C,IAAM,EAAA,EAA0B,aAAa,CAC3C,+BAIA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,WAAA,GACA,eAAA,GACA,SAAU,EACV,eAAiB,GACf,EAA4B,sBAAsB,CAAE,OAAQ,GAAe,CAAM,CAAE,CAAC,EAEtF,kBAAmB,GACO,0BAC3B,CAAA,EACA,CAAC,CAAc,CAAC,EAEb,EAAoB,GAAa,CAAE,UAAW,EAAU,KAAM,gBAAe,CAAC,EAM9E,EAAwC,CAC5C,aAAc,IAAA,SAA4C,IAAA,GAAY,EACtE,KAAM,IAAA,SAA4C,IAAA,GAAY,CAChE,EAEA,SAAS,EAAiB,EAAkB,CAC1C,IAAM,EAAY,IAAS,EAAW,gBAAkB,IAAA,GAAY,EACpE,EAAc,QACZ,EAA4B,sBAAsB,CAChD,OAAQ,EAAY,aACpB,KAAM,CACR,CAAC,CACH,CACF,CAOA,OALe,EAAU,cAMvB,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,yBAAf,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,oDAAf,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,sGAAf,EACE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,oBACZ,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,YAAW,OAAO,aAAe,CAAA,CAChD,CAAA,GACJ,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,gDAAf,CACG,IAAe,EAAA,EAAA,IAAA,CAAC,EAAD,CAAmB,yBAAA,EAA0B,CAAA,GAC7D,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SAAU,EACV,aAAc,EACd,SAAU,IAAmB,CAC9B,CAAA,CACE,GACF,IACJ,CAAC,IAAe,EAAA,EAAA,IAAA,CAAC,EAAD,CAAoB,CAAA,CAClC,KAEL,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,IAAA,CAAC,GAAoB,SAArB,CAA8B,MAAO,YACnC,EAAA,EAAA,IAAA,CAAC,EAAD,CAIE,YAAa,EAAY,KACD,yBACxB,UAAW,EACc,0BACP,mBACF,iBACK,sBACX,WACV,eAAgB,EAAgC,EAAY,IAAI,EACnD,cACb,gBAAiB,EAAU,YAAY,aACxC,EAbM,CAaN,CAC2B,CAAA,CAC3B,CAAA,CAEF,KA1CE,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CA4Cf"}
1
+ {"version":3,"file":"lJ6ZVpyv2.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState.tsx","../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard.tsx","../../../../libs/shared/src/components/letters-bar/letters-bar.module.scss","../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/content-partners/enums/WidgetSort.ts","../../src/apps/content-partners/components/widget-sort-selector/WidgetSortSelector.tsx","../../src/apps/content-partners/utils/getContentPartnerParams.ts","../../src/apps/content-partners/views/content-partners-discover/ContentPartnersDiscoverView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'contentPartner.contentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardEmptyStateProps {\n image?: string;\n letterFilter?: string;\n}\n\nexport function ContentPartnerIndexDashboardEmptyState(\n props: ContentPartnerIndexDashboardEmptyStateProps\n): JSX.Element {\n return (\n <EmptyState>\n {props.image &&\n <EmptyState.Image src={props.image} />\n }\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' options={{ letterFilter: props.letterFilter }} />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { InfiniteWidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/InfiniteWidgetContainerView';\nimport { AllPartnerProfileWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { useEmptyWidgets } from 'libs/shared/hooks/useEmptyWidgets';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CuratedDashboard, CuratedWidget, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport { ContentPartnerIndexDashboardEmptyState } from './empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n cursor?: string\n ) => Flight.Request;\n commonVideoProps: CommonVideoProps;\n isReadonly?: boolean;\n widgetAppLinks?: AllPartnerProfileWidgetTemplates['appLinks'];\n scrollToWidgetId?: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n settings?: AllPartnerProfileWidgetTemplates['settings'];\n audiences?: PresentationAudience[];\n queryParams?: CuratedWidgetQueryParams;\n currentUser: CurrentUser;\n availablePresentations: Presentation[];\n emptyStateImage?: string;\n}\n\nexport function ContentPartnerIndexDashboard(props: ContentPartnerIndexDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n const { isEmptyWidget, setEmptyWidget } = useEmptyWidgets(widgets);\n\n function getWidgetContentRequest(\n id: string,\n widgetTypeId: WidgetTypeId,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n if (!widgets.length) return;\n\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard),\n undefined,\n undefined,\n { params: props.queryParams }\n );\n\n return props.getWidgetContentRequest(id, params, template, cursor);\n }\n\n const isContentPartnerWidgetEmpty = widgets.every(\n widget => isEmptyWidget(widget.id)\n );\n\n if (!widgets.length || isContentPartnerWidgetEmpty)\n return (\n <ContentPartnerIndexDashboardEmptyState\n image={props.emptyStateImage}\n letterFilter={props.queryParams?.letterPrefix}\n />\n );\n \n return (\n <div className='mt-3'>\n {widgets.map((widget, idx) => (\n <InfiniteWidgetContainerView<CuratedWidget, CuratedWidget, AllPartnerProfileWidgetTemplates>\n dashboardTarget={DashboardTargetType.DiscoverPartnerProfiles}\n key={widget.id}\n index={idx}\n item={widget}\n\n infiniteFetch={props.dashboard.widgets.length - 1 === idx}\n getName={widget => widget.name}\n getWidgetMetadata={w => w.metadata}\n appLinks={props.widgetAppLinks}\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n audiences={props.audiences}\n setIsEmpty={isEmpty => setEmptyWidget(widget.id, isEmpty)}\n getCursor={w => w.cursor}\n getRequest={cursor => getWidgetContentRequest(widget.id, widget.widgetId, widget.templateId, cursor)}\n hasLocalPermissions={props.hasLocalPermissions}\n currentUser={props.currentUser}\n availablePresentations={props.availablePresentations}\n settingsHash={props.settings}\n getContent={w => w.content}\n resultsTransformers={WidgetHelper.getWidgetResultsTransformers()}\n isEmptyPredicate={items => (\n Array.isArray(items) && Array.isArray(items[0]?.content) && !items[0]?.content?.length\n )}\n getSelectedItems={null}\n getSeeMoreAppLink={null}\n appLinkOptions={null}\n />\n ))}\n </div>\n );\n}\n",":local {\n .pillTabSelector {\n ul {\n width: 100%;\n display: flex!important;\n }\n\n li {\n min-width: 0!important;\n flex-grow: 1;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string } = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}\n","export enum WidgetSort {\n RecentlyUpdated = 'lastupdated',\n ATOZ = 'name',\n Newest = 'datecreated'\n}\n","import React from 'react';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nconst WidgetSortLabel: Record<WidgetSort, string> = {\n [WidgetSort.RecentlyUpdated]: 'Recently Updated',\n [WidgetSort.ATOZ]: 'A to Z',\n [WidgetSort.Newest]: 'Newest'\n};\n\ninterface WidgetSortSelectorProps {\n disabled?: boolean;\n selected: WidgetSort;\n onSortChange: (sort: WidgetSort) => void;\n}\n\nexport function WidgetSortSelector(props: WidgetSortSelectorProps): JSX.Element {\n return (\n <select\n id='widget-sort-selector'\n disabled={props.disabled}\n className='form-select'\n value={props.selected}\n onChange={e => props.onSortChange(e.target.value as WidgetSort)}\n >\n {Object.entries(WidgetSortLabel).map(([ key, value ]) => (\n <option key={key} value={key}>{value}</option>\n ))}\n </select>\n );\n}\n","import { CUSTOM_LETTER_TEMPLATE } from 'libs/shared/components/letters-bar/LettersBar';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nfunction getSelectedLetter(letter: string) {\n if (!letter || letter.length !== 1)\n return CUSTOM_LETTER_TEMPLATE;\n\n return letter;\n}\n\nfunction getSelectedSort(sort: string) {\n if (!sort)\n return WidgetSort.RecentlyUpdated;\n\n return Object.values(WidgetSort).find(s => s.toLowerCase() === sort.toLowerCase()) ?? WidgetSort.RecentlyUpdated;\n}\n\ninterface GetContentPartnerParamsOptions {\n letter?: string;\n sort?: string;\n}\n\nexport function getContentPartnerParams(options: GetContentPartnerParamsOptions) {\n const { letter, sort } = options;\n\n return {\n selectedLetter: getSelectedLetter(letter),\n selectedSort: getSelectedSort(sort)\n };\n}\n","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ContentPartnerIndexDashboard } from 'libs/shared/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard';\nimport { CUSTOM_LETTER_TEMPLATE, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CuratedDashboard, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useAvailablePresentations } from 'shared/hooks/presentations/useAvailablePresentations';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { ContentPartnerAppLinkHelper } from 'shared/utils/ContentPartnerAppLinkHelper';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\n\nimport { WidgetSortSelector } from 'apps/content-partners/components/widget-sort-selector/WidgetSortSelector';\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\nimport { getContentPartnerParams } from 'apps/content-partners/utils/getContentPartnerParams';\nimport { getContentPartnerWidgetAppLinks } from 'apps/content-partners/utils/getContentPartnerWidgetAppLinks';\n\nconst namespace = 'contentPartners.discover';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ContentPartnersDiscoverViewProps {\n letter?: string;\n sort?: string;\n}\n\nfunction getParamLetter(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return;\n\n return letter;\n}\n\nfunction formatText(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return getPhrase('featuredChannels');\n \n return letter;\n}\n\ninterface GetDashboardOptions {\n dashboard: CuratedDashboard;\n selectedLetter: string;\n}\n\n/**\n * If the selected letter is not 'Featured' we filter the\n * dashboard to only include the content partners widgets\n */\nfunction getDashboard(options: GetDashboardOptions) {\n const { dashboard, selectedLetter } = options;\n \n if (!dashboard)\n return;\n \n if (selectedLetter === CUSTOM_LETTER_TEMPLATE)\n return dashboard;\n\n return { ...dashboard, widgets: dashboard.widgets.filter(w => w.widgetId === WidgetTypeId.ContentPartners) };\n}\n\nexport function ContentPartnersDiscoverView(props: ContentPartnersDiscoverViewProps): JSX.Element {\n const {\n selectedLetter,\n selectedSort\n } = getContentPartnerParams({\n letter: props.letter,\n sort: props.sort\n });\n \n useSetPageMetadata({\n title: getPhrase('pageTitle'),\n description: getPhrase('pageDescription')\n });\n\n const breakpoints = useBreakpoints();\n const isMdAndDown = breakpoints.md || breakpoints.sm || breakpoints.xs;\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, presentationSlug: null });\n const { commonVideoProps } = useCommonVideoProps({\n locationContext: LocationContext.VideoThumbnail\n });\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const settings = useSettings(null);\n\n const { availablePresentations } = useAvailablePresentations();\n\n const { dashboard } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.DiscoverPartnerProfiles,\n queryParams: {}\n });\n\n function getWidgetContentRequest(\n id: string,\n params: CuratedWidgetQueryParams,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n return DashboardRequests.dashboardWidgetContent(id, params, template, undefined, { cursor: cursor ?? undefined });\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n const ChannelLettersBar = React.useCallback(({\n forceSmallScreenDropdown\n }: {\n forceSmallScreenDropdown?: boolean\n }): JSX.Element => (\n <LettersBar\n showCustom\n noMarginBottom\n selected={selectedLetter}\n getItemAppLink={(letter: string) =>\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({ letter: getParamLetter(letter) })\n }\n formatDisplayText={formatText}\n forceSmallScreenDropdown={forceSmallScreenDropdown}\n />\n ), [selectedLetter]);\n \n const filteredDashboard = getDashboard({ dashboard: dashboard.data, selectedLetter });\n \n /**\n * We only want to sort / add letter prefix to api request\n * if the selected letter is not 'Featured'\n */\n const queryParams: CuratedWidgetQueryParams = {\n letterPrefix: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedLetter,\n sort: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedSort\n };\n\n function handleSortChange(sort: WidgetSort) {\n const sortParam = sort === WidgetSort.RecentlyUpdated ? undefined : sort;\n AppLinkHelper.trigger(\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({\n letter: queryParams.letterPrefix,\n sort: sortParam\n })\n );\n }\n\n const loaded = dashboard.hasCompleted;\n\n if (!loaded)\n return <></>;\n\n return (\n <div className='bg-white px-3'>\n <div className='d-flex d-md-block flex-column mb-4 gap-4'>\n <div className='d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='headerTitle' />\n </h1>\n <div className='d-flex flex-column flex-md-row gap-3'>\n {isMdAndDown && <ChannelLettersBar forceSmallScreenDropdown />}\n <WidgetSortSelector\n selected={selectedSort}\n onSortChange={handleSortChange}\n disabled={selectedLetter === CUSTOM_LETTER_TEMPLATE}\n />\n </div>\n </div>\n {!isMdAndDown && <ChannelLettersBar />}\n </div>\n\n <div className='mb-4'>\n <VideoActionsContext.Provider value={videoActions}>\n <ContentPartnerIndexDashboard\n // Need to re-render the dashboard when the letter changes\n key={selectedLetter}\n \n currentUser={currentUser.data}\n availablePresentations={availablePresentations}\n dashboard={filteredDashboard}\n getWidgetContentRequest={getWidgetContentRequest}\n commonVideoProps={commonVideoProps}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n settings={settings}\n widgetAppLinks={getContentPartnerWidgetAppLinks(currentUser.data)}\n queryParams={queryParams}\n emptyStateImage={ImageUrls.EmptyStates.WATCH_HISTORY}\n />\n </VideoActionsContext.Provider>\n </div>\n \n </div>\n );\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/lite",
3
- "version": "0.103.1",
3
+ "version": "0.103.2",
4
4
  "description": "ClickView Lite",
5
5
  "main": "dist/scripts/bundle.js",
6
6
  "types": "dist/projects/lite/src/index.d.ts",
@@ -1,2 +0,0 @@
1
- import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./CgCqPbjJ.chunk.js";import{t as r}from"./C5rBgkQH.chunk.js";import{t as i}from"./klg9VDIV2.chunk.js";var a=e(t());function o(e){let[t,o]=r(n.SIGN_UP_ENTRY_DATA),s=i.getCurrentRoute()?.appLink;function c(){if(t)return t}function l(e){let{app:n,id:r,metadata:i}=e;n===t?.app&&r===t?.id||o({app:n,id:r,metadata:i})}return a.useEffect(()=>{e&&l(e)},[e]),a.useEffect(()=>{o(null)},[`${s?.application}:${s?.action}`]),{entryPage:c()}}export{o as t};
2
- //# sourceMappingURL=C8l37H7t2.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CNm_4jj62.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/streamable-learning/constants/Timezones.ts","../../../../libs/shared/src/apps/streamable-learning/utils/TimezoneHelper.ts"],"sourcesContent":["interface TimezoneInfo {\n name: string;\n timezone: string;\n code: string;\n}\n\nexport enum Timezone {\n // This is the timezone ID for .NET which represents the generic 'Eastern Time'\n ET = 'Eastern Standard Time'\n}\n\nexport type Timezones = {\n [key in Timezone]: TimezoneInfo;\n};\n\nexport const TIMEZONES_US: Timezones = {\n [Timezone.ET]: {\n name: 'Eastern Time',\n timezone: 'America/New_York',\n code: 'ET'\n }\n};\n","import dayjs from 'dayjs';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Timezone, TIMEZONES_US } from 'libs/shared/apps/streamable-learning/constants/Timezones';\n\n// `Intl.DateTimeFormatOptions['timeZoneName']` is an inline union type, so it has to be pulled out by indexed access\ntype TimeZoneName = NonNullable<Intl.DateTimeFormatOptions['timeZoneName']>;\n\nconst TIMEZONE_OPTIONS = [ 'long', 'longGeneric', 'shortGeneric', 'short', 'shortOffset', 'longOffset' ] as const satisfies readonly TimeZoneName[];\n\n/**\n * Example of the format:\n * long: 'Australian Eastern Standard Time'\n * longGeneric: 'Australian Eastern Time'\n * short: 'GMT+10'\n * shortGeneric: 'Sydney Time',\n * shortOffset: 'GMT+10'\n * longOffset: 'GMT+10:00'\n */\ntype TimeZoneData = Partial<Record<(typeof TIMEZONE_OPTIONS)[number], string>>;\n\nfunction isSupportedLocale(locale: string): boolean {\n try {\n return Intl.DateTimeFormat.supportedLocalesOf(locale).length > 0;\n } catch {\n return false;\n }\n}\n\nfunction isSupportedTimezone(timezone: string): boolean {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone });\n return true;\n } catch {\n return false;\n }\n}\n\nexport const TimezoneHelper = {\n convertToUTCString(datetime: string, timezone: Timezone = Timezone.ET) {\n if (!datetime) return '';\n\n return DateHelper.getUtcStringByTimezone(datetime, TIMEZONES_US[timezone].timezone);\n },\n convertUTCToTimezoneDate(datetime: string, timezone?: Timezone) {\n if (!datetime) return new Date();\n \n const utcDate = new Date(datetime);\n \n const timezoneDateTime = new Intl.DateTimeFormat('en-US', {\n timeZone: timezone ? TIMEZONES_US[timezone].timezone : TimezoneHelper.guessTimezone(),\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit'\n }).format(utcDate);\n\n return new Date(timezoneDateTime);\n },\n\n /** Attempts to infer the user's local IANA timezone from their browser (e.g. \"Australia/Perth\"). */\n guessTimezone(): string {\n return dayjs.tz.guess();\n },\n\n /** \n * @param {string} timezone Accepts a value in the format of <Country/City>, e.g. 'America/New_York'\n * @returns {TimeZoneData} Contains the long and short versions of the timezone, which is also split into generic and specific versions. Generic versions do not capture the daylight saving/standard split\n */\n getTimezoneInfo(timezone?: string): TimeZoneData {\n if (!timezone || !isSupportedTimezone(timezone))\n timezone = TimezoneHelper.guessTimezone();\n \n const locale = isSupportedLocale(dayjs.locale()) ? dayjs.locale() : undefined;\n\n return TIMEZONE_OPTIONS.reduce<TimeZoneData>(\n (prev, curr) => {\n return {\n ...prev,\n [curr]: (new Intl.DateTimeFormat(locale, { // this handles daylight saving/standard conversion automatically\n timeZone: timezone,\n timeZoneName: curr\n }).formatToParts(new Date())).find(val => val.type === 'timeZoneName')?.value\n };\n },\n {}\n );\n },\n\n getTimezones(): string[] {\n return (Intl as any).supportedValuesOf?.('timeZone') as string[] ?? [];\n }\n\n};\n"],"mappings":"oGAMY,EAAL,SAAA,EAAA,OAEL,GAAA,GAAA,yBACF,EAAA,CAAA,CAAA,EAMa,EAA0B,CAAA,wBACtB,CACb,KAAM,eACN,SAAU,mBACV,KAAM,IACR,CACF,ECZM,EAAmB,CAAE,OAAQ,cAAe,eAAgB,QAAS,cAAe,YAAa,EAavG,SAAS,EAAkB,EAAyB,CAClD,GAAI,CACF,OAAO,KAAK,eAAe,mBAAmB,CAAM,CAAC,CAAC,OAAS,CACjE,MAAQ,CACN,MAAO,EACT,CACF,CAEA,SAAS,EAAoB,EAA2B,CACtD,GAAI,CAEF,OADA,KAAK,eAAe,IAAA,GAAW,CAAE,SAAU,CAAS,CAAC,EAC9C,EACT,MAAQ,CACN,MAAO,EACT,CACF,CAEA,IAAa,EAAiB,CAC5B,mBAAmB,EAAkB,EAAqB,EAAS,GAAI,CAGrE,OAFK,EAEE,EAAW,uBAAuB,EAAU,EAAa,EAAS,CAAC,QAAQ,EAF5D,EAGxB,EACA,yBAAyB,EAAkB,EAAqB,CAC9D,GAAI,CAAC,EAAU,OAAO,IAAI,KAE1B,IAAM,EAAU,IAAI,KAAK,CAAQ,EAE3B,EAAmB,IAAI,KAAK,eAAe,QAAS,CACxD,SAAU,EAAW,EAAa,EAAS,CAAC,SAAW,EAAe,cAAc,EACpF,KAAM,UACN,MAAO,UACP,IAAK,UACL,KAAM,UACN,OAAQ,SACV,CAAC,CAAC,CAAC,OAAO,CAAO,EAEjB,OAAO,IAAI,KAAK,CAAgB,CAClC,EAGA,eAAwB,CACtB,OAAO,EAAA,QAAM,GAAG,MAAM,CACxB,EAMA,gBAAgB,EAAiC,EAC3C,CAAC,GAAY,CAAC,EAAoB,CAAQ,KAC5C,EAAW,EAAe,cAAc,GAE1C,IAAM,EAAS,EAAkB,EAAA,QAAM,OAAO,CAAC,EAAI,EAAA,QAAM,OAAO,EAAI,IAAA,GAEpE,OAAO,EAAiB,QACrB,EAAM,KACE,CACL,GAAG,GACF,GAAQ,IAAI,KAAK,eAAe,EAAQ,CACvC,SAAU,EACV,aAAc,CAChB,CAAC,CAAC,CAAC,cAAc,IAAI,IAAM,CAAC,CAAE,KAAK,GAAO,EAAI,OAAS,cAAc,CAAC,EAAE,KAC1E,GAEF,CAAC,CACH,CACF,EAEA,cAAyB,CACvB,OAAQ,KAAa,oBAAoB,UAAU,GAAiB,CAAC,CACvE,CAEF"}