@claude-sessions/web 0.3.1 → 0.3.3
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/build/client/_app/immutable/assets/0.B2yA_bPQ.css +1 -0
- package/build/client/_app/immutable/assets/0.B2yA_bPQ.css.br +0 -0
- package/build/client/_app/immutable/assets/0.B2yA_bPQ.css.gz +0 -0
- package/build/client/_app/immutable/assets/Toast.CQSY_S6M.css +1 -0
- package/build/client/_app/immutable/assets/Toast.CQSY_S6M.css.br +0 -0
- package/build/client/_app/immutable/assets/Toast.CQSY_S6M.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cu54-bNJ.js → Bapp9IYO.js} +1 -1
- package/build/client/_app/immutable/chunks/Bapp9IYO.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bapp9IYO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzTxzCCu.js +1 -0
- package/build/client/_app/immutable/chunks/BzTxzCCu.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzTxzCCu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CUTXPORg.js +1 -0
- package/build/client/_app/immutable/chunks/CUTXPORg.js.br +0 -0
- package/build/client/_app/immutable/chunks/CUTXPORg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{byP5FZXC.js → CzuOkoRV.js} +1 -1
- package/build/client/_app/immutable/chunks/CzuOkoRV.js.br +0 -0
- package/build/client/_app/immutable/chunks/CzuOkoRV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHCLGQT_.js +1 -0
- package/build/client/_app/immutable/chunks/DHCLGQT_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DHCLGQT_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DUNnSDh5.js +66 -0
- package/build/client/_app/immutable/chunks/DUNnSDh5.js.br +0 -0
- package/build/client/_app/immutable/chunks/DUNnSDh5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Di6YbRZt.js +2 -0
- package/build/client/_app/immutable/chunks/Di6YbRZt.js.br +0 -0
- package/build/client/_app/immutable/chunks/Di6YbRZt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B0nKMdd0.js → HouQR_BO.js} +1 -1
- package/build/client/_app/immutable/chunks/HouQR_BO.js.br +0 -0
- package/build/client/_app/immutable/chunks/HouQR_BO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/IVrlObbe.js +25 -0
- package/build/client/_app/immutable/chunks/IVrlObbe.js.br +0 -0
- package/build/client/_app/immutable/chunks/IVrlObbe.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Dj3HhwA8.js +2 -0
- package/build/client/_app/immutable/entry/app.Dj3HhwA8.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Dj3HhwA8.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DhjCZi9N.js +1 -0
- package/build/client/_app/immutable/entry/start.DhjCZi9N.js.br +2 -0
- package/build/client/_app/immutable/entry/start.DhjCZi9N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CAbelkQT.js +1 -0
- package/build/client/_app/immutable/nodes/0.CAbelkQT.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CAbelkQT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.Bm6PSLR5.js → 1.DYaH4O8k.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DYaH4O8k.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DYaH4O8k.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.VvV6w9cZ.js +5 -0
- package/build/client/_app/immutable/nodes/2.VvV6w9cZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.VvV6w9cZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.D_uYLiIh.js +4 -0
- package/build/client/_app/immutable/nodes/3.D_uYLiIh.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.D_uYLiIh.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-CWHakFRJ.js +17 -0
- package/build/server/chunks/{0-DpMV9SJd.js.map → 0-CWHakFRJ.js.map} +1 -1
- package/build/server/chunks/1-NzhdkXbT.js +9 -0
- package/build/server/chunks/{1-D9TH1iwG.js.map → 1-NzhdkXbT.js.map} +1 -1
- package/build/server/chunks/2-DrysGJ9C.js +9 -0
- package/build/server/chunks/2-DrysGJ9C.js.map +1 -0
- package/build/server/chunks/3-D4BIPCPc.js +9 -0
- package/build/server/chunks/3-D4BIPCPc.js.map +1 -0
- package/build/server/chunks/Toast-CTZhGpnd.js +45 -0
- package/build/server/chunks/Toast-CTZhGpnd.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-BsIPSbGo.js → _layout.svelte-D9DyGgZM.js} +12 -5
- package/build/server/chunks/_layout.svelte-D9DyGgZM.js.map +1 -0
- package/build/server/chunks/_page.svelte-Bgd-L7N_.js +1227 -0
- package/build/server/chunks/_page.svelte-Bgd-L7N_.js.map +1 -0
- package/build/server/chunks/_page.svelte-C7sseaTW.js +56 -0
- package/build/server/chunks/_page.svelte-C7sseaTW.js.map +1 -0
- package/build/server/chunks/{_server.ts-DiZSiHH2.js → _server.ts-5NUxXdCt.js} +2 -2
- package/build/server/chunks/{_server.ts-DiZSiHH2.js.map → _server.ts-5NUxXdCt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DU60SaEW.js → _server.ts-BIooeFZO.js} +2 -2
- package/build/server/chunks/{_server.ts-DU60SaEW.js.map → _server.ts-BIooeFZO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-SZ7xXULI.js → _server.ts-BJPcYX_q.js} +2 -2
- package/build/server/chunks/{_server.ts-SZ7xXULI.js.map → _server.ts-BJPcYX_q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ddoxzxdz.js → _server.ts-BnJ4zX_o.js} +2 -2
- package/build/server/chunks/{_server.ts-Ddoxzxdz.js.map → _server.ts-BnJ4zX_o.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CkPJa8rH.js → _server.ts-Btk0wdCV.js} +2 -2
- package/build/server/chunks/{_server.ts-CkPJa8rH.js.map → _server.ts-Btk0wdCV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DFwI1irc.js → _server.ts-CLGsav13.js} +2 -2
- package/build/server/chunks/{_server.ts-DFwI1irc.js.map → _server.ts-CLGsav13.js.map} +1 -1
- package/build/server/chunks/{_server.ts-_I5t7nvC.js → _server.ts-DO-eF-5A.js} +2 -2
- package/build/server/chunks/{_server.ts-_I5t7nvC.js.map → _server.ts-DO-eF-5A.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BfTOQnQK.js → _server.ts-DVuHX36m.js} +2 -2
- package/build/server/chunks/{_server.ts-BfTOQnQK.js.map → _server.ts-DVuHX36m.js.map} +1 -1
- package/build/server/chunks/_server.ts-DZQssvoI.js +19 -0
- package/build/server/chunks/_server.ts-DZQssvoI.js.map +1 -0
- package/build/server/chunks/_server.ts-DbJR6Y-D.js +95 -0
- package/build/server/chunks/_server.ts-DbJR6Y-D.js.map +1 -0
- package/build/server/chunks/{_server.ts-DKVHHXfU.js → _server.ts-Dcp7jbD9.js} +2 -2
- package/build/server/chunks/{_server.ts-DKVHHXfU.js.map → _server.ts-Dcp7jbD9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CZpt6s0c.js → _server.ts-Dga9Kz2m.js} +2 -2
- package/build/server/chunks/{_server.ts-CZpt6s0c.js.map → _server.ts-Dga9Kz2m.js.map} +1 -1
- package/build/server/chunks/{_server.ts-6PvKvlXG.js → _server.ts-DwIpb4Af.js} +2 -2
- package/build/server/chunks/{_server.ts-6PvKvlXG.js.map → _server.ts-DwIpb4Af.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dq5S_aG6.js → _server.ts-Dya9ngQs.js} +2 -2
- package/build/server/chunks/{_server.ts-Dq5S_aG6.js.map → _server.ts-Dya9ngQs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cz-ezTau.js → _server.ts-nSWW3v6K.js} +2 -2
- package/build/server/chunks/{_server.ts-Cz-ezTau.js.map → _server.ts-nSWW3v6K.js.map} +1 -1
- package/build/server/chunks/config-DKyxRWWg.js +20 -0
- package/build/server/chunks/config-DKyxRWWg.js.map +1 -0
- package/build/server/chunks/{error.svelte-CxBB_UKu.js → error.svelte-DNhMU_b6.js} +4 -4
- package/build/server/chunks/{error.svelte-CxBB_UKu.js.map → error.svelte-DNhMU_b6.js.map} +1 -1
- package/build/server/chunks/{exports-BzHwARwz.js → exports-CgQJUv15.js} +2 -90
- package/build/server/chunks/exports-CgQJUv15.js.map +1 -0
- package/build/server/chunks/index-CMS8WiSi.js +1931 -0
- package/build/server/chunks/index-CMS8WiSi.js.map +1 -0
- package/build/server/chunks/{index-CMvE0dm6.js → index2-gtN4acH3.js} +44 -42
- package/build/server/chunks/index2-gtN4acH3.js.map +1 -0
- package/build/server/chunks/{index2-CWkjuG0Y.js → index3-DVZVsHMK.js} +71 -25
- package/build/server/chunks/index3-DVZVsHMK.js.map +1 -0
- package/build/server/chunks/{index3-NDyeileA.js → index4-Cm9gf6zG.js} +3 -3
- package/build/server/chunks/index4-Cm9gf6zG.js.map +1 -0
- package/build/server/index.js +26 -1694
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +26 -19
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/assets/0.DHKfs7JC.css +0 -1
- package/build/client/_app/immutable/assets/0.DHKfs7JC.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DHKfs7JC.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B0nKMdd0.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0nKMdd0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BK2z9s18.js +0 -1
- package/build/client/_app/immutable/chunks/BK2z9s18.js.br +0 -0
- package/build/client/_app/immutable/chunks/BK2z9s18.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bk8SkFX_.js +0 -1
- package/build/client/_app/immutable/chunks/Bk8SkFX_.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bk8SkFX_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CSn8t8Ix.js +0 -2
- package/build/client/_app/immutable/chunks/CSn8t8Ix.js.br +0 -0
- package/build/client/_app/immutable/chunks/CSn8t8Ix.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cu54-bNJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cu54-bNJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvQL1cTO.js +0 -2
- package/build/client/_app/immutable/chunks/DvQL1cTO.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvQL1cTO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QKEgeM73.js +0 -94
- package/build/client/_app/immutable/chunks/QKEgeM73.js.br +0 -0
- package/build/client/_app/immutable/chunks/QKEgeM73.js.gz +0 -0
- package/build/client/_app/immutable/chunks/byP5FZXC.js.br +0 -0
- package/build/client/_app/immutable/chunks/byP5FZXC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/elvo9mAG.js +0 -1
- package/build/client/_app/immutable/chunks/elvo9mAG.js.br +0 -0
- package/build/client/_app/immutable/chunks/elvo9mAG.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DDSmw1G2.js +0 -2
- package/build/client/_app/immutable/entry/app.DDSmw1G2.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DDSmw1G2.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BBRU_Ybm.js +0 -1
- package/build/client/_app/immutable/entry/start.BBRU_Ybm.js.br +0 -2
- package/build/client/_app/immutable/entry/start.BBRU_Ybm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.C3TdraPu.js +0 -1
- package/build/client/_app/immutable/nodes/0.C3TdraPu.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C3TdraPu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Bm6PSLR5.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.Bm6PSLR5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DWRsPVe4.js +0 -6
- package/build/client/_app/immutable/nodes/2.DWRsPVe4.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DWRsPVe4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DMWHz6-z.js +0 -5
- package/build/client/_app/immutable/nodes/3.DMWHz6-z.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DMWHz6-z.js.gz +0 -0
- package/build/server/chunks/0-DpMV9SJd.js +0 -17
- package/build/server/chunks/1-D9TH1iwG.js +0 -9
- package/build/server/chunks/2-tlqE1QP7.js +0 -9
- package/build/server/chunks/2-tlqE1QP7.js.map +0 -1
- package/build/server/chunks/3-BGGlUEp-.js +0 -9
- package/build/server/chunks/3-BGGlUEp-.js.map +0 -1
- package/build/server/chunks/_layout.svelte-BsIPSbGo.js.map +0 -1
- package/build/server/chunks/_page.svelte-DEQJ0oPW.js +0 -280
- package/build/server/chunks/_page.svelte-DEQJ0oPW.js.map +0 -1
- package/build/server/chunks/_page.svelte-DfZkatW6.js +0 -35
- package/build/server/chunks/_page.svelte-DfZkatW6.js.map +0 -1
- package/build/server/chunks/_server.ts-g_2jTmWg.js +0 -8
- package/build/server/chunks/_server.ts-g_2jTmWg.js.map +0 -1
- package/build/server/chunks/context-R2425nfV.js +0 -64
- package/build/server/chunks/context-R2425nfV.js.map +0 -1
- package/build/server/chunks/exports-BzHwARwz.js.map +0 -1
- package/build/server/chunks/format-DgNjDoEq.js +0 -13
- package/build/server/chunks/format-DgNjDoEq.js.map +0 -1
- package/build/server/chunks/index-CMvE0dm6.js.map +0 -1
- package/build/server/chunks/index2-CWkjuG0Y.js.map +0 -1
- package/build/server/chunks/index3-NDyeileA.js.map +0 -1
|
@@ -0,0 +1,1931 @@
|
|
|
1
|
+
const BROWSER = false;
|
|
2
|
+
|
|
3
|
+
var is_array = Array.isArray;
|
|
4
|
+
var index_of = Array.prototype.indexOf;
|
|
5
|
+
var array_from = Array.from;
|
|
6
|
+
var define_property = Object.defineProperty;
|
|
7
|
+
var get_descriptor = Object.getOwnPropertyDescriptor;
|
|
8
|
+
var object_prototype = Object.prototype;
|
|
9
|
+
var array_prototype = Array.prototype;
|
|
10
|
+
var get_prototype_of = Object.getPrototypeOf;
|
|
11
|
+
var is_extensible = Object.isExtensible;
|
|
12
|
+
const noop = () => {
|
|
13
|
+
};
|
|
14
|
+
function is_promise(value) {
|
|
15
|
+
return typeof value?.then === "function";
|
|
16
|
+
}
|
|
17
|
+
function run_all(arr) {
|
|
18
|
+
for (var i = 0; i < arr.length; i++) {
|
|
19
|
+
arr[i]();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function deferred() {
|
|
23
|
+
var resolve;
|
|
24
|
+
var reject;
|
|
25
|
+
var promise = new Promise((res, rej) => {
|
|
26
|
+
resolve = res;
|
|
27
|
+
reject = rej;
|
|
28
|
+
});
|
|
29
|
+
return { promise, resolve, reject };
|
|
30
|
+
}
|
|
31
|
+
function equals(value) {
|
|
32
|
+
return value === this.v;
|
|
33
|
+
}
|
|
34
|
+
function safe_not_equal(a, b) {
|
|
35
|
+
return a != a ? b == b : a !== b || a !== null && typeof a === "object" || typeof a === "function";
|
|
36
|
+
}
|
|
37
|
+
function safe_equals(value) {
|
|
38
|
+
return !safe_not_equal(value, this.v);
|
|
39
|
+
}
|
|
40
|
+
const DERIVED = 1 << 1;
|
|
41
|
+
const EFFECT = 1 << 2;
|
|
42
|
+
const RENDER_EFFECT = 1 << 3;
|
|
43
|
+
const MANAGED_EFFECT = 1 << 24;
|
|
44
|
+
const BLOCK_EFFECT = 1 << 4;
|
|
45
|
+
const BRANCH_EFFECT = 1 << 5;
|
|
46
|
+
const ROOT_EFFECT = 1 << 6;
|
|
47
|
+
const BOUNDARY_EFFECT = 1 << 7;
|
|
48
|
+
const CONNECTED = 1 << 9;
|
|
49
|
+
const CLEAN = 1 << 10;
|
|
50
|
+
const DIRTY = 1 << 11;
|
|
51
|
+
const MAYBE_DIRTY = 1 << 12;
|
|
52
|
+
const INERT = 1 << 13;
|
|
53
|
+
const DESTROYED = 1 << 14;
|
|
54
|
+
const EFFECT_RAN = 1 << 15;
|
|
55
|
+
const EFFECT_TRANSPARENT = 1 << 16;
|
|
56
|
+
const EAGER_EFFECT = 1 << 17;
|
|
57
|
+
const HEAD_EFFECT = 1 << 18;
|
|
58
|
+
const EFFECT_PRESERVED = 1 << 19;
|
|
59
|
+
const USER_EFFECT = 1 << 20;
|
|
60
|
+
const WAS_MARKED = 1 << 15;
|
|
61
|
+
const REACTION_IS_UPDATING = 1 << 21;
|
|
62
|
+
const ASYNC = 1 << 22;
|
|
63
|
+
const ERROR_VALUE = 1 << 23;
|
|
64
|
+
const STATE_SYMBOL = Symbol("$state");
|
|
65
|
+
const LEGACY_PROPS = Symbol("legacy props");
|
|
66
|
+
const STALE_REACTION = new class StaleReactionError extends Error {
|
|
67
|
+
name = "StaleReactionError";
|
|
68
|
+
message = "The reaction that called `getAbortSignal()` was re-run or destroyed";
|
|
69
|
+
}();
|
|
70
|
+
const COMMENT_NODE = 8;
|
|
71
|
+
function lifecycle_outside_component(name) {
|
|
72
|
+
{
|
|
73
|
+
throw new Error(`https://svelte.dev/e/lifecycle_outside_component`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function effect_update_depth_exceeded() {
|
|
77
|
+
{
|
|
78
|
+
throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function hydration_failed() {
|
|
82
|
+
{
|
|
83
|
+
throw new Error(`https://svelte.dev/e/hydration_failed`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function state_descriptors_fixed() {
|
|
87
|
+
{
|
|
88
|
+
throw new Error(`https://svelte.dev/e/state_descriptors_fixed`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function state_prototype_fixed() {
|
|
92
|
+
{
|
|
93
|
+
throw new Error(`https://svelte.dev/e/state_prototype_fixed`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function state_unsafe_mutation() {
|
|
97
|
+
{
|
|
98
|
+
throw new Error(`https://svelte.dev/e/state_unsafe_mutation`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function svelte_boundary_reset_onerror() {
|
|
102
|
+
{
|
|
103
|
+
throw new Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const HYDRATION_START = "[";
|
|
107
|
+
const HYDRATION_START_ELSE = "[!";
|
|
108
|
+
const HYDRATION_END = "]";
|
|
109
|
+
const HYDRATION_ERROR = {};
|
|
110
|
+
const ELEMENT_IS_NAMESPACED = 1;
|
|
111
|
+
const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;
|
|
112
|
+
const ELEMENT_IS_INPUT = 1 << 2;
|
|
113
|
+
const UNINITIALIZED = Symbol();
|
|
114
|
+
let tracing_mode_flag = false;
|
|
115
|
+
let component_context = null;
|
|
116
|
+
function set_component_context(context) {
|
|
117
|
+
component_context = context;
|
|
118
|
+
}
|
|
119
|
+
function push$1(props, runes = false, fn) {
|
|
120
|
+
component_context = {
|
|
121
|
+
p: component_context,
|
|
122
|
+
i: false,
|
|
123
|
+
c: null,
|
|
124
|
+
e: null,
|
|
125
|
+
s: props,
|
|
126
|
+
x: null,
|
|
127
|
+
l: null
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function pop$1(component) {
|
|
131
|
+
var context = (
|
|
132
|
+
/** @type {ComponentContext} */
|
|
133
|
+
component_context
|
|
134
|
+
);
|
|
135
|
+
var effects = context.e;
|
|
136
|
+
if (effects !== null) {
|
|
137
|
+
context.e = null;
|
|
138
|
+
for (var fn of effects) {
|
|
139
|
+
create_user_effect(fn);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
context.i = true;
|
|
143
|
+
component_context = context.p;
|
|
144
|
+
return (
|
|
145
|
+
/** @type {T} */
|
|
146
|
+
{}
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
function is_runes() {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
let micro_tasks = [];
|
|
153
|
+
function run_micro_tasks() {
|
|
154
|
+
var tasks = micro_tasks;
|
|
155
|
+
micro_tasks = [];
|
|
156
|
+
run_all(tasks);
|
|
157
|
+
}
|
|
158
|
+
function queue_micro_task(fn) {
|
|
159
|
+
if (micro_tasks.length === 0 && !is_flushing_sync) {
|
|
160
|
+
var tasks = micro_tasks;
|
|
161
|
+
queueMicrotask(() => {
|
|
162
|
+
if (tasks === micro_tasks) run_micro_tasks();
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
micro_tasks.push(fn);
|
|
166
|
+
}
|
|
167
|
+
function flush_tasks() {
|
|
168
|
+
while (micro_tasks.length > 0) {
|
|
169
|
+
run_micro_tasks();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function handle_error(error) {
|
|
173
|
+
var effect = active_effect;
|
|
174
|
+
if (effect === null) {
|
|
175
|
+
active_reaction.f |= ERROR_VALUE;
|
|
176
|
+
return error;
|
|
177
|
+
}
|
|
178
|
+
if ((effect.f & EFFECT_RAN) === 0) {
|
|
179
|
+
if ((effect.f & BOUNDARY_EFFECT) === 0) {
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
effect.b.error(error);
|
|
183
|
+
} else {
|
|
184
|
+
invoke_error_boundary(error, effect);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function invoke_error_boundary(error, effect) {
|
|
188
|
+
while (effect !== null) {
|
|
189
|
+
if ((effect.f & BOUNDARY_EFFECT) !== 0) {
|
|
190
|
+
try {
|
|
191
|
+
effect.b.error(error);
|
|
192
|
+
return;
|
|
193
|
+
} catch (e) {
|
|
194
|
+
error = e;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
effect = effect.parent;
|
|
198
|
+
}
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
const batches = /* @__PURE__ */ new Set();
|
|
202
|
+
let current_batch = null;
|
|
203
|
+
let batch_values = null;
|
|
204
|
+
let queued_root_effects = [];
|
|
205
|
+
let last_scheduled_effect = null;
|
|
206
|
+
let is_flushing = false;
|
|
207
|
+
let is_flushing_sync = false;
|
|
208
|
+
class Batch {
|
|
209
|
+
committed = false;
|
|
210
|
+
/**
|
|
211
|
+
* The current values of any sources that are updated in this batch
|
|
212
|
+
* They keys of this map are identical to `this.#previous`
|
|
213
|
+
* @type {Map<Source, any>}
|
|
214
|
+
*/
|
|
215
|
+
current = /* @__PURE__ */ new Map();
|
|
216
|
+
/**
|
|
217
|
+
* The values of any sources that are updated in this batch _before_ those updates took place.
|
|
218
|
+
* They keys of this map are identical to `this.#current`
|
|
219
|
+
* @type {Map<Source, any>}
|
|
220
|
+
*/
|
|
221
|
+
previous = /* @__PURE__ */ new Map();
|
|
222
|
+
/**
|
|
223
|
+
* When the batch is committed (and the DOM is updated), we need to remove old branches
|
|
224
|
+
* and append new ones by calling the functions added inside (if/each/key/etc) blocks
|
|
225
|
+
* @type {Set<() => void>}
|
|
226
|
+
*/
|
|
227
|
+
#commit_callbacks = /* @__PURE__ */ new Set();
|
|
228
|
+
/**
|
|
229
|
+
* If a fork is discarded, we need to destroy any effects that are no longer needed
|
|
230
|
+
* @type {Set<(batch: Batch) => void>}
|
|
231
|
+
*/
|
|
232
|
+
#discard_callbacks = /* @__PURE__ */ new Set();
|
|
233
|
+
/**
|
|
234
|
+
* The number of async effects that are currently in flight
|
|
235
|
+
*/
|
|
236
|
+
#pending = 0;
|
|
237
|
+
/**
|
|
238
|
+
* The number of async effects that are currently in flight, _not_ inside a pending boundary
|
|
239
|
+
*/
|
|
240
|
+
#blocking_pending = 0;
|
|
241
|
+
/**
|
|
242
|
+
* A deferred that resolves when the batch is committed, used with `settled()`
|
|
243
|
+
* TODO replace with Promise.withResolvers once supported widely enough
|
|
244
|
+
* @type {{ promise: Promise<void>, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null}
|
|
245
|
+
*/
|
|
246
|
+
#deferred = null;
|
|
247
|
+
/**
|
|
248
|
+
* Deferred effects (which run after async work has completed) that are DIRTY
|
|
249
|
+
* @type {Set<Effect>}
|
|
250
|
+
*/
|
|
251
|
+
#dirty_effects = /* @__PURE__ */ new Set();
|
|
252
|
+
/**
|
|
253
|
+
* Deferred effects that are MAYBE_DIRTY
|
|
254
|
+
* @type {Set<Effect>}
|
|
255
|
+
*/
|
|
256
|
+
#maybe_dirty_effects = /* @__PURE__ */ new Set();
|
|
257
|
+
/**
|
|
258
|
+
* A set of branches that still exist, but will be destroyed when this batch
|
|
259
|
+
* is committed — we skip over these during `process`
|
|
260
|
+
* @type {Set<Effect>}
|
|
261
|
+
*/
|
|
262
|
+
skipped_effects = /* @__PURE__ */ new Set();
|
|
263
|
+
is_fork = false;
|
|
264
|
+
is_deferred() {
|
|
265
|
+
return this.is_fork || this.#blocking_pending > 0;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
*
|
|
269
|
+
* @param {Effect[]} root_effects
|
|
270
|
+
*/
|
|
271
|
+
process(root_effects) {
|
|
272
|
+
queued_root_effects = [];
|
|
273
|
+
this.apply();
|
|
274
|
+
var target = {
|
|
275
|
+
parent: null,
|
|
276
|
+
effect: null,
|
|
277
|
+
effects: [],
|
|
278
|
+
render_effects: []
|
|
279
|
+
};
|
|
280
|
+
for (const root of root_effects) {
|
|
281
|
+
this.#traverse_effect_tree(root, target);
|
|
282
|
+
}
|
|
283
|
+
if (!this.is_fork) {
|
|
284
|
+
this.#resolve();
|
|
285
|
+
}
|
|
286
|
+
if (this.is_deferred()) {
|
|
287
|
+
this.#defer_effects(target.effects);
|
|
288
|
+
this.#defer_effects(target.render_effects);
|
|
289
|
+
} else {
|
|
290
|
+
current_batch = null;
|
|
291
|
+
flush_queued_effects(target.render_effects);
|
|
292
|
+
flush_queued_effects(target.effects);
|
|
293
|
+
this.#deferred?.resolve();
|
|
294
|
+
}
|
|
295
|
+
batch_values = null;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Traverse the effect tree, executing effects or stashing
|
|
299
|
+
* them for later execution as appropriate
|
|
300
|
+
* @param {Effect} root
|
|
301
|
+
* @param {EffectTarget} target
|
|
302
|
+
*/
|
|
303
|
+
#traverse_effect_tree(root, target) {
|
|
304
|
+
root.f ^= CLEAN;
|
|
305
|
+
var effect = root.first;
|
|
306
|
+
while (effect !== null) {
|
|
307
|
+
var flags = effect.f;
|
|
308
|
+
var is_branch = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;
|
|
309
|
+
var is_skippable_branch = is_branch && (flags & CLEAN) !== 0;
|
|
310
|
+
var skip = is_skippable_branch || (flags & INERT) !== 0 || this.skipped_effects.has(effect);
|
|
311
|
+
if ((effect.f & BOUNDARY_EFFECT) !== 0 && effect.b?.is_pending()) {
|
|
312
|
+
target = {
|
|
313
|
+
parent: target,
|
|
314
|
+
effect,
|
|
315
|
+
effects: [],
|
|
316
|
+
render_effects: []
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
if (!skip && effect.fn !== null) {
|
|
320
|
+
if (is_branch) {
|
|
321
|
+
effect.f ^= CLEAN;
|
|
322
|
+
} else if ((flags & EFFECT) !== 0) {
|
|
323
|
+
target.effects.push(effect);
|
|
324
|
+
} else if (is_dirty(effect)) {
|
|
325
|
+
if ((effect.f & BLOCK_EFFECT) !== 0) this.#dirty_effects.add(effect);
|
|
326
|
+
update_effect(effect);
|
|
327
|
+
}
|
|
328
|
+
var child = effect.first;
|
|
329
|
+
if (child !== null) {
|
|
330
|
+
effect = child;
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
var parent = effect.parent;
|
|
335
|
+
effect = effect.next;
|
|
336
|
+
while (effect === null && parent !== null) {
|
|
337
|
+
if (parent === target.effect) {
|
|
338
|
+
this.#defer_effects(target.effects);
|
|
339
|
+
this.#defer_effects(target.render_effects);
|
|
340
|
+
target = /** @type {EffectTarget} */
|
|
341
|
+
target.parent;
|
|
342
|
+
}
|
|
343
|
+
effect = parent.next;
|
|
344
|
+
parent = parent.parent;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* @param {Effect[]} effects
|
|
350
|
+
*/
|
|
351
|
+
#defer_effects(effects) {
|
|
352
|
+
for (const e of effects) {
|
|
353
|
+
if ((e.f & DIRTY) !== 0) {
|
|
354
|
+
this.#dirty_effects.add(e);
|
|
355
|
+
} else if ((e.f & MAYBE_DIRTY) !== 0) {
|
|
356
|
+
this.#maybe_dirty_effects.add(e);
|
|
357
|
+
}
|
|
358
|
+
this.#clear_marked(e.deps);
|
|
359
|
+
set_signal_status(e, CLEAN);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* @param {Value[] | null} deps
|
|
364
|
+
*/
|
|
365
|
+
#clear_marked(deps) {
|
|
366
|
+
if (deps === null) return;
|
|
367
|
+
for (const dep of deps) {
|
|
368
|
+
if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) {
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
dep.f ^= WAS_MARKED;
|
|
372
|
+
this.#clear_marked(
|
|
373
|
+
/** @type {Derived} */
|
|
374
|
+
dep.deps
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Associate a change to a given source with the current
|
|
380
|
+
* batch, noting its previous and current values
|
|
381
|
+
* @param {Source} source
|
|
382
|
+
* @param {any} value
|
|
383
|
+
*/
|
|
384
|
+
capture(source2, value) {
|
|
385
|
+
if (!this.previous.has(source2)) {
|
|
386
|
+
this.previous.set(source2, value);
|
|
387
|
+
}
|
|
388
|
+
if ((source2.f & ERROR_VALUE) === 0) {
|
|
389
|
+
this.current.set(source2, source2.v);
|
|
390
|
+
batch_values?.set(source2, source2.v);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
activate() {
|
|
394
|
+
current_batch = this;
|
|
395
|
+
this.apply();
|
|
396
|
+
}
|
|
397
|
+
deactivate() {
|
|
398
|
+
if (current_batch !== this) return;
|
|
399
|
+
current_batch = null;
|
|
400
|
+
batch_values = null;
|
|
401
|
+
}
|
|
402
|
+
flush() {
|
|
403
|
+
this.activate();
|
|
404
|
+
if (queued_root_effects.length > 0) {
|
|
405
|
+
flush_effects();
|
|
406
|
+
if (current_batch !== null && current_batch !== this) {
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
} else if (this.#pending === 0) {
|
|
410
|
+
this.process([]);
|
|
411
|
+
}
|
|
412
|
+
this.deactivate();
|
|
413
|
+
}
|
|
414
|
+
discard() {
|
|
415
|
+
for (const fn of this.#discard_callbacks) fn(this);
|
|
416
|
+
this.#discard_callbacks.clear();
|
|
417
|
+
}
|
|
418
|
+
#resolve() {
|
|
419
|
+
if (this.#blocking_pending === 0) {
|
|
420
|
+
for (const fn of this.#commit_callbacks) fn();
|
|
421
|
+
this.#commit_callbacks.clear();
|
|
422
|
+
}
|
|
423
|
+
if (this.#pending === 0) {
|
|
424
|
+
this.#commit();
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
#commit() {
|
|
428
|
+
if (batches.size > 1) {
|
|
429
|
+
this.previous.clear();
|
|
430
|
+
var previous_batch_values = batch_values;
|
|
431
|
+
var is_earlier = true;
|
|
432
|
+
var dummy_target = {
|
|
433
|
+
parent: null,
|
|
434
|
+
effect: null,
|
|
435
|
+
effects: [],
|
|
436
|
+
render_effects: []
|
|
437
|
+
};
|
|
438
|
+
for (const batch of batches) {
|
|
439
|
+
if (batch === this) {
|
|
440
|
+
is_earlier = false;
|
|
441
|
+
continue;
|
|
442
|
+
}
|
|
443
|
+
const sources = [];
|
|
444
|
+
for (const [source2, value] of this.current) {
|
|
445
|
+
if (batch.current.has(source2)) {
|
|
446
|
+
if (is_earlier && value !== batch.current.get(source2)) {
|
|
447
|
+
batch.current.set(source2, value);
|
|
448
|
+
} else {
|
|
449
|
+
continue;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
sources.push(source2);
|
|
453
|
+
}
|
|
454
|
+
if (sources.length === 0) {
|
|
455
|
+
continue;
|
|
456
|
+
}
|
|
457
|
+
const others = [...batch.current.keys()].filter((s) => !this.current.has(s));
|
|
458
|
+
if (others.length > 0) {
|
|
459
|
+
var prev_queued_root_effects = queued_root_effects;
|
|
460
|
+
queued_root_effects = [];
|
|
461
|
+
const marked = /* @__PURE__ */ new Set();
|
|
462
|
+
const checked = /* @__PURE__ */ new Map();
|
|
463
|
+
for (const source2 of sources) {
|
|
464
|
+
mark_effects(source2, others, marked, checked);
|
|
465
|
+
}
|
|
466
|
+
if (queued_root_effects.length > 0) {
|
|
467
|
+
current_batch = batch;
|
|
468
|
+
batch.apply();
|
|
469
|
+
for (const root of queued_root_effects) {
|
|
470
|
+
batch.#traverse_effect_tree(root, dummy_target);
|
|
471
|
+
}
|
|
472
|
+
batch.deactivate();
|
|
473
|
+
}
|
|
474
|
+
queued_root_effects = prev_queued_root_effects;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
current_batch = null;
|
|
478
|
+
batch_values = previous_batch_values;
|
|
479
|
+
}
|
|
480
|
+
this.committed = true;
|
|
481
|
+
batches.delete(this);
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
*
|
|
485
|
+
* @param {boolean} blocking
|
|
486
|
+
*/
|
|
487
|
+
increment(blocking) {
|
|
488
|
+
this.#pending += 1;
|
|
489
|
+
if (blocking) this.#blocking_pending += 1;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
*
|
|
493
|
+
* @param {boolean} blocking
|
|
494
|
+
*/
|
|
495
|
+
decrement(blocking) {
|
|
496
|
+
this.#pending -= 1;
|
|
497
|
+
if (blocking) this.#blocking_pending -= 1;
|
|
498
|
+
this.revive();
|
|
499
|
+
}
|
|
500
|
+
revive() {
|
|
501
|
+
for (const e of this.#dirty_effects) {
|
|
502
|
+
this.#maybe_dirty_effects.delete(e);
|
|
503
|
+
set_signal_status(e, DIRTY);
|
|
504
|
+
schedule_effect(e);
|
|
505
|
+
}
|
|
506
|
+
for (const e of this.#maybe_dirty_effects) {
|
|
507
|
+
set_signal_status(e, MAYBE_DIRTY);
|
|
508
|
+
schedule_effect(e);
|
|
509
|
+
}
|
|
510
|
+
this.flush();
|
|
511
|
+
}
|
|
512
|
+
/** @param {() => void} fn */
|
|
513
|
+
oncommit(fn) {
|
|
514
|
+
this.#commit_callbacks.add(fn);
|
|
515
|
+
}
|
|
516
|
+
/** @param {(batch: Batch) => void} fn */
|
|
517
|
+
ondiscard(fn) {
|
|
518
|
+
this.#discard_callbacks.add(fn);
|
|
519
|
+
}
|
|
520
|
+
settled() {
|
|
521
|
+
return (this.#deferred ??= deferred()).promise;
|
|
522
|
+
}
|
|
523
|
+
static ensure() {
|
|
524
|
+
if (current_batch === null) {
|
|
525
|
+
const batch = current_batch = new Batch();
|
|
526
|
+
batches.add(current_batch);
|
|
527
|
+
if (!is_flushing_sync) {
|
|
528
|
+
Batch.enqueue(() => {
|
|
529
|
+
if (current_batch !== batch) {
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
batch.flush();
|
|
533
|
+
});
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
return current_batch;
|
|
537
|
+
}
|
|
538
|
+
/** @param {() => void} task */
|
|
539
|
+
static enqueue(task) {
|
|
540
|
+
queue_micro_task(task);
|
|
541
|
+
}
|
|
542
|
+
apply() {
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
function flushSync(fn) {
|
|
547
|
+
var was_flushing_sync = is_flushing_sync;
|
|
548
|
+
is_flushing_sync = true;
|
|
549
|
+
try {
|
|
550
|
+
var result;
|
|
551
|
+
if (fn) ;
|
|
552
|
+
while (true) {
|
|
553
|
+
flush_tasks();
|
|
554
|
+
if (queued_root_effects.length === 0) {
|
|
555
|
+
current_batch?.flush();
|
|
556
|
+
if (queued_root_effects.length === 0) {
|
|
557
|
+
last_scheduled_effect = null;
|
|
558
|
+
return (
|
|
559
|
+
/** @type {T} */
|
|
560
|
+
result
|
|
561
|
+
);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
flush_effects();
|
|
565
|
+
}
|
|
566
|
+
} finally {
|
|
567
|
+
is_flushing_sync = was_flushing_sync;
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
function flush_effects() {
|
|
571
|
+
var was_updating_effect = is_updating_effect;
|
|
572
|
+
is_flushing = true;
|
|
573
|
+
try {
|
|
574
|
+
var flush_count = 0;
|
|
575
|
+
set_is_updating_effect(true);
|
|
576
|
+
while (queued_root_effects.length > 0) {
|
|
577
|
+
var batch = Batch.ensure();
|
|
578
|
+
if (flush_count++ > 1e3) {
|
|
579
|
+
var updates, entry;
|
|
580
|
+
if (BROWSER) ;
|
|
581
|
+
infinite_loop_guard();
|
|
582
|
+
}
|
|
583
|
+
batch.process(queued_root_effects);
|
|
584
|
+
old_values.clear();
|
|
585
|
+
if (BROWSER) ;
|
|
586
|
+
}
|
|
587
|
+
} finally {
|
|
588
|
+
is_flushing = false;
|
|
589
|
+
set_is_updating_effect(was_updating_effect);
|
|
590
|
+
last_scheduled_effect = null;
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
function infinite_loop_guard() {
|
|
594
|
+
try {
|
|
595
|
+
effect_update_depth_exceeded();
|
|
596
|
+
} catch (error) {
|
|
597
|
+
invoke_error_boundary(error, last_scheduled_effect);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
let eager_block_effects = null;
|
|
601
|
+
function flush_queued_effects(effects) {
|
|
602
|
+
var length = effects.length;
|
|
603
|
+
if (length === 0) return;
|
|
604
|
+
var i = 0;
|
|
605
|
+
while (i < length) {
|
|
606
|
+
var effect = effects[i++];
|
|
607
|
+
if ((effect.f & (DESTROYED | INERT)) === 0 && is_dirty(effect)) {
|
|
608
|
+
eager_block_effects = /* @__PURE__ */ new Set();
|
|
609
|
+
update_effect(effect);
|
|
610
|
+
if (effect.deps === null && effect.first === null && effect.nodes === null) {
|
|
611
|
+
if (effect.teardown === null && effect.ac === null) {
|
|
612
|
+
unlink_effect(effect);
|
|
613
|
+
} else {
|
|
614
|
+
effect.fn = null;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
if (eager_block_effects?.size > 0) {
|
|
618
|
+
old_values.clear();
|
|
619
|
+
for (const e of eager_block_effects) {
|
|
620
|
+
if ((e.f & (DESTROYED | INERT)) !== 0) continue;
|
|
621
|
+
const ordered_effects = [e];
|
|
622
|
+
let ancestor = e.parent;
|
|
623
|
+
while (ancestor !== null) {
|
|
624
|
+
if (eager_block_effects.has(ancestor)) {
|
|
625
|
+
eager_block_effects.delete(ancestor);
|
|
626
|
+
ordered_effects.push(ancestor);
|
|
627
|
+
}
|
|
628
|
+
ancestor = ancestor.parent;
|
|
629
|
+
}
|
|
630
|
+
for (let j = ordered_effects.length - 1; j >= 0; j--) {
|
|
631
|
+
const e2 = ordered_effects[j];
|
|
632
|
+
if ((e2.f & (DESTROYED | INERT)) !== 0) continue;
|
|
633
|
+
update_effect(e2);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
eager_block_effects.clear();
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
eager_block_effects = null;
|
|
641
|
+
}
|
|
642
|
+
function mark_effects(value, sources, marked, checked) {
|
|
643
|
+
if (marked.has(value)) return;
|
|
644
|
+
marked.add(value);
|
|
645
|
+
if (value.reactions !== null) {
|
|
646
|
+
for (const reaction of value.reactions) {
|
|
647
|
+
const flags = reaction.f;
|
|
648
|
+
if ((flags & DERIVED) !== 0) {
|
|
649
|
+
mark_effects(
|
|
650
|
+
/** @type {Derived} */
|
|
651
|
+
reaction,
|
|
652
|
+
sources,
|
|
653
|
+
marked,
|
|
654
|
+
checked
|
|
655
|
+
);
|
|
656
|
+
} else if ((flags & (ASYNC | BLOCK_EFFECT)) !== 0 && (flags & DIRTY) === 0 && depends_on(reaction, sources, checked)) {
|
|
657
|
+
set_signal_status(reaction, DIRTY);
|
|
658
|
+
schedule_effect(
|
|
659
|
+
/** @type {Effect} */
|
|
660
|
+
reaction
|
|
661
|
+
);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
function depends_on(reaction, sources, checked) {
|
|
667
|
+
const depends = checked.get(reaction);
|
|
668
|
+
if (depends !== void 0) return depends;
|
|
669
|
+
if (reaction.deps !== null) {
|
|
670
|
+
for (const dep of reaction.deps) {
|
|
671
|
+
if (sources.includes(dep)) {
|
|
672
|
+
return true;
|
|
673
|
+
}
|
|
674
|
+
if ((dep.f & DERIVED) !== 0 && depends_on(
|
|
675
|
+
/** @type {Derived} */
|
|
676
|
+
dep,
|
|
677
|
+
sources,
|
|
678
|
+
checked
|
|
679
|
+
)) {
|
|
680
|
+
checked.set(
|
|
681
|
+
/** @type {Derived} */
|
|
682
|
+
dep,
|
|
683
|
+
true
|
|
684
|
+
);
|
|
685
|
+
return true;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
checked.set(reaction, false);
|
|
690
|
+
return false;
|
|
691
|
+
}
|
|
692
|
+
function schedule_effect(signal) {
|
|
693
|
+
var effect = last_scheduled_effect = signal;
|
|
694
|
+
while (effect.parent !== null) {
|
|
695
|
+
effect = effect.parent;
|
|
696
|
+
var flags = effect.f;
|
|
697
|
+
if (is_flushing && effect === active_effect && (flags & BLOCK_EFFECT) !== 0 && (flags & HEAD_EFFECT) === 0) {
|
|
698
|
+
return;
|
|
699
|
+
}
|
|
700
|
+
if ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {
|
|
701
|
+
if ((flags & CLEAN) === 0) return;
|
|
702
|
+
effect.f ^= CLEAN;
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
queued_root_effects.push(effect);
|
|
706
|
+
}
|
|
707
|
+
function destroy_derived_effects(derived) {
|
|
708
|
+
var effects = derived.effects;
|
|
709
|
+
if (effects !== null) {
|
|
710
|
+
derived.effects = null;
|
|
711
|
+
for (var i = 0; i < effects.length; i += 1) {
|
|
712
|
+
destroy_effect(
|
|
713
|
+
/** @type {Effect} */
|
|
714
|
+
effects[i]
|
|
715
|
+
);
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
function get_derived_parent_effect(derived) {
|
|
720
|
+
var parent = derived.parent;
|
|
721
|
+
while (parent !== null) {
|
|
722
|
+
if ((parent.f & DERIVED) === 0) {
|
|
723
|
+
return (parent.f & DESTROYED) === 0 ? (
|
|
724
|
+
/** @type {Effect} */
|
|
725
|
+
parent
|
|
726
|
+
) : null;
|
|
727
|
+
}
|
|
728
|
+
parent = parent.parent;
|
|
729
|
+
}
|
|
730
|
+
return null;
|
|
731
|
+
}
|
|
732
|
+
function execute_derived(derived) {
|
|
733
|
+
var value;
|
|
734
|
+
var prev_active_effect = active_effect;
|
|
735
|
+
set_active_effect(get_derived_parent_effect(derived));
|
|
736
|
+
{
|
|
737
|
+
try {
|
|
738
|
+
derived.f &= ~WAS_MARKED;
|
|
739
|
+
destroy_derived_effects(derived);
|
|
740
|
+
value = update_reaction(derived);
|
|
741
|
+
} finally {
|
|
742
|
+
set_active_effect(prev_active_effect);
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
return value;
|
|
746
|
+
}
|
|
747
|
+
function update_derived(derived) {
|
|
748
|
+
var value = execute_derived(derived);
|
|
749
|
+
if (!derived.equals(value)) {
|
|
750
|
+
if (!current_batch?.is_fork) {
|
|
751
|
+
derived.v = value;
|
|
752
|
+
}
|
|
753
|
+
derived.wv = increment_write_version();
|
|
754
|
+
}
|
|
755
|
+
if (is_destroying_effect) {
|
|
756
|
+
return;
|
|
757
|
+
}
|
|
758
|
+
if (batch_values !== null) {
|
|
759
|
+
if (effect_tracking() || current_batch?.is_fork) {
|
|
760
|
+
batch_values.set(derived, value);
|
|
761
|
+
}
|
|
762
|
+
} else {
|
|
763
|
+
var status = (derived.f & CONNECTED) === 0 ? MAYBE_DIRTY : CLEAN;
|
|
764
|
+
set_signal_status(derived, status);
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
let eager_effects = /* @__PURE__ */ new Set();
|
|
768
|
+
const old_values = /* @__PURE__ */ new Map();
|
|
769
|
+
let eager_effects_deferred = false;
|
|
770
|
+
function source(v, stack) {
|
|
771
|
+
var signal = {
|
|
772
|
+
f: 0,
|
|
773
|
+
// TODO ideally we could skip this altogether, but it causes type errors
|
|
774
|
+
v,
|
|
775
|
+
reactions: null,
|
|
776
|
+
equals,
|
|
777
|
+
rv: 0,
|
|
778
|
+
wv: 0
|
|
779
|
+
};
|
|
780
|
+
return signal;
|
|
781
|
+
}
|
|
782
|
+
// @__NO_SIDE_EFFECTS__
|
|
783
|
+
function state(v, stack) {
|
|
784
|
+
const s = source(v);
|
|
785
|
+
push_reaction_value(s);
|
|
786
|
+
return s;
|
|
787
|
+
}
|
|
788
|
+
// @__NO_SIDE_EFFECTS__
|
|
789
|
+
function mutable_source(initial_value, immutable = false, trackable = true) {
|
|
790
|
+
const s = source(initial_value);
|
|
791
|
+
if (!immutable) {
|
|
792
|
+
s.equals = safe_equals;
|
|
793
|
+
}
|
|
794
|
+
return s;
|
|
795
|
+
}
|
|
796
|
+
function set(source2, value, should_proxy = false) {
|
|
797
|
+
if (active_reaction !== null && // since we are untracking the function inside `$inspect.with` we need to add this check
|
|
798
|
+
// to ensure we error if state is set inside an inspect effect
|
|
799
|
+
(!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && !current_sources?.includes(source2)) {
|
|
800
|
+
state_unsafe_mutation();
|
|
801
|
+
}
|
|
802
|
+
let new_value = should_proxy ? proxy(value) : value;
|
|
803
|
+
return internal_set(source2, new_value);
|
|
804
|
+
}
|
|
805
|
+
function internal_set(source2, value) {
|
|
806
|
+
if (!source2.equals(value)) {
|
|
807
|
+
var old_value = source2.v;
|
|
808
|
+
if (is_destroying_effect) {
|
|
809
|
+
old_values.set(source2, value);
|
|
810
|
+
} else {
|
|
811
|
+
old_values.set(source2, old_value);
|
|
812
|
+
}
|
|
813
|
+
source2.v = value;
|
|
814
|
+
var batch = Batch.ensure();
|
|
815
|
+
batch.capture(source2, old_value);
|
|
816
|
+
if ((source2.f & DERIVED) !== 0) {
|
|
817
|
+
if ((source2.f & DIRTY) !== 0) {
|
|
818
|
+
execute_derived(
|
|
819
|
+
/** @type {Derived} */
|
|
820
|
+
source2
|
|
821
|
+
);
|
|
822
|
+
}
|
|
823
|
+
set_signal_status(source2, (source2.f & CONNECTED) !== 0 ? CLEAN : MAYBE_DIRTY);
|
|
824
|
+
}
|
|
825
|
+
source2.wv = increment_write_version();
|
|
826
|
+
mark_reactions(source2, DIRTY);
|
|
827
|
+
if (active_effect !== null && (active_effect.f & CLEAN) !== 0 && (active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) {
|
|
828
|
+
if (untracked_writes === null) {
|
|
829
|
+
set_untracked_writes([source2]);
|
|
830
|
+
} else {
|
|
831
|
+
untracked_writes.push(source2);
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) {
|
|
835
|
+
flush_eager_effects();
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
return value;
|
|
839
|
+
}
|
|
840
|
+
function flush_eager_effects() {
|
|
841
|
+
eager_effects_deferred = false;
|
|
842
|
+
var prev_is_updating_effect = is_updating_effect;
|
|
843
|
+
set_is_updating_effect(true);
|
|
844
|
+
const inspects = Array.from(eager_effects);
|
|
845
|
+
try {
|
|
846
|
+
for (const effect of inspects) {
|
|
847
|
+
if ((effect.f & CLEAN) !== 0) {
|
|
848
|
+
set_signal_status(effect, MAYBE_DIRTY);
|
|
849
|
+
}
|
|
850
|
+
if (is_dirty(effect)) {
|
|
851
|
+
update_effect(effect);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
} finally {
|
|
855
|
+
set_is_updating_effect(prev_is_updating_effect);
|
|
856
|
+
}
|
|
857
|
+
eager_effects.clear();
|
|
858
|
+
}
|
|
859
|
+
function increment(source2) {
|
|
860
|
+
set(source2, source2.v + 1);
|
|
861
|
+
}
|
|
862
|
+
function mark_reactions(signal, status) {
|
|
863
|
+
var reactions = signal.reactions;
|
|
864
|
+
if (reactions === null) return;
|
|
865
|
+
var length = reactions.length;
|
|
866
|
+
for (var i = 0; i < length; i++) {
|
|
867
|
+
var reaction = reactions[i];
|
|
868
|
+
var flags = reaction.f;
|
|
869
|
+
var not_dirty = (flags & DIRTY) === 0;
|
|
870
|
+
if (not_dirty) {
|
|
871
|
+
set_signal_status(reaction, status);
|
|
872
|
+
}
|
|
873
|
+
if ((flags & DERIVED) !== 0) {
|
|
874
|
+
var derived = (
|
|
875
|
+
/** @type {Derived} */
|
|
876
|
+
reaction
|
|
877
|
+
);
|
|
878
|
+
batch_values?.delete(derived);
|
|
879
|
+
if ((flags & WAS_MARKED) === 0) {
|
|
880
|
+
if (flags & CONNECTED) {
|
|
881
|
+
reaction.f |= WAS_MARKED;
|
|
882
|
+
}
|
|
883
|
+
mark_reactions(derived, MAYBE_DIRTY);
|
|
884
|
+
}
|
|
885
|
+
} else if (not_dirty) {
|
|
886
|
+
if ((flags & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) {
|
|
887
|
+
eager_block_effects.add(
|
|
888
|
+
/** @type {Effect} */
|
|
889
|
+
reaction
|
|
890
|
+
);
|
|
891
|
+
}
|
|
892
|
+
schedule_effect(
|
|
893
|
+
/** @type {Effect} */
|
|
894
|
+
reaction
|
|
895
|
+
);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
function proxy(value) {
|
|
900
|
+
if (typeof value !== "object" || value === null || STATE_SYMBOL in value) {
|
|
901
|
+
return value;
|
|
902
|
+
}
|
|
903
|
+
const prototype = get_prototype_of(value);
|
|
904
|
+
if (prototype !== object_prototype && prototype !== array_prototype) {
|
|
905
|
+
return value;
|
|
906
|
+
}
|
|
907
|
+
var sources = /* @__PURE__ */ new Map();
|
|
908
|
+
var is_proxied_array = is_array(value);
|
|
909
|
+
var version = /* @__PURE__ */ state(0);
|
|
910
|
+
var parent_version = update_version;
|
|
911
|
+
var with_parent = (fn) => {
|
|
912
|
+
if (update_version === parent_version) {
|
|
913
|
+
return fn();
|
|
914
|
+
}
|
|
915
|
+
var reaction = active_reaction;
|
|
916
|
+
var version2 = update_version;
|
|
917
|
+
set_active_reaction(null);
|
|
918
|
+
set_update_version(parent_version);
|
|
919
|
+
var result = fn();
|
|
920
|
+
set_active_reaction(reaction);
|
|
921
|
+
set_update_version(version2);
|
|
922
|
+
return result;
|
|
923
|
+
};
|
|
924
|
+
if (is_proxied_array) {
|
|
925
|
+
sources.set("length", /* @__PURE__ */ state(
|
|
926
|
+
/** @type {any[]} */
|
|
927
|
+
value.length
|
|
928
|
+
));
|
|
929
|
+
}
|
|
930
|
+
return new Proxy(
|
|
931
|
+
/** @type {any} */
|
|
932
|
+
value,
|
|
933
|
+
{
|
|
934
|
+
defineProperty(_, prop, descriptor) {
|
|
935
|
+
if (!("value" in descriptor) || descriptor.configurable === false || descriptor.enumerable === false || descriptor.writable === false) {
|
|
936
|
+
state_descriptors_fixed();
|
|
937
|
+
}
|
|
938
|
+
var s = sources.get(prop);
|
|
939
|
+
if (s === void 0) {
|
|
940
|
+
s = with_parent(() => {
|
|
941
|
+
var s2 = /* @__PURE__ */ state(descriptor.value);
|
|
942
|
+
sources.set(prop, s2);
|
|
943
|
+
return s2;
|
|
944
|
+
});
|
|
945
|
+
} else {
|
|
946
|
+
set(s, descriptor.value, true);
|
|
947
|
+
}
|
|
948
|
+
return true;
|
|
949
|
+
},
|
|
950
|
+
deleteProperty(target, prop) {
|
|
951
|
+
var s = sources.get(prop);
|
|
952
|
+
if (s === void 0) {
|
|
953
|
+
if (prop in target) {
|
|
954
|
+
const s2 = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED));
|
|
955
|
+
sources.set(prop, s2);
|
|
956
|
+
increment(version);
|
|
957
|
+
}
|
|
958
|
+
} else {
|
|
959
|
+
set(s, UNINITIALIZED);
|
|
960
|
+
increment(version);
|
|
961
|
+
}
|
|
962
|
+
return true;
|
|
963
|
+
},
|
|
964
|
+
get(target, prop, receiver) {
|
|
965
|
+
if (prop === STATE_SYMBOL) {
|
|
966
|
+
return value;
|
|
967
|
+
}
|
|
968
|
+
var s = sources.get(prop);
|
|
969
|
+
var exists = prop in target;
|
|
970
|
+
if (s === void 0 && (!exists || get_descriptor(target, prop)?.writable)) {
|
|
971
|
+
s = with_parent(() => {
|
|
972
|
+
var p = proxy(exists ? target[prop] : UNINITIALIZED);
|
|
973
|
+
var s2 = /* @__PURE__ */ state(p);
|
|
974
|
+
return s2;
|
|
975
|
+
});
|
|
976
|
+
sources.set(prop, s);
|
|
977
|
+
}
|
|
978
|
+
if (s !== void 0) {
|
|
979
|
+
var v = get$1(s);
|
|
980
|
+
return v === UNINITIALIZED ? void 0 : v;
|
|
981
|
+
}
|
|
982
|
+
return Reflect.get(target, prop, receiver);
|
|
983
|
+
},
|
|
984
|
+
getOwnPropertyDescriptor(target, prop) {
|
|
985
|
+
var descriptor = Reflect.getOwnPropertyDescriptor(target, prop);
|
|
986
|
+
if (descriptor && "value" in descriptor) {
|
|
987
|
+
var s = sources.get(prop);
|
|
988
|
+
if (s) descriptor.value = get$1(s);
|
|
989
|
+
} else if (descriptor === void 0) {
|
|
990
|
+
var source2 = sources.get(prop);
|
|
991
|
+
var value2 = source2?.v;
|
|
992
|
+
if (source2 !== void 0 && value2 !== UNINITIALIZED) {
|
|
993
|
+
return {
|
|
994
|
+
enumerable: true,
|
|
995
|
+
configurable: true,
|
|
996
|
+
value: value2,
|
|
997
|
+
writable: true
|
|
998
|
+
};
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
return descriptor;
|
|
1002
|
+
},
|
|
1003
|
+
has(target, prop) {
|
|
1004
|
+
if (prop === STATE_SYMBOL) {
|
|
1005
|
+
return true;
|
|
1006
|
+
}
|
|
1007
|
+
var s = sources.get(prop);
|
|
1008
|
+
var has = s !== void 0 && s.v !== UNINITIALIZED || Reflect.has(target, prop);
|
|
1009
|
+
if (s !== void 0 || active_effect !== null && (!has || get_descriptor(target, prop)?.writable)) {
|
|
1010
|
+
if (s === void 0) {
|
|
1011
|
+
s = with_parent(() => {
|
|
1012
|
+
var p = has ? proxy(target[prop]) : UNINITIALIZED;
|
|
1013
|
+
var s2 = /* @__PURE__ */ state(p);
|
|
1014
|
+
return s2;
|
|
1015
|
+
});
|
|
1016
|
+
sources.set(prop, s);
|
|
1017
|
+
}
|
|
1018
|
+
var value2 = get$1(s);
|
|
1019
|
+
if (value2 === UNINITIALIZED) {
|
|
1020
|
+
return false;
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
return has;
|
|
1024
|
+
},
|
|
1025
|
+
set(target, prop, value2, receiver) {
|
|
1026
|
+
var s = sources.get(prop);
|
|
1027
|
+
var has = prop in target;
|
|
1028
|
+
if (is_proxied_array && prop === "length") {
|
|
1029
|
+
for (var i = value2; i < /** @type {Source<number>} */
|
|
1030
|
+
s.v; i += 1) {
|
|
1031
|
+
var other_s = sources.get(i + "");
|
|
1032
|
+
if (other_s !== void 0) {
|
|
1033
|
+
set(other_s, UNINITIALIZED);
|
|
1034
|
+
} else if (i in target) {
|
|
1035
|
+
other_s = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED));
|
|
1036
|
+
sources.set(i + "", other_s);
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
if (s === void 0) {
|
|
1041
|
+
if (!has || get_descriptor(target, prop)?.writable) {
|
|
1042
|
+
s = with_parent(() => /* @__PURE__ */ state(void 0));
|
|
1043
|
+
set(s, proxy(value2));
|
|
1044
|
+
sources.set(prop, s);
|
|
1045
|
+
}
|
|
1046
|
+
} else {
|
|
1047
|
+
has = s.v !== UNINITIALIZED;
|
|
1048
|
+
var p = with_parent(() => proxy(value2));
|
|
1049
|
+
set(s, p);
|
|
1050
|
+
}
|
|
1051
|
+
var descriptor = Reflect.getOwnPropertyDescriptor(target, prop);
|
|
1052
|
+
if (descriptor?.set) {
|
|
1053
|
+
descriptor.set.call(receiver, value2);
|
|
1054
|
+
}
|
|
1055
|
+
if (!has) {
|
|
1056
|
+
if (is_proxied_array && typeof prop === "string") {
|
|
1057
|
+
var ls = (
|
|
1058
|
+
/** @type {Source<number>} */
|
|
1059
|
+
sources.get("length")
|
|
1060
|
+
);
|
|
1061
|
+
var n = Number(prop);
|
|
1062
|
+
if (Number.isInteger(n) && n >= ls.v) {
|
|
1063
|
+
set(ls, n + 1);
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
increment(version);
|
|
1067
|
+
}
|
|
1068
|
+
return true;
|
|
1069
|
+
},
|
|
1070
|
+
ownKeys(target) {
|
|
1071
|
+
get$1(version);
|
|
1072
|
+
var own_keys = Reflect.ownKeys(target).filter((key2) => {
|
|
1073
|
+
var source3 = sources.get(key2);
|
|
1074
|
+
return source3 === void 0 || source3.v !== UNINITIALIZED;
|
|
1075
|
+
});
|
|
1076
|
+
for (var [key, source2] of sources) {
|
|
1077
|
+
if (source2.v !== UNINITIALIZED && !(key in target)) {
|
|
1078
|
+
own_keys.push(key);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
return own_keys;
|
|
1082
|
+
},
|
|
1083
|
+
setPrototypeOf() {
|
|
1084
|
+
state_prototype_fixed();
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1087
|
+
);
|
|
1088
|
+
}
|
|
1089
|
+
var $window;
|
|
1090
|
+
var first_child_getter;
|
|
1091
|
+
var next_sibling_getter;
|
|
1092
|
+
function init_operations() {
|
|
1093
|
+
if ($window !== void 0) {
|
|
1094
|
+
return;
|
|
1095
|
+
}
|
|
1096
|
+
$window = window;
|
|
1097
|
+
var element_prototype = Element.prototype;
|
|
1098
|
+
var node_prototype = Node.prototype;
|
|
1099
|
+
var text_prototype = Text.prototype;
|
|
1100
|
+
first_child_getter = get_descriptor(node_prototype, "firstChild").get;
|
|
1101
|
+
next_sibling_getter = get_descriptor(node_prototype, "nextSibling").get;
|
|
1102
|
+
if (is_extensible(element_prototype)) {
|
|
1103
|
+
element_prototype.__click = void 0;
|
|
1104
|
+
element_prototype.__className = void 0;
|
|
1105
|
+
element_prototype.__attributes = null;
|
|
1106
|
+
element_prototype.__style = void 0;
|
|
1107
|
+
element_prototype.__e = void 0;
|
|
1108
|
+
}
|
|
1109
|
+
if (is_extensible(text_prototype)) {
|
|
1110
|
+
text_prototype.__t = void 0;
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
function create_text(value = "") {
|
|
1114
|
+
return document.createTextNode(value);
|
|
1115
|
+
}
|
|
1116
|
+
// @__NO_SIDE_EFFECTS__
|
|
1117
|
+
function get_first_child(node) {
|
|
1118
|
+
return (
|
|
1119
|
+
/** @type {TemplateNode | null} */
|
|
1120
|
+
first_child_getter.call(node)
|
|
1121
|
+
);
|
|
1122
|
+
}
|
|
1123
|
+
// @__NO_SIDE_EFFECTS__
|
|
1124
|
+
function get_next_sibling(node) {
|
|
1125
|
+
return (
|
|
1126
|
+
/** @type {TemplateNode | null} */
|
|
1127
|
+
next_sibling_getter.call(node)
|
|
1128
|
+
);
|
|
1129
|
+
}
|
|
1130
|
+
function clear_text_content(node) {
|
|
1131
|
+
node.textContent = "";
|
|
1132
|
+
}
|
|
1133
|
+
function without_reactive_context(fn) {
|
|
1134
|
+
var previous_reaction = active_reaction;
|
|
1135
|
+
var previous_effect = active_effect;
|
|
1136
|
+
set_active_reaction(null);
|
|
1137
|
+
set_active_effect(null);
|
|
1138
|
+
try {
|
|
1139
|
+
return fn();
|
|
1140
|
+
} finally {
|
|
1141
|
+
set_active_reaction(previous_reaction);
|
|
1142
|
+
set_active_effect(previous_effect);
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
function push_effect(effect, parent_effect) {
|
|
1146
|
+
var parent_last = parent_effect.last;
|
|
1147
|
+
if (parent_last === null) {
|
|
1148
|
+
parent_effect.last = parent_effect.first = effect;
|
|
1149
|
+
} else {
|
|
1150
|
+
parent_last.next = effect;
|
|
1151
|
+
effect.prev = parent_last;
|
|
1152
|
+
parent_effect.last = effect;
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
function create_effect(type, fn, sync) {
|
|
1156
|
+
var parent = active_effect;
|
|
1157
|
+
if (parent !== null && (parent.f & INERT) !== 0) {
|
|
1158
|
+
type |= INERT;
|
|
1159
|
+
}
|
|
1160
|
+
var effect = {
|
|
1161
|
+
ctx: component_context,
|
|
1162
|
+
deps: null,
|
|
1163
|
+
nodes: null,
|
|
1164
|
+
f: type | DIRTY | CONNECTED,
|
|
1165
|
+
first: null,
|
|
1166
|
+
fn,
|
|
1167
|
+
last: null,
|
|
1168
|
+
next: null,
|
|
1169
|
+
parent,
|
|
1170
|
+
b: parent && parent.b,
|
|
1171
|
+
prev: null,
|
|
1172
|
+
teardown: null,
|
|
1173
|
+
wv: 0,
|
|
1174
|
+
ac: null
|
|
1175
|
+
};
|
|
1176
|
+
if (sync) {
|
|
1177
|
+
try {
|
|
1178
|
+
update_effect(effect);
|
|
1179
|
+
effect.f |= EFFECT_RAN;
|
|
1180
|
+
} catch (e2) {
|
|
1181
|
+
destroy_effect(effect);
|
|
1182
|
+
throw e2;
|
|
1183
|
+
}
|
|
1184
|
+
} else if (fn !== null) {
|
|
1185
|
+
schedule_effect(effect);
|
|
1186
|
+
}
|
|
1187
|
+
var e = effect;
|
|
1188
|
+
if (sync && e.deps === null && e.teardown === null && e.nodes === null && e.first === e.last && // either `null`, or a singular child
|
|
1189
|
+
(e.f & EFFECT_PRESERVED) === 0) {
|
|
1190
|
+
e = e.first;
|
|
1191
|
+
if ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) {
|
|
1192
|
+
e.f |= EFFECT_TRANSPARENT;
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
if (e !== null) {
|
|
1196
|
+
e.parent = parent;
|
|
1197
|
+
if (parent !== null) {
|
|
1198
|
+
push_effect(e, parent);
|
|
1199
|
+
}
|
|
1200
|
+
if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) {
|
|
1201
|
+
var derived = (
|
|
1202
|
+
/** @type {Derived} */
|
|
1203
|
+
active_reaction
|
|
1204
|
+
);
|
|
1205
|
+
(derived.effects ??= []).push(e);
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
return effect;
|
|
1209
|
+
}
|
|
1210
|
+
function effect_tracking() {
|
|
1211
|
+
return active_reaction !== null && !untracking;
|
|
1212
|
+
}
|
|
1213
|
+
function create_user_effect(fn) {
|
|
1214
|
+
return create_effect(EFFECT | USER_EFFECT, fn, false);
|
|
1215
|
+
}
|
|
1216
|
+
function component_root(fn) {
|
|
1217
|
+
Batch.ensure();
|
|
1218
|
+
const effect = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn, true);
|
|
1219
|
+
return (options = {}) => {
|
|
1220
|
+
return new Promise((fulfil) => {
|
|
1221
|
+
if (options.outro) {
|
|
1222
|
+
pause_effect(effect, () => {
|
|
1223
|
+
destroy_effect(effect);
|
|
1224
|
+
fulfil(void 0);
|
|
1225
|
+
});
|
|
1226
|
+
} else {
|
|
1227
|
+
destroy_effect(effect);
|
|
1228
|
+
fulfil(void 0);
|
|
1229
|
+
}
|
|
1230
|
+
});
|
|
1231
|
+
};
|
|
1232
|
+
}
|
|
1233
|
+
function render_effect(fn, flags = 0) {
|
|
1234
|
+
return create_effect(RENDER_EFFECT | flags, fn, true);
|
|
1235
|
+
}
|
|
1236
|
+
function block(fn, flags = 0) {
|
|
1237
|
+
var effect = create_effect(BLOCK_EFFECT | flags, fn, true);
|
|
1238
|
+
return effect;
|
|
1239
|
+
}
|
|
1240
|
+
function branch(fn) {
|
|
1241
|
+
return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn, true);
|
|
1242
|
+
}
|
|
1243
|
+
function execute_effect_teardown(effect) {
|
|
1244
|
+
var teardown = effect.teardown;
|
|
1245
|
+
if (teardown !== null) {
|
|
1246
|
+
const previously_destroying_effect = is_destroying_effect;
|
|
1247
|
+
const previous_reaction = active_reaction;
|
|
1248
|
+
set_is_destroying_effect(true);
|
|
1249
|
+
set_active_reaction(null);
|
|
1250
|
+
try {
|
|
1251
|
+
teardown.call(null);
|
|
1252
|
+
} finally {
|
|
1253
|
+
set_is_destroying_effect(previously_destroying_effect);
|
|
1254
|
+
set_active_reaction(previous_reaction);
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1258
|
+
function destroy_effect_children(signal, remove_dom = false) {
|
|
1259
|
+
var effect = signal.first;
|
|
1260
|
+
signal.first = signal.last = null;
|
|
1261
|
+
while (effect !== null) {
|
|
1262
|
+
const controller = effect.ac;
|
|
1263
|
+
if (controller !== null) {
|
|
1264
|
+
without_reactive_context(() => {
|
|
1265
|
+
controller.abort(STALE_REACTION);
|
|
1266
|
+
});
|
|
1267
|
+
}
|
|
1268
|
+
var next = effect.next;
|
|
1269
|
+
if ((effect.f & ROOT_EFFECT) !== 0) {
|
|
1270
|
+
effect.parent = null;
|
|
1271
|
+
} else {
|
|
1272
|
+
destroy_effect(effect, remove_dom);
|
|
1273
|
+
}
|
|
1274
|
+
effect = next;
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1277
|
+
function destroy_block_effect_children(signal) {
|
|
1278
|
+
var effect = signal.first;
|
|
1279
|
+
while (effect !== null) {
|
|
1280
|
+
var next = effect.next;
|
|
1281
|
+
if ((effect.f & BRANCH_EFFECT) === 0) {
|
|
1282
|
+
destroy_effect(effect);
|
|
1283
|
+
}
|
|
1284
|
+
effect = next;
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
function destroy_effect(effect, remove_dom = true) {
|
|
1288
|
+
var removed = false;
|
|
1289
|
+
if ((remove_dom || (effect.f & HEAD_EFFECT) !== 0) && effect.nodes !== null && effect.nodes.end !== null) {
|
|
1290
|
+
remove_effect_dom(
|
|
1291
|
+
effect.nodes.start,
|
|
1292
|
+
/** @type {TemplateNode} */
|
|
1293
|
+
effect.nodes.end
|
|
1294
|
+
);
|
|
1295
|
+
removed = true;
|
|
1296
|
+
}
|
|
1297
|
+
destroy_effect_children(effect, remove_dom && !removed);
|
|
1298
|
+
remove_reactions(effect, 0);
|
|
1299
|
+
set_signal_status(effect, DESTROYED);
|
|
1300
|
+
var transitions = effect.nodes && effect.nodes.t;
|
|
1301
|
+
if (transitions !== null) {
|
|
1302
|
+
for (const transition of transitions) {
|
|
1303
|
+
transition.stop();
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
execute_effect_teardown(effect);
|
|
1307
|
+
var parent = effect.parent;
|
|
1308
|
+
if (parent !== null && parent.first !== null) {
|
|
1309
|
+
unlink_effect(effect);
|
|
1310
|
+
}
|
|
1311
|
+
effect.next = effect.prev = effect.teardown = effect.ctx = effect.deps = effect.fn = effect.nodes = effect.ac = null;
|
|
1312
|
+
}
|
|
1313
|
+
function remove_effect_dom(node, end) {
|
|
1314
|
+
while (node !== null) {
|
|
1315
|
+
var next = node === end ? null : /* @__PURE__ */ get_next_sibling(node);
|
|
1316
|
+
node.remove();
|
|
1317
|
+
node = next;
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
function unlink_effect(effect) {
|
|
1321
|
+
var parent = effect.parent;
|
|
1322
|
+
var prev = effect.prev;
|
|
1323
|
+
var next = effect.next;
|
|
1324
|
+
if (prev !== null) prev.next = next;
|
|
1325
|
+
if (next !== null) next.prev = prev;
|
|
1326
|
+
if (parent !== null) {
|
|
1327
|
+
if (parent.first === effect) parent.first = next;
|
|
1328
|
+
if (parent.last === effect) parent.last = prev;
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
function pause_effect(effect, callback, destroy = true) {
|
|
1332
|
+
var transitions = [];
|
|
1333
|
+
pause_children(effect, transitions, true);
|
|
1334
|
+
var fn = () => {
|
|
1335
|
+
if (destroy) destroy_effect(effect);
|
|
1336
|
+
if (callback) callback();
|
|
1337
|
+
};
|
|
1338
|
+
var remaining = transitions.length;
|
|
1339
|
+
if (remaining > 0) {
|
|
1340
|
+
var check = () => --remaining || fn();
|
|
1341
|
+
for (var transition of transitions) {
|
|
1342
|
+
transition.out(check);
|
|
1343
|
+
}
|
|
1344
|
+
} else {
|
|
1345
|
+
fn();
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
function pause_children(effect, transitions, local) {
|
|
1349
|
+
if ((effect.f & INERT) !== 0) return;
|
|
1350
|
+
effect.f ^= INERT;
|
|
1351
|
+
var t = effect.nodes && effect.nodes.t;
|
|
1352
|
+
if (t !== null) {
|
|
1353
|
+
for (const transition of t) {
|
|
1354
|
+
if (transition.is_global || local) {
|
|
1355
|
+
transitions.push(transition);
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
var child = effect.first;
|
|
1360
|
+
while (child !== null) {
|
|
1361
|
+
var sibling = child.next;
|
|
1362
|
+
var transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || // If this is a branch effect without a block effect parent,
|
|
1363
|
+
// it means the parent block effect was pruned. In that case,
|
|
1364
|
+
// transparency information was transferred to the branch effect.
|
|
1365
|
+
(child.f & BRANCH_EFFECT) !== 0 && (effect.f & BLOCK_EFFECT) !== 0;
|
|
1366
|
+
pause_children(child, transitions, transparent ? local : false);
|
|
1367
|
+
child = sibling;
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
function move_effect(effect, fragment) {
|
|
1371
|
+
if (!effect.nodes) return;
|
|
1372
|
+
var node = effect.nodes.start;
|
|
1373
|
+
var end = effect.nodes.end;
|
|
1374
|
+
while (node !== null) {
|
|
1375
|
+
var next = node === end ? null : /* @__PURE__ */ get_next_sibling(node);
|
|
1376
|
+
fragment.append(node);
|
|
1377
|
+
node = next;
|
|
1378
|
+
}
|
|
1379
|
+
}
|
|
1380
|
+
let is_updating_effect = false;
|
|
1381
|
+
function set_is_updating_effect(value) {
|
|
1382
|
+
is_updating_effect = value;
|
|
1383
|
+
}
|
|
1384
|
+
let is_destroying_effect = false;
|
|
1385
|
+
function set_is_destroying_effect(value) {
|
|
1386
|
+
is_destroying_effect = value;
|
|
1387
|
+
}
|
|
1388
|
+
let active_reaction = null;
|
|
1389
|
+
let untracking = false;
|
|
1390
|
+
function set_active_reaction(reaction) {
|
|
1391
|
+
active_reaction = reaction;
|
|
1392
|
+
}
|
|
1393
|
+
let active_effect = null;
|
|
1394
|
+
function set_active_effect(effect) {
|
|
1395
|
+
active_effect = effect;
|
|
1396
|
+
}
|
|
1397
|
+
let current_sources = null;
|
|
1398
|
+
function push_reaction_value(value) {
|
|
1399
|
+
if (active_reaction !== null && true) {
|
|
1400
|
+
if (current_sources === null) {
|
|
1401
|
+
current_sources = [value];
|
|
1402
|
+
} else {
|
|
1403
|
+
current_sources.push(value);
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
}
|
|
1407
|
+
let new_deps = null;
|
|
1408
|
+
let skipped_deps = 0;
|
|
1409
|
+
let untracked_writes = null;
|
|
1410
|
+
function set_untracked_writes(value) {
|
|
1411
|
+
untracked_writes = value;
|
|
1412
|
+
}
|
|
1413
|
+
let write_version = 1;
|
|
1414
|
+
let read_version = 0;
|
|
1415
|
+
let update_version = read_version;
|
|
1416
|
+
function set_update_version(value) {
|
|
1417
|
+
update_version = value;
|
|
1418
|
+
}
|
|
1419
|
+
function increment_write_version() {
|
|
1420
|
+
return ++write_version;
|
|
1421
|
+
}
|
|
1422
|
+
function is_dirty(reaction) {
|
|
1423
|
+
var flags = reaction.f;
|
|
1424
|
+
if ((flags & DIRTY) !== 0) {
|
|
1425
|
+
return true;
|
|
1426
|
+
}
|
|
1427
|
+
if (flags & DERIVED) {
|
|
1428
|
+
reaction.f &= ~WAS_MARKED;
|
|
1429
|
+
}
|
|
1430
|
+
if ((flags & MAYBE_DIRTY) !== 0) {
|
|
1431
|
+
var dependencies = reaction.deps;
|
|
1432
|
+
if (dependencies !== null) {
|
|
1433
|
+
var length = dependencies.length;
|
|
1434
|
+
for (var i = 0; i < length; i++) {
|
|
1435
|
+
var dependency = dependencies[i];
|
|
1436
|
+
if (is_dirty(
|
|
1437
|
+
/** @type {Derived} */
|
|
1438
|
+
dependency
|
|
1439
|
+
)) {
|
|
1440
|
+
update_derived(
|
|
1441
|
+
/** @type {Derived} */
|
|
1442
|
+
dependency
|
|
1443
|
+
);
|
|
1444
|
+
}
|
|
1445
|
+
if (dependency.wv > reaction.wv) {
|
|
1446
|
+
return true;
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
}
|
|
1450
|
+
if ((flags & CONNECTED) !== 0 && // During time traveling we don't want to reset the status so that
|
|
1451
|
+
// traversal of the graph in the other batches still happens
|
|
1452
|
+
batch_values === null) {
|
|
1453
|
+
set_signal_status(reaction, CLEAN);
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
return false;
|
|
1457
|
+
}
|
|
1458
|
+
function schedule_possible_effect_self_invalidation(signal, effect, root = true) {
|
|
1459
|
+
var reactions = signal.reactions;
|
|
1460
|
+
if (reactions === null) return;
|
|
1461
|
+
if (current_sources?.includes(signal)) {
|
|
1462
|
+
return;
|
|
1463
|
+
}
|
|
1464
|
+
for (var i = 0; i < reactions.length; i++) {
|
|
1465
|
+
var reaction = reactions[i];
|
|
1466
|
+
if ((reaction.f & DERIVED) !== 0) {
|
|
1467
|
+
schedule_possible_effect_self_invalidation(
|
|
1468
|
+
/** @type {Derived} */
|
|
1469
|
+
reaction,
|
|
1470
|
+
effect,
|
|
1471
|
+
false
|
|
1472
|
+
);
|
|
1473
|
+
} else if (effect === reaction) {
|
|
1474
|
+
if (root) {
|
|
1475
|
+
set_signal_status(reaction, DIRTY);
|
|
1476
|
+
} else if ((reaction.f & CLEAN) !== 0) {
|
|
1477
|
+
set_signal_status(reaction, MAYBE_DIRTY);
|
|
1478
|
+
}
|
|
1479
|
+
schedule_effect(
|
|
1480
|
+
/** @type {Effect} */
|
|
1481
|
+
reaction
|
|
1482
|
+
);
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1486
|
+
function update_reaction(reaction) {
|
|
1487
|
+
var previous_deps = new_deps;
|
|
1488
|
+
var previous_skipped_deps = skipped_deps;
|
|
1489
|
+
var previous_untracked_writes = untracked_writes;
|
|
1490
|
+
var previous_reaction = active_reaction;
|
|
1491
|
+
var previous_sources = current_sources;
|
|
1492
|
+
var previous_component_context = component_context;
|
|
1493
|
+
var previous_untracking = untracking;
|
|
1494
|
+
var previous_update_version = update_version;
|
|
1495
|
+
var flags = reaction.f;
|
|
1496
|
+
new_deps = /** @type {null | Value[]} */
|
|
1497
|
+
null;
|
|
1498
|
+
skipped_deps = 0;
|
|
1499
|
+
untracked_writes = null;
|
|
1500
|
+
active_reaction = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;
|
|
1501
|
+
current_sources = null;
|
|
1502
|
+
set_component_context(reaction.ctx);
|
|
1503
|
+
untracking = false;
|
|
1504
|
+
update_version = ++read_version;
|
|
1505
|
+
if (reaction.ac !== null) {
|
|
1506
|
+
without_reactive_context(() => {
|
|
1507
|
+
reaction.ac.abort(STALE_REACTION);
|
|
1508
|
+
});
|
|
1509
|
+
reaction.ac = null;
|
|
1510
|
+
}
|
|
1511
|
+
try {
|
|
1512
|
+
reaction.f |= REACTION_IS_UPDATING;
|
|
1513
|
+
var fn = (
|
|
1514
|
+
/** @type {Function} */
|
|
1515
|
+
reaction.fn
|
|
1516
|
+
);
|
|
1517
|
+
var result = fn();
|
|
1518
|
+
var deps = reaction.deps;
|
|
1519
|
+
if (new_deps !== null) {
|
|
1520
|
+
var i;
|
|
1521
|
+
remove_reactions(reaction, skipped_deps);
|
|
1522
|
+
if (deps !== null && skipped_deps > 0) {
|
|
1523
|
+
deps.length = skipped_deps + new_deps.length;
|
|
1524
|
+
for (i = 0; i < new_deps.length; i++) {
|
|
1525
|
+
deps[skipped_deps + i] = new_deps[i];
|
|
1526
|
+
}
|
|
1527
|
+
} else {
|
|
1528
|
+
reaction.deps = deps = new_deps;
|
|
1529
|
+
}
|
|
1530
|
+
if (effect_tracking() && (reaction.f & CONNECTED) !== 0) {
|
|
1531
|
+
for (i = skipped_deps; i < deps.length; i++) {
|
|
1532
|
+
(deps[i].reactions ??= []).push(reaction);
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
} else if (deps !== null && skipped_deps < deps.length) {
|
|
1536
|
+
remove_reactions(reaction, skipped_deps);
|
|
1537
|
+
deps.length = skipped_deps;
|
|
1538
|
+
}
|
|
1539
|
+
if (is_runes() && untracked_writes !== null && !untracking && deps !== null && (reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0) {
|
|
1540
|
+
for (i = 0; i < /** @type {Source[]} */
|
|
1541
|
+
untracked_writes.length; i++) {
|
|
1542
|
+
schedule_possible_effect_self_invalidation(
|
|
1543
|
+
untracked_writes[i],
|
|
1544
|
+
/** @type {Effect} */
|
|
1545
|
+
reaction
|
|
1546
|
+
);
|
|
1547
|
+
}
|
|
1548
|
+
}
|
|
1549
|
+
if (previous_reaction !== null && previous_reaction !== reaction) {
|
|
1550
|
+
read_version++;
|
|
1551
|
+
if (untracked_writes !== null) {
|
|
1552
|
+
if (previous_untracked_writes === null) {
|
|
1553
|
+
previous_untracked_writes = untracked_writes;
|
|
1554
|
+
} else {
|
|
1555
|
+
previous_untracked_writes.push(.../** @type {Source[]} */
|
|
1556
|
+
untracked_writes);
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1559
|
+
}
|
|
1560
|
+
if ((reaction.f & ERROR_VALUE) !== 0) {
|
|
1561
|
+
reaction.f ^= ERROR_VALUE;
|
|
1562
|
+
}
|
|
1563
|
+
return result;
|
|
1564
|
+
} catch (error) {
|
|
1565
|
+
return handle_error(error);
|
|
1566
|
+
} finally {
|
|
1567
|
+
reaction.f ^= REACTION_IS_UPDATING;
|
|
1568
|
+
new_deps = previous_deps;
|
|
1569
|
+
skipped_deps = previous_skipped_deps;
|
|
1570
|
+
untracked_writes = previous_untracked_writes;
|
|
1571
|
+
active_reaction = previous_reaction;
|
|
1572
|
+
current_sources = previous_sources;
|
|
1573
|
+
set_component_context(previous_component_context);
|
|
1574
|
+
untracking = previous_untracking;
|
|
1575
|
+
update_version = previous_update_version;
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
function remove_reaction(signal, dependency) {
|
|
1579
|
+
let reactions = dependency.reactions;
|
|
1580
|
+
if (reactions !== null) {
|
|
1581
|
+
var index = index_of.call(reactions, signal);
|
|
1582
|
+
if (index !== -1) {
|
|
1583
|
+
var new_length = reactions.length - 1;
|
|
1584
|
+
if (new_length === 0) {
|
|
1585
|
+
reactions = dependency.reactions = null;
|
|
1586
|
+
} else {
|
|
1587
|
+
reactions[index] = reactions[new_length];
|
|
1588
|
+
reactions.pop();
|
|
1589
|
+
}
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1592
|
+
if (reactions === null && (dependency.f & DERIVED) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear
|
|
1593
|
+
// to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`
|
|
1594
|
+
// allows us to skip the expensive work of disconnecting and immediately reconnecting it
|
|
1595
|
+
(new_deps === null || !new_deps.includes(dependency))) {
|
|
1596
|
+
set_signal_status(dependency, MAYBE_DIRTY);
|
|
1597
|
+
if ((dependency.f & CONNECTED) !== 0) {
|
|
1598
|
+
dependency.f ^= CONNECTED;
|
|
1599
|
+
dependency.f &= ~WAS_MARKED;
|
|
1600
|
+
}
|
|
1601
|
+
destroy_derived_effects(
|
|
1602
|
+
/** @type {Derived} **/
|
|
1603
|
+
dependency
|
|
1604
|
+
);
|
|
1605
|
+
remove_reactions(
|
|
1606
|
+
/** @type {Derived} **/
|
|
1607
|
+
dependency,
|
|
1608
|
+
0
|
|
1609
|
+
);
|
|
1610
|
+
}
|
|
1611
|
+
}
|
|
1612
|
+
function remove_reactions(signal, start_index) {
|
|
1613
|
+
var dependencies = signal.deps;
|
|
1614
|
+
if (dependencies === null) return;
|
|
1615
|
+
for (var i = start_index; i < dependencies.length; i++) {
|
|
1616
|
+
remove_reaction(signal, dependencies[i]);
|
|
1617
|
+
}
|
|
1618
|
+
}
|
|
1619
|
+
function update_effect(effect) {
|
|
1620
|
+
var flags = effect.f;
|
|
1621
|
+
if ((flags & DESTROYED) !== 0) {
|
|
1622
|
+
return;
|
|
1623
|
+
}
|
|
1624
|
+
set_signal_status(effect, CLEAN);
|
|
1625
|
+
var previous_effect = active_effect;
|
|
1626
|
+
var was_updating_effect = is_updating_effect;
|
|
1627
|
+
active_effect = effect;
|
|
1628
|
+
is_updating_effect = true;
|
|
1629
|
+
try {
|
|
1630
|
+
if ((flags & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) {
|
|
1631
|
+
destroy_block_effect_children(effect);
|
|
1632
|
+
} else {
|
|
1633
|
+
destroy_effect_children(effect);
|
|
1634
|
+
}
|
|
1635
|
+
execute_effect_teardown(effect);
|
|
1636
|
+
var teardown = update_reaction(effect);
|
|
1637
|
+
effect.teardown = typeof teardown === "function" ? teardown : null;
|
|
1638
|
+
effect.wv = write_version;
|
|
1639
|
+
var dep;
|
|
1640
|
+
if (BROWSER && tracing_mode_flag && (effect.f & DIRTY) !== 0 && effect.deps !== null) ;
|
|
1641
|
+
} finally {
|
|
1642
|
+
is_updating_effect = was_updating_effect;
|
|
1643
|
+
active_effect = previous_effect;
|
|
1644
|
+
}
|
|
1645
|
+
}
|
|
1646
|
+
function get$1(signal) {
|
|
1647
|
+
var flags = signal.f;
|
|
1648
|
+
var is_derived = (flags & DERIVED) !== 0;
|
|
1649
|
+
if (active_reaction !== null && !untracking) {
|
|
1650
|
+
var destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0;
|
|
1651
|
+
if (!destroyed && !current_sources?.includes(signal)) {
|
|
1652
|
+
var deps = active_reaction.deps;
|
|
1653
|
+
if ((active_reaction.f & REACTION_IS_UPDATING) !== 0) {
|
|
1654
|
+
if (signal.rv < read_version) {
|
|
1655
|
+
signal.rv = read_version;
|
|
1656
|
+
if (new_deps === null && deps !== null && deps[skipped_deps] === signal) {
|
|
1657
|
+
skipped_deps++;
|
|
1658
|
+
} else if (new_deps === null) {
|
|
1659
|
+
new_deps = [signal];
|
|
1660
|
+
} else if (!new_deps.includes(signal)) {
|
|
1661
|
+
new_deps.push(signal);
|
|
1662
|
+
}
|
|
1663
|
+
}
|
|
1664
|
+
} else {
|
|
1665
|
+
(active_reaction.deps ??= []).push(signal);
|
|
1666
|
+
var reactions = signal.reactions;
|
|
1667
|
+
if (reactions === null) {
|
|
1668
|
+
signal.reactions = [active_reaction];
|
|
1669
|
+
} else if (!reactions.includes(active_reaction)) {
|
|
1670
|
+
reactions.push(active_reaction);
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
if (is_destroying_effect) {
|
|
1676
|
+
if (old_values.has(signal)) {
|
|
1677
|
+
return old_values.get(signal);
|
|
1678
|
+
}
|
|
1679
|
+
if (is_derived) {
|
|
1680
|
+
var derived = (
|
|
1681
|
+
/** @type {Derived} */
|
|
1682
|
+
signal
|
|
1683
|
+
);
|
|
1684
|
+
var value = derived.v;
|
|
1685
|
+
if ((derived.f & CLEAN) === 0 && derived.reactions !== null || depends_on_old_values(derived)) {
|
|
1686
|
+
value = execute_derived(derived);
|
|
1687
|
+
}
|
|
1688
|
+
old_values.set(derived, value);
|
|
1689
|
+
return value;
|
|
1690
|
+
}
|
|
1691
|
+
} else if (is_derived && (!batch_values?.has(signal) || current_batch?.is_fork && !effect_tracking())) {
|
|
1692
|
+
derived = /** @type {Derived} */
|
|
1693
|
+
signal;
|
|
1694
|
+
if (is_dirty(derived)) {
|
|
1695
|
+
update_derived(derived);
|
|
1696
|
+
}
|
|
1697
|
+
if (is_updating_effect && effect_tracking() && (derived.f & CONNECTED) === 0) {
|
|
1698
|
+
reconnect(derived);
|
|
1699
|
+
}
|
|
1700
|
+
}
|
|
1701
|
+
if (batch_values?.has(signal)) {
|
|
1702
|
+
return batch_values.get(signal);
|
|
1703
|
+
}
|
|
1704
|
+
if ((signal.f & ERROR_VALUE) !== 0) {
|
|
1705
|
+
throw signal.v;
|
|
1706
|
+
}
|
|
1707
|
+
return signal.v;
|
|
1708
|
+
}
|
|
1709
|
+
function reconnect(derived) {
|
|
1710
|
+
if (derived.deps === null) return;
|
|
1711
|
+
derived.f ^= CONNECTED;
|
|
1712
|
+
for (const dep of derived.deps) {
|
|
1713
|
+
(dep.reactions ??= []).push(derived);
|
|
1714
|
+
if ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) {
|
|
1715
|
+
reconnect(
|
|
1716
|
+
/** @type {Derived} */
|
|
1717
|
+
dep
|
|
1718
|
+
);
|
|
1719
|
+
}
|
|
1720
|
+
}
|
|
1721
|
+
}
|
|
1722
|
+
function depends_on_old_values(derived) {
|
|
1723
|
+
if (derived.v === UNINITIALIZED) return true;
|
|
1724
|
+
if (derived.deps === null) return false;
|
|
1725
|
+
for (const dep of derived.deps) {
|
|
1726
|
+
if (old_values.has(dep)) {
|
|
1727
|
+
return true;
|
|
1728
|
+
}
|
|
1729
|
+
if ((dep.f & DERIVED) !== 0 && depends_on_old_values(
|
|
1730
|
+
/** @type {Derived} */
|
|
1731
|
+
dep
|
|
1732
|
+
)) {
|
|
1733
|
+
return true;
|
|
1734
|
+
}
|
|
1735
|
+
}
|
|
1736
|
+
return false;
|
|
1737
|
+
}
|
|
1738
|
+
function untrack(fn) {
|
|
1739
|
+
var previous_untracking = untracking;
|
|
1740
|
+
try {
|
|
1741
|
+
untracking = true;
|
|
1742
|
+
return fn();
|
|
1743
|
+
} finally {
|
|
1744
|
+
untracking = previous_untracking;
|
|
1745
|
+
}
|
|
1746
|
+
}
|
|
1747
|
+
const STATUS_MASK = -7169;
|
|
1748
|
+
function set_signal_status(signal, status) {
|
|
1749
|
+
signal.f = signal.f & STATUS_MASK | status;
|
|
1750
|
+
}
|
|
1751
|
+
const ATTR_REGEX = /[&"<]/g;
|
|
1752
|
+
const CONTENT_REGEX = /[&<]/g;
|
|
1753
|
+
function escape_html(value, is_attr) {
|
|
1754
|
+
const str = String(value ?? "");
|
|
1755
|
+
const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;
|
|
1756
|
+
pattern.lastIndex = 0;
|
|
1757
|
+
let escaped = "";
|
|
1758
|
+
let last = 0;
|
|
1759
|
+
while (pattern.test(str)) {
|
|
1760
|
+
const i = pattern.lastIndex - 1;
|
|
1761
|
+
const ch = str[i];
|
|
1762
|
+
escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<");
|
|
1763
|
+
last = i + 1;
|
|
1764
|
+
}
|
|
1765
|
+
return escaped + str.substring(last);
|
|
1766
|
+
}
|
|
1767
|
+
function subscribe_to_store(store, run, invalidate) {
|
|
1768
|
+
if (store == null) {
|
|
1769
|
+
run(void 0);
|
|
1770
|
+
if (invalidate) invalidate(void 0);
|
|
1771
|
+
return noop;
|
|
1772
|
+
}
|
|
1773
|
+
const unsub = untrack(
|
|
1774
|
+
() => store.subscribe(
|
|
1775
|
+
run,
|
|
1776
|
+
// @ts-expect-error
|
|
1777
|
+
invalidate
|
|
1778
|
+
)
|
|
1779
|
+
);
|
|
1780
|
+
return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;
|
|
1781
|
+
}
|
|
1782
|
+
var ssr_context = null;
|
|
1783
|
+
function set_ssr_context(v) {
|
|
1784
|
+
ssr_context = v;
|
|
1785
|
+
}
|
|
1786
|
+
function getContext(key) {
|
|
1787
|
+
const context_map = get_or_init_context_map();
|
|
1788
|
+
const result = (
|
|
1789
|
+
/** @type {T} */
|
|
1790
|
+
context_map.get(key)
|
|
1791
|
+
);
|
|
1792
|
+
return result;
|
|
1793
|
+
}
|
|
1794
|
+
function setContext(key, context) {
|
|
1795
|
+
get_or_init_context_map().set(key, context);
|
|
1796
|
+
return context;
|
|
1797
|
+
}
|
|
1798
|
+
function get_or_init_context_map(name) {
|
|
1799
|
+
if (ssr_context === null) {
|
|
1800
|
+
lifecycle_outside_component();
|
|
1801
|
+
}
|
|
1802
|
+
return ssr_context.c ??= new Map(get_parent_context(ssr_context) || void 0);
|
|
1803
|
+
}
|
|
1804
|
+
function push(fn) {
|
|
1805
|
+
ssr_context = { p: ssr_context, c: null, r: null };
|
|
1806
|
+
}
|
|
1807
|
+
function pop() {
|
|
1808
|
+
ssr_context = /** @type {SSRContext} */
|
|
1809
|
+
ssr_context.p;
|
|
1810
|
+
}
|
|
1811
|
+
function get_parent_context(ssr_context2) {
|
|
1812
|
+
let parent = ssr_context2.p;
|
|
1813
|
+
while (parent !== null) {
|
|
1814
|
+
const context_map = parent.c;
|
|
1815
|
+
if (context_map !== null) {
|
|
1816
|
+
return context_map;
|
|
1817
|
+
}
|
|
1818
|
+
parent = parent.p;
|
|
1819
|
+
}
|
|
1820
|
+
return null;
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
const subscriber_queue = [];
|
|
1824
|
+
function readable(value, start) {
|
|
1825
|
+
return {
|
|
1826
|
+
subscribe: writable(value, start).subscribe
|
|
1827
|
+
};
|
|
1828
|
+
}
|
|
1829
|
+
function writable(value, start = noop) {
|
|
1830
|
+
let stop = null;
|
|
1831
|
+
const subscribers = /* @__PURE__ */ new Set();
|
|
1832
|
+
function set(new_value) {
|
|
1833
|
+
if (safe_not_equal(value, new_value)) {
|
|
1834
|
+
value = new_value;
|
|
1835
|
+
if (stop) {
|
|
1836
|
+
const run_queue = !subscriber_queue.length;
|
|
1837
|
+
for (const subscriber of subscribers) {
|
|
1838
|
+
subscriber[1]();
|
|
1839
|
+
subscriber_queue.push(subscriber, value);
|
|
1840
|
+
}
|
|
1841
|
+
if (run_queue) {
|
|
1842
|
+
for (let i = 0; i < subscriber_queue.length; i += 2) {
|
|
1843
|
+
subscriber_queue[i][0](subscriber_queue[i + 1]);
|
|
1844
|
+
}
|
|
1845
|
+
subscriber_queue.length = 0;
|
|
1846
|
+
}
|
|
1847
|
+
}
|
|
1848
|
+
}
|
|
1849
|
+
}
|
|
1850
|
+
function update(fn) {
|
|
1851
|
+
set(fn(
|
|
1852
|
+
/** @type {T} */
|
|
1853
|
+
value
|
|
1854
|
+
));
|
|
1855
|
+
}
|
|
1856
|
+
function subscribe(run, invalidate = noop) {
|
|
1857
|
+
const subscriber = [run, invalidate];
|
|
1858
|
+
subscribers.add(subscriber);
|
|
1859
|
+
if (subscribers.size === 1) {
|
|
1860
|
+
stop = start(set, update) || noop;
|
|
1861
|
+
}
|
|
1862
|
+
run(
|
|
1863
|
+
/** @type {T} */
|
|
1864
|
+
value
|
|
1865
|
+
);
|
|
1866
|
+
return () => {
|
|
1867
|
+
subscribers.delete(subscriber);
|
|
1868
|
+
if (subscribers.size === 0 && stop) {
|
|
1869
|
+
stop();
|
|
1870
|
+
stop = null;
|
|
1871
|
+
}
|
|
1872
|
+
};
|
|
1873
|
+
}
|
|
1874
|
+
return { set, update, subscribe };
|
|
1875
|
+
}
|
|
1876
|
+
function derived(stores, fn, initial_value) {
|
|
1877
|
+
const single = !Array.isArray(stores);
|
|
1878
|
+
const stores_array = single ? [stores] : stores;
|
|
1879
|
+
if (!stores_array.every(Boolean)) {
|
|
1880
|
+
throw new Error("derived() expects stores as input, got a falsy value");
|
|
1881
|
+
}
|
|
1882
|
+
const auto = fn.length < 2;
|
|
1883
|
+
return readable(initial_value, (set, update) => {
|
|
1884
|
+
let started = false;
|
|
1885
|
+
const values = [];
|
|
1886
|
+
let pending = 0;
|
|
1887
|
+
let cleanup = noop;
|
|
1888
|
+
const sync = () => {
|
|
1889
|
+
if (pending) {
|
|
1890
|
+
return;
|
|
1891
|
+
}
|
|
1892
|
+
cleanup();
|
|
1893
|
+
const result = fn(single ? values[0] : values, set, update);
|
|
1894
|
+
if (auto) {
|
|
1895
|
+
set(result);
|
|
1896
|
+
} else {
|
|
1897
|
+
cleanup = typeof result === "function" ? result : noop;
|
|
1898
|
+
}
|
|
1899
|
+
};
|
|
1900
|
+
const unsubscribers = stores_array.map(
|
|
1901
|
+
(store, i) => subscribe_to_store(
|
|
1902
|
+
store,
|
|
1903
|
+
(value) => {
|
|
1904
|
+
values[i] = value;
|
|
1905
|
+
pending &= ~(1 << i);
|
|
1906
|
+
if (started) {
|
|
1907
|
+
sync();
|
|
1908
|
+
}
|
|
1909
|
+
},
|
|
1910
|
+
() => {
|
|
1911
|
+
pending |= 1 << i;
|
|
1912
|
+
}
|
|
1913
|
+
)
|
|
1914
|
+
);
|
|
1915
|
+
started = true;
|
|
1916
|
+
sync();
|
|
1917
|
+
return function stop() {
|
|
1918
|
+
run_all(unsubscribers);
|
|
1919
|
+
cleanup();
|
|
1920
|
+
started = false;
|
|
1921
|
+
};
|
|
1922
|
+
});
|
|
1923
|
+
}
|
|
1924
|
+
function get(store) {
|
|
1925
|
+
let value;
|
|
1926
|
+
subscribe_to_store(store, (_) => value = _)();
|
|
1927
|
+
return value;
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
export { object_prototype as $, internal_set as A, Batch as B, COMMENT_NODE as C, destroy_effect as D, invoke_error_boundary as E, queue_micro_task as F, svelte_boundary_reset_onerror as G, HYDRATION_START as H, effect_tracking as I, source as J, render_effect as K, LEGACY_PROPS as L, HYDRATION_END as M, HYDRATION_START_ELSE as N, untrack as O, increment as P, push$1 as Q, pop$1 as R, EFFECT_TRANSPARENT as S, EFFECT_PRESERVED as T, BOUNDARY_EFFECT as U, BROWSER as V, readable as W, writable as X, escape_html as Y, is_array as Z, get_prototype_of as _, get_first_child as a, getContext as a0, noop as a1, ssr_context as a2, get as a3, derived as a4, set_ssr_context as a5, push as a6, pop as a7, STALE_REACTION as a8, ELEMENT_PRESERVE_ATTRIBUTE_CASE as a9, ELEMENT_IS_INPUT as aa, ELEMENT_IS_NAMESPACED as ab, subscribe_to_store as ac, is_promise as ad, get_next_sibling as b, HYDRATION_ERROR as c, define_property as d, clear_text_content as e, flushSync as f, get$1 as g, hydration_failed as h, init_operations as i, array_from as j, component_root as k, set_active_reaction as l, mutable_source as m, set_active_effect as n, active_effect as o, active_reaction as p, create_text as q, setContext as r, set as s, block as t, branch as u, pause_effect as v, set_component_context as w, handle_error as x, component_context as y, move_effect as z };
|
|
1931
|
+
//# sourceMappingURL=index-CMS8WiSi.js.map
|