@clickview/lite 0.59.0-rc.6 → 0.59.0-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/1041-e67122b7dc-lite.chunk.js +2 -0
  3. package/dist/scripts/1041-e67122b7dc-lite.chunk.js.map +1 -0
  4. package/dist/scripts/{1080-aebdd2fd94-lite.chunk.js → 1080-db39a50a32-lite.chunk.js} +2 -2
  5. package/dist/scripts/1080-db39a50a32-lite.chunk.js.map +1 -0
  6. package/dist/scripts/{1169-b84be13a05-lite.chunk.js → 1169-394baed329-lite.chunk.js} +2 -2
  7. package/dist/scripts/1169-394baed329-lite.chunk.js.map +1 -0
  8. package/dist/scripts/{143-e8df681adb-lite.chunk.js → 143-851fefbbc8-lite.chunk.js} +2 -2
  9. package/dist/scripts/143-851fefbbc8-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{170-edaa4055be-lite.chunk.js → 170-6dda8ec96e-lite.chunk.js} +3 -3
  11. package/dist/scripts/170-6dda8ec96e-lite.chunk.js.map +1 -0
  12. package/dist/scripts/2015-0cb7aead83-lite.chunk.js +2 -0
  13. package/dist/scripts/2015-0cb7aead83-lite.chunk.js.map +1 -0
  14. package/dist/scripts/204-67566b75e7-lite.chunk.js +2 -0
  15. package/dist/scripts/204-67566b75e7-lite.chunk.js.map +1 -0
  16. package/dist/scripts/2215-c47eb22183-lite.chunk.js +2 -0
  17. package/dist/scripts/2215-c47eb22183-lite.chunk.js.map +1 -0
  18. package/dist/scripts/{2340-16e28533f3-lite.chunk.js → 2340-6179f12db3-lite.chunk.js} +2 -2
  19. package/dist/scripts/2340-6179f12db3-lite.chunk.js.map +1 -0
  20. package/dist/scripts/{2564-0e39d7cce9-lite.chunk.js → 2564-5a55e14f66-lite.chunk.js} +3 -3
  21. package/dist/scripts/{2564-0e39d7cce9-lite.chunk.js.map → 2564-5a55e14f66-lite.chunk.js.map} +1 -1
  22. package/dist/scripts/2571-70477f279b-lite.chunk.js +2 -0
  23. package/dist/scripts/2571-70477f279b-lite.chunk.js.map +1 -0
  24. package/dist/scripts/{2581-bf3d282cb9-lite.chunk.js → 2581-f21f1ac71e-lite.chunk.js} +3 -3
  25. package/dist/scripts/2581-f21f1ac71e-lite.chunk.js.map +1 -0
  26. package/dist/scripts/3731-eeabea3393-lite.chunk.js +3 -0
  27. package/dist/scripts/3731-eeabea3393-lite.chunk.js.map +1 -0
  28. package/dist/scripts/{4013-3070636adb-lite.chunk.js → 4013-9e41670948-lite.chunk.js} +3 -3
  29. package/dist/scripts/4013-9e41670948-lite.chunk.js.map +1 -0
  30. package/dist/scripts/{4205-cf817cce7b-lite.chunk.js → 4205-2d3c5f264f-lite.chunk.js} +2 -2
  31. package/dist/scripts/4205-2d3c5f264f-lite.chunk.js.map +1 -0
  32. package/dist/scripts/{490-9b7a10c66a-lite.chunk.js → 490-f8e5bbb09c-lite.chunk.js} +2 -2
  33. package/dist/scripts/490-f8e5bbb09c-lite.chunk.js.map +1 -0
  34. package/dist/scripts/4944-c5ba3ff091-lite.chunk.js +2 -0
  35. package/dist/scripts/4944-c5ba3ff091-lite.chunk.js.map +1 -0
  36. package/dist/scripts/{5220-85356e2ed6-lite.chunk.js → 5220-0cca67a7e7-lite.chunk.js} +3 -3
  37. package/dist/scripts/5220-0cca67a7e7-lite.chunk.js.map +1 -0
  38. package/dist/scripts/{5224-6e7208837b-lite.chunk.js → 5224-ebdead7925-lite.chunk.js} +2 -2
  39. package/dist/scripts/5224-ebdead7925-lite.chunk.js.map +1 -0
  40. package/dist/scripts/{5836-27add12a78-lite.chunk.js → 5836-921d683eb5-lite.chunk.js} +2 -2
  41. package/dist/scripts/5836-921d683eb5-lite.chunk.js.map +1 -0
  42. package/dist/scripts/{5936-e61ae32ed3-lite.chunk.js → 5936-d1117ce842-lite.chunk.js} +2 -2
  43. package/dist/scripts/5936-d1117ce842-lite.chunk.js.map +1 -0
  44. package/dist/scripts/{6118-857c2f6b97-lite.chunk.js → 6118-3dbd569840-lite.chunk.js} +2 -2
  45. package/dist/scripts/6118-3dbd569840-lite.chunk.js.map +1 -0
  46. package/dist/scripts/{6263-dcc4cb4933-lite.chunk.js → 6263-d084bdb444-lite.chunk.js} +2 -2
  47. package/dist/scripts/6263-d084bdb444-lite.chunk.js.map +1 -0
  48. package/dist/scripts/{6368-d33570d16d-lite.chunk.js → 6368-c296821dd9-lite.chunk.js} +2 -2
  49. package/dist/scripts/6368-c296821dd9-lite.chunk.js.map +1 -0
  50. package/dist/scripts/{6741-5bf7ea5363-lite.chunk.js → 6741-9799a705b8-lite.chunk.js} +3 -3
  51. package/dist/scripts/6741-9799a705b8-lite.chunk.js.map +1 -0
  52. package/dist/scripts/{6934-11a3f3e147-lite.chunk.js → 6934-5647e18a41-lite.chunk.js} +2 -2
  53. package/dist/scripts/6934-5647e18a41-lite.chunk.js.map +1 -0
  54. package/dist/scripts/7234-fecb9339e5-lite.chunk.js +2 -0
  55. package/dist/scripts/7234-fecb9339e5-lite.chunk.js.map +1 -0
  56. package/dist/scripts/{7709-fb358991a1-lite.chunk.js → 7709-18e41d81b8-lite.chunk.js} +2 -2
  57. package/dist/scripts/7709-18e41d81b8-lite.chunk.js.map +1 -0
  58. package/dist/scripts/{9139-63b528ce93-lite.chunk.js → 9139-251b1d5a38-lite.chunk.js} +2 -2
  59. package/dist/scripts/9139-251b1d5a38-lite.chunk.js.map +1 -0
  60. package/dist/scripts/{9173-c164578a27-lite.chunk.js → 9173-1cb2d7c045-lite.chunk.js} +2 -2
  61. package/dist/scripts/9173-1cb2d7c045-lite.chunk.js.map +1 -0
  62. package/dist/scripts/9284-ca348ab523-lite.chunk.js +2 -0
  63. package/dist/scripts/9284-ca348ab523-lite.chunk.js.map +1 -0
  64. package/dist/scripts/{9395-7aa400f517-lite.chunk.js → 9395-10f1a8adfe-lite.chunk.js} +3 -3
  65. package/dist/scripts/{9395-7aa400f517-lite.chunk.js.map → 9395-10f1a8adfe-lite.chunk.js.map} +1 -1
  66. package/dist/scripts/{953-4e10bd618b-lite.chunk.js → 953-279b3b79cd-lite.chunk.js} +3 -3
  67. package/dist/scripts/{953-4e10bd618b-lite.chunk.js.map → 953-279b3b79cd-lite.chunk.js.map} +1 -1
  68. package/dist/scripts/bundle-55d31077c4.min.js +3 -0
  69. package/dist/scripts/bundle-55d31077c4.min.js.map +1 -0
  70. package/package.json +1 -1
  71. package/dist/scripts/1080-aebdd2fd94-lite.chunk.js.map +0 -1
  72. package/dist/scripts/1169-b84be13a05-lite.chunk.js.map +0 -1
  73. package/dist/scripts/143-e8df681adb-lite.chunk.js.map +0 -1
  74. package/dist/scripts/170-edaa4055be-lite.chunk.js.map +0 -1
  75. package/dist/scripts/204-abf7907929-lite.chunk.js +0 -2
  76. package/dist/scripts/204-abf7907929-lite.chunk.js.map +0 -1
  77. package/dist/scripts/2215-69d4d628e5-lite.chunk.js +0 -2
  78. package/dist/scripts/2215-69d4d628e5-lite.chunk.js.map +0 -1
  79. package/dist/scripts/2340-16e28533f3-lite.chunk.js.map +0 -1
  80. package/dist/scripts/2581-bf3d282cb9-lite.chunk.js.map +0 -1
  81. package/dist/scripts/3525-36cfbbfcf2-lite.chunk.js +0 -2
  82. package/dist/scripts/3525-36cfbbfcf2-lite.chunk.js.map +0 -1
  83. package/dist/scripts/4013-3070636adb-lite.chunk.js.map +0 -1
  84. package/dist/scripts/4205-cf817cce7b-lite.chunk.js.map +0 -1
  85. package/dist/scripts/490-9b7a10c66a-lite.chunk.js.map +0 -1
  86. package/dist/scripts/4944-44f59087ce-lite.chunk.js +0 -2
  87. package/dist/scripts/4944-44f59087ce-lite.chunk.js.map +0 -1
  88. package/dist/scripts/5220-85356e2ed6-lite.chunk.js.map +0 -1
  89. package/dist/scripts/5224-6e7208837b-lite.chunk.js.map +0 -1
  90. package/dist/scripts/5836-27add12a78-lite.chunk.js.map +0 -1
  91. package/dist/scripts/5886-13395190b8-lite.chunk.js +0 -3
  92. package/dist/scripts/5886-13395190b8-lite.chunk.js.map +0 -1
  93. package/dist/scripts/5936-e61ae32ed3-lite.chunk.js.map +0 -1
  94. package/dist/scripts/6118-857c2f6b97-lite.chunk.js.map +0 -1
  95. package/dist/scripts/6263-dcc4cb4933-lite.chunk.js.map +0 -1
  96. package/dist/scripts/6368-d33570d16d-lite.chunk.js.map +0 -1
  97. package/dist/scripts/6741-5bf7ea5363-lite.chunk.js.map +0 -1
  98. package/dist/scripts/6934-11a3f3e147-lite.chunk.js.map +0 -1
  99. package/dist/scripts/7234-ef069e6013-lite.chunk.js +0 -2
  100. package/dist/scripts/7234-ef069e6013-lite.chunk.js.map +0 -1
  101. package/dist/scripts/7709-fb358991a1-lite.chunk.js.map +0 -1
  102. package/dist/scripts/8813-887868f687-lite.chunk.js +0 -2
  103. package/dist/scripts/8813-887868f687-lite.chunk.js.map +0 -1
  104. package/dist/scripts/9139-63b528ce93-lite.chunk.js.map +0 -1
  105. package/dist/scripts/9173-c164578a27-lite.chunk.js.map +0 -1
  106. package/dist/scripts/9284-7f6bbe012f-lite.chunk.js +0 -2
  107. package/dist/scripts/9284-7f6bbe012f-lite.chunk.js.map +0 -1
  108. package/dist/scripts/bundle-4b220684b2.min.js +0 -3
  109. package/dist/scripts/bundle-4b220684b2.min.js.map +0 -1
  110. /package/dist/css/{3525-lite-52288b11e5.chunk.css → 1041-lite-52288b11e5.chunk.css} +0 -0
  111. /package/dist/css/{8813-lite-52288b11e5.chunk.css → 2015-lite-52288b11e5.chunk.css} +0 -0
  112. /package/dist/css/{5886-lite-3633cd9770.chunk.css → 3731-lite-3633cd9770.chunk.css} +0 -0
  113. /package/dist/scripts/{170-edaa4055be-lite.chunk.js.LICENSE.txt → 170-6dda8ec96e-lite.chunk.js.LICENSE.txt} +0 -0
  114. /package/dist/scripts/{2564-0e39d7cce9-lite.chunk.js.LICENSE.txt → 2564-5a55e14f66-lite.chunk.js.LICENSE.txt} +0 -0
  115. /package/dist/scripts/{2581-bf3d282cb9-lite.chunk.js.LICENSE.txt → 2581-f21f1ac71e-lite.chunk.js.LICENSE.txt} +0 -0
  116. /package/dist/scripts/{4013-3070636adb-lite.chunk.js.LICENSE.txt → 3731-eeabea3393-lite.chunk.js.LICENSE.txt} +0 -0
  117. /package/dist/scripts/{5220-85356e2ed6-lite.chunk.js.LICENSE.txt → 4013-9e41670948-lite.chunk.js.LICENSE.txt} +0 -0
  118. /package/dist/scripts/{5886-13395190b8-lite.chunk.js.LICENSE.txt → 5220-0cca67a7e7-lite.chunk.js.LICENSE.txt} +0 -0
  119. /package/dist/scripts/{6741-5bf7ea5363-lite.chunk.js.LICENSE.txt → 6741-9799a705b8-lite.chunk.js.LICENSE.txt} +0 -0
  120. /package/dist/scripts/{9395-7aa400f517-lite.chunk.js.LICENSE.txt → 9395-10f1a8adfe-lite.chunk.js.LICENSE.txt} +0 -0
  121. /package/dist/scripts/{953-4e10bd618b-lite.chunk.js.LICENSE.txt → 953-279b3b79cd-lite.chunk.js.LICENSE.txt} +0 -0
  122. /package/dist/scripts/{bundle-4b220684b2.min.js.LICENSE.txt → bundle-55d31077c4.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/2215-69d4d628e5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/expandable-text/expandable-text.scss","file:///app/packages/libs/shared/src/components/expandable-text/ExpandableText.tsx","file:///app/packages/libs/shared/src/hooks/useExpandableTextButton.ts","file:///app/packages/projects/lite/src/shared/errors/series/series-not-found/SeriesNotFoundError.ts","file:///app/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"text\":\"wLJpg\",\"collapsed\":\"ZxMAG\",\"seeMore\":\"x5t0p\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useExpandableTextButton } from 'libs/shared/hooks/useExpandableTextButton';\n\nimport styles from './expandable-text.scss';\n\ninterface ExpandableTextProps {\n children: (props: {expanded: boolean}) => JSX.Element;\n lines?: number;\n}\n\nconst namespace = 'shared.expandableText';\n\nexport function ExpandableText(props: ExpandableTextProps): JSX.Element {\n const { lines = 2 } = props;\n const [ expanded, setExpanded ] = React.useState(false);\n\n const { containerRef, showButton } = useExpandableTextButton();\n const TextComponent = props.children;\n\n return (\n <div className='d-flex overflow-hidden'>\n <div\n style={{ '--lines': lines } as unknown as React.CSSProperties}\n className={`${expanded ? '' : styles.collapsed} ${styles.text}`} ref={containerRef}>\n {(!expanded && showButton) && (\n <DivButton\n onClick={() => setExpanded(true)}\n className={`ms-1 text-info hover-text-underline ${styles.seeMore}`}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </DivButton>\n )}\n\n <TextComponent expanded={expanded} />\n\n {expanded && (\n <DivButton\n onClick={() => setExpanded(false)}\n className={`ms-1 text-info hover-text-underline d-inline`}\n >\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nexport function useExpandableTextButton() {\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n const memoClientHeight = React.useRef<number>(0);\n\n React.useEffect(() => {\n if (containerRef.current?.clientHeight)\n // memo the initial clientHeight, cuz after expand and collapse the clientHeight will change\n memoClientHeight.current = containerRef.current.clientHeight;\n }, []);\n\n const [ showButton, setShowButton ] = React.useState(containerRef.current?.scrollHeight > memoClientHeight.current);\n\n useResizeListener(() => {\n if (containerRef.current?.clientHeight) {\n // update memo value on resize\n memoClientHeight.current = containerRef.current.clientHeight;\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n });\n\n React.useEffect(() => {\n if (containerRef.current?.scrollHeight) {\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n }, [ containerRef.current?.scrollHeight, memoClientHeight.current ]);\n\n return { containerRef, showButton };\n}","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 * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\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 { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\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 { Classification, Config, CurrentUser, Series, Video, YearGroup } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\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 { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\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 { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\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 getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\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 { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\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 const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\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 /**\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 label: getPhrase('share'),\n appLink: series && {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [series.data?.id],\n params: { entityType: 'series' }\n },\n svgName: cvSvgLibrary.Share2,\n className: 'btn btn-outline-dark me-2',\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 // 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 return (\n <>\n <VideoList\n videos={videos}\n yearGroups={yearGroups.data}\n getVideoAppLink={props.getVideoAppLink}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video =>\n SeriesAppLinkHelper.getSeriesAppLink(video?.series, { ...seriesParams, sort })}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={props.moviesAndTv ? null : audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\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","ExpandableText","props","lines","expanded","setExpanded","containerRef","memoClientHeight","current","clientHeight","scrollHeight","showButton","setShowButton","useExpandableTextButton","TextComponent","children","className","style","ref","DivButton","onClick","Text","phrase","SeriesNotFoundError","LanguageService","ErrorPageError","getPhrase","getFallbackBannerColourClass","series","name","charCodeAt","SeriesView","dispatch","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","hasPermissions","hasLocalPermissions","isPlugin","usePluginHelper","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useDeepLinks","id","app","shareId","config","ConfigRequests","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","SeriesRequests","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","customAppLink","SeriesAppLinkHelper","allowIndexing","videoActions","useVideoActions","location","topicPath","classificationId","ClassificationRequests","shouldFetch","cursor","getVideosRequest","sort","fetchNext","VideoSortHelper","VideoSortType","seriesParams","mtv","moviesAndTv","videos","items","isFetching","nextCursor","useVideoMixin","notFound","showHeaderActions","PermissionName","breadcrumbs","useBreadcrumbs","VideoActionsContext","value","BannerHeader","heading","banner","imageCdnUrl","actions","label","appLink","application","action","args","params","entityType","svgName","button","push","href","typeId","openInNewTab","getBannerActions","actionsDropdownClassName","blockColourClass","description","hideBreadCrumbs","Breadcrumbs","VideoSortSelect","variant","type","analyticsOptions","entity","actionType","workflowPhase","getSortAppLink","VideoList","getVideoAppLink","getSubTextAppLink","video","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","VideoAppLinkHelper","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","InfiniteScrollFooter","PartialVideoList"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/2340-16e28533f3-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/caret/Caret.tsx","file:///app/packages/libs/shared/src/components/caret/caret.scss","file:///app/packages/libs/shared/src/components/library-folder/library-folder.scss","file:///app/packages/libs/shared/src/components/library-folder/LibraryFolder.tsx","file:///app/packages/libs/shared/src/components/folder-list/FolderList.tsx","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/partial-folder-list.scss","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseFetchAllChildFolders.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseHandleLibraryType.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/empty-state/LibraryFolderEmptyState.tsx","file:///app/packages/projects/lite/src/apps/libraries/components/library-folder-videos/LibraryFolderVideos.tsx","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/partial-loading/library-folder-partial-loading.scss","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/partial-loading/LibraryFolderPartialLoading.tsx","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderView.tsx","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderViewUtils.ts"],"sourcesContent":["import React from 'react';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svgName={cvSvgLibrary.Caret}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"up\":\"JAT0R\",\"down\":\"ld41u\",\"left\":\"jZTRR\",\"right\":\"HHkPe\"};","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"cN3nB\",\"actionsContainer\":\"xM37V\",\"dropStyle\":\"kvCLS\",\"dragStyle\":\"md9Na\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFolderHeading\":\"dhbsL\",\"partialFolderThumbnail\":\"CI9vk\",\"partialFolderName\":\"l0Nll\"};","import React from 'react';\n\nimport styles from './partial-folder-list.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n &nbsp;\n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}>&nbsp;</div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { Flight } from 'libs/common/flight';\n\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult, useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { Folder } from 'libs/shared/interfaces';\n\nexport function useFetchAllChildFolders(parentId?: string): SelectAllPagesResult<Folder> {\n const fetch = Flight.useGetFetch();\n\n function getRequest(cursor?: string): Flight.Request {\n return LibraryRequests.childFolders(parentId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n fetch(getRequest(cursor));\n }\n\n useFetchAll(!!parentId && getRequest, !!parentId && fetchNext);\n\n return (useSelectAllPages<Folder>(!!parentId && ((cursor?: string) => getRequest(cursor).key)));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { Library } from 'libs/shared/interfaces';\n\n/**\n * This hook prevents the libraries UI to be used for anything \n * other than customer libraries i.e Hosted, Exchange, Workspace etc\n */\nexport function useHandleLibraryType(request: Flight.Response<Library>): void {\n React.useEffect(() => {\n if (!request.hasCompleted || request.hasError)\n return;\n\n if (request.data.type !== MasterObjectTypes.CustomLibrary)\n Core.ErrorHelper.throw(new NotFoundError());\n }, [request.hasCompleted]);\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 = 'libraries.libraryFolderEmptyState';\n\nexport function LibraryFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Libraries.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, FavouriteFunc, Library, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { LibraryFolderEmptyState } from 'apps/libraries/views/library-folder/empty-state/LibraryFolderEmptyState';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'libraries.libraryFolderVideos';\n\ninterface LibraryFolderVideosProps {\n folderId: string;\n videos: VideoTypes[];\n yearGroups: YearGroup[];\n hasSubFolders: boolean;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n audiences: PresentationAudience[];\n libraries: Library[];\n\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n sort: VideoSortType;\n\n isFetching: boolean;\n hasMore: boolean;\n fetchNext: (cursor: string) => void;\n nextCursor?: string;\n imageCdnUrl?: string;\n isPlugin: boolean;\n}\n\nexport function LibraryFolderVideos(props: LibraryFolderVideosProps): JSX.Element {\n const { focusSearchBar } = useFocusSearchBar();\n const { hasPermissions } = usePermissions();\n\n if (!props.videos.length && !props.hasSubFolders)\n return <LibraryFolderEmptyState />;\n\n if (!props.videos.length)\n return <></>;\n\n return (\n <div>\n {/* With no subfolders, we don't show this subheading, and the sort is moved up to the parent component */}\n {props.hasSubFolders && (\n <div className='d-flex justify-content-between align-items-center'>\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='videos' />\n </h2>\n\n <div className='d-flex'>\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: props.libraries?.length }} />\n </IconButton>\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n />\n </div>\n </div>\n )}\n\n <VideoList\n videos={props.videos}\n yearGroups={props.yearGroups}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: RelatedVideosContext.Folder,\n contextId: props.folderId\n })}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n presentationAudiences={props.audiences}\n hasPermissions={hasPermissions}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"subheading\":\"IJZtA\"};","import React from 'react';\n\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './library-folder-partial-loading.scss';\n\nexport function LibraryFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div className='m-3'>\n <PartialFolderList />\n </div>\n\n <div className='mx-3 mb-3'>\n <div className={`${styles.subheading} partial-loading-background mb-2`} />\n <PartialVideoList />\n </div>\n </>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Folder, Library, VideoTypes, YearGroup } from 'libs/shared/interfaces';\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 { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { LibraryFolderVideos } from 'apps/libraries/components/library-folder-videos/LibraryFolderVideos';\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { useHandleLibraryType } from 'apps/libraries/hooks/UseHandleLibraryType';\n\nimport { LibraryFolderPartialLoading } from './partial-loading/LibraryFolderPartialLoading';\nimport { getFolderAppLink, getFolderBgColourClass } from './LibraryFolderViewUtils';\n\nconst namespace = 'libraries.libraryFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface LibraryFolderViewProps {\n libraryId: string;\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function LibraryFolderView(props: LibraryFolderViewProps): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const { focusSearchBar } = useFocusSearchBar();\n const { isPlugin } = usePluginHelper();\n\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.domainLibraries([ 'customLibrary', 'sharedLibrary' ]));\n const library = Flight.useBasicFetch<Library>(LibraryRequests.library(props.libraryId));\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const subfolders = useFetchAllChildFolders(props.folderId);\n\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n user.data?.isAuthenticated && CustomerRequests.yearGroups(user.data.customerId)\n );\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const breadcrumbs = useBreadcrumbs({ name: folder.data?.name });\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata({ title: folder.data?.name });\n\n useHandleObjectError([ library, folder ]);\n useHandleLibraryType(library);\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id, props.sort);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<VideoTypes>(getVideosRequest, fetchNext, onError);\n\n useVideoMixin(videos);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return VideoRequests.collectionVideos(props.folderId, sort, cursor);\n }\n\n function fetchNext(cursor?: string): void {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n const hasNoSubfolders = !!(subfolders.hasCompleted && !subfolders.items?.length);\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n {(library.data && folder.data && config.data)\n ? (\n <BannerHeader\n heading={folder.data.name}\n banner={folder.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n blockColourClass={getFolderBgColourClass(folder.data)}\n logo={library.data.owner?.logo}\n />\n ) : <PartialBannerHeader />\n }\n\n <div className={`d-flex justify-content-between align-items-center py-3 mx-3 ${hasNoSubfolders ? '' : 'border-bottom'}`}>\n {(library.data && folder.data)\n ? <Breadcrumbs breadcrumbs={breadcrumbs} />\n : <PartialBreadcrumbs />\n }\n \n <div className='d-flex'>\n {(hasNoSubfolders || !videos?.length) &&\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: libraries.data?.length ?? 1 }} />\n </IconButton>\n }\n {(hasNoSubfolders && folder.data) && (\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n getSortAppLink={sort => getFolderAppLink(props.libraryId, folder.data, sort)}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n />\n )}\n </div>\n </div>\n\n {(videos && subfolders) ? (\n <>\n {!!subfolders.items?.length && (\n <div className='px-2 py-3'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(props.libraryId, f, sort)}\n expandFolders={!videos.length}\n />\n </div>\n )}\n\n <div className='px-3 pb-3'>\n <LibraryFolderVideos\n folderId={props.folderId}\n videos={videos}\n yearGroups={yearGroups.data}\n hasSubFolders={!!subfolders.items?.length}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n sort={sort}\n getSortAppLink={sort => getFolderAppLink(props.libraryId, folder.data, sort)}\n audiences={audiences.data}\n libraries={libraries.data}\n imageCdnUrl={config.data?.imageCdnUrl}\n isPlugin={isPlugin}\n />\n </div>\n </>\n ) : <LibraryFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}","import { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getFolderAppLink(libraryId: string, folder: Folder, sort: string): Core.AppLink {\n if (!libraryId || !folder)\n return null;\n\n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ libraryId, folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < folder.name?.length ?? 0; i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}"],"names":["getDirectionClass","direction","Caret","props","SvgContainer","svgName","className","defaultProps","LibraryFolder","thumbnailUrl","folder","thumbnail","UrlHelper","url","size","actions","getFolderActions","DragDropMoveWrapper","draggable","drag","id","data","droppable","drop","dropStye","dragStyle","AppLink","appLink","getAppLink","title","name","BaseImage","imageType","imageClassName","ImageFallback","type","extraClasses","length","Actions","actionsDropdownClassName","dropdownToggleSvgSize","namespace","EXPANDED_FOLDERS_KEY","FolderList","breakpoints","LocalStorageHelper","_hasExpandedFolders","setHasExpandedFolders","hasExpandedFolders","expandFolders","folderLimit","useBreakpoints","xxl","xl","lg","md","onToggleFolder","displayableFolders","folders","slice","canToggleCollapsedView","showHeading","DivButton","onClick","Text","phrase","options","count","extraButtons","map","f","key","PartialFolder","PartialFolderList","Array","fill","_","i","useFetchAllChildFolders","parentId","fetch","getRequest","cursor","useHandleLibraryType","request","hasCompleted","hasError","LibraryFolderEmptyState","value","EmptyState","src","ImageUrls","LibraryFolderVideos","focusSearchBar","hasPermissions","usePermissions","videos","hasSubFolders","IconButton","application","action","params","source","analyticsData","analyticsOptions","entity","location","actionType","descriptor","smartCount","libraries","VideoSortSelect","variant","sort","getSortAppLink","workflowPhase","VideoList","yearGroups","getVideoAppLink","v","opts","VideoAppLinkHelper","context","RelatedVideosContext","contextId","folderId","getSubTextAppLink","video","SeriesAppLinkHelper","series","setFavourite","canFavourite","presentationAudiences","audiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","imageCdnUrl","isPlugin","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","hasMore","isFetching","InfiniteScrollFooter","fetchNext","nextCursor","LibraryFolderPartialLoading","PartialVideoList","getPhrase","LanguageService","LibraryFolderView","dispatch","alerts","usePluginHelper","LibraryRequests","library","libraryId","subfolders","user","UserRequests","config","ConfigRequests","isAuthenticated","CustomerRequests","customerId","videoActions","useVideoActions","useLiteFavourites","u","breadcrumbs","useBreadcrumbs","usePresentationAudiences","useSetPageMetadata","VideoSortHelper","getVideosRequest","pageNumber","httpStatus","error","items","VideoRequests","useVideoMixin","hasNoSubfolders","VideoActionsContext","BannerHeader","heading","banner","blockColourClass","logo","owner","Breadcrumbs","getFolderAppLink","args","getFolderBgColourClass","charCode","charCodeAt"],"sourceRoot":""}