@clickview/lite 0.80.0-rc.1 → 0.80.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/bundles.json +1 -1
- package/dist/scripts/234-9dadd5c069-lite.chunk.js +3 -0
- package/dist/scripts/234-9dadd5c069-lite.chunk.js.map +1 -0
- package/dist/scripts/3811-54d881ffbc-lite.chunk.js +3 -0
- package/dist/scripts/3811-54d881ffbc-lite.chunk.js.map +1 -0
- package/dist/scripts/3840-47765fe979-lite.chunk.js +2 -0
- package/dist/scripts/3840-47765fe979-lite.chunk.js.map +1 -0
- package/dist/scripts/{4578-58e37a9ae8-lite.chunk.js → 4578-27028d26eb-lite.chunk.js} +2 -2
- package/dist/scripts/4578-27028d26eb-lite.chunk.js.map +1 -0
- package/dist/scripts/5434-a2bee0a420-lite.chunk.js +2 -0
- package/dist/scripts/5434-a2bee0a420-lite.chunk.js.map +1 -0
- package/dist/scripts/6741-ae590891ba-lite.chunk.js +3 -0
- package/dist/scripts/6741-ae590891ba-lite.chunk.js.map +1 -0
- package/dist/scripts/6948-74a27f0b91-lite.chunk.js +3 -0
- package/dist/scripts/6948-74a27f0b91-lite.chunk.js.map +1 -0
- package/dist/scripts/9649-d090a78b2d-lite.chunk.js +2 -0
- package/dist/scripts/9649-d090a78b2d-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-116a634469.min.js → bundle-18e2186208.min.js} +3 -3
- package/dist/scripts/{bundle-116a634469.min.js.map → bundle-18e2186208.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/234-b6b8f1faef-lite.chunk.js +0 -3
- package/dist/scripts/234-b6b8f1faef-lite.chunk.js.map +0 -1
- package/dist/scripts/3811-282392e8bf-lite.chunk.js +0 -3
- package/dist/scripts/3811-282392e8bf-lite.chunk.js.map +0 -1
- package/dist/scripts/3840-60e66f7f7c-lite.chunk.js +0 -2
- package/dist/scripts/3840-60e66f7f7c-lite.chunk.js.map +0 -1
- package/dist/scripts/4578-58e37a9ae8-lite.chunk.js.map +0 -1
- package/dist/scripts/5434-4183e29781-lite.chunk.js +0 -2
- package/dist/scripts/5434-4183e29781-lite.chunk.js.map +0 -1
- package/dist/scripts/6741-02172ae5b8-lite.chunk.js +0 -3
- package/dist/scripts/6741-02172ae5b8-lite.chunk.js.map +0 -1
- package/dist/scripts/6948-91184efeb6-lite.chunk.js +0 -3
- package/dist/scripts/6948-91184efeb6-lite.chunk.js.map +0 -1
- package/dist/scripts/9649-0225d5a4c7-lite.chunk.js +0 -2
- package/dist/scripts/9649-0225d5a4c7-lite.chunk.js.map +0 -1
- /package/dist/scripts/{234-b6b8f1faef-lite.chunk.js.LICENSE.txt → 234-9dadd5c069-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3811-282392e8bf-lite.chunk.js.LICENSE.txt → 3811-54d881ffbc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-02172ae5b8-lite.chunk.js.LICENSE.txt → 6741-ae590891ba-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6948-91184efeb6-lite.chunk.js.LICENSE.txt → 6948-74a27f0b91-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-116a634469.min.js.LICENSE.txt → bundle-18e2186208.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9649-d090a78b2d-lite.chunk.js","mappings":"klDAIA,IAAMA,EAAY,6BAELC,EAAoB,YAC/B,oB,4FAAA,S,qYAAA,SACQ,wBACR,CAEA,O,qRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,qBACT,GAEA,mBACA,WACE,OAAOC,EAAA,YAA0BF,EAAW,UAC9C,GAEA,uBACA,WACE,OAAOE,EAAA,YAA0BF,EAAW,cAC9C,M,6EAAC,CAlB8B,CAAQG,EAAA,G,gKCCnC,GAAY,0BAEZ,SAAUC,KACd,OACE,gBAAC,cAAiC,CAACC,MAAO,IACxC,gBAACC,GAAA,EAAU,KACT,gBAACA,GAAA,QAAgB,CAACC,IAAKC,GAAA,0CAEvB,gBAACF,GAAA,UAAkB,KAAC,gBAACG,GAAA,EAAI,CAACC,OAAO,cAKzC,CCsCA,IACMC,GAAYT,EAAA,mBADA,iBAGZU,GAA+B,SAACC,GACpC,OAAO,IAAsBA,EAAOC,KAAKC,WAAW,GAAK,WAC3D,EAWM,SAAUC,GAAWC,G,UACnBC,GAAW,UACTC,GAAqB,EAAAC,EAAA,GAAoB,CAAEC,gBAAiB,sBAA5DF,iBACR,GAAgD,EAAAG,EAAA,KAAxCC,EAAc,EAAdA,eAAgBC,EAAmB,EAAnBA,oBAChBC,GAAmB,EAAAC,EAAA,GAAY,MAA/BD,eACAE,GAAa,EAAAC,EAAA,KAAbD,SACR,GAAkF,EAAAE,EAAA,MAA1EC,EAAyB,EAAzBA,0BAA2BC,GAAa,EAAbA,cAAeC,GAA2B,EAA3BA,6BAElD,EAAAC,EAAA,GAAa,CAAEC,GAAIjB,EAAMiB,GAAIC,IAAK,SAAUC,QAASnB,EAAMmB,UAE3D,IAAMC,GAAS,kBAA6BC,EAAA,YACtCC,GAAc,kBAAkCC,EAAA,iBAEhD3B,GAAS,kBAA6BI,EAAMmB,QAC9CK,EAAA,eAA4BxB,EAAMiB,GAAIjB,EAAMmB,SAC5CK,EAAA,SAAsBxB,EAAMiB,KAE1BQ,IAAY,EAAAC,EAAA,MAElB,EAAAC,EAAA,GAAmBC,EAAA,qBAAqC,CACtDC,QAASjC,GAAOkC,KAChBC,cAAe,CACbC,cAAetC,GACfuC,YAAa,YACbC,kBAAmB,mBAErBC,cAAeC,GAAA,mBAA2B,CACxCC,uBAAuB,EACvBC,cAAeC,GAAA,mBAAqC3C,GAAOkC,QAE7DU,cAAeJ,GAAA,qBAGjB,IAAMK,IAAe,EAAAC,EAAA,GAAgB,CAAEC,SAAU,cAAgCxB,QAASnB,EAAMmB,UAE1FyB,GAAY,kBAChB5C,EAAM6C,kBACNC,EAAA,OAA4B9C,EAAM6C,mBAG9BE,GAAmBC,EAAA,iCAA4C1B,GAAYQ,MAWjF,SAASmB,GAAYC,GACnB,OAAId,GAAA,YAAqBc,CAI3B,CAEA,SAASC,GAAiBD,G,MACxB,OAAKD,GAAYC,GAGV1B,EAAA,eAA4BxB,EAAMiB,GAAoB,QAAhB,EAAAK,GAAYQ,YAAI,eAAEb,GAAImC,GAAMF,GAFhE,IAGX,CAEA,SAASG,GAAUH,GACjB,OAAO,aAAgBjD,EAAhB,CAA0BkD,GAAiBD,GACpD,CA0EA,IAAME,KAAS9B,GAAYQ,MAAQwB,EAAA,mBACjChC,GAAYQ,KAAKb,GACjBjB,EAAMoD,KACNG,EAAA,UAGIC,GAAe,CACnBX,iBAAkB7C,EAAM6C,iBACxBY,IAAKzD,EAAM0D,aAGb,IAII,SAAuBpC,GAAYQ,MAAOqB,GAA0BE,IAH/DM,GAAM,GAAbC,MACAC,GAAU,GAAVA,WACAC,GAAU,GAAVA,YAGF,EAAAC,EAAA,GAAcJ,KAEd,OAAqB/D,GAAQ,CAC3BoE,SAAUhF,IAGZ,IAAMiF,IAAqB3D,EAAe4D,EAAA,sBACxC3D,EAAoB,sBAEhB4D,IAAc,EAAAC,EAAA,GAAe,CAAEvE,KAAiB,QAAX,EAAAD,GAAOkC,YAAI,eAAEjC,OAExD,OACE,gBAACwE,EAAA,WAA4B,CAACjF,MAAOqD,IACnC,uBAAK6B,UAAU,QACZlD,GAAOU,MAAQlC,GAAOkC,KAEnB,gBAACyC,EAAA,EAAY,CACXC,QAAS5E,GAAOkC,KAAKjC,KACrB4E,OAAQ7E,GAAOkC,KAAK2C,OACpBC,YAAatD,GAAOU,KAAK4C,YACzBC,QA7GZ,W,UACE,GAAIjE,IAAauD,GACf,MAAO,GAGT,IAAMU,EAA2B,GAC3BC,EAAwBpE,IACxBF,EAAe4D,EAAA,uBACfnB,GAoCN,OAlCI6B,GACFD,EAAQE,KAAK,CACXC,MAAOpF,GAAU,UACjBqF,QAASC,GAAA,oBAAsC,CAC7CC,WAAY,SACZC,SAAUlF,EAAMiB,KAElBkE,QAAS,gBACTb,UAAW,4BACXc,QAAQ,IAIZT,EAAQE,KAAK,CACXC,OAAQF,GAAyBlF,GAAU,SAC3C2F,QAAST,GAAyBlF,GAAU,SAC5CqF,QAASnF,IAAU,CACjB0F,YAAa,UACbC,OAAQ,gBACRC,KAAM,CAAY,QAAX,EAAA5F,GAAOkC,YAAI,eAAEb,IACpBwE,OAAQ,CAAER,WAAY,WAExBE,QAAS3E,EAAiB,UAAoB,WAC9C8D,UAAW,+CACXc,QAAQ,IAGNtE,IACF6D,EAAQE,KAAK,CACXC,MAAOjE,EACP6E,KAAM3E,GAAuC,QAAX,EAAAnB,GAAOkC,YAAI,eAAE6D,OAAmB,QAAX,EAAA/F,GAAOkC,YAAI,eAAEb,IACpE2E,cAAc,IAGXjB,CACT,CAgEqBkB,GACTC,yBAAyB,uBACzBC,iBAAkBpG,GAA6BC,GAAOkC,QAEtD,gBAAC,IAAmB,MAG1B,2BACE,uBAAKwC,WAAsB,QAAX,EAAA1E,GAAOkC,YAAI,eAAEkE,cAAgBhG,EAAM0D,aAAed,GAAUd,KAAQ,0BAA4B,aAExG9B,EAAMiG,gBACD,kCAEJrG,GAAOkC,MAAS9B,EAAM6C,mBAAqBD,GAAUd,KACjD,gBAAC,KAAkB,MAG1B,gBAACoE,EAAA,GAAW,CAAC/B,YAAaA,KAI9B,uBAAKG,UAAU,8BACD,QAAX,EAAA1E,GAAOkC,YAAI,eAAEkE,cACZ,uBAAK1B,UAAS,eAAUtE,EAAM6C,iBAAmB,OAAS,KACxD,gBAACsD,EAAA,EAAc,CAACC,MAAO,GACpB,kBAAM,qBAAG9B,UAAU,iBAAiB1E,GAAOkC,KAAKkE,YAAgB,IAKtEpG,GAAOkC,MACN,uBAAKwC,UAAU,WACb,gBAAC+B,EAAA,EAAe,CACdC,QAAQ,eACRC,KAAMnD,GACNoD,iBAAkB,CAChB7D,SAAU,qBACV8D,OAAQ,WACRC,WAAY,UACZC,cAAe,eAEjBC,eAAgB,SAAAxD,GACd,OAAOb,GAAA,mBAAqC3C,GAAOkC,KAAM,OAAF,wBAAO0B,IAAY,CAAEJ,KAAAA,IAC9E,OAQHO,GAGiB,IAAlBA,GAAOkD,OACF,gBAAC1H,GAAgB,MAGxB,gCACE,gBAAC2H,EAAA,GAAS,CACRnD,OAAQA,GACRoD,gBA3HhB,SAAyBC,EAAcC,G,MACrC,GAAIjH,EAAMmB,QAAS,CACjB,IAAM+F,EAAiB,2BACvB,OAAO,OAAP,wBACKA,GAAc,CACjBzB,OAAQ,CACN0B,QAASH,EAAM/F,GACfmG,UAAWpH,EAAMiB,GACjBoG,QAASC,EAAA,WAGd,CAED,IAAMC,EAAO,+BACRN,GAAI,CACPI,QAASC,EAAA,SACTF,UAAWpH,EAAMiB,GACjByC,YAAa1D,EAAM0D,kBAAe8D,EAClCC,eAAgC,QAAhB,EAAAnG,GAAYQ,YAAI,eAAE4F,kBAGpC,OAAOC,GAAA,aAA8BX,EAAOO,EAC9C,EAsGgBjH,eAAgBA,EAChBsH,sBAAuB5H,EAAM0D,YAAc,KAAOjC,GAAUK,KAC5D+F,2BAA4B,SAAAC,GAAW,OAAIC,EAAA,6BAA8CD,EAAY,EACrG5H,iBAAkBA,KAElB2D,IAAcC,KAAeb,GAAYa,KACzC,gBAACkE,EAAA,EAAoB,CACnBnE,WAAYA,GACZR,UAAWA,GACXS,WAAYA,MAnBX,gBAACmE,EAAA,EAAgB,QA6BtC,C","sources":["file:///app/packages/projects/lite/src/shared/errors/series/series-not-found/SeriesNotFoundError.ts","file:///app/packages/projects/lite/src/shared/views/series/empty-state/SeriesEmptyState.tsx","file:///app/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.seriesNotFoundError';\n\nexport class SeriesNotFoundError extends ErrorPageError {\n constructor() {\n super('Series doesn\\'t exist');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'SeriesNotFoundError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'series.seriesEmptyState';\n\nexport function SeriesEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Playlists.PLAYLIST_VIDEOS} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Classification, Config, CurrentUser, Series, Video } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { SeriesNotFoundError } from 'shared/errors/series/series-not-found/SeriesNotFoundError';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { SeriesEmptyState } from './empty-state/SeriesEmptyState';\n\nconst namespace = 'shared.series';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getFallbackBannerColourClass = (series: Series): string => {\n return BG_COLOUR_CLASS_NAMES[series.name.charCodeAt(0) % BG_COLOUR_CLASS_NAMES.length];\n};\n\ninterface SeriesViewProps {\n id: string;\n classificationId?: string;\n shareId?: string;\n moviesAndTv?: boolean;\n sort?: VideoSortType;\n hideBreadCrumbs?: boolean;\n}\n\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\n const dispatch = useDispatch();\n const { commonVideoProps } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n const { isPlugin } = usePluginHelper();\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n useDeepLinks({ id: props.id, app: 'series', shareId: props.shareId });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const series = Flight.useBasicFetch<Series>(props.shareId\n ? SeriesRequests.sharedSeries(props.id, props.shareId)\n : SeriesRequests.series(props.id));\n\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata(PageMetadataHelper.getSeriesMetadata({\n content: series.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({\n stripPresentationSlug: true,\n customAppLink: SeriesAppLinkHelper.getSeriesAppLink(series.data)\n }),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, shareId: props.shareId });\n\n const topicPath = Flight.useBasicFetch<Classification[]>(\n props.classificationId &&\n ClassificationRequests.path(props.classificationId)\n );\n\n const hideAssignButton = AssignHelper.hideAssignButtonOnVideoActions(currentUser.data);\n\n /**\n * Infinite scrolling will be restricted for public browsing as a crawler/bot.\n * The rationale behind this is that we don't want to preload or allow crawlers\n * to enumerate the entirety of our series collections. Some series have > 10k videos\n * and they don't all need to be indexed (i.e. old news/current affair series).\n * \n * Public browsing by regular users will continue to paginate, along with authenticated\n * users. - Mike\n */\n function shouldFetch(cursor?: string) {\n if (SeoHelper.isBot() && cursor)\n return false;\n\n return true;\n }\n\n function getVideosRequest(cursor?: string) {\n if (!shouldFetch(cursor))\n return null;\n\n return SeriesRequests.seriesVideos(props.id, currentUser.data?.id, sort, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function getBannerActions(): ActionOptions[] {\n if (isPlugin || !showHeaderActions) {\n return [];\n }\n\n const actions: ActionOptions[] = [];\n const hasAssignActionButton = hasShareFlowV2\n && !hasPermissions(PermissionName.StudentExperience)\n && !hideAssignButton;\n\n if (hasAssignActionButton) {\n actions.push({\n label: getPhrase('assign'),\n appLink: AssignAppLinkHelper.existingClassroom({\n entityType: 'series',\n objectId: props.id\n }),\n svgName: cvSvgLibrary.Classrooms,\n className: 'btn btn-outline-dark me-2',\n button: true\n });\n }\n\n actions.push({\n label: !hasAssignActionButton && getPhrase('share'),\n tooltip: hasAssignActionButton && getPhrase('share'),\n appLink: series && {\n application: AppChannels.SHARE,\n action: Actions.Share.SHARE,\n args: [series.data?.id],\n params: { entityType: 'series' }\n },\n svgName: hasShareFlowV2 ? cvSvgLibrary.Link : cvSvgLibrary.Share,\n className: 'btn btn-outline-dark me-2 align-self-stretch',\n button: true\n });\n\n if (isUserCurator)\n actions.push({\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(series.data?.typeId, series.data?.id),\n openInNewTab: true\n });\n\n return actions;\n }\n\n function getVideoAppLink(video: Video, opts: GetVideoAppLinkOptions): Core.AppLink {\n if (props.shareId) {\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n return {\n ...currentAppLink,\n params: {\n videoId: video.id,\n contextId: props.id,\n context: RelatedVideosContext.Series\n }\n };\n }\n\n const options: GetVideoAppLinkOptions = {\n ...opts,\n context: RelatedVideosContext.Series,\n contextId: props.id,\n moviesAndTv: props.moviesAndTv || undefined,\n includeContext: currentUser.data?.isAuthenticated\n };\n\n return VideoAppLinkHelper.getAppLink(video, options);\n }\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data && VideoSortHelper.getOrSetSortType(\n currentUser.data.id,\n props.sort,\n VideoSortType.Series\n );\n\n const seriesParams = {\n classificationId: props.classificationId,\n mtv: props.moviesAndTv\n };\n\n const {\n items: videos,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(currentUser.data ? getVideosRequest : false, fetchNext);\n\n useVideoMixin(videos);\n\n useHandleObjectError(series, {\n notFound: SeriesNotFoundError\n });\n\n const showHeaderActions = !hasPermissions(PermissionName.StudentExperience) &&\n hasLocalPermissions(LocalPermissionName.UseSeriesActions);\n\n const breadcrumbs = useBreadcrumbs({ name: series.data?.name });\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n {config.data && series.data\n ? (\n <BannerHeader\n heading={series.data.name}\n banner={series.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n actions={getBannerActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n blockColourClass={getFallbackBannerColourClass(series.data)}\n />\n ) : <PartialBannerHeader />\n }\n \n <div>\n <div className={series.data?.description || (props.moviesAndTv && topicPath.data) ? 'border-bottom py-3 mb-3' : 'pt-3 mb-2'}>\n {(() => {\n if (props.hideBreadCrumbs)\n return <></>;\n\n if (!series.data || (props.classificationId && !topicPath.data))\n return <PartialBreadcrumbs />;\n\n return (\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n );\n })()}\n\n <div className='d-flex align-items-center'>\n {series.data?.description && (\n <div className={`mb-0 ${props.classificationId ? 'pt-2' : ''}`}>\n <ExpandableText lines={2}>\n {() => <p className='mb-0 d-inline'>{series.data.description}</p>}\n </ExpandableText>\n </div>\n )}\n\n {series.data && (\n <div className='ms-auto'>\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n getSortAppLink={sort => {\n return SeriesAppLinkHelper.getSeriesAppLink(series.data, { ...seriesParams, sort });\n }}\n />\n </div>\n )}\n </div>\n </div>\n\n {(() => {\n if (!videos)\n return <PartialVideoList />;\n\n if (videos.length === 0)\n return <SeriesEmptyState />;\n\n return (\n <>\n <VideoList\n videos={videos}\n getVideoAppLink={getVideoAppLink}\n hasPermissions={hasPermissions}\n presentationAudiences={props.moviesAndTv ? null : audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={commonVideoProps}\n />\n {(isFetching || nextCursor) && shouldFetch(nextCursor) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n );\n })()}\n </div>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n"],"names":["namespace","SeriesNotFoundError","LanguageService","ErrorPageError","SeriesEmptyState","value","EmptyState","src","ImageUrls","Text","phrase","getPhrase","getFallbackBannerColourClass","series","name","charCodeAt","SeriesView","props","dispatch","commonVideoProps","useCommonVideoProps","locationContext","usePermissions","hasPermissions","hasLocalPermissions","hasShareFlowV2","useSettings","isPlugin","usePluginHelper","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useDeepLinks","id","app","shareId","config","ConfigRequests","currentUser","UserRequests","SeriesRequests","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","content","data","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","customAppLink","SeriesAppLinkHelper","allowIndexing","videoActions","useVideoActions","location","topicPath","classificationId","ClassificationRequests","hideAssignButton","AssignHelper","shouldFetch","cursor","getVideosRequest","sort","fetchNext","VideoSortHelper","VideoSortType","seriesParams","mtv","moviesAndTv","videos","items","isFetching","nextCursor","useVideoMixin","notFound","showHeaderActions","PermissionName","breadcrumbs","useBreadcrumbs","VideoActionsContext","className","BannerHeader","heading","banner","imageCdnUrl","actions","hasAssignActionButton","push","label","appLink","AssignAppLinkHelper","entityType","objectId","svgName","button","tooltip","application","action","args","params","href","typeId","openInNewTab","getBannerActions","actionsDropdownClassName","blockColourClass","description","hideBreadCrumbs","Breadcrumbs","ExpandableText","lines","VideoSortSelect","variant","type","analyticsOptions","entity","actionType","workflowPhase","getSortAppLink","length","VideoList","getVideoAppLink","video","opts","currentAppLink","videoId","contextId","context","RelatedVideosContext","options","undefined","includeContext","isAuthenticated","VideoAppLinkHelper","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","InfiniteScrollFooter","PartialVideoList"],"sourceRoot":""}
|