@annoto/widget-api 2.10.0-alpha.1 → 3.0.0-alpha.2

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 (36) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/build/api/index.d.ts +40 -0
  3. package/dist/build/api/index.d.ts.map +1 -0
  4. package/dist/build/api/index.js +18 -0
  5. package/dist/build/api/index.js.map +1 -0
  6. package/dist/build/config/hooks.d.ts +87 -0
  7. package/dist/build/config/hooks.d.ts.map +1 -0
  8. package/dist/build/config/hooks.js +3 -0
  9. package/dist/build/config/hooks.js.map +1 -0
  10. package/dist/build/config/index.d.ts +88 -0
  11. package/dist/build/config/index.d.ts.map +1 -0
  12. package/dist/build/config/index.js +25 -0
  13. package/dist/build/config/index.js.map +1 -0
  14. package/dist/build/config/ux.d.ts +153 -0
  15. package/dist/build/config/ux.d.ts.map +1 -0
  16. package/dist/build/config/ux.js +3 -0
  17. package/dist/build/config/ux.js.map +1 -0
  18. package/dist/build/config/widget.d.ts +70 -0
  19. package/dist/build/config/widget.d.ts.map +1 -0
  20. package/dist/build/config/widget.js +3 -0
  21. package/dist/build/config/widget.js.map +1 -0
  22. package/dist/build/index.d.ts +22 -0
  23. package/dist/build/index.d.ts.map +1 -0
  24. package/dist/build/index.js +20 -0
  25. package/dist/build/index.js.map +1 -0
  26. package/dist/build/player-adapter/index.d.ts +291 -0
  27. package/dist/build/player-adapter/index.d.ts.map +1 -0
  28. package/dist/build/player-adapter/index.js +17 -0
  29. package/dist/build/player-adapter/index.js.map +1 -0
  30. package/dist/build_esm/config/hooks.d.ts +18 -2
  31. package/dist/build_esm/config/hooks.d.ts.map +1 -1
  32. package/dist/build_esm/config/ux.d.ts +4 -4
  33. package/dist/build_esm/config/ux.d.ts.map +1 -1
  34. package/dist/tsconfig.module.tsbuildinfo +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.0.0-alpha.2](https://bitbucket.org/annototeam/annoto/compare/v3.0.0-alpha.1...v3.0.0-alpha.2) (2021-12-19)
7
+
8
+
9
+ ### Features
10
+
11
+ * **widget-api:** added optional setup hook ([3f23f19](https://bitbucket.org/annototeam/annoto/commits/3f23f19c91b599252e438d3101ad2140eb63f0ab))
12
+
13
+
14
+
15
+
16
+
17
+ # [3.0.0-alpha.0](https://bitbucket.org/annototeam/annoto/compare/v2.10.0-alpha.3...v3.0.0-alpha.0) (2021-12-13)
18
+
19
+ **Note:** Version bump only for package @annoto/widget-api
20
+
21
+
22
+
23
+
24
+
25
+ # [2.10.0-alpha.3](https://bitbucket.org/annototeam/annoto/compare/v2.10.0-alpha.2...v2.10.0-alpha.3) (2021-12-08)
26
+
27
+ **Note:** Version bump only for package @annoto/widget-api
28
+
29
+
30
+
31
+
32
+
33
+ # [2.10.0-alpha.2](https://bitbucket.org/annototeam/annoto/compare/v2.10.0-alpha.1...v2.10.0-alpha.2) (2021-12-08)
34
+
35
+ **Note:** Version bump only for package @annoto/widget-api
36
+
37
+
38
+
39
+
40
+
6
41
  # [2.10.0-alpha.1](https://bitbucket.org/annototeam/annoto/compare/v2.10.0-alpha.0...v2.10.0-alpha.1) (2021-12-08)
7
42
 
8
43
  **Note:** Version bump only for package @annoto/widget-api
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @module Api
3
+ */
4
+ import { IConfig } from '../config';
5
+ import { IMetadata } from './metadata';
6
+ export * from './metadata';
7
+ export * from './device-detector';
8
+ export interface IAnnotoApi {
9
+ /**
10
+ * Single Sign On (SSO) user authentication
11
+ * @param token
12
+ */
13
+ auth(token: string): Promise<void>;
14
+ /**
15
+ * Load new application configuration
16
+ * @param config
17
+ */
18
+ load(config: IConfig): Promise<void>;
19
+ /**
20
+ * Destroy single or all the widgets
21
+ * @param index if provided destroy specific widget
22
+ */
23
+ destroy(index?: number): Promise<void>;
24
+ /**
25
+ * Logout current user
26
+ */
27
+ logout(): Promise<void>;
28
+ /**
29
+ * Show single or all the widgets
30
+ * @param index if provided show specific widget
31
+ */
32
+ show(index?: number): Promise<void>;
33
+ /**
34
+ * Hide single or all the widgets
35
+ * @param index if provided hide specific widget
36
+ */
37
+ hide(index?: number): Promise<void>;
38
+ getMetadata(): IMetadata;
39
+ }
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAElC,MAAM,WAAW,UAAU;IACvB;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC;;;OAGG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,WAAW,IAAI,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * @module Api
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
13
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ __exportStar(require("./metadata"), exports);
17
+ __exportStar(require("./device-detector"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/api/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;AAIH,6CAA2B;AAC3B,oDAAkC"}
@@ -0,0 +1,87 @@
1
+ import { IConfig } from '.';
2
+ import { IMediaDetails } from './media-details';
3
+ /**
4
+ * Callback hooks for triggering actions such as auth and getting info
5
+ */
6
+ export interface IHooks {
7
+ /**
8
+ * Callback that allows to modify the configuration
9
+ * This callback is called when media is ready and it's preferences is loaded from the backend
10
+ * @remarks
11
+ * This is the prefered way of modifying the configuration.
12
+ * The best practice is to keep the widget bootstrap configuration to a minimum.
13
+ *
14
+ * @param params
15
+ * @returns the modified configuration to use instead of the provided config in params
16
+ */
17
+ setup?(params: {
18
+ widgetIndex: number;
19
+ config: IConfig;
20
+ mediaSrc: string;
21
+ }): Promise<IConfig | undefined>;
22
+ /**
23
+ * Callback that allows to enrich details about the played media.
24
+ * If provided the function is called by the widget to obtain additional details about the media.
25
+ * @param details media details obtained from the player
26
+ * @returns additional details about the played media, such as title
27
+ */
28
+ mediaDetails?(params: {
29
+ widgetIndex: number;
30
+ mediaSrc: string;
31
+ details?: IMediaDetails;
32
+ }): IMediaDetails | Promise<IMediaDetails>;
33
+ /**
34
+ * For SSO enabled integrations only.
35
+ * If Provided, Will be called when user triggers Authentication.
36
+ * If not provided a message in the form is shown.
37
+ * @returns If possible the promise should reslove/reject when the auth flow is finished.
38
+ */
39
+ ssoAuthRequestHandle?(): Promise<void> | void;
40
+ /**
41
+ * For SSO enabled integrations only.
42
+ * If Provided, Will be called when user triggers Logout action and "Logout" option will appear in the drawer menu.
43
+ * @returns If possible the promise should reslove/reject when the logout flow is finished.
44
+ */
45
+ logoutRequestHandle?(): Promise<void> | void;
46
+ /**
47
+ * Url to the video page.
48
+ * Useful if Annoto is embedded inside iframe for example.
49
+ * default: window.location.href is used.
50
+ */
51
+ getPageUrl?(): string;
52
+ /**
53
+ * Url to the video page and specific playback time of currentTime.
54
+ * If provided will be used by annoto for email notifications, in the dashboard, etc.
55
+ * @param currentTime current playback time of the player in seconds
56
+ * @param mediaSrc the media source of the player
57
+ */
58
+ getMediaDeepLinkUrl?(params: {
59
+ widgetIndex: number;
60
+ currentTime: number;
61
+ mediaSrc: string;
62
+ }): string;
63
+ /**
64
+ * @internal
65
+ * If people and presence are enabled for the site, this api can be implemented to add invites to one on one meetings
66
+ * @param params
67
+ */
68
+ getOneOnOneSessionInvite?(params: IOneOnOneSessionInviteParams): Promise<IOneOnOneSessionInviteResult> | IOneOnOneSessionInviteResult;
69
+ }
70
+ /**
71
+ * @internal
72
+ */
73
+ export interface IOneOnOneSessionInviteParams {
74
+ authorId: string;
75
+ invitedUserId: string;
76
+ }
77
+ /**
78
+ * @internal
79
+ */
80
+ export interface IOneOnOneSessionInviteResult {
81
+ inviteUrl: string;
82
+ inviteUrlText?: string;
83
+ title?: string;
84
+ message?: string;
85
+ inviteButton?: string;
86
+ }
87
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../lib/config/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,MAAM;IACnB;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAE,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC1G;;;;;OAKG;IACH,YAAY,CAAC,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,CAAC;KAAE,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnI;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C;;;;OAIG;IACH,mBAAmB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7C;;;;OAIG;IACH,UAAU,CAAC,IAAI,MAAM,CAAC;IACtB;;;;;OAKG;IACH,mBAAmB,CAAC,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAE,GAAG,MAAM,CAAC;IACtG;;;;OAIG;IACH,wBAAwB,CAAC,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC,GAAG,4BAA4B,CAAC;CACzI;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../lib/config/hooks.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @module Config
3
+ */
4
+ import { IWidgetBackendOptions } from './backend';
5
+ import { IFeatures } from './features';
6
+ import { IGroupDetails } from './group-details';
7
+ import { IHooks } from './hooks';
8
+ import { ILaunchSourceConfig } from './launch-source';
9
+ import { IUx } from './ux';
10
+ import { IWidgetConfig } from './widget';
11
+ export * from './backend';
12
+ export * from './features';
13
+ export * from './group-details';
14
+ export * from './hooks';
15
+ export * from './launch-source';
16
+ export * from './media-details';
17
+ export * from './timeline';
18
+ export * from './ux';
19
+ export * from './widget';
20
+ export interface IConfig<F = IFeatures> {
21
+ /**
22
+ * The client ID key provided by Annoto
23
+ * @remarks
24
+ * If not set, the widget will load in demo mode
25
+ */
26
+ clientId?: string;
27
+ /**
28
+ * Widget configuration settings.
29
+ * @remarks
30
+ * only single widget is supported. the array is for future use.
31
+ */
32
+ widgets: IWidgetConfig<F>[];
33
+ /**
34
+ * Course/group details
35
+ * If provided the discussions on the media will be categorized by groups
36
+ * allowing private discussions per group for same media
37
+ */
38
+ group?: IGroupDetails;
39
+ /**
40
+ * Enable/disable and configure features
41
+ * Modifying the features will override the backend configured features.
42
+ * @remarks
43
+ * If Feature is not enabled on backend it cannot be enabled via this api.
44
+ */
45
+ features?: F;
46
+ /**
47
+ * Configuration options that affect the user experience
48
+ */
49
+ ux?: IUx;
50
+ /**
51
+ * Callback hooks for triggering actions such as auth and getting info
52
+ */
53
+ hooks?: IHooks;
54
+ /**
55
+ * If set to true, the widget will load in demo mode
56
+ */
57
+ demoMode?: boolean;
58
+ /**
59
+ * @internal
60
+ * Demo discussion for the demo mode
61
+ */
62
+ demoDiscussion?: string;
63
+ /**
64
+ * Language code in IETF BCP 47 or ISO/IEC 15897.
65
+ * @default 'en'
66
+ */
67
+ locale?: string;
68
+ /**
69
+ * Launch source credentials for widget integration via proxy domain
70
+ * For example LTI
71
+ */
72
+ launchSource?: ILaunchSourceConfig;
73
+ /**
74
+ * Set the zIndex to appropriate value to make the app visible and not iterfer with other elements.
75
+ * @default 100
76
+ */
77
+ zIndex?: number;
78
+ /**
79
+ * same as zIndex, only for when the player is in fullscreen.
80
+ * @default 100
81
+ */
82
+ fsZIndex?: number;
83
+ /**
84
+ * setup the backend endpoints to override the default
85
+ */
86
+ backend?: IWidgetBackendOptions;
87
+ }
88
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AAEzB,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,SAAS;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb;;OAEG;IACH,EAAE,CAAC,EAAE,GAAG,CAAC;IACT;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * @module Config
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
13
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ __exportStar(require("./backend"), exports);
17
+ __exportStar(require("./features"), exports);
18
+ __exportStar(require("./group-details"), exports);
19
+ __exportStar(require("./hooks"), exports);
20
+ __exportStar(require("./launch-source"), exports);
21
+ __exportStar(require("./media-details"), exports);
22
+ __exportStar(require("./timeline"), exports);
23
+ __exportStar(require("./ux"), exports);
24
+ __exportStar(require("./widget"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/config/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;AAWH,4CAA0B;AAC1B,6CAA2B;AAC3B,kDAAgC;AAChC,0CAAwB;AACxB,kDAAgC;AAChC,kDAAgC;AAChC,6CAA2B;AAC3B,uCAAqB;AACrB,2CAAyB"}
@@ -0,0 +1,153 @@
1
+ export interface IUx {
2
+ /**
3
+ * Select the widget theme
4
+ * If set to 'dark', the dark theme will always be used even when widget is not in overlay.
5
+ * @default 'default'
6
+ */
7
+ theme?: ThemeType;
8
+ widget?: IWidgetUx;
9
+ player?: IPlayerUx;
10
+ comments?: ICommentsUx;
11
+ }
12
+ export interface IWidgetUx {
13
+ /**
14
+ * Position the widget on the right or on the left side
15
+ * @default 'right'
16
+ */
17
+ position?: WidgetPositionType;
18
+ /**
19
+ * Load widget in open state on first boot.
20
+ * 'kuku' - widget is loaded closed, and after timeout a kuku is shown promting user to comment.
21
+ * 'open' - load in open state
22
+ * 'closed' - load in closed state with no kuku
23
+ * @default 'kuku'
24
+ */
25
+ loadState?: WidgetLoadStateType;
26
+ /**
27
+ * 'edge' - outside the element right next to it
28
+ * 'overlay' - as an overlay inside the element on it's edge
29
+ * 'fixed' - fixed position on the screen edge instead of relative to the element
30
+ * 'sidePanel' - non dragable side panel layout
31
+ * 'sidePanelOverlay' - non dragable side panel that overlays content including controls
32
+ * @default 'edge'
33
+ * @remarks
34
+ * If align is set to 'edge' or 'sidePanel' and there is no space for the widget, it will fallback to 'overlay'
35
+ */
36
+ layout?: WidgetLayoutType;
37
+ /**
38
+ * Enable/Disable navigation side tabs
39
+ * @default true
40
+ */
41
+ tabs?: boolean;
42
+ /**
43
+ * If povided will limit the responsive widget width.
44
+ * Has effect when widget is positioned outside of the player.
45
+ * Has no effect when widget is overlay inside the player.
46
+ * @default 460
47
+ */
48
+ maxWidth?: number;
49
+ /**
50
+ * Disable Floating action button that opens the widget
51
+ * If disabled, a custom button should be implemented for the close/open actions
52
+ * @default false
53
+ */
54
+ fabDisable?: boolean;
55
+ /**
56
+ * side panel layout preferences
57
+ */
58
+ sidePanel?: ISidePanelUx;
59
+ /**
60
+ * if set to true widget position will be fixed and user won't be able to drag it.
61
+ * @default false
62
+ */
63
+ draggableDisabled?: boolean;
64
+ }
65
+ export interface ISidePanelUx {
66
+ /**
67
+ * Enables side panel ux for player fullscreen. by default overlay is used in fullscreen.
68
+ * @default false
69
+ */
70
+ fullScreenEnable?: boolean;
71
+ /**
72
+ * Width of the side panel in player fullscreen in pixels
73
+ * @default 400
74
+ */
75
+ fullScreenWidth?: number;
76
+ /**
77
+ * Width of the overlay side panel
78
+ * @default 350
79
+ */
80
+ width?: number;
81
+ }
82
+ export interface ICommentsUx {
83
+ /**
84
+ * If set to true comments start will be at the top instead of bottom.
85
+ * @default false
86
+ */
87
+ topToBottom?: boolean;
88
+ /**
89
+ * If set to true, when widget is loaded all the replies to comments will be shown.
90
+ * @default false
91
+ */
92
+ showReplies?: boolean;
93
+ /**
94
+ * The default sorting to use on startup.
95
+ * @default 'most_recent'
96
+ */
97
+ sort?: CommentsSortType;
98
+ }
99
+ export interface IPlayerUx {
100
+ /**
101
+ * Triggers that will automatically pause the player.
102
+ * All true by default.
103
+ * > For live video, the player is never paused.
104
+ */
105
+ pauseTriggers?: IPlayerPauseTriggers;
106
+ /**
107
+ * Triggers that will automatically play the player.
108
+ * All false by default.
109
+ */
110
+ playTriggers?: IPlayerPlayTriggers;
111
+ }
112
+ export interface IPlayerPauseTriggers {
113
+ /**
114
+ * Pause when user starts to comment
115
+ * @default true
116
+ */
117
+ comment?: boolean;
118
+ /**
119
+ * Pause when user starts to add new note
120
+ * @default true
121
+ */
122
+ note?: boolean;
123
+ /**
124
+ * Pause when user is prompted to login/signup
125
+ * @default true
126
+ */
127
+ authPrompt?: boolean;
128
+ /**
129
+ * On mobile when widget is open it overlays the player.
130
+ * Pause when widget is open on mobile devices, so the video is not played in the background.
131
+ * > when opening in interactive mode (kuku/mini widget that do not overlay all the video), the player will not be paused.
132
+ * @default true
133
+ */
134
+ openOnPhone?: boolean;
135
+ }
136
+ export interface IPlayerPlayTriggers {
137
+ /**
138
+ * Pause when user starts to comment
139
+ * @default false
140
+ */
141
+ comment?: boolean;
142
+ /**
143
+ * Pause when user starts to add new note
144
+ * @default false
145
+ */
146
+ note?: boolean;
147
+ }
148
+ export declare type ThemeType = 'default' | 'dark';
149
+ export declare type WidgetPositionType = 'right' | 'right:top' | 'right:bottom' | 'left' | 'left:top' | 'left:bottom';
150
+ export declare type WidgetLayoutType = 'edge' | 'overlay' | 'fixed' | 'sidePanel' | 'sidePanelOverlay';
151
+ export declare type WidgetLoadStateType = 'kuku' | 'open' | 'closed';
152
+ export declare type CommentsSortType = 'most_recent' | 'top_rated' | 'by_timetag';
153
+ //# sourceMappingURL=ux.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ux.d.ts","sourceRoot":"","sources":["../../../lib/config/ux.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oBAAY,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAC3C,oBAAY,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAC9G,oBAAY,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAC/F,oBAAY,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC7D,oBAAY,gBAAgB,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ux.js","sourceRoot":"","sources":["../../../lib/config/ux.ts"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ import { IFeatures } from './features';
2
+ import { IPlayerAdaptorApi } from '../player-adapter';
3
+ import { ITimelineConfig } from './timeline';
4
+ import { IWidgetUx } from './ux';
5
+ export interface IWidgetConfig<F = IFeatures> {
6
+ /**
7
+ * Player setup
8
+ */
9
+ player: IPlayerConfig;
10
+ /**
11
+ * If provided, the widget will be positioned relative to this element instead of the player element
12
+ */
13
+ positionElement?: string | HTMLElement;
14
+ /**
15
+ * Configuration options that affect the user experience.
16
+ * Overrides any backend and {@link IConfig} ux settings.
17
+ */
18
+ ux?: IWidgetUx;
19
+ /**
20
+ * Enable/disable and configure features
21
+ * Modifying the features will override the backend and {@link IConfig} features.
22
+ * @remarks
23
+ * If Feature is not enabled on backend it cannot be enabled via this api.
24
+ */
25
+ features?: F;
26
+ /**
27
+ * If provided the discusion widget will be embedded inside the host element instead of as overlay
28
+ * The size of the widget will be responsive and set to 100% width and height of the host element.
29
+ */
30
+ host?: string | HTMLElement;
31
+ /**
32
+ * @internal
33
+ * Timeline configuration
34
+ */
35
+ timeline?: ITimelineConfig;
36
+ /**
37
+ * @internal
38
+ */
39
+ stats?: IStatsConfig;
40
+ }
41
+ export interface IPlayerConfig {
42
+ /**
43
+ * One of the player types
44
+ */
45
+ type: PlayerType;
46
+ /**
47
+ * dom element of the player or selector string to be used in document.querySelector()
48
+ */
49
+ element: string | HTMLElement;
50
+ /**
51
+ * Player adaptor API required for the `custom` player type
52
+ */
53
+ adaptorApi?: IPlayerAdaptorApi;
54
+ /**
55
+ * @internal
56
+ */
57
+ wide?: boolean;
58
+ /**
59
+ * @internal
60
+ */
61
+ params?: unknown;
62
+ }
63
+ /**
64
+ * @internal
65
+ */
66
+ export interface IStatsConfig {
67
+ host: HTMLElement;
68
+ }
69
+ export declare type PlayerType = 'html5' | 'youtube' | 'jw6' | 'jw7' | 'jw' | 'videojs' | 'kaltura' | 'vimeo' | 'flowplayer' | 'h5p' | 'wistia' | 'openedx' | 'page' | 'kplaykit' | 'custom';
70
+ //# sourceMappingURL=widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../lib/config/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,SAAS;IACxC;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACvC;;;OAGG;IACH,EAAE,CAAC,EAAE,SAAS,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,WAAW,CAAC;CACrB;AAED,oBAAY,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../../lib/config/widget.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module Annoto
3
+ */
4
+ import { IConfig } from './config';
5
+ import { IUxEvent, IStatsEvent, IVideoBenchmarkEvent, IMyActivity } from './events';
6
+ import { IAnnotoApi, IMetadata } from './api';
7
+ export declare type AnnotoEventType = 'ready' | 'metadata' | 'ux' | 'stats_events' | 'video_benchmark' | 'my_activity';
8
+ export declare type AnnotoReadyCallback = (api: IAnnotoApi) => void;
9
+ export declare type AnnotoMetadataCallback = (metadata: IMetadata) => void;
10
+ export declare type AnnotoUxEventCallback = (uxEvent: IUxEvent) => void;
11
+ export declare type AnnotoStatsEventCallback = (statsEvent: IStatsEvent) => void;
12
+ export declare type AnnotoVideoBenchmarkCallback = (uxEvent: IVideoBenchmarkEvent) => void;
13
+ export declare type AnnotoMyActivityCallback = (uxEvent: IMyActivity) => void;
14
+ export interface Annoto {
15
+ on(event: AnnotoEventType, cb: AnnotoReadyCallback | AnnotoMetadataCallback | AnnotoUxEventCallback | AnnotoStatsEventCallback | AnnotoVideoBenchmarkCallback | AnnotoMyActivityCallback): void;
16
+ boot(config: IConfig): void;
17
+ }
18
+ export * from './config';
19
+ export * from './api';
20
+ export * from './events';
21
+ export * from './player-adapter';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,oBAAY,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,GAAG,cAAc,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAC/G,oBAAY,mBAAmB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;AAC5D,oBAAY,sBAAsB,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;AACnE,oBAAY,qBAAqB,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;AAChE,oBAAY,wBAAwB,GAAG,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;AACzE,oBAAY,4BAA4B,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;AACnF,oBAAY,wBAAwB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;AAEtE,MAAM,WAAW,MAAM;IACnB,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,mBAAmB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,4BAA4B,GAAG,wBAAwB,GAAG,IAAI,CAAC;IAChM,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /**
3
+ * @module Annoto
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
13
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ __exportStar(require("./config"), exports);
17
+ __exportStar(require("./api"), exports);
18
+ __exportStar(require("./events"), exports);
19
+ __exportStar(require("./player-adapter"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;AAmBH,2CAAyB;AACzB,wCAAsB;AACtB,2CAAyB;AACzB,mDAAiC"}