{"version":3,"file":"make-installer.mjs","names":[],"sources":["../src/make-installer.ts"],"sourcesContent":["import * as FastElementPlusIconsVue from \"@fast-element-plus/icons-vue\";\nimport FastElementPlusComponents from \"./component\";\nimport FastElementPlusDirectives from \"./directive\";\nimport { installElementPlus } from \"./element-plus\";\nimport { version } from \"./version\";\nimport type { App } from \"vue\";\n\n/** Vue 应用上的安装状态键，避免同一应用重复注册组件和指令。 */\nexport const INSTALLED_KEY = Symbol(\"FAST_ELEMENT_PLUS_INSTALLED_KEY\");\n\ninterface InstallableApp extends App {\n\t[INSTALLED_KEY]?: boolean;\n}\n\n/** 创建包含版本信息和幂等安装逻辑的 Fast.Element.Plus 插件。 */\nexport const makeInstaller = (): {\n\tversion: string;\n\tinstall: (app: App) => void;\n} => {\n\tconst install = (app: App): void => {\n\t\tif ((app as InstallableApp)[INSTALLED_KEY]) return;\n\n\t\t(app as InstallableApp)[INSTALLED_KEY] = true;\n\n\t\tinstallElementPlus(app);\n\n\t\t/** 注册 Fast.Element.Plus 全部图标，供 FaIcon 按名称解析。 */\n\t\tfor (const [key, component] of Object.entries(FastElementPlusIconsVue)) app.component(`fa-icon-${key}`, component);\n\n\t\tFastElementPlusComponents.forEach((c) => app.use(c));\n\n\t\tFastElementPlusDirectives.forEach((d) => app.use(d));\n\t};\n\n\treturn {\n\t\tversion,\n\t\tinstall,\n\t};\n};\n"],"mappings":";;;;;;;AAQA,MAAa,gBAAgB,OAAO,iCAAiC;;AAOrE,MAAa,sBAGR;CACJ,MAAM,WAAW,QAAmB;EACnC,IAAK,IAAuB,gBAAgB;EAE5C,IAAwB,iBAAiB;EAEzC,mBAAmB,GAAG;;EAGtB,KAAK,MAAM,CAAC,KAAK,cAAc,OAAO,QAAQ,uBAAuB,GAAG,IAAI,UAAU,WAAW,OAAO,SAAS;EAEjH,kBAA0B,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC;EAEnD,kBAA0B,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC;CACpD;CAEA,OAAO;EACN;EACA;CACD;AACD"}