@vouchfor/embeds 0.0.0-experiment.8c5a3f8 → 0.0.0-experiment.8cafed9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. package/dist/es/browser-DfO9Pnu7.js +921 -0
  2. package/dist/es/browser-DfO9Pnu7.js.map +1 -0
  3. package/dist/es/embeds.js +1 -1599
  4. package/dist/es/embeds.js.map +1 -1
  5. package/dist/es/index-5G8orrrP.js +2609 -0
  6. package/dist/es/index-5G8orrrP.js.map +1 -0
  7. package/dist/es/src/components/DialogEmbed/DialogOverlay.d.ts +20 -0
  8. package/dist/es/src/components/DialogEmbed/DialogPortal.d.ts +36 -0
  9. package/dist/es/src/components/DialogEmbed/index.d.ts +38 -0
  10. package/dist/es/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +15 -0
  11. package/dist/es/src/components/{Embed → PlayerEmbed}/controllers/fetcher.d.ts +5 -4
  12. package/dist/es/src/components/{Embed/controllers/tracking.d.ts → PlayerEmbed/controllers/tracking/index.d.ts} +14 -11
  13. package/dist/es/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +17 -0
  14. package/dist/es/src/components/{Embed → PlayerEmbed}/index.d.ts +28 -21
  15. package/dist/es/src/components/PlayerEmbed/tests/data.d.ts +3 -0
  16. package/dist/es/src/index.d.ts +2 -1
  17. package/dist/iife/dialog-embed/browser-DCzTItVw.js +429 -0
  18. package/dist/iife/dialog-embed/browser-DCzTItVw.js.map +1 -0
  19. package/dist/iife/dialog-embed/embed.iife.js +1750 -0
  20. package/dist/iife/dialog-embed/embed.iife.js.map +1 -0
  21. package/dist/iife/dialog-embed/embed.js +5 -0
  22. package/dist/iife/dialog-embed/embed.js.map +1 -0
  23. package/dist/iife/dialog-embed/index-CgdXxP5z.js +27698 -0
  24. package/dist/iife/dialog-embed/index-CgdXxP5z.js.map +1 -0
  25. package/dist/iife/dialog-embed/src/components/DialogEmbed/DialogOverlay.d.ts +20 -0
  26. package/dist/iife/dialog-embed/src/components/DialogEmbed/DialogPortal.d.ts +36 -0
  27. package/dist/iife/dialog-embed/src/components/DialogEmbed/index.d.ts +38 -0
  28. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +15 -0
  29. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/fetcher.d.ts +14 -0
  30. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/tracking/index.d.ts +36 -0
  31. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +17 -0
  32. package/dist/iife/dialog-embed/src/components/PlayerEmbed/index.d.ts +74 -0
  33. package/dist/iife/dialog-embed/src/components/PlayerEmbed/tests/data.d.ts +3 -0
  34. package/dist/iife/dialog-embed/src/index.d.ts +2 -0
  35. package/dist/iife/dialog-embed/src/utils/env.d.ts +12 -0
  36. package/dist/iife/dialog-embed/src/utils/events.d.ts +2 -0
  37. package/dist/iife/embeds.iife.js +661 -456
  38. package/dist/iife/embeds.iife.js.map +1 -1
  39. package/dist/iife/player-embed/browser-BBSMddCs.js +429 -0
  40. package/dist/iife/player-embed/browser-BBSMddCs.js.map +1 -0
  41. package/dist/iife/player-embed/embed.iife.js +1612 -0
  42. package/dist/iife/player-embed/embed.iife.js.map +1 -0
  43. package/dist/iife/player-embed/embed.js +5 -0
  44. package/dist/iife/player-embed/embed.js.map +1 -0
  45. package/dist/iife/player-embed/index-BGZl_iqR.js +27255 -0
  46. package/dist/iife/player-embed/index-BGZl_iqR.js.map +1 -0
  47. package/dist/iife/player-embed/src/components/DialogEmbed/DialogOverlay.d.ts +20 -0
  48. package/dist/iife/player-embed/src/components/DialogEmbed/DialogPortal.d.ts +36 -0
  49. package/dist/iife/player-embed/src/components/DialogEmbed/index.d.ts +38 -0
  50. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +15 -0
  51. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/fetcher.d.ts +14 -0
  52. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/tracking/index.d.ts +36 -0
  53. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +17 -0
  54. package/dist/iife/player-embed/src/components/PlayerEmbed/index.d.ts +74 -0
  55. package/dist/iife/player-embed/src/components/PlayerEmbed/tests/data.d.ts +3 -0
  56. package/dist/iife/player-embed/src/index.d.ts +2 -0
  57. package/dist/iife/player-embed/src/utils/env.d.ts +12 -0
  58. package/dist/iife/player-embed/src/utils/events.d.ts +2 -0
  59. package/package.json +43 -31
  60. package/src/components/DialogEmbed/Dialog.stories.ts +91 -0
  61. package/src/components/DialogEmbed/DialogOverlay.ts +131 -0
  62. package/src/components/DialogEmbed/DialogPortal.ts +126 -0
  63. package/src/components/DialogEmbed/index.ts +97 -0
  64. package/src/components/{Embed/Embed.stories.ts → PlayerEmbed/PlayerEmbed.stories.ts} +26 -14
  65. package/src/components/{Embed → PlayerEmbed}/controllers/event-forwarder.ts +6 -5
  66. package/src/components/{Embed → PlayerEmbed}/controllers/fetcher.ts +33 -14
  67. package/src/components/{Embed/controllers/tracking.ts → PlayerEmbed/controllers/tracking/index.ts} +47 -115
  68. package/src/components/PlayerEmbed/controllers/tracking/utils.ts +95 -0
  69. package/src/components/{Embed → PlayerEmbed}/index.ts +71 -27
  70. package/src/components/PlayerEmbed/tests/PlayerEmbed.spec.ts +80 -0
  71. package/src/components/PlayerEmbed/tests/data.ts +183 -0
  72. package/src/index.ts +2 -1
@@ -0,0 +1,20 @@
1
+ import { LitElement } from 'lit';
2
+ import type { DialogEmbedProps } from '.';
3
+ import '@a11y/focus-trap';
4
+ declare class DialogOverlay extends LitElement {
5
+ static styles: import("lit").CSSResult[];
6
+ open: boolean;
7
+ aspectRatio: DialogEmbedProps['aspectRatio'];
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'vouch-embed-dialog-overlay': DialogOverlay;
13
+ }
14
+ namespace JSX {
15
+ interface IntrinsicElements {
16
+ 'vouch-embed-dialog-overlay': DialogOverlay;
17
+ }
18
+ }
19
+ }
20
+ export { DialogOverlay };
@@ -0,0 +1,36 @@
1
+ import { LitElement } from 'lit';
2
+ import type { DialogEmbedProps } from '.';
3
+ import './DialogOverlay';
4
+ declare class DialogPortal extends LitElement {
5
+ vouchId: DialogEmbedProps['vouchId'];
6
+ templateId: DialogEmbedProps['templateId'];
7
+ questions: DialogEmbedProps['questions'];
8
+ env: DialogEmbedProps['env'];
9
+ apiKey: DialogEmbedProps['apiKey'];
10
+ disableTracking: DialogEmbedProps['disableTracking'];
11
+ trackingSource: DialogEmbedProps['trackingSource'];
12
+ controls: DialogEmbedProps['controls'];
13
+ preload: DialogEmbedProps['preload'];
14
+ disableAutoplay: DialogEmbedProps['disableAutoplay'];
15
+ aspectRatio: DialogEmbedProps['aspectRatio'];
16
+ private _mediaPlayerRef;
17
+ open: boolean;
18
+ private _handleToggle;
19
+ private _handleClose;
20
+ private _handleDocumentKeyUp;
21
+ connectedCallback(): void;
22
+ disconnectedCallback(): void;
23
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
24
+ render(): import("lit-html").TemplateResult<1>;
25
+ }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'vouch-embed-dialog-portal': DialogPortal;
29
+ }
30
+ namespace JSX {
31
+ interface IntrinsicElements {
32
+ 'vouch-embed-dialog-portal': DialogPortal;
33
+ }
34
+ }
35
+ }
36
+ export { DialogPortal };
@@ -0,0 +1,38 @@
1
+ import { LitElement } from 'lit';
2
+ import type { PlayerEmbedProps } from '../PlayerEmbed';
3
+ import '../PlayerEmbed';
4
+ import './DialogPortal';
5
+ type DialogEmbedProps = Omit<PlayerEmbedProps, 'data'> & {
6
+ disableAutoplay?: boolean;
7
+ };
8
+ declare class DialogEmbed extends LitElement {
9
+ static styles: import("lit").CSSResult[];
10
+ vouchId: DialogEmbedProps['vouchId'];
11
+ templateId: DialogEmbedProps['templateId'];
12
+ questions: DialogEmbedProps['questions'];
13
+ env: DialogEmbedProps['env'];
14
+ apiKey: DialogEmbedProps['apiKey'];
15
+ disableTracking: DialogEmbedProps['disableTracking'];
16
+ trackingSource: DialogEmbedProps['trackingSource'];
17
+ controls: DialogEmbedProps['controls'];
18
+ preload: DialogEmbedProps['preload'];
19
+ disableAutoplay: DialogEmbedProps['disableAutoplay'];
20
+ aspectRatio: DialogEmbedProps['aspectRatio'];
21
+ private _id;
22
+ private _handleRootClick;
23
+ connectedCallback(): void;
24
+ disconnectedCallback(): void;
25
+ render(): import("lit-html").TemplateResult<1>;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'vouch-embed-dialog': DialogEmbed;
30
+ }
31
+ namespace JSX {
32
+ interface IntrinsicElements {
33
+ 'vouch-embed-dialog': DialogEmbed;
34
+ }
35
+ }
36
+ }
37
+ export { DialogEmbed };
38
+ export type { DialogEmbedProps };
@@ -0,0 +1,15 @@
1
+ import type { PlayerEmbed } from '..';
2
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
3
+ import type { DirectiveResult } from 'lit/directive.js';
4
+ type PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;
5
+ declare class EventForwardController implements ReactiveController {
6
+ host: PlayerEmbedHost;
7
+ private _events;
8
+ private _cleanup;
9
+ private _forwardElementRef;
10
+ constructor(host: PlayerEmbedHost, events: string[]);
11
+ register(): DirectiveResult;
12
+ hostConnected(): void;
13
+ hostDisconnected(): void;
14
+ }
15
+ export { EventForwardController };
@@ -1,13 +1,14 @@
1
- import type { Embed } from '..';
1
+ import type { PlayerEmbed } from '..';
2
2
  import type { ReactiveControllerHost } from 'lit';
3
- type EmbedHost = ReactiveControllerHost & Embed;
3
+ type PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;
4
4
  declare class FetcherController {
5
- host: EmbedHost;
5
+ host: PlayerEmbedHost;
6
6
  private _fetching;
7
+ private _vouch;
7
8
  set fetching(value: boolean);
8
9
  get fetching(): boolean;
9
10
  private getVouch;
10
11
  private getTemplate;
11
- constructor(host: EmbedHost);
12
+ constructor(host: PlayerEmbedHost);
12
13
  }
13
14
  export { FetcherController };
@@ -1,22 +1,24 @@
1
- import type { Embed } from '..';
1
+ import type { PlayerEmbed } from '../..';
2
2
  import type { ReactiveController, ReactiveControllerHost } from 'lit';
3
- type EmbedHost = ReactiveControllerHost & Embed;
3
+ type PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;
4
+ type TrackingEvent = 'VOUCH_LOADED' | 'VOUCH_RESPONSE_VIEWED' | 'VIDEO_PLAYED' | 'VIDEO_STREAMED';
5
+ type TrackingPayload = {
6
+ vouchId?: string;
7
+ answerId?: string;
8
+ streamStart?: number;
9
+ streamEnd?: number;
10
+ };
4
11
  declare class TrackingController implements ReactiveController {
5
- host: EmbedHost;
6
- private _tabId;
7
- private _clientId;
8
- private _visitorId;
12
+ host: PlayerEmbedHost;
13
+ private _batchedEvents;
9
14
  private _hasPlayed;
10
15
  private _hasLoaded;
11
16
  private _answersViewed;
12
17
  private _streamStartTime;
13
18
  private _streamLatestTime;
14
19
  private _currentlyPlayingVideo;
15
- constructor(host: EmbedHost);
16
- private _findVouchId;
17
- private _createVisitor;
18
- private _getUids;
19
- private _getReportingMetadata;
20
+ constructor(host: PlayerEmbedHost);
21
+ private _createTrackingEvent;
20
22
  private _sendTrackingEvent;
21
23
  private _streamEnded;
22
24
  private _handleVouchLoaded;
@@ -31,3 +33,4 @@ declare class TrackingController implements ReactiveController {
31
33
  hostDisconnected(): void;
32
34
  }
33
35
  export { TrackingController };
36
+ export type { TrackingEvent, TrackingPayload };
@@ -0,0 +1,17 @@
1
+ import type { TrackingPayload } from '.';
2
+ import type { Vouch } from '@vouchfor/video-utils';
3
+ import type { Environment } from '../../../../utils/env';
4
+ declare function getUids(env: Environment): {
5
+ client: null;
6
+ tab: null;
7
+ request: string;
8
+ visitor?: undefined;
9
+ } | {
10
+ client: string;
11
+ tab: string;
12
+ request: string;
13
+ visitor: string;
14
+ };
15
+ declare function findVouchId(payload?: TrackingPayload, vouch?: Vouch): string | null | undefined;
16
+ declare function getReportingMetadata(source?: string): any;
17
+ export { getUids, findVouchId, getReportingMetadata };
@@ -2,34 +2,39 @@ import { LitElement } from 'lit';
2
2
  import type { Scene, Scenes, TemplateInstance } from '@vouchfor/canvas-video';
3
3
  import type { MediaPlayer, MediaPlayerProps } from '@vouchfor/media-player';
4
4
  import type { Environment } from '../../utils/env';
5
- type EmbedProps = Pick<MediaPlayerProps, 'data' | 'aspectRatio' | 'preload' | 'autoplay' | 'controls'> & {
5
+ import '@vouchfor/media-player';
6
+ type PlayerEmbedProps = Pick<MediaPlayerProps, 'data' | 'aspectRatio' | 'preload' | 'autoplay' | 'controls'> & {
6
7
  env: Environment;
7
8
  apiKey: string;
8
9
  disableTracking?: boolean;
9
10
  trackingSource?: string;
10
11
  vouchId?: string;
11
12
  templateId?: string;
13
+ questions?: number[];
12
14
  };
13
- declare class Embed extends LitElement {
14
- private _mediaPlayerRef;
15
- data: EmbedProps['data'];
16
- vouchId: EmbedProps['vouchId'];
17
- templateId: EmbedProps['templateId'];
18
- env: EmbedProps['env'];
19
- apiKey: EmbedProps['apiKey'];
20
- disableTracking: EmbedProps['disableTracking'];
21
- trackingSource: EmbedProps['trackingSource'];
22
- controls: EmbedProps['controls'];
23
- preload: EmbedProps['preload'];
24
- autoplay: EmbedProps['autoplay'];
25
- aspectRatio: EmbedProps['aspectRatio'];
15
+ declare class PlayerEmbed extends LitElement {
16
+ static styles: import("lit").CSSResult[];
17
+ data: PlayerEmbedProps['data'];
18
+ vouchId: PlayerEmbedProps['vouchId'];
19
+ templateId: PlayerEmbedProps['templateId'];
20
+ questions: PlayerEmbedProps['questions'];
21
+ env: PlayerEmbedProps['env'];
22
+ apiKey: PlayerEmbedProps['apiKey'];
23
+ disableTracking: PlayerEmbedProps['disableTracking'];
24
+ trackingSource: PlayerEmbedProps['trackingSource'];
25
+ controls: PlayerEmbedProps['controls'];
26
+ preload: PlayerEmbedProps['preload'];
27
+ autoplay: PlayerEmbedProps['autoplay'];
28
+ aspectRatio: PlayerEmbedProps['aspectRatio'];
26
29
  private eventController;
27
30
  private _fetcherController;
28
31
  private _trackingController;
29
- vouch: EmbedProps['data'];
32
+ vouch: PlayerEmbedProps['data'];
30
33
  template: TemplateInstance | undefined;
31
34
  get fetching(): boolean;
35
+ private _mediaPlayerRef;
32
36
  get waiting(): boolean | undefined;
37
+ get initialised(): Promise<boolean> | undefined;
33
38
  get seeking(): boolean | undefined;
34
39
  get paused(): boolean | undefined;
35
40
  get captions(): boolean | undefined;
@@ -46,22 +51,24 @@ declare class Embed extends LitElement {
46
51
  get scene(): Scene | null;
47
52
  get scenes(): Scene[];
48
53
  get sceneConfig(): Scenes | null;
49
- get videoState(): import("@vouchfor/media-player/dist/src/components/MediaPlayer/controllers/scenes").VideoStateMap | undefined;
54
+ get videoState(): import("@vouchfor/media-player").VideoStateMap | undefined;
50
55
  get mediaPlayer(): MediaPlayer | undefined;
51
56
  play(): void;
52
57
  pause(): void;
58
+ reset(time?: number, play?: boolean): void;
53
59
  setScene(index: number): void;
54
- render(): import("lit").TemplateResult<1>;
60
+ private _renderStyles;
61
+ render(): import("lit-html").TemplateResult<1>;
55
62
  }
56
63
  declare global {
57
64
  interface HTMLElementTagNameMap {
58
- 'vouch-embed': Embed;
65
+ 'vouch-embed-player': PlayerEmbed;
59
66
  }
60
67
  namespace JSX {
61
68
  interface IntrinsicElements {
62
- 'vouch-embed': Embed;
69
+ 'vouch-embed-player': PlayerEmbed;
63
70
  }
64
71
  }
65
72
  }
66
- export { Embed };
67
- export type { EmbedProps };
73
+ export { PlayerEmbed };
74
+ export type { PlayerEmbedProps };
@@ -0,0 +1,3 @@
1
+ import type { Vouch } from '@vouchfor/video-utils';
2
+ declare const data: Vouch;
3
+ export { data };
@@ -1 +1,2 @@
1
- export { Embed } from './components/Embed';
1
+ export { PlayerEmbed } from './components/PlayerEmbed';
2
+ export { DialogEmbed } from './components/DialogEmbed';