Files
routie/frontend/node_modules/.vite/deps/proxiedModel-DSlSIQ0y.js
T

61 lines
2.2 KiB
JavaScript

import { Kn as ref, Mn as effectScope, U as computed, Vn as onScopeDispose, Zn as toRaw, gn as watch } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
import { X as toKebabCase, s as getCurrentInstance } from "./defineComponent-DB6xIcDy.js";
//#region node_modules/vuetify/lib/composables/toggleScope.js
function useToggleScope(source, fn) {
let scope;
function start() {
scope = effectScope();
scope.run(() => fn.length ? fn(() => {
scope?.stop();
start();
}) : fn());
}
watch(source, (active) => {
if (active && !scope) start();
else if (!active) {
scope?.stop();
scope = void 0;
}
}, { immediate: true });
onScopeDispose(() => {
scope?.stop();
});
}
//#endregion
//#region node_modules/vuetify/lib/composables/proxiedModel.js
function useProxiedModel(props, prop, defaultValue, transformIn = (v) => v, transformOut = (v) => v) {
const vm = getCurrentInstance("useProxiedModel");
const internal = ref(props[prop] !== void 0 ? props[prop] : defaultValue);
const kebabProp = toKebabCase(prop);
const isControlled = kebabProp !== prop ? computed(() => {
props[prop];
return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));
}) : computed(() => {
props[prop];
return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));
});
useToggleScope(() => !isControlled.value, () => {
watch(() => props[prop], (val) => {
internal.value = val;
});
});
const model = computed({
get() {
const externalValue = props[prop];
return transformIn(isControlled.value ? externalValue : internal.value);
},
set(internalValue) {
const newValue = transformOut(internalValue);
const value = toRaw(isControlled.value ? props[prop] : internal.value);
if (value === newValue || transformIn(value) === internalValue) return;
internal.value = newValue;
vm?.emit(`update:${prop}`, newValue);
}
});
Object.defineProperty(model, "externalValue", { get: () => isControlled.value ? props[prop] : internal.value });
return model;
}
//#endregion
export { useToggleScope as n, useProxiedModel as t };
//# sourceMappingURL=proxiedModel-DSlSIQ0y.js.map