{"_id":"@composy/file-manager-vue","name":"@composy/file-manager-vue","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@composy/file-manager-vue","version":"0.0.1","description":"Vue 3 adapter for @composy/file-manager-core - components, composables, plugins","keywords":["ldesign","file-manager","vue","vue3","component"],"author":{"name":"LDesign Team"},"license":"MIT","type":"module","main":"./lib/index.cjs","module":"./es/index.js","types":"./es/index.d.ts","exports":{".":{"import":"./es/index.js","require":"./lib/index.cjs","types":"./es/index.d.ts"}},"sideEffects":["**/*.css"],"scripts":{"build":"ldesign-builder build","prebuild":"node -e \"require('fs').rmSync('es', {recursive:true,force:true}); require('fs').rmSync('lib', {recursive:true,force:true}); require('fs').rmSync('esm', {recursive:true,force:true}); require('fs').rmSync('dist', {recursive:true,force:true})\"","postbuild":"node --experimental-strip-types ../../../../scripts/index.ts workspace:ensure-package-outputs --cwd ../.. --target vue && node --experimental-strip-types ../../../../scripts/index.ts clean:packages-source-declarations --cwd ../.. --target packages/vue","type-check":"tsc --noEmit","lint":"eslint . --cache","lint:check":"eslint . --cache --max-warnings 0","lint:fix":"eslint . --cache --fix","test":"ltesting run:unit","test:run":"ltesting run:unit","test:watch":"ltesting run:unit --watch","test:coverage":"ltesting run:unit --coverage","test:changed":"ltesting run:unit --changed","test:failed":"ltesting run:unit --failed","test:ui":"ltesting dashboard"},"dependencies":{"@composy/file-manager-core":"^0.0.1"},"peerDependencies":{"vue":"^3.5.32"},"devDependencies":{"@antfu/eslint-config":"9.1.0","@composy/builder":"^0.0.1","@composy/testing":"^0.0.1","eslint":"10.7.0","typescript":"5.9.3","vue":"3.5.39"},"publishConfig":{"registry":"http://npm.longrise.cn:6286/"},"typings":"./es/index.d.ts","browser":"./dist/index.js","unpkg":"./dist/index.js","jsdelivr":"./dist/index.js","_id":"@composy/file-manager-vue@0.0.1","_nodeVersion":"23.11.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-tmSFBWmTWe/wdptjDyduPdQX3nvpM1lROnqox1opKqrkp2CTm2jVMnzf3T4gx/xNGKhJgDQEh0D47ib8g2aZmA==","shasum":"04da61084efefc038e630f58e40b016f48412c40","tarball":"https://registry.npmjs.org/@composy/file-manager-vue/-/file-manager-vue-0.0.1.tgz","fileCount":81,"unpackedSize":219488,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHU9XR5HB/XQtQwcEhZaESNJPQmmN84UO/W+v8PqusnTAiEApYYhkd+0sU3ctpAT9sxglmkrmXjtgeKQ4LhbBlP2q3U="}]},"_npmUser":{"name":"swimly","email":"979741120@qq.com"},"directories":{},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/file-manager-vue_0.0.1_1786949114020_0.40556326700638534"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T06:45:13.838Z","0.0.1":"2026-08-17T06:45:14.153Z","modified":"2026-08-17T06:45:14.394Z"},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"description":"Vue 3 adapter for @composy/file-manager-core - components, composables, plugins","keywords":["ldesign","file-manager","vue","vue3","component"],"author":{"name":"LDesign Team"},"license":"MIT","readme":"# @composy/file-manager-vue\n\n文件管理器 Vue 3 适配层。\n\n## 安装\n\n```bash\npnpm add @composy/file-manager-vue\n```\n\n## 功能特性\n\n- Vue 3 组件（`<LDesignFileManager>`）\n- 组合式函数 `useFileManager()`\n- 完整的 `v-model` 双向绑定\n- Vue 插件注册\n- Injection key 注入\n\n## 快速开始\n\n```vue\n<template>\n  <LDesignFileManager\n    v-model:files=\"files\"\n    v-model:selection=\"selectedIds\"\n    v-model:viewMode=\"viewMode\"\n    v-model:sort=\"sort\"\n    theme=\"light\"\n    selection-mode=\"multiple\"\n    @selection-change=\"onSelection\"\n    @file-click=\"onFileClick\"\n    @folder-enter=\"onFolderEnter\"\n  />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { LDesignFileManager } from '@composy/file-manager-vue'\nimport type { FileItem, ViewMode, SortConfig, BreadcrumbItem } from '@composy/file-manager-vue'\n\nconst files = ref<FileItem[]>([])\nconst selectedIds = ref<string[]>([])\nconst viewMode = ref<ViewMode>('grid')\nconst sort = ref<SortConfig>({ field: 'name', order: 'asc' })\n\nfunction onSelection(selected: FileItem[]) {\n  console.log('选中:', selected)\n}\n\nfunction onFileClick(file: FileItem) {\n  console.log('点击:', file.name)\n}\n\nfunction onFolderEnter(folder: FileItem, breadcrumb: BreadcrumbItem[]) {\n  console.log('进入:', folder.name, breadcrumb)\n}\n</script>\n```\n\n## Props\n\n| Prop | 类型 | 默认值 | 说明 |\n|------|------|--------|------|\n| `files` | `FileItem[]` | `[]` | 文件列表 (v-model) |\n| `modelValue` | `string[]` | `[]` | 选中 ID 列表 (v-model) |\n| `viewMode` | `ViewMode` | `'grid'` | 视图模式 (v-model) |\n| `sort` | `SortConfig` | - | 排序配置 (v-model) |\n| `theme` | `ThemeMode` | `'light'` | 主题模式 |\n| `selectionMode` | `SelectionMode` | `'multiple'` | 选择模式 |\n| `showToolbar` | `boolean` | `true` | 显示工具栏 |\n| `showBreadcrumb` | `boolean` | `true` | 显示面包屑 |\n| `showSearch` | `boolean` | `true` | 显示搜索 |\n| `enableContextMenu` | `boolean` | `true` | 右键菜单 |\n| `enableDragUpload` | `boolean` | `true` | 拖拽上传 |\n| `enablePreview` | `boolean` | `true` | 文件预览 |\n| `emptyText` | `string` | `'暂无文件'` | 空状态文案 |\n| `className` | `string` | `''` | 自定义 class |\n| `style` | `CSSProperties` | `{}` | 自定义 style |\n\n## Events\n\n| 事件 | 参数 | 说明 |\n|------|------|------|\n| `selection-change` | `FileItem[]` | 选择变化 |\n| `file-click` | `FileItem` | 文件点击 |\n| `file-dblclick` | `FileItem` | 文件双击 |\n| `folder-enter` | `FileItem, BreadcrumbItem[]` | 进入文件夹 |\n| `view-mode-change` | `ViewMode` | 视图切换 |\n| `sort-change` | `SortConfig` | 排序变化 |\n| `search` | `string` | 搜索 |\n| `delete` | `FileItem[]` | 删除 |\n| `download` | `FileItem[]` | 下载 |\n| `rename` | `FileItem, string` | 重命名 |\n| `upload` | `File[]` | 上传 |\n\n## Expose 方法\n\n| 方法 | 说明 |\n|------|------|\n| `setFiles(files)` | 设置文件 |\n| `getSelection()` | 获取选中 |\n| `clearSelection()` | 清除选中 |\n| `selectAll()` | 全选 |\n| `setViewMode(mode)` | 设置视图 |\n| `setSort(sort)` | 设置排序 |\n| `enterFolder(folder)` | 进入文件夹 |\n| `search(keyword)` | 搜索 |\n| `preview(file)` | 预览 |\n| `setTheme(theme)` | 设置主题 |\n| `refresh()` | 刷新 |\n\n## 插件注册\n\n```typescript\nimport { FileManagerPlugin } from '@composy/file-manager-vue'\nimport { createApp } from 'vue'\n\nconst app = createApp(App)\napp.use(FileManagerPlugin)\napp.mount('#app')\n```\n\n## Composable\n\n```typescript\nimport { useFileManager } from '@composy/file-manager-vue'\n\nconst { instance, files, selection, create, setFiles, setTheme, destroy, on } = useFileManager()\n```\n\n## 构建产物\n\n| 目录 | 格式 |\n|------|------|\n| `dist/` | UMD |\n| `es/` | ESM (preserveModules) |\n| `esm/` | ESM |\n| `lib/` | CJS |\n\n## 依赖\n\n- `@composy/file-manager-core` — 核心引擎\n- `vue` ^3.5.32 (peerDependency)\n\n## 验证\n\n```bash\npnpm --filter @composy/file-manager-vue type-check\npnpm --filter @composy/file-manager-vue lint:check\npnpm --filter @composy/file-manager-vue build\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-2ceedda4a2cb5d078e262daf64f0df5a"}