@estjs/signals 0.0.15-beta.6 → 0.0.15-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/signals.cjs.js +4 -4
- package/dist/signals.cjs.js.map +1 -1
- package/dist/signals.d.cts +7 -1
- package/dist/signals.d.ts +7 -1
- package/dist/signals.dev.cjs.js +48 -24
- package/dist/signals.dev.esm.js +48 -24
- package/dist/signals.esm.js +4 -4
- package/dist/signals.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/signals.d.cts
CHANGED
|
@@ -992,7 +992,7 @@ declare function startBatch(): void;
|
|
|
992
992
|
* End batch update
|
|
993
993
|
*
|
|
994
994
|
* Decreases batch depth.
|
|
995
|
-
* When depth reaches zero, flush all queued Effects
|
|
995
|
+
* When depth reaches zero, flush all queued Effects.
|
|
996
996
|
*
|
|
997
997
|
* ## Cleanup Process
|
|
998
998
|
*
|
|
@@ -1001,6 +1001,12 @@ declare function startBatch(): void;
|
|
|
1001
1001
|
* 2. Job queue is automatically cleared by flushJobs()
|
|
1002
1002
|
* 3. Temporary flags (QUEUED, DIRTY) are cleared by effect execution
|
|
1003
1003
|
*
|
|
1004
|
+
* ## Development Mode Checks
|
|
1005
|
+
*
|
|
1006
|
+
* In development mode, this function performs additional validation:
|
|
1007
|
+
* - Detects unbalanced batch calls (endBatch without startBatch)
|
|
1008
|
+
* - Prevents batchDepth from becoming negative
|
|
1009
|
+
* - Provides clear error messages to help debug batch management issues
|
|
1004
1010
|
*/
|
|
1005
1011
|
declare function endBatch(): void;
|
|
1006
1012
|
/**
|
package/dist/signals.d.ts
CHANGED
|
@@ -992,7 +992,7 @@ declare function startBatch(): void;
|
|
|
992
992
|
* End batch update
|
|
993
993
|
*
|
|
994
994
|
* Decreases batch depth.
|
|
995
|
-
* When depth reaches zero, flush all queued Effects
|
|
995
|
+
* When depth reaches zero, flush all queued Effects.
|
|
996
996
|
*
|
|
997
997
|
* ## Cleanup Process
|
|
998
998
|
*
|
|
@@ -1001,6 +1001,12 @@ declare function startBatch(): void;
|
|
|
1001
1001
|
* 2. Job queue is automatically cleared by flushJobs()
|
|
1002
1002
|
* 3. Temporary flags (QUEUED, DIRTY) are cleared by effect execution
|
|
1003
1003
|
*
|
|
1004
|
+
* ## Development Mode Checks
|
|
1005
|
+
*
|
|
1006
|
+
* In development mode, this function performs additional validation:
|
|
1007
|
+
* - Detects unbalanced batch calls (endBatch without startBatch)
|
|
1008
|
+
* - Prevents batchDepth from becoming negative
|
|
1009
|
+
* - Provides clear error messages to help debug batch management issues
|
|
1004
1010
|
*/
|
|
1005
1011
|
declare function endBatch(): void;
|
|
1006
1012
|
/**
|
package/dist/signals.dev.cjs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var shared = require('@estjs/shared');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* @estjs/signals v0.0.15-beta.
|
|
6
|
+
* @estjs/signals v0.0.15-beta.7
|
|
7
7
|
* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
|
|
8
8
|
* @license MIT
|
|
9
9
|
**/
|
|
@@ -947,7 +947,7 @@ var SignalImpl = class {
|
|
|
947
947
|
// Mark whether it's shallow reactive
|
|
948
948
|
// @ts-ignore
|
|
949
949
|
this[_a] = true;
|
|
950
|
-
this.
|
|
950
|
+
this._rawValue = value;
|
|
951
951
|
if (shallow) {
|
|
952
952
|
this._value = shared.isObject(value) ? shallowReactive(value) : value;
|
|
953
953
|
} else {
|
|
@@ -964,7 +964,8 @@ var SignalImpl = class {
|
|
|
964
964
|
if (sub) {
|
|
965
965
|
linkReactiveNode(this, sub);
|
|
966
966
|
}
|
|
967
|
-
|
|
967
|
+
const flags = this.flag;
|
|
968
|
+
if (flags & 16 /* DIRTY */ && this.shouldUpdate()) {
|
|
968
969
|
const subs = this.subLink;
|
|
969
970
|
if (subs) {
|
|
970
971
|
shallowPropagate2(subs);
|
|
@@ -986,7 +987,11 @@ var SignalImpl = class {
|
|
|
986
987
|
if (!shared.hasChanged(this._rawValue, value)) {
|
|
987
988
|
return;
|
|
988
989
|
}
|
|
989
|
-
|
|
990
|
+
if (!("_oldValue" in this)) {
|
|
991
|
+
this._oldValue = this._rawValue;
|
|
992
|
+
}
|
|
993
|
+
const flags = this.flag;
|
|
994
|
+
this.flag = flags | 16 /* DIRTY */;
|
|
990
995
|
this._rawValue = value;
|
|
991
996
|
const shallow = this["_IS_SHALLOW" /* IS_SHALLOW */];
|
|
992
997
|
if (shallow) {
|
|
@@ -1002,7 +1007,12 @@ var SignalImpl = class {
|
|
|
1002
1007
|
// Check if the value should be update
|
|
1003
1008
|
shouldUpdate() {
|
|
1004
1009
|
this.flag &= -17 /* DIRTY */;
|
|
1005
|
-
|
|
1010
|
+
if (!("_oldValue" in this)) {
|
|
1011
|
+
return true;
|
|
1012
|
+
}
|
|
1013
|
+
const changed = shared.hasChanged(this._oldValue, this._rawValue);
|
|
1014
|
+
this._oldValue = this._rawValue;
|
|
1015
|
+
return changed;
|
|
1006
1016
|
}
|
|
1007
1017
|
// Get current value without triggering dependency tracking
|
|
1008
1018
|
peek() {
|
|
@@ -1063,8 +1073,8 @@ function nextTick(fn) {
|
|
|
1063
1073
|
try {
|
|
1064
1074
|
fn();
|
|
1065
1075
|
resolve();
|
|
1066
|
-
} catch (
|
|
1067
|
-
reject(
|
|
1076
|
+
} catch (error5) {
|
|
1077
|
+
reject(error5);
|
|
1068
1078
|
}
|
|
1069
1079
|
});
|
|
1070
1080
|
});
|
|
@@ -1147,17 +1157,13 @@ function startBatch() {
|
|
|
1147
1157
|
function endBatch() {
|
|
1148
1158
|
if (batchDepth === 0) {
|
|
1149
1159
|
shared.warn(
|
|
1150
|
-
"[Batch] endBatch() called without matching startBatch(). This
|
|
1160
|
+
"[Batch] endBatch() called without matching startBatch(). This indicates unbalanced batch calls in your code. Make sure every startBatch() has a corresponding endBatch(), or use the batch() function which handles this automatically."
|
|
1151
1161
|
);
|
|
1152
1162
|
return;
|
|
1153
1163
|
}
|
|
1154
|
-
|
|
1164
|
+
batchDepth--;
|
|
1165
|
+
if (batchDepth === 0) {
|
|
1155
1166
|
flushJobs();
|
|
1156
|
-
if (batchDepth !== 0) {
|
|
1157
|
-
shared.error(
|
|
1158
|
-
`[Batch] Batch depth is not zero after endBatch(). Current depth: ${batchDepth}. This indicates a bug in batch management.`
|
|
1159
|
-
);
|
|
1160
|
-
}
|
|
1161
1167
|
}
|
|
1162
1168
|
}
|
|
1163
1169
|
function isBatching() {
|
|
@@ -1299,9 +1305,9 @@ var EffectImpl = class {
|
|
|
1299
1305
|
const prevSub = startTracking(this);
|
|
1300
1306
|
try {
|
|
1301
1307
|
return this.fn();
|
|
1302
|
-
} catch (
|
|
1308
|
+
} catch (error5) {
|
|
1303
1309
|
this.flag |= 16 /* DIRTY */;
|
|
1304
|
-
throw
|
|
1310
|
+
throw error5;
|
|
1305
1311
|
} finally {
|
|
1306
1312
|
this.flag &= -1025 /* STOP */;
|
|
1307
1313
|
endTracking(this, prevSub);
|
|
@@ -1517,6 +1523,7 @@ var ComputedImpl = class {
|
|
|
1517
1523
|
try {
|
|
1518
1524
|
const newValue = this.getter();
|
|
1519
1525
|
const flags = this.flag;
|
|
1526
|
+
const subs = this.subLink;
|
|
1520
1527
|
const clearMask = ~(16 /* DIRTY */ | 32 /* PENDING */);
|
|
1521
1528
|
const valueChanged = !hadValue || shared.hasChanged(oldValue, newValue);
|
|
1522
1529
|
if (valueChanged) {
|
|
@@ -1531,17 +1538,19 @@ var ComputedImpl = class {
|
|
|
1531
1538
|
newValue
|
|
1532
1539
|
});
|
|
1533
1540
|
}
|
|
1534
|
-
if (
|
|
1535
|
-
shallowPropagate(
|
|
1541
|
+
if (subs) {
|
|
1542
|
+
shallowPropagate(subs);
|
|
1536
1543
|
}
|
|
1537
1544
|
} else {
|
|
1538
1545
|
this.flag = flags & clearMask;
|
|
1539
1546
|
}
|
|
1540
1547
|
} catch (_error) {
|
|
1541
|
-
|
|
1548
|
+
const clearMask = -49;
|
|
1549
|
+
this.flag &= clearMask;
|
|
1550
|
+
this.flag |= 16 /* DIRTY */;
|
|
1542
1551
|
{
|
|
1543
1552
|
shared.error(
|
|
1544
|
-
"[Computed] Error occurred while computing value
|
|
1553
|
+
"[Computed] Error occurred while computing value.\nThe computed will retry on next access.\nCommon causes:\n - Accessing undefined properties\n - Circular dependencies\n - Exceptions in getter function\nCheck your getter function for errors.",
|
|
1545
1554
|
_error
|
|
1546
1555
|
);
|
|
1547
1556
|
}
|
|
@@ -1617,6 +1626,10 @@ function createOptionsStore(options) {
|
|
|
1617
1626
|
const reactiveState = reactive(state);
|
|
1618
1627
|
const subscriptions = /* @__PURE__ */ new Set();
|
|
1619
1628
|
const actionCallbacks = /* @__PURE__ */ new Set();
|
|
1629
|
+
const notifySubscribers = (state2) => {
|
|
1630
|
+
subscriptions.forEach((callback) => callback(state2));
|
|
1631
|
+
actionCallbacks.forEach((callback) => callback(state2));
|
|
1632
|
+
};
|
|
1620
1633
|
const defaultActions = {
|
|
1621
1634
|
patch$(payload) {
|
|
1622
1635
|
if (!payload) {
|
|
@@ -1626,8 +1639,7 @@ function createOptionsStore(options) {
|
|
|
1626
1639
|
batch(() => {
|
|
1627
1640
|
Object.assign(reactiveState, payload);
|
|
1628
1641
|
});
|
|
1629
|
-
|
|
1630
|
-
actionCallbacks.forEach((callback) => callback(reactiveState));
|
|
1642
|
+
notifySubscribers(reactiveState);
|
|
1631
1643
|
},
|
|
1632
1644
|
subscribe$(callback) {
|
|
1633
1645
|
if (!callback) {
|
|
@@ -1650,8 +1662,7 @@ function createOptionsStore(options) {
|
|
|
1650
1662
|
batch(() => {
|
|
1651
1663
|
Object.assign(reactiveState, initState);
|
|
1652
1664
|
});
|
|
1653
|
-
|
|
1654
|
-
actionCallbacks.forEach((callback) => callback(reactiveState));
|
|
1665
|
+
notifySubscribers(reactiveState);
|
|
1655
1666
|
}
|
|
1656
1667
|
};
|
|
1657
1668
|
const store = __spreadValues(__spreadProps(__spreadValues({}, reactiveState), {
|
|
@@ -1661,8 +1672,21 @@ function createOptionsStore(options) {
|
|
|
1661
1672
|
for (const key in getters) {
|
|
1662
1673
|
const getter = getters[key];
|
|
1663
1674
|
if (getter) {
|
|
1675
|
+
let accessCount = 0;
|
|
1676
|
+
let lastWarnTime = 0;
|
|
1664
1677
|
Object.defineProperty(store, key, {
|
|
1665
1678
|
get() {
|
|
1679
|
+
{
|
|
1680
|
+
accessCount++;
|
|
1681
|
+
const now = Date.now();
|
|
1682
|
+
if (accessCount > 100 && now - lastWarnTime > 1e3) {
|
|
1683
|
+
shared.warn(
|
|
1684
|
+
`Getter '${key}' has been accessed ${accessCount} times. Consider caching the result if the value is used frequently. Note: Getters are computed properties that recalculate on every access.`
|
|
1685
|
+
);
|
|
1686
|
+
lastWarnTime = now;
|
|
1687
|
+
accessCount = 0;
|
|
1688
|
+
}
|
|
1689
|
+
}
|
|
1666
1690
|
return computed(() => getter.call(store, reactiveState)).value;
|
|
1667
1691
|
},
|
|
1668
1692
|
enumerable: true,
|
package/dist/signals.dev.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isFunction, isObject, warn, error, isPlainObject, info, hasChanged, isArray, isSet, isMap, isWeakMap, isWeakSet, isStringNumber, hasOwn } from '@estjs/shared';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @estjs/signals v0.0.15-beta.
|
|
4
|
+
* @estjs/signals v0.0.15-beta.7
|
|
5
5
|
* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
|
|
6
6
|
* @license MIT
|
|
7
7
|
**/
|
|
@@ -945,7 +945,7 @@ var SignalImpl = class {
|
|
|
945
945
|
// Mark whether it's shallow reactive
|
|
946
946
|
// @ts-ignore
|
|
947
947
|
this[_a] = true;
|
|
948
|
-
this.
|
|
948
|
+
this._rawValue = value;
|
|
949
949
|
if (shallow) {
|
|
950
950
|
this._value = isObject(value) ? shallowReactive(value) : value;
|
|
951
951
|
} else {
|
|
@@ -962,7 +962,8 @@ var SignalImpl = class {
|
|
|
962
962
|
if (sub) {
|
|
963
963
|
linkReactiveNode(this, sub);
|
|
964
964
|
}
|
|
965
|
-
|
|
965
|
+
const flags = this.flag;
|
|
966
|
+
if (flags & 16 /* DIRTY */ && this.shouldUpdate()) {
|
|
966
967
|
const subs = this.subLink;
|
|
967
968
|
if (subs) {
|
|
968
969
|
shallowPropagate2(subs);
|
|
@@ -984,7 +985,11 @@ var SignalImpl = class {
|
|
|
984
985
|
if (!hasChanged(this._rawValue, value)) {
|
|
985
986
|
return;
|
|
986
987
|
}
|
|
987
|
-
|
|
988
|
+
if (!("_oldValue" in this)) {
|
|
989
|
+
this._oldValue = this._rawValue;
|
|
990
|
+
}
|
|
991
|
+
const flags = this.flag;
|
|
992
|
+
this.flag = flags | 16 /* DIRTY */;
|
|
988
993
|
this._rawValue = value;
|
|
989
994
|
const shallow = this["_IS_SHALLOW" /* IS_SHALLOW */];
|
|
990
995
|
if (shallow) {
|
|
@@ -1000,7 +1005,12 @@ var SignalImpl = class {
|
|
|
1000
1005
|
// Check if the value should be update
|
|
1001
1006
|
shouldUpdate() {
|
|
1002
1007
|
this.flag &= -17 /* DIRTY */;
|
|
1003
|
-
|
|
1008
|
+
if (!("_oldValue" in this)) {
|
|
1009
|
+
return true;
|
|
1010
|
+
}
|
|
1011
|
+
const changed = hasChanged(this._oldValue, this._rawValue);
|
|
1012
|
+
this._oldValue = this._rawValue;
|
|
1013
|
+
return changed;
|
|
1004
1014
|
}
|
|
1005
1015
|
// Get current value without triggering dependency tracking
|
|
1006
1016
|
peek() {
|
|
@@ -1061,8 +1071,8 @@ function nextTick(fn) {
|
|
|
1061
1071
|
try {
|
|
1062
1072
|
fn();
|
|
1063
1073
|
resolve();
|
|
1064
|
-
} catch (
|
|
1065
|
-
reject(
|
|
1074
|
+
} catch (error5) {
|
|
1075
|
+
reject(error5);
|
|
1066
1076
|
}
|
|
1067
1077
|
});
|
|
1068
1078
|
});
|
|
@@ -1145,17 +1155,13 @@ function startBatch() {
|
|
|
1145
1155
|
function endBatch() {
|
|
1146
1156
|
if (batchDepth === 0) {
|
|
1147
1157
|
warn(
|
|
1148
|
-
"[Batch] endBatch() called without matching startBatch(). This
|
|
1158
|
+
"[Batch] endBatch() called without matching startBatch(). This indicates unbalanced batch calls in your code. Make sure every startBatch() has a corresponding endBatch(), or use the batch() function which handles this automatically."
|
|
1149
1159
|
);
|
|
1150
1160
|
return;
|
|
1151
1161
|
}
|
|
1152
|
-
|
|
1162
|
+
batchDepth--;
|
|
1163
|
+
if (batchDepth === 0) {
|
|
1153
1164
|
flushJobs();
|
|
1154
|
-
if (batchDepth !== 0) {
|
|
1155
|
-
error(
|
|
1156
|
-
`[Batch] Batch depth is not zero after endBatch(). Current depth: ${batchDepth}. This indicates a bug in batch management.`
|
|
1157
|
-
);
|
|
1158
|
-
}
|
|
1159
1165
|
}
|
|
1160
1166
|
}
|
|
1161
1167
|
function isBatching() {
|
|
@@ -1297,9 +1303,9 @@ var EffectImpl = class {
|
|
|
1297
1303
|
const prevSub = startTracking(this);
|
|
1298
1304
|
try {
|
|
1299
1305
|
return this.fn();
|
|
1300
|
-
} catch (
|
|
1306
|
+
} catch (error5) {
|
|
1301
1307
|
this.flag |= 16 /* DIRTY */;
|
|
1302
|
-
throw
|
|
1308
|
+
throw error5;
|
|
1303
1309
|
} finally {
|
|
1304
1310
|
this.flag &= -1025 /* STOP */;
|
|
1305
1311
|
endTracking(this, prevSub);
|
|
@@ -1515,6 +1521,7 @@ var ComputedImpl = class {
|
|
|
1515
1521
|
try {
|
|
1516
1522
|
const newValue = this.getter();
|
|
1517
1523
|
const flags = this.flag;
|
|
1524
|
+
const subs = this.subLink;
|
|
1518
1525
|
const clearMask = ~(16 /* DIRTY */ | 32 /* PENDING */);
|
|
1519
1526
|
const valueChanged = !hadValue || hasChanged(oldValue, newValue);
|
|
1520
1527
|
if (valueChanged) {
|
|
@@ -1529,17 +1536,19 @@ var ComputedImpl = class {
|
|
|
1529
1536
|
newValue
|
|
1530
1537
|
});
|
|
1531
1538
|
}
|
|
1532
|
-
if (
|
|
1533
|
-
shallowPropagate(
|
|
1539
|
+
if (subs) {
|
|
1540
|
+
shallowPropagate(subs);
|
|
1534
1541
|
}
|
|
1535
1542
|
} else {
|
|
1536
1543
|
this.flag = flags & clearMask;
|
|
1537
1544
|
}
|
|
1538
1545
|
} catch (_error) {
|
|
1539
|
-
|
|
1546
|
+
const clearMask = -49;
|
|
1547
|
+
this.flag &= clearMask;
|
|
1548
|
+
this.flag |= 16 /* DIRTY */;
|
|
1540
1549
|
{
|
|
1541
1550
|
error(
|
|
1542
|
-
"[Computed] Error occurred while computing value
|
|
1551
|
+
"[Computed] Error occurred while computing value.\nThe computed will retry on next access.\nCommon causes:\n - Accessing undefined properties\n - Circular dependencies\n - Exceptions in getter function\nCheck your getter function for errors.",
|
|
1543
1552
|
_error
|
|
1544
1553
|
);
|
|
1545
1554
|
}
|
|
@@ -1615,6 +1624,10 @@ function createOptionsStore(options) {
|
|
|
1615
1624
|
const reactiveState = reactive(state);
|
|
1616
1625
|
const subscriptions = /* @__PURE__ */ new Set();
|
|
1617
1626
|
const actionCallbacks = /* @__PURE__ */ new Set();
|
|
1627
|
+
const notifySubscribers = (state2) => {
|
|
1628
|
+
subscriptions.forEach((callback) => callback(state2));
|
|
1629
|
+
actionCallbacks.forEach((callback) => callback(state2));
|
|
1630
|
+
};
|
|
1618
1631
|
const defaultActions = {
|
|
1619
1632
|
patch$(payload) {
|
|
1620
1633
|
if (!payload) {
|
|
@@ -1624,8 +1637,7 @@ function createOptionsStore(options) {
|
|
|
1624
1637
|
batch(() => {
|
|
1625
1638
|
Object.assign(reactiveState, payload);
|
|
1626
1639
|
});
|
|
1627
|
-
|
|
1628
|
-
actionCallbacks.forEach((callback) => callback(reactiveState));
|
|
1640
|
+
notifySubscribers(reactiveState);
|
|
1629
1641
|
},
|
|
1630
1642
|
subscribe$(callback) {
|
|
1631
1643
|
if (!callback) {
|
|
@@ -1648,8 +1660,7 @@ function createOptionsStore(options) {
|
|
|
1648
1660
|
batch(() => {
|
|
1649
1661
|
Object.assign(reactiveState, initState);
|
|
1650
1662
|
});
|
|
1651
|
-
|
|
1652
|
-
actionCallbacks.forEach((callback) => callback(reactiveState));
|
|
1663
|
+
notifySubscribers(reactiveState);
|
|
1653
1664
|
}
|
|
1654
1665
|
};
|
|
1655
1666
|
const store = __spreadValues(__spreadProps(__spreadValues({}, reactiveState), {
|
|
@@ -1659,8 +1670,21 @@ function createOptionsStore(options) {
|
|
|
1659
1670
|
for (const key in getters) {
|
|
1660
1671
|
const getter = getters[key];
|
|
1661
1672
|
if (getter) {
|
|
1673
|
+
let accessCount = 0;
|
|
1674
|
+
let lastWarnTime = 0;
|
|
1662
1675
|
Object.defineProperty(store, key, {
|
|
1663
1676
|
get() {
|
|
1677
|
+
{
|
|
1678
|
+
accessCount++;
|
|
1679
|
+
const now = Date.now();
|
|
1680
|
+
if (accessCount > 100 && now - lastWarnTime > 1e3) {
|
|
1681
|
+
warn(
|
|
1682
|
+
`Getter '${key}' has been accessed ${accessCount} times. Consider caching the result if the value is used frequently. Note: Getters are computed properties that recalculate on every access.`
|
|
1683
|
+
);
|
|
1684
|
+
lastWarnTime = now;
|
|
1685
|
+
accessCount = 0;
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1664
1688
|
return computed(() => getter.call(store, reactiveState)).value;
|
|
1665
1689
|
},
|
|
1666
1690
|
enumerable: true,
|
package/dist/signals.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {isObject,isFunction,isPlainObject,hasChanged,isArray,isSet,isMap,isWeakMap,isWeakSet,isStringNumber,hasOwn}from'@estjs/shared';/**
|
|
2
|
-
* @estjs/signals v0.0.15-beta.
|
|
2
|
+
* @estjs/signals v0.0.15-beta.7
|
|
3
3
|
* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
6
|
-
var Be=Object.defineProperty,He=Object.defineProperties;var $e=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var Je=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var he=(e,t,n)=>t in e?Be(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n,Y=(e,t)=>{for(var n in t||(t={}))Je.call(t,n)&&he(e,n,t[n]);if(de)for(var n of de(t))Qe.call(t,n)&&he(e,n,t[n]);return e},Te=(e,t)=>He(e,$e(t));var E={SET:"SET",ADD:"ADD",DELETE:"DELETE",CLEAR:"CLEAR"};var te=Symbol(""),C=Symbol(""),_=Symbol(""),R=Symbol(""),w=Symbol("");function O(e){let t=e.nextSubLink,n;e:do{let r=e.subNode,i=r.flag&64,o=r.flag&2,a=r.flag&-65;if(a&60?a&48||(a&12?a&4?!(a&48)&&ge(e,r)?(r.flag=i|o|(a|8|32),a&=1):(a=0,r.flag=i|o):r.flag=i|o|(a&-9|32):(a=0,r.flag=i|o)):r.flag=i|o|a|32,r.flag&2&&Ee(r),a&1){let s=r.subLink;if(s){let g=(e=s).nextSubLink;g&&(n={value:t,prev:n},t=g);continue}}if(t){e=t,t=e.nextSubLink;continue}for(;n;)if(e=n.value,n=n.prev,e){t=e.nextSubLink;continue e}break}while(true)}function ne(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;if(!(r&16)&&r&33){let i=n|r&-33|16;t.flag=i,i&2&&Ee(t),r&1&&t.subLink&&ne(t.subLink);}e=e.nextSubLink;}}function Ee(e){e.active&&e.notify();}var M=0,b,N=false;function j(e,t){if(N)return;let n=t.depLinkTail;if(n&&n.depNode===e)return n;let r=n?n.nextDepLink:t.depLink;if(r&&r.depNode===e)return r.version=M,t.depLinkTail=r,r;let i=e.subLinkTail;if(i&&i.version===M&&i.subNode===t)return t.depLinkTail=i,i;let o={version:M,depNode:e,subNode:t,prevSubLink:i,nextSubLink:void 0,prevDepLink:n,nextDepLink:r};return r&&(r.prevDepLink=o),n?n.nextDepLink=o:t.depLink=o,i?i.nextSubLink=o:e.subLink=o,e.subLinkTail=o,t.depLinkTail=o,o}function V(e,t=e.subNode){let n=e.depNode,r=e.prevSubLink,i=e.nextSubLink,o=e.prevDepLink,a=e.nextDepLink;if(a?a.prevDepLink=o:t.depLinkTail=o,o?o.nextDepLink=a:t.depLink=a,i?i.prevSubLink=r:n.subLinkTail=r,r)r.nextSubLink=i;else if(n.subLink=i,i===void 0){let s=n.depLink;for(;s;)s=V(s,n);n.depLinkTail=void 0,n.flag|=16;}return e.depNode=void 0,e.subNode=void 0,e.prevSubLink=void 0,e.nextSubLink=void 0,e.prevDepLink=void 0,e.nextDepLink=void 0,a}function K(e,t){let n=[{link:e,owner:t}],r=[];for(;n.length>0;){let i=n.pop(),o=i.link,a=i.owner;for(;o;){let s=o.depNode,g=s.flag;if(a.flag&16)return true;if((g&17)===17){let d=s.subLink;d&&d.nextSubLink&&P(d);for(let u of r)u.flag&32&&(u.flag=u.flag&-33|16);return true}(g&33)===33?s.depLink?(r.push(s),n.push({link:s.depLink,owner:s})):s.flag&=-33:g&32&&(s.flag&=-33),o=o.nextDepLink;}}for(let i of r)i.flag&=-33;return t.flag&32&&(t.flag&=-33),false}function P(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;(r&48)===32&&(t.flag=n|r|16),e=e.nextSubLink;}}function re(e){let t=b;return b=e,t}function W(e){return M++,e.depLinkTail=void 0,e.flag=e.flag&-57|4,re(e)}function F(e,t){b=t;let n=e.depLinkTail,r=n?n.nextDepLink:e.depLink;for(;r;)r=V(r,e);e.flag&=-5;}function ze(e){let t=re(void 0),n=N;N=true;try{return e()}finally{N=n,re(t);}}function ge(e,t){let n=t.depLinkTail;for(;n;){if(n===e)return true;n=n.prevDepLink;}return false}var ie=new WeakMap;function f(e,t){if(!b||N)return;let n=ie.get(e);n||(n=new Map,ie.set(e,n));let r=n.get(t);r||(r=new Set,n.set(t,r)),r.has(b)||r.add(b);}function p(e,t,n,r){let i=ie.get(e);if(!i)return;let o=new Set;if(n!==void 0)if(Array.isArray(n))n.forEach(a=>{let s=i.get(a);s&&s.forEach(g=>o.add(g));});else {let a=i.get(n);a&&a.forEach(s=>o.add(s));}if(t==="ADD"||t==="DELETE"||t==="CLEAR"){let a=Symbol("iterate"),s=Symbol("arrayIterate"),g=Array.isArray(e)?s:a,d=i.get(g);d&&d.forEach(u=>o.add(u));}o.forEach(a=>{var s;a.flag&2?(s=a.notify)==null||s.call(a):a.flag&1&&(a.flag|=16,a.subLink&&O(a.subLink));});}var _e=new WeakMap;function c(e){if(!e||!isObject(e))return e;let t=e._RAW;return t?c(t):T(e)?c(e.peek()):e}var me=it();function it(){let e={};return ["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){let r=c(this);f(r,w);let i=r[t](...n);if((i===-1||i===false)&&n.length>0){let o=n.map(a=>c(a));i=r[t](...o);}return i};}),["find","findIndex","findLast","findLastIndex"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);f(r,w);let o=r[t](...n);return (t==="find"||t==="findLast")&&isObject(o)&&!i?h(o):o};}),["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"].forEach(t=>{e[t]=function(...n){let r=c(this),i=Array.prototype[t].apply(r,n);return p(r,E.SET,C),p(r,E.SET,w),i};}),["toReversed","toSorted","toSpliced"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);if(f(r,w),t==="toSpliced")for(let a=0,s=r.length;a<s;a++)f(r,`${a}`);let o=Array.prototype[t].apply(r,n);return Array.isArray(o)?o.map(a=>isObject(a)?h(a,i):a):o};}),["concat","slice","filter","map","flatMap","flat"].forEach(t=>{e[t]=function(...n){let r=c(this);return f(r,w),Array.prototype[t].apply(r,n)};}),["join","toString","toLocaleString"].forEach(t=>{e[t]=function(...n){let r=c(this);return f(r,w),Array.prototype[t].apply(r,n)};}),["values","keys","entries",Symbol.iterator].forEach(t=>{e[t]=function(){let n=c(this),r=k(this);f(n,C);let i=t===Symbol.iterator?n[Symbol.iterator]():n[t]();return {next(){let{value:o,done:a}=i.next();return a?{value:o,done:a}:Array.isArray(o)?{value:o.map(s=>isObject(s)?h(s,r):s),done:a}:{value:isObject(o)?h(o,r):o,done:a}},[Symbol.iterator](){return this}}};}),e}var ke=e=>({get:(t,n,r)=>{if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;if(hasOwn(me,n))return me[n];let i=Reflect.get(t,n,r);return isStringNumber(n)&&f(t,n),f(t,C),isObject(i)&&!e?h(i):i},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,r,i);return hasChanged(r,o)&&(isStringNumber(n)?p(t,E.SET,[n,w,C]):p(t,E.SET,n)),a}}),ot=ke(true),at=ke(false),st={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(ye,t)?ye:e,t,e)}},ct={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(be,t)&&t in e?be:e,t,e)}},ye={get(e){let t=c(this);f(t,_);let n=t.get(e);return isObject(n)&&!k(this)?h(n):n},set(e,t){let n=c(this),r=n.has(e),i=n.get(e),o=c(t);return n.set(e,o),(!r||hasChanged(i,o))&&p(n,E.SET,_),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r?p(t,E.SET,_):p(t,E.ADD,_),this},has(e){let t=c(this);f(t,_);let n=t.has(e);return !n&&isObject(e)?t.has(c(e)):n},delete(e){let t=c(this),n=t.has(e),r=t.delete(e);return !r&&isObject(e)&&(r=t.delete(c(e))),(n||r)&&p(t,E.DELETE,_),r},clear(){let e=c(this),t=e.size>0,n=e.clear();return t&&p(e,E.CLEAR,_),n},forEach(e,t){let n=c(this),r=k(this);f(n,_),n.forEach((i,o)=>{let a=r||!isObject(i)?i:h(i),s=r||!isObject(o)?o:h(o);e.call(t,a,s,this);});},[Symbol.iterator](){let e=c(this),t=k(this);f(e,_);let n=e[Symbol.iterator]();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:Array.isArray(r)?{value:r.map(o=>isObject(o)?h(o):o),done:i}:{value:isObject(r)?h(r):r,done:i}},[Symbol.iterator](){return this}}},get size(){let e=c(this);return f(e,_),e.size},keys(){let e=c(this),t=k(this);f(e,_);let n=e.keys();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:h(r),done:i}},[Symbol.iterator](){return this}}},values(){let e=c(this),t=k(this);f(e,_);let n=e.values();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:h(r),done:i}},[Symbol.iterator](){return this}}},entries(){let e=c(this),t=k(this);f(e,_);let n=e.entries();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:{value:r.map(o=>isObject(o)?h(o):o),done:i}},[Symbol.iterator](){return this}}}},be={get(e){let t=c(this);f(t,R);let n=t.get(e);return n===void 0&&v(e)&&(n=t.get(c(e))),isObject(n)&&!k(this)?h(n):n},set(e,t){let n=c(this),r=c(e),i=n.has(r),o=n.get(r),a=c(t);return n.set(r,a),(!i||hasChanged(o,a))&&p(n,E.SET,R),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r||p(t,E.ADD,R),this},has(e){let t=c(this);f(t,R);let n=t.has(e);return !n&&v(e)&&(n=t.has(c(e))),n},delete(e){let t=c(this),n=c(e),r=t.has(n),i=t.delete(n);return (r||i)&&p(t,E.DELETE,R),i}},ut=e=>({get(t,n,r){if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;let i=Reflect.get(t,n,r),o=T(i)?i.value:i;return f(t,n),isObject(o)&&!e?h(o):o},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,c(r),i);return hasChanged(r,o)&&p(t,E.SET,n),a},deleteProperty:(t,n)=>{let r=hasOwn(t,n),i=Reflect.deleteProperty(t,n);return r&&i&&p(t,E.DELETE,n),i}});function h(e,t=false){if(!isObject(e)||v(e))return e;let n=_e.get(e);if(n)return n;let r;isArray(e)?r=t?ot:at:isSet(e)||isMap(e)?r=st:isWeakMap(e)||isWeakSet(e)?r=ct:r=ut(t);let i=new Proxy(e,r);return _e.set(e,i),i}function v(e){return !!(e&&e._IS_REACTIVE)}function D(e){return v(e)||T(e)?e:h(e)}function H(e){return v(e)||T(e)?e:h(e,true)}function k(e){return !!(e&&e._IS_SHALLOW)}var ft=e=>isObject(e)?D(e):e;var we;we="_IS_SIGNAL";var I=class{constructor(t,n=false){this.flag=1;this[we]=true;this._oldValue=this._rawValue=t,n?this._value=isObject(t)?H(t):t:this._value=isObject(t)?D(t):t,this._IS_SHALLOW=n;}get dep(){return this}get value(){let t=b;if(t&&j(this,t),this.flag&16&&this.shouldUpdate()){let n=this.subLink;n&&P(n);}return this._value}set value(t){if(T(t)&&(t=t.peek()),t=c(t),!hasChanged(this._rawValue,t))return;this.flag|=16,this._rawValue=t,this._IS_SHALLOW?this._value=isObject(t)?H(t):t:this._value=isObject(t)?D(t):t;let r=this.subLink;r&&O(r);}shouldUpdate(){return this.flag&=-17,hasChanged(this._oldValue,this._oldValue=this._rawValue)}peek(){return this._value}set(t){this.value=t;}update(t){let n=t(this.peek());T(n)?this.value=n.peek():this.value=n;}};function lt(e){return T(e)?e:new I(e)}function pt(e){return T(e)&&(e=e.peek()),new I(e,true)}function T(e){return !!e&&!!e._IS_SIGNAL}var J=new Set,oe=new Set,dt=Promise.resolve(),ae=false;function Le(e){return e?new Promise((t,n)=>{queueMicrotask(()=>{try{e(),t();}catch(r){n(r);}});}):dt}function x(e){J.add(e),De();}function De(){ae||(ae=true,Le(se));}function xe(e){oe.add(e),De();}function se(){for(ae=false,ht();J.size>0;){let e=Array.from(J);J.clear();for(let t of e)try{t();}catch(n){}}}function ht(){let e=Array.from(oe);oe.clear();for(let t of e)try{t();}catch(n){}}function Re(e,t){switch(t){case "sync":return ()=>e();case "pre":return ()=>xe(e);case "post":return ()=>x(e);default:return ()=>x(e)}}var Q=0;function z(e){Ie();try{return e()}finally{Ae();}}function Ie(){Q++;}function Ae(){--Q===0&&se();}function ce(){return Q>0}function Tt(){return Q}var Ce;Ce="_IS_EFFECT";var ue=class{constructor(t,n){this.flag=18;this[Ce]=true;this._active=true;this.fn=t,n&&(this.scheduler=n.flush||n.scheduler,this.onStop=n.onStop,this.onTrack=n.onTrack,this.onTrigger=n.onTrigger);}get active(){return this._active}get dirty(){let t=this.flag;if(t&16)return true;if(t&32){if(this.depLink&&K(this.depLink,this))return this.flag=t&-33|16,true;this.flag=t&-33;}return false}pause(){this.flag|=256;}resume(){let n=this.flag&-257;this.flag=n;let r=(n&16)!==0,i=(n&32)!==0;(r||i)&&this.notify();}run(){if(!this._active)return this.fn();let t=this.flag;this.flag=t&-17|1024;let n=W(this);try{return this.fn()}catch(r){throw this.flag|=16,r}finally{this.flag&=-1025,F(this,n);}}getJob(){return this._job||(this._job=()=>this.run()),this._job}notify(){let t=this.flag;!this._active||t&1296||(this.flag=t|16,this.scheduler?isFunction(this.scheduler)?this.scheduler(this):Re(()=>this.run(),this.scheduler)():ce()?x(this.getJob()):this.run());}stop(){if(!this._active)return;this._active=false;let t=this.depLink;for(;t;)t=V(t,this);let n=this.subLink;for(;n;)n=V(n);this._job=void 0,this.depLinkTail=void 0,this.subLinkTail=void 0,this.onStop&&this.onStop();}};function X(e,t){let n=new ue(e,t);try{n.run();}catch(i){throw n.stop(),i}let r=()=>n.run();return r.effect=n,r.stop=()=>n.stop(),r}function gt(e){e.effect.stop();}function St(e){return !!(e&&e._IS_EFFECT)}function _t(e,t,n){let r=t;return X(()=>{r=e(r);},n)}var G=Symbol("computed-no-value"),Pe;Pe="_IS_COMPUTED";var Z=class{constructor(t,n,r,i){this.flag=17;this[Pe]=true;this._value=G;this.getter=t,this.setter=n,this.onTrack=r,this.onTrigger=i,this.flag|=16;}get value(){b&&j(this,b);let t=this.flag,n=this._value!==G;return n&&!(t&48)?this._value:!n||t&16?(this.recompute(),this._value):(t&32&&(this.depLink&&K(this.depLink,this)?this.recompute():this.flag=t&-33),this._value)}set value(t){this.setter&&this.setter(t);}peek(){return this._value===G&&this.recompute(),this._value}recompute(){let t=this._value,n=t!==G,r=W(this);try{let i=this.getter(),o=this.flag,a=-49;!n||hasChanged(t,i)?(this._value=i,this.flag=o&a,this.subLink&&ne(this.subLink)):this.flag=o&a;}catch(i){throw this.flag&=-49,i}finally{F(this,r);}}shouldUpdate(){let t=this._value!==G,n=this._value;return this.recompute(),t?hasChanged(this._value,n):true}};function fe(e){if(U(e))return e;if(!e)throw new Error("[Computed] Invalid argument: computed() requires a getter function or options object.");if(isFunction(e))return new Z(e);if(isPlainObject(e)){let{get:t,set:n,onTrack:r,onTrigger:i}=e;if(!t)throw new Error(`[Computed] Invalid options: getter function is required.
|
|
6
|
+
var He=Object.defineProperty,$e=Object.defineProperties;var Je=Object.getOwnPropertyDescriptors;var ge=Object.getOwnPropertySymbols;var Qe=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable;var Se=(e,t,n)=>t in e?He(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n,M=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&Se(e,n,t[n]);if(ge)for(var n of ge(t))ze.call(t,n)&&Se(e,n,t[n]);return e},_e=(e,t)=>$e(e,Je(t));var g={SET:"SET",ADD:"ADD",DELETE:"DELETE",CLEAR:"CLEAR"};var ne=Symbol(""),N=Symbol(""),_=Symbol(""),I=Symbol(""),L=Symbol("");function j(e){let t=e.nextSubLink,n;e:do{let r=e.subNode,i=r.flag&64,o=r.flag&2,a=r.flag&-65;if(a&60?a&48||(a&12?a&4?!(a&48)&&ye(e,r)?(r.flag=i|o|(a|8|32),a&=1):(a=0,r.flag=i|o):r.flag=i|o|(a&-9|32):(a=0,r.flag=i|o)):r.flag=i|o|a|32,r.flag&2&&me(r),a&1){let s=r.subLink;if(s){let h=(e=s).nextSubLink;h&&(n={value:t,prev:n},t=h);continue}}if(t){e=t,t=e.nextSubLink;continue}for(;n;)if(e=n.value,n=n.prev,e){t=e.nextSubLink;continue e}break}while(true)}function re(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;if(!(r&16)&&r&33){let i=n|r&-33|16;t.flag=i,i&2&&me(t),r&1&&t.subLink&&re(t.subLink);}e=e.nextSubLink;}}function me(e){e.active&&e.notify();}var K=0,b,V=false;function W(e,t){if(V)return;let n=t.depLinkTail;if(n&&n.depNode===e)return n;let r=n?n.nextDepLink:t.depLink;if(r&&r.depNode===e)return r.version=K,t.depLinkTail=r,r;let i=e.subLinkTail;if(i&&i.version===K&&i.subNode===t)return t.depLinkTail=i,i;let o={version:K,depNode:e,subNode:t,prevSubLink:i,nextSubLink:void 0,prevDepLink:n,nextDepLink:r};return r&&(r.prevDepLink=o),n?n.nextDepLink=o:t.depLink=o,i?i.nextSubLink=o:e.subLink=o,e.subLinkTail=o,t.depLinkTail=o,o}function P(e,t=e.subNode){let n=e.depNode,r=e.prevSubLink,i=e.nextSubLink,o=e.prevDepLink,a=e.nextDepLink;if(a?a.prevDepLink=o:t.depLinkTail=o,o?o.nextDepLink=a:t.depLink=a,i?i.prevSubLink=r:n.subLinkTail=r,r)r.nextSubLink=i;else if(n.subLink=i,i===void 0){let s=n.depLink;for(;s;)s=P(s,n);n.depLinkTail=void 0,n.flag|=16;}return e.depNode=void 0,e.subNode=void 0,e.prevSubLink=void 0,e.nextSubLink=void 0,e.prevDepLink=void 0,e.nextDepLink=void 0,a}function F(e,t){let n=[{link:e,owner:t}],r=[];for(;n.length>0;){let i=n.pop(),o=i.link,a=i.owner;for(;o;){let s=o.depNode,h=s.flag;if(a.flag&16)return true;if((h&17)===17){let S=s.subLink;S&&S.nextSubLink&&G(S);for(let p of r)p.flag&32&&(p.flag=p.flag&-33|16);return true}(h&33)===33?s.depLink?(r.push(s),n.push({link:s.depLink,owner:s})):s.flag&=-33:h&32&&(s.flag&=-33),o=o.nextDepLink;}}for(let i of r)i.flag&=-33;return t.flag&32&&(t.flag&=-33),false}function G(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;(r&48)===32&&(t.flag=n|r|16),e=e.nextSubLink;}}function ie(e){let t=b;return b=e,t}function q(e){return K++,e.depLinkTail=void 0,e.flag=e.flag&-57|4,ie(e)}function B(e,t){b=t;let n=e.depLinkTail,r=n?n.nextDepLink:e.depLink;for(;r;)r=P(r,e);e.flag&=-5;}function Xe(e){let t=ie(void 0),n=V;V=true;try{return e()}finally{V=n,ie(t);}}function ye(e,t){let n=t.depLinkTail;for(;n;){if(n===e)return true;n=n.prevDepLink;}return false}var oe=new WeakMap;function u(e,t){if(!b||V)return;let n=oe.get(e);n||(n=new Map,oe.set(e,n));let r=n.get(t);r||(r=new Set,n.set(t,r)),r.has(b)||r.add(b);}function d(e,t,n,r){let i=oe.get(e);if(!i)return;let o=new Set;if(n!==void 0)if(Array.isArray(n))n.forEach(a=>{let s=i.get(a);s&&s.forEach(h=>o.add(h));});else {let a=i.get(n);a&&a.forEach(s=>o.add(s));}if(t==="ADD"||t==="DELETE"||t==="CLEAR"){let a=Symbol("iterate"),s=Symbol("arrayIterate"),h=Array.isArray(e)?s:a,S=i.get(h);S&&S.forEach(p=>o.add(p));}o.forEach(a=>{var s;a.flag&2?(s=a.notify)==null||s.call(a):a.flag&1&&(a.flag|=16,a.subLink&&j(a.subLink));});}var ke=new WeakMap;function c(e){if(!e||!isObject(e))return e;let t=e._RAW;return t?c(t):E(e)?c(e.peek()):e}var ve=ot();function ot(){let e={};return ["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){let r=c(this);u(r,L);let i=r[t](...n);if((i===-1||i===false)&&n.length>0){let o=n.map(a=>c(a));i=r[t](...o);}return i};}),["find","findIndex","findLast","findLastIndex"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);u(r,L);let o=r[t](...n);return (t==="find"||t==="findLast")&&isObject(o)&&!i?T(o):o};}),["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"].forEach(t=>{e[t]=function(...n){let r=c(this),i=Array.prototype[t].apply(r,n);return d(r,g.SET,N),d(r,g.SET,L),i};}),["toReversed","toSorted","toSpliced"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);if(u(r,L),t==="toSpliced")for(let a=0,s=r.length;a<s;a++)u(r,`${a}`);let o=Array.prototype[t].apply(r,n);return Array.isArray(o)?o.map(a=>isObject(a)?T(a,i):a):o};}),["concat","slice","filter","map","flatMap","flat"].forEach(t=>{e[t]=function(...n){let r=c(this);return u(r,L),Array.prototype[t].apply(r,n)};}),["join","toString","toLocaleString"].forEach(t=>{e[t]=function(...n){let r=c(this);return u(r,L),Array.prototype[t].apply(r,n)};}),["values","keys","entries",Symbol.iterator].forEach(t=>{e[t]=function(){let n=c(this),r=k(this);u(n,N);let i=t===Symbol.iterator?n[Symbol.iterator]():n[t]();return {next(){let{value:o,done:a}=i.next();return a?{value:o,done:a}:Array.isArray(o)?{value:o.map(s=>isObject(s)?T(s,r):s),done:a}:{value:isObject(o)?T(o,r):o,done:a}},[Symbol.iterator](){return this}}};}),e}var xe=e=>({get:(t,n,r)=>{if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;if(hasOwn(ve,n))return ve[n];let i=Reflect.get(t,n,r);return isStringNumber(n)&&u(t,n),u(t,N),isObject(i)&&!e?T(i):i},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,r,i);return hasChanged(r,o)&&(isStringNumber(n)?d(t,g.SET,[n,L,N]):d(t,g.SET,n)),a}}),at=xe(true),st=xe(false),ct={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(we,t)?we:e,t,e)}},ut={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(Le,t)&&t in e?Le:e,t,e)}},we={get(e){let t=c(this);u(t,_);let n=t.get(e);return isObject(n)&&!k(this)?T(n):n},set(e,t){let n=c(this),r=n.has(e),i=n.get(e),o=c(t);return n.set(e,o),(!r||hasChanged(i,o))&&d(n,g.SET,_),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r?d(t,g.SET,_):d(t,g.ADD,_),this},has(e){let t=c(this);u(t,_);let n=t.has(e);return !n&&isObject(e)?t.has(c(e)):n},delete(e){let t=c(this),n=t.has(e),r=t.delete(e);return !r&&isObject(e)&&(r=t.delete(c(e))),(n||r)&&d(t,g.DELETE,_),r},clear(){let e=c(this),t=e.size>0,n=e.clear();return t&&d(e,g.CLEAR,_),n},forEach(e,t){let n=c(this),r=k(this);u(n,_),n.forEach((i,o)=>{let a=r||!isObject(i)?i:T(i),s=r||!isObject(o)?o:T(o);e.call(t,a,s,this);});},[Symbol.iterator](){let e=c(this),t=k(this);u(e,_);let n=e[Symbol.iterator]();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:Array.isArray(r)?{value:r.map(o=>isObject(o)?T(o):o),done:i}:{value:isObject(r)?T(r):r,done:i}},[Symbol.iterator](){return this}}},get size(){let e=c(this);return u(e,_),e.size},keys(){let e=c(this),t=k(this);u(e,_);let n=e.keys();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:T(r),done:i}},[Symbol.iterator](){return this}}},values(){let e=c(this),t=k(this);u(e,_);let n=e.values();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:T(r),done:i}},[Symbol.iterator](){return this}}},entries(){let e=c(this),t=k(this);u(e,_);let n=e.entries();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:{value:r.map(o=>isObject(o)?T(o):o),done:i}},[Symbol.iterator](){return this}}}},Le={get(e){let t=c(this);u(t,I);let n=t.get(e);return n===void 0&&w(e)&&(n=t.get(c(e))),isObject(n)&&!k(this)?T(n):n},set(e,t){let n=c(this),r=c(e),i=n.has(r),o=n.get(r),a=c(t);return n.set(r,a),(!i||hasChanged(o,a))&&d(n,g.SET,I),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r||d(t,g.ADD,I),this},has(e){let t=c(this);u(t,I);let n=t.has(e);return !n&&w(e)&&(n=t.has(c(e))),n},delete(e){let t=c(this),n=c(e),r=t.has(n),i=t.delete(n);return (r||i)&&d(t,g.DELETE,I),i}},ft=e=>({get(t,n,r){if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;let i=Reflect.get(t,n,r),o=E(i)?i.value:i;return u(t,n),isObject(o)&&!e?T(o):o},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,c(r),i);return hasChanged(r,o)&&d(t,g.SET,n),a},deleteProperty:(t,n)=>{let r=hasOwn(t,n),i=Reflect.deleteProperty(t,n);return r&&i&&d(t,g.DELETE,n),i}});function T(e,t=false){if(!isObject(e)||w(e))return e;let n=ke.get(e);if(n)return n;let r;isArray(e)?r=t?at:st:isSet(e)||isMap(e)?r=ct:isWeakMap(e)||isWeakSet(e)?r=ut:r=ft(t);let i=new Proxy(e,r);return ke.set(e,i),i}function w(e){return !!(e&&e._IS_REACTIVE)}function D(e){return w(e)||E(e)?e:T(e)}function J(e){return w(e)||E(e)?e:T(e,true)}function k(e){return !!(e&&e._IS_SHALLOW)}var lt=e=>isObject(e)?D(e):e;var Re;Re="_IS_SIGNAL";var C=class{constructor(t,n=false){this.flag=1;this[Re]=true;this._rawValue=t,n?this._value=isObject(t)?J(t):t:this._value=isObject(t)?D(t):t,this._IS_SHALLOW=n;}get dep(){return this}get value(){let t=b;if(t&&W(this,t),this.flag&16&&this.shouldUpdate()){let r=this.subLink;r&&G(r);}return this._value}set value(t){if(E(t)&&(t=t.peek()),t=c(t),!hasChanged(this._rawValue,t))return;"_oldValue"in this||(this._oldValue=this._rawValue);let n=this.flag;this.flag=n|16,this._rawValue=t,this._IS_SHALLOW?this._value=isObject(t)?J(t):t:this._value=isObject(t)?D(t):t;let i=this.subLink;i&&j(i);}shouldUpdate(){if(this.flag&=-17,!("_oldValue"in this))return true;let t=hasChanged(this._oldValue,this._rawValue);return this._oldValue=this._rawValue,t}peek(){return this._value}set(t){this.value=t;}update(t){let n=t(this.peek());E(n)?this.value=n.peek():this.value=n;}};function pt(e){return E(e)?e:new C(e)}function dt(e){return E(e)&&(e=e.peek()),new C(e,true)}function E(e){return !!e&&!!e._IS_SIGNAL}var z=new Set,ae=new Set,ht=Promise.resolve(),se=false;function Ie(e){return e?new Promise((t,n)=>{queueMicrotask(()=>{try{e(),t();}catch(r){n(r);}});}):ht}function R(e){z.add(e),Ce();}function Ce(){se||(se=true,Ie(ce));}function Ae(e){ae.add(e),Ce();}function ce(){for(se=false,Tt();z.size>0;){let e=Array.from(z);z.clear();for(let t of e)try{t();}catch(n){}}}function Tt(){let e=Array.from(ae);ae.clear();for(let t of e)try{t();}catch(n){}}function Ne(e,t){switch(t){case "sync":return ()=>e();case "pre":return ()=>Ae(e);case "post":return ()=>R(e);default:return ()=>R(e)}}var U=0;function X(e){Ve();try{return e()}finally{Pe();}}function Ve(){U++;}function Pe(){U--,U===0&&ce();}function ue(){return U>0}function Et(){return U}var Ge;Ge="_IS_EFFECT";var fe=class{constructor(t,n){this.flag=18;this[Ge]=true;this._active=true;this.fn=t,n&&(this.scheduler=n.flush||n.scheduler,this.onStop=n.onStop,this.onTrack=n.onTrack,this.onTrigger=n.onTrigger);}get active(){return this._active}get dirty(){let t=this.flag;if(t&16)return true;if(t&32){if(this.depLink&&F(this.depLink,this))return this.flag=t&-33|16,true;this.flag=t&-33;}return false}pause(){this.flag|=256;}resume(){let n=this.flag&-257;this.flag=n;let r=(n&16)!==0,i=(n&32)!==0;(r||i)&&this.notify();}run(){if(!this._active)return this.fn();let t=this.flag;this.flag=t&-17|1024;let n=q(this);try{return this.fn()}catch(r){throw this.flag|=16,r}finally{this.flag&=-1025,B(this,n);}}getJob(){return this._job||(this._job=()=>this.run()),this._job}notify(){let t=this.flag;!this._active||t&1296||(this.flag=t|16,this.scheduler?isFunction(this.scheduler)?this.scheduler(this):Ne(()=>this.run(),this.scheduler)():ue()?R(this.getJob()):this.run());}stop(){if(!this._active)return;this._active=false;let t=this.depLink;for(;t;)t=P(t,this);let n=this.subLink;for(;n;)n=P(n);this._job=void 0,this.depLinkTail=void 0,this.subLinkTail=void 0,this.onStop&&this.onStop();}};function Z(e,t){let n=new fe(e,t);try{n.run();}catch(i){throw n.stop(),i}let r=()=>n.run();return r.effect=n,r.stop=()=>n.stop(),r}function St(e){e.effect.stop();}function _t(e){return !!(e&&e._IS_EFFECT)}function mt(e,t,n){let r=t;return Z(()=>{r=e(r);},n)}var Y=Symbol("computed-no-value"),Oe;Oe="_IS_COMPUTED";var ee=class{constructor(t,n,r,i){this.flag=17;this[Oe]=true;this._value=Y;this.getter=t,this.setter=n,this.onTrack=r,this.onTrigger=i,this.flag|=16;}get value(){b&&W(this,b);let t=this.flag,n=this._value!==Y;return n&&!(t&48)?this._value:!n||t&16?(this.recompute(),this._value):(t&32&&(this.depLink&&F(this.depLink,this)?this.recompute():this.flag=t&-33),this._value)}set value(t){this.setter&&this.setter(t);}peek(){return this._value===Y&&this.recompute(),this._value}recompute(){let t=this._value,n=t!==Y,r=q(this);try{let i=this.getter(),o=this.flag,a=this.subLink,s=-49;!n||hasChanged(t,i)?(this._value=i,this.flag=o&s,a&&re(a)):this.flag=o&s;}catch(i){let o=-49;throw this.flag&=o,this.flag|=16,i}finally{B(this,r);}}shouldUpdate(){let t=this._value!==Y,n=this._value;return this.recompute(),t?hasChanged(this._value,n):true}};function le(e){if(O(e))return e;if(!e)throw new Error("[Computed] Invalid argument: computed() requires a getter function or options object.");if(isFunction(e))return new ee(e);if(isPlainObject(e)){let{get:t,set:n,onTrack:r,onTrigger:i}=e;if(!t)throw new Error(`[Computed] Invalid options: getter function is required.
|
|
7
7
|
Usage: computed({ get: () => value, set: (v) => { ... } })`);if(!isFunction(t))throw new TypeError(`[Computed] Invalid options: getter must be a function.
|
|
8
|
-
Received: ${typeof t}`);return new
|
|
9
|
-
Received: ${typeof e}`)}function
|
|
8
|
+
Received: ${typeof t}`);return new ee(t,n,r,i)}throw new Error(`[Computed] Invalid argument: expected a function or options object.
|
|
9
|
+
Received: ${typeof e}`)}function O(e){return !!e&&!!e._IS_COMPUTED}function bt(e){let{state:t,getters:n,actions:r}=e,i=M({},t),o=D(t),a=new Set,s=new Set,h=f=>{a.forEach(v=>v(f)),s.forEach(v=>v(f));},S={patch$(f){X(()=>{Object.assign(o,f);}),h(o);},subscribe$(f){a.add(f);},unsubscribe$(f){a.delete(f);},onAction$(f){s.add(f);},reset$(){X(()=>{Object.assign(o,i);}),h(o);}},p=M(_e(M({},o),{state:o}),S);if(n)for(let f in n){let v=n[f];if(v){Object.defineProperty(p,f,{get(){return le(()=>v.call(p,o)).value},enumerable:true,configurable:true});}}if(r)for(let f in r){let v=r[f];v&&(p[f]=(...he)=>{let Te=v.apply(o,he);return s.forEach(Ee=>Ee(o)),Te});}return p}function kt(e){let t=new e,n=Object.create(null),r={},i={};return Object.getOwnPropertyNames(t).forEach(o=>{n[o]=t[o];}),Object.getOwnPropertyNames(e.prototype).forEach(o=>{let a=Object.getOwnPropertyDescriptor(e.prototype,o);a&&(typeof a.get=="function"?r[o]=function(){return a.get.call(this)}:typeof a.value=="function"&&o!=="constructor"&&(i[o]=function(...s){return a.value.apply(this,s)}));}),{state:n,getters:r,actions:i}}function vt(e){return ()=>{let t;typeof e=="function"?t=kt(e):t=e;let n=bt(t);return typeof e=="function"&&Object.keys(t.actions||{}).forEach(r=>{n[r]=t.actions[r].bind(n);}),n}}var Me,je,te=class extends(je=C,Me="_IS_REF",je){constructor(n){super(n,true);this[Me]=true;}get value(){return u(this,ne),this._value}set value(n){E(n)&&(n=n.value),pe(n)&&(n=n.value),hasChanged(this._value,n)&&(this._value=n,this.subLink&&G(this.subLink),d(this,"SET",ne));}};function Lt(e=void 0){return pe(e)?e:E(e)?new te(e.peek()):new te(e)}function pe(e){return !!e&&!!e._IS_REF}var We={},Fe=new WeakMap;function x(e,t=new Set){if(!isObject(e)||t.has(e))return e;if(t.add(e),E(e)||O(e))return x(e.value,t);if(Array.isArray(e))for(let n of e)x(n,t);else isMap(e)?(e.forEach(n=>{x(n,t);}),e.keys(),e.values()):isSet(e)?(e.forEach(n=>{x(n,t);}),e.values()):Object.keys(e).forEach(n=>{x(e[n],t);});return e}function A(e){if(!isObject(e))return e;if(Array.isArray(e))return e.map(n=>A(n));if(isMap(e)){let n=new Map;return e.forEach((r,i)=>{n.set(i,A(r));}),n}if(isSet(e)){let n=new Set;return e.forEach(r=>{n.add(A(r));}),n}let t={};for(let n of Object.keys(e))t[n]=A(e[n]);return t}function Dt(e){return Array.isArray(e)?()=>e.map(t=>E(t)||O(t)?t.value:w(t)?x(t):isFunction(t)?t():t):isFunction(e)?e:E(e)?()=>e.value:isObject(e)&&"value"in e?()=>e.value:w(e)?()=>x(e):()=>e}function Rt(e,t,n={}){let {immediate:r=false,deep:i=false}=n,o=We,s=Dt(e),h=()=>{let p=S.effect;if(!p.run)return;let f=p.run();hasChanged(f,o)&&(t(f,o===We?void 0:o),o=A(f));},S=Z(()=>{let p=s();return i&&x(p),p},{scheduler:()=>R(h)});return r?h():o=A(S.effect.run()),()=>{S.stop();let p=Fe.get(S.effect);p&&(p.forEach(f=>f()),Fe.delete(S.effect));}}export{g as TriggerOpTypes,X as batch,le as computed,vt as createStore,Z as effect,Pe as endBatch,Et as getBatchDepth,ue as isBatching,O as isComputed,_t as isEffect,w as isReactive,pe as isRef,k as isShallow,E as isSignal,mt as memoEffect,Ie as nextTick,R as queueJob,Ae as queuePreFlushCb,D as reactive,Lt as ref,J as shallowReactive,dt as shallowSignal,pt as signal,Ve as startBatch,St as stop,c as toRaw,lt as toReactive,d as trigger,Xe as untrack,Rt as watch};//# sourceMappingURL=signals.esm.js.map
|
|
10
10
|
//# sourceMappingURL=signals.esm.js.map
|