aiflowy-ui-admin/node_modules/.vite/deps/@tanstack_vue-store.js

358 lines
10 KiB
JavaScript

import "./chunk-4CSS7JW7.js";
import "./chunk-VAL2CHZC.js";
import {
readonly,
ref,
toRaw,
watch
} from "./chunk-AAHVYXXY.js";
import "./chunk-OWZYVOTZ.js";
import "./chunk-V4OQ3NZ2.js";
// ../node_modules/.pnpm/@tanstack+store@0.7.7/node_modules/@tanstack/store/dist/esm/scheduler.js
var __storeToDerived = /* @__PURE__ */ new WeakMap();
var __derivedToStore = /* @__PURE__ */ new WeakMap();
var __depsThatHaveWrittenThisTick = {
current: []
};
var __isFlushing = false;
var __batchDepth = 0;
var __pendingUpdates = /* @__PURE__ */ new Set();
var __initialBatchValues = /* @__PURE__ */ new Map();
function __flush_internals(relatedVals) {
const sorted = Array.from(relatedVals).sort((a, b) => {
if (a instanceof Derived && a.options.deps.includes(b)) return 1;
if (b instanceof Derived && b.options.deps.includes(a)) return -1;
return 0;
});
for (const derived of sorted) {
if (__depsThatHaveWrittenThisTick.current.includes(derived)) {
continue;
}
__depsThatHaveWrittenThisTick.current.push(derived);
derived.recompute();
const stores = __derivedToStore.get(derived);
if (stores) {
for (const store of stores) {
const relatedLinkedDerivedVals = __storeToDerived.get(store);
if (!relatedLinkedDerivedVals) continue;
__flush_internals(relatedLinkedDerivedVals);
}
}
}
}
function __notifyListeners(store) {
const value = {
prevVal: store.prevState,
currentVal: store.state
};
for (const listener of store.listeners) {
listener(value);
}
}
function __notifyDerivedListeners(derived) {
const value = {
prevVal: derived.prevState,
currentVal: derived.state
};
for (const listener of derived.listeners) {
listener(value);
}
}
function __flush(store) {
if (__batchDepth > 0 && !__initialBatchValues.has(store)) {
__initialBatchValues.set(store, store.prevState);
}
__pendingUpdates.add(store);
if (__batchDepth > 0) return;
if (__isFlushing) return;
try {
__isFlushing = true;
while (__pendingUpdates.size > 0) {
const stores = Array.from(__pendingUpdates);
__pendingUpdates.clear();
for (const store2 of stores) {
const prevState = __initialBatchValues.get(store2) ?? store2.prevState;
store2.prevState = prevState;
__notifyListeners(store2);
}
for (const store2 of stores) {
const derivedVals = __storeToDerived.get(store2);
if (!derivedVals) continue;
__depsThatHaveWrittenThisTick.current.push(store2);
__flush_internals(derivedVals);
}
for (const store2 of stores) {
const derivedVals = __storeToDerived.get(store2);
if (!derivedVals) continue;
for (const derived of derivedVals) {
__notifyDerivedListeners(derived);
}
}
}
} finally {
__isFlushing = false;
__depsThatHaveWrittenThisTick.current = [];
__initialBatchValues.clear();
}
}
function batch(fn) {
__batchDepth++;
try {
fn();
} finally {
__batchDepth--;
if (__batchDepth === 0) {
const pendingUpdateToFlush = __pendingUpdates.values().next().value;
if (pendingUpdateToFlush) {
__flush(pendingUpdateToFlush);
}
}
}
}
// ../node_modules/.pnpm/@tanstack+store@0.7.7/node_modules/@tanstack/store/dist/esm/types.js
function isUpdaterFunction(updater) {
return typeof updater === "function";
}
// ../node_modules/.pnpm/@tanstack+store@0.7.7/node_modules/@tanstack/store/dist/esm/store.js
var Store = class {
constructor(initialState, options) {
this.listeners = /* @__PURE__ */ new Set();
this.subscribe = (listener) => {
var _a, _b;
this.listeners.add(listener);
const unsub = (_b = (_a = this.options) == null ? void 0 : _a.onSubscribe) == null ? void 0 : _b.call(_a, listener, this);
return () => {
this.listeners.delete(listener);
unsub == null ? void 0 : unsub();
};
};
this.prevState = initialState;
this.state = initialState;
this.options = options;
}
setState(updater) {
var _a, _b, _c;
this.prevState = this.state;
if ((_a = this.options) == null ? void 0 : _a.updateFn) {
this.state = this.options.updateFn(this.prevState)(updater);
} else {
if (isUpdaterFunction(updater)) {
this.state = updater(this.prevState);
} else {
this.state = updater;
}
}
(_c = (_b = this.options) == null ? void 0 : _b.onUpdate) == null ? void 0 : _c.call(_b);
__flush(this);
}
};
// ../node_modules/.pnpm/@tanstack+store@0.7.7/node_modules/@tanstack/store/dist/esm/derived.js
var Derived = class _Derived {
constructor(options) {
this.listeners = /* @__PURE__ */ new Set();
this._subscriptions = [];
this.lastSeenDepValues = [];
this.getDepVals = () => {
const l = this.options.deps.length;
const prevDepVals = new Array(l);
const currDepVals = new Array(l);
for (let i = 0; i < l; i++) {
const dep = this.options.deps[i];
prevDepVals[i] = dep.prevState;
currDepVals[i] = dep.state;
}
this.lastSeenDepValues = currDepVals;
return {
prevDepVals,
currDepVals,
prevVal: this.prevState ?? void 0
};
};
this.recompute = () => {
var _a, _b;
this.prevState = this.state;
const depVals = this.getDepVals();
this.state = this.options.fn(depVals);
(_b = (_a = this.options).onUpdate) == null ? void 0 : _b.call(_a);
};
this.checkIfRecalculationNeededDeeply = () => {
for (const dep of this.options.deps) {
if (dep instanceof _Derived) {
dep.checkIfRecalculationNeededDeeply();
}
}
let shouldRecompute = false;
const lastSeenDepValues = this.lastSeenDepValues;
const { currDepVals } = this.getDepVals();
for (let i = 0; i < currDepVals.length; i++) {
if (currDepVals[i] !== lastSeenDepValues[i]) {
shouldRecompute = true;
break;
}
}
if (shouldRecompute) {
this.recompute();
}
};
this.mount = () => {
this.registerOnGraph();
this.checkIfRecalculationNeededDeeply();
return () => {
this.unregisterFromGraph();
for (const cleanup of this._subscriptions) {
cleanup();
}
};
};
this.subscribe = (listener) => {
var _a, _b;
this.listeners.add(listener);
const unsub = (_b = (_a = this.options).onSubscribe) == null ? void 0 : _b.call(_a, listener, this);
return () => {
this.listeners.delete(listener);
unsub == null ? void 0 : unsub();
};
};
this.options = options;
this.state = options.fn({
prevDepVals: void 0,
prevVal: void 0,
currDepVals: this.getDepVals().currDepVals
});
}
registerOnGraph(deps = this.options.deps) {
for (const dep of deps) {
if (dep instanceof _Derived) {
dep.registerOnGraph();
this.registerOnGraph(dep.options.deps);
} else if (dep instanceof Store) {
let relatedLinkedDerivedVals = __storeToDerived.get(dep);
if (!relatedLinkedDerivedVals) {
relatedLinkedDerivedVals = /* @__PURE__ */ new Set();
__storeToDerived.set(dep, relatedLinkedDerivedVals);
}
relatedLinkedDerivedVals.add(this);
let relatedStores = __derivedToStore.get(this);
if (!relatedStores) {
relatedStores = /* @__PURE__ */ new Set();
__derivedToStore.set(this, relatedStores);
}
relatedStores.add(dep);
}
}
}
unregisterFromGraph(deps = this.options.deps) {
for (const dep of deps) {
if (dep instanceof _Derived) {
this.unregisterFromGraph(dep.options.deps);
} else if (dep instanceof Store) {
const relatedLinkedDerivedVals = __storeToDerived.get(dep);
if (relatedLinkedDerivedVals) {
relatedLinkedDerivedVals.delete(this);
}
const relatedStores = __derivedToStore.get(this);
if (relatedStores) {
relatedStores.delete(dep);
}
}
}
}
};
// ../node_modules/.pnpm/@tanstack+store@0.7.7/node_modules/@tanstack/store/dist/esm/effect.js
var Effect = class {
constructor(opts) {
const { eager, fn, ...derivedProps } = opts;
this._derived = new Derived({
...derivedProps,
fn: () => {
},
onUpdate() {
fn();
}
});
if (eager) {
fn();
}
}
mount() {
return this._derived.mount();
}
};
// ../node_modules/.pnpm/@tanstack+vue-store@0.7.7_vue@3.5.24_typescript@5.9.3_/node_modules/@tanstack/vue-store/dist/esm/index.js
function useStore(store, selector = (d) => d) {
const slice = ref(selector(store.state));
watch(
() => store,
(value, _oldValue, onCleanup) => {
const unsub = value.subscribe(() => {
const data = selector(value.state);
if (shallow(toRaw(slice.value), data)) {
return;
}
slice.value = data;
});
onCleanup(() => {
unsub();
});
},
{ immediate: true }
);
return readonly(slice);
}
function shallow(objA, objB) {
if (Object.is(objA, objB)) {
return true;
}
if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
return false;
}
if (objA instanceof Map && objB instanceof Map) {
if (objA.size !== objB.size) return false;
for (const [k, v] of objA) {
if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;
}
return true;
}
if (objA instanceof Set && objB instanceof Set) {
if (objA.size !== objB.size) return false;
for (const v of objA) {
if (!objB.has(v)) return false;
}
return true;
}
if (objA instanceof Date && objB instanceof Date) {
if (objA.getTime() !== objB.getTime()) return false;
return true;
}
const keysA = Object.keys(objA);
if (keysA.length !== Object.keys(objB).length) {
return false;
}
for (let i = 0; i < keysA.length; i++) {
if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {
return false;
}
}
return true;
}
export {
Derived,
Effect,
Store,
__depsThatHaveWrittenThisTick,
__derivedToStore,
__flush,
__storeToDerived,
batch,
isUpdaterFunction,
shallow,
useStore
};
//# sourceMappingURL=@tanstack_vue-store.js.map