@clickview/player 0.0.7 → 0.0.8-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/en.json +1 -1
  2. package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +1 -0
  3. package/dist/libs/common/src/backbone/enums/HttpStatus.d.ts +7 -0
  4. package/dist/libs/common/src/react/flight/constants/Actions.d.ts +1 -1
  5. package/dist/libs/shared/src/apps/search/interfaces/SearchFilter.d.ts +0 -1
  6. package/dist/libs/shared/src/components/actions/Actions.d.ts +0 -1
  7. package/dist/libs/shared/src/components/avatar/Avatar.d.ts +0 -1
  8. package/dist/libs/shared/src/components/feedback-tooltip/FeedbackTooltip.d.ts +0 -1
  9. package/dist/libs/shared/src/components/{thumbnails/base/BaseThumbnail.d.ts → image/BaseImage.d.ts} +4 -9
  10. package/dist/libs/shared/src/components/image-cropper/SimpleCropper.d.ts +0 -1
  11. package/dist/libs/shared/src/components/immersive-reader/ImmersiveReader.d.ts +0 -1
  12. package/dist/libs/shared/src/components/interaction-answers/multiple-choice/MultipleChoiceInteractionAnswers.d.ts +0 -1
  13. package/dist/libs/shared/src/components/interaction-answers/true-or-false/TrueOrFalseInteractionAnswers.d.ts +0 -1
  14. package/dist/libs/shared/src/components/interactive-questions/InteractionLabel.d.ts +0 -1
  15. package/dist/libs/shared/src/hooks/useNavLock.d.ts +1 -0
  16. package/dist/libs/shared/src/images/svg/ImportedSvgs.d.ts +3 -1
  17. package/dist/libs/shared/src/images/svg/objects/index.d.ts +3 -1
  18. package/dist/libs/shared/src/interfaces/FavouriteFunc.d.ts +2 -0
  19. package/dist/libs/shared/src/interfaces/index.d.ts +1 -1
  20. package/dist/libs/shared/src/interfaces/models/CategoryTree.d.ts +3 -0
  21. package/dist/libs/shared/src/interfaces/models/Clip.d.ts +2 -3
  22. package/dist/libs/shared/src/interfaces/models/Customer.d.ts +2 -2
  23. package/dist/libs/shared/src/interfaces/models/Folder.d.ts +2 -2
  24. package/dist/libs/shared/src/interfaces/models/InteractiveMetadata.d.ts +2 -5
  25. package/dist/libs/shared/src/interfaces/models/Library.d.ts +3 -1
  26. package/dist/libs/shared/src/interfaces/models/Logo.d.ts +3 -0
  27. package/dist/libs/shared/src/interfaces/models/MasterNestedObject.d.ts +5 -0
  28. package/dist/libs/shared/src/interfaces/models/index.d.ts +3 -0
  29. package/dist/libs/shared/src/interfaces/services/BaseLibraryDataService.d.ts +0 -5
  30. package/dist/player-app.css +1 -1
  31. package/dist/player-app.js +19 -52
  32. package/dist/projects/player/src/components/cog-button/cog-button.d.ts +4 -1
  33. package/dist/projects/player/src/players/interactive-player.d.ts +6 -4
  34. package/dist/projects/player/src/players/player.d.ts +1 -1
  35. package/dist/projects/player/src/players/reports/reports-player.d.ts +10 -1
  36. package/dist/projects/player/src/plugins/engagement-overlay-plugin/components/engagement-overlay/engagement-overlay-chart-options.d.ts +7 -0
  37. package/dist/projects/player/src/plugins/engagement-overlay-plugin/components/engagement-overlay/engagement-overlay.d.ts +73 -0
  38. package/dist/projects/player/src/plugins/engagement-overlay-plugin/components/engagement-overlay-menu-item/engagement-overlay-menu-item.d.ts +31 -0
  39. package/dist/projects/player/src/plugins/engagement-overlay-plugin/components/timepoint-interactions/timepoint-interactions.d.ts +7 -0
  40. package/dist/projects/player/src/plugins/engagement-overlay-plugin/engagement-overlay-plugin.d.ts +5 -1
  41. package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-annotation/create-annotation-link.d.ts +0 -1
  42. package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-image/create-image-cropper.d.ts +0 -1
  43. package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-image/upload-image-icon.d.ts +0 -1
  44. package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-missing-word/create-missing-word.d.ts +0 -1
  45. package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-multiple-choice/create-multiple-choice.d.ts +0 -1
  46. package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-multiple-choice/multiple-choice-answer.d.ts +0 -1
  47. package/dist/projects/player/src/plugins/interactive-plugin/interactive-seek-bar-plugin.d.ts +38 -0
  48. package/dist/projects/player/src/utils/interactive-track-helper.d.ts +5 -0
  49. package/package.json +3 -3
  50. package/dist/libs/shared/src/interfaces/FavouriteVideoFunc.d.ts +0 -2
  51. package/dist/projects/player/src/plugins/engagement-overlay-plugin/components/engagement-overlay.d.ts +0 -1
@@ -1,5 +1,6 @@
1
- import { CollapsibleComponent } from 'projects/player/interfaces/CollapsibleComponent';
2
1
  import videojs, { VideoJsPlayer } from 'video.js';
2
+ import { HashObject } from 'libs/common/react/interfaces';
3
+ import { CollapsibleComponent } from 'projects/player/interfaces/CollapsibleComponent';
3
4
  import './cog-button.scss';
4
5
  declare const MenuItem: {
5
6
  new (player: VideoJsPlayer, options?: videojs.MenuItemOptions): videojs.MenuItem;
@@ -7,7 +8,9 @@ declare const MenuItem: {
7
8
  };
8
9
  interface AdditionalMenuItem {
9
10
  index: number;
11
+ name: string;
10
12
  ctor: typeof MenuItem;
13
+ options?: HashObject;
11
14
  }
12
15
  interface CogMenuItemOptions extends videojs.ComponentOptions {
13
16
  item: CollapsibleComponent;
@@ -1,13 +1,14 @@
1
1
  import { HtmlPortalNode } from 'react-reverse-portal';
2
- import { BasePlayer, BasePlayerOptions } from './base-player';
2
+ import { HashObject } from 'libs/analytics/interfaces';
3
3
  import { CurrentUser } from 'libs/shared/interfaces';
4
+ import 'projects/player/plugins/favourite-plugin/favourite-plugin';
5
+ import 'projects/player/plugins/interactive-plugin/interactive-plugin';
4
6
  import { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';
5
7
  import { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';
6
8
  import { AnalyticsPlayerType } from 'projects/player/services/analytics-service';
7
9
  import { ProgressEvent } from 'projects/player/plugins/progress-reporter-plugin/progress-reporter-plugin';
8
- import 'projects/player/plugins/interactive-plugin/interactive-plugin';
9
- import { PlayerWrapperOptions } from '../components/player/player';
10
- import { HashObject } from 'libs/analytics/interfaces';
10
+ import { PlayerWrapperOptions } from 'projects/player/components/player/player';
11
+ import { BasePlayer, BasePlayerOptions } from './base-player';
11
12
  export interface InteractivePlayerOptions extends BasePlayerOptions {
12
13
  mode?: InteractiveMode;
13
14
  imageApi?: URL;
@@ -31,4 +32,5 @@ export declare class InteractivePlayer extends BasePlayer {
31
32
  protected getAdditionalAnalyticsData(playbackObject: PlaybackObject): HashObject;
32
33
  protected getSeekBarOptions(): any;
33
34
  protected getAnalyticsPlayerType(): AnalyticsPlayerType;
35
+ setFavourite(isFavourited: boolean, onClickFavourite: () => void): void;
34
36
  }
@@ -14,10 +14,10 @@ export declare class Player extends BasePlayer {
14
14
  protected options: PlayerOptions;
15
15
  constructor(id: string | Element, options: PlayerOptions);
16
16
  protected configurePlugins(): void;
17
- setFavourite(isFavourited: boolean, onClickFavourite: () => void): void;
18
17
  setNextVideo(nextVideo: NextVideo, onPlayNext: () => void): void;
19
18
  enablePictureInPicture(): void;
20
19
  disablePictureInPicture(): void;
21
20
  togglePictureInPicture(isInPictureInPicture: boolean): void;
22
21
  protected additionalSetup(playbackObject: PlaybackObject): Promise<void>;
22
+ setFavourite(isFavourited: boolean, onClickFavourite: () => void): void;
23
23
  }
@@ -1,14 +1,23 @@
1
+ import { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';
1
2
  import { BasePlayer, BasePlayerOptions } from 'projects/player/players/base-player';
2
3
  import 'projects/player/plugins/engagement-overlay-plugin/engagement-overlay-plugin';
4
+ import 'projects/player/plugins/clip-plugin/clip-plugin';
5
+ import 'projects/player/plugins/interactive-plugin/interactive-seek-bar-plugin';
3
6
  import { AnalyticsPlayerType } from 'projects/player/services/analytics-service';
4
7
  import './reports-player.scss';
5
8
  export interface ReportsPlayerOptions extends BasePlayerOptions {
6
9
  heatMap: number[];
10
+ onTimepointHover?: (time: number | null) => void;
7
11
  }
8
12
  export declare class ReportsPlayer extends BasePlayer {
9
13
  protected options: ReportsPlayerOptions;
14
+ private track;
10
15
  constructor(id: string | Element, options: ReportsPlayerOptions);
11
16
  protected getPlayerClassName(): string;
12
- protected configurePlugins(): void;
13
17
  protected getAnalyticsPlayerType(): AnalyticsPlayerType;
18
+ protected additionalSetup(playbackObject: PlaybackObject): Promise<void>;
19
+ private setupEngagementOverlayPlugin;
20
+ private setupUpClipPlugin;
21
+ private setupInteractiveSeekBarPlugin;
22
+ protected getSeekBarOptions(): any;
14
23
  }
@@ -0,0 +1,7 @@
1
+ import Highcharts from 'highcharts';
2
+ import { Interactive } from 'libs/shared/interfaces';
3
+ export declare const STATIC_CHART_OPTIONS: Highcharts.Options;
4
+ export declare function getChartOptions(width: number, height: number): Highcharts.ChartOptions;
5
+ export declare function getYAxisChartOptions(heatMap: number[]): Highcharts.YAxisOptions;
6
+ export declare function getTooltipOptions(interactive: Interactive): Highcharts.TooltipOptions;
7
+ export declare function getPlotOptions(moveTimepointIndicator: (x: number | null) => void): Highcharts.PlotOptions;
@@ -0,0 +1,73 @@
1
+ import videojs, { VideoJsPlayer } from 'video.js';
2
+ import { Interactive } from 'libs/shared/interfaces';
3
+ import './engagement-overlay.scss';
4
+ declare const Component: {
5
+ new (player: VideoJsPlayer, options?: videojs.ComponentOptions, ready?: videojs.Component.ReadyCallback): videojs.Component;
6
+ prototype: videojs.Component;
7
+ getComponent(name: "Button" | "button"): {
8
+ new (player: VideoJsPlayer, options?: videojs.ComponentOptions): videojs.Button;
9
+ prototype: videojs.Button;
10
+ };
11
+ getComponent(name: "ClickableComponent" | "clickablecomponent"): {
12
+ new (player: VideoJsPlayer, options?: videojs.ComponentOptions): videojs.ClickableComponent;
13
+ prototype: videojs.ClickableComponent;
14
+ };
15
+ getComponent(name: "ModalDialog" | "modaldialog"): {
16
+ new (player: VideoJsPlayer, options?: videojs.ModalDialogOptions): videojs.ModalDialog;
17
+ prototype: videojs.ModalDialog;
18
+ };
19
+ getComponent(name: "Menu" | "menu"): {
20
+ new (player: VideoJsPlayer, options?: videojs.MenuOptions): videojs.Menu;
21
+ prototype: videojs.Menu;
22
+ };
23
+ getComponent(name: "MenuButton" | "menubutton"): {
24
+ new (player: VideoJsPlayer, options?: videojs.MenuButtonOptions): videojs.MenuButton;
25
+ prototype: videojs.MenuButton;
26
+ };
27
+ getComponent(name: "MenuItem" | "menuitem"): {
28
+ new (player: VideoJsPlayer, options?: videojs.MenuItemOptions): videojs.MenuItem;
29
+ prototype: videojs.MenuItem;
30
+ };
31
+ getComponent(name: "MouseTimeDisplay" | "mouseTimeDisplay"): {
32
+ new (player: VideoJsPlayer, options?: videojs.ComponentOptions): videojs.MouseTimeDisplay;
33
+ prototype: videojs.MouseTimeDisplay;
34
+ };
35
+ getComponent(name: "Spacer" | "spacer"): {
36
+ new (player: VideoJsPlayer, options?: videojs.ComponentOptions, ready?: videojs.Component.ReadyCallback): videojs.Spacer;
37
+ prototype: videojs.Spacer;
38
+ };
39
+ getComponent(name: "Player" | "player"): {
40
+ new (player: VideoJsPlayer, options?: import("video.js").VideoJsPlayerOptions): VideoJsPlayer;
41
+ prototype: VideoJsPlayer;
42
+ getTagSettings(tag: Element): any;
43
+ };
44
+ getComponent(name: "timeTooltip" | "TimeTooltip"): {
45
+ new (player: VideoJsPlayer, options?: videojs.ComponentOptions): videojs.TimeToolTip;
46
+ prototype: videojs.TimeToolTip;
47
+ };
48
+ getComponent(name: string): any;
49
+ registerComponent(name: string, ComponentToRegister: any): any;
50
+ };
51
+ interface EngagementOverlayOptions extends videojs.ComponentOptions {
52
+ heatMap: number[];
53
+ interactive?: Interactive;
54
+ onTimepointHover?: (time: number | null) => void;
55
+ }
56
+ export declare class EngagementOverlay extends Component {
57
+ options_: EngagementOverlayOptions;
58
+ private chart;
59
+ constructor(player: VideoJsPlayer, options: EngagementOverlayOptions);
60
+ initialize(): void;
61
+ buildCSSClass(): string;
62
+ createEl(tagName?: string, properties?: any, attributes?: any): Element;
63
+ toggleChart(show: boolean): void;
64
+ private bindListeners;
65
+ private handleClick;
66
+ private buildChart;
67
+ private resizeChart;
68
+ private destroyChart;
69
+ private getChartDimensions;
70
+ private getHighchartOptions;
71
+ private moveTimepointIndicator;
72
+ }
73
+ export {};
@@ -0,0 +1,31 @@
1
+ import videojs, { VideoJsPlayer } from 'video.js';
2
+ declare const MenuItem: {
3
+ new (player: VideoJsPlayer, options?: videojs.MenuItemOptions): videojs.MenuItem;
4
+ prototype: videojs.MenuItem;
5
+ };
6
+ interface EngagementOverlayMenuItemOptions extends videojs.MenuItemOptions {
7
+ overlayVisible: boolean;
8
+ }
9
+ export declare class EngagementOverlayMenuItem extends MenuItem {
10
+ private toggleEl;
11
+ private overlayVisible;
12
+ /**
13
+ * Because we want to bind our listener in createEl
14
+ * and createEl runs in super. We store if we've bounud
15
+ * our handler, so we only call bind once and
16
+ * the call to removeEventListener will still work
17
+ */
18
+ private handlerBound;
19
+ constructor(player: VideoJsPlayer, options: EngagementOverlayMenuItemOptions);
20
+ handleToggle(): void;
21
+ private toggle;
22
+ private toggleOn;
23
+ private toggleOff;
24
+ /**
25
+ * Because we extend MenuItem which will close the menu by default
26
+ * we need to halt the event propogation here
27
+ */
28
+ handleClick(event: videojs.EventTarget.Event): void;
29
+ createEl(tagName?: string, properties?: any, attributes?: any): HTMLLIElement;
30
+ }
31
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Interactive } from 'libs/shared/interfaces';
2
+ interface TimepointInteractionsProps {
3
+ interactive: Interactive;
4
+ time: number;
5
+ }
6
+ export declare function TimepointInteractions(props: TimepointInteractionsProps): JSX.Element;
7
+ export {};
@@ -1,5 +1,6 @@
1
1
  import videojs, { VideoJsPlayer } from 'video.js';
2
- import 'projects/player/plugins/engagement-overlay-plugin/components/engagement-overlay';
2
+ import { Interactive } from 'libs/shared/interfaces';
3
+ import 'projects/player/plugins/engagement-overlay-plugin/components/engagement-overlay/engagement-overlay';
3
4
  declare const Plugin: {
4
5
  new (player: VideoJsPlayer, options?: any): videojs.Plugin;
5
6
  prototype: videojs.Plugin;
@@ -16,11 +17,14 @@ declare const Plugin: {
16
17
  };
17
18
  interface EngagementOverlayPluginOptions {
18
19
  heatMap: number[];
20
+ interactive?: Interactive;
21
+ onTimepointHover?: (time: number | null) => void;
19
22
  }
20
23
  declare class EngagementOverlayPlugin extends Plugin {
21
24
  private options;
22
25
  constructor(player: VideoJsPlayer, options: EngagementOverlayPluginOptions);
23
26
  private initialize;
27
+ toggleOverlay(show: boolean): void;
24
28
  }
25
29
  declare module 'video.js' {
26
30
  interface VideoJsPlayer {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  interface LinkState {
3
2
  link: string;
4
3
  selectionText: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  interface CreateImageCropperProps {
3
2
  image: HTMLImageElement;
4
3
  imageAlt: string;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function UploadImageIcon(): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Interaction } from 'libs/shared/interfaces';
3
2
  import { InteractionProps, CreateInteractionState } from 'projects/player/plugins/interactive-plugin/interfaces';
4
3
  interface Word {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Interaction } from 'libs/shared/interfaces';
3
2
  import { InteractionProps, CreateInteractionState } from 'projects/player/plugins/interactive-plugin/interfaces';
4
3
  import './create-multiple-choice.scss';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MultipleChoiceAnswer } from './create-multiple-choice';
3
2
  interface MultipleChoiceAnswerProps {
4
3
  answer: MultipleChoiceAnswer;
@@ -0,0 +1,38 @@
1
+ import videojs, { VideoJsPlayer } from 'video.js';
2
+ import { Interactive } from 'libs/shared/interfaces';
3
+ import './interactive-plugin-styles.scss';
4
+ declare const Plugin: {
5
+ new (player: VideoJsPlayer, options?: any): videojs.Plugin;
6
+ prototype: videojs.Plugin;
7
+ BASE_PLUGIN_NAME: string;
8
+ deregisterPlugin(name: string): void;
9
+ getPlugin(name: string): any;
10
+ getPluginVersion(name: string): string;
11
+ getPlugins(names?: string[]): {
12
+ [name: string]: videojs.Plugin;
13
+ };
14
+ isBasic(plugin: string | (() => any)): boolean;
15
+ registerPlugin<T, K>(name: string, plugin: (this: VideoJsPlayer, ...options: K[]) => T): (...options: K[]) => T;
16
+ registerPlugin<T_1 extends any>(name: string, plugin: T_1): () => T_1;
17
+ };
18
+ interface InteractiveSeekBarPluginOptions {
19
+ interactive: Interactive;
20
+ }
21
+ /**
22
+ * This plugin will just render the interactive seek bar (i.e. just the interaction markers).
23
+ * The user won't be able to interact with any of the interactions.
24
+ * Currently this is just used in reports-player
25
+ */
26
+ declare class InteractiveSeekBarPlugin extends Plugin {
27
+ private options;
28
+ constructor(player: VideoJsPlayer, options: InteractiveSeekBarPluginOptions);
29
+ private initialize;
30
+ private onTrackLoaded;
31
+ private addChildren;
32
+ }
33
+ declare module 'video.js' {
34
+ interface VideoJsPlayer {
35
+ interactiveSeekBarPlugin(options?: InteractiveSeekBarPluginOptions): InteractiveSeekBarPlugin;
36
+ }
37
+ }
38
+ export {};
@@ -0,0 +1,5 @@
1
+ import { VideoJsPlayer } from 'video.js';
2
+ import { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';
3
+ export declare const InteractiveTrackHelper: {
4
+ getInteractiveTrack(player: VideoJsPlayer, playbackObject: PlaybackObject): TextTrack;
5
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/player",
3
- "version": "0.0.7",
3
+ "version": "0.0.8-dev.0",
4
4
  "description": "ClickView Player",
5
5
  "main": "dist/player-app.js",
6
6
  "scripts": {
@@ -28,7 +28,7 @@
28
28
  "@babel/core": "7.11.6",
29
29
  "@clickview/eslint-config": "1.0.1",
30
30
  "@clickview/player-font": "0.0.12",
31
- "@clickview/tooling": "0.0.25",
31
+ "@clickview/tooling": "0.0.26-dev.0",
32
32
  "@storybook/react": "6.0.26",
33
33
  "@types/chromecast-caf-sender": "1.0.3",
34
34
  "@types/cropperjs": "1.3.0",
@@ -42,7 +42,7 @@
42
42
  "webpack-dev-server": "3.11.0"
43
43
  },
44
44
  "dependencies": {
45
- "@clickview/styles": "1.0.18",
45
+ "@clickview/styles": "1.0.19-dev.0",
46
46
  "@microsoft/signalr": "5.0.2",
47
47
  "cropperjs": "1.5.6",
48
48
  "draft-convert": "2.1.10",
@@ -1,2 +0,0 @@
1
- import { Video } from './models/Video';
2
- export declare type FavouriteVideoFunc = (video: Video, shouldFavourite: boolean, onSuccess?: () => void, onError?: () => void) => void;