85 lines
2.8 KiB
JavaScript
85 lines
2.8 KiB
JavaScript
|
// node_modules/vuetify/lib/composables/forwardRefs.mjs
|
||
|
var Refs = Symbol("Forwarded refs");
|
||
|
function getDescriptor(obj, key) {
|
||
|
let currentObj = obj;
|
||
|
while (currentObj) {
|
||
|
const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);
|
||
|
if (descriptor) return descriptor;
|
||
|
currentObj = Object.getPrototypeOf(currentObj);
|
||
|
}
|
||
|
return void 0;
|
||
|
}
|
||
|
function forwardRefs(target) {
|
||
|
for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
|
refs[_key - 1] = arguments[_key];
|
||
|
}
|
||
|
target[Refs] = refs;
|
||
|
return new Proxy(target, {
|
||
|
get(target2, key) {
|
||
|
if (Reflect.has(target2, key)) {
|
||
|
return Reflect.get(target2, key);
|
||
|
}
|
||
|
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return;
|
||
|
for (const ref of refs) {
|
||
|
if (ref.value && Reflect.has(ref.value, key)) {
|
||
|
const val = Reflect.get(ref.value, key);
|
||
|
return typeof val === "function" ? val.bind(ref.value) : val;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
has(target2, key) {
|
||
|
if (Reflect.has(target2, key)) {
|
||
|
return true;
|
||
|
}
|
||
|
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return false;
|
||
|
for (const ref of refs) {
|
||
|
if (ref.value && Reflect.has(ref.value, key)) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
},
|
||
|
set(target2, key, value) {
|
||
|
if (Reflect.has(target2, key)) {
|
||
|
return Reflect.set(target2, key, value);
|
||
|
}
|
||
|
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return false;
|
||
|
for (const ref of refs) {
|
||
|
if (ref.value && Reflect.has(ref.value, key)) {
|
||
|
return Reflect.set(ref.value, key, value);
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
},
|
||
|
getOwnPropertyDescriptor(target2, key) {
|
||
|
var _a;
|
||
|
const descriptor = Reflect.getOwnPropertyDescriptor(target2, key);
|
||
|
if (descriptor) return descriptor;
|
||
|
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return;
|
||
|
for (const ref of refs) {
|
||
|
if (!ref.value) continue;
|
||
|
const descriptor2 = getDescriptor(ref.value, key) ?? ("_" in ref.value ? getDescriptor((_a = ref.value._) == null ? void 0 : _a.setupState, key) : void 0);
|
||
|
if (descriptor2) return descriptor2;
|
||
|
}
|
||
|
for (const ref of refs) {
|
||
|
const childRefs = ref.value && ref.value[Refs];
|
||
|
if (!childRefs) continue;
|
||
|
const queue = childRefs.slice();
|
||
|
while (queue.length) {
|
||
|
const ref2 = queue.shift();
|
||
|
const descriptor2 = getDescriptor(ref2.value, key);
|
||
|
if (descriptor2) return descriptor2;
|
||
|
const childRefs2 = ref2.value && ref2.value[Refs];
|
||
|
if (childRefs2) queue.push(...childRefs2);
|
||
|
}
|
||
|
}
|
||
|
return void 0;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
export {
|
||
|
forwardRefs
|
||
|
};
|
||
|
//# sourceMappingURL=chunk-DOBNCX34.js.map
|