@manyducks.co/dolla 2.0.0-alpha.1 → 2.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,29 +1,73 @@
1
- var bt = Object.defineProperty;
2
- var et = (a) => {
3
- throw TypeError(a);
1
+ var pt = Object.defineProperty;
2
+ var Ze = (n) => {
3
+ throw TypeError(n);
4
4
  };
5
- var vt = (a, e, t) => e in a ? bt(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
6
- var k = (a, e, t) => vt(a, typeof e != "symbol" ? e + "" : e, t), ze = (a, e, t) => e.has(a) || et("Cannot " + t);
7
- var i = (a, e, t) => (ze(a, e, "read from private field"), t ? t.call(a) : e.get(a)), g = (a, e, t) => e.has(a) ? et("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(a) : e.set(a, t), w = (a, e, t, n) => (ze(a, e, "write to private field"), n ? n.call(a, t) : e.set(a, t), t), P = (a, e, t) => (ze(a, e, "access private method"), t);
8
- var tt = (a, e, t, n) => ({
9
- set _(o) {
10
- w(a, e, o, t);
5
+ var mt = (n, e, t) => e in n ? pt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
6
+ var k = (n, e, t) => mt(n, typeof e != "symbol" ? e + "" : e, t), Fe = (n, e, t) => e.has(n) || Ze("Cannot " + t);
7
+ var a = (n, e, t) => (Fe(n, e, "read from private field"), t ? t.call(n) : e.get(n)), u = (n, e, t) => e.has(n) ? Ze("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(n) : e.set(n, t), m = (n, e, t, r) => (Fe(n, e, "write to private field"), r ? r.call(n, t) : e.set(n, t), t), P = (n, e, t) => (Fe(n, e, "access private method"), t);
8
+ var et = (n, e, t, r) => ({
9
+ set _(s) {
10
+ m(n, e, s, t);
11
11
  },
12
12
  get _() {
13
- return i(a, e, n);
13
+ return a(n, e, r);
14
14
  }
15
15
  });
16
- import { i as Ge, s as Be, a as $t, d as Qe, b as Et, c as Ze, e as H, f as Q, g as lt, h as Lt, w as ut, j as Ce, r as kt, k as St, l as nt, m as Pt, t as Mt, n as Rt, o as Ot, p as xt, q as rt, u as at, v as Nt, x as Ne, y as Te } from "./fragment-DHJiX0-a.js";
17
- import { F as yn, A as wn, z as bn, B as vn, C as $n } from "./fragment-DHJiX0-a.js";
18
- function ht(a, e) {
19
- return e.outlet();
16
+ import { h as tt, c as yt, i as Ie, s as Ge, a as wt, d as Be, b as bt, e as Xe, f as D, g as K, j as lt, k as vt, w as ht, P as ut, l as rt, m as $t, t as Et, n as kt, o as Lt, p as Pt, q as nt, r as at, u as St, v as Oe, x as Te, y as Rt, z as xt, A as Mt } from "./passthrough-DrtCifRF.js";
17
+ import { B as rr, C as nr, D as ar } from "./passthrough-DrtCifRF.js";
18
+ function Nt(n) {
19
+ return tt`
20
+ <div
21
+ style=${{
22
+ backgroundColor: "#880000",
23
+ color: "#fff",
24
+ padding: "2rem",
25
+ position: "fixed",
26
+ inset: 0,
27
+ fontSize: "20px"
28
+ }}
29
+ >
30
+ <h1 style=${{ marginBottom: "0.5rem" }}>The app has crashed</h1>
31
+ <p style=${{ marginBottom: "0.25rem" }}>
32
+ <span style=${{ fontFamily: "monospace" }}>${n.loggerName}</span>
33
+ ${yt(n.uid, tt`<span style=${{ fontFamily: "monospace", opacity: 0.5 }}> [uid: ${n.uid}]</span>`)}
34
+ ${" "}says:
35
+ </p>
36
+ <blockquote
37
+ style=${{
38
+ backgroundColor: "#991111",
39
+ padding: "0.25em",
40
+ borderRadius: "6px",
41
+ fontFamily: "monospace",
42
+ marginBottom: "1rem"
43
+ }}
44
+ >
45
+ <span
46
+ style=${{
47
+ display: "inline-block",
48
+ backgroundColor: "red",
49
+ padding: "0.1em 0.4em",
50
+ marginRight: "0.5em",
51
+ borderRadius: "4px",
52
+ fontSize: "0.9em",
53
+ fontWeight: "bold"
54
+ }}
55
+ >
56
+ ${n.error.name}
57
+ </span>
58
+ ${n.error.message}
59
+ </blockquote>
60
+
61
+ <p>Please see the browser console for details.</p>
62
+ </div>
63
+ `;
20
64
  }
21
- var K, Fe, T, C;
22
- class Tt {
65
+ var J, _e, N, q;
66
+ class Ot {
23
67
  constructor() {
24
- g(this, T);
25
- g(this, K, []);
26
- g(this, Fe, At());
68
+ u(this, N);
69
+ u(this, J, []);
70
+ u(this, _e, Tt());
27
71
  }
28
72
  /**
29
73
  * Adds a new middleware that will apply to subsequent requests.
@@ -32,127 +76,127 @@ class Tt {
32
76
  * @param middleware - A middleware function that will intercept requests.
33
77
  */
34
78
  use(e) {
35
- return i(this, K).push(e), () => {
36
- i(this, K).splice(i(this, K).indexOf(e), 1);
79
+ return a(this, J).push(e), () => {
80
+ a(this, J).splice(a(this, J).indexOf(e), 1);
37
81
  };
38
82
  }
39
83
  async get(e, t) {
40
- return P(this, T, C).call(this, "get", e, t);
84
+ return P(this, N, q).call(this, "get", e, t);
41
85
  }
42
86
  async put(e, t) {
43
- return P(this, T, C).call(this, "put", e, t);
87
+ return P(this, N, q).call(this, "put", e, t);
44
88
  }
45
89
  async patch(e, t) {
46
- return P(this, T, C).call(this, "patch", e, t);
90
+ return P(this, N, q).call(this, "patch", e, t);
47
91
  }
48
92
  async post(e, t) {
49
- return P(this, T, C).call(this, "post", e, t);
93
+ return P(this, N, q).call(this, "post", e, t);
50
94
  }
51
95
  async delete(e, t) {
52
- return P(this, T, C).call(this, "delete", e, t);
96
+ return P(this, N, q).call(this, "delete", e, t);
53
97
  }
54
98
  async head(e, t) {
55
- return P(this, T, C).call(this, "head", e, t);
99
+ return P(this, N, q).call(this, "head", e, t);
56
100
  }
57
101
  async options(e, t) {
58
- return P(this, T, C).call(this, "options", e, t);
102
+ return P(this, N, q).call(this, "options", e, t);
59
103
  }
60
104
  async trace(e, t) {
61
- return P(this, T, C).call(this, "trace", e, t);
105
+ return P(this, N, q).call(this, "trace", e, t);
62
106
  }
63
107
  }
64
- K = new WeakMap(), Fe = new WeakMap(), T = new WeakSet(), C = async function(e, t, n) {
65
- return Ut({
66
- ...n,
108
+ J = new WeakMap(), _e = new WeakMap(), N = new WeakSet(), q = async function(e, t, r) {
109
+ return jt({
110
+ ...r,
67
111
  method: e,
68
112
  uri: t,
69
- middleware: i(this, K),
70
- fetch: i(this, Fe)
113
+ middleware: a(this, J),
114
+ fetch: a(this, _e)
71
115
  });
72
116
  };
73
- function At() {
117
+ function Tt() {
74
118
  if (typeof window < "u" && window.fetch)
75
119
  return window.fetch.bind(window);
76
120
  if (typeof global < "u" && global.fetch)
77
121
  return global.fetch.bind(global);
78
122
  throw new Error("Running in neither browser nor node. Please run this app in one of the supported environments.");
79
123
  }
80
- class jt extends Error {
124
+ class At extends Error {
81
125
  constructor(t) {
82
- const { status: n, statusText: o, method: r, uri: s } = t, h = `${n} ${o}: Request failed (${r.toUpperCase()} ${s})`;
83
- super(h);
126
+ const { status: r, statusText: s, method: i, uri: o } = t, f = `${r} ${s}: Request failed (${i.toUpperCase()} ${o})`;
127
+ super(f);
84
128
  k(this, "response");
85
129
  this.response = t;
86
130
  }
87
131
  }
88
- async function Ut(a) {
89
- const { headers: e, query: t, fetch: n, middleware: o } = a, r = {
90
- method: a.method,
91
- uri: a.uri,
132
+ async function jt(n) {
133
+ const { headers: e, query: t, fetch: r, middleware: s } = n, i = {
134
+ method: n.method,
135
+ uri: n.uri,
92
136
  get sameOrigin() {
93
- return !r.uri.startsWith("http");
137
+ return !i.uri.startsWith("http");
94
138
  },
95
139
  query: new URLSearchParams(),
96
140
  headers: new Headers(),
97
- body: a.body
141
+ body: n.body
98
142
  };
99
143
  if (e)
100
144
  if (e instanceof Map || e instanceof Headers)
101
- e.forEach((c, u) => {
102
- r.headers.set(u, c);
145
+ e.forEach((c, y) => {
146
+ i.headers.set(y, c);
103
147
  });
104
148
  else if (e != null && typeof e == "object" && !Array.isArray(e))
105
149
  for (const c in e) {
106
- const u = e[c];
107
- u instanceof Date ? r.headers.set(c, u.toISOString()) : u != null && r.headers.set(c, String(u));
150
+ const y = e[c];
151
+ y instanceof Date ? i.headers.set(c, y.toISOString()) : y != null && i.headers.set(c, String(y));
108
152
  }
109
153
  else
110
154
  throw new TypeError(`Unknown headers type. Got: ${e}`);
111
155
  if (t)
112
156
  if (t instanceof Map || t instanceof URLSearchParams)
113
- t.forEach((c, u) => {
114
- r.query.set(u, c);
157
+ t.forEach((c, y) => {
158
+ i.query.set(y, c);
115
159
  });
116
160
  else if (t != null && typeof t == "object" && !Array.isArray(t))
117
161
  for (const c in t) {
118
- const u = t[c];
119
- u instanceof Date ? r.query.set(c, u.toISOString()) : u != null && r.query.set(c, String(u));
162
+ const y = t[c];
163
+ y instanceof Date ? i.query.set(c, y.toISOString()) : y != null && i.query.set(c, String(y));
120
164
  }
121
165
  else
122
166
  throw new TypeError(`Unknown query params type. Got: ${t}`);
123
- let s;
124
- const h = async () => {
125
- const c = r.query.toString(), u = c.length > 0 ? r.uri + "?" + c : r.uri;
126
- let p;
127
- !r.headers.has("content-type") && Ge(r.body) ? (r.headers.set("content-type", "application/json"), p = JSON.stringify(r.body)) : p = r.body;
128
- const b = await n(u, {
129
- method: r.method,
130
- headers: r.headers,
131
- body: p
132
- }), f = Object.fromEntries(b.headers.entries()), m = f["content-type"];
167
+ let o;
168
+ const f = async () => {
169
+ const c = i.query.toString(), y = c.length > 0 ? i.uri + "?" + c : i.uri;
170
+ let w;
171
+ !i.headers.has("content-type") && Ie(i.body) ? (i.headers.set("content-type", "application/json"), w = JSON.stringify(i.body)) : w = i.body;
172
+ const p = await r(y, {
173
+ method: i.method,
174
+ headers: i.headers,
175
+ body: w
176
+ }), d = Object.fromEntries(p.headers.entries()), b = d["content-type"];
133
177
  let $;
134
- m != null && m.includes("application/json") ? $ = await b.json() : m != null && m.includes("application/x-www-form-urlencoded") ? $ = await b.formData() : $ = await b.text(), s = {
135
- method: r.method,
136
- uri: r.uri,
137
- status: b.status,
138
- statusText: b.statusText,
139
- headers: f,
178
+ b != null && b.includes("application/json") ? $ = await p.json() : b != null && b.includes("application/x-www-form-urlencoded") ? $ = await p.formData() : $ = await p.text(), o = {
179
+ method: i.method,
180
+ uri: i.uri,
181
+ status: p.status,
182
+ statusText: p.statusText,
183
+ headers: d,
140
184
  body: $
141
185
  };
142
186
  };
143
- if (o.length > 0) {
144
- const c = (u = 0) => {
145
- const p = o[u], b = o[u + 1] ? c(u + 1) : h;
146
- return async () => p(r, async () => (await b(), s));
187
+ if (s.length > 0) {
188
+ const c = (y = 0) => {
189
+ const w = s[y], p = s[y + 1] ? c(y + 1) : f;
190
+ return async () => w(i, async () => (await p(), o));
147
191
  };
148
192
  await c()();
149
193
  } else
150
- await h();
151
- if (s.status < 200 || s.status >= 400)
152
- throw new jt(s);
153
- return s;
194
+ await f();
195
+ if (o.status < 200 || o.status >= 400)
196
+ throw new At(o);
197
+ return o;
154
198
  }
155
- class qt {
199
+ class Ct {
156
200
  constructor(e, t) {
157
201
  k(this, "dolla");
158
202
  k(this, "config");
@@ -161,16 +205,16 @@ class qt {
161
205
  }
162
206
  async load() {
163
207
  if (this.strings == null) {
164
- if (Ze(this.config.fetch)) {
208
+ if (Xe(this.config.fetch)) {
165
209
  const e = await this.config.fetch();
166
- if (Ge(e))
210
+ if (Ie(e))
167
211
  this.strings = e;
168
212
  else
169
213
  throw new Error(`Fetch function did not return an object of language strings: ${e}`);
170
- } else if (H(this.config.path)) {
214
+ } else if (D(this.config.path)) {
171
215
  const e = await this.dolla.http.get(this.config.path);
172
216
  if (e.status >= 200 && e.status < 300)
173
- if (Ge(e.body))
217
+ if (Ie(e.body))
174
218
  this.strings = e.body;
175
219
  else
176
220
  throw new Error(
@@ -185,65 +229,65 @@ class qt {
185
229
  return this.strings;
186
230
  }
187
231
  }
188
- var we, J, O, se, be, ve, oe, $e, We, ft;
189
- class Ct {
232
+ var ye, Y, x, ie, we, be, se, ve, We, ft;
233
+ class qt {
190
234
  constructor(e) {
191
- g(this, We);
192
- g(this, we);
193
- g(this, J);
194
- g(this, O, /* @__PURE__ */ new Map());
195
- g(this, se, []);
196
- g(this, be, "auto");
235
+ u(this, We);
236
+ u(this, ye);
237
+ u(this, Y);
238
+ u(this, x, /* @__PURE__ */ new Map());
239
+ u(this, ie, []);
240
+ u(this, we, "auto");
197
241
  k(this, "$current");
198
- g(this, ve);
199
- g(this, oe);
200
- g(this, $e);
201
- w(this, we, e), w(this, J, e.createLogger("dolla/language"));
202
- const [t, n] = Q(), [o, r] = Q();
203
- this.$current = t, w(this, ve, n), w(this, oe, o), w(this, $e, r), e.beforeMount(async () => {
204
- i(this, O).size > 0 && await this.setLanguage(i(this, be));
242
+ u(this, be);
243
+ u(this, se);
244
+ u(this, ve);
245
+ m(this, ye, e), m(this, Y, e.createLogger("dolla/language"));
246
+ const [t, r] = K(), [s, i] = K();
247
+ this.$current = t, m(this, be, r), m(this, se, s), m(this, ve, i), e.beforeMount(async () => {
248
+ a(this, x).size > 0 && await this.setLanguage(a(this, we));
205
249
  });
206
250
  }
207
251
  get supportedLanguages() {
208
- return [...i(this, O).keys()];
252
+ return [...a(this, x).keys()];
209
253
  }
210
254
  setup(e) {
211
255
  if (e.languages.forEach((t) => {
212
- i(this, O).set(t.name, new qt(t, i(this, we)));
256
+ a(this, x).set(t.name, new Ct(t, a(this, ye)));
213
257
  }), e.initialLanguage && e.initialLanguage !== "auto") {
214
- if (!e.languages.some((n) => n.name === e.initialLanguage))
258
+ if (!e.languages.some((r) => r.name === e.initialLanguage))
215
259
  throw new Error(`Initial language '${e.initialLanguage}' has no registered translation.`);
216
- w(this, be, e.initialLanguage);
260
+ m(this, we, e.initialLanguage);
217
261
  }
218
- i(this, J).info(
219
- `${i(this, O).size} language${i(this, O).size === 1 ? "" : "s"} supported: '${[...i(this, O).keys()].join("', '")}'`
262
+ a(this, Y).info(
263
+ `${a(this, x).size} language${a(this, x).size === 1 ? "" : "s"} supported: '${[...a(this, x).keys()].join("', '")}'`
220
264
  );
221
265
  }
222
266
  async setLanguage(e) {
223
- var o;
267
+ var s;
224
268
  let t;
225
269
  if (e === "auto") {
226
- let r = [];
270
+ let i = [];
227
271
  if (typeof navigator == "object") {
228
- const s = navigator;
229
- ((o = s.languages) == null ? void 0 : o.length) > 0 ? r.push(...s.languages) : s.language ? r.push(s.language) : s.browserLanguage ? r.push(s.browserLanguage) : s.userLanguage && r.push(s.userLanguage);
272
+ const o = navigator;
273
+ ((s = o.languages) == null ? void 0 : s.length) > 0 ? i.push(...o.languages) : o.language ? i.push(o.language) : o.browserLanguage ? i.push(o.browserLanguage) : o.userLanguage && i.push(o.userLanguage);
230
274
  }
231
- for (const s of r)
232
- i(this, O).has(s) && (t = s);
275
+ for (const o of i)
276
+ a(this, x).has(o) && (t = o);
233
277
  } else
234
- i(this, O).has(e) && (t = e);
278
+ a(this, x).has(e) && (t = e);
235
279
  if (t == null) {
236
- const r = i(this, O).keys().next().value;
237
- r && (t = r);
280
+ const i = a(this, x).keys().next().value;
281
+ i && (t = i);
238
282
  }
239
- if (!t || !i(this, O).has(t))
283
+ if (!t || !a(this, x).has(t))
240
284
  throw new Error(`Language '${e}' is not configured for this app.`);
241
- const n = i(this, O).get(t);
285
+ const r = a(this, x).get(t);
242
286
  try {
243
- const r = await n.load();
244
- i(this, $e).call(this, r), i(this, ve).call(this, t), i(this, J).info("set language to " + t);
245
- } catch (r) {
246
- r instanceof Error && i(this, J).crash(r);
287
+ const i = await r.load();
288
+ a(this, ve).call(this, i), a(this, be).call(this, t), a(this, Y).info("set language to " + t);
289
+ } catch (i) {
290
+ i instanceof Error && a(this, Y).crash(i);
247
291
  }
248
292
  }
249
293
  /**
@@ -258,71 +302,71 @@ class Ct {
258
302
  `The 't' function cannot be destructured. If you need a standalone version you can import it like so: 'import { t } from "@manyducks.co/dolla"'`
259
303
  );
260
304
  if (!this.$current.get())
261
- return _t;
262
- const n = P(this, We, ft).call(this, e, t);
263
- if (n)
264
- return n;
305
+ return Ut;
306
+ const r = P(this, We, ft).call(this, e, t);
307
+ if (r)
308
+ return r;
265
309
  if (t) {
266
- const r = {};
267
- for (const [h, c] of Object.entries(t))
268
- $t(c) && (r[h] = c);
269
- const s = Object.entries(r);
270
- if (s.length > 0) {
271
- const h = s.map((u) => u[1]), c = Qe([i(this, oe), ...h], (u, ...p) => {
272
- const b = p.map(($, N) => s[N]), f = {
310
+ const i = {};
311
+ for (const [f, c] of Object.entries(t))
312
+ wt(c) && (i[f] = c);
313
+ const o = Object.entries(i);
314
+ if (o.length > 0) {
315
+ const f = o.map((y) => y[1]), c = Be([a(this, se), ...f], (y, ...w) => {
316
+ const p = w.map(($, j) => o[j]), d = {
273
317
  ...t
274
318
  };
275
- for (let $ = 0; $ < b.length; $++) {
276
- const N = b[$][0];
277
- f[N] = p[$];
319
+ for (let $ = 0; $ < p.length; $++) {
320
+ const j = p[$][0];
321
+ d[j] = w[$];
278
322
  }
279
- const m = st(u, e) || `[NO TRANSLATION: ${e}]`;
280
- return it(m, f);
323
+ const b = st(y, e) || `[NO TRANSLATION: ${e}]`;
324
+ return it(b, d);
281
325
  });
282
- return i(this, se).push([e, t, c]), c;
326
+ return a(this, ie).push([e, t, c]), c;
283
327
  }
284
328
  }
285
- const o = Qe([i(this, oe)], (r) => {
286
- let s = st(r, e) || `[NO TRANSLATION: ${e}]`;
287
- return t && (s = it(s, t)), s;
329
+ const s = Be([a(this, se)], (i) => {
330
+ let o = st(i, e) || `[NO TRANSLATION: ${e}]`;
331
+ return t && (o = it(o, t)), o;
288
332
  });
289
- return i(this, se).push([e, t, o]), o;
333
+ return a(this, ie).push([e, t, s]), s;
290
334
  }
291
335
  }
292
- we = new WeakMap(), J = new WeakMap(), O = new WeakMap(), se = new WeakMap(), be = new WeakMap(), ve = new WeakMap(), oe = new WeakMap(), $e = new WeakMap(), We = new WeakSet(), ft = function(e, t) {
293
- for (const n of i(this, se))
294
- if (n[0] === e && Et(n[1], t))
295
- return n[2];
336
+ ye = new WeakMap(), Y = new WeakMap(), x = new WeakMap(), ie = new WeakMap(), we = new WeakMap(), be = new WeakMap(), se = new WeakMap(), ve = new WeakMap(), We = new WeakSet(), ft = function(e, t) {
337
+ for (const r of a(this, ie))
338
+ if (r[0] === e && bt(r[1], t))
339
+ return r[2];
296
340
  };
297
- const _t = Be("[NO LANGUAGE SET]");
298
- function it(a, e) {
341
+ const Ut = Ge("[NO LANGUAGE SET]");
342
+ function it(n, e) {
299
343
  for (const t in e)
300
- a = a.replace(`{{${t}}}`, String(e[t]));
301
- return a;
344
+ n = n.replace(`{{${t}}}`, String(e[t]));
345
+ return n;
302
346
  }
303
- function st(a, e) {
304
- const t = String(e).split(/[\.\[\]]/).filter((o) => o.trim() !== "");
305
- let n = a;
347
+ function st(n, e) {
348
+ const t = String(e).split(/[\.\[\]]/).filter((s) => s.trim() !== "");
349
+ let r = n;
306
350
  for (; t.length > 0; ) {
307
- const o = t.shift();
308
- n != null ? n = n[o] : n = void 0;
351
+ const s = t.shift();
352
+ r != null ? r = r[s] : r = void 0;
309
353
  }
310
- return n;
354
+ return r;
311
355
  }
312
- var Y, Ee, V, F, ce, _, le, Ae;
313
- class Dt {
356
+ var X, $e, H, _, oe, U, ce, Ae;
357
+ class Vt {
314
358
  constructor(e) {
315
- g(this, le);
316
- g(this, Y);
317
- g(this, Ee);
359
+ u(this, ce);
360
+ u(this, X);
361
+ u(this, $e);
318
362
  // Keyed updates ensure only the most recent callback queued with a certain key
319
363
  // will be called, keeping DOM operations to a minimum.
320
- g(this, V, /* @__PURE__ */ new Map());
364
+ u(this, H, /* @__PURE__ */ new Map());
321
365
  // All unkeyed updates are run on every batch.
322
- g(this, F, []);
323
- g(this, ce, []);
324
- g(this, _, !1);
325
- w(this, Y, e), w(this, Ee, e.createLogger("dolla/render"));
366
+ u(this, _, []);
367
+ u(this, oe, []);
368
+ u(this, U, !1);
369
+ m(this, X, e), m(this, $e, e.createLogger("dolla/render"));
326
370
  }
327
371
  /**
328
372
  * Queues a callback to run in the next render batch.
@@ -330,12 +374,12 @@ class Dt {
330
374
  * Returns a Promise that resolves once the callback has run.
331
375
  */
332
376
  update(e, t) {
333
- return new Promise((n) => {
334
- t ? i(this, V).set(t, () => {
335
- e(), n();
336
- }) : i(this, F).push(() => {
337
- e(), n();
338
- }), !i(this, _) && i(this, Y).isMounted && (w(this, _, !0), P(this, le, Ae).call(this));
377
+ return new Promise((r) => {
378
+ t ? a(this, H).set(t, () => {
379
+ e(), r();
380
+ }) : a(this, _).push(() => {
381
+ e(), r();
382
+ }), !a(this, U) && a(this, X).isMounted && (m(this, U, !0), P(this, ce, Ae).call(this));
339
383
  });
340
384
  }
341
385
  /**
@@ -345,51 +389,51 @@ class Dt {
345
389
  */
346
390
  async read(e) {
347
391
  return new Promise((t) => {
348
- i(this, ce).push(() => {
392
+ a(this, oe).push(() => {
349
393
  e(), t();
350
- }), !i(this, _) && i(this, Y).isMounted && (w(this, _, !0), P(this, le, Ae).call(this));
394
+ }), !a(this, U) && a(this, X).isMounted && (m(this, U, !0), P(this, ce, Ae).call(this));
351
395
  });
352
396
  }
353
397
  }
354
- Y = new WeakMap(), Ee = new WeakMap(), V = new WeakMap(), F = new WeakMap(), ce = new WeakMap(), _ = new WeakMap(), le = new WeakSet(), Ae = function() {
355
- const e = i(this, V).size + i(this, F).length;
356
- if ((!i(this, Y).isMounted || e === 0) && w(this, _, !1), !i(this, _)) {
357
- for (const t of i(this, ce))
398
+ X = new WeakMap(), $e = new WeakMap(), H = new WeakMap(), _ = new WeakMap(), oe = new WeakMap(), U = new WeakMap(), ce = new WeakSet(), Ae = function() {
399
+ const e = a(this, H).size + a(this, _).length;
400
+ if ((!a(this, X).isMounted || e === 0) && m(this, U, !1), !a(this, U)) {
401
+ for (const t of a(this, oe))
358
402
  t();
359
- w(this, ce, []);
403
+ m(this, oe, []);
360
404
  return;
361
405
  }
362
406
  requestAnimationFrame(() => {
363
- i(this, Ee).info(`Batching ${i(this, V).size + i(this, F).length} queued DOM update(s).`);
364
- for (const t of i(this, V).values())
407
+ a(this, $e).info(`Batching ${a(this, H).size + a(this, _).length} queued DOM update(s).`);
408
+ for (const t of a(this, H).values())
365
409
  t();
366
- i(this, V).clear();
367
- for (const t of i(this, F))
410
+ a(this, H).clear();
411
+ for (const t of a(this, _))
368
412
  t();
369
- w(this, F, []), P(this, le, Ae).call(this);
413
+ m(this, _, []), P(this, ce, Ae).call(this);
370
414
  });
371
415
  };
372
- function de() {
373
- return de = Object.assign || function(a) {
416
+ function fe() {
417
+ return fe = Object.assign || function(n) {
374
418
  for (var e = 1; e < arguments.length; e++) {
375
419
  var t = arguments[e];
376
- for (var n in t)
377
- Object.prototype.hasOwnProperty.call(t, n) && (a[n] = t[n]);
420
+ for (var r in t)
421
+ Object.prototype.hasOwnProperty.call(t, r) && (n[r] = t[r]);
378
422
  }
379
- return a;
380
- }, de.apply(this, arguments);
423
+ return n;
424
+ }, fe.apply(this, arguments);
381
425
  }
382
- var U;
383
- (function(a) {
384
- a.Pop = "POP", a.Push = "PUSH", a.Replace = "REPLACE";
385
- })(U || (U = {}));
386
- var _e = process.env.NODE_ENV !== "production" ? function(a) {
387
- return Object.freeze(a);
388
- } : function(a) {
389
- return a;
426
+ var A;
427
+ (function(n) {
428
+ n.Pop = "POP", n.Push = "PUSH", n.Replace = "REPLACE";
429
+ })(A || (A = {}));
430
+ var Ue = process.env.NODE_ENV !== "production" ? function(n) {
431
+ return Object.freeze(n);
432
+ } : function(n) {
433
+ return n;
390
434
  };
391
- function je(a, e) {
392
- if (!a) {
435
+ function je(n, e) {
436
+ if (!n) {
393
437
  typeof console < "u" && console.warn(e);
394
438
  try {
395
439
  throw new Error(e);
@@ -397,36 +441,36 @@ function je(a, e) {
397
441
  }
398
442
  }
399
443
  }
400
- var De = "beforeunload", Ht = "hashchange", dt = "popstate";
401
- function Vt(a) {
402
- a === void 0 && (a = {});
403
- var e = a, t = e.window, n = t === void 0 ? document.defaultView : t, o = n.history;
404
- function r() {
405
- var y = n.location, l = y.pathname, d = y.search, v = y.hash, E = o.state || {};
406
- return [E.idx, _e({
444
+ var Ve = "beforeunload", Dt = "hashchange", dt = "popstate";
445
+ function Ht(n) {
446
+ n === void 0 && (n = {});
447
+ var e = n, t = e.window, r = t === void 0 ? document.defaultView : t, s = r.history;
448
+ function i() {
449
+ var g = r.location, l = g.pathname, h = g.search, v = g.hash, E = s.state || {};
450
+ return [E.idx, Ue({
407
451
  pathname: l,
408
- search: d,
452
+ search: h,
409
453
  hash: v,
410
454
  state: E.usr || null,
411
455
  key: E.key || "default"
412
456
  })];
413
457
  }
414
- var s = null;
415
- function h() {
416
- if (s)
417
- m.call(s), s = null;
458
+ var o = null;
459
+ function f() {
460
+ if (o)
461
+ b.call(o), o = null;
418
462
  else {
419
- var y = U.Pop, l = r(), d = l[0], v = l[1];
420
- if (m.length)
421
- if (d != null) {
422
- var E = p - d;
423
- E && (s = {
424
- action: y,
463
+ var g = A.Pop, l = i(), h = l[0], v = l[1];
464
+ if (b.length)
465
+ if (h != null) {
466
+ var E = w - h;
467
+ E && (o = {
468
+ action: g,
425
469
  location: v,
426
470
  retry: function() {
427
- D(E * -1);
471
+ V(E * -1);
428
472
  }
429
- }, D(E));
473
+ }, V(E));
430
474
  } else
431
475
  process.env.NODE_ENV !== "production" && je(
432
476
  !1,
@@ -436,135 +480,135 @@ function Vt(a) {
436
480
  "You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation."
437
481
  );
438
482
  else
439
- re(y);
483
+ re(g);
440
484
  }
441
485
  }
442
- n.addEventListener(dt, h);
443
- var c = U.Pop, u = r(), p = u[0], b = u[1], f = Ve(), m = Ve();
444
- p == null && (p = 0, o.replaceState(de({}, o.state, {
445
- idx: p
486
+ r.addEventListener(dt, f);
487
+ var c = A.Pop, y = i(), w = y[0], p = y[1], d = He(), b = He();
488
+ w == null && (w = 0, s.replaceState(fe({}, s.state, {
489
+ idx: w
446
490
  }), ""));
447
- function $(y) {
448
- return typeof y == "string" ? y : Ue(y);
491
+ function $(g) {
492
+ return typeof g == "string" ? g : Ce(g);
449
493
  }
450
- function N(y, l) {
451
- return l === void 0 && (l = null), _e(de({
452
- pathname: b.pathname,
494
+ function j(g, l) {
495
+ return l === void 0 && (l = null), Ue(fe({
496
+ pathname: p.pathname,
453
497
  hash: "",
454
498
  search: ""
455
- }, typeof y == "string" ? Ke(y) : y, {
499
+ }, typeof g == "string" ? Qe(g) : g, {
456
500
  state: l,
457
501
  key: gt()
458
502
  }));
459
503
  }
460
- function ge(y, l) {
504
+ function de(g, l) {
461
505
  return [{
462
- usr: y.state,
463
- key: y.key,
506
+ usr: g.state,
507
+ key: g.key,
464
508
  idx: l
465
- }, $(y)];
509
+ }, $(g)];
466
510
  }
467
- function pe(y, l, d) {
468
- return !m.length || (m.call({
469
- action: y,
511
+ function ge(g, l, h) {
512
+ return !b.length || (b.call({
513
+ action: g,
470
514
  location: l,
471
- retry: d
515
+ retry: h
472
516
  }), !1);
473
517
  }
474
- function re(y) {
475
- c = y;
476
- var l = r();
477
- p = l[0], b = l[1], f.call({
518
+ function re(g) {
519
+ c = g;
520
+ var l = i();
521
+ w = l[0], p = l[1], d.call({
478
522
  action: c,
479
- location: b
523
+ location: p
480
524
  });
481
525
  }
482
- function ae(y, l) {
483
- var d = U.Push, v = N(y, l);
526
+ function ne(g, l) {
527
+ var h = A.Push, v = j(g, l);
484
528
  function E() {
485
- ae(y, l);
529
+ ne(g, l);
486
530
  }
487
- if (pe(d, v, E)) {
488
- var M = ge(v, p + 1), x = M[0], A = M[1];
531
+ if (ge(h, v, E)) {
532
+ var S = de(v, w + 1), M = S[0], O = S[1];
489
533
  try {
490
- o.pushState(x, "", A);
534
+ s.pushState(M, "", O);
491
535
  } catch {
492
- n.location.assign(A);
536
+ r.location.assign(O);
493
537
  }
494
- re(d);
538
+ re(h);
495
539
  }
496
540
  }
497
- function me(y, l) {
498
- var d = U.Replace, v = N(y, l);
541
+ function pe(g, l) {
542
+ var h = A.Replace, v = j(g, l);
499
543
  function E() {
500
- me(y, l);
544
+ pe(g, l);
501
545
  }
502
- if (pe(d, v, E)) {
503
- var M = ge(v, p), x = M[0], A = M[1];
504
- o.replaceState(x, "", A), re(d);
546
+ if (ge(h, v, E)) {
547
+ var S = de(v, w), M = S[0], O = S[1];
548
+ s.replaceState(M, "", O), re(h);
505
549
  }
506
550
  }
507
- function D(y) {
508
- o.go(y);
551
+ function V(g) {
552
+ s.go(g);
509
553
  }
510
- var B = {
554
+ var Q = {
511
555
  get action() {
512
556
  return c;
513
557
  },
514
558
  get location() {
515
- return b;
559
+ return p;
516
560
  },
517
561
  createHref: $,
518
- push: ae,
519
- replace: me,
520
- go: D,
562
+ push: ne,
563
+ replace: pe,
564
+ go: V,
521
565
  back: function() {
522
- D(-1);
566
+ V(-1);
523
567
  },
524
568
  forward: function() {
525
- D(1);
569
+ V(1);
526
570
  },
527
571
  listen: function(l) {
528
- return f.push(l);
572
+ return d.push(l);
529
573
  },
530
574
  block: function(l) {
531
- var d = m.push(l);
532
- return m.length === 1 && n.addEventListener(De, He), function() {
533
- d(), m.length || n.removeEventListener(De, He);
575
+ var h = b.push(l);
576
+ return b.length === 1 && r.addEventListener(Ve, De), function() {
577
+ h(), b.length || r.removeEventListener(Ve, De);
534
578
  };
535
579
  }
536
580
  };
537
- return B;
581
+ return Q;
538
582
  }
539
- function Ft(a) {
540
- a === void 0 && (a = {});
541
- var e = a, t = e.window, n = t === void 0 ? document.defaultView : t, o = n.history;
542
- function r() {
543
- var l = Ke(n.location.hash.substr(1)), d = l.pathname, v = d === void 0 ? "/" : d, E = l.search, M = E === void 0 ? "" : E, x = l.hash, A = x === void 0 ? "" : x, q = o.state || {};
544
- return [q.idx, _e({
583
+ function _t(n) {
584
+ n === void 0 && (n = {});
585
+ var e = n, t = e.window, r = t === void 0 ? document.defaultView : t, s = r.history;
586
+ function i() {
587
+ var l = Qe(r.location.hash.substr(1)), h = l.pathname, v = h === void 0 ? "/" : h, E = l.search, S = E === void 0 ? "" : E, M = l.hash, O = M === void 0 ? "" : M, C = s.state || {};
588
+ return [C.idx, Ue({
545
589
  pathname: v,
546
- search: M,
547
- hash: A,
548
- state: q.usr || null,
549
- key: q.key || "default"
590
+ search: S,
591
+ hash: O,
592
+ state: C.usr || null,
593
+ key: C.key || "default"
550
594
  })];
551
595
  }
552
- var s = null;
553
- function h() {
554
- if (s)
555
- m.call(s), s = null;
596
+ var o = null;
597
+ function f() {
598
+ if (o)
599
+ b.call(o), o = null;
556
600
  else {
557
- var l = U.Pop, d = r(), v = d[0], E = d[1];
558
- if (m.length)
601
+ var l = A.Pop, h = i(), v = h[0], E = h[1];
602
+ if (b.length)
559
603
  if (v != null) {
560
- var M = p - v;
561
- M && (s = {
604
+ var S = w - v;
605
+ S && (o = {
562
606
  action: l,
563
607
  location: E,
564
608
  retry: function() {
565
- B(M * -1);
609
+ Q(S * -1);
566
610
  }
567
- }, B(M));
611
+ }, Q(S));
568
612
  } else
569
613
  process.env.NODE_ENV !== "production" && je(
570
614
  !1,
@@ -574,136 +618,136 @@ function Ft(a) {
574
618
  "You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation."
575
619
  );
576
620
  else
577
- ae(l);
621
+ ne(l);
578
622
  }
579
623
  }
580
- n.addEventListener(dt, h), n.addEventListener(Ht, function() {
581
- var l = r(), d = l[1];
582
- Ue(d) !== Ue(b) && h();
624
+ r.addEventListener(dt, f), r.addEventListener(Dt, function() {
625
+ var l = i(), h = l[1];
626
+ Ce(h) !== Ce(p) && f();
583
627
  });
584
- var c = U.Pop, u = r(), p = u[0], b = u[1], f = Ve(), m = Ve();
585
- p == null && (p = 0, o.replaceState(de({}, o.state, {
586
- idx: p
628
+ var c = A.Pop, y = i(), w = y[0], p = y[1], d = He(), b = He();
629
+ w == null && (w = 0, s.replaceState(fe({}, s.state, {
630
+ idx: w
587
631
  }), ""));
588
632
  function $() {
589
- var l = document.querySelector("base"), d = "";
633
+ var l = document.querySelector("base"), h = "";
590
634
  if (l && l.getAttribute("href")) {
591
- var v = n.location.href, E = v.indexOf("#");
592
- d = E === -1 ? v : v.slice(0, E);
635
+ var v = r.location.href, E = v.indexOf("#");
636
+ h = E === -1 ? v : v.slice(0, E);
593
637
  }
594
- return d;
638
+ return h;
595
639
  }
596
- function N(l) {
597
- return $() + "#" + (typeof l == "string" ? l : Ue(l));
640
+ function j(l) {
641
+ return $() + "#" + (typeof l == "string" ? l : Ce(l));
598
642
  }
599
- function ge(l, d) {
600
- return d === void 0 && (d = null), _e(de({
601
- pathname: b.pathname,
643
+ function de(l, h) {
644
+ return h === void 0 && (h = null), Ue(fe({
645
+ pathname: p.pathname,
602
646
  hash: "",
603
647
  search: ""
604
- }, typeof l == "string" ? Ke(l) : l, {
605
- state: d,
648
+ }, typeof l == "string" ? Qe(l) : l, {
649
+ state: h,
606
650
  key: gt()
607
651
  }));
608
652
  }
609
- function pe(l, d) {
653
+ function ge(l, h) {
610
654
  return [{
611
655
  usr: l.state,
612
656
  key: l.key,
613
- idx: d
614
- }, N(l)];
657
+ idx: h
658
+ }, j(l)];
615
659
  }
616
- function re(l, d, v) {
617
- return !m.length || (m.call({
660
+ function re(l, h, v) {
661
+ return !b.length || (b.call({
618
662
  action: l,
619
- location: d,
663
+ location: h,
620
664
  retry: v
621
665
  }), !1);
622
666
  }
623
- function ae(l) {
667
+ function ne(l) {
624
668
  c = l;
625
- var d = r();
626
- p = d[0], b = d[1], f.call({
669
+ var h = i();
670
+ w = h[0], p = h[1], d.call({
627
671
  action: c,
628
- location: b
672
+ location: p
629
673
  });
630
674
  }
631
- function me(l, d) {
632
- var v = U.Push, E = ge(l, d);
633
- function M() {
634
- me(l, d);
675
+ function pe(l, h) {
676
+ var v = A.Push, E = de(l, h);
677
+ function S() {
678
+ pe(l, h);
635
679
  }
636
- if (process.env.NODE_ENV !== "production" && je(E.pathname.charAt(0) === "/", "Relative pathnames are not supported in hash history.push(" + JSON.stringify(l) + ")"), re(v, E, M)) {
637
- var x = pe(E, p + 1), A = x[0], q = x[1];
680
+ if (process.env.NODE_ENV !== "production" && je(E.pathname.charAt(0) === "/", "Relative pathnames are not supported in hash history.push(" + JSON.stringify(l) + ")"), re(v, E, S)) {
681
+ var M = ge(E, w + 1), O = M[0], C = M[1];
638
682
  try {
639
- o.pushState(A, "", q);
683
+ s.pushState(O, "", C);
640
684
  } catch {
641
- n.location.assign(q);
685
+ r.location.assign(C);
642
686
  }
643
- ae(v);
687
+ ne(v);
644
688
  }
645
689
  }
646
- function D(l, d) {
647
- var v = U.Replace, E = ge(l, d);
648
- function M() {
649
- D(l, d);
690
+ function V(l, h) {
691
+ var v = A.Replace, E = de(l, h);
692
+ function S() {
693
+ V(l, h);
650
694
  }
651
- if (process.env.NODE_ENV !== "production" && je(E.pathname.charAt(0) === "/", "Relative pathnames are not supported in hash history.replace(" + JSON.stringify(l) + ")"), re(v, E, M)) {
652
- var x = pe(E, p), A = x[0], q = x[1];
653
- o.replaceState(A, "", q), ae(v);
695
+ if (process.env.NODE_ENV !== "production" && je(E.pathname.charAt(0) === "/", "Relative pathnames are not supported in hash history.replace(" + JSON.stringify(l) + ")"), re(v, E, S)) {
696
+ var M = ge(E, w), O = M[0], C = M[1];
697
+ s.replaceState(O, "", C), ne(v);
654
698
  }
655
699
  }
656
- function B(l) {
657
- o.go(l);
700
+ function Q(l) {
701
+ s.go(l);
658
702
  }
659
- var y = {
703
+ var g = {
660
704
  get action() {
661
705
  return c;
662
706
  },
663
707
  get location() {
664
- return b;
708
+ return p;
665
709
  },
666
- createHref: N,
667
- push: me,
668
- replace: D,
669
- go: B,
710
+ createHref: j,
711
+ push: pe,
712
+ replace: V,
713
+ go: Q,
670
714
  back: function() {
671
- B(-1);
715
+ Q(-1);
672
716
  },
673
717
  forward: function() {
674
- B(1);
718
+ Q(1);
675
719
  },
676
- listen: function(d) {
677
- return f.push(d);
720
+ listen: function(h) {
721
+ return d.push(h);
678
722
  },
679
- block: function(d) {
680
- var v = m.push(d);
681
- return m.length === 1 && n.addEventListener(De, He), function() {
682
- v(), m.length || n.removeEventListener(De, He);
723
+ block: function(h) {
724
+ var v = b.push(h);
725
+ return b.length === 1 && r.addEventListener(Ve, De), function() {
726
+ v(), b.length || r.removeEventListener(Ve, De);
683
727
  };
684
728
  }
685
729
  };
686
- return y;
730
+ return g;
687
731
  }
688
- function He(a) {
689
- a.preventDefault(), a.returnValue = "";
732
+ function De(n) {
733
+ n.preventDefault(), n.returnValue = "";
690
734
  }
691
- function Ve() {
692
- var a = [];
735
+ function He() {
736
+ var n = [];
693
737
  return {
694
738
  get length() {
695
- return a.length;
739
+ return n.length;
696
740
  },
697
741
  push: function(t) {
698
- return a.push(t), function() {
699
- a = a.filter(function(n) {
700
- return n !== t;
742
+ return n.push(t), function() {
743
+ n = n.filter(function(r) {
744
+ return r !== t;
701
745
  });
702
746
  };
703
747
  },
704
748
  call: function(t) {
705
- a.forEach(function(n) {
706
- return n && n(t);
749
+ n.forEach(function(r) {
750
+ return r && r(t);
707
751
  });
708
752
  }
709
753
  };
@@ -711,224 +755,226 @@ function Ve() {
711
755
  function gt() {
712
756
  return Math.random().toString(36).substr(2, 8);
713
757
  }
714
- function Ue(a) {
715
- var e = a.pathname, t = e === void 0 ? "/" : e, n = a.search, o = n === void 0 ? "" : n, r = a.hash, s = r === void 0 ? "" : r;
716
- return o && o !== "?" && (t += o.charAt(0) === "?" ? o : "?" + o), s && s !== "#" && (t += s.charAt(0) === "#" ? s : "#" + s), t;
758
+ function Ce(n) {
759
+ var e = n.pathname, t = e === void 0 ? "/" : e, r = n.search, s = r === void 0 ? "" : r, i = n.hash, o = i === void 0 ? "" : i;
760
+ return s && s !== "?" && (t += s.charAt(0) === "?" ? s : "?" + s), o && o !== "#" && (t += o.charAt(0) === "#" ? o : "#" + o), t;
717
761
  }
718
- function Ke(a) {
762
+ function Qe(n) {
719
763
  var e = {};
720
- if (a) {
721
- var t = a.indexOf("#");
722
- t >= 0 && (e.hash = a.substr(t), a = a.substr(0, t));
723
- var n = a.indexOf("?");
724
- n >= 0 && (e.search = a.substr(n), a = a.substr(0, n)), a && (e.pathname = a);
764
+ if (n) {
765
+ var t = n.indexOf("#");
766
+ t >= 0 && (e.hash = n.substr(t), n = n.substr(0, t));
767
+ var r = n.indexOf("?");
768
+ r >= 0 && (e.search = n.substr(r), n = n.substr(0, r)), n && (e.pathname = n);
725
769
  }
726
770
  return e;
727
771
  }
728
- function ye(a) {
729
- return lt(a, "Expected `path` to be a string. Got type: %t, value: %v"), a.split("/").map((e) => e.trim()).filter((e) => e !== "");
772
+ function me(n) {
773
+ return lt(n, "Expected `path` to be a string. Got type: %t, value: %v"), n.split("/").map((e) => e.trim()).filter((e) => e !== "");
730
774
  }
731
- function ie(a) {
775
+ function ae(n) {
732
776
  var t;
733
- Lt(
734
- (n) => Ze(n == null ? void 0 : n.toString),
735
- a,
777
+ vt(
778
+ (r) => Xe(r == null ? void 0 : r.toString),
779
+ n,
736
780
  "Expected `parts` to be an array of objects with a .toString() method. Got type: %t, value: %v"
737
- ), a = a.filter((n) => n).flatMap(String);
738
- let e = (t = a.shift()) == null ? void 0 : t.toString();
781
+ ), n = n.filter((r) => r).flatMap(String);
782
+ let e = (t = n.shift()) == null ? void 0 : t.toString();
739
783
  if (e) {
740
- for (const n of a.map((o) => o.toString()))
741
- n.startsWith(".") ? e = qe(e, n) : e[e.length - 1] !== "/" ? n[0] !== "/" ? e += "/" + n : e += n : n[0] === "/" ? e += n.slice(1) : e += n;
784
+ for (const r of n.map((s) => s.toString()))
785
+ r.startsWith(".") ? e = qe(e, r) : e[e.length - 1] !== "/" ? r[0] !== "/" ? e += "/" + r : e += r : r[0] === "/" ? e += r.slice(1) : e += r;
742
786
  e && e !== "/" && e.endsWith("/") && (e = e.slice(0, e.length - 1));
743
787
  }
744
788
  return e ?? "";
745
789
  }
746
- function qe(a, e) {
747
- if (lt(a, "Expected `base` to be a string. Got type: %t, value: %v"), e == null && (e = a, a = ""), e.startsWith("/"))
790
+ function qe(n, e) {
791
+ if (lt(n, "Expected `base` to be a string. Got type: %t, value: %v"), e == null && (e = n, n = ""), e.startsWith("/"))
748
792
  return e;
749
- let t = a;
793
+ let t = n;
750
794
  for (; ; )
751
795
  if (e.startsWith("..")) {
752
- for (let n = t.length; n > 0; --n)
753
- if (t[n] === "/" || n === 0) {
754
- t = t.slice(0, n), e = e.replace(/^\.\.\/?/, "");
796
+ for (let r = t.length; r > 0; --r)
797
+ if (t[r] === "/" || r === 0) {
798
+ t = t.slice(0, r), e = e.replace(/^\.\.\/?/, "");
755
799
  break;
756
800
  }
757
801
  } else if (e.startsWith("."))
758
802
  e = e.replace(/^\.\/?/, "");
759
803
  else
760
804
  break;
761
- return ie([t, e]);
805
+ return ae([t, e]);
762
806
  }
763
- function Je(a) {
764
- if (!a) return {};
765
- a.startsWith("?") && (a = a.slice(1));
766
- const e = a.split("&").filter((t) => t.trim() !== "").map((t) => {
767
- const [n, o] = t.split("=").map((r) => r.trim());
768
- return o.toLowerCase() === "true" ? [n, !0] : o.toLowerCase() === "false" ? [n, !1] : isNaN(Number(o)) ? [n, o] : [n, Number(o)];
807
+ function Ke(n) {
808
+ if (!n) return {};
809
+ n.startsWith("?") && (n = n.slice(1));
810
+ const e = n.split("&").filter((t) => t.trim() !== "").map((t) => {
811
+ const [r, s] = t.split("=").map((i) => i.trim());
812
+ return s.toLowerCase() === "true" ? [r, !0] : s.toLowerCase() === "false" ? [r, !1] : isNaN(Number(s)) ? [r, s] : [r, Number(s)];
769
813
  });
770
814
  return Object.fromEntries(e);
771
815
  }
772
- function ot(a, e, t = {}) {
773
- var s;
774
- const [n, o] = e.split("?"), r = ye(n);
775
- e: for (const h of a) {
776
- const { fragments: c } = h;
777
- if (!(((s = c[c.length - 1]) == null ? void 0 : s.type) === 3) && c.length !== r.length || t.willMatch && !t.willMatch(h))
816
+ function ot(n, e, t = {}) {
817
+ var o;
818
+ const [r, s] = e.split("?"), i = me(r);
819
+ e: for (const f of n) {
820
+ const { fragments: c } = f;
821
+ if (!(((o = c[c.length - 1]) == null ? void 0 : o.type) === 3) && c.length !== i.length || t.willMatch && !t.willMatch(f))
778
822
  continue e;
779
- const p = [];
780
- t: for (let f = 0; f < c.length; f++) {
781
- const m = r[f], $ = c[f];
782
- if (m == null && $.type !== 3)
823
+ const w = [];
824
+ t: for (let d = 0; d < c.length; d++) {
825
+ const b = i[d], $ = c[d];
826
+ if (b == null && $.type !== 3)
783
827
  continue e;
784
828
  switch ($.type) {
785
829
  case 1:
786
- if ($.name.toLowerCase() === m.toLowerCase()) {
787
- p.push($);
830
+ if ($.name.toLowerCase() === b.toLowerCase()) {
831
+ w.push($);
788
832
  break;
789
833
  } else
790
834
  continue e;
791
835
  case 2:
792
- p.push({ ...$, value: m });
836
+ w.push({ ...$, value: b });
793
837
  break;
794
838
  case 3:
795
- p.push({ ...$, value: r.slice(f).join("/") });
839
+ w.push({ ...$, value: i.slice(d).join("/") });
796
840
  break t;
797
841
  case 4:
798
- if (isNaN(Number(m)))
842
+ if (isNaN(Number(b)))
799
843
  continue e;
800
- p.push({ ...$, value: Number(m) });
844
+ w.push({ ...$, value: Number(b) });
801
845
  break;
802
846
  default:
803
847
  throw new Error(`Unknown fragment type: ${$.type}`);
804
848
  }
805
849
  }
806
- const b = /* @__PURE__ */ Object.create(null);
807
- for (const f of p)
808
- f.type === 2 && (b[f.name] = decodeURIComponent(f.value)), f.type === 4 && (b[f.name] = f.value), f.type === 3 && (b.wildcard = "/" + decodeURIComponent(f.value));
850
+ const p = /* @__PURE__ */ Object.create(null);
851
+ for (const d of w)
852
+ d.type === 2 && (p[d.name] = decodeURIComponent(d.value)), d.type === 4 && (p[d.name] = d.value), d.type === 3 && (p.wildcard = "/" + decodeURIComponent(d.value));
809
853
  return {
810
- path: "/" + p.map((f) => f.value).join("/"),
811
- pattern: "/" + c.map((f) => f.type === 2 ? `{${f.name}}` : f.type === 4 ? `{#${f.name}}` : f.name).join("/"),
812
- params: b,
813
- query: Je(o),
814
- meta: h.meta
854
+ path: "/" + w.map((d) => d.value).join("/"),
855
+ pattern: "/" + c.map((d) => d.type === 2 ? `{${d.name}}` : d.type === 4 ? `{#${d.name}}` : d.name).join("/"),
856
+ params: p,
857
+ query: Ke(s),
858
+ meta: f.meta
815
859
  };
816
860
  }
817
861
  }
818
- function Wt(a) {
819
- const e = [], t = [], n = [], o = [];
820
- for (const s of a) {
821
- const { fragments: h } = s;
822
- h.some(
862
+ function Wt(n) {
863
+ const e = [], t = [], r = [], s = [];
864
+ for (const o of n) {
865
+ const { fragments: f } = o;
866
+ f.some(
823
867
  (c) => c.type === 3
824
868
  /* Wildcard */
825
- ) ? o.push(s) : h.some(
869
+ ) ? s.push(o) : f.some(
826
870
  (c) => c.type === 4
827
871
  /* NumericParam */
828
- ) ? t.push(s) : h.some(
872
+ ) ? t.push(o) : f.some(
829
873
  (c) => c.type === 2
830
874
  /* Param */
831
- ) ? n.push(s) : e.push(s);
875
+ ) ? r.push(o) : e.push(o);
832
876
  }
833
- const r = (s, h) => s.fragments.length > h.fragments.length ? -1 : 1;
834
- return e.sort(r), t.sort(r), n.sort(r), o.sort(r), [...e, ...t, ...n, ...o];
877
+ const i = (o, f) => o.fragments.length > f.fragments.length ? -1 : 1;
878
+ return e.sort(i), t.sort(i), r.sort(i), s.sort(i), [...e, ...t, ...r, ...s];
835
879
  }
836
- function It(a) {
837
- const e = ye(a), t = [];
838
- for (let n = 0; n < e.length; n++) {
839
- const o = e[n];
840
- if (o === "*") {
841
- if (n !== e.length - 1)
842
- throw new Error(`Wildcard must be at the end of a pattern. Received: ${a}`);
880
+ function zt(n) {
881
+ const e = me(n), t = [];
882
+ for (let r = 0; r < e.length; r++) {
883
+ const s = e[r];
884
+ if (s === "*") {
885
+ if (r !== e.length - 1)
886
+ throw new Error(`Wildcard must be at the end of a pattern. Received: ${n}`);
843
887
  t.push({
844
888
  type: 3,
845
889
  name: "*",
846
890
  value: null
847
891
  });
848
- } else o.at(0) === "{" && o.at(-1) === "}" ? t.push({
849
- type: o[1] === "#" ? 4 : 2,
850
- name: o[1] === "#" ? o.slice(2, -1) : o.slice(1, -1),
892
+ } else s.at(0) === "{" && s.at(-1) === "}" ? t.push({
893
+ type: s[1] === "#" ? 4 : 2,
894
+ name: s[1] === "#" ? s.slice(2, -1) : s.slice(1, -1),
851
895
  value: null
852
896
  }) : t.push({
853
897
  type: 1,
854
- name: o,
855
- value: o
898
+ name: s,
899
+ value: s
856
900
  });
857
901
  }
858
902
  return t;
859
903
  }
860
- var pt = /* @__PURE__ */ ((a) => (a.hash = "hash", a.path = "path", a))(pt || {}), Le, j, X, S, Ie, W, ke, Z, ee, ue, he, fe, Se, G, Ye, Xe;
861
- class mt {
904
+ var Ee, T, Z, L, ze, W, ke, ee, z, le, he, ue, Le, B, Je, Ye;
905
+ class Ft {
862
906
  constructor(e, t) {
863
- g(this, G);
864
- g(this, Le);
865
- g(this, j);
866
- g(this, X);
867
- g(this, S, Vt());
868
- g(this, Ie, 0);
869
- g(this, W, []);
870
- g(this, ke);
871
- g(this, Z, []);
872
- g(this, ee);
907
+ u(this, B);
908
+ u(this, Ee);
909
+ u(this, T);
910
+ u(this, Z);
911
+ u(this, L, Ht());
912
+ u(this, ze, 0);
913
+ u(this, W, []);
914
+ u(this, ke);
915
+ u(this, ee, []);
916
+ // Callbacks that need to be called on unmount.
917
+ u(this, z, []);
873
918
  /**
874
919
  * The currently matched route pattern, if any.
875
920
  */
876
921
  k(this, "$pattern");
877
- g(this, ue);
922
+ u(this, le);
878
923
  /**
879
924
  * The current URL path.
880
925
  */
881
926
  k(this, "$path");
882
- g(this, he);
927
+ u(this, he);
883
928
  /**
884
929
  * The current named path params.
885
930
  */
886
931
  k(this, "$params");
887
- g(this, fe);
932
+ u(this, ue);
888
933
  /**
889
934
  * The current query params. Changes to this object will be reflected in the URL.
890
935
  */
891
936
  k(this, "$query");
892
- g(this, Se);
893
- w(this, Le, e), w(this, j, e.createLogger("dolla/router")), w(this, X, t);
894
- const [n, o] = Q(null), [r, s] = Q(""), [h, c] = Q({}), [u, p] = Q(Je(window.location.search));
895
- this.$pattern = n, w(this, ue, o), this.$path = r, w(this, he, s), this.$params = h, w(this, fe, c), this.$query = u, w(this, Se, p), e.beforeMount(() => {
896
- w(this, ee, ut([u], (f) => {
897
- const m = new URLSearchParams();
898
- for (const N in f)
899
- m.set(N, String(f[N]));
900
- const $ = "?" + m.toString();
901
- $ != i(this, S).location.search && i(this, S).replace({
902
- pathname: i(this, S).location.pathname,
903
- search: $
904
- });
905
- }));
906
- const b = (f) => {
907
- P(this, G, Xe).call(this, f);
908
- };
909
- i(this, S).listen(b), P(this, G, Xe).call(this, i(this, S)), i(this, j).info("Intercepting <a> clicks within root element:", i(this, X).rootElement), yt(i(this, X).rootElement, (f) => {
910
- let m = f.getAttribute("href");
911
- i(this, j).info("Intercepted link click", f, m), /^https?:\/\/|^\//.test(m) || (m = ie([i(this, S).location.pathname, m])), i(this, S).push(m);
912
- });
937
+ u(this, Le);
938
+ m(this, Ee, e), m(this, T, e.createLogger("dolla/router")), m(this, Z, t);
939
+ const [r, s] = K(null), [i, o] = K(""), [f, c] = K({}), [y, w] = K(Ke(window.location.search));
940
+ this.$pattern = r, m(this, le, s), this.$path = i, m(this, he, o), this.$params = f, m(this, ue, c), this.$query = y, m(this, Le, w), e.beforeMount(() => {
941
+ a(this, z).push(
942
+ ht([y], (p) => {
943
+ const d = new URLSearchParams();
944
+ for (const $ in p)
945
+ d.set($, String(p[$]));
946
+ const b = "?" + d.toString();
947
+ b != a(this, L).location.search && a(this, L).replace({
948
+ pathname: a(this, L).location.pathname,
949
+ search: b
950
+ });
951
+ })
952
+ ), a(this, z).push(a(this, L).listen(P(this, B, Ye))), P(this, B, Ye).call(this, a(this, L)), a(this, z).push(
953
+ Bt(a(this, Z).rootElement, (p) => {
954
+ let d = p.getAttribute("href");
955
+ a(this, T).info("Intercepted link click", p, d), /^https?:\/\/|^\//.test(d) || (d = ae([a(this, L).location.pathname, d])), a(this, L).push(d);
956
+ })
957
+ ), a(this, T).info("Intercepting <a> clicks within root element:", a(this, Z).rootElement);
913
958
  }), e.onUnmount(() => {
914
- i(this, ee) && (i(this, ee).call(this), w(this, ee, void 0));
959
+ for (; a(this, z).length > 0; )
960
+ a(this, z).pop()();
915
961
  });
916
962
  }
917
963
  setup(e) {
918
- e.style === "hash" && w(this, S, Ft()), w(this, Z, Wt(
919
- e.routes.flatMap((t) => P(this, G, Ye).call(this, t)).map((t) => ({
964
+ e.style === "hash" && m(this, L, _t()), m(this, ee, Wt(
965
+ e.routes.flatMap((t) => P(this, B, Je).call(this, t)).map((t) => ({
920
966
  pattern: t.pattern,
921
967
  meta: t.meta,
922
- fragments: It(t.pattern)
968
+ fragments: zt(t.pattern)
923
969
  }))
924
970
  ));
925
- for (const t of i(this, Z))
971
+ for (const t of a(this, ee))
926
972
  if (t.meta.redirect) {
927
- let n;
928
- if (!Ze(t.meta.redirect)) if (H(t.meta.redirect)) {
929
- if (n = t.meta.redirect, !ot(i(this, Z), n, {
930
- willMatch(r) {
931
- return r !== t;
973
+ let r;
974
+ if (!Xe(t.meta.redirect)) if (D(t.meta.redirect)) {
975
+ if (r = t.meta.redirect, !ot(a(this, ee), r, {
976
+ willMatch(i) {
977
+ return i !== t;
932
978
  }
933
979
  }))
934
980
  throw new Error(
@@ -946,29 +992,29 @@ class mt {
946
992
  * navigate(["/users", 215], { replace: true }); // replace current history entry with `/users/215`
947
993
  */
948
994
  go(e, t = {}) {
949
- let n;
950
- Array.isArray(e) ? n = ie(e) : n = e.toString(), n = qe(i(this, S).location.pathname, n), t.preserveQuery && (n += i(this, S).location.search), t.replace ? i(this, S).replace(n) : i(this, S).push(n);
995
+ let r;
996
+ Array.isArray(e) ? r = ae(e) : r = e.toString(), r = qe(a(this, L).location.pathname, r), t.preserveQuery && (r += a(this, L).location.search), t.replace ? a(this, L).replace(r) : a(this, L).push(r);
951
997
  }
952
998
  /**
953
999
  * Navigate backward. Pass a number of steps to hit the back button that many times.
954
1000
  */
955
1001
  back(e = 1) {
956
- i(this, S).go(-e);
1002
+ a(this, L).go(-e);
957
1003
  }
958
1004
  /**
959
1005
  * Navigate forward. Pass a number of steps to hit the forward button that many times.
960
1006
  */
961
1007
  forward(e = 1) {
962
- i(this, S).go(e);
1008
+ a(this, L).go(e);
963
1009
  }
964
1010
  }
965
- Le = new WeakMap(), j = new WeakMap(), X = new WeakMap(), S = new WeakMap(), Ie = new WeakMap(), W = new WeakMap(), ke = new WeakMap(), Z = new WeakMap(), ee = new WeakMap(), ue = new WeakMap(), he = new WeakMap(), fe = new WeakMap(), Se = new WeakMap(), G = new WeakSet(), /**
1011
+ Ee = new WeakMap(), T = new WeakMap(), Z = new WeakMap(), L = new WeakMap(), ze = new WeakMap(), W = new WeakMap(), ke = new WeakMap(), ee = new WeakMap(), z = new WeakMap(), le = new WeakMap(), he = new WeakMap(), ue = new WeakMap(), Le = new WeakMap(), B = new WeakSet(), /**
966
1012
  * Parses a route definition object into a set of matchable routes.
967
1013
  *
968
1014
  * @param route - Route config object.
969
1015
  * @param layers - Array of parent layers. Passed when this function calls itself on nested routes.
970
1016
  */
971
- Ye = function(e, t = [], n = []) {
1017
+ Je = function(e, t = [], r = []) {
972
1018
  if (!(typeof e == "object" && !Array.isArray(e)) || typeof e.path != "string")
973
1019
  throw new TypeError(`Route configs must be objects with a 'path' string property. Got: ${e}`);
974
1020
  if (e.redirect && e.routes)
@@ -977,180 +1023,191 @@ Ye = function(e, t = [], n = []) {
977
1023
  throw new Error("Route cannot have both a 'redirect' and a 'view'.");
978
1024
  if (!e.view && !e.routes && !e.redirect)
979
1025
  throw new Error("Route must have a 'view', a 'redirect', or a set of nested 'routes'.");
980
- let o = [];
981
- for (const u of t)
982
- o.push(...ye(u.path));
983
- o.push(...ye(e.path)), o[o.length - 1] === "*" && o.pop();
984
- const r = [];
1026
+ let s = [];
1027
+ for (const c of t)
1028
+ s.push(...me(c.path));
1029
+ s.push(...me(e.path)), s[s.length - 1] === "*" && s.pop();
1030
+ const i = [];
985
1031
  if (e.redirect) {
986
- let u = e.redirect;
987
- return H(u) && (u = qe(ie(o), u), u.startsWith("/") || (u = "/" + u)), r.push({
988
- pattern: "/" + ie([...o, ...ye(e.path)]),
1032
+ let c = e.redirect;
1033
+ return D(c) && (c = qe(ae(s), c), c.startsWith("/") || (c = "/" + c)), i.push({
1034
+ pattern: "/" + ae([...s, ...me(e.path)]),
989
1035
  meta: {
990
- redirect: u
1036
+ redirect: c
991
1037
  }
992
- }), r;
1038
+ }), i;
993
1039
  }
994
- let s = ht;
1040
+ let o = ut;
995
1041
  if (typeof e.view == "function")
996
- s = e.view;
1042
+ o = e.view;
997
1043
  else if (e.view)
998
1044
  throw new TypeError(`Route '${e.path}' expected a view function or undefined. Got: ${e.view}`);
999
- const h = Ce(s), c = { id: tt(this, Ie)._++, markup: h };
1045
+ const f = { id: et(this, ze)._++, view: o };
1000
1046
  if (e.routes)
1001
- for (const u of e.routes)
1002
- r.push(...P(this, G, Ye).call(this, u, [...t, e], [...n, c]));
1047
+ for (const c of e.routes)
1048
+ i.push(...P(this, B, Je).call(this, c, [...t, e], [...r, f]));
1003
1049
  else
1004
- r.push({
1005
- pattern: parent ? ie([...t.map((u) => u.path), e.path]) : e.path,
1050
+ i.push({
1051
+ pattern: parent ? ae([...t.map((c) => c.path), e.path]) : e.path,
1006
1052
  meta: {
1007
1053
  pattern: e.path,
1008
- layers: [...n, c],
1054
+ layers: [...r, f],
1009
1055
  beforeMatch: e.beforeMatch
1010
1056
  }
1011
1057
  });
1012
- return r;
1013
- }, Xe = async function({ location: e }) {
1014
- e.search !== i(this, ke) && (w(this, ke, e.search), i(this, Se).call(this, Je(e.search)));
1015
- const t = ot(i(this, Z), e.pathname);
1058
+ return i;
1059
+ }, Ye = async function({ location: e }) {
1060
+ e.search !== a(this, ke) && (m(this, ke, e.search), a(this, Le).call(this, Ke(e.search)));
1061
+ const t = ot(a(this, ee), e.pathname);
1016
1062
  if (!t) {
1017
- i(this, ue).call(this, null), i(this, he).call(this, e.pathname), i(this, fe).call(this, {
1063
+ a(this, le).call(this, null), a(this, he).call(this, e.pathname), a(this, ue).call(this, {
1018
1064
  wildcard: e.pathname
1019
1065
  });
1020
1066
  return;
1021
1067
  }
1022
1068
  if (t.meta.beforeMatch && await t.meta.beforeMatch({
1023
- redirect: (n) => {
1069
+ redirect: (r) => {
1024
1070
  throw new Error("Redirect not yet implemented.");
1025
1071
  }
1026
- }), i(this, j).info(`Matched route: '${t.pattern}' ('${t.path}')`), t.meta.redirect != null)
1072
+ }), a(this, T).info(`Matched route: '${t.pattern}' ('${t.path}')`), t.meta.redirect != null)
1027
1073
  if (typeof t.meta.redirect == "string") {
1028
- const n = Bt(t.meta.redirect, t.params);
1029
- i(this, j).info(`Redirecting to: '${n}'`), i(this, S).replace(n);
1074
+ const r = Qt(t.meta.redirect, t.params);
1075
+ a(this, T).info(`Redirecting to: '${r}'`), a(this, L).replace(r);
1030
1076
  } else if (typeof t.meta.redirect == "function") {
1031
- const n = {
1077
+ const r = {
1032
1078
  path: t.path,
1033
1079
  pattern: t.pattern,
1034
1080
  params: t.params,
1035
1081
  query: t.query
1036
1082
  };
1037
- let o = await t.meta.redirect(n);
1038
- if (typeof o != "string")
1083
+ let s = await t.meta.redirect(r);
1084
+ if (typeof s != "string")
1039
1085
  throw new Error("Redirect function must return a path to redirect to.");
1040
- o.startsWith("/") || (o = qe(t.path, o)), i(this, j).info(`Redirecting to: '${o}'`), i(this, S).replace(o);
1086
+ s.startsWith("/") || (s = qe(t.path, s)), a(this, T).info(`Redirecting to: '${s}'`), a(this, L).replace(s);
1041
1087
  } else
1042
1088
  throw new TypeError("Redirect must either be a path string or a function.");
1043
- else if (i(this, he).call(this, t.path), i(this, fe).call(this, t.params), t.pattern !== this.$pattern.get()) {
1044
- i(this, ue).call(this, t.pattern);
1045
- const n = t.meta.layers;
1046
- for (let o = 0; o < n.length; o++) {
1047
- const r = n[o], s = i(this, W)[o];
1048
- if ((s == null ? void 0 : s.id) !== r.id) {
1049
- i(this, j).info(`Replacing layer @${o} (active ID: ${s == null ? void 0 : s.id}, matched ID: ${r.id})`), w(this, W, i(this, W).slice(0, o));
1050
- const h = i(this, W).at(-1), c = {
1051
- root: i(this, Le)
1052
- }, u = kt(r.markup, c), p = St(u);
1053
- s && s.handle.connected && s.handle.disconnect(), h ? h.handle.setChildren(u) : i(this, X).rootView.setChildren(u), i(this, W).push({ id: r.id, handle: p });
1089
+ else if (a(this, he).call(this, t.path), a(this, ue).call(this, t.params), t.pattern !== this.$pattern.get()) {
1090
+ a(this, le).call(this, t.pattern);
1091
+ const r = t.meta.layers;
1092
+ for (let s = 0; s < r.length; s++) {
1093
+ const i = r[s], o = a(this, W)[s];
1094
+ if ((o == null ? void 0 : o.id) !== i.id) {
1095
+ a(this, T).info(`Replacing layer @${s} (active ID: ${o == null ? void 0 : o.id}, matched ID: ${i.id})`), m(this, W, a(this, W).slice(0, s));
1096
+ const f = a(this, W).at(-1), c = a(this, Ee).constructView(i.view, {});
1097
+ o && o.node.isMounted && o.node.unmount(), f ? f.node.setChildren([c]) : a(this, Z).rootView.setChildren([c]), a(this, W).push({ id: i.id, node: c });
1054
1098
  }
1055
1099
  }
1056
1100
  }
1057
1101
  };
1058
- const zt = /(noopener|noreferrer) (noopener|noreferrer)/, Gt = /^[\w-_]+:/;
1059
- function yt(a, e, t = window) {
1060
- function n(r) {
1061
- return !r || r === a ? null : r.localName !== "a" || r.href === void 0 ? n(r.parentNode) : r;
1102
+ const It = /(noopener|noreferrer) (noopener|noreferrer)/, Gt = /^[\w-_]+:/;
1103
+ function Bt(n, e, t = window) {
1104
+ function r(i) {
1105
+ return !i || i === n ? null : i.localName !== "a" || i.href === void 0 ? r(i.parentNode) : i;
1062
1106
  }
1063
- function o(r) {
1064
- if (r.button && r.button !== 0 || r.ctrlKey || r.metaKey || r.altKey || r.shiftKey || r.defaultPrevented)
1107
+ function s(i) {
1108
+ if (i.button && i.button !== 0 || i.ctrlKey || i.metaKey || i.altKey || i.shiftKey || i.defaultPrevented)
1065
1109
  return;
1066
- const s = n(r.target);
1067
- s && (t.location.protocol !== s.protocol || t.location.hostname !== s.hostname || t.location.port !== s.port || s.hasAttribute("data-router-ignore") || s.hasAttribute("download") || s.getAttribute("target") === "_blank" && zt.test(s.getAttribute("rel")) || Gt.test(s.getAttribute("href")) || (r.preventDefault(), e(s)));
1110
+ const o = r(i.target);
1111
+ o && (t.location.protocol !== o.protocol || t.location.hostname !== o.hostname || t.location.port !== o.port || o.hasAttribute("data-router-ignore") || o.hasAttribute("download") || o.getAttribute("target") === "_blank" && It.test(o.getAttribute("rel")) || Gt.test(o.getAttribute("href")) || (i.preventDefault(), e(o)));
1068
1112
  }
1069
- return a.addEventListener("click", o), function() {
1070
- a.removeEventListener("click", o);
1113
+ return n.addEventListener("click", s), function() {
1114
+ n.removeEventListener("click", s);
1071
1115
  };
1072
1116
  }
1073
- function Bt(a, e) {
1117
+ function Qt(n, e) {
1074
1118
  for (const t in e) {
1075
- const n = e[t].toString();
1076
- a = a.replace(`{${t}}`, n).replace(`{#${t}}`, n);
1119
+ const r = e[t].toString();
1120
+ n = n.replace(`{${t}}`, r).replace(`{#${t}}`, r);
1077
1121
  }
1078
- return a;
1122
+ return n;
1079
1123
  }
1080
- const Zt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1081
- __proto__: null,
1082
- Router: mt,
1083
- RoutingStyle: pt,
1084
- catchLinks: yt
1085
- }, Symbol.toStringTag, { value: "Module" }));
1086
- var I, Pe, te, ne, Me, Re, Oe, xe, R, z;
1087
- class Qt {
1124
+ var F, Pe, I, te, Se, Re, xe, Me, Ne, R, G;
1125
+ class Kt {
1088
1126
  constructor() {
1089
- g(this, I, !1);
1090
- g(this, Pe, "production");
1091
- g(this, te);
1092
- g(this, ne);
1093
1127
  k(this, "http");
1094
1128
  k(this, "language");
1095
1129
  k(this, "render");
1096
1130
  k(this, "router");
1097
- g(this, Me, []);
1098
- g(this, Re, []);
1099
- g(this, Oe, []);
1100
- g(this, xe, []);
1101
- g(this, R, {
1131
+ u(this, F, !1);
1132
+ u(this, Pe, "production");
1133
+ u(this, I);
1134
+ u(this, te);
1135
+ u(this, Se, Nt);
1136
+ u(this, Re, []);
1137
+ u(this, xe, []);
1138
+ u(this, Me, []);
1139
+ u(this, Ne, []);
1140
+ u(this, R, {
1102
1141
  info: "development",
1103
1142
  log: "development",
1104
1143
  warn: "development",
1105
1144
  error: !0
1106
1145
  });
1107
- g(this, z, nt("*,-dolla/*"));
1108
- k(this, "createSignal", Q);
1109
- k(this, "createSettableSignal", Pt);
1110
- k(this, "toSettableSignal", Mt);
1111
- k(this, "signalify", Be);
1112
- k(this, "designalify", Rt);
1113
- k(this, "derive", Qe);
1114
- k(this, "watch", ut);
1115
- k(this, "createRef", Ot);
1116
- k(this, "isRef", xt);
1146
+ u(this, G, rt("*,-dolla/*"));
1147
+ k(this, "createSignal", K);
1148
+ k(this, "createSettableSignal", $t);
1149
+ k(this, "toSettableSignal", Et);
1150
+ k(this, "signalify", Ge);
1151
+ k(this, "designalify", kt);
1152
+ k(this, "derive", Be);
1153
+ k(this, "watch", ht);
1154
+ k(this, "createRef", Lt);
1155
+ k(this, "isRef", Pt);
1117
1156
  const e = this;
1118
- this.http = new Tt(), this.language = new Ct(this), this.render = new Dt(this), this.router = new mt(this, {
1157
+ this.http = new Ot(), this.language = new qt(this), this.render = new Vt(this), this.router = new Ft(this, {
1119
1158
  get rootElement() {
1120
- return i(e, te);
1159
+ return a(e, I);
1121
1160
  },
1122
1161
  get rootView() {
1123
- return i(e, ne);
1162
+ return a(e, te);
1124
1163
  }
1125
1164
  });
1126
1165
  }
1166
+ /**
1167
+ * True when the app is connected to a DOM node and displayed to the user.
1168
+ */
1127
1169
  get isMounted() {
1128
- return i(this, I);
1170
+ return a(this, F);
1129
1171
  }
1130
- get env() {
1131
- return i(this, Pe);
1172
+ /**
1173
+ * Get the current environment that this app is running in.
1174
+ * Environment affects which log messages will print and how much debugging info is included in the DOM.
1175
+ */
1176
+ getEnv() {
1177
+ return a(this, Pe);
1178
+ }
1179
+ /**
1180
+ * Sets the environment that this app is running in.
1181
+ * Environment affects which log messages will print and how much debugging info is included in the DOM.
1182
+ */
1183
+ setEnv(e) {
1184
+ m(this, Pe, e);
1132
1185
  }
1133
- set env(e) {
1134
- w(this, Pe, e);
1186
+ /**
1187
+ * Sets the view that will be shown when the `crash` method is called on any logger.
1188
+ * When a crash is reported the app will be unmounted and replaced with this crash page.
1189
+ */
1190
+ setCrashView(e) {
1191
+ m(this, Se, e);
1135
1192
  }
1136
1193
  async mount(e, t) {
1137
- if (i(this, I))
1194
+ if (a(this, F))
1138
1195
  throw new Error("Dolla is already mounted.");
1139
- if (H(e)) {
1140
- const o = document.querySelector(e);
1141
- rt(HTMLElement, o, `Selector '${e}' did not match any element.`), w(this, te, o);
1196
+ if (D(e)) {
1197
+ const s = document.querySelector(e);
1198
+ nt(HTMLElement, s, `Selector '${e}' did not match any element.`), m(this, I, s);
1142
1199
  } else
1143
- rt(HTMLElement, e, "Expected an HTML element or a selector string. Got type: %t, value: %v"), w(this, te, e);
1144
- let n;
1145
- t ? n = Ce(t) : n = Ce(ht), w(this, ne, at({ root: this }, n.type, n.props)), await Promise.all(i(this, Me).map((o) => o())), i(this, ne).connect(i(this, te)), w(this, I, !0);
1146
- for (const o of i(this, Re))
1147
- o();
1200
+ nt(HTMLElement, e, "Expected an HTML element or a selector string. Got type: %t, value: %v"), m(this, I, e);
1201
+ let r;
1202
+ t ? r = at(t) : r = at(ut), m(this, te, this.constructView(r.type, r.props)), await Promise.all(a(this, Re).map((s) => s())), a(this, te).mount(a(this, I)), m(this, F, !0);
1203
+ for (const s of a(this, xe))
1204
+ s();
1148
1205
  }
1149
1206
  async unmount() {
1150
1207
  var e;
1151
- if (i(this, I)) {
1152
- await Promise.all(i(this, Oe).map((t) => t())), (e = i(this, ne)) == null || e.disconnect(), w(this, I, !1);
1153
- for (const t of i(this, xe))
1208
+ if (a(this, F)) {
1209
+ await Promise.all(a(this, Me).map((t) => t())), (e = a(this, te)) == null || e.unmount(), m(this, F, !1);
1210
+ for (const t of a(this, Ne))
1154
1211
  t();
1155
1212
  }
1156
1213
  }
@@ -1159,51 +1216,51 @@ class Qt {
1159
1216
  * it will be awaited before mounting finishes. Use this to perform initial setup before the app is displayed to the user.
1160
1217
  */
1161
1218
  beforeMount(e) {
1162
- i(this, Me).push(e);
1219
+ a(this, Re).push(e);
1163
1220
  }
1164
1221
  /**
1165
1222
  * Registers a `callback` to run after the app is mounted.
1166
1223
  */
1167
1224
  onMount(e) {
1168
- i(this, Re).push(e);
1225
+ a(this, xe).push(e);
1169
1226
  }
1170
1227
  /**
1171
1228
  * Registers a `callback` to run after `Dolla.unmount` is called, before the app is unmounted. If `callback` returns a Promise,
1172
1229
  * it will be awaited before unmounting finishes. Use this to perform cleanup.
1173
1230
  */
1174
1231
  beforeUnmount(e) {
1175
- i(this, Oe).push(e);
1232
+ a(this, Me).push(e);
1176
1233
  }
1177
1234
  /**
1178
1235
  * Registers a `callback` to run after the app is unmounted.
1179
1236
  */
1180
1237
  onUnmount(e) {
1181
- i(this, xe).push(e);
1238
+ a(this, Ne).push(e);
1182
1239
  }
1183
1240
  /**
1184
1241
  * Update log type toggles. Values that are not passed will remain unchanged.
1185
1242
  */
1186
1243
  setLoggles(e) {
1187
1244
  for (const t in e) {
1188
- const n = e[t];
1189
- n && (i(this, R)[t] = n);
1245
+ const r = e[t];
1246
+ r && (a(this, R)[t] = r);
1190
1247
  }
1191
1248
  }
1192
1249
  setLogFilter(e) {
1193
- w(this, z, nt(e));
1250
+ m(this, G, rt(e));
1194
1251
  }
1195
1252
  createLogger(e, t) {
1196
- const n = Be(e), o = (t == null ? void 0 : t.console) ?? Nt(), r = this;
1253
+ const r = Ge(e), s = (t == null ? void 0 : t.console) ?? St(), i = this;
1197
1254
  return {
1198
1255
  get info() {
1199
- var h;
1200
- const s = n.get();
1201
- if (i(r, R).info === !1 || H(i(r, R).info) && i(r, R).info !== r.env || !i(h = r, z).call(h, s))
1202
- return Ne;
1256
+ var f;
1257
+ const o = r.get();
1258
+ if (a(i, R).info === !1 || D(a(i, R).info) && a(i, R).info !== i.getEnv() || !a(f = i, G).call(f, o))
1259
+ return Oe;
1203
1260
  {
1204
- let c = `%c${s}`;
1205
- return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", o.info.bind(
1206
- o,
1261
+ let c = `%c${o}`;
1262
+ return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", s.info.bind(
1263
+ s,
1207
1264
  c,
1208
1265
  `color:${Te(c)};font-weight:bold`,
1209
1266
  "color:#777",
@@ -1213,14 +1270,14 @@ class Qt {
1213
1270
  }
1214
1271
  },
1215
1272
  get log() {
1216
- var h;
1217
- const s = n.get();
1218
- if (i(r, R).log === !1 || H(i(r, R).log) && i(r, R).log !== r.env || !i(h = r, z).call(h, s))
1219
- return Ne;
1273
+ var f;
1274
+ const o = r.get();
1275
+ if (a(i, R).log === !1 || D(a(i, R).log) && a(i, R).log !== i.getEnv() || !a(f = i, G).call(f, o))
1276
+ return Oe;
1220
1277
  {
1221
- let c = `%c${s}`;
1222
- return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", o.log.bind(
1223
- o,
1278
+ let c = `%c${o}`;
1279
+ return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", s.log.bind(
1280
+ s,
1224
1281
  c,
1225
1282
  `color:${Te(c)};font-weight:bold`,
1226
1283
  "color:#777",
@@ -1230,14 +1287,14 @@ class Qt {
1230
1287
  }
1231
1288
  },
1232
1289
  get warn() {
1233
- var h;
1234
- const s = n.get();
1235
- if (i(r, R).warn === !1 || H(i(r, R).warn) && i(r, R).warn !== r.env || !i(h = r, z).call(h, s))
1236
- return Ne;
1290
+ var f;
1291
+ const o = r.get();
1292
+ if (a(i, R).warn === !1 || D(a(i, R).warn) && a(i, R).warn !== i.getEnv() || !a(f = i, G).call(f, o))
1293
+ return Oe;
1237
1294
  {
1238
- let c = `%c${s}`;
1239
- return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", o.warn.bind(
1240
- o,
1295
+ let c = `%c${o}`;
1296
+ return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", s.warn.bind(
1297
+ s,
1241
1298
  c,
1242
1299
  `color:${Te(c)};font-weight:bold`,
1243
1300
  "color:#777",
@@ -1247,14 +1304,14 @@ class Qt {
1247
1304
  }
1248
1305
  },
1249
1306
  get error() {
1250
- var h;
1251
- const s = n.get();
1252
- if (i(r, R).error === !1 || H(i(r, R).error) && i(r, R).error !== r.env || !i(h = r, z).call(h, s))
1253
- return Ne;
1307
+ var f;
1308
+ const o = r.get();
1309
+ if (a(i, R).error === !1 || D(a(i, R).error) && a(i, R).error !== i.getEnv() || !a(f = i, G).call(f, o))
1310
+ return Oe;
1254
1311
  {
1255
- let c = `%c${s}`;
1256
- return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", o.error.bind(
1257
- o,
1312
+ let c = `%c${o}`;
1313
+ return t != null && t.uid ? c += ` %c[uid: %c${t.uid}%c]` : c += "%c%c%c", s.error.bind(
1314
+ s,
1258
1315
  c,
1259
1316
  `color:${Te(c)};font-weight:bold`,
1260
1317
  "color:#777",
@@ -1263,69 +1320,47 @@ class Qt {
1263
1320
  );
1264
1321
  }
1265
1322
  },
1266
- crash(s) {
1323
+ crash(o) {
1324
+ throw i.isMounted && (i.unmount(), i.constructView(a(i, Se), {
1325
+ error: o,
1326
+ loggerName: r.get(),
1327
+ uid: t == null ? void 0 : t.uid
1328
+ }).mount(a(i, I))), o;
1267
1329
  }
1268
1330
  };
1269
1331
  }
1270
- constructView(e, t, n = []) {
1271
- return at({ root: this }, e, t, n);
1332
+ /**
1333
+ *
1334
+ */
1335
+ constructView(e, t, r = []) {
1336
+ return Rt({ root: this }, e, t, r);
1272
1337
  }
1273
- }
1274
- I = new WeakMap(), Pe = new WeakMap(), te = new WeakMap(), ne = new WeakMap(), Me = new WeakMap(), Re = new WeakMap(), Oe = new WeakMap(), xe = new WeakMap(), R = new WeakMap(), z = new WeakMap();
1275
- var wt = function(a, e, t, n) {
1276
- var o;
1277
- e[0] = 0;
1278
- for (var r = 1; r < e.length; r++) {
1279
- var s = e[r++], h = e[r] ? (e[0] |= s ? 1 : 2, t[e[r++]]) : e[++r];
1280
- s === 3 ? n[0] = h : s === 4 ? n[1] = Object.assign(n[1] || {}, h) : s === 5 ? (n[1] = n[1] || {})[e[++r]] = h : s === 6 ? n[1][e[++r]] += h + "" : s ? (o = a.apply(h, wt(a, h, t, ["", null])), n.push(o), h[0] ? e[0] |= 2 : (e[r - 2] = 0, e[r] = o)) : n.push(h);
1338
+ /**
1339
+ *
1340
+ */
1341
+ constructMarkup(e) {
1342
+ return xt(Mt({ root: this }, e));
1281
1343
  }
1282
- return n;
1283
- }, ct = /* @__PURE__ */ new Map();
1284
- function Kt(a) {
1285
- var e = ct.get(this);
1286
- return e || (e = /* @__PURE__ */ new Map(), ct.set(this, e)), (e = wt(this, e.get(a) || (e.set(a, e = function(t) {
1287
- for (var n, o, r = 1, s = "", h = "", c = [0], u = function(f) {
1288
- r === 1 && (f || (s = s.replace(/^\s*\n\s*|\s*\n\s*$/g, ""))) ? c.push(0, f, s) : r === 3 && (f || s) ? (c.push(3, f, s), r = 2) : r === 2 && s === "..." && f ? c.push(4, f, 0) : r === 2 && s && !f ? c.push(5, 0, !0, s) : r >= 5 && ((s || !f && r === 5) && (c.push(r, 0, s, o), r = 6), f && (c.push(r, f, 0, o), r = 6)), s = "";
1289
- }, p = 0; p < t.length; p++) {
1290
- p && (r === 1 && u(), u(p));
1291
- for (var b = 0; b < t[p].length; b++) n = t[p][b], r === 1 ? n === "<" ? (u(), c = [c], r = 3) : s += n : r === 4 ? s === "--" && n === ">" ? (r = 1, s = "") : s = n + s[0] : h ? n === h ? h = "" : s += n : n === '"' || n === "'" ? h = n : n === ">" ? (u(), r = 1) : r && (n === "=" ? (r = 5, o = s, s = "") : n === "/" && (r < 5 || t[p][b + 1] === ">") ? (u(), r === 3 && (c = c[0]), r = c, (c = c[0]).push(2, 0, r), r = 0) : n === " " || n === " " || n === `
1292
- ` || n === "\r" ? (u(), r = 2) : s += n), r === 3 && s === "!--" && (r = 4, c = c[0]);
1293
- }
1294
- return u(), c;
1295
- }(a)), e), arguments, [])).length > 1 ? e : e[0];
1296
1344
  }
1297
- const L = new Qt(), en = L.beforeMount.bind(L), tn = L.onMount.bind(L), nn = L.beforeUnmount.bind(L), rn = L.onUnmount.bind(L), an = L.mount.bind(L), sn = L.unmount.bind(L), on = L.http, cn = L.render, ln = L.createLogger.bind(L), un = L.setLogFilter.bind(L), hn = L.setLoggles.bind(L), fn = L.language.t.bind(L.language), dn = Kt.bind(Ce), gn = L.constructView.bind(L);
1345
+ F = new WeakMap(), Pe = new WeakMap(), I = new WeakMap(), te = new WeakMap(), Se = new WeakMap(), Re = new WeakMap(), xe = new WeakMap(), Me = new WeakMap(), Ne = new WeakMap(), R = new WeakMap(), G = new WeakMap();
1346
+ const ct = new Kt(), Zt = ct.language.t.bind(ct.language);
1298
1347
  export {
1299
- yn as Fragment,
1300
- en as beforeMount,
1301
- nn as beforeUnmount,
1302
- wn as cond,
1303
- gn as constructView,
1304
- ln as createLogger,
1305
- Ce as createMarkup,
1306
- Ot as createRef,
1307
- Pt as createSettableSignal,
1308
- Q as createSignal,
1309
- bn as createSignalSetter,
1310
- L as default,
1311
- Qe as derive,
1312
- Rt as designalify,
1313
- dn as html,
1314
- on as http,
1315
- xt as isRef,
1316
- an as mount,
1317
- tn as onMount,
1318
- rn as onUnmount,
1319
- vn as portal,
1320
- cn as render,
1321
- $n as repeat,
1322
- Zt as router,
1323
- un as setLogFilter,
1324
- hn as setLogges,
1325
- Be as signalify,
1326
- fn as t,
1327
- Mt as toSettableSignal,
1328
- sn as unmount,
1329
- ut as watch
1348
+ yt as cond,
1349
+ at as createMarkup,
1350
+ Lt as createRef,
1351
+ $t as createSettableSignal,
1352
+ K as createSignal,
1353
+ rr as createSignalSetter,
1354
+ ct as default,
1355
+ Be as derive,
1356
+ kt as designalify,
1357
+ tt as html,
1358
+ Pt as isRef,
1359
+ nr as portal,
1360
+ ar as repeat,
1361
+ Ge as signalify,
1362
+ Zt as t,
1363
+ Et as toSettableSignal,
1364
+ ht as watch
1330
1365
  };
1331
1366
  //# sourceMappingURL=index.js.map