@remotion/cli 3.0.1 → 3.0.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.
- package/dist/cycle-browser-tabs.d.ts +7 -0
- package/dist/cycle-browser-tabs.d.ts.map +1 -0
- package/dist/cycle-browser-tabs.js +24 -0
- package/dist/cycle-browser-tabs.js.map +1 -0
- package/dist/delete-directory.d.ts +2 -0
- package/dist/delete-directory.d.ts.map +1 -0
- package/dist/delete-directory.js +15 -0
- package/dist/delete-directory.js.map +1 -0
- package/dist/editor/components/ErrorOverlay.d.ts +9 -0
- package/dist/editor/components/ErrorOverlay.d.ts.map +1 -0
- package/dist/editor/components/ErrorOverlay.js +22 -0
- package/dist/editor/components/ErrorOverlay.js.map +1 -0
- package/dist/editor/components/Errors/ErrorDisplay.d.ts +12 -0
- package/dist/editor/components/Errors/ErrorDisplay.d.ts.map +1 -0
- package/dist/editor/components/Errors/ErrorDisplay.js +43 -0
- package/dist/editor/components/Errors/ErrorDisplay.js.map +1 -0
- package/dist/editor/components/Errors/ErrorOverlay.d.ts +9 -0
- package/dist/editor/components/Errors/ErrorOverlay.d.ts.map +1 -0
- package/dist/editor/components/Errors/ErrorOverlay.js +22 -0
- package/dist/editor/components/Errors/ErrorOverlay.js.map +1 -0
- package/dist/editor/components/Errors/stack-frame.d.ts +46 -0
- package/dist/editor/components/Errors/stack-frame.d.ts.map +1 -0
- package/dist/editor/components/Errors/stack-frame.js +82 -0
- package/dist/editor/components/Errors/stack-frame.js.map +1 -0
- package/dist/editor/components/FramePersister.d.ts +4 -0
- package/dist/editor/components/FramePersister.d.ts.map +1 -0
- package/dist/editor/components/FramePersister.js +28 -0
- package/dist/editor/components/FramePersister.js.map +1 -0
- package/dist/editor/components/MediaVolumeSlider.d.ts +3 -0
- package/dist/editor/components/MediaVolumeSlider.d.ts.map +1 -0
- package/dist/editor/components/MediaVolumeSlider.js +113 -0
- package/dist/editor/components/MediaVolumeSlider.js.map +1 -0
- package/dist/editor/components/Menu/Checkmark.d.ts +2 -0
- package/dist/editor/components/Menu/Checkmark.d.ts.map +1 -0
- package/dist/editor/components/Menu/Checkmark.js +11 -0
- package/dist/editor/components/Menu/Checkmark.js.map +1 -0
- package/dist/editor/components/Menu/is-menu-click.d.ts +1 -0
- package/dist/editor/components/Menu/is-menu-click.d.ts.map +1 -0
- package/dist/editor/components/Menu/is-menu-click.js +2 -0
- package/dist/editor/components/Menu/is-menu-click.js.map +1 -0
- package/dist/editor/components/NewComposition/CompositionType.d.ts +7 -0
- package/dist/editor/components/NewComposition/CompositionType.d.ts.map +1 -0
- package/dist/editor/components/NewComposition/CompositionType.js +57 -0
- package/dist/editor/components/NewComposition/CompositionType.js.map +1 -0
- package/dist/editor/components/NewComposition/LazyLoadNewComposition.d.ts +6 -0
- package/dist/editor/components/NewComposition/LazyLoadNewComposition.d.ts.map +1 -0
- package/dist/editor/components/NewComposition/LazyLoadNewComposition.js +32 -0
- package/dist/editor/components/NewComposition/LazyLoadNewComposition.js.map +1 -0
- package/dist/editor/components/NewComposition/NewCompHeader.d.ts +3 -0
- package/dist/editor/components/NewComposition/NewCompHeader.d.ts.map +1 -0
- package/dist/editor/components/NewComposition/NewCompHeader.js +29 -0
- package/dist/editor/components/NewComposition/NewCompHeader.js.map +1 -0
- package/dist/editor/components/NewComposition.d.ts +3 -0
- package/dist/editor/components/NewComposition.d.ts.map +1 -0
- package/dist/editor/components/NewComposition.js +47 -0
- package/dist/editor/components/NewComposition.js.map +1 -0
- package/dist/editor/components/NewSequence.d.ts +3 -0
- package/dist/editor/components/NewSequence.d.ts.map +1 -0
- package/dist/editor/components/NewSequence.js +47 -0
- package/dist/editor/components/NewSequence.js.map +1 -0
- package/dist/editor/components/Spacing.d.ts +7 -0
- package/dist/editor/components/Spacing.d.ts.map +1 -0
- package/dist/editor/components/Spacing.js +18 -0
- package/dist/editor/components/Spacing.js.map +1 -0
- package/dist/editor/components/Timeline/LoopIndicator.d.ts +5 -0
- package/dist/editor/components/Timeline/LoopIndicator.d.ts.map +1 -0
- package/dist/editor/components/Timeline/LoopIndicator.js +37 -0
- package/dist/editor/components/Timeline/LoopIndicator.js.map +1 -0
- package/dist/editor/helpers/font.d.ts +2 -0
- package/dist/editor/helpers/font.d.ts.map +1 -0
- package/dist/editor/helpers/font.js +5 -0
- package/dist/editor/helpers/font.js.map +1 -0
- package/dist/editor/helpers/isCompositionStill.d.ts +1 -0
- package/dist/editor/helpers/isCompositionStill.d.ts.map +1 -0
- package/dist/editor/helpers/isCompositionStill.js +2 -0
- package/dist/editor/helpers/isCompositionStill.js.map +1 -0
- package/dist/editor/helpers/persist-open-folders.d.ts +0 -0
- package/dist/editor/helpers/persist-open-folders.d.ts.map +0 -0
- package/dist/editor/helpers/persist-open-folders.js +0 -0
- package/dist/editor/helpers/persist-open-folders.js.map +0 -0
- package/dist/editor/helpers/validate-composition-name.d.ts +3 -0
- package/dist/editor/helpers/validate-composition-name.d.ts.map +1 -0
- package/dist/editor/helpers/validate-composition-name.js +15 -0
- package/dist/editor/helpers/validate-composition-name.js.map +1 -0
- package/dist/editor/hooks/get-el-size.d.ts +8 -0
- package/dist/editor/hooks/get-el-size.d.ts.map +1 -0
- package/dist/editor/hooks/get-el-size.js +43 -0
- package/dist/editor/hooks/get-el-size.js.map +1 -0
- package/dist/editor/icons/fast-back.d.ts +3 -0
- package/dist/editor/icons/fast-back.d.ts.map +1 -0
- package/dist/editor/icons/fast-back.js +9 -0
- package/dist/editor/icons/fast-back.js.map +1 -0
- package/dist/editor/icons/fast-forward.d.ts +3 -0
- package/dist/editor/icons/fast-forward.d.ts.map +1 -0
- package/dist/editor/icons/fast-forward.js +9 -0
- package/dist/editor/icons/fast-forward.js.map +1 -0
- package/dist/editor/state/global-menu-id.d.ts +4 -0
- package/dist/editor/state/global-menu-id.d.ts.map +1 -0
- package/dist/editor/state/global-menu-id.js +11 -0
- package/dist/editor/state/global-menu-id.js.map +1 -0
- package/dist/editor/state/menu-selection.d.ts +8 -0
- package/dist/editor/state/menu-selection.d.ts.map +1 -0
- package/dist/editor/state/menu-selection.js +14 -0
- package/dist/editor/state/menu-selection.js.map +1 -0
- package/dist/listCompositions.d.ts +2 -0
- package/dist/listCompositions.d.ts.map +1 -0
- package/dist/listCompositions.js +46 -0
- package/dist/listCompositions.js.map +1 -0
- package/dist/render.js +1 -1
- package/dist/render.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RenderInternals } from '@remotion/renderer';
|
|
2
|
+
declare type Await<T> = T extends PromiseLike<infer U> ? U : T;
|
|
3
|
+
export declare const cycleBrowserTabs: (openedBrowser: Await<ReturnType<typeof RenderInternals.openBrowser>>) => {
|
|
4
|
+
stopCycling: () => void;
|
|
5
|
+
};
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=cycle-browser-tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycle-browser-tabs.d.ts","sourceRoot":"","sources":["../src/cycle-browser-tabs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAGnD,aAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvD,eAAO,MAAM,gBAAgB,kBACb,MAAM,WAAW,OAAO,gBAAgB,WAAW,CAAC,CAAC;;CAmBpE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cycleBrowserTabs = void 0;
|
|
4
|
+
const log_1 = require("./log");
|
|
5
|
+
const cycleBrowserTabs = (openedBrowser) => {
|
|
6
|
+
let i = 0;
|
|
7
|
+
const interval = setInterval(() => {
|
|
8
|
+
openedBrowser
|
|
9
|
+
.pages()
|
|
10
|
+
.then((pages) => {
|
|
11
|
+
const currentPage = pages[i % pages.length];
|
|
12
|
+
i++;
|
|
13
|
+
if (!currentPage.isClosed()) {
|
|
14
|
+
currentPage.bringToFront();
|
|
15
|
+
}
|
|
16
|
+
})
|
|
17
|
+
.catch((err) => log_1.Log.error(err));
|
|
18
|
+
}, 100);
|
|
19
|
+
return {
|
|
20
|
+
stopCycling: () => clearInterval(interval),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
exports.cycleBrowserTabs = cycleBrowserTabs;
|
|
24
|
+
//# sourceMappingURL=cycle-browser-tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycle-browser-tabs.js","sourceRoot":"","sources":["../src/cycle-browser-tabs.ts"],"names":[],"mappings":";;;AACA,+BAA0B;AAInB,MAAM,gBAAgB,GAAG,CAC/B,aAAoE,EACnE,EAAE;IACH,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,aAAa;aACX,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;gBAC5B,WAAW,CAAC,YAAY,EAAE,CAAC;aAC3B;QACF,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,OAAO;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;KAC1C,CAAC;AACH,CAAC,CAAC;AApBW,QAAA,gBAAgB,oBAoB3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-directory.d.ts","sourceRoot":"","sources":["../src/delete-directory.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,cAAqB,MAAM,kBAKtD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.deleteDirectory = void 0;
|
|
7
|
+
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
const deleteDirectory = async (directory) => {
|
|
9
|
+
// We use del before to remove all files inside the directories otherwise
|
|
10
|
+
// rmdir will throw an error.
|
|
11
|
+
await (0, execa_1.default)('cmd', ['/c', 'del', '/f', '/s', '/q', directory]);
|
|
12
|
+
await (0, execa_1.default)('cmd', ['/c', 'rmdir', '/s', '/q', directory]);
|
|
13
|
+
};
|
|
14
|
+
exports.deleteDirectory = deleteDirectory;
|
|
15
|
+
//# sourceMappingURL=delete-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-directory.js","sourceRoot":"","sources":["../src/delete-directory.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAEnB,MAAM,eAAe,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;IAC1D,yEAAyE;IACzE,6BAA6B;IAC7B,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ErrorRecord } from '../react-overlay/listen-to-runtime-errors';
|
|
3
|
+
declare type SetErrors = {
|
|
4
|
+
setErrors: (errs: ErrorRecord[]) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const setErrorsRef: React.RefObject<SetErrors>;
|
|
7
|
+
export declare const Overlay: React.FC;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ErrorOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorOverlay.d.ts","sourceRoot":"","sources":["../../../src/editor/components/ErrorOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAC,WAAW,EAAC,MAAM,2CAA2C,CAAC;AAGtE,aAAK,SAAS,GAAG;IAChB,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,YAAY,4BAAyB,CAAC;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAwB3B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Overlay = exports.setErrorsRef = 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 ErrorDisplay_1 = require("./ErrorDisplay");
|
|
8
|
+
exports.setErrorsRef = (0, react_1.createRef)();
|
|
9
|
+
const Overlay = () => {
|
|
10
|
+
const [errors, setErrors] = (0, react_1.useState)([]);
|
|
11
|
+
(0, react_1.useImperativeHandle)(exports.setErrorsRef, () => {
|
|
12
|
+
return { setErrors };
|
|
13
|
+
}, []);
|
|
14
|
+
if (errors.length === 0) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(remotion_1.AbsoluteFill, Object.assign({ style: { backgroundColor: '#1f2428', overflow: 'auto', color: 'white' } }, { children: errors.map((err) => {
|
|
18
|
+
return (0, jsx_runtime_1.jsx)(ErrorDisplay_1.ErrorDisplay, { display: err }, err.error.stack);
|
|
19
|
+
}) }), void 0));
|
|
20
|
+
};
|
|
21
|
+
exports.Overlay = Overlay;
|
|
22
|
+
//# sourceMappingURL=ErrorOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorOverlay.js","sourceRoot":"","sources":["../../../src/editor/components/ErrorOverlay.tsx"],"names":[],"mappings":";;;;AAAA,iCAAsE;AACtE,uCAAsC;AAEtC,iDAA4C;AAM/B,QAAA,YAAY,GAAG,IAAA,iBAAS,GAAa,CAAC;AAE5C,MAAM,OAAO,GAAa,GAAG,EAAE;IACrC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAgB,EAAE,CAAC,CAAC;IAExD,IAAA,2BAAmB,EAClB,oBAAY,EACZ,GAAG,EAAE;QACJ,OAAO,EAAC,SAAS,EAAC,CAAC;IACpB,CAAC,EACD,EAAE,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,CACN,uBAAC,uBAAY,kBACZ,KAAK,EAAE,EAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAC,gBAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,OAAO,uBAAC,2BAAY,IAAuB,OAAO,EAAE,GAAG,IAA7B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC;QAC7D,CAAC,CAAC,YACY,CACf,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,OAAO,WAwBlB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type ErrorRecord = {
|
|
3
|
+
error: Error;
|
|
4
|
+
unhandledRejection: boolean;
|
|
5
|
+
contextSize: number;
|
|
6
|
+
stackFrames: StackFrame[];
|
|
7
|
+
};
|
|
8
|
+
import { StackFrame } from './stack-frame';
|
|
9
|
+
export declare const ErrorDisplay: React.FC<{
|
|
10
|
+
display: ErrorRecord;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=ErrorDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorDisplay.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/Errors/ErrorDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,oBAAY,WAAW,GAAG;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC1B,CAAC;AAEF,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AA4BzC,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,OAAO,EAAE,WAAW,CAAC;CACrB,CAuCA,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorDisplay = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const container = {
|
|
6
|
+
width: '100%',
|
|
7
|
+
maxWidth: 1000,
|
|
8
|
+
marginLeft: 'auto',
|
|
9
|
+
marginRight: 'auto',
|
|
10
|
+
fontFamily: 'sans-serif',
|
|
11
|
+
paddingTop: '5vh',
|
|
12
|
+
};
|
|
13
|
+
const title = {
|
|
14
|
+
fontSize: '1.5em',
|
|
15
|
+
fontWeight: 'bold',
|
|
16
|
+
};
|
|
17
|
+
const stack = {
|
|
18
|
+
backgroundColor: 'black',
|
|
19
|
+
marginTop: 17,
|
|
20
|
+
};
|
|
21
|
+
const stackLine = {
|
|
22
|
+
paddingTop: 8,
|
|
23
|
+
paddingBottom: 8,
|
|
24
|
+
paddingLeft: 14,
|
|
25
|
+
paddingRight: 14,
|
|
26
|
+
};
|
|
27
|
+
const ErrorDisplay = ({ display }) => {
|
|
28
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ style: container }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ style: title }, { children: [display.error.name, ": ", display.error.message] }), void 0), (0, jsx_runtime_1.jsx)("div", Object.assign({ style: stack }, { children: display.stackFrames.map((s, i) => {
|
|
29
|
+
var _a;
|
|
30
|
+
return (
|
|
31
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
32
|
+
(0, jsx_runtime_1.jsxs)("div", Object.assign({ style: stackLine }, { children: [(0, jsx_runtime_1.jsx)("div", { children: s.functionName }, void 0), (0, jsx_runtime_1.jsxs)("div", { children: [s._originalFileName, ":", s.columnNumber] }, void 0), (0, jsx_runtime_1.jsx)("div", { children: (_a = s._originalScriptCode) === null || _a === void 0 ? void 0 : _a.map((s, j) => {
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)("div", Object.assign({ style: {
|
|
34
|
+
fontFamily: 'monospace',
|
|
35
|
+
whiteSpace: 'pre',
|
|
36
|
+
tabSize: 2,
|
|
37
|
+
color: s.highlight ? 'red' : 'inherit',
|
|
38
|
+
} }, { children: s.content }), j));
|
|
39
|
+
}) }, void 0)] }), i));
|
|
40
|
+
}) }), void 0)] }), void 0));
|
|
41
|
+
};
|
|
42
|
+
exports.ErrorDisplay = ErrorDisplay;
|
|
43
|
+
//# sourceMappingURL=ErrorDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorDisplay.js","sourceRoot":"","sources":["../../../../src/editor/components/Errors/ErrorDisplay.tsx"],"names":[],"mappings":";;;;AAWA,MAAM,SAAS,GAAwB;IACtC,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,KAAK,GAAwB;IAClC,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,MAAM;CAClB,CAAC;AAEF,MAAM,KAAK,GAAwB;IAClC,eAAe,EAAE,OAAO;IACxB,SAAS,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,SAAS,GAAwB;IACtC,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;CAChB,CAAC;AAEK,MAAM,YAAY,GAEpB,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;IAClB,OAAO,CACN,+CAAK,KAAK,EAAE,SAAS,iBACpB,+CAAK,KAAK,EAAE,KAAK,iBACf,OAAO,CAAC,KAAK,CAAC,IAAI,QAAI,OAAO,CAAC,KAAK,CAAC,OAAO,aACvC,EACN,8CAAK,KAAK,EAAE,KAAK,gBACf,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;oBACjC,OAAO;oBACN,oDAAoD;oBACpD,+CAAa,KAAK,EAAE,SAAS,iBAC5B,0CAAM,CAAC,CAAC,YAAY,WAAO,EAC3B,4CACE,CAAC,CAAC,iBAAiB,OAAG,CAAC,CAAC,YAAY,YAChC,EACN,0CACE,MAAA,CAAC,CAAC,mBAAmB,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oCACpC,OAAO,CACN,8CAGC,KAAK,EAAE;4CACN,UAAU,EAAE,WAAW;4CACvB,UAAU,EAAE,KAAK;4CACjB,OAAO,EAAE,CAAC;4CACV,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;yCACtC,gBAEA,CAAC,CAAC,OAAO,KARL,CAAC,CASD,CACN,CAAC;gCACH,CAAC,CAAC,WACG,MAtBG,CAAC,CAuBL,CACN,CAAC;gBACH,CAAC,CAAC,YACG,aACD,CACN,CAAC;AACH,CAAC,CAAC;AAzCW,QAAA,YAAY,gBAyCvB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ErrorRecord } from './ErrorDisplay';
|
|
3
|
+
declare type SetErrors = {
|
|
4
|
+
setErrors: (errs: ErrorRecord[]) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const setErrorsRef: React.RefObject<SetErrors>;
|
|
7
|
+
export declare const Overlay: React.FC;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ErrorOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorOverlay.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/Errors/ErrorOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAe,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAEzD,aAAK,SAAS,GAAG;IAChB,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,YAAY,4BAAyB,CAAC;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAwB3B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Overlay = exports.setErrorsRef = 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 ErrorDisplay_1 = require("./ErrorDisplay");
|
|
8
|
+
exports.setErrorsRef = (0, react_1.createRef)();
|
|
9
|
+
const Overlay = () => {
|
|
10
|
+
const [errors, setErrors] = (0, react_1.useState)([]);
|
|
11
|
+
(0, react_1.useImperativeHandle)(exports.setErrorsRef, () => {
|
|
12
|
+
return { setErrors };
|
|
13
|
+
}, []);
|
|
14
|
+
if (errors.length === 0) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(remotion_1.AbsoluteFill, Object.assign({ style: { backgroundColor: '#1f2428', overflow: 'auto', color: 'white' } }, { children: errors.map((err) => {
|
|
18
|
+
return (0, jsx_runtime_1.jsx)(ErrorDisplay_1.ErrorDisplay, { display: err }, err.error.stack);
|
|
19
|
+
}) }), void 0));
|
|
20
|
+
};
|
|
21
|
+
exports.Overlay = Overlay;
|
|
22
|
+
//# sourceMappingURL=ErrorOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorOverlay.js","sourceRoot":"","sources":["../../../../src/editor/components/Errors/ErrorOverlay.tsx"],"names":[],"mappings":";;;;AAAA,iCAAsE;AACtE,uCAAsC;AACtC,iDAAyD;AAM5C,QAAA,YAAY,GAAG,IAAA,iBAAS,GAAa,CAAC;AAE5C,MAAM,OAAO,GAAa,GAAG,EAAE;IACrC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAgB,EAAE,CAAC,CAAC;IAExD,IAAA,2BAAmB,EAClB,oBAAY,EACZ,GAAG,EAAE;QACJ,OAAO,EAAC,SAAS,EAAC,CAAC;IACpB,CAAC,EACD,EAAE,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,CACN,uBAAC,uBAAY,kBACZ,KAAK,EAAE,EAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAC,gBAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,OAAO,uBAAC,2BAAY,IAAuB,OAAO,EAAE,GAAG,IAA7B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC;QAC7D,CAAC,CAAC,YACY,CACf,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,OAAO,WAwBlB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
/** A container holding a script line. */
|
|
8
|
+
export declare class ScriptLine {
|
|
9
|
+
/** The line number of this line of source. */
|
|
10
|
+
lineNumber: number;
|
|
11
|
+
/** The content (or value) of this line of source. */
|
|
12
|
+
content: string;
|
|
13
|
+
/** Whether or not this line should be highlighted. Particularly useful for error reporting with context. */
|
|
14
|
+
highlight: boolean;
|
|
15
|
+
constructor(lineNumber: number, content: string, highlight?: boolean);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A representation of a stack frame.
|
|
19
|
+
*/
|
|
20
|
+
export declare class StackFrame {
|
|
21
|
+
functionName: string | null;
|
|
22
|
+
fileName: string | null;
|
|
23
|
+
lineNumber: number | null;
|
|
24
|
+
columnNumber: number | null;
|
|
25
|
+
_originalFunctionName: string | null;
|
|
26
|
+
_originalFileName: string | null;
|
|
27
|
+
_originalLineNumber: number | null;
|
|
28
|
+
_originalColumnNumber: number | null;
|
|
29
|
+
_scriptCode: ScriptLine[] | null;
|
|
30
|
+
_originalScriptCode: ScriptLine[] | null;
|
|
31
|
+
constructor(functionName?: string | null, fileName?: string | null, lineNumber?: number | null, columnNumber?: number | null, scriptCode?: ScriptLine[] | null, sourceFunctionName?: string | null, sourceFileName?: string | null, sourceLineNumber?: number | null, sourceColumnNumber?: number | null, sourceScriptCode?: ScriptLine[] | null);
|
|
32
|
+
/**
|
|
33
|
+
* Returns the name of this function.
|
|
34
|
+
*/
|
|
35
|
+
getFunctionName(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Returns the source of the frame.
|
|
38
|
+
* This contains the file name, line number, and column number when available.
|
|
39
|
+
*/
|
|
40
|
+
getSource(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Returns a pretty version of this stack frame.
|
|
43
|
+
*/
|
|
44
|
+
toString(): string;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=stack-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-frame.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/Errors/stack-frame.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yCAAyC;AACzC,qBAAa,UAAU;IACtB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,4GAA4G;IAC5G,SAAS,EAAE,OAAO,CAAC;gBAEP,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,UAAQ;CAKlE;AAED;;GAEG;AACH,qBAAa,UAAU;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;gBAIxC,YAAY,GAAE,MAAM,GAAG,IAAW,EAClC,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,YAAY,GAAE,MAAM,GAAG,IAAW,EAClC,UAAU,GAAE,UAAU,EAAE,GAAG,IAAW,EACtC,kBAAkB,GAAE,MAAM,GAAG,IAAW,EACxC,cAAc,GAAE,MAAM,GAAG,IAAW,EACpC,gBAAgB,GAAE,MAAM,GAAG,IAAW,EACtC,kBAAkB,GAAE,MAAM,GAAG,IAAW,EACxC,gBAAgB,GAAE,UAAU,EAAE,GAAG,IAAW;IAiC7C;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAiBnB;;OAEG;IACH,QAAQ,IAAI,MAAM;CAKlB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.StackFrame = exports.ScriptLine = void 0;
|
|
10
|
+
/** A container holding a script line. */
|
|
11
|
+
class ScriptLine {
|
|
12
|
+
constructor(lineNumber, content, highlight = false) {
|
|
13
|
+
this.lineNumber = lineNumber;
|
|
14
|
+
this.content = content;
|
|
15
|
+
this.highlight = highlight;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ScriptLine = ScriptLine;
|
|
19
|
+
/**
|
|
20
|
+
* A representation of a stack frame.
|
|
21
|
+
*/
|
|
22
|
+
class StackFrame {
|
|
23
|
+
// eslint-disable-next-line max-params
|
|
24
|
+
constructor(functionName = null, fileName = null, lineNumber = null, columnNumber = null, scriptCode = null, sourceFunctionName = null, sourceFileName = null, sourceLineNumber = null, sourceColumnNumber = null, sourceScriptCode = null) {
|
|
25
|
+
if (functionName && functionName.indexOf('Object.') === 0) {
|
|
26
|
+
functionName = functionName.slice('Object.'.length);
|
|
27
|
+
}
|
|
28
|
+
if (
|
|
29
|
+
// Chrome has a bug with inferring function.name:
|
|
30
|
+
// https://github.com/facebook/create-react-app/issues/2097
|
|
31
|
+
// Let's ignore a meaningless name we get for top-level modules.
|
|
32
|
+
functionName === 'friendlySyntaxErrorLabel' ||
|
|
33
|
+
functionName === 'exports.__esModule' ||
|
|
34
|
+
functionName === '<anonymous>' ||
|
|
35
|
+
!functionName) {
|
|
36
|
+
functionName = null;
|
|
37
|
+
}
|
|
38
|
+
this.functionName = functionName;
|
|
39
|
+
this.fileName = fileName;
|
|
40
|
+
this.lineNumber = lineNumber;
|
|
41
|
+
this.columnNumber = columnNumber;
|
|
42
|
+
this._originalFunctionName = sourceFunctionName;
|
|
43
|
+
this._originalFileName = sourceFileName;
|
|
44
|
+
this._originalLineNumber = sourceLineNumber;
|
|
45
|
+
this._originalColumnNumber = sourceColumnNumber;
|
|
46
|
+
this._scriptCode = scriptCode;
|
|
47
|
+
this._originalScriptCode = sourceScriptCode;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns the name of this function.
|
|
51
|
+
*/
|
|
52
|
+
getFunctionName() {
|
|
53
|
+
return this.functionName || '(anonymous function)';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Returns the source of the frame.
|
|
57
|
+
* This contains the file name, line number, and column number when available.
|
|
58
|
+
*/
|
|
59
|
+
getSource() {
|
|
60
|
+
let str = '';
|
|
61
|
+
if (this.fileName !== null) {
|
|
62
|
+
str += this.fileName + ':';
|
|
63
|
+
}
|
|
64
|
+
if (this.lineNumber !== null) {
|
|
65
|
+
str += this.lineNumber + ':';
|
|
66
|
+
}
|
|
67
|
+
if (this.columnNumber !== null) {
|
|
68
|
+
str += this.columnNumber + ':';
|
|
69
|
+
}
|
|
70
|
+
return str.slice(0, -1);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Returns a pretty version of this stack frame.
|
|
74
|
+
*/
|
|
75
|
+
toString() {
|
|
76
|
+
const functionName = this.getFunctionName();
|
|
77
|
+
const source = this.getSource();
|
|
78
|
+
return `${functionName}${source ? ` (${source})` : ``}`;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.StackFrame = StackFrame;
|
|
82
|
+
//# sourceMappingURL=stack-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-frame.js","sourceRoot":"","sources":["../../../../src/editor/components/Errors/stack-frame.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yCAAyC;AACzC,MAAa,UAAU;IAQtB,YAAY,UAAkB,EAAE,OAAe,EAAE,SAAS,GAAG,KAAK;QACjE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;CACD;AAbD,gCAaC;AAED;;GAEG;AACH,MAAa,UAAU;IActB,sCAAsC;IACtC,YACC,eAA8B,IAAI,EAClC,WAA0B,IAAI,EAC9B,aAA4B,IAAI,EAChC,eAA8B,IAAI,EAClC,aAAkC,IAAI,EACtC,qBAAoC,IAAI,EACxC,iBAAgC,IAAI,EACpC,mBAAkC,IAAI,EACtC,qBAAoC,IAAI,EACxC,mBAAwC,IAAI;QAE5C,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC1D,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACpD;QAED;QACC,iDAAiD;QACjD,2DAA2D;QAC3D,gEAAgE;QAChE,YAAY,KAAK,0BAA0B;YAC3C,YAAY,KAAK,oBAAoB;YACrC,YAAY,KAAK,aAAa;YAC9B,CAAC,YAAY,EACZ;YACD,YAAY,GAAG,IAAI,CAAC;SACpB;QAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,qBAAqB,GAAG,kBAAkB,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;QAC5C,IAAI,CAAC,qBAAqB,GAAG,kBAAkB,CAAC;QAEhD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,SAAS;QACR,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC3B,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SAC3B;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC7B,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC/B,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;SAC/B;QAED,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,QAAQ;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzD,CAAC;CACD;AA9FD,gCA8FC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FramePersister.d.ts","sourceRoot":"","sources":["../../../src/editor/components/FramePersister.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,eAAO,MAAM,4BAA4B,cAExC,CAAC;AAcF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAWlC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FramePersistor = exports.getCurrentCompositionFromUrl = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const remotion_1 = require("remotion");
|
|
6
|
+
const getCurrentCompositionFromUrl = () => {
|
|
7
|
+
return window.location.pathname.substr(1);
|
|
8
|
+
};
|
|
9
|
+
exports.getCurrentCompositionFromUrl = getCurrentCompositionFromUrl;
|
|
10
|
+
const persistCurrentFrame = (frame) => {
|
|
11
|
+
const currentComposition = exports.getCurrentCompositionFromUrl();
|
|
12
|
+
if (!currentComposition) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
localStorage.setItem(`remotion.time.${exports.getCurrentCompositionFromUrl()}`, String(frame));
|
|
16
|
+
};
|
|
17
|
+
const FramePersistor = () => {
|
|
18
|
+
const [playing] = remotion_1.Internals.Timeline.usePlayingState();
|
|
19
|
+
const frame = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
20
|
+
react_1.useEffect(() => {
|
|
21
|
+
if (!playing) {
|
|
22
|
+
persistCurrentFrame(frame);
|
|
23
|
+
}
|
|
24
|
+
}, [frame, playing]);
|
|
25
|
+
return null;
|
|
26
|
+
};
|
|
27
|
+
exports.FramePersistor = FramePersistor;
|
|
28
|
+
//# sourceMappingURL=FramePersister.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FramePersister.js","sourceRoot":"","sources":["../../../src/editor/components/FramePersister.tsx"],"names":[],"mappings":";;;AAAA,iCAAuC;AACvC,uCAAmC;AAE5B,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,4BAA4B,gCAEvC;AAEF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC7C,MAAM,kBAAkB,GAAG,oCAA4B,EAAE,CAAC;IAC1D,IAAI,CAAC,kBAAkB,EAAE;QACxB,OAAO;KACP;IAED,YAAY,CAAC,OAAO,CACnB,iBAAiB,oCAA4B,EAAE,EAAE,EACjD,MAAM,CAAC,KAAK,CAAC,CACb,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAa,GAAG,EAAE;IAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,oBAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,oBAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IAEvD,iBAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,OAAO,EAAE;YACb,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAC3B;IACF,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaVolumeSlider.d.ts","sourceRoot":"","sources":["../../../src/editor/components/MediaVolumeSlider.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAsC/E,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAkHrC,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MediaVolumeSlider = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const player_1 = require("@remotion/player");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const remotion_1 = require("remotion");
|
|
8
|
+
const media_volume_1 = require("../icons/media-volume");
|
|
9
|
+
const ControlButton_1 = require("./ControlButton");
|
|
10
|
+
const BAR_HEIGHT = 5;
|
|
11
|
+
const KNOB_SIZE = 12;
|
|
12
|
+
const VERTICAL_PADDING = 4;
|
|
13
|
+
const containerStyle = {
|
|
14
|
+
userSelect: 'none',
|
|
15
|
+
paddingTop: VERTICAL_PADDING,
|
|
16
|
+
paddingBottom: VERTICAL_PADDING,
|
|
17
|
+
boxSizing: 'border-box',
|
|
18
|
+
cursor: 'pointer',
|
|
19
|
+
position: 'relative',
|
|
20
|
+
};
|
|
21
|
+
const barBackground = {
|
|
22
|
+
height: BAR_HEIGHT,
|
|
23
|
+
backgroundColor: 'rgba(255, 255, 255, 0.5)',
|
|
24
|
+
width: 100,
|
|
25
|
+
borderRadius: BAR_HEIGHT / 2,
|
|
26
|
+
};
|
|
27
|
+
const getVolumeFromX = (clientX, width) => {
|
|
28
|
+
const pos = clientX;
|
|
29
|
+
const volume = remotion_1.interpolate(pos, [0, width], [0, 1], {
|
|
30
|
+
extrapolateLeft: 'clamp',
|
|
31
|
+
extrapolateRight: 'clamp',
|
|
32
|
+
});
|
|
33
|
+
return volume;
|
|
34
|
+
};
|
|
35
|
+
const xSpacer = {
|
|
36
|
+
width: 5,
|
|
37
|
+
};
|
|
38
|
+
const MediaVolumeSlider = () => {
|
|
39
|
+
const [mediaMuted, setMediaMuted] = remotion_1.Internals.useMediaMutedState();
|
|
40
|
+
const [mediaVolume, setMediaVolume] = remotion_1.Internals.useMediaVolumeState();
|
|
41
|
+
const [dragging, setDragging] = react_1.useState(false);
|
|
42
|
+
const currentRef = react_1.useRef(null);
|
|
43
|
+
const iconDivRef = react_1.useRef(null);
|
|
44
|
+
const parentDivRef = react_1.useRef(null);
|
|
45
|
+
const size = player_1.PlayerInternals.useElementSize(currentRef);
|
|
46
|
+
const hover = player_1.PlayerInternals.useHoverState(parentDivRef);
|
|
47
|
+
const onClick = react_1.useCallback(() => {
|
|
48
|
+
setMediaMuted((muted) => !muted);
|
|
49
|
+
setMediaVolume(Number(mediaMuted));
|
|
50
|
+
}, [setMediaMuted, mediaMuted, setMediaVolume]);
|
|
51
|
+
const onPointerDown = react_1.useCallback((e) => {
|
|
52
|
+
if (!size) {
|
|
53
|
+
throw new Error('Player has no size');
|
|
54
|
+
}
|
|
55
|
+
const _volume = getVolumeFromX(e.clientX - size.left, size.width);
|
|
56
|
+
setMediaVolume(_volume);
|
|
57
|
+
setMediaMuted(_volume <= 0);
|
|
58
|
+
setDragging(true);
|
|
59
|
+
}, [setMediaMuted, setMediaVolume, size]);
|
|
60
|
+
const onPointerMove = react_1.useCallback((e) => {
|
|
61
|
+
if (!size) {
|
|
62
|
+
throw new Error('Player has no size');
|
|
63
|
+
}
|
|
64
|
+
if (!dragging)
|
|
65
|
+
return;
|
|
66
|
+
const _volume = getVolumeFromX(e.clientX - size.left, size.width);
|
|
67
|
+
setMediaVolume(_volume);
|
|
68
|
+
setMediaMuted(_volume <= 0);
|
|
69
|
+
}, [dragging, setMediaMuted, setMediaVolume, size]);
|
|
70
|
+
const onPointerUp = react_1.useCallback(() => {
|
|
71
|
+
console.log('stop dragging');
|
|
72
|
+
setDragging(false);
|
|
73
|
+
}, []);
|
|
74
|
+
react_1.useEffect(() => {
|
|
75
|
+
if (!dragging) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
window.addEventListener('pointermove', onPointerMove);
|
|
79
|
+
window.addEventListener('pointerup', onPointerUp);
|
|
80
|
+
return () => {
|
|
81
|
+
window.removeEventListener('pointermove', onPointerMove);
|
|
82
|
+
window.removeEventListener('pointerup', onPointerUp);
|
|
83
|
+
};
|
|
84
|
+
}, [dragging, onPointerMove, onPointerUp]);
|
|
85
|
+
const knobStyle = react_1.useMemo(() => {
|
|
86
|
+
var _a;
|
|
87
|
+
return {
|
|
88
|
+
height: KNOB_SIZE,
|
|
89
|
+
width: KNOB_SIZE,
|
|
90
|
+
borderRadius: KNOB_SIZE / 2,
|
|
91
|
+
position: 'absolute',
|
|
92
|
+
top: VERTICAL_PADDING - KNOB_SIZE / 2 + 5 / 2,
|
|
93
|
+
backgroundColor: 'white',
|
|
94
|
+
left: Math.max(-KNOB_SIZE / 2, mediaVolume * ((_a = size === null || size === void 0 ? void 0 : size.width) !== null && _a !== void 0 ? _a : 0) - KNOB_SIZE / 2),
|
|
95
|
+
boxShadow: '0 0 2px black',
|
|
96
|
+
opacity: Number(hover),
|
|
97
|
+
};
|
|
98
|
+
}, [hover, mediaVolume, size === null || size === void 0 ? void 0 : size.width]);
|
|
99
|
+
const fillStyle = react_1.useMemo(() => {
|
|
100
|
+
return {
|
|
101
|
+
height: BAR_HEIGHT,
|
|
102
|
+
backgroundColor: 'rgba(255, 255, 255, 1)',
|
|
103
|
+
width: (mediaVolume / 1) * 100 + '%',
|
|
104
|
+
borderRadius: BAR_HEIGHT / 2,
|
|
105
|
+
};
|
|
106
|
+
}, [mediaVolume]);
|
|
107
|
+
return (jsx_runtime_1.jsxs(ControlButton_1.ControlDiv, Object.assign({ ref: parentDivRef }, { children: [jsx_runtime_1.jsx("div", Object.assign({ ref: iconDivRef, onClick: onClick }, { children: mediaMuted ? jsx_runtime_1.jsx(media_volume_1.VolumeOffIcon, {}, void 0) : jsx_runtime_1.jsx(media_volume_1.VolumeOnIcon, {}, void 0) }), void 0),
|
|
108
|
+
jsx_runtime_1.jsx("div", { style: xSpacer }, void 0),
|
|
109
|
+
jsx_runtime_1.jsx("div", Object.assign({ ref: currentRef, onPointerDown: onPointerDown, style: containerStyle }, { children: hover ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx("div", Object.assign({ style: barBackground }, { children: jsx_runtime_1.jsx("div", { style: fillStyle }, void 0) }), void 0),
|
|
110
|
+
jsx_runtime_1.jsx("div", { style: knobStyle }, void 0)] }, void 0)) : (jsx_runtime_1.jsx("div", { style: { width: 100 } }, void 0)) }), void 0)] }), void 0));
|
|
111
|
+
};
|
|
112
|
+
exports.MediaVolumeSlider = MediaVolumeSlider;
|
|
113
|
+
//# sourceMappingURL=MediaVolumeSlider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaVolumeSlider.js","sourceRoot":"","sources":["../../../src/editor/components/MediaVolumeSlider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkmark.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/Menu/Checkmark.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,mBAiBrB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Checkmark = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const style = {
|
|
6
|
+
width: 14,
|
|
7
|
+
height: 14,
|
|
8
|
+
};
|
|
9
|
+
const Checkmark = () => ((0, jsx_runtime_1.jsx)("svg", Object.assign({ "aria-hidden": "true", focusable: "false", "data-prefix": "far", "data-icon": "check", className: "svg-inline--fa fa-check fa-w-16", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", style: style }, { children: (0, jsx_runtime_1.jsx)("path", { fill: "currentColor", d: "M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z" }, void 0) }), void 0));
|
|
10
|
+
exports.Checkmark = Checkmark;
|
|
11
|
+
//# sourceMappingURL=Checkmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkmark.js","sourceRoot":"","sources":["../../../../src/editor/components/Menu/Checkmark.tsx"],"names":[],"mappings":";;;;AAEA,MAAM,KAAK,GAAwB;IAClC,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACV,CAAC;AAEK,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAC9B,6DACa,MAAM,EAClB,SAAS,EAAC,OAAO,iBACL,KAAK,eACP,OAAO,EACjB,SAAS,EAAC,iCAAiC,EAC3C,IAAI,EAAC,KAAK,EACV,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE,KAAK,gBAEZ,iCACC,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,0RAA0R,WAC3R,YACG,CACN,CAAC;AAjBW,QAAA,SAAS,aAiBpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=is-menu-click.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-menu-click.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/Menu/is-menu-click.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-menu-click.js","sourceRoot":"","sources":["../../../../src/editor/components/Menu/is-menu-click.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompositionType.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/NewComposition/CompositionType.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAkB/E,oBAAY,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;AAgE/C,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC,CAWA,CAAC"}
|