@clickview/exchange 0.63.0 → 0.64.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +662 -633
- package/dist/bundles.json +1 -1
- package/dist/css/DuPOYFVx.chunk.css +1 -0
- package/dist/en.json +1 -1
- package/dist/scripts/0WVIsJXw.chunk.js +2 -0
- package/dist/scripts/0WVIsJXw.chunk.js.map +1 -0
- package/dist/scripts/{CoK2sqzN2.chunk.js → B0BkP9zj2.chunk.js} +2 -2
- package/dist/scripts/{CoK2sqzN2.chunk.js.map → B0BkP9zj2.chunk.js.map} +1 -1
- package/dist/scripts/{dkfSCDWH2.chunk.js → B0CItJhp2.chunk.js} +2 -2
- package/dist/scripts/{dkfSCDWH2.chunk.js.map → B0CItJhp2.chunk.js.map} +1 -1
- package/dist/scripts/B0NqlFZf.chunk.js +2 -0
- package/dist/scripts/B0NqlFZf.chunk.js.map +1 -0
- package/dist/scripts/B1i9atik.chunk.js.map +1 -1
- package/dist/scripts/{CYFRcx63.chunk.js → B3S7B746.chunk.js} +2 -2
- package/dist/scripts/{CYFRcx63.chunk.js.map → B3S7B746.chunk.js.map} +1 -1
- package/dist/scripts/{BnbM9YhY.chunk.js → B5B9BCxo.chunk.js} +2 -2
- package/dist/scripts/{BnbM9YhY.chunk.js.map → B5B9BCxo.chunk.js.map} +1 -1
- package/dist/scripts/{C3K3VtRR2.chunk.js → BKYpYiMb2.chunk.js} +2 -2
- package/dist/scripts/{C3K3VtRR2.chunk.js.map → BKYpYiMb2.chunk.js.map} +1 -1
- package/dist/scripts/{D3Jgk2dT.chunk.js → BLXI9pzb.chunk.js} +3 -3
- package/dist/scripts/{D3Jgk2dT.chunk.js.map → BLXI9pzb.chunk.js.map} +1 -1
- package/dist/scripts/{CDXcKno52.chunk.js → BLrooXWI2.chunk.js} +2 -2
- package/dist/scripts/{CDXcKno52.chunk.js.map → BLrooXWI2.chunk.js.map} +1 -1
- package/dist/scripts/{-x9MMtVv.chunk.js → BQVqfJL8.chunk.js} +2 -2
- package/dist/scripts/{-x9MMtVv.chunk.js.map → BQVqfJL8.chunk.js.map} +1 -1
- package/dist/scripts/{jErHNuXU2.chunk.js → BU2ULxCS2.chunk.js} +2 -2
- package/dist/scripts/{jErHNuXU2.chunk.js.map → BU2ULxCS2.chunk.js.map} +1 -1
- package/dist/scripts/{B6EmIhMh.chunk.js → BU_B6gyd.chunk.js} +2 -2
- package/dist/scripts/{B6EmIhMh.chunk.js.map → BU_B6gyd.chunk.js.map} +1 -1
- package/dist/scripts/{DHV6S1fA2.chunk.js → BbaX1lfI2.chunk.js} +2 -2
- package/dist/scripts/{DHV6S1fA2.chunk.js.map → BbaX1lfI2.chunk.js.map} +1 -1
- package/dist/scripts/{D6EZoO4S2.chunk.js → Bbaycd7V.chunk.js} +2 -2
- package/dist/scripts/Bbaycd7V.chunk.js.map +1 -0
- package/dist/scripts/{CeeAb-HT2.chunk.js → BgLWPZ7H2.chunk.js} +2 -2
- package/dist/scripts/{CeeAb-HT2.chunk.js.map → BgLWPZ7H2.chunk.js.map} +1 -1
- package/dist/scripts/{CjNkj1Q92.chunk.js → Bj6lJgAv2.chunk.js} +1 -1
- package/dist/scripts/{CjNkj1Q92.chunk.js.map → Bj6lJgAv2.chunk.js.map} +1 -1
- package/dist/scripts/{Da2KHzN02.chunk.js → BoWMmXN02.chunk.js} +2 -2
- package/dist/scripts/{Da2KHzN02.chunk.js.map → BoWMmXN02.chunk.js.map} +1 -1
- package/dist/scripts/{mkasrghR2.chunk.js → BpzuiXcd2.chunk.js} +2 -2
- package/dist/scripts/{mkasrghR2.chunk.js.map → BpzuiXcd2.chunk.js.map} +1 -1
- package/dist/scripts/{BEyI0jsC2.chunk.js → Bswd1QrZ2.chunk.js} +2 -2
- package/dist/scripts/{BEyI0jsC2.chunk.js.map → Bswd1QrZ2.chunk.js.map} +1 -1
- package/dist/scripts/{BaXT2aKo2.chunk.js → ByC5ZDQ-2.chunk.js} +2 -2
- package/dist/scripts/{BaXT2aKo2.chunk.js.map → ByC5ZDQ-2.chunk.js.map} +1 -1
- package/dist/scripts/{D-ivDlyL.chunk.js → C-jHArp-.chunk.js} +2 -2
- package/dist/scripts/{D-ivDlyL.chunk.js.map → C-jHArp-.chunk.js.map} +1 -1
- package/dist/scripts/{BrEvIvRP.chunk.js → C3cl5FmM.chunk.js} +2 -2
- package/dist/scripts/{BrEvIvRP.chunk.js.map → C3cl5FmM.chunk.js.map} +1 -1
- package/dist/scripts/{c2oA1XgG.chunk.js → C4hd6q9D.chunk.js} +2 -2
- package/dist/scripts/{c2oA1XgG.chunk.js.map → C4hd6q9D.chunk.js.map} +1 -1
- package/dist/scripts/{DsolW3Wd2.chunk.js → C8dtRvC52.chunk.js} +2 -2
- package/dist/scripts/{DsolW3Wd2.chunk.js.map → C8dtRvC52.chunk.js.map} +1 -1
- package/dist/scripts/{BmEexpMP2.chunk.js → C8lms6Rf2.chunk.js} +1 -1
- package/dist/scripts/{BmEexpMP2.chunk.js.map → C8lms6Rf2.chunk.js.map} +1 -1
- package/dist/scripts/{s776Po8a2.chunk.js → C9AjegY32.chunk.js} +2 -2
- package/dist/scripts/{s776Po8a2.chunk.js.map → C9AjegY32.chunk.js.map} +1 -1
- package/dist/scripts/{DgSFdSfV.chunk.js → CBwR65WF.chunk.js} +2 -2
- package/dist/scripts/{DgSFdSfV.chunk.js.map → CBwR65WF.chunk.js.map} +1 -1
- package/dist/scripts/{D36Shrdb2.chunk.js → CEOaf0tK2.chunk.js} +2 -2
- package/dist/scripts/{D36Shrdb2.chunk.js.map → CEOaf0tK2.chunk.js.map} +1 -1
- package/dist/scripts/CFdu6aud.chunk.js +2 -0
- package/dist/scripts/CFdu6aud.chunk.js.map +1 -0
- package/dist/scripts/{CYfnBEtT2.chunk.js → CHojcsxD2.chunk.js} +1 -1
- package/dist/scripts/{CYfnBEtT2.chunk.js.map → CHojcsxD2.chunk.js.map} +1 -1
- package/dist/scripts/{BibFbDqs.chunk.js → CIxLO-TM.chunk.js} +2 -2
- package/dist/scripts/{BibFbDqs.chunk.js.map → CIxLO-TM.chunk.js.map} +1 -1
- package/dist/scripts/{CAQAUQMB.chunk.js → CLTKXoqB.chunk.js} +2 -2
- package/dist/scripts/{CAQAUQMB.chunk.js.map → CLTKXoqB.chunk.js.map} +1 -1
- package/dist/scripts/{DGy73Ett2.chunk.js → CNuGo1LQ2.chunk.js} +2 -2
- package/dist/scripts/{DGy73Ett2.chunk.js.map → CNuGo1LQ2.chunk.js.map} +1 -1
- package/dist/scripts/{DsA2RTbF.chunk.js → CQKpvTZY.chunk.js} +2 -2
- package/dist/scripts/{DsA2RTbF.chunk.js.map → CQKpvTZY.chunk.js.map} +1 -1
- package/dist/scripts/{CL9-CkqC2.chunk.js → CRAcJqQV2.chunk.js} +2 -2
- package/dist/scripts/{CL9-CkqC2.chunk.js.map → CRAcJqQV2.chunk.js.map} +1 -1
- package/dist/scripts/{C1guWVFU2.chunk.js → CSB18s8X2.chunk.js} +2 -2
- package/dist/scripts/{C1guWVFU2.chunk.js.map → CSB18s8X2.chunk.js.map} +1 -1
- package/dist/scripts/CWZvMFYz.chunk.js +2 -0
- package/dist/scripts/CWZvMFYz.chunk.js.map +1 -0
- package/dist/scripts/{4oWF2EyV2.chunk.js → CZrMa6z92.chunk.js} +2 -2
- package/dist/scripts/{4oWF2EyV2.chunk.js.map → CZrMa6z92.chunk.js.map} +1 -1
- package/dist/scripts/{CAJOpkKZ.chunk.js → CfCxi56P.chunk.js} +2 -2
- package/dist/scripts/{CAJOpkKZ.chunk.js.map → CfCxi56P.chunk.js.map} +1 -1
- package/dist/scripts/{B0jhFNam2.chunk.js → Chib9pDe2.chunk.js} +3 -3
- package/dist/scripts/{B0jhFNam2.chunk.js.map → Chib9pDe2.chunk.js.map} +1 -1
- package/dist/scripts/{DUCTNoXj.chunk.js → CiEI8sTG.chunk.js} +2 -2
- package/dist/scripts/{DUCTNoXj.chunk.js.map → CiEI8sTG.chunk.js.map} +1 -1
- package/dist/scripts/{CAoPaL8M.chunk.js → CmIbuK_d.chunk.js} +2 -2
- package/dist/scripts/{CAoPaL8M.chunk.js.map → CmIbuK_d.chunk.js.map} +1 -1
- package/dist/scripts/{BTsePUCN2.chunk.js → CsQ6WMM92.chunk.js} +2 -2
- package/dist/scripts/{BTsePUCN2.chunk.js.map → CsQ6WMM92.chunk.js.map} +1 -1
- package/dist/scripts/{BHzUOyzG.chunk.js → Cxq38DxA.chunk.js} +2 -2
- package/dist/scripts/{BHzUOyzG.chunk.js.map → Cxq38DxA.chunk.js.map} +1 -1
- package/dist/scripts/{Cllrumah2.chunk.js → D0TX42le2.chunk.js} +2 -2
- package/dist/scripts/{Cllrumah2.chunk.js.map → D0TX42le2.chunk.js.map} +1 -1
- package/dist/scripts/{B7sWLg9v2.chunk.js → D8x02prV2.chunk.js} +2 -2
- package/dist/scripts/{B7sWLg9v2.chunk.js.map → D8x02prV2.chunk.js.map} +1 -1
- package/dist/scripts/{CCvXN2-C.chunk.js → DAQxdC_x.chunk.js} +2 -2
- package/dist/scripts/{CCvXN2-C.chunk.js.map → DAQxdC_x.chunk.js.map} +1 -1
- package/dist/scripts/{DOuiFwIH2.chunk.js → DGBrggmU2.chunk.js} +2 -2
- package/dist/scripts/{DOuiFwIH2.chunk.js.map → DGBrggmU2.chunk.js.map} +1 -1
- package/dist/scripts/{CSbvS-Cl.chunk.js → DI6eYZuV.chunk.js} +2 -2
- package/dist/scripts/{CSbvS-Cl.chunk.js.map → DI6eYZuV.chunk.js.map} +1 -1
- package/dist/scripts/DIsOuUSO2.chunk.js +2 -0
- package/dist/scripts/DIsOuUSO2.chunk.js.map +1 -0
- package/dist/scripts/{B3tq0EFi2.chunk.js → DN_CuUia2.chunk.js} +2 -2
- package/dist/scripts/{B3tq0EFi2.chunk.js.map → DN_CuUia2.chunk.js.map} +1 -1
- package/dist/scripts/{DRZvc_n5.chunk.js → DT626M1P.chunk.js} +3 -3
- package/dist/scripts/{DRZvc_n5.chunk.js.map → DT626M1P.chunk.js.map} +1 -1
- package/dist/scripts/DWVn5hOy2.chunk.js +2 -0
- package/dist/scripts/DWVn5hOy2.chunk.js.map +1 -0
- package/dist/scripts/DZ85IleM.chunk.js +2 -0
- package/dist/scripts/DZ85IleM.chunk.js.map +1 -0
- package/dist/scripts/{CsrTrVKj.chunk.js → DarQpJDR.chunk.js} +2 -2
- package/dist/scripts/{CsrTrVKj.chunk.js.map → DarQpJDR.chunk.js.map} +1 -1
- package/dist/scripts/{CGLWqKaa.chunk.js → DfWNECxe.chunk.js} +2 -2
- package/dist/scripts/{CGLWqKaa.chunk.js.map → DfWNECxe.chunk.js.map} +1 -1
- package/dist/scripts/{BEgLlK2Z2.chunk.js → Dfi_iXFg2.chunk.js} +2 -2
- package/dist/scripts/{BEgLlK2Z2.chunk.js.map → Dfi_iXFg2.chunk.js.map} +1 -1
- package/dist/scripts/{8vJGuJF-2.chunk.js → DjMOZfNJ2.chunk.js} +2 -2
- package/dist/scripts/{8vJGuJF-2.chunk.js.map → DjMOZfNJ2.chunk.js.map} +1 -1
- package/dist/scripts/{DGRBUJ6T2.chunk.js → DjUmgrOk2.chunk.js} +2 -2
- package/dist/scripts/{DGRBUJ6T2.chunk.js.map → DjUmgrOk2.chunk.js.map} +1 -1
- package/dist/scripts/DjdW7gMz.chunk.js +2 -0
- package/dist/scripts/DjdW7gMz.chunk.js.map +1 -0
- package/dist/scripts/{CAOBwDbU.chunk.js → DksIM59B.chunk.js} +2 -2
- package/dist/scripts/{CAOBwDbU.chunk.js.map → DksIM59B.chunk.js.map} +1 -1
- package/dist/scripts/{aXgcldgY.chunk.js → DpARg1IG.chunk.js} +2 -2
- package/dist/scripts/{aXgcldgY.chunk.js.map → DpARg1IG.chunk.js.map} +1 -1
- package/dist/scripts/{DM0JzOpR2.chunk.js → ErGRzsV12.chunk.js} +2 -2
- package/dist/scripts/{DM0JzOpR2.chunk.js.map → ErGRzsV12.chunk.js.map} +1 -1
- package/dist/scripts/{UK8sD-oL.chunk.js → GSm09vBX.chunk.js} +2 -2
- package/dist/scripts/{UK8sD-oL.chunk.js.map → GSm09vBX.chunk.js.map} +1 -1
- package/dist/scripts/{DDO16-at.chunk.js → HkF7AIye.chunk.js} +2 -2
- package/dist/scripts/{DDO16-at.chunk.js.map → HkF7AIye.chunk.js.map} +1 -1
- package/dist/scripts/{BI2S4EFA.chunk.js → I1XD6JKC.chunk.js} +2 -2
- package/dist/scripts/{BI2S4EFA.chunk.js.map → I1XD6JKC.chunk.js.map} +1 -1
- package/dist/scripts/MGxL1vUn.chunk.js +2 -0
- package/dist/scripts/MGxL1vUn.chunk.js.map +1 -0
- package/dist/scripts/{CBQgY9MD2.chunk.js → Tj-NqZ4q2.chunk.js} +1 -1
- package/dist/scripts/{CBQgY9MD2.chunk.js.map → Tj-NqZ4q2.chunk.js.map} +1 -1
- package/dist/scripts/{app-lnmpv5W4.js → app-fNhmX-xT.js} +4 -4
- package/dist/scripts/app-fNhmX-xT.js.map +1 -0
- package/dist/scripts/{Bu37Hprb2.chunk.js → fyOxYVvI2.chunk.js} +1 -1
- package/dist/scripts/{Bu37Hprb2.chunk.js.map → fyOxYVvI2.chunk.js.map} +1 -1
- package/dist/scripts/{Dsmr6Wly.chunk.js → gsffdqjU.chunk.js} +2 -2
- package/dist/scripts/{Dsmr6Wly.chunk.js.map → gsffdqjU.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/5Z0rGCy2.chunk.js +0 -2
- package/dist/scripts/5Z0rGCy2.chunk.js.map +0 -1
- package/dist/scripts/BjzONPz9.chunk.js +0 -2
- package/dist/scripts/BjzONPz9.chunk.js.map +0 -1
- package/dist/scripts/BuSq2beZ2.chunk.js +0 -2
- package/dist/scripts/BuSq2beZ2.chunk.js.map +0 -1
- package/dist/scripts/CHQN7xOX.chunk.js +0 -2
- package/dist/scripts/CHQN7xOX.chunk.js.map +0 -1
- package/dist/scripts/CuE3TVwa.chunk.js +0 -2
- package/dist/scripts/CuE3TVwa.chunk.js.map +0 -1
- package/dist/scripts/D6EZoO4S2.chunk.js.map +0 -1
- package/dist/scripts/D_PyfoSL.chunk.js +0 -2
- package/dist/scripts/D_PyfoSL.chunk.js.map +0 -1
- package/dist/scripts/DklryBsJ.chunk.js +0 -2
- package/dist/scripts/DklryBsJ.chunk.js.map +0 -1
- package/dist/scripts/app-lnmpv5W4.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t}from"./B1i9atik.chunk.js";import{g as n}from"./NpQVkKE2.chunk.js";import{l as r}from"./TJBzqR6k.chunk.js";import{t as i}from"./CzvVp9iC.chunk.js";import{n as a,t as o}from"./Dn3hwC-o.chunk.js";import{I as s,M as c,U as l}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t}from"./B1i9atik.chunk.js";import{g as n}from"./NpQVkKE2.chunk.js";import{l as r}from"./TJBzqR6k.chunk.js";import{t as i}from"./CzvVp9iC.chunk.js";import{n as a,t as o}from"./Dn3hwC-o.chunk.js";import{I as s,M as c,U as l}from"./app-fNhmX-xT.js";import{t as u}from"./C8lms6Rf2.chunk.js";import{n as d,t as f}from"./DWVn5hOy2.chunk.js";t();var p={infoAlert:`_infoAlert_r916y_1`},m=e(),h=`tv.broadcastContent`,g=i.encloseNamespace(h);function _(e){let t=r(f.region(e.region)),i=r(f.dateRange(e.region));return(0,m.jsxs)(l,{title:g(`title`),closePopup:e.closePopup,children:[(0,m.jsx)(`div`,{className:`${p.infoAlert} rounded w-100 p-2 mb-4`,children:(0,m.jsxs)(`p`,{className:`d-inline fw-semibold mb-0 me-2`,children:[(0,m.jsx)(s,{namespace:h,phrase:`programsAvailable`}),i.data&&d.getFormattedDateRange(u(i.data.startDate,t.data.timeZone),u(i.data.endDate,t.data.timeZone))]})}),(0,m.jsx)(`h2`,{className:`h5`,children:(0,m.jsx)(s,{namespace:h,phrase:`subTitle`})}),(0,m.jsx)(`p`,{className:`mb-2`,children:(0,m.jsx)(s,{namespace:h,phrase:`description`})}),(0,m.jsxs)(`div`,{className:`mb-2`,children:[(0,m.jsx)(`p`,{className:`d-inline`,children:(0,m.jsx)(s,{namespace:h,phrase:`missedProgram`})}),(0,m.jsx)(n,{appLink:{application:a.EXCHANGE,action:o.Exchange.INDEX},className:`text-info`,onClick:e.closePopup,children:(0,m.jsx)(`span`,{children:(0,m.jsx)(s,{namespace:h,phrase:`exchangeArchive`})})}),`.`]}),(0,m.jsx)(`p`,{className:`mb-3`,children:(0,m.jsx)(s,{namespace:h,phrase:`emailContent`})}),(0,m.jsx)(c,{children:(0,m.jsx)(c.Cancel,{text:g(`close`),onClick:e.closePopup,variant:`link`})})]})}export{_ as TvBroadcastContentView};
|
|
2
|
+
//# sourceMappingURL=CEOaf0tK2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CEOaf0tK2.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-broadcast-content/tv-broadcast-content.module.scss","../../src/apps/tv/views/tv-broadcast-content/TvBroadcastContentView.tsx"],"sourcesContent":[":local {\n .infoAlert {\n background-color: $gray-100;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-broadcast-content.module.scss';\n\nconst namespace = 'tv.broadcastContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvBroadcastContentViewProps extends PopupViewProps {\n region: string;\n}\n\nexport function TvBroadcastContentView(props: TvBroadcastContentViewProps) {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n \n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n >\n <div className={`${styles.infoAlert} rounded w-100 p-2 mb-4`}>\n <p className='d-inline fw-semibold mb-0 me-2'>\n <Text namespace={namespace} phrase='programsAvailable' />\n {dateRange.data &&\n TvUtils.getFormattedDateRange(\n toLocalTime(dateRange.data.startDate, region.data.timeZone),\n toLocalTime(dateRange.data.endDate, region.data.timeZone)\n )\n }\n </p>\n </div>\n\n <h2 className='h5'><Text namespace={namespace} phrase='subTitle' /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase='description' /></p>\n\n <div className='mb-2'>\n <p className='d-inline'><Text namespace={namespace} phrase='missedProgram' /></p>\n <AppLink\n appLink={{ application: AppChannels.EXCHANGE, action: Actions.Exchange.INDEX }}\n className='text-info'\n onClick={props.closePopup}\n >\n <span><Text namespace={namespace} phrase='exchangeArchive' /></span>\n </AppLink>.\n </div>\n <p className='mb-3'><Text namespace={namespace} phrase='emailContent' /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={props.closePopup}\n variant='link'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"mappings":"oZCqBM,EAAY,sBACZ,EAAY,EAAgB,iBAAiB,EAAU,CAM7D,SAAgB,EAAuB,EAAoC,CACzE,IAAM,EAAS,EAA+B,EAAW,OAAO,EAAM,OAAO,CAAC,CACxE,EAAY,EAAkC,EAAW,UAAU,EAAM,OAAO,CAAC,CAEvF,OACE,EAAA,EAAA,MAAC,EAAD,CACE,MAAO,EAAU,QAAQ,CACzB,WAAY,EAAM,oBAFpB,EAIE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,UAAU,mCAClC,EAAA,EAAA,MAAC,IAAD,CAAG,UAAU,0CAAb,EACE,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,oBAAsB,CAAA,CACxD,EAAU,MACT,EAAQ,sBACN,EAAY,EAAU,KAAK,UAAW,EAAO,KAAK,SAAS,CAC3D,EAAY,EAAU,KAAK,QAAS,EAAO,KAAK,SAAS,CAC1D,CAAA,GAGD,CAAA,EAEN,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,eAAK,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,WAAa,CAAA,CAAK,CAAA,EACxE,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,iBAAO,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,cAAgB,CAAA,CAAI,CAAA,EAE3E,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,qBAAW,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,gBAAkB,CAAA,CAAI,CAAA,EACjF,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,CAAE,YAAa,EAAY,SAAU,OAAQ,EAAQ,SAAS,MAAO,CAC9E,UAAU,YACV,QAAS,EAAM,qBAEf,EAAA,EAAA,KAAC,OAAD,CAAA,UAAM,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,kBAAoB,CAAA,CAAO,CAAA,CAC5D,CAAA,SAEZ,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,iBAAO,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,eAAiB,CAAA,CAAI,CAAA,EAE5E,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,EAAa,OAAd,CACE,KAAM,EAAU,QAAQ,CACxB,QAAS,EAAM,WACf,QAAQ,OACR,CAAA,CACW,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{C as e,D as t,O as n,b as r,bt as i,d as a,fn as o,o as s,s as c}from"./B1i9atik.chunk.js";import{_ as l,g as u,t as d,v as f}from"./NpQVkKE2.chunk.js";import{t as p}from"./BG5Aor0J.chunk.js";import{t as m}from"./CzvVp9iC.chunk.js";import{n as h}from"./B6rKNJWQ.chunk.js";import{t as g}from"./YhCzLJGK.chunk.js";import{tt as _}from"./app-fNhmX-xT.js";import{s as v}from"./B4b3fF2e.chunk.js";import{t as y}from"./CQKpvTZY.chunk.js";import{t as b}from"./DIsOuUSO2.chunk.js";var x=function(e){return e.LatestReleases=`latest-releases`,e.ExploreAllTopics=`explore-all-topics`,e.ClassificationLatestReleases=`classification-latest-releases`,e.ClassificationDirectory=`classification-directory`,e}({}),S=[`video`,`clip`,`interactive`],C=[`playlist`,`series`,`clip`,`classification`,`interactive`,`video`,`company`,`category`,`partner_profile`],w=[`user`],T=`sort.classification.presentation.audience.yearGroup.moviesAndTv.type.rating.interactives.clips.classroom.hasResources.hasSubtitles.productionYear.isHd.producedByClickView.duration.tagOrClassification.status.isAdmin.bulkActionType.userType.filter.channel.dateBroadcast.categoryId.hasInteractives.jobStatus.source.customerStatus.specialEventType.customerType.seriesId.scopeId`.split(`.`),E={type:!0},D=T.reduce((e,t)=>({...e,[t]:!E[t]}),{}),O=function(e){return e.MyVideos=`my-videos`,e.School=`school`,e.ExchangeArchive=`exchange-archive`,e.ClickView=`clickview`,e.LiveStreams=`livestreams`,e}({}),k=function(e){return e.Video=`video`,e.Series=`series`,e.Playlist=`playlist`,e.Classification=`classification`,e.Clip=`clip`,e.Interactive=`interactive`,e.Company=`company`,e.Category=`category`,e.PartnerProfile=`partner_profile`,e}({}),A=function(e){return e.ThumbnailHeroMedia=`thumbnail_hero_media`,e.ThumbnailFeaturedMedia=`thumbnail_featured_media`,e.ThumbnailSlidingListSmall=`thumbnail_sliding_list_small`,e.ThumbnailSlidingListSmallV2=`thumbnail_sliding_list_small_v2`,e.ThumbnailSlidingListLarge=`thumbnail_sliding_list_large`,e.ThumbnailFixedListMediaSmall=`thumbnail_fixed_list_media_small`,e.ThumbnailFixedListMediaLarge=`thumbnail_fixed_list_media_large`,e.ThumbnailFixedListFolderSmall=`thumbnail_fixed_list_folder_small`,e.ThumbnailVerticalList=`thumbnail_vertical_list`,e.PopoutThumbnailSlidingListLarge=`popout_thumbnail_sliding_list_large`,e.PopoutThumbnailSlidingListSmall=`popout_thumbnail_sliding_list_small`,e.FeaturedThumbnailSlidingList=`featured_thumbnail_sliding_list`,e.ThumbnailFixedListXLarge=`thumbnail_fixed_list_xlarge`,e.CoverSlidingPillListSmall=`cover_sliding_pill_list_small`,e.CoverFixedPillListLarge=`cover_fixed_pill_list_large`,e.StatsCoverFixedPillListLarge=`stats_cover_fixed_pill_list_large`,e.CoverFixedPillListXSmall=`cover_fixed_pill_list_xsmall`,e.ThumbnailFixedListLarge=`thumbnail_fixed_list_large`,e.ThumbnailFixedListSmall=`thumbnail_fixed_list_small`,e.EditableCoverFixedPillListSmall=`editable_cover_fixed_pill_list_small`,e.HeroBanner=`hero_banner`,e.HeroThumbnailSmall=`hero_thumbnail_small`,e.HeroBlockColourSmall=`hero_block_colour_small`,e.CurriculumResourcesAccordion=`curriculum_resources_accordion`,e.CurriculumCodeSearchResults=`curriculum_code_search_results`,e.CoverFixedTileList=`cover_fixed_tile_list`,e.PosterSlidingListLarge=`poster_sliding_list_large`,e.PosterSlidingListMedium=`poster_sliding_list_medium`,e.PosterSlidingListSmall=`poster_sliding_list_small`,e.PosterFixedListLarge=`poster_fixed_list_large`,e.HeroBannerSmall=`hero_banner_small`,e.Heading=`heading`,e.AuthorReviewer=`author_reviewer`,e.Question=`question`,e.QuestionAccordion=`question_accordion`,e.FeedbackCta=`feedback_cta`,e.CircleLogoSlidingList=`circle_logo_sliding_list`,e.RectangularLogoSlidingList=`rectangular_logo_sliding_list`,e.RectangularLogoFixedList=`rectangular_logo_fixed_list`,e.ThumbnailFixedListSearchCta=`thumbnail_fixed_list_search_cta`,e.InfiniteThumbnailVerticalList=`infinite_thumbnail_vertical_list`,e.FilterSlidingPillListSmall=`filter_sliding_pill_list_small`,e.EventIconSlidingList=`event_icon_sliding_list`,e.TagSlidingList=`tag_sliding_list`,e.SearchSuggestionsBlurb=`search_suggestions_blurb`,e}({}),j=function(e){return e.CuratedMedia=`curated_media`,e.PlaylistMedia=`playlist_media`,e.SeriesMedia=`series_media`,e.ClassificationMedia=`classification_media`,e.LatestReleasedVideos=`latest_released_videos`,e.ContinueWatching=`continue_watching_videos`,e.CompanyLatestReleasedVideo=`company_latest_released_video`,e.CompanyVideos=`company_videos`,e.ClassificationLatestReleasedVideo=`classification_latest_released_video`,e.ClassificationLatestReleasedVideosV2=`classification_latest_released_videos_v2`,e.CompanyClassificationVideos=`company_classification_videos`,e.ClassificationDashboardMedia=`classification_dashboard_media`,e.ClassificationDashboardExternalMedia=`classification_dashboard_external_media`,e.SeasonalClassificationMedia=`seasonal_classification_media`,e.TrendingClassificationsMedia=`trending_classifications_media`,e.ClassificationCurriculumMedia=`classification_curriculum_media`,e.CuratedClassifications=`curated_classifications`,e.Classifications=`classifications`,e.ClassificationLatestReleasedVideos=`classification_latest_released_videos`,e.SpecialEventClassifications=`special_event_classifications`,e.LatestReleasedClassifications=`latest_released_classifications`,e.TrendingClassifications=`trending_classifications`,e.CuratedSeries=`curated_series`,e.CuratedPlaylists=`curated_playlists`,e.Blurb=`blurb`,e.DynamicBlurb=`dynamic_blurb`,e.AuthorReviewer=`author_reviewer`,e.Faq=`faq`,e.Feedback=`feedback`,e.CuratedCompanies=`curated_companies`,e.CuratedContentPartners=`curated_content_partners`,e.ContentPartnerLatestReleasedVideos=`content_partner_latest_released_videos`,e.ContentPartnerSeries=`content_partner_series`,e.ContentPartnerVideos=`content_partner_videos`,e.SpotlightContentPartners=`spotlight_curated_content_partners`,e.ContentPartners=`content_partners`,e.ContentPartnersHub=`content_partners_hub`,e.TrendingContentPartnersVideo=`content_partner_trending_videos`,e.ContentPartnerAllVideos=`content_partner_all_videos`,e.Ratings=`ratings`,e.Presentations=`presentations`,e.UpcomingLivestreams=`upcoming_livestreams`,e.CuratedMultimedia=`curated_multimedia`,e.ClassificationPlaylists=`classification_playlists`,e.ClassificationSeries=`classification_series`,e.ClassificationFeaturedVideo=`classification_featured_video`,e.ClassificationPinnedVideos=`classification_pinned_videos`,e.SearchRelevantTopics=`search_relevant_topics`,e.SearchCompanies=`search_companies`,e.SearchTopResults=`search_top_results`,e.SearchSeries=`search_series`,e.SearchPlaylists=`search_playlists`,e.SearchMyVideosFolder=`search_my_videos_folders`,e.SearchMySchoolLibraryFolder=`search_my_school_library_folders`,e.SearchMyVideos=`search_my_videos`,e.SearchMySchoolLibraryVideos=`search_my_school_library_videos`,e.SearchExchangeArchive=`search_exchange_archive`,e.SearchClickViewLive=`search_clickview_live`,e.SearchRelatedResults=`search_related_results`,e.SearchTags=`search_tags`,e.SearchCurriculumCode=`search_curriculum_code`,e.SearchSuggestions=`search_suggestions`,e.SearchContentPartners=`search_content_partners`,e}({}),M={onSelectCuratedObject(e,t){let n={...t.values.data,objectIds:p.addOrRemoveImmutable(t.values.data.objectIds||[],e.id)};t.setFieldValue(`data`,n),t.setTouched({...t.touched,data:{objectIds:!0}})},onRemoveCuratedObject(e,t){let n={...t.values.data,objectIds:t.values.data.objectIds.filter(t=>t!==e)};t.setFieldValue(`data`,n)},getDashboardTarget(e){return e.targetType===v.Discover?`discover:presentation:${e.presentationId}`:e.targetType===v.Classification?`classification:${e.classificationId}`:e.targetType===v.ClassificationDirectory?`classification:${e.classificationId}:directory`:e.targetType===v.ClassificationCurriculum?`classification:${e.classificationId}:curriculum`:e.targetType===v.MoviesAndTv?`moviesAndTv:presentation:${e.presentationId}`:e.targetType===v.Company?`company:${e.companyId}:presentation:${e.presentationId}`:e.targetType===v.PartnerProfile?`partnerprofile:${e.slug}`:e.targetType===v.DiscoverPartnerProfiles?`discover:partners`:e.targetType===v.PartnerProfileHub?`discover:partners:hub`:null},getUnknownDashboardTarget(e){let{presentationId:t,companyId:n,targetType:r,classificationId:i,slug:a}=e;if(r===v.Discover)return M.getDashboardTarget({targetType:v.Discover,presentationId:t});if(r===v.MoviesAndTv)return M.getDashboardTarget({targetType:v.MoviesAndTv,presentationId:t});if(r===v.Company)return M.getDashboardTarget({targetType:v.Company,presentationId:t,companyId:n});if(r===v.Classification)return M.getDashboardTarget({targetType:v.Classification,classificationId:i});if(r===v.ClassificationDirectory)return M.getDashboardTarget({targetType:v.ClassificationDirectory,classificationId:i});if(r===v.ClassificationCurriculum)return M.getDashboardTarget({targetType:v.ClassificationCurriculum,classificationId:i});if(r===v.PartnerProfile)return M.getDashboardTarget({targetType:v.PartnerProfile,slug:a});if(r===v.DiscoverPartnerProfiles)return M.getDashboardTarget({targetType:v.DiscoverPartnerProfiles});if(r===v.PartnerProfileHub)return M.getDashboardTarget({targetType:v.PartnerProfileHub})},getDashboardTargetInfo(e){let t=M.getDashboardTargetType(e),n=e?.target?.split(`:`);return t===v.Discover?{targetType:v.Discover,presentationId:n[2]}:t===v.Classification?{targetType:v.Classification,classificationId:n[1]}:t===v.ClassificationDirectory?{targetType:v.ClassificationDirectory,classificationId:n[1]}:t===v.ClassificationCurriculum?{targetType:v.ClassificationCurriculum,classificationId:n[1]}:t===v.MoviesAndTv?{targetType:v.MoviesAndTv,presentationId:n[2]}:t===v.Company?{targetType:v.Company,companyId:n[1],presentationId:n[3]}:t===v.PartnerProfile?{targetType:v.PartnerProfile,slug:n[1]}:null},getDashboardTargetType(e){return e?.target?e.target.startsWith(`discover`)?e.target.endsWith(`partners`)?v.DiscoverPartnerProfiles:e.target.endsWith(`hub`)?v.PartnerProfileHub:v.Discover:e.target.startsWith(`classification`)?e.target.endsWith(`directory`)?v.ClassificationDirectory:e.target.endsWith(`curriculum`)?v.ClassificationCurriculum:v.Classification:e.target.startsWith(`moviesAndTv`)?v.MoviesAndTv:e.target.startsWith(`company`)?v.Company:e.target.startsWith(`partnerprofile`)?v.PartnerProfile:null:null},isType(e,t){return M.getDashboardTargetType(e)===t},isCuratedDashboard(e){let t=e,n=M.getDashboardTargetType(t);return n===v.Discover||n===v.Classification||n===v.ClassificationDirectory||n===v.ClassificationCurriculum||n===v.MoviesAndTv||n===v.Company},getLatestReleasedTimeRange(){let e=new Date;return{from:g.format(g.endOf(g.subtract(e,2,`month`),`day`),`YYYY-MM-DD`),to:g.format(g.endOf(e,`day`),`YYYY-MM-DD`)}},getWidgetParams(e,t,n,r,i,a){let o={};return r&&(o.audienceId=r),e===j.ClassificationCurriculumMedia&&(o.curriculumPresentationId=i),{...o,...P[e]?.getCustomParams?.(t,n,a)}},isSystemGeneratedDashboard(e){let t=new Set([j.ClassificationFeaturedVideo,j.ClassificationPinnedVideos,j.ClassificationPlaylists,j.ClassificationSeries]);return e?.some(e=>t.has(e.widgetId))},isClassificationDashboard(e){return[v.Classification,v.ClassificationDirectory,v.ClassificationCurriculum].includes(e?.targetType)},isContentPartnerDashboard(e){return e?.targetType===v.PartnerProfile},isDirectoryDashboard(e){return e?.targetType===v.ClassificationDirectory},isWidgetTypeEnabled(e,t,n){return P[e]?.predicate?.({settingsHash:t,targetType:n})??!0}};function N(e){return e.settingsHash?.hasPartnerProfiles??!1}var P={[j.CuratedMedia]:{getCustomParams:()=>({})},[j.PlaylistMedia]:{getCustomParams:()=>({})},[j.SeriesMedia]:{getCustomParams:e=>{switch(e){case A.ThumbnailFixedListMediaLarge:return{limit:2};case A.ThumbnailHeroMedia:case A.ThumbnailFeaturedMedia:return{limit:1};default:return{limit:12}}},getCollectionAppLink:(e,t)=>e?.series?.(p.first(t))},[j.ClassificationMedia]:{getCustomParams:()=>({})},[j.LatestReleasedVideos]:{getCustomParams:()=>M.getLatestReleasedTimeRange()},[j.ContinueWatching]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e?.watchHistory?.()},[j.CompanyLatestReleasedVideo]:{getCustomParams:()=>({})},[j.CompanyVideos]:{getCustomParams:()=>({})},[j.ClassificationLatestReleasedVideo]:{getCustomParams:()=>({})},[j.ClassificationLatestReleasedVideosV2]:{getCustomParams:()=>({limit:12}),minContent:4},[j.SeasonalClassificationMedia]:{getCustomParams:()=>({limit:12}),minContent:4},[j.CompanyClassificationVideos]:{getCustomParams:()=>({}),minContent:4},[j.TrendingClassificationsMedia]:{getCustomParams:()=>({limit:12}),minContent:4},[j.CuratedClassifications]:{getCustomParams:()=>({})},[j.TrendingClassifications]:{getCustomParams:()=>({limit:6}),minContent:3},[j.Classifications]:{getCustomParams:(e,t)=>{if(t===v.Discover){if(e===A.EditableCoverFixedPillListSmall)return{canBePreferred:!0,isFollowing:!0};if([A.PosterSlidingListSmall,A.CoverFixedPillListXSmall].includes(e))return{canBePreferred:!0}}return{}}},[j.ClassificationLatestReleasedVideos]:{getCustomParams:()=>M.getLatestReleasedTimeRange()},[j.SpecialEventClassifications]:{getCustomParams:()=>({from:g.format(new Date,`YYYY-MM-DD`)})},[j.LatestReleasedClassifications]:{getCustomParams:()=>({limit:6}),minContent:3},[j.CuratedSeries]:{getCustomParams:()=>({})},[j.CuratedPlaylists]:{getCustomParams:()=>({})},[j.Blurb]:{getCustomParams:()=>({})},[j.DynamicBlurb]:{getCustomParams:()=>({})},[j.AuthorReviewer]:{getCustomParams:()=>({})},[j.Faq]:{getCustomParams:()=>({})},[j.Feedback]:{getCustomParams:()=>({})},[j.CuratedCompanies]:{getCustomParams:()=>({}),predicate:e=>!e.settingsHash?.hasPartnerProfiles},[j.Ratings]:{getCustomParams:()=>({})},[j.Presentations]:{getCustomParams:()=>({})},[j.UpcomingLivestreams]:{getCustomParams:()=>({from:g.format(new Date,`YYYY-MM-DD`)})},[j.CuratedMultimedia]:{getCustomParams:()=>({})},[j.ClassificationPlaylists]:{getCustomParams:()=>({})},[j.ClassificationSeries]:{getCustomParams:()=>({})},[j.ClassificationFeaturedVideo]:{getCustomParams:()=>({})},[j.ClassificationPinnedVideos]:{getCustomParams:()=>({})},[j.ClassificationDashboardExternalMedia]:{getCustomParams:()=>({})},[j.ClassificationDashboardMedia]:{getCustomParams:()=>({})},[j.SearchRelevantTopics]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchRelevantTopics],type:[k.Classification]})},[j.SearchCompanies]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchCompanies],type:[k.Company]}),predicate:e=>!e.settingsHash?.hasPartnerProfiles},[j.SearchSeries]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchSeries],type:[k.Series]})},[j.SearchPlaylists]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchPlaylists],type:[k.Playlist]})},[j.SearchMyVideosFolder]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchMyVideosFolder],source:[O.MyVideos]})},[j.SearchMySchoolLibraryFolder]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchMySchoolLibraryFolder],source:[O.School]})},[j.SearchMyVideos]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchMyVideos],source:[O.MyVideos]})},[j.SearchMySchoolLibraryVideos]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchMySchoolLibraryVideos],source:[O.School]})},[j.SearchExchangeArchive]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchExchangeArchive],source:[O.ExchangeArchive]})},[j.SearchClickViewLive]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchClickViewLive],source:[O.LiveStreams]}),predicate:e=>e.settingsHash?.clickViewLive??!1},[j.SearchRelatedResults]:{getCustomParams:()=>({})},[j.SearchTopResults]:{getCustomParams:()=>({})},[j.ClassificationCurriculumMedia]:{getCustomParams:()=>({})},[j.SearchTags]:{getCustomParams:()=>({})},[j.SearchCurriculumCode]:{getCustomParams:()=>({})},[j.SearchSuggestions]:{getCustomParams:()=>({})},[j.SearchContentPartners]:{getCustomParams:()=>({}),getCollectionAppLink:e=>e.searchHome({focus:[j.SearchContentPartners],type:[k.PartnerProfile]}),predicate:N},[j.CuratedContentPartners]:{getCustomParams:()=>({limit:12}),predicate:N},[j.ContentPartnerLatestReleasedVideos]:{getCustomParams:()=>({}),predicate:N},[j.ContentPartnerSeries]:{getCollectionAppLink:e=>e?.scopedSearchHome?.({type:[k.Series]}),getCustomParams:()=>({limit:12}),predicate:N},[j.ContentPartnerVideos]:{getCustomParams:()=>({}),predicate:N},[j.SpotlightContentPartners]:{getCustomParams:()=>({}),predicate:N},[j.ContentPartners]:{getCustomParams:(e,t,n)=>({letterPrefix:n?.params?.letterPrefix,sort:n?.params?.sort}),predicate:N},[j.ContentPartnersHub]:{getCustomParams:(e,t,n)=>t===v.PartnerProfileHub?{objectId:n?.params?.objectId}:{},predicate:N},[j.TrendingContentPartnersVideo]:{getCustomParams:()=>({}),predicate:N},[j.ContentPartnerAllVideos]:{getCustomParams:e=>e===A.ThumbnailFixedListSearchCta?{limit:3}:{},predicate:N}},F=function(e){return e[e.Draft=0]=`Draft`,e[e.Published=1]=`Published`,e[e.Archived=2]=`Archived`,e}({}),I=o(t()),L=function(e){return e.Draft=`Draft`,e.Published=`Published`,e.Archived=`Archived`,e}(L||{}),R={getSliderAnalyticsOptions:()=>({actionType:r.Click,location:a.SlidingList,entity:c.Widget,descriptor:s.Slide}),getSliderItemAnalyticsOptions:()=>({location:a.SlidingListItem}),getSliderHeadingAnalyticsOptions:()=>({actionType:r.Click,location:a.SlidingList,entity:c.Widget,descriptor:s.Title}),useGetContent(e,t,n,r,i){return I.useMemo(()=>{if(!e)return{content:null,unfilteredContent:null};if(!Array.isArray(e))return{content:e,unfilteredContent:e};let a=r?.reduce((e,t)=>(e[t.id]=t,e),{})??{},o=i.reduce((e,t)=>(e[t]=!0,e),{}),s=[...e],c=s.sort((e,t)=>{if(!(`id`in e)||!(`id`in t))return 0;let n=a[e.id]?.index??s.findIndex(t=>`id`in t&&t.id===e.id),r=a[t.id]?.index??s.findIndex(e=>`id`in e&&e.id===t.id);return n<r?-1:n>r?1:0});return R.isBelowContentMinimum(c,t)&&!n?{content:[],unfilteredContent:c}:{content:c.filter(e=>!(a[`id`in e&&e.id]?.hidden||o[`id`in e&&e.id])),unfilteredContent:c}},[e,r])},isBelowContentMinimum(e,t){let n=P[t]?.minContent||0;return e?.length<n},getCustomAppLink(e){return!(`metadata`in e)||!(`appLinks`in e)||!(`appLink`in e.metadata)?null:e.metadata?.appLink===x.LatestReleases&&`latestReleases`in e.appLinks?e.appLinks?.latestReleases?.():e.metadata?.appLink===x.ExploreAllTopics&&`allTopics`in e.appLinks&&`presentation`in e?e.appLinks?.allTopics?.(e.presentation.id):null},getWidgetStatus(e){let t=e.status;if(typeof t==`string`)switch(t){case L.Archived:t=F.Archived;break;case L.Published:t=F.Published;break;case L.Draft:t=F.Draft;break}return t},formatResponseData(e,t){let n=e.content;if(!n)return e;if(`author`in n)return e.content=[n],e;switch(`data`in n?e.content=n.data:Array.isArray(n)||(e.content=[n]),e.widgetId){case j.ClassificationSeries:e.content=e.content.filter(e=>`tallPoster`in e&&!!e.tallPoster?.id);break;case j.ClassificationPlaylists:e.content=e.content.filter(e=>`cover`in e&&!!e.cover?.id);break;case j.ContinueWatching:e.content=e.content.map(e=>`object`in e&&e.object);default:break;case j.Presentations:e.content=e.content.filter(e=>`id`in e&&e.id.toString()!==t?.id?.toString());break}return e},isWidgetInTableOfContents(e){return!!e?.showInTableOfContents},hasNoContent(e){return!![j.Blurb,j.Feedback].includes(e)},canDisplayOnScreenSize(e,t,n){return t===j.Blurb&&n===A.HeroBannerSmall?!e.xs&&!e.sm:!0},isCompanyWidget(e){switch(e){case j.CompanyLatestReleasedVideo:case j.CompanyVideos:case j.UpcomingLivestreams:return!0;default:return!1}},getVideoContent(e){let t=p.first(e);return y.isType(t,_.Series)?t.videos.data:e},showRemoveButton(e){return e===j.ContinueWatching},mergeWidgets(e,t){let r=n.deepClone(e),i=p.groupBy(r,`widgetId`),a=[];for(let e of Object.values(i)){let n=null,r=[];for(let i of e){if(!n){n=i;continue}if(i.templateId!==n.templateId){r.push(n),n=i;continue}t(n,i)}n&&r.push(n),a.push(...r)}return a}},z={widgetTextButton:`_widgetTextButton_em1zx_1`},B=e(),V=m.encloseNamespace(`shared.widgetHeader`);function H(e){return i.getHref(e.appLink)?(0,B.jsx)(`div`,{className:`ms-3 ${z.widgetTextButton}`,children:(0,B.jsx)(u,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:{location:a.SlidingList,...e.analyticsOptions,descriptor:s.SeeMore},className:`text-decoration-none ${e.appLink?`curated-widget-link`:``}`,children:(0,B.jsx)(`p`,{className:`hover-text-underline text-dark curated-widget-heading`,children:V(`seeAll`)})})}):null}function U(e){return(0,B.jsx)(`div`,{className:`ms-3 ${z.widgetTextButton} text-decoration-none cursor-pointer`,onClick:e.onClose,children:(0,B.jsx)(`p`,{className:`hover-text-underline text-dark curated-widget-heading`,children:V(`hide`)})})}function W(e){return(0,B.jsx)(`div`,{className:`ms-3 ${z.widgetTextButton} text-decoration-none`,children:e.showFollowSpinner?(0,B.jsx)(h,{as:`span`,animation:`border`,role:`status`,size:`sm`}):(0,B.jsx)(`p`,{className:`hover-text-underline text-dark curated-widget-heading cursor-pointer`,onClick:()=>e.onFollow(!e.isFollowing),children:V(e.isFollowing?`unfollow`:`follow`)})})}function G(e){let t=!!e.description;if(!e.name&&!e.description)return(0,B.jsx)(B.Fragment,{});let n=R.isBelowContentMinimum(e.content,e.widgetTypeId),r=P[e.widgetTypeId]?.minContent??0;return(0,B.jsxs)(`div`,{className:`curated-widget-header`,children:[(0,B.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[!!e.name&&(0,B.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,B.jsx)(u,{appLink:e.appLink,analyticsData:e.analyticsData,className:`text-decoration-none ${e.appLink?`curated-widget-link text-reset`:``}`,onClick:e.onAppLinkClick,children:(0,B.jsxs)(`h2`,{className:`h4 curated-widget-heading`,children:[e.isPreviewing&&n&&(0,B.jsx)(d,{svg:b,title:`Widget is below the minimum content threshold of ${r} and won't be displayed.`,tooltipSpanHack:!0,tooltipSpanHackClassName:`d-inline text-danger me-1`}),e.name]})}),!!I.isValidElement(e.badgeComponent)&&e.badgeComponent]}),(0,B.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center gap-2`,children:[!!e.appLink&&!t&&!!e.showSeeMoreLink&&(0,B.jsx)(H,{...e}),f.isFunction(e.onFollow)&&(0,B.jsx)(W,{isFollowing:e.isFollowing,onFollow:e.onFollow,showFollowSpinner:e.showFollowSpinner}),f.isFunction(e.onClose)&&(0,B.jsx)(U,{onClose:e.onClose})]})]}),t&&(0,B.jsxs)(`div`,{className:`d-flex justify-content-between align-items-end`,children:[(0,B.jsx)(`p`,{className:`description curated-widget-description`,children:(0,B.jsx)(`span`,{children:e.description})}),!!e.appLink&&!!e.showSeeMoreLink&&(0,B.jsx)(H,{...e})]})]})}var K=function(e){return e.Normal=`normal`,e.Pedagogy=`pedagogy`,e.Hidden=`hidden`,e.Skill=`skill`,e.Curation=`curation`,e}({}),q={tagList:`_tagList_ihahv_1`,badgeBase:`_badgeBase_ihahv_5`,disabled:`_disabled_ihahv_8`,partialTag:`_partialTag_ihahv_16`,removeBadge:`_removeBadge_ihahv_19`,removeBadgeText:`_removeBadgeText_ihahv_23`,close:`_close_ihahv_26`},J=m.encloseNamespace(`shared.tags`);function Y(e,t){switch(e){case K.Pedagogy:case K.Skill:return`pedagogy-tag text-white`;case K.Hidden:return`hidden-tag fw-normal`;case K.Normal:return t?``:`bg-gray-100 fw-normal`;default:return``}}function X(e){let{tag:t,appLink:n,onClick:r,disabled:i,tagClass:a=`tag`}=e,o=t.name.toLowerCase(),s=t.tagType?.toLowerCase(),c=s===K.Normal&&e.themeColours&&!!e.themeColours?.secondary,d=`${q.badgeBase} rounded-pill py-1 px-2 my-1 me-1 ${a} ${Y(s,c)}`,f=`text-truncate text-nowrap`;c&&(d+=` text-white`),(n||r)&&!i&&(d+=` cursor-pointer`),i&&(d+=` `+q.disabled),e.onRemove&&(d+=` `+q.removeBadge,f+=` ${q.removeBadgeText} d-inline-flex align-items-center lh-1`),n||(d+=` d-inline-block`);let p=c?{backgroundColor:e.themeColours.secondary}:{};return n?(0,B.jsx)(u,{onClick:r,appLink:n,className:d,title:o,style:p,children:(0,B.jsx)(`span`,{className:f,children:o})}):(0,B.jsx)(`button`,{onClick:r,className:d,title:o,style:p,"aria-label":`${J(`ariaFilter`)} ${o}`,children:(0,B.jsxs)(`span`,{className:f,children:[o,e.onRemove&&(0,B.jsx)(l,{onClick:e.onRemove,className:`${q.close} btn-close font-size-normal`,role:`button`,"aria-label":`Close`})]})})}export{R as a,O as c,S as d,G as i,C as l,q as n,j as o,K as r,D as s,X as t,w as u};
|
|
2
|
+
//# sourceMappingURL=CFdu6aud.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CFdu6aud.chunk.js","names":[],"sources":["../../../../libs/shared/src/interfaces/models/curated-widget/CuratedWidget.ts","../../../../libs/shared/src/apps/search/interfaces/SearchTypes.ts","../../../../libs/shared/src/apps/search/interfaces/SearchFilter.ts","../../../../libs/shared/src/enums/WidgetTemplate.ts","../../../../libs/shared/src/enums/WidgetTypeId.ts","../../../../libs/shared/src/utils/DashboardHelper.ts","../../../../libs/shared/src/constants/WidgetTypeIdConfig.ts","../../../../libs/shared/src/enums/WidgetStatus.ts","../../../../libs/shared/src/utils/WidgetHelper.ts","../../../../libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.module.scss","../../../../libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","../../../../libs/shared/src/enums/TagType.ts","../../../../libs/shared/src/components/tags/tags.module.scss","../../../../libs/shared/src/components/tags/TagItem.tsx"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\n\nimport { AllWidgetTemplateProps } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { ButtonIcon } from 'libs/shared/constants/WidgetThemingConstants';\nimport { WidgetStatus } from 'libs/shared/enums/WidgetStatus';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { CuratedObjectsWidgetData, CuratedWidgetContent, CuratedWidgetData } from 'libs/shared/interfaces';\n\nexport enum CuratedDashboardAppLink {\n LatestReleases = 'latest-releases',\n ExploreAllTopics = 'explore-all-topics',\n ClassificationLatestReleases = 'classification-latest-releases',\n ClassificationDirectory = 'classification-directory'\n}\n\nexport enum CuratedWidgetCtaAppLink {\n TopicDirectory = 'topic-directory',\n TopicNewReleases = 'topic-new-releases',\n CuratedTopic = 'curated-topic'\n}\n\nexport interface BaseWidget<TContent extends HashObject = HashObject> {\n index: number;\n templateId: WidgetTemplate;\n widgetId: WidgetTypeId;\n name: string;\n description?: string;\n content?: TContent;\n}\n\nexport interface WidgetCta {\n text?: string;\n href?: string;\n icon?: ButtonIcon;\n appLink?: CuratedWidgetCtaAppLink;\n}\n\nexport type WidgetMetadata = AllWidgetTemplateProps['metadata'] & {\n showInTableOfContents: boolean,\n tocIndentation: number,\n headingOptional: boolean,\n aiAddedVideo: boolean\n};\n\nexport interface WidgetPreference {\n id: string;\n index?: number;\n hidden?: boolean;\n}\n\nexport interface CuratedWidget<\n TData extends CuratedWidgetData = CuratedWidgetData,\n TContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BaseWidget<TContent> {\n id: string;\n dashboardId: string;\n data: TData;\n status: WidgetStatus;\n metadata?: Partial<WidgetMetadata>;\n preferences?: WidgetPreference[];\n cursor?: string;\n\n // If a widget has curriculum IDs set, then it won't be accessible to anyone who doesn't have one of those curriculums\n curriculumIds?: string[];\n}\n\nexport type CuratedMediaWidget<\n TContent extends CuratedWidgetContent = CuratedWidgetContent\n> = CuratedWidget<CuratedObjectsWidgetData, TContent>;\n","import { ObjectHash } from 'backbone';\nimport Bloodhound from 'bloodhound';\n\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\n\nexport interface RemoteSearch<T> extends Bloodhound.BloodhoundOptions<T> {\n remote: Bloodhound.RemoteOptions<T>;\n}\n\nexport interface LocalSearch<T> extends Bloodhound.BloodhoundOptions<T> {\n local: T[] | (() => T[]);\n}\n\nexport type TypeaheadDataSource<T> = Bloodhound<T> |\n((query: string, syncResults: (result: T[]) => void, asyncResults?: (result: T[]) => void) => void);\n\nexport interface InstantSearchBloodhound<T> {\n bloodhound: TypeaheadDataSource<T>;\n name: string;\n}\n\nexport type TypeaheadConfig<T> = Twitter.Typeahead.Dataset<T>;\n\nexport interface TypeaheadConfigHandler<T> {\n (source?: InstantSearchBloodhound<T>, index?: number, options?: ObjectHash): Twitter.Typeahead.Dataset<T>;\n}\n\nexport interface BloodhoundConfigHandler<T> {\n (source: string, options?: ObjectHash): LocalSearch<T> | RemoteSearch<T>;\n}\n\nexport interface TypeaheadSourceItem<T> {\n name: string;\n typeaheadConfig: TypeaheadConfigHandler<T>;\n bloodhoundConfig?: BloodhoundConfigHandler<T>;\n options?: ObjectHash;\n}\n\nexport const AllSearchIndicesVideoStyle: SearchIndices[] = [ 'video', 'clip', 'interactive' ];\nexport const AllSearchIndicesInSearch: SearchIndices[] = [ 'playlist', 'series', 'clip', 'classification', 'interactive', 'video', 'company', 'category', 'partner_profile' ];\nexport const AllSearchIndicesInUserManager: SearchIndices[] = ['user'];\n","import { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { FilterStateHash } from '../reducers';\n\nimport { FilterProps } from './FilterProps';\nimport { SearchIndices } from './SearchResults';\n\nconst FilterIdNames =\n [\n 'sort', // \"sort\" isn't even a filter but it tends to go with our filters in our designs\n 'classification',\n 'presentation',\n 'audience',\n 'yearGroup',\n 'moviesAndTv',\n 'type',\n 'rating',\n 'interactives',\n 'clips',\n 'classroom',\n 'hasResources',\n 'hasSubtitles',\n 'productionYear',\n 'isHd',\n 'producedByClickView',\n 'duration',\n 'tagOrClassification',\n 'status',\n 'isAdmin',\n 'bulkActionType',\n 'userType',\n 'filter',\n 'channel',\n 'dateBroadcast',\n 'categoryId',\n 'hasInteractives',\n 'jobStatus',\n 'source',\n 'customerStatus',\n 'specialEventType',\n 'customerType',\n 'seriesId',\n 'scopeId'\n ] as const;\n\n/**\n * Any filters that shouldn't be sent to the backend as a filter\n * and are instead handled differently by the frontend\n */\nconst FilterBlacklist: Partial<Record<FilterIds, boolean>> = {\n type: true\n};\n\nexport type FilterIds = typeof FilterIdNames[number];\n\nexport const FilterWhitelist = FilterIdNames.reduce((acc, prev) => {\n return {\n ...acc,\n [prev]: !FilterBlacklist[prev]\n };\n}, {} as Record<FilterIds, boolean>);\n\nexport type FilterType = 'radio' | 'checkbox' | 'nested-checkbox' | 'grouped-checkbox' | 'switch' | 'more-filters' | 'rating' | 'dropdown' | 'tag' | 'button';\n\nexport interface SearchFilter<TFilterOptionId = string> {\n id: FilterIds;\n type: FilterType;\n compatibleIndices: SearchIndices[];\n\n name?: string;\n icon?: SvgIcon;\n description?: string;\n options?: FilterOption<TFilterOptionId>[];\n labelPrefix?: string;\n\n // For second layer options, for example 'presentation' checkbox filter has 'audience' as second layer option\n secondaryId?: FilterIds;\n\n customComponent?: (props: FilterProps) => JSX.Element;\n disabled?: boolean;\n disableOptions?: (options: FilterOption[], filters: SearchFilter[], state: FilterStateHash) => FilterOption[];\n}\n\nexport interface MoreFilters extends Omit<SearchFilter, 'id' | 'compatibleIndices'> {\n filters: SearchFilter[];\n id: string;\n}\n\nexport interface FilterOption<TId = string> {\n id: TId;\n name: string;\n default?: boolean;\n disabled?: boolean;\n secondLayerSelection?: FilterOption[];\n secondLayerOptions?: FilterOption[];\n group?: string;\n}\n\nexport type ProductionYearFilterOptions =\n 'any-year' |\n 'this-year' |\n 'last-3-years' |\n 'last-5-years';\n\nexport type DurationFilterOptions =\n 'bite-sized' |\n 'short' |\n 'medium' |\n 'long';\n\nexport enum SourceFilterOptions {\n MyVideos = 'my-videos',\n School = 'school',\n ExchangeArchive = 'exchange-archive',\n ClickView = 'clickview',\n LiveStreams = 'livestreams'\n}\n\nexport enum TypeFilterOptions {\n Video = 'video',\n Series = 'series',\n Playlist = 'playlist',\n Classification = 'classification',\n Clip = 'clip',\n Interactive = 'interactive',\n Company = 'company',\n Category = 'category',\n PartnerProfile = 'partner_profile'\n}\n","export enum WidgetTemplate {\n // Videos\n ThumbnailHeroMedia = 'thumbnail_hero_media',\n ThumbnailFeaturedMedia = 'thumbnail_featured_media',\n ThumbnailSlidingListSmall = 'thumbnail_sliding_list_small',\n ThumbnailSlidingListSmallV2 = 'thumbnail_sliding_list_small_v2',\n ThumbnailSlidingListLarge = 'thumbnail_sliding_list_large',\n ThumbnailFixedListMediaSmall = 'thumbnail_fixed_list_media_small',\n ThumbnailFixedListMediaLarge = 'thumbnail_fixed_list_media_large',\n ThumbnailFixedListFolderSmall = 'thumbnail_fixed_list_folder_small',\n ThumbnailVerticalList = 'thumbnail_vertical_list',\n PopoutThumbnailSlidingListLarge = 'popout_thumbnail_sliding_list_large',\n PopoutThumbnailSlidingListSmall = 'popout_thumbnail_sliding_list_small',\n FeaturedThumbnailSlidingList = 'featured_thumbnail_sliding_list',\n ThumbnailFixedListXLarge = 'thumbnail_fixed_list_xlarge',\n\n // Topics\n CoverSlidingPillListSmall = 'cover_sliding_pill_list_small',\n CoverFixedPillListLarge = 'cover_fixed_pill_list_large',\n StatsCoverFixedPillListLarge = 'stats_cover_fixed_pill_list_large',\n CoverFixedPillListXSmall = 'cover_fixed_pill_list_xsmall',\n ThumbnailFixedListLarge = 'thumbnail_fixed_list_large',\n ThumbnailFixedListSmall = 'thumbnail_fixed_list_small',\n EditableCoverFixedPillListSmall = 'editable_cover_fixed_pill_list_small',\n HeroBanner = 'hero_banner',\n HeroThumbnailSmall = 'hero_thumbnail_small',\n HeroBlockColourSmall = 'hero_block_colour_small',\n\n // Curriculum\n CurriculumResourcesAccordion = 'curriculum_resources_accordion',\n CurriculumCodeSearchResults = 'curriculum_code_search_results',\n\n // Playlists\n CoverFixedTileList = 'cover_fixed_tile_list',\n\n // Topics & Series\n PosterSlidingListLarge = 'poster_sliding_list_large',\n PosterSlidingListMedium = 'poster_sliding_list_medium',\n PosterSlidingListSmall = 'poster_sliding_list_small',\n PosterFixedListLarge = 'poster_fixed_list_large',\n\n // Blurbs & Topics\n HeroBannerSmall = 'hero_banner_small',\n\n // Text-based blurbs\n Heading = 'heading',\n AuthorReviewer = 'author_reviewer',\n Question = 'question',\n QuestionAccordion = 'question_accordion',\n FeedbackCta = 'feedback_cta',\n\n // Companies / Studios / Content Partners\n CircleLogoSlidingList = 'circle_logo_sliding_list',\n RectangularLogoSlidingList = 'rectangular_logo_sliding_list',\n RectangularLogoFixedList = 'rectangular_logo_fixed_list',\n ThumbnailFixedListSearchCta = 'thumbnail_fixed_list_search_cta',\n InfiniteThumbnailVerticalList = 'infinite_thumbnail_vertical_list',\n\n // Rating filters\n FilterSlidingPillListSmall = 'filter_sliding_pill_list_small',\n\n // Special events\n EventIconSlidingList = 'event_icon_sliding_list',\n\n // Tags filter\n TagSlidingList = 'tag_sliding_list',\n\n SearchSuggestionsBlurb = 'search_suggestions_blurb'\n}\n","export enum WidgetTypeId {\n // Video group\n CuratedMedia = 'curated_media',\n PlaylistMedia = 'playlist_media',\n SeriesMedia = 'series_media',\n ClassificationMedia = 'classification_media',\n LatestReleasedVideos = 'latest_released_videos',\n ContinueWatching = 'continue_watching_videos',\n CompanyLatestReleasedVideo = 'company_latest_released_video',\n CompanyVideos = 'company_videos',\n ClassificationLatestReleasedVideo = 'classification_latest_released_video',\n ClassificationLatestReleasedVideosV2 = 'classification_latest_released_videos_v2',\n CompanyClassificationVideos = 'company_classification_videos',\n ClassificationDashboardMedia = 'classification_dashboard_media',\n ClassificationDashboardExternalMedia = 'classification_dashboard_external_media',\n SeasonalClassificationMedia = 'seasonal_classification_media',\n TrendingClassificationsMedia = 'trending_classifications_media',\n ClassificationCurriculumMedia = 'classification_curriculum_media',\n\n // Topics group\n CuratedClassifications = 'curated_classifications',\n Classifications = 'classifications',\n ClassificationLatestReleasedVideos = 'classification_latest_released_videos',\n SpecialEventClassifications = 'special_event_classifications',\n LatestReleasedClassifications = 'latest_released_classifications',\n TrendingClassifications = 'trending_classifications',\n\n // Series group\n CuratedSeries = 'curated_series',\n\n // Playlists group\n CuratedPlaylists = 'curated_playlists',\n\n // Blurb group\n Blurb = 'blurb',\n DynamicBlurb = 'dynamic_blurb',\n AuthorReviewer = 'author_reviewer',\n Faq = 'faq',\n Feedback = 'feedback',\n\n // Network group\n CuratedCompanies = 'curated_companies',\n\n // Partner Profile group\n CuratedContentPartners = 'curated_content_partners',\n ContentPartnerLatestReleasedVideos = 'content_partner_latest_released_videos',\n ContentPartnerSeries = 'content_partner_series',\n ContentPartnerVideos = 'content_partner_videos',\n SpotlightContentPartners = 'spotlight_curated_content_partners',\n ContentPartners = 'content_partners',\n ContentPartnersHub = 'content_partners_hub',\n TrendingContentPartnersVideo = 'content_partner_trending_videos',\n ContentPartnerAllVideos = 'content_partner_all_videos',\n\n // Search filter group\n Ratings = 'ratings',\n\n // Presentations group\n Presentations = 'presentations',\n\n // Livestreams group\n UpcomingLivestreams = 'upcoming_livestreams',\n\n // Multimedia group\n CuratedMultimedia = 'curated_multimedia',\n\n // Legacy widget types\n ClassificationPlaylists = 'classification_playlists',\n ClassificationSeries = 'classification_series',\n ClassificationFeaturedVideo = 'classification_featured_video',\n ClassificationPinnedVideos = 'classification_pinned_videos',\n\n // Search widget types\n SearchRelevantTopics = 'search_relevant_topics',\n SearchCompanies = 'search_companies',\n SearchTopResults = 'search_top_results',\n SearchSeries = 'search_series',\n SearchPlaylists = 'search_playlists',\n SearchMyVideosFolder = 'search_my_videos_folders',\n SearchMySchoolLibraryFolder = 'search_my_school_library_folders',\n SearchMyVideos = 'search_my_videos',\n SearchMySchoolLibraryVideos = 'search_my_school_library_videos',\n SearchExchangeArchive = 'search_exchange_archive',\n SearchClickViewLive = 'search_clickview_live',\n SearchRelatedResults = 'search_related_results',\n SearchTags = 'search_tags',\n SearchCurriculumCode = 'search_curriculum_code',\n SearchSuggestions = 'search_suggestions',\n SearchContentPartners = 'search_content_partners'\n}\n","import { FormikContextType } from 'formik';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SearchResultObjectTypes } from 'libs/shared/apps/search/interfaces';\nimport { GetCustomParamOptions, WidgetTypeIdConfig } from 'libs/shared/constants/WidgetTypeIdConfig';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { OnlineUserRole } from 'libs/shared/enums/UserRole';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { SettingsHash } from 'libs/shared/hooks/useSettings';\nimport { BaseObject, ClassificationCurriculumInfo, ClassificationDashboardInfo, ClassificationDirectoryInfo, CuratedDashboard, CuratedMediaWidget, CuratedWidget, CuratedWidgetQueryParams, DashboardTargetInfo, DashboardTargetType, PartnerProfileDashboardInfo, UnknownDashboardTargetInfo } from 'libs/shared/interfaces';\n\ninterface LatestReleasesTimeRange {\n from: string;\n to: string;\n}\n\nexport const DashboardHelper = {\n\n /**\n * Same implementation as GetUserGroup() in Online.\n * @param userRole \n */\n getUserGroup(userRole: OnlineUserRole): UserGroup {\n if (userRole === OnlineUserRole.Student)\n return UserGroup.Learner;\n\n return UserGroup.Staff;\n }\n};\n\nexport const CuratedDashboardHelper = {\n onSelectCuratedObject(\n selectedObj: SearchResultObjectTypes | BaseObject,\n formikProps: FormikContextType<CuratedMediaWidget<BaseObject[]>>\n ) {\n const data = {\n ...formikProps.values.data,\n objectIds: ArrayHelper.addOrRemoveImmutable(formikProps.values.data.objectIds || [], selectedObj.id)\n };\n \n formikProps.setFieldValue('data', data);\n \n formikProps.setTouched({\n ...formikProps.touched,\n data: {\n objectIds: true\n }\n });\n },\n\n onRemoveCuratedObject(\n objectId: string,\n formikProps: FormikContextType<CuratedMediaWidget<BaseObject[]>>\n ) {\n const newData = {\n ...formikProps.values.data,\n objectIds: formikProps.values.data.objectIds.filter(id => id !== objectId)\n };\n\n formikProps.setFieldValue('data', newData);\n },\n\n getDashboardTarget(info: DashboardTargetInfo): string {\n if (info.targetType === DashboardTargetType.Discover)\n return `discover:presentation:${info.presentationId}`;\n\n if (info.targetType === DashboardTargetType.Classification)\n return `classification:${info.classificationId}`;\n\n if (info.targetType === DashboardTargetType.ClassificationDirectory)\n return `classification:${info.classificationId}:directory`;\n\n if (info.targetType === DashboardTargetType.ClassificationCurriculum)\n return `classification:${info.classificationId}:curriculum`;\n\n if (info.targetType === DashboardTargetType.MoviesAndTv)\n return `moviesAndTv:presentation:${info.presentationId}`;\n\n if (info.targetType === DashboardTargetType.Company)\n return `company:${info.companyId}:presentation:${info.presentationId}`;\n\n if (info.targetType === DashboardTargetType.PartnerProfile)\n return `partnerprofile:${info.slug}`;\n\n if (info.targetType === DashboardTargetType.DiscoverPartnerProfiles)\n return `discover:partners`;\n\n if (info.targetType === DashboardTargetType.PartnerProfileHub)\n return `discover:partners:hub`;\n\n return null;\n },\n\n getUnknownDashboardTarget(options: UnknownDashboardTargetInfo): string {\n const {\n presentationId,\n companyId,\n targetType,\n classificationId,\n slug\n } = options;\n\n if (targetType === DashboardTargetType.Discover) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.Discover,\n presentationId\n });\n }\n \n if (targetType === DashboardTargetType.MoviesAndTv) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.MoviesAndTv,\n presentationId\n });\n }\n \n if (targetType === DashboardTargetType.Company) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.Company,\n presentationId,\n companyId\n });\n }\n \n if (targetType === DashboardTargetType.Classification) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.Classification,\n classificationId\n });\n }\n \n if (targetType === DashboardTargetType.ClassificationDirectory) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.ClassificationDirectory,\n classificationId\n });\n }\n \n if (targetType === DashboardTargetType.ClassificationCurriculum) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.ClassificationCurriculum,\n classificationId\n });\n }\n\n if (targetType === DashboardTargetType.PartnerProfile) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.PartnerProfile,\n slug\n });\n }\n\n if (targetType === DashboardTargetType.DiscoverPartnerProfiles) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.DiscoverPartnerProfiles\n });\n }\n\n if (targetType === DashboardTargetType.PartnerProfileHub) {\n return CuratedDashboardHelper.getDashboardTarget({\n targetType: DashboardTargetType.PartnerProfileHub\n });\n }\n },\n\n getDashboardTargetInfo(dashboard: CuratedDashboard): DashboardTargetInfo {\n const type = CuratedDashboardHelper.getDashboardTargetType(dashboard);\n const split = dashboard?.target?.split(':');\n\n if (type === DashboardTargetType.Discover) {\n return {\n targetType: DashboardTargetType.Discover,\n presentationId: split[2]\n };\n }\n\n if (type === DashboardTargetType.Classification) {\n return {\n targetType: DashboardTargetType.Classification,\n classificationId: split[1]\n };\n }\n\n if (type === DashboardTargetType.ClassificationDirectory) {\n return {\n targetType: DashboardTargetType.ClassificationDirectory,\n classificationId: split[1]\n };\n }\n\n if (type === DashboardTargetType.ClassificationCurriculum) {\n return {\n targetType: DashboardTargetType.ClassificationCurriculum,\n classificationId: split[1]\n };\n }\n\n if (type === DashboardTargetType.MoviesAndTv) {\n return {\n targetType: DashboardTargetType.MoviesAndTv,\n presentationId: split[2]\n };\n }\n\n if (type === DashboardTargetType.Company) {\n return {\n targetType: DashboardTargetType.Company,\n companyId: split[1],\n presentationId: split[3]\n };\n }\n\n if (type === DashboardTargetType.PartnerProfile) {\n return {\n targetType: DashboardTargetType.PartnerProfile,\n slug: split[1]\n };\n }\n\n return null;\n },\n\n getDashboardTargetType(dashboard: CuratedDashboard): DashboardTargetType {\n if (!dashboard?.target)\n return null;\n\n if (dashboard.target.startsWith('discover')) {\n if (dashboard.target.endsWith('partners'))\n return DashboardTargetType.DiscoverPartnerProfiles;\n\n if (dashboard.target.endsWith('hub'))\n return DashboardTargetType.PartnerProfileHub;\n\n return DashboardTargetType.Discover;\n }\n\n if (dashboard.target.startsWith('classification')) {\n if (dashboard.target.endsWith('directory'))\n return DashboardTargetType.ClassificationDirectory;\n\n if (dashboard.target.endsWith('curriculum'))\n return DashboardTargetType.ClassificationCurriculum;\n\n return DashboardTargetType.Classification;\n }\n\n if (dashboard.target.startsWith('moviesAndTv'))\n return DashboardTargetType.MoviesAndTv;\n\n if (dashboard.target.startsWith('company')) {\n return DashboardTargetType.Company;\n }\n\n if (dashboard.target.startsWith('partnerprofile'))\n return DashboardTargetType.PartnerProfile;\n\n return null;\n },\n\n isType(dashboard: CuratedDashboard, target: DashboardTargetType): boolean {\n return CuratedDashboardHelper.getDashboardTargetType(dashboard) === target;\n },\n\n isCuratedDashboard(obj: BaseObject): obj is CuratedDashboard {\n const dashboard = obj as CuratedDashboard;\n\n const targetType = CuratedDashboardHelper.getDashboardTargetType(dashboard);\n\n if (targetType === DashboardTargetType.Discover)\n return true;\n\n if (targetType === DashboardTargetType.Classification)\n return true;\n\n if (targetType === DashboardTargetType.ClassificationDirectory)\n return true;\n\n if (targetType === DashboardTargetType.ClassificationCurriculum)\n return true;\n\n if (targetType === DashboardTargetType.MoviesAndTv)\n return true;\n\n if (targetType === DashboardTargetType.Company)\n return true;\n\n return false;\n },\n\n getLatestReleasedTimeRange(): LatestReleasesTimeRange {\n const now = new Date();\n const from = DateHelper.format(DateHelper.endOf(DateHelper.subtract(now, 2, 'month'), 'day'), 'YYYY-MM-DD');\n const to = DateHelper.format(DateHelper.endOf(now, 'day'), 'YYYY-MM-DD');\n return { from, to };\n },\n\n getWidgetParams(\n widgetTypeId: WidgetTypeId,\n templateId: WidgetTemplate,\n target: DashboardTargetType,\n audienceIds?: string | string[],\n preferredCurriculumId?: string,\n options?: GetCustomParamOptions\n ): CuratedWidgetQueryParams {\n const params: CuratedWidgetQueryParams = { };\n\n if (audienceIds)\n params.audienceId = audienceIds;\n\n if (widgetTypeId === WidgetTypeId.ClassificationCurriculumMedia)\n params.curriculumPresentationId = preferredCurriculumId;\n\n return {\n ...params,\n ...WidgetTypeIdConfig[widgetTypeId]?.getCustomParams?.(templateId, target, options)\n };\n },\n\n isSystemGeneratedDashboard(widgets: CuratedWidget[]): boolean {\n const systemGeneratedClassificationWidgetTypes = new Set<WidgetTypeId>([\n WidgetTypeId.ClassificationFeaturedVideo,\n WidgetTypeId.ClassificationPinnedVideos,\n WidgetTypeId.ClassificationPlaylists,\n WidgetTypeId.ClassificationSeries\n ]);\n\n return widgets?.some(widget => systemGeneratedClassificationWidgetTypes.has(widget.widgetId));\n },\n\n isClassificationDashboard(\n targetInfo: DashboardTargetInfo\n ): targetInfo is ClassificationDashboardInfo | ClassificationDirectoryInfo | ClassificationCurriculumInfo {\n return [\n DashboardTargetType.Classification,\n DashboardTargetType.ClassificationDirectory,\n DashboardTargetType.ClassificationCurriculum\n ].includes(targetInfo?.targetType);\n },\n\n isContentPartnerDashboard(targetInfo: DashboardTargetInfo): targetInfo is PartnerProfileDashboardInfo {\n return targetInfo?.targetType === DashboardTargetType.PartnerProfile;\n },\n\n isDirectoryDashboard(\n targetInfo: DashboardTargetInfo\n ): targetInfo is ClassificationDirectoryInfo {\n return targetInfo?.targetType === DashboardTargetType.ClassificationDirectory;\n },\n\n isWidgetTypeEnabled(\n widgetTypeId: WidgetTypeId,\n settingsHash: SettingsHash,\n targetType: DashboardTargetType\n ): boolean {\n const config = WidgetTypeIdConfig[widgetTypeId];\n \n return config?.predicate?.({ settingsHash, targetType }) ?? true;\n }\n};\n","import { Core } from 'libs/common/backbone/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SourceFilterOptions, TypeFilterOptions } from '../apps/search/interfaces';\nimport { WidgetAppLinks } from '../components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTemplate } from '../enums/WidgetTemplate';\nimport { WidgetTypeId } from '../enums/WidgetTypeId';\nimport { SettingsHash } from '../hooks/useSettings';\nimport { CuratedWidgetContent, CuratedWidgetQueryParams, DashboardTargetType, Series } from '../interfaces';\nimport { CuratedDashboardHelper } from '../utils/DashboardHelper';\n\ninterface WidgetTypeIdPredicateOptions {\n settingsHash: SettingsHash;\n targetType: DashboardTargetType;\n}\n\nexport interface GetCustomParamOptions {\n params?: CuratedWidgetQueryParams;\n}\n\ninterface WidgetTypeIdConfigType {\n getCustomParams: (\n widgetTemplate: WidgetTemplate,\n targetType: DashboardTargetType,\n options?: GetCustomParamOptions\n ) => CuratedWidgetQueryParams;\n minContent?: number;\n getCollectionAppLink?: (\n appLinks: Partial<WidgetAppLinks>,\n content?: CuratedWidgetContent\n ) => Core.AppLink;\n /**\n * Predicate used to determine if the widget\n * should be displayed based on the target\n * type and settings. Useful for feature flagging widgets.\n */\n predicate?: (options: WidgetTypeIdPredicateOptions) => boolean;\n}\n\nfunction partnerProfileWidgetTypeIdPredicate(options: WidgetTypeIdPredicateOptions): boolean {\n return options.settingsHash?.hasPartnerProfiles ?? false;\n}\n\nexport const WidgetTypeIdConfig: Record<WidgetTypeId, WidgetTypeIdConfigType> = {\n [WidgetTypeId.CuratedMedia]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.PlaylistMedia]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.SeriesMedia]: {\n getCustomParams: (widgetTemplate: WidgetTemplate) => {\n switch (widgetTemplate) {\n case WidgetTemplate.ThumbnailFixedListMediaLarge:\n return { limit: 2 };\n case WidgetTemplate.ThumbnailHeroMedia:\n case WidgetTemplate.ThumbnailFeaturedMedia:\n return { limit: 1 };\n default:\n return { limit: 12 };\n }\n },\n getCollectionAppLink: (appLinks, content) => appLinks?.series?.(ArrayHelper.first(content) as Series)\n },\n [WidgetTypeId.ClassificationMedia]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.LatestReleasedVideos]: {\n getCustomParams: () => {\n return CuratedDashboardHelper.getLatestReleasedTimeRange();\n }\n },\n [WidgetTypeId.ContinueWatching]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks?.watchHistory?.()\n },\n [WidgetTypeId.CompanyLatestReleasedVideo]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.CompanyVideos]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationLatestReleasedVideo]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationLatestReleasedVideosV2]: {\n getCustomParams: () => {\n return {\n limit: 12\n };\n },\n minContent: 4\n },\n [WidgetTypeId.SeasonalClassificationMedia]: {\n getCustomParams: () => {\n return {\n limit: 12\n };\n },\n minContent: 4\n },\n [WidgetTypeId.CompanyClassificationVideos]: {\n getCustomParams: () => ({}),\n minContent: 4\n },\n [WidgetTypeId.TrendingClassificationsMedia]: {\n getCustomParams: () => {\n return {\n limit: 12\n };\n },\n minContent: 4\n },\n\n [WidgetTypeId.CuratedClassifications]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.TrendingClassifications]: {\n getCustomParams: () => {\n return {\n limit: 6\n };\n },\n minContent: 3\n },\n [WidgetTypeId.Classifications]: {\n getCustomParams: (template: WidgetTemplate, targetType: DashboardTargetType) => {\n if (targetType === DashboardTargetType.Discover) {\n if (template === WidgetTemplate.EditableCoverFixedPillListSmall) {\n return {\n canBePreferred: true,\n isFollowing: true\n };\n }\n\n if ([ WidgetTemplate.PosterSlidingListSmall, WidgetTemplate.CoverFixedPillListXSmall ].includes(template)) {\n return {\n canBePreferred: true\n };\n }\n }\n\n return {};\n }\n },\n [WidgetTypeId.ClassificationLatestReleasedVideos]: {\n getCustomParams: () => {\n return CuratedDashboardHelper.getLatestReleasedTimeRange();\n }\n },\n [WidgetTypeId.SpecialEventClassifications]: {\n getCustomParams: () => ({\n from: DateHelper.format(new Date(), 'YYYY-MM-DD')\n })\n },\n [WidgetTypeId.LatestReleasedClassifications]: {\n getCustomParams: () => {\n return {\n limit: 6\n };\n },\n minContent: 3\n },\n\n [WidgetTypeId.CuratedSeries]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.CuratedPlaylists]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.Blurb]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.DynamicBlurb]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.AuthorReviewer]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.Faq]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.Feedback]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.CuratedCompanies]: {\n getCustomParams: () => ({}),\n predicate: options => {\n if (options.settingsHash?.hasPartnerProfiles)\n return false;\n return true;\n }\n },\n\n [WidgetTypeId.Ratings]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.Presentations]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.UpcomingLivestreams]: {\n getCustomParams: () => ({\n from: DateHelper.format(new Date(), 'YYYY-MM-DD')\n })\n },\n\n [WidgetTypeId.CuratedMultimedia]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.ClassificationPlaylists]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationSeries]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationFeaturedVideo]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationPinnedVideos]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationDashboardExternalMedia]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationDashboardMedia]: {\n getCustomParams: () => ({})\n },\n\n [WidgetTypeId.SearchRelevantTopics]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchRelevantTopics],\n type: [TypeFilterOptions.Classification]\n })\n },\n [WidgetTypeId.SearchCompanies]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchCompanies],\n type: [TypeFilterOptions.Company]\n }),\n predicate: options => {\n if (options.settingsHash?.hasPartnerProfiles)\n return false;\n return true;\n }\n },\n [WidgetTypeId.SearchSeries]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchSeries],\n type: [TypeFilterOptions.Series]\n })\n },\n [WidgetTypeId.SearchPlaylists]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchPlaylists],\n type: [TypeFilterOptions.Playlist]\n })\n },\n [WidgetTypeId.SearchMyVideosFolder]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchMyVideosFolder],\n source: [SourceFilterOptions.MyVideos]\n })\n },\n [WidgetTypeId.SearchMySchoolLibraryFolder]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchMySchoolLibraryFolder],\n source: [SourceFilterOptions.School]\n })\n },\n [WidgetTypeId.SearchMyVideos]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchMyVideos],\n source: [SourceFilterOptions.MyVideos]\n })\n },\n [WidgetTypeId.SearchMySchoolLibraryVideos]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchMySchoolLibraryVideos],\n source: [SourceFilterOptions.School]\n })\n },\n [WidgetTypeId.SearchExchangeArchive]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchExchangeArchive],\n source: [SourceFilterOptions.ExchangeArchive]\n })\n },\n [WidgetTypeId.SearchClickViewLive]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchClickViewLive],\n source: [SourceFilterOptions.LiveStreams]\n }),\n predicate: options => options.settingsHash?.clickViewLive ?? false\n },\n [WidgetTypeId.SearchRelatedResults]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.SearchTopResults]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.ClassificationCurriculumMedia]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.SearchTags]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.SearchCurriculumCode]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.SearchSuggestions]: {\n getCustomParams: () => ({})\n },\n [WidgetTypeId.SearchContentPartners]: {\n getCustomParams: () => ({}),\n getCollectionAppLink: appLinks => appLinks.searchHome({\n focus: [WidgetTypeId.SearchContentPartners],\n type: [TypeFilterOptions.PartnerProfile]\n }),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.CuratedContentPartners]: {\n getCustomParams: () => ({\n limit: 12\n }),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.ContentPartnerLatestReleasedVideos]: {\n getCustomParams: () => ({}),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.ContentPartnerSeries]: {\n getCollectionAppLink: appLinks => {\n return appLinks?.scopedSearchHome?.({\n type: [TypeFilterOptions.Series]\n });\n },\n getCustomParams: () => ({\n limit: 12\n }),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.ContentPartnerVideos]: {\n getCustomParams: () => ({}),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.SpotlightContentPartners]: {\n getCustomParams: () => ({}),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.ContentPartners]: {\n getCustomParams: (\n widgetTemplate: WidgetTemplate,\n targetType: DashboardTargetType,\n options?: GetCustomParamOptions\n ) => ({\n letterPrefix: options?.params?.letterPrefix,\n sort: options?.params?.sort\n }),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.ContentPartnersHub]: {\n getCustomParams: (\n widgetTemplate: WidgetTemplate,\n targetType: DashboardTargetType,\n options?: GetCustomParamOptions\n ) => {\n if (targetType !== DashboardTargetType.PartnerProfileHub)\n return {};\n\n return {\n objectId: options?.params?.objectId\n };\n },\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.TrendingContentPartnersVideo]: {\n getCustomParams: () => ({}),\n predicate: partnerProfileWidgetTypeIdPredicate\n },\n [WidgetTypeId.ContentPartnerAllVideos]: {\n getCustomParams: (widgetTemplate: WidgetTemplate) => {\n if (widgetTemplate === WidgetTemplate.ThumbnailFixedListSearchCta)\n return { limit: 3 };\n\n return {};\n },\n predicate: partnerProfileWidgetTypeIdPredicate\n }\n};\n","export enum WidgetStatus {\n Draft = 0,\n Published = 1,\n Archived = 2\n}\n\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { WidgetStatus } from 'libs/shared/enums/WidgetStatus';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseWidget, CuratedDashboardAppLink, CuratedWidget, CuratedWidgetContent, Playlist, Presentation, Series, Video, VideoTypes, VideoWidgetTemplateContent, WidgetMetadata, WidgetPreference } from 'libs/shared/interfaces';\n\nimport { AnyWidgetTemplateProps } from '../components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTypeIdConfig } from '../constants/WidgetTypeIdConfig';\nimport { MasterType } from '../enums/MasterType';\n\nimport { MasterTypeHelper } from './MasterTypeHelper';\n\nenum WidgetStatusString {\n Draft = 'Draft',\n Published = 'Published',\n Archived = 'Archived'\n}\n\nexport const WidgetHelper = {\n /**\n * Used by both the FixedWidget and DynamicWidget\n */\n getSliderAnalyticsOptions: (): AnalyticsOptions => ({\n actionType: UserAction.Click,\n location: LocationContext.SlidingList,\n entity: EntityType.Widget,\n descriptor: ClickDescriptor.Slide\n }),\n\n /**\n * Used by both the FixedWidget and DynamicWidget\n */\n getSliderItemAnalyticsOptions: (): AnalyticsOptions => ({\n location: LocationContext.SlidingListItem\n }),\n\n getSliderHeadingAnalyticsOptions: (): AnalyticsOptions => ({\n actionType: UserAction.Click,\n location: LocationContext.SlidingList,\n entity: EntityType.Widget,\n descriptor: ClickDescriptor.Title\n }),\n\n useGetContent(\n content: CuratedWidgetContent,\n widgetTypeId: WidgetTypeId,\n isPreviewing: boolean,\n preferences: WidgetPreference[],\n removedItemIds: string[]\n ): { content: CuratedWidgetContent, unfilteredContent: CuratedWidgetContent } {\n return React.useMemo(() => {\n if (!content)\n return { content: null, unfilteredContent: null };\n\n if (!Array.isArray(content))\n return { content, unfilteredContent: content };\n\n const preferencesHash = preferences?.reduce((acc: HashObject, current) => {\n acc[current.id] = current;\n return acc;\n }, {}) ?? {};\n\n const removedItemIdsHash = removedItemIds.reduce((acc: HashObject, current) => {\n acc[current] = true;\n return acc;\n }, {});\n\n const contentCopy = [...content];\n \n const sortedContent = contentCopy.sort((a, b) => {\n if (!('id' in a) || !('id' in b))\n return 0;\n\n const aIndex = preferencesHash[a.id]?.index ?? contentCopy.findIndex(c => 'id' in c && c.id === a.id);\n const bIndex = preferencesHash[b.id]?.index ?? contentCopy.findIndex(c => 'id' in c && c.id === b.id);\n\n if (aIndex < bIndex)\n return -1;\n\n if (aIndex > bIndex)\n return 1;\n\n return 0;\n });\n\n if (WidgetHelper.isBelowContentMinimum(sortedContent, widgetTypeId) && !isPreviewing) {\n return {\n content: [],\n unfilteredContent: sortedContent\n };\n }\n\n const filteredContent = sortedContent.filter(item => {\n if (preferencesHash['id' in item && item.id]?.hidden)\n return false;\n\n if (removedItemIdsHash['id' in item && item.id])\n return false;\n\n return true;\n });\n\n return {\n content: filteredContent,\n unfilteredContent: sortedContent\n };\n }, [ content, preferences ]);\n },\n\n isBelowContentMinimum(content: CuratedWidgetContent, widgetTypeId: WidgetTypeId): boolean {\n const minContent = WidgetTypeIdConfig[widgetTypeId]?.minContent || 0;\n return content?.length < minContent;\n },\n\n getCustomAppLink(props: AnyWidgetTemplateProps): Core.AppLink | null {\n if (\n !('metadata' in props) ||\n !('appLinks' in props) ||\n !('appLink' in props.metadata)\n ) {\n return null;\n }\n\n if (props.metadata?.appLink === CuratedDashboardAppLink.LatestReleases && 'latestReleases' in props.appLinks)\n return props.appLinks?.latestReleases?.();\n\n if (props.metadata?.appLink === CuratedDashboardAppLink.ExploreAllTopics && 'allTopics' in props.appLinks && 'presentation' in props)\n return props.appLinks?.allTopics?.(props.presentation.id);\n\n return null;\n },\n\n getWidgetStatus(widget: CuratedWidget): WidgetStatus {\n let status = widget.status;\n\n if (typeof (status) === 'string') {\n switch (status) {\n case WidgetStatusString.Archived:\n status = WidgetStatus.Archived;\n break;\n case WidgetStatusString.Published:\n status = WidgetStatus.Published;\n break;\n case WidgetStatusString.Draft:\n status = WidgetStatus.Draft;\n break;\n }\n }\n\n return status;\n },\n\n formatResponseData(widget: CuratedWidget, presentation?: Presentation): CuratedWidget {\n const content = widget.content;\n\n if (!content)\n return widget;\n\n if ('author' in content) {\n widget.content = [content] as CuratedWidgetContent;\n return widget;\n }\n\n if ('data' in content)\n widget.content = content.data as CuratedWidgetContent;\n else if (!Array.isArray(content))\n widget.content = [content]; // Handle `classification_featured_video` widgets, which don't return content as an array\n\n switch (widget.widgetId) {\n case WidgetTypeId.ClassificationSeries:\n widget.content = widget.content.filter((c): c is Series => 'tallPoster' in c && !!c.tallPoster?.id);\n break;\n case WidgetTypeId.ClassificationPlaylists:\n widget.content = widget.content.filter((c): c is Playlist => 'cover' in c && !!c.cover?.id);\n break;\n case WidgetTypeId.ContinueWatching:\n widget.content = widget.content.map(c => 'object' in c && c.object);\n default:\n break;\n case WidgetTypeId.Presentations:\n widget.content = widget.content.filter((c): c is Presentation => 'id' in c && c.id.toString() !== presentation?.id?.toString());\n break;\n }\n\n return widget;\n },\n \n isWidgetInTableOfContents(metadata: Partial<WidgetMetadata>): boolean {\n return !!metadata?.showInTableOfContents;\n },\n\n /**\n * Widget container view won't render a widget with no content typically,\n * but some widgets (such as blurbs) have no content, but should render anyway.\n */\n hasNoContent(widgetTypeId: WidgetTypeId): boolean {\n if ([ WidgetTypeId.Blurb, WidgetTypeId.Feedback ].includes(widgetTypeId)) return true;\n\n return false;\n },\n\n /**\n * If any widgets should be hidden on smaller screen sizes, add them here.\n * If this needs to be more flexible at some point, it should be added to\n * the widget settings and metadata object.\n */\n canDisplayOnScreenSize(\n breakpoints: Breakpoints,\n widgetTypeId: WidgetTypeId,\n widgetTemplate: WidgetTemplate\n ): boolean {\n if (widgetTypeId === WidgetTypeId.Blurb && widgetTemplate === WidgetTemplate.HeroBannerSmall)\n return !breakpoints.xs && !breakpoints.sm;\n\n return true;\n },\n\n isCompanyWidget(widgetTypeId: WidgetTypeId): boolean {\n switch (widgetTypeId) {\n case WidgetTypeId.CompanyLatestReleasedVideo:\n case WidgetTypeId.CompanyVideos:\n case WidgetTypeId.UpcomingLivestreams:\n return true;\n default:\n return false;\n }\n },\n\n getVideoContent(content: VideoWidgetTemplateContent): VideoTypes[] {\n const firstItem = ArrayHelper.first<Video | Series>(content);\n\n if (MasterTypeHelper.isType<Series>(firstItem, MasterType.Series))\n return firstItem.videos.data;\n\n return content as VideoTypes[];\n },\n\n showRemoveButton(widgetTypeId: WidgetTypeId): boolean {\n return widgetTypeId === WidgetTypeId.ContinueWatching;\n },\n\n /**\n * Paginated data returns more widgets so if we dont merge the widget content by widget type id,\n * it would add another widget to the page rather than appending content to the relevant\n * search result index\n * \n * For example:\n * Say we receive these widgets for a query:\n * - topics widget\n * - related results widget\n * \n * If a user scrolls down to the end of page we fetch more items from the last widget\n * which in this case is 'related results widget'. \n * Now our overall response looks like this\n * - topics widget\n * - related results widget\n * - related results widget\n * \n * Since this is a new widget item entry it will be rendered as a new widget with seprate headings etc.\n * In this case we want to combine these two widgets data into one so its looks like this again:\n * - topics widget\n * - related results widget (data is combined)\n * \n * But what if widget we get recieve has a different widget template id. This currently happens for\n * the 'series widget' - series widget can have the tall poster template or the thumbnail like template.\n * \n * so to visualize this it can be like:\n * - topics widget\n * - top results widget\n * - series widget (template: tall poster)\n * - series widget (template: thumbnail)\n * \n * Since they technically will look different based on the template id we will not merge the data in this case.\n * It will merge the data to the same widget as long as the combination of widget Id + template Id is the same.\n * \n * Since they are separate widgets they will render duplicate headings - we handle this in css instead which\n * checks for adjacent siblings and if its the same widget - it hides the widget heading so it will look\n * like its a single widget rather than separate widgets.\n * \n * - Nish\n */\n mergeWidgets<T extends BaseWidget>(\n items: T[],\n mergeContent: (target: T, source: T) => void\n ): T[] {\n const widgets = ObjectHelper.deepClone(items);\n const groupedWidgets = ArrayHelper.groupBy(widgets, 'widgetId');\n const mergedWidgets: T[] = [];\n\n for (const widgetGroup of Object.values(groupedWidgets)) {\n let currentMergedWidget: T | null = null;\n const groupMergedWidgets: T[] = [];\n\n for (const widget of widgetGroup) {\n if (!currentMergedWidget) {\n currentMergedWidget = widget;\n continue;\n }\n\n if (widget.templateId !== currentMergedWidget.templateId) {\n groupMergedWidgets.push(currentMergedWidget);\n currentMergedWidget = widget;\n continue;\n }\n\n mergeContent(currentMergedWidget, widget);\n }\n\n if (currentMergedWidget) {\n groupMergedWidgets.push(currentMergedWidget);\n }\n mergedWidgets.push(...groupMergedWidgets);\n }\n\n return mergedWidgets;\n }\n};\n",":local {\n .widgetTextButton {\n margin-top: 0.1rem;\n flex-shrink: 0;\n }\n}","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor, LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetTypeIdConfig } from 'libs/shared/constants/WidgetTypeIdConfig';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { WarningOutlineSvg } from 'libs/shared/images/svg/status/WarningOutlineSvg';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport styles from './widget-header.module.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description?: string | JSX.Element;\n isPreviewing?: boolean;\n content?: any[];\n widgetTypeId?: WidgetTypeId;\n badgeComponent?: JSX.Element;\n\n appLink?: Core.AppLink;\n onAppLinkClick?: () => void;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n \n showSeeMoreLink?: boolean;\n onClose?: () => void;\n onFollow?: (shouldFollow: boolean) => void;\n isFollowing?: boolean;\n showFollowSpinner?: boolean;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n if (!Core.AppLinkHelper.getHref(props.appLink))\n return null;\n\n return (\n <div className={`ms-3 ${styles.widgetTextButton}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{\n location: LocationContext.SlidingList,\n ...props.analyticsOptions,\n descriptor: ClickDescriptor.SeeMore\n }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeAll')}</p>\n </AppLink>\n </div>\n );\n}\n\nfunction CloseWidgetButton(props: { onClose: () => void }) {\n return (\n <div className={`ms-3 ${styles.widgetTextButton} text-decoration-none cursor-pointer`} onClick={props.onClose}>\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('hide')}</p>\n </div>\n );\n}\n\nfunction FollowWidgetButton(props: {\n isFollowing: boolean,\n onFollow: (shouldFollow: boolean) => void,\n showFollowSpinner: boolean\n}) {\n return (\n <div className={`ms-3 ${styles.widgetTextButton} text-decoration-none`}>\n {\n props.showFollowSpinner ?\n <Spinner as='span' animation='border' role='status' size='sm' /> :\n <p className='hover-text-underline text-dark curated-widget-heading cursor-pointer' onClick={() => props.onFollow(!props.isFollowing)}>\n {getPhrase(props.isFollowing ? 'unfollow' : 'follow')}\n </p>\n }\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n const isBelowMinimum = WidgetHelper.isBelowContentMinimum(props.content, props.widgetTypeId);\n const minContent = WidgetTypeIdConfig[props.widgetTypeId]?.minContent ?? 0;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className='d-flex align-items-center'>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link text-reset' : ''}`}\n onClick={props.onAppLinkClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.isPreviewing && isBelowMinimum && (\n <SvgContainer\n svg={WarningOutlineSvg}\n title={`Widget is below the minimum content threshold of ${minContent} and won't be displayed.`}\n tooltipSpanHack\n tooltipSpanHackClassName='d-inline text-danger me-1'\n />\n )}\n {props.name}\n </h2>\n </AppLink>\n {!!React.isValidElement(props.badgeComponent) && props.badgeComponent}\n </div>\n )}\n <div className='d-flex justify-content-between align-items-center gap-2'>\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n {FunctionHelper.isFunction(props.onFollow) &&\n <FollowWidgetButton\n isFollowing={props.isFollowing}\n onFollow={props.onFollow}\n showFollowSpinner={props.showFollowSpinner}\n />\n }\n {FunctionHelper.isFunction(props.onClose) && <CloseWidgetButton onClose={props.onClose}/>}\n </div>\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className='description curated-widget-description'>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}\n","export enum TagType {\n Normal = 'normal',\n Pedagogy = 'pedagogy',\n Hidden = 'hidden',\n Skill = 'skill',\n Curation = 'curation'\n}\n\n/**\n * This should **only** be used to create new tags in master (as it only accepts enum values).\n * Use the string enum above for all other cases.\n */\nexport enum TagTypeNumber {\n Normal = 0,\n Pedagogy = 1,\n Hidden = 2,\n Skill = 3,\n Curation = 4\n}\n",":local {\n $badge-base-height: 1.5rem;\n\n .tagList {\n display: flex;\n flex-wrap: wrap;\n }\n\n .badgeBase {\n height: $badge-base-height;\n }\n \n .disabled {\n background-color: $gray-200;\n color: $gray-500;\n\n &:hover {\n background-color: $gray-200;\n color: $gray-500;\n }\n }\n\n .partialTag {\n width: 5rem;\n }\n\n .removeBadge {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n\n .removeBadgeText {\n line-height: $badge-base-height;\n }\n \n .close {\n opacity: 1;\n background-size: 0.625rem;\n\n &:not(:disabled):hover {\n opacity: 1;\n }\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport { DivButton } from '../div-button/DivButton';\n\nimport styles from './tags.module.scss';\n\nconst namespace = 'shared.tags';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TagItemProps {\n tag: Tag;\n themeColours?: ThemeColours;\n appLink?: Core.AppLink;\n onClick?: () => void;\n onRemove?: () => void;\n disabled?: boolean;\n tagClass?: string;\n}\n\nfunction getTagTypeClass(tagType: TagType, hasThemeColour: boolean): string {\n switch (tagType) {\n case TagType.Pedagogy:\n case TagType.Skill:\n return 'pedagogy-tag text-white';\n\n case TagType.Hidden:\n return 'hidden-tag fw-normal';\n\n case TagType.Normal:\n if (!hasThemeColour)\n return 'bg-gray-100 fw-normal';\n return '';\n\n default:\n return '';\n }\n}\n\nexport function TagItem(props: TagItemProps): JSX.Element {\n const { tag, appLink, onClick, disabled, tagClass = 'tag' } = props;\n\n const name = tag.name.toLowerCase();\n const tagType = tag.tagType?.toLowerCase() as TagType;\n\n const hasThemeColour = (tagType === TagType.Normal && props.themeColours) && !!props.themeColours?.secondary;\n let classNames = `${styles.badgeBase} rounded-pill py-1 px-2 my-1 me-1 ${tagClass} ${getTagTypeClass(tagType, hasThemeColour)}`;\n let textContainerClass = `text-truncate text-nowrap`;\n\n if (hasThemeColour)\n classNames += ' text-white';\n\n if ((appLink || onClick) && !disabled)\n classNames += ' cursor-pointer';\n\n if (disabled)\n classNames += ' ' + styles.disabled;\n\n if (props.onRemove) {\n classNames += ' ' + styles.removeBadge;\n textContainerClass += ' ' + `${styles.removeBadgeText} d-inline-flex align-items-center lh-1`;\n }\n if (!appLink)\n classNames += ' d-inline-block';\n\n const style: React.CSSProperties = hasThemeColour ?\n { backgroundColor: props.themeColours.secondary } :\n {};\n\n if (appLink) {\n return (\n <AppLink\n onClick={onClick}\n appLink={appLink}\n className={classNames}\n title={name}\n style={style}\n >\n <span className={textContainerClass}>{name}</span>\n </AppLink>\n );\n }\n\n return (\n <button\n onClick={onClick}\n className={classNames}\n title={name}\n style={style}\n aria-label={`${getPhrase('ariaFilter')} ${name}`}\n >\n <span className={textContainerClass}>\n {name}\n {props.onRemove &&\n <DivButton\n onClick={props.onRemove}\n className={`${styles.close} btn-close font-size-normal`}\n role='button'\n aria-label='Close'\n />\n }\n </span>\n </button>\n );\n}\n"],"mappings":"+dASA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,eAAA,kBACA,EAAA,iBAAA,qBACA,EAAA,6BAAA,iCACA,EAAA,wBAAA,iCACD,CCwBY,EAA8C,CAAE,QAAS,OAAQ,cAAe,CAChF,EAA4C,CAAE,WAAY,SAAU,OAAQ,iBAAkB,cAAe,QAAS,UAAW,WAAY,kBAAmB,CAChK,EAAiD,CAAC,OAAO,CCjChE,EACJ,kYAmCC,CAMG,EAAuD,CAC3D,KAAM,GACP,CAIY,EAAkB,EAAc,QAAQ,EAAK,KACjD,CACL,GAAG,GACF,GAAO,CAAC,EAAgB,GAC1B,EACA,EAAE,CAA+B,CAkDxB,EAAL,SAAA,EAAA,OACL,GAAA,SAAA,YACA,EAAA,OAAA,SACA,EAAA,gBAAA,mBACA,EAAA,UAAA,YACA,EAAA,YAAA,oBACD,CAEW,EAAL,SAAA,EAAA,OACL,GAAA,MAAA,QACA,EAAA,OAAA,SACA,EAAA,SAAA,WACA,EAAA,eAAA,iBACA,EAAA,KAAA,OACA,EAAA,YAAA,cACA,EAAA,QAAA,UACA,EAAA,SAAA,WACA,EAAA,eAAA,wBACD,CChIW,EAAL,SAAA,EAAA,OAEL,GAAA,mBAAA,uBACA,EAAA,uBAAA,2BACA,EAAA,0BAAA,+BACA,EAAA,4BAAA,kCACA,EAAA,0BAAA,+BACA,EAAA,6BAAA,mCACA,EAAA,6BAAA,mCACA,EAAA,8BAAA,oCACA,EAAA,sBAAA,0BACA,EAAA,gCAAA,sCACA,EAAA,gCAAA,sCACA,EAAA,6BAAA,kCACA,EAAA,yBAAA,8BAGA,EAAA,0BAAA,gCACA,EAAA,wBAAA,8BACA,EAAA,6BAAA,oCACA,EAAA,yBAAA,+BACA,EAAA,wBAAA,6BACA,EAAA,wBAAA,6BACA,EAAA,gCAAA,uCACA,EAAA,WAAA,cACA,EAAA,mBAAA,uBACA,EAAA,qBAAA,0BAGA,EAAA,6BAAA,iCACA,EAAA,4BAAA,iCAGA,EAAA,mBAAA,wBAGA,EAAA,uBAAA,4BACA,EAAA,wBAAA,6BACA,EAAA,uBAAA,4BACA,EAAA,qBAAA,0BAGA,EAAA,gBAAA,oBAGA,EAAA,QAAA,UACA,EAAA,eAAA,kBACA,EAAA,SAAA,WACA,EAAA,kBAAA,qBACA,EAAA,YAAA,eAGA,EAAA,sBAAA,2BACA,EAAA,2BAAA,gCACA,EAAA,yBAAA,8BACA,EAAA,4BAAA,kCACA,EAAA,8BAAA,mCAGA,EAAA,2BAAA,iCAGA,EAAA,qBAAA,0BAGA,EAAA,eAAA,mBAEA,EAAA,uBAAA,iCACD,CCpEW,EAAL,SAAA,EAAA,OAEL,GAAA,aAAA,gBACA,EAAA,cAAA,iBACA,EAAA,YAAA,eACA,EAAA,oBAAA,uBACA,EAAA,qBAAA,yBACA,EAAA,iBAAA,2BACA,EAAA,2BAAA,gCACA,EAAA,cAAA,iBACA,EAAA,kCAAA,uCACA,EAAA,qCAAA,2CACA,EAAA,4BAAA,gCACA,EAAA,6BAAA,iCACA,EAAA,qCAAA,0CACA,EAAA,4BAAA,gCACA,EAAA,6BAAA,iCACA,EAAA,8BAAA,kCAGA,EAAA,uBAAA,0BACA,EAAA,gBAAA,kBACA,EAAA,mCAAA,wCACA,EAAA,4BAAA,gCACA,EAAA,8BAAA,kCACA,EAAA,wBAAA,2BAGA,EAAA,cAAA,iBAGA,EAAA,iBAAA,oBAGA,EAAA,MAAA,QACA,EAAA,aAAA,gBACA,EAAA,eAAA,kBACA,EAAA,IAAA,MACA,EAAA,SAAA,WAGA,EAAA,iBAAA,oBAGA,EAAA,uBAAA,2BACA,EAAA,mCAAA,yCACA,EAAA,qBAAA,yBACA,EAAA,qBAAA,yBACA,EAAA,yBAAA,qCACA,EAAA,gBAAA,mBACA,EAAA,mBAAA,uBACA,EAAA,6BAAA,kCACA,EAAA,wBAAA,6BAGA,EAAA,QAAA,UAGA,EAAA,cAAA,gBAGA,EAAA,oBAAA,uBAGA,EAAA,kBAAA,qBAGA,EAAA,wBAAA,2BACA,EAAA,qBAAA,wBACA,EAAA,4BAAA,gCACA,EAAA,2BAAA,+BAGA,EAAA,qBAAA,yBACA,EAAA,gBAAA,mBACA,EAAA,iBAAA,qBACA,EAAA,aAAA,gBACA,EAAA,gBAAA,mBACA,EAAA,qBAAA,2BACA,EAAA,4BAAA,mCACA,EAAA,eAAA,mBACA,EAAA,4BAAA,kCACA,EAAA,sBAAA,0BACA,EAAA,oBAAA,wBACA,EAAA,qBAAA,yBACA,EAAA,WAAA,cACA,EAAA,qBAAA,yBACA,EAAA,kBAAA,qBACA,EAAA,sBAAA,gCACD,CCxDY,EAAyB,CACpC,sBACE,EACA,EACA,CACA,IAAM,EAAO,CACX,GAAG,EAAY,OAAO,KACtB,UAAW,EAAY,qBAAqB,EAAY,OAAO,KAAK,WAAa,EAAE,CAAE,EAAY,GAAA,CAClG,CAED,EAAY,cAAc,OAAQ,EAAK,CAEvC,EAAY,WAAW,CACrB,GAAG,EAAY,QACf,KAAM,CACJ,UAAW,GAAA,CAEd,CAAC,EAGJ,sBACE,EACA,EACA,CACA,IAAM,EAAU,CACd,GAAG,EAAY,OAAO,KACtB,UAAW,EAAY,OAAO,KAAK,UAAU,OAAO,GAAM,IAAO,EAAA,CAClE,CAED,EAAY,cAAc,OAAQ,EAAQ,EAG5C,mBAAmB,EAAmC,CA4BpD,OA3BI,EAAK,aAAe,EAAoB,SACnC,yBAAyB,EAAK,iBAEnC,EAAK,aAAe,EAAoB,eACnC,kBAAkB,EAAK,mBAE5B,EAAK,aAAe,EAAoB,wBACnC,kBAAkB,EAAK,iBAAiB,YAE7C,EAAK,aAAe,EAAoB,yBACnC,kBAAkB,EAAK,iBAAiB,aAE7C,EAAK,aAAe,EAAoB,YACnC,4BAA4B,EAAK,iBAEtC,EAAK,aAAe,EAAoB,QACnC,WAAW,EAAK,UAAU,gBAAgB,EAAK,iBAEpD,EAAK,aAAe,EAAoB,eACnC,kBAAkB,EAAK,OAE5B,EAAK,aAAe,EAAoB,wBACnC,oBAEL,EAAK,aAAe,EAAoB,kBACnC,wBAEF,MAGT,0BAA0B,EAA6C,CACrE,GAAM,CACJ,iBACA,YACA,aACA,mBACA,QACE,EAEJ,GAAI,IAAe,EAAoB,SACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,SAChC,iBACD,CAAC,CAGJ,GAAI,IAAe,EAAoB,YACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,YAChC,iBACD,CAAC,CAGJ,GAAI,IAAe,EAAoB,QACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,QAChC,iBACA,YACD,CAAC,CAGJ,GAAI,IAAe,EAAoB,eACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,eAChC,mBACD,CAAC,CAGJ,GAAI,IAAe,EAAoB,wBACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,wBAChC,mBACD,CAAC,CAGJ,GAAI,IAAe,EAAoB,yBACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,yBAChC,mBACD,CAAC,CAGJ,GAAI,IAAe,EAAoB,eACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,eAChC,OACD,CAAC,CAGJ,GAAI,IAAe,EAAoB,wBACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,wBACjC,CAAC,CAGJ,GAAI,IAAe,EAAoB,kBACrC,OAAO,EAAuB,mBAAmB,CAC/C,WAAY,EAAoB,kBACjC,CAAC,EAIN,uBAAuB,EAAkD,CACvE,IAAM,EAAO,EAAuB,uBAAuB,EAAU,CAC/D,EAAQ,GAAW,QAAQ,MAAM,IAAI,CAoD3C,OAlDI,IAAS,EAAoB,SACxB,CACL,WAAY,EAAoB,SAChC,eAAgB,EAAM,GACvB,CAGC,IAAS,EAAoB,eACxB,CACL,WAAY,EAAoB,eAChC,iBAAkB,EAAM,GACzB,CAGC,IAAS,EAAoB,wBACxB,CACL,WAAY,EAAoB,wBAChC,iBAAkB,EAAM,GACzB,CAGC,IAAS,EAAoB,yBACxB,CACL,WAAY,EAAoB,yBAChC,iBAAkB,EAAM,GACzB,CAGC,IAAS,EAAoB,YACxB,CACL,WAAY,EAAoB,YAChC,eAAgB,EAAM,GACvB,CAGC,IAAS,EAAoB,QACxB,CACL,WAAY,EAAoB,QAChC,UAAW,EAAM,GACjB,eAAgB,EAAM,GACvB,CAGC,IAAS,EAAoB,eACxB,CACL,WAAY,EAAoB,eAChC,KAAM,EAAM,GACb,CAGI,MAGT,uBAAuB,EAAkD,CAkCvE,OAjCK,GAAW,OAGZ,EAAU,OAAO,WAAW,WAAW,CACrC,EAAU,OAAO,SAAS,WAAW,CAChC,EAAoB,wBAEzB,EAAU,OAAO,SAAS,MAAM,CAC3B,EAAoB,kBAEtB,EAAoB,SAGzB,EAAU,OAAO,WAAW,iBAAiB,CAC3C,EAAU,OAAO,SAAS,YAAY,CACjC,EAAoB,wBAEzB,EAAU,OAAO,SAAS,aAAa,CAClC,EAAoB,yBAEtB,EAAoB,eAGzB,EAAU,OAAO,WAAW,cAAc,CACrC,EAAoB,YAEzB,EAAU,OAAO,WAAW,UAAU,CACjC,EAAoB,QAGzB,EAAU,OAAO,WAAW,iBAAiB,CACxC,EAAoB,eAEtB,KAhCE,MAmCX,OAAO,EAA6B,EAAsC,CACxE,OAAO,EAAuB,uBAAuB,EAAU,GAAK,GAGtE,mBAAmB,EAA0C,CAC3D,IAAM,EAAY,EAEZ,EAAa,EAAuB,uBAAuB,EAAU,CAoB3E,OAlBI,IAAe,EAAoB,UAGnC,IAAe,EAAoB,gBAGnC,IAAe,EAAoB,yBAGnC,IAAe,EAAoB,0BAGnC,IAAe,EAAoB,aAGnC,IAAe,EAAoB,SAMzC,4BAAsD,CACpD,IAAM,EAAM,IAAI,KAGhB,MAAO,CAAE,KAFI,EAAW,OAAO,EAAW,MAAM,EAAW,SAAS,EAAK,EAAG,QAAQ,CAAE,MAAM,CAAE,aAAa,CAE5F,GADJ,EAAW,OAAO,EAAW,MAAM,EAAK,MAAM,CAAE,aAAa,CACrD,EAGrB,gBACE,EACA,EACA,EACA,EACA,EACA,EAC0B,CAC1B,IAAM,EAAmC,EAAG,CAQ5C,OANI,IACF,EAAO,WAAa,GAElB,IAAiB,EAAa,gCAChC,EAAO,yBAA2B,GAE7B,CACL,GAAG,EACH,GAAG,EAAmB,IAAe,kBAAkB,EAAY,EAAQ,EAAA,CAC5E,EAGH,2BAA2B,EAAmC,CAC5D,IAAM,EAA2C,IAAI,IAAkB,CACrE,EAAa,4BACb,EAAa,2BACb,EAAa,wBACb,EAAa,qBACd,CAAC,CAEF,OAAO,GAAS,KAAK,GAAU,EAAyC,IAAI,EAAO,SAAS,CAAC,EAG/F,0BACE,EACwG,CACxG,MAAO,CACL,EAAoB,eACpB,EAAoB,wBACpB,EAAoB,yBACrB,CAAC,SAAS,GAAY,WAAW,EAGpC,0BAA0B,EAA4E,CACpG,OAAO,GAAY,aAAe,EAAoB,gBAGxD,qBACE,EAC2C,CAC3C,OAAO,GAAY,aAAe,EAAoB,yBAGxD,oBACE,EACA,EACA,EACS,CAGT,OAFe,EAAmB,IAEnB,YAAY,CAAE,eAAc,aAAY,CAAC,EAAI,IAE/D,CCjUD,SAAS,EAAoC,EAAgD,CAC3F,OAAO,EAAQ,cAAc,oBAAsB,GAGrD,IAAa,EAAmE,EAC7E,EAAa,cAAe,CAC3B,qBAAwB,EAAE,EAC3B,EACA,EAAa,eAAgB,CAC5B,qBAAwB,EAAE,EAC3B,EACA,EAAa,aAAc,CAC1B,gBAAkB,GAAmC,CACnD,OAAQ,EAAR,CACE,KAAK,EAAe,6BAClB,MAAO,CAAE,MAAO,EAAG,CACrB,KAAK,EAAe,mBACpB,KAAK,EAAe,uBAClB,MAAO,CAAE,MAAO,EAAG,CACrB,QACE,MAAO,CAAE,MAAO,GAAI,GAG1B,sBAAuB,EAAU,IAAY,GAAU,SAAS,EAAY,MAAM,EAAQ,CAAW,CACtG,EACA,EAAa,qBAAsB,CAClC,qBAAwB,EAAE,EAC3B,EACA,EAAa,sBAAuB,CACnC,oBACS,EAAuB,4BAA4B,CAE7D,EACA,EAAa,kBAAmB,CAC/B,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,GAAU,gBAAgB,CAC7D,EACA,EAAa,4BAA6B,CACzC,qBAAwB,EAAE,EAC3B,EACA,EAAa,eAAgB,CAC5B,qBAAwB,EAAE,EAC3B,EACA,EAAa,mCAAoC,CAChD,qBAAwB,EAAE,EAC3B,EACA,EAAa,sCAAuC,CACnD,qBACS,CACL,MAAO,GACR,EAEH,WAAY,EACb,EACA,EAAa,6BAA8B,CAC1C,qBACS,CACL,MAAO,GACR,EAEH,WAAY,EACb,EACA,EAAa,6BAA8B,CAC1C,qBAAwB,EAAE,EAC1B,WAAY,EACb,EACA,EAAa,8BAA+B,CAC3C,qBACS,CACL,MAAO,GACR,EAEH,WAAY,EACb,EAEA,EAAa,wBAAyB,CACrC,qBAAwB,EAAE,EAC3B,EACA,EAAa,yBAA0B,CACtC,qBACS,CACL,MAAO,EACR,EAEH,WAAY,EACb,EACA,EAAa,iBAAkB,CAC9B,iBAAkB,EAA0B,IAAoC,CAC9E,GAAI,IAAe,EAAoB,SAAU,CAC/C,GAAI,IAAa,EAAe,gCAC9B,MAAO,CACL,eAAgB,GAChB,YAAa,GACd,CAGH,GAAI,CAAE,EAAe,uBAAwB,EAAe,yBAA0B,CAAC,SAAS,EAAS,CACvG,MAAO,CACL,eAAgB,GACjB,CAIL,MAAO,EAAE,EAEZ,EACA,EAAa,oCAAqC,CACjD,oBACS,EAAuB,4BAA4B,CAE7D,EACA,EAAa,6BAA8B,CAC1C,qBAAwB,CACtB,KAAM,EAAW,OAAO,IAAI,KAAQ,aAAa,CAClD,EACF,EACA,EAAa,+BAAgC,CAC5C,qBACS,CACL,MAAO,EACR,EAEH,WAAY,EACb,EAEA,EAAa,eAAgB,CAC5B,qBAAwB,EAAE,EAC3B,EAEA,EAAa,kBAAmB,CAC/B,qBAAwB,EAAE,EAC3B,EAEA,EAAa,OAAQ,CACpB,qBAAwB,EAAE,EAC3B,EAEA,EAAa,cAAe,CAC3B,qBAAwB,EAAE,EAC3B,EAEA,EAAa,gBAAiB,CAC7B,qBAAwB,EAAE,EAC3B,EACA,EAAa,KAAM,CAClB,qBAAwB,EAAE,EAC3B,EAEA,EAAa,UAAW,CACvB,qBAAwB,EAAE,EAC3B,EAEA,EAAa,kBAAmB,CAC/B,qBAAwB,EAAE,EAC1B,UAAW,GACT,CAAI,EAAQ,cAAc,mBAI7B,EAEA,EAAa,SAAU,CACtB,qBAAwB,EAAE,EAC3B,EAEA,EAAa,eAAgB,CAC5B,qBAAwB,EAAE,EAC3B,EAEA,EAAa,qBAAsB,CAClC,qBAAwB,CACtB,KAAM,EAAW,OAAO,IAAI,KAAQ,aAAa,CAClD,EACF,EAEA,EAAa,mBAAoB,CAChC,qBAAwB,EAAE,EAC3B,EAEA,EAAa,yBAA0B,CACtC,qBAAwB,EAAE,EAC3B,EACA,EAAa,sBAAuB,CACnC,qBAAwB,EAAE,EAC3B,EACA,EAAa,6BAA8B,CAC1C,qBAAwB,EAAE,EAC3B,EACA,EAAa,4BAA6B,CACzC,qBAAwB,EAAE,EAC3B,EACA,EAAa,sCAAuC,CACnD,qBAAwB,EAAE,EAC3B,EACA,EAAa,8BAA+B,CAC3C,qBAAwB,EAAE,EAC3B,EAEA,EAAa,sBAAuB,CACnC,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,qBAAqB,CAC1C,KAAM,CAAC,EAAkB,eAAe,CACzC,CAAC,CACH,EACA,EAAa,iBAAkB,CAC9B,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,gBAAgB,CACrC,KAAM,CAAC,EAAkB,QAAQ,CAClC,CAAC,CACF,UAAW,GACT,CAAI,EAAQ,cAAc,mBAI7B,EACA,EAAa,cAAe,CAC3B,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,aAAa,CAClC,KAAM,CAAC,EAAkB,OAAO,CACjC,CAAC,CACH,EACA,EAAa,iBAAkB,CAC9B,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,gBAAgB,CACrC,KAAM,CAAC,EAAkB,SAAS,CACnC,CAAC,CACH,EACA,EAAa,sBAAuB,CACnC,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,qBAAqB,CAC1C,OAAQ,CAAC,EAAoB,SAAS,CACvC,CAAC,CACH,EACA,EAAa,6BAA8B,CAC1C,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,4BAA4B,CACjD,OAAQ,CAAC,EAAoB,OAAO,CACrC,CAAC,CACH,EACA,EAAa,gBAAiB,CAC7B,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,eAAe,CACpC,OAAQ,CAAC,EAAoB,SAAS,CACvC,CAAC,CACH,EACA,EAAa,6BAA8B,CAC1C,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,4BAA4B,CACjD,OAAQ,CAAC,EAAoB,OAAO,CACrC,CAAC,CACH,EACA,EAAa,uBAAwB,CACpC,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,sBAAsB,CAC3C,OAAQ,CAAC,EAAoB,gBAAgB,CAC9C,CAAC,CACH,EACA,EAAa,qBAAsB,CAClC,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,oBAAoB,CACzC,OAAQ,CAAC,EAAoB,YAAY,CAC1C,CAAC,CACF,UAAW,GAAW,EAAQ,cAAc,eAAiB,GAC9D,EACA,EAAa,sBAAuB,CACnC,qBAAwB,EAAE,EAC3B,EACA,EAAa,kBAAmB,CAC/B,qBAAwB,EAAE,EAC3B,EACA,EAAa,+BAAgC,CAC5C,qBAAwB,EAAE,EAC3B,EACA,EAAa,YAAa,CACzB,qBAAwB,EAAE,EAC3B,EACA,EAAa,sBAAuB,CACnC,qBAAwB,EAAE,EAC3B,EACA,EAAa,mBAAoB,CAChC,qBAAwB,EAAE,EAC3B,EACA,EAAa,uBAAwB,CACpC,qBAAwB,EAAE,EAC1B,qBAAsB,GAAY,EAAS,WAAW,CACpD,MAAO,CAAC,EAAa,sBAAsB,CAC3C,KAAM,CAAC,EAAkB,eAAe,CACzC,CAAC,CACF,UAAW,EACZ,EACA,EAAa,wBAAyB,CACrC,qBAAwB,CACtB,MAAO,GACR,EACD,UAAW,EACZ,EACA,EAAa,oCAAqC,CACjD,qBAAwB,EAAE,EAC1B,UAAW,EACZ,EACA,EAAa,sBAAuB,CACnC,qBAAsB,GACb,GAAU,mBAAmB,CAClC,KAAM,CAAC,EAAkB,OAAO,CACjC,CAAC,CAEJ,qBAAwB,CACtB,MAAO,GACR,EACD,UAAW,EACZ,EACA,EAAa,sBAAuB,CACnC,qBAAwB,EAAE,EAC1B,UAAW,EACZ,EACA,EAAa,0BAA2B,CACvC,qBAAwB,EAAE,EAC1B,UAAW,EACZ,EACA,EAAa,iBAAkB,CAC9B,iBACE,EACA,EACA,KACI,CACJ,aAAc,GAAS,QAAQ,aAC/B,KAAM,GAAS,QAAQ,KACxB,EACD,UAAW,EACZ,EACA,EAAa,oBAAqB,CACjC,iBACE,EACA,EACA,IAEI,IAAe,EAAoB,kBAGhC,CACL,SAAU,GAAS,QAAQ,SAC5B,CAJQ,EAAE,CAMb,UAAW,EACZ,EACA,EAAa,8BAA+B,CAC3C,qBAAwB,EAAE,EAC1B,UAAW,EACZ,EACA,EAAa,yBAA0B,CACtC,gBAAkB,GACZ,IAAmB,EAAe,4BAC7B,CAAE,MAAO,EAAG,CAEd,EAAE,CAEX,UAAW,EACZ,CACF,CCxZW,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,UAAA,GAAA,YACA,EAAA,EAAA,SAAA,GAAA,iBACD,UCiBI,EAAL,SAAA,EAAA,OACE,GAAA,MAAA,QACA,EAAA,UAAA,YACA,EAAA,SAAA,cAHG,GAAA,EAAA,CAIJ,CAEY,EAAe,CAI1B,+BAAoD,CAClD,WAAY,EAAW,MACvB,SAAU,EAAgB,YAC1B,OAAQ,EAAW,OACnB,WAAY,EAAgB,MAC7B,EAKD,mCAAwD,CACtD,SAAU,EAAgB,gBAC3B,EAED,sCAA2D,CACzD,WAAY,EAAW,MACvB,SAAU,EAAgB,YAC1B,OAAQ,EAAW,OACnB,WAAY,EAAgB,MAC7B,EAED,cACE,EACA,EACA,EACA,EACA,EAC4E,CAC5E,OAAA,EAAa,YAAc,CACzB,GAAI,CAAC,EACH,MAAO,CAAE,QAAS,KAAM,kBAAmB,KAAM,CAEnD,GAAI,CAAC,MAAM,QAAQ,EAAQ,CACzB,MAAO,CAAE,UAAS,kBAAmB,EAAS,CAEhD,IAAM,EAAkB,GAAa,QAAQ,EAAiB,KAC5D,EAAI,EAAQ,IAAM,EACX,GACN,EAAE,CAAC,EAAI,EAAE,CAEN,EAAqB,EAAe,QAAQ,EAAiB,KACjE,EAAI,GAAW,GACR,GACN,EAAE,CAAC,CAEA,EAAc,CAAC,GAAG,EAAQ,CAE1B,EAAgB,EAAY,MAAM,EAAG,IAAM,CAC/C,GAAI,EAAE,OAAQ,IAAM,EAAE,OAAQ,GAC5B,MAAO,GAET,IAAM,EAAS,EAAgB,EAAE,KAAK,OAAS,EAAY,UAAU,GAAK,OAAQ,GAAK,EAAE,KAAO,EAAE,GAAG,CAC/F,EAAS,EAAgB,EAAE,KAAK,OAAS,EAAY,UAAU,GAAK,OAAQ,GAAK,EAAE,KAAO,EAAE,GAAG,CAQrG,OANI,EAAS,EACJ,GAEL,EAAS,EACJ,EAEF,GACP,CAmBF,OAjBI,EAAa,sBAAsB,EAAe,EAAa,EAAI,CAAC,EAC/D,CACL,QAAS,EAAE,CACX,kBAAmB,EACpB,CAaI,CACL,QAXsB,EAAc,OAAO,GAI3C,EAHI,EAAgB,OAAQ,GAAQ,EAAK,KAAK,QAG1C,EAAmB,OAAQ,GAAQ,EAAK,KAI5C,CAIA,kBAAmB,EACpB,EACA,CAAE,EAAS,EAAa,CAAC,EAG9B,sBAAsB,EAA+B,EAAqC,CACxF,IAAM,EAAa,EAAmB,IAAe,YAAc,EACnE,OAAO,GAAS,OAAS,GAG3B,iBAAiB,EAAoD,CAenE,MAbE,EAAE,aAAc,IAChB,EAAE,aAAc,IAChB,EAAE,YAAa,EAAM,UAEd,KAGL,EAAM,UAAU,UAAY,EAAwB,gBAAkB,mBAAoB,EAAM,SAC3F,EAAM,UAAU,kBAAkB,CAEvC,EAAM,UAAU,UAAY,EAAwB,kBAAoB,cAAe,EAAM,UAAY,iBAAkB,EACtH,EAAM,UAAU,YAAY,EAAM,aAAa,GAAG,CAEpD,MAGT,gBAAgB,EAAqC,CACnD,IAAI,EAAS,EAAO,OAEpB,GAAI,OAAQ,GAAY,SACtB,OAAQ,EAAR,CACE,KAAK,EAAmB,SACtB,EAAS,EAAa,SACtB,MACF,KAAK,EAAmB,UACtB,EAAS,EAAa,UACtB,MACF,KAAK,EAAmB,MACtB,EAAS,EAAa,MACtB,MAIN,OAAO,GAGT,mBAAmB,EAAuB,EAA4C,CACpF,IAAM,EAAU,EAAO,QAEvB,GAAI,CAAC,EACH,OAAO,EAET,GAAI,WAAY,EAEd,MADA,GAAO,QAAU,CAAC,EAAQ,CACnB,EAQT,OALI,SAAU,EACZ,EAAO,QAAU,EAAQ,KACjB,MAAM,QAAQ,EAAQ,GAC9B,EAAO,QAAU,CAAC,EAAQ,EAEpB,EAAO,SAAf,CACE,KAAK,EAAa,qBAChB,EAAO,QAAU,EAAO,QAAQ,OAAQ,GAAmB,eAAgB,GAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CACnG,MACF,KAAK,EAAa,wBAChB,EAAO,QAAU,EAAO,QAAQ,OAAQ,GAAqB,UAAW,GAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAC3F,MACF,KAAK,EAAa,iBAChB,EAAO,QAAU,EAAO,QAAQ,IAAI,GAAK,WAAY,GAAK,EAAE,OAAO,CACrE,QACE,MACF,KAAK,EAAa,cAChB,EAAO,QAAU,EAAO,QAAQ,OAAQ,GAAyB,OAAQ,GAAK,EAAE,GAAG,UAAU,GAAK,GAAc,IAAI,UAAU,CAAC,CAC/H,MAGJ,OAAO,GAGT,0BAA0B,EAA4C,CACpE,MAAO,CAAC,CAAC,GAAU,uBAOrB,aAAa,EAAqC,CAGhD,MAFA,EAAI,CAAE,EAAa,MAAO,EAAa,SAAU,CAAC,SAAS,EAAa,EAU1E,uBACE,EACA,EACA,EACS,CAIT,OAHI,IAAiB,EAAa,OAAS,IAAmB,EAAe,gBACpE,CAAC,EAAY,IAAM,CAAC,EAAY,GAElC,IAGT,gBAAgB,EAAqC,CACnD,OAAQ,EAAR,CACE,KAAK,EAAa,2BAClB,KAAK,EAAa,cAClB,KAAK,EAAa,oBAChB,MAAO,GACT,QACE,MAAO,KAIb,gBAAgB,EAAmD,CACjE,IAAM,EAAY,EAAY,MAAsB,EAAQ,CAK5D,OAHI,EAAiB,OAAe,EAAW,EAAW,OAAO,CACxD,EAAU,OAAO,KAEnB,GAGT,iBAAiB,EAAqC,CACpD,OAAO,IAAiB,EAAa,kBA2CvC,aACE,EACA,EACK,CACL,IAAM,EAAU,EAAa,UAAU,EAAM,CACvC,EAAiB,EAAY,QAAQ,EAAS,WAAW,CACzD,EAAqB,EAAE,CAE7B,IAAK,IAAM,KAAe,OAAO,OAAO,EAAe,CAAE,CACvD,IAAI,EAAgC,KAC9B,EAA0B,EAAE,CAElC,IAAK,IAAM,KAAU,EAAa,CAChC,GAAI,CAAC,EAAqB,CACxB,EAAsB,EACtB,SAGF,GAAI,EAAO,aAAe,EAAoB,WAAY,CACxD,EAAmB,KAAK,EAAoB,CAC5C,EAAsB,EACtB,SAGF,EAAa,EAAqB,EAAO,CAGvC,GACF,EAAmB,KAAK,EAAoB,CAE9C,EAAc,KAAK,GAAG,EAAmB,CAG3C,OAAO,GAEV,wDEjTK,EAAY,EAAgB,iBADhB,sBAC2C,CAsB7D,SAAS,EAAQ,EAA0B,CAIzC,OAHI,EAAoB,QAAQ,EAAM,QAAQ,EAI5C,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,QAAQ,EAAO,6BAC7B,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAM,QACf,cAAe,EAAM,cACrB,iBAAkB,CAChB,SAAU,EAAgB,YAC1B,GAAG,EAAM,iBACT,WAAY,EAAgB,QAC7B,CACD,UAAW,wBAAwB,EAAM,QAAU,sBAAwB,eAE3E,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,iEAAyD,EAAU,SAAA,CAAc,CAAA,CACtF,CAAA,CACN,CAAA,CAhBC,KAoBX,SAAS,EAAkB,EAAgC,CACzD,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,QAAQ,EAAO,iBAAiB,sCAAuC,QAAS,EAAM,kBACpG,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,iEAAyD,EAAU,OAAA,CAAY,CAAA,CACxF,CAAA,CAIV,SAAS,EAAmB,EAIzB,CACD,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,QAAQ,EAAO,iBAAiB,gCAE5C,EAAM,mBACJ,EAAA,EAAA,KAAC,EAAD,CAAS,GAAG,OAAO,UAAU,SAAS,KAAK,SAAS,KAAK,KAAO,CAAA,EAChE,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,uEAAuE,YAAe,EAAM,SAAS,CAAC,EAAM,YAAY,UAClI,EAAU,EAAM,YAAc,WAAa,SAAA,CAC1C,CAAA,CAEJ,CAAA,CAIV,SAAgB,EAAa,EAAuC,CAClE,IAAM,EAAiB,CAAC,CAAC,EAAM,YAE/B,GAAI,CAAC,EAAM,MAAQ,CAAC,EAAM,YACxB,OAAO,EAAA,EAAA,KAAA,EAAA,SAAA,EAAK,CAAA,CAEd,IAAM,EAAiB,EAAa,sBAAsB,EAAM,QAAS,EAAM,aAAa,CACtF,EAAa,EAAmB,EAAM,eAAe,YAAc,EAEzE,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,iCAAf,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0CAAf,CACG,CAAC,CAAC,EAAM,OACP,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qCAAf,EACE,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAM,QACf,cAAe,EAAM,cACrB,UAAW,wBAAwB,EAAM,QAAU,iCAAmC,KACtF,QAAS,EAAM,yBAEf,EAAA,EAAA,MAAC,KAAD,CAAI,UAAU,qCAAd,CACG,EAAM,cAAgB,IACrB,EAAA,EAAA,KAAC,EAAD,CACE,IAAK,EACL,MAAO,oDAAoD,EAAW,0BACtE,gBAAA,GACA,yBAAyB,4BACzB,CAAA,CAEH,EAAM,KAAA,GAED,CAAA,CACT,CAAC,CAAA,EAAO,eAAe,EAAM,eAAe,EAAI,EAAM,eAAA,IAG3D,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,mEAAf,CACG,CAAC,CAAC,EAAM,SAAW,CAAC,GAAkB,CAAC,CAAC,EAAM,kBAAmB,EAAA,EAAA,KAAC,EAAD,CAAS,GAAI,EAAQ,CAAA,CACtF,EAAe,WAAW,EAAM,SAAS,GACxC,EAAA,EAAA,KAAC,EAAD,CACE,YAAa,EAAM,YACnB,SAAU,EAAM,SAChB,kBAAmB,EAAM,kBACzB,CAAA,CAEH,EAAe,WAAW,EAAM,QAAQ,GAAI,EAAA,EAAA,KAAC,EAAD,CAAmB,QAAS,EAAM,QAAU,CAAA,OAI5F,IACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0DAAf,EACE,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,mDACX,EAAA,EAAA,KAAC,OAAD,CAAA,SAAO,EAAM,YAAmB,CAAA,CAC9B,CAAA,CACH,CAAC,CAAC,EAAM,SAAW,CAAC,CAAC,EAAM,kBAAmB,EAAA,EAAA,KAAC,EAAD,CAAS,GAAI,EAAQ,CAAA,CAAA,MC/I9E,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,OAAA,SACA,EAAA,SAAA,WACA,EAAA,OAAA,SACA,EAAA,MAAA,QACA,EAAA,SAAA,iBACD,sOEQK,EAAY,EAAgB,iBADhB,cAC2C,CAY7D,SAAS,EAAgB,EAAkB,EAAiC,CAC1E,OAAQ,EAAR,CACE,KAAK,EAAQ,SACb,KAAK,EAAQ,MACX,MAAO,0BAET,KAAK,EAAQ,OACX,MAAO,uBAET,KAAK,EAAQ,OAGX,OAFK,EAEE,GADE,wBAGX,QACE,MAAO,IAIb,SAAgB,EAAQ,EAAkC,CACxD,GAAM,CAAE,MAAK,UAAS,UAAS,WAAU,WAAW,OAAU,EAExD,EAAO,EAAI,KAAK,aAAa,CAC7B,EAAU,EAAI,SAAS,aAAa,CAEpC,EAAkB,IAAY,EAAQ,QAAU,EAAM,cAAiB,CAAC,CAAC,EAAM,cAAc,UAC/F,EAAa,GAAG,EAAO,UAAU,oCAAoC,EAAS,GAAG,EAAgB,EAAS,EAAe,GACzH,EAAqB,4BAErB,IACF,GAAc,gBAEX,GAAW,IAAY,CAAC,IAC3B,GAAc,mBAEZ,IACF,GAAc,IAAM,EAAO,UAEzB,EAAM,WACR,GAAc,IAAM,EAAO,YAC3B,GAAsB,IAAS,EAAO,gBAAgB,yCAEnD,IACH,GAAc,mBAEhB,IAAM,EAA6B,EACjC,CAAE,gBAAiB,EAAM,aAAa,UAAW,CACjD,EAAE,CAgBJ,OAdI,GAEA,EAAA,EAAA,KAAC,EAAD,CACW,UACA,UACT,UAAW,EACX,MAAO,EACA,kBAEP,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,WAAqB,EAAY,CAAA,CAC1C,CAAA,EAKZ,EAAA,EAAA,KAAC,SAAD,CACW,UACT,UAAW,EACX,MAAO,EACA,QACP,aAAY,GAAG,EAAU,aAAa,CAAC,GAAG,cAE1C,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,WAAjB,CACG,EACA,EAAM,WACL,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAM,SACf,UAAW,GAAG,EAAO,MAAM,6BAC3B,KAAK,SACL,aAAW,QACX,CAAA,CAAA,GAGC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{C as e,D as t,fn as n}from"./B1i9atik.chunk.js";import{t as r}from"./BU8rJI4_2.chunk.js";var i={accordionHeader:`_accordionHeader_1eoao_1`},a=n(t()),o=e();function s(e){return(0,o.jsx)(`ul`,{className:`striped-list list-unstyled no-full-width`,children:e.children})}function c(e){let[t,n]=a.useState(!1),[s,c]=a.useState({}),[l,u]=a.useState(0),d=a.useRef(null),f=a.useRef(null),p=a.useRef(null),m=a.useRef(null);function h(){t?(c({maxHeight:0,opacity:1}),u(0),f.current=window.setTimeout(()=>n(!1),400)):(n(!0),p.current=window.setTimeout(()=>{c({maxHeight:`max-content`,opacity:0,position:`absolute`})}))}return a.useEffect(()=>{if(!t)return;let e=Math.ceil(d.current?.getBoundingClientRect().height),n=s.opacity===0;n&&u(e),n&&l&&(c({position:`relative`}),m.current=window.requestAnimationFrame(()=>c({maxHeight:l,opacity:1})))},[t,l,s.maxHeight]),a.useEffect(()=>()=>{window.clearTimeout(f.current),window.clearTimeout(p.current),window.cancelAnimationFrame(m.current)},[]),(0,o.jsxs)(`li`,{className:`position-relative`,children:[(0,o.jsxs)(`div`,{className:`cursor-pointer d-flex align-items-center py-2 px-3`,onClick:h,children:[(0,o.jsx)(`div`,{className:`ms-1`,children:(0,o.jsx)(r,{direction:t?`down`:`right`})}),(0,o.jsx)(`span`,{className:`${t?`fw-semibold`:``} user-select-none ms-2`,children:e.title})]}),t&&(0,o.jsx)(`div`,{className:`bg-white`,children:(0,o.jsx)(`div`,{ref:d,className:`${i.accordionHeader}`,style:s,children:e.children})})]})}s.Header=c;function l(){return(0,o.jsx)(o.Fragment,{children:(0,o.jsx)(`ul`,{className:`list-unstyled`,children:[...Array(20)].map((e,t)=>(0,o.jsxs)(`li`,{className:`${t%2==0?`partial-loading-background`:``} d-flex w-100 p-2`,children:[(0,o.jsx)(`div`,{className:`svg-container`}),(0,o.jsx)(`span`,{children:`\xA0`})]},t))})})}var u=function(e){return e[e.Video=0]=`Video`,e[e.Audio=1]=`Audio`,e}({});export{l as n,s as r,u as t};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=CHojcsxD2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CHojcsxD2.chunk.js","names":[],"sources":["../../src/shared/components/accordion-list/accordion-list.module.scss","../../src/shared/components/accordion-list/AccordionList.tsx","../../src/shared/components/accordion-list/partial-loading/PartialAccordionList.tsx","../../src/apps/tv/interfaces/enums/ProgramType.ts"],"sourcesContent":[":local {\n .accordionHeader {\n position: relative;\n max-height: 0;\n opacity: 0;\n transition: max-height 0.4s ease-in-out;\n overflow: hidden;\n }\n}","import React from 'react';\n\nimport { Caret } from 'libs/shared/components/caret/Caret';\n\nimport styles from './accordion-list.module.scss';\n\nexport function AccordionList(props: React.PropsWithChildren) {\n return (\n <ul className='striped-list list-unstyled no-full-width'>\n {props.children}\n </ul>\n );\n}\n\ninterface AccordionListProps {\n title?: string;\n}\n\nfunction AccordionListHeader(props: React.PropsWithChildren<AccordionListProps>) {\n const [ show, setShow ] = React.useState(false);\n const [ programsStyle, setProgramsStyle ] = React.useState<React.CSSProperties>({});\n const [ dynamicHeight, setDynamicHeight ] = React.useState(0);\n\n const accordionBodyRef = React.useRef<HTMLDivElement>(null);\n const hideProgramsTimeRef = React.useRef<number>(null);\n const showProgramsTimeRef = React.useRef<number>(null);\n const animationFrameRef = React.useRef<number>(null);\n\n function handleSetShow() {\n if (show) {\n setProgramsStyle({ maxHeight: 0, opacity: 1 });\n setDynamicHeight(0);\n hideProgramsTimeRef.current = window.setTimeout(() => setShow(false), 400);\n } else {\n setShow(true);\n showProgramsTimeRef.current = window.setTimeout(() => {\n setProgramsStyle({ maxHeight: 'max-content', opacity: 0, position: 'absolute' });\n });\n }\n }\n\n React.useEffect(() => {\n if (!show) return;\n\n const accordionContentHeight = Math.ceil(accordionBodyRef.current?.getBoundingClientRect().height);\n const isHidden = programsStyle.opacity === 0;\n\n if (isHidden) {\n setDynamicHeight(accordionContentHeight);\n }\n\n if (isHidden && dynamicHeight) {\n setProgramsStyle({ position: 'relative' });\n animationFrameRef.current = window.requestAnimationFrame(\n () => setProgramsStyle({ maxHeight: dynamicHeight, opacity: 1 })\n );\n }\n }, [ show, dynamicHeight, programsStyle.maxHeight ]);\n\n React.useEffect(() => {\n return () => {\n window.clearTimeout(hideProgramsTimeRef.current);\n window.clearTimeout(showProgramsTimeRef.current);\n window.cancelAnimationFrame(animationFrameRef.current);\n };\n }, []);\n \n return (\n <li className='position-relative'>\n <div\n className='cursor-pointer d-flex align-items-center py-2 px-3'\n onClick={handleSetShow}\n >\n <div className='ms-1'>\n <Caret direction={show ? 'down' : 'right'} />\n </div>\n <span className={`${show ? 'fw-semibold' : ''} user-select-none ms-2`}>{props.title}</span>\n </div>\n {show && (\n <div className='bg-white'>\n <div\n ref={accordionBodyRef}\n className={`${styles.accordionHeader}`}\n style={programsStyle}\n >\n {props.children}\n </div>\n </div>\n )}\n </li>\n );\n}\n\nAccordionList.Header = AccordionListHeader;\n","import React from 'react';\n\nexport function PartialAccordionList() {\n return (\n <>\n <ul className='list-unstyled'>\n {[...Array(20)].map((_, index) => (\n <li key={index} className={`${index % 2 === 0 ? 'partial-loading-background' : ''} d-flex w-100 p-2`}>\n <div className='svg-container'></div>\n <span> </span>\n </li>\n ))}\n </ul>\n </>\n );\n}\n","export enum ProgramType {\n Video = 0,\n Audio = 1\n}\n"],"mappings":"kKCMA,SAAgB,EAAc,EAAgC,CAC5D,OACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,oDACX,EAAM,SACJ,CAAA,CAQT,SAAS,EAAoB,EAAoD,CAC/E,GAAM,CAAE,EAAM,GAAA,EAAkB,SAAS,GAAM,CACzC,CAAE,EAAe,GAAA,EAA2B,SAA8B,EAAE,CAAC,CAC7E,CAAE,EAAe,GAAA,EAA2B,SAAS,EAAE,CAEvD,EAAA,EAAyB,OAAuB,KAAK,CACrD,EAAA,EAA4B,OAAe,KAAK,CAChD,EAAA,EAA4B,OAAe,KAAK,CAChD,EAAA,EAA0B,OAAe,KAAK,CAEpD,SAAS,GAAgB,CACnB,GACF,EAAiB,CAAE,UAAW,EAAG,QAAS,EAAG,CAAC,CAC9C,EAAiB,EAAE,CACnB,EAAoB,QAAU,OAAO,eAAiB,EAAQ,GAAM,CAAE,IAAI,GAE1E,EAAQ,GAAK,CACb,EAAoB,QAAU,OAAO,eAAiB,CACpD,EAAiB,CAAE,UAAW,cAAe,QAAS,EAAG,SAAU,WAAY,CAAC,EAChF,EA8BN,OA1BA,EAAM,cAAgB,CACpB,GAAI,CAAC,EAAM,OAEX,IAAM,EAAyB,KAAK,KAAK,EAAiB,SAAS,uBAAuB,CAAC,OAAO,CAC5F,EAAW,EAAc,UAAY,EAEvC,GACF,EAAiB,EAAuB,CAGtC,GAAY,IACd,EAAiB,CAAE,SAAU,WAAY,CAAC,CAC1C,EAAkB,QAAU,OAAO,0BAC3B,EAAiB,CAAE,UAAW,EAAe,QAAS,EAAG,CAAC,CACjE,GAEF,CAAE,EAAM,EAAe,EAAc,UAAW,CAAC,CAEpD,EAAM,kBACS,CACX,OAAO,aAAa,EAAoB,QAAQ,CAChD,OAAO,aAAa,EAAoB,QAAQ,CAChD,OAAO,qBAAqB,EAAkB,QAAQ,EAEvD,EAAE,CAAC,EAGJ,EAAA,EAAA,MAAC,KAAD,CAAI,UAAU,6BAAd,EACE,EAAA,EAAA,MAAC,MAAD,CACE,UAAU,qDACV,QAAS,WAFX,EAIE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,EAAD,CAAO,UAAW,EAAO,OAAS,QAAW,CAAA,CACzC,CAAA,EACN,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,GAAG,EAAO,cAAgB,GAAG,iCAA0B,EAAM,MAAa,CAAA,CAAA,GAE5F,IACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBACb,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,UAAW,GAAG,EAAO,kBACrB,MAAO,WAEN,EAAM,SACH,CAAA,CACF,CAAA,CAAA,GAMd,EAAc,OAAS,EC3FvB,SAAgB,GAAuB,CACrC,OACE,EAAA,EAAA,KAAA,EAAA,SAAA,CAAA,UACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,yBACX,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAG,KACtB,EAAA,EAAA,MAAC,KAAD,CAAgB,UAAW,GAAG,EAAQ,GAAM,EAAI,6BAA+B,GAAG,4BAAlF,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,gBAAsB,CAAA,EACrC,EAAA,EAAA,KAAC,OAAD,CAAA,SAAM,OAAa,CAAA,CAAA,EAFZ,EAGJ,CAAA,CAEJ,CAAA,CACJ,CAAA,CCbP,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,MAAA,GAAA,cACD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,fn as n}from"./B1i9atik.chunk.js";import{l as r}from"./TJBzqR6k.chunk.js";import{t as i}from"./CrBD6Z4s.chunk.js";import{t as a}from"./DKbUI-vj.chunk.js";import{U as o,Z as s}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,fn as n}from"./B1i9atik.chunk.js";import{l as r}from"./TJBzqR6k.chunk.js";import{t as i}from"./CrBD6Z4s.chunk.js";import{t as a}from"./DKbUI-vj.chunk.js";import{U as o,Z as s}from"./app-fNhmX-xT.js";import{t as c}from"./CZrMa6z92.chunk.js";import{n as l,r as u,t as d}from"./Chib9pDe2.chunk.js";import{t as f}from"./DWVn5hOy2.chunk.js";import{t as p}from"./DjUmgrOk2.chunk.js";import{t as m}from"./DI6eYZuV.chunk.js";var h=n(t());function g(e){let{currentUser:t,region:n,config:r,program:a}=e,o=r.tvPreviewUrls[n.code],s=a.globalId.replace(/-/g,``),c=i.safeUrlConcat(o,`/thumbnail/${s}.jpg`),l=i.safeUrlConcat(o,`/144p/${s.toUpperCase()}_144p.mp4`),u=i.safeUrlConcat(o,`/subtitle/${s.toUpperCase()}.srt`),d=i.urlBuilder(i.safeUrlConcat(r.playerApiUrl,`/api/srt-to-vtt`),{url:u});return{videoId:null,episodeNumber:0,seriesName:null,mediaId:null,mediaType:null,ratingCode:null,region:t.instanceRegion,seasonNumber:null,viewerId:t.id,viewerCustomerId:t.customerId,files:{fileToken:``,progressive:[{mimeType:`video/mp4`,profile:`144`,quality:144,url:l,label:`Preview`}]},chapters:{list:[]},instanceRegion:t.instanceRegion,localCacheAddresses:[],posterUrl:c,resources:{list:[]},settings:{showSubtitles:!1,playbackProfile:`144`,playbackProfileLocalCache:`144`,playbackQuality:`144`,playbackQualityLocalCache:`144`,playbackQualityFallback:`144`,playbackSubtitleSizeDefault:`medium`},subtitles:{list:[{url:d,isDefault:!1,language:`en-AU`,mimeType:`text/vtt`,label:`English`}]},title:a.title}}var _=e();function v(e){let t=r(f.region(e.region)),n=r(s.config()),i=r(f.program(e.id)),v=r(a.currentUser()),[y,b]=h.useState(),x=m(`preview`,t.data,y);p(t,!0),c(i.statusCode);function S(t){b(t),e.currentTime&&t.currentTime(e.currentTime)}let C=t.hasCompleted&&i.hasCompleted&&n.hasCompleted&&v.hasCompleted,w=C&&g({currentUser:v.data,region:t.data,config:n.data,program:i.data});return(0,_.jsx)(o,{title:i.data?.title,closePopup:e.closePopup,showLoadingSpinner:!C,size:`lg`,bodyClassName:`p-0 rounded-3 position-relative`,hideTitle:!0,children:C&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`div`,{className:`overflow-hidden rounded-top-lg`,children:(0,_.jsx)(u,{viewKey:null,offlinePlaybackObject:w,playerApi:new URL(n.data.playerApiUrl),autoplay:!0,hotkeyElQuerySelector:`body`,onReady:S,allowFullscreen:!1})}),(0,_.jsx)(d,{program:i.data,title:i.data.title,description:i.data.description,videoActions:x(i.data)}),(0,_.jsx)(l,{closePopup:e.closePopup})]})})}export{v as TvPreviewView};
|
|
2
|
+
//# sourceMappingURL=CIxLO-TM.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CIxLO-TM.chunk.js","names":[],"sources":["../../src/apps/tv/views/tv-preview/utils/getTvPlaybackObject.ts","../../src/apps/tv/views/tv-preview/TvPreviewView.tsx"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { RegionName } from 'libs/analytics/enums/RegionName';\n\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';\n\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\ninterface GetTvPlaybackObjectOptions {\n currentUser: CurrentUser;\n region: TvRegion;\n config: ExchangeConfig;\n program: TvProgram;\n}\n\nexport function getTvPlaybackObject(options: GetTvPlaybackObjectOptions): PlaybackObject {\n const { currentUser, region, config, program } = options;\n\n const previewUrl = config.tvPreviewUrls[region.code];\n\n const globalId = program.globalId.replace(/-/g, '');\n\n const thumbnailUrl = UrlHelper.safeUrlConcat(\n previewUrl,\n `/thumbnail/${globalId}.jpg`\n );\n const fileUrl = UrlHelper.safeUrlConcat(\n previewUrl,\n `/144p/${globalId.toUpperCase()}_144p.mp4`\n );\n const subtitleLocation = UrlHelper.safeUrlConcat(\n previewUrl,\n `/subtitle/${globalId.toUpperCase()}.srt`\n );\n const subtitleUrl = UrlHelper.urlBuilder(\n UrlHelper.safeUrlConcat(config.playerApiUrl, `/api/srt-to-vtt`),\n { url: subtitleLocation }\n );\n\n return ({\n videoId: null,\n episodeNumber: 0,\n seriesName: null,\n mediaId: null,\n mediaType: null,\n ratingCode: null,\n region: currentUser.instanceRegion,\n seasonNumber: null,\n viewerId: currentUser.id,\n viewerCustomerId: currentUser.customerId,\n files: {\n fileToken: '',\n progressive: [{\n mimeType: 'video/mp4',\n profile: '144',\n quality: 144,\n url: fileUrl,\n label: 'Preview'\n }]\n },\n chapters: { list: []},\n instanceRegion: currentUser.instanceRegion as unknown as RegionName,\n localCacheAddresses: [],\n posterUrl: thumbnailUrl,\n resources: { list: []},\n settings: {\n showSubtitles: false,\n playbackProfile: '144',\n playbackProfileLocalCache: '144',\n playbackQuality: '144',\n playbackQualityLocalCache: '144',\n playbackQualityFallback: '144',\n playbackSubtitleSizeDefault: 'medium'\n },\n subtitles: {\n list: [{\n url: subtitleUrl,\n isDefault: false,\n language: 'en-AU',\n mimeType: 'text/vtt',\n label: 'English'\n }]\n },\n title: program.title\n });\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { PlayerOverlayButtons } from 'shared/components/player-overlay-buttons/PlayerOverlayButtons';\nimport { PreviewVideoDetails } from 'shared/components/preview-video-details/PreviewVideoDetails';\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useGetTvActions } from 'apps/tv/hooks/useGetTvActions';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nimport { getTvPlaybackObject } from './utils/getTvPlaybackObject';\n\ninterface TvPreviewViewProps extends PopupViewProps {\n id: string;\n region: string;\n currentTime: number;\n}\n\nexport function TvPreviewView(props: TvPreviewViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const config = Flight.useBasicFetch<ExchangeConfig>(ConfigRequests.config());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ playerRef, setPlayerRef ] = React.useState<PlayerReference>();\n\n const getVideoActions = useGetTvActions('preview', region.data, playerRef);\n\n useHandleRegionError(region, true);\n useHandleDialogError(program.statusCode);\n\n // TODO: Solve analytics collection\n function onReady(player: PlayerReference): void {\n setPlayerRef(player);\n\n if (props.currentTime)\n player.currentTime(props.currentTime);\n // setupAnalytics(player);\n }\n\n const dataLoaded = (\n region.hasCompleted &&\n program.hasCompleted &&\n config.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const playbackObject = dataLoaded && getTvPlaybackObject({\n currentUser: currentUser.data,\n region: region.data,\n config: config.data,\n program: program.data\n });\n\n return (\n <Popup\n title={program.data?.title}\n closePopup={props.closePopup}\n showLoadingSpinner={!dataLoaded}\n size='lg'\n bodyClassName='p-0 rounded-3 position-relative'\n hideTitle\n >\n {dataLoaded &&\n <>\n <div className='overflow-hidden rounded-top-lg'>\n <ClickViewPlayer\n viewKey={null}\n offlinePlaybackObject={playbackObject}\n playerApi={new URL(config.data.playerApiUrl)}\n autoplay\n hotkeyElQuerySelector='body'\n onReady={onReady}\n allowFullscreen={false}\n />\n </div>\n <PreviewVideoDetails\n program={program.data}\n title={program.data.title}\n description={program.data.description}\n videoActions={getVideoActions(program.data)}\n />\n <PlayerOverlayButtons closePopup={props.closePopup} />\n </>\n }\n </Popup>\n );\n}\n"],"mappings":"mcAoBA,SAAA,EAAA,EAAA,gVAwBE,MAAA,qsBCbF,SAAgB,EAAc,EAAwC,CACpE,IAAM,EAAS,EAA+B,EAAW,OAAO,EAAM,OAAO,CAAC,CACxE,EAAS,EAAqC,EAAe,QAAQ,CAAC,CACtE,EAAU,EAAgC,EAAW,QAAQ,EAAM,GAAG,CAAC,CACvE,EAAc,EAAkC,EAAa,aAAa,CAAC,CAE3E,CAAE,EAAW,GAAA,EAAuB,UAA2B,CAE/D,EAAkB,EAAgB,UAAW,EAAO,KAAM,EAAU,CAE1E,EAAqB,EAAQ,GAAK,CAClC,EAAqB,EAAQ,WAAW,CAGxC,SAAS,EAAQ,EAA+B,CAC9C,EAAa,EAAO,CAEhB,EAAM,aACR,EAAO,YAAY,EAAM,YAAY,CAIzC,IAAM,EACJ,EAAO,cACP,EAAQ,cACR,EAAO,cACP,EAAY,aAGR,EAAiB,GAAc,EAAoB,CACvD,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,OAAQ,EAAO,KACf,QAAS,EAAQ,KAClB,CAAC,CAEF,OACE,EAAA,EAAA,KAAC,EAAD,CACE,MAAO,EAAQ,MAAM,MACrB,WAAY,EAAM,WAClB,mBAAoB,CAAC,EACrB,KAAK,KACL,cAAc,kCACd,UAAA,YAEC,IACC,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2CACb,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,KACT,sBAAuB,EACvB,UAAW,IAAI,IAAI,EAAO,KAAK,aAAa,CAC5C,SAAA,GACA,sBAAsB,OACb,UACT,gBAAiB,GACjB,CAAA,CACE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAQ,KACjB,MAAO,EAAQ,KAAK,MACpB,YAAa,EAAQ,KAAK,YAC1B,aAAc,EAAgB,EAAQ,KAAK,CAC3C,CAAA,EACF,EAAA,EAAA,KAAC,EAAD,CAAsB,WAAY,EAAM,WAAc,CAAA,CACrD,CAAA,CAAA,CAEC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,b as n,bt as r,d as i,fn as a,s as o,t as s,x as c}from"./B1i9atik.chunk.js";import{d as l,l as u}from"./TJBzqR6k.chunk.js";import{t as d}from"./CzvVp9iC.chunk.js";import{t as f}from"./DRTfS6nN.chunk.js";import{I as p,M as m,U as h,Z as g}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,b as n,bt as r,d as i,fn as a,s as o,t as s,x as c}from"./B1i9atik.chunk.js";import{d as l,l as u}from"./TJBzqR6k.chunk.js";import{t as d}from"./CzvVp9iC.chunk.js";import{t as f}from"./DRTfS6nN.chunk.js";import{I as p,M as m,U as h,Z as g}from"./app-fNhmX-xT.js";import{t as _}from"./C9AjegY32.chunk.js";import{t as v}from"./Bswd1QrZ2.chunk.js";import{t as y}from"./BwAvKeam.chunk.js";import{t as b}from"./DAQxdC_x.chunk.js";import{t as x}from"./C4hd6q9D.chunk.js";var S=a(t()),C=e(),w=`exchange.add`,T=d.encloseNamespace(w);function E(e){let t=v(),a=l(),d=u(g.config()),E=u(b.exchange()),D=u(_.video(e.id)),[O,k]=S.useState(!1),[A,j]=S.useState(!1),[M,N]=S.useState(null),{previewContext:P,clearPreviewContext:F}=x(e.id,!1);S.useEffect(()=>{!D.data||A||I()},[D.data?.id]);async function I(){j(!0);try{let e=await a(b.addVideo(E.data.id,D.data.id));k(!0),N(e.id),s.logUserAction({id:D.data.id,name:D.data.name},{actionType:n.Submit,descriptor:c.AddToWorkspace,location:i.Popup,entity:o.Video})}catch{t.error(T(`error`)),e.closePopup()}}function L(){e.closePopup(),P?.appLink&&(y.preventScrollTop(),r.trigger(P.appLink),F())}return(0,C.jsx)(h,{title:T(`title`),closePopup:L,showLoadingSpinner:!O,children:O&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:`mx-auto w-75 mt-1 mb-2`,children:(0,C.jsx)(`img`,{src:f.General.CONFETTI,className:`img-fluid`,draggable:!1})}),(0,C.jsx)(`div`,{className:`text-center pb-3`,children:(0,C.jsx)(`h4`,{className:`mb-2`,children:(0,C.jsx)(p,{namespace:w,phrase:`added`})})}),(0,C.jsxs)(m,{children:[(0,C.jsx)(m.Cancel,{text:T(`close`),onClick:L,variant:`link`}),(0,C.jsx)(`a`,{href:`${d.data.liteUrl}/videos/${M}`,className:`btn btn-dark`,children:(0,C.jsx)(`span`,{className:`align-text-bottom me-1`,children:(0,C.jsx)(p,{namespace:w,phrase:`open`})})})]})]})})}export{E as ExchangeAddView};
|
|
2
|
+
//# sourceMappingURL=CLTKXoqB.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CLTKXoqB.chunk.js","names":[],"sources":["../../src/apps/exchange/views/exchange-add/ExchangeAddView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Config, Library, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\nconst namespace = 'exchange.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeAddViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function ExchangeAddView(props: ExchangeAddViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const exchange = Flight.useBasicFetch<Library>(ExchangeRequests.exchange());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n\n const [ added, setAdded ] = React.useState<boolean>(false);\n const [ adding, setAdding ] = React.useState<boolean>(false);\n const [ newVideoId, setNewVideoId ] = React.useState<string>(null);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.id, false);\n\n React.useEffect(() => {\n if (!video.data || adding)\n return;\n\n addVideo();\n }, [video.data?.id]);\n\n async function addVideo() {\n setAdding(true);\n\n try {\n const newVideo = await fetchAsync<Video>(ExchangeRequests.addVideo(\n exchange.data.id,\n video.data.id\n ));\n\n setAdded(true);\n setNewVideoId(newVideo.id);\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: LocationContext.Popup,\n entity: EntityType.Video\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\n }\n }\n\n /**\n * Because the add view can be navigated to from the ExchangePreviewView\n * which is an addressable popup, we need to navigate back to the \n * original route when this popup is closed - Sha\n */\n function closePopup(): void {\n props.closePopup();\n\n if (!previewContext?.appLink)\n return;\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext.appLink);\n clearPreviewContext();\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={!added}\n >\n {added &&\n <>\n <div className='mx-auto w-75 mt-1 mb-2'>\n <img src={ImageUrls.General.CONFETTI} className='img-fluid' draggable={false} />\n </div>\n\n <div className='text-center pb-3'>\n <h4 className='mb-2'>\n <Text namespace={namespace} phrase='added' />\n </h4>\n </div>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={closePopup}\n variant='link'\n />\n <a href={`${config.data.liteUrl}/videos/${newVideoId}`} className='btn btn-dark'>\n <span className='align-text-bottom me-1'>\n <Text namespace={namespace} phrase='open' />\n </span>\n </a>\n </PopupButtons>\n </>\n }\n </Popup>\n );\n}\n"],"mappings":"yfAuBM,EAAY,eACZ,EAAY,EAAgB,iBAAiB,EAAU,CAM7D,SAAgB,EAAgB,EAA0C,CACxE,IAAM,EAAS,GAAW,CACpB,EAAa,GAAyB,CAEtC,EAAS,EAA6B,EAAe,QAAQ,CAAC,CAC9D,EAAW,EAA8B,EAAiB,UAAU,CAAC,CACrE,EAAQ,EAA4B,EAAc,MAAM,EAAM,GAAG,CAAC,CAElE,CAAE,EAAO,GAAA,EAAmB,SAAkB,GAAM,CACpD,CAAE,EAAQ,GAAA,EAAoB,SAAkB,GAAM,CACtD,CAAE,EAAY,GAAA,EAAwB,SAAiB,KAAK,CAE5D,CAAE,iBAAgB,uBAAwB,EAAkB,EAAM,GAAI,GAAM,CAElF,EAAM,cAAgB,CAChB,CAAC,EAAM,MAAQ,GAGnB,GAAU,EACT,CAAC,EAAM,MAAM,GAAG,CAAC,CAEpB,eAAe,GAAW,CACxB,EAAU,GAAK,CAEf,GAAI,CACF,IAAM,EAAW,MAAM,EAAkB,EAAiB,SACxD,EAAS,KAAK,GACd,EAAM,KAAK,GACZ,CAAC,CAEF,EAAS,GAAK,CACd,EAAc,EAAS,GAAG,CAE1B,EAAgB,cACd,CAAE,GAAI,EAAM,KAAK,GAAI,KAAM,EAAM,KAAK,KAAM,CAC5C,CACE,WAAY,EAAW,OACvB,WAAY,EAAsB,eAClC,SAAU,EAAgB,MAC1B,OAAQ,EAAW,MACpB,CACF,MACK,CACN,EAAO,MAAM,EAAU,QAAQ,CAAC,CAChC,EAAM,YAAY,EAStB,SAAS,GAAmB,CAC1B,EAAM,YAAY,CAEb,GAAgB,UAGrB,EAAa,kBAAkB,CAC/B,EAAmB,QAAQ,EAAe,QAAQ,CAClD,GAAqB,EAGvB,OACE,EAAA,EAAA,KAAC,EAAD,CACE,MAAO,EAAU,QAAQ,CACb,aACZ,mBAAoB,CAAC,WAEpB,IACC,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,mCACb,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAU,QAAQ,SAAU,UAAU,YAAY,UAAW,GAAS,CAAA,CAC5E,CAAA,EAEN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,6BACb,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,iBACZ,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,QAAU,CAAA,CAC1C,CAAA,CACD,CAAA,EAEN,EAAA,EAAA,MAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAa,OAAd,CACE,KAAM,EAAU,QAAQ,CACxB,QAAS,EACT,QAAQ,OACR,CAAA,EACF,EAAA,EAAA,KAAC,IAAD,CAAG,KAAM,GAAG,EAAO,KAAK,QAAQ,UAAU,IAAc,UAAU,yBAChE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mCACd,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,OAAS,CAAA,CACvC,CAAA,CACL,CAAA,CACS,CAAA,CAAA,CACd,CAAA,CAAA,CAEC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,bt as n}from"./B1i9atik.chunk.js";import{l as r,y as i}from"./TJBzqR6k.chunk.js";import{n as a,t as o}from"./Dn3hwC-o.chunk.js";import{U as s,Z as c}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,bt as n}from"./B1i9atik.chunk.js";import{l as r,y as i}from"./TJBzqR6k.chunk.js";import{n as a,t as o}from"./Dn3hwC-o.chunk.js";import{U as s,Z as c}from"./app-fNhmX-xT.js";import{t as l}from"./C9AjegY32.chunk.js";import{t as u}from"./BwAvKeam.chunk.js";import{t as d}from"./C4hd6q9D.chunk.js";import{t as f}from"./DfWNECxe.chunk.js";import{t as p}from"./CZrMa6z92.chunk.js";import{n as m,r as h,t as g}from"./Chib9pDe2.chunk.js";t();var _=function(e){return e.Share=`share`,e.MasterObject=`masterobject`,e}({}),v={createViewKey(e,t,n,r,a){let o={mediaId:e.toString(),mediaIdType:t};return n&&(o.shareContextId=n),{url:`/api/player/create-view-key`,key:`view:key:${e}:${t}:${n}`,type:i.POST,data:o,cacheDuration:28800,success:r,error:a}}},y=e();function b(e){let t=r(l.video(e.videoId)),i=r(c.config()),b=r(v.createViewKey(e.videoId,_.MasterObject)),x=f(`preview`);p(t.statusCode);let{previewContext:S,clearPreviewContext:C}=d(e.videoId,!0);function w(e){}function T(){e.closePopup(),u.preventScrollTop(),n.trigger(S?.appLink??{application:a.EXCHANGE,action:o.Exchange.INDEX}),C()}let E=t.data&&i.hasCompleted&&b.hasCompleted;return(0,y.jsx)(s,{title:t.data?.name,hideTitle:!0,closePopup:T,showLoadingSpinner:!E,size:`lg`,bodyClassName:`p-0 rounded-3 position-relative`,children:E&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`div`,{className:`overflow-hidden rounded-top-lg`,children:(0,y.jsx)(h,{viewKey:b.data.viewKey,playerApi:new URL(i.data.playerApiUrl),autoplay:!0,hotkeyElQuerySelector:`body`,onReady:w,allowFullscreen:!1})}),(0,y.jsx)(g,{video:t.data,title:t.data.name,description:t.data.description,videoActions:x.getVideoActions(t.data)}),(0,y.jsx)(m,{closePopup:T})]})})}export{b as ExchangePreviewView};
|
|
2
|
+
//# sourceMappingURL=CNuGo1LQ2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CNuGo1LQ2.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/MediaIdType.ts","../../../../libs/shared/src/flight-requests/PlayerRequests.ts","../../src/apps/exchange/views/exchange-preview/ExchangePreviewView.tsx"],"sourcesContent":["export enum MediaIdType {\n Share = 'share',\n MasterObject = 'masterobject'\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerViewKey } from 'libs/shared/interfaces';\n\nexport const PlayerRequests = {\n createViewKey(\n mediaId: string,\n mediaIdType: MediaIdType,\n shareContextId?: string,\n success?: (viewKey: PlayerViewKey) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n const data: HashObject = {\n mediaId: mediaId.toString(),\n mediaIdType\n };\n\n if (shareContextId)\n data.shareContextId = shareContextId;\n\n return {\n url: `/api/player/create-view-key`,\n key: `view:key:${mediaId}:${mediaIdType}:${shareContextId}`,\n type: HttpVerbs.POST,\n data,\n /**\n * A view key is valid for 8 hours, at that point we need refetch the view key\n */\n cacheDuration: 28800,\n success,\n error\n };\n }\n};\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { Config, PlayerViewKey, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { PlayerOverlayButtons } from 'shared/components/player-overlay-buttons/PlayerOverlayButtons';\nimport { PreviewVideoDetails } from 'shared/components/preview-video-details/PreviewVideoDetails';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\ninterface ExchangePreviewViewProps extends PopupViewProps {\n videoId: string;\n currentTime: number;\n}\n\nexport function ExchangePreviewView(props: ExchangePreviewViewProps): JSX.Element {\n // const analyticsTracker = React.useRef<PlayerAnalyticsTracker>(null);\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.videoId, MediaIdType.MasterObject)\n );\n\n const videoActions = useGetExchangeActions('preview');\n useHandleDialogError(video.statusCode);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, true);\n\n // TODO: Solve analytics collection\n function onReady(player: PlayerReference): void {\n player;\n // setupAnalytics(player);\n }\n\n // function setupAnalytics(player: PlayerReference): void {\n // analyticsTracker.current = new PlayerAnalyticsTracker({\n // player,\n // video: props.video,\n // analyticsLocation: props.embed ?\n // LocationContext.EmbeddedPlayer :\n // LocationContext.PlayPage,\n // shareId: props.shareLink?.id\n // });\n // }\n\n function onClose(): void {\n props.closePopup();\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext?.appLink ?? {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n });\n clearPreviewContext();\n }\n\n const hasLoaded = (\n video.data &&\n config.hasCompleted &&\n viewKey.hasCompleted\n );\n\n return (\n <Popup\n title={video.data?.name}\n hideTitle\n closePopup={onClose}\n showLoadingSpinner={!hasLoaded}\n size='lg'\n bodyClassName='p-0 rounded-3 position-relative'\n >\n {hasLoaded &&\n <>\n <div className='overflow-hidden rounded-top-lg'>\n <ClickViewPlayer\n viewKey={viewKey.data.viewKey}\n playerApi={new URL(config.data.playerApiUrl)}\n autoplay\n hotkeyElQuerySelector='body'\n onReady={onReady}\n allowFullscreen={false}\n />\n </div>\n <PreviewVideoDetails\n video={video.data}\n title={video.data.name}\n description={video.data.description}\n videoActions={videoActions.getVideoActions(video.data)}\n />\n <PlayerOverlayButtons closePopup={onClose} />\n </>\n }\n </Popup>\n );\n}\n"],"mappings":"ucAAA,IAAA,EAAA,SAAA,EAAA,OACE,GAAA,MAAA,QACA,EAAA,aAAA,sBCMW,EAAiB,CAC5B,cACE,EACA,EACA,EACA,EACA,EACgB,CAChB,IAAM,EAAmB,CACvB,QAAS,EAAQ,UAAU,CAC3B,cACD,CAKD,OAHI,IACF,EAAK,eAAiB,GAEjB,CACL,IAAK,8BACL,IAAK,YAAY,EAAQ,GAAG,EAAY,GAAG,IAC3C,KAAM,EAAU,KAChB,OAIA,cAAe,MACf,UACA,QACD,EAEJ,OCPD,SAAgB,EAAoB,EAA8C,CAEhF,IAAM,EAAQ,EAA4B,EAAc,MAAM,EAAM,QAAQ,CAAC,CACvE,EAAS,EAA6B,EAAe,QAAQ,CAAC,CAC9D,EAAU,EACd,EAAe,cAAc,EAAM,QAAS,EAAY,aAAa,CACtE,CAEK,EAAe,EAAsB,UAAU,CACrD,EAAqB,EAAM,WAAW,CAEtC,GAAM,CAAE,iBAAgB,uBAAwB,EAAkB,EAAM,QAAS,GAAK,CAGtF,SAAS,EAAQ,EAA+B,EAgBhD,SAAS,GAAgB,CACvB,EAAM,YAAY,CAElB,EAAa,kBAAkB,CAC/B,EAAmB,QAAQ,GAAgB,SAAW,CACpD,YAAa,EAAY,SACzB,OAAQ,EAAQ,SAAS,MAC1B,CAAC,CACF,GAAqB,CAGvB,IAAM,EACJ,EAAM,MACN,EAAO,cACP,EAAQ,aAGV,OACE,EAAA,EAAA,KAAC,EAAD,CACE,MAAO,EAAM,MAAM,KACnB,UAAA,GACA,WAAY,EACZ,mBAAoB,CAAC,EACrB,KAAK,KACL,cAAc,2CAEb,IACC,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2CACb,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAQ,KAAK,QACtB,UAAW,IAAI,IAAI,EAAO,KAAK,aAAa,CAC5C,SAAA,GACA,sBAAsB,OACb,UACT,gBAAiB,GACjB,CAAA,CACE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CACE,MAAO,EAAM,KACb,MAAO,EAAM,KAAK,KAClB,YAAa,EAAM,KAAK,YACxB,aAAc,EAAa,gBAAgB,EAAM,KAAK,CACtD,CAAA,EACF,EAAA,EAAA,KAAC,EAAD,CAAsB,WAAY,EAAW,CAAA,CAC5C,CAAA,CAAA,CAEC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{tt as e}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{tt as e}from"./app-fNhmX-xT.js";var t={isType(t,n){return t?.typeId?t.typeId===n:t?.type?.toLowerCase()===e[n].toLowerCase()},isResource(n){return t.isType(n,e.Resource)},isClassification(e){return e.type===`Subject`}};export{t};
|
|
2
|
+
//# sourceMappingURL=CQKpvTZY.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CQKpvTZY.chunk.js","names":[],"sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};\n"],"mappings":"uCAGA,IAAa,EAAmB,CAC9B,OAA6B,EAAU,EAA8B,CAKnE,OAJI,GAAK,OACA,EAAI,SAAW,EAGjB,GAAK,MAAM,aAAa,GAAK,EAAW,GAAQ,aAAa,EAGtE,WAAW,EAA2B,CACpC,OAAO,EAAiB,OAAiB,EAAK,EAAW,SAAS,EAGpE,iBAAiB,EAAiC,CAChD,OAAO,EAAI,OAAS,WAEvB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,fn as n}from"./B1i9atik.chunk.js";import{M as r,T as i,k as a,n as o,s}from"./gJSjbaVK.chunk.js";import{n as c,t as l}from"./DbTIHWB1.chunk.js";import{t as u}from"./BQH0_mji.chunk.js";import{t as d}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,fn as n}from"./B1i9atik.chunk.js";import{M as r,T as i,k as a,n as o,s}from"./gJSjbaVK.chunk.js";import{n as c,t as l}from"./DbTIHWB1.chunk.js";import{t as u}from"./BQH0_mji.chunk.js";import{t as d}from"./CBwR65WF.chunk.js";var f=n(t()),p=n(r()),m=e(),h=c(`h4`);h.displayName=`DivStyledAsH4`;var g=f.forwardRef(({className:e,bsPrefix:t,as:n=h,...r},a)=>(t=i(t,`alert-heading`),(0,m.jsx)(n,{ref:a,className:(0,p.default)(e,t),...r})));g.displayName=`AlertHeading`;var _=f.forwardRef(({className:e,bsPrefix:t,as:n=u,...r},a)=>(t=i(t,`alert-link`),(0,m.jsx)(n,{ref:a,className:(0,p.default)(e,t),...r})));_.displayName=`AlertLink`;var v=f.forwardRef((e,t)=>{let{bsPrefix:n,show:r=!0,closeLabel:c=`Close alert`,closeVariant:u,className:d,children:f,variant:h=`primary`,onClose:g,dismissible:_,transition:v=o,...y}=a(e,{show:`onClose`}),b=i(n,`alert`),x=s(e=>{g&&g(!1,e)}),S=v===!0?o:v,C=(0,m.jsxs)(`div`,{role:`alert`,...S?void 0:y,ref:t,className:(0,p.default)(d,b,h&&`${b}-${h}`,_&&`${b}-dismissible`),children:[_&&(0,m.jsx)(l,{onClick:x,"aria-label":c,variant:u}),f]});return S?(0,m.jsx)(S,{unmountOnExit:!0,...y,ref:void 0,in:r,children:C}):r?C:null});v.displayName=`Alert`;var y=Object.assign(v,{Link:_,Heading:g});function b({error:e}){return d({title:`Dev Error`}),e?(0,m.jsxs)(`div`,{className:`px-3`,children:[(0,m.jsx)(`h1`,{children:e.name}),(0,m.jsx)(y,{variant:`danger`,children:(0,m.jsx)(`h2`,{children:e.message})}),(0,m.jsxs)(y,{variant:`warning`,children:[(0,m.jsx)(`h3`,{children:`Call stack`}),(0,m.jsx)(`code`,{children:e.stack})]})]}):(0,m.jsx)(m.Fragment,{})}export{b as DevErrorView};
|
|
2
|
+
//# sourceMappingURL=CRAcJqQV2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CRAcJqQV2.chunk.js","names":["divWithClassName"],"sources":["../../../../../node_modules/react-bootstrap/esm/AlertHeading.js","../../../../../node_modules/react-bootstrap/esm/AlertLink.js","../../../../../node_modules/react-bootstrap/esm/Alert.js","../../../../libs/shared/src/views/dev-error/DevErrorView.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport divWithClassName from './divWithClassName';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nDivStyledAsH4.displayName = 'DivStyledAsH4';\nconst AlertHeading = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-heading');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertHeading.displayName = 'AlertHeading';\nexport default AlertHeading;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AlertLink = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = Anchor,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-link');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertLink.displayName = 'AlertLink';\nexport default AlertLink;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AlertHeading from './AlertHeading';\nimport AlertLink from './AlertLink';\nimport Fade from './Fade';\nimport CloseButton from './CloseButton';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Alert = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n bsPrefix,\n show = true,\n closeLabel = 'Close alert',\n closeVariant,\n className,\n children,\n variant = 'primary',\n onClose,\n dismissible,\n transition = Fade,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n show: 'onClose'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'alert');\n const handleClose = useEventCallback(e => {\n if (onClose) {\n onClose(false, e);\n }\n });\n const Transition = transition === true ? Fade : transition;\n const alert = /*#__PURE__*/_jsxs(\"div\", {\n role: \"alert\",\n ...(!Transition ? props : undefined),\n ref: ref,\n className: classNames(className, prefix, variant && `${prefix}-${variant}`, dismissible && `${prefix}-dismissible`),\n children: [dismissible && /*#__PURE__*/_jsx(CloseButton, {\n onClick: handleClose,\n \"aria-label\": closeLabel,\n variant: closeVariant\n }), children]\n });\n if (!Transition) return show ? alert : null;\n return /*#__PURE__*/_jsx(Transition, {\n unmountOnExit: true,\n ...props,\n ref: undefined,\n in: show,\n children: alert\n });\n});\nAlert.displayName = 'Alert';\nexport default Object.assign(Alert, {\n Link: AlertLink,\n Heading: AlertHeading\n});","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\ninterface DevErrorViewProps {\n error: Error;\n}\n\nexport function DevErrorView({ error }: DevErrorViewProps): React.ReactElement {\n useSetPageMetadata({ title: 'Dev Error' });\n\n if (!error)\n return <></>;\n\n return (\n <div className='px-3'>\n <h1>{error.name}</h1>\n <Alert variant='danger'>\n <h2>{error.message}</h2>\n </Alert>\n <Alert variant='warning'>\n <h3>Call stack</h3>\n <code>{error.stack}</code>\n </Alert>\n </div>\n );\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"iRAOM,EAAgBA,EAAiB,KAAK,CAC5C,EAAc,YAAc,gBAC5B,IAAM,EAA4B,EAAM,YAAY,CAClD,YACA,WACA,GAAI,EAAY,EAChB,GAAG,GACF,KACD,EAAW,EAAmB,EAAU,gBAAgB,EACpC,EAAA,EAAA,KAAK,EAAW,CAC7B,MACL,WAAA,EAAA,EAAA,SAAsB,EAAW,EAAS,CAC1C,GAAG,EACJ,CAAC,EACF,CACF,EAAa,YAAc,eCf3B,IAAM,EAAyB,EAAM,YAAY,CAC/C,YACA,WACA,GAAI,EAAY,EAChB,GAAG,GACF,KACD,EAAW,EAAmB,EAAU,aAAa,EACjC,EAAA,EAAA,KAAK,EAAW,CAC7B,MACL,WAAA,EAAA,EAAA,SAAsB,EAAW,EAAS,CAC1C,GAAG,EACJ,CAAC,EACF,CACF,EAAU,YAAc,YCPxB,IAAM,EAAqB,EAAM,YAAY,EAAmB,IAAQ,CACtE,GAAM,CACJ,WACA,OAAO,GACP,aAAa,cACb,eACA,YACA,WACA,UAAU,UACV,UACA,cACA,aAAa,EACb,GAAG,GACD,EAAgB,EAAmB,CACrC,KAAM,UACP,CAAC,CACI,EAAS,EAAmB,EAAU,QAAQ,CAC9C,EAAc,EAAiB,GAAK,CACpC,GACF,EAAQ,GAAO,EAAE,EAEnB,CACI,EAAa,IAAe,GAAO,EAAO,EAC1C,GAAqB,EAAA,EAAA,MAAM,MAAO,CACtC,KAAM,QACN,GAAK,EAAqB,IAAA,GAAR,EACb,MACL,WAAA,EAAA,EAAA,SAAsB,EAAW,EAAQ,GAAW,GAAG,EAAO,GAAG,IAAW,GAAe,GAAG,EAAO,cAAc,CACnH,SAAU,CAAC,IAA4B,EAAA,EAAA,KAAK,EAAa,CACvD,QAAS,EACT,aAAc,EACd,QAAS,EACV,CAAC,CAAE,EAAQ,CACb,CAAC,CAEF,OADK,GACe,EAAA,EAAA,KAAK,EAAY,CACnC,cAAe,GACf,GAAG,EACH,IAAK,IAAA,GACL,GAAI,EACJ,SAAU,EACX,CAAC,CAPsB,EAAO,EAAQ,MAQvC,CACF,EAAM,YAAc,QACpB,IAAA,EAAe,OAAO,OAAO,EAAO,CAClC,KAAM,EACN,QAAS,EACV,CAAC,CCnDF,SAAgB,EAAa,CAAE,SAAgD,CAM7E,OALA,EAAmB,CAAE,MAAO,YAAa,CAAC,CAErC,GAIH,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,KAAD,CAAA,SAAK,EAAM,KAAU,CAAA,EACrB,EAAA,EAAA,KAAC,EAAD,CAAO,QAAQ,mBACb,EAAA,EAAA,KAAC,KAAD,CAAA,SAAK,EAAM,QAAa,CAAA,CAClB,CAAA,EACR,EAAA,EAAA,MAAC,EAAD,CAAO,QAAQ,mBAAf,EACE,EAAA,EAAA,KAAC,KAAD,CAAA,SAAI,aAAe,CAAA,EACnB,EAAA,EAAA,KAAC,OAAD,CAAA,SAAO,EAAM,MAAa,CAAA,CACpB,GACJ,IAZC,EAAA,EAAA,KAAA,EAAA,SAAA,EAAK,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t}from"./B1i9atik.chunk.js";import{H as n,I as r,N as i,P as a}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t}from"./B1i9atik.chunk.js";import{H as n,I as r,N as i,P as a}from"./app-fNhmX-xT.js";t();var o=e(),s=`shared.formButtons`;function c(e){let t=n(),c=a(t);return(0,o.jsx)(i,{variant:e.variant||`primary`,type:`submit`,disabled:!c,size:e.size,className:e.className?e.className:``,showSpinner:t.isSubmitting,children:e.submitText?(0,o.jsx)(o.Fragment,{children:e.submitText}):(0,o.jsx)(r,{namespace:s,phrase:e.isNew?`create`:`save`})})}export{c as t};
|
|
2
|
+
//# sourceMappingURL=CSB18s8X2.chunk.js.map
|