@vkontakte/videoplayer-interactive 1.0.39-dev.25a92534.0 → 1.0.39-dev.296a4963.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.
@@ -1,18 +1,16 @@
1
- import { Subject } from '@vkontakte/videoplayer-shared';
2
1
  import { Container } from './Container';
3
2
  import { ChapterContainer } from '../../../manifest';
4
3
  import type { ChoiceContainerOptions, ContainerCreateViewParams } from './types';
5
- import { CustomError } from '../../../utils/Error';
6
4
  import { Nullable } from '@vkontakte/videoplayer-shared';
7
5
  export declare const createChoiceContainer: (container: ChapterContainer, rootElement: HTMLElement, options?: ChoiceContainerOptions) => ChoiceContainer | undefined;
8
6
  export declare class ChoiceContainer extends Container {
9
7
  private rootElement;
10
8
  private containerElement;
11
9
  private layout;
12
- private controlSubscriptions;
10
+ private subscriptions;
13
11
  isRemoved: boolean;
14
12
  isDisabled: boolean;
15
- error$: Subject<CustomError>;
13
+ willRemoved: boolean;
16
14
  constructor(container: ChapterContainer, rootElement: HTMLElement, options?: ChoiceContainerOptions);
17
15
  createView({ eventCallback, videoDurationMs }: ContainerCreateViewParams): HTMLElement;
18
16
  updateControlsFillAnimationDimensions(): void;
@@ -20,7 +18,11 @@ export declare class ChoiceContainer extends Container {
20
18
  show(): void;
21
19
  enable(): void;
22
20
  disable(): void;
23
- removeView(): void;
21
+ removeView(withTransition?: boolean, useDelay?: boolean): void;
22
+ private onTransitionEnd;
23
+ removeAllControls(withTransition?: boolean): void;
24
+ removeNonInteractedControls(withTransition?: boolean): void;
25
+ isInteracted(): boolean;
24
26
  fakeRemove(): void;
25
27
  getElement(): Nullable<HTMLElement>;
26
28
  onProgress(currentTimeMs: number, isInteractiveTime: boolean): void;
@@ -1,3 +1,5 @@
1
+ import { Subject } from '@vkontakte/videoplayer-shared';
2
+ import { CustomError } from '../../../utils/Error';
1
3
  import type { ChapterContainer } from '../../../manifest';
2
4
  import { type Control, type ControlCreator, type Options } from '../../../modules/Interactives/controls';
3
5
  import { type ChoiceContainerOptions } from './types';
@@ -6,8 +8,10 @@ export declare class Container {
6
8
  options?: Options;
7
9
  private factories;
8
10
  controls: Control[];
11
+ error$: Subject<CustomError>;
9
12
  constructor(container: ChapterContainer, options?: Options);
10
13
  featureIsEnabled(name: keyof ChoiceContainerOptions['features']): boolean | undefined;
14
+ onError(message: string | undefined, error: unknown): void;
11
15
  addControlFactory(type: string, factory: ControlCreator<any>): void;
12
16
  removeControlFactory(type: string): void;
13
17
  private setControls;
@@ -4,7 +4,7 @@ export declare const createAreaControl: ControlCreator<ControlOptions, AreaContr
4
4
  declare class AreaControl extends Control {
5
5
  constructor(control: TControl, options?: ControlOptions);
6
6
  createView({ parentElement, callbacks }: ControlCreateViewParams): void;
7
- registerEvents(): void;
7
+ registerBlinkAnimationEvents(): void;
8
8
  disable(): void;
9
9
  enable(): void;
10
10
  getElement(): import("@vkontakte/videoplayer-shared").Nullable<HTMLElement>;
@@ -8,7 +8,7 @@ declare class ButtonControl extends Control {
8
8
  controlFillAnimation?: ControlFillAnimation;
9
9
  constructor(control: TControl, options?: ControlOptions);
10
10
  createView({ parentElement, callbacks }: ControlCreateViewParams): void;
11
- registerEvents(): void;
11
+ registerBlinkAnimationEvents(): void;
12
12
  disable(): void;
13
13
  enable(): void;
14
14
  getElement(): import("@vkontakte/videoplayer-shared").Nullable<HTMLElement>;
@@ -1,8 +1,7 @@
1
- import { Subject, Subscription, ValueSubject } from '@vkontakte/videoplayer-shared';
1
+ import { Subject, Subscription, Nullable } from '@vkontakte/videoplayer-shared';
2
+ import { CustomError } from '../../../utils/Error';
2
3
  import { ControlTap } from '../utils/ControlTap';
3
4
  import type { ControlEventCallback, ControlCreateViewParams, Dimensions, Callbacks, Options, TControl, ControlOptions } from './types';
4
- import { CustomError } from '../../../utils/Error';
5
- import { Nullable } from '@vkontakte/videoplayer-shared';
6
5
  type ControlContainer = {
7
6
  element: HTMLElement;
8
7
  dimensions: Dimensions;
@@ -16,8 +15,9 @@ export declare abstract class Control {
16
15
  controlElement: Nullable<HTMLElement>;
17
16
  subscriptions: Subscription;
18
17
  error$: Subject<CustomError>;
19
- isInteracted$: ValueSubject<boolean>;
20
18
  controlTap?: ControlTap;
19
+ isInteracted: boolean;
20
+ isRemoved: boolean;
21
21
  constructor(control: TControl, options?: Options | undefined);
22
22
  abstract createView(params: ControlCreateViewParams): void;
23
23
  abstract getElement(): Nullable<HTMLElement>;
@@ -29,6 +29,9 @@ export declare abstract class Control {
29
29
  abstract updateFillAnimationDimensions(): void;
30
30
  abstract updateShadowStyles(isDark?: boolean): void;
31
31
  abstract toggleBlinkAnimation(enable?: boolean): void;
32
+ onControlSelect: () => void;
33
+ removeView(withTransition?: boolean): void;
34
+ onTransitionEnd: (event: TransitionEvent) => void;
32
35
  onError(message: string | undefined, error: unknown): void;
33
36
  addControlTap(controlElement: HTMLElement): void;
34
37
  createContainerElement(callbacks: Callbacks): void;
@@ -13,6 +13,5 @@ declare class TextControl extends Control {
13
13
  toggleBlinkAnimation(): void;
14
14
  setShowTimeRange(): void;
15
15
  updateFillAnimationDimensions(): void;
16
- onError(): void;
17
16
  }
18
17
  export {};
@@ -9,7 +9,7 @@ export declare const utils: {
9
9
  createChoiceContainer: (container: import("@interactiveplatform/movika-manifest").ChapterContainer, rootElement: HTMLElement, options?: import("./containers/types").ChoiceContainerOptions) => import("./containers/ChoiceContainer").ChoiceContainer | undefined;
10
10
  createAreaControl: import("./controls").ControlCreator<import("./controls").ControlOptions, {
11
11
  createView({ parentElement, callbacks }: import("./controls").ControlCreateViewParams): void;
12
- registerEvents(): void;
12
+ registerBlinkAnimationEvents(): void;
13
13
  disable(): void;
14
14
  enable(): void;
15
15
  getElement(): import("@vkontakte/videoplayer-shared").Nullable<HTMLElement>;
@@ -29,10 +29,14 @@ export declare const utils: {
29
29
  controlElement: import("@vkontakte/videoplayer-shared").Nullable<HTMLElement>;
30
30
  subscriptions: import("@vkontakte/videoplayer-shared").Subscription;
31
31
  error$: import("@vkontakte/videoplayer-shared").Subject<import("../..").CustomError>;
32
- isInteracted$: import("@vkontakte/videoplayer-shared").ValueSubject<boolean>;
33
32
  controlTap?: import("./utils/ControlTap").ControlTap;
33
+ isInteracted: boolean;
34
+ isRemoved: boolean;
34
35
  control: import("@interactiveplatform/movika-manifest/dist/chapter-DI_7rDZW").e;
35
36
  options?: import("./controls").Options | undefined;
37
+ onControlSelect: () => void;
38
+ removeView(withTransition?: boolean): void;
39
+ onTransitionEnd: (event: TransitionEvent) => void;
36
40
  onError(message: string | undefined, error: unknown): void;
37
41
  addControlTap(controlElement: HTMLElement): void;
38
42
  createContainerElement(callbacks: import("./controls").Callbacks): void;
@@ -47,7 +51,7 @@ export declare const utils: {
47
51
  endTime?: number;
48
52
  controlFillAnimation?: import("./utils/ControlFillAnimation").ControlFillAnimation;
49
53
  createView({ parentElement, callbacks }: import("./controls").ControlCreateViewParams): void;
50
- registerEvents(): void;
54
+ registerBlinkAnimationEvents(): void;
51
55
  disable(): void;
52
56
  enable(): void;
53
57
  getElement(): import("@vkontakte/videoplayer-shared").Nullable<HTMLElement>;
@@ -67,10 +71,14 @@ export declare const utils: {
67
71
  controlElement: import("@vkontakte/videoplayer-shared").Nullable<HTMLElement>;
68
72
  subscriptions: import("@vkontakte/videoplayer-shared").Subscription;
69
73
  error$: import("@vkontakte/videoplayer-shared").Subject<import("../..").CustomError>;
70
- isInteracted$: import("@vkontakte/videoplayer-shared").ValueSubject<boolean>;
71
74
  controlTap?: import("./utils/ControlTap").ControlTap;
75
+ isInteracted: boolean;
76
+ isRemoved: boolean;
72
77
  control: import("@interactiveplatform/movika-manifest/dist/chapter-DI_7rDZW").e;
73
78
  options?: import("./controls").Options | undefined;
79
+ onControlSelect: () => void;
80
+ removeView(withTransition?: boolean): void;
81
+ onTransitionEnd: (event: TransitionEvent) => void;
74
82
  onError(message: string | undefined, error: unknown): void;
75
83
  addControlTap(controlElement: HTMLElement): void;
76
84
  createContainerElement(callbacks: import("./controls").Callbacks): void;
@@ -20,6 +20,7 @@ export type AnimationsFeatureToggles = Partial<{
20
20
  controlsExpectTimeBlinkAnimation: boolean;
21
21
  controlsTapPlace: boolean;
22
22
  controlsFillAnimation: boolean;
23
+ controlsHideAnimation: boolean;
23
24
  }>;
24
25
  export interface IInteractiveOptions {
25
26
  parentElement: HTMLElement;
@@ -46,6 +47,7 @@ export interface IInteractiveOptions {
46
47
  * @deprecated
47
48
  * */
48
49
  disableControlsOnPause?: boolean;
50
+ disableTextControlContainerVisibilityEvents?: boolean;
49
51
  isTouch?: boolean;
50
52
  animationsFeatureToggles?: AnimationsFeatureToggles;
51
53
  }
@@ -5,10 +5,11 @@ import type { ChapterBranch } from '../../../manifest';
5
5
  import type { EventEmitter } from '../../../utils/EventEmitter';
6
6
  import { CustomError } from '../../../utils/Error';
7
7
  import type { SelectBranchesType } from './SelectBranches';
8
- import type { IgnoreExpectState } from '../../../modules/Interactives/types';
8
+ import type { IgnoreExpectState, AnimationsFeatureToggles } from '../../../modules/Interactives/types';
9
9
  import type { ChoiceContainer } from '../../../modules/Interactives/containers';
10
10
  import { type GlobalEvents } from './events';
11
11
  import { GameStates } from './gameUtils';
12
+ type Features = Pick<AnimationsFeatureToggles, 'controlsHideAnimation'>;
12
13
  type ConstructorArg = {
13
14
  player: IPlayer;
14
15
  container: ChoiceContainer;
@@ -23,6 +24,8 @@ type ConstructorArg = {
23
24
  disabledControls$: IValueSubject<boolean>;
24
25
  onRemove: () => void;
25
26
  onError: (error: CustomError) => void;
27
+ disableTextControlContainerVisibilityEvents?: boolean;
28
+ features: Features;
26
29
  };
27
30
  export declare class GameController {
28
31
  container: ChoiceContainer;
@@ -42,7 +45,9 @@ export declare class GameController {
42
45
  isSelectedContainerEvent: boolean;
43
46
  globalEvents: GlobalEvents;
44
47
  onError: ConstructorArg['onError'];
45
- constructor({ player, container, branches, selectBranches, interactiveEvents, globalEvents, globalEventEmitter, getContainerEventState, permanentTextControls, interactiveTimeOpenUri, disabledControls$, onRemove, onError, }: ConstructorArg);
48
+ disableTextControlContainerVisibilityEvents: boolean;
49
+ features: Features;
50
+ constructor({ player, container, branches, selectBranches, interactiveEvents, globalEvents, globalEventEmitter, getContainerEventState, permanentTextControls, interactiveTimeOpenUri, disabledControls$, onRemove, onError, disableTextControlContainerVisibilityEvents, features, }: ConstructorArg);
46
51
  private emitContainerVisibilityEvent;
47
52
  registerEvents(): void;
48
53
  hide: () => void;
@@ -55,10 +60,12 @@ export declare class GameController {
55
60
  whilePlaying: () => void;
56
61
  onResize(isInteractiveTime: boolean): void;
57
62
  reset(): void;
58
- removeView(): void;
63
+ removeView(withTransition?: boolean | undefined): void;
59
64
  fakeRemoveView(remove?: boolean): void;
60
65
  updateControlsShadowStyles(isDark?: boolean): void;
61
66
  toggleBlinkAnimation(value: boolean): void;
62
- destroy(): void;
67
+ isInteracted(): boolean;
68
+ isRemovedOrDestroyed(includeWillRemovedState?: boolean): boolean;
69
+ destroy(withTransition?: boolean): void;
63
70
  }
64
71
  export {};
@@ -0,0 +1,13 @@
1
+ import { ErrorCategoryEnum, ErrorSeverityEnum } from '../../../types';
2
+ import { CustomError } from '../../../utils/Error';
3
+ import { Subject } from '@vkontakte/videoplayer-shared';
4
+ type EmitOnErrorArg = {
5
+ emitter$: Subject<CustomError>;
6
+ error?: unknown;
7
+ subjectId?: string;
8
+ message?: string;
9
+ severity?: ErrorSeverityEnum;
10
+ category?: ErrorCategoryEnum;
11
+ };
12
+ export declare function emitOnError({ emitter$, error, subjectId, message, severity, category, }: EmitOnErrorArg): void;
13
+ export {};
@@ -36,5 +36,6 @@ type ExecForAllExpectContainersParamsType = {
36
36
  execFn: (gameController: GameController) => void;
37
37
  };
38
38
  export declare function execForAllExpectContainers({ gameControllers, subjectName, subjectId, execFn, }: ExecForAllExpectContainersParamsType): void;
39
+ export declare function isControlHasOpenURIEvent(control: Control): boolean;
39
40
  export declare const evaluateContainerEventStatus: (container: ChapterContainer, gameControllers: GameController[]) => IgnoreExpectState;
40
41
  export {};