mirror of
https://github.com/element-plus/element-plus.git
synced 2026-03-13 07:51:17 +08:00
* refactor(hooks): remove use-css-var * refactor(hooks): remove use-events * refactor(hooks): remove use-migrating * refactor(hooks): remove use-transition * refactor(hooks): named export useAttrs * refactor(hooks): named export useFocus * refactor(hooks): refactor useFormItem * refactor(hooks): refactor useGlobalConfig * refactor(hooks): refactor useLocale * refactor(hooks): refactor useLockscreen * refactor(hooks): refactor useModal * refactor(hooks): refactor useModelToggle * refactor(hooks): refactor usePreventGlobal * refactor(hooks): refactor useRestoreActive * refactor(hooks): refactor useTeleport * refactor(hooks): refactor useThrottleRender * refactor(hooks): refactor useTimeout * refactor(hooks): refactor useTransitionFallthrogh
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { setConfig } from '@element-plus/utils/config'
|
|
import { localeContextKey, localeProviderMaker } from '@element-plus/hooks'
|
|
import { version } from './version'
|
|
|
|
import type { App, Plugin } from 'vue'
|
|
import type { ComponentSize } from '@element-plus/utils/types'
|
|
import type { InstallOptions } from '@element-plus/utils/config'
|
|
|
|
const makeInstaller = (components: Plugin[] = []) => {
|
|
const apps: App[] = []
|
|
|
|
const install = (app: App, opts: InstallOptions) => {
|
|
const defaultInstallOpt: InstallOptions = {
|
|
size: '' as ComponentSize,
|
|
zIndex: 2000,
|
|
}
|
|
|
|
const option = Object.assign(defaultInstallOpt, opts)
|
|
if (apps.includes(app)) return
|
|
apps.push(app)
|
|
|
|
components.forEach((c) => {
|
|
app.use(c)
|
|
})
|
|
|
|
if (option.locale) {
|
|
const localeProvides = localeProviderMaker(opts.locale)
|
|
app.provide(localeContextKey, localeProvides)
|
|
}
|
|
|
|
app.config.globalProperties.$ELEMENT = option
|
|
// app.provide() ? is this better? I think its not that flexible but worth implement
|
|
setConfig(option)
|
|
}
|
|
|
|
return {
|
|
version,
|
|
install,
|
|
}
|
|
}
|
|
|
|
export default makeInstaller
|