@hortiview/modulebase 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/IsRestoringProvider-SzKJZczp.js +931 -0
- package/dist/{ModuleCore-U32BXXin.js → ModuleCore-DRMqZO8r.js} +1388 -1158
- package/dist/components/ModuleBase.js +1 -1
- package/dist/components/ModuleCore.js +1 -1
- package/dist/constants.js +2 -2
- package/dist/hooks/useBreadcrumbTranslation.js +13 -14
- package/dist/hooks/useCustom.js +1 -1
- package/dist/hooks/useCustomMutation.js +4 -15
- package/dist/hooks/useEntity.js +1 -1
- package/dist/hooks/useOffline.js +1 -1
- package/dist/hooks/useOption.js +1 -1
- package/dist/lib/hooks/useStores.d.ts +2 -33
- package/dist/lib/main.d.ts +2 -4
- package/dist/lib/module-router.d.ts +1 -1
- package/dist/lib/types/BaseProps.d.ts +3 -6
- package/dist/main.js +145 -149
- package/dist/module-router.js +132 -138
- package/dist/{useMutation-a0q2LJY6.js → useCustomMutation-9VUQ7NbQ.js} +40 -20
- package/dist/{useQuery-Cepqe-Ee.js → useQuery-DUDyh33-.js} +9 -10
- package/dist/utils/helper.js +1 -1
- package/package.json +1 -1
- package/dist/IsRestoringProvider-BfrdLTDw.js +0 -410
- package/dist/QueryClientProvider-Bak-4BVu.js +0 -531
- package/dist/hooks/useServiceBus.js +0 -25
- package/dist/lib/hooks/useServiceBus.d.ts +0 -19
- package/dist/lib/types/Deprecated.d.ts +0 -103
- package/dist/mutation-DztCHC7y.js +0 -237
- package/dist/types/Deprecated.js +0 -1
|
@@ -0,0 +1,931 @@
|
|
|
1
|
+
import * as S from "react";
|
|
2
|
+
import { jsx as H } from "react/jsx-runtime";
|
|
3
|
+
var k = class {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.listeners = /* @__PURE__ */ new Set(), this.subscribe = this.subscribe.bind(this);
|
|
6
|
+
}
|
|
7
|
+
subscribe(e) {
|
|
8
|
+
return this.listeners.add(e), this.onSubscribe(), () => {
|
|
9
|
+
this.listeners.delete(e), this.onUnsubscribe();
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
hasListeners() {
|
|
13
|
+
return this.listeners.size > 0;
|
|
14
|
+
}
|
|
15
|
+
onSubscribe() {
|
|
16
|
+
}
|
|
17
|
+
onUnsubscribe() {
|
|
18
|
+
}
|
|
19
|
+
}, z = class extends k {
|
|
20
|
+
#e;
|
|
21
|
+
#t;
|
|
22
|
+
#r;
|
|
23
|
+
constructor() {
|
|
24
|
+
super(), this.#r = (e) => {
|
|
25
|
+
if (typeof window < "u" && window.addEventListener) {
|
|
26
|
+
const t = () => e();
|
|
27
|
+
return window.addEventListener("visibilitychange", t, !1), () => {
|
|
28
|
+
window.removeEventListener("visibilitychange", t);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
onSubscribe() {
|
|
34
|
+
this.#t || this.setEventListener(this.#r);
|
|
35
|
+
}
|
|
36
|
+
onUnsubscribe() {
|
|
37
|
+
this.hasListeners() || (this.#t?.(), this.#t = void 0);
|
|
38
|
+
}
|
|
39
|
+
setEventListener(e) {
|
|
40
|
+
this.#r = e, this.#t?.(), this.#t = e((t) => {
|
|
41
|
+
typeof t == "boolean" ? this.setFocused(t) : this.onFocus();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
setFocused(e) {
|
|
45
|
+
this.#e !== e && (this.#e = e, this.onFocus());
|
|
46
|
+
}
|
|
47
|
+
onFocus() {
|
|
48
|
+
const e = this.isFocused();
|
|
49
|
+
this.listeners.forEach((t) => {
|
|
50
|
+
t(e);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
isFocused() {
|
|
54
|
+
return typeof this.#e == "boolean" ? this.#e : globalThis.document?.visibilityState !== "hidden";
|
|
55
|
+
}
|
|
56
|
+
}, B = new z(), $ = {
|
|
57
|
+
// We need the wrapper function syntax below instead of direct references to
|
|
58
|
+
// global setTimeout etc.
|
|
59
|
+
//
|
|
60
|
+
// BAD: `setTimeout: setTimeout`
|
|
61
|
+
// GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`
|
|
62
|
+
//
|
|
63
|
+
// If we use direct references here, then anything that wants to spy on or
|
|
64
|
+
// replace the global setTimeout (like tests) won't work since we'll already
|
|
65
|
+
// have a hard reference to the original implementation at the time when this
|
|
66
|
+
// file was imported.
|
|
67
|
+
setTimeout: (e, t) => setTimeout(e, t),
|
|
68
|
+
clearTimeout: (e) => clearTimeout(e),
|
|
69
|
+
setInterval: (e, t) => setInterval(e, t),
|
|
70
|
+
clearInterval: (e) => clearInterval(e)
|
|
71
|
+
}, J = class {
|
|
72
|
+
// We cannot have TimeoutManager<T> as we must instantiate it with a concrete
|
|
73
|
+
// type at app boot; and if we leave that type, then any new timer provider
|
|
74
|
+
// would need to support the default provider's concrete timer ID, which is
|
|
75
|
+
// infeasible across environments.
|
|
76
|
+
//
|
|
77
|
+
// We settle for type safety for the TimeoutProvider type, and accept that
|
|
78
|
+
// this class is unsafe internally to allow for extension.
|
|
79
|
+
#e = $;
|
|
80
|
+
#t = !1;
|
|
81
|
+
setTimeoutProvider(e) {
|
|
82
|
+
process.env.NODE_ENV !== "production" && this.#t && e !== this.#e && console.error(
|
|
83
|
+
"[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.",
|
|
84
|
+
{ previous: this.#e, provider: e }
|
|
85
|
+
), this.#e = e, process.env.NODE_ENV !== "production" && (this.#t = !1);
|
|
86
|
+
}
|
|
87
|
+
setTimeout(e, t) {
|
|
88
|
+
return process.env.NODE_ENV !== "production" && (this.#t = !0), this.#e.setTimeout(e, t);
|
|
89
|
+
}
|
|
90
|
+
clearTimeout(e) {
|
|
91
|
+
this.#e.clearTimeout(e);
|
|
92
|
+
}
|
|
93
|
+
setInterval(e, t) {
|
|
94
|
+
return process.env.NODE_ENV !== "production" && (this.#t = !0), this.#e.setInterval(e, t);
|
|
95
|
+
}
|
|
96
|
+
clearInterval(e) {
|
|
97
|
+
this.#e.clearInterval(e);
|
|
98
|
+
}
|
|
99
|
+
}, C = new J();
|
|
100
|
+
function W(e) {
|
|
101
|
+
setTimeout(e, 0);
|
|
102
|
+
}
|
|
103
|
+
var Z = typeof window > "u" || "Deno" in globalThis;
|
|
104
|
+
function P() {
|
|
105
|
+
}
|
|
106
|
+
function Se(e, t) {
|
|
107
|
+
return typeof e == "function" ? e(t) : e;
|
|
108
|
+
}
|
|
109
|
+
function X(e) {
|
|
110
|
+
return typeof e == "number" && e >= 0 && e !== 1 / 0;
|
|
111
|
+
}
|
|
112
|
+
function Y(e, t) {
|
|
113
|
+
return Math.max(e + (t || 0) - Date.now(), 0);
|
|
114
|
+
}
|
|
115
|
+
function ee(e, t) {
|
|
116
|
+
return typeof e == "function" ? e(t) : e;
|
|
117
|
+
}
|
|
118
|
+
function te(e, t) {
|
|
119
|
+
return typeof e == "function" ? e(t) : e;
|
|
120
|
+
}
|
|
121
|
+
function Fe(e, t) {
|
|
122
|
+
const {
|
|
123
|
+
type: s = "all",
|
|
124
|
+
exact: r,
|
|
125
|
+
fetchStatus: i,
|
|
126
|
+
predicate: o,
|
|
127
|
+
queryKey: u,
|
|
128
|
+
stale: a
|
|
129
|
+
} = e;
|
|
130
|
+
if (u) {
|
|
131
|
+
if (r) {
|
|
132
|
+
if (t.queryHash !== se(u, t.options))
|
|
133
|
+
return !1;
|
|
134
|
+
} else if (!I(t.queryKey, u))
|
|
135
|
+
return !1;
|
|
136
|
+
}
|
|
137
|
+
if (s !== "all") {
|
|
138
|
+
const n = t.isActive();
|
|
139
|
+
if (s === "active" && !n || s === "inactive" && n)
|
|
140
|
+
return !1;
|
|
141
|
+
}
|
|
142
|
+
return !(typeof a == "boolean" && t.isStale() !== a || i && i !== t.state.fetchStatus || o && !o(t));
|
|
143
|
+
}
|
|
144
|
+
function we(e, t) {
|
|
145
|
+
const { exact: s, status: r, predicate: i, mutationKey: o } = e;
|
|
146
|
+
if (o) {
|
|
147
|
+
if (!t.options.mutationKey)
|
|
148
|
+
return !1;
|
|
149
|
+
if (s) {
|
|
150
|
+
if (O(t.options.mutationKey) !== O(o))
|
|
151
|
+
return !1;
|
|
152
|
+
} else if (!I(t.options.mutationKey, o))
|
|
153
|
+
return !1;
|
|
154
|
+
}
|
|
155
|
+
return !(r && t.state.status !== r || i && !i(t));
|
|
156
|
+
}
|
|
157
|
+
function se(e, t) {
|
|
158
|
+
return (t?.queryKeyHashFn || O)(e);
|
|
159
|
+
}
|
|
160
|
+
function O(e) {
|
|
161
|
+
return JSON.stringify(
|
|
162
|
+
e,
|
|
163
|
+
(t, s) => E(s) ? Object.keys(s).sort().reduce((r, i) => (r[i] = s[i], r), {}) : s
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
function I(e, t) {
|
|
167
|
+
return e === t ? !0 : typeof e != typeof t ? !1 : e && t && typeof e == "object" && typeof t == "object" ? Object.keys(t).every((s) => I(e[s], t[s])) : !1;
|
|
168
|
+
}
|
|
169
|
+
var re = Object.prototype.hasOwnProperty;
|
|
170
|
+
function q(e, t, s = 0) {
|
|
171
|
+
if (e === t)
|
|
172
|
+
return e;
|
|
173
|
+
if (s > 500) return t;
|
|
174
|
+
const r = R(e) && R(t);
|
|
175
|
+
if (!r && !(E(e) && E(t))) return t;
|
|
176
|
+
const o = (r ? e : Object.keys(e)).length, u = r ? t : Object.keys(t), a = u.length, n = r ? new Array(a) : {};
|
|
177
|
+
let h = 0;
|
|
178
|
+
for (let f = 0; f < a; f++) {
|
|
179
|
+
const d = r ? f : u[f], y = e[d], v = t[d];
|
|
180
|
+
if (y === v) {
|
|
181
|
+
n[d] = y, (r ? f < o : re.call(e, d)) && h++;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (y === null || v === null || typeof y != "object" || typeof v != "object") {
|
|
185
|
+
n[d] = v;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
const l = q(y, v, s + 1);
|
|
189
|
+
n[d] = l, l === y && h++;
|
|
190
|
+
}
|
|
191
|
+
return o === a && h === o ? e : n;
|
|
192
|
+
}
|
|
193
|
+
function Pe(e, t) {
|
|
194
|
+
if (!t || Object.keys(e).length !== Object.keys(t).length)
|
|
195
|
+
return !1;
|
|
196
|
+
for (const s in e)
|
|
197
|
+
if (e[s] !== t[s])
|
|
198
|
+
return !1;
|
|
199
|
+
return !0;
|
|
200
|
+
}
|
|
201
|
+
function R(e) {
|
|
202
|
+
return Array.isArray(e) && e.length === Object.keys(e).length;
|
|
203
|
+
}
|
|
204
|
+
function E(e) {
|
|
205
|
+
if (!N(e))
|
|
206
|
+
return !1;
|
|
207
|
+
const t = e.constructor;
|
|
208
|
+
if (t === void 0)
|
|
209
|
+
return !0;
|
|
210
|
+
const s = t.prototype;
|
|
211
|
+
return !(!N(s) || !s.hasOwnProperty("isPrototypeOf") || Object.getPrototypeOf(e) !== Object.prototype);
|
|
212
|
+
}
|
|
213
|
+
function N(e) {
|
|
214
|
+
return Object.prototype.toString.call(e) === "[object Object]";
|
|
215
|
+
}
|
|
216
|
+
function ne(e) {
|
|
217
|
+
return new Promise((t) => {
|
|
218
|
+
C.setTimeout(t, e);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function ie(e, t, s) {
|
|
222
|
+
if (typeof s.structuralSharing == "function")
|
|
223
|
+
return s.structuralSharing(e, t);
|
|
224
|
+
if (s.structuralSharing !== !1) {
|
|
225
|
+
if (process.env.NODE_ENV !== "production")
|
|
226
|
+
try {
|
|
227
|
+
return q(e, t);
|
|
228
|
+
} catch (r) {
|
|
229
|
+
throw console.error(
|
|
230
|
+
`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${s.queryHash}]: ${r}`
|
|
231
|
+
), r;
|
|
232
|
+
}
|
|
233
|
+
return q(e, t);
|
|
234
|
+
}
|
|
235
|
+
return t;
|
|
236
|
+
}
|
|
237
|
+
function ae(e, t, s = 0) {
|
|
238
|
+
const r = [...e, t];
|
|
239
|
+
return s && r.length > s ? r.slice(1) : r;
|
|
240
|
+
}
|
|
241
|
+
function oe(e, t, s = 0) {
|
|
242
|
+
const r = [t, ...e];
|
|
243
|
+
return s && r.length > s ? r.slice(0, -1) : r;
|
|
244
|
+
}
|
|
245
|
+
var T = /* @__PURE__ */ Symbol();
|
|
246
|
+
function K(e, t) {
|
|
247
|
+
return process.env.NODE_ENV !== "production" && e.queryFn === T && console.error(
|
|
248
|
+
`Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${e.queryHash}'`
|
|
249
|
+
), !e.queryFn && t?.initialPromise ? () => t.initialPromise : !e.queryFn || e.queryFn === T ? () => Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)) : e.queryFn;
|
|
250
|
+
}
|
|
251
|
+
function Ce(e, t) {
|
|
252
|
+
return typeof e == "function" ? e(...t) : !!e;
|
|
253
|
+
}
|
|
254
|
+
function ue(e, t, s) {
|
|
255
|
+
let r = !1, i;
|
|
256
|
+
return Object.defineProperty(e, "signal", {
|
|
257
|
+
enumerable: !0,
|
|
258
|
+
get: () => (i ??= t(), r || (r = !0, i.aborted ? s() : i.addEventListener("abort", s, { once: !0 })), i)
|
|
259
|
+
}), e;
|
|
260
|
+
}
|
|
261
|
+
var Q = /* @__PURE__ */ (() => {
|
|
262
|
+
let e = () => Z;
|
|
263
|
+
return {
|
|
264
|
+
/**
|
|
265
|
+
* Returns whether the current runtime should be treated as a server environment.
|
|
266
|
+
*/
|
|
267
|
+
isServer() {
|
|
268
|
+
return e();
|
|
269
|
+
},
|
|
270
|
+
/**
|
|
271
|
+
* Overrides the server check globally.
|
|
272
|
+
*/
|
|
273
|
+
setIsServer(t) {
|
|
274
|
+
e = t;
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
})();
|
|
278
|
+
function ce() {
|
|
279
|
+
let e, t;
|
|
280
|
+
const s = new Promise((i, o) => {
|
|
281
|
+
e = i, t = o;
|
|
282
|
+
});
|
|
283
|
+
s.status = "pending", s.catch(() => {
|
|
284
|
+
});
|
|
285
|
+
function r(i) {
|
|
286
|
+
Object.assign(s, i), delete s.resolve, delete s.reject;
|
|
287
|
+
}
|
|
288
|
+
return s.resolve = (i) => {
|
|
289
|
+
r({
|
|
290
|
+
status: "fulfilled",
|
|
291
|
+
value: i
|
|
292
|
+
}), e(i);
|
|
293
|
+
}, s.reject = (i) => {
|
|
294
|
+
r({
|
|
295
|
+
status: "rejected",
|
|
296
|
+
reason: i
|
|
297
|
+
}), t(i);
|
|
298
|
+
}, s;
|
|
299
|
+
}
|
|
300
|
+
function Oe(e) {
|
|
301
|
+
let t;
|
|
302
|
+
if (e.then((s) => (t = s, s), P)?.catch(P), t !== void 0)
|
|
303
|
+
return { data: t };
|
|
304
|
+
}
|
|
305
|
+
var le = W;
|
|
306
|
+
function he() {
|
|
307
|
+
let e = [], t = 0, s = (a) => {
|
|
308
|
+
a();
|
|
309
|
+
}, r = (a) => {
|
|
310
|
+
a();
|
|
311
|
+
}, i = le;
|
|
312
|
+
const o = (a) => {
|
|
313
|
+
t ? e.push(a) : i(() => {
|
|
314
|
+
s(a);
|
|
315
|
+
});
|
|
316
|
+
}, u = () => {
|
|
317
|
+
const a = e;
|
|
318
|
+
e = [], a.length && i(() => {
|
|
319
|
+
r(() => {
|
|
320
|
+
a.forEach((n) => {
|
|
321
|
+
s(n);
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
};
|
|
326
|
+
return {
|
|
327
|
+
batch: (a) => {
|
|
328
|
+
let n;
|
|
329
|
+
t++;
|
|
330
|
+
try {
|
|
331
|
+
n = a();
|
|
332
|
+
} finally {
|
|
333
|
+
t--, t || u();
|
|
334
|
+
}
|
|
335
|
+
return n;
|
|
336
|
+
},
|
|
337
|
+
/**
|
|
338
|
+
* All calls to the wrapped function will be batched.
|
|
339
|
+
*/
|
|
340
|
+
batchCalls: (a) => (...n) => {
|
|
341
|
+
o(() => {
|
|
342
|
+
a(...n);
|
|
343
|
+
});
|
|
344
|
+
},
|
|
345
|
+
schedule: o,
|
|
346
|
+
/**
|
|
347
|
+
* Use this method to set a custom notify function.
|
|
348
|
+
* This can be used to for example wrap notifications with `React.act` while running tests.
|
|
349
|
+
*/
|
|
350
|
+
setNotifyFunction: (a) => {
|
|
351
|
+
s = a;
|
|
352
|
+
},
|
|
353
|
+
/**
|
|
354
|
+
* Use this method to set a custom function to batch notifications together into a single tick.
|
|
355
|
+
* By default React Query will use the batch function provided by ReactDOM or React Native.
|
|
356
|
+
*/
|
|
357
|
+
setBatchNotifyFunction: (a) => {
|
|
358
|
+
r = a;
|
|
359
|
+
},
|
|
360
|
+
setScheduler: (a) => {
|
|
361
|
+
i = a;
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
var fe = he(), de = class extends k {
|
|
366
|
+
#e = !0;
|
|
367
|
+
#t;
|
|
368
|
+
#r;
|
|
369
|
+
constructor() {
|
|
370
|
+
super(), this.#r = (e) => {
|
|
371
|
+
if (typeof window < "u" && window.addEventListener) {
|
|
372
|
+
const t = () => e(!0), s = () => e(!1);
|
|
373
|
+
return window.addEventListener("online", t, !1), window.addEventListener("offline", s, !1), () => {
|
|
374
|
+
window.removeEventListener("online", t), window.removeEventListener("offline", s);
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
onSubscribe() {
|
|
380
|
+
this.#t || this.setEventListener(this.#r);
|
|
381
|
+
}
|
|
382
|
+
onUnsubscribe() {
|
|
383
|
+
this.hasListeners() || (this.#t?.(), this.#t = void 0);
|
|
384
|
+
}
|
|
385
|
+
setEventListener(e) {
|
|
386
|
+
this.#r = e, this.#t?.(), this.#t = e(this.setOnline.bind(this));
|
|
387
|
+
}
|
|
388
|
+
setOnline(e) {
|
|
389
|
+
this.#e !== e && (this.#e = e, this.listeners.forEach((s) => {
|
|
390
|
+
s(e);
|
|
391
|
+
}));
|
|
392
|
+
}
|
|
393
|
+
isOnline() {
|
|
394
|
+
return this.#e;
|
|
395
|
+
}
|
|
396
|
+
}, L = new de();
|
|
397
|
+
function ye(e) {
|
|
398
|
+
return Math.min(1e3 * 2 ** e, 3e4);
|
|
399
|
+
}
|
|
400
|
+
function x(e) {
|
|
401
|
+
return (e ?? "online") === "online" ? L.isOnline() : !0;
|
|
402
|
+
}
|
|
403
|
+
var j = class extends Error {
|
|
404
|
+
constructor(e) {
|
|
405
|
+
super("CancelledError"), this.revert = e?.revert, this.silent = e?.silent;
|
|
406
|
+
}
|
|
407
|
+
};
|
|
408
|
+
function pe(e) {
|
|
409
|
+
let t = !1, s = 0, r;
|
|
410
|
+
const i = ce(), o = () => i.status !== "pending", u = (c) => {
|
|
411
|
+
if (!o()) {
|
|
412
|
+
const p = new j(c);
|
|
413
|
+
y(p), e.onCancel?.(p);
|
|
414
|
+
}
|
|
415
|
+
}, a = () => {
|
|
416
|
+
t = !0;
|
|
417
|
+
}, n = () => {
|
|
418
|
+
t = !1;
|
|
419
|
+
}, h = () => B.isFocused() && (e.networkMode === "always" || L.isOnline()) && e.canRun(), f = () => x(e.networkMode) && e.canRun(), d = (c) => {
|
|
420
|
+
o() || (r?.(), i.resolve(c));
|
|
421
|
+
}, y = (c) => {
|
|
422
|
+
o() || (r?.(), i.reject(c));
|
|
423
|
+
}, v = () => new Promise((c) => {
|
|
424
|
+
r = (p) => {
|
|
425
|
+
(o() || h()) && c(p);
|
|
426
|
+
}, e.onPause?.();
|
|
427
|
+
}).then(() => {
|
|
428
|
+
r = void 0, o() || e.onContinue?.();
|
|
429
|
+
}), l = () => {
|
|
430
|
+
if (o())
|
|
431
|
+
return;
|
|
432
|
+
let c;
|
|
433
|
+
const p = s === 0 ? e.initialPromise : void 0;
|
|
434
|
+
try {
|
|
435
|
+
c = p ?? e.fn();
|
|
436
|
+
} catch (m) {
|
|
437
|
+
c = Promise.reject(m);
|
|
438
|
+
}
|
|
439
|
+
Promise.resolve(c).then(d).catch((m) => {
|
|
440
|
+
if (o())
|
|
441
|
+
return;
|
|
442
|
+
const g = e.retry ?? (Q.isServer() ? 0 : 3), b = e.retryDelay ?? ye, F = typeof b == "function" ? b(s, m) : b, w = g === !0 || typeof g == "number" && s < g || typeof g == "function" && g(s, m);
|
|
443
|
+
if (t || !w) {
|
|
444
|
+
y(m);
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
s++, e.onFail?.(s, m), ne(F).then(() => h() ? void 0 : v()).then(() => {
|
|
448
|
+
t ? y(m) : l();
|
|
449
|
+
});
|
|
450
|
+
});
|
|
451
|
+
};
|
|
452
|
+
return {
|
|
453
|
+
promise: i,
|
|
454
|
+
status: () => i.status,
|
|
455
|
+
cancel: u,
|
|
456
|
+
continue: () => (r?.(), i),
|
|
457
|
+
cancelRetry: a,
|
|
458
|
+
continueRetry: n,
|
|
459
|
+
canStart: f,
|
|
460
|
+
start: () => (f() ? l() : v().then(l), i)
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
var ve = class {
|
|
464
|
+
#e;
|
|
465
|
+
destroy() {
|
|
466
|
+
this.clearGcTimeout();
|
|
467
|
+
}
|
|
468
|
+
scheduleGc() {
|
|
469
|
+
this.clearGcTimeout(), X(this.gcTime) && (this.#e = C.setTimeout(() => {
|
|
470
|
+
this.optionalRemove();
|
|
471
|
+
}, this.gcTime));
|
|
472
|
+
}
|
|
473
|
+
updateGcTime(e) {
|
|
474
|
+
this.gcTime = Math.max(
|
|
475
|
+
this.gcTime || 0,
|
|
476
|
+
e ?? (Q.isServer() ? 1 / 0 : 300 * 1e3)
|
|
477
|
+
);
|
|
478
|
+
}
|
|
479
|
+
clearGcTimeout() {
|
|
480
|
+
this.#e !== void 0 && (C.clearTimeout(this.#e), this.#e = void 0);
|
|
481
|
+
}
|
|
482
|
+
};
|
|
483
|
+
function me(e) {
|
|
484
|
+
return {
|
|
485
|
+
onFetch: (t, s) => {
|
|
486
|
+
const r = t.options, i = t.fetchOptions?.meta?.fetchMore?.direction, o = t.state.data?.pages || [], u = t.state.data?.pageParams || [];
|
|
487
|
+
let a = { pages: [], pageParams: [] }, n = 0;
|
|
488
|
+
const h = async () => {
|
|
489
|
+
let f = !1;
|
|
490
|
+
const d = (l) => {
|
|
491
|
+
ue(
|
|
492
|
+
l,
|
|
493
|
+
() => t.signal,
|
|
494
|
+
() => f = !0
|
|
495
|
+
);
|
|
496
|
+
}, y = K(t.options, t.fetchOptions), v = async (l, c, p) => {
|
|
497
|
+
if (f)
|
|
498
|
+
return Promise.reject(t.signal.reason);
|
|
499
|
+
if (c == null && l.pages.length)
|
|
500
|
+
return Promise.resolve(l);
|
|
501
|
+
const g = (() => {
|
|
502
|
+
const A = {
|
|
503
|
+
client: t.client,
|
|
504
|
+
queryKey: t.queryKey,
|
|
505
|
+
pageParam: c,
|
|
506
|
+
direction: p ? "backward" : "forward",
|
|
507
|
+
meta: t.options.meta
|
|
508
|
+
};
|
|
509
|
+
return d(A), A;
|
|
510
|
+
})(), b = await y(g), { maxPages: F } = t.options, w = p ? oe : ae;
|
|
511
|
+
return {
|
|
512
|
+
pages: w(l.pages, b, F),
|
|
513
|
+
pageParams: w(l.pageParams, c, F)
|
|
514
|
+
};
|
|
515
|
+
};
|
|
516
|
+
if (i && o.length) {
|
|
517
|
+
const l = i === "backward", c = l ? _ : D, p = {
|
|
518
|
+
pages: o,
|
|
519
|
+
pageParams: u
|
|
520
|
+
}, m = c(r, p);
|
|
521
|
+
a = await v(p, m, l);
|
|
522
|
+
} else {
|
|
523
|
+
const l = e ?? o.length;
|
|
524
|
+
do {
|
|
525
|
+
const c = n === 0 ? u[0] ?? r.initialPageParam : D(r, a);
|
|
526
|
+
if (n > 0 && c == null)
|
|
527
|
+
break;
|
|
528
|
+
a = await v(a, c), n++;
|
|
529
|
+
} while (n < l);
|
|
530
|
+
}
|
|
531
|
+
return a;
|
|
532
|
+
};
|
|
533
|
+
t.options.persister ? t.fetchFn = () => t.options.persister?.(
|
|
534
|
+
h,
|
|
535
|
+
{
|
|
536
|
+
client: t.client,
|
|
537
|
+
queryKey: t.queryKey,
|
|
538
|
+
meta: t.options.meta,
|
|
539
|
+
signal: t.signal
|
|
540
|
+
},
|
|
541
|
+
s
|
|
542
|
+
) : t.fetchFn = h;
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
function D(e, { pages: t, pageParams: s }) {
|
|
547
|
+
const r = t.length - 1;
|
|
548
|
+
return t.length > 0 ? e.getNextPageParam(
|
|
549
|
+
t[r],
|
|
550
|
+
t,
|
|
551
|
+
s[r],
|
|
552
|
+
s
|
|
553
|
+
) : void 0;
|
|
554
|
+
}
|
|
555
|
+
function _(e, { pages: t, pageParams: s }) {
|
|
556
|
+
return t.length > 0 ? e.getPreviousPageParam?.(t[0], t, s[0], s) : void 0;
|
|
557
|
+
}
|
|
558
|
+
function qe(e, t) {
|
|
559
|
+
return t ? D(e, t) != null : !1;
|
|
560
|
+
}
|
|
561
|
+
function Ee(e, t) {
|
|
562
|
+
return !t || !e.getPreviousPageParam ? !1 : _(e, t) != null;
|
|
563
|
+
}
|
|
564
|
+
var Te = class extends ve {
|
|
565
|
+
#e;
|
|
566
|
+
#t;
|
|
567
|
+
#r;
|
|
568
|
+
#n;
|
|
569
|
+
#a;
|
|
570
|
+
#s;
|
|
571
|
+
#u;
|
|
572
|
+
#o;
|
|
573
|
+
constructor(e) {
|
|
574
|
+
super(), this.#o = !1, this.#u = e.defaultOptions, this.setOptions(e.options), this.observers = [], this.#a = e.client, this.#n = this.#a.getQueryCache(), this.queryKey = e.queryKey, this.queryHash = e.queryHash, this.#t = M(this.options), this.state = e.state ?? this.#t, this.scheduleGc();
|
|
575
|
+
}
|
|
576
|
+
get meta() {
|
|
577
|
+
return this.options.meta;
|
|
578
|
+
}
|
|
579
|
+
get queryType() {
|
|
580
|
+
return this.#e;
|
|
581
|
+
}
|
|
582
|
+
get promise() {
|
|
583
|
+
return this.#s?.promise;
|
|
584
|
+
}
|
|
585
|
+
setOptions(e) {
|
|
586
|
+
if (this.options = { ...this.#u, ...e }, e?._type && (this.#e = e._type), this.updateGcTime(this.options.gcTime), this.state && this.state.data === void 0) {
|
|
587
|
+
const t = M(this.options);
|
|
588
|
+
t.data !== void 0 && (this.setState(
|
|
589
|
+
U(t.data, t.dataUpdatedAt)
|
|
590
|
+
), this.#t = t);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
optionalRemove() {
|
|
594
|
+
!this.observers.length && this.state.fetchStatus === "idle" && this.#n.remove(this);
|
|
595
|
+
}
|
|
596
|
+
setData(e, t) {
|
|
597
|
+
const s = ie(this.state.data, e, this.options);
|
|
598
|
+
return this.#i({
|
|
599
|
+
data: s,
|
|
600
|
+
type: "success",
|
|
601
|
+
dataUpdatedAt: t?.updatedAt,
|
|
602
|
+
manual: t?.manual
|
|
603
|
+
}), s;
|
|
604
|
+
}
|
|
605
|
+
setState(e) {
|
|
606
|
+
this.#i({ type: "setState", state: e });
|
|
607
|
+
}
|
|
608
|
+
cancel(e) {
|
|
609
|
+
const t = this.#s?.promise;
|
|
610
|
+
return this.#s?.cancel(e), t ? t.then(P).catch(P) : Promise.resolve();
|
|
611
|
+
}
|
|
612
|
+
destroy() {
|
|
613
|
+
super.destroy(), this.cancel({ silent: !0 });
|
|
614
|
+
}
|
|
615
|
+
get resetState() {
|
|
616
|
+
return this.#t;
|
|
617
|
+
}
|
|
618
|
+
reset() {
|
|
619
|
+
this.destroy(), this.setState(this.resetState);
|
|
620
|
+
}
|
|
621
|
+
isActive() {
|
|
622
|
+
return this.observers.some(
|
|
623
|
+
(e) => te(e.options.enabled, this) !== !1
|
|
624
|
+
);
|
|
625
|
+
}
|
|
626
|
+
isDisabled() {
|
|
627
|
+
return this.getObserversCount() > 0 ? !this.isActive() : this.options.queryFn === T || !this.isFetched();
|
|
628
|
+
}
|
|
629
|
+
isFetched() {
|
|
630
|
+
return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;
|
|
631
|
+
}
|
|
632
|
+
isStatic() {
|
|
633
|
+
return this.getObserversCount() > 0 ? this.observers.some(
|
|
634
|
+
(e) => ee(e.options.staleTime, this) === "static"
|
|
635
|
+
) : !1;
|
|
636
|
+
}
|
|
637
|
+
isStale() {
|
|
638
|
+
return this.getObserversCount() > 0 ? this.observers.some(
|
|
639
|
+
(e) => e.getCurrentResult().isStale
|
|
640
|
+
) : this.state.data === void 0 || this.state.isInvalidated;
|
|
641
|
+
}
|
|
642
|
+
isStaleByTime(e = 0) {
|
|
643
|
+
return this.state.data === void 0 ? !0 : e === "static" ? !1 : this.state.isInvalidated ? !0 : !Y(this.state.dataUpdatedAt, e);
|
|
644
|
+
}
|
|
645
|
+
onFocus() {
|
|
646
|
+
this.observers.find((t) => t.shouldFetchOnWindowFocus())?.refetch({ cancelRefetch: !1 }), this.#s?.continue();
|
|
647
|
+
}
|
|
648
|
+
onOnline() {
|
|
649
|
+
this.observers.find((t) => t.shouldFetchOnReconnect())?.refetch({ cancelRefetch: !1 }), this.#s?.continue();
|
|
650
|
+
}
|
|
651
|
+
addObserver(e) {
|
|
652
|
+
this.observers.includes(e) || (this.observers.push(e), this.clearGcTimeout(), this.#n.notify({ type: "observerAdded", query: this, observer: e }));
|
|
653
|
+
}
|
|
654
|
+
removeObserver(e) {
|
|
655
|
+
this.observers.includes(e) && (this.observers = this.observers.filter((t) => t !== e), this.observers.length || (this.#s && (this.#o || this.#c() ? this.#s.cancel({ revert: !0 }) : this.#s.cancelRetry()), this.scheduleGc()), this.#n.notify({ type: "observerRemoved", query: this, observer: e }));
|
|
656
|
+
}
|
|
657
|
+
getObserversCount() {
|
|
658
|
+
return this.observers.length;
|
|
659
|
+
}
|
|
660
|
+
#c() {
|
|
661
|
+
return this.state.fetchStatus === "paused" && this.state.status === "pending";
|
|
662
|
+
}
|
|
663
|
+
invalidate() {
|
|
664
|
+
this.state.isInvalidated || this.#i({ type: "invalidate" });
|
|
665
|
+
}
|
|
666
|
+
async fetch(e, t) {
|
|
667
|
+
if (this.state.fetchStatus !== "idle" && // If the promise in the retryer is already rejected, we have to definitely
|
|
668
|
+
// re-start the fetch; there is a chance that the query is still in a
|
|
669
|
+
// pending state when that happens
|
|
670
|
+
this.#s?.status() !== "rejected") {
|
|
671
|
+
if (this.state.data !== void 0 && t?.cancelRefetch)
|
|
672
|
+
this.cancel({ silent: !0 });
|
|
673
|
+
else if (this.#s)
|
|
674
|
+
return this.#s.continueRetry(), this.#s.promise;
|
|
675
|
+
}
|
|
676
|
+
if (e && this.setOptions(e), !this.options.queryFn) {
|
|
677
|
+
const n = this.observers.find((h) => h.options.queryFn);
|
|
678
|
+
n && this.setOptions(n.options);
|
|
679
|
+
}
|
|
680
|
+
process.env.NODE_ENV !== "production" && (Array.isArray(this.options.queryKey) || console.error(
|
|
681
|
+
"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']"
|
|
682
|
+
));
|
|
683
|
+
const s = new AbortController(), r = (n) => {
|
|
684
|
+
Object.defineProperty(n, "signal", {
|
|
685
|
+
enumerable: !0,
|
|
686
|
+
get: () => (this.#o = !0, s.signal)
|
|
687
|
+
});
|
|
688
|
+
}, i = () => {
|
|
689
|
+
const n = K(this.options, t), f = (() => {
|
|
690
|
+
const d = {
|
|
691
|
+
client: this.#a,
|
|
692
|
+
queryKey: this.queryKey,
|
|
693
|
+
meta: this.meta
|
|
694
|
+
};
|
|
695
|
+
return r(d), d;
|
|
696
|
+
})();
|
|
697
|
+
return this.#o = !1, this.options.persister ? this.options.persister(
|
|
698
|
+
n,
|
|
699
|
+
f,
|
|
700
|
+
this
|
|
701
|
+
) : n(f);
|
|
702
|
+
}, u = (() => {
|
|
703
|
+
const n = {
|
|
704
|
+
fetchOptions: t,
|
|
705
|
+
options: this.options,
|
|
706
|
+
queryKey: this.queryKey,
|
|
707
|
+
client: this.#a,
|
|
708
|
+
state: this.state,
|
|
709
|
+
fetchFn: i
|
|
710
|
+
};
|
|
711
|
+
return r(n), n;
|
|
712
|
+
})();
|
|
713
|
+
(this.#e === "infinite" ? me(
|
|
714
|
+
this.options.pages
|
|
715
|
+
) : this.options.behavior)?.onFetch(u, this), this.#r = this.state, (this.state.fetchStatus === "idle" || this.state.fetchMeta !== u.fetchOptions?.meta) && this.#i({ type: "fetch", meta: u.fetchOptions?.meta }), this.#s = pe({
|
|
716
|
+
initialPromise: t?.initialPromise,
|
|
717
|
+
fn: u.fetchFn,
|
|
718
|
+
onCancel: (n) => {
|
|
719
|
+
n instanceof j && n.revert && this.setState({
|
|
720
|
+
...this.#r,
|
|
721
|
+
fetchStatus: "idle"
|
|
722
|
+
}), s.abort();
|
|
723
|
+
},
|
|
724
|
+
onFail: (n, h) => {
|
|
725
|
+
this.#i({ type: "failed", failureCount: n, error: h });
|
|
726
|
+
},
|
|
727
|
+
onPause: () => {
|
|
728
|
+
this.#i({ type: "pause" });
|
|
729
|
+
},
|
|
730
|
+
onContinue: () => {
|
|
731
|
+
this.#i({ type: "continue" });
|
|
732
|
+
},
|
|
733
|
+
retry: u.options.retry,
|
|
734
|
+
retryDelay: u.options.retryDelay,
|
|
735
|
+
networkMode: u.options.networkMode,
|
|
736
|
+
canRun: () => !0
|
|
737
|
+
});
|
|
738
|
+
try {
|
|
739
|
+
const n = await this.#s.start();
|
|
740
|
+
if (n === void 0)
|
|
741
|
+
throw process.env.NODE_ENV !== "production" && console.error(
|
|
742
|
+
`Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`
|
|
743
|
+
), new Error(`${this.queryHash} data is undefined`);
|
|
744
|
+
return this.setData(n), this.#n.config.onSuccess?.(n, this), this.#n.config.onSettled?.(
|
|
745
|
+
n,
|
|
746
|
+
this.state.error,
|
|
747
|
+
this
|
|
748
|
+
), n;
|
|
749
|
+
} catch (n) {
|
|
750
|
+
if (n instanceof j) {
|
|
751
|
+
if (n.silent)
|
|
752
|
+
return this.#s.promise;
|
|
753
|
+
if (n.revert) {
|
|
754
|
+
if (this.state.data === void 0)
|
|
755
|
+
throw n;
|
|
756
|
+
return this.state.data;
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
throw this.#i({
|
|
760
|
+
type: "error",
|
|
761
|
+
error: n
|
|
762
|
+
}), this.#n.config.onError?.(
|
|
763
|
+
n,
|
|
764
|
+
this
|
|
765
|
+
), this.#n.config.onSettled?.(
|
|
766
|
+
this.state.data,
|
|
767
|
+
n,
|
|
768
|
+
this
|
|
769
|
+
), n;
|
|
770
|
+
} finally {
|
|
771
|
+
this.scheduleGc();
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
#i(e) {
|
|
775
|
+
const t = (s) => {
|
|
776
|
+
switch (e.type) {
|
|
777
|
+
case "failed":
|
|
778
|
+
return {
|
|
779
|
+
...s,
|
|
780
|
+
fetchFailureCount: e.failureCount,
|
|
781
|
+
fetchFailureReason: e.error
|
|
782
|
+
};
|
|
783
|
+
case "pause":
|
|
784
|
+
return {
|
|
785
|
+
...s,
|
|
786
|
+
fetchStatus: "paused"
|
|
787
|
+
};
|
|
788
|
+
case "continue":
|
|
789
|
+
return {
|
|
790
|
+
...s,
|
|
791
|
+
fetchStatus: "fetching"
|
|
792
|
+
};
|
|
793
|
+
case "fetch":
|
|
794
|
+
return {
|
|
795
|
+
...s,
|
|
796
|
+
...ge(s.data, this.options),
|
|
797
|
+
fetchMeta: e.meta ?? null
|
|
798
|
+
};
|
|
799
|
+
case "success":
|
|
800
|
+
const r = {
|
|
801
|
+
...s,
|
|
802
|
+
...U(e.data, e.dataUpdatedAt),
|
|
803
|
+
dataUpdateCount: s.dataUpdateCount + 1,
|
|
804
|
+
...!e.manual && {
|
|
805
|
+
fetchStatus: "idle",
|
|
806
|
+
fetchFailureCount: 0,
|
|
807
|
+
fetchFailureReason: null
|
|
808
|
+
}
|
|
809
|
+
};
|
|
810
|
+
return this.#r = e.manual ? r : void 0, r;
|
|
811
|
+
case "error":
|
|
812
|
+
const i = e.error;
|
|
813
|
+
return {
|
|
814
|
+
...s,
|
|
815
|
+
error: i,
|
|
816
|
+
errorUpdateCount: s.errorUpdateCount + 1,
|
|
817
|
+
errorUpdatedAt: Date.now(),
|
|
818
|
+
fetchFailureCount: s.fetchFailureCount + 1,
|
|
819
|
+
fetchFailureReason: i,
|
|
820
|
+
fetchStatus: "idle",
|
|
821
|
+
status: "error",
|
|
822
|
+
// flag existing data as invalidated if we get a background error
|
|
823
|
+
// note that "no data" always means stale so we can set unconditionally here
|
|
824
|
+
isInvalidated: !0
|
|
825
|
+
};
|
|
826
|
+
case "invalidate":
|
|
827
|
+
return {
|
|
828
|
+
...s,
|
|
829
|
+
isInvalidated: !0
|
|
830
|
+
};
|
|
831
|
+
case "setState":
|
|
832
|
+
return {
|
|
833
|
+
...s,
|
|
834
|
+
...e.state
|
|
835
|
+
};
|
|
836
|
+
}
|
|
837
|
+
};
|
|
838
|
+
this.state = t(this.state), fe.batch(() => {
|
|
839
|
+
this.observers.forEach((s) => {
|
|
840
|
+
s.onQueryUpdate();
|
|
841
|
+
}), this.#n.notify({ query: this, type: "updated", action: e });
|
|
842
|
+
});
|
|
843
|
+
}
|
|
844
|
+
};
|
|
845
|
+
function ge(e, t) {
|
|
846
|
+
return {
|
|
847
|
+
fetchFailureCount: 0,
|
|
848
|
+
fetchFailureReason: null,
|
|
849
|
+
fetchStatus: x(t.networkMode) ? "fetching" : "paused",
|
|
850
|
+
...e === void 0 && {
|
|
851
|
+
error: null,
|
|
852
|
+
status: "pending"
|
|
853
|
+
}
|
|
854
|
+
};
|
|
855
|
+
}
|
|
856
|
+
function U(e, t) {
|
|
857
|
+
return {
|
|
858
|
+
data: e,
|
|
859
|
+
dataUpdatedAt: t ?? Date.now(),
|
|
860
|
+
error: null,
|
|
861
|
+
isInvalidated: !1,
|
|
862
|
+
status: "success"
|
|
863
|
+
};
|
|
864
|
+
}
|
|
865
|
+
function M(e) {
|
|
866
|
+
const t = typeof e.initialData == "function" ? e.initialData() : e.initialData, s = t !== void 0, r = s ? typeof e.initialDataUpdatedAt == "function" ? e.initialDataUpdatedAt() : e.initialDataUpdatedAt : 0;
|
|
867
|
+
return {
|
|
868
|
+
data: t,
|
|
869
|
+
dataUpdateCount: 0,
|
|
870
|
+
dataUpdatedAt: s ? r ?? Date.now() : 0,
|
|
871
|
+
error: null,
|
|
872
|
+
errorUpdateCount: 0,
|
|
873
|
+
errorUpdatedAt: 0,
|
|
874
|
+
fetchFailureCount: 0,
|
|
875
|
+
fetchFailureReason: null,
|
|
876
|
+
fetchMeta: null,
|
|
877
|
+
isInvalidated: !1,
|
|
878
|
+
status: s ? "success" : "pending",
|
|
879
|
+
fetchStatus: "idle"
|
|
880
|
+
};
|
|
881
|
+
}
|
|
882
|
+
var G = S.createContext(
|
|
883
|
+
void 0
|
|
884
|
+
), je = (e) => {
|
|
885
|
+
const t = S.useContext(G);
|
|
886
|
+
if (e)
|
|
887
|
+
return e;
|
|
888
|
+
if (!t)
|
|
889
|
+
throw new Error("No QueryClient set, use QueryClientProvider to set one");
|
|
890
|
+
return t;
|
|
891
|
+
}, De = ({
|
|
892
|
+
client: e,
|
|
893
|
+
children: t
|
|
894
|
+
}) => (S.useEffect(() => (e.mount(), () => {
|
|
895
|
+
e.unmount();
|
|
896
|
+
}), [e]), /* @__PURE__ */ H(G.Provider, { value: e, children: t })), V = S.createContext(!1), Ie = () => S.useContext(V), Ae = V.Provider;
|
|
897
|
+
export {
|
|
898
|
+
I as A,
|
|
899
|
+
T as B,
|
|
900
|
+
De as C,
|
|
901
|
+
Ae as I,
|
|
902
|
+
Te as Q,
|
|
903
|
+
ve as R,
|
|
904
|
+
k as S,
|
|
905
|
+
qe as a,
|
|
906
|
+
O as b,
|
|
907
|
+
P as c,
|
|
908
|
+
Ce as d,
|
|
909
|
+
ee as e,
|
|
910
|
+
Q as f,
|
|
911
|
+
C as g,
|
|
912
|
+
Ee as h,
|
|
913
|
+
X as i,
|
|
914
|
+
B as j,
|
|
915
|
+
ge as k,
|
|
916
|
+
ie as l,
|
|
917
|
+
Ie as m,
|
|
918
|
+
fe as n,
|
|
919
|
+
Oe as o,
|
|
920
|
+
ce as p,
|
|
921
|
+
pe as q,
|
|
922
|
+
te as r,
|
|
923
|
+
Pe as s,
|
|
924
|
+
Y as t,
|
|
925
|
+
je as u,
|
|
926
|
+
we as v,
|
|
927
|
+
se as w,
|
|
928
|
+
Fe as x,
|
|
929
|
+
L as y,
|
|
930
|
+
Se as z
|
|
931
|
+
};
|