UNPKG

vuestic-ui

Version:
1 lines 3.62 kB
{"version":3,"file":"global-config.mjs","sources":["../../../../../src/services/global-config/global-config.ts"],"sourcesContent":["import { cloneDeep } from '../../utils/clone-deep'\nimport { ref, getCurrentInstance, Ref } from 'vue'\nimport { GlobalConfig, GlobalConfigUpdater, PartialGlobalConfig, ProvidedGlobalConfig } from './types'\nimport { getComponentsDefaultConfig } from '../component-config'\nimport { getIconDefaultConfig } from '../icon'\nimport { getColorDefaultConfig } from '../color'\nimport { getI18nConfigDefaults } from '../i18n'\nimport { getBreakpointDefaultConfig } from '../breakpoint'\nimport { getCurrentApp } from '../current-app'\nimport { mergeDeep } from '../../utils/merge-deep'\nimport { getColorsClassesDefaultConfig } from '../colors-classes/config/default'\n\nexport const GLOBAL_CONFIG = Symbol('GLOBAL_CONFIG')\n\nconst getDefaultConfig = () => ({\n colors: getColorDefaultConfig(),\n icons: getIconDefaultConfig(),\n components: getComponentsDefaultConfig(),\n breakpoint: getBreakpointDefaultConfig(),\n i18n: getI18nConfigDefaults(),\n colorsClasses: getColorsClassesDefaultConfig(),\n /**\n * global config variable to pass nuxt-link component to vuestic-ui via @vuestic/nuxt\n * TODO: give a try to integrate inertia js router components via this option\n * TODO: if this try won't be success, may be remake to provide/inject\n */\n routerComponent: undefined,\n})\n\nexport const createGlobalConfig = (defaultConfig: PartialGlobalConfig = {}) => {\n const globalConfig = ref<GlobalConfig>(mergeDeep(getDefaultConfig(), defaultConfig)) as Ref<GlobalConfig>\n\n const getGlobalConfig = (): GlobalConfig => globalConfig.value\n const setGlobalConfig = (updater: GlobalConfig | GlobalConfigUpdater<GlobalConfig>) => {\n const config = typeof updater === 'function' ? updater(globalConfig.value) : updater\n globalConfig.value = cloneDeep(config)\n }\n\n const mergeGlobalConfig = (updater: PartialGlobalConfig | GlobalConfigUpdater<PartialGlobalConfig>) => {\n const config = typeof updater === 'function' ? updater(globalConfig.value as PartialGlobalConfig) : updater\n globalConfig.value = mergeDeep(cloneDeep(globalConfig.value), config)\n }\n\n return {\n getGlobalConfig,\n setGlobalConfig,\n mergeGlobalConfig,\n globalConfig,\n }\n}\n\nexport const provideForCurrentApp = <T>(provide: T) => {\n const provides = getCurrentInstance()?.appContext.provides || getCurrentApp()?._context.provides\n\n if (!provides) { throw new Error('Vue app not found for provide') }\n\n provides[GLOBAL_CONFIG] = provide\n\n return provide\n}\n\nexport { useGlobalConfig } from '../../composables/useGlobalConfig'\n\nexport * from './types'\n"],"names":[],"mappings":";;;;;;;;;;AAYa,MAAA,gBAAgB,OAAO,eAAe;AAEnD,MAAM,mBAAmB,OAAO;AAAA,EAC9B,QAAQ,sBAAsB;AAAA,EAC9B,OAAO,qBAAqB;AAAA,EAC5B,YAAY,2BAA2B;AAAA,EACvC,YAAY,2BAA2B;AAAA,EACvC,MAAM,sBAAsB;AAAA,EAC5B,eAAe,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7C,iBAAiB;AACnB;AAEO,MAAM,qBAAqB,CAAC,gBAAqC,OAAO;AAC7E,QAAM,eAAe,IAAkB,UAAU,iBAAiB,GAAG,aAAa,CAAC;AAE7E,QAAA,kBAAkB,MAAoB,aAAa;AACnD,QAAA,kBAAkB,CAAC,YAA8D;AACrF,UAAM,SAAS,OAAO,YAAY,aAAa,QAAQ,aAAa,KAAK,IAAI;AAChE,iBAAA,QAAQ,UAAU,MAAM;AAAA,EAAA;AAGjC,QAAA,oBAAoB,CAAC,YAA4E;AACrG,UAAM,SAAS,OAAO,YAAY,aAAa,QAAQ,aAAa,KAA4B,IAAI;AACpG,iBAAa,QAAQ,UAAU,UAAU,aAAa,KAAK,GAAG,MAAM;AAAA,EAAA;AAG/D,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEa,MAAA,uBAAuB,CAAI,YAAe;;AACrD,QAAM,aAAW,wBAAmB,MAAnB,mBAAsB,WAAW,eAAY,yBAAA,mBAAiB,SAAS;AAExF,MAAI,CAAC,UAAU;AAAQ,UAAA,IAAI,MAAM,+BAA+B;AAAA,EAAE;AAElE,WAAS,aAAa,IAAI;AAEnB,SAAA;AACT;"}