@remotion/player 3.0.0-lambda.2 → 3.0.0-lambda.203
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.
- package/dist/Loading.js +3 -5
- package/dist/Loading.js.map +1 -1
- package/dist/Player.d.ts +6 -1
- package/dist/Player.d.ts.map +1 -1
- package/dist/Player.js +20 -8
- package/dist/Player.js.map +1 -1
- package/dist/PlayerSeekBar.d.ts.map +1 -1
- package/dist/PlayerSeekBar.js +2 -1
- package/dist/PlayerSeekBar.js.map +1 -1
- package/dist/PlayerUI.d.ts +4 -0
- package/dist/PlayerUI.d.ts.map +1 -1
- package/dist/PlayerUI.js +15 -6
- package/dist/PlayerUI.js.map +1 -1
- package/dist/PredefinedAudioTags.d.ts +11 -0
- package/dist/PredefinedAudioTags.d.ts.map +1 -0
- package/dist/PredefinedAudioTags.js +98 -0
- package/dist/PredefinedAudioTags.js.map +1 -0
- package/dist/calculate-next-frame.d.ts +15 -0
- package/dist/calculate-next-frame.d.ts.map +1 -0
- package/dist/calculate-next-frame.js +29 -0
- package/dist/calculate-next-frame.js.map +1 -0
- package/dist/error-boundary.d.ts +7 -4
- package/dist/error-boundary.d.ts.map +1 -1
- package/dist/error-boundary.js +6 -4
- package/dist/error-boundary.js.map +1 -1
- package/dist/event-emitter.d.ts +7 -2
- package/dist/event-emitter.d.ts.map +1 -1
- package/dist/event-emitter.js +6 -0
- package/dist/event-emitter.js.map +1 -1
- package/dist/events.d.ts +1 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/test/validate-prop.test.js +36 -6
- package/dist/test/validate-prop.test.js.map +1 -1
- package/dist/use-playback.d.ts +2 -1
- package/dist/use-playback.d.ts.map +1 -1
- package/dist/use-playback.js +32 -32
- package/dist/use-playback.js.map +1 -1
- package/dist/use-player.d.ts.map +1 -1
- package/dist/use-player.js +6 -6
- package/dist/use-player.js.map +1 -1
- package/dist/utils/use-throttle.d.ts +2 -0
- package/dist/utils/use-throttle.d.ts.map +1 -0
- package/dist/utils/use-throttle.js +24 -0
- package/dist/utils/use-throttle.js.map +1 -0
- package/dist/utils/validate-playbackrate.d.ts +2 -0
- package/dist/utils/validate-playbackrate.d.ts.map +1 -0
- package/dist/utils/validate-playbackrate.js +19 -0
- package/dist/utils/validate-playbackrate.js.map +1 -0
- package/package.json +4 -4
- package/dist/Freeze.d.ts +0 -7
- package/dist/Freeze.d.ts.map +0 -1
- package/dist/Freeze.js +0 -18
- package/dist/Freeze.js.map +0 -1
package/dist/event-emitter.d.ts
CHANGED
|
@@ -7,16 +7,20 @@ declare type ErrorPayload = {
|
|
|
7
7
|
declare type TimeUpdateEventPayload = {
|
|
8
8
|
frame: number;
|
|
9
9
|
};
|
|
10
|
+
declare type RateChangeEventPayload = {
|
|
11
|
+
playbackRate: number;
|
|
12
|
+
};
|
|
10
13
|
declare type StateEventMap = {
|
|
11
14
|
seeked: SeekPayload;
|
|
12
15
|
pause: undefined;
|
|
13
16
|
play: undefined;
|
|
17
|
+
ratechange: RateChangeEventPayload;
|
|
14
18
|
ended: undefined;
|
|
15
19
|
error: ErrorPayload;
|
|
16
20
|
timeupdate: TimeUpdateEventPayload;
|
|
17
21
|
};
|
|
18
|
-
declare type EventTypes = keyof StateEventMap;
|
|
19
|
-
declare type CallbackListener<T extends EventTypes> = (data: {
|
|
22
|
+
export declare type EventTypes = keyof StateEventMap;
|
|
23
|
+
export declare type CallbackListener<T extends EventTypes> = (data: {
|
|
20
24
|
detail: StateEventMap[T];
|
|
21
25
|
}) => void;
|
|
22
26
|
declare type Listeners = {
|
|
@@ -31,6 +35,7 @@ export declare class PlayerEmitter {
|
|
|
31
35
|
dispatchPause(): void;
|
|
32
36
|
dispatchPlay(): void;
|
|
33
37
|
dispatchEnded(): void;
|
|
38
|
+
dispatchRatechange(playbackRate: number): void;
|
|
34
39
|
dispatchError(error: Error): void;
|
|
35
40
|
dispatchTimeUpdate(event: TimeUpdateEventPayload): void;
|
|
36
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,YAAY,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,aAAK,sBAAsB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,aAAa,GAAG;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,YAAY,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,aAAK,sBAAsB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,sBAAsB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,aAAK,aAAa,GAAG;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,oBAAY,UAAU,GAAG,MAAM,aAAa,CAAC;AAE7C,oBAAY,gBAAgB,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,IAAI,EAAE;IAC3D,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACzB,KAAK,IAAI,CAAC;AAEX,aAAK,SAAS,GAAG;KAAE,SAAS,IAAI,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE;CAAC,CAAC;AAE5E,qBAAa,aAAa;IACzB,SAAS,EAAE,SAAS,CAQlB;IAEF,gBAAgB,CAAC,CAAC,SAAS,UAAU,EACpC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAK9B,mBAAmB,CAAC,CAAC,SAAS,UAAU,EACvC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAO9B,OAAO,CAAC,aAAa;IAWrB,YAAY,CAAC,KAAK,EAAE,MAAM;IAM1B,aAAa;IAIb,YAAY;IAIZ,aAAa;IAIb,kBAAkB,CAAC,YAAY,EAAE,MAAM;IAMvC,aAAa,CAAC,KAAK,EAAE,KAAK;IAM1B,kBAAkB,CAAC,KAAK,EAAE,sBAAsB;CAGhD"}
|
package/dist/event-emitter.js
CHANGED
|
@@ -8,6 +8,7 @@ class PlayerEmitter {
|
|
|
8
8
|
error: [],
|
|
9
9
|
pause: [],
|
|
10
10
|
play: [],
|
|
11
|
+
ratechange: [],
|
|
11
12
|
seeked: [],
|
|
12
13
|
timeupdate: [],
|
|
13
14
|
};
|
|
@@ -37,6 +38,11 @@ class PlayerEmitter {
|
|
|
37
38
|
dispatchEnded() {
|
|
38
39
|
this.dispatchEvent('ended', undefined);
|
|
39
40
|
}
|
|
41
|
+
dispatchRatechange(playbackRate) {
|
|
42
|
+
this.dispatchEvent('ratechange', {
|
|
43
|
+
playbackRate,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
40
46
|
dispatchError(error) {
|
|
41
47
|
this.dispatchEvent('error', {
|
|
42
48
|
error,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":";;;AAkCA,MAAa,aAAa;IAA1B;QACC,cAAS,GAAc;YACtB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;SACd,CAAC;IA8DH,CAAC;IA5DA,gBAAgB,CACf,IAAO,EACP,QAA6B;QAE5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,mBAAmB,CAClB,IAAO,EACP,QAA6B;QAE7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CACnB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEO,aAAa,CACpB,YAAe,EACf,OAAyB;QAExB,IAAI,CAAC,SAAS,CAAC,YAAY,CAA2B,CAAC,OAAO,CAC9D,CAAC,QAAQ,EAAE,EAAE;YACZ,QAAQ,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC;QAC7B,CAAC,CACD,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAa;QACzB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC5B,KAAK;SACL,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,YAAY;QACX,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB,CAAC,YAAoB;QACtC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YAChC,YAAY;SACZ,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,KAAY;QACzB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC3B,KAAK;SACL,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,KAA6B;QAC/C,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;CACD;AAvED,sCAuEC"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":""}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { PlayerEmitter } from './event-emitter';
|
|
2
|
+
import { CallbackListener, EventTypes, PlayerEmitter } from './event-emitter';
|
|
3
|
+
import { ErrorFallback } from './Player';
|
|
3
4
|
export { Player } from './Player';
|
|
4
5
|
export { PlayerMethods, PlayerRef } from './player-methods';
|
|
5
6
|
export { PreviewSize } from './utils/preview-size';
|
|
@@ -19,8 +20,9 @@ export declare const PlayerInternals: {
|
|
|
19
20
|
getCurrentFrame: () => number;
|
|
20
21
|
isPlaying: () => boolean;
|
|
21
22
|
};
|
|
22
|
-
usePlayback: ({ loop }: {
|
|
23
|
+
usePlayback: ({ loop, playbackRate, }: {
|
|
23
24
|
loop: boolean;
|
|
25
|
+
playbackRate: number;
|
|
24
26
|
}) => void;
|
|
25
27
|
useElementSize: (ref: import("react").RefObject<HTMLElement>, options: {
|
|
26
28
|
triggerOnWindowResize: boolean;
|
|
@@ -39,4 +41,5 @@ export declare const PlayerInternals: {
|
|
|
39
41
|
};
|
|
40
42
|
useHoverState: (ref: import("react").RefObject<HTMLDivElement>) => boolean;
|
|
41
43
|
};
|
|
44
|
+
export type { ErrorFallback, CallbackListener, EventTypes };
|
|
42
45
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAMvC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAC;AAE9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ3B,CAAC;AAEF,YAAY,EAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAC,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,uDAAiD;AACjD,uDAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,uDAAiD;AACjD,uDAA4D;AAC5D,mDAA4E;AAE5E,uDAAgD;AAChD,iDAA2C;AAC3C,6CAAuC;AACvC,+DAAwD;AAExD,mCAAgC;AAAxB,gGAAA,MAAM,OAAA;AAKD,QAAA,eAAe,GAAG;IAC9B,yBAAyB,EAAzB,2CAAyB;IACzB,aAAa,EAAb,6BAAa;IACb,SAAS,EAAT,sBAAS;IACT,WAAW,EAAX,0BAAW;IACX,cAAc,EAAd,iCAAc;IACd,cAAc,EAAd,gCAAc;IACd,aAAa,EAAb,+BAAa;CACb,CAAC"}
|
|
@@ -9,7 +9,7 @@ test('no compositionWidth should give errors', () => {
|
|
|
9
9
|
// @ts-expect-error
|
|
10
10
|
, {
|
|
11
11
|
// @ts-expect-error
|
|
12
|
-
compositionWidth: null, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
12
|
+
compositionWidth: null, errorFallback: () => 'something went wrong', compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
13
13
|
}
|
|
14
14
|
catch (e) {
|
|
15
15
|
expect(e.message).toMatch(/'compositionWidth' must be a number but got 'object' instead/);
|
|
@@ -17,7 +17,7 @@ test('no compositionWidth should give errors', () => {
|
|
|
17
17
|
});
|
|
18
18
|
test('no compositionHeight should give errors', () => {
|
|
19
19
|
try {
|
|
20
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 400,
|
|
20
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 400, errorFallback: () => 'something went wrong',
|
|
21
21
|
// @ts-expect-error
|
|
22
22
|
compositionHeight: undefined, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
23
23
|
}
|
|
@@ -27,7 +27,7 @@ test('no compositionHeight should give errors', () => {
|
|
|
27
27
|
});
|
|
28
28
|
test('No fps should give errors', () => {
|
|
29
29
|
try {
|
|
30
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400,
|
|
30
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong',
|
|
31
31
|
// @ts-expect-error
|
|
32
32
|
fps: null, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
33
33
|
}
|
|
@@ -35,7 +35,7 @@ test('No fps should give errors', () => {
|
|
|
35
35
|
expect(e.message).toMatch(/"fps" must be a number, but you passed a value of type object/);
|
|
36
36
|
}
|
|
37
37
|
try {
|
|
38
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400,
|
|
38
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong',
|
|
39
39
|
// @ts-expect-error
|
|
40
40
|
fps: undefined, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
41
41
|
}
|
|
@@ -45,7 +45,7 @@ test('No fps should give errors', () => {
|
|
|
45
45
|
});
|
|
46
46
|
test('No durationInFrames should give errors', () => {
|
|
47
47
|
try {
|
|
48
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30,
|
|
48
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong', fps: 30,
|
|
49
49
|
// @ts-expect-error
|
|
50
50
|
durationInFrames: undefined, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
51
51
|
}
|
|
@@ -53,6 +53,36 @@ test('No durationInFrames should give errors', () => {
|
|
|
53
53
|
expect(e.message).toMatch(/The "durationInFrames" prop of the <Player\/> component must be a number, but you passed a value of type undefined/);
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
|
+
test('Invalid playbackRate should give error', () => {
|
|
57
|
+
try {
|
|
58
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true, playbackRate: -5 }, void 0));
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
expect(e.message).toMatch(/The lowest possible playback rate is -4. You passed: -5/);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
test('playbackRate of 0 should not be possible', () => {
|
|
65
|
+
try {
|
|
66
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true, playbackRate: 0 }, void 0));
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
expect(e.message).toMatch(/A playback rate of 0 is not supported./);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
test('playbackRate of wrong type should not be possible', () => {
|
|
73
|
+
try {
|
|
74
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true,
|
|
75
|
+
// @ts-expect-error
|
|
76
|
+
playbackRate: 'hi' }, void 0));
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
expect(e.message).toMatch(/A playback rate of 0 is not supported./);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
test('playbackRate of undefined should be okay', () => {
|
|
83
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
84
|
+
expect(true).toBe(true);
|
|
85
|
+
});
|
|
56
86
|
test.each([
|
|
57
87
|
['controls'],
|
|
58
88
|
['loop'],
|
|
@@ -65,7 +95,7 @@ test.each([
|
|
|
65
95
|
const props = {};
|
|
66
96
|
props[a] = 'hey';
|
|
67
97
|
try {
|
|
68
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, Object.assign({ compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 100, component: test_utils_1.HelloWorld }, props), void 0));
|
|
98
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, Object.assign({ compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong', fps: 30, durationInFrames: 100, component: test_utils_1.HelloWorld }, props), void 0));
|
|
69
99
|
}
|
|
70
100
|
catch (e) {
|
|
71
101
|
expect(e.message).toMatch(`'${a}' must be a boolean or undefined but got 'string' instead`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-prop.test.js","sourceRoot":"","sources":["../../src/test/validate-prop.test.tsx"],"names":[],"mappings":";;;AAAA,oCAAgC;AAChC,6CAAgD;AAEhD,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACnD,IAAI;QACH,IAAA,mBAAM,EACL,uBAAC,cAAM;QACN,mBAAmB;;YAAnB,mBAAmB;YACnB,gBAAgB,EAAE,IAAI,EACtB,iBAAiB,EAAE,GAAG,EACtB,GAAG,EAAE,EAAE,EACP,gBAAgB,EAAE,GAAG,EACrB,SAAS,EAAE,uBAAU,EACrB,QAAQ,QACR,kBAAkB,iBACjB,CACF,CAAC;KACF;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CACnC,8DAA8D,CAC9D,CAAC;KACF;AACF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACpD,IAAI;QACH,IAAA,mBAAM,EACL,uBAAC,cAAM,IACN,gBAAgB,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"validate-prop.test.js","sourceRoot":"","sources":["../../src/test/validate-prop.test.tsx"],"names":[],"mappings":"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"}
|
package/dist/use-playback.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-playback.d.ts","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-playback.d.ts","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;UAIjB,OAAO;kBACC,MAAM;UAiGpB,CAAC"}
|
package/dist/use-playback.js
CHANGED
|
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.usePlayback = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
|
+
const calculate_next_frame_1 = require("./calculate-next-frame");
|
|
6
7
|
const use_player_1 = require("./use-player");
|
|
7
|
-
const usePlayback = ({ loop }) => {
|
|
8
|
+
const usePlayback = ({ loop, playbackRate, }) => {
|
|
8
9
|
const frame = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
9
10
|
const config = remotion_1.Internals.useUnsafeVideoConfig();
|
|
10
11
|
const { playing, pause, emitter } = (0, use_player_1.usePlayer)();
|
|
11
12
|
const setFrame = remotion_1.Internals.Timeline.useTimelineSetFrame();
|
|
12
|
-
const { inFrame, outFrame
|
|
13
|
+
const { inFrame, outFrame } = remotion_1.Internals.Timeline.useTimelineInOutFramePosition();
|
|
13
14
|
const frameRef = (0, react_1.useRef)(frame);
|
|
14
15
|
frameRef.current = frame;
|
|
15
16
|
const lastTimeUpdateEvent = (0, react_1.useRef)(null);
|
|
@@ -20,32 +21,10 @@ const usePlayback = ({ loop }) => {
|
|
|
20
21
|
if (!playing) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
|
-
const getFrameInRange = (nextFrame) => {
|
|
24
|
-
if ((inFrame && nextFrame < inFrame) ||
|
|
25
|
-
(inFrame && outFrame && nextFrame > outFrame)) {
|
|
26
|
-
return inFrame;
|
|
27
|
-
}
|
|
28
|
-
if (outFrame && nextFrame > outFrame) {
|
|
29
|
-
return 0;
|
|
30
|
-
}
|
|
31
|
-
return nextFrame;
|
|
32
|
-
};
|
|
33
24
|
let hasBeenStopped = false;
|
|
34
25
|
let reqAnimFrameCall = null;
|
|
35
26
|
const startedTime = performance.now();
|
|
36
|
-
|
|
37
|
-
const durationInFrames = (() => {
|
|
38
|
-
if (inFrame !== null && outFrame !== null) {
|
|
39
|
-
return outFrame - inFrame + 1;
|
|
40
|
-
}
|
|
41
|
-
if (inFrame !== null) {
|
|
42
|
-
return config.durationInFrames - inFrame;
|
|
43
|
-
}
|
|
44
|
-
if (outFrame !== null) {
|
|
45
|
-
return outFrame + 1;
|
|
46
|
-
}
|
|
47
|
-
return config.durationInFrames;
|
|
48
|
-
})();
|
|
27
|
+
let framesAdvanced = 0;
|
|
49
28
|
const stop = () => {
|
|
50
29
|
hasBeenStopped = true;
|
|
51
30
|
if (reqAnimFrameCall !== null) {
|
|
@@ -54,17 +33,28 @@ const usePlayback = ({ loop }) => {
|
|
|
54
33
|
};
|
|
55
34
|
const callback = () => {
|
|
56
35
|
const time = performance.now() - startedTime;
|
|
57
|
-
const
|
|
58
|
-
|
|
36
|
+
const actualLastFrame = outFrame !== null && outFrame !== void 0 ? outFrame : config.durationInFrames - 1;
|
|
37
|
+
const actualFirstFrame = inFrame !== null && inFrame !== void 0 ? inFrame : 0;
|
|
38
|
+
const { nextFrame, framesToAdvance, hasEnded } = (0, calculate_next_frame_1.calculateNextFrame)({
|
|
39
|
+
time,
|
|
40
|
+
currentFrame: frameRef.current,
|
|
41
|
+
playbackSpeed: playbackRate,
|
|
42
|
+
fps: config.fps,
|
|
43
|
+
actualFirstFrame,
|
|
44
|
+
actualLastFrame,
|
|
45
|
+
framesAdvanced,
|
|
46
|
+
shouldLoop: loop,
|
|
47
|
+
});
|
|
48
|
+
framesAdvanced += framesToAdvance;
|
|
49
|
+
if (nextFrame !== frameRef.current) {
|
|
50
|
+
setFrame(nextFrame);
|
|
51
|
+
}
|
|
52
|
+
if (hasEnded) {
|
|
59
53
|
stop();
|
|
60
54
|
pause();
|
|
61
55
|
emitter.dispatchEnded();
|
|
62
56
|
return;
|
|
63
57
|
}
|
|
64
|
-
const actualNextFrame = (nextFrame % durationInFrames) + (inFrame !== null && inFrame !== void 0 ? inFrame : 0);
|
|
65
|
-
if (actualNextFrame !== frameRef.current) {
|
|
66
|
-
setFrame(actualNextFrame);
|
|
67
|
-
}
|
|
68
58
|
if (!hasBeenStopped) {
|
|
69
59
|
reqAnimFrameCall = requestAnimationFrame(callback);
|
|
70
60
|
}
|
|
@@ -73,7 +63,17 @@ const usePlayback = ({ loop }) => {
|
|
|
73
63
|
return () => {
|
|
74
64
|
stop();
|
|
75
65
|
};
|
|
76
|
-
}, [
|
|
66
|
+
}, [
|
|
67
|
+
config,
|
|
68
|
+
loop,
|
|
69
|
+
pause,
|
|
70
|
+
playing,
|
|
71
|
+
setFrame,
|
|
72
|
+
emitter,
|
|
73
|
+
playbackRate,
|
|
74
|
+
inFrame,
|
|
75
|
+
outFrame,
|
|
76
|
+
]);
|
|
77
77
|
(0, react_1.useEffect)(() => {
|
|
78
78
|
const interval = setInterval(() => {
|
|
79
79
|
if (lastTimeUpdateEvent.current === frameRef.current) {
|
package/dist/use-playback.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-playback.js","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AACxC,uCAAmC;AACnC,6CAAuC;AAEhC,MAAM,WAAW,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"use-playback.js","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":"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"}
|
package/dist/use-player.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-player.d.ts","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAA2C,MAAM,OAAO,CAAC;AAG/E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,eAAO,MAAM,SAAS;wBACD,MAAM,KAAK,IAAI;2BACZ,MAAM,KAAK,IAAI;iBACzB,OAAO;aACX,aAAa;aACb,OAAO;8DACc,IAAI;WAC3B,MAAM,IAAI;qBACA,MAAM,KAAK,IAAI;qBACf,MAAM,MAAM;eAClB,MAAM,OAAO;
|
|
1
|
+
{"version":3,"file":"use-player.d.ts","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAA2C,MAAM,OAAO,CAAC;AAG/E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,eAAO,MAAM,SAAS;wBACD,MAAM,KAAK,IAAI;2BACZ,MAAM,KAAK,IAAI;iBACzB,OAAO;aACX,aAAa;aACb,OAAO;8DACc,IAAI;WAC3B,MAAM,IAAI;qBACA,MAAM,KAAK,IAAI;qBACf,MAAM,MAAM;eAClB,MAAM,OAAO;CAwHxB,CAAC"}
|
package/dist/use-player.js
CHANGED
|
@@ -6,8 +6,7 @@ const remotion_1 = require("remotion");
|
|
|
6
6
|
const emitter_context_1 = require("./emitter-context");
|
|
7
7
|
const usePlayer = () => {
|
|
8
8
|
var _a;
|
|
9
|
-
const [playing, setPlaying] = remotion_1.Internals.Timeline.usePlayingState();
|
|
10
|
-
const imperativePlaying = (0, react_1.useRef)(false);
|
|
9
|
+
const [playing, setPlaying, imperativePlaying] = remotion_1.Internals.Timeline.usePlayingState();
|
|
11
10
|
const frame = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
12
11
|
const setFrame = remotion_1.Internals.Timeline.useTimelineSetFrame();
|
|
13
12
|
const setTimelinePosition = remotion_1.Internals.Timeline.useTimelineSetFrame();
|
|
@@ -39,14 +38,14 @@ const usePlayer = () => {
|
|
|
39
38
|
imperativePlaying.current = true;
|
|
40
39
|
setPlaying(true);
|
|
41
40
|
emitter.dispatchPlay();
|
|
42
|
-
}, [isLastFrame, audioContext, setPlaying, emitter, seek]);
|
|
41
|
+
}, [imperativePlaying, isLastFrame, audioContext, setPlaying, emitter, seek]);
|
|
43
42
|
const pause = (0, react_1.useCallback)(() => {
|
|
44
43
|
if (imperativePlaying.current) {
|
|
45
44
|
imperativePlaying.current = false;
|
|
46
45
|
setPlaying(false);
|
|
47
46
|
emitter.dispatchPause();
|
|
48
47
|
}
|
|
49
|
-
}, [emitter, setPlaying]);
|
|
48
|
+
}, [emitter, imperativePlaying, setPlaying]);
|
|
50
49
|
const hasVideo = Boolean(video);
|
|
51
50
|
const frameBack = (0, react_1.useCallback)((frames) => {
|
|
52
51
|
if (!hasVideo) {
|
|
@@ -58,7 +57,7 @@ const usePlayer = () => {
|
|
|
58
57
|
setFrame((f) => {
|
|
59
58
|
return Math.max(0, f - frames);
|
|
60
59
|
});
|
|
61
|
-
}, [hasVideo, setFrame]);
|
|
60
|
+
}, [hasVideo, imperativePlaying, setFrame]);
|
|
62
61
|
const frameForward = (0, react_1.useCallback)((frames) => {
|
|
63
62
|
if (!hasVideo) {
|
|
64
63
|
return null;
|
|
@@ -67,7 +66,7 @@ const usePlayer = () => {
|
|
|
67
66
|
return;
|
|
68
67
|
}
|
|
69
68
|
setFrame((f) => Math.min(lastFrame, f + frames));
|
|
70
|
-
}, [hasVideo, lastFrame, setFrame]);
|
|
69
|
+
}, [hasVideo, imperativePlaying, lastFrame, setFrame]);
|
|
71
70
|
const returnValue = (0, react_1.useMemo)(() => {
|
|
72
71
|
return {
|
|
73
72
|
frameBack,
|
|
@@ -85,6 +84,7 @@ const usePlayer = () => {
|
|
|
85
84
|
emitter,
|
|
86
85
|
frameBack,
|
|
87
86
|
frameForward,
|
|
87
|
+
imperativePlaying,
|
|
88
88
|
isLastFrame,
|
|
89
89
|
pause,
|
|
90
90
|
play,
|
package/dist/use-player.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-player.js","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":";;;AAAA,iCAA+E;AAC/E,uCAAmC;AACnC,uDAA4D;AAGrD,MAAM,SAAS,GAAG,GAWvB,EAAE;;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"use-player.js","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-throttle.d.ts","sourceRoot":"","sources":["../../src/utils/use-throttle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,uCAmBvB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useThrottle = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useThrottle = (value, interval = 250) => {
|
|
6
|
+
const [throttledValue, setThrottledValue] = react_1.useState(value);
|
|
7
|
+
const lastExecuted = react_1.useRef(Date.now());
|
|
8
|
+
react_1.useEffect(() => {
|
|
9
|
+
if (Date.now() >= lastExecuted.current + interval) {
|
|
10
|
+
lastExecuted.current = Date.now();
|
|
11
|
+
setThrottledValue(value);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
const timerId = setTimeout(() => {
|
|
15
|
+
lastExecuted.current = Date.now();
|
|
16
|
+
setThrottledValue(value);
|
|
17
|
+
}, interval);
|
|
18
|
+
return () => clearTimeout(timerId);
|
|
19
|
+
}
|
|
20
|
+
}, [value, interval]);
|
|
21
|
+
return throttledValue;
|
|
22
|
+
};
|
|
23
|
+
exports.useThrottle = useThrottle;
|
|
24
|
+
//# sourceMappingURL=use-throttle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-throttle.js","sourceRoot":"","sources":["../../src/utils/use-throttle.ts"],"names":[],"mappings":";;;AAAA,iCAAkD;AAE3C,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAE,QAAQ,GAAG,GAAG,EAAK,EAAE;IAC7D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,gBAAQ,CAAI,KAAK,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,cAAM,CAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,iBAAS,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,YAAY,CAAC,OAAO,GAAG,QAAQ,EAAE;YAClD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAClC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACN,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAClC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEb,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SACnC;IACF,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAnBW,QAAA,WAAW,eAmBtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-playbackrate.d.ts","sourceRoot":"","sources":["../../src/utils/validate-playbackrate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,GAAG,SAAS,SAoBpE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validatePlaybackRate = void 0;
|
|
4
|
+
const validatePlaybackRate = (playbackRate) => {
|
|
5
|
+
if (playbackRate === undefined) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (playbackRate > 4) {
|
|
9
|
+
throw new Error(`The highest possible playback rate is 4. You passed: ${playbackRate}`);
|
|
10
|
+
}
|
|
11
|
+
if (playbackRate < -4) {
|
|
12
|
+
throw new Error(`The lowest possible playback rate is -4. You passed: ${playbackRate}`);
|
|
13
|
+
}
|
|
14
|
+
if (playbackRate === 0) {
|
|
15
|
+
throw new Error(`A playback rate of 0 is not supported.`);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.validatePlaybackRate = validatePlaybackRate;
|
|
19
|
+
//# sourceMappingURL=validate-playbackrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-playbackrate.js","sourceRoot":"","sources":["../../src/utils/validate-playbackrate.ts"],"names":[],"mappings":";;;AAAO,MAAM,oBAAoB,GAAG,CAAC,YAAgC,EAAE,EAAE;IACxE,IAAI,YAAY,KAAK,SAAS,EAAE;QAC/B,OAAO;KACP;IAED,IAAI,YAAY,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CACd,wDAAwD,YAAY,EAAE,CACtE,CAAC;KACF;IAED,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CACd,wDAAwD,YAAY,EAAE,CACtE,CAAC;KACF;IAED,IAAI,YAAY,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC1D;AACF,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/player",
|
|
3
|
-
"version": "3.0.0-lambda.
|
|
3
|
+
"version": "3.0.0-lambda.203+6e2dfd14e",
|
|
4
4
|
"description": "Remotion Player",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
],
|
|
25
25
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"remotion": "
|
|
27
|
+
"remotion": "3.0.0-lambda.203+6e2dfd14e"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"react": ">=16.8.0",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"prettier-plugin-organize-imports": "^1.1.1",
|
|
45
45
|
"ts-jest": "^27.0.5",
|
|
46
46
|
"typescript": "^4.4.2",
|
|
47
|
-
"webpack": "
|
|
47
|
+
"webpack": "5.60.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "6e2dfd14e68f5537f527a5fae8b988db0596fac4"
|
|
53
53
|
}
|
package/dist/Freeze.d.ts
DELETED
package/dist/Freeze.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Freeze.d.ts","sourceRoot":"","sources":["../src/Freeze.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,aAAK,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAcxC,CAAC"}
|
package/dist/Freeze.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Freeze = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const remotion_1 = require("remotion");
|
|
7
|
-
const Freeze = (props) => {
|
|
8
|
-
const context = react_1.useContext(remotion_1.Internals.Timeline.TimelineContext);
|
|
9
|
-
const value = react_1.useMemo(() => {
|
|
10
|
-
return {
|
|
11
|
-
...context,
|
|
12
|
-
frame: props.frame,
|
|
13
|
-
};
|
|
14
|
-
}, [context, props.frame]);
|
|
15
|
-
return (jsx_runtime_1.jsx(remotion_1.Internals.Timeline.TimelineContext.Provider, Object.assign({ value: value }, { children: props.children }), void 0));
|
|
16
|
-
};
|
|
17
|
-
exports.Freeze = Freeze;
|
|
18
|
-
//# sourceMappingURL=Freeze.js.map
|
package/dist/Freeze.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Freeze.js","sourceRoot":"","sources":["../src/Freeze.tsx"],"names":[],"mappings":";;;;AAAA,iCAAiD;AACjD,uCAAyD;AAMlD,MAAM,MAAM,GAA0B,CAAC,KAAK,EAAE,EAAE;IACtD,MAAM,OAAO,GAAG,kBAAU,CAAC,oBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAyB,eAAO,CAAC,GAAG,EAAE;QAChD,OAAO;YACN,GAAG,OAAO;YACV,KAAK,EAAE,KAAK,CAAC,KAAK;SAClB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3B,OAAO,CACN,kBAAC,oBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,kBAAC,KAAK,EAAE,KAAK,gBACvD,KAAK,CAAC,QAAQ,YAC8B,CAC9C,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,MAAM,UAcjB"}
|