UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

123 lines (122 loc) 4.01 kB
import { computed, customRef, getCurrentInstance, getCurrentScope, isRef, onBeforeUnmount, onScopeDispose, reactive, toRefs, toValue, unref } from "vue"; //#region ../../node_modules/.pnpm/@vueuse+shared@14.4.0_vue@3.5.41_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js /** * Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing * * @param fn */ function tryOnScopeDispose(fn, failSilently) { if (getCurrentScope()) { onScopeDispose(fn, failSilently); return true; } return false; } var isClient = typeof window !== "undefined" && typeof document !== "undefined"; typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope; var notNullish = (val) => val != null; var isIOS = /* #__PURE__ */ getIsIOS(); function getIsIOS() { var _window, _window2, _window3; return isClient && !!((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent)); } function toArray(value) { return Array.isArray(value) ? value : [value]; } function getLifeCycleTarget(target) { return target || getCurrentInstance(); } /** * Converts ref to reactive. * * @see https://vueuse.org/toReactive * @param objectRef A ref of object */ function toReactive(objectRef) { if (!isRef(objectRef)) return reactive(objectRef); return reactive(new Proxy({}, { get(_, p, receiver) { return unref(Reflect.get(objectRef.value, p, receiver)); }, set(_, p, value) { if (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value; else objectRef.value[p] = value; return true; }, deleteProperty(_, p) { return Reflect.deleteProperty(objectRef.value, p); }, has(_, p) { return Reflect.has(objectRef.value, p); }, ownKeys() { return Object.keys(objectRef.value); }, getOwnPropertyDescriptor() { return { enumerable: true, configurable: true }; } })); } /** * Computed reactive object. */ function reactiveComputed(fn) { return toReactive(computed(fn)); } /** * Reactively omit fields from a reactive object * * @see https://vueuse.org/reactiveOmit */ function reactiveOmit(obj, ...keys) { const flatKeys = keys.flat(); const predicate = flatKeys[0]; return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs(obj)).filter((e) => !flatKeys.includes(e[0])))); } /** * Create a ref which will be reset to the default value after some time. * * @see https://vueuse.org/refAutoReset * @param defaultValue The value which will be set. * @param afterMs A zero-or-greater delay in milliseconds. */ function refAutoReset(defaultValue, afterMs = 1e4) { return customRef((track, trigger) => { let value = toValue(defaultValue); let timer; const resetAfter = () => setTimeout(() => { value = toValue(defaultValue); trigger(); }, toValue(afterMs)); tryOnScopeDispose(() => { clearTimeout(timer); }); return { get() { track(); return value; }, set(newValue) { value = newValue; trigger(); clearTimeout(timer); timer = resetAfter(); } }; }); } /** * Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing * * @param fn * @param target */ function tryOnBeforeUnmount(fn, target) { if (getLifeCycleTarget(target)) onBeforeUnmount(fn, target); } //#endregion export { refAutoReset as a, tryOnScopeDispose as c, reactiveOmit as i, isIOS as n, toArray as o, notNullish as r, tryOnBeforeUnmount as s, isClient as t }; //# sourceMappingURL=dist-B-regXAP.js.map