@elurjs/kit 2.4.10 → 2.5.1
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/CHANGELOG.md +313 -0
- package/README.md +248 -15
- package/dist/lib/action/index.cjs +1 -1
- package/dist/lib/action/index.js +1 -1
- package/dist/lib/{action-DZHihU3Z.cjs → action-BiE4tEty.cjs} +2 -2
- package/dist/lib/{action-DZHihU3Z.cjs.map → action-BiE4tEty.cjs.map} +1 -1
- package/dist/lib/{action-BB6N5yD-.js → action-CXVk8rWt.js} +3 -3
- package/dist/lib/{action-BB6N5yD-.js.map → action-CXVk8rWt.js.map} +1 -1
- package/dist/lib/adapter-DNsjXvq5.js +160 -0
- package/dist/lib/adapter-DNsjXvq5.js.map +1 -0
- package/dist/lib/adapter-Dz2hzR36.cjs +3 -0
- package/dist/lib/adapter-Dz2hzR36.cjs.map +1 -0
- package/dist/lib/adapters/bun.cjs +2 -2
- package/dist/lib/adapters/bun.cjs.map +1 -1
- package/dist/lib/adapters/bun.js +17 -9
- package/dist/lib/adapters/bun.js.map +1 -1
- package/dist/lib/adapters/index.d.cts +34 -0
- package/dist/lib/adapters/index.d.ts +34 -0
- package/dist/lib/adapters/netlify.cjs +1 -1
- package/dist/lib/adapters/netlify.js +7 -7
- package/dist/lib/adapters/node.cjs +5 -5
- package/dist/lib/adapters/node.cjs.map +1 -1
- package/dist/lib/adapters/node.js +20 -12
- package/dist/lib/adapters/node.js.map +1 -1
- package/dist/lib/adapters/vercel.cjs +1 -1
- package/dist/lib/adapters/vercel.js +8 -8
- package/dist/lib/build/build.d.cts +40 -0
- package/dist/lib/build/build.d.ts +40 -0
- package/dist/lib/build/document-shell.d.cts +47 -1
- package/dist/lib/build/document-shell.d.ts +47 -1
- package/dist/lib/build/vite-build.d.cts +25 -2
- package/dist/lib/build/vite-build.d.ts +25 -2
- package/dist/lib/cache/adapter.d.cts +41 -0
- package/dist/lib/cache/adapter.d.ts +41 -0
- package/dist/lib/cache/index.cjs +2 -0
- package/dist/lib/cache/index.cjs.map +1 -0
- package/dist/lib/cache/index.d.cts +5 -0
- package/dist/lib/cache/index.d.ts +5 -0
- package/dist/lib/cache/index.js +113 -0
- package/dist/lib/cache/index.js.map +1 -0
- package/dist/lib/cache/invalidation.d.cts +36 -0
- package/dist/lib/cache/invalidation.d.ts +36 -0
- package/dist/lib/cache/redis-adapter.d.cts +49 -0
- package/dist/lib/cache/redis-adapter.d.ts +49 -0
- package/dist/lib/cache-DGhTYyqh.js +50 -0
- package/dist/lib/cache-DGhTYyqh.js.map +1 -0
- package/dist/lib/cache-X1n4Ossu.cjs +2 -0
- package/dist/lib/cache-X1n4Ossu.cjs.map +1 -0
- package/dist/lib/cli/output.d.cts +58 -0
- package/dist/lib/cli/output.d.ts +58 -0
- package/dist/lib/cli/ports.d.cts +20 -0
- package/dist/lib/cli/ports.d.ts +20 -0
- package/dist/lib/cli.cjs +2559 -1488
- package/dist/lib/cli.cjs.map +1 -1
- package/dist/lib/cli.d.cts +21 -0
- package/dist/lib/cli.d.ts +21 -0
- package/dist/lib/cli.js +2558 -1488
- package/dist/lib/cli.js.map +1 -1
- package/dist/lib/config/index.cjs +1 -1
- package/dist/lib/config/index.cjs.map +1 -1
- package/dist/lib/config/index.d.cts +79 -0
- package/dist/lib/config/index.d.ts +79 -0
- package/dist/lib/config/index.js +21 -14
- package/dist/lib/config/index.js.map +1 -1
- package/dist/lib/{errors-ePYxDlhU.js → errors-j4cg9VN3.js} +24 -30
- package/dist/lib/{errors-ePYxDlhU.js.map → errors-j4cg9VN3.js.map} +1 -1
- package/dist/lib/errors-kSl9yLkg.cjs +2 -0
- package/dist/lib/{errors-0X7pCFNU.cjs.map → errors-kSl9yLkg.cjs.map} +1 -1
- package/dist/lib/hydrate-BSLuI0Nh.cjs +2 -0
- package/dist/lib/hydrate-BSLuI0Nh.cjs.map +1 -0
- package/dist/lib/hydrate-BaS7-d8C.js +133 -0
- package/dist/lib/hydrate-BaS7-d8C.js.map +1 -0
- package/dist/lib/idiomorph.esm-BOOTOg1r.cjs +2 -0
- package/dist/lib/idiomorph.esm-BOOTOg1r.cjs.map +1 -0
- package/dist/lib/idiomorph.esm-CXuY-EHB.js +371 -0
- package/dist/lib/idiomorph.esm-CXuY-EHB.js.map +1 -0
- package/dist/lib/index.cjs +1 -1
- package/dist/lib/index.cjs.map +1 -1
- package/dist/lib/index.d.cts +8 -6
- package/dist/lib/index.d.ts +8 -6
- package/dist/lib/index.js +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/interpolation-plugin-C0dTd69H.cjs +58 -0
- package/dist/lib/interpolation-plugin-C0dTd69H.cjs.map +1 -0
- package/dist/lib/{interpolation-plugin-Wgb1j4pT.js → interpolation-plugin-K2qE69tF.js} +95 -126
- package/dist/lib/interpolation-plugin-K2qE69tF.js.map +1 -0
- package/dist/lib/invalidation-CFpNQUv6.cjs +2 -0
- package/dist/lib/invalidation-CFpNQUv6.cjs.map +1 -0
- package/dist/lib/invalidation-DXhdE9wj.js +64 -0
- package/dist/lib/invalidation-DXhdE9wj.js.map +1 -0
- package/dist/lib/island/generate-entry.d.cts +40 -2
- package/dist/lib/island/generate-entry.d.ts +40 -2
- package/dist/lib/island/hydrate.d.cts +19 -6
- package/dist/lib/island/hydrate.d.ts +19 -6
- package/dist/lib/island/index.cjs +1 -1
- package/dist/lib/island/index.d.cts +2 -1
- package/dist/lib/island/index.d.ts +2 -1
- package/dist/lib/island/index.js +1 -1
- package/dist/lib/island/island.d.cts +15 -0
- package/dist/lib/island/island.d.ts +15 -0
- package/dist/lib/island-CTBnsOhI.js +59 -0
- package/dist/lib/island-CTBnsOhI.js.map +1 -0
- package/dist/lib/island-kfQEKRe_.cjs +2 -0
- package/dist/lib/island-kfQEKRe_.cjs.map +1 -0
- package/dist/lib/node-http-DVFcYeBS.js +723 -0
- package/dist/lib/node-http-DVFcYeBS.js.map +1 -0
- package/dist/lib/node-http-Uct7DhmN.cjs +13 -0
- package/dist/lib/node-http-Uct7DhmN.cjs.map +1 -0
- package/dist/lib/rolldown-runtime-BIInC43l.cjs +1 -0
- package/dist/lib/rolldown-runtime-Dy4uBu1J.js +11 -0
- package/dist/lib/router/client.cjs +1 -1
- package/dist/lib/router/client.cjs.map +1 -1
- package/dist/lib/router/client.d.cts +55 -8
- package/dist/lib/router/client.d.ts +55 -8
- package/dist/lib/router/client.js +298 -97
- package/dist/lib/router/client.js.map +1 -1
- package/dist/lib/router/redirects.d.cts +34 -0
- package/dist/lib/router/redirects.d.ts +34 -0
- package/dist/lib/runtime/handler.d.cts +59 -0
- package/dist/lib/runtime/handler.d.ts +59 -0
- package/dist/lib/runtime/index.cjs +1 -1
- package/dist/lib/runtime/index.d.cts +2 -1
- package/dist/lib/runtime/index.d.ts +2 -1
- package/dist/lib/runtime/index.js +4 -4
- package/dist/lib/runtime/logger.d.cts +47 -0
- package/dist/lib/runtime/logger.d.ts +47 -0
- package/dist/lib/runtime/node-http.d.cts +11 -1
- package/dist/lib/runtime/node-http.d.ts +11 -1
- package/dist/lib/runtime-ChE4flX3.cjs +2 -0
- package/dist/lib/runtime-ChE4flX3.cjs.map +1 -0
- package/dist/lib/runtime-OMyz5yE-.js +905 -0
- package/dist/lib/runtime-OMyz5yE-.js.map +1 -0
- package/dist/lib/seo/index.cjs +1 -10
- package/dist/lib/seo/index.d.cts +1 -0
- package/dist/lib/seo/index.d.ts +1 -0
- package/dist/lib/seo/index.js +2 -41
- package/dist/lib/seo/sitemap-from-routes.d.cts +24 -0
- package/dist/lib/seo/sitemap-from-routes.d.ts +24 -0
- package/dist/lib/{shared-CfqOLsKj.cjs → shared-CP0Dc3cp.cjs} +72 -47
- package/dist/lib/shared-CP0Dc3cp.cjs.map +1 -0
- package/dist/lib/{shared-DU3iQgr7.js → shared-D8w-neq2.js} +87 -58
- package/dist/lib/shared-D8w-neq2.js.map +1 -0
- package/dist/lib/sitemap-from-routes-CaBoiGvE.js +77 -0
- package/dist/lib/sitemap-from-routes-CaBoiGvE.js.map +1 -0
- package/dist/lib/sitemap-from-routes-DbcLLL4G.cjs +13 -0
- package/dist/lib/sitemap-from-routes-DbcLLL4G.cjs.map +1 -0
- package/dist/lib/ssr/render.d.cts +8 -2
- package/dist/lib/ssr/render.d.ts +8 -2
- package/dist/lib/ssr/server.d.cts +7 -0
- package/dist/lib/ssr/server.d.ts +7 -0
- package/dist/lib/ssr/stream-response.d.cts +30 -0
- package/dist/lib/ssr/stream-response.d.ts +30 -0
- package/dist/lib/ssr/stream.d.cts +16 -1
- package/dist/lib/ssr/stream.d.ts +16 -1
- package/dist/lib/{stream-DmZjYqHm.cjs → stream-Cg-xYG82.cjs} +3 -3
- package/dist/lib/stream-Cg-xYG82.cjs.map +1 -0
- package/dist/lib/stream-D-ytogdu.js +106 -0
- package/dist/lib/stream-D-ytogdu.js.map +1 -0
- package/dist/lib/vite/index.cjs +1 -1
- package/dist/lib/vite/index.cjs.map +1 -1
- package/dist/lib/vite/index.d.cts +11 -0
- package/dist/lib/vite/index.d.ts +11 -0
- package/dist/lib/vite/index.js +101 -94
- package/dist/lib/vite/index.js.map +1 -1
- package/package.json +25 -8
- package/dist/lib/errors-0X7pCFNU.cjs +0 -2
- package/dist/lib/hydrate-CJbUWdXu.js +0 -126
- package/dist/lib/hydrate-CJbUWdXu.js.map +0 -1
- package/dist/lib/hydrate-D6MR24mz.cjs +0 -2
- package/dist/lib/hydrate-D6MR24mz.cjs.map +0 -1
- package/dist/lib/interpolation-plugin-TWDch8nn.cjs +0 -39
- package/dist/lib/interpolation-plugin-TWDch8nn.cjs.map +0 -1
- package/dist/lib/interpolation-plugin-Wgb1j4pT.js.map +0 -1
- package/dist/lib/node-http-DRAUhO0c.js +0 -617
- package/dist/lib/node-http-DRAUhO0c.js.map +0 -1
- package/dist/lib/node-http-DhxguYyz.cjs +0 -13
- package/dist/lib/node-http-DhxguYyz.cjs.map +0 -1
- package/dist/lib/runtime-CrH5X-Es.cjs +0 -2
- package/dist/lib/runtime-CrH5X-Es.cjs.map +0 -1
- package/dist/lib/runtime-Ds2-wH6P.js +0 -520
- package/dist/lib/runtime-Ds2-wH6P.js.map +0 -1
- package/dist/lib/seo/index.cjs.map +0 -1
- package/dist/lib/seo/index.js.map +0 -1
- package/dist/lib/shared-CfqOLsKj.cjs.map +0 -1
- package/dist/lib/shared-DU3iQgr7.js.map +0 -1
- package/dist/lib/stream-CpOG052V.js +0 -104
- package/dist/lib/stream-CpOG052V.js.map +0 -1
- package/dist/lib/stream-DmZjYqHm.cjs.map +0 -1
|
@@ -1,57 +1,78 @@
|
|
|
1
1
|
//#region src/router/client.ts
|
|
2
|
-
var e =
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var e = "data-elur-persist";
|
|
3
|
+
function t(e, t) {
|
|
4
|
+
document.dispatchEvent(new CustomEvent(e, { detail: t }));
|
|
5
|
+
}
|
|
6
|
+
var n = !0, r = null;
|
|
7
|
+
function i() {
|
|
8
|
+
return n ? (r ||= (async () => {
|
|
9
|
+
let e = new URL("/__elur-js/render", location.origin);
|
|
10
|
+
e.searchParams.set("page", "/");
|
|
7
11
|
try {
|
|
8
|
-
let
|
|
12
|
+
let t = await fetch(e.toString(), { headers: {
|
|
9
13
|
Accept: "application/json",
|
|
10
14
|
"X-Elur-Probe": "1"
|
|
11
15
|
} });
|
|
12
|
-
return
|
|
16
|
+
return n = t.ok, t.ok;
|
|
13
17
|
} catch {
|
|
14
|
-
return
|
|
18
|
+
return n = !1, !1;
|
|
15
19
|
}
|
|
16
|
-
})(),
|
|
20
|
+
})(), r) : Promise.resolve(!1);
|
|
17
21
|
}
|
|
18
|
-
function
|
|
22
|
+
function a(e) {
|
|
19
23
|
return e.tagName === "A" && e.hostname === location.hostname && e.target === "" && !e.getAttribute("download") && !e.hasAttribute("data-no-router");
|
|
20
24
|
}
|
|
21
|
-
function
|
|
25
|
+
function o(e) {
|
|
22
26
|
return e.metaKey || e.ctrlKey || e.shiftKey || e.altKey;
|
|
23
27
|
}
|
|
24
|
-
var
|
|
25
|
-
function
|
|
28
|
+
var s = 3e4, c = 32, l = /* @__PURE__ */ new Map();
|
|
29
|
+
function u(e, t) {
|
|
26
30
|
return e + t;
|
|
27
31
|
}
|
|
28
|
-
function
|
|
29
|
-
let t =
|
|
32
|
+
function d(e) {
|
|
33
|
+
let t = l.get(e);
|
|
30
34
|
if (t) {
|
|
31
|
-
if (Date.now() - t.ts >
|
|
32
|
-
|
|
35
|
+
if (Date.now() - t.ts > s) {
|
|
36
|
+
l.delete(e);
|
|
33
37
|
return;
|
|
34
38
|
}
|
|
35
|
-
return t.payload;
|
|
39
|
+
return l.delete(e), l.set(e, t), t.payload;
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
|
-
function
|
|
39
|
-
|
|
42
|
+
function f(e, t) {
|
|
43
|
+
for (l.delete(e), l.set(e, {
|
|
40
44
|
payload: t,
|
|
41
45
|
ts: Date.now()
|
|
42
|
-
});
|
|
46
|
+
}); l.size > c;) {
|
|
47
|
+
let e = l.keys().next().value;
|
|
48
|
+
if (e === void 0) break;
|
|
49
|
+
l.delete(e);
|
|
50
|
+
}
|
|
43
51
|
}
|
|
44
|
-
|
|
45
|
-
let
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
function p() {
|
|
53
|
+
let e = globalThis.navigator?.connection;
|
|
54
|
+
return !(e?.saveData || e?.effectiveType === "slow-2g" || e?.effectiveType === "2g");
|
|
55
|
+
}
|
|
56
|
+
async function m(e, t, r) {
|
|
57
|
+
let a = u(e, t), o = d(a);
|
|
58
|
+
if (o) return {
|
|
59
|
+
payload: o,
|
|
60
|
+
fromCache: !0
|
|
61
|
+
};
|
|
62
|
+
if (n && await i()) {
|
|
63
|
+
let n = await h(e, t, r);
|
|
64
|
+
if (n) return f(a, n), {
|
|
65
|
+
payload: n,
|
|
66
|
+
fromCache: !1
|
|
67
|
+
};
|
|
50
68
|
}
|
|
51
|
-
let
|
|
52
|
-
|
|
69
|
+
let s = await g(e, t, r);
|
|
70
|
+
if (s) return f(a, s), {
|
|
71
|
+
payload: s,
|
|
72
|
+
fromCache: !1
|
|
73
|
+
};
|
|
53
74
|
}
|
|
54
|
-
async function
|
|
75
|
+
async function h(e, t, n) {
|
|
55
76
|
let r = new URL("/__elur-js/render", location.origin);
|
|
56
77
|
r.searchParams.set("page", e);
|
|
57
78
|
let i = new URL(location.href);
|
|
@@ -75,7 +96,7 @@ async function d(e, t, n) {
|
|
|
75
96
|
}
|
|
76
97
|
return o;
|
|
77
98
|
}
|
|
78
|
-
async function
|
|
99
|
+
async function g(e, t, n) {
|
|
79
100
|
let r = e + (t || ""), i;
|
|
80
101
|
try {
|
|
81
102
|
i = await fetch(r, {
|
|
@@ -102,32 +123,35 @@ async function f(e, t, n) {
|
|
|
102
123
|
let t = e.getAttribute("href");
|
|
103
124
|
t && document.head.querySelector(`link[href="${t}"]`) || (u += e.outerHTML);
|
|
104
125
|
}
|
|
105
|
-
let f = o.querySelector("title")?.textContent ?? void 0;
|
|
126
|
+
let f = o.querySelector("title")?.textContent ?? void 0, p = o.getElementById("elur-data"), m = o.getElementById("elur-actions");
|
|
106
127
|
return {
|
|
107
128
|
body: c,
|
|
108
129
|
head: u,
|
|
109
|
-
title: f
|
|
130
|
+
title: f,
|
|
131
|
+
data: p?.textContent ?? void 0,
|
|
132
|
+
actions: m?.textContent ?? void 0
|
|
110
133
|
};
|
|
111
134
|
}
|
|
112
|
-
async function
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
135
|
+
async function _(e, t = "", n) {
|
|
136
|
+
if (n?.force !== !0 && !p()) return;
|
|
137
|
+
let r = u(e, t);
|
|
138
|
+
if (l.has(r)) {
|
|
139
|
+
let e = l.get(r);
|
|
140
|
+
if (Date.now() - e.ts <= s) return;
|
|
117
141
|
}
|
|
118
|
-
await
|
|
142
|
+
await m(e, t);
|
|
119
143
|
}
|
|
120
|
-
function
|
|
144
|
+
function v() {
|
|
121
145
|
return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? !1;
|
|
122
146
|
}
|
|
123
|
-
function
|
|
147
|
+
function y() {
|
|
124
148
|
return typeof document.startViewTransition == "function";
|
|
125
149
|
}
|
|
126
|
-
var
|
|
127
|
-
function
|
|
128
|
-
|
|
150
|
+
var b = null;
|
|
151
|
+
function x() {
|
|
152
|
+
b &&= (b.controller.abort(), null);
|
|
129
153
|
}
|
|
130
|
-
function
|
|
154
|
+
function S(e) {
|
|
131
155
|
let t = e.querySelectorAll("link[rel=\"stylesheet\"]");
|
|
132
156
|
for (let e of t) {
|
|
133
157
|
let t = e.getAttribute("href");
|
|
@@ -151,7 +175,7 @@ function v(e) {
|
|
|
151
175
|
}
|
|
152
176
|
}
|
|
153
177
|
}
|
|
154
|
-
function
|
|
178
|
+
function C(e) {
|
|
155
179
|
let t = document.getElementById("elur-route-announcer");
|
|
156
180
|
t || (t = document.createElement("div"), t.id = "elur-route-announcer", t.setAttribute("aria-live", "assertive"), t.setAttribute("aria-atomic", "true"), t.setAttribute("role", "status"), t.setAttribute("style", "position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;"), document.body.appendChild(t)), t.textContent = "";
|
|
157
181
|
let n = t, r = setTimeout(() => {
|
|
@@ -162,61 +186,201 @@ function y(e) {
|
|
|
162
186
|
}, 50);
|
|
163
187
|
typeof r == "object" && r && "unref" in r && r.unref();
|
|
164
188
|
}
|
|
165
|
-
function
|
|
189
|
+
function w() {
|
|
166
190
|
let e = document.getElementById("app");
|
|
167
191
|
e && (e.hasAttribute("tabindex") || e.setAttribute("tabindex", "-1"), e.focus({ preventScroll: !1 }));
|
|
168
192
|
}
|
|
169
|
-
function
|
|
193
|
+
function T(e, t) {
|
|
170
194
|
let n = location.origin + e + (t || ""), r = document.querySelector("link[rel=\"canonical\"]");
|
|
171
195
|
r || (r = document.createElement("link"), r.rel = "canonical", document.head.appendChild(r)), r.href = n;
|
|
172
196
|
let i = document.querySelector("meta[property=\"og:url\"]");
|
|
173
197
|
i || (i = document.createElement("meta"), i.setAttribute("property", "og:url"), document.head.appendChild(i)), i.content = n;
|
|
174
198
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
199
|
+
function E(t, n) {
|
|
200
|
+
let r = t.querySelectorAll(`[${e}]`);
|
|
201
|
+
if (r.length === 0) return [];
|
|
202
|
+
let i = [];
|
|
203
|
+
for (let t of r) {
|
|
204
|
+
let r = t.getAttribute(e);
|
|
205
|
+
if (!r || i.some((e) => e.oldEl.contains(t))) continue;
|
|
206
|
+
let a = n.querySelector(`[${e}="${D(r)}"]`);
|
|
207
|
+
a && i.push({
|
|
208
|
+
oldEl: t,
|
|
209
|
+
newEl: a
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
return i;
|
|
213
|
+
}
|
|
214
|
+
function D(e) {
|
|
215
|
+
let t = globalThis.CSS?.escape;
|
|
216
|
+
return t ? t(e) : e.replace(/["\\\]]/g, "\\$&");
|
|
217
|
+
}
|
|
218
|
+
function O(e) {
|
|
219
|
+
for (let { oldEl: t, newEl: n } of e) {
|
|
220
|
+
k(t, n);
|
|
221
|
+
let e = n.parentNode;
|
|
222
|
+
e && typeof e.moveBefore == "function" ? (e.moveBefore(t, n), n.remove()) : n.replaceWith(t);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
function k(e, t) {
|
|
226
|
+
let n = (e) => (e.matches?.("[data-elur-island]") ? [e] : []).concat(Array.from(e.querySelectorAll("[data-elur-island]"))), r = /* @__PURE__ */ new Map();
|
|
227
|
+
for (let e of n(t)) {
|
|
228
|
+
let t = e.getAttribute("data-elur-island");
|
|
229
|
+
t && r.set(t, e.getAttribute("data-props"));
|
|
230
|
+
}
|
|
231
|
+
for (let t of n(e)) {
|
|
232
|
+
let e = t.getAttribute("data-elur-island");
|
|
233
|
+
if (!e) continue;
|
|
234
|
+
let n = r.get(e), i = t.getAttribute("data-props");
|
|
235
|
+
n !== void 0 && n !== i && t.dispatchEvent(new CustomEvent("elur:persist-props-changed", {
|
|
236
|
+
bubbles: !0,
|
|
237
|
+
detail: {
|
|
238
|
+
name: e,
|
|
239
|
+
props: n,
|
|
240
|
+
previousProps: i
|
|
241
|
+
}
|
|
242
|
+
}));
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
var A = null, j = /* @__PURE__ */ new Set([
|
|
246
|
+
"",
|
|
247
|
+
"text/javascript",
|
|
248
|
+
"application/javascript",
|
|
249
|
+
"module"
|
|
250
|
+
]);
|
|
251
|
+
function M(e) {
|
|
252
|
+
A ||= new Set(Array.from(document.querySelectorAll("script[src]")).map((e) => e.getAttribute("src")).filter((e) => !!e).map((e) => new URL(e, location.href).href));
|
|
253
|
+
for (let t of Array.from(e.querySelectorAll("script"))) {
|
|
254
|
+
if (t.hasAttribute("data-elur-no-reload") || !j.has(t.type)) continue;
|
|
255
|
+
let e = t.getAttribute("src");
|
|
256
|
+
if (e) {
|
|
257
|
+
let t = new URL(e, location.href).href;
|
|
258
|
+
if (A.has(t)) continue;
|
|
259
|
+
A.add(t);
|
|
260
|
+
}
|
|
261
|
+
let n = document.createElement("script");
|
|
262
|
+
for (let e of Array.from(t.attributes)) n.setAttribute(e.name, e.value);
|
|
263
|
+
n.textContent = t.textContent, t.replaceWith(n);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
function N(e, t) {
|
|
267
|
+
let n = document.getElementById(e);
|
|
268
|
+
if (t === void 0) {
|
|
269
|
+
n?.remove();
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (n) {
|
|
273
|
+
n.textContent = t;
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
let r = document.createElement("script");
|
|
277
|
+
r.type = "application/json", r.id = e, r.textContent = t, document.body.appendChild(r);
|
|
278
|
+
}
|
|
279
|
+
var P = !1;
|
|
280
|
+
function F(t) {
|
|
281
|
+
return !!(t instanceof Element && (t.hasAttribute(e) || typeof t.__elur_js_island_dispose == "function"));
|
|
282
|
+
}
|
|
283
|
+
async function I(e, t) {
|
|
284
|
+
let { Idiomorph: n } = await import("../idiomorph.esm-CXuY-EHB.js"), r = document.createElement("div");
|
|
285
|
+
r.appendChild(t), n.morph(e, r, {
|
|
286
|
+
morphStyle: "innerHTML",
|
|
287
|
+
callbacks: { beforeNodeMorphed: (e) => !F(e) && void 0 }
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
async function L(n, r = "", i = !0) {
|
|
291
|
+
let a = !i;
|
|
292
|
+
x();
|
|
293
|
+
let o = new AbortController();
|
|
294
|
+
b = {
|
|
295
|
+
controller: o,
|
|
296
|
+
pathname: n
|
|
297
|
+
};
|
|
298
|
+
let s = {
|
|
299
|
+
pathname: n,
|
|
300
|
+
search: r,
|
|
301
|
+
popstate: a
|
|
181
302
|
};
|
|
182
|
-
|
|
303
|
+
t("elur:navigate-start", {
|
|
304
|
+
...s,
|
|
305
|
+
fromCache: d(u(n, r)) !== void 0
|
|
306
|
+
});
|
|
307
|
+
let c;
|
|
183
308
|
try {
|
|
184
|
-
|
|
309
|
+
c = await m(n, r, o.signal);
|
|
185
310
|
} catch (e) {
|
|
186
|
-
if (
|
|
187
|
-
throw
|
|
311
|
+
if (o.signal.aborted) return !1;
|
|
312
|
+
throw t("elur:navigate-error", {
|
|
313
|
+
...s,
|
|
314
|
+
fromCache: !1
|
|
315
|
+
}), e;
|
|
188
316
|
}
|
|
189
|
-
if (
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
317
|
+
if (b && b.controller !== o && o.signal.aborted) return !1;
|
|
318
|
+
if (b = null, !c) return t("elur:navigate-error", {
|
|
319
|
+
...s,
|
|
320
|
+
fromCache: !1
|
|
321
|
+
}), !1;
|
|
322
|
+
let { payload: l, fromCache: f } = c, p = document.getElementById("app");
|
|
323
|
+
if (!p) return t("elur:navigate-error", {
|
|
324
|
+
...s,
|
|
325
|
+
fromCache: f
|
|
326
|
+
}), !1;
|
|
327
|
+
i && history.replaceState({
|
|
193
328
|
n: location.pathname,
|
|
194
329
|
scroll: window.scrollY
|
|
195
330
|
}, "", location.href);
|
|
196
|
-
let
|
|
197
|
-
let
|
|
198
|
-
|
|
199
|
-
|
|
331
|
+
let h = new URL(location.href), g = async () => {
|
|
332
|
+
let t = [];
|
|
333
|
+
p.querySelectorAll("[data-scroll-preserve]").forEach((e) => {
|
|
334
|
+
t.push({
|
|
200
335
|
el: e,
|
|
201
336
|
top: e.scrollTop
|
|
202
337
|
});
|
|
203
|
-
}),
|
|
204
|
-
let
|
|
205
|
-
|
|
206
|
-
|
|
338
|
+
}), S(p);
|
|
339
|
+
let a = () => {
|
|
340
|
+
let e = document.createElement("template");
|
|
341
|
+
return e.innerHTML = l.body, S(e.content), e.content;
|
|
342
|
+
}, o = a(), c = E(p, o);
|
|
343
|
+
if (document.dispatchEvent(new CustomEvent("elur:before-render", { detail: {
|
|
344
|
+
...s,
|
|
345
|
+
persisted: c.map((e) => e.oldEl)
|
|
346
|
+
} })), O(c), P) try {
|
|
347
|
+
await I(p, o);
|
|
348
|
+
} catch {
|
|
349
|
+
let t = a(), n = [];
|
|
350
|
+
for (let r of t.querySelectorAll(`[${e}]`)) {
|
|
351
|
+
let t = r.getAttribute(e), i = c.find((n) => n.oldEl.getAttribute(e) === t)?.oldEl;
|
|
352
|
+
i && n.push({
|
|
353
|
+
oldEl: i,
|
|
354
|
+
newEl: r
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
O(n), p.replaceChildren(t);
|
|
358
|
+
}
|
|
359
|
+
else p.replaceChildren(o);
|
|
360
|
+
R(l.head, l.title), l.clearActionErrorCookie && (document.cookie = l.clearActionErrorCookie), i && history.pushState({
|
|
361
|
+
n,
|
|
207
362
|
scroll: 0
|
|
208
|
-
}, "",
|
|
209
|
-
let
|
|
210
|
-
window.scrollTo(0,
|
|
211
|
-
for (let e of
|
|
212
|
-
let t =
|
|
363
|
+
}, "", n + (r || h.search));
|
|
364
|
+
let u = i ? 0 : history.state?.scroll ?? 0;
|
|
365
|
+
window.scrollTo(0, u);
|
|
366
|
+
for (let e of t) {
|
|
367
|
+
let t = p.querySelector(`[data-scroll-preserve="${e.el.getAttribute("data-scroll-preserve")}"]`);
|
|
213
368
|
t && (t.scrollTop = e.top);
|
|
214
369
|
}
|
|
215
|
-
|
|
370
|
+
T(n, r), N("elur-data", l.data ?? void 0), N("elur-actions", l.actions ?? void 0), M(p), C(n), i && w(), document.dispatchEvent(new CustomEvent("elur:rendered", { detail: s }));
|
|
216
371
|
};
|
|
217
|
-
|
|
372
|
+
if (y() && !v()) {
|
|
373
|
+
let e = document.startViewTransition(() => g());
|
|
374
|
+
try {
|
|
375
|
+
await e.updateCallbackDone;
|
|
376
|
+
} catch {}
|
|
377
|
+
} else await g();
|
|
378
|
+
return t("elur:navigate-end", {
|
|
379
|
+
...s,
|
|
380
|
+
fromCache: f
|
|
381
|
+
}), !0;
|
|
218
382
|
}
|
|
219
|
-
function
|
|
383
|
+
function R(e, t) {
|
|
220
384
|
if (document.querySelectorAll("[data-elur-head]").forEach((e) => e.remove()), e && e.trim().length > 0) {
|
|
221
385
|
let t = document.createElement("template");
|
|
222
386
|
t.innerHTML = e;
|
|
@@ -224,8 +388,8 @@ function C(e, t) {
|
|
|
224
388
|
r && (document.title = r.textContent ?? "", r.remove()), document.head.appendChild(n);
|
|
225
389
|
} else t && (document.title = t);
|
|
226
390
|
}
|
|
227
|
-
var
|
|
228
|
-
function
|
|
391
|
+
var z = /* @__PURE__ */ new WeakSet();
|
|
392
|
+
function B() {
|
|
229
393
|
let e = (e) => {
|
|
230
394
|
let t = e.getAttribute("href");
|
|
231
395
|
if (!t || t.startsWith("#") || t.startsWith("mailto:") || t.startsWith("javascript:")) return null;
|
|
@@ -235,18 +399,18 @@ function T() {
|
|
|
235
399
|
search: n === -1 ? "" : t.slice(n)
|
|
236
400
|
};
|
|
237
401
|
}, t = (t) => {
|
|
238
|
-
if (
|
|
239
|
-
|
|
402
|
+
if (z.has(t) || !a(t) || t.hasAttribute("data-no-prefetch")) return;
|
|
403
|
+
z.add(t);
|
|
240
404
|
let n = () => {
|
|
241
405
|
let n = e(t);
|
|
242
|
-
n &&
|
|
406
|
+
n && _(n.path, n.search, { force: t.dataset.prefetch === "always" });
|
|
243
407
|
};
|
|
244
|
-
if (t.addEventListener("pointerenter", n, { once: !0 }), t.addEventListener("focus", n, { once: !0 }), t.dataset.prefetch === "viewport" && "IntersectionObserver" in window) {
|
|
408
|
+
if (t.addEventListener("pointerenter", n, { once: !0 }), t.addEventListener("focus", n, { once: !0 }), t.addEventListener("pointerdown", n, { once: !0 }), t.dataset.prefetch === "viewport" && "IntersectionObserver" in window) {
|
|
245
409
|
let n = new IntersectionObserver((t) => {
|
|
246
410
|
for (let r of t) {
|
|
247
411
|
if (!r.isIntersecting) continue;
|
|
248
412
|
let t = e(r.target);
|
|
249
|
-
t &&
|
|
413
|
+
t && _(t.path, t.search), n.disconnect();
|
|
250
414
|
}
|
|
251
415
|
}, {
|
|
252
416
|
rootMargin: "200px",
|
|
@@ -263,13 +427,50 @@ function T() {
|
|
|
263
427
|
subtree: !0
|
|
264
428
|
}), document.addEventListener("elur:rendered", n);
|
|
265
429
|
}
|
|
266
|
-
|
|
267
|
-
|
|
430
|
+
var V = 200, H = "elur-loading-indicator";
|
|
431
|
+
function U() {
|
|
432
|
+
if (typeof document > "u") return;
|
|
433
|
+
let e = null, t = null, n = null, r = 0, i = () => v(), a = () => {
|
|
434
|
+
e && (e.style.transform = `scaleX(${Math.min(r, 100) / 100})`);
|
|
435
|
+
}, o = () => {
|
|
436
|
+
e || (e = document.createElement("div"), e.id = H, e.setAttribute("aria-hidden", "true"), Object.assign(e.style, {
|
|
437
|
+
position: "fixed",
|
|
438
|
+
top: "0",
|
|
439
|
+
left: "0",
|
|
440
|
+
right: "0",
|
|
441
|
+
height: "2px",
|
|
442
|
+
background: "currentColor",
|
|
443
|
+
color: "var(--elur-loading-color, #4f7cff)",
|
|
444
|
+
transform: "scaleX(0)",
|
|
445
|
+
transformOrigin: "0 50%",
|
|
446
|
+
transition: i() ? "none" : "transform 150ms ease-out, opacity 200ms ease-in",
|
|
447
|
+
zIndex: "2147483647",
|
|
448
|
+
pointerEvents: "none",
|
|
449
|
+
opacity: "1"
|
|
450
|
+
}), document.body.appendChild(e), r = 10, a(), i() || (n = setInterval(() => {
|
|
451
|
+
r += (80 - r) * .12, a();
|
|
452
|
+
}, 150)));
|
|
453
|
+
}, s = () => {
|
|
454
|
+
if (t &&= (clearTimeout(t), null), n &&= (clearInterval(n), null), !e) return;
|
|
455
|
+
r = 100, a();
|
|
456
|
+
let o = e;
|
|
457
|
+
e = null, setTimeout(() => {
|
|
458
|
+
o.style.opacity = "0", setTimeout(() => o.remove(), i() ? 0 : 200);
|
|
459
|
+
}, 120);
|
|
460
|
+
};
|
|
461
|
+
document.addEventListener("elur:navigate-start", (e) => {
|
|
462
|
+
e.detail?.fromCache || (s(), t = setTimeout(o, V));
|
|
463
|
+
}), document.addEventListener("elur:navigate-end", s), document.addEventListener("elur:navigate-error", s);
|
|
464
|
+
}
|
|
465
|
+
var W = !1;
|
|
466
|
+
function G(e = {}) {
|
|
467
|
+
if (P = e.morph === !0, W) return;
|
|
468
|
+
W = !0, "scrollRestoration" in history && (history.scrollRestoration = "manual"), document.querySelector("meta[name=\"elur:render-endpoint\"]")?.getAttribute("content") === "off" && (n = !1);
|
|
268
469
|
let t = document.getElementById("app");
|
|
269
|
-
t &&
|
|
270
|
-
if (!(e instanceof MouseEvent) ||
|
|
470
|
+
t && S(t), document.addEventListener("click", async (e) => {
|
|
471
|
+
if (!(e instanceof MouseEvent) || o(e) || e.defaultPrevented) return;
|
|
271
472
|
let t = e.target.closest("a");
|
|
272
|
-
if (!t || !
|
|
473
|
+
if (!t || !a(t)) return;
|
|
273
474
|
let n = t.getAttribute("href");
|
|
274
475
|
if (!n || n.startsWith("mailto:") || n.startsWith("javascript:")) return;
|
|
275
476
|
if (n.startsWith("#")) {
|
|
@@ -283,16 +484,16 @@ function E() {
|
|
|
283
484
|
return;
|
|
284
485
|
}
|
|
285
486
|
e.preventDefault();
|
|
286
|
-
let
|
|
287
|
-
await
|
|
487
|
+
let r = n.indexOf("?");
|
|
488
|
+
await L(r === -1 ? n : n.slice(0, r), r === -1 ? "" : n.slice(r)) || location.assign(n);
|
|
288
489
|
}), window.addEventListener("popstate", (e) => {
|
|
289
|
-
|
|
290
|
-
}),
|
|
490
|
+
L(e.state?.n ?? location.pathname, location.search, !1);
|
|
491
|
+
}), e.prefetch !== !1 && B(), e.loadingIndicator === !0 && U();
|
|
291
492
|
}
|
|
292
|
-
function
|
|
293
|
-
|
|
493
|
+
function K() {
|
|
494
|
+
l.clear(), b = null, n = !0, r = null, A = null, P = !1, W = !1;
|
|
294
495
|
}
|
|
295
496
|
//#endregion
|
|
296
|
-
export {
|
|
497
|
+
export { K as __resetRouterState, S as hoistStyles, L as navigateTo, _ as prefetch, G as startClientRouter };
|
|
297
498
|
|
|
298
499
|
//# sourceMappingURL=client.js.map
|