{"version":3,"file":"useGlobalConfigProvider.mjs","sources":["../../../../../../src/components/va-config/hooks/useGlobalConfigProvider.ts"],"sourcesContent":["import { mergeDeep } from './../../../utils/merge-deep'\nimport { cloneDeep } from '../../../utils/clone-deep'\nimport { provide, computed, Ref } from 'vue'\nimport { useGlobalConfig } from '../../../composables'\nimport { GLOBAL_CONFIG, GlobalConfig, GlobalConfigUpdater, PartialGlobalConfig } from '../../../services/global-config'\nimport { makeColorsConfig } from '../../../services/color/config/make-config'\n\nexport const useGlobalConfigProvider = (next: Ref<PartialGlobalConfig>) => {\n  const { globalConfig, mergeGlobalConfig, setGlobalConfig, getGlobalConfig } = useGlobalConfig()\n\n  const nextChain = computed(() => {\n    const gcCopy = cloneDeep(globalConfig.value)\n    const compiledCopy: GlobalConfig = {\n      ...gcCopy,\n      colors: makeColorsConfig(gcCopy.colors),\n    }\n\n    const config = mergeDeep(compiledCopy, next.value) as GlobalConfig\n\n    // Variables is a virtual property, so we need to merge it manually after preset in chosen!\n    if (next.value.colors?.variables) {\n      Object.keys(next.value.colors.variables).forEach((key) => {\n        config.colors.variables[key] = next.value.colors!.variables![key]!\n      })\n    }\n\n    return config\n  })\n\n  provide(GLOBAL_CONFIG, {\n    mergeGlobalConfig,\n    setGlobalConfig,\n    getGlobalConfig,\n    globalConfig: nextChain,\n  })\n\n  return nextChain\n}\n"],"names":[],"mappings":";;;;;;AAOa,MAAA,0BAA0B,CAAC,SAAmC;AACzE,QAAM,EAAE,cAAc,mBAAmB,iBAAiB,gBAAA,IAAoB;AAExE,QAAA,YAAY,SAAS,MAAM;;AACzB,UAAA,SAAS,UAAU,aAAa,KAAK;AAC3C,UAAM,eAA6B;AAAA,MACjC,GAAG;AAAA,MACH,QAAQ,iBAAiB,OAAO,MAAM;AAAA,IAAA;AAGxC,UAAM,SAAS,UAAU,cAAc,KAAK,KAAK;AAG7C,SAAA,UAAK,MAAM,WAAX,mBAAmB,WAAW;AACzB,aAAA,KAAK,KAAK,MAAM,OAAO,SAAS,EAAE,QAAQ,CAAC,QAAQ;AACjD,eAAA,OAAO,UAAU,GAAG,IAAI,KAAK,MAAM,OAAQ,UAAW,GAAG;AAAA,MAAA,CACjE;AAAA,IACH;AAEO,WAAA;AAAA,EAAA,CACR;AAED,UAAQ,eAAe;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EAAA,CACf;AAEM,SAAA;AACT;"}