@clickview/lite 0.0.24-rc.4 → 0.0.24
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/css/11.chunk.css.map +1 -1
- package/dist/css/12.chunk.css.map +1 -1
- package/dist/css/13.chunk.css.map +1 -1
- package/dist/css/14.chunk.css.map +1 -1
- package/dist/css/15.chunk.css.map +1 -1
- package/dist/css/16.chunk.css.map +1 -1
- package/dist/css/17.chunk.css.map +1 -1
- package/dist/css/18.chunk.css.map +1 -1
- package/dist/css/20.chunk.css.map +1 -1
- package/dist/css/29.chunk.css.map +1 -1
- package/dist/css/3.chunk.css.map +1 -1
- package/dist/css/30.chunk.css.map +1 -1
- package/dist/css/31.chunk.css.map +1 -1
- package/dist/css/33.chunk.css.map +1 -1
- package/dist/css/38.chunk.css +11 -34
- package/dist/css/38.chunk.css.map +1 -1
- package/dist/css/4.chunk.css +3 -3
- package/dist/css/44.chunk.css +11 -3
- package/dist/css/44.chunk.css.map +1 -1
- package/dist/css/45.chunk.css +38 -0
- package/dist/css/45.chunk.css.map +1 -0
- package/dist/css/5.chunk.css.map +1 -1
- package/dist/css/52.chunk.css +52 -0
- package/dist/css/52.chunk.css.map +1 -0
- package/dist/css/59.chunk.css +14 -0
- package/dist/css/59.chunk.css.map +1 -0
- package/dist/css/6.chunk.css.map +1 -1
- package/dist/css/60.chunk.css +43 -0
- package/dist/css/60.chunk.css.map +1 -0
- package/dist/en.json +1 -1
- package/dist/libs/shared/src/components/curriculum-links/CurriculumLinks.d.ts +9 -0
- package/dist/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.d.ts +12 -0
- package/dist/libs/shared/src/enums/CurriculumType.d.ts +6 -0
- package/dist/libs/shared/src/flight-requests/ClassificationRequests.d.ts +1 -0
- package/dist/libs/shared/src/flight-requests/ResourceRequests.d.ts +11 -0
- package/dist/libs/shared/src/interfaces/collections/SubtitleCollection.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/models/Curriculum.d.ts +14 -0
- package/dist/libs/shared/src/interfaces/models/FileUpload.d.ts +20 -0
- package/dist/libs/shared/src/interfaces/models/Language.d.ts +4 -0
- package/dist/libs/shared/src/interfaces/models/Pdf.d.ts +4 -0
- package/dist/libs/shared/src/interfaces/models/Subtitle.d.ts +7 -0
- package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateObjectChannel.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateObjectRating.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateResourceRequest.d.ts +3 -0
- package/dist/projects/lite/src/app.d.ts +1 -0
- package/dist/projects/lite/src/shared/components/play-page/PlayPage.d.ts +2 -1
- package/dist/projects/lite/src/shared/components/synopsis/Synopsis.d.ts +3 -1
- package/dist/projects/lite/src/shared/components/video-details/VideoDetails.d.ts +2 -0
- package/dist/projects/lite/src/shared/constants/MinimumGlanceHeight.d.ts +1 -0
- package/dist/projects/lite/src/shared/views/preview-pdf/PreviewPdfView.d.ts +7 -0
- package/dist/scripts/0-b02efe11fb.chunk.js +1 -0
- package/dist/scripts/1-4f19a5caea.chunk.js +17 -0
- package/dist/scripts/1.chunk.js.map +1 -1
- package/dist/scripts/10.chunk.js +484 -1203
- package/dist/scripts/10.chunk.js.map +1 -1
- package/dist/scripts/11-32e30d10ce.chunk.js +1 -0
- package/dist/scripts/11.chunk.js +289 -1388
- package/dist/scripts/11.chunk.js.map +1 -1
- package/dist/scripts/12-72a5373486.chunk.js +1 -0
- package/dist/scripts/12.chunk.js +1371 -283
- package/dist/scripts/12.chunk.js.map +1 -1
- package/dist/scripts/13-1cd85ad3ee.chunk.js +1 -0
- package/dist/scripts/13.chunk.js +361 -394
- package/dist/scripts/13.chunk.js.map +1 -1
- package/dist/scripts/14-3d60b8ee85.chunk.js +1 -0
- package/dist/scripts/14.chunk.js +793 -332
- package/dist/scripts/14.chunk.js.map +1 -1
- package/dist/scripts/15-90226fb996.chunk.js +1 -0
- package/dist/scripts/15.chunk.js +295 -214
- package/dist/scripts/15.chunk.js.map +1 -1
- package/dist/scripts/16-913b2535ea.chunk.js +1 -0
- package/dist/scripts/16.chunk.js +530 -434
- package/dist/scripts/16.chunk.js.map +1 -1
- package/dist/scripts/17-d6c19ccb60.chunk.js +1 -0
- package/dist/scripts/17.chunk.js +296 -170
- package/dist/scripts/17.chunk.js.map +1 -1
- package/dist/scripts/18-33efcac0c6.chunk.js +1 -0
- package/dist/scripts/18.chunk.js +265 -199
- package/dist/scripts/18.chunk.js.map +1 -1
- package/dist/scripts/19-2380200cfb.chunk.js +1 -0
- package/dist/scripts/19.chunk.js +7 -3
- package/dist/scripts/19.chunk.js.map +1 -1
- package/dist/scripts/2-53e37c2047.chunk.js +1 -0
- package/dist/scripts/2.chunk.js +18673 -622
- package/dist/scripts/2.chunk.js.map +1 -1
- package/dist/scripts/20-ca85f0514e.chunk.js +1 -0
- package/dist/scripts/20.chunk.js +1824 -221
- package/dist/scripts/20.chunk.js.map +1 -1
- package/dist/scripts/21-ef4a226771.chunk.js +1 -0
- package/dist/scripts/22-99c04e164f.chunk.js +1 -0
- package/dist/scripts/23-028eb81a43.chunk.js +1 -0
- package/dist/scripts/23.chunk.js +1 -1
- package/dist/scripts/23.chunk.js.map +1 -1
- package/dist/scripts/24-68f8df3eca.chunk.js +1 -0
- package/dist/scripts/24.chunk.js.map +1 -1
- package/dist/scripts/25-7ad07f87d4.chunk.js +1 -0
- package/dist/scripts/25.chunk.js.map +1 -1
- package/dist/scripts/26-f3dcacfe4f.chunk.js +1 -0
- package/dist/scripts/26.chunk.js +1 -1
- package/dist/scripts/26.chunk.js.map +1 -1
- package/dist/scripts/27-e844268f38.chunk.js +1 -0
- package/dist/scripts/28-853bc5de1f.chunk.js +1 -0
- package/dist/scripts/29-b164ecafe9.chunk.js +1 -0
- package/dist/scripts/29.chunk.js +435 -500
- package/dist/scripts/29.chunk.js.map +1 -1
- package/dist/scripts/3-a1bd8c9016.chunk.js +7 -0
- package/dist/scripts/3.chunk.js +625 -18676
- package/dist/scripts/3.chunk.js.map +1 -1
- package/dist/scripts/30-2cfcf52ea1.chunk.js +1 -0
- package/dist/scripts/30.chunk.js +634 -429
- package/dist/scripts/30.chunk.js.map +1 -1
- package/dist/scripts/31-e6a8291d2f.chunk.js +1 -0
- package/dist/scripts/31.chunk.js +371 -670
- package/dist/scripts/31.chunk.js.map +1 -1
- package/dist/scripts/32-7030dc98ed.chunk.js +1 -0
- package/dist/scripts/32.chunk.js +27 -54
- package/dist/scripts/32.chunk.js.map +1 -1
- package/dist/scripts/33-47b0ac90bd.chunk.js +1 -0
- package/dist/scripts/33.chunk.js +700 -312
- package/dist/scripts/33.chunk.js.map +1 -1
- package/dist/scripts/34-2de007b628.chunk.js +1 -0
- package/dist/scripts/34.chunk.js +3 -3
- package/dist/scripts/34.chunk.js.map +1 -1
- package/dist/scripts/35-d2fb66920b.chunk.js +1 -0
- package/dist/scripts/36-bc85df33de.chunk.js +1 -0
- package/dist/scripts/36.chunk.js.map +1 -1
- package/dist/scripts/37-e26652840b.chunk.js +1 -0
- package/dist/scripts/37.chunk.js +288 -464
- package/dist/scripts/37.chunk.js.map +1 -1
- package/dist/scripts/38-0b6a6b9619.chunk.js +1 -0
- package/dist/scripts/39-6549f483c6.chunk.js +1 -0
- package/dist/scripts/39.chunk.js +1 -1
- package/dist/scripts/39.chunk.js.map +1 -1
- package/dist/scripts/4-9e83a22d7a.chunk.js +1 -0
- package/dist/scripts/4.chunk.js +259 -1021
- package/dist/scripts/4.chunk.js.map +1 -1
- package/dist/scripts/40-8e6e9d285f.chunk.js +1 -0
- package/dist/scripts/41-2b44a2e66f.chunk.js +1 -0
- package/dist/scripts/42-9e75f420d8.chunk.js +1 -0
- package/dist/scripts/42.chunk.js.map +1 -1
- package/dist/scripts/43-1141245420.chunk.js +1 -0
- package/dist/scripts/44-9bc4201e0f.chunk.js +1 -0
- package/dist/scripts/45-5ded8ca3db.chunk.js +1 -0
- package/dist/scripts/46-2afd7ee1fb.chunk.js +1 -0
- package/dist/scripts/47-ab30686138.chunk.js +1 -0
- package/dist/scripts/48-d9cd99d55e.chunk.js +1 -0
- package/dist/scripts/49-f43a08f90b.chunk.js +1 -0
- package/dist/scripts/5-974660e17b.chunk.js +1 -0
- package/dist/scripts/5.chunk.js +1017 -259
- package/dist/scripts/5.chunk.js.map +1 -1
- package/dist/scripts/50-af699c531e.chunk.js +1 -0
- package/dist/scripts/51-aa7b835007.chunk.js +1 -0
- package/dist/scripts/52-805f7fe04d.chunk.js +1 -0
- package/dist/scripts/53-d75ca53045.chunk.js +1 -0
- package/dist/scripts/54-2e75bad46f.chunk.js +1 -0
- package/dist/scripts/55-ed637c4847.chunk.js +1 -0
- package/dist/scripts/55.chunk.js.map +1 -1
- package/dist/scripts/56-2ed3b5764b.chunk.js +1 -0
- package/dist/scripts/57-e51101c8a1.chunk.js +1 -0
- package/dist/scripts/58-9a32a6fb2d.chunk.js +1 -0
- package/dist/scripts/59-da8a8c97a9.chunk.js +1 -0
- package/dist/scripts/6-6ac39034e0.chunk.js +1 -0
- package/dist/scripts/6.chunk.js +291 -1250
- package/dist/scripts/6.chunk.js.map +1 -1
- package/dist/scripts/60-5713de53e2.chunk.js +1 -0
- package/dist/scripts/61-7d2ad17963.chunk.js +1 -0
- package/dist/scripts/62-a0a69501ac.chunk.js +1 -0
- package/dist/scripts/63-c921b87f3f.chunk.js +1 -0
- package/dist/scripts/64-87c1cf6985.chunk.js +1 -0
- package/dist/scripts/65-2322082836.chunk.js +1 -0
- package/dist/scripts/66-6d5356f6ce.chunk.js +1 -0
- package/dist/scripts/67-2e0d661c52.chunk.js +1 -0
- package/dist/scripts/7-5ac5be64dd.chunk.js +1 -0
- package/dist/scripts/7.chunk.js +1 -1
- package/dist/scripts/76.chunk.js +3 -3
- package/dist/scripts/76.chunk.js.map +1 -1
- package/dist/scripts/79.chunk.js +931 -347
- package/dist/scripts/79.chunk.js.map +1 -1
- package/dist/scripts/8-95563e3d36.chunk.js +1 -0
- package/dist/scripts/8.chunk.js +14 -920
- package/dist/scripts/8.chunk.js.map +1 -1
- package/dist/scripts/80.chunk.js +22 -313
- package/dist/scripts/80.chunk.js.map +1 -1
- package/dist/scripts/9.chunk.js +320 -17
- package/dist/scripts/9.chunk.js.map +1 -1
- package/dist/scripts/bundle-9ed1e126dd.min.js +15 -0
- package/dist/scripts/bundle.js +147 -121
- package/dist/scripts/bundle.js.map +1 -1
- package/dist/scripts/bundles.json +2 -2
- package/dist/scripts/pdf.worker.entry.worker.js +46239 -0
- package/dist/scripts/pdf.worker.entry.worker.js.map +1 -0
- package/dist/scripts/polyfills-2723daf478.min.js +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/common/src/react/utils/TypeHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/banner-widget/BannerWidget.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/greeting-widget/GreetingWidget.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/tall-subject-widget-item/TallSubjectWidgetItem.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/tall-subject-widget-item/tall-subject-widget-item.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/video-widget-item/VideoWidgetItem.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/video-widget-item/video-widget-item.scss?4d14","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/UserGroup.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/useAppOptions.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/CollectionHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/DashboardHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/dashboard/flight-requests/DashboardRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/dashboard/views/dashboard/DashboardView.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/dashboard/views/dashboard/dashboard.scss"],"names":[],"mappings":"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","file":"scripts/25.chunk.js","sourcesContent":["export const TypeHelper = {\r\n isNumber(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'number');\r\n },\r\n\r\n isString(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'string');\r\n },\r\n\r\n isType(obj: any, type: string): boolean {\r\n return typeof obj === type;\r\n }\r\n};","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { ImageType } from 'libs/shared/enums/Images';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { Banner } from 'libs/shared/interfaces';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\ninterface BannerWidgetProps {\r\n appLink: Core.AppLink;\r\n banner: Banner;\r\n imageCdnUrl: string;\r\n heading?: string;\r\n}\r\n\r\nexport function BannerWidget(props: BannerWidgetProps): JSX.Element {\r\n const { heading, banner, imageCdnUrl, appLink } = props;\r\n\r\n const url = ImageHelper.createBannerUrl(banner, {\r\n fallbackBaseUrl: imageCdnUrl,\r\n fallbackCategoryName: heading,\r\n type: ImageType.Banners\r\n });\r\n\r\n return (\r\n <AppLink appLink={appLink}>\r\n <div className='banner' style={{ backgroundImage: `url('${url}')` }}></div>\r\n </AppLink>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { TimeHelper } from 'libs/common/react/utils/TimeHelper';\r\nimport { CurrentUser } from 'libs/shared/interfaces';\r\n\r\ninterface GreetingWidgetProps {\r\n user: CurrentUser;\r\n}\r\n\r\nconst namespace = 'shared.greeting';\r\n\r\nfunction getTimeOfDayGreeting(getPhrase: Function): string {\r\n const timeOfDay = TimeHelper.currentTimeOfDay();\r\n\r\n switch (timeOfDay) {\r\n case 'morning': return getPhrase('morning');\r\n case 'afternoon': return getPhrase('afternoon');\r\n case 'evening': return getPhrase('evening');\r\n default: return getPhrase('fallback');\r\n }\r\n}\r\n\r\nexport const GreetingWidget = React.memo(function({ user }: GreetingWidgetProps): JSX.Element {\r\n const getPhrase = LanguageService.encloseNamespace(namespace);\r\n return (\r\n <h1 className='h2 mb-0'>\r\n <strong>\r\n {getTimeOfDayGreeting(getPhrase)}\r\n <span className='text-info'>{user ? ` ${user.givenName}` : ''}</span>\r\n ,\r\n </strong>\r\n <br/>\r\n <strong>{getPhrase('prompt')}</strong>\r\n </h1>\r\n );\r\n}, (prevProps, nextProps) => prevProps.user?.id === nextProps.user?.id);","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { WidgetContext, Classification, PresentationAudience } from 'libs/shared/interfaces';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { BaseThumbnail, AspectRatio } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\n\r\nimport styles from './tall-subject-widget-item.scss';\r\n\r\nfunction getClassName(context: WidgetContext): string {\r\n return `${styles.slidingSubject} ${styles.thumbnailContainer}`;\r\n}\r\n\r\nexport interface TallSubjectWidgetItemProps {\r\n data: Classification;\r\n appLink: Core.AppLink;\r\n audiences: PresentationAudience[];\r\n context?: WidgetContext;\r\n preloadImage?: boolean;\r\n}\r\n\r\nexport function TallSubjectWidgetItem(props : TallSubjectWidgetItemProps): JSX.Element {\r\n const { data, appLink, context, preloadImage } = props;\r\n\r\n const subjectAppLink: Core.AppLink = {\r\n ...appLink,\r\n args: [ data.id, TextHelper.slugify(data.name) ]\r\n };\r\n\r\n return (\r\n <div className={getClassName(context)}>\r\n <BaseThumbnail\r\n data={data.tallPoster}\r\n appLink={subjectAppLink}\r\n aspectRatio={AspectRatio.NineBySixteen}\r\n preload={preloadImage}\r\n size={ThumbnailSize.Large}>\r\n <ThumbnailFallback type={ThumbnailFallbackType.TallSubject} />\r\n <h3 className={`h4 ${styles.heading}`}>{data.name}</h3>\r\n </BaseThumbnail>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slidingSubject\":\"cv--slidingSubject--16BT9\",\"heading\":\"cv--heading--1ZUkE\",\"thumbnailContainer\":\"cv--thumbnailContainer--1uhoK\",\"partialLoadingHeading\":\"cv--partialLoadingHeading--1-m4K\",\"partialLoading\":\"cv--partialLoading--3fvkd\",\"labelContainer\":\"cv--labelContainer--3T7RZ\"};","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { WidgetContext, Video, WidgetType } from 'libs/shared/interfaces';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\r\n\r\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\r\n\r\nimport styles from './video-widget-item.scss';\r\n\r\ninterface VideoWidgetItemProps {\r\n data: Video;\r\n appLink: Core.AppLink;\r\n seriesAppLink: Core.AppLink;\r\n context: WidgetContext;\r\n thumbnailSize: ThumbnailSize;\r\n onHover: (isHovering: boolean) => void;\r\n preloadImage?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport const VideoWidgetItem = React.memo(function(props : VideoWidgetItemProps): JSX.Element {\r\n const { data: video, appLink, seriesAppLink, context, thumbnailSize, preloadImage } = props;\r\n\r\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>(styles.hovering);\r\n\r\n React.useEffect(() => {\r\n props.onHover(isHovering);\r\n }, [isHovering]);\r\n\r\n const videoAppLink: Core.AppLink = {\r\n ...appLink,\r\n args: [ video.id, TextHelper.slugify(video.name) ]\r\n };\r\n\r\n let width = styles.rowWidth;\r\n\r\n if (context.type === WidgetType.LargeRow || context.collectionSize === 3)\r\n width = styles.largeRowWidth;\r\n\r\n return (\r\n <div ref={ref} className={`p-1 flex-shrink-0 position-relative ${width} ${styles.transition}`}>\r\n <VideoThumbnail\r\n video={video}\r\n type='expandable'\r\n appLink={videoAppLink}\r\n seriesAppLink={seriesAppLink}\r\n textPosition={ThumbnailTextPosition.Overlay}\r\n size={thumbnailSize}\r\n preload={preloadImage}\r\n hovering={isHovering}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n />\r\n </div>\r\n );\r\n}, (prevProps, nextProps): boolean => {\r\n return prevProps.preloadImage === nextProps.preloadImage\r\n && prevProps.data?.name === nextProps.data?.name\r\n && prevProps.data?.series?.id === nextProps.data?.series?.id\r\n && prevProps.onHover === nextProps.onHover;\r\n});","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rowWidth\":\"cv--rowWidth--8IgrO\",\"largeRowWidth\":\"cv--largeRowWidth--q46rm\",\"hovering\":\"cv--hovering--IeeJA\",\"transition\":\"cv--transition--1s6UK\"};","export enum UserGroup {\r\n Learner = 'learner',\r\n Staff = 'staff'\r\n}","import { useInstance } from 'libs/common/react/hooks/UseInstance';\r\n\r\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\r\nimport { AppOptionsService } from 'libs/shared/services/AppOptionsService';\r\n\r\nexport const useAppOptions = () => {\r\n return useInstance<AppOptionsService>(SharedServices.AppOptions);\r\n};","import { LegacyPagination, Cursors } from 'libs/common/backbone/interfaces';\r\nimport { TypeHelper } from 'libs/common/react/utils/TypeHelper';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { BasePaginatedCollection, BaseObject } from 'libs/shared/interfaces';\r\n\r\ninterface LegacyPaginatedCollection {\r\n data: BaseObject[];\r\n pagination: LegacyPagination;\r\n}\r\n\r\nfunction convertLegacyPaginationToCursors(pagination: LegacyPagination): Cursors {\r\n const { page, totalPages } = pagination;\r\n\r\n const nextPage = TypeHelper.isNumber(page) && page > 0 && page < totalPages && page + 1;\r\n const prevPage = TypeHelper.isNumber(page) && page > 1 && page - 1;\r\n\r\n let cursors: HashObject = {};\r\n\r\n if (nextPage && nextPage <= totalPages)\r\n cursors.next = nextPage.toString();\r\n\r\n if (prevPage)\r\n cursors.previous = prevPage.toString();\r\n\r\n if (ObjectHelper.isEmpty(cursors))\r\n return;\r\n\r\n return cursors as Cursors;\r\n}\r\n\r\nexport const CollectionHelper = {\r\n isEmpty(collection: BasePaginatedCollection<BaseObject>): boolean {\r\n return collection && !(collection.data && collection.data.length);\r\n },\r\n\r\n length(collection: BasePaginatedCollection<BaseObject>): number {\r\n return collection && collection.data && collection.data.length;\r\n },\r\n\r\n at<T extends BaseObject>(collection: BasePaginatedCollection<T>, idx: number): T {\r\n if (!collection || !collection.data || !collection.data.length || idx > collection.data.length)\r\n return;\r\n\r\n return collection.data[idx];\r\n },\r\n\r\n get<T extends BaseObject>(collection: BasePaginatedCollection<T>, id: string): T {\r\n if (!collection || !collection.data || !collection.data.length)\r\n return;\r\n\r\n return collection.data.find(c => c.id && c.id.toString() === id);\r\n },\r\n\r\n flattenCollections<T extends BaseObject, U extends BasePaginatedCollection<T>>(collections: U[]): T[] {\r\n if (!collections || !collections.length)\r\n return;\r\n\r\n let flattened: T[] = [];\r\n\r\n collections.forEach(c => {\r\n flattened = [ ...flattened, ...c.data ];\r\n });\r\n\r\n return flattened;\r\n },\r\n\r\n getNextCursor<T extends BaseObject, U extends BasePaginatedCollection<T>>(collection: U): string {\r\n return collection.pagination && collection.pagination.cursors && collection.pagination.cursors.next;\r\n },\r\n\r\n convertLegacyPaginatedCollection(collection: LegacyPaginatedCollection): BasePaginatedCollection<BaseObject> {\r\n if (!collection)\r\n return;\r\n\r\n return {\r\n data: collection.data,\r\n pagination: {\r\n cursors: convertLegacyPaginationToCursors(collection.pagination),\r\n limit: collection.pagination.pageSize\r\n }\r\n };\r\n }\r\n};","import { OnlineUserRole } from 'libs/shared/enums/UserRole';\r\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\r\n\r\nexport const DashboardHelper = {\r\n\r\n /**\r\n * Same implementation as GetUserGroup() in Online.\r\n * @param userRole \r\n */\r\n getUserGroup(userRole: OnlineUserRole): UserGroup {\r\n if (userRole === OnlineUserRole.Student)\r\n return UserGroup.Learner;\r\n\r\n return UserGroup.Staff;\r\n }\r\n};\r\n","import { Flight } from 'libs/common/flight';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { LegacyPagination } from 'libs/common/backbone/interfaces';\r\n\r\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\r\nimport { CustomerType } from 'libs/shared/enums/CustomerType';\r\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\r\nimport { CollectionHelper } from 'libs/shared/utils/CollectionHelper';\r\nimport { Playlist } from 'libs/shared/interfaces';\r\n\r\nconst endpoints = {\r\n widgets: (libraryType: LibraryType, customerType: CustomerType, userRole: number, countryCode: string) => {\r\n const base = `/api/domain/v2/dashboards/widgets`;\r\n return UrlHelper.urlBuilder(base, { libraryType, customerType, userRole, countryCode });\r\n },\r\n\r\n playlist: (id: string, maxRatingValue: number, userGroup: UserGroup, page?: number, limit?: number) => {\r\n const base = `/api/domain/v2/dashboards/playlists/${id}/videos`;\r\n return UrlHelper.urlBuilder(base, { maxRatingValue, userGroup, page, limit });\r\n },\r\n};\r\n\r\nexport const DashboardRequests = {\r\n widgets(libraryType: LibraryType, customerType: CustomerType, userRole: number, countryCode: string): Flight.Request {\r\n return {\r\n url: endpoints.widgets(libraryType, customerType, userRole, countryCode),\r\n key: `widgets:${libraryType}:${customerType}:${countryCode}`,\r\n expiryTime: Infinity\r\n };\r\n },\r\n\r\n widgetPlaylist(\r\n id: string,\r\n maxRatingValue: number,\r\n userGroup: UserGroup,\r\n page?: number,\r\n limit?: number\r\n ): Flight.Request {\r\n return {\r\n url: endpoints.playlist(id, maxRatingValue, userGroup, page, limit),\r\n key: `widget:${id}:${maxRatingValue}:${userGroup}:${page}`,\r\n formatData: (widgetPlaylist: Playlist) => {\r\n const videoCollection = {\r\n data: widgetPlaylist.videos.data,\r\n pagination: widgetPlaylist.videos.pagination as any as LegacyPagination\r\n };\r\n\r\n return {\r\n ...widgetPlaylist,\r\n videos: CollectionHelper.convertLegacyPaginatedCollection(videoCollection)\r\n };\r\n },\r\n expiryTime: Infinity\r\n };\r\n }\r\n};\r\n","import * as _ from 'underscore';\r\nimport * as React from 'react';\r\nimport * as ReactIntersectionObserver from 'react-intersection-observer';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { BackboneViewWrapper } from 'libs/common/react/components/BackboneViewWrapper';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { CurrentUser, WidgetCollection, Playlist, WidgetType, Classification, Banner, Presentation } from 'libs/shared/interfaces';\r\nimport { DashboardHelper } from 'libs/shared/utils/DashboardHelper';\r\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { useAppOptions } from 'libs/shared/hooks/useAppOptions';\r\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget/FixedWidget';\r\nimport { VideoWidgetItem } from 'libs/shared/components/widgets/items/video-widget-item/VideoWidgetItem';\r\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\r\nimport { GreetingWidget } from 'libs/shared/components/widgets/greeting-widget/GreetingWidget';\r\nimport { TallSubjectWidgetItem } from 'libs/shared/components/widgets/items/tall-subject-widget-item/TallSubjectWidgetItem';\r\nimport { BannerWidget } from 'libs/shared/components/widgets/banner-widget/BannerWidget';\r\nimport { OnlineUserRole } from 'libs/shared/enums/UserRole';\r\nimport { SearchBarView } from 'libs/shared/apps/search/views/search-bar/SearchBarView';\r\nimport { Query } from 'libs/shared/apps/search/models/Query';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\n\r\nimport { DashboardRequests } from 'apps/dashboard/flight-requests/DashboardRequests';\r\n\r\nimport styles from './dashboard.scss';\r\n\r\nconst DASHBOARD_NAV_OFFSET: string = '-126px 0px';\r\n\r\nconst namespace = 'dashboard.dashboard';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\nconst appLinks = {\r\n video: { application: AppChannels.DEFAULT, action: Actions.Default.PLAY_VIDEO },\r\n collection: { application: AppChannels.DASHBOARD, action: Actions.Dashboard.DASHBOARD },\r\n series: { application: AppChannels.DEFAULT, action: Actions.Default.SERIES },\r\n classification: { application: AppChannels.SUBJECT, action: Actions.Subjects.CLASSIFICATION }\r\n};\r\n\r\n/**\r\n * Data fetching hooks\r\n */\r\nfunction useGetClassifications(shouldFetch: boolean): Flight.Response<Classification[]> {\r\n return Flight.useBasicFetch<Classification[]>(\r\n shouldFetch && ClassificationRequests.classifications(), { optimize: true });\r\n}\r\n\r\nfunction useGetWidgets(user: CurrentUser): WidgetCollection {\r\n const { onlineCustomerType } = useAppOptions();\r\n\r\n // TODO: Replace this when we have UserRole coming through correctly from Master/Domain.\r\n // We don't have access to OnlineUserRole in Lite - which is what this endpoint expects.\r\n const role = OnlineUserRole.Staff;\r\n\r\n const widgetsRequest = user?.countryCode\r\n && DashboardRequests.widgets(LibraryType.HostedLibrary, onlineCustomerType, role, user?.countryCode);\r\n\r\n return Flight.useBasicFetch<WidgetCollection>(widgetsRequest, { optimize: true }).data;\r\n}\r\n\r\nfunction useGetWidgetPlaylist(id: string, user: CurrentUser, shouldFetch: boolean): Flight.Response<Playlist> {\r\n // TODO: As with useGetWidgets, this needs to be updated once we have a valid UserType\r\n return Flight.useBasicFetch<Playlist>(shouldFetch ?\r\n DashboardRequests.widgetPlaylist(id, null,\r\n DashboardHelper.getUserGroup(OnlineUserRole.Staff), 1, 25)\r\n : null, { optimize: true });\r\n}\r\n\r\n/**\r\n * TODO: Remove hardcoded banner.\r\n * Need to consider a backend for the different widget types.\r\n */\r\nfunction getBanner(): Banner {\r\n return {\r\n id: 'Xg84gv',\r\n url: 'http://image.api.stg.cvnet.io/v2/banners/Xg84gv'\r\n };\r\n}\r\n\r\n/**\r\n * Explicitly seperated SearchBar into it's own local component as changing\r\n * the searchContext (in response to the intersection observer) will \r\n * re-render the component. We don't want to have to re-render the \r\n * whole dashboard each time - Mike\r\n */\r\ninterface SearchBarProps {\r\n presentationId: string;\r\n}\r\n\r\nfunction SearchBar(props: SearchBarProps): JSX.Element {\r\n const { presentationId } = props;\r\n\r\n const [ showSearchInNav, setShowSearchInNav ] = useViewModel<boolean>(ViewModelKeys.SEARCH_BAR_LOCATION, false);\r\n\r\n const [ ref, inView ] = ReactIntersectionObserver.useInView({\r\n rootMargin: DASHBOARD_NAV_OFFSET,\r\n });\r\n\r\n if (inView === showSearchInNav)\r\n setShowSearchInNav(!inView);\r\n\r\n React.useEffect(() => () => setShowSearchInNav(true), []);\r\n\r\n return (\r\n <div ref={ref} className='py-5'>\r\n <BackboneViewWrapper\r\n className={`container ${styles.searchBarContainer}`}\r\n view={SearchBarView}\r\n options={{\r\n model: ViewModelService.get<Query>('search', { ctor: Query }),\r\n disableMask: true,\r\n presentationId\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport function DashboardView(): JSX.Element {\r\n const userRequest = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser(), { optimize: true });\r\n const widgets = useGetWidgets(userRequest.data);\r\n const presentation = Flight.useBasicFetch<Presentation>(ClassificationRequests.presentation(), { optimize: true });\r\n\r\n useSetPageTitle(getPhrase('pageTitle'));\r\n\r\n return (\r\n <div className='bg-white px-3'>\r\n <div className='py-3 pl-5'>\r\n <GreetingWidget user={userRequest.data}/>\r\n </div>\r\n <SearchBar presentationId={presentation.data?.id} />\r\n <FixedWidget\r\n name={getPhrase('subjectsWidget')}\r\n type={WidgetType.Row}\r\n contents={WidgetContents.Subjects}\r\n fetch={useGetClassifications}\r\n setData={(classifications: Classification[]) => classifications}\r\n childComponent={TallSubjectWidgetItem}\r\n childAppLink={appLinks.classification}\r\n />\r\n <div className='pb-3 px-1'>\r\n <BannerWidget\r\n appLink={appLinks.series}\r\n banner={getBanner()}\r\n imageCdnUrl={''}\r\n />\r\n </div>\r\n {widgets && widgets.map((widget, index) =>\r\n <FixedWidget\r\n key={index}\r\n type={widget.type}\r\n contents={WidgetContents.Videos}\r\n fetch={_.partial(useGetWidgetPlaylist, widget.collectionId.toString(), userRequest.data)}\r\n setData={(playlist: Playlist) => playlist.videos.data}\r\n lazyLoad={true}\r\n childComponent={(props): JSX.Element =>\r\n <VideoWidgetItem {...props}\r\n appLink={appLinks.video}\r\n seriesAppLink={appLinks.series}\r\n />}\r\n appLink={appLinks.collection}\r\n childAppLink={appLinks.video}\r\n />\r\n )}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchBarContainer\":\"cv--searchBarContainer--W4B6T\"};"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/common/src/react/utils/TypeHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/banner-widget/BannerWidget.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/greeting-widget/GreetingWidget.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/tall-subject-widget-item/TallSubjectWidgetItem.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/tall-subject-widget-item/tall-subject-widget-item.scss?333e","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/video-widget-item/VideoWidgetItem.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/video-widget-item/video-widget-item.scss?4d14","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/UserGroup.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/useAppOptions.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/CollectionHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/DashboardHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/dashboard/flight-requests/DashboardRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/dashboard/views/dashboard/DashboardView.tsx","webpack://@clickview/lite/./src/apps/dashboard/views/dashboard/dashboard.scss?904d"],"names":[],"mappings":"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","file":"scripts/25.chunk.js","sourcesContent":["export const TypeHelper = {\r\n isNumber(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'number');\r\n },\r\n\r\n isString(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'string');\r\n },\r\n\r\n isType(obj: any, type: string): boolean {\r\n return typeof obj === type;\r\n }\r\n};","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { ImageType } from 'libs/shared/enums/Images';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { Banner } from 'libs/shared/interfaces';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\ninterface BannerWidgetProps {\r\n appLink: Core.AppLink;\r\n banner: Banner;\r\n imageCdnUrl: string;\r\n heading?: string;\r\n}\r\n\r\nexport function BannerWidget(props: BannerWidgetProps): JSX.Element {\r\n const { heading, banner, imageCdnUrl, appLink } = props;\r\n\r\n const url = ImageHelper.createBannerUrl(banner, {\r\n fallbackBaseUrl: imageCdnUrl,\r\n fallbackCategoryName: heading,\r\n type: ImageType.Banners\r\n });\r\n\r\n return (\r\n <AppLink appLink={appLink}>\r\n <div className='banner' style={{ backgroundImage: `url('${url}')` }}></div>\r\n </AppLink>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { TimeHelper } from 'libs/common/react/utils/TimeHelper';\r\nimport { CurrentUser } from 'libs/shared/interfaces';\r\n\r\ninterface GreetingWidgetProps {\r\n user: CurrentUser;\r\n}\r\n\r\nconst namespace = 'shared.greeting';\r\n\r\nfunction getTimeOfDayGreeting(getPhrase: Function): string {\r\n const timeOfDay = TimeHelper.currentTimeOfDay();\r\n\r\n switch (timeOfDay) {\r\n case 'morning': return getPhrase('morning');\r\n case 'afternoon': return getPhrase('afternoon');\r\n case 'evening': return getPhrase('evening');\r\n default: return getPhrase('fallback');\r\n }\r\n}\r\n\r\nexport const GreetingWidget = React.memo(function({ user }: GreetingWidgetProps): JSX.Element {\r\n const getPhrase = LanguageService.encloseNamespace(namespace);\r\n return (\r\n <h1 className='h2 mb-0'>\r\n <strong>\r\n {getTimeOfDayGreeting(getPhrase)}\r\n <span className='text-info'>{user ? ` ${user.givenName}` : ''}</span>\r\n ,\r\n </strong>\r\n <br/>\r\n <strong>{getPhrase('prompt')}</strong>\r\n </h1>\r\n );\r\n}, (prevProps, nextProps) => prevProps.user?.id === nextProps.user?.id);","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { WidgetContext, Classification, PresentationAudience } from 'libs/shared/interfaces';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { BaseThumbnail, AspectRatio } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\n\r\nimport styles from './tall-subject-widget-item.scss';\r\n\r\nfunction getClassName(context: WidgetContext): string {\r\n return `${styles.slidingSubject} ${styles.thumbnailContainer}`;\r\n}\r\n\r\nexport interface TallSubjectWidgetItemProps {\r\n data: Classification;\r\n appLink: Core.AppLink;\r\n audiences: PresentationAudience[];\r\n context?: WidgetContext;\r\n preloadImage?: boolean;\r\n}\r\n\r\nexport function TallSubjectWidgetItem(props : TallSubjectWidgetItemProps): JSX.Element {\r\n const { data, appLink, context, preloadImage } = props;\r\n\r\n const subjectAppLink: Core.AppLink = {\r\n ...appLink,\r\n args: [ data.id, TextHelper.slugify(data.name) ]\r\n };\r\n\r\n return (\r\n <div className={getClassName(context)}>\r\n <BaseThumbnail\r\n data={data.tallPoster}\r\n appLink={subjectAppLink}\r\n aspectRatio={AspectRatio.NineBySixteen}\r\n preload={preloadImage}\r\n size={ThumbnailSize.Large}>\r\n <ThumbnailFallback type={ThumbnailFallbackType.TallSubject} />\r\n <h3 className={`h4 ${styles.heading}`}>{data.name}</h3>\r\n </BaseThumbnail>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slidingSubject\":\"cv--slidingSubject--16BT9\",\"heading\":\"cv--heading--1ZUkE\",\"thumbnailContainer\":\"cv--thumbnailContainer--1uhoK\",\"partialLoadingHeading\":\"cv--partialLoadingHeading--1-m4K\",\"partialLoading\":\"cv--partialLoading--3fvkd\",\"labelContainer\":\"cv--labelContainer--3T7RZ\"};","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { WidgetContext, Video, WidgetType } from 'libs/shared/interfaces';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\r\n\r\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\r\n\r\nimport styles from './video-widget-item.scss';\r\n\r\ninterface VideoWidgetItemProps {\r\n data: Video;\r\n appLink: Core.AppLink;\r\n seriesAppLink: Core.AppLink;\r\n context: WidgetContext;\r\n thumbnailSize: ThumbnailSize;\r\n onHover: (isHovering: boolean) => void;\r\n preloadImage?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport const VideoWidgetItem = React.memo(function(props : VideoWidgetItemProps): JSX.Element {\r\n const { data: video, appLink, seriesAppLink, context, thumbnailSize, preloadImage } = props;\r\n\r\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>(styles.hovering);\r\n\r\n React.useEffect(() => {\r\n props.onHover(isHovering);\r\n }, [isHovering]);\r\n\r\n const videoAppLink: Core.AppLink = {\r\n ...appLink,\r\n args: [ video.id, TextHelper.slugify(video.name) ]\r\n };\r\n\r\n let width = styles.rowWidth;\r\n\r\n if (context.type === WidgetType.LargeRow || context.collectionSize === 3)\r\n width = styles.largeRowWidth;\r\n\r\n return (\r\n <div ref={ref} className={`p-1 flex-shrink-0 position-relative ${width} ${styles.transition}`}>\r\n <VideoThumbnail\r\n video={video}\r\n type='expandable'\r\n appLink={videoAppLink}\r\n seriesAppLink={seriesAppLink}\r\n textPosition={ThumbnailTextPosition.Overlay}\r\n size={thumbnailSize}\r\n preload={preloadImage}\r\n hovering={isHovering}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n />\r\n </div>\r\n );\r\n}, (prevProps, nextProps): boolean => {\r\n return prevProps.preloadImage === nextProps.preloadImage\r\n && prevProps.data?.name === nextProps.data?.name\r\n && prevProps.data?.series?.id === nextProps.data?.series?.id\r\n && prevProps.onHover === nextProps.onHover;\r\n});","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rowWidth\":\"cv--rowWidth--8IgrO\",\"largeRowWidth\":\"cv--largeRowWidth--q46rm\",\"hovering\":\"cv--hovering--IeeJA\",\"transition\":\"cv--transition--1s6UK\"};","export enum UserGroup {\r\n Learner = 'learner',\r\n Staff = 'staff'\r\n}","import { useInstance } from 'libs/common/react/hooks/UseInstance';\r\n\r\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\r\nimport { AppOptionsService } from 'libs/shared/services/AppOptionsService';\r\n\r\nexport const useAppOptions = () => {\r\n return useInstance<AppOptionsService>(SharedServices.AppOptions);\r\n};","import { LegacyPagination, Cursors } from 'libs/common/backbone/interfaces';\r\nimport { TypeHelper } from 'libs/common/react/utils/TypeHelper';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { BasePaginatedCollection, BaseObject } from 'libs/shared/interfaces';\r\n\r\ninterface LegacyPaginatedCollection {\r\n data: BaseObject[];\r\n pagination: LegacyPagination;\r\n}\r\n\r\nfunction convertLegacyPaginationToCursors(pagination: LegacyPagination): Cursors {\r\n const { page, totalPages } = pagination;\r\n\r\n const nextPage = TypeHelper.isNumber(page) && page > 0 && page < totalPages && page + 1;\r\n const prevPage = TypeHelper.isNumber(page) && page > 1 && page - 1;\r\n\r\n let cursors: HashObject = {};\r\n\r\n if (nextPage && nextPage <= totalPages)\r\n cursors.next = nextPage.toString();\r\n\r\n if (prevPage)\r\n cursors.previous = prevPage.toString();\r\n\r\n if (ObjectHelper.isEmpty(cursors))\r\n return;\r\n\r\n return cursors as Cursors;\r\n}\r\n\r\nexport const CollectionHelper = {\r\n isEmpty(collection: BasePaginatedCollection<BaseObject>): boolean {\r\n return collection && !(collection.data && collection.data.length);\r\n },\r\n\r\n length(collection: BasePaginatedCollection<BaseObject>): number {\r\n return collection && collection.data && collection.data.length;\r\n },\r\n\r\n at<T extends BaseObject>(collection: BasePaginatedCollection<T>, idx: number): T {\r\n if (!collection || !collection.data || !collection.data.length || idx > collection.data.length)\r\n return;\r\n\r\n return collection.data[idx];\r\n },\r\n\r\n get<T extends BaseObject>(collection: BasePaginatedCollection<T>, id: string): T {\r\n if (!collection || !collection.data || !collection.data.length)\r\n return;\r\n\r\n return collection.data.find(c => c.id && c.id.toString() === id);\r\n },\r\n\r\n flattenCollections<T extends BaseObject, U extends BasePaginatedCollection<T>>(collections: U[]): T[] {\r\n if (!collections || !collections.length)\r\n return;\r\n\r\n let flattened: T[] = [];\r\n\r\n collections.forEach(c => {\r\n flattened = [ ...flattened, ...c.data ];\r\n });\r\n\r\n return flattened;\r\n },\r\n\r\n getNextCursor<T extends BaseObject, U extends BasePaginatedCollection<T>>(collection: U): string {\r\n return collection.pagination && collection.pagination.cursors && collection.pagination.cursors.next;\r\n },\r\n\r\n convertLegacyPaginatedCollection(collection: LegacyPaginatedCollection): BasePaginatedCollection<BaseObject> {\r\n if (!collection)\r\n return;\r\n\r\n return {\r\n data: collection.data,\r\n pagination: {\r\n cursors: convertLegacyPaginationToCursors(collection.pagination),\r\n limit: collection.pagination.pageSize\r\n }\r\n };\r\n }\r\n};","import { OnlineUserRole } from 'libs/shared/enums/UserRole';\r\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\r\n\r\nexport const DashboardHelper = {\r\n\r\n /**\r\n * Same implementation as GetUserGroup() in Online.\r\n * @param userRole \r\n */\r\n getUserGroup(userRole: OnlineUserRole): UserGroup {\r\n if (userRole === OnlineUserRole.Student)\r\n return UserGroup.Learner;\r\n\r\n return UserGroup.Staff;\r\n }\r\n};\r\n","import { Flight } from 'libs/common/flight';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { LegacyPagination } from 'libs/common/backbone/interfaces';\r\n\r\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\r\nimport { CustomerType } from 'libs/shared/enums/CustomerType';\r\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\r\nimport { CollectionHelper } from 'libs/shared/utils/CollectionHelper';\r\nimport { Playlist } from 'libs/shared/interfaces';\r\n\r\nconst endpoints = {\r\n widgets: (libraryType: LibraryType, customerType: CustomerType, userRole: number, countryCode: string) => {\r\n const base = `/api/domain/v2/dashboards/widgets`;\r\n return UrlHelper.urlBuilder(base, { libraryType, customerType, userRole, countryCode });\r\n },\r\n\r\n playlist: (id: string, maxRatingValue: number, userGroup: UserGroup, page?: number, limit?: number) => {\r\n const base = `/api/domain/v2/dashboards/playlists/${id}/videos`;\r\n return UrlHelper.urlBuilder(base, { maxRatingValue, userGroup, page, limit });\r\n },\r\n};\r\n\r\nexport const DashboardRequests = {\r\n widgets(libraryType: LibraryType, customerType: CustomerType, userRole: number, countryCode: string): Flight.Request {\r\n return {\r\n url: endpoints.widgets(libraryType, customerType, userRole, countryCode),\r\n key: `widgets:${libraryType}:${customerType}:${countryCode}`,\r\n expiryTime: Infinity\r\n };\r\n },\r\n\r\n widgetPlaylist(\r\n id: string,\r\n maxRatingValue: number,\r\n userGroup: UserGroup,\r\n page?: number,\r\n limit?: number\r\n ): Flight.Request {\r\n return {\r\n url: endpoints.playlist(id, maxRatingValue, userGroup, page, limit),\r\n key: `widget:${id}:${maxRatingValue}:${userGroup}:${page}`,\r\n formatData: (widgetPlaylist: Playlist) => {\r\n const videoCollection = {\r\n data: widgetPlaylist.videos.data,\r\n pagination: widgetPlaylist.videos.pagination as any as LegacyPagination\r\n };\r\n\r\n return {\r\n ...widgetPlaylist,\r\n videos: CollectionHelper.convertLegacyPaginatedCollection(videoCollection)\r\n };\r\n },\r\n expiryTime: Infinity\r\n };\r\n }\r\n};\r\n","import * as _ from 'underscore';\r\nimport * as React from 'react';\r\nimport * as ReactIntersectionObserver from 'react-intersection-observer';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { BackboneViewWrapper } from 'libs/common/react/components/BackboneViewWrapper';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { CurrentUser, WidgetCollection, Playlist, WidgetType, Classification, Banner, Presentation } from 'libs/shared/interfaces';\r\nimport { DashboardHelper } from 'libs/shared/utils/DashboardHelper';\r\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { useAppOptions } from 'libs/shared/hooks/useAppOptions';\r\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget/FixedWidget';\r\nimport { VideoWidgetItem } from 'libs/shared/components/widgets/items/video-widget-item/VideoWidgetItem';\r\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\r\nimport { GreetingWidget } from 'libs/shared/components/widgets/greeting-widget/GreetingWidget';\r\nimport { TallSubjectWidgetItem } from 'libs/shared/components/widgets/items/tall-subject-widget-item/TallSubjectWidgetItem';\r\nimport { BannerWidget } from 'libs/shared/components/widgets/banner-widget/BannerWidget';\r\nimport { OnlineUserRole } from 'libs/shared/enums/UserRole';\r\nimport { SearchBarView } from 'libs/shared/apps/search/views/search-bar/SearchBarView';\r\nimport { Query } from 'libs/shared/apps/search/models/Query';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\n\r\nimport { DashboardRequests } from 'apps/dashboard/flight-requests/DashboardRequests';\r\n\r\nimport styles from './dashboard.scss';\r\n\r\nconst DASHBOARD_NAV_OFFSET: string = '-126px 0px';\r\n\r\nconst namespace = 'dashboard.dashboard';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\nconst appLinks = {\r\n video: { application: AppChannels.DEFAULT, action: Actions.Default.PLAY_VIDEO },\r\n collection: { application: AppChannels.DASHBOARD, action: Actions.Dashboard.DASHBOARD },\r\n series: { application: AppChannels.DEFAULT, action: Actions.Default.SERIES },\r\n classification: { application: AppChannels.SUBJECT, action: Actions.Subjects.CLASSIFICATION }\r\n};\r\n\r\n/**\r\n * Data fetching hooks\r\n */\r\nfunction useGetClassifications(shouldFetch: boolean): Flight.Response<Classification[]> {\r\n return Flight.useBasicFetch<Classification[]>(\r\n shouldFetch && ClassificationRequests.classifications(), { optimize: true });\r\n}\r\n\r\nfunction useGetWidgets(user: CurrentUser): WidgetCollection {\r\n const { onlineCustomerType } = useAppOptions();\r\n\r\n // TODO: Replace this when we have UserRole coming through correctly from Master/Domain.\r\n // We don't have access to OnlineUserRole in Lite - which is what this endpoint expects.\r\n const role = OnlineUserRole.Staff;\r\n\r\n const widgetsRequest = user?.countryCode\r\n && DashboardRequests.widgets(LibraryType.HostedLibrary, onlineCustomerType, role, user?.countryCode);\r\n\r\n return Flight.useBasicFetch<WidgetCollection>(widgetsRequest, { optimize: true }).data;\r\n}\r\n\r\nfunction useGetWidgetPlaylist(id: string, user: CurrentUser, shouldFetch: boolean): Flight.Response<Playlist> {\r\n // TODO: As with useGetWidgets, this needs to be updated once we have a valid UserType\r\n return Flight.useBasicFetch<Playlist>(shouldFetch ?\r\n DashboardRequests.widgetPlaylist(id, null,\r\n DashboardHelper.getUserGroup(OnlineUserRole.Staff), 1, 25)\r\n : null, { optimize: true });\r\n}\r\n\r\n/**\r\n * TODO: Remove hardcoded banner.\r\n * Need to consider a backend for the different widget types.\r\n */\r\nfunction getBanner(): Banner {\r\n return {\r\n id: 'Xg84gv',\r\n url: 'http://image.api.stg.cvnet.io/v2/banners/Xg84gv'\r\n };\r\n}\r\n\r\n/**\r\n * Explicitly seperated SearchBar into it's own local component as changing\r\n * the searchContext (in response to the intersection observer) will \r\n * re-render the component. We don't want to have to re-render the \r\n * whole dashboard each time - Mike\r\n */\r\ninterface SearchBarProps {\r\n presentationId: string;\r\n}\r\n\r\nfunction SearchBar(props: SearchBarProps): JSX.Element {\r\n const { presentationId } = props;\r\n\r\n const [ showSearchInNav, setShowSearchInNav ] = useViewModel<boolean>(ViewModelKeys.SEARCH_BAR_LOCATION, false);\r\n\r\n const [ ref, inView ] = ReactIntersectionObserver.useInView({\r\n rootMargin: DASHBOARD_NAV_OFFSET,\r\n });\r\n\r\n if (inView === showSearchInNav)\r\n setShowSearchInNav(!inView);\r\n\r\n React.useEffect(() => () => setShowSearchInNav(true), []);\r\n\r\n return (\r\n <div ref={ref} className='py-5'>\r\n <BackboneViewWrapper\r\n className={`container ${styles.searchBarContainer}`}\r\n view={SearchBarView}\r\n options={{\r\n model: ViewModelService.get<Query>('search', { ctor: Query }),\r\n disableMask: true,\r\n presentationId\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport function DashboardView(): JSX.Element {\r\n const userRequest = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser(), { optimize: true });\r\n const widgets = useGetWidgets(userRequest.data);\r\n const presentation = Flight.useBasicFetch<Presentation>(ClassificationRequests.presentation(), { optimize: true });\r\n\r\n useSetPageTitle(getPhrase('pageTitle'));\r\n\r\n return (\r\n <div className='bg-white px-3'>\r\n <div className='py-3 pl-5'>\r\n <GreetingWidget user={userRequest.data}/>\r\n </div>\r\n <SearchBar presentationId={presentation.data?.id} />\r\n <FixedWidget\r\n name={getPhrase('subjectsWidget')}\r\n type={WidgetType.Row}\r\n contents={WidgetContents.Subjects}\r\n fetch={useGetClassifications}\r\n setData={(classifications: Classification[]) => classifications}\r\n childComponent={TallSubjectWidgetItem}\r\n childAppLink={appLinks.classification}\r\n />\r\n <div className='pb-3 px-1'>\r\n <BannerWidget\r\n appLink={appLinks.series}\r\n banner={getBanner()}\r\n imageCdnUrl={''}\r\n />\r\n </div>\r\n {widgets && widgets.map((widget, index) =>\r\n <FixedWidget\r\n key={index}\r\n type={widget.type}\r\n contents={WidgetContents.Videos}\r\n fetch={_.partial(useGetWidgetPlaylist, widget.collectionId.toString(), userRequest.data)}\r\n setData={(playlist: Playlist) => playlist.videos.data}\r\n lazyLoad={true}\r\n childComponent={(props): JSX.Element =>\r\n <VideoWidgetItem {...props}\r\n appLink={appLinks.video}\r\n seriesAppLink={appLinks.series}\r\n />}\r\n appLink={appLinks.collection}\r\n childAppLink={appLinks.video}\r\n />\r\n )}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchBarContainer\":\"cv--searchBarContainer--W4B6T\"};"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[26],{1265:function(e,t,a){e.exports={optionsContainer:"w4CvU",preferenceItem:"_3Xsao"}},1299:function(e,t,a){"use strict";a.r(t),a.d(t,"SubjectPresentationSelectorView",(function(){return y}));var n=a(0),r=a.n(n),c=a(33),i=a(61),l=a(14),s=a(2),u=(a(7),a(872)),o=a(73),d=a(879),m=a(1e3),f=a(155),p=a(115),b=a(824),v=a(898),E=a(1265),h=a.n(E),S=a(51);function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,c=void 0;try{for(var i,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,c=e}finally{try{n||null==l.return||l.return()}finally{if(r)throw c}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return x(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return x(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var j="subjects.subjectPresentationSelector";function y(e){var t,a=e.redirectUrl,n=g(r.a.useState(!1),2),E=n[0],x=n[1],y=g(r.a.useState(),2),k=y[0],C=y[1],w=l.a.useBasicFetch(d.a.availablePresentations()),O=l.a.useBasicFetch(d.a.currentPresentations(m.a.Subject));r.a.useEffect((function(){var e;(null===(e=O.data)||void 0===e?void 0:e.id)&&C(O.data.id)}),[null===(t=O.data)||void 0===t?void 0:t.id]);var B=Object(i.useDispatch)();Object(b.a)();function N(){x(!1);var e=v.a.hasManyPresentationTypes(w.data).hasManyCurriculumPresentations;s.a.AppLinkHelper.trigger(v.a.buildAppLink(e?"curriculum":"levels",a))}var _=!w.data||O.isFetching;return r.a.createElement(o.a.Provider,{value:j},r.a.createElement("form",{className:"p-3"},r.a.createElement("div",{className:"position-relative"},r.a.createElement("div",{className:"text-center mb-4"},r.a.createElement("h1",{className:"mb-3"},r.a.createElement(o.b,{phrase:"heading"})),r.a.createElement("p",{className:"m-0 h6"},r.a.createElement(o.b,{phrase:"info"}))),r.a.createElement("ul",{className:"".concat(h.a.optionsContainer," list-unstyled")},function(){var e;return _?r.a.createElement(r.a.Fragment,null,r.a.createElement("li",{className:"partial-loading-background ".concat(h.a.preferenceItem)}),r.a.createElement("li",{className:"partial-loading-background ".concat(h.a.preferenceItem)})):(null===(e=w.data)||void 0===e?void 0:e.length)?r.a.createElement(r.a.Fragment,null,w.data.map((function(e){var t;return e.type.toLowerCase()!==m.a.Subject?r.a.createElement(r.a.Fragment,{key:e.id}):r.a.createElement(u.b,{key:e.id,name:e.name,imageUrl:f.a.createUrl(null===(t=e.cover)||void 0===t?void 0:t.url,{size:p.a.Small})||"",onClick:function(){return function(e){k===e.id?C(null):C(e.id)}(e)},isSelected:k===e.id,extraClasses:h.a.preferenceItem,radioButton:!0})}))):r.a.createElement(r.a.Fragment,null)}())),r.a.createElement(u.a,null,r.a.createElement("div",null,r.a.createElement(S.a,{appLink:v.a.buildAppLink("welcome",a),className:"btn btn-light"},r.a.createElement(o.b,{phrase:"back"}))),r.a.createElement("div",{className:"d-flex justify-content-right"},r.a.createElement(c.Button,{variant:"dark",disabled:!k||E,onClick:function(){var e;if(k&&!E)if(k!==(null===(e=O.data)||void 0===e?void 0:e.id)){x(!0);var t=w.data.find((function(e){return e.id===k}));l.a.fetch(B,d.a.setPresentation(t,m.a.Subject,N))}else N()}},E?r.a.createElement(c.Spinner,{as:"span",animation:"border",role:"status",size:"sm"}):r.a.createElement(o.b,{phrase:"next"}))))))}},824:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(153),r=a(48),c=a(52),i=function(){var e=Object(n.a)(c.a.ALERT);return{success:function(t){e.success(t)()},error:function(t){e.error(t)()},warning:function(t){e.createAlert({type:r.a.Warning,heading:r.c.Warning,message:t})}}}},841:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(55),i=a(13),l=a(857),s=a.n(l),u=function(e){return e.selectedChildrenCount?n.createElement("div",{className:"".concat(s.a.itemStatus," ").concat(s.a.green)},e.selectedChildrenCount):n.createElement(n.Fragment,null)},o=function(e){var t;return t=e.selected?n.createElement(c.a,{svgName:i.b.Check}):e.radioButton?n.createElement(n.Fragment,null," "):n.createElement(c.a,{svgName:i.b.Plus}),n.createElement("div",{className:"".concat(s.a.itemStatus," ").concat(e.selected?s.a.green:s.a.unchecked)},t)};function d(e){var t,a="".concat(s.a.expandCaret," ").concat(e.expand?s.a.up:s.a.down);return r.a.createElement("li",{className:(t=s.a.preferenceItem,e.extraClasses&&(t+=" "+e.extraClasses),e.isDisabled&&(t+=" "+s.a.disabled),e.isSelected&&!e.isExpandable&&(t+=" "+s.a.selected),e.hideStatus&&(t+=" "+s.a.noBorder),t),onClick:e.onClick,"aria-checked":e.isSelected,"aria-haspopup":e.isExpandable,role:e.isExpandable?"button":"checkbox",style:{backgroundImage:"url(".concat(e.imageUrl,")")},tabIndex:0},r.a.createElement("div",{className:"".concat(s.a.textBox," p-2")},r.a.createElement("p",{className:"m-0 text-truncate"},e.name,r.a.createElement("span",{className:e.isExpandable?a:""})),!e.hideStatus&&r.a.createElement(r.a.Fragment,null,e.isExpandable?r.a.createElement(u,{selectedChildrenCount:e.selectedChildCount}):r.a.createElement(o,{selected:e.isSelected,radioButton:e.radioButton}))))}a.d(t,"a",(function(){return d}))},855:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a(45),c=a(236),i=a(883),l=a.n(i);function s(e){var t=Object(c.a)(),a=t===r.a.SM||t===r.a.XS?"w-100":"w-75",i="justify-content-".concat(e.justify);return n.createElement("div",{className:"".concat(a," ").concat(i," ").concat(l.a.preferenceFooter," d-flex px-3")},e.children)}s.defaultProps={justify:"between"}},856:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(0),r=Object(n.createContext)(void 0)},857:function(e,t,a){e.exports={preferenceItem:"_1LDb6",expandCaret:"_3QEWB",down:"_2y-iF",up:"_1kGNY",disabled:"_2w4FH",selected:"_1lSYv",noBorder:"_3Mxuo",textBox:"_3HCeK",itemStatus:"_2msq4",unchecked:"_2VQLv",green:"AHd64"}},859:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a(155),c=a(115),i=a(856),l=a(841),s=a(156);function u(e){var t,a,u,o,d=n.useContext(i.a),m=e.subject.cover?r.a.createUrl(e.subject.cover.url,{size:c.a.Small}):"",f=e.subject.isExpandableOption?e.subject.children.map((function(e){return e.id})):[],p=e.hasSelectedBulk?0:null===(a=null===(t=d)||void 0===t?void 0:t.selectedSubjects)||void 0===a?void 0:a.filter((function(e){return f.includes(e)})).length,b=n.createElement(l.a,{name:e.subject.name,imageUrl:m,onClick:e.onClick,isSelected:e.selected,isDisabled:e.disabled,isExpandable:e.subject.isExpandableOption,expand:(null===(o=null===(u=d)||void 0===u?void 0:u.expandedSubject)||void 0===o?void 0:o.id)===e.subject.id,selectedChildCount:p,extraClasses:e.extraClasses,hideStatus:e.hideStatus});return e.disabled?n.createElement("span",null,b):n.createElement(s.a,{title:e.subject.name},n.createElement("span",null,b))}},866:function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));var n=a(0),r=a(127),c=a(45),i=a(236),l=a(872),s=a(856),u=a(873),o=a.n(u),d=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function m(e){var t=n.useContext(s.a),a=t.expandedSubject,r=t.selectedSubjects;return n.createElement(n.Fragment,null,e.subjects.map((function(t){var c=function(e,t){return!(!t||e.id===t.id)&&!t.children.find((function(t){return t.id===e.id}))}(t,a),i=e.onSelect;return t.isExpandableOption&&(i=e.onExpand),c&&(i=e.onCollapse),e.hasSelectedBulk&&(i=function(){}),n.createElement(l.c,{key:t.id,subject:t,selected:!e.hasSelectedBulk&&r.includes(t.id),disabled:e.hasSelectedBulk||c,onClick:function(e){return i(t)},hasSelectedBulk:e.hasSelectedBulk})})))}function f(e){var t=e.subjects,a=e.hasSelectedBulk,l=d(e,["subjects","hasSelectedBulk"]),u=n.useContext(s.a).expandedSubject,p=function(){switch(Object(i.a)()){case c.a.LG:default:return 5;case c.a.MD:return 4;case c.a.SM:return 3;case c.a.XS:return 2}}(),b=t.reduce((function(e,t,a){return a%p==0?e.push([t]):r.a.last(e).push(t),e}),[]);return n.createElement("ul",{className:o.a.grid},b.map((function(e,t){var r=u&&!!e.find((function(e){return u.id===e.id&&e.isExpandableOption}));return n.createElement(n.Fragment,{key:t},n.createElement(m,Object.assign({subjects:e,hasSelectedBulk:a},l)),r&&n.createElement("li",{className:"".concat(o.a.subgrid," m-0")},n.createElement(f,Object.assign({subjects:u.children,hasSelectedBulk:a},l))))})))}},872:function(e,t,a){"use strict";var n=a(855);a.d(t,"a",(function(){return n.a}));a(880),a(866);var r=a(859);a.d(t,"c",(function(){return r.a}));var c=a(841);a.d(t,"b",(function(){return c.a}))},873:function(e,t,a){e.exports={grid:"G_RXX",subgrid:"_38ohZ"}},883:function(e,t,a){e.exports={preferenceFooter:"P29kw"}}}]);
|
package/dist/scripts/26.chunk.js
CHANGED
|
@@ -134,8 +134,8 @@ function PlaylistList(props) {
|
|
|
134
134
|
bgColourClassNames: props.bgColourClassNames,
|
|
135
135
|
showCount: props.showCount,
|
|
136
136
|
showOwner: props.showOwner,
|
|
137
|
-
showLastUpdated: props.showLastUpdated,
|
|
138
137
|
showFallbackImage: props.showFallbackImage,
|
|
138
|
+
showLastUpdated: props.showLastUpdated,
|
|
139
139
|
analyticsData: props.analyticsData,
|
|
140
140
|
analyticsOptions: Object.assign(Object.assign({}, props.analyticsOptions), analyticsOptions)
|
|
141
141
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/empty-state/EmptyPlaylistList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PartialPlaylistList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/sort-select/PlaylistSortSelect.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/ActionButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/Actions.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/actions.scss?ab20","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/empty-state/EmptyState.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss?cf3d","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/AudienceRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/views/playlists/PlaylistsView.tsx"],"names":[],"mappings":"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","file":"scripts/26.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\n\r\nimport { ImageUrlService } from 'libs/shared/services/ImageUrlService';\r\nimport { EmptyState } from 'libs/shared/components/empty-state/EmptyState';\r\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('playlists.emptyState');\r\n\r\nexport function EmptyPlaylistList(): React.ReactElement {\r\n const imageUrlService = useService<ImageUrlService>(SharedServices.ImageUrl);\r\n const imageUrls = imageUrlService.getImageUrls();\r\n\r\n return (\r\n <EmptyState\r\n imageUrl={imageUrls.EmptyStates.VIDEOS}\r\n heading={getPhrase('noPlaylistsHeading')}\r\n description={getPhrase('noPlaylistsInfo')}\r\n />\r\n );\r\n}","import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport styles from './playlist.scss';\r\n\r\ninterface PartialPlaylistListProps {\r\n numItems?: number;\r\n itemClassName?: string;\r\n showHeading?: boolean;\r\n}\r\n\r\nPartialPlaylistList.defaultProps = {\r\n numItems: 8\r\n};\r\n\r\nexport function PartialPlaylistList(props: PartialPlaylistListProps): JSX.Element {\r\n const PARTIAL_PLAYLISTS = [...Array(props.numItems)];\r\n\r\n const className = props.itemClassName || '';\r\n\r\n return (\r\n <>\r\n {props.showHeading && <div className={`${styles.partialHeading} partial-loading-background`} />}\r\n <Row>\r\n {PARTIAL_PLAYLISTS.map((p, idx) =>\r\n <Col key={idx} xs={6} sm={4} lg={3} className={className}>\r\n <div className='py-2'>\r\n <div className={`${styles.playlistItem} partial-loading-background`} />\r\n </div>\r\n </Col>\r\n )}\r\n </Row>\r\n </>\r\n );\r\n}","import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Playlist, PresentationAudience, CurrentUser } from 'libs/shared/interfaces';\r\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\r\n\r\nimport { PlaylistItem } from './PlaylistItem';\r\n\r\ninterface PlaylistListProps {\r\n playlists: Playlist[];\r\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\r\n currentUser?: CurrentUser;\r\n presentationAudiences?: PresentationAudience[];\r\n itemContainerClassName?: string;\r\n bgColourClassNames?: string[];\r\n imageCdnUrl?: string;\r\n showCount?: boolean;\r\n showOwner?: boolean;\r\n showLastUpdated?: boolean;\r\n showFallbackImage?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nconst analyticsOptions: AnalyticsOptions = {\r\n actionType: UserAction.Click,\r\n entity: EntityType.Playlist,\r\n location: LocationContext.PlaylistListItem,\r\n descriptor: ClickDescriptor.Cover\r\n};\r\n\r\nexport function PlaylistList(props: PlaylistListProps): JSX.Element {\r\n return (\r\n <Row>\r\n {props.playlists.map(p =>\r\n <Col key={p.id} xs={6} sm={4} lg={3} className={`mb-3 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\r\n <PlaylistItem\r\n data={p}\r\n appLink={props.getPlaylistAppLink(p)}\r\n imageCdnUrl={props.imageCdnUrl}\r\n currentUser={props.currentUser}\r\n presentationAudiences={props.presentationAudiences}\r\n bgColourClassNames={props.bgColourClassNames}\r\n showCount={props.showCount}\r\n showOwner={props.showOwner}\r\n showLastUpdated={props.showLastUpdated}\r\n showFallbackImage={props.showFallbackImage}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={{ ...props.analyticsOptions, ...analyticsOptions }}\r\n />\r\n </Col>\r\n )}\r\n </Row>\r\n );\r\n}","import * as React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { Core } from 'libs/common/core';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nconst namespace = 'playlists.playlistSortSelect';\r\n\r\nconst getSortTypes = FunctionHelper.memoize(() => {\r\n return {\r\n [PlaylistSortType.RecentlyUpdated]: {\r\n name: LanguageService.getPhrase(namespace, 'recentlyUpdated')\r\n },\r\n [PlaylistSortType.AtoZ]: {\r\n name: LanguageService.getPhrase(namespace, 'atoz')\r\n },\r\n [PlaylistSortType.ZtoA]: {\r\n name: LanguageService.getPhrase(namespace, 'ztoa')\r\n },\r\n [PlaylistSortType.Newest]: {\r\n name: LanguageService.getPhrase(namespace, 'newest')\r\n },\r\n [PlaylistSortType.Oldest]: {\r\n name: LanguageService.getPhrase(namespace, 'oldest')\r\n }\r\n };\r\n});\r\n\r\ninterface PlaylistSortSelectProps {\r\n type: PlaylistSortType;\r\n getSortAppLink: (sort: PlaylistSortType) => Core.AppLink;\r\n}\r\n\r\nexport function PlaylistSortSelect(props: PlaylistSortSelectProps): JSX.Element {\r\n const { type, getSortAppLink } = props;\r\n const sortTypes = getSortTypes();\r\n\r\n return (\r\n <Dropdown alignRight>\r\n <Dropdown.Toggle as='a' variant='light' id='sort-select' className='ml-2 btn btn-light'>\r\n {sortTypes[type].name}\r\n </Dropdown.Toggle>\r\n <Dropdown.Menu>\r\n {Object.values(PlaylistSortType).filter(k => k !== type).map(k => {\r\n return (\r\n <AppLink key={k} className={'dropdown-item'} appLink={getSortAppLink(k)}>{sortTypes[k].name}</AppLink>\r\n );\r\n })}\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\r\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\ninterface ActionButtonProps {\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n tooltip?: string;\r\n showSpinner?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport function ActionButton(props: React.PropsWithChildren<ActionButtonProps>): JSX.Element {\r\n let className = 'ml-2';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n const buttonContent = props.showSpinner\r\n ? <Spinner as='span' animation='border' role='status' size='sm' />\r\n : props.children;\r\n\r\n if (props.tooltip) {\r\n return (\r\n <Tooltip title={props.tooltip}>\r\n <span>\r\n <IconButton\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n onClick={props.onClick}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </IconButton>\r\n </span>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n if (props.svgName) {\r\n return (\r\n <IconButton\r\n onClick={props.onClick}\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </IconButton>\r\n );\r\n }\r\n\r\n if (props.appLink)\r\n return (\r\n <AppLink\r\n onClick={props.onClick}\r\n appLink={props.appLink}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </AppLink>\r\n );\r\n\r\n function onClickButton(e: React.MouseEvent): void {\r\n if (props.analyticsData && props.analyticsOptions)\r\n AnalyticsHelper.logUserAction(props.analyticsData, props.analyticsOptions);\r\n\r\n if (FunctionHelper.isFunction(props.onClick))\r\n props.onClick(e);\r\n }\r\n\r\n return (\r\n <button onClick={onClickButton} className={className}>\r\n {buttonContent}\r\n </button>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nimport { ActionsDropdown } from './ActionsDropdown';\r\nimport { ActionButton } from './ActionButton';\r\n\r\nimport styles from './actions.scss';\r\nimport { IconButton } from '../icon-button/IconButton';\r\n\r\nexport interface ActionOptions {\r\n label: string;\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\r\n tooltip?: string;\r\n showSpinner?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\r\n\r\ninterface ActionsProps {\r\n actions: ActionOptions[];\r\n className?: string;\r\n actionsDropdownClassName?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport function Actions(props: ActionsProps): JSX.Element {\r\n const buttonActions: ActionOptions[] = [];\r\n const moreActions: ActionOptions[] = [];\r\n\r\n props.actions.forEach(a => {\r\n if (a.button)\r\n buttonActions.push(a);\r\n else\r\n moreActions.push(a);\r\n });\r\n\r\n let className = 'd-flex';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n return (\r\n <div className={className}>\r\n <>\r\n {!!buttonActions.length &&\r\n <span className={styles.buttonList}>\r\n {buttonActions.map((a, idx) => (\r\n <React.Fragment key={idx}>\r\n {a.label ? (\r\n <ActionButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n tooltip={a.tooltip}\r\n showSpinner={a.showSpinner}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n >\r\n {a.label}\r\n </ActionButton>\r\n ) : (\r\n <IconButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n />\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </span>\r\n }\r\n {props.sortComponent ? props.sortComponent : '' }\r\n {!!moreActions.length &&\r\n <ActionsDropdown\r\n actions={moreActions}\r\n className={!!buttonActions.length && 'ml-2'}\r\n dropdownToggleClassName={props.actionsDropdownClassName}\r\n />\r\n }\r\n </>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\r\n\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './actions.scss';\r\n\r\nimport { ActionOptions } from './Actions';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nfunction getDropdownItemClassName(actionClassName?: string): string {\r\n let className = 'dropdown-item';\r\n\r\n if (actionClassName)\r\n className += ` ${actionClassName}`;\r\n\r\n return className;\r\n}\r\n\r\ntype DropdownActionOptions = Omit<ActionOptions, 'button' | 'tooltip'>;\r\n\r\ninterface ActionsDropdownItemProps {\r\n action: DropdownActionOptions;\r\n}\r\n\r\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\r\n if (props.action.appLink)\r\n return (\r\n <AppLink\r\n appLink={props.action.appLink}\r\n onClick={props.action.onClick}\r\n className={getDropdownItemClassName(props.action.className)}\r\n analyticsData={props.action.analyticsData}\r\n analyticsOptions={props.action.analyticsOptions}\r\n >\r\n {props.action.label}\r\n </AppLink>\r\n );\r\n\r\n function onClick(e: React.MouseEvent): void {\r\n if (props.action.analyticsData && props.action.analyticsOptions)\r\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\r\n\r\n if (FunctionHelper.isFunction(props.action.onClick))\r\n props.action.onClick(e);\r\n }\r\n\r\n return (\r\n <span\r\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\r\n onClick={onClick}\r\n >\r\n {props.action.label}\r\n </span>\r\n );\r\n}\r\n\r\ninterface ActionsDropdownProps {\r\n actions: DropdownActionOptions[];\r\n className?: string;\r\n dropdownToggleClassName?: string;\r\n}\r\n\r\nActionsDropdown.defaultProps = {\r\n dropdownToggleClassName: 'btn btn-light'\r\n};\r\n\r\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\r\n if (!props.actions || !props.actions.length)\r\n return <></>;\r\n\r\n // Generate unique id to avoid collisions.\r\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\r\n\r\n let dropdownToggleClassName = `px-0 ${styles.dropdownToggle}`;\r\n\r\n if (props.dropdownToggleClassName)\r\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\r\n\r\n return (\r\n <Dropdown className={props.className ? props.className : ''} alignRight>\r\n <Dropdown.Toggle as='button' type='button' id={dropdownToggleId} className={dropdownToggleClassName}>\r\n <SvgContainer svgName={cvSvgLibrary.More} size={SvgContainerSize.Small} />\r\n </Dropdown.Toggle>\r\n <Dropdown.Menu>\r\n {props.actions.map((a, idx) =>\r\n <ActionsDropdownItem key={idx} action={a} />\r\n )}\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonList\":\"cv--buttonList--2v9CT\",\"dropdownToggle\":\"cv--dropdownToggle--AYBvQ\"};","import * as React from 'react';\r\n\r\ninterface EmptyStateProps {\r\n imageUrl: string;\r\n heading: string;\r\n description?: string;\r\n}\r\n\r\nexport function EmptyState(props: EmptyStateProps): React.ReactElement {\r\n const { imageUrl, heading, description } = props;\r\n\r\n return (\r\n <div className='empty-state-container'>\r\n <div className='content-container'>\r\n {imageUrl && <img src={imageUrl} />}\r\n <h1>{heading}</h1>\r\n {description && <p dangerouslySetInnerHTML={{ __html: description }}/>}\r\n </div>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './infinite-scroll-footer.scss';\r\n\r\ninterface InfiniteScrollFooterProps {\r\n isFetching: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\r\n return (\r\n <div className={`p-3 text-center ${styles.container}`}>\r\n {props.isFetching\r\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\r\n : <SvgContainer\r\n svgName={cvSvgLibrary.ChevronDown}\r\n className='svg-container cursor-pointer'\r\n size={SvgContainerSize.Large}\r\n onClick={props.onClick}\r\n />\r\n }\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"cv--container--1_KC6\",\"spinner\":\"cv--spinner--VXlcl\"};","import { Flight } from 'libs/common/flight';\r\n\r\nconst endpoints = {\r\n presentationAudiences: () => `/api/domain/v1/subjects/audiences?type=subject`\r\n};\r\n\r\nexport const AudienceRequests = {\r\n presentationAudiences(): Flight.Request {\r\n return {\r\n bootstrapName: 'presentationAudiences',\r\n url: endpoints.presentationAudiences(),\r\n key: `presentation:audiences`,\r\n normalize: false\r\n };\r\n }\r\n};","import { useEffect } from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nconst SCROLL_TOLERANCE = 400; // value in px\r\n\r\nexport function useInfiniteScroll(fetchNextPage: () => void, hasMore: boolean, isFetching: boolean): void {\r\n const handleScroll = (): void => {\r\n if (isFetching)\r\n return;\r\n\r\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\r\n\r\n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\r\n\r\n if (currentScrollHeight < totalHeight)\r\n return;\r\n\r\n fetchNextPage();\r\n };\r\n\r\n useEffect(() => {\r\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\r\n\r\n if (hasMore)\r\n window.addEventListener('scroll', onScroll);\r\n\r\n return () => window.removeEventListener('scroll', onScroll);\r\n }, [hasMore]);\r\n}","import { useMemo } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ApplicationState } from 'libs/common/react/interfaces';\r\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\r\n\r\nconst safeGetCursor = (request: Flight.Response<any>): string => {\r\n return request\r\n && request.data\r\n && request.data.pagination\r\n && request.data.pagination.cursors\r\n && request.data.pagination.cursors.next;\r\n};\r\n\r\ninterface SelectAllPagesResult<T> {\r\n items: T[];\r\n shouldInitialFetch: boolean;\r\n nextCursor: string;\r\n isFetching: boolean;\r\n}\r\n\r\n/**\r\n * Hook to select all pages of a collection from the store and flatten them.\r\n * It will not trigger any fetches.\r\n * \r\n * @param getKey - callback function to get the key for each page.\r\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\r\n */\r\nexport function useSelectAllPages<T>(getKey: ((cursor?: string) => string) | false): SelectAllPagesResult<T> {\r\n return useSelector(useMemo(() => (state: ApplicationState) => {\r\n const getKeyFn = (getKey as Function);\r\n\r\n let request = FunctionHelper.isFunction(getKey) &&\r\n Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn());\r\n\r\n let isFetching = request && request.isFetching;\r\n const shouldInitialFetch = request && request.shouldFetch;\r\n\r\n let items = request && request.data && request.data.data;\r\n let nextCursor = safeGetCursor(request);\r\n\r\n // Retrieve all pages that are currently in the store.\r\n while (nextCursor) {\r\n request = Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn(nextCursor));\r\n\r\n isFetching = request.isFetching;\r\n\r\n // If next page hasn't been fetched, break.\r\n if (request.shouldFetch)\r\n break;\r\n\r\n let newItems = request.data && request.data.data;\r\n newItems && items.push(...newItems);\r\n\r\n nextCursor = safeGetCursor(request);\r\n }\r\n\r\n return {\r\n shouldInitialFetch,\r\n items,\r\n nextCursor,\r\n isFetching,\r\n };\r\n }, [getKey]));\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Playlist, Config, PresentationAudience, CurrentUser } from 'libs/shared/interfaces';\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { useInfiniteScroll } from 'libs/shared/hooks/UseInfiniteScroll';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\nimport { PlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistList';\r\nimport { PartialPlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PartialPlaylistList';\r\nimport { EmptyPlaylistList } from 'libs/shared/apps/playlists/components/empty-state/EmptyPlaylistList';\r\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\r\nimport { PlaylistCollectionIdentifier } from 'libs/shared/apps/playlists/interfaces/identifiers/PlaylistCollectionIdentifier';\r\nimport { PlaylistType } from 'libs/shared/apps/playlists/enums/PlaylistType';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { PlaylistSortSelect } from 'libs/shared/apps/playlists/components/sort-select/PlaylistSortSelect';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'playlists.playlists';\r\n\r\nconst BG_CLASS_NAMES = [\r\n 'bg-froly', 'bg-pizazz', 'bg-emerald', 'bg-puerto-rico', 'bg-pelorous', 'bg-picton-blue', 'bg-portage', 'bg-east-side'\r\n];\r\n\r\nfunction getSortAppLink(sort: PlaylistSortType): Core.AppLink {\r\n return {\r\n application: AppChannels.PLAYLISTS,\r\n action: Actions.Playlists.HOME,\r\n params: {\r\n sort: sort\r\n }\r\n };\r\n}\r\n\r\ninterface PlaylistsViewProps {\r\n sort: PlaylistSortType;\r\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\r\n}\r\n\r\nexport function PlaylistsView(props: PlaylistsViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(AudienceRequests.presentationAudiences());\r\n\r\n const getPlaylistRequest = (cursor?: string) =>\r\n PlaylistRequests.getUserPlaylists(new PlaylistCollectionIdentifier(props.sort, cursor, PlaylistType.All));\r\n\r\n const fetchNext = (cursor?: string) => {\r\n Flight.getFetch(dispatch, getPlaylistRequest(cursor))();\r\n };\r\n\r\n const playlists = useSelectAllPages((cursor?: string) => getPlaylistRequest(cursor).key);\r\n\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'title'));\r\n\r\n useInfiniteScroll(() => fetchNext(playlists.nextCursor), !!playlists.nextCursor, playlists.isFetching);\r\n\r\n React.useEffect(() => {\r\n if (playlists.shouldInitialFetch)\r\n fetchNext();\r\n }, [playlists.shouldInitialFetch]);\r\n\r\n const actions = [\r\n {\r\n label: LanguageService.getPhrase(namespace, 'newPlaylist'),\r\n appLink: { application: AppChannels.PLAYLISTS, action: Actions.Playlists.NEW_PLAYLIST },\r\n svgName: cvSvgLibrary.Plus,\r\n className: 'btn btn-light',\r\n button: true\r\n }\r\n ];\r\n\r\n if (ArrayHelper.isEmpty(playlists.items))\r\n return <EmptyPlaylistList />;\r\n\r\n return (\r\n <div className='bg-white px-3'>\r\n <div className='d-flex justify-content-between'>\r\n <h1><Text namespace={namespace} phrase='title' /></h1>\r\n <div>\r\n <ActionsComponent\r\n actions={actions}\r\n sortComponent={<PlaylistSortSelect type={props.sort} getSortAppLink={getSortAppLink} />}\r\n />\r\n </div>\r\n </div>\r\n {(!!playlists.items && !!user.data && !!config.data && (!!audiences.data || audiences.hasError))\r\n ? <PlaylistList\r\n playlists={playlists.items}\r\n getPlaylistAppLink={props.getPlaylistAppLink}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n currentUser={user.data}\r\n presentationAudiences={audiences.data || []}\r\n bgColourClassNames={BG_CLASS_NAMES}\r\n showCount\r\n showOwner\r\n showLastUpdated\r\n />\r\n : <PartialPlaylistList />\r\n }\r\n {!!playlists.items && !!(playlists.nextCursor || playlists.isFetching) &&\r\n <InfiniteScrollFooter\r\n isFetching={playlists.isFetching}\r\n onClick={() => fetchNext(playlists.nextCursor)}\r\n />\r\n }\r\n </div>\r\n );\r\n}"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/empty-state/EmptyPlaylistList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PartialPlaylistList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/sort-select/PlaylistSortSelect.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/ActionButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/Actions.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/actions.scss?ab20","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/empty-state/EmptyState.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss?cf3d","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/AudienceRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/views/playlists/PlaylistsView.tsx"],"names":[],"mappings":"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","file":"scripts/26.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\n\r\nimport { ImageUrlService } from 'libs/shared/services/ImageUrlService';\r\nimport { EmptyState } from 'libs/shared/components/empty-state/EmptyState';\r\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('playlists.emptyState');\r\n\r\nexport function EmptyPlaylistList(): React.ReactElement {\r\n const imageUrlService = useService<ImageUrlService>(SharedServices.ImageUrl);\r\n const imageUrls = imageUrlService.getImageUrls();\r\n\r\n return (\r\n <EmptyState\r\n imageUrl={imageUrls.EmptyStates.VIDEOS}\r\n heading={getPhrase('noPlaylistsHeading')}\r\n description={getPhrase('noPlaylistsInfo')}\r\n />\r\n );\r\n}","import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport styles from './playlist.scss';\r\n\r\ninterface PartialPlaylistListProps {\r\n numItems?: number;\r\n itemClassName?: string;\r\n showHeading?: boolean;\r\n}\r\n\r\nPartialPlaylistList.defaultProps = {\r\n numItems: 8\r\n};\r\n\r\nexport function PartialPlaylistList(props: PartialPlaylistListProps): JSX.Element {\r\n const PARTIAL_PLAYLISTS = [...Array(props.numItems)];\r\n\r\n const className = props.itemClassName || '';\r\n\r\n return (\r\n <>\r\n {props.showHeading && <div className={`${styles.partialHeading} partial-loading-background`} />}\r\n <Row>\r\n {PARTIAL_PLAYLISTS.map((p, idx) =>\r\n <Col key={idx} xs={6} sm={4} lg={3} className={className}>\r\n <div className='py-2'>\r\n <div className={`${styles.playlistItem} partial-loading-background`} />\r\n </div>\r\n </Col>\r\n )}\r\n </Row>\r\n </>\r\n );\r\n}","import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Playlist, PresentationAudience, CurrentUser } from 'libs/shared/interfaces';\r\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\r\n\r\nimport { PlaylistItem } from './PlaylistItem';\r\n\r\ninterface PlaylistListProps {\r\n playlists: Playlist[];\r\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\r\n currentUser?: CurrentUser;\r\n presentationAudiences?: PresentationAudience[];\r\n itemContainerClassName?: string;\r\n bgColourClassNames?: string[];\r\n imageCdnUrl?: string;\r\n showCount?: boolean;\r\n showOwner?: boolean;\r\n showFallbackImage?: boolean;\r\n showLastUpdated?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nconst analyticsOptions: AnalyticsOptions = {\r\n actionType: UserAction.Click,\r\n entity: EntityType.Playlist,\r\n location: LocationContext.PlaylistListItem,\r\n descriptor: ClickDescriptor.Cover\r\n};\r\n\r\nexport function PlaylistList(props: PlaylistListProps): JSX.Element {\r\n return (\r\n <Row>\r\n {props.playlists.map(p =>\r\n <Col key={p.id} xs={6} sm={4} lg={3} className={`mb-3 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\r\n <PlaylistItem\r\n data={p}\r\n appLink={props.getPlaylistAppLink(p)}\r\n imageCdnUrl={props.imageCdnUrl}\r\n currentUser={props.currentUser}\r\n presentationAudiences={props.presentationAudiences}\r\n bgColourClassNames={props.bgColourClassNames}\r\n showCount={props.showCount}\r\n showOwner={props.showOwner}\r\n showFallbackImage={props.showFallbackImage}\r\n showLastUpdated={props.showLastUpdated}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={{ ...props.analyticsOptions, ...analyticsOptions }}\r\n />\r\n </Col>\r\n )}\r\n </Row>\r\n );\r\n}","import * as React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { Core } from 'libs/common/core';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nconst namespace = 'playlists.playlistSortSelect';\r\n\r\nconst getSortTypes = FunctionHelper.memoize(() => {\r\n return {\r\n [PlaylistSortType.RecentlyUpdated]: {\r\n name: LanguageService.getPhrase(namespace, 'recentlyUpdated')\r\n },\r\n [PlaylistSortType.AtoZ]: {\r\n name: LanguageService.getPhrase(namespace, 'atoz')\r\n },\r\n [PlaylistSortType.ZtoA]: {\r\n name: LanguageService.getPhrase(namespace, 'ztoa')\r\n },\r\n [PlaylistSortType.Newest]: {\r\n name: LanguageService.getPhrase(namespace, 'newest')\r\n },\r\n [PlaylistSortType.Oldest]: {\r\n name: LanguageService.getPhrase(namespace, 'oldest')\r\n }\r\n };\r\n});\r\n\r\ninterface PlaylistSortSelectProps {\r\n type: PlaylistSortType;\r\n getSortAppLink: (sort: PlaylistSortType) => Core.AppLink;\r\n}\r\n\r\nexport function PlaylistSortSelect(props: PlaylistSortSelectProps): JSX.Element {\r\n const { type, getSortAppLink } = props;\r\n const sortTypes = getSortTypes();\r\n\r\n return (\r\n <Dropdown alignRight>\r\n <Dropdown.Toggle as='a' variant='light' id='sort-select' className='ml-2 btn btn-light'>\r\n {sortTypes[type].name}\r\n </Dropdown.Toggle>\r\n <Dropdown.Menu>\r\n {Object.values(PlaylistSortType).filter(k => k !== type).map(k => {\r\n return (\r\n <AppLink key={k} className={'dropdown-item'} appLink={getSortAppLink(k)}>{sortTypes[k].name}</AppLink>\r\n );\r\n })}\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\r\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\ninterface ActionButtonProps {\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n tooltip?: string;\r\n showSpinner?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport function ActionButton(props: React.PropsWithChildren<ActionButtonProps>): JSX.Element {\r\n let className = 'ml-2';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n const buttonContent = props.showSpinner\r\n ? <Spinner as='span' animation='border' role='status' size='sm' />\r\n : props.children;\r\n\r\n if (props.tooltip) {\r\n return (\r\n <Tooltip title={props.tooltip}>\r\n <span>\r\n <IconButton\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n onClick={props.onClick}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </IconButton>\r\n </span>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n if (props.svgName) {\r\n return (\r\n <IconButton\r\n onClick={props.onClick}\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </IconButton>\r\n );\r\n }\r\n\r\n if (props.appLink)\r\n return (\r\n <AppLink\r\n onClick={props.onClick}\r\n appLink={props.appLink}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </AppLink>\r\n );\r\n\r\n function onClickButton(e: React.MouseEvent): void {\r\n if (props.analyticsData && props.analyticsOptions)\r\n AnalyticsHelper.logUserAction(props.analyticsData, props.analyticsOptions);\r\n\r\n if (FunctionHelper.isFunction(props.onClick))\r\n props.onClick(e);\r\n }\r\n\r\n return (\r\n <button onClick={onClickButton} className={className}>\r\n {buttonContent}\r\n </button>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nimport { ActionsDropdown } from './ActionsDropdown';\r\nimport { ActionButton } from './ActionButton';\r\n\r\nimport styles from './actions.scss';\r\nimport { IconButton } from '../icon-button/IconButton';\r\n\r\nexport interface ActionOptions {\r\n label: string;\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\r\n tooltip?: string;\r\n showSpinner?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\r\n\r\ninterface ActionsProps {\r\n actions: ActionOptions[];\r\n className?: string;\r\n actionsDropdownClassName?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport function Actions(props: ActionsProps): JSX.Element {\r\n const buttonActions: ActionOptions[] = [];\r\n const moreActions: ActionOptions[] = [];\r\n\r\n props.actions.forEach(a => {\r\n if (a.button)\r\n buttonActions.push(a);\r\n else\r\n moreActions.push(a);\r\n });\r\n\r\n let className = 'd-flex';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n return (\r\n <div className={className}>\r\n <>\r\n {!!buttonActions.length &&\r\n <span className={styles.buttonList}>\r\n {buttonActions.map((a, idx) => (\r\n <React.Fragment key={idx}>\r\n {a.label ? (\r\n <ActionButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n tooltip={a.tooltip}\r\n showSpinner={a.showSpinner}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n >\r\n {a.label}\r\n </ActionButton>\r\n ) : (\r\n <IconButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n />\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </span>\r\n }\r\n {props.sortComponent ? props.sortComponent : '' }\r\n {!!moreActions.length &&\r\n <ActionsDropdown\r\n actions={moreActions}\r\n className={!!buttonActions.length && 'ml-2'}\r\n dropdownToggleClassName={props.actionsDropdownClassName}\r\n />\r\n }\r\n </>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\r\n\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './actions.scss';\r\n\r\nimport { ActionOptions } from './Actions';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nfunction getDropdownItemClassName(actionClassName?: string): string {\r\n let className = 'dropdown-item';\r\n\r\n if (actionClassName)\r\n className += ` ${actionClassName}`;\r\n\r\n return className;\r\n}\r\n\r\ntype DropdownActionOptions = Omit<ActionOptions, 'button' | 'tooltip'>;\r\n\r\ninterface ActionsDropdownItemProps {\r\n action: DropdownActionOptions;\r\n}\r\n\r\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\r\n if (props.action.appLink)\r\n return (\r\n <AppLink\r\n appLink={props.action.appLink}\r\n onClick={props.action.onClick}\r\n className={getDropdownItemClassName(props.action.className)}\r\n analyticsData={props.action.analyticsData}\r\n analyticsOptions={props.action.analyticsOptions}\r\n >\r\n {props.action.label}\r\n </AppLink>\r\n );\r\n\r\n function onClick(e: React.MouseEvent): void {\r\n if (props.action.analyticsData && props.action.analyticsOptions)\r\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\r\n\r\n if (FunctionHelper.isFunction(props.action.onClick))\r\n props.action.onClick(e);\r\n }\r\n\r\n return (\r\n <span\r\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\r\n onClick={onClick}\r\n >\r\n {props.action.label}\r\n </span>\r\n );\r\n}\r\n\r\ninterface ActionsDropdownProps {\r\n actions: DropdownActionOptions[];\r\n className?: string;\r\n dropdownToggleClassName?: string;\r\n}\r\n\r\nActionsDropdown.defaultProps = {\r\n dropdownToggleClassName: 'btn btn-light'\r\n};\r\n\r\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\r\n if (!props.actions || !props.actions.length)\r\n return <></>;\r\n\r\n // Generate unique id to avoid collisions.\r\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\r\n\r\n let dropdownToggleClassName = `px-0 ${styles.dropdownToggle}`;\r\n\r\n if (props.dropdownToggleClassName)\r\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\r\n\r\n return (\r\n <Dropdown className={props.className ? props.className : ''} alignRight>\r\n <Dropdown.Toggle as='button' type='button' id={dropdownToggleId} className={dropdownToggleClassName}>\r\n <SvgContainer svgName={cvSvgLibrary.More} size={SvgContainerSize.Small} />\r\n </Dropdown.Toggle>\r\n <Dropdown.Menu>\r\n {props.actions.map((a, idx) =>\r\n <ActionsDropdownItem key={idx} action={a} />\r\n )}\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonList\":\"cv--buttonList--2v9CT\",\"dropdownToggle\":\"cv--dropdownToggle--AYBvQ\"};","import * as React from 'react';\r\n\r\ninterface EmptyStateProps {\r\n imageUrl: string;\r\n heading: string;\r\n description?: string;\r\n}\r\n\r\nexport function EmptyState(props: EmptyStateProps): React.ReactElement {\r\n const { imageUrl, heading, description } = props;\r\n\r\n return (\r\n <div className='empty-state-container'>\r\n <div className='content-container'>\r\n {imageUrl && <img src={imageUrl} />}\r\n <h1>{heading}</h1>\r\n {description && <p dangerouslySetInnerHTML={{ __html: description }}/>}\r\n </div>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './infinite-scroll-footer.scss';\r\n\r\ninterface InfiniteScrollFooterProps {\r\n isFetching: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\r\n return (\r\n <div className={`p-3 text-center ${styles.container}`}>\r\n {props.isFetching\r\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\r\n : <SvgContainer\r\n svgName={cvSvgLibrary.ChevronDown}\r\n className='svg-container cursor-pointer'\r\n size={SvgContainerSize.Large}\r\n onClick={props.onClick}\r\n />\r\n }\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"cv--container--1_KC6\",\"spinner\":\"cv--spinner--VXlcl\"};","import { Flight } from 'libs/common/flight';\r\n\r\nconst endpoints = {\r\n presentationAudiences: () => `/api/domain/v1/subjects/audiences?type=subject`\r\n};\r\n\r\nexport const AudienceRequests = {\r\n presentationAudiences(): Flight.Request {\r\n return {\r\n bootstrapName: 'presentationAudiences',\r\n url: endpoints.presentationAudiences(),\r\n key: `presentation:audiences`,\r\n normalize: false\r\n };\r\n }\r\n};","import { useEffect } from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nconst SCROLL_TOLERANCE = 400; // value in px\r\n\r\nexport function useInfiniteScroll(fetchNextPage: () => void, hasMore: boolean, isFetching: boolean): void {\r\n const handleScroll = (): void => {\r\n if (isFetching)\r\n return;\r\n\r\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\r\n\r\n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\r\n\r\n if (currentScrollHeight < totalHeight)\r\n return;\r\n\r\n fetchNextPage();\r\n };\r\n\r\n useEffect(() => {\r\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\r\n\r\n if (hasMore)\r\n window.addEventListener('scroll', onScroll);\r\n\r\n return () => window.removeEventListener('scroll', onScroll);\r\n }, [hasMore]);\r\n}","import { useMemo } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ApplicationState } from 'libs/common/react/interfaces';\r\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\r\n\r\nconst safeGetCursor = (request: Flight.Response<any>): string => {\r\n return request\r\n && request.data\r\n && request.data.pagination\r\n && request.data.pagination.cursors\r\n && request.data.pagination.cursors.next;\r\n};\r\n\r\ninterface SelectAllPagesResult<T> {\r\n items: T[];\r\n shouldInitialFetch: boolean;\r\n nextCursor: string;\r\n isFetching: boolean;\r\n}\r\n\r\n/**\r\n * Hook to select all pages of a collection from the store and flatten them.\r\n * It will not trigger any fetches.\r\n * \r\n * @param getKey - callback function to get the key for each page.\r\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\r\n */\r\nexport function useSelectAllPages<T>(getKey: ((cursor?: string) => string) | false): SelectAllPagesResult<T> {\r\n return useSelector(useMemo(() => (state: ApplicationState) => {\r\n const getKeyFn = (getKey as Function);\r\n\r\n let request = FunctionHelper.isFunction(getKey) &&\r\n Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn());\r\n\r\n let isFetching = request && request.isFetching;\r\n const shouldInitialFetch = request && request.shouldFetch;\r\n\r\n let items = request && request.data && request.data.data;\r\n let nextCursor = safeGetCursor(request);\r\n\r\n // Retrieve all pages that are currently in the store.\r\n while (nextCursor) {\r\n request = Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn(nextCursor));\r\n\r\n isFetching = request.isFetching;\r\n\r\n // If next page hasn't been fetched, break.\r\n if (request.shouldFetch)\r\n break;\r\n\r\n let newItems = request.data && request.data.data;\r\n newItems && items.push(...newItems);\r\n\r\n nextCursor = safeGetCursor(request);\r\n }\r\n\r\n return {\r\n shouldInitialFetch,\r\n items,\r\n nextCursor,\r\n isFetching,\r\n };\r\n }, [getKey]));\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Playlist, Config, PresentationAudience, CurrentUser } from 'libs/shared/interfaces';\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { useInfiniteScroll } from 'libs/shared/hooks/UseInfiniteScroll';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\r\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\r\nimport { PlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistList';\r\nimport { PartialPlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PartialPlaylistList';\r\nimport { EmptyPlaylistList } from 'libs/shared/apps/playlists/components/empty-state/EmptyPlaylistList';\r\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\r\nimport { PlaylistCollectionIdentifier } from 'libs/shared/apps/playlists/interfaces/identifiers/PlaylistCollectionIdentifier';\r\nimport { PlaylistType } from 'libs/shared/apps/playlists/enums/PlaylistType';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { PlaylistSortSelect } from 'libs/shared/apps/playlists/components/sort-select/PlaylistSortSelect';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'playlists.playlists';\r\n\r\nconst BG_CLASS_NAMES = [\r\n 'bg-froly', 'bg-pizazz', 'bg-emerald', 'bg-puerto-rico', 'bg-pelorous', 'bg-picton-blue', 'bg-portage', 'bg-east-side'\r\n];\r\n\r\nfunction getSortAppLink(sort: PlaylistSortType): Core.AppLink {\r\n return {\r\n application: AppChannels.PLAYLISTS,\r\n action: Actions.Playlists.HOME,\r\n params: {\r\n sort: sort\r\n }\r\n };\r\n}\r\n\r\ninterface PlaylistsViewProps {\r\n sort: PlaylistSortType;\r\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\r\n}\r\n\r\nexport function PlaylistsView(props: PlaylistsViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(AudienceRequests.presentationAudiences());\r\n\r\n const getPlaylistRequest = (cursor?: string) =>\r\n PlaylistRequests.getUserPlaylists(new PlaylistCollectionIdentifier(props.sort, cursor, PlaylistType.All));\r\n\r\n const fetchNext = (cursor?: string) => {\r\n Flight.getFetch(dispatch, getPlaylistRequest(cursor))();\r\n };\r\n\r\n const playlists = useSelectAllPages((cursor?: string) => getPlaylistRequest(cursor).key);\r\n\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'title'));\r\n\r\n useInfiniteScroll(() => fetchNext(playlists.nextCursor), !!playlists.nextCursor, playlists.isFetching);\r\n\r\n React.useEffect(() => {\r\n if (playlists.shouldInitialFetch)\r\n fetchNext();\r\n }, [playlists.shouldInitialFetch]);\r\n\r\n const actions = [\r\n {\r\n label: LanguageService.getPhrase(namespace, 'newPlaylist'),\r\n appLink: { application: AppChannels.PLAYLISTS, action: Actions.Playlists.NEW_PLAYLIST },\r\n svgName: cvSvgLibrary.Plus,\r\n className: 'btn btn-light',\r\n button: true\r\n }\r\n ];\r\n\r\n if (ArrayHelper.isEmpty(playlists.items))\r\n return <EmptyPlaylistList />;\r\n\r\n return (\r\n <div className='bg-white px-3'>\r\n <div className='d-flex justify-content-between'>\r\n <h1><Text namespace={namespace} phrase='title' /></h1>\r\n <div>\r\n <ActionsComponent\r\n actions={actions}\r\n sortComponent={<PlaylistSortSelect type={props.sort} getSortAppLink={getSortAppLink} />}\r\n />\r\n </div>\r\n </div>\r\n {(!!playlists.items && !!user.data && !!config.data && (!!audiences.data || audiences.hasError))\r\n ? <PlaylistList\r\n playlists={playlists.items}\r\n getPlaylistAppLink={props.getPlaylistAppLink}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n currentUser={user.data}\r\n presentationAudiences={audiences.data || []}\r\n bgColourClassNames={BG_CLASS_NAMES}\r\n showCount\r\n showOwner\r\n showLastUpdated\r\n />\r\n : <PartialPlaylistList />\r\n }\r\n {!!playlists.items && !!(playlists.nextCursor || playlists.isFetching) &&\r\n <InfiniteScrollFooter\r\n isFetching={playlists.isFetching}\r\n onClick={() => fetchNext(playlists.nextCursor)}\r\n />\r\n }\r\n </div>\r\n );\r\n}"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[27],{1014:function(e,t,n){"use strict";var a=n(0),r=n.n(a),o=n(832),c=n(886),i=n(7),l=n(885),u=i.a.encloseNamespace("classrooms.classroomValidation"),s=Object(c.object)().shape({name:Object(c.string)().max(255,(function(){return u("nameExceeds")})).required((function(){return u("nameRequired")})).default(""),colour:Object(c.string)().required((function(){return u("colourRequired")})).default(l.a.White)}),m=n(826),d=n(851),f=n(852),p=n(73),b=n(925),v=n(988),h=n.n(v),y="classrooms.classroomGroupDetailsForm",g=i.a.encloseNamespace(y);function O(e){var t=Object(o.b)();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",null,r.a.createElement("h2",{className:"w-50 d-inline-block h6"},r.a.createElement(p.b,{namespace:y,phrase:"nameLabel"})),r.a.createElement("h2",{className:"d-inline-block h6"},r.a.createElement(p.b,{namespace:y,phrase:"colourLabel"}))),r.a.createElement(m.c,null,r.a.createElement("div",{className:"pb-3 d-flex"},r.a.createElement("div",{className:"w-50"},r.a.createElement(d.b,{type:"text",name:"name",id:"name",className:"".concat(h.a.groupNameInput),placeholder:g("groupNamePlaceholder"),autoFocus:!0,value:t.values.name})),r.a.createElement("div",{className:"form-group"},r.a.createElement(b.a,{onSelect:function(e){return t.setFieldValue("colour",e)},selection:t.values.colour,id:"".concat(e.isNew?"create":"edit","-classroom-group")}))),r.a.createElement("div",{className:"btn-container d-flex justify-content-end"},r.a.createElement("button",{type:"button",className:"btn btn-link mr-2",onClick:e.onClickCancel},r.a.createElement(p.b,{namespace:y,phrase:"cancel"})),r.a.createElement(f.a,{isNew:e.isNew}))))}function E(e){var t,n,a,c=e.group,i=e.saveGroup,l=e.onClickCancel,u={id:null===(t=c)||void 0===t?void 0:t.id,name:null===(n=c)||void 0===n?void 0:n.name,colour:null===(a=c)||void 0===a?void 0:a.colour,students:[]};return r.a.createElement(o.a,{initialValues:u,validationSchema:s,onSubmit:i},r.a.createElement(O,{isNew:!c,onClickCancel:l}))}n.d(t,"a",(function(){return E}))},1275:function(e,t,n){"use strict";n.r(t),n.d(t,"CreateClassroomGroupView",(function(){return b}));var a=n(0),r=n.n(a),o=n(61),c=n(7),i=n(14),l=n(238),u=n(824),s=n(241),m=n(1014),d=n(40),f=n(3),p=c.a.encloseNamespace("classrooms.createClassroomGroup");function b(e){var t=i.a.useBasicFetch(s.a.getClassroom(e.classroomId)),n=Object(u.a)(),a=Object(o.useDispatch)(),c=function(a){n.success(p("success",{groupName:a.name,classroomName:t.data.name})),e.closePopup()};return r.a.createElement(l.a,{title:p("title"),closePopup:e.closePopup,showLoadingSpinner:!t.data},r.a.createElement(m.a,{saveGroup:function(t){i.a.fetch(a,s.a.addGroupToClassroom(t,e.classroomId,(function(t){var n;d.a.logUserAction({id:t.id,classroomId:e.classroomId},d.a.mergeOptions(e.analyticsOptions,{actionType:f.n.Create})),(null===(n=e.studentIds)||void 0===n?void 0:n.length)?function(t){i.a.fetch(a,s.a.addStudentsToGroup(e.studentIds,t.id,(function(){d.a.logUserAction({id:t.id,studentCount:e.studentIds.length},d.a.mergeOptions(e.analyticsOptions,{actionType:f.n.Associate,descriptor:f.a.User})),c(t)})))}(t):c(t)}),(function(){n.error(p("error"))})))},onClickCancel:e.closePopup}))}},824:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(153),r=n(48),o=n(52),c=function(){var e=Object(a.a)(o.a.ALERT);return{success:function(t){e.success(t)()},error:function(t){e.error(t)()},warning:function(t){e.createAlert({type:r.a.Warning,heading:r.c.Warning,message:t})}}}},825:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0);function r(e){return a.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(t){return"Enter"===t.key&&e.onClick(t)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},832:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var a=n(0),r=n(826),o=n(35),c=n(57),i=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function l(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,l=e.initialValues,u=e.onSubmit,s=e.resetOnSubmit,m=i(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit","resetOnSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function e(t){var n=c.a.deepClone(t);return Object.keys(n).forEach((function(t){n.hasOwnProperty(t)&&(c.a.isObject(n[t])?n[t]=e(n[t]):null===n[t]&&delete n[t])})),n}(l)):l,f={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.d,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,o=a.resetForm,c=n&&e.validationSchema?e.validationSchema.cast(t):t;u(c,(function(){s&&o(),r(!1)}))},initialStatus:f}),o.a.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function u(){return Object(r.f)()}l.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},842:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(826),r={getCustomFormControlClassName:function(e,t,n,r){var o="form-control";return Object(a.e)(t,n)&&Object(a.e)(e,n)&&(o+=" is-invalid"),r&&(o+=" ".concat(r)),o}}},851:function(e,t,n){"use strict";var a=n(0),r=n(826),o=n(33),c=n(35),i=n(842);function l(e){var t=Object(r.f)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-right text-muted"},t.length,"/",e.limit)}var u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.label,n=u(e,["label"]);return a.createElement(o.Form.Group,null,a.createElement("div",{className:"custom-control custom-checkbox"},a.createElement(d,Object.assign({className:"custom-control-input"},n)),a.createElement(o.Form.Label,{className:"custom-control-label",htmlFor:n.id},t)))}n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return f}));var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function d(e){var t=e.children,n=m(e,["children"]);return a.createElement(r.b,Object.assign({},n),c.a.isFunction(t)?function(e){return t(e)}:a.Children.count(t)?t:null)}function f(e){var t=e.label,n=e.className,c=e.showCharacterCounter,u=m(e,["label","className","showCharacterCounter"]),f=Object(r.f)(),p=f.errors,b=f.touched;return"checkbox"===u.type?a.createElement(s,Object.assign({},e)):a.createElement(o.Form.Group,null,!!t&&a.createElement(o.Form.Label,{htmlFor:u.id},t),a.createElement(d,Object.assign({className:i.a.getCustomFormControlClassName(p,b,u.name,n)},u)),!!c&&!!u.maxLength&&a.createElement(l,{fieldName:u.name,limit:u.maxLength}),a.createElement(r.a,{name:u.name},(function(e){return a.createElement(o.Form.Control.Feedback,{type:"invalid"},e)})))}},852:function(e,t,n){"use strict";var a=n(0),r=n(826);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],a=!0,r=!1,o=void 0;try{for(var c,i=e[Symbol.iterator]();!(a=(c=i.next()).done)&&(n.push(c.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{a||null==i.return||i.return()}finally{if(r)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var i=n(246),l=n(73);n.d(t,"a",(function(){return u}));function u(e){var t=Object(r.f)(),n=function(e){var t,n=o(a.useState(!1),2),r=n[0],c=n[1];return a.useEffect((function(){var t;e.isValid&&(e.dirty||(null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit))?c(!0):c(!1)}),[e.isValid,null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit,e.dirty,e.values]),a.useEffect((function(){e.isSubmitting&&c(!1)}),[e.isSubmitting]),r}(t);a.useEffect((function(){function e(e){13===e.keyCode&&n&&t.validateForm().then((function(e){Object.keys(e).length||t.submitForm()}))}return window.addEventListener("keypress",e),function(){return window.removeEventListener("keypress",e)}}),[n]);var c="save";return e.isNew&&(c="create"),e.hasNext&&(c="next"),a.createElement(i.a,{variant:e.variant||"primary",showSpinner:t.isSubmitting,type:"submit",disabled:!n},e.submitText?a.createElement(a.Fragment,null,e.submitText):a.createElement(l.b,{namespace:"shared.formButtons",phrase:c}))}},885:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e.White="white",e.Pink="pink",e.YellowOrange="yellow-orange",e.Emerald="emerald",e.PuertoRico="puerto-rico",e.PictonBlue="picton-blue",e.EastSide="east-side",e.Portage="portage"}(a||(a={}))},899:function(e,t,n){"use strict";function a(e){return"bg-".concat(e)}n.d(t,"a",(function(){return a}))},925:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var a=n(0),r=n.n(a),o=n(33),c=n(825),i=n(55),l=n(13),u=n(885),s=n(899),m=n(926),d=n.n(m);function f(e){function t(t){var n="".concat(d.a.colourOption," position-relative"),a=t===u.a.White?"border border-dark":"",r=e.disabled?"cursor-default":"",o=Object(s.a)(t);return"".concat(n," ").concat(a," ").concat(r," ").concat(o)}var n,a,m={};return e.disabled&&(m.show=!1),r.a.createElement(o.Dropdown,Object.assign({},m),r.a.createElement(o.Dropdown.Toggle,{id:e.id,variant:"link",className:(n="".concat(d.a.dropdownToggle," outline-none p-0 d-flex align-items-center text-decoration-none"),a=e.disabled?"cursor-default":"","".concat(n," ").concat(a))},r.a.createElement("div",{className:"border border-secondary rounded bg-white ".concat(d.a.colourButton)},r.a.createElement("div",{className:"px-0 py-1 rounded ".concat(Object(s.a)(e.selection))}," ")),!e.disabled&&r.a.createElement(i.a,{svgName:l.b.Caret})),r.a.createElement(o.Dropdown.Menu,null,r.a.createElement("ul",{className:"".concat(d.a.colourList," list-unstyled d-flex flex-wrap px-2 m-0")},Object.keys(u.a).map((function(n){var a=u.a[n];return r.a.createElement("li",{key:"".concat(e.id,":").concat(a),className:"m-1"},r.a.createElement(c.a,{onClick:function(){return e.onSelect(a)},className:t(a)},a===u.a.White?r.a.createElement("div",{className:d.a.lineThrough}):r.a.createElement(r.a.Fragment,null," ")))})))))}f.defaultProps={selection:u.a.White,onSelect:function(){}}},926:function(e,t,n){e.exports={dropdownToggle:"_347DY",colourButton:"_1rKvE",colourList:"_328-w",colourOption:"_1Tw7u",lineThrough:"_18oZq"}},988:function(e,t,n){e.exports={groupNameInput:"_3hGvq"}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[28],{1014:function(e,t,n){"use strict";var a=n(0),r=n.n(a),o=n(832),c=n(886),i=n(7),l=n(885),u=i.a.encloseNamespace("classrooms.classroomValidation"),s=Object(c.object)().shape({name:Object(c.string)().max(255,(function(){return u("nameExceeds")})).required((function(){return u("nameRequired")})).default(""),colour:Object(c.string)().required((function(){return u("colourRequired")})).default(l.a.White)}),m=n(826),d=n(851),f=n(852),p=n(73),b=n(925),v=n(988),h=n.n(v),g="classrooms.classroomGroupDetailsForm",y=i.a.encloseNamespace(g);function E(e){var t=Object(o.b)();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",null,r.a.createElement("h2",{className:"w-50 d-inline-block h6"},r.a.createElement(p.b,{namespace:g,phrase:"nameLabel"})),r.a.createElement("h2",{className:"d-inline-block h6"},r.a.createElement(p.b,{namespace:g,phrase:"colourLabel"}))),r.a.createElement(m.c,null,r.a.createElement("div",{className:"pb-3 d-flex"},r.a.createElement("div",{className:"w-50"},r.a.createElement(d.b,{type:"text",name:"name",id:"name",className:"".concat(h.a.groupNameInput),placeholder:y("groupNamePlaceholder"),autoFocus:!0,value:t.values.name})),r.a.createElement("div",{className:"form-group"},r.a.createElement(b.a,{onSelect:function(e){return t.setFieldValue("colour",e)},selection:t.values.colour,id:"".concat(e.isNew?"create":"edit","-classroom-group")}))),r.a.createElement("div",{className:"btn-container d-flex justify-content-end"},r.a.createElement("button",{type:"button",className:"btn btn-link mr-2",onClick:e.onClickCancel},r.a.createElement(p.b,{namespace:g,phrase:"cancel"})),r.a.createElement(f.a,{isNew:e.isNew}))))}function O(e){var t,n,a,c=e.group,i=e.saveGroup,l=e.onClickCancel,u={id:null===(t=c)||void 0===t?void 0:t.id,name:null===(n=c)||void 0===n?void 0:n.name,colour:null===(a=c)||void 0===a?void 0:a.colour,students:[]};return r.a.createElement(o.a,{initialValues:u,validationSchema:s,onSubmit:i},r.a.createElement(E,{isNew:!c,onClickCancel:l}))}n.d(t,"a",(function(){return O}))},1276:function(e,t,n){"use strict";n.r(t),n.d(t,"EditClassroomGroupView",(function(){return p}));var a=n(0),r=n.n(a),o=n(61),c=n(14),i=n(7),l=n(238),u=n(824),s=n(241),m=n(1014),d=n(40),f=i.a.encloseNamespace("classrooms.editClassroomGroup");function p(e){var t=c.a.useBasicFetch(s.a.getClassroom(e.classroomId)),n=Object(u.a)(),a=Object(o.useDispatch)(),i=t.data?t.data.groups.find((function(t){return t.id===e.groupId})):null;return r.a.createElement(l.a,{title:f("title"),closePopup:e.closePopup,showLoadingSpinner:!i},r.a.createElement(m.a,{saveGroup:function(r){c.a.fetch(a,s.a.editGroup(r,t.data,(function(){n.success(f("success",{groupName:r.name})),d.a.logUserAction(r,e.analyticsOptions),e.closePopup()}),(function(){n.error(f("error",{groupName:i.name}))})))},group:i,onClickCancel:e.closePopup}))}},824:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(153),r=n(48),o=n(52),c=function(){var e=Object(a.a)(o.a.ALERT);return{success:function(t){e.success(t)()},error:function(t){e.error(t)()},warning:function(t){e.createAlert({type:r.a.Warning,heading:r.c.Warning,message:t})}}}},825:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0);function r(e){return a.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(t){return"Enter"===t.key&&e.onClick(t)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},832:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var a=n(0),r=n(826),o=n(35),c=n(57),i=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function l(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,l=e.initialValues,u=e.onSubmit,s=e.resetOnSubmit,m=i(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit","resetOnSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function e(t){var n=c.a.deepClone(t);return Object.keys(n).forEach((function(t){n.hasOwnProperty(t)&&(c.a.isObject(n[t])?n[t]=e(n[t]):null===n[t]&&delete n[t])})),n}(l)):l,f={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.d,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,o=a.resetForm,c=n&&e.validationSchema?e.validationSchema.cast(t):t;u(c,(function(){s&&o(),r(!1)}))},initialStatus:f}),o.a.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function u(){return Object(r.f)()}l.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},842:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(826),r={getCustomFormControlClassName:function(e,t,n,r){var o="form-control";return Object(a.e)(t,n)&&Object(a.e)(e,n)&&(o+=" is-invalid"),r&&(o+=" ".concat(r)),o}}},851:function(e,t,n){"use strict";var a=n(0),r=n(826),o=n(33),c=n(35),i=n(842);function l(e){var t=Object(r.f)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-right text-muted"},t.length,"/",e.limit)}var u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.label,n=u(e,["label"]);return a.createElement(o.Form.Group,null,a.createElement("div",{className:"custom-control custom-checkbox"},a.createElement(d,Object.assign({className:"custom-control-input"},n)),a.createElement(o.Form.Label,{className:"custom-control-label",htmlFor:n.id},t)))}n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return f}));var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function d(e){var t=e.children,n=m(e,["children"]);return a.createElement(r.b,Object.assign({},n),c.a.isFunction(t)?function(e){return t(e)}:a.Children.count(t)?t:null)}function f(e){var t=e.label,n=e.className,c=e.showCharacterCounter,u=m(e,["label","className","showCharacterCounter"]),f=Object(r.f)(),p=f.errors,b=f.touched;return"checkbox"===u.type?a.createElement(s,Object.assign({},e)):a.createElement(o.Form.Group,null,!!t&&a.createElement(o.Form.Label,{htmlFor:u.id},t),a.createElement(d,Object.assign({className:i.a.getCustomFormControlClassName(p,b,u.name,n)},u)),!!c&&!!u.maxLength&&a.createElement(l,{fieldName:u.name,limit:u.maxLength}),a.createElement(r.a,{name:u.name},(function(e){return a.createElement(o.Form.Control.Feedback,{type:"invalid"},e)})))}},852:function(e,t,n){"use strict";var a=n(0),r=n(826);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],a=!0,r=!1,o=void 0;try{for(var c,i=e[Symbol.iterator]();!(a=(c=i.next()).done)&&(n.push(c.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{a||null==i.return||i.return()}finally{if(r)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var i=n(246),l=n(73);n.d(t,"a",(function(){return u}));function u(e){var t=Object(r.f)(),n=function(e){var t,n=o(a.useState(!1),2),r=n[0],c=n[1];return a.useEffect((function(){var t;e.isValid&&(e.dirty||(null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit))?c(!0):c(!1)}),[e.isValid,null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit,e.dirty,e.values]),a.useEffect((function(){e.isSubmitting&&c(!1)}),[e.isSubmitting]),r}(t);a.useEffect((function(){function e(e){13===e.keyCode&&n&&t.validateForm().then((function(e){Object.keys(e).length||t.submitForm()}))}return window.addEventListener("keypress",e),function(){return window.removeEventListener("keypress",e)}}),[n]);var c="save";return e.isNew&&(c="create"),e.hasNext&&(c="next"),a.createElement(i.a,{variant:e.variant||"primary",showSpinner:t.isSubmitting,type:"submit",disabled:!n},e.submitText?a.createElement(a.Fragment,null,e.submitText):a.createElement(l.b,{namespace:"shared.formButtons",phrase:c}))}},885:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e.White="white",e.Pink="pink",e.YellowOrange="yellow-orange",e.Emerald="emerald",e.PuertoRico="puerto-rico",e.PictonBlue="picton-blue",e.EastSide="east-side",e.Portage="portage"}(a||(a={}))},899:function(e,t,n){"use strict";function a(e){return"bg-".concat(e)}n.d(t,"a",(function(){return a}))},925:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var a=n(0),r=n.n(a),o=n(33),c=n(825),i=n(55),l=n(13),u=n(885),s=n(899),m=n(926),d=n.n(m);function f(e){function t(t){var n="".concat(d.a.colourOption," position-relative"),a=t===u.a.White?"border border-dark":"",r=e.disabled?"cursor-default":"",o=Object(s.a)(t);return"".concat(n," ").concat(a," ").concat(r," ").concat(o)}var n,a,m={};return e.disabled&&(m.show=!1),r.a.createElement(o.Dropdown,Object.assign({},m),r.a.createElement(o.Dropdown.Toggle,{id:e.id,variant:"link",className:(n="".concat(d.a.dropdownToggle," outline-none p-0 d-flex align-items-center text-decoration-none"),a=e.disabled?"cursor-default":"","".concat(n," ").concat(a))},r.a.createElement("div",{className:"border border-secondary rounded bg-white ".concat(d.a.colourButton)},r.a.createElement("div",{className:"px-0 py-1 rounded ".concat(Object(s.a)(e.selection))}," ")),!e.disabled&&r.a.createElement(i.a,{svgName:l.b.Caret})),r.a.createElement(o.Dropdown.Menu,null,r.a.createElement("ul",{className:"".concat(d.a.colourList," list-unstyled d-flex flex-wrap px-2 m-0")},Object.keys(u.a).map((function(n){var a=u.a[n];return r.a.createElement("li",{key:"".concat(e.id,":").concat(a),className:"m-1"},r.a.createElement(c.a,{onClick:function(){return e.onSelect(a)},className:t(a)},a===u.a.White?r.a.createElement("div",{className:d.a.lineThrough}):r.a.createElement(r.a.Fragment,null," ")))})))))}f.defaultProps={selection:u.a.White,onSelect:function(){}}},926:function(e,t,n){e.exports={dropdownToggle:"_347DY",colourButton:"_1rKvE",colourList:"_328-w",colourOption:"_1Tw7u",lineThrough:"_18oZq"}},988:function(e,t,n){e.exports={groupNameInput:"_3hGvq"}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[29],{1002:function(e,a,t){e.exports={level:"Atgxo"}},1003:function(e,a,t){"use strict";t.d(a,"a",(function(){return c}));var n=t(0),r=t.n(n);function s(){return r.a.createElement("li",{className:"w-100 d-flex align-items-center py-2"},r.a.createElement("div",{className:"mx-4 partial-loading-background",style:{width:"21px",height:"21px"}}),r.a.createElement("div",{className:"d-flex flex-column justify-content-center w-100"},r.a.createElement("div",{className:"pb-1"},r.a.createElement("div",{className:"partial-loading-background mr-1 align-middle d-inline-block",style:{width:"180px",height:"28px"}})),r.a.createElement("div",{className:"d-flex"},r.a.createElement("div",{className:"w-50"},r.a.createElement("div",{className:"partial-loading-background align-middle d-inline-block",style:{width:"250px",height:"21px"}})),r.a.createElement("div",{className:"d-flex w-50 pl-1"},r.a.createElement("div",{className:"w-50"},r.a.createElement("div",{className:"partial-loading-background",style:{width:"100px",height:"21px"}})),r.a.createElement("div",{className:"w-50"},r.a.createElement("div",{className:"partial-loading-background",style:{width:"100px",height:"21px"}}))))))}function c(){return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"d-flex justify-content-between align-items-center mb-3"},r.a.createElement("div",{className:"mx-4 partial-loading-background",style:{width:"21px",height:"21px"}}),r.a.createElement("div",{className:"d-flex align-items-center"},r.a.createElement("div",{className:"partial-loading-background",style:{width:"140px",height:"35px"}}),r.a.createElement("div",{className:"partial-loading-background ml-2",style:{width:"150px",height:"35px"}}))),r.a.createElement("ul",{className:"m-0 list-unstyled striped-list"},Array(20).fill(null).map((function(e,a){return r.a.createElement(s,{key:a})}))))}},1004:function(e,a,t){"use strict";t.d(a,"a",(function(){return v}));var n=t(0),r=t.n(n),s=t(35),c=t(57),l=t(2),i=t(91),o=t(55),u=t(13),m=t(1005),d=t.n(m);function p(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function g(e,a){return function(e){if(Array.isArray(e))return e}(e)||function(e,a){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,r=!1,s=void 0;try{for(var c,l=e[Symbol.iterator]();!(n=(c=l.next()).done)&&(t.push(c.value),!a||t.length!==a);n=!0);}catch(e){r=!0,s=e}finally{try{n||null==l.return||l.return()}finally{if(r)throw s}}return t}(e,a)||function(e,a){if(!e)return;if("string"==typeof e)return h(e,a);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return h(e,a)}(e,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=new Array(a);t<a;t++)n[t]=e[t];return n}function v(e){var a=g(r.a.useState(""),2),t=a[0],n=a[1];r.a.useEffect((function(){var a=i.a.getCurrentRoute().appLink.params;a&&"string"!=typeof a&&a[e.queryParamName]&&n(a[e.queryParamName])}),[]);var m=r.a.useCallback(s.a.debounce((function(a){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=i.a.getCurrentRoute().appLink,n=c.a.omit(t.params,[e.queryParamName]),r=Object.assign(p({},e.queryParamName,a),n);r[e.queryParamName]||delete r[e.queryParamName];l.a.AppLinkHelper.trigger(Object.assign(Object.assign({},t),{params:r}))}(a)}),e.debounceTime),[]);return r.a.createElement("div",{className:"position-relative w-100"},r.a.createElement("input",{name:e.name,type:"text",className:"form-control p-1 w-100 ".concat(e.className||""),id:e.id,autoComplete:"off",placeholder:e.placeholder,"aria-label":"Search",onChange:function(e){n(e.currentTarget.value),m(e.currentTarget.value)},value:t}),r.a.createElement(o.a,{svgName:u.b.Search,className:"".concat(d.a.searchSvg," svg-container cursor-pointer text-secondary")}))}v.defaultProps={debounceTime:300,queryParamName:"query"}},1005:function(e,a,t){e.exports={searchSvg:"Pt-8R"}},1015:function(e,a,t){"use strict";var n=t(0),r=t.n(n),s=t(2),c=t(40),l=t(3),i=t(862),o=t(55),u=t(13),m=t(73),d=t(235),p=t(825),g=t(914),h=t(5),v=t(10),f=t(867),y=t(7),E=t(828),N=t(1002),b=t.n(N),k="userManager.manageStudents";function S(e){var a=e.user,t=e.isChecked,n=e.onToggleCheckbox,o=[{label:y.a.getPhrase(k,"edit"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Edit,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.StudentManagerListItem}),s.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:v.a.UserManager.EDIT_STUDENT,args:[a.id]})}},{label:y.a.getPhrase(k,"enable"),onClick:function(){}},{label:y.a.getPhrase(k,"remove"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Delete,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.StudentManagerListItem}),s.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:v.a.UserManager.REMOVE_USERS,params:{userIds:[a.id],userType:"student"}})},className:"text-danger"}];return r.a.createElement("li",{className:"d-flex align-items-center py-2"},r.a.createElement("div",{className:"px-4"},r.a.createElement(i.a,{id:a.id,name:a.id,checked:t,onChange:n})),r.a.createElement("div",{className:"d-flex flex-column justify-content-center w-100"},r.a.createElement("div",{className:"pb-1"},r.a.createElement("h2",{className:"h5 m-0 mr-1 d-inline-block align-middle"},a.name," ",a.surname||""),a.username&&r.a.createElement("p",{className:"m-0 d-inline-block align-middle"},"(",a.username,")")),r.a.createElement("div",{className:"d-flex"},r.a.createElement("p",{className:"m-0 w-50 text-truncate"},a.email),r.a.createElement("div",{className:"d-flex w-50 pl-1"},r.a.createElement("div",{className:"w-50"},r.a.createElement(m.b,{namespace:k,phrase:"level"}),r.a.createElement("span",{className:"rounded-pill px-2 ".concat(b.a.level)},a.yearLevel.name)),a.classroom&&r.a.createElement("p",{className:"mb-0 w-50"},a.classroom.name)))),r.a.createElement(E.a,{actions:o,className:"pr-4",actionsDropdownClassName:"btn"}))}function w(e){var a=e.user,t=e.isChecked,n=e.onToggleCheckbox,o=[{label:y.a.getPhrase("userManager.manageTeachers","edit"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Edit,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.TeacherManagerListItem}),s.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:v.a.UserManager.EDIT_TEACHER,args:[a.id]})}},{label:y.a.getPhrase("userManager.manageTeachers","enable"),onClick:function(){}},{label:y.a.getPhrase("userManager.manageTeachers","remove"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Delete,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.TeacherManagerListItem}),s.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:v.a.UserManager.REMOVE_USERS,params:{userIds:[a.id],userType:"teacher"}})},className:"text-danger"}];return r.a.createElement("li",{className:"d-flex align-items-center py-2"},r.a.createElement("div",{className:"px-4"},r.a.createElement(i.a,{id:a.id,name:a.id,checked:t,onChange:n})),r.a.createElement("div",{className:"d-flex flex-column justify-content-center w-100"},r.a.createElement("div",{className:"pb-1"},r.a.createElement("h2",{className:"h5 m-0 mr-1 d-inline-block align-middle"},a.name," ",a.surname||""),a.username&&r.a.createElement("p",{className:"m-0 d-inline-block align-middle"},"(",a.username,")")),r.a.createElement("div",{className:"d-flex"},r.a.createElement("p",{className:"m-0 w-50 text-truncate"},a.email),r.a.createElement("p",{className:"mb-0 w-50 pl-1 text-center"},a.userRole.name))),r.a.createElement(E.a,{actions:o,className:"pr-4",actionsDropdownClassName:"btn"}))}var x=t(950);t.d(a,"a",(function(){return R}));var T={application:h.a.USER_MANAGER,action:v.a.UserManager.NEW_STUDENT},A={application:h.a.USER_MANAGER,action:v.a.UserManager.NEW_TEACHER};function R(e){var a=Object(g.a)(e.users),t=a.onToggleBulk,r=a.onToggleItem,y=a.getSelected,E=a.isChecked,N=a.bulkChecked;var b=e.userType===f.a.Student,k=b?S:w,R=b?T:A,C=b?"userManager.manageStudents":"userManager.manageTeachers",M=b?v.a.UserManager.STUDENT_UPLOAD_REVIEW:v.a.UserManager.TEACHER_UPLOAD_REVIEW;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex align-items-center pb-3"},n.createElement("div",{className:"px-4"},n.createElement(i.a,{id:"user-manager",name:"user-manager",checked:N,onChange:t})),n.createElement("div",{className:"mr-auto"},!!y().length&&n.createElement(p.a,{onClick:function(){var a,t=y();(null===(a=t)||void 0===a?void 0:a.length)&&(c.a.logUserAction({count:t.length},c.a.mergeOptions(e.analyticsOptions,{actionType:l.n.Delete,entity:l.d.User,workflowPhase:l.o.Start,descriptor:1===t.length?l.k.Single:l.k.Bulk})),s.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:v.a.UserManager.REMOVE_USERS,params:{userIds:t,userType:e.userType}}))},className:"cursor-pointer"},n.createElement(o.a,{svgName:u.b.Delete}))),n.createElement(x.a,{action:M,userType:e.userType,yearLevels:e.yearLevels,userRoles:e.userRoles}),n.createElement(d.a,{className:"btn btn-outline-dark ml-2",svgName:u.b.Plus,onClick:function(){c.a.logUserAction({},c.a.mergeOptions(e.analyticsOptions,{workflowPhase:l.o.Start,actionType:l.n.Create,entity:l.d.User})),s.a.AppLinkHelper.trigger(R)}},n.createElement(m.b,{namespace:C,phrase:"addNew"}))),n.createElement("ul",{className:"m-0 list-unstyled striped-list"},e.users.map((function(e){return n.createElement(k,{key:e.id,user:e,onToggleCheckbox:function(){return r(e.id)},isChecked:E(e.id)})}))))}},1322:function(e,a,t){"use strict";t.r(a);var n=t(0),r=t.n(n),s=t(14),c=t(7),l=t(237),i=t(3),o=t(837),u=t(91),m=t(73),d=t(829),p=t(1015),g=t(1003),h=t(871),v=t(867),f=t(241),y=t(1004),E=t(896),N=t(840),b=t(13),k=t(235),S=t(5),w=t(10),x=t(927),T={application:S.a.USER_MANAGER,action:w.a.UserManager.NEW_STUDENT};function A(){return r.a.createElement(m.a.Provider,{value:"userManager.schoolStudentManagerEmptyState"},r.a.createElement("div",{className:"text-center py-5"},r.a.createElement("p",null,"TODO: add an actual empty state image once bev has one"),r.a.createElement("img",{src:"/favicon.ico",className:"pb-3"}),r.a.createElement("h2",{className:"h6"},r.a.createElement(m.b,{phrase:"heading"})),r.a.createElement("p",{className:"w-33 mx-auto"},r.a.createElement(m.b,{phrase:"info"})),r.a.createElement(x.a,null,r.a.createElement(m.b,{phrase:"videoLink"})),r.a.createElement(k.a,{className:"btn btn-dark mx-auto",svgName:b.b.Plus,appLink:T},r.a.createElement(m.b,{phrase:"addNew"}))))}t.d(a,"SchoolStudentManagerView",(function(){return C}));var R=c.a.encloseNamespace("userManager.schoolStudentManager");function C(e){var a,t,r,c;Object(l.a)(R("pageTitle"));var b=s.a.useBasicFetch(d.a.getSchoolStudents(N.a.getBackendQueryParams(e.queryParams))),k=s.a.useBasicFetch(h.a.getAll()),S=s.a.useBasicFetch(f.a.getAll());function w(){return k.data&&S.data?[N.b.SortByName(N.a.getNameSortOptions()),N.b.YearLevel(N.a.getYearLevelOptions(k.data)),N.b.Classroom(N.a.getClassroomOptions(S.data))]:[]}return n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"pl-4"},n.createElement(m.b,{namespace:"userManager.schoolStudentManager",phrase:"heading"})),n.createElement("div",{className:"pl-4 py-2 row"},n.createElement("div",{className:"col-9 p-0"},w().length?n.createElement(E.e,{queryParams:e.queryParams,mainFilters:w(),analyticsOptions:{entity:i.d.User,location:i.j.StudentManager},hideHeading:!0}):n.createElement(E.c,{hideHeading:!0})),n.createElement("div",{className:"col-3"},n.createElement(y.a,{id:"school-student-search",name:"school-student-search",placeholder:R("searchBarPlaceholder")}))),n.createElement("p",{className:"pl-4 mb-0 font-weight-bold"},n.createElement(m.b,{namespace:"userManager.schoolStudentManager",phrase:"entries",options:{totalVisible:(null===(t=null===(a=b.data)||void 0===a?void 0:a.data)||void 0===t?void 0:t.length)||0,absoluteTotal:(null===(r=b.data)||void 0===r?void 0:r.count)||0,smartCount:(null===(c=b.data)||void 0===c?void 0:c.count)||0}})),n.createElement("main",{className:"py-3"},function(){var e;return(null===(e=b.data)||void 0===e?void 0:e.data)&&k.data?b.data.data.length?n.createElement(n.Fragment,null,n.createElement(p.a,{users:b.data.data,userType:v.a.Student,yearLevels:k.data,analyticsOptions:{location:i.j.StudentManager}}),n.createElement(o.b,{appLink:u.a.getCurrentRoute().appLink,cursors:{next:b.data.pagination.cursors.next,previous:b.data.pagination.cursors.previous},className:"pt-3 d-flex justify-content-end"})):n.createElement(A,null):n.createElement(g.a,null)}()))}},829:function(e,a,t){"use strict";t.d(a,"a",(function(){return u}));var n=t(14),r=t(79),s=t(21),c=t(840),l=t(833),i=t(834),o=t(835),u={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,t=void 0===a?"":a,s=e.q,i=void 0===s?"":s,o=e.query,u=void 0===o?"":o,m=e.cursor,d=void 0===m?"1":m;return{url:r.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(i,":").concat(u,":").concat(t,":").concat(d),successResponse:function(){var e=c.a.revertFilterString(t),a=n.a.Simulator.getAll("school:students",l).filter((function(a){var n,r;return!(i&&!a.name.toLowerCase().includes(i.toLowerCase()))&&(!t||(!e.yearLevel||e.yearLevel===a.yearLevel.id)&&!((null===(n=e.classroom)||void 0===n?void 0:n.length)&&!e.classroom.includes(null===(r=a.classroom)||void 0===r?void 0:r.id)))})),r=c.a.convertWithStatementToObject(u),s=r.sortValue||"name",o=a.sort((function(e,a){return e[s].toLowerCase()<a[s].toLowerCase()?-1:e[s].toLowerCase()>a[s].toLowerCase()?1:0}));r.sortKey&&"orderbydesc"===r.sortKey&&(o=o.reverse());var m=o.slice(25*(+d-1),25*+d),p=o.slice(25*+d).length?+d+1:void 0,g="1"===d?void 0:+d-1;return m.length||(m=o.slice(0,25),p=o.slice(25).length?2:void 0,g=void 0),{data:m,pagination:{cursors:{next:p,previous:g}},count:o.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return n.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,a){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.delete("school:students",e),{}},always:a}},getStudent:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"students:".concat(e),successResponse:function(){return n.a.Simulator.get("school:students",e)}}},createStudent:function(e,a,t){return{url:"/api/domain/v1/users",key:"create:student",type:s.a.POST,invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.create("school:students",e)},success:a,error:t}},bulkCreateStudents:function(e,a,t,r){return{url:"/api/domain/v1/users",key:"create:students",type:s.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return n.a.Simulator.create("school:students",e)})),e},success:a,error:t,always:r}},updateStudent:function(e,a,t){return{url:"/api/domain/v1/users",key:"edit:student",type:s.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.update("school:students",e)},success:a,error:t}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,t=void 0===a?"":a,s=e.q,c=void 0===s?"":s,l=e.query,o=void 0===l?"":l,u=e.cursor,m=void 0===u?"":u;return{url:r.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(c,":").concat(o,":").concat(t,":").concat(m),successResponse:function(){var e=n.a.Simulator.getAll("school:teachers",i);return{data:e,pagination:{cursors:{}},count:e.length}},timeout:2e3}},removeTeachersFromSchool:function(e,a){return{url:"",key:"remove:school:teachers",invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.delete("school:teachers",e),{}},always:a}},getTeacher:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"teachers:".concat(e),successResponse:function(){return n.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,a,t){return{url:"/api/domain/v1/users",key:"create:teacher",type:s.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.create("school:teachers",e)},success:a,error:t}},bulkCreateTeachers:function(e,a,t,r){return{url:"/api/domain/v1/users",key:"create:teachers",type:s.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return n.a.Simulator.create("school:teachers",e)})),e},success:a,error:t,always:r}},updateTeacher:function(e,a,t){return{url:"/api/domain/v1/users",key:"edit:teacher",type:s.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.update("school:teachers",e)},success:a,error:t}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return n.a.Simulator.getAll("user:roles",o)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return n.a.Simulator.getAll("groups").filter((function(a){return!!a.students.find((function(a){return a.id===e}))}))}}}}},833:function(e){e.exports=JSON.parse('[{"username":"Joosh","name":"Joshua","surname":"Taylor","email":"joshua.taylor@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-c","name":"Classroom 2-C"}},{"username":"Shale","name":"Shale","surname":"Kuzmanovski","email":"shale.kuzmanovski@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Mike","name":"Michael","surname":"O\'McDonald","email":"michael.mcdonnell@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Met","name":"Matt","surname":"Trengrove","email":"matt@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-b","name":"Classroom 2-B"}},{"username":"Big Kev","name":"Don Kevin","surname":"Wellalagodage","email":"kevin.wellalagoladegelagodage@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 1"},"classroom":{"id":"classroom-1-a","name":"Classroom 1-A"}}]')},834:function(e){e.exports=JSON.parse('[{"username":"beb","name":"Beverly","surname":"Li","email":"beverly.li@clickview.com.au","userRole":{"id":"assistant-principal","name":"Assistant Principal"}},{"username":"Bort","name":"Cameron","surname":"Hill","email":"cameron.hill@clickview.com.au","userRole":{"id":"principal","name":"Principal"}},{"username":"jaynice","name":"Janice","surname":"Quach","email":"janice.quach@clickview.com.au","userRole":{"id":"head-of-science","name":"Head of Science"}},{"username":"bread","name":"Prad","surname":"Nepal","email":"prad.nepal@clickview.com.au","userRole":{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}}]')},835:function(e){e.exports=JSON.parse('[{"id":"teacher","name":"Teacher"},{"id":"assistant-principal","name":"Assistant Principal"},{"id":"principal","name":"Principal"},{"id":"head-of-science","name":"Head of Science"},{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}]')},871:function(e,a,t){"use strict";t.d(a,"a",(function(){return s}));var n=t(14),r=t(881),s={getAll:function(){return{url:"/api/domain/v1/yearlevels",key:"yearlevels",successResponse:function(){return n.a.Simulator.getAll("year:levels",r)}}}}},881:function(e){e.exports=JSON.parse('[{"id":"kindergarten","name":"Kindergarten"},{"id":"year-1","name":"Year 1"},{"id":"year-2","name":"Year 2"},{"id":"year-3","name":"Year 3"},{"id":"year-4","name":"Year 4"},{"id":"year-5","name":"Year 5"},{"id":"year-6","name":"Year 6"}]')},927:function(e,a,t){"use strict";t.d(a,"a",(function(){return l}));var n=t(0),r=t.n(n),s=t(235),c=t(13);function l(e){return r.a.createElement(s.a,{className:"btn btn-outline-info d-block mx-auto mb-3",svgName:c.b.Video},e.children)}}}]);
|