├── .eslintrc.cjs ├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── .husky └── pre-commit ├── .prettierrc.cjs ├── .vscode └── extensions.json ├── LICENSE ├── README-zh.md ├── README.md ├── cypress.config.ts ├── cypress ├── e2e │ ├── example.cy.ts │ └── tsconfig.json ├── fixtures │ └── example.json └── support │ ├── commands.ts │ └── e2e.ts ├── index.html ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public ├── bird.mp4 ├── favicon.ico └── favicon.svg ├── src ├── App.vue ├── assets │ ├── css │ │ ├── base.css │ │ ├── main.css │ │ └── tailwind.css │ ├── icons │ │ ├── control-clip-bar.svg │ │ ├── control-copy.svg │ │ ├── control-cut.svg │ │ ├── control-delete.svg │ │ ├── control-next.svg │ │ ├── control-pause.svg │ │ ├── control-play.svg │ │ ├── control-prev.svg │ │ ├── control-redo.svg │ │ ├── control-undo.svg │ │ ├── control-voice.svg │ │ ├── control-zoomin.svg │ │ ├── control-zoomout.svg │ │ ├── control-zoomtofit.svg │ │ ├── icon-align-bottom.svg │ │ ├── icon-align-center.svg │ │ ├── icon-align-left.svg │ │ ├── icon-align-middle.svg │ │ ├── icon-align-right.svg │ │ ├── icon-align-top.svg │ │ ├── icon-export.svg │ │ ├── icon-github.svg │ │ ├── icon-image.svg │ │ ├── icon-layer-bottom.svg │ │ ├── icon-layer-down.svg │ │ ├── icon-layer-top.svg │ │ ├── icon-layer-up.svg │ │ ├── icon-music.svg │ │ ├── icon-support.svg │ │ ├── icon-text.svg │ │ ├── icon-video.svg │ │ └── index.ts │ └── imgs │ │ └── music-ripples.png ├── components │ ├── ThemeSwitch.vue │ ├── __tests__ │ │ └── HelloWorld.spec.ts │ ├── bottom-panel │ │ ├── BottomPanel.vue │ │ ├── TrackList.vue │ │ └── VideoTrack.vue │ ├── left-panel │ │ ├── ImageList.vue │ │ ├── LeftPanel.vue │ │ ├── VideoList.vue │ │ └── typeList.ts │ ├── player │ │ ├── CanvasPlayer.vue │ │ ├── ContextMenu.vue │ │ ├── customFabricControl.ts │ │ └── operate.ts │ └── right-panel │ │ └── RightPanel.vue ├── main.ts ├── router │ └── index.ts ├── stores │ ├── __tests__ │ │ └── store.spec.ts │ ├── counter.ts │ └── player.ts ├── utils │ ├── eventBus.ts │ └── index.ts └── views │ ├── about-page.vue │ ├── main-page.vue │ └── video-clip.vue ├── tailwind.config.js ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── tsconfig.vitest.json ├── types ├── env.d.ts └── mp4box.d.ts ├── vercel.json ├── vite.config.ts └── vitest.config.ts /.eslintrc.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/.eslintrc.cjs -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/.github/workflows/deploy.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npx --no-install lint-staged 2 | npm run type-check -------------------------------------------------------------------------------- /.prettierrc.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/.prettierrc.cjs -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/LICENSE -------------------------------------------------------------------------------- /README-zh.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/README-zh.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/README.md -------------------------------------------------------------------------------- /cypress.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/cypress.config.ts -------------------------------------------------------------------------------- /cypress/e2e/example.cy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/cypress/e2e/example.cy.ts -------------------------------------------------------------------------------- /cypress/e2e/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/cypress/e2e/tsconfig.json -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/cypress/fixtures/example.json -------------------------------------------------------------------------------- /cypress/support/commands.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/cypress/support/commands.ts -------------------------------------------------------------------------------- /cypress/support/e2e.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/cypress/support/e2e.ts -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/index.html -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/postcss.config.js -------------------------------------------------------------------------------- /public/bird.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/public/bird.mp4 -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/public/favicon.svg -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/App.vue -------------------------------------------------------------------------------- /src/assets/css/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/css/base.css -------------------------------------------------------------------------------- /src/assets/css/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/css/main.css -------------------------------------------------------------------------------- /src/assets/css/tailwind.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/css/tailwind.css -------------------------------------------------------------------------------- /src/assets/icons/control-clip-bar.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-clip-bar.svg -------------------------------------------------------------------------------- /src/assets/icons/control-copy.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-copy.svg -------------------------------------------------------------------------------- /src/assets/icons/control-cut.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-cut.svg -------------------------------------------------------------------------------- /src/assets/icons/control-delete.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-delete.svg -------------------------------------------------------------------------------- /src/assets/icons/control-next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-next.svg -------------------------------------------------------------------------------- /src/assets/icons/control-pause.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-pause.svg -------------------------------------------------------------------------------- /src/assets/icons/control-play.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-play.svg -------------------------------------------------------------------------------- /src/assets/icons/control-prev.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-prev.svg -------------------------------------------------------------------------------- /src/assets/icons/control-redo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-redo.svg -------------------------------------------------------------------------------- /src/assets/icons/control-undo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-undo.svg -------------------------------------------------------------------------------- /src/assets/icons/control-voice.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-voice.svg -------------------------------------------------------------------------------- /src/assets/icons/control-zoomin.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-zoomin.svg -------------------------------------------------------------------------------- /src/assets/icons/control-zoomout.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-zoomout.svg -------------------------------------------------------------------------------- /src/assets/icons/control-zoomtofit.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/control-zoomtofit.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-align-bottom.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-align-bottom.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-align-center.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-align-center.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-align-left.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-align-left.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-align-middle.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-align-middle.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-align-right.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-align-right.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-align-top.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-align-top.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-export.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-export.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-github.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-github.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-image.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-image.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-layer-bottom.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-layer-bottom.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-layer-down.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-layer-down.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-layer-top.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-layer-top.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-layer-up.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-layer-up.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-music.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-music.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-support.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-support.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-text.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-text.svg -------------------------------------------------------------------------------- /src/assets/icons/icon-video.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/icon-video.svg -------------------------------------------------------------------------------- /src/assets/icons/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/icons/index.ts -------------------------------------------------------------------------------- /src/assets/imgs/music-ripples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/assets/imgs/music-ripples.png -------------------------------------------------------------------------------- /src/components/ThemeSwitch.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/ThemeSwitch.vue -------------------------------------------------------------------------------- /src/components/__tests__/HelloWorld.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/__tests__/HelloWorld.spec.ts -------------------------------------------------------------------------------- /src/components/bottom-panel/BottomPanel.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/bottom-panel/BottomPanel.vue -------------------------------------------------------------------------------- /src/components/bottom-panel/TrackList.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/bottom-panel/TrackList.vue -------------------------------------------------------------------------------- /src/components/bottom-panel/VideoTrack.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/bottom-panel/VideoTrack.vue -------------------------------------------------------------------------------- /src/components/left-panel/ImageList.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/left-panel/ImageList.vue -------------------------------------------------------------------------------- /src/components/left-panel/LeftPanel.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/left-panel/LeftPanel.vue -------------------------------------------------------------------------------- /src/components/left-panel/VideoList.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/left-panel/VideoList.vue -------------------------------------------------------------------------------- /src/components/left-panel/typeList.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/left-panel/typeList.ts -------------------------------------------------------------------------------- /src/components/player/CanvasPlayer.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/player/CanvasPlayer.vue -------------------------------------------------------------------------------- /src/components/player/ContextMenu.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/player/ContextMenu.vue -------------------------------------------------------------------------------- /src/components/player/customFabricControl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/player/customFabricControl.ts -------------------------------------------------------------------------------- /src/components/player/operate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/player/operate.ts -------------------------------------------------------------------------------- /src/components/right-panel/RightPanel.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/components/right-panel/RightPanel.vue -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/router/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/router/index.ts -------------------------------------------------------------------------------- /src/stores/__tests__/store.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/stores/__tests__/store.spec.ts -------------------------------------------------------------------------------- /src/stores/counter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/stores/counter.ts -------------------------------------------------------------------------------- /src/stores/player.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/stores/player.ts -------------------------------------------------------------------------------- /src/utils/eventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/utils/eventBus.ts -------------------------------------------------------------------------------- /src/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/utils/index.ts -------------------------------------------------------------------------------- /src/views/about-page.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/views/about-page.vue -------------------------------------------------------------------------------- /src/views/main-page.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/views/main-page.vue -------------------------------------------------------------------------------- /src/views/video-clip.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/src/views/video-clip.vue -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/tailwind.config.js -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/tsconfig.app.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/tsconfig.node.json -------------------------------------------------------------------------------- /tsconfig.vitest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/tsconfig.vitest.json -------------------------------------------------------------------------------- /types/env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/types/env.d.ts -------------------------------------------------------------------------------- /types/mp4box.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/types/mp4box.d.ts -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/vercel.json -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/vite.config.ts -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangrongding/WebCut/HEAD/vitest.config.ts --------------------------------------------------------------------------------