@remotion/player 3.0.0-compression.3 → 3.0.0-eslint.6
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/LICENSE.md +2 -2
- package/README.md +81 -3
- package/dist/MediaVolumeSlider.d.ts +0 -0
- package/dist/MediaVolumeSlider.d.ts.map +0 -0
- package/dist/MediaVolumeSlider.js +1 -1
- package/dist/MediaVolumeSlider.js.map +1 -1
- package/dist/Player.d.ts +5 -2
- package/dist/Player.d.ts.map +1 -1
- package/dist/Player.js +26 -5
- package/dist/Player.js.map +1 -1
- package/dist/PlayerControls.d.ts +0 -0
- package/dist/PlayerControls.d.ts.map +0 -0
- package/dist/PlayerControls.js +2 -2
- package/dist/PlayerControls.js.map +1 -1
- package/dist/PlayerSeekBar.d.ts +0 -0
- package/dist/PlayerSeekBar.d.ts.map +1 -1
- package/dist/PlayerSeekBar.js +5 -2
- package/dist/PlayerSeekBar.js.map +1 -1
- package/dist/PlayerUI.d.ts +9 -3
- package/dist/PlayerUI.d.ts.map +1 -1
- package/dist/PlayerUI.js +14 -5
- package/dist/PlayerUI.js.map +1 -1
- package/dist/calculate-next-frame.d.ts +0 -0
- package/dist/calculate-next-frame.d.ts.map +0 -0
- package/dist/calculate-next-frame.js +0 -0
- package/dist/calculate-next-frame.js.map +0 -0
- package/dist/calculate-scale.d.ts +0 -0
- package/dist/calculate-scale.d.ts.map +0 -0
- package/dist/calculate-scale.js +0 -0
- package/dist/calculate-scale.js.map +0 -0
- package/dist/emitter-context.d.ts +0 -0
- package/dist/emitter-context.d.ts.map +0 -0
- package/dist/emitter-context.js +0 -0
- package/dist/emitter-context.js.map +0 -0
- package/dist/error-boundary.d.ts +0 -0
- package/dist/error-boundary.d.ts.map +0 -0
- package/dist/error-boundary.js +2 -2
- package/dist/error-boundary.js.map +1 -1
- package/dist/event-emitter.d.ts +0 -0
- package/dist/event-emitter.d.ts.map +0 -0
- package/dist/event-emitter.js +0 -0
- package/dist/event-emitter.js.map +0 -0
- package/dist/format-time.d.ts +0 -0
- package/dist/format-time.d.ts.map +0 -0
- package/dist/format-time.js +0 -0
- package/dist/format-time.js.map +0 -0
- package/dist/icons.d.ts +0 -0
- package/dist/icons.d.ts.map +0 -0
- package/dist/icons.js +6 -6
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/player-css-classname.d.ts +0 -0
- package/dist/player-css-classname.d.ts.map +0 -0
- package/dist/player-css-classname.js +0 -0
- package/dist/player-css-classname.js.map +0 -0
- package/dist/player-methods.d.ts +0 -0
- package/dist/player-methods.d.ts.map +0 -0
- package/dist/player-methods.js +0 -0
- package/dist/player-methods.js.map +0 -0
- package/dist/test/index.test.d.ts +0 -0
- package/dist/test/index.test.d.ts.map +0 -0
- package/dist/test/index.test.js +0 -0
- package/dist/test/index.test.js.map +0 -0
- package/dist/test/test-utils.d.ts +0 -0
- package/dist/test/test-utils.d.ts.map +0 -0
- package/dist/test/test-utils.js +0 -0
- package/dist/test/test-utils.js.map +0 -0
- package/dist/test/validate-prop.test.d.ts +0 -0
- package/dist/test/validate-prop.test.d.ts.map +0 -0
- package/dist/test/validate-prop.test.js +28 -1
- package/dist/test/validate-prop.test.js.map +1 -1
- package/dist/use-hover-state.d.ts +0 -0
- package/dist/use-hover-state.d.ts.map +0 -0
- package/dist/use-hover-state.js +0 -0
- package/dist/use-hover-state.js.map +0 -0
- package/dist/use-playback.d.ts +0 -0
- package/dist/use-playback.d.ts.map +0 -0
- package/dist/use-playback.js +0 -0
- package/dist/use-playback.js.map +0 -0
- package/dist/use-player.d.ts +0 -0
- package/dist/use-player.d.ts.map +1 -1
- package/dist/use-player.js +18 -1
- package/dist/use-player.js.map +1 -1
- package/dist/utils/browser-supports-fullscreen.d.ts +0 -0
- package/dist/utils/browser-supports-fullscreen.d.ts.map +0 -0
- package/dist/utils/browser-supports-fullscreen.js +0 -0
- package/dist/utils/browser-supports-fullscreen.js.map +0 -0
- package/dist/utils/calculate-player-size.d.ts +0 -0
- package/dist/utils/calculate-player-size.d.ts.map +0 -0
- package/dist/utils/calculate-player-size.js +0 -0
- package/dist/utils/calculate-player-size.js.map +0 -0
- package/dist/utils/cancellable-promise.d.ts +0 -0
- package/dist/utils/cancellable-promise.d.ts.map +0 -0
- package/dist/utils/cancellable-promise.js +0 -0
- package/dist/utils/cancellable-promise.js.map +0 -0
- package/dist/utils/delay.d.ts +0 -0
- package/dist/utils/delay.d.ts.map +0 -0
- package/dist/utils/delay.js +0 -0
- package/dist/utils/delay.js.map +0 -0
- package/dist/utils/is-node.d.ts +0 -0
- package/dist/utils/is-node.d.ts.map +0 -0
- package/dist/utils/is-node.js +0 -0
- package/dist/utils/is-node.js.map +0 -0
- package/dist/utils/preview-size.d.ts +0 -0
- package/dist/utils/preview-size.d.ts.map +0 -0
- package/dist/utils/preview-size.js +0 -0
- package/dist/utils/preview-size.js.map +0 -0
- package/dist/utils/use-cancellable-promises.d.ts +0 -0
- package/dist/utils/use-cancellable-promises.d.ts.map +0 -0
- package/dist/utils/use-cancellable-promises.js +0 -0
- package/dist/utils/use-cancellable-promises.js.map +0 -0
- package/dist/utils/use-click-prevention-on-double-click.d.ts +0 -0
- package/dist/utils/use-click-prevention-on-double-click.d.ts.map +0 -0
- package/dist/utils/use-click-prevention-on-double-click.js +0 -0
- package/dist/utils/use-click-prevention-on-double-click.js.map +0 -0
- package/dist/utils/use-element-size.d.ts +2 -0
- package/dist/utils/use-element-size.d.ts.map +1 -1
- package/dist/utils/use-element-size.js +27 -4
- package/dist/utils/use-element-size.js.map +1 -1
- package/dist/utils/validate-playbackrate.d.ts +0 -0
- package/dist/utils/validate-playbackrate.d.ts.map +0 -0
- package/dist/utils/validate-playbackrate.js +0 -0
- package/dist/utils/validate-playbackrate.js.map +0 -0
- package/dist/volume-persistance.d.ts +0 -0
- package/dist/volume-persistance.d.ts.map +0 -0
- package/dist/volume-persistance.js +0 -0
- package/dist/volume-persistance.js.map +0 -0
- package/package.json +24 -10
- 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/Loading.d.ts +0 -4
- package/dist/Loading.d.ts.map +0 -1
- package/dist/Loading.js +0 -25
- package/dist/Loading.js.map +0 -1
- package/dist/event-target-polyfill.d.ts +0 -3
- package/dist/event-target-polyfill.d.ts.map +0 -1
- package/dist/event-target-polyfill.js +0 -114
- package/dist/event-target-polyfill.js.map +0 -1
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"}
|
package/dist/Loading.d.ts
DELETED
package/dist/Loading.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../src/Loading.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACb,CA+CA,CAAC"}
|
package/dist/Loading.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Loading = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const Loading = ({ size }) => {
|
|
6
|
-
const triangle = (opacity, triangleSize) => (jsx_runtime_1.jsxs("svg", Object.assign({ xmlnsXlink: "http://www.w3.org/1999/xlink", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 400 400", style: {
|
|
7
|
-
opacity,
|
|
8
|
-
width: triangleSize,
|
|
9
|
-
height: triangleSize,
|
|
10
|
-
position: 'absolute',
|
|
11
|
-
transform: 'rotate(90deg)',
|
|
12
|
-
} }, { children: [jsx_runtime_1.jsx("defs", { children: jsx_runtime_1.jsxs("linearGradient", Object.assign({ id: "gradient" }, { children: [jsx_runtime_1.jsx("stop", { stopColor: "#42e9f5", stopOpacity: "1", offset: "0" }, void 0),
|
|
13
|
-
jsx_runtime_1.jsx("stop", { stopColor: "#4290f5", stopOpacity: "1", offset: "100%" }, void 0)] }), void 0) }, void 0),
|
|
14
|
-
jsx_runtime_1.jsx("g", Object.assign({ stroke: 'url("#gradient")', strokeWidth: "100px", strokeLinejoin: "round" }, { children: jsx_runtime_1.jsx("path", { fill: 'url("#gradient")', d: "M 102 272 a 196 100 0 0 0 195 5 A 196 240 0 0 0 200 102.259 A 196 240 0 0 0 102 272 z", stroke: 'url("#gradient")', strokeWidth: "100px" }, void 0) }), void 0)] }), void 0));
|
|
15
|
-
return (jsx_runtime_1.jsxs("div", Object.assign({ style: {
|
|
16
|
-
display: 'flex',
|
|
17
|
-
justifyContent: 'center',
|
|
18
|
-
alignItems: 'center',
|
|
19
|
-
flex: 1,
|
|
20
|
-
height: '100%',
|
|
21
|
-
width: '100%',
|
|
22
|
-
} }, { children: [triangle(0.2, size), triangle(0.4, (size * 9) / 11), triangle(1, (size * 7) / 11)] }), void 0));
|
|
23
|
-
};
|
|
24
|
-
exports.Loading = Loading;
|
|
25
|
-
//# sourceMappingURL=Loading.js.map
|
package/dist/Loading.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.js","sourceRoot":"","sources":["../src/Loading.tsx"],"names":[],"mappings":";;;;AAAO,MAAM,OAAO,GAEf,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;IACf,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,YAAoB,EAAE,EAAE,CAAC,CAC3D,0CACC,UAAU,EAAC,8BAA8B,EACzC,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE;YACN,OAAO;YACP,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,eAAe;SAC1B,iBAED,sCACC,qDAAgB,EAAE,EAAC,UAAU,iBAC5B,4BAAM,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,WAAG;wBACvD,4BAAM,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,WAAG,aAC1C,WACX;YACP,uCAAG,MAAM,EAAC,kBAAkB,EAAC,WAAW,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,gBACtE,4BACC,IAAI,EAAC,kBAAkB,EACvB,CAAC,EAAC,uFAAuF,EACzF,MAAM,EAAC,kBAAkB,EACzB,WAAW,EAAC,OAAO,WAClB,YACC,aACC,CACN,CAAC;IAEF,OAAO,CACN,0CACC,KAAK,EAAE;YACN,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;SACb,iBAEA,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EACnB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAC9B,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,aACxB,CACN,CAAC;AACH,CAAC,CAAC;AAjDW,QAAA,OAAO,WAiDlB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-target-polyfill.d.ts","sourceRoot":"","sources":["../src/event-target-polyfill.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,IAAI,2BAGgC,CAAC;AAE3C,iBAAS,aAAa,CAAC,EAAE,KAAA,WASxB"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// https://raw.githubusercontent.com/benlesh/event-target-polyfill/master/index.js
|
|
3
|
-
// @ts-nocheck
|
|
4
|
-
const root = (typeof globalThis !== 'undefined' && globalThis) ||
|
|
5
|
-
(typeof self !== 'undefined' && self) ||
|
|
6
|
-
(typeof global !== 'undefined' && global);
|
|
7
|
-
function isConstructor(fn) {
|
|
8
|
-
try {
|
|
9
|
-
// eslint-disable-next-line
|
|
10
|
-
new fn();
|
|
11
|
-
}
|
|
12
|
-
catch (error) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
if (typeof root.Event !== 'function' || !isConstructor(root.Event)) {
|
|
18
|
-
root.Event = (function () {
|
|
19
|
-
function Event(type, options) {
|
|
20
|
-
this.bubbles = Boolean(options) && Boolean(options.bubbles);
|
|
21
|
-
this.cancelable = Boolean(options) && Boolean(options.cancelable);
|
|
22
|
-
this.composed = Boolean(options) && Boolean(options.composed);
|
|
23
|
-
this.type = type;
|
|
24
|
-
}
|
|
25
|
-
return Event;
|
|
26
|
-
})();
|
|
27
|
-
}
|
|
28
|
-
if (typeof root.EventTarget === 'undefined' || !isConstructor(root.Event)) {
|
|
29
|
-
root.EventTarget = (function () {
|
|
30
|
-
function EventTarget() {
|
|
31
|
-
this.__listeners = new Map();
|
|
32
|
-
}
|
|
33
|
-
EventTarget.prototype = Object.create(Object.prototype);
|
|
34
|
-
EventTarget.prototype.addEventListener = function (type, listener, options) {
|
|
35
|
-
if (arguments.length < 2) {
|
|
36
|
-
throw new TypeError(`TypeError: Failed to execute 'addEventListener'
|
|
37
|
-
on 'EventTarget': 2 arguments required, but only $ {
|
|
38
|
-
arguments.length
|
|
39
|
-
}
|
|
40
|
-
present.`);
|
|
41
|
-
}
|
|
42
|
-
const { __listeners } = this;
|
|
43
|
-
const actualType = type.toString();
|
|
44
|
-
if (!__listeners.has(actualType)) {
|
|
45
|
-
__listeners.set(actualType, new Map());
|
|
46
|
-
}
|
|
47
|
-
const listenersForType = __listeners.get(actualType);
|
|
48
|
-
if (!listenersForType.has(listener)) {
|
|
49
|
-
// Any given listener is only registered once
|
|
50
|
-
listenersForType.set(listener, options);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
EventTarget.prototype.removeEventListener = function (type, listener) {
|
|
54
|
-
if (arguments.length < 2) {
|
|
55
|
-
throw new TypeError(`TypeError: Failed to execute 'addEventListener'
|
|
56
|
-
on 'EventTarget': 2 arguments required, but only $ {
|
|
57
|
-
arguments.length
|
|
58
|
-
}
|
|
59
|
-
present.`);
|
|
60
|
-
}
|
|
61
|
-
const { __listeners } = this;
|
|
62
|
-
const actualType = type.toString();
|
|
63
|
-
if (__listeners.has(actualType)) {
|
|
64
|
-
const listenersForType = __listeners.get(actualType);
|
|
65
|
-
if (listenersForType.has(listener)) {
|
|
66
|
-
listenersForType.delete(listener);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
EventTarget.prototype.dispatchEvent = function (event) {
|
|
71
|
-
if (!(event instanceof Event)) {
|
|
72
|
-
throw new TypeError(`Failed to execute 'dispatchEvent'
|
|
73
|
-
on 'EventTarget': parameter 1 is not of type 'Event'.`);
|
|
74
|
-
}
|
|
75
|
-
const { type } = event;
|
|
76
|
-
const { __listeners } = this;
|
|
77
|
-
const listenersForType = __listeners.get(type);
|
|
78
|
-
if (listenersForType) {
|
|
79
|
-
for (const [listener, options] of listenersForType.entries()) {
|
|
80
|
-
try {
|
|
81
|
-
if (typeof listener === 'function') {
|
|
82
|
-
// Listener functions must be executed with the EventTarget as the `this` context.
|
|
83
|
-
listener.call(this, event);
|
|
84
|
-
}
|
|
85
|
-
else if (listener && typeof listener.handleEvent === 'function') {
|
|
86
|
-
// Listener objects have their handleEvent method called, if they have one
|
|
87
|
-
listener.handleEvent(event);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch (err) {
|
|
91
|
-
// We need to report the error to the global error handling event,
|
|
92
|
-
// but we do not want to break the loop that is executing the events.
|
|
93
|
-
// Unfortunately, this is the best we can do, which isn't great, because the
|
|
94
|
-
// native EventTarget will actually do this synchronously before moving to the next
|
|
95
|
-
// event in the loop.
|
|
96
|
-
setTimeout(() => {
|
|
97
|
-
throw err;
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
if (options === null || options === void 0 ? void 0 : options.once) {
|
|
101
|
-
// If this was registered with { once: true }, we need
|
|
102
|
-
// to remove it now.
|
|
103
|
-
listenersForType.delete(listener);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Since there are no cancellable events on a base EventTarget,
|
|
108
|
-
// this should always return true.
|
|
109
|
-
return true;
|
|
110
|
-
};
|
|
111
|
-
return EventTarget;
|
|
112
|
-
})();
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=event-target-polyfill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-target-polyfill.js","sourceRoot":"","sources":["../src/event-target-polyfill.ts"],"names":[],"mappings":"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"}
|