@clickview/lite 0.0.3 → 0.0.4-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/apps/dashboard/LiteDashboardApplication.d.ts +17 -0
  2. package/dist/apps/default/index.d.ts +2 -0
  3. package/dist/apps/default/views/dev-error/LiteDevErrorView.d.ts +6 -0
  4. package/dist/apps/default/views/dialog/LiteDialogView.d.ts +7 -0
  5. package/dist/apps/default/views/error/LiteErrorView.d.ts +7 -0
  6. package/dist/apps/embed/LiteEmbedApplication.d.ts +15 -0
  7. package/dist/apps/embed/views/embed/EmbedView.d.ts +10 -0
  8. package/dist/apps/embed/views/index.d.ts +1 -0
  9. package/dist/apps/index.d.ts +1 -0
  10. package/dist/apps/notifications/LiteNotificationsApplication.d.ts +10 -0
  11. package/dist/apps/notifications/constants/NotificationsAppVariables.d.ts +7 -0
  12. package/dist/apps/notifications/interfaces/Notification.d.ts +3 -0
  13. package/dist/apps/notifications/interfaces/NotificationCollection.d.ts +4 -0
  14. package/dist/apps/notifications/interfaces/index.d.ts +2 -0
  15. package/dist/apps/notifications/services/FlightNotificationDataService.d.ts +16 -0
  16. package/dist/apps/notifications/services/index.d.ts +1 -0
  17. package/dist/apps/playlists/components/index.d.ts +1 -0
  18. package/dist/apps/playlists/components/playlist-list/LitePlaylistItem.d.ts +9 -0
  19. package/dist/apps/playlists/components/playlist-list/LitePlaylistList.d.ts +9 -0
  20. package/dist/apps/playlists/components/playlist-list/index.d.ts +1 -0
  21. package/dist/apps/playlists/flight-requests/PlaylistRequests.d.ts +4 -0
  22. package/dist/apps/playlists/flight-requests/index.d.ts +1 -0
  23. package/dist/apps/playlists/index.d.ts +1 -0
  24. package/dist/apps/playlists/views/index.d.ts +1 -0
  25. package/dist/apps/playlists/views/user-playlists/UserPlaylistsView.d.ts +2 -0
  26. package/dist/apps/playlists/views/user-playlists/index.d.ts +1 -0
  27. package/dist/apps/search/LiteSearchApplication.d.ts +17 -0
  28. package/dist/apps/search/components/index.d.ts +1 -0
  29. package/dist/apps/search/components/search-filters/SearchFilters.d.ts +5 -0
  30. package/dist/apps/search/flight-requests/SearchRequests.d.ts +4 -0
  31. package/dist/apps/search/flight-requests/index.d.ts +1 -0
  32. package/dist/apps/search/interfaces/SearchResults.d.ts +18 -0
  33. package/dist/apps/search/interfaces/index.d.ts +1 -0
  34. package/dist/apps/search/utils/SearchHelper.d.ts +21 -0
  35. package/dist/apps/search/utils/index.d.ts +1 -0
  36. package/dist/apps/search/views/index.d.ts +1 -0
  37. package/dist/apps/search/views/search-results/PartialSearchResultsView.d.ts +2 -0
  38. package/dist/apps/search/views/search-results/SearchResultsView.d.ts +7 -0
  39. package/dist/apps/subjects/LiteSubjectApplication.d.ts +14 -0
  40. package/dist/bundle.js.map +1 -0
  41. package/dist/lite-app.css.map +1 -0
  42. package/dist/lite-app.js +112 -0
  43. package/dist/lite-app.js.map +1 -0
  44. package/dist/shared/components/icon-button/IconButton.d.ts +9 -0
  45. package/dist/shared/components/play-page/Badges.d.ts +7 -0
  46. package/dist/shared/components/play-page/Buttons.d.ts +2 -0
  47. package/dist/shared/components/play-page/PlayPage.d.ts +8 -0
  48. package/dist/shared/components/play-page/VideoTitle.d.ts +7 -0
  49. package/dist/shared/components/user-options/UserOptions.d.ts +10 -0
  50. package/dist/shared/errors/not-found/LiteNotFoundError.d.ts +5 -0
  51. package/dist/shared/errors/primitives/AlertError.d.ts +0 -0
  52. package/dist/shared/errors/primitives/DialogError.d.ts +0 -0
  53. package/dist/shared/errors/primitives/ErrorPageError.d.ts +0 -0
  54. package/dist/shared/errors/primitives/index.d.ts +3 -0
  55. package/dist/shared/flight-requests/AudienceRequests.d.ts +4 -0
  56. package/dist/shared/flight-requests/PlaylistRequests.d.ts +4 -0
  57. package/dist/shared/flight-requests/ShareRequests.d.ts +4 -0
  58. package/dist/shared/index.d.ts +5 -0
  59. package/dist/shared/layouts/embed-layout/EmbedLayoutComponent.d.ts +8 -0
  60. package/dist/shared/layouts/embed-layout/EmbedLayoutView.d.ts +17 -0
  61. package/dist/shared/utils/InfiniteScrollHelper.d.ts +11 -0
  62. package/dist/shared/utils/LiteAppLinkHelper.d.ts +3 -0
  63. package/dist/shared/views/backbone-wrapper/BackboneWrapperView.d.ts +8 -0
  64. package/dist/shared/views/favorite-videos/FavoriteVideos.d.ts +6 -0
  65. package/dist/shared/views/favorite-videos/FavoriteVideosView.d.ts +6 -0
  66. package/dist/shared/views/favorite-videos/index.d.ts +1 -0
  67. package/dist/shared/views/my-uploads/components/MyUploadsBannerActions.d.ts +5 -0
  68. package/dist/shared/views/play/components/BackButton.d.ts +2 -0
  69. package/dist/shared/views/play-shared/PlaySharedView.d.ts +6 -0
  70. package/package.json +44 -44
@@ -0,0 +1,17 @@
1
+ import { ObjectHash } from 'backbone';
2
+ import { Core, HashObject } from '@clickview/common';
3
+ import { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';
4
+ declare class DashboardAppRouter extends Core.AppRouter {
5
+ protected get channelName(): string;
6
+ protected get appRoutes(): ObjectHash;
7
+ }
8
+ export declare class DashboardApplication extends Core.Application {
9
+ protected layout: TeacherLayoutView;
10
+ get name(): string;
11
+ get channelName(): string;
12
+ static get router(): typeof DashboardAppRouter;
13
+ protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions>;
14
+ get appChannels(): HashObject<string>;
15
+ index(): void;
16
+ }
17
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './views';
2
+ export * from './LiteDefaultApplication';
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ interface DevErrorViewProps {
3
+ error: Error;
4
+ }
5
+ export declare function DevErrorView({ error }: DevErrorViewProps): React.ReactElement;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { DialogOptions, PopupViewProps } from '@clickview/shared';
3
+ interface DialogViewProps extends DialogOptions {
4
+ }
5
+ declare type PropTypes = React.PropsWithChildren<DialogViewProps & PopupViewProps>;
6
+ export declare function DialogView(props: PropTypes): React.ReactElement;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { ErrorPageError } from '@clickview/shared';
3
+ interface ErrorViewProps {
4
+ error: ErrorPageError;
5
+ }
6
+ export declare function ErrorView({ error }: ErrorViewProps): React.ReactElement;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Core, HashObject } from '@clickview/common';
2
+ import { EmbedLayoutView } from 'shared/layouts';
3
+ declare class EmbedAppRouter extends Core.AppRouter {
4
+ protected get channelName(): string;
5
+ protected get appRoutes(): HashObject;
6
+ }
7
+ export declare class EmbedApplication extends Core.Application {
8
+ layout: EmbedLayoutView;
9
+ get name(): string;
10
+ protected get layoutOptions(): Core.LayoutOptions<Core.LayoutViewOptions>;
11
+ get channelName(): string;
12
+ static get router(): typeof EmbedAppRouter;
13
+ embedVideo(shortCode: string): void;
14
+ }
15
+ export {};
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ interface EmbedViewProps {
3
+ /**
4
+ * TODO: Replace id with shortcode. It's just a master id now
5
+ * as a placeholder
6
+ */
7
+ id: string;
8
+ }
9
+ export declare function EmbedView(props: EmbedViewProps): JSX.Element;
10
+ export {};
@@ -0,0 +1 @@
1
+ export * from './embed/EmbedView';
@@ -0,0 +1 @@
1
+ export * from './default';
@@ -0,0 +1,10 @@
1
+ import { Core, HashObject } from '@clickview/common';
2
+ import { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';
3
+ export declare class NotificationsApplication extends Core.Application {
4
+ protected layout: TeacherLayoutView;
5
+ get name(): string;
6
+ protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions>;
7
+ static get router(): any;
8
+ get channelName(): string;
9
+ index(params: HashObject): void;
10
+ }
@@ -0,0 +1,7 @@
1
+ import { BaseNotificationsAppVariables, NotificationsAppLinks, NotificationType } from '@clickview/shared';
2
+ export declare class NotificationsAppVariables extends BaseNotificationsAppVariables {
3
+ get appLinks(): NotificationsAppLinks;
4
+ get notificationTypesWithAppLinks(): Array<NotificationType>;
5
+ get notificationsEmptyStateUrl(): string;
6
+ get bellIconColor(): 'dark';
7
+ }
@@ -0,0 +1,3 @@
1
+ import { BaseObject } from '@clickview/shared';
2
+ export interface Notification extends BaseObject {
3
+ }
@@ -0,0 +1,4 @@
1
+ import { BasePaginatedCollection } from '@clickview/shared';
2
+ import { Notification } from 'apps/notifications/interfaces';
3
+ export interface NotificationCollection extends BasePaginatedCollection<Notification> {
4
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Notification';
2
+ export * from './NotificationCollection';
@@ -0,0 +1,16 @@
1
+ import { Store } from 'redux';
2
+ import { Cursors } from '@clickview/common';
3
+ import { BaseNotificationDataService, NotificationCollectionRequest, Notification as BackboneNotification, NotificationCollection as BackboneNotificationCollection } from '@clickview/shared';
4
+ interface FlightNotificationDataServiceOptions {
5
+ store: Store;
6
+ }
7
+ export declare class FlightNotificationDataService implements BaseNotificationDataService {
8
+ private store;
9
+ constructor(options: FlightNotificationDataServiceOptions);
10
+ get name(): string;
11
+ getNotifications(userId: string, params: NotificationCollectionRequest, collectionIdentifier: string, callback?: (data?: BackboneNotificationCollection) => BackboneNotificationCollection): BackboneNotificationCollection;
12
+ markRead(id: string, callback?: (data?: BackboneNotification) => any): void;
13
+ markSeen(callback?: () => any): void;
14
+ getNotificationsCursors(collectionIdentifier: string): Cursors;
15
+ }
16
+ export {};
@@ -0,0 +1 @@
1
+ export * from './FlightNotificationDataService';
@@ -0,0 +1 @@
1
+ export * from './playlist-list';
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { Core } from '@clickview/common';
3
+ import { Playlist } from '@clickview/shared';
4
+ interface PlaylistItemProps {
5
+ playlist: Playlist;
6
+ appLink: Core.AppLink;
7
+ }
8
+ export declare function PlaylistItem(props: PlaylistItemProps): JSX.Element;
9
+ export {};
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { Core } from '@clickview/common';
3
+ import { Playlist } from '@clickview/shared';
4
+ interface PlaylistListProps {
5
+ playlists: Playlist[];
6
+ getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;
7
+ }
8
+ export declare function PlaylistList(props: PlaylistListProps): JSX.Element;
9
+ export {};
@@ -0,0 +1 @@
1
+ export * from './LitePlaylistList';
@@ -0,0 +1,4 @@
1
+ import { Flight } from '@clickview/common';
2
+ export declare const PlaylistRequests: {
3
+ getUserPlaylists(cursor?: string): Flight.Request;
4
+ };
@@ -0,0 +1 @@
1
+ export * from './PlaylistRequests';
@@ -0,0 +1 @@
1
+ export * from './LitePlaylistsApplication';
@@ -0,0 +1 @@
1
+ export * from './user-playlists';
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function UserPlaylistsView(): JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './UserPlaylistsView';
@@ -0,0 +1,17 @@
1
+ import { ObjectHash } from 'backbone';
2
+ import { Core, HashObject } from '@clickview/common';
3
+ import { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';
4
+ declare class SearchAppRouter extends Core.AppRouter {
5
+ protected get channelName(): string;
6
+ protected get appRoutes(): ObjectHash;
7
+ protected get appLinks(): string[];
8
+ }
9
+ export declare class SearchApplication extends Core.Application {
10
+ protected layout: TeacherLayoutView;
11
+ get name(): string;
12
+ protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions>;
13
+ get channelName(): string;
14
+ static get router(): typeof SearchAppRouter;
15
+ index(queryParams?: HashObject): void;
16
+ }
17
+ export {};
@@ -0,0 +1 @@
1
+ export * from './search-filters/SearchFilters';
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ interface SearchFiltersProps {
3
+ }
4
+ export declare function SearchFilters(props: SearchFiltersProps): JSX.Element;
5
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Flight } from '@clickview/common';
2
+ export declare const SearchRequests: {
3
+ search(query: string): Flight.Request;
4
+ };
@@ -0,0 +1 @@
1
+ export * from './SearchRequests';
@@ -0,0 +1,18 @@
1
+ import { Video, Series, Playlist, Classification } from '@clickview/shared';
2
+ export interface SearchResults {
3
+ subjects?: Classification[];
4
+ videos: Video[];
5
+ series: Series[];
6
+ playlists: Playlist[];
7
+ }
8
+ export interface MainSearchResults {
9
+ subjects: Classification[];
10
+ firstVideo: Video;
11
+ playlists: Playlist[];
12
+ series: Series[];
13
+ otherResults: SearchResults;
14
+ }
15
+ export interface OtherSearchResultSet {
16
+ type: 'video' | 'playlist' | 'series';
17
+ data: Video[] | Playlist[] | Series[];
18
+ }
@@ -0,0 +1 @@
1
+ export * from './SearchResults';
@@ -0,0 +1,21 @@
1
+ /// <reference types="react" />
2
+ import { Core } from '@clickview/common';
3
+ import { Video, Series, Playlist, BaseObject, PresentationAudience } from '@clickview/shared';
4
+ import { SearchResults, MainSearchResults, OtherSearchResultSet } from 'apps/search/interfaces';
5
+ export declare const SearchHelper: {
6
+ /**
7
+ * These are the results that appear at the very top of the page
8
+ */
9
+ filterMainResults(results: SearchResults): MainSearchResults;
10
+ structureOtherResults(results: SearchResults): OtherSearchResultSet[];
11
+ generateResultSets<T extends BaseObject>(results: T[], setCapacity: number): T[][];
12
+ buildResultStructure(videoSets: Video[][], playlistSets: Playlist[][], seriesSets: Series[][]): OtherSearchResultSet[];
13
+ /**
14
+ * Determines whether or not a playlist or series set should be added to the results structure next.
15
+ */
16
+ getSeriesOrPlaylistSet(playlists: Playlist[][], series: Series[][], videoSetIndex: number): OtherSearchResultSet;
17
+ getResultSetComponent(set: OtherSearchResultSet, audiences: PresentationAudience[]): JSX.Element;
18
+ getVideoAppLink(video: Video): Core.AppLink;
19
+ getSeriesAppLink(series?: Series): Core.AppLink;
20
+ getPlaylistAppLink(playlist?: Playlist): Core.AppLink;
21
+ };
@@ -0,0 +1 @@
1
+ export * from './SearchHelper';
@@ -0,0 +1 @@
1
+ export * from './search-results/SearchResultsView';
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function PartialSearchResultsView(): JSX.Element;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { HashObject } from '@clickview/common';
3
+ interface SearchResultsViewProps {
4
+ queryParams: HashObject;
5
+ }
6
+ export declare function SearchResultsView(props: SearchResultsViewProps): JSX.Element;
7
+ export {};
@@ -0,0 +1,14 @@
1
+ import { ObjectHash } from 'backbone';
2
+ import { Core, HashObject } from '@clickview/common';
3
+ import { TeacherLayoutViewOptions, TeacherLayoutView } from 'shared/layouts';
4
+ export declare class SubjectApplication extends Core.Application {
5
+ protected layout: TeacherLayoutView;
6
+ get name(): string;
7
+ static get router(): any;
8
+ get channelName(): string;
9
+ protected get layoutOptions(): Core.LayoutOptions<TeacherLayoutViewOptions>;
10
+ get appChannels(): HashObject<string>;
11
+ classification(classificationId: string): void;
12
+ playlist(id: string, playlistId: string): void;
13
+ protected onShowAlert(options?: ObjectHash): void;
14
+ }
@@ -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/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/playlists/LitePlaylistsApplication.tsx","file://C:/ClickView Projects/clickview/packages/lite/src/apps/search/constants/SearchAppVariables.ts","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/resources/Resources.tsx","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/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/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/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/PlayView.tsx","file://C:/ClickView Projects/clickview/packages/lite/src/shared/views/play/components/Badges.tsx","file://C:/ClickView Projects/clickview/packages/lite/src/shared/views/play/components/Buttons.tsx","file://C:/ClickView Projects/clickview/packages/lite/src/shared/views/play/components/VideoTitle.tsx","file://C:/ClickView Projects/clickview/packages/lite/src/shared/views/play/components/index.ts","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/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 \"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/playlists\"), require(\"@clickview/shared\"), require(\"React\"), require(\"ReactCustomScrollbars\"), require(\"ReactRedux\"), require(\"Backbone\"), require(\"Handlebars\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@clickview/common\", \"@clickview/playlists\", \"@clickview/shared\", \"React\", \"ReactCustomScrollbars\", \"ReactRedux\", \"Backbone\", \"Handlebars\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@clickview/lite\"] = factory(require(\"@clickview/common\"), require(\"@clickview/playlists\"), require(\"@clickview/shared\"), require(\"React\"), require(\"ReactCustomScrollbars\"), require(\"ReactRedux\"), require(\"Backbone\"), require(\"Handlebars\"));\n\telse\n\t\troot[\"@clickview/lite\"] = factory(root[\"@clickview/common\"], root[\"@clickview/playlists\"], root[\"@clickview/shared\"], root[\"React\"], root[\"ReactCustomScrollbars\"], root[\"ReactRedux\"], root[\"Backbone\"], root[\"Handlebars\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__clickview_common__, __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_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\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 } 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\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 myUploads(params: HashObject): void {\r\n this.layout.showChildView(LayoutRegions.CONTENT, <MyUploadsView 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 { 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 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 '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: '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 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 args: [1]\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 './shared/errors/not-found/not-found.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\nexport * from './apps/playlists/LitePlaylistsApplication';\r\n\r\nexport * from './apps/search/constants/SearchAppVariables';","import { PlayerContext } from 'shared/contexts';\r\nimport * as React from 'react';\r\nimport { WebPlayer } from 'shared/components';\r\n\r\nimport styles from './floating-player.scss';\r\n\r\nexport function FloatingPlayer(): React.ReactElement {\r\n const { id, webPlayerUrl, position } = React.useContext(PlayerContext);\r\n\r\n if (!id)\r\n return <></>;\r\n\r\n let style = {};\r\n let className = styles.fixed;\r\n\r\n if (position) {\r\n className = styles.inline;\r\n style = position;\r\n }\r\n\r\n return (\r\n <div style={style} className={className}>\r\n <WebPlayer id={id} webPlayerHost={webPlayerUrl} />\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fixed\":\"cv--fixed--3C4_W\",\"inline\":\"cv--inline--2voRI\"};","export * from './web-player/WebPlayer';\r\nexport * from './floating-player/FloatingPlayer';\r\nexport * from './resources/Resources';\r\nexport * from './video-details/VideoDetails';","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 Scrollbars from 'react-custom-scrollbars';\r\nimport { Video, BaseObject, BasePaginatedCollection, TagCollection } from '@clickview/shared';\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 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\nexport function 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'>Details</h2>\r\n <div className='row no-gutters'>\r\n <div className='col-3'>\r\n {ratingCode && <div className='pb-2'>Rating: {ratingCode}</div>}\r\n {productionYear && <div className='pb-2'>Production Year: {productionYear}</div>}\r\n </div>\r\n <div className='col-9'>\r\n <CommaList label='Production Companies' items={productionCompanies} className='pb-2' />\r\n <CommaList label='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'>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 <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 );\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 embed-responsive-16by9 ${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\n\r\nexport const Actions = {\r\n Default: {\r\n HOME: 'index',\r\n MY_UPLOADS: 'my:uploads',\r\n SERIES: 'series'\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 REMOVE_VIDEO_FROM_PLAYLIST: PlaylistActions.Playlists.REMOVE_VIDEO_FROM_PLAYLIST\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};","export const AppChannels = {\r\n DEFAULT: 'default:application',\r\n PLAYLISTS: 'lite:playlists: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 } 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 id?: string;\r\n setId: (id: string) => void;\r\n\r\n position: PlayerPosition;\r\n setPosition: (position: PlayerPosition) => 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 [ id, setId ] = React.useState<string>(null);\r\n const [ position, setPosition ] = React.useState<PlayerPosition>(null);\r\n\r\n const context = {\r\n webPlayerUrl: config.data ? config.data.webPlayerUrl : '',\r\n id: id,\r\n setId,\r\n position,\r\n setPosition\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\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\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\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","export * from './teacher-layout/TeacherLayoutView';","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\nimport { useMediaQuery, MediaQueryStrings } from '@clickview/shared';\r\n\r\nimport { HeaderView, LeftNavView, LeftNavState } from 'shared/views';\r\nimport { PlayerContextProvider } from 'shared/contexts';\r\n\r\nimport styles from './teacher-layout.scss';\r\nimport { FloatingPlayer } from 'shared/components';\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 LayoutComponentProps {\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: LayoutComponentProps): 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: LayoutComponentProps): 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, ViewModelService } from '@clickview/common';\r\nimport { SearchBarView, Query } from '@clickview/shared';\r\n\r\nimport { Layouts, LayoutRegions } from 'shared/constants';\r\n\r\nimport { LayoutComponentProps, TeacherLayoutComponent } 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 'search-bar': {\r\n el: '.search-bar-region',\r\n replaceEl: true\r\n }\r\n };\r\n }\r\n\r\n private getChildComponents(): LayoutComponentProps {\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 private getSearchModel(): Core.Model {\r\n return ViewModelService.get<Query>('search', { ctor: Query });\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 this.renderSearchBar();\r\n }\r\n\r\n private renderSearchBar(): void {\r\n super.showChildView('search-bar', new SearchBarView({\r\n model: this.getSearchModel()\r\n }));\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 { Flight } from '@clickview/common';\r\nimport { SvgContainer, cvSvgLibrary, User, IconButton } from '@clickview/shared';\r\n\r\nimport { UserRequests } from 'shared/flight-requests';\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 UserOptionsProps {\r\n user?: User;\r\n}\r\n\r\n/**\r\n * TODO: Implement user options properly;\r\n */\r\nfunction UserOptions(props: UserOptionsProps): React.ReactElement {\r\n const avatar = props.user && props.user.avatar;\r\n\r\n return (\r\n <div className='mx-2'>\r\n <span className={styles.avatar} style={{ backgroundImage: `url('${avatar}')` }}>\r\n &nbsp;\r\n </span>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * TODO: Implement notifications properly\r\n */\r\nfunction Notifications(): React.ReactElement {\r\n return (\r\n <div className='ml-2'>\r\n <span className={styles.notifications}>\r\n &nbsp;\r\n </span>\r\n </div>\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<User>(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 <div className={`container search-bar-region ${styles.searchBarContainer}`}></div>\r\n\r\n <div className={`d-flex align-items-center pr-1 position-absolute ${styles.actionButtons}`}>\r\n <IconButton svgName={cvSvgLibrary.Upload} className='btn btn-secondary'>Upload a video</IconButton>\r\n <Notifications />\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\",\"avatar\":\"cv--avatar--2OoYm\",\"notifications\":\"cv--notifications--2b7ER\",\"hamburger\":\"cv--hamburger--2BRko\",\"searchBarContainer\":\"cv--searchBarContainer--oX-Ph\"};","export * 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';","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 name={getPhrase('myUploads')} appLink={{\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.MY_UPLOADS\r\n }} />\r\n <LeftNavItem name={getPhrase('following')} />\r\n <LeftNavItem name={getPhrase('favouritedVideos')} />\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, FunctionHelper } from '@clickview/common';\r\nimport { Video, BackButton } from '@clickview/shared';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests';\r\nimport { Resources, VideoDetailsWithScrollbar } from 'shared/components';\r\nimport { PlayerContext, PlayerPosition } from 'shared/contexts';\r\nimport { useOnScroll, useOnResize } from 'shared/hooks';\r\n\r\nimport { VideoTitle, Badges, Buttons } from './components';\r\nimport { AppChannels, Actions } from 'shared/constants';\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 PlayViewProps {\r\n id: string;\r\n}\r\n\r\nexport function PlayView(props: PlayViewProps): React.ReactElement {\r\n const { setPosition, setId } = React.useContext(PlayerContext);\r\n\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\r\n\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 debounce repeatedly\r\n */\r\n const update = React.useMemo(() => FunctionHelper.debounce(getUpdate(placeholder, setPosition), 100), []);\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 return () => setPosition(null);\r\n }, []);\r\n\r\n if (!video.data)\r\n return <></>;\r\n\r\n /**\r\n * Only set the video id on the PlayerContext\r\n * once we've successfully fetched the video\r\n */\r\n setId(video.data.id);\r\n\r\n return (\r\n <>\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'>Classroom mode</button>\r\n </div>\r\n <div className='embed-responsive embed-responsive-16by9 my-3' ref={placeholderRef}></div>\r\n <VideoTitle video={video.data} />\r\n <Badges video={video.data} />\r\n <Buttons />\r\n <hr />\r\n <VideoDetailsWithScrollbar video={video.data} />\r\n <Resources video={video.data} className='mt-3' />\r\n </>\r\n );\r\n}","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 } from '@clickview/shared';\r\n\r\nexport function Buttons(): React.ReactElement {\r\n return (\r\n <div className='mt-3'>\r\n <IconButton svgName={cvSvgLibrary.Plus} className='btn btn-outline-secondary mr-2'>Create interactive video</IconButton>\r\n <IconButton svgName={cvSvgLibrary.Plus} className='btn btn-outline-secondary mr-2'>Create clip</IconButton>\r\n <IconButton svgName={cvSvgLibrary.More} className='btn btn-light float-right ml-2'>More</IconButton>\r\n <IconButton svgName={cvSvgLibrary.Share} className='btn btn-light float-right ml-2'>Share</IconButton>\r\n <IconButton svgName={cvSvgLibrary.AddToPlaylists} className='btn btn-light float-right ml-2'>Add to Playlist</IconButton>\r\n <IconButton svgName={cvSvgLibrary.Plus} className='btn btn-light float-right ml-2'>Favourite</IconButton>\r\n </div>\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.id]\r\n };\r\n\r\n return (\r\n <h1 className='h3'>\r\n <SeriesLink video={video} appLink={tempAppLink} />\r\n {video.name}\r\n </h1>\r\n );\r\n}","export * from './Badges';\r\nexport * from './Buttons';\r\nexport * from './VideoTitle';","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_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_custom_scrollbars__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_redux__;"],"sourceRoot":""}
@@ -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/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/components/floating-player/floating-player.scss","file://C:/ClickView Projects/clickview/packages/lite/src/shared/layouts/teacher-layout/teacher-layout.scss"],"names":[],"mappings":"AAAA;AACA,yBAAyB;;ACDzB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,0BAA0B;;AAE1B;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,aAAa;;ACtDb;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;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,qBAAqB;;ACRrB;AACA,uBAAuB;;AAEvB;AACA,uBAAuB;;AAEvB;AACA,sBAAsB;;AAEtB;AACA,kBAAkB;;AAElB;AACA,gBAAgB","file":"lite-app.css","sourcesContent":["body {\n background-color: #fff; }\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--avatar--2OoYm {\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--notifications--2b7ER {\n border-radius: 50%;\n display: inline-block;\n background-color: #eaeaea;\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--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--fixed--3C4_W {\n display: inline-block;\n position: fixed;\n bottom: 0;\n right: 1.25rem;\n width: 350px; }\n\n.cv--inline--2voRI {\n position: absolute; }\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"],"sourceRoot":""}
@@ -0,0 +1,112 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define([], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["lite"] = factory();
8
+ else
9
+ root["lite"] = factory();
10
+ })(window, function() {
11
+ return /******/ (function(modules) { // webpackBootstrap
12
+ /******/ // The module cache
13
+ /******/ var installedModules = {};
14
+ /******/
15
+ /******/ // The require function
16
+ /******/ function __webpack_require__(moduleId) {
17
+ /******/
18
+ /******/ // Check if module is in cache
19
+ /******/ if(installedModules[moduleId]) {
20
+ /******/ return installedModules[moduleId].exports;
21
+ /******/ }
22
+ /******/ // Create a new module (and put it into the cache)
23
+ /******/ var module = installedModules[moduleId] = {
24
+ /******/ i: moduleId,
25
+ /******/ l: false,
26
+ /******/ exports: {}
27
+ /******/ };
28
+ /******/
29
+ /******/ // Execute the module function
30
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
+ /******/
32
+ /******/ // Flag the module as loaded
33
+ /******/ module.l = true;
34
+ /******/
35
+ /******/ // Return the exports of the module
36
+ /******/ return module.exports;
37
+ /******/ }
38
+ /******/
39
+ /******/
40
+ /******/ // expose the modules object (__webpack_modules__)
41
+ /******/ __webpack_require__.m = modules;
42
+ /******/
43
+ /******/ // expose the module cache
44
+ /******/ __webpack_require__.c = installedModules;
45
+ /******/
46
+ /******/ // define getter function for harmony exports
47
+ /******/ __webpack_require__.d = function(exports, name, getter) {
48
+ /******/ if(!__webpack_require__.o(exports, name)) {
49
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50
+ /******/ }
51
+ /******/ };
52
+ /******/
53
+ /******/ // define __esModule on exports
54
+ /******/ __webpack_require__.r = function(exports) {
55
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57
+ /******/ }
58
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
59
+ /******/ };
60
+ /******/
61
+ /******/ // create a fake namespace object
62
+ /******/ // mode & 1: value is a module id, require it
63
+ /******/ // mode & 2: merge all properties of value into the ns
64
+ /******/ // mode & 4: return value when already ns object
65
+ /******/ // mode & 8|1: behave like require
66
+ /******/ __webpack_require__.t = function(value, mode) {
67
+ /******/ if(mode & 1) value = __webpack_require__(value);
68
+ /******/ if(mode & 8) return value;
69
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70
+ /******/ var ns = Object.create(null);
71
+ /******/ __webpack_require__.r(ns);
72
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74
+ /******/ return ns;
75
+ /******/ };
76
+ /******/
77
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
78
+ /******/ __webpack_require__.n = function(module) {
79
+ /******/ var getter = module && module.__esModule ?
80
+ /******/ function getDefault() { return module['default']; } :
81
+ /******/ function getModuleExports() { return module; };
82
+ /******/ __webpack_require__.d(getter, 'a', getter);
83
+ /******/ return getter;
84
+ /******/ };
85
+ /******/
86
+ /******/ // Object.prototype.hasOwnProperty.call
87
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88
+ /******/
89
+ /******/ // __webpack_public_path__
90
+ /******/ __webpack_require__.p = "";
91
+ /******/
92
+ /******/
93
+ /******/ // Load entry module and return exports
94
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/index.ts");
95
+ /******/ })
96
+ /************************************************************************/
97
+ /******/ ({
98
+
99
+ /***/ "./src/index.ts":
100
+ /*!**********************!*\
101
+ !*** ./src/index.ts ***!
102
+ \**********************/
103
+ /*! no static exports found */
104
+ /***/ (function(module, exports) {
105
+
106
+ console.log('entry point');
107
+
108
+ /***/ })
109
+
110
+ /******/ });
111
+ });
112
+ //# sourceMappingURL=lite-app.js.map
@@ -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/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,OAAO,CAAC,GAAR,CAAY,aAAZ,E","file":"lite-app.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"lite\"] = factory();\n\telse\n\t\troot[\"lite\"] = factory();\n})(window, function() {\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","console.log('entry point');"],"sourceRoot":""}
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Core } from '@clickview/common';
3
+ interface IconButtonProps {
4
+ className?: string;
5
+ appLink?: Core.AppLink;
6
+ svgName: string;
7
+ }
8
+ export declare function IconButton(props: React.PropsWithChildren<IconButtonProps>): React.ReactElement;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { Video } from '@clickview/shared';
3
+ interface BadgesProps {
4
+ video: Video;
5
+ }
6
+ export declare function Badges(props: BadgesProps): React.ReactElement;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare function Buttons(): React.ReactElement;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { Video } from '@clickview/shared';
3
+ interface PlayPageProps {
4
+ video: Video;
5
+ relatedVideos: Video[];
6
+ }
7
+ export declare function PlayPage(props: PlayPageProps): JSX.Element;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { Video } from '@clickview/shared';
3
+ interface VideoTitleProps {
4
+ video: Video;
5
+ }
6
+ export declare function VideoTitle(props: VideoTitleProps): React.ReactElement;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { CurrentUser } from '@clickview/shared';
3
+ interface UserOptionsProps {
4
+ user: CurrentUser;
5
+ }
6
+ /**
7
+ * TODO: Implement user options properly;
8
+ */
9
+ export declare function UserOptions(props: UserOptionsProps): React.ReactElement;
10
+ export {};
@@ -0,0 +1,5 @@
1
+ import { Core } from '@clickview/common';
2
+ export declare class NotFoundError extends Core.SilentError {
3
+ constructor();
4
+ get name(): string;
5
+ }
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ export * from './AlertError';
2
+ export * from './DialogError';
3
+ export * from './ErrorPageError';
@@ -0,0 +1,4 @@
1
+ import { Flight } from '@clickview/common';
2
+ export declare const AudienceRequests: {
3
+ presentationAudiences(): Flight.Request;
4
+ };
@@ -0,0 +1,4 @@
1
+ import { Flight } from '@clickview/common';
2
+ export declare const PlaylistRequests: {
3
+ getUserPlaylists(cursor?: string): Flight.Request;
4
+ };
@@ -0,0 +1,4 @@
1
+ import { Flight } from '@clickview/common';
2
+ export declare const ShareRequests: {
3
+ sharedResource(shortCode: string): Flight.Request;
4
+ };
@@ -0,0 +1,5 @@
1
+ export * from './constants';
2
+ export * from './errors';
3
+ export * from './layouts';
4
+ export * from './constants';
5
+ export * from './flight-requests';
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { Store } from 'redux';
3
+ export interface EmbedLayoutComponentProps {
4
+ store: Store;
5
+ contentChild?: React.ReactNode;
6
+ }
7
+ declare function WrapLayoutWithProviders(props: EmbedLayoutComponentProps): JSX.Element;
8
+ export { WrapLayoutWithProviders as EmbedLayoutComponent };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { ReactLayoutView, HashObject } from '@clickview/common';
3
+ export declare class EmbedLayoutView extends ReactLayoutView {
4
+ protected childComponents: {
5
+ [index: string]: React.ReactNode;
6
+ };
7
+ get title(): boolean;
8
+ get name(): string;
9
+ get template(): any;
10
+ static getCacheKey(): string;
11
+ regions(): HashObject;
12
+ private getChildComponents;
13
+ protected unsetRegion(region: string): void;
14
+ closePopup(): void;
15
+ showChildView(region: string, component: React.ReactElement): void;
16
+ renderLayout(): void;
17
+ }
@@ -0,0 +1,11 @@
1
+ import { Flight } from '@clickview/common';
2
+ interface InfiniteScrollProps<T> {
3
+ items: T[];
4
+ shouldInitialFetch: boolean;
5
+ nextCursor: string;
6
+ isFetching: boolean;
7
+ }
8
+ export declare const InfiniteScrollHelper: {
9
+ getInfiniteScrollProps<T>(state: Flight.ApplicationState, getKey: (cursor?: string) => string): InfiniteScrollProps<T>;
10
+ };
11
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Core } from '@clickview/common';
2
+ import { Video, VideoAction } from '@clickview/shared';
3
+ export declare function getVideoActionAppLink(video: Video, action: VideoAction): Core.AppLink;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { Core } from '@clickview/common';
3
+ interface BackboneWrapperViewProps {
4
+ view: () => Core.View;
5
+ className?: string;
6
+ }
7
+ export declare function BackboneWrapperView({ view, className }: BackboneWrapperViewProps): JSX.Element;
8
+ export {};
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface FavoriteVideosProps {
3
+ cursor?: string;
4
+ }
5
+ export declare function FavoriteVideos(props: FavoriteVideosProps): JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface FavoriteVideosViewProps {
3
+ cursor?: string;
4
+ }
5
+ export declare function FavoriteVideosView(props: FavoriteVideosViewProps): JSX.Element;
6
+ export {};
@@ -0,0 +1 @@
1
+ export * from './FavoriteVideos';
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * this should eventually be in whatever application directory `MyUploadsView` ends up in
4
+ */
5
+ export declare function MyUploadsBannerActions(): JSX.Element;
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare function BackButton(): React.ReactElement;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ interface PlayViewProps {
3
+ shortCode: string;
4
+ }
5
+ export declare function PlaySharedView(props: PlayViewProps): React.ReactElement;
6
+ export {};
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
- {
2
- "name": "@clickview/lite",
3
- "version": "0.0.3",
4
- "description": "ClickView Lite",
5
- "main": "dist/bundle.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "start": "set NODE_ENV=development&& webpack -w --config ./tooling/webpack.config.js",
9
- "build": "set NODE_ENV=production&& webpack --config ./tooling/webpack.config.js",
10
- "dev-build": "set NODE_ENV=development&& webpack --config ./tooling/webpack.config.js"
11
- },
12
- "repository": {
13
- "type": "git",
14
- "url": "http://gitlab.cvinternal.net/front-end/lite.git"
15
- },
16
- "cv": {
17
- "publishable": true,
18
- "rebuildable": true
19
- },
20
- "author": "Joshua Taylor, Shale Kuzmanovski, Matt Trengrove, Michael McDonnell",
21
- "license": "ISC",
22
- "devDependencies": {
23
- "@clickview/tooling": "0.0.12",
24
- "@types/react-custom-scrollbars": "4.0.6"
25
- },
26
- "dependencies": {
27
- "@clickview/common": "1.0.2",
28
- "@clickview/playlists": "1.0.2",
29
- "@clickview/shared": "1.0.2",
30
- "@clickview/styles": "1.0.2",
31
- "react-custom-scrollbars": "4.2.1"
32
- },
33
- "babel": {
34
- "presets": [
35
- [
36
- "@babel/preset-env",
37
- {
38
- "corejs": 3,
39
- "useBuiltIns": "entry"
40
- }
41
- ]
42
- ]
43
- }
44
- }
1
+ {
2
+ "name": "@clickview/lite",
3
+ "version": "0.0.4-rc.0",
4
+ "description": "ClickView Lite",
5
+ "main": "dist/bundle.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "start": "set NODE_ENV=development&& webpack -w --config ./tooling/webpack.config.js",
9
+ "build": "set NODE_ENV=production&& webpack --config ./tooling/webpack.config.js",
10
+ "dev-build": "set NODE_ENV=development&& webpack --config ./tooling/webpack.config.js"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "http://gitlab.cvinternal.net/front-end/lite.git"
15
+ },
16
+ "cv": {
17
+ "publishable": true,
18
+ "rebuildable": true
19
+ },
20
+ "author": "Joshua Taylor, Shale Kuzmanovski, Matt Trengrove, Michael McDonnell",
21
+ "license": "ISC",
22
+ "devDependencies": {
23
+ "@clickview/tooling": "0.0.12",
24
+ "@types/react-custom-scrollbars": "4.0.6"
25
+ },
26
+ "dependencies": {
27
+ "@clickview/common": "1.0.3-rc.0",
28
+ "@clickview/playlists": "1.0.3-rc.0",
29
+ "@clickview/shared": "1.0.3-rc.0",
30
+ "@clickview/styles": "1.0.2",
31
+ "react-custom-scrollbars": "4.2.1"
32
+ },
33
+ "babel": {
34
+ "presets": [
35
+ [
36
+ "@babel/preset-env",
37
+ {
38
+ "corejs": 3,
39
+ "useBuiltIns": "entry"
40
+ }
41
+ ]
42
+ ]
43
+ }
44
+ }