{"_id":"@apform-ui/plugins","_rev":"2-78d48c6d6a420fe71e14df4f28dcfbba","name":"@apform-ui/plugins","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@apform-ui/plugins","version":"1.0.0","keywords":["plugins","i18n","analytics","schema-ui"],"author":{"name":"yangdongnan"},"license":"MIT","_id":"@apform-ui/plugins@1.0.0","maintainers":[{"name":"apform-ui","email":"a101082085@gmail.com"}],"homepage":"https://github.com/schema-platform/schema-ui#readme","bugs":{"url":"https://github.com/schema-platform/schema-ui/issues"},"dist":{"shasum":"69f8937026bbfee913aa31c68be0800df3df1aa7","tarball":"https://registry.npmjs.org/@apform-ui/plugins/-/plugins-1.0.0.tgz","fileCount":10,"integrity":"sha512-8PoaTMVhsyD1CHiGUvNactPMvin5i0hdvnQ8bu7o6lTe8kK8wpjMDSHCMg4Bntep8oWBGoOgQxzXFSvRLrl/QQ==","signatures":[{"sig":"MEQCIDfiFNxQQRR9H5Cd8cZ+MDDJN+pFQ9/ao+9LcFoOQ4P8AiAb9yT2bO/+JpmnNuulRiCAGgfKTz6NqWmCOi47/QsEjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7760},"main":"./dist/plugins.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/plugins.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/plugins.js","require":"./dist/plugins.umd.cjs"},"./i18n":{"types":"./dist/i18n.d.ts","import":"./dist/i18n.js"},"./analytics":{"types":"./dist/analytics.d.ts","import":"./dist/analytics.js"},"./permission":{"types":"./dist/permission.d.ts","import":"./dist/permission.js"}},"gitHead":"6009fbf50cbe51a269f3de50059b079b045c6cc3","scripts":{"test":"vitest run","build":"vite build","clean":"rm -rf dist","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"apform-ui","email":"a101082085@gmail.com"},"repository":{"url":"git+https://github.com/schema-platform/schema-ui.git","type":"git","directory":"packages/plugins"},"_npmVersion":"11.12.1","description":"@schema-ui 插件扩展 — 国际化/埋点/权限指令","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^6.3.2","vitest":"^3.2.1","typescript":"~5.7.3"},"peerDependencies":{"vue":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/plugins_1.0.0_1787848214148_0.8538463397863039","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-08-27T16:30:13.954Z","modified":"2026-09-05T16:36:04.199Z","1.0.0":"2026-08-27T16:30:14.298Z"},"bugs":{"url":"https://github.com/schema-platform/schema-ui/issues"},"author":{"name":"yangdongnan"},"license":"MIT","homepage":"https://github.com/schema-platform/schema-ui#readme","keywords":["plugins","i18n","analytics","schema-ui"],"repository":{"url":"git+https://github.com/schema-platform/schema-ui.git","type":"git","directory":"packages/plugins"},"description":"@schema-ui 插件扩展 — 国际化/埋点/权限指令","maintainers":[{"email":"a101082085@gmail.com","name":"a101082085"}],"readme":"# @apform-ui/plugins\n\n@schema-ui 插件扩展，提供国际化、埋点、权限等 Vue 插件。\n\n## 安装\n\n```bash\nnpm install @apform-ui/plugins vue\n```\n\n## 插件清单\n\n| 插件 | 说明 |\n|------|------|\n| `createI18nPlugin` | 轻量国际化 |\n| `createAnalyticsPlugin` | 轻量埋点 |\n| `createPermissionPlugin` | 权限指令 |\n\n## 使用\n\n### 国际化\n\n```ts\nimport { createI18nPlugin, useI18n } from '@apform-ui/plugins'\n\nconst i18n = createI18nPlugin({\n  locale: 'zh-CN',\n  messages: {\n    'zh-CN': { hello: '你好', greeting: '你好，{name}' },\n    'en': { hello: 'Hello', greeting: 'Hello, {name}' },\n  },\n})\n\napp.use(i18n)\n```\n\n```vue\n<script setup>\nimport { useI18n } from '@apform-ui/plugins'\nconst { t, setLocale } = useI18n()\n</script>\n\n<template>\n  <p>{{ t('hello') }}</p>\n  <p>{{ t('greeting', { name: '张三' }) }}</p>\n</template>\n```\n\n### 埋点\n\n```ts\nimport { createAnalyticsPlugin, track } from '@apform-ui/plugins'\n\napp.use(createAnalyticsPlugin({\n  onTrack: (event) => {\n    // 上报到你的分析平台\n    console.log('track:', event)\n  },\n}))\n```\n\n```ts\ntrack('button_click', { button: 'save' })\n```\n\n### 权限\n\n```ts\nimport { createPermissionPlugin, usePermission } from '@apform-ui/plugins'\n\nconst perm = createPermissionPlugin({\n  getPermissions: async () => {\n    const res = await fetch('/api/permissions')\n    return res.json()\n  },\n})\n\napp.use(perm)\nawait perm.loadPermissions()\n```\n\n```vue\n<template>\n  <!-- 有权限才渲染 -->\n  <button v-permission=\"'user:delete'\">删除</button>\n  <button v-permission=\"['user:edit', 'user:delete']\">编辑</button>\n</template>\n```\n","readmeFilename":"README.md"}