react-easy-loading 0.3.1 → 0.3.3-beta

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.
@@ -64,7 +64,7 @@ export type Loading<Errors extends unknown[] = string[], Context extends Record<
64
64
  * DON'T RELY ON IT,
65
65
  * DON'T REPORT ANY ISSUE RELATED TO IT
66
66
  */
67
- __get__id: () => string;
67
+ __get__id: () => any;
68
68
  };
69
69
  export type CreateLoadingOptions = {
70
70
  initialState?: LoadingState;
@@ -1 +1 @@
1
- {"version":3,"file":"create-loading.d.ts","sourceRoot":"","sources":["../src/create-loading.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-loading.d.ts","sourceRoot":"","sources":["../src/create-loading.tsx"],"names":[],"mappings":"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"}
package/dist/main.esm.js CHANGED
@@ -1,46 +1,60 @@
1
1
  /*!
2
- * react-easy-loading v0.3.1
2
+ * react-easy-loading v0.3.3-beta
3
3
  * (c) Hichem Taboukouyout
4
4
  * Released under the MIT License.
5
5
  * Github: github.com/HichemTab-tech/react-easy-loading
6
6
  */
7
7
 
8
- import { jsx as p, jsxs as $, Fragment as w } from "react/jsx-runtime";
9
- import { createContext as F, useEffect as O, useRef as j, useMemo as D, useSyncExternalStore as W, useContext as z } from "react";
10
- const k = {}, C = {}, ne = (a, e) => {
11
- k[a] = e;
12
- }, ie = (a, e) => {
8
+ import { jsx as p, jsxs as B, Fragment as _ } from "react/jsx-runtime";
9
+ import { createContext as W, useEffect as j, useRef as k, useMemo as I, useSyncExternalStore as z, useContext as K } from "react";
10
+ const C = {}, q = {}, ue = (a, e) => {
13
11
  C[a] = e;
12
+ }, ce = (a, e) => {
13
+ q[a] = e;
14
14
  };
15
- let V = /* @__PURE__ */ p("div", { children: "Loading..." }), R = (a, e) => /* @__PURE__ */ $("div", { children: [
15
+ let P = /* @__PURE__ */ p("div", { children: "Loading..." }), R = (a, e) => /* @__PURE__ */ B("div", { children: [
16
16
  /* @__PURE__ */ p("h3", { children: "Errors:" }),
17
17
  /* @__PURE__ */ p("ul", { children: a?.map((s, i) => /* @__PURE__ */ p("li", { children: s }, i)) }),
18
18
  /* @__PURE__ */ p("button", { onClick: e, disabled: !e, children: "Retry" })
19
19
  ] });
20
- const ae = (a) => {
21
- V = a;
22
- }, oe = (a) => {
20
+ const le = (a) => {
21
+ P = a;
22
+ }, fe = (a) => {
23
23
  R = a;
24
- }, I = () => V, K = () => R, P = (a, e) => M(I, k, a, e);
25
- function B(a, e) {
26
- return M(K, C, a, e);
24
+ }, T = () => P, U = () => R, F = (a, e) => $(T, C, a, e);
25
+ function M(a, e) {
26
+ return $(U, q, a, e);
27
27
  }
28
- function M(a, e, s, i) {
28
+ function $(a, e, s, i) {
29
29
  return i ? typeof i == "string" ? e[i] ?? i : i : i === null ? null : s ? typeof s == "string" ? e[s] ?? s : s : a();
30
30
  }
31
31
  function L(a, ...e) {
32
32
  return typeof a == "function" ? a(...e) : a;
33
33
  }
34
- const U = (...a) => {
34
+ const N = (...a) => {
35
35
  }, b = (a) => {
36
36
  if (!a) throw new Error("Value is empty");
37
37
  return a;
38
- }, q = () => Math.random().toString(36).substring(2, 15), N = F(void 0), T = () => z(N), A = [];
38
+ }, D = () => Math.random().toString(36).substring(2, 15), G = W(void 0), H = () => K(G), O = [], w = /* @__PURE__ */ Symbol.for("react-shared-states.manager");
39
+ function J(a, e = () => null) {
40
+ const s = globalThis;
41
+ return s[w] || (s[w] = {}), s[w][a] || (s[w][a] = new d(e)), s[w][a];
42
+ }
39
43
  class d {
40
44
  constructor(e = () => null) {
41
- this.defaultValue = e;
45
+ this.defaultValue = e, this._uniqueId = D();
42
46
  }
43
47
  data = /* @__PURE__ */ new Map();
48
+ _uniqueId;
49
+ /**
50
+ * @internal
51
+ */
52
+ __get__uniqueId() {
53
+ return this._uniqueId;
54
+ }
55
+ static getInstance(e, s = () => null) {
56
+ return J(e, s);
57
+ }
44
58
  addListener(e, s, i) {
45
59
  const r = d.prefix(e, s), t = this.data.get(r);
46
60
  t && t.listeners.push(i);
@@ -63,11 +77,11 @@ class d {
63
77
  }
64
78
  createStatic(e, s, i) {
65
79
  const r = i ?? "_global", t = {
66
- key: q(),
80
+ key: D(),
67
81
  prefix: r,
68
82
  ...e
69
83
  };
70
- return A.push(t), this.init(t.key, t.prefix, s, !0), this.defaultValue = () => s, t;
84
+ return O.push(t), this.init(t.key, t.prefix, s, !0), this.defaultValue = () => s, t;
71
85
  }
72
86
  initStatic(e) {
73
87
  const { key: s, prefix: i } = e;
@@ -84,7 +98,7 @@ class d {
84
98
  i || this.callListeners(e, s);
85
99
  const o = this.data.get(t);
86
100
  if (o && (this.data.delete(t), o.isStatic && !r)) {
87
- const u = A.find((n) => n.key === e && n.prefix === s);
101
+ const u = O.find((n) => n.key === e && n.prefix === s);
88
102
  u && this.initStatic(u);
89
103
  }
90
104
  }
@@ -109,17 +123,18 @@ class d {
109
123
  return [s[0], s.slice(1).join("//")];
110
124
  }
111
125
  useEffect(e, s, i = null) {
112
- O(() => () => {
113
- i?.(), U(`[${d.prefix(e, s)}]`, "unmount effect");
126
+ j(() => () => {
127
+ i?.(), N(`[${d.prefix(e, s)}]`, "unmount effect");
114
128
  const r = this.get(e, s);
115
129
  r && r.listeners?.length === 0 && this.clear(e, s);
116
130
  }, [e, s]);
117
131
  }
118
132
  }
119
- class G {
133
+ class A {
120
134
  constructor(e) {
121
- this.sharedData = e;
135
+ this.sharedData = e, this._uniqueId = D();
122
136
  }
137
+ _uniqueId;
123
138
  _get(e, s) {
124
139
  let i, r = s;
125
140
  if (typeof e != "string") {
@@ -134,6 +149,12 @@ class G {
134
149
  value: void 0
135
150
  };
136
151
  }
152
+ __log_instance_id() {
153
+ return {
154
+ apiId: this._uniqueId,
155
+ managerId: this.sharedData.__get__uniqueId()
156
+ };
157
+ }
137
158
  get(e, s) {
138
159
  return this._get(e, s).value;
139
160
  }
@@ -154,9 +175,11 @@ class G {
154
175
  this.set(r.key, t, r.prefix);
155
176
  }
156
177
  }
178
+ // noinspection JSUnusedGlobalSymbols
157
179
  clearAll() {
158
180
  this.sharedData.clearAll();
159
181
  }
182
+ // noinspection JSUnusedGlobalSymbols
160
183
  clearScope(e) {
161
184
  const s = e || "_global";
162
185
  this.sharedData.data.forEach((i, r) => {
@@ -164,6 +187,7 @@ class G {
164
187
  t === s && (this.sharedData.clear(o, t), this.sharedData.callListeners(o, t));
165
188
  });
166
189
  }
190
+ // noinspection JSUnusedGlobalSymbols
167
191
  resolve(e) {
168
192
  const { key: s, prefix: i } = e;
169
193
  return this.get(s, i);
@@ -172,10 +196,12 @@ class G {
172
196
  let i, r;
173
197
  typeof e == "string" ? (i = e, r = s || "_global") : (i = e.key, r = e.prefix), this.sharedData.clear(i, r);
174
198
  }
199
+ // noinspection JSUnusedGlobalSymbols
175
200
  has(e, s = "_global") {
176
201
  const i = s || "_global";
177
202
  return !!this.sharedData.has(e, i);
178
203
  }
204
+ // noinspection JSUnusedGlobalSymbols
179
205
  getAll() {
180
206
  const e = {};
181
207
  return this.sharedData.data.forEach((s, i) => {
@@ -190,19 +216,19 @@ class G {
190
216
  };
191
217
  }
192
218
  }
193
- const H = (a) => {
194
- const e = T();
219
+ const Q = (a) => {
220
+ const e = H();
195
221
  return {
196
222
  prefix: a ?? e?.scopeName ?? "_global"
197
223
  };
198
224
  };
199
- function J(a) {
225
+ function X(a) {
200
226
  return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
201
227
  }
202
- var S, _;
203
- function Q() {
204
- if (_) return S;
205
- _ = 1;
228
+ var m, V;
229
+ function Y() {
230
+ if (V) return m;
231
+ V = 1;
206
232
  var a = typeof Element < "u", e = typeof Map == "function", s = typeof Set == "function", i = typeof ArrayBuffer == "function" && !!ArrayBuffer.isView;
207
233
  function r(t, o) {
208
234
  if (t === o) return !0;
@@ -215,18 +241,18 @@ function Q() {
215
241
  if (!r(t[n], o[n])) return !1;
216
242
  return !0;
217
243
  }
218
- var f;
244
+ var l;
219
245
  if (e && t instanceof Map && o instanceof Map) {
220
246
  if (t.size !== o.size) return !1;
221
- for (f = t.entries(); !(n = f.next()).done; )
247
+ for (l = t.entries(); !(n = l.next()).done; )
222
248
  if (!o.has(n.value[0])) return !1;
223
- for (f = t.entries(); !(n = f.next()).done; )
249
+ for (l = t.entries(); !(n = l.next()).done; )
224
250
  if (!r(n.value[1], o.get(n.value[0]))) return !1;
225
251
  return !0;
226
252
  }
227
253
  if (s && t instanceof Set && o instanceof Set) {
228
254
  if (t.size !== o.size) return !1;
229
- for (f = t.entries(); !(n = f.next()).done; )
255
+ for (l = t.entries(); !(n = l.next()).done; )
230
256
  if (!o.has(n.value[0])) return !1;
231
257
  return !0;
232
258
  }
@@ -250,7 +276,7 @@ function Q() {
250
276
  }
251
277
  return t !== t && o !== o;
252
278
  }
253
- return S = function(t, o) {
279
+ return m = function(t, o) {
254
280
  try {
255
281
  return r(t, o);
256
282
  } catch (u) {
@@ -258,47 +284,51 @@ function Q() {
258
284
  return console.warn("react-fast-compare cannot handle circular refs"), !1;
259
285
  throw u;
260
286
  }
261
- }, S;
287
+ }, m;
262
288
  }
263
- var X = Q();
264
- const Y = /* @__PURE__ */ J(X), x = new d(), h = new G(x), Z = (a, e) => x.createStatic({ initialValue: a }, a, e);
289
+ var Z = Y();
290
+ const ee = /* @__PURE__ */ X(Z), x = d.getInstance("sharedStatesManager"), h = new A(x), te = (a, e) => x.createStatic({ initialValue: a }, a, e);
265
291
  function E(a, e, s) {
266
292
  let i, r = s;
267
293
  if (typeof a != "string") {
268
- const { key: f, prefix: l } = a;
269
- i = f, r = l;
294
+ const { key: l, prefix: f } = a;
295
+ i = l, r = f;
270
296
  } else
271
297
  i = b(a);
272
- const { prefix: t } = H(r), o = j(void 0), u = D(() => (f) => (x.init(i, t, void 0), x.addListener(i, t, f), () => {
273
- x.removeListener(i, t, f);
274
- }), [i, t]), n = D(() => () => {
275
- const f = x.get(i, t)?.value, l = e(f);
276
- return Y(o.current, l) ? o.current : (o.current = l, l);
277
- }, [i, t, e]), c = W(u, n);
298
+ const { prefix: t } = Q(r), o = k(void 0), u = I(() => (l) => (x.init(i, t, void 0), x.addListener(i, t, l), () => {
299
+ x.removeListener(i, t, l);
300
+ }), [i, t]), n = I(() => () => {
301
+ const l = x.get(i, t)?.value, f = e(l);
302
+ return ee(o.current, f) ? o.current : (o.current = f, f);
303
+ }, [i, t, e]), c = z(u, n);
278
304
  return x.useEffect(i, t), c;
279
305
  }
280
- const m = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ee = ({
306
+ const re = d.getInstance("SharedFunctionValue");
307
+ new A(re);
308
+ const se = d.getInstance("SharedSubscription");
309
+ new A(se);
310
+ const S = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ne = ({
281
311
  initialState: a = "loading",
282
312
  defaultFallback: e,
283
313
  defaultErrorFallback: s,
284
314
  defaultRetry: i
285
315
  } = {}) => {
286
- const r = Z({
316
+ const r = te({
287
317
  state: a,
288
318
  retry: i
289
319
  }), t = (n) => {
290
320
  let c = u.get();
291
- return new Promise((f, l) => {
292
- if (m(u.get(), n)) {
293
- f();
321
+ return new Promise((l, f) => {
322
+ if (S(u.get(), n)) {
323
+ l();
294
324
  return;
295
325
  }
296
326
  const g = h.subscribe(r, () => {
297
- m(u.get(), n) ? (g(), f()) : c !== u.get() && l();
327
+ S(u.get(), n) ? (g(), l()) : c !== u.get() && f();
298
328
  });
299
329
  });
300
330
  }, o = function(n, c = () => []) {
301
- return (f) => E(r, (g) => m(g.state, n)) ? /* @__PURE__ */ p(w, { children: L(f.children, ...c()) }) : null;
331
+ return (l) => E(r, (g) => S(g.state, n)) ? /* @__PURE__ */ p(_, { children: L(l.children, ...c()) }) : null;
302
332
  }, u = {
303
333
  //hooks
304
334
  use: () => E(r, (n) => n.state),
@@ -313,7 +343,7 @@ const m = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ee = ({
313
343
  isSuccess: () => h.get(r).state === "success",
314
344
  isError: () => h.get(r).state === "error",
315
345
  isFinished: () => h.get(r).state === "success" || h.get(r).state === "error",
316
- is: (n) => m(u.get(), n),
346
+ is: (n) => S(u.get(), n),
317
347
  hasErrors: () => h.get(r).errors !== void 0,
318
348
  get: () => h.get(r).state,
319
349
  getErrors: () => h.get(r).errors,
@@ -346,11 +376,11 @@ const m = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ee = ({
346
376
  whenFinished: () => t(["success", "error"]),
347
377
  // wrap a promise
348
378
  wrap(n) {
349
- const c = () => new Promise((f, l) => {
379
+ const c = () => new Promise((l, f) => {
350
380
  u.clearErrors(), u.set("loading"), n().then((g) => {
351
- u.set("success"), f(g);
381
+ u.set("success"), l(g);
352
382
  }).catch((g) => {
353
- u.set("error"), g && u.setErrors([g]), l(g);
383
+ u.set("error"), g && u.setErrors([g]), f(g);
354
384
  });
355
385
  });
356
386
  return u.setRetry(c), c();
@@ -360,11 +390,11 @@ const m = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ee = ({
360
390
  thens: [],
361
391
  catchs: [],
362
392
  finallies: []
363
- }, f = {
364
- then: (...l) => (c.thens.push(l), f),
365
- catch_: (...l) => (c.catchs.push(l), f),
366
- finally_: (...l) => (c.finallies.push(l), f),
367
- start: () => new Promise((l, g) => {
393
+ }, l = {
394
+ then: (...f) => (c.thens.push(f), l),
395
+ catch_: (...f) => (c.catchs.push(f), l),
396
+ finally_: (...f) => (c.finallies.push(f), l),
397
+ start: () => new Promise((f, g) => {
368
398
  u.clearErrors(), u.set("loading");
369
399
  let v = n();
370
400
  v.then(() => {
@@ -378,23 +408,23 @@ const m = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ee = ({
378
408
  v.catch(...y);
379
409
  for (const y of c.finallies)
380
410
  v.finally(...y);
381
- v.then(l, g);
411
+ v.then(f, g);
382
412
  })
383
413
  };
384
- return u.setRetry(f.start), f;
414
+ return u.setRetry(l.start), l;
385
415
  },
386
416
  // components
387
417
  // - show when
388
- ShowWhenLoaded: ({ children: n, fallback: c, errorFallback: f }) => {
389
- const l = E(r, (g) => g.state);
390
- return l === "idle" ? null : (c = P(e, c), f = B(s, f === !0 ? void 0 : f), l === "loading" ? /* @__PURE__ */ p(w, { children: c }) : l === "error" ? /* @__PURE__ */ p(w, { children: L(f, u.getErrors() ?? [], () => u.retry()) }) : /* @__PURE__ */ p(w, { children: n }));
418
+ ShowWhenLoaded: ({ children: n, fallback: c, errorFallback: l }) => {
419
+ const f = E(r, (g) => g.state);
420
+ return f === "idle" ? null : (c = F(e, c), l = M(s, l === !0 ? void 0 : l), f === "loading" ? /* @__PURE__ */ p(_, { children: c }) : f === "error" ? /* @__PURE__ */ p(_, { children: L(l, u.getErrors() ?? [], () => u.retry()) }) : /* @__PURE__ */ p(_, { children: n }));
391
421
  },
392
422
  ShowWhileLoading: o("loading"),
393
423
  ShowWhenError: o("error", () => [u.getErrors() ?? [], () => u.retry()]),
394
424
  ShowWhenFinish: o(["error", "success"], () => [u.getErrors(), () => u.retry()]),
395
425
  ShowWhen: ({ children: n, state: c }) => {
396
- const f = o(c);
397
- return /* @__PURE__ */ p(f, { children: n });
426
+ const l = o(c);
427
+ return /* @__PURE__ */ p(l, { children: n });
398
428
  },
399
429
  destroy: () => {
400
430
  h.clear(r);
@@ -405,19 +435,22 @@ const m = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ee = ({
405
435
  * DON'T RELY ON IT,
406
436
  * DON'T REPORT ANY ISSUE RELATED TO IT
407
437
  */
408
- __get__id: () => `loading_id//${r.prefix}/${r.key}`
438
+ __get__id: () => ({
439
+ loadingId: `loading_id//${r.prefix}/${r.key}`,
440
+ ...u.__get__id()
441
+ })
409
442
  };
410
443
  return u;
411
- }, te = (a) => ee(typeof a == "string" ? {
444
+ }, ie = (a) => ne(typeof a == "string" ? {
412
445
  initialState: a
413
- } : a), ue = (a = {}) => {
414
- const e = j(void 0);
415
- return e.current || (e.current = te(a)), O(() => () => {
446
+ } : a), he = (a = {}) => {
447
+ const e = k(void 0);
448
+ return e.current || (e.current = ie(a)), j(() => () => {
416
449
  e.current.destroy(), e.current = void 0;
417
450
  }, []), e.current;
418
- }, ce = ({ of: a, fallback: e, errorFallback: s, children: i }) => {
451
+ }, de = ({ of: a, fallback: e, errorFallback: s, children: i }) => {
419
452
  const r = a.map((t) => t.use());
420
- return e = P(void 0, e), r.some((t) => t === "loading") ? e : r.every((t) => t !== "loading") ? r.some((t) => t === "error") ? (s = B(void 0, s), /* @__PURE__ */ p(w, { children: L(
453
+ return e = F(void 0, e), r.some((t) => t === "loading") ? e : r.every((t) => t !== "loading") ? r.some((t) => t === "error") ? (s = M(void 0, s), /* @__PURE__ */ p(_, { children: L(
421
454
  s,
422
455
  a.reduce((t, o) => [...t, ...o.getErrors() ?? []], []),
423
456
  () => {
@@ -425,21 +458,21 @@ const m = (a, e) => Array.isArray(e) && e.includes(a) || a === e, ee = ({
425
458
  t.isError() && t.retry();
426
459
  });
427
460
  }
428
- ) })) : /* @__PURE__ */ p(w, { children: i }) : null;
461
+ ) })) : /* @__PURE__ */ p(_, { children: i }) : null;
429
462
  };
430
463
  export {
431
- ce as AllLoaded,
432
- ee as createLoading,
433
- C as errorFallbacks,
434
- k as fallbacks,
435
- K as getDefaultErrorFallback,
436
- I as getDefaultFallback,
464
+ de as AllLoaded,
465
+ ne as createLoading,
466
+ q as errorFallbacks,
467
+ C as fallbacks,
468
+ U as getDefaultErrorFallback,
469
+ T as getDefaultFallback,
437
470
  L as reactNodeOrFunctionValue,
438
- oe as registerDefaultErrorFallback,
439
- ae as registerDefaultFallback,
440
- ie as registerErrorFallback,
441
- ne as registerFallback,
442
- B as resolveErrorFallback,
443
- P as resolveLoadingFallback,
444
- ue as useCreateLocalLoading
471
+ fe as registerDefaultErrorFallback,
472
+ le as registerDefaultFallback,
473
+ ce as registerErrorFallback,
474
+ ue as registerFallback,
475
+ M as resolveErrorFallback,
476
+ F as resolveLoadingFallback,
477
+ he as useCreateLocalLoading
445
478
  };
package/dist/main.min.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * react-easy-loading v0.3.1
2
+ * react-easy-loading v0.3.3-beta
3
3
  * (c) Hichem Taboukouyout
4
4
  * Released under the MIT License.
5
5
  * Github: github.com/HichemTab-tech/react-easy-loading
6
6
  */
7
7
 
8
- (function(d,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],u):(d=typeof globalThis<"u"?globalThis:d||self,u(d.ReactEasyLoading={},d.jsxRuntime,d.React))})(this,(function(d,u,v){"use strict";const D={},k={},W=(a,e)=>{D[a]=e},T=(a,e)=>{k[a]=e};let O=u.jsx("div",{children:"Loading..."}),C=(a,e)=>u.jsxs("div",{children:[u.jsx("h3",{children:"Errors:"}),u.jsx("ul",{children:a?.map((s,i)=>u.jsx("li",{children:s},i))}),u.jsx("button",{onClick:e,disabled:!e,children:"Retry"})]});const q=a=>{O=a},z=a=>{C=a},V=()=>O,j=()=>C,F=(a,e)=>P(V,D,a,e);function A(a,e){return P(j,k,a,e)}function P(a,e,s,i){return i?typeof i=="string"?e[i]??i:i:i===null?null:s?typeof s=="string"?e[s]??s:s:a()}function w(a,...e){return typeof a=="function"?a(...e):a}const I=(...a)=>{},_=a=>{if(!a)throw new Error("Value is empty");return a},K=()=>Math.random().toString(36).substring(2,15),N=v.createContext(void 0),U=()=>v.useContext(N),M=[];class y{constructor(e=()=>null){this.defaultValue=e}data=new Map;addListener(e,s,i){const r=y.prefix(e,s),t=this.data.get(r);t&&t.listeners.push(i)}removeListener(e,s,i){const r=y.prefix(e,s),t=this.data.get(r);t&&(t.listeners=t.listeners.filter(o=>o!==i))}callListeners(e,s){const i=y.prefix(e,s),r=this.data.get(i);r&&r.listeners.forEach(t=>t())}init(e,s,i,r=!1){const t=y.prefix(e,s);this.data.has(t)||this.data.set(t,{value:i,isStatic:r||void 0,listeners:[]})}createStatic(e,s,i){const r=i??"_global",t={key:K(),prefix:r,...e};return M.push(t),this.init(t.key,t.prefix,s,!0),this.defaultValue=()=>s,t}initStatic(e){const{key:s,prefix:i}=e;this.init(s,i,this.defaultValue(),!0)}clearAll(e=!1,s=!1){this.data.forEach((i,r)=>{const[t,o]=y.extractPrefix(r);this.clear(o,t,e,s)})}clear(e,s,i=!1,r=!1){const t=y.prefix(e,s);i||this.callListeners(e,s);const o=this.data.get(t);if(o&&(this.data.delete(t),o.isStatic&&!r)){const l=M.find(n=>n.key===e&&n.prefix===s);l&&this.initStatic(l)}}get(e,s){let i=this.has(e,s);if(i)return this.data.get(i)}setValue(e,s,i){const r=y.prefix(e,s),t=this.data.get(r);t&&(t.value=i,this.data.set(r,t))}has(e,s){return this.data.has(y.prefix(e,s))?y.prefix(e,s):this.data.has(y.prefix(e,"_global"))?y.prefix(e,"_global"):void 0}static prefix(e,s){if(e.includes("//"))throw new Error("key cannot contain '//'");return`${s}//${e}`}static extractPrefix(e){const s=e.split("//");return[s[0],s.slice(1).join("//")]}useEffect(e,s,i=null){v.useEffect(()=>()=>{i?.(),I(`[${y.prefix(e,s)}]`,"unmount effect");const r=this.get(e,s);r&&r.listeners?.length===0&&this.clear(e,s)},[e,s])}}class G{constructor(e){this.sharedData=e}_get(e,s){let i,r=s;if(typeof e!="string"){const{key:l,prefix:n}=e;i=l,r=n}else i=_(e);const t=r||"_global",o=this.sharedData.get(i,t);return o?{value:o.value,key:i,prefix:t}:{key:i,prefix:t,value:void 0}}get(e,s){return this._get(e,s).value}set(e,s,i){let r,t=i;if(typeof e!="string"){const{key:l,prefix:n}=e;r=l,t=n}else r=_(e);const o=t||"_global";this.sharedData.init(r,o,s),this.sharedData.setValue(r,o,s),this.sharedData.callListeners(r,o)}update(e,s,i){const r=this._get(e,i);if(r){const t=s(r.value);this.set(r.key,t,r.prefix)}}clearAll(){this.sharedData.clearAll()}clearScope(e){const s=e||"_global";this.sharedData.data.forEach((i,r)=>{const[t,o]=y.extractPrefix(r);t===s&&(this.sharedData.clear(o,t),this.sharedData.callListeners(o,t))})}resolve(e){const{key:s,prefix:i}=e;return this.get(s,i)}clear(e,s){let i,r;typeof e=="string"?(i=e,r=s||"_global"):(i=e.key,r=e.prefix),this.sharedData.clear(i,r)}has(e,s="_global"){const i=s||"_global";return!!this.sharedData.has(e,i)}getAll(){const e={};return this.sharedData.data.forEach((s,i)=>{const[r,t]=y.extractPrefix(i);e[r]=e[r]||{},e[r][t]=s.value}),e}subscribe(e,s,i){let r,t;return typeof e=="string"?(r=e,t=i||"_global"):(r=e.key,t=e.prefix),this.sharedData.addListener(r,t,s),()=>{this.sharedData.removeListener(r,t,s)}}}const H=a=>{const e=U();return{prefix:a??e?.scopeName??"_global"}};function J(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var m,B;function Q(){if(B)return m;B=1;var a=typeof Element<"u",e=typeof Map=="function",s=typeof Set=="function",i=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function r(t,o){if(t===o)return!0;if(t&&o&&typeof t=="object"&&typeof o=="object"){if(t.constructor!==o.constructor)return!1;var l,n,c;if(Array.isArray(t)){if(l=t.length,l!=o.length)return!1;for(n=l;n--!==0;)if(!r(t[n],o[n]))return!1;return!0}var f;if(e&&t instanceof Map&&o instanceof Map){if(t.size!==o.size)return!1;for(f=t.entries();!(n=f.next()).done;)if(!o.has(n.value[0]))return!1;for(f=t.entries();!(n=f.next()).done;)if(!r(n.value[1],o.get(n.value[0])))return!1;return!0}if(s&&t instanceof Set&&o instanceof Set){if(t.size!==o.size)return!1;for(f=t.entries();!(n=f.next()).done;)if(!o.has(n.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(t)&&ArrayBuffer.isView(o)){if(l=t.length,l!=o.length)return!1;for(n=l;n--!==0;)if(t[n]!==o[n])return!1;return!0}if(t.constructor===RegExp)return t.source===o.source&&t.flags===o.flags;if(t.valueOf!==Object.prototype.valueOf&&typeof t.valueOf=="function"&&typeof o.valueOf=="function")return t.valueOf()===o.valueOf();if(t.toString!==Object.prototype.toString&&typeof t.toString=="function"&&typeof o.toString=="function")return t.toString()===o.toString();if(c=Object.keys(t),l=c.length,l!==Object.keys(o).length)return!1;for(n=l;n--!==0;)if(!Object.prototype.hasOwnProperty.call(o,c[n]))return!1;if(a&&t instanceof Element)return!1;for(n=l;n--!==0;)if(!((c[n]==="_owner"||c[n]==="__v"||c[n]==="__o")&&t.$$typeof)&&!r(t[c[n]],o[c[n]]))return!1;return!0}return t!==t&&o!==o}return m=function(t,o){try{return r(t,o)}catch(l){if((l.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw l}},m}var X=Q();const Y=J(X),x=new y,g=new G(x),Z=(a,e)=>x.createStatic({initialValue:a},a,e);function b(a,e,s){let i,r=s;if(typeof a!="string"){const{key:f,prefix:h}=a;i=f,r=h}else i=_(a);const{prefix:t}=H(r),o=v.useRef(void 0),l=v.useMemo(()=>f=>(x.init(i,t,void 0),x.addListener(i,t,f),()=>{x.removeListener(i,t,f)}),[i,t]),n=v.useMemo(()=>()=>{const f=x.get(i,t)?.value,h=e(f);return Y(o.current,h)?o.current:(o.current=h,h)},[i,t,e]),c=v.useSyncExternalStore(l,n);return x.useEffect(i,t),c}const S=(a,e)=>Array.isArray(e)&&e.includes(a)||a===e,$=({initialState:a="loading",defaultFallback:e,defaultErrorFallback:s,defaultRetry:i}={})=>{const r=Z({state:a,retry:i}),t=n=>{let c=l.get();return new Promise((f,h)=>{if(S(l.get(),n)){f();return}const p=g.subscribe(r,()=>{S(l.get(),n)?(p(),f()):c!==l.get()&&h()})})},o=function(n,c=()=>[]){return f=>b(r,p=>S(p.state,n))?u.jsx(u.Fragment,{children:w(f.children,...c())}):null},l={use:()=>b(r,n=>n.state),useIsLoading:()=>b(r,n=>n.state)==="loading",useErrors:()=>b(r,n=>n.errors),useContext:()=>b(r,n=>n.context),set:n=>g.update(r,c=>({...c,state:n})),retry:n=>(g.get(r).retry??n)?.(),isLoading:()=>g.get(r).state==="loading",isIdle:()=>g.get(r).state==="idle",isSuccess:()=>g.get(r).state==="success",isError:()=>g.get(r).state==="error",isFinished:()=>g.get(r).state==="success"||g.get(r).state==="error",is:n=>S(l.get(),n),hasErrors:()=>g.get(r).errors!==void 0,get:()=>g.get(r).state,getErrors:()=>g.get(r).errors,getContext:()=>g.get(r).context,reset:()=>g.set(r,{state:a}),addError:n=>{g.update(r,c=>({...c,errors:[...c.errors??[],n]}))},setContext:n=>{g.update(r,c=>({...c,context:n}))},setErrors:n=>{g.update(r,c=>({...c,errors:n}))},clearErrors:()=>{g.update(r,n=>({...n,errors:void 0}))},setRetry:n=>g.update(r,c=>({...c,retry:n})),whenLoaded:()=>t("success").catch(n=>{throw new Error("loading failed",{cause:n})}),whenFinished:()=>t(["success","error"]),wrap(n){const c=()=>new Promise((f,h)=>{l.clearErrors(),l.set("loading"),n().then(p=>{l.set("success"),f(p)}).catch(p=>{l.set("error"),p&&l.setErrors([p]),h(p)})});return l.setRetry(c),c()},wrapWithControl(n){const c={thens:[],catchs:[],finallies:[]},f={then:(...h)=>(c.thens.push(h),f),catch_:(...h)=>(c.catchs.push(h),f),finally_:(...h)=>(c.finallies.push(h),f),start:()=>new Promise((h,p)=>{l.clearErrors(),l.set("loading");let L=n();L.then(()=>{l.set("success")}),L.catch(E=>{l.set("error"),E&&l.setErrors([E])});for(const E of c.thens)L.then(...E);for(const E of c.catchs)L.catch(...E);for(const E of c.finallies)L.finally(...E);L.then(h,p)})};return l.setRetry(f.start),f},ShowWhenLoaded:({children:n,fallback:c,errorFallback:f})=>{const h=b(r,p=>p.state);return h==="idle"?null:(c=F(e,c),f=A(s,f===!0?void 0:f),h==="loading"?u.jsx(u.Fragment,{children:c}):h==="error"?u.jsx(u.Fragment,{children:w(f,l.getErrors()??[],()=>l.retry())}):u.jsx(u.Fragment,{children:n}))},ShowWhileLoading:o("loading"),ShowWhenError:o("error",()=>[l.getErrors()??[],()=>l.retry()]),ShowWhenFinish:o(["error","success"],()=>[l.getErrors(),()=>l.retry()]),ShowWhen:({children:n,state:c})=>{const f=o(c);return u.jsx(f,{children:n})},destroy:()=>{g.clear(r)},__get__id:()=>`loading_id//${r.prefix}/${r.key}`};return l},R=a=>$(typeof a=="string"?{initialState:a}:a),ee=(a={})=>{const e=v.useRef(void 0);return e.current||(e.current=R(a)),v.useEffect(()=>()=>{e.current.destroy(),e.current=void 0},[]),e.current},te=({of:a,fallback:e,errorFallback:s,children:i})=>{const r=a.map(t=>t.use());return e=F(void 0,e),r.some(t=>t==="loading")?e:r.every(t=>t!=="loading")?r.some(t=>t==="error")?(s=A(void 0,s),u.jsx(u.Fragment,{children:w(s,a.reduce((t,o)=>[...t,...o.getErrors()??[]],[]),()=>{a.map(t=>{t.isError()&&t.retry()})})})):u.jsx(u.Fragment,{children:i}):null};d.AllLoaded=te,d.createLoading=$,d.errorFallbacks=k,d.fallbacks=D,d.getDefaultErrorFallback=j,d.getDefaultFallback=V,d.reactNodeOrFunctionValue=w,d.registerDefaultErrorFallback=z,d.registerDefaultFallback=q,d.registerErrorFallback=T,d.registerFallback=W,d.resolveErrorFallback=A,d.resolveLoadingFallback=F,d.useCreateLocalLoading=ee,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
8
+ (function(d,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],f):(d=typeof globalThis<"u"?globalThis:d||self,f(d.ReactEasyLoading={},d.jsxRuntime,d.React))})(this,(function(d,f,v){"use strict";const D={},F={},W=(a,e)=>{D[a]=e},z=(a,e)=>{F[a]=e};let q=f.jsx("div",{children:"Loading..."}),C=(a,e)=>f.jsxs("div",{children:[f.jsx("h3",{children:"Errors:"}),f.jsx("ul",{children:a?.map((s,i)=>f.jsx("li",{children:s},i))}),f.jsx("button",{onClick:e,disabled:!e,children:"Retry"})]});const K=a=>{q=a},N=a=>{C=a},j=()=>q,M=()=>C,k=(a,e)=>P(j,D,a,e);function m(a,e){return P(M,F,a,e)}function P(a,e,s,i){return i?typeof i=="string"?e[i]??i:i:i===null?null:s?typeof s=="string"?e[s]??s:s:a()}function w(a,...e){return typeof a=="function"?a(...e):a}const U=(...a)=>{},A=a=>{if(!a)throw new Error("Value is empty");return a},I=()=>Math.random().toString(36).substring(2,15),G=v.createContext(void 0),H=()=>v.useContext(G),$=[],S=Symbol.for("react-shared-states.manager");function J(a,e=()=>null){const s=globalThis;return s[S]||(s[S]={}),s[S][a]||(s[S][a]=new y(e)),s[S][a]}class y{constructor(e=()=>null){this.defaultValue=e,this._uniqueId=I()}data=new Map;_uniqueId;__get__uniqueId(){return this._uniqueId}static getInstance(e,s=()=>null){return J(e,s)}addListener(e,s,i){const r=y.prefix(e,s),t=this.data.get(r);t&&t.listeners.push(i)}removeListener(e,s,i){const r=y.prefix(e,s),t=this.data.get(r);t&&(t.listeners=t.listeners.filter(o=>o!==i))}callListeners(e,s){const i=y.prefix(e,s),r=this.data.get(i);r&&r.listeners.forEach(t=>t())}init(e,s,i,r=!1){const t=y.prefix(e,s);this.data.has(t)||this.data.set(t,{value:i,isStatic:r||void 0,listeners:[]})}createStatic(e,s,i){const r=i??"_global",t={key:I(),prefix:r,...e};return $.push(t),this.init(t.key,t.prefix,s,!0),this.defaultValue=()=>s,t}initStatic(e){const{key:s,prefix:i}=e;this.init(s,i,this.defaultValue(),!0)}clearAll(e=!1,s=!1){this.data.forEach((i,r)=>{const[t,o]=y.extractPrefix(r);this.clear(o,t,e,s)})}clear(e,s,i=!1,r=!1){const t=y.prefix(e,s);i||this.callListeners(e,s);const o=this.data.get(t);if(o&&(this.data.delete(t),o.isStatic&&!r)){const u=$.find(n=>n.key===e&&n.prefix===s);u&&this.initStatic(u)}}get(e,s){let i=this.has(e,s);if(i)return this.data.get(i)}setValue(e,s,i){const r=y.prefix(e,s),t=this.data.get(r);t&&(t.value=i,this.data.set(r,t))}has(e,s){return this.data.has(y.prefix(e,s))?y.prefix(e,s):this.data.has(y.prefix(e,"_global"))?y.prefix(e,"_global"):void 0}static prefix(e,s){if(e.includes("//"))throw new Error("key cannot contain '//'");return`${s}//${e}`}static extractPrefix(e){const s=e.split("//");return[s[0],s.slice(1).join("//")]}useEffect(e,s,i=null){v.useEffect(()=>()=>{i?.(),U(`[${y.prefix(e,s)}]`,"unmount effect");const r=this.get(e,s);r&&r.listeners?.length===0&&this.clear(e,s)},[e,s])}}class O{constructor(e){this.sharedData=e,this._uniqueId=I()}_uniqueId;_get(e,s){let i,r=s;if(typeof e!="string"){const{key:u,prefix:n}=e;i=u,r=n}else i=A(e);const t=r||"_global",o=this.sharedData.get(i,t);return o?{value:o.value,key:i,prefix:t}:{key:i,prefix:t,value:void 0}}__log_instance_id(){return{apiId:this._uniqueId,managerId:this.sharedData.__get__uniqueId()}}get(e,s){return this._get(e,s).value}set(e,s,i){let r,t=i;if(typeof e!="string"){const{key:u,prefix:n}=e;r=u,t=n}else r=A(e);const o=t||"_global";this.sharedData.init(r,o,s),this.sharedData.setValue(r,o,s),this.sharedData.callListeners(r,o)}update(e,s,i){const r=this._get(e,i);if(r){const t=s(r.value);this.set(r.key,t,r.prefix)}}clearAll(){this.sharedData.clearAll()}clearScope(e){const s=e||"_global";this.sharedData.data.forEach((i,r)=>{const[t,o]=y.extractPrefix(r);t===s&&(this.sharedData.clear(o,t),this.sharedData.callListeners(o,t))})}resolve(e){const{key:s,prefix:i}=e;return this.get(s,i)}clear(e,s){let i,r;typeof e=="string"?(i=e,r=s||"_global"):(i=e.key,r=e.prefix),this.sharedData.clear(i,r)}has(e,s="_global"){const i=s||"_global";return!!this.sharedData.has(e,i)}getAll(){const e={};return this.sharedData.data.forEach((s,i)=>{const[r,t]=y.extractPrefix(i);e[r]=e[r]||{},e[r][t]=s.value}),e}subscribe(e,s,i){let r,t;return typeof e=="string"?(r=e,t=i||"_global"):(r=e.key,t=e.prefix),this.sharedData.addListener(r,t,s),()=>{this.sharedData.removeListener(r,t,s)}}}const Q=a=>{const e=H();return{prefix:a??e?.scopeName??"_global"}};function X(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var V,B;function Y(){if(B)return V;B=1;var a=typeof Element<"u",e=typeof Map=="function",s=typeof Set=="function",i=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function r(t,o){if(t===o)return!0;if(t&&o&&typeof t=="object"&&typeof o=="object"){if(t.constructor!==o.constructor)return!1;var u,n,l;if(Array.isArray(t)){if(u=t.length,u!=o.length)return!1;for(n=u;n--!==0;)if(!r(t[n],o[n]))return!1;return!0}var c;if(e&&t instanceof Map&&o instanceof Map){if(t.size!==o.size)return!1;for(c=t.entries();!(n=c.next()).done;)if(!o.has(n.value[0]))return!1;for(c=t.entries();!(n=c.next()).done;)if(!r(n.value[1],o.get(n.value[0])))return!1;return!0}if(s&&t instanceof Set&&o instanceof Set){if(t.size!==o.size)return!1;for(c=t.entries();!(n=c.next()).done;)if(!o.has(n.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(t)&&ArrayBuffer.isView(o)){if(u=t.length,u!=o.length)return!1;for(n=u;n--!==0;)if(t[n]!==o[n])return!1;return!0}if(t.constructor===RegExp)return t.source===o.source&&t.flags===o.flags;if(t.valueOf!==Object.prototype.valueOf&&typeof t.valueOf=="function"&&typeof o.valueOf=="function")return t.valueOf()===o.valueOf();if(t.toString!==Object.prototype.toString&&typeof t.toString=="function"&&typeof o.toString=="function")return t.toString()===o.toString();if(l=Object.keys(t),u=l.length,u!==Object.keys(o).length)return!1;for(n=u;n--!==0;)if(!Object.prototype.hasOwnProperty.call(o,l[n]))return!1;if(a&&t instanceof Element)return!1;for(n=u;n--!==0;)if(!((l[n]==="_owner"||l[n]==="__v"||l[n]==="__o")&&t.$$typeof)&&!r(t[l[n]],o[l[n]]))return!1;return!0}return t!==t&&o!==o}return V=function(t,o){try{return r(t,o)}catch(u){if((u.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw u}},V}var Z=Y();const R=X(Z),_=y.getInstance("sharedStatesManager"),g=new O(_),ee=(a,e)=>_.createStatic({initialValue:a},a,e);function b(a,e,s){let i,r=s;if(typeof a!="string"){const{key:c,prefix:h}=a;i=c,r=h}else i=A(a);const{prefix:t}=Q(r),o=v.useRef(void 0),u=v.useMemo(()=>c=>(_.init(i,t,void 0),_.addListener(i,t,c),()=>{_.removeListener(i,t,c)}),[i,t]),n=v.useMemo(()=>()=>{const c=_.get(i,t)?.value,h=e(c);return R(o.current,h)?o.current:(o.current=h,h)},[i,t,e]),l=v.useSyncExternalStore(u,n);return _.useEffect(i,t),l}const te=y.getInstance("SharedFunctionValue");new O(te);const re=y.getInstance("SharedSubscription");new O(re);const L=(a,e)=>Array.isArray(e)&&e.includes(a)||a===e,T=({initialState:a="loading",defaultFallback:e,defaultErrorFallback:s,defaultRetry:i}={})=>{const r=ee({state:a,retry:i}),t=n=>{let l=u.get();return new Promise((c,h)=>{if(L(u.get(),n)){c();return}const p=g.subscribe(r,()=>{L(u.get(),n)?(p(),c()):l!==u.get()&&h()})})},o=function(n,l=()=>[]){return c=>b(r,p=>L(p.state,n))?f.jsx(f.Fragment,{children:w(c.children,...l())}):null},u={use:()=>b(r,n=>n.state),useIsLoading:()=>b(r,n=>n.state)==="loading",useErrors:()=>b(r,n=>n.errors),useContext:()=>b(r,n=>n.context),set:n=>g.update(r,l=>({...l,state:n})),retry:n=>(g.get(r).retry??n)?.(),isLoading:()=>g.get(r).state==="loading",isIdle:()=>g.get(r).state==="idle",isSuccess:()=>g.get(r).state==="success",isError:()=>g.get(r).state==="error",isFinished:()=>g.get(r).state==="success"||g.get(r).state==="error",is:n=>L(u.get(),n),hasErrors:()=>g.get(r).errors!==void 0,get:()=>g.get(r).state,getErrors:()=>g.get(r).errors,getContext:()=>g.get(r).context,reset:()=>g.set(r,{state:a}),addError:n=>{g.update(r,l=>({...l,errors:[...l.errors??[],n]}))},setContext:n=>{g.update(r,l=>({...l,context:n}))},setErrors:n=>{g.update(r,l=>({...l,errors:n}))},clearErrors:()=>{g.update(r,n=>({...n,errors:void 0}))},setRetry:n=>g.update(r,l=>({...l,retry:n})),whenLoaded:()=>t("success").catch(n=>{throw new Error("loading failed",{cause:n})}),whenFinished:()=>t(["success","error"]),wrap(n){const l=()=>new Promise((c,h)=>{u.clearErrors(),u.set("loading"),n().then(p=>{u.set("success"),c(p)}).catch(p=>{u.set("error"),p&&u.setErrors([p]),h(p)})});return u.setRetry(l),l()},wrapWithControl(n){const l={thens:[],catchs:[],finallies:[]},c={then:(...h)=>(l.thens.push(h),c),catch_:(...h)=>(l.catchs.push(h),c),finally_:(...h)=>(l.finallies.push(h),c),start:()=>new Promise((h,p)=>{u.clearErrors(),u.set("loading");let x=n();x.then(()=>{u.set("success")}),x.catch(E=>{u.set("error"),E&&u.setErrors([E])});for(const E of l.thens)x.then(...E);for(const E of l.catchs)x.catch(...E);for(const E of l.finallies)x.finally(...E);x.then(h,p)})};return u.setRetry(c.start),c},ShowWhenLoaded:({children:n,fallback:l,errorFallback:c})=>{const h=b(r,p=>p.state);return h==="idle"?null:(l=k(e,l),c=m(s,c===!0?void 0:c),h==="loading"?f.jsx(f.Fragment,{children:l}):h==="error"?f.jsx(f.Fragment,{children:w(c,u.getErrors()??[],()=>u.retry())}):f.jsx(f.Fragment,{children:n}))},ShowWhileLoading:o("loading"),ShowWhenError:o("error",()=>[u.getErrors()??[],()=>u.retry()]),ShowWhenFinish:o(["error","success"],()=>[u.getErrors(),()=>u.retry()]),ShowWhen:({children:n,state:l})=>{const c=o(l);return f.jsx(c,{children:n})},destroy:()=>{g.clear(r)},__get__id:()=>({loadingId:`loading_id//${r.prefix}/${r.key}`,...u.__get__id()})};return u},se=a=>T(typeof a=="string"?{initialState:a}:a),ne=(a={})=>{const e=v.useRef(void 0);return e.current||(e.current=se(a)),v.useEffect(()=>()=>{e.current.destroy(),e.current=void 0},[]),e.current},ie=({of:a,fallback:e,errorFallback:s,children:i})=>{const r=a.map(t=>t.use());return e=k(void 0,e),r.some(t=>t==="loading")?e:r.every(t=>t!=="loading")?r.some(t=>t==="error")?(s=m(void 0,s),f.jsx(f.Fragment,{children:w(s,a.reduce((t,o)=>[...t,...o.getErrors()??[]],[]),()=>{a.map(t=>{t.isError()&&t.retry()})})})):f.jsx(f.Fragment,{children:i}):null};d.AllLoaded=ie,d.createLoading=T,d.errorFallbacks=F,d.fallbacks=D,d.getDefaultErrorFallback=M,d.getDefaultFallback=j,d.reactNodeOrFunctionValue=w,d.registerDefaultErrorFallback=N,d.registerDefaultFallback=K,d.registerErrorFallback=z,d.registerFallback=W,d.resolveErrorFallback=m,d.resolveLoadingFallback=k,d.useCreateLocalLoading=ne,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-easy-loading",
3
- "version": "0.3.1",
3
+ "version": "0.3.3-beta",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "keywords": [
@@ -33,27 +33,27 @@
33
33
  },
34
34
  "homepage": "https://github.com/HichemTab-tech/react-easy-loading#readme",
35
35
  "devDependencies": {
36
- "@tailwindcss/vite": "^4.1.14",
36
+ "@tailwindcss/vite": "^4.1.18",
37
37
  "@testing-library/dom": "^10.4.1",
38
- "@testing-library/react": "^16.3.0",
39
- "@types/node": "^25.0.2",
40
- "@types/react": "^19.2.0",
41
- "@types/react-dom": "^19.2.0",
42
- "@vitejs/plugin-react": "^5.0.4",
38
+ "@testing-library/react": "^16.3.1",
39
+ "@types/node": "^25.0.3",
40
+ "@types/react": "^19.2.7",
41
+ "@types/react-dom": "^19.2.3",
42
+ "@vitejs/plugin-react": "^5.1.2",
43
43
  "classnames": "^2.5.1",
44
- "jsdom": "^27.0.0",
45
- "react": "^19.2.0",
46
- "react-dom": "^19.2.0",
44
+ "jsdom": "^27.4.0",
45
+ "react": "^19.2.3",
46
+ "react-dom": "^19.2.3",
47
47
  "react-exposed-states": "^1.0.5",
48
- "react-shared-states": "^2.1.0",
49
- "tailwindcss": "^4.1.14",
48
+ "react-shared-states": "2.1.4-beta",
49
+ "tailwindcss": "^4.1.18",
50
50
  "typescript": "^5.9.3",
51
- "use-effect-skip-first": "^0.1.2",
52
- "vite": "^7.1.9",
51
+ "use-effect-skip-first": "^0.1.3",
52
+ "vite": "^7.3.0",
53
53
  "vite-plugin-banner": "^0.8.1",
54
54
  "vite-plugin-css-injected-by-js": "^3.5.2",
55
55
  "vite-plugin-dts": "^4.5.4",
56
- "vitest": "^4.0.15"
56
+ "vitest": "^4.0.16"
57
57
  },
58
58
  "scripts": {
59
59
  "build": "vite build",