UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

1 lines 4.3 kB
{"version":3,"file":"create.cjs","sources":["../../components/create.ts"],"sourcesContent":["import { computed, unref } from 'vue'\n\nimport {\n configHoverDelay,\n configIcons,\n configLocale,\n configNamespace,\n configProps,\n configZIndex,\n} from '@vexip-ui/config'\nimport { isEmpty, toCapitalCase } from '@vexip-ui/utils'\n\nimport type { App, MaybeRef } from 'vue'\nimport type { IconsOptions, LocaleConfig, LocaleOptions } from '@vexip-ui/config'\nimport type { PropsOptions } from './props'\n\nexport interface InstallOptions {\n prefix?: string,\n namespace?: MaybeRef<string>,\n props?: MaybeRef<PropsOptions>,\n locale?: MaybeRef<LocaleOptions>,\n zIndex?: MaybeRef<number>,\n icons?: MaybeRef<IconsOptions>,\n hoverDelay?: MaybeRef<number>,\n}\n\nexport function buildInstall(components: any[] = [], defaultLocale?: LocaleConfig) {\n return function install(app: App, options: InstallOptions = {}) {\n const {\n prefix = '',\n namespace = '',\n props = {},\n locale = defaultLocale,\n zIndex,\n icons = {},\n hoverDelay = 100,\n } = options\n\n const withDefaultLocale = computed(() => {\n return { ...defaultLocale, ...unref(locale) }\n })\n\n configNamespace(namespace, app)\n configProps(props, app)\n configLocale(withDefaultLocale, app)\n configIcons(icons, app)\n configHoverDelay(hoverDelay, app)\n\n if (typeof unref(zIndex) === 'number') {\n configZIndex(zIndex!, app)\n }\n\n const normalizedPrefix = toCapitalCase(prefix || '')\n\n components.forEach(component => {\n if (typeof component === 'function' || typeof component.install === 'function') {\n app.use(component)\n } else {\n app.component(`${normalizedPrefix}${component.name}`, component)\n }\n })\n }\n}\n\n/**\n * Provide a props config for under components.\n *\n * @param props props config\n * @param app the app of Vue, will use app.provide if specify\n */\nfunction proxyConfigProps(props: MaybeRef<PropsOptions>, app?: App) {\n !isEmpty(props) && configProps(props, app)\n}\n\n/**\n * Provide supported config for under components.\n *\n * @param config supported config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function provideConfig(\n config: Omit<InstallOptions, 'prefix' | 'namespace'> = {},\n app?: App,\n) {\n const { props = {}, locale = {}, zIndex, icons = {} } = config\n\n proxyConfigProps(props, app)\n !isEmpty(locale) && configLocale(locale, app)\n !isEmpty(icons) && configIcons(icons, app)\n\n if (typeof unref(zIndex) === 'number') {\n configZIndex(zIndex!, app)\n }\n}\n\nexport { proxyConfigProps as configProps, configLocale, configZIndex, configIcons }\n"],"names":["buildInstall","components","defaultLocale","app","options","prefix","namespace","props","locale","zIndex","icons","hoverDelay","withDefaultLocale","computed","unref","configNamespace","configProps","configLocale","configIcons","configHoverDelay","configZIndex","normalizedPrefix","toCapitalCase","component","proxyConfigProps","isEmpty","provideConfig","config"],"mappings":"kKA0BO,SAASA,EAAaC,EAAoB,CAAC,EAAGC,EAA8B,CACjF,OAAO,SAAiBC,EAAUC,EAA0B,CAAA,EAAI,CACxD,KAAA,CACJ,OAAAC,EAAS,GACT,UAAAC,EAAY,GACZ,MAAAC,EAAQ,CAAC,EACT,OAAAC,EAASN,EACT,OAAAO,EACA,MAAAC,EAAQ,CAAC,EACT,WAAAC,EAAa,GAAA,EACXP,EAEEQ,EAAoBC,EAAAA,SAAS,KAC1B,CAAE,GAAGX,EAAe,GAAGY,EAAA,MAAMN,CAAM,CAAE,EAC7C,EAEDO,EAAA,gBAAgBT,EAAWH,CAAG,EAC9Ba,EAAA,YAAYT,EAAOJ,CAAG,EACtBc,EAAA,aAAaL,EAAmBT,CAAG,EACnCe,EAAA,YAAYR,EAAOP,CAAG,EACtBgB,EAAA,iBAAiBR,EAAYR,CAAG,EAE5B,OAAOW,EAAA,MAAML,CAAM,GAAM,UAC3BW,EAAA,aAAaX,EAASN,CAAG,EAGrB,MAAAkB,EAAmBC,EAAAA,cAAcjB,GAAU,EAAE,EAEnDJ,EAAW,QAAqBsB,GAAA,CAC1B,OAAOA,GAAc,YAAc,OAAOA,EAAU,SAAY,WAClEpB,EAAI,IAAIoB,CAAS,EAEjBpB,EAAI,UAAU,GAAGkB,CAAgB,GAAGE,EAAU,IAAI,GAAIA,CAAS,CACjE,CACD,CACH,CACF,CAQA,SAASC,EAAiBjB,EAA+BJ,EAAW,CAClE,CAACsB,EAAQ,QAAAlB,CAAK,GAAKS,EAAAA,YAAYT,EAAOJ,CAAG,CAC3C,CAQO,SAASuB,EACdC,EAAuD,CAAC,EACxDxB,EACA,CACM,KAAA,CAAE,MAAAI,EAAQ,CAAA,EAAI,OAAAC,EAAS,CAAC,EAAG,OAAAC,EAAQ,MAAAC,EAAQ,CAAC,CAAA,EAAMiB,EAExDH,EAAiBjB,EAAOJ,CAAG,EAC3B,CAACsB,EAAQ,QAAAjB,CAAM,GAAKS,EAAAA,aAAaT,EAAQL,CAAG,EAC5C,CAACsB,EAAQ,QAAAf,CAAK,GAAKQ,EAAAA,YAAYR,EAAOP,CAAG,EAErC,OAAOW,EAAA,MAAML,CAAM,GAAM,UAC3BW,EAAA,aAAaX,EAASN,CAAG,CAE7B"}