@remotion/cli 3.3.81 → 3.3.82
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/cloudrun-command.d.ts +1 -0
- package/dist/cloudrun-command.js +27 -0
- package/dist/config/jpeg-quality.d.ts +2 -0
- package/dist/config/jpeg-quality.js +17 -0
- package/dist/editor/components/CheckerboardContext.d.ts +0 -0
- package/dist/editor/components/CheckerboardContext.js +1 -0
- package/dist/editor/components/CheckerboardProvider.d.ts +4 -0
- package/dist/editor/components/CheckerboardProvider.js +24 -0
- package/dist/editor/components/CollapsedSidebarExpander.js +0 -1
- package/dist/editor/components/MediaVolumeProvider.d.ts +4 -0
- package/dist/editor/components/MediaVolumeProvider.js +25 -0
- package/dist/editor/components/Modals.js +1 -1
- package/dist/editor/components/ModalsProvider.d.ts +4 -0
- package/dist/editor/components/ModalsProvider.js +17 -0
- package/dist/editor/components/PlayerEmitterContext.d.ts +4 -0
- package/dist/editor/components/PlayerEmitterContext.js +11 -0
- package/dist/editor/components/RenderButton.js +1 -1
- package/dist/editor/components/RenderModal/JpegQualitySetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/JpegQualitySetting.js +4 -4
- package/dist/editor/components/RenderModal/RenderModal.d.ts +1 -1
- package/dist/editor/components/RenderModal/RenderModal.js +7 -7
- package/dist/editor/components/RenderModal/RenderModalData.d.ts +1 -1
- package/dist/editor/components/RenderModal/RenderModalData.js +15 -1
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +2 -2
- package/dist/editor/components/RenderModal/RenderModalPicture.js +2 -2
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.js +2 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -2
- package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.js +12 -4
- package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.js +0 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.js +4 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullEditor.d.ts +15 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullEditor.js +45 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.d.ts +15 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +45 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.js +4 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodUnionEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodUnionEditor.js +45 -0
- package/dist/editor/components/RenderModal/SchemaEditor/create-zod-values.d.ts +2 -0
- package/dist/editor/components/RenderModal/SchemaEditor/create-zod-values.js +150 -0
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +1 -1
- package/dist/editor/components/RenderQueue/actions.d.ts +5 -4
- package/dist/editor/components/RenderQueue/actions.js +11 -5
- package/dist/editor/components/RenderToolbarIcon.js +1 -1
- package/dist/editor/components/RightPanel.js +1 -1
- package/dist/editor/components/SetTimelineInOutProvider.d.ts +4 -0
- package/dist/editor/components/SetTimelineInOutProvider.js +19 -0
- package/dist/editor/components/SidebarCollapserControls.d.ts +2 -0
- package/dist/editor/components/SidebarCollapserControls.js +51 -0
- package/dist/editor/components/SidebarContent.d.ts +5 -0
- package/dist/editor/components/SidebarContent.js +53 -0
- package/dist/editor/components/ZoomGesturesProvider.d.ts +4 -0
- package/dist/editor/components/ZoomGesturesProvider.js +24 -0
- package/dist/editor/helpers/render-modal-sections.d.ts +1 -0
- package/dist/preview-server/api-routes.js +2 -0
- package/dist/preview-server/api-types.d.ts +2 -1
- package/dist/preview-server/render-queue/job.d.ts +13 -4
- package/dist/preview-server/render-queue/make-retry-payload.js +2 -2
- package/dist/preview-server/render-queue/process-still.js +1 -1
- package/dist/preview-server/render-queue/process-video.js +1 -1
- package/dist/preview-server/routes/add-render.js +2 -2
- package/dist/preview-server/routes/can-update-default-props.d.ts +0 -0
- package/dist/preview-server/routes/can-update-default-props.js +1 -0
- package/dist/preview-server/routes/update-default-props.js +3 -1
- package/dist/render-flows/render.d.ts +2 -2
- package/dist/render-flows/render.js +3 -3
- package/dist/render-flows/still.d.ts +2 -2
- package/dist/render-flows/still.js +2 -2
- package/package.json +6 -6
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZodOrNullishEditor = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../../helpers/colors");
|
|
7
|
+
const Checkbox_1 = require("../../Checkbox");
|
|
8
|
+
const layout_1 = require("../../layout");
|
|
9
|
+
const create_zod_values_1 = require("./create-zod-values");
|
|
10
|
+
const SchemaLabel_1 = require("./SchemaLabel");
|
|
11
|
+
const ZodSwitch_1 = require("./ZodSwitch");
|
|
12
|
+
const fullWidth = {
|
|
13
|
+
width: '100%',
|
|
14
|
+
};
|
|
15
|
+
const labelStyle = {
|
|
16
|
+
fontFamily: 'sans-serif',
|
|
17
|
+
fontSize: 14,
|
|
18
|
+
color: colors_1.LIGHT_TEXT,
|
|
19
|
+
};
|
|
20
|
+
const checkBoxWrapper = {
|
|
21
|
+
margin: '2px',
|
|
22
|
+
display: 'flex',
|
|
23
|
+
flexDirection: 'row',
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
marginTop: '5px',
|
|
26
|
+
};
|
|
27
|
+
const ZodOrNullishEditor = ({ jsonPath, compact, schema, setValue, onSave, defaultValue, value, showSaveButton, onRemove, nullishValue, }) => {
|
|
28
|
+
const isChecked = value === nullishValue;
|
|
29
|
+
const onValueChange = (0, react_1.useCallback)((newValue) => {
|
|
30
|
+
setValue(newValue);
|
|
31
|
+
}, [setValue]);
|
|
32
|
+
const onCheckBoxChange = (0, react_1.useCallback)((e) => {
|
|
33
|
+
console.log({ schema, newVal: (0, create_zod_values_1.createZodValues)(schema) });
|
|
34
|
+
const val = e.target.checked ? nullishValue : (0, create_zod_values_1.createZodValues)(schema);
|
|
35
|
+
onValueChange(val);
|
|
36
|
+
}, [nullishValue, onValueChange, schema]);
|
|
37
|
+
const reset = (0, react_1.useCallback)(() => {
|
|
38
|
+
onValueChange(defaultValue);
|
|
39
|
+
}, [defaultValue, onValueChange]);
|
|
40
|
+
const save = (0, react_1.useCallback)(() => {
|
|
41
|
+
onSave(() => value);
|
|
42
|
+
}, [onSave, value]);
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [value === null ? ((0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { isDefaultValue: value === defaultValue, jsonPath: jsonPath, onReset: reset, onSave: save, showSaveButton: showSaveButton, compact: compact, onRemove: onRemove })) : ((0, jsx_runtime_1.jsx)("div", { style: fullWidth, children: (0, jsx_runtime_1.jsx)(ZodSwitch_1.ZodSwitch, { value: value, setValue: onValueChange, jsonPath: jsonPath, schema: schema, compact: compact, defaultValue: defaultValue, onSave: onSave, showSaveButton: showSaveButton, onRemove: onRemove }) })), (0, jsx_runtime_1.jsxs)("div", { style: checkBoxWrapper, children: [(0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: isChecked, onChange: onCheckBoxChange, disabled: false }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: labelStyle, children: String(nullishValue) })] })] }));
|
|
44
|
+
};
|
|
45
|
+
exports.ZodOrNullishEditor = ZodOrNullishEditor;
|
|
@@ -12,6 +12,7 @@ const ZodNonEditableValue_1 = require("./ZodNonEditableValue");
|
|
|
12
12
|
const ZodNumberEditor_1 = require("./ZodNumberEditor");
|
|
13
13
|
const ZodObjectEditor_1 = require("./ZodObjectEditor");
|
|
14
14
|
const ZodStringEditor_1 = require("./ZodStringEditor");
|
|
15
|
+
const ZodUnionEditor_1 = require("./ZodUnionEditor");
|
|
15
16
|
const ZodSwitch = ({ schema, jsonPath, compact, value, setValue, defaultValue, onSave, showSaveButton, onRemove, }) => {
|
|
16
17
|
const def = schema._def;
|
|
17
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -56,6 +57,9 @@ const ZodSwitch = ({ schema, jsonPath, compact, value, setValue, defaultValue, o
|
|
|
56
57
|
if (typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodEffects) {
|
|
57
58
|
return ((0, jsx_runtime_1.jsx)(ZodEffectEditor_1.ZodEffectEditor, { value: value, setValue: setValue, jsonPath: jsonPath, schema: schema, compact: compact, defaultValue: defaultValue, onSave: onSave, showSaveButton: showSaveButton, onRemove: onRemove }));
|
|
58
59
|
}
|
|
60
|
+
if (typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodUnion) {
|
|
61
|
+
return ((0, jsx_runtime_1.jsx)(ZodUnionEditor_1.ZodUnionEditor, { schema: schema, showSaveButton: showSaveButton, jsonPath: jsonPath, compact: compact, value: value, defaultValue: defaultValue, setValue: setValue, onSave: onSave, onRemove: onRemove }));
|
|
62
|
+
}
|
|
59
63
|
return ((0, jsx_runtime_1.jsx)(ZodNonEditableValue_1.ZonNonEditableValue, { compact: compact, jsonPath: jsonPath, showSaveButton: showSaveButton, label: `${typeName} (not editable)` }));
|
|
60
64
|
};
|
|
61
65
|
exports.ZodSwitch = ZodSwitch;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { z } from 'remotion';
|
|
3
|
+
import type { JSONPath } from './zod-types';
|
|
4
|
+
export declare const ZodUnionEditor: React.FC<{
|
|
5
|
+
showSaveButton: boolean;
|
|
6
|
+
jsonPath: JSONPath;
|
|
7
|
+
compact: boolean;
|
|
8
|
+
value: unknown;
|
|
9
|
+
defaultValue: unknown;
|
|
10
|
+
schema: z.ZodTypeAny;
|
|
11
|
+
setValue: React.Dispatch<React.SetStateAction<unknown>>;
|
|
12
|
+
onSave: (updater: (oldNum: unknown) => unknown) => void;
|
|
13
|
+
onRemove: null | (() => void);
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZodUnionEditor = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const remotion_1 = require("remotion");
|
|
6
|
+
const ZodNonEditableValue_1 = require("./ZodNonEditableValue");
|
|
7
|
+
const ZodOrNullishEditor_1 = require("./ZodOrNullishEditor");
|
|
8
|
+
const findNull = (value) => {
|
|
9
|
+
const nullIndex = value.findIndex((v) => v._def.typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodNull ||
|
|
10
|
+
v._def.typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodUndefined);
|
|
11
|
+
if (nullIndex === -1) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const nullishValue = value[nullIndex]._def.typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodNull
|
|
15
|
+
? null
|
|
16
|
+
: undefined;
|
|
17
|
+
const otherSchema = value[nullIndex === 0 ? 1 : 0];
|
|
18
|
+
const otherSchemaIsAlsoNullish = otherSchema._def.typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodNull ||
|
|
19
|
+
otherSchema._def.typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodUndefined;
|
|
20
|
+
return {
|
|
21
|
+
nullIndex,
|
|
22
|
+
nullishValue,
|
|
23
|
+
otherSchema,
|
|
24
|
+
otherSchemaIsAlsoNullish,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
const ZodUnionEditor = ({ jsonPath, compact, schema, setValue, onSave, defaultValue, value, showSaveButton, onRemove, }) => {
|
|
28
|
+
const { options } = schema._def;
|
|
29
|
+
if (options.length > 2) {
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)(ZodNonEditableValue_1.ZonNonEditableValue, { jsonPath: jsonPath, label: 'Union with more than 2 options not editable', compact: compact, showSaveButton: showSaveButton }));
|
|
31
|
+
}
|
|
32
|
+
if (options.length < 2) {
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)(ZodNonEditableValue_1.ZonNonEditableValue, { jsonPath: jsonPath, label: 'Union with less than 2 options not editable', compact: compact, showSaveButton: showSaveButton }));
|
|
34
|
+
}
|
|
35
|
+
const nullResult = findNull(options);
|
|
36
|
+
if (!nullResult) {
|
|
37
|
+
return ((0, jsx_runtime_1.jsx)(ZodNonEditableValue_1.ZonNonEditableValue, { jsonPath: jsonPath, label: 'Union only editable with 1 value being null', compact: compact, showSaveButton: showSaveButton }));
|
|
38
|
+
}
|
|
39
|
+
const { otherSchema, nullishValue, otherSchemaIsAlsoNullish } = nullResult;
|
|
40
|
+
if (otherSchemaIsAlsoNullish) {
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)(ZodNonEditableValue_1.ZonNonEditableValue, { jsonPath: jsonPath, label: 'Not editable - both union values are nullish', compact: compact, showSaveButton: showSaveButton }));
|
|
42
|
+
}
|
|
43
|
+
return ((0, jsx_runtime_1.jsx)(ZodOrNullishEditor_1.ZodOrNullishEditor, { compact: compact, defaultValue: defaultValue, jsonPath: jsonPath, onRemove: onRemove, onSave: onSave, schema: otherSchema, setValue: setValue, showSaveButton: showSaveButton, value: value, nullishValue: nullishValue }));
|
|
44
|
+
};
|
|
45
|
+
exports.ZodUnionEditor = ZodUnionEditor;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createZodValues = void 0;
|
|
4
|
+
const remotion_1 = require("remotion");
|
|
5
|
+
const createZodValues = (schema) => {
|
|
6
|
+
if (!schema) {
|
|
7
|
+
throw new Error('Invalid zod schema');
|
|
8
|
+
}
|
|
9
|
+
const def = schema._def;
|
|
10
|
+
const typeName = def.typeName;
|
|
11
|
+
switch (typeName) {
|
|
12
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodString:
|
|
13
|
+
return '';
|
|
14
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodNumber:
|
|
15
|
+
return 0;
|
|
16
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodBigInt:
|
|
17
|
+
return BigInt(0);
|
|
18
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodBoolean:
|
|
19
|
+
return false;
|
|
20
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodNaN:
|
|
21
|
+
return NaN;
|
|
22
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodDate:
|
|
23
|
+
return new Date();
|
|
24
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodSymbol:
|
|
25
|
+
return Symbol('remotion');
|
|
26
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodUndefined:
|
|
27
|
+
return undefined;
|
|
28
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodNull:
|
|
29
|
+
return null;
|
|
30
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodAny:
|
|
31
|
+
throw new Error('Cannot create a value for type z.any()');
|
|
32
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodUnknown:
|
|
33
|
+
throw new Error('Cannot create a value for type z.unknown()');
|
|
34
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodNever:
|
|
35
|
+
throw new Error('Cannot create a value for type z.never()');
|
|
36
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodVoid:
|
|
37
|
+
return undefined;
|
|
38
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodObject: {
|
|
39
|
+
const shape = def.shape();
|
|
40
|
+
const keys = Object.keys(shape);
|
|
41
|
+
const returnValue = keys.reduce((existing, key) => {
|
|
42
|
+
existing[key] = (0, exports.createZodValues)(shape[key]);
|
|
43
|
+
return existing;
|
|
44
|
+
}, {});
|
|
45
|
+
return returnValue;
|
|
46
|
+
}
|
|
47
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodArray: {
|
|
48
|
+
return [(0, exports.createZodValues)(def.type)];
|
|
49
|
+
}
|
|
50
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodUnion: {
|
|
51
|
+
const firstOptions = def.options[0];
|
|
52
|
+
return firstOptions ? (0, exports.createZodValues)(firstOptions) : undefined;
|
|
53
|
+
}
|
|
54
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {
|
|
55
|
+
const options = def.options[0];
|
|
56
|
+
return (0, exports.createZodValues)(options);
|
|
57
|
+
}
|
|
58
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodLiteral: {
|
|
59
|
+
return def.value;
|
|
60
|
+
}
|
|
61
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodEffects: {
|
|
62
|
+
return (0, exports.createZodValues)(def.schema);
|
|
63
|
+
}
|
|
64
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodIntersection: {
|
|
65
|
+
const { left, right } = def;
|
|
66
|
+
const leftValue = (0, exports.createZodValues)(left);
|
|
67
|
+
if (typeof leftValue !== 'object') {
|
|
68
|
+
throw new Error('Cannot create value for type z.intersection: Left side is not an object');
|
|
69
|
+
}
|
|
70
|
+
const rightValue = (0, exports.createZodValues)(right);
|
|
71
|
+
if (typeof rightValue !== 'object') {
|
|
72
|
+
throw new Error('Cannot create value for type z.intersection: Right side is not an object');
|
|
73
|
+
}
|
|
74
|
+
return { ...leftValue, ...rightValue };
|
|
75
|
+
}
|
|
76
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodTuple: {
|
|
77
|
+
const items = def.items.map((item) => (0, exports.createZodValues)(item));
|
|
78
|
+
return items;
|
|
79
|
+
}
|
|
80
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodRecord: {
|
|
81
|
+
const values = (0, exports.createZodValues)(def.valueType);
|
|
82
|
+
return { key: values };
|
|
83
|
+
}
|
|
84
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodMap: {
|
|
85
|
+
const defType = def;
|
|
86
|
+
const values = (0, exports.createZodValues)(defType.valueType);
|
|
87
|
+
const key = (0, exports.createZodValues)(defType.keyType);
|
|
88
|
+
return new Map([[key, values]]);
|
|
89
|
+
}
|
|
90
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodLazy: {
|
|
91
|
+
const defType = def;
|
|
92
|
+
const type = defType.getter();
|
|
93
|
+
return (0, exports.createZodValues)(type);
|
|
94
|
+
}
|
|
95
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodSet: {
|
|
96
|
+
const defType = def;
|
|
97
|
+
const values = (0, exports.createZodValues)(defType.valueType);
|
|
98
|
+
return new Set([values]);
|
|
99
|
+
}
|
|
100
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodFunction: {
|
|
101
|
+
throw new Error('Cannot create a value for type function');
|
|
102
|
+
}
|
|
103
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodEnum: {
|
|
104
|
+
const { values } = def;
|
|
105
|
+
return values[0];
|
|
106
|
+
}
|
|
107
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodNativeEnum: {
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodOptional: {
|
|
111
|
+
const defType = def;
|
|
112
|
+
const value = (0, exports.createZodValues)(defType.innerType);
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodNullable: {
|
|
116
|
+
const defType = def;
|
|
117
|
+
const value = (0, exports.createZodValues)(defType.innerType);
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodDefault: {
|
|
121
|
+
const defType = def;
|
|
122
|
+
return defType.defaultValue();
|
|
123
|
+
}
|
|
124
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodCatch: {
|
|
125
|
+
const defType = def;
|
|
126
|
+
const value = (0, exports.createZodValues)(defType.innerType);
|
|
127
|
+
return value;
|
|
128
|
+
}
|
|
129
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodPromise: {
|
|
130
|
+
const defType = def;
|
|
131
|
+
const value = (0, exports.createZodValues)(defType.type);
|
|
132
|
+
return Promise.resolve(value);
|
|
133
|
+
}
|
|
134
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodBranded: {
|
|
135
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
136
|
+
const defType = def;
|
|
137
|
+
const value = (0, exports.createZodValues)(defType.type);
|
|
138
|
+
return value;
|
|
139
|
+
}
|
|
140
|
+
case remotion_1.z.ZodFirstPartyTypeKind.ZodPipeline: {
|
|
141
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
142
|
+
const defType = def;
|
|
143
|
+
const value = (0, exports.createZodValues)(defType.out);
|
|
144
|
+
return value;
|
|
145
|
+
}
|
|
146
|
+
default:
|
|
147
|
+
throw new Error('Not implemented: ' + typeName);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
exports.createZodValues = createZodValues;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Codec } from '@remotion/renderer';
|
|
2
|
-
export declare const humanReadableCodec: (codec: Codec) => "
|
|
2
|
+
export declare const humanReadableCodec: (codec: Codec) => "GIF" | "AAC" | "MP3" | "H.264" | "H.264 Matroska" | "H.265" | "ProRes" | "WebM VP8" | "WebM VP9" | "Waveform" | undefined;
|
|
@@ -3,11 +3,11 @@ import type { ApiRoutes } from '../../../preview-server/api-types';
|
|
|
3
3
|
import type { RenderJob } from '../../../preview-server/render-queue/job';
|
|
4
4
|
import type { RequiredChromiumOptions } from '../../../required-chromium-options';
|
|
5
5
|
export declare const callApi: <Endpoint extends keyof ApiRoutes>(endpoint: Endpoint, body: ApiRoutes[Endpoint]["Request"]) => Promise<ApiRoutes[Endpoint]["Response"]>;
|
|
6
|
-
export declare const addStillRenderJob: ({ compositionId, outName, imageFormat,
|
|
6
|
+
export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, verbose, chromiumOptions, delayRenderTimeout, envVariables, inputProps, }: {
|
|
7
7
|
compositionId: string;
|
|
8
8
|
outName: string;
|
|
9
9
|
imageFormat: StillImageFormat;
|
|
10
|
-
|
|
10
|
+
jpegQuality: number | null;
|
|
11
11
|
frame: number;
|
|
12
12
|
scale: number;
|
|
13
13
|
verbose: boolean;
|
|
@@ -16,11 +16,11 @@ export declare const addStillRenderJob: ({ compositionId, outName, imageFormat,
|
|
|
16
16
|
envVariables: Record<string, string>;
|
|
17
17
|
inputProps: unknown;
|
|
18
18
|
}) => Promise<undefined>;
|
|
19
|
-
export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat,
|
|
19
|
+
export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, verbose, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, }: {
|
|
20
20
|
compositionId: string;
|
|
21
21
|
outName: string;
|
|
22
22
|
imageFormat: VideoImageFormat;
|
|
23
|
-
|
|
23
|
+
jpegQuality: number | null;
|
|
24
24
|
scale: number;
|
|
25
25
|
verbose: boolean;
|
|
26
26
|
codec: Codec;
|
|
@@ -57,3 +57,4 @@ export declare const openInFileExplorer: ({ directory }: {
|
|
|
57
57
|
export declare const removeRenderJob: (job: RenderJob) => Promise<undefined>;
|
|
58
58
|
export declare const cancelRenderJob: (job: RenderJob) => Promise<import("../../../preview-server/render-queue/job").CancelRenderResponse>;
|
|
59
59
|
export declare const updateDefaultProps: (compositionId: string, defaultProps: unknown) => Promise<void>;
|
|
60
|
+
export declare const canUpdateDefaultProps: (compositionId: string) => Promise<import("../../../preview-server/render-queue/job").CanUpdateDefaultPropsResponse>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateDefaultProps = exports.cancelRenderJob = exports.removeRenderJob = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addStillRenderJob = exports.callApi = void 0;
|
|
3
|
+
exports.canUpdateDefaultProps = exports.updateDefaultProps = exports.cancelRenderJob = exports.removeRenderJob = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addStillRenderJob = exports.callApi = void 0;
|
|
4
4
|
const date_serialization_1 = require("../RenderModal/SchemaEditor/date-serialization");
|
|
5
5
|
const callApi = (endpoint, body) => {
|
|
6
6
|
return new Promise((resolve, reject) => {
|
|
@@ -26,13 +26,13 @@ const callApi = (endpoint, body) => {
|
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
exports.callApi = callApi;
|
|
29
|
-
const addStillRenderJob = ({ compositionId, outName, imageFormat,
|
|
29
|
+
const addStillRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, verbose, chromiumOptions, delayRenderTimeout, envVariables, inputProps, }) => {
|
|
30
30
|
return (0, exports.callApi)('/api/render', {
|
|
31
31
|
compositionId,
|
|
32
32
|
type: 'still',
|
|
33
33
|
outName,
|
|
34
34
|
imageFormat,
|
|
35
|
-
|
|
35
|
+
jpegQuality,
|
|
36
36
|
frame,
|
|
37
37
|
scale,
|
|
38
38
|
verbose,
|
|
@@ -43,13 +43,13 @@ const addStillRenderJob = ({ compositionId, outName, imageFormat, quality, frame
|
|
|
43
43
|
});
|
|
44
44
|
};
|
|
45
45
|
exports.addStillRenderJob = addStillRenderJob;
|
|
46
|
-
const addVideoRenderJob = ({ compositionId, outName, imageFormat,
|
|
46
|
+
const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, scale, verbose, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, }) => {
|
|
47
47
|
return (0, exports.callApi)('/api/render', {
|
|
48
48
|
compositionId,
|
|
49
49
|
type: 'video',
|
|
50
50
|
outName,
|
|
51
51
|
imageFormat,
|
|
52
|
-
|
|
52
|
+
jpegQuality,
|
|
53
53
|
scale,
|
|
54
54
|
verbose,
|
|
55
55
|
codec,
|
|
@@ -112,3 +112,9 @@ const updateDefaultProps = (compositionId, defaultProps) => {
|
|
|
112
112
|
});
|
|
113
113
|
};
|
|
114
114
|
exports.updateDefaultProps = updateDefaultProps;
|
|
115
|
+
const canUpdateDefaultProps = (compositionId) => {
|
|
116
|
+
return (0, exports.callApi)('/api/can-update-default-props', {
|
|
117
|
+
compositionId,
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
exports.canUpdateDefaultProps = canUpdateDefaultProps;
|
|
@@ -50,7 +50,7 @@ const RenderButton = () => {
|
|
|
50
50
|
defaultExtension: isVideo ? 'mp4' : 'png',
|
|
51
51
|
type: 'asset',
|
|
52
52
|
}),
|
|
53
|
-
|
|
53
|
+
initialJpegQuality: defaults.jpegQuality,
|
|
54
54
|
initialScale: (_b = (_a = window.remotion_renderDefaults) === null || _a === void 0 ? void 0 : _a.scale) !== null && _b !== void 0 ? _b : 1,
|
|
55
55
|
initialVerbose: defaults.logLevel === 'verbose',
|
|
56
56
|
initialVideoCodecForAudioTab: initialAudioCodec,
|
|
@@ -28,7 +28,7 @@ const PropsEditor = ({ composition }) => {
|
|
|
28
28
|
newProps: newProps,
|
|
29
29
|
});
|
|
30
30
|
}, [composition.defaultProps, composition.id, updateProps]);
|
|
31
|
-
return ((0, jsx_runtime_1.jsx)(RenderModalData_1.RenderModalData, { composition: composition, inputProps: (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps, setInputProps: setInputProps, compact: true,
|
|
31
|
+
return ((0, jsx_runtime_1.jsx)(RenderModalData_1.RenderModalData, { composition: composition, inputProps: (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps, setInputProps: setInputProps, compact: true, mayShowSaveButton: true }));
|
|
32
32
|
};
|
|
33
33
|
const localStorageKey = 'remotion.sidebarPanel';
|
|
34
34
|
const getSelectedPanel = () => {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetTimelineInOutProvider = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const in_out_1 = require("../state/in-out");
|
|
7
|
+
const SetTimelineInOutProvider = ({ children }) => {
|
|
8
|
+
const [inAndOutFrames, setInAndOutFrames] = (0, react_1.useState)({
|
|
9
|
+
inFrame: null,
|
|
10
|
+
outFrame: null,
|
|
11
|
+
});
|
|
12
|
+
const setTimelineInOutContextValue = (0, react_1.useMemo)(() => {
|
|
13
|
+
return {
|
|
14
|
+
setInAndOutFrames,
|
|
15
|
+
};
|
|
16
|
+
}, []);
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(in_out_1.TimelineInOutContext.Provider, { value: inAndOutFrames, children: (0, jsx_runtime_1.jsx)(in_out_1.SetTimelineInOutContext.Provider, { value: setTimelineInOutContextValue, children: children }) }));
|
|
18
|
+
};
|
|
19
|
+
exports.SetTimelineInOutProvider = SetTimelineInOutProvider;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SidebarCollapserControls = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const sidebar_1 = require("../state/sidebar");
|
|
7
|
+
const InlineAction_1 = require("./InlineAction");
|
|
8
|
+
const layout_1 = require("./layout");
|
|
9
|
+
const TopPanel_1 = require("./TopPanel");
|
|
10
|
+
const style = {
|
|
11
|
+
width: 16,
|
|
12
|
+
height: 16,
|
|
13
|
+
border: '1px solid white',
|
|
14
|
+
borderRadius: 3,
|
|
15
|
+
position: 'relative',
|
|
16
|
+
};
|
|
17
|
+
const SidebarCollapserControls = () => {
|
|
18
|
+
const { setSidebarCollapsedStateLeft, setSidebarCollapsedStateRight, sidebarCollapsedStateRight, } = (0, react_1.useContext)(sidebar_1.SidebarContext);
|
|
19
|
+
const leftSidebarStatus = (0, TopPanel_1.useResponsiveSidebarStatus)();
|
|
20
|
+
const leftIcon = (0, react_1.useMemo)(() => {
|
|
21
|
+
return {
|
|
22
|
+
width: '35%',
|
|
23
|
+
height: '100%',
|
|
24
|
+
borderRight: '1px solid white',
|
|
25
|
+
background: leftSidebarStatus === 'expanded' ? 'white' : 'transparent',
|
|
26
|
+
};
|
|
27
|
+
}, [leftSidebarStatus]);
|
|
28
|
+
const rightIcon = (0, react_1.useMemo)(() => {
|
|
29
|
+
return {
|
|
30
|
+
width: '35%',
|
|
31
|
+
height: '100%',
|
|
32
|
+
right: 0,
|
|
33
|
+
position: 'absolute',
|
|
34
|
+
borderLeft: '1px solid white',
|
|
35
|
+
background: sidebarCollapsedStateRight === 'expanded' ? 'white' : 'transparent',
|
|
36
|
+
};
|
|
37
|
+
}, [sidebarCollapsedStateRight]);
|
|
38
|
+
const toggleLeft = (0, react_1.useCallback)(() => {
|
|
39
|
+
setSidebarCollapsedStateLeft((s) => {
|
|
40
|
+
if (s === 'responsive') {
|
|
41
|
+
return leftSidebarStatus === 'collapsed' ? 'expanded' : 'collapsed';
|
|
42
|
+
}
|
|
43
|
+
return s === 'collapsed' ? 'expanded' : 'collapsed';
|
|
44
|
+
});
|
|
45
|
+
}, [leftSidebarStatus, setSidebarCollapsedStateLeft]);
|
|
46
|
+
const toggleRight = (0, react_1.useCallback)(() => {
|
|
47
|
+
setSidebarCollapsedStateRight((s) => s === 'collapsed' ? 'expanded' : 'collapsed');
|
|
48
|
+
}, [setSidebarCollapsedStateRight]);
|
|
49
|
+
return ((0, jsx_runtime_1.jsxs)(layout_1.Row, { children: [(0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: toggleLeft, children: (0, jsx_runtime_1.jsx)("div", { style: style, children: (0, jsx_runtime_1.jsx)("div", { style: leftIcon }) }) }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: toggleRight, children: (0, jsx_runtime_1.jsx)("div", { style: style, children: (0, jsx_runtime_1.jsx)("div", { style: rightIcon }) }) })] }));
|
|
50
|
+
};
|
|
51
|
+
exports.SidebarCollapserControls = SidebarCollapserControls;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SidebarContent = exports.leftSidebarTabs = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../helpers/colors");
|
|
7
|
+
const CompositionSelector_1 = require("./CompositionSelector");
|
|
8
|
+
const CurrentCompositionSideEffects_1 = require("./CurrentCompositionSideEffects");
|
|
9
|
+
const RenderQueue_1 = require("./RenderQueue");
|
|
10
|
+
const context_1 = require("./RenderQueue/context");
|
|
11
|
+
const RendersTab_1 = require("./RendersTab");
|
|
12
|
+
const Tabs_1 = require("./Tabs");
|
|
13
|
+
const container = {
|
|
14
|
+
width: '100%',
|
|
15
|
+
};
|
|
16
|
+
const tabsContainer = {
|
|
17
|
+
borderBottom: `1px solid ${colors_1.BORDER_COLOR}`,
|
|
18
|
+
};
|
|
19
|
+
exports.leftSidebarTabs = (0, react_1.createRef)();
|
|
20
|
+
const localStorageKey = 'remotion.sidebarPanel';
|
|
21
|
+
const persistSelectedPanel = (panel) => {
|
|
22
|
+
localStorage.setItem(localStorageKey, panel);
|
|
23
|
+
};
|
|
24
|
+
const getSelectedPanel = (shouldRender) => {
|
|
25
|
+
const panel = localStorage.getItem(localStorageKey);
|
|
26
|
+
if (panel === 'renders' && shouldRender) {
|
|
27
|
+
return 'renders';
|
|
28
|
+
}
|
|
29
|
+
return 'compositions';
|
|
30
|
+
};
|
|
31
|
+
const SidebarContent = () => {
|
|
32
|
+
const shouldRender = (0, context_1.useShouldRenderLeftSidebarTabs)();
|
|
33
|
+
const [panel, setPanel] = (0, react_1.useState)(() => getSelectedPanel(shouldRender));
|
|
34
|
+
const onCompositionsSelected = (0, react_1.useCallback)(() => {
|
|
35
|
+
setPanel('compositions');
|
|
36
|
+
persistSelectedPanel('compositions');
|
|
37
|
+
}, []);
|
|
38
|
+
const onRendersSelected = (0, react_1.useCallback)(() => {
|
|
39
|
+
setPanel('renders');
|
|
40
|
+
persistSelectedPanel('renders');
|
|
41
|
+
}, []);
|
|
42
|
+
(0, react_1.useImperativeHandle)(exports.leftSidebarTabs, () => {
|
|
43
|
+
return {
|
|
44
|
+
selectRendersPanel: () => {
|
|
45
|
+
setPanel('renders');
|
|
46
|
+
persistSelectedPanel('renders');
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}, []);
|
|
50
|
+
// TODO: It is not perfectly aligned in example
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [shouldRender ? ((0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: panel === 'compositions', onClick: onCompositionsSelected, children: "Compositions" }), (0, jsx_runtime_1.jsx)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' })] }) })) : null, panel === 'renders' && shouldRender ? ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {})) : ((0, jsx_runtime_1.jsx)(CompositionSelector_1.CompositionSelector, {})), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.CurrentCompositionKeybindings, {}), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.TitleUpdater, {})] }));
|
|
52
|
+
};
|
|
53
|
+
exports.SidebarContent = SidebarContent;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZoomGesturesProvider = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const editor_zoom_gestures_1 = require("../state/editor-zoom-gestures");
|
|
7
|
+
const ZoomGesturesProvider = ({ children }) => {
|
|
8
|
+
const [editorZoomGestures, setEditorZoomGesturesState] = (0, react_1.useState)(() => (0, editor_zoom_gestures_1.loadEditorZoomGesturesOption)());
|
|
9
|
+
const setEditorZoomGestures = (0, react_1.useCallback)((newValue) => {
|
|
10
|
+
setEditorZoomGesturesState((prevState) => {
|
|
11
|
+
const newVal = newValue(prevState);
|
|
12
|
+
(0, editor_zoom_gestures_1.persistEditorZoomGesturesOption)(newVal);
|
|
13
|
+
return newVal;
|
|
14
|
+
});
|
|
15
|
+
}, []);
|
|
16
|
+
const editorZoomGesturesCtx = (0, react_1.useMemo)(() => {
|
|
17
|
+
return {
|
|
18
|
+
editorZoomGestures,
|
|
19
|
+
setEditorZoomGestures,
|
|
20
|
+
};
|
|
21
|
+
}, [editorZoomGestures, setEditorZoomGestures]);
|
|
22
|
+
return ((0, jsx_runtime_1.jsx)(editor_zoom_gestures_1.EditorZoomGesturesContext.Provider, { value: editorZoomGesturesCtx, children: children }));
|
|
23
|
+
};
|
|
24
|
+
exports.ZoomGesturesProvider = ZoomGesturesProvider;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.allApiRoutes = void 0;
|
|
4
4
|
const add_render_1 = require("./routes/add-render");
|
|
5
|
+
const can_update_default_props_1 = require("./routes/can-update-default-props");
|
|
5
6
|
const cancel_render_1 = require("./routes/cancel-render");
|
|
6
7
|
const open_in_file_explorer_1 = require("./routes/open-in-file-explorer");
|
|
7
8
|
const remove_render_1 = require("./routes/remove-render");
|
|
@@ -16,4 +17,5 @@ exports.allApiRoutes = {
|
|
|
16
17
|
'/api/remove-render': remove_render_1.handleRemoveRender,
|
|
17
18
|
'/api/open-in-file-explorer': open_in_file_explorer_1.handleOpenInFileExplorer,
|
|
18
19
|
'/api/update-default-props': update_default_props_1.updateDefaultPropsHandler,
|
|
20
|
+
'/api/can-update-default-props': can_update_default_props_1.canUpdateDefaultPropsHandler,
|
|
19
21
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { IncomingMessage, ServerResponse } from 'http';
|
|
3
|
-
import type { AddRenderRequest, CancelRenderRequest, CancelRenderResponse, OpenInFileExplorerRequest, RemoveRenderRequest, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, UnsubscribeFromFileExistenceRequest, UpdateDefaultPropsRequest } from './render-queue/job';
|
|
3
|
+
import type { AddRenderRequest, CancelRenderRequest, CancelRenderResponse, CanUpdateDefaultPropsRequest, CanUpdateDefaultPropsResponse, OpenInFileExplorerRequest, RemoveRenderRequest, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, UnsubscribeFromFileExistenceRequest, UpdateDefaultPropsRequest } from './render-queue/job';
|
|
4
4
|
export declare type ApiHandler<ReqData, ResData> = (params: {
|
|
5
5
|
input: ReqData;
|
|
6
6
|
entryPoint: string;
|
|
@@ -24,5 +24,6 @@ export declare type ApiRoutes = {
|
|
|
24
24
|
'/api/remove-render': ReqAndRes<RemoveRenderRequest, undefined>;
|
|
25
25
|
'/api/open-in-file-explorer': ReqAndRes<OpenInFileExplorerRequest, void>;
|
|
26
26
|
'/api/update-default-props': ReqAndRes<UpdateDefaultPropsRequest, void>;
|
|
27
|
+
'/api/can-update-default-props': ReqAndRes<CanUpdateDefaultPropsRequest, CanUpdateDefaultPropsResponse>;
|
|
27
28
|
};
|
|
28
29
|
export {};
|