Tracking de l'application VApp (IHM du jeu)
This commit is contained in:
104
VApp/node_modules/vuetify/lib/composables/defaults.mjs
generated
vendored
Normal file
104
VApp/node_modules/vuetify/lib/composables/defaults.mjs
generated
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
// Utilities
|
||||
import { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue';
|
||||
import { getCurrentInstance, injectSelf, mergeDeep, toKebabCase } from "../util/index.mjs"; // Types
|
||||
export const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
||||
export function createDefaults(options) {
|
||||
return ref(options);
|
||||
}
|
||||
export function injectDefaults() {
|
||||
const defaults = inject(DefaultsSymbol);
|
||||
if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');
|
||||
return defaults;
|
||||
}
|
||||
export function provideDefaults(defaults, options) {
|
||||
const injectedDefaults = injectDefaults();
|
||||
const providedDefaults = ref(defaults);
|
||||
const newDefaults = computed(() => {
|
||||
const disabled = unref(options?.disabled);
|
||||
if (disabled) return injectedDefaults.value;
|
||||
const scoped = unref(options?.scoped);
|
||||
const reset = unref(options?.reset);
|
||||
const root = unref(options?.root);
|
||||
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
|
||||
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;
|
||||
}
|
||||
if (properties && typeof root === 'string' && root in properties) {
|
||||
properties = mergeDeep(mergeDeep(properties, {
|
||||
prev: properties
|
||||
}), properties[root]);
|
||||
}
|
||||
return properties;
|
||||
}
|
||||
return properties.prev ? mergeDeep(properties.prev, properties) : properties;
|
||||
});
|
||||
provide(DefaultsSymbol, newDefaults);
|
||||
return newDefaults;
|
||||
}
|
||||
function propIsDefined(vnode, prop) {
|
||||
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
||||
}
|
||||
export function internalUseDefaults() {
|
||||
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
let name = arguments.length > 1 ? arguments[1] : undefined;
|
||||
let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
|
||||
const vm = getCurrentInstance('useDefaults');
|
||||
name = name ?? vm.type.name ?? vm.type.__name;
|
||||
if (!name) {
|
||||
throw new Error('[Vuetify] Could not determine component name');
|
||||
}
|
||||
const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);
|
||||
const _props = new Proxy(props, {
|
||||
get(target, prop) {
|
||||
const propValue = Reflect.get(target, prop);
|
||||
if (prop === 'class' || prop === 'style') {
|
||||
return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
|
||||
} else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
||||
return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
|
||||
}
|
||||
return propValue;
|
||||
}
|
||||
});
|
||||
const _subcomponentDefaults = shallowRef();
|
||||
watchEffect(() => {
|
||||
if (componentDefaults.value) {
|
||||
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
||||
let [key] = _ref;
|
||||
return key.startsWith(key[0].toUpperCase());
|
||||
});
|
||||
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;
|
||||
} else {
|
||||
_subcomponentDefaults.value = undefined;
|
||||
}
|
||||
});
|
||||
function provideSubDefaults() {
|
||||
const injected = injectSelf(DefaultsSymbol, vm);
|
||||
provide(DefaultsSymbol, computed(() => {
|
||||
return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
||||
}));
|
||||
}
|
||||
return {
|
||||
props: _props,
|
||||
provideSubDefaults
|
||||
};
|
||||
}
|
||||
export function useDefaults() {
|
||||
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
let name = arguments.length > 1 ? arguments[1] : undefined;
|
||||
const {
|
||||
props: _props,
|
||||
provideSubDefaults
|
||||
} = internalUseDefaults(props, name);
|
||||
provideSubDefaults();
|
||||
return _props;
|
||||
}
|
||||
//# sourceMappingURL=defaults.mjs.map
|
Reference in New Issue
Block a user