UNPKG

vuetify

Version:

Vue Material Component Framework

39 lines 1.29 kB
// Utilities import { computed, inject, provide, ref, unref } from 'vue'; import { mergeDeep } from "../util/index.mjs"; // Types export const DefaultsSymbol = Symbol.for('vuetify:defaults'); export function createDefaults(options) { return ref(options); } export function useDefaults() { const defaults = inject(DefaultsSymbol); if (!defaults) throw new Error('[Vuetify] Could not find defaults instance'); return defaults; } export function provideDefaults(defaults, options) { const injectedDefaults = useDefaults(); const providedDefaults = ref(defaults); const newDefaults = computed(() => { const scoped = unref(options?.scoped); const reset = unref(options?.reset); const root = unref(options?.root); let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value }); if (scoped) return properties; if (reset || root) { const len = Number(reset || Infinity); for (let i = 0; i <= len; i++) { if (!properties || !('prev' in properties)) { break; } properties = properties.prev; } return properties; } return mergeDeep(properties.prev, properties); }); provide(DefaultsSymbol, newDefaults); return newDefaults; } //# sourceMappingURL=defaults.mjs.map