@clickview/lite 0.0.3 → 0.0.4-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/apps/dashboard/LiteDashboardApplication.d.ts +17 -0
  2. package/dist/apps/default/LiteDefaultApplication.d.ts +2 -0
  3. package/dist/apps/embed/LiteEmbedApplication.d.ts +15 -0
  4. package/dist/apps/embed/views/embed/EmbedView.d.ts +10 -0
  5. package/dist/apps/embed/views/index.d.ts +1 -0
  6. package/dist/apps/notifications/LiteNotificationsApplication.d.ts +10 -0
  7. package/dist/apps/notifications/constants/NotificationsAppVariables.d.ts +7 -0
  8. package/dist/apps/playlists/LitePlaylistsApplication.d.ts +1 -0
  9. package/dist/apps/subjects/LiteSubjectApplication.d.ts +14 -0
  10. package/dist/bundle.js +4291 -1
  11. package/dist/bundle.js.map +1 -0
  12. package/dist/en.json +55 -1
  13. package/dist/index.d.ts +9 -0
  14. package/dist/lite-app.css +155 -5
  15. package/dist/lite-app.css.map +1 -0
  16. package/dist/shared/components/index.d.ts +2 -0
  17. package/dist/shared/components/play-page/Badges.d.ts +7 -0
  18. package/dist/shared/components/play-page/Buttons.d.ts +2 -0
  19. package/dist/shared/components/play-page/PlayPage.d.ts +8 -0
  20. package/dist/shared/components/play-page/VideoTitle.d.ts +7 -0
  21. package/dist/shared/components/user-options/UserOptions.d.ts +10 -0
  22. package/dist/shared/components/video-details/VideoDetails.d.ts +0 -4
  23. package/dist/shared/constants/LiteActions.d.ts +17 -0
  24. package/dist/shared/constants/LiteLayouts.d.ts +1 -0
  25. package/dist/shared/constants/LiteRadioChannels.d.ts +4 -0
  26. package/dist/shared/contexts/player/PlayerContext.d.ts +20 -4
  27. package/dist/shared/flight-requests/ShareRequests.d.ts +4 -0
  28. package/dist/shared/flight-requests/VideoRequests.d.ts +1 -0
  29. package/dist/shared/layouts/embed-layout/EmbedLayoutComponent.d.ts +8 -0
  30. package/dist/shared/layouts/embed-layout/EmbedLayoutView.d.ts +17 -0
  31. package/dist/shared/layouts/index.d.ts +1 -0
  32. package/dist/shared/layouts/teacher-layout/TeacherLayoutComponent.d.ts +2 -2
  33. package/dist/shared/layouts/teacher-layout/TeacherLayoutView.d.ts +0 -2
  34. package/dist/shared/views/backbone-wrapper/BackboneWrapperView.d.ts +8 -0
  35. package/dist/shared/views/favorite-videos/FavoriteVideosView.d.ts +6 -0
  36. package/dist/shared/views/index.d.ts +3 -0
  37. package/dist/shared/views/play-shared/PlaySharedView.d.ts +6 -0
  38. package/package.json +45 -44
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/lite/webpack/universalModuleDefinition","file://C:/ClickView Projects/@clickview/packages/lite/webpack/bootstrap","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/dashboard/LiteDashboardApplication.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/default/LiteDefaultApplication.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/default/views/home/HomeView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/default/views/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/default/views/not-found/LiteNotFoundView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/embed/LiteEmbedApplication.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/embed/views/embed/EmbedView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/embed/views/embed/embed.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/embed/views/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/notifications/LiteNotificationsApplication.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/notifications/constants/NotificationsAppVariables.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/playlists/LitePlaylistsApplication.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/search/constants/SearchAppVariables.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/subjects/LiteSubjectApplication.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/floating-player/FloatingPlayer.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/floating-player/floating-player.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/play-page/Badges.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/play-page/Buttons.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/play-page/PlayPage.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/play-page/VideoTitle.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/resources/Resources.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/user-options/UserOptions.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/user-options/user-options.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/video-details/VideoDetails.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/web-player/WebPlayer.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/constants/LiteActions.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/constants/LiteLayoutRegions.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/constants/LiteLayouts.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/constants/LiteRadioChannels.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/constants/WithStatements.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/constants/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/contexts/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/contexts/player/PlayerContext.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/flight-requests/ConfigRequests.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/flight-requests/SeriesRequests.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/flight-requests/ShareRequests.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/flight-requests/UserRequests.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/flight-requests/VideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/flight-requests/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/hooks/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/hooks/useWindowListeners.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/embed-layout/EmbedLayout.hbs","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/embed-layout/EmbedLayoutComponent.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/embed-layout/EmbedLayoutView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/teacher-layout/TeacherLayout.hbs","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/teacher-layout/TeacherLayoutComponent.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/teacher-layout/TeacherLayoutView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/teacher-layout/teacher-layout.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/services/FlightLibraryDataService.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/services/FlightSeriesDataService.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/services/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/utils/LiteAppLinkUtils.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/utils/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/backbone-wrapper/BackboneWrapperView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/favorite-videos/FavoriteVideosView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/header/HeaderView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/header/header.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/left-nav/LeftNavView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/left-nav/left-nav.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/my-uploads/MyUploadsView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/play-shared/PlaySharedView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/play/PlayView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/series/SeriesView.tsx","file://C:/ClickView Projects/@clickview/packages/lite/src/styles/index.ts","file://C:/ClickView Projects/@clickview/packages/lite/src/styles/theme-overrides.scss","file://C:/ClickView Projects/@clickview/packages/lite/external \"@clickview/common\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"@clickview/dashboard\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"@clickview/playlists\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"@clickview/shared\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"Backbone\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"Handlebars\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"React\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"ReactBootstrap\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"ReactCustomScrollbars\"","file://C:/ClickView Projects/@clickview/packages/lite/external \"ReactRedux\""],"names":[],"mappings":"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","file":"bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@clickview/common\"), require(\"@clickview/dashboard\"), require(\"@clickview/playlists\"), require(\"@clickview/shared\"), require(\"React\"), require(\"ReactCustomScrollbars\"), require(\"ReactRedux\"), require(\"ReactBootstrap\"), require(\"Backbone\"), require(\"Handlebars\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@clickview/common\", \"@clickview/dashboard\", \"@clickview/playlists\", \"@clickview/shared\", \"React\", \"ReactCustomScrollbars\", \"ReactRedux\", \"ReactBootstrap\", \"Backbone\", \"Handlebars\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@clickview/lite\"] = factory(require(\"@clickview/common\"), require(\"@clickview/dashboard\"), require(\"@clickview/playlists\"), require(\"@clickview/shared\"), require(\"React\"), require(\"ReactCustomScrollbars\"), require(\"ReactRedux\"), require(\"ReactBootstrap\"), require(\"Backbone\"), require(\"Handlebars\"));\n\telse\n\t\troot[\"@clickview/lite\"] = factory(root[\"@clickview/common\"], root[\"@clickview/dashboard\"], root[\"@clickview/playlists\"], root[\"@clickview/shared\"], root[\"React\"], root[\"ReactCustomScrollbars\"], root[\"ReactRedux\"], root[\"ReactBootstrap\"], root[\"Backbone\"], root[\"Handlebars\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__clickview_common__, __WEBPACK_EXTERNAL_MODULE__clickview_dashboard__, __WEBPACK_EXTERNAL_MODULE__clickview_playlists__, __WEBPACK_EXTERNAL_MODULE__clickview_shared__, __WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_custom_scrollbars__, __WEBPACK_EXTERNAL_MODULE_react_redux__, __WEBPACK_EXTERNAL_MODULE_react_bootstrap__, __WEBPACK_EXTERNAL_MODULE_backbone__, __WEBPACK_EXTERNAL_MODULE_handlebars__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import * as React from 'react';\r\nimport { ObjectHash } from 'backbone';\r\nimport { Core, HashObject } from '@clickview/common';\r\nimport { DashboardView } from '@clickview/dashboard';\r\n\r\nimport { AppChannels, Layouts, LayoutRegions } from 'shared/constants';\r\nimport { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';\r\n\r\nclass DashboardAppRouter extends Core.AppRouter {\r\n protected get channelName(): string {\r\n return AppChannels.DASHBOARD;\r\n }\r\n\r\n protected get appRoutes(): ObjectHash {\r\n return {\r\n 'dashboard/:id(/:name/)': 'dashboard',\r\n 'videos/:id': 'video',\r\n '(/)': 'index',\r\n };\r\n }\r\n}\r\n\r\nexport class DashboardApplication extends Core.Application {\r\n protected layout: TeacherLayoutView;\r\n\r\n public get name(): string {\r\n return 'Dashboard Application';\r\n }\r\n\r\n public get channelName(): string {\r\n return AppChannels.DASHBOARD;\r\n }\r\n\r\n public static get router(): typeof DashboardAppRouter {\r\n return DashboardAppRouter;\r\n }\r\n\r\n protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions> {\r\n return {\r\n name: Layouts.TEACHER_LAYOUT,\r\n options: {\r\n showNav: true\r\n }\r\n };\r\n }\r\n\r\n public get appChannels(): HashObject<string> {\r\n return {\r\n dashboard: AppChannels.DASHBOARD,\r\n subject: AppChannels.SUBJECT\r\n };\r\n }\r\n\r\n public index(): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <DashboardView type='primary' appChannels={this.appChannels} />);\r\n }\r\n}","import * as React from 'react';\r\n\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { Core, HashObject } from '@clickview/common';\r\n\r\nimport { AppChannels, Layouts, LayoutRegions } from 'shared/constants';\r\nimport { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';\r\nimport { PlayView, MyUploadsView, SeriesView, PlaySharedView, FavoriteVideosView } from 'shared/views';\r\n\r\nimport { NotFoundView, HomeView } from 'apps/default/views';\r\n\r\nclass DefaultAppRouter extends Core.AppRouter {\r\n protected get channelName(): string {\r\n return AppChannels.DEFAULT;\r\n }\r\n\r\n protected get appRoutes(): ObjectHash {\r\n return {\r\n '': 'index',\r\n\r\n // These routes should be moved to their own applications eventually\r\n 'videos/:id(/)': 'playVideo',\r\n 'my-uploads(/)': 'myUploads',\r\n 'series/:id(/)': 'series',\r\n 'share/:shortCode(/)': 'playSharedVideo',\r\n 'favourited-videos(/)': 'favoriteVideos',\r\n\r\n '*path' : 'catchAllRoutes',\r\n };\r\n }\r\n\r\n protected get appLinks(): string[] {\r\n return ['notFound'];\r\n }\r\n}\r\n\r\nexport class DefaultApplication extends Core.Application {\r\n public layout: TeacherLayoutView;\r\n\r\n public get name(): string {\r\n return 'Default Application';\r\n }\r\n\r\n protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions> {\r\n return {\r\n name: Layouts.TEACHER_LAYOUT,\r\n options: {\r\n showNav: true\r\n }\r\n };\r\n }\r\n\r\n public get channelName(): string {\r\n return AppChannels.DEFAULT;\r\n }\r\n\r\n public static get router(): typeof DefaultAppRouter {\r\n return DefaultAppRouter;\r\n }\r\n\r\n public index(): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <HomeView />);\r\n }\r\n\r\n public playVideo(id: string): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <PlayView id={id} />);\r\n }\r\n\r\n public playSharedVideo(shortCode: string): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <PlaySharedView shortCode={shortCode} />);\r\n }\r\n\r\n public myUploads(params: HashObject): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <MyUploadsView cursor={params.cursor} />);\r\n }\r\n\r\n public favoriteVideos(params: HashObject): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <FavoriteVideosView cursor={params.cursor} />);\r\n }\r\n\r\n public series(id: string, params: HashObject): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <SeriesView id={id} cursor={params.cursor} />);\r\n }\r\n\r\n public catchAllRoutes(): void {\r\n /**\r\n * TODO: This should throw a NotFoundError that's handled by an error handler\r\n */\r\n // Core.ErrorHelper.throw(new NotFoundError());\r\n this.layout.showChildView(LayoutRegions.CONTENT, <NotFoundView />);\r\n }\r\n\r\n public notFound(): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <NotFoundView />);\r\n }\r\n}","import * as React from 'react';\r\nimport { AppLink } from '@clickview/shared';\r\nimport { AppChannels } from 'shared/constants';\r\n\r\n/**\r\n * TODO: This is a temporary view and should be deleted\r\n */\r\nexport function HomeView(): React.ReactElement {\r\n return (\r\n <div style={{ height: '3000px' }}>\r\n <h1>Hello World</h1>\r\n <AppLink appLink={{\r\n application: AppChannels.DEFAULT,\r\n action: 'play:video',\r\n args: ['9122777']\r\n }}>Play page 1</AppLink>\r\n <AppLink appLink={{\r\n application: AppChannels.DEFAULT,\r\n action: 'play:video',\r\n args: ['3713435']\r\n }}>Play page 2</AppLink>\r\n </div>\r\n );\r\n}","export * from './home/HomeView';\r\nexport * from './not-found/LiteNotFoundView';","import * as React from 'react';\r\n\r\n/**\r\n * TODO: Implement a proper NotFoundView\r\n */\r\nexport function NotFoundView(): React.ReactElement {\r\n return (\r\n <>\r\n <h1>Not Found</h1>\r\n </>\r\n );\r\n}","import * as React from 'react';\r\nimport { Core, HashObject } from '@clickview/common';\r\n\r\nimport { AppChannels, Layouts, LayoutRegions } from 'shared/constants';\r\nimport { EmbedLayoutView } from 'shared/layouts';\r\n\r\nimport { EmbedView } from 'apps/embed/views';\r\n\r\nclass EmbedAppRouter extends Core.AppRouter {\r\n protected get channelName(): string {\r\n return AppChannels.EMBED;\r\n }\r\n\r\n protected get appRoutes(): HashObject {\r\n return {\r\n 'share/embed/:shortcode': 'embedVideo'\r\n };\r\n }\r\n}\r\n\r\nexport class EmbedApplication extends Core.Application {\r\n public layout: EmbedLayoutView;\r\n\r\n public get name(): string {\r\n return 'Embed Application';\r\n }\r\n\r\n protected get layoutOptions(): Core.LayoutOptions<Core.LayoutViewOptions> {\r\n return {\r\n name: Layouts.EMBED_LAYOUT\r\n };\r\n }\r\n\r\n public get channelName(): string {\r\n return AppChannels.EMBED;\r\n }\r\n\r\n public static get router(): typeof EmbedAppRouter {\r\n return EmbedAppRouter;\r\n }\r\n\r\n public embedVideo(shortCode: string): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <EmbedView id={shortCode} />);\r\n }\r\n}","import * as React from 'react';\r\nimport { Flight } from '@clickview/common';\r\nimport { Video, Config } from '@clickview/shared';\r\n\r\nimport { VideoRequests, ConfigRequests } from 'shared/flight-requests';\r\nimport { WebPlayer } from 'shared/components';\r\n\r\nimport styles from './embed.scss';\r\n\r\ninterface EmbedViewProps {\r\n /**\r\n * TODO: Replace id with shortcode. It's just a master id now\r\n * as a placeholder\r\n */\r\n id: string;\r\n}\r\n\r\nexport function EmbedView(props: EmbedViewProps): JSX.Element {\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n\r\n /**\r\n * Our body normally has overflow-y: scroll;\r\n * So we need to override it for the embedded play view\r\n */\r\n React.useEffect(() => {\r\n document.body.classList.add('overflow-hidden');\r\n return () => document.body.classList.remove('overflow-hidden');\r\n }, []);\r\n\r\n\r\n if (!video.data || !config.data)\r\n return <></>;\r\n\r\n return (\r\n <WebPlayer id={video.data.id} webPlayerHost={config.data.webPlayerUrl} className={styles.embeddedPlayer} />\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"embeddedPlayer\":\"cv--embeddedPlayer--3kXb6\"};","export * from './embed/EmbedView';","import * as React from 'react';\r\n\r\nimport { Core, HashObject } from '@clickview/common';\r\nimport { NotificationsView, LayoutRegions } from '@clickview/shared';\r\n\r\nimport { Layouts, AppChannels } from 'shared/constants';\r\nimport { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';\r\nimport { BackboneWrapperView } from 'shared/views';\r\n\r\nclass NotificationsAppRouter extends Core.AppRouter {\r\n public get channelName(): string {\r\n return AppChannels.NOTIFICATIONS;\r\n }\r\n\r\n public get appRoutes(): HashObject {\r\n return {\r\n 'notifications(/)': 'index'\r\n };\r\n }\r\n}\r\n\r\nexport class NotificationsApplication extends Core.Application {\r\n protected layout: TeacherLayoutView;\r\n\r\n public get name(): string {\r\n return 'Notifications Application';\r\n }\r\n\r\n protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions> {\r\n return {\r\n name: Layouts.TEACHER_LAYOUT,\r\n options: {\r\n showNav: true\r\n }\r\n };\r\n }\r\n\r\n public static get router(): any {\r\n return NotificationsAppRouter;\r\n }\r\n\r\n public get channelName(): string {\r\n return AppChannels.NOTIFICATIONS;\r\n }\r\n\r\n public index(params: HashObject): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT,\r\n <BackboneWrapperView view={() => new NotificationsView({ params })} />);\r\n }\r\n}","import { BaseNotificationsAppVariables, NotificationsAppLinks, NotificationType } from '@clickview/shared';\r\nimport { AppChannels, Actions } from 'shared/constants';\r\n\r\nexport class NotificationsAppVariables extends BaseNotificationsAppVariables {\r\n public get appLinks(): NotificationsAppLinks {\r\n return {\r\n videoDetails: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO\r\n },\r\n\r\n notifications: {\r\n application: AppChannels.NOTIFICATIONS,\r\n action: Actions.Notifications.HOME\r\n },\r\n\r\n /**\r\n * Below this comment is unimplemented applinks\r\n */\r\n pastReleases: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.HOME\r\n },\r\n\r\n awaitingReview: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.HOME\r\n },\r\n\r\n editStaffRequest: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.HOME\r\n }\r\n };\r\n }\r\n\r\n public get notificationTypesWithAppLinks(): Array<NotificationType> {\r\n return [\r\n NotificationType.VideoReviewReminder,\r\n NotificationType.VideoReviewAddedToLibrary,\r\n NotificationType.CustomLibraryVideoAvailable,\r\n NotificationType.WorkspaceVideoAvailable,\r\n NotificationType.ExchangeVideoAvailable\r\n // NotificationType.StaffRequest,\r\n // NotificationType.StaffRequestFulfilled,\r\n // NotificationType.ChapterMergeSuccess\r\n ];\r\n }\r\n\r\n // TODO\r\n public get notificationsEmptyStateUrl(): string {\r\n // return '/images/empty-states/illo-no-notifications@2x.png';\r\n return '';\r\n }\r\n\r\n public get bellIconColor(): 'dark' {\r\n return 'dark';\r\n }\r\n}","import * as React from 'react';\r\nimport { Radio, ObjectHash } from 'backbone';\r\n\r\nimport { Core, BaseAlert, CommonChannels } from '@clickview/common';\r\nimport { Video, Series, Playlist, AlertList } from '@clickview/shared';\r\nimport {\r\n PlaylistView,\r\n PlaylistsView,\r\n PlaylistsContextProvider,\r\n NewPlaylistView,\r\n EditPlaylistView,\r\n DeletePlaylistView,\r\n AddToPlaylistView,\r\n RemoveVideoFromPlaylistView\r\n} from '@clickview/playlists';\r\n\r\nimport { AppChannels, Layouts, LayoutRegions, Actions } from 'shared/constants';\r\nimport { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';\r\n\r\nclass PlaylistsAppRouter extends Core.AppRouter {\r\n protected get channelName(): string {\r\n return AppChannels.PLAYLISTS;\r\n }\r\n\r\n protected get appRoutes(): ObjectHash {\r\n return {\r\n 'playlists(/)': 'index',\r\n 'playlists/:id(/)': 'playlist'\r\n };\r\n }\r\n protected get appLinks(): string[] {\r\n return [\r\n 'newPlaylist',\r\n 'editPlaylist',\r\n 'deletePlaylist',\r\n 'addToPlaylist',\r\n 'removeVideoFromPlaylist'\r\n ];\r\n }\r\n}\r\n\r\nexport class PlaylistsApplication extends Core.Application {\r\n protected layout: TeacherLayoutView;\r\n\r\n public get name(): string {\r\n return 'Playlists Application';\r\n }\r\n\r\n protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions> {\r\n return {\r\n name: Layouts.TEACHER_LAYOUT,\r\n options: {\r\n showNav: true\r\n }\r\n };\r\n }\r\n\r\n public get channelName(): string {\r\n return AppChannels.PLAYLISTS;\r\n }\r\n\r\n public static get router(): typeof PlaylistsAppRouter {\r\n return PlaylistsAppRouter;\r\n }\r\n\r\n public index(): void {\r\n const getPlaylistAppLink = (playlist: Playlist) => ({\r\n application: AppChannels.PLAYLISTS,\r\n action: Actions.Playlists.PLAYLIST,\r\n args: [playlist.id]\r\n });\r\n\r\n this.layout.showChildView(LayoutRegions.CONTENT,\r\n <PlaylistsContextProvider>\r\n <PlaylistsView getPlaylistAppLink={getPlaylistAppLink} />\r\n </PlaylistsContextProvider>\r\n );\r\n }\r\n\r\n public playlist(id: string): void {\r\n // TODO Replace this\r\n const getVideoAppLink = (video: Video) => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO,\r\n args: [video.id]\r\n });\r\n\r\n const getSeriesAppLink = (series: Series) => ({\r\n application: AppChannels.PLAYLISTS,\r\n action: Actions.Playlists.HOME\r\n });\r\n\r\n this.layout.showChildView(LayoutRegions.CONTENT,\r\n <PlaylistView\r\n playlistId={id}\r\n application={AppChannels.PLAYLISTS}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n allowEdit\r\n />\r\n );\r\n }\r\n\r\n public newPlaylist(): void {\r\n this.layout.showChildView(LayoutRegions.POPUP,\r\n <NewPlaylistView application={AppChannels.PLAYLISTS} closePopup={() => this.layout.closePopup()} />\r\n );\r\n }\r\n\r\n public editPlaylist(id: string): void {\r\n this.layout.showChildView(LayoutRegions.POPUP,\r\n <EditPlaylistView playlistId={id} closePopup={() => this.layout.closePopup()} />\r\n );\r\n }\r\n\r\n public deletePlaylist(id: string): void {\r\n this.layout.showChildView(LayoutRegions.POPUP,\r\n <DeletePlaylistView\r\n playlistId={id}\r\n routeToOnDelete={{\r\n application: AppChannels.PLAYLISTS,\r\n action: Actions.Playlists.HOME\r\n }}\r\n closePopup={() => this.layout.closePopup()}\r\n />\r\n );\r\n }\r\n\r\n public addToPlaylist(videoId: string): void {\r\n this.layout.showChildView(LayoutRegions.POPUP,\r\n <AddToPlaylistView videoId={videoId} closePopup={() => this.layout.closePopup()} />);\r\n }\r\n\r\n public removeVideoFromPlaylist(videoId: string, playlistId: string): void {\r\n this.layout.showChildView(LayoutRegions.POPUP,\r\n <RemoveVideoFromPlaylistView\r\n videoId={videoId}\r\n playlistId={playlistId}\r\n closePopup={() => this.layout.closePopup()}\r\n />\r\n );\r\n }\r\n\r\n protected onShowAlert(options: ObjectHash = {}): void {\r\n const { collection } = options;\r\n\r\n const alerts: BaseAlert[] = collection ? collection.toJSON() : [];\r\n\r\n const removeAlert = (id: string) => Radio.channel(CommonChannels.ALERT).trigger('remove:alert', id);\r\n\r\n this.layout.showChildView(LayoutRegions.ALERT, <AlertList alerts={alerts} removeAlert={removeAlert} />);\r\n }\r\n}","import { BaseSearchAppVariables, SearchAppLinks } from '@clickview/shared';\r\nimport { AppChannels, Actions } from 'shared/constants';\r\n\r\nexport class SearchAppVariables extends BaseSearchAppVariables {\r\n public get appLinks(): SearchAppLinks {\r\n /**\r\n * These will eventually be swapped out for their actual applinks\r\n */\r\n return {\r\n searchResults: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.MY_UPLOADS,\r\n args: [1]\r\n },\r\n\r\n series: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.MY_UPLOADS\r\n },\r\n\r\n videoDetails: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.MY_UPLOADS,\r\n args: [1]\r\n },\r\n\r\n tagSearch: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.MY_UPLOADS,\r\n args: [1]\r\n },\r\n\r\n topic: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.MY_UPLOADS,\r\n args: [1]\r\n }\r\n };\r\n }\r\n}","import * as React from 'react';\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { Core, HashObject } from '@clickview/common';\r\nimport { LayoutRegions, Video, Series } from '@clickview/shared';\r\nimport { ClassificationView } from '@clickview/dashboard';\r\n\r\nimport { AppChannels, Layouts, Actions } from 'shared/constants';\r\nimport { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';\r\nimport { PlaylistView } from '@clickview/playlists';\r\nimport { PlayView } from 'shared/views';\r\n\r\nclass SubjectAppRouter extends Core.AppRouter {\r\n public get channelName(): string {\r\n return AppChannels.SUBJECT;\r\n }\r\n\r\n protected get appRoutes(): ObjectHash {\r\n return {\r\n 'subjects/:id/playlists/:playlistId(/)': 'playlist',\r\n 'subjects/:id(/)': 'classification',\r\n 'series/:id': 'series'\r\n };\r\n }\r\n}\r\n\r\nexport class SubjectApplication extends Core.Application {\r\n protected layout: TeacherLayoutView;\r\n\r\n public get name(): string {\r\n return 'Subject Application';\r\n }\r\n\r\n public static get router(): any {\r\n return SubjectAppRouter;\r\n }\r\n\r\n public get channelName(): string {\r\n return AppChannels.SUBJECT;\r\n }\r\n\r\n protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions> {\r\n return {\r\n name: Layouts.TEACHER_LAYOUT,\r\n options: {\r\n showNav: true\r\n }\r\n };\r\n }\r\n\r\n public get appChannels(): HashObject<string> {\r\n return {\r\n dashboard: AppChannels.DASHBOARD,\r\n subject: AppChannels.SUBJECT\r\n };\r\n }\r\n\r\n public classification(classificationId: string): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT,\r\n <ClassificationView\r\n key={classificationId}\r\n classificationId={classificationId}\r\n appChannels={this.appChannels}\r\n />);\r\n }\r\n\r\n public playlist(id: string, playlistId: string): void {\r\n\r\n const getVideoAppLink = (video: Video) => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO,\r\n args: [video.id]\r\n });\r\n\r\n const getSeriesAppLink = (series: Series) => ({\r\n application: '',\r\n action: ''\r\n });\r\n\r\n this.layout.showChildView(LayoutRegions.CONTENT,\r\n <PlaylistView\r\n playlistId={playlistId}\r\n application={AppChannels.PLAYLISTS}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n allowEdit\r\n />\r\n );\r\n }\r\n\r\n protected onShowAlert(options: ObjectHash = {}): void {}\r\n}","import './shared/components/play-page/play-page.lang.json'; import './shared/components/user-options/user-options.lang.json'; import './shared/components/video-details/video-details.lang.json'; import './shared/errors/not-found/not-found.lang.json'; import './shared/views/favorite-videos/favorite-videos-view.lang.json'; import './shared/views/left-nav/left-nav-view.lang.json'; import './shared/views/my-uploads/my-uploads-view.lang.json'; import './shared/views/series/series-view.lang.json';\r\n\r\nimport './styles';\r\n\r\n/**\r\n * Files that are needed by outside projects. E.g. applications, services.\r\n */\r\nexport * from './shared/constants';\r\nexport * from './shared/layouts';\r\nexport * from './shared/services';\r\n\r\nexport * from './apps/default/LiteDefaultApplication';\r\n\r\nexport * from './apps/playlists/LitePlaylistsApplication';\r\nexport * from './apps/embed/LiteEmbedApplication';\r\nexport * from './apps/dashboard/LiteDashboardApplication';\r\nexport * from './apps/subjects/LiteSubjectApplication';\r\n\r\nexport * from './apps/search/constants/SearchAppVariables';\r\n\r\nexport * from './apps/notifications/LiteNotificationsApplication';\r\nexport * from './apps/notifications/constants/NotificationsAppVariables';","import * as React from 'react';\r\n\r\nimport { Core } from '@clickview/common';\r\nimport { SvgContainer, cvSvgLibrary, AppLink, SeriesLink, Video, Series } from '@clickview/shared';\r\n\r\nimport { PlayerContext } from 'shared/contexts';\r\nimport { WebPlayer } from 'shared/components';\r\nimport { AppChannels, Actions } from 'shared/constants';\r\n\r\nimport styles from './floating-player.scss';\r\n\r\nfunction getSeriesAppLink(id: string): Core.AppLink {\r\n return {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: [id]\r\n };\r\n}\r\n\r\nfunction getVideoAppLink(id: string): Core.AppLink {\r\n return {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO,\r\n args: [id]\r\n };\r\n}\r\n\r\ninterface FloatingPlayerTitleProps {\r\n video: Video;\r\n}\r\n\r\nfunction FloatingPlayerTitle(props: FloatingPlayerTitleProps): JSX.Element {\r\n const { video } = props;\r\n\r\n return (\r\n <h2 className='mb-0 h6'>\r\n {!!video.series && <SeriesLink video={video} appLink={getSeriesAppLink(video.series.id)} />}\r\n <AppLink appLink={getVideoAppLink(video.id)}>\r\n {video.name}\r\n </AppLink>\r\n </h2>\r\n );\r\n}\r\n\r\nexport function FloatingPlayer(): React.ReactElement {\r\n const { video, webPlayerUrl, viewportPosition, setVideo, isOnPlayPage } = React.useContext(PlayerContext);\r\n\r\n if (!video)\r\n return <></>;\r\n\r\n let style = {};\r\n let className = styles.fixed;\r\n\r\n if (viewportPosition) {\r\n className = styles.inline;\r\n style = viewportPosition;\r\n }\r\n\r\n /**\r\n * Add box shadow when player is floating\r\n */\r\n if (!viewportPosition)\r\n className += ' shadow';\r\n\r\n return (\r\n <div style={style} className={`${className}`}>\r\n <WebPlayer id={video.id} webPlayerHost={webPlayerUrl} className={'embed-responsive-16by9'} key={video.id} />\r\n {!viewportPosition &&\r\n <div className='p-2 bg-white d-flex justify-content-between align-items-center'>\r\n <FloatingPlayerTitle video={video} />\r\n <span className={`${styles.buttons} flex-shrink-1`}>\r\n <span className={`cursor-pointer ml-1 float-right`} role='button' tabIndex={0} onClick={() => setVideo(null)}>\r\n <SvgContainer svgName={cvSvgLibrary.Close} />\r\n </span>\r\n <AppLink appLink={getVideoAppLink(video.id)}>\r\n {!isOnPlayPage && <SvgContainer\r\n svgName={cvSvgLibrary.NewWindow}\r\n className={`${styles.flippedIcon} d-inline-block svg-container float-right`} />}\r\n </AppLink>\r\n </span>\r\n </div>}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fixed\":\"cv--fixed--3C4_W\",\"inline\":\"cv--inline--2voRI\",\"closeSvg\":\"cv--closeSvg--2RiDj\",\"buttons\":\"cv--buttons--ZbN3s\",\"flippedIcon\":\"cv--flippedIcon--3nkTw\"};","export * from './web-player/WebPlayer';\r\nexport * from './floating-player/FloatingPlayer';\r\nexport * from './resources/Resources';\r\nexport * from './video-details/VideoDetails';\r\nexport * from './play-page/PlayPage';\r\nexport * from './user-options/UserOptions';","import * as React from 'react';\r\nimport { Video } from '@clickview/shared';\r\n\r\ninterface BadgesProps {\r\n video: Video;\r\n}\r\n\r\nexport function Badges(props: BadgesProps): React.ReactElement {\r\n const { video } = props;\r\n const { rating, productionYear } = video;\r\n\r\n return (\r\n <div>\r\n {rating && <span className='badge badge-light p-1 mr-1'>{rating.code}</span>}\r\n {productionYear && <span className='badge badge-light p-1 mr-1'>{productionYear}</span>}\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { IconButton, cvSvgLibrary, LanguageNamespaceContext, Text } from '@clickview/shared';\r\n\r\nconst namespace = 'shared.playPage';\r\n\r\nexport function Buttons(): React.ReactElement {\r\n const leftBtnClasses = 'btn btn-outline-secondary mr-2';\r\n const rightBtnClasses = 'btn btn-light float-right ml-2';\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='mt-3'>\r\n <IconButton svgName={cvSvgLibrary.Plus} className={leftBtnClasses}><Text phrase='createInteractive' /></IconButton>\r\n <IconButton svgName={cvSvgLibrary.Plus} className={leftBtnClasses}><Text phrase='createClip' /></IconButton>\r\n\r\n <IconButton svgName={cvSvgLibrary.More} className={rightBtnClasses}><Text phrase='more' /></IconButton>\r\n <IconButton svgName={cvSvgLibrary.Share} className={rightBtnClasses}><Text phrase='share' /></IconButton>\r\n <IconButton svgName={cvSvgLibrary.AddToPlaylists} className={rightBtnClasses}><Text phrase='addToPlaylist' /></IconButton>\r\n <IconButton svgName={cvSvgLibrary.Plus} className={rightBtnClasses}><Text phrase='favourite' /></IconButton>\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { FunctionHelper, Core } from '@clickview/common';\r\nimport { BackButton, Video, Text, VideoList, Series, VideoActionsContext } from '@clickview/shared';\r\n\r\nimport { Resources, VideoDetailsWithScrollbar } from 'shared/components';\r\nimport { PlayerPosition, PlayerContext } from 'shared/contexts';\r\nimport { useOnScroll, useOnResize } from 'shared/hooks';\r\n\r\nimport { AppChannels, Actions } from 'shared/constants';\r\nimport { VideoTitle } from './VideoTitle';\r\nimport { Badges } from './Badges';\r\nimport { Buttons } from './Buttons';\r\nimport { getVideoActionAppLink } from 'shared/utils';\r\n\r\nconst namespace = 'shared.playPage';\r\n\r\nconst getVideoAppLink = (video: Video): Core.AppLink => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO,\r\n args: [video.id]\r\n});\r\n\r\nconst getSeriesAppLink = (series: Series): Core.AppLink => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: [series.id]\r\n});\r\n\r\nfunction getUpdate(\r\n placeholder: React.MutableRefObject<HTMLElement>,\r\n setPosition: (position: PlayerPosition) => void\r\n): () => void {\r\n return () => {\r\n if (!placeholder.current)\r\n return;\r\n\r\n const rect = placeholder.current.getBoundingClientRect();\r\n const left = window.pageXOffset || document.documentElement.scrollLeft;\r\n const top = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n /**\r\n * Only show floating player\r\n * if the normal player is no longer in view\r\n */\r\n if (rect.top < -rect.height) {\r\n setPosition(null);\r\n return;\r\n }\r\n\r\n setPosition({ top: top + rect.top, left: left + rect.left, width: rect.width });\r\n };\r\n}\r\n\r\ninterface PlayPageProps {\r\n video: Video;\r\n relatedVideos: Video[];\r\n}\r\n\r\nexport function PlayPage(props: PlayPageProps): JSX.Element {\r\n const { video, relatedVideos } = props;\r\n\r\n const { setViewportPosition, setIsOnPlayPage } = React.useContext(PlayerContext);\r\n /**\r\n * Get reference to the placeholder domElement\r\n */\r\n const placeholder = React.useRef(null);\r\n const placeholderRef = React.useCallback(node => {\r\n if (!node)\r\n return;\r\n\r\n placeholder.current = node;\r\n update();\r\n }, []);\r\n\r\n /**\r\n * Memoize so we don't call throttle repeatedly\r\n */\r\n const update = React.useMemo(() => FunctionHelper.throttle(getUpdate(placeholder, setViewportPosition), 100, {\r\n leading: true,\r\n trailing: true\r\n }), []);\r\n\r\n /**\r\n * Bind update to 'scroll' and 'resize'\r\n */\r\n useOnScroll(update);\r\n useOnResize(update);\r\n\r\n /**\r\n * Clear the position when this component is closed\r\n */\r\n React.useEffect(() => {\r\n\r\n setIsOnPlayPage(true);\r\n return () => {\r\n setViewportPosition(null);\r\n setIsOnPlayPage(false);\r\n };\r\n }, []);\r\n\r\n return (\r\n <VideoActionsContext.Provider value={{ getActionAppLink: getVideoActionAppLink }}>\r\n <div className='d-flex justify-content-between'>\r\n <BackButton\r\n appLink={{\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.HOME\r\n }}\r\n backToName='Home'\r\n />\r\n <button className='btn btn-light'><Text namespace={namespace} phrase='classroomMode' /></button>\r\n </div>\r\n <div className='embed-responsive embed-responsive-16by9 my-3' ref={placeholderRef}></div>\r\n <VideoTitle video={video} />\r\n <Badges video={video} />\r\n <Buttons />\r\n <hr />\r\n <VideoDetailsWithScrollbar video={video} />\r\n <Resources video={video} className='mt-3' />\r\n {!!relatedVideos && <>\r\n <h2 className={'h4 mt-3'}><Text namespace={namespace} phrase={'relatedVideos'} /></h2>\r\n <VideoList\r\n videos={relatedVideos}\r\n getSeriesAppLink={getSeriesAppLink}\r\n getVideoAppLink={getVideoAppLink}\r\n />\r\n </>}\r\n </VideoActionsContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\nimport { Core } from '@clickview/common';\r\nimport { Video, SeriesLink } from '@clickview/shared';\r\nimport { AppChannels, Actions } from 'shared/constants';\r\n\r\ninterface VideoTitleProps {\r\n video: Video;\r\n}\r\n\r\nexport function VideoTitle(props: VideoTitleProps): React.ReactElement {\r\n const { video } = props;\r\n\r\n const tempAppLink: Core.AppLink = {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: video.series ? [video.series.id] : []\r\n };\r\n\r\n return (\r\n <h1 className='h3'>\r\n {!!video.series && <SeriesLink video={video} appLink={tempAppLink} />}\r\n {video.name}\r\n </h1>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Video } from '@clickview/shared';\r\n\r\ninterface VideoResourcesProps {\r\n video: Video;\r\n className?: string;\r\n}\r\n\r\nexport function Resources(props: VideoResourcesProps): React.ReactElement {\r\n const { video } = props;\r\n\r\n if (!video.resources || !video.resources.data || !video.resources.data.length)\r\n return <></>;\r\n\r\n return (\r\n <div className={props.className}>\r\n <h2 className='h4'>Resources</h2>\r\n {video.resources.data.map((r, i) => <div key={i}>{r.name}</div>)}\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { CurrentUser, LanguageNamespaceContext, Text, AppLink } from '@clickview/shared';\r\nimport { Button } from 'react-bootstrap';\r\n\r\nimport styles from './user-options.scss';\r\n\r\ninterface UserOptionsProps {\r\n user: CurrentUser;\r\n}\r\n\r\n/**\r\n * TODO: Implement user options properly;\r\n */\r\nexport function UserOptions(props: UserOptionsProps): React.ReactElement {\r\n const { user } = props;\r\n\r\n if (!user)\r\n return <Button variant={'primary'} className='mx-2 px-2'>Log in</Button>;\r\n\r\n const { avatar, displayName, customerName } = user;\r\n\r\n /**\r\n * We're not using react-bootstrap dropdown here because we need a custom toggle\r\n * and it doesn't seem like it's worth the hassle https://react-bootstrap.github.io/components/dropdowns/\r\n */\r\n return (\r\n <LanguageNamespaceContext.Provider value={'shared.userOptions'}>\r\n <div className='cursor-pointer mx-2 px-2 position-relative' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>\r\n <span className={styles.avatar} style={{ backgroundImage: `url('${avatar}')` }}>\r\n &nbsp;\r\n </span>\r\n <nav className={`dropdown-menu dropdown-arrow dropdown-menu-right ${styles.dropdownMenu}`}>\r\n <div className='dropdown-item'>\r\n <div className='m-0'><strong>{displayName}</strong></div>\r\n <div className='m-0 text-muted'>{customerName}</div>\r\n </div>\r\n <AppLink className='dropdown-item' appLink={null}>\r\n <span className={`${styles.iconPlaceholder} d-inline-block mr-2 align-middle`}></span>\r\n <Text phrase={'myProfile'} />\r\n </AppLink>\r\n <AppLink className='dropdown-item' appLink={null}>\r\n <span className={`${styles.iconPlaceholder} d-inline-block mr-2 align-middle`}></span>\r\n <Text phrase={'myPreferences'} />\r\n </AppLink>\r\n <AppLink className='dropdown-item' appLink={null}>\r\n <span className={`${styles.iconPlaceholder} d-inline-block mr-2 align-middle`}></span>\r\n <Text phrase={'signOut'} />\r\n </AppLink>\r\n </nav>\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"cv--avatar--3g8JZ\",\"iconPlaceholder\":\"cv--iconPlaceholder--2hr_4\"};","import * as React from 'react';\r\nimport Scrollbars from 'react-custom-scrollbars';\r\nimport { LanguageService } from '@clickview/common';\r\nimport { Video, BaseObject, BasePaginatedCollection, TagCollection, LanguageNamespaceContext, Text } from '@clickview/shared';\r\n\r\nconst namespace = 'shared.videoDetails';\r\n\r\ninterface TagListProps {\r\n tags: TagCollection;\r\n className?: string;\r\n}\r\n\r\nfunction TagList(props: TagListProps): React.ReactElement {\r\n const { tags, className } = props;\r\n\r\n const hasTags = tags && tags.data && tags.data.length;\r\n\r\n if (!hasTags)\r\n return <></>;\r\n\r\n return (\r\n <div className={className}>\r\n <Text phrase='tags' /> {tags.data.map((t, i) =>\r\n <span className='badge mr-1 p-1 badge-light' key={i}>{t.name}</span>)}\r\n </div>\r\n );\r\n}\r\n\r\ninterface CommaListProps {\r\n label: string;\r\n items: BasePaginatedCollection<BaseObject>;\r\n className?: string;\r\n}\r\n\r\nfunction CommaList(props: CommaListProps): React.ReactElement {\r\n const { label, items, className } = props;\r\n\r\n const hasItems = items && items.data && items.data.length;\r\n\r\n if (!hasItems)\r\n return <></>;\r\n\r\n const commaSeperated = items.data.map(i => i.name).join(', ');\r\n\r\n return (\r\n <div className={className}>{label}: {commaSeperated}</div>\r\n );\r\n}\r\n\r\ninterface VideoDetailsProps {\r\n video: Video;\r\n}\r\n\r\nfunction VideoDetails(props: VideoDetailsProps): React.ReactElement {\r\n const { video } = props;\r\n const { tags, rating, productionYear, productionCompanies, distributors } = video;\r\n\r\n const ratingCode = rating && rating.code;\r\n\r\n /**\r\n * TODO: Use language service\r\n */\r\n return (\r\n <>\r\n <h2 className='h4'><Text phrase='details' /></h2>\r\n <div className='row no-gutters'>\r\n <div className='col-3'>\r\n {ratingCode && <div className='pb-2'><Text phrase='rating' options={{ code: ratingCode }} /></div>}\r\n {productionYear && <div className='pb-2'><Text phrase='productionYear' options={{ year: productionYear }} /></div>}\r\n </div>\r\n <div className='col-9'>\r\n <CommaList label={LanguageService.getPhrase(namespace, 'productionCompanies')} items={productionCompanies} className='pb-2' />\r\n <CommaList label={LanguageService.getPhrase(namespace, 'distributors')} items={distributors} className='pb-2' />\r\n <TagList tags={tags} className='pb-2' />\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\ninterface DescriptionProperties {\r\n description: string;\r\n}\r\n\r\nfunction Description(props: DescriptionProperties): React.ReactElement {\r\n const { description } = props;\r\n\r\n if (!description)\r\n return <></>;\r\n\r\n /**\r\n * TODO: Linkify the description\r\n */\r\n return (\r\n <>\r\n <h2 className='h4'><Text phrase='description' /></h2>\r\n <p>{description}</p>\r\n </>\r\n );\r\n}\r\n\r\ninterface DetailsPaneProps {\r\n video: Video;\r\n}\r\n\r\nexport function VideoDetailsWithScrollbar(props: DetailsPaneProps): React.ReactElement {\r\n const { video } = props;\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='rounded border px-3'>\r\n <Scrollbars autoHeight autoHeightMax={250}>\r\n <div className='py-3'>\r\n <VideoDetails video={video} />\r\n <Description description={video.description} />\r\n </div>\r\n </Scrollbars>\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\n\r\ninterface WebPlayerProps {\r\n className?: string;\r\n webPlayerHost: string;\r\n id: string;\r\n}\r\n\r\nexport function WebPlayer(props: WebPlayerProps): React.ReactElement {\r\n const url = `${props.webPlayerHost}home/ev?vid=${props.id}`;\r\n\r\n return (\r\n <div className={`embed-responsive ${props.className ? props.className : ''}`}>\r\n <iframe\r\n src={url}\r\n className='embed-responsive-item'\r\n allowFullScreen\r\n allow='autoplay; fullscreen'/>\r\n </div>\r\n );\r\n}","import { Actions as PlaylistActions } from '@clickview/playlists';\r\nimport { Actions as DashboardActions } from '@clickview/dashboard';\r\n\r\nexport const Actions = {\r\n Default: {\r\n HOME: 'index',\r\n MY_UPLOADS: 'my:uploads',\r\n SERIES: 'series',\r\n PLAY_VIDEO: 'play:video',\r\n FAVORITE_VIDEOS: 'favorite:videos'\r\n },\r\n\r\n Playlists: {\r\n HOME: PlaylistActions.Playlists.HOME,\r\n PLAYLIST: PlaylistActions.Playlists.PLAYLIST,\r\n NEW_PLAYLIST: PlaylistActions.Playlists.NEW_PLAYLIST,\r\n EDIT_PLAYLIST: PlaylistActions.Playlists.EDIT_PLAYLIST,\r\n DELETE_PLAYLIST: PlaylistActions.Playlists.DELETE_PLAYLIST,\r\n ADD_TO_PLAYLIST: PlaylistActions.Playlists.ADD_TO_PLAYLIST,\r\n REMOVE_VIDEO_FROM_PLAYLIST: PlaylistActions.Playlists.REMOVE_VIDEO_FROM_PLAYLIST\r\n },\r\n\r\n Dashboard: {\r\n HOME: DashboardActions.Dashboard.HOME,\r\n DASHBOARD: DashboardActions.Dashboard.DASHBOARD,\r\n VIDEO: DashboardActions.Dashboard.VIDEO\r\n },\r\n\r\n Classifications: {\r\n CLASSIFICATION: DashboardActions.Classifications.CLASSIFICATION,\r\n PLAYLIST: DashboardActions.Classifications.PLAYLIST,\r\n VIDEO: DashboardActions.Classifications.VIDEO,\r\n SERIES: DashboardActions.Classifications.SERIES\r\n },\r\n\r\n Notifications: {\r\n HOME: 'index'\r\n }\r\n};","export const LayoutRegions = {\r\n CONTENT: 'content',\r\n POPUP: 'popup',\r\n ALERT: 'alert'\r\n};","export const Layouts = {\r\n TEACHER_LAYOUT: 'TeacherLayout',\r\n EMBED_LAYOUT: 'EmbedLayout'\r\n};","export const AppChannels = {\r\n DEFAULT: 'default:application',\r\n PLAYLISTS: 'lite:playlists:application',\r\n DASHBOARD: 'lite:dashboard:application',\r\n SUBJECT: 'lite:subject:application',\r\n EMBED: 'embed:application',\r\n NOTIFICATIONS: 'notifications:application'\r\n};","const ObjectWithStatements = {\r\n VIDEO: 'series,season,rating,producers,distributors,resources,tags,productionCompanies,directors,links,thumbnail'\r\n};\r\n\r\nconst CollectionWithStatements = {\r\n VIDEO_COLLECTION: `{orderbydesc:timestamp,page:1,limit:25}thumbnail,tags,rating,series,season`\r\n};\r\n\r\nexport const WithStatements = {\r\n ...ObjectWithStatements,\r\n ...CollectionWithStatements\r\n};","export * from './LiteActions';\r\nexport * from './LiteRadioChannels';\r\nexport * from './LiteLayoutRegions';\r\nexport * from './LiteLayouts';\r\nexport * from './WithStatements';","export * from './player/PlayerContext';","import * as React from 'react';\r\nimport { Flight } from '@clickview/common';\r\nimport { Config, Video } from '@clickview/shared';\r\nimport { ConfigRequests } from 'shared/flight-requests';\r\n\r\nexport interface PlayerPosition {\r\n top: number;\r\n left: number;\r\n width: number;\r\n}\r\n\r\ninterface PlayerContextProps {\r\n webPlayerUrl: string;\r\n\r\n /**\r\n * Video that the player is currently plaing\r\n */\r\n video?: Video;\r\n setVideo: (video: Video) => void;\r\n\r\n /**\r\n * Position of the video player when we're on a play page\r\n * no position means we're floating on the bottom right of the screen\r\n */\r\n viewportPosition: PlayerPosition;\r\n setViewportPosition: (position: PlayerPosition) => void;\r\n\r\n /**\r\n * Tells the floating player to not render when it has\r\n * as video but no position. This prevents\r\n * a bug where the floating player flashes briefly when the\r\n * PlayView has set a video but not yet set a position\r\n */\r\n isOnPlayPage: boolean;\r\n setIsOnPlayPage: (isOnPlayPage: boolean) => void;\r\n}\r\n\r\nexport const PlayerContext = React.createContext<PlayerContextProps>(undefined);\r\n\r\nexport function PlayerContextProvider(props: React.PropsWithChildren<{}>): React.ReactElement {\r\n const { children } = props;\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n\r\n const [ video, setVideo ] = React.useState<Video>(null);\r\n const [ viewportPosition, setViewportPosition ] = React.useState<PlayerPosition>(null);\r\n const [ isOnPlayPage, setIsOnPlayPage ] = React.useState<boolean>(false);\r\n\r\n const context = {\r\n webPlayerUrl: config.data ? config.data.webPlayerUrl : '',\r\n video,\r\n setVideo,\r\n viewportPosition,\r\n setViewportPosition,\r\n isOnPlayPage,\r\n setIsOnPlayPage\r\n };\r\n\r\n return (\r\n <PlayerContext.Provider value={context}>\r\n {children}\r\n </PlayerContext.Provider>\r\n );\r\n}","import { Flight } from '@clickview/common';\r\n\r\nconst config: Flight.Request = {\r\n url: '/api/config',\r\n key: 'config'\r\n};\r\n\r\nexport const ConfigRequests = {\r\n config\r\n};","import { Flight } from '@clickview/common';\r\nimport { WithStatements } from 'shared/constants';\r\n\r\nconst endpoints = {\r\n series: (id: string) => `/api/domain/v2/objects/${id}`,\r\n seriesVideos: (id: string, cursor: string) =>\r\n `/api/domain/v2/objects/${id}/videos?query=${WithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`,\r\n\r\n breadcrumbs: (id: string) => `/api/domain/v1/subjects/${id}/path`\r\n};\r\n\r\nexport const SeriesRequests = {\r\n series(id: string): Flight.Request {\r\n return {\r\n url: endpoints.series(id),\r\n key: `series:${id}`\r\n };\r\n },\r\n seriesVideos(id: string, cursor: string): Flight.Request {\r\n return {\r\n url: endpoints.seriesVideos(id, cursor),\r\n key: `series:${id}:videos:${cursor}`\r\n };\r\n },\r\n breadcrumbs(classificationId: string): Flight.Request {\r\n if (!classificationId)\r\n return;\r\n\r\n return {\r\n url: endpoints.breadcrumbs(classificationId),\r\n key: `series:${classificationId}:breadcrumbs`\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { Flight } from '@clickview/common';\r\nimport { WithStatements } from 'shared/constants';\r\n\r\nexport const ShareRequests = {\r\n sharedResource(shortCode: string): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/share/${shortCode}?query=${WithStatements.VIDEO}`,\r\n key: `shared:resource:${shortCode}`\r\n };\r\n }\r\n};","import { Flight } from '@clickview/common';\r\n\r\nconst currentUser: Flight.Request = {\r\n url: 'api/currentUser',\r\n key: 'currentuser'\r\n};\r\n\r\nexport const UserRequests = {\r\n currentUser\r\n};","import { Flight } from '@clickview/common';\r\nimport { WithStatements } from 'shared/constants';\r\n\r\nconst endpoints = {\r\n video: (id: string) => `/api/domain/v2/objects/${id}?query=${WithStatements.VIDEO}`,\r\n\r\n // workspace: () => `api/domain/v2/me/workspace?query=${WithStatements.WORKSPACE_VIDEOS}${addCursor(cursor)}`,\r\n workspace: (cursor: string) =>\r\n `api/domain/v2/objects/8961024/videos?query=${WithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`,\r\n\r\n // TODO: Replace with proper endpoint\r\n favoriteVideos: (cursor: string) =>\r\n `/api/domain/v2/objects/9160822/videos?query=${WithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`\r\n};\r\n\r\nexport const VideoRequests = {\r\n video(id: string): Flight.Request {\r\n return {\r\n url: endpoints.video(id),\r\n key: `videos:${id}`\r\n };\r\n },\r\n\r\n workspace(cursor: string): Flight.Request {\r\n return {\r\n url: endpoints.workspace(cursor),\r\n key: `workspace:${cursor}`\r\n };\r\n },\r\n\r\n favoriteVideos(cursor: string): Flight.Request {\r\n return {\r\n url: endpoints.favoriteVideos(cursor),\r\n key: `favorite:videos:${cursor}`\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","export * from './UserRequests';\r\nexport * from './ConfigRequests';\r\nexport * from './VideoRequests';\r\nexport * from './SeriesRequests';","export * from './useWindowListeners';","import * as React from 'react';\r\n\r\nfunction createUseWindowListener(event: string): any {\r\n return function useWindowListener(callback: () => void): void {\r\n /**\r\n * Memoize the callback so it's the same function\r\n * when we call removeEventListener\r\n */\r\n const memoCallback = React.useCallback(callback, []);\r\n\r\n React.useEffect(() => {\r\n window.addEventListener(event, memoCallback);\r\n return () => window.removeEventListener(event, memoCallback);\r\n }, []);\r\n };\r\n}\r\n\r\nexport const useOnScroll = createUseWindowListener('scroll');\r\nexport const useOnResize = createUseWindowListener('resize');\r\n\r\n","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"<div class=\\\"layout-region\\\"></div>\";\n},\"useData\":true});","import * as React from 'react';\r\nimport { Store } from 'redux';\r\nimport { Provider } from 'react-redux';\r\n\r\nexport interface EmbedLayoutComponentProps {\r\n store: Store;\r\n contentChild?: React.ReactNode;\r\n}\r\n\r\nfunction EmbedLayoutComponent(props: EmbedLayoutComponentProps): JSX.Element {\r\n const { contentChild } = props;\r\n\r\n return (\r\n <>\r\n {contentChild}\r\n </>\r\n );\r\n}\r\n\r\nfunction WrapLayoutWithProviders(props: EmbedLayoutComponentProps): JSX.Element {\r\n const { store } = props;\r\n\r\n return (\r\n <Provider store={store}>\r\n <EmbedLayoutComponent {...props} />\r\n </Provider>\r\n );\r\n}\r\n\r\nexport { WrapLayoutWithProviders as EmbedLayoutComponent };","import * as React from 'react';\r\nimport { ReactLayoutView, HashObject } from '@clickview/common';\r\n\r\nimport { Layouts, LayoutRegions } from 'shared/constants';\r\n\r\nimport { EmbedLayoutComponent, EmbedLayoutComponentProps } from './EmbedLayoutComponent';\r\nimport EmbedLayoutTemplate from './EmbedLayout.hbs';\r\n\r\n\r\nexport class EmbedLayoutView extends ReactLayoutView {\r\n protected childComponents: { [index: string]: React.ReactNode} = {};\r\n\r\n public get title(): boolean {\r\n return false;\r\n }\r\n\r\n public get name(): string {\r\n return 'EmbedLayoutView';\r\n }\r\n\r\n public get template(): any {\r\n return EmbedLayoutTemplate;\r\n }\r\n\r\n public static getCacheKey(): string {\r\n return Layouts.EMBED_LAYOUT;\r\n }\r\n\r\n public regions(): HashObject {\r\n return {\r\n layout: {\r\n el: '.layout-region',\r\n replaceEl: true\r\n }\r\n };\r\n }\r\n\r\n private getChildComponents(): EmbedLayoutComponentProps {\r\n return {\r\n contentChild: this.childComponents[LayoutRegions.CONTENT],\r\n store: this.options.store\r\n };\r\n }\r\n\r\n protected unsetRegion(region: string): void {\r\n delete this.childComponents[region];\r\n\r\n this.renderLayout();\r\n }\r\n\r\n public closePopup(): void {\r\n this.unsetRegion(LayoutRegions.POPUP);\r\n }\r\n\r\n public showChildView(region: string, component: React.ReactElement): void {\r\n this.childComponents[region] = component;\r\n\r\n this.renderLayout();\r\n }\r\n\r\n public renderLayout(): void {\r\n super.showChildView('layout', <EmbedLayoutComponent {...this.getChildComponents()} />);\r\n }\r\n}","export * from './teacher-layout/TeacherLayoutView';\r\nexport * from './embed-layout/EmbedLayoutView';","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"<div class=\\\"layout-region position-relative\\\"></div>\";\n},\"useData\":true});","import * as React from 'react';\r\nimport { Store } from 'redux';\r\nimport { Provider } from 'react-redux';\r\n\r\nimport { useMediaQuery, MediaQueryStrings } from '@clickview/shared';\r\n\r\nimport { HeaderView, LeftNavView, LeftNavState } from 'shared/views';\r\nimport { PlayerContextProvider } from 'shared/contexts';\r\nimport { FloatingPlayer } from 'shared/components';\r\n\r\nimport styles from './teacher-layout.scss';\r\n\r\ninterface DerivedNavState {\r\n state: LeftNavState;\r\n showMask: boolean;\r\n contentClass: string;\r\n}\r\n\r\nfunction getDerivedNavState(\r\n collapse: boolean, isMobile: boolean, isIPad: boolean\r\n): DerivedNavState {\r\n if (isMobile) {\r\n return {\r\n state: collapse ? LeftNavState.Hidden : LeftNavState.Open,\r\n showMask: !collapse,\r\n contentClass: styles.hiddenNavContent\r\n };\r\n }\r\n\r\n if (isIPad) {\r\n return {\r\n state: collapse ? LeftNavState.Collapsed : LeftNavState.Open,\r\n showMask: !collapse,\r\n contentClass: styles.collapsedNavContent\r\n };\r\n }\r\n\r\n return {\r\n state: collapse ? LeftNavState.Collapsed : LeftNavState.Open,\r\n showMask: false,\r\n contentClass: collapse ? styles.collapsedNavContent : styles.openNavContent\r\n };\r\n}\r\n\r\nexport interface TeacherLayoutComponentProps {\r\n showNav: boolean;\r\n\r\n contentChild?: React.ReactNode;\r\n popupChild?: React.ReactNode;\r\n alertChild?: React.ReactNode;\r\n\r\n store: Store;\r\n}\r\n\r\nconst TeacherLayoutComponent = (props: TeacherLayoutComponentProps): React.ReactElement => {\r\n const { showNav, contentChild, popupChild, alertChild } = props;\r\n\r\n const [ collapse, setCollapse ] = React.useState(false);\r\n\r\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\r\n const isIPad = useMediaQuery(MediaQueryStrings.SM);\r\n const isLargeDesktop = useMediaQuery(MediaQueryStrings.XLG);\r\n\r\n const toggleLeftNav = () => {\r\n setCollapse(!collapse);\r\n };\r\n\r\n React.useEffect(() => {\r\n setCollapse(!isLargeDesktop);\r\n }, [isLargeDesktop]);\r\n\r\n const navState = getDerivedNavState(collapse, isMobile, isIPad);\r\n\r\n return (\r\n <>\r\n <HeaderView toggleLeftNav={toggleLeftNav} showLeftNavToggle={showNav} />\r\n {showNav && <LeftNavView navState={navState.state}/>}\r\n <div className={`${styles.content} ${navState.contentClass}`}>\r\n <div className='container'>\r\n {contentChild}\r\n </div>\r\n </div>\r\n {popupChild}\r\n {alertChild}\r\n {navState.showMask && <div className={`modal-backdrop show ${styles.mask}`}></div>}\r\n <FloatingPlayer />\r\n </>\r\n );\r\n};\r\n\r\nfunction WrapLayoutWithProviders(props: TeacherLayoutComponentProps): React.ReactElement {\r\n return (\r\n <Provider store={props.store}>\r\n <PlayerContextProvider>\r\n <TeacherLayoutComponent {...props} />\r\n </PlayerContextProvider>\r\n </Provider>\r\n );\r\n}\r\n\r\nexport { WrapLayoutWithProviders as TeacherLayoutComponent };","import * as React from 'react';\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { Core, ReactLayoutView } from '@clickview/common';\r\n\r\nimport { Layouts, LayoutRegions } from 'shared/constants';\r\n\r\nimport { TeacherLayoutComponent, TeacherLayoutComponentProps } from './TeacherLayoutComponent';\r\nimport TeacherLayoutTemplate from './TeacherLayout.hbs';\r\n\r\nexport interface TeacherLayoutViewOptions extends Core.LayoutViewOptions {\r\n showNav: boolean;\r\n}\r\n\r\nexport class TeacherLayoutView extends ReactLayoutView {\r\n protected options: TeacherLayoutViewOptions;\r\n protected childComponents: { [index: string]: React.ReactNode} = {};\r\n\r\n constructor(options?: TeacherLayoutViewOptions) {\r\n super(options);\r\n }\r\n\r\n public get title(): boolean {\r\n return false;\r\n }\r\n\r\n public get name(): string {\r\n return 'TeacherLayoutView';\r\n }\r\n\r\n public get template(): any {\r\n return TeacherLayoutTemplate;\r\n }\r\n\r\n public static getCacheKey(options: TeacherLayoutViewOptions): string {\r\n return `${Layouts.TEACHER_LAYOUT}:${options.showNav}`;\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n layout: {\r\n el: '.layout-region',\r\n replaceEl: true\r\n }\r\n };\r\n }\r\n\r\n private getChildComponents(): TeacherLayoutComponentProps {\r\n return {\r\n showNav: this.options.showNav,\r\n contentChild: this.childComponents[LayoutRegions.CONTENT],\r\n popupChild: this.childComponents[LayoutRegions.POPUP],\r\n alertChild: this.childComponents[LayoutRegions.ALERT],\r\n store: this.options.store\r\n };\r\n }\r\n\r\n protected unsetRegion(region: string): void {\r\n delete this.childComponents[region];\r\n\r\n this.renderLayout();\r\n }\r\n\r\n public closePopup(): void {\r\n this.unsetRegion(LayoutRegions.POPUP);\r\n }\r\n\r\n public showChildView(region: string, component: React.ReactElement): void {\r\n this.childComponents[region] = component;\r\n\r\n this.renderLayout();\r\n }\r\n\r\n public renderLayout(): void {\r\n super.showChildView('layout', <TeacherLayoutComponent {...this.getChildComponents()} />);\r\n }\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"cv--content--1SX2l\",\"collapsedNavContent\":\"cv--collapsedNavContent--3LJFz\",\"openNavContent\":\"cv--openNavContent--34Pt4\",\"hiddenNavContent\":\"cv--hiddenNavContent--1gZ0J\",\"mask\":\"cv--mask--mE2Dq\"};","import { Store } from 'redux';\r\nimport { Radio } from 'backbone';\r\n\r\nimport { Flight, Core } from '@clickview/common';\r\nimport { BaseLibraryDataService, SharedDataServices, SharedWithStatements, Folder, LibraryAPIResponse } from '@clickview/shared';\r\n\r\nconst requests = {\r\n getLibraries: (success?: (data: LibraryAPIResponse[]) => void): Flight.Request => {\r\n return {\r\n url: '/api/domain/v2/me/libraries?type=customlibrary&type=unpublishedcustomlibrary',\r\n key: 'libraries',\r\n success,\r\n normalize: false\r\n };\r\n },\r\n\r\n getFolder: (id: string, success?: (data: Core.Model) => void): Flight.Request => {\r\n return {\r\n url: `/api/domain/v2/objects/${id}?query=${SharedWithStatements.FOLDER}`,\r\n key: `folder:${id}`,\r\n success\r\n };\r\n }\r\n};\r\n\r\ninterface FlightLibraryDataServiceOptions {\r\n store: Store;\r\n}\r\n\r\nexport class FlightLibraryDataService implements BaseLibraryDataService {\r\n private store: Store;\r\n\r\n constructor(options: FlightLibraryDataServiceOptions) {\r\n this.store = options.store;\r\n }\r\n\r\n public get name(): string {\r\n return SharedDataServices.LIBRARY;\r\n }\r\n\r\n public get channelName(): string {\r\n return 'library:data:service';\r\n }\r\n\r\n public getLibraries(callback?: (data: Core.Collection) => void): Core.Collection {\r\n const request = requests.getLibraries((libraries: LibraryAPIResponse[]) => {\r\n Radio.channel(this.channelName).trigger('libraries:sync', libraries);\r\n\r\n callback && callback(new Core.Collection(libraries));\r\n });\r\n\r\n const flightResponse = Flight.getResponse<LibraryAPIResponse[]>(this.store.getState(), request.key);\r\n\r\n if (flightResponse.shouldFetch)\r\n Flight.fetch(this.store.dispatch, request);\r\n\r\n return flightResponse.data && new Core.Collection(flightResponse.data.map(res => res.data));\r\n }\r\n\r\n public getFolder(id: string, callback?: (data: Core.Model) => void): Core.Model {\r\n const request = requests.getFolder(id, (folder: Folder) => callback && callback(new Core.Model(folder)));\r\n const flightResponse = Flight.getResponse<Folder>(this.store.getState(), request.key);\r\n\r\n if (flightResponse.shouldFetch)\r\n Flight.fetch(this.store.dispatch, request);\r\n\r\n return flightResponse.data && new Core.Model(flightResponse.data);\r\n }\r\n}","import { Store } from 'redux';\r\n\r\nimport { Flight, Core } from '@clickview/common';\r\nimport { BaseSeriesDataService, SharedDataServices, SharedWithStatements, SharedDataChannels, Series } from '@clickview/shared';\r\n\r\nconst requests = {\r\n getOne(id: string, success?: (data: Series) => void): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${id}?query=${SharedWithStatements.SERIES}`,\r\n key: `series:${id}`,\r\n success\r\n };\r\n }\r\n};\r\n\r\ninterface FlightSeriesDataServiceOptions {\r\n store: Store;\r\n}\r\n\r\nexport class FlightSeriesDataService implements BaseSeriesDataService {\r\n private store: Store;\r\n\r\n constructor(options: FlightSeriesDataServiceOptions) {\r\n this.store = options.store;\r\n }\r\n\r\n public get name(): string {\r\n return SharedDataServices.SERIES;\r\n }\r\n\r\n public get channelName(): string {\r\n return SharedDataChannels.SERIES;\r\n }\r\n\r\n public getSeries(id: string, callback?: (data: Core.Model) => void): Core.Model {\r\n const request = requests.getOne(id, (series: Series) => callback && callback(new Core.Model(series)));\r\n const flightResponse = Flight.getResponse<Series>(this.store.getState(), request.key);\r\n\r\n if (flightResponse.shouldFetch)\r\n Flight.fetch(this.store.dispatch, request);\r\n\r\n return flightResponse.data && new Core.Model(flightResponse.data);\r\n }\r\n}","export * from './FlightSeriesDataService';\r\nexport * from './FlightLibraryDataService';","import { Core } from '@clickview/common';\r\nimport { Video, VideoAction } from '@clickview/shared';\r\n\r\nimport { AppChannels } from 'shared/constants';\r\n\r\nexport function getVideoActionAppLink(video: Video, action: VideoAction): Core.AppLink {\r\n switch (action) {\r\n case VideoAction.AddToPlaylist:\r\n case VideoAction.Share:\r\n return { application: AppChannels.DEFAULT, action: 'index' };\r\n }\r\n}","export * from './LiteAppLinkUtils';","import * as React from 'react';\r\nimport { useRenderBackboneView, Core } from '@clickview/common';\r\n\r\ninterface BackboneWrapperViewProps {\r\n view: () => Core.View;\r\n className?: string;\r\n}\r\n\r\nexport function BackboneWrapperView({ view, className = '' }: BackboneWrapperViewProps): JSX.Element {\r\n const viewInstance = React.useMemo(view || (() => null), [view]);\r\n const ref = useRenderBackboneView(viewInstance, [viewInstance]);\r\n\r\n if (!view)\r\n return <></>;\r\n\r\n return <div ref={ref} className={className} />;\r\n}","import * as React from 'react';\r\n\r\nimport { Core, LanguageService, Flight } from '@clickview/common';\r\nimport {\r\n BannerHeader,\r\n VideoActionsContext,\r\n Config,\r\n VideoList,\r\n VideoCollection,\r\n Video,\r\n Series\r\n} from '@clickview/shared';\r\n\r\nimport { ConfigRequests, VideoRequests } from 'shared/flight-requests';\r\nimport { getVideoActionAppLink } from 'shared/utils';\r\n\r\nconst namespace = 'shared.favoriteVideos';\r\n\r\nconst getVideoAppLink = (video: Video): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [video.id]\r\n});\r\n\r\nconst getSeriesAppLink = (series: Series): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [series.id]\r\n});\r\n\r\ninterface FavoriteVideosViewProps {\r\n cursor?: string;\r\n}\r\n\r\nexport function FavoriteVideosView(props: FavoriteVideosViewProps): JSX.Element {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const favoriteVideos = Flight.useBasicFetch<VideoCollection>(VideoRequests.favoriteVideos(props.cursor));\r\n\r\n return (\r\n <VideoActionsContext.Provider value={{ getActionAppLink: getVideoActionAppLink }}>\r\n {!!config.data &&\r\n <BannerHeader\r\n heading={LanguageService.getPhrase(namespace, 'header')}\r\n banner={null}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n />\r\n }\r\n {!!favoriteVideos.data &&\r\n <VideoList\r\n videos={favoriteVideos.data.data}\r\n cursors={favoriteVideos.data.pagination.cursors}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n />\r\n }\r\n </VideoActionsContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\nimport { Flight, ViewModelService } from '@clickview/common';\r\nimport { SvgContainer, cvSvgLibrary, CurrentUser, IconButton, NotificationHeaderView, SearchBarView, Query } from '@clickview/shared';\r\n\r\nimport { UserOptions } from 'shared/components';\r\nimport { UserRequests } from 'shared/flight-requests';\r\nimport { BackboneWrapperView } from 'shared/views';\r\n\r\nimport styles from './header.scss';\r\n\r\nfunction ClickViewLogo(): React.ReactElement {\r\n return (\r\n <svg viewBox='0 0 434 71'>\r\n <g>\r\n <path fill='#000000' d='M114.44 56.57l3.5 3.5a32.87 32.87 0 0 1-25.16 11.26c-19.63 0-33.62-15.54-33.62-35.16C59.16 16.55 73.16 1 92.78 1a32.31 32.31 0 0 1 24.19 10.4l-3.6 3.3a27.32 27.32 0 0 0-20.59-8.74c-16.91 0-28.39 13.5-28.39 30.21s11.48 30.21 28.39 30.21a28.08 28.08 0 0 0 21.66-9.81zM126.64 1h4.55v70.22h-4.73L126.64 1zm17.3 10.6a3.7 3.7 0 1 1 0 7.4 3.7 3.7 0 0 1 0-7.4zm-2.41 15.07h4.81v44.56h-4.81V26.67zm48 33.15l3.33 3.15a21.8 21.8 0 0 1-17.31 8.61c-12.59 0-21.76-10-21.76-22.22 0-12.22 9.17-22.22 21.76-22.22a21.84 21.84 0 0 1 16.85 8l-3.43 3.06a17.15 17.15 0 0 0-13.42-6.3c-10.09 0-16.76 8.15-16.76 17.5s6.67 17.5 16.76 17.5a17.38 17.38 0 0 0 13.98-7.08zm14.99-9.33v20.74h-4.73V1.01h4.73v47.75l20.74-19.02h6.64l-21.56 19.84L234 71.23h-7.01l-22.47-20.74z'/>\r\n <path fill='#F8981D' d='M304.09 19.4a5.56 5.56 0 1 1 0-11.12 5.56 5.56 0 0 1 0 11.12zm-5.56 7.27h11.11v44.56h-11.11V26.67zm61.42 22.15c0 .81 0 2.42-.09 4h-31.75c.8 3.77 5.2 8.61 11.93 8.61a17.11 17.11 0 0 0 11.66-4.31l5.38 8.16a27.23 27.23 0 0 1-17 6.1c-12.92 0-22.88-9.87-22.88-22.34s9.06-22.33 21.35-22.33c11.62-.04 21.4 9.02 21.4 22.11zm-10.77-3.76c-.18-3.68-3.58-8.62-10.67-8.62-6.91 0-10.05 4.85-10.4 8.62h21.07zM385.92 71h-6.42l-19.64-44.37h13.97l9.16 23.98 9.72-23.98h8.31l9.63 23.98 9.16-23.98h13.97L414.24 71h-6.52l-10.85-23.7L385.92 71zm-120.22.35h-6L226.11 1.01h17.01l19.42 44.18 18.08-44.18h16.91L265.7 71.35zM0 1l41 35L0 71V1z'/>\r\n </g>\r\n </svg>\r\n );\r\n}\r\n\r\ninterface HeaderViewProps {\r\n toggleLeftNav: () => void;\r\n showLeftNavToggle: boolean;\r\n}\r\n\r\nexport function HeaderView(props: HeaderViewProps): React.ReactElement {\r\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser);\r\n\r\n return (\r\n <nav className={`navbar navbar-expanded sticky-top ${styles.nav} justify-content-start`}>\r\n {props.showLeftNavToggle &&\r\n <SvgContainer svgName={cvSvgLibrary.Handle} className={styles.hamburger} onClick={props.toggleLeftNav} />}\r\n\r\n <a className={`navbar-brand text-hide align-top ${styles.logoContainer} d-inline-block'`} href='/'>\r\n <ClickViewLogo />\r\n </a>\r\n\r\n <BackboneWrapperView className={`container ${styles.searchBarContainer}`} view={() => {\r\n return new SearchBarView({\r\n model: ViewModelService.get<Query>('search', { ctor: Query })\r\n });\r\n }} />\r\n\r\n <div className={`d-flex align-items-center pr-1 position-absolute ${styles.actionButtons}`}>\r\n {\r\n !!user.data &&\r\n <IconButton svgName={cvSvgLibrary.Upload} className='btn btn-secondary'>Upload a video</IconButton>\r\n }\r\n <BackboneWrapperView view={() => new NotificationHeaderView()} className='ml-2 pl-2' />\r\n\r\n <UserOptions user={user.data} />\r\n </div>\r\n </nav>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"nav\":\"cv--nav--3RLQ9\",\"logoContainer\":\"cv--logoContainer--UIlc9\",\"searchBar\":\"cv--searchBar--2E7RQ\",\"actionButtons\":\"cv--actionButtons--2HygL\",\"hamburger\":\"cv--hamburger--2BRko\",\"searchBarContainer\":\"cv--searchBarContainer--oX-Ph\"};","export * from './favorite-videos/FavoriteVideosView';\r\nexport * from './header/HeaderView';\r\nexport * from './left-nav/LeftNavView';\r\nexport * from './play/PlayView';\r\nexport * from './my-uploads/MyUploadsView';\r\nexport * from './series/SeriesView';\r\nexport * from './play-shared/PlaySharedView';\r\nexport * from './backbone-wrapper/BackboneWrapperView';","import * as React from 'react';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\n\r\nimport { Core, LanguageService } from '@clickview/common';\r\nimport { AppLink } from '@clickview/shared';\r\n\r\nimport { AppChannels, Actions } from 'shared/constants';\r\n\r\nimport styles from './left-nav.scss';\r\n\r\nconst namespace = 'shared.leftNav';\r\n\r\nexport enum LeftNavState {\r\n Open,\r\n Collapsed,\r\n Hidden\r\n}\r\n\r\ninterface LeftNavItemProps {\r\n name: string;\r\n appLink?: Core.AppLink;\r\n}\r\n\r\nconst LeftNavItem = (props: LeftNavItemProps): React.ReactElement => (\r\n <AppLink className={`${styles.leftNavAnchor} d-block my-3`} appLink={props.appLink}>\r\n <span className={`${styles.iconPlaceholder}`}></span>\r\n <span className={`${styles.leftNavText}`}>{props.name}</span>\r\n </AppLink>\r\n);\r\n\r\ninterface LeftNavViewProps {\r\n navState: LeftNavState;\r\n}\r\n\r\nexport function LeftNavView(props: LeftNavViewProps): React.ReactElement {\r\n if (props.navState === LeftNavState.Hidden)\r\n return <></>;\r\n\r\n const collapsed = props.navState === LeftNavState.Collapsed;\r\n\r\n const getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\n /**\r\n * TODO: Set up applinks for all of these pages\r\n */\r\n return (\r\n <nav className={`${styles.leftNav} ${collapsed ? styles.leftNavCollapsed : ''}`}>\r\n <Scrollbars height='100%'>\r\n <LeftNavItem name={getPhrase('home')} appLink={{\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.HOME\r\n }} />\r\n <LeftNavItem\r\n name={getPhrase('myPlaylists')}\r\n appLink={{ application: AppChannels.PLAYLISTS, action: Actions.Playlists.HOME }}\r\n />\r\n <LeftNavItem\r\n name={getPhrase('myUploads')}\r\n appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.MY_UPLOADS }}\r\n />\r\n <LeftNavItem name={getPhrase('following')} />\r\n <LeftNavItem\r\n name={getPhrase('favouritedVideos')}\r\n appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.FAVORITE_VIDEOS }}\r\n\r\n />\r\n {!collapsed &&\r\n <>\r\n <hr />\r\n <LeftNavItem name={getPhrase('watchHistory')} />\r\n <LeftNavItem name={getPhrase('myClassrooms')} />\r\n </>\r\n }\r\n </Scrollbars>\r\n </nav>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"leftNav\":\"cv--leftNav--3jVyN\",\"iconPlaceholder\":\"cv--iconPlaceholder--1ud9G\",\"leftNavAnchor\":\"cv--leftNavAnchor--3A_-8\",\"leftNavText\":\"cv--leftNavText--3qbRh\",\"leftNavCollapsed\":\"cv--leftNavCollapsed--2idO9\"};","import * as React from 'react';\r\n\r\nimport { Flight, LanguageService, Core } from '@clickview/common';\r\nimport {\r\n BannerHeader,\r\n Config,\r\n Text,\r\n VideoCollection,\r\n VideoList,\r\n Video,\r\n Series,\r\n ActionOptions,\r\n cvSvgLibrary,\r\n VideoActionsContext\r\n} from '@clickview/shared';\r\n\r\nimport { ConfigRequests, VideoRequests } from 'shared/flight-requests';\r\nimport { AppChannels } from 'shared/constants';\r\nimport { getVideoActionAppLink } from 'shared/utils';\r\n\r\n/**\r\n * This will need to change when this is moved into its own application directory.\r\n */\r\nconst namespace = 'shared.myUploads';\r\n\r\n// This must be a function as the LanguageService config won't be set until runtime.\r\nconst getHeaderActions = (): ActionOptions[] => ([\r\n {\r\n label: LanguageService.getPhrase(namespace, 'share'),\r\n appLink: { application: AppChannels.DEFAULT, action: 'index' },\r\n svgName: cvSvgLibrary.Share,\r\n className: 'btn btn-light',\r\n button: true\r\n },\r\n {\r\n label: LanguageService.getPhrase(namespace, 'edit'),\r\n appLink: { application: AppChannels.DEFAULT, action: 'index' },\r\n svgName: cvSvgLibrary.Edit,\r\n className: 'btn btn-light',\r\n button: true\r\n }\r\n]);\r\n\r\nconst getVideoAppLink = (video: Video): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [video.id]\r\n});\r\n\r\nconst getSeriesAppLink = (series: Series): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [series.id]\r\n});\r\n\r\ninterface MyUploadsViewProps {\r\n cursor?: string;\r\n}\r\n\r\nexport function MyUploadsView(props: MyUploadsViewProps): JSX.Element {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const workspace = Flight.useBasicFetch<VideoCollection>(VideoRequests.workspace(props.cursor));\r\n\r\n if (!config.data || !workspace.data)\r\n return <></>;\r\n\r\n return (\r\n <VideoActionsContext.Provider value={{ getActionAppLink: getVideoActionAppLink }}>\r\n <BannerHeader\r\n heading={LanguageService.getPhrase(namespace, 'header')}\r\n banner={null}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n actions={getHeaderActions()}\r\n />\r\n <div>\r\n <p className='pt-3'><Text namespace={namespace} phrase='description' /></p>\r\n\r\n <VideoList\r\n videos={workspace.data.data}\r\n cursors={workspace.data.pagination.cursors}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n />\r\n </div>\r\n </VideoActionsContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Flight } from '@clickview/common';\r\nimport { Video, VideoCollection } from '@clickview/shared';\r\n\r\nimport { PlayerContext } from 'shared/contexts';\r\nimport { PlayPage } from 'shared/components';\r\nimport { ShareRequests } from 'shared/flight-requests/ShareRequests';\r\nimport { VideoRequests } from 'shared/flight-requests';\r\n\r\ninterface PlayViewProps {\r\n shortCode: string;\r\n}\r\n\r\nexport function PlaySharedView(props: PlayViewProps): React.ReactElement {\r\n const { setVideo } = React.useContext(PlayerContext);\r\n\r\n const video = Flight.useBasicFetch<Video>(ShareRequests.sharedResource(props.shortCode));\r\n const relatedVideos = Flight.useBasicFetch<VideoCollection>(VideoRequests.favoriteVideos(null));\r\n\r\n React.useEffect(() => {\r\n if (!video.data)\r\n return;\r\n\r\n setVideo(video.data);\r\n }, [!!video.data]);\r\n\r\n if (!video.data)\r\n return <></>;\r\n\r\n return (\r\n <PlayPage\r\n video={video.data}\r\n relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}\r\n />\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Flight } from '@clickview/common';\r\nimport { Video, VideoCollection } from '@clickview/shared';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests';\r\nimport { PlayerContext } from 'shared/contexts';\r\nimport { PlayPage } from 'shared/components';\r\n\r\ninterface PlayViewProps {\r\n id: string;\r\n}\r\n\r\nexport function PlayView(props: PlayViewProps): React.ReactElement {\r\n const { setVideo } = React.useContext(PlayerContext);\r\n\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\r\n const relatedVideos = Flight.useBasicFetch<VideoCollection>(VideoRequests.favoriteVideos(null));\r\n\r\n React.useEffect(() => {\r\n setVideo(video.data);\r\n }, [!!video.data]);\r\n\r\n if (!video.data)\r\n return <></>;\r\n\r\n return (\r\n <PlayPage\r\n video={video.data}\r\n relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}\r\n />\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Flight, LanguageService, Core } from '@clickview/common';\r\nimport { BannerHeader, Series, Config, VideoList, Video, Breadcrumbs, BreadcrumbType, Classification, VideoCollection, ActionOptions, cvSvgLibrary, PartialBreadcrumbs, PartialVideoList, BaseObject } from '@clickview/shared';\r\n\r\nimport { SeriesRequests, ConfigRequests } from 'shared/flight-requests';\r\nimport { AppChannels, Actions } from 'shared/constants';\r\n\r\n/**\r\n * This will need to change when this is moved into its own application directory.\r\n */\r\nconst namespace = 'shared.series';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\n// Update this applink when we pull dashboard in\r\nconst getClassificationAppLink = (classification: Classification): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [classification.id]\r\n});\r\n\r\nconst getVideoAppLink = (video: Video): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [video.id]\r\n});\r\n\r\nconst getSeriesAppLink = (series: Series): Core.AppLink => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: [series.id]\r\n});\r\n\r\nconst getHeaderActions = (): ActionOptions[] => ([\r\n {\r\n label: LanguageService.getPhrase(namespace, 'share'),\r\n appLink: { application: AppChannels.DEFAULT, action: 'index' },\r\n svgName: cvSvgLibrary.Share,\r\n className: 'btn btn-light mr-2',\r\n button: true\r\n },\r\n {\r\n label: LanguageService.getPhrase(namespace, 'follow'),\r\n appLink: { application: AppChannels.DEFAULT, action: 'index' },\r\n svgName: cvSvgLibrary.Edit, // TODO: Change to \"Follow\" icon\r\n className: 'btn btn-light',\r\n button: true\r\n }\r\n]);\r\n\r\ninterface SeriesViewProps {\r\n id: string;\r\n classificationId?: string;\r\n cursor?: string;\r\n}\r\n\r\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const series = Flight.useBasicFetch<Series>(SeriesRequests.series(props.id));\r\n const seriesVideos = Flight.useBasicFetch<VideoCollection>(SeriesRequests.seriesVideos(props.id, props.cursor));\r\n\r\n let breadcrumbs: BaseObject[] = [series.data];\r\n if (props.classificationId) {\r\n const subjectPath = Flight.useBasicFetch<Classification[]>(SeriesRequests.breadcrumbs(props.classificationId));\r\n if (subjectPath.data) {\r\n breadcrumbs.unshift(...subjectPath.data);\r\n }\r\n }\r\n\r\n if (!seriesVideos.data || !config.data)\r\n return <></>;\r\n\r\n const heading = getPhrase('series', { seriesName: series.data.name });\r\n\r\n return (\r\n <>\r\n <BannerHeader\r\n heading={heading}\r\n banner={null}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n backButtonAppLink={{\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.HOME\r\n }}\r\n backButtonText='Home' // this needs to be changed eventually\r\n actions={getHeaderActions()}\r\n />\r\n <div>\r\n <div className='border-bottom py-3 mb-3'>\r\n {(props.classificationId && breadcrumbs.length < 2)\r\n ? <PartialBreadcrumbs />\r\n : <Breadcrumbs\r\n currentItem={series.data}\r\n type={BreadcrumbType.Static}\r\n getItemAppLink={getClassificationAppLink}\r\n data={breadcrumbs}\r\n rootItem={{\r\n label: getPhrase('dashboard'),\r\n appLink: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.HOME\r\n }\r\n }}\r\n />\r\n }\r\n\r\n {series.data.description && (\r\n <p className='pt-3'>{series.data.description}</p>\r\n )}\r\n </div>\r\n\r\n {seriesVideos.data\r\n ? !seriesVideos.isFetching\r\n ? <VideoList\r\n videos={seriesVideos.data.data}\r\n cursors={seriesVideos.data.pagination.cursors}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n />\r\n : <PartialVideoList />\r\n : <>Empty State</>\r\n }\r\n </div>\r\n </>\r\n );\r\n}","import './theme-overrides.scss';","// extracted by mini-css-extract-plugin","module.exports = __WEBPACK_EXTERNAL_MODULE__clickview_common__;","module.exports = __WEBPACK_EXTERNAL_MODULE__clickview_dashboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__clickview_playlists__;","module.exports = __WEBPACK_EXTERNAL_MODULE__clickview_shared__;","module.exports = __WEBPACK_EXTERNAL_MODULE_backbone__;","module.exports = __WEBPACK_EXTERNAL_MODULE_handlebars__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_bootstrap__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_custom_scrollbars__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_redux__;"],"sourceRoot":""}
package/dist/en.json CHANGED
@@ -1 +1,55 @@
1
- {"shared":{"notFound":{"title":"Page not found"},"leftNav":{"home":"Home","myPlaylists":"My Playlists","myUploads":"My Uploads","following":"Following","favouritedVideos":"Favourited Videos","myClassrooms":"My Classrooms","watchHistory":"Watch History"},"myUploads":{"header":"My Uploads","description":"Here we store all the videos that you upload on to ClickView!","share":"Share","edit":"Edit"},"series":{"dashboard":"Dashboard","series":"Series: %{seriesName}","share":"Share","follow":"Follow"}}}
1
+ {
2
+ "shared": {
3
+ "playPage": {
4
+ "classroomMode": "Classroom Mode",
5
+ "createInteractive": "Create interactive video",
6
+ "createClip": "Create clip",
7
+ "more": "More",
8
+ "share": "Share",
9
+ "addToPlaylist": "Add to Playlist",
10
+ "favourite": "Favourite",
11
+ "relatedVideos": "Related Videos"
12
+ },
13
+ "userOptions": {
14
+ "myProfile": "My Profile",
15
+ "myPreferences": "My Preferences",
16
+ "signOut": "Sign Out"
17
+ },
18
+ "videoDetails": {
19
+ "details": "Details",
20
+ "rating": "Rating: %{code}",
21
+ "productionYear": "Production Year: %{year}",
22
+ "productionCompanies": "Production Companies",
23
+ "distributors": "Distributors",
24
+ "tags": "Tags:",
25
+ "description": "Description"
26
+ },
27
+ "notFound": {
28
+ "title": "Page not found"
29
+ },
30
+ "favoriteVideos": {
31
+ "header": "Favourited Videos"
32
+ },
33
+ "leftNav": {
34
+ "home": "Home",
35
+ "myPlaylists": "My Playlists",
36
+ "myUploads": "My Uploads",
37
+ "following": "Following",
38
+ "favouritedVideos": "Favourited Videos",
39
+ "myClassrooms": "My Classrooms",
40
+ "watchHistory": "Watch History"
41
+ },
42
+ "myUploads": {
43
+ "header": "My Uploads",
44
+ "description": "Here we store all the videos that you upload on to ClickView!",
45
+ "share": "Share",
46
+ "edit": "Edit"
47
+ },
48
+ "series": {
49
+ "dashboard": "Dashboard",
50
+ "series": "Series: %{seriesName}",
51
+ "share": "Share",
52
+ "follow": "Follow"
53
+ }
54
+ }
55
+ }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,8 @@
1
+ import './shared/components/play-page/play-page.lang.json';
2
+ import './shared/components/user-options/user-options.lang.json';
3
+ import './shared/components/video-details/video-details.lang.json';
1
4
  import './shared/errors/not-found/not-found.lang.json';
5
+ import './shared/views/favorite-videos/favorite-videos-view.lang.json';
2
6
  import './shared/views/left-nav/left-nav-view.lang.json';
3
7
  import './shared/views/my-uploads/my-uploads-view.lang.json';
4
8
  import './shared/views/series/series-view.lang.json';
@@ -11,4 +15,9 @@ export * from './shared/layouts';
11
15
  export * from './shared/services';
12
16
  export * from './apps/default/LiteDefaultApplication';
13
17
  export * from './apps/playlists/LitePlaylistsApplication';
18
+ export * from './apps/embed/LiteEmbedApplication';
19
+ export * from './apps/dashboard/LiteDashboardApplication';
20
+ export * from './apps/subjects/LiteSubjectApplication';
14
21
  export * from './apps/search/constants/SearchAppVariables';
22
+ export * from './apps/notifications/LiteNotificationsApplication';
23
+ export * from './apps/notifications/constants/NotificationsAppVariables';
package/dist/lite-app.css CHANGED
@@ -1,10 +1,160 @@
1
- body{background-color:#fff}
1
+ body {
2
+ background-color: #fff; }
2
3
 
3
- ._3RLQ9{background-color:#fff;border-bottom:1px solid #eaeaea;z-index:1002}.UIlc9{min-width:12rem;width:13.75rem;height:2.92062rem}._2E7RQ{padding-right:18.75rem}._2HygL{right:0}._2OoYm{border-radius:50%;background-color:#51ADA3;display:inline-block;width:2.1875rem;height:2.1875rem;text-align:center;line-height:2.1875rem;background-size:cover;background-position:top center}._2b7ER{border-radius:50%;display:inline-block;background-color:#eaeaea;width:2.1875rem;height:2.1875rem;text-align:center;line-height:2.1875rem;background-size:cover;background-position:top center}._2BRko{color:#eaeaea;height:1.25rem;width:1.25rem;margin-right:1.25rem;cursor:pointer;display:inline-block}._2BRko svg{width:100% !important;height:100% !important}.oX-Ph{border:2px solid #eaeaea;max-width:40rem;margin-right:40rem;border-radius:3px;padding:0}
4
+ .cv--fixed--3C4_W {
5
+ display: inline-block;
6
+ position: fixed;
7
+ bottom: 0;
8
+ right: 1.25rem;
9
+ width: 25rem; }
4
10
 
5
- ._3jVyN{top:4.25rem;bottom:0;position:fixed;width:15rem;background-color:#fff;border-right:1px solid #eaeaea;z-index:1001}._1ud9G{border-radius:50%;background-color:#eaeaea;width:3rem;height:3rem;position:absolute;left:1.25rem;display:inline-block}._3A_-8{position:relative;min-height:3rem}._3qbRh{padding-left:5.5rem;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:inline-block}._2idO9{width:5.5rem}._2idO9 ._1ud9G{position:relative;left:auto;margin:0 1.25rem}._2idO9 ._3qbRh{position:relative;padding-left:0;text-align:center;top:auto;-webkit-transform:none;transform:none;display:block}
11
+ .cv--inline--2voRI {
12
+ position: absolute; }
6
13
 
7
- ._3C4_W{display:inline-block;position:fixed;bottom:0;right:1.25rem;width:350px}._2voRI{position:absolute}
14
+ .cv--closeSvg--2RiDj {
15
+ width: 2.1875rem;
16
+ height: 2.1875rem;
17
+ display: inline-block; }
8
18
 
9
- ._1SX2l{padding-top:1.25rem}._3LJFz{padding-left:5.5rem}._34Pt4{padding-left:15rem}._1gZ0J{padding-left:0}.mE2Dq{z-index:1000}
19
+ .cv--buttons--ZbN3s {
20
+ /**
21
+ * Prevents the child buttons cascading vertically because
22
+ * of the flex-shrink-1 class
23
+ */
24
+ min-width: 3.4rem; }
10
25
 
26
+ .cv--flippedIcon--3nkTw {
27
+ -webkit-transform: scaleX(-1);
28
+ transform: scaleX(-1); }
29
+
30
+ .cv--avatar--3g8JZ {
31
+ border-radius: 50%;
32
+ background-color: #51ADA3;
33
+ display: inline-block;
34
+ width: 2.1875rem;
35
+ height: 2.1875rem;
36
+ text-align: center;
37
+ line-height: 2.1875rem;
38
+ background-size: cover;
39
+ background-position: top center; }
40
+
41
+ .cv--iconPlaceholder--2hr_4 {
42
+ border-radius: 50%;
43
+ background-color: #eaeaea;
44
+ /**
45
+ * TODO: This is an arbitrary size just to get the nav set up.
46
+ * This either needs to be calculated or turned into a variable
47
+ */
48
+ width: 2.1875rem;
49
+ height: 2.1875rem; }
50
+
51
+ .cv--nav--3RLQ9 {
52
+ background-color: #fff;
53
+ border-bottom: 1px solid #eaeaea;
54
+ z-index: 1002; }
55
+
56
+ .cv--logoContainer--UIlc9 {
57
+ min-width: 12rem;
58
+ width: 13.75rem;
59
+ height: 2.92062rem; }
60
+
61
+ .cv--searchBar--2E7RQ {
62
+ padding-right: 18.75rem; }
63
+
64
+ .cv--actionButtons--2HygL {
65
+ right: 0; }
66
+
67
+ .cv--hamburger--2BRko {
68
+ color: #eaeaea;
69
+ height: 1.25rem;
70
+ width: 1.25rem;
71
+ margin-right: 1.25rem;
72
+ cursor: pointer;
73
+ display: inline-block; }
74
+ .cv--hamburger--2BRko svg {
75
+ width: 100% !important;
76
+ height: 100% !important; }
77
+
78
+ .cv--searchBarContainer--oX-Ph {
79
+ border: 2px solid #eaeaea;
80
+ max-width: 40rem;
81
+ margin-right: 40rem;
82
+ border-radius: 3px;
83
+ padding: 0; }
84
+
85
+ .cv--leftNav--3jVyN {
86
+ top: 4.25rem;
87
+ bottom: 0;
88
+ position: fixed;
89
+ width: 15rem;
90
+ background-color: #fff;
91
+ border-right: 1px solid #eaeaea;
92
+ z-index: 1001; }
93
+
94
+ .cv--iconPlaceholder--1ud9G {
95
+ border-radius: 50%;
96
+ background-color: #eaeaea;
97
+ /**
98
+ * TODO: This is an arbitrary size just to get the nav set up.
99
+ * This either needs to be calculated or turned into a variable
100
+ */
101
+ width: 3rem;
102
+ height: 3rem;
103
+ position: absolute;
104
+ left: 1.25rem;
105
+ display: inline-block; }
106
+
107
+ .cv--leftNavAnchor--3A_-8 {
108
+ position: relative;
109
+ /**
110
+ * TODO: See the todo above. Replace this with a variable
111
+ */
112
+ min-height: 3rem; }
113
+
114
+ .cv--leftNavText--3qbRh {
115
+ padding-left: 5.5rem;
116
+ position: absolute;
117
+ top: 50%;
118
+ -webkit-transform: translateY(-50%);
119
+ transform: translateY(-50%);
120
+ display: inline-block; }
121
+
122
+ .cv--leftNavCollapsed--2idO9 {
123
+ width: 5.5rem; }
124
+ .cv--leftNavCollapsed--2idO9 .cv--iconPlaceholder--1ud9G {
125
+ position: relative;
126
+ left: auto;
127
+ margin: 0 1.25rem; }
128
+ .cv--leftNavCollapsed--2idO9 .cv--leftNavText--3qbRh {
129
+ position: relative;
130
+ padding-left: 0;
131
+ text-align: center;
132
+ top: auto;
133
+ -webkit-transform: none;
134
+ transform: none;
135
+ display: block; }
136
+
137
+ .cv--content--1SX2l {
138
+ padding-top: 1.25rem; }
139
+
140
+ .cv--collapsedNavContent--3LJFz {
141
+ padding-left: 5.5rem; }
142
+
143
+ .cv--openNavContent--34Pt4 {
144
+ padding-left: 15rem; }
145
+
146
+ .cv--hiddenNavContent--1gZ0J {
147
+ padding-left: 0; }
148
+
149
+ .cv--mask--mE2Dq {
150
+ z-index: 1000; }
151
+
152
+ .cv--embeddedPlayer--3kXb6 {
153
+ position: fixed;
154
+ top: 0;
155
+ left: 0;
156
+ right: 0;
157
+ bottom: 0; }
158
+
159
+
160
+ /*# sourceMappingURL=lite-app.css.map*/
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/lite/src/styles/theme-overrides.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/floating-player/floating-player.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/components/user-options/user-options.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/header/header.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/views/left-nav/left-nav.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/shared/layouts/teacher-layout/teacher-layout.scss","file://C:/ClickView Projects/@clickview/packages/lite/src/apps/embed/views/embed/embed.scss"],"names":[],"mappings":"AAAA;AACA,yBAAyB;;ACDzB;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,gCAAgC;;ACxBhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;ACnBpB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,0BAA0B;;AAE1B;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,aAAa;;AChCb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AClDnB;AACA,uBAAuB;;AAEvB;AACA,uBAAuB;;AAEvB;AACA,sBAAsB;;AAEtB;AACA,kBAAkB;;AAElB;AACA,gBAAgB;;ACbhB;AACA;AACA;AACA;AACA;AACA,YAAY","file":"lite-app.css","sourcesContent":["body {\n background-color: #fff; }\n",".cv--fixed--3C4_W {\n display: inline-block;\n position: fixed;\n bottom: 0;\n right: 1.25rem;\n width: 25rem; }\n\n.cv--inline--2voRI {\n position: absolute; }\n\n.cv--closeSvg--2RiDj {\n width: 2.1875rem;\n height: 2.1875rem;\n display: inline-block; }\n\n.cv--buttons--ZbN3s {\n /**\r\n * Prevents the child buttons cascading vertically because \r\n * of the flex-shrink-1 class\r\n */\n min-width: 3.4rem; }\n\n.cv--flippedIcon--3nkTw {\n -webkit-transform: scaleX(-1);\n transform: scaleX(-1); }\n",".cv--avatar--3g8JZ {\n border-radius: 50%;\n background-color: #51ADA3;\n display: inline-block;\n width: 2.1875rem;\n height: 2.1875rem;\n text-align: center;\n line-height: 2.1875rem;\n background-size: cover;\n background-position: top center; }\n\n.cv--iconPlaceholder--2hr_4 {\n border-radius: 50%;\n background-color: #eaeaea;\n /**\r\n * TODO: This is an arbitrary size just to get the nav set up.\r\n * This either needs to be calculated or turned into a variable\r\n */\n width: 2.1875rem;\n height: 2.1875rem; }\n",".cv--nav--3RLQ9 {\n background-color: #fff;\n border-bottom: 1px solid #eaeaea;\n z-index: 1002; }\n\n.cv--logoContainer--UIlc9 {\n min-width: 12rem;\n width: 13.75rem;\n height: 2.92062rem; }\n\n.cv--searchBar--2E7RQ {\n padding-right: 18.75rem; }\n\n.cv--actionButtons--2HygL {\n right: 0; }\n\n.cv--hamburger--2BRko {\n color: #eaeaea;\n height: 1.25rem;\n width: 1.25rem;\n margin-right: 1.25rem;\n cursor: pointer;\n display: inline-block; }\n .cv--hamburger--2BRko svg {\n width: 100% !important;\n height: 100% !important; }\n\n.cv--searchBarContainer--oX-Ph {\n border: 2px solid #eaeaea;\n max-width: 40rem;\n margin-right: 40rem;\n border-radius: 3px;\n padding: 0; }\n",".cv--leftNav--3jVyN {\n top: 4.25rem;\n bottom: 0;\n position: fixed;\n width: 15rem;\n background-color: #fff;\n border-right: 1px solid #eaeaea;\n z-index: 1001; }\n\n.cv--iconPlaceholder--1ud9G {\n border-radius: 50%;\n background-color: #eaeaea;\n /**\r\n * TODO: This is an arbitrary size just to get the nav set up.\r\n * This either needs to be calculated or turned into a variable\r\n */\n width: 3rem;\n height: 3rem;\n position: absolute;\n left: 1.25rem;\n display: inline-block; }\n\n.cv--leftNavAnchor--3A_-8 {\n position: relative;\n /**\r\n * TODO: See the todo above. Replace this with a variable\r\n */\n min-height: 3rem; }\n\n.cv--leftNavText--3qbRh {\n padding-left: 5.5rem;\n position: absolute;\n top: 50%;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n display: inline-block; }\n\n.cv--leftNavCollapsed--2idO9 {\n width: 5.5rem; }\n .cv--leftNavCollapsed--2idO9 .cv--iconPlaceholder--1ud9G {\n position: relative;\n left: auto;\n margin: 0 1.25rem; }\n .cv--leftNavCollapsed--2idO9 .cv--leftNavText--3qbRh {\n position: relative;\n padding-left: 0;\n text-align: center;\n top: auto;\n -webkit-transform: none;\n transform: none;\n display: block; }\n",".cv--content--1SX2l {\n padding-top: 1.25rem; }\n\n.cv--collapsedNavContent--3LJFz {\n padding-left: 5.5rem; }\n\n.cv--openNavContent--34Pt4 {\n padding-left: 15rem; }\n\n.cv--hiddenNavContent--1gZ0J {\n padding-left: 0; }\n\n.cv--mask--mE2Dq {\n z-index: 1000; }\n",".cv--embeddedPlayer--3kXb6 {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0; }\n"],"sourceRoot":""}