@byteplus/amk-editor 0.0.0-beta.1
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 +11 -0
- package/README.md +217 -0
- package/dist/amk-editor.d.ts +411 -0
- package/dist/amk-modal.d.ts +16 -0
- package/dist/api/client.d.ts +63 -0
- package/dist/api/preset-library.d.ts +18 -0
- package/dist/api/project.d.ts +47 -0
- package/dist/asr-progress-modal-view.d.ts +9 -0
- package/dist/asr-progress-modal.d.ts +11 -0
- package/dist/asr-provider.d.ts +17 -0
- package/dist/asr-text-layout.d.ts +4 -0
- package/dist/assets/asr-subtitle-dark.svg +3 -0
- package/dist/assets/asr-subtitle.svg +3 -0
- package/dist/assets/export-empty-dark.svg +66 -0
- package/dist/assets/export-empty-ellipse749.svg +3 -0
- package/dist/assets/export-empty-ellipse750.svg +3 -0
- package/dist/assets/export-empty-ellipse751.svg +3 -0
- package/dist/assets/export-empty-ellipse753.svg +3 -0
- package/dist/assets/export-empty-img2.svg +10 -0
- package/dist/assets/export-empty-img3.svg +10 -0
- package/dist/assets/export-empty-subtract.svg +14 -0
- package/dist/assets/export-modal-ai.png +0 -0
- package/dist/assets/export-modal-close.png +0 -0
- package/dist/assets/export-modal-info.png +0 -0
- package/dist/assets/export-modal-question.png +0 -0
- package/dist/assets/export-modal-select.png +0 -0
- package/dist/assets/export-task-error.svg +5 -0
- package/dist/assets/export-task-loading.svg +6 -0
- package/dist/assets/header-back.png +0 -0
- package/dist/assets/header-close.png +0 -0
- package/dist/assets/header-close.svg +5 -0
- package/dist/assets/header-edit.png +0 -0
- package/dist/assets/header-export-download.svg +5 -0
- package/dist/assets/header-export-history.svg +5 -0
- package/dist/assets/header-export.png +0 -0
- package/dist/assets/import-local.svg +3 -0
- package/dist/assets/import-menu-chevron-down.svg +3 -0
- package/dist/assets/import-menu-local.svg +3 -0
- package/dist/assets/import-menu-system-arrow.svg +3 -0
- package/dist/assets/import-menu-system-cloud.svg +3 -0
- package/dist/assets/import-menu-url.svg +3 -0
- package/dist/assets/import-url.svg +10 -0
- package/dist/assets/project-loading.svg +6 -0
- package/dist/byteplus-export-source-adapter.d.ts +9 -0
- package/dist/config-validation.d.ts +3 -0
- package/dist/confirm-modal-view.d.ts +16 -0
- package/dist/confirm-modal.d.ts +14 -0
- package/dist/distribution.d.ts +16 -0
- package/dist/export-modal-view.d.ts +13 -0
- package/dist/export-modal.d.ts +63 -0
- package/dist/export-project-adapter.d.ts +14 -0
- package/dist/export-task-polling.d.ts +15 -0
- package/dist/header.d.ts +57 -0
- package/dist/i18n/index.d.ts +17 -0
- package/dist/i18n/keys.d.ts +107 -0
- package/dist/i18n/locales/en-US.d.ts +2 -0
- package/dist/i18n/locales/zh-CN.d.ts +2 -0
- package/dist/import-actions-dropdown-view.d.ts +15 -0
- package/dist/import-actions.d.ts +29 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +2907 -0
- package/dist/legacy-export-adapter.d.ts +7 -0
- package/dist/local-upload-modal-view.d.ts +13 -0
- package/dist/local-upload-modal.d.ts +13 -0
- package/dist/material-source.d.ts +5 -0
- package/dist/modal-page-overscroll.d.ts +4 -0
- package/dist/project-bootstrap.d.ts +11 -0
- package/dist/public-types.d.ts +147 -0
- package/dist/react-mount.d.ts +10 -0
- package/dist/refresh-play-info.d.ts +34 -0
- package/dist/remote-edit-param-schema.d.ts +29 -0
- package/dist/runtime/veveditor.d.ts +6 -0
- package/dist/task-polling.d.ts +9 -0
- package/dist/task-query-status.d.ts +10 -0
- package/dist/toast.d.ts +36 -0
- package/dist/tos-upload.d.ts +74 -0
- package/dist/types.d.ts +344 -0
- package/dist/upload-queue.d.ts +6 -0
- package/dist/url-upload-modal-view.d.ts +13 -0
- package/dist/url-upload-modal.d.ts +12 -0
- package/dist/utils/material-extract.d.ts +62 -0
- package/dist/utils/signed-media-url-expiration.d.ts +2 -0
- package/dist/veveditor.css +1 -0
- package/dist/vod-openapi.d.ts +17 -0
- package/dist/vod-upload.d.ts +65 -0
- package/dist/xg-player-style-isolation.d.ts +6 -0
- package/package.json +43 -0
- package/third_party_notice.txt +1207 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ExportVideoParams } from './types';
|
|
2
|
+
import type { AmkI18nInstance } from './i18n';
|
|
3
|
+
export interface CreateExportModalOptions {
|
|
4
|
+
container: HTMLElement;
|
|
5
|
+
videoName: string;
|
|
6
|
+
/** 每次打开弹窗时读取最新的默认视频名称。 */
|
|
7
|
+
getVideoName?: () => string;
|
|
8
|
+
onConfirm: (params: ExportVideoParams) => Promise<void> | void;
|
|
9
|
+
t?: AmkI18nInstance['t'];
|
|
10
|
+
/** 是否展示「视频画质增强」。默认不展示。 */
|
|
11
|
+
showQualityEnhancement?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ExportModalController {
|
|
14
|
+
open: () => void;
|
|
15
|
+
close: () => void;
|
|
16
|
+
destroy: () => void;
|
|
17
|
+
/**
|
|
18
|
+
* Opens the modal and waits for the user to confirm or cancel.
|
|
19
|
+
* Confirmed results are returned to the caller and do not invoke `onConfirm`
|
|
20
|
+
* (callers such as Agent tools own the submit path). Header `open()` still
|
|
21
|
+
* uses `onConfirm` for the direct-export path.
|
|
22
|
+
*/
|
|
23
|
+
request: () => Promise<ExportModalRequestResult>;
|
|
24
|
+
}
|
|
25
|
+
export type ExportModalRequestResult = {
|
|
26
|
+
status: 'confirmed';
|
|
27
|
+
params: ExportVideoParams;
|
|
28
|
+
} | {
|
|
29
|
+
status: 'cancel';
|
|
30
|
+
};
|
|
31
|
+
type SelectOption<T extends string> = {
|
|
32
|
+
label: string;
|
|
33
|
+
value: T;
|
|
34
|
+
};
|
|
35
|
+
/** @deprecated 使用 AMK_I18N_KEYS.export.qualityTooltip + t() */
|
|
36
|
+
export declare const QUALITY_TOOLTIP = "AI MediaKit \u753B\u8D28\u589E\u5F3A\u96C6\u6210\u667A\u80FD\u8D85\u5206\u3001\u63D2\u5E27\u3001\u753B\u9762\u589E\u5F3A\u3001\u81EA\u9002\u5E94\u9510\u5316\u3001\u8272\u5F69\u589E\u5F3A\u7B49 30+ \u9AD8\u8D28\u91CF\u7B97\u6CD5\uFF0C\u7ED3\u5408\u81EA\u7814\u89C6\u9891\u5185\u5BB9\u7406\u89E3\u4E0E\u667A\u80FD\u8C03\u5EA6\uFF0C\u6309\u573A\u666F\u81EA\u52A8\u62E9\u4F18\u8C03\u7528\uFF0C\u5168\u9762\u63D0\u5347\u89C6\u9891\u753B\u8D28\u3002";
|
|
37
|
+
export declare function getBaseResolutions(t: AmkI18nInstance['t']): SelectOption<ExportVideoParams['resolution']>[];
|
|
38
|
+
/** 画质增强开启后的分辨率:不含原画;大模型版不含 4K */
|
|
39
|
+
export declare function getEnhancedResolutions(_t: AmkI18nInstance['t'], enhancementVersion?: ExportVideoParams['enhancementVersion']): SelectOption<ExportVideoParams['resolution']>[];
|
|
40
|
+
/** 当前模式下合法分辨率;非法时回落到默认项 */
|
|
41
|
+
export declare function normalizeExportResolution(params: Pick<ExportVideoParams, 'qualityEnhancement' | 'enhancementVersion' | 'resolution'>, t?: AmkI18nInstance['t']): ExportVideoParams['resolution'];
|
|
42
|
+
export declare function getEnhancementVersions(t: AmkI18nInstance['t']): SelectOption<ExportVideoParams['enhancementVersion']>[];
|
|
43
|
+
export declare const BASE_FORMATS: SelectOption<ExportVideoParams['format']>[];
|
|
44
|
+
export declare const BASE_CODECS: SelectOption<ExportVideoParams['codec']>[];
|
|
45
|
+
export declare const AUDIO_CODECS: SelectOption<ExportVideoParams['codec']>[];
|
|
46
|
+
/** 按导出格式返回编码下拉选项;画质增强开启时仅保留 H264。 */
|
|
47
|
+
export declare function getCodecOptions(format: ExportVideoParams['format'], enhanced: boolean): SelectOption<ExportVideoParams['codec']>[];
|
|
48
|
+
/** 保证 codec 与 format 一致:MP3 固定 mp3,MP4 回落到合法视频编码。 */
|
|
49
|
+
export declare function normalizeExportCodec(params: Pick<ExportVideoParams, 'format' | 'codec'>): ExportVideoParams['codec'];
|
|
50
|
+
export declare function applyExportFormatChange(current: ExportVideoParams, format: ExportVideoParams['format']): ExportVideoParams;
|
|
51
|
+
/** 兼容旧测试/调用方:中文默认标签 */
|
|
52
|
+
export declare const BASE_RESOLUTIONS: SelectOption<"original" | "720p" | "1080p" | "2k" | "4k">[];
|
|
53
|
+
export declare const ENHANCED_RESOLUTIONS: SelectOption<"original" | "720p" | "1080p" | "2k" | "4k">[];
|
|
54
|
+
export declare const ENHANCEMENT_VERSIONS: SelectOption<"standard" | "professional" | "large-model">[];
|
|
55
|
+
export declare function createDefaultExportVideoParams(videoName: string): ExportVideoParams;
|
|
56
|
+
/** 导出帧率合法区间(含端点) */
|
|
57
|
+
export declare const EXPORT_FRAME_RATE_MIN = 15;
|
|
58
|
+
export declare const EXPORT_FRAME_RATE_MAX = 120;
|
|
59
|
+
/** 将导出帧率钳制到 15~120;非法输入回落 24 */
|
|
60
|
+
export declare function normalizeExportFrameRate(frameRate: unknown): number;
|
|
61
|
+
export declare function toggleQualityEnhancement(params: ExportVideoParams, enabled: boolean): ExportVideoParams;
|
|
62
|
+
export declare function createExportModal(options: CreateExportModalOptions): ExportModalController;
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ExportVideoParams } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 开启画质增强时,把增强任务参数交给代理层(callback_args,JSON 字符串)。
|
|
4
|
+
* - large-model → POST .../tools/enhance-video-generative
|
|
5
|
+
* - standard / professional → POST .../tools/enhance-video,带 tool_version
|
|
6
|
+
* video_url 由代理在导出完成后再填;关闭增强时返回 undefined。
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildExportCallbackArgs(params: Pick<ExportVideoParams, 'qualityEnhancement' | 'keepOriginal' | 'enhancementVersion' | 'resolution' | 'frameRate'>): string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* 临时导出兜底:
|
|
11
|
+
* 根据目标分辨率短边等比缩放 Canvas、Track 元素和 Extra。
|
|
12
|
+
* 只返回导出副本,不修改编辑器内部工程;服务端支持后可整文件删除。
|
|
13
|
+
*/
|
|
14
|
+
export declare function adaptEditParamForExport(editParam: Record<string, unknown>, params: Pick<ExportVideoParams, 'resolution' | 'format' | 'frameRate' | 'codec'>): Record<string, unknown>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type TaskPollingController } from './task-polling';
|
|
2
|
+
export declare const EXPORT_TASK_POLL_INTERVAL_MS = 5000;
|
|
3
|
+
export declare const EXPORT_TASK_VISIBLE_WINDOW_MS: number;
|
|
4
|
+
export type ExportTaskPollingStatus = 'polling' | 'success' | 'failed';
|
|
5
|
+
export declare function resolveExportTaskPollingStatus(payload: unknown): ExportTaskPollingStatus;
|
|
6
|
+
export declare function resolveExportTaskProgress(payload: unknown): number | undefined;
|
|
7
|
+
export declare function resolveExportTaskOutputUrl(payload: unknown): string | undefined;
|
|
8
|
+
/** 服务端仍查最新 10 条,前端只展示提交时间位于最近 24 小时内的任务。 */
|
|
9
|
+
export declare function filterRecentExportTasks<T extends Record<string, unknown>>(items: T[], now?: number): T[];
|
|
10
|
+
export declare function startExportTaskPolling(options: {
|
|
11
|
+
taskId: string;
|
|
12
|
+
getTask: (taskId: string) => Promise<unknown>;
|
|
13
|
+
onStatusChange: (status: ExportTaskPollingStatus, payload?: unknown) => void | Promise<void>;
|
|
14
|
+
onError?: (error: unknown) => void | Promise<void>;
|
|
15
|
+
}): TaskPollingController;
|
package/dist/header.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { AmkI18nInstance } from './i18n';
|
|
2
|
+
export interface ResolveHeaderTitleOptions {
|
|
3
|
+
/** initialData.projectName / getProject.projectName */
|
|
4
|
+
projectName?: string;
|
|
5
|
+
t?: AmkI18nInstance['t'];
|
|
6
|
+
}
|
|
7
|
+
export interface CreateAmkEditorLayoutOptions {
|
|
8
|
+
container: HTMLElement;
|
|
9
|
+
title: string;
|
|
10
|
+
theme?: 'light' | 'dark';
|
|
11
|
+
showHeader: boolean;
|
|
12
|
+
/** 是否展示项目初始化 loading,默认展示。 */
|
|
13
|
+
showProjectLoading?: boolean;
|
|
14
|
+
/** 是否展示导出任务列表入口,默认开启。 */
|
|
15
|
+
showExportTaskList?: boolean;
|
|
16
|
+
/** When set, append the header here instead of inside the editor root. */
|
|
17
|
+
headerMount?: HTMLElement;
|
|
18
|
+
onExport: () => void;
|
|
19
|
+
/** 导出任务列表每次从关闭变为展开时触发。 */
|
|
20
|
+
onExportTasksOpen?: () => void | Promise<void>;
|
|
21
|
+
/** 传入则展示返回按钮 */
|
|
22
|
+
onBack?: () => void;
|
|
23
|
+
/** 传入则展示关闭按钮 */
|
|
24
|
+
onClose?: () => void;
|
|
25
|
+
onTitleSubmit?: (title: string) => void | Promise<void>;
|
|
26
|
+
i18n?: AmkI18nInstance;
|
|
27
|
+
}
|
|
28
|
+
export type AmkSaveStatus = 'saving' | 'saved';
|
|
29
|
+
export type AmkExportTaskStatus = 'idle' | 'polling' | 'success' | 'failed';
|
|
30
|
+
export type AmkExportTaskListItem = {
|
|
31
|
+
taskId: string;
|
|
32
|
+
name: string;
|
|
33
|
+
format: 'mp4' | 'mp3';
|
|
34
|
+
status: Exclude<AmkExportTaskStatus, 'idle'>;
|
|
35
|
+
/** 任务提交时间;历史任务来自任务列表接口的 submitted_at。 */
|
|
36
|
+
submittedAt?: string;
|
|
37
|
+
/** 服务端返回的任务进度(0-100);没有进度时使用不定长动画。 */
|
|
38
|
+
progress?: number;
|
|
39
|
+
/** 是否已在当前页面触发过浏览器下载。 */
|
|
40
|
+
downloaded?: boolean;
|
|
41
|
+
outputUrl?: string;
|
|
42
|
+
};
|
|
43
|
+
export interface AmkEditorLayout {
|
|
44
|
+
root: HTMLDivElement;
|
|
45
|
+
workspace: HTMLDivElement;
|
|
46
|
+
setTitle: (title: string) => void;
|
|
47
|
+
setSaveStatus: (status: AmkSaveStatus) => void;
|
|
48
|
+
setExportTasks: (tasks: AmkExportTaskListItem[]) => void;
|
|
49
|
+
updateExportTask: (task: AmkExportTaskListItem) => void;
|
|
50
|
+
setExportTasksLoading: (loading: boolean) => void;
|
|
51
|
+
openExportTasks: () => void;
|
|
52
|
+
setProjectLoading: (loading: boolean) => void;
|
|
53
|
+
destroy: () => void;
|
|
54
|
+
}
|
|
55
|
+
export declare function resolveHeaderTitle(options: ResolveHeaderTitleOptions): string;
|
|
56
|
+
export declare function validateHeaderTitle(title: string, t?: AmkI18nInstance['t']): string | undefined;
|
|
57
|
+
export declare function createAmkEditorLayout(options: CreateAmkEditorLayoutOptions): AmkEditorLayout;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type Locale = string;
|
|
2
|
+
export type Messages = Record<string, string>;
|
|
3
|
+
export type LocaleMessages = Record<Locale, Messages>;
|
|
4
|
+
export interface AmkI18nOptions {
|
|
5
|
+
locale?: Locale;
|
|
6
|
+
messages?: LocaleMessages;
|
|
7
|
+
messageOverrides?: Messages;
|
|
8
|
+
}
|
|
9
|
+
export interface AmkI18nInstance {
|
|
10
|
+
t: (key: string, params?: Record<string, any>, fallback?: string) => string;
|
|
11
|
+
getLocale: () => Locale;
|
|
12
|
+
}
|
|
13
|
+
export declare function createAmkI18n(options?: AmkI18nOptions): AmkI18nInstance;
|
|
14
|
+
export declare function setGlobalAmkI18n(i18n: AmkI18nInstance): void;
|
|
15
|
+
export declare function getGlobalAmkI18n(): AmkI18nInstance | null;
|
|
16
|
+
export declare function tAmk(key: string, params?: Record<string, any>, fallback?: string): string;
|
|
17
|
+
export { AMK_I18N_KEYS } from './keys';
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export declare const AMK_I18N_KEYS: {
|
|
2
|
+
readonly common: {
|
|
3
|
+
readonly close: "amk.common.close";
|
|
4
|
+
readonly cancel: "amk.common.cancel";
|
|
5
|
+
readonly confirm: "amk.common.confirm";
|
|
6
|
+
readonly projectLoading: "amk.common.projectLoading";
|
|
7
|
+
readonly uploading: "amk.common.uploading";
|
|
8
|
+
readonly uploadFailed: "amk.common.uploadFailed";
|
|
9
|
+
};
|
|
10
|
+
readonly header: {
|
|
11
|
+
readonly defaultTitle: "amk.header.defaultTitle";
|
|
12
|
+
readonly back: "amk.header.back";
|
|
13
|
+
readonly editTitle: "amk.header.editTitle";
|
|
14
|
+
readonly clearTitle: "amk.header.clearTitle";
|
|
15
|
+
readonly confirmTitle: "amk.header.confirmTitle";
|
|
16
|
+
readonly cancelEditTitle: "amk.header.cancelEditTitle";
|
|
17
|
+
readonly saving: "amk.header.saving";
|
|
18
|
+
readonly saved: "amk.header.saved";
|
|
19
|
+
readonly exportVideo: "amk.header.exportVideo";
|
|
20
|
+
readonly exportTasks: "amk.header.exportTasks";
|
|
21
|
+
readonly exportTaskTooltip: "amk.header.exportTaskTooltip";
|
|
22
|
+
readonly exportTaskRetention: "amk.header.exportTaskRetention";
|
|
23
|
+
readonly exportTaskPolling: "amk.header.exportTaskPolling";
|
|
24
|
+
readonly exportTaskSuccess: "amk.header.exportTaskSuccess";
|
|
25
|
+
readonly exportTaskFailed: "amk.header.exportTaskFailed";
|
|
26
|
+
readonly exportMessageLoading: "amk.header.exportMessageLoading";
|
|
27
|
+
readonly exportMessageSuccess: "amk.header.exportMessageSuccess";
|
|
28
|
+
readonly exportMessageView: "amk.header.exportMessageView";
|
|
29
|
+
readonly exportTaskEmpty: "amk.header.exportTaskEmpty";
|
|
30
|
+
readonly exportTaskEmptyDescription: "amk.header.exportTaskEmptyDescription";
|
|
31
|
+
readonly exportTaskLoading: "amk.header.exportTaskLoading";
|
|
32
|
+
readonly exportTaskDownloadReady: "amk.header.exportTaskDownloadReady";
|
|
33
|
+
readonly exportTaskUrlUnavailable: "amk.header.exportTaskUrlUnavailable";
|
|
34
|
+
readonly exportTaskDownload: "amk.header.exportTaskDownload";
|
|
35
|
+
readonly exportTaskDownloadAgain: "amk.header.exportTaskDownloadAgain";
|
|
36
|
+
readonly exportTaskDownloading: "amk.header.exportTaskDownloading";
|
|
37
|
+
readonly exportTaskDownloadFailed: "amk.header.exportTaskDownloadFailed";
|
|
38
|
+
readonly exportTaskDownloadCorsHint: "amk.header.exportTaskDownloadCorsHint";
|
|
39
|
+
readonly exportTaskView: "amk.header.exportTaskView";
|
|
40
|
+
readonly exportTaskVideo: "amk.header.exportTaskVideo";
|
|
41
|
+
readonly exportTaskAudio: "amk.header.exportTaskAudio";
|
|
42
|
+
readonly titleRuleEmpty: "amk.header.titleRuleEmpty";
|
|
43
|
+
readonly titleRuleMaxLength: "amk.header.titleRuleMaxLength";
|
|
44
|
+
readonly titleRuleCharset: "amk.header.titleRuleCharset";
|
|
45
|
+
};
|
|
46
|
+
readonly import: {
|
|
47
|
+
readonly local: "amk.import.local";
|
|
48
|
+
readonly url: "amk.import.url";
|
|
49
|
+
readonly system: "amk.import.system";
|
|
50
|
+
readonly action: "amk.import.action";
|
|
51
|
+
};
|
|
52
|
+
readonly localUpload: {
|
|
53
|
+
readonly title: "amk.localUpload.title";
|
|
54
|
+
readonly dropHint: "amk.localUpload.dropHint";
|
|
55
|
+
readonly dropSubHint: "amk.localUpload.dropSubHint";
|
|
56
|
+
readonly columnName: "amk.localUpload.columnName";
|
|
57
|
+
readonly columnType: "amk.localUpload.columnType";
|
|
58
|
+
readonly columnFormat: "amk.localUpload.columnFormat";
|
|
59
|
+
readonly columnSize: "amk.localUpload.columnSize";
|
|
60
|
+
readonly typeVideo: "amk.localUpload.typeVideo";
|
|
61
|
+
readonly typeAudio: "amk.localUpload.typeAudio";
|
|
62
|
+
readonly typeImage: "amk.localUpload.typeImage";
|
|
63
|
+
readonly typeOther: "amk.localUpload.typeOther";
|
|
64
|
+
readonly emptyFiles: "amk.localUpload.emptyFiles";
|
|
65
|
+
readonly uploadSuccess: "amk.localUpload.uploadSuccess";
|
|
66
|
+
readonly emptyResult: "amk.localUpload.emptyResult";
|
|
67
|
+
readonly partialFailed: "amk.localUpload.partialFailed";
|
|
68
|
+
};
|
|
69
|
+
readonly urlUpload: {
|
|
70
|
+
readonly title: "amk.urlUpload.title";
|
|
71
|
+
readonly hint: "amk.urlUpload.hint";
|
|
72
|
+
readonly placeholder: "amk.urlUpload.placeholder";
|
|
73
|
+
readonly submit: "amk.urlUpload.submit";
|
|
74
|
+
readonly emptyUrls: "amk.urlUpload.emptyUrls";
|
|
75
|
+
readonly tooManyUrls: "amk.urlUpload.tooManyUrls";
|
|
76
|
+
readonly invalidUrl: "amk.urlUpload.invalidUrl";
|
|
77
|
+
};
|
|
78
|
+
readonly asr: {
|
|
79
|
+
readonly tooltipLine1: "amk.asr.tooltipLine1";
|
|
80
|
+
readonly processing: "amk.asr.processing";
|
|
81
|
+
};
|
|
82
|
+
readonly emptyTrackSave: {
|
|
83
|
+
readonly title: "amk.emptyTrackSave.title";
|
|
84
|
+
readonly desc: "amk.emptyTrackSave.desc";
|
|
85
|
+
};
|
|
86
|
+
readonly export: {
|
|
87
|
+
readonly title: "amk.export.title";
|
|
88
|
+
readonly videoName: "amk.export.videoName";
|
|
89
|
+
readonly qualityEnhancement: "amk.export.qualityEnhancement";
|
|
90
|
+
readonly qualityTooltip: "amk.export.qualityTooltip";
|
|
91
|
+
readonly aiEnhanceTag: "amk.export.aiEnhanceTag";
|
|
92
|
+
readonly billingHintPrefix: "amk.export.billingHintPrefix";
|
|
93
|
+
readonly billingRules: "amk.export.billingRules";
|
|
94
|
+
readonly keepOriginal: "amk.export.keepOriginal";
|
|
95
|
+
readonly enhancementVersion: "amk.export.enhancementVersion";
|
|
96
|
+
readonly resolution: "amk.export.resolution";
|
|
97
|
+
readonly enhancedResolution: "amk.export.enhancedResolution";
|
|
98
|
+
readonly frameRate: "amk.export.frameRate";
|
|
99
|
+
readonly enhancedFrameRate: "amk.export.enhancedFrameRate";
|
|
100
|
+
readonly format: "amk.export.format";
|
|
101
|
+
readonly codec: "amk.export.codec";
|
|
102
|
+
readonly resolutionOriginal: "amk.export.resolutionOriginal";
|
|
103
|
+
readonly enhancementStandard: "amk.export.enhancementStandard";
|
|
104
|
+
readonly enhancementProfessional: "amk.export.enhancementProfessional";
|
|
105
|
+
readonly enhancementLargeModel: "amk.export.enhancementLargeModel";
|
|
106
|
+
};
|
|
107
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ImportDropdownAction {
|
|
3
|
+
key: string;
|
|
4
|
+
label: string;
|
|
5
|
+
onSelect: () => void;
|
|
6
|
+
}
|
|
7
|
+
export interface ImportActionsDropdownViewProps {
|
|
8
|
+
actions: ImportDropdownAction[];
|
|
9
|
+
label: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* “导入”是固定的操作入口,而非表单选择值:菜单项点击后只触发对应回调。
|
|
13
|
+
* selection="none" 同时确保组件不会维护选中态或展示勾选图标。
|
|
14
|
+
*/
|
|
15
|
+
export declare function ImportActionsDropdownView({ actions, label, }: ImportActionsDropdownViewProps): React.ReactElement;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type UploadQueue } from './upload-queue';
|
|
2
|
+
import type { AmkMaterialImportType, AmkMaterialImportRequestOptions, MaterialItem, SystemMaterialItem } from './types';
|
|
3
|
+
import type { AmkI18nInstance } from './i18n';
|
|
4
|
+
interface MountImportActionsOptions {
|
|
5
|
+
uploadQueue?: UploadQueue;
|
|
6
|
+
/** AMKEditor 自己的浮层容器;按钮仍挂在 VeVeditor 提供的工具栏插槽中。 */
|
|
7
|
+
modalContainer: HTMLElement;
|
|
8
|
+
uploadAccept?: string;
|
|
9
|
+
onUploadStatusChange?: (uploading: boolean) => void;
|
|
10
|
+
onUploadFile?: (file: File) => Promise<MaterialItem> | MaterialItem;
|
|
11
|
+
onUploadMaterial?: (files: File[]) => Promise<MaterialItem[]> | MaterialItem[];
|
|
12
|
+
onUploadUrlMaterial?: (urls: string[]) => Promise<MaterialItem[]> | MaterialItem[];
|
|
13
|
+
onUploadFromSystem?: () => Promise<SystemMaterialItem[] | undefined | null> | SystemMaterialItem[] | undefined | null;
|
|
14
|
+
onMaterialsImported: (materials: Array<MaterialItem | SystemMaterialItem>) => MaterialItem[] | Promise<MaterialItem[]>;
|
|
15
|
+
t?: AmkI18nInstance['t'];
|
|
16
|
+
}
|
|
17
|
+
export declare function resolveImportErrorMessage(error: unknown, fallback: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* 素材面板按钮与外部入口共用的控制器。保留可调用的 cleanup 形态,兼容已有
|
|
20
|
+
* `renderImportActions` 挂载协议;外部入口通过 trigger 复用完全相同的导入链路。
|
|
21
|
+
*/
|
|
22
|
+
export type ImportActionsController = (() => void) & {
|
|
23
|
+
hasAction: (type: AmkMaterialImportType) => boolean;
|
|
24
|
+
trigger: (type: AmkMaterialImportType, options?: AmkMaterialImportRequestOptions) => boolean;
|
|
25
|
+
destroy: () => void;
|
|
26
|
+
};
|
|
27
|
+
/** AMK 独立拥有素材导入 UI 与业务回调,VeVeditor 仅提供挂载容器和标准数据写入 API。 */
|
|
28
|
+
export declare function mountImportActions(container: HTMLElement, options: MountImportActionsOptions): ImportActionsController;
|
|
29
|
+
export {};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const version: string;
|
|
2
|
+
export type { AmkAsrProvider } from './asr-provider';
|
|
3
|
+
export { AmkEditor, createAmkEditor } from './amk-editor';
|
|
4
|
+
export { AmkApiClient, createAmkApiClient } from './api/client';
|
|
5
|
+
export type { AmkApiClientOptions, AmkInvokeToolParams } from './api/client';
|
|
6
|
+
export type { PresetLibrary, PresetLibraryItem, PresetLibraryResourceKey, } from './api/preset-library';
|
|
7
|
+
export { AMK_I18N_KEYS, createAmkI18n, tAmk, getGlobalAmkI18n, setGlobalAmkI18n, } from './i18n';
|
|
8
|
+
export type { AmkI18nInstance, AmkI18nOptions, Locale, LocaleMessages, Messages, } from './i18n';
|
|
9
|
+
export type { AmkEditorOptions, AmkEditorStorageConfig, AmkEditorUploadSTSCredentials, AmkEditorVodPlayInfo, AmkEditorVodUploadToken, AmkEditorConfig, AmkEditorDecodeOptions, AmkEditorExportConfig, AmkEditorGetHeaders, AmkEditorHeaderConfig, AmkEditorHeaderTitleUpdateSuccess, AmkEditorInternalConfig, AmkMaterialImportType, AmkMaterialImportRequestOptions, AmkExportRequestResult, AmkExportTaskCreatedEvent, AmkProjectSnapshot, AmkProjectInfo, ExportVideoParams, MaterialConfig, MaterialItem, PersistExtractUrlsResult, RecommendedExtractStorageFields, SystemMaterialItem, Theme, VeVeditorInstance, } from './types';
|