7e63bf7e26
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 28s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 49s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 45s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m4s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 2m36s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 36s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m9s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 1m1s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1m1s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m22s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m23s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 46m56s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 1253h14m10s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1253h14m13s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1253h14m11s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1253h14m14s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1253h14m16s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1253h14m18s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 1253h14m20s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1253h14m22s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1253h14m27s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 1253h14m57s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1253h15m32s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1253h15m34s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1253h15m36s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1253h47m2s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1253h46m50s
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import type { ClipType } from "../types"
|
||
|
||
/** 片段类型图标 */
|
||
export const CLIP_TYPE_ICONS: Record<ClipType, string> = {
|
||
voice: "🎙️",
|
||
pip: "🖼️",
|
||
}
|
||
|
||
/** 片段类型标签 */
|
||
export const CLIP_TYPE_LABELS: Record<ClipType, string> = {
|
||
voice: "口播",
|
||
pip: "混剪",
|
||
}
|
||
|
||
/** 默认缩放:每秒像素数 */
|
||
export const DEFAULT_PIXELS_PER_SECOND = 40
|
||
|
||
/** 最小缩放 */
|
||
export const MIN_PIXELS_PER_SECOND = 10
|
||
|
||
/** 最大缩放 */
|
||
export const MAX_PIXELS_PER_SECOND = 120
|
||
|
||
/** 缩放步长 */
|
||
export const ZOOM_STEP = 10
|
||
|
||
/** 片段卡片最小宽度(px) */
|
||
export const MIN_CLIP_WIDTH = 60
|
||
|
||
/** 添加面板宽度(px) */
|
||
export const ADD_PICKER_WIDTH = 240
|
||
|
||
/** 轨道间距(px) */
|
||
export const TRACK_GAP = 6
|
||
|
||
/** 最小裁剪时长(秒) */
|
||
export const MIN_TRIM_DURATION = 1
|
||
|
||
/** 默认添加时长(秒) */
|
||
export const DEFAULT_ADD_DURATION = 5
|
||
|
||
/** 最小添加时长(秒) */
|
||
export const MIN_ADD_DURATION = 1
|
||
|
||
/** 最大添加时长(秒) */
|
||
export const MAX_ADD_DURATION = 120
|
||
|
||
/** 轨道最小宽度(px) */
|
||
export const MIN_TRACK_WIDTH = 300
|
||
|
||
/** 时间标尺刻度计算:根据总时长返回刻度步长(秒) */
|
||
export const getRulerStep = (totalDuration: number): number => {
|
||
if (totalDuration <= 30) return 5
|
||
if (totalDuration <= 60) return 10
|
||
return 15
|
||
}
|