@judo/i18n 0.1.0

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 ADDED
@@ -0,0 +1,2569 @@
1
+ import i18next from "i18next";
2
+ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
3
+ import { I18nextProvider, initReactI18next, useTranslation } from "react-i18next";
4
+ import { jsx } from "react/jsx-runtime";
5
+ function getTranslationKey(e, D = "label") {
6
+ let O = e.sourceId || e.name;
7
+ return `${(e["@type"] || "element").replace(/^(ui:|data:)/i, "").toLowerCase()}.${O}.${D}`;
8
+ }
9
+ function getSystemMessageKey(e, D) {
10
+ return `system.${e}.${D}`;
11
+ }
12
+ function getColumnTranslationKey(e) {
13
+ return `column.${e.sourceId || e.name}.label`;
14
+ }
15
+ function getEnumTranslationKey(e, D) {
16
+ return `enum.${e}.${D}`;
17
+ }
18
+ function getNavItemTranslationKey(e) {
19
+ return `nav.${e.sourceId || e.name}.label`;
20
+ }
21
+ const millisecondsInWeek = 6048e5, millisecondsInMinute = 6e4, millisecondsInHour = 36e5, secondsInDay = 3600 * 24;
22
+ secondsInDay * 7, secondsInDay * 365.2425;
23
+ const constructFromSymbol = Symbol.for("constructDateFrom");
24
+ function constructFrom(e, D) {
25
+ return typeof e == "function" ? e(D) : e && typeof e == "object" && constructFromSymbol in e ? e[constructFromSymbol](D) : e instanceof Date ? new e.constructor(D) : new Date(D);
26
+ }
27
+ function toDate(e, D) {
28
+ return constructFrom(D || e, e);
29
+ }
30
+ var defaultOptions = {};
31
+ function getDefaultOptions() {
32
+ return defaultOptions;
33
+ }
34
+ function startOfWeek(e, D) {
35
+ let O = getDefaultOptions(), k = D?.weekStartsOn ?? D?.locale?.options?.weekStartsOn ?? O.weekStartsOn ?? O.locale?.options?.weekStartsOn ?? 0, A = toDate(e, D?.in), j = A.getDay(), M = (j < k ? 7 : 0) + j - k;
36
+ return A.setDate(A.getDate() - M), A.setHours(0, 0, 0, 0), A;
37
+ }
38
+ function startOfISOWeek(e, D) {
39
+ return startOfWeek(e, {
40
+ ...D,
41
+ weekStartsOn: 1
42
+ });
43
+ }
44
+ function getISOWeekYear(e, D) {
45
+ let O = toDate(e, D?.in), k = O.getFullYear(), A = constructFrom(O, 0);
46
+ A.setFullYear(k + 1, 0, 4), A.setHours(0, 0, 0, 0);
47
+ let j = startOfISOWeek(A), M = constructFrom(O, 0);
48
+ M.setFullYear(k, 0, 4), M.setHours(0, 0, 0, 0);
49
+ let N = startOfISOWeek(M);
50
+ return O.getTime() >= j.getTime() ? k + 1 : O.getTime() >= N.getTime() ? k : k - 1;
51
+ }
52
+ function getTimezoneOffsetInMilliseconds(e) {
53
+ let D = toDate(e), O = new Date(Date.UTC(D.getFullYear(), D.getMonth(), D.getDate(), D.getHours(), D.getMinutes(), D.getSeconds(), D.getMilliseconds()));
54
+ return O.setUTCFullYear(D.getFullYear()), e - +O;
55
+ }
56
+ function normalizeDates(e, ...D) {
57
+ let O = constructFrom.bind(null, e || D.find((e) => typeof e == "object"));
58
+ return D.map(O);
59
+ }
60
+ function startOfDay(e, D) {
61
+ let O = toDate(e, D?.in);
62
+ return O.setHours(0, 0, 0, 0), O;
63
+ }
64
+ function differenceInCalendarDays(e, D, O) {
65
+ let [k, A] = normalizeDates(O?.in, e, D), j = startOfDay(k), M = startOfDay(A), N = +j - getTimezoneOffsetInMilliseconds(j), P = +M - getTimezoneOffsetInMilliseconds(M);
66
+ return Math.round((N - P) / 864e5);
67
+ }
68
+ function startOfISOWeekYear(e, D) {
69
+ let O = getISOWeekYear(e, D), k = constructFrom(D?.in || e, 0);
70
+ return k.setFullYear(O, 0, 4), k.setHours(0, 0, 0, 0), startOfISOWeek(k);
71
+ }
72
+ function isDate(e) {
73
+ return e instanceof Date || typeof e == "object" && Object.prototype.toString.call(e) === "[object Date]";
74
+ }
75
+ function isValid(e) {
76
+ return !(!isDate(e) && typeof e != "number" || isNaN(+toDate(e)));
77
+ }
78
+ function startOfYear(e, D) {
79
+ let O = toDate(e, D?.in);
80
+ return O.setFullYear(O.getFullYear(), 0, 1), O.setHours(0, 0, 0, 0), O;
81
+ }
82
+ var formatDistanceLocale$1 = {
83
+ lessThanXSeconds: {
84
+ one: "less than a second",
85
+ other: "less than {{count}} seconds"
86
+ },
87
+ xSeconds: {
88
+ one: "1 second",
89
+ other: "{{count}} seconds"
90
+ },
91
+ halfAMinute: "half a minute",
92
+ lessThanXMinutes: {
93
+ one: "less than a minute",
94
+ other: "less than {{count}} minutes"
95
+ },
96
+ xMinutes: {
97
+ one: "1 minute",
98
+ other: "{{count}} minutes"
99
+ },
100
+ aboutXHours: {
101
+ one: "about 1 hour",
102
+ other: "about {{count}} hours"
103
+ },
104
+ xHours: {
105
+ one: "1 hour",
106
+ other: "{{count}} hours"
107
+ },
108
+ xDays: {
109
+ one: "1 day",
110
+ other: "{{count}} days"
111
+ },
112
+ aboutXWeeks: {
113
+ one: "about 1 week",
114
+ other: "about {{count}} weeks"
115
+ },
116
+ xWeeks: {
117
+ one: "1 week",
118
+ other: "{{count}} weeks"
119
+ },
120
+ aboutXMonths: {
121
+ one: "about 1 month",
122
+ other: "about {{count}} months"
123
+ },
124
+ xMonths: {
125
+ one: "1 month",
126
+ other: "{{count}} months"
127
+ },
128
+ aboutXYears: {
129
+ one: "about 1 year",
130
+ other: "about {{count}} years"
131
+ },
132
+ xYears: {
133
+ one: "1 year",
134
+ other: "{{count}} years"
135
+ },
136
+ overXYears: {
137
+ one: "over 1 year",
138
+ other: "over {{count}} years"
139
+ },
140
+ almostXYears: {
141
+ one: "almost 1 year",
142
+ other: "almost {{count}} years"
143
+ }
144
+ };
145
+ const formatDistance$2 = (e, D, O) => {
146
+ let k, A = formatDistanceLocale$1[e];
147
+ return k = typeof A == "string" ? A : D === 1 ? A.one : A.other.replace("{{count}}", D.toString()), O?.addSuffix ? O.comparison && O.comparison > 0 ? "in " + k : k + " ago" : k;
148
+ };
149
+ function buildFormatLongFn(e) {
150
+ return (D = {}) => e.formats[D.width ? String(D.width) : e.defaultWidth] || e.formats[e.defaultWidth];
151
+ }
152
+ const formatLong$2 = {
153
+ date: buildFormatLongFn({
154
+ formats: {
155
+ full: "EEEE, MMMM do, y",
156
+ long: "MMMM do, y",
157
+ medium: "MMM d, y",
158
+ short: "MM/dd/yyyy"
159
+ },
160
+ defaultWidth: "full"
161
+ }),
162
+ time: buildFormatLongFn({
163
+ formats: {
164
+ full: "h:mm:ss a zzzz",
165
+ long: "h:mm:ss a z",
166
+ medium: "h:mm:ss a",
167
+ short: "h:mm a"
168
+ },
169
+ defaultWidth: "full"
170
+ }),
171
+ dateTime: buildFormatLongFn({
172
+ formats: {
173
+ full: "{{date}} 'at' {{time}}",
174
+ long: "{{date}} 'at' {{time}}",
175
+ medium: "{{date}}, {{time}}",
176
+ short: "{{date}}, {{time}}"
177
+ },
178
+ defaultWidth: "full"
179
+ })
180
+ };
181
+ var formatRelativeLocale$2 = {
182
+ lastWeek: "'last' eeee 'at' p",
183
+ yesterday: "'yesterday at' p",
184
+ today: "'today at' p",
185
+ tomorrow: "'tomorrow at' p",
186
+ nextWeek: "eeee 'at' p",
187
+ other: "P"
188
+ };
189
+ const formatRelative$2 = (e, D, O, k) => formatRelativeLocale$2[e];
190
+ function buildLocalizeFn(e) {
191
+ return (D, O) => {
192
+ let k = O?.context ? String(O.context) : "standalone", A;
193
+ if (k === "formatting" && e.formattingValues) {
194
+ let D = e.defaultFormattingWidth || e.defaultWidth;
195
+ A = e.formattingValues[O?.width ? String(O.width) : D] || e.formattingValues[D];
196
+ } else {
197
+ let D = e.defaultWidth;
198
+ A = e.values[O?.width ? String(O.width) : e.defaultWidth] || e.values[D];
199
+ }
200
+ let j = e.argumentCallback ? e.argumentCallback(D) : D;
201
+ return A[j];
202
+ };
203
+ }
204
+ const localize$2 = {
205
+ ordinalNumber: (e, D) => {
206
+ let O = Number(e), k = O % 100;
207
+ if (k > 20 || k < 10) switch (k % 10) {
208
+ case 1: return O + "st";
209
+ case 2: return O + "nd";
210
+ case 3: return O + "rd";
211
+ }
212
+ return O + "th";
213
+ },
214
+ era: buildLocalizeFn({
215
+ values: {
216
+ narrow: ["B", "A"],
217
+ abbreviated: ["BC", "AD"],
218
+ wide: ["Before Christ", "Anno Domini"]
219
+ },
220
+ defaultWidth: "wide"
221
+ }),
222
+ quarter: buildLocalizeFn({
223
+ values: {
224
+ narrow: [
225
+ "1",
226
+ "2",
227
+ "3",
228
+ "4"
229
+ ],
230
+ abbreviated: [
231
+ "Q1",
232
+ "Q2",
233
+ "Q3",
234
+ "Q4"
235
+ ],
236
+ wide: [
237
+ "1st quarter",
238
+ "2nd quarter",
239
+ "3rd quarter",
240
+ "4th quarter"
241
+ ]
242
+ },
243
+ defaultWidth: "wide",
244
+ argumentCallback: (e) => e - 1
245
+ }),
246
+ month: buildLocalizeFn({
247
+ values: {
248
+ narrow: [
249
+ "J",
250
+ "F",
251
+ "M",
252
+ "A",
253
+ "M",
254
+ "J",
255
+ "J",
256
+ "A",
257
+ "S",
258
+ "O",
259
+ "N",
260
+ "D"
261
+ ],
262
+ abbreviated: [
263
+ "Jan",
264
+ "Feb",
265
+ "Mar",
266
+ "Apr",
267
+ "May",
268
+ "Jun",
269
+ "Jul",
270
+ "Aug",
271
+ "Sep",
272
+ "Oct",
273
+ "Nov",
274
+ "Dec"
275
+ ],
276
+ wide: [
277
+ "January",
278
+ "February",
279
+ "March",
280
+ "April",
281
+ "May",
282
+ "June",
283
+ "July",
284
+ "August",
285
+ "September",
286
+ "October",
287
+ "November",
288
+ "December"
289
+ ]
290
+ },
291
+ defaultWidth: "wide"
292
+ }),
293
+ day: buildLocalizeFn({
294
+ values: {
295
+ narrow: [
296
+ "S",
297
+ "M",
298
+ "T",
299
+ "W",
300
+ "T",
301
+ "F",
302
+ "S"
303
+ ],
304
+ short: [
305
+ "Su",
306
+ "Mo",
307
+ "Tu",
308
+ "We",
309
+ "Th",
310
+ "Fr",
311
+ "Sa"
312
+ ],
313
+ abbreviated: [
314
+ "Sun",
315
+ "Mon",
316
+ "Tue",
317
+ "Wed",
318
+ "Thu",
319
+ "Fri",
320
+ "Sat"
321
+ ],
322
+ wide: [
323
+ "Sunday",
324
+ "Monday",
325
+ "Tuesday",
326
+ "Wednesday",
327
+ "Thursday",
328
+ "Friday",
329
+ "Saturday"
330
+ ]
331
+ },
332
+ defaultWidth: "wide"
333
+ }),
334
+ dayPeriod: buildLocalizeFn({
335
+ values: {
336
+ narrow: {
337
+ am: "a",
338
+ pm: "p",
339
+ midnight: "mi",
340
+ noon: "n",
341
+ morning: "morning",
342
+ afternoon: "afternoon",
343
+ evening: "evening",
344
+ night: "night"
345
+ },
346
+ abbreviated: {
347
+ am: "AM",
348
+ pm: "PM",
349
+ midnight: "midnight",
350
+ noon: "noon",
351
+ morning: "morning",
352
+ afternoon: "afternoon",
353
+ evening: "evening",
354
+ night: "night"
355
+ },
356
+ wide: {
357
+ am: "a.m.",
358
+ pm: "p.m.",
359
+ midnight: "midnight",
360
+ noon: "noon",
361
+ morning: "morning",
362
+ afternoon: "afternoon",
363
+ evening: "evening",
364
+ night: "night"
365
+ }
366
+ },
367
+ defaultWidth: "wide",
368
+ formattingValues: {
369
+ narrow: {
370
+ am: "a",
371
+ pm: "p",
372
+ midnight: "mi",
373
+ noon: "n",
374
+ morning: "in the morning",
375
+ afternoon: "in the afternoon",
376
+ evening: "in the evening",
377
+ night: "at night"
378
+ },
379
+ abbreviated: {
380
+ am: "AM",
381
+ pm: "PM",
382
+ midnight: "midnight",
383
+ noon: "noon",
384
+ morning: "in the morning",
385
+ afternoon: "in the afternoon",
386
+ evening: "in the evening",
387
+ night: "at night"
388
+ },
389
+ wide: {
390
+ am: "a.m.",
391
+ pm: "p.m.",
392
+ midnight: "midnight",
393
+ noon: "noon",
394
+ morning: "in the morning",
395
+ afternoon: "in the afternoon",
396
+ evening: "in the evening",
397
+ night: "at night"
398
+ }
399
+ },
400
+ defaultFormattingWidth: "wide"
401
+ })
402
+ };
403
+ function buildMatchFn(e) {
404
+ return (D, O = {}) => {
405
+ let k = O.width, A = k && e.matchPatterns[k] || e.matchPatterns[e.defaultMatchWidth], j = D.match(A);
406
+ if (!j) return null;
407
+ let M = j[0], N = k && e.parsePatterns[k] || e.parsePatterns[e.defaultParseWidth], P = Array.isArray(N) ? findIndex(N, (e) => e.test(M)) : findKey(N, (e) => e.test(M)), F;
408
+ F = e.valueCallback ? e.valueCallback(P) : P, F = O.valueCallback ? O.valueCallback(F) : F;
409
+ let I = D.slice(M.length);
410
+ return {
411
+ value: F,
412
+ rest: I
413
+ };
414
+ };
415
+ }
416
+ function findKey(e, D) {
417
+ for (let O in e) if (Object.prototype.hasOwnProperty.call(e, O) && D(e[O])) return O;
418
+ }
419
+ function findIndex(e, D) {
420
+ for (let O = 0; O < e.length; O++) if (D(e[O])) return O;
421
+ }
422
+ function buildMatchPatternFn(e) {
423
+ return (D, O = {}) => {
424
+ let k = D.match(e.matchPattern);
425
+ if (!k) return null;
426
+ let A = k[0], j = D.match(e.parsePattern);
427
+ if (!j) return null;
428
+ let M = e.valueCallback ? e.valueCallback(j[0]) : j[0];
429
+ M = O.valueCallback ? O.valueCallback(M) : M;
430
+ let N = D.slice(A.length);
431
+ return {
432
+ value: M,
433
+ rest: N
434
+ };
435
+ };
436
+ }
437
+ const enUS = {
438
+ code: "en-US",
439
+ formatDistance: formatDistance$2,
440
+ formatLong: formatLong$2,
441
+ formatRelative: formatRelative$2,
442
+ localize: localize$2,
443
+ match: {
444
+ ordinalNumber: buildMatchPatternFn({
445
+ matchPattern: /^(\d+)(th|st|nd|rd)?/i,
446
+ parsePattern: /\d+/i,
447
+ valueCallback: (e) => parseInt(e, 10)
448
+ }),
449
+ era: buildMatchFn({
450
+ matchPatterns: {
451
+ narrow: /^(b|a)/i,
452
+ abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
453
+ wide: /^(before christ|before common era|anno domini|common era)/i
454
+ },
455
+ defaultMatchWidth: "wide",
456
+ parsePatterns: { any: [/^b/i, /^(a|c)/i] },
457
+ defaultParseWidth: "any"
458
+ }),
459
+ quarter: buildMatchFn({
460
+ matchPatterns: {
461
+ narrow: /^[1234]/i,
462
+ abbreviated: /^q[1234]/i,
463
+ wide: /^[1234](th|st|nd|rd)? quarter/i
464
+ },
465
+ defaultMatchWidth: "wide",
466
+ parsePatterns: { any: [
467
+ /1/i,
468
+ /2/i,
469
+ /3/i,
470
+ /4/i
471
+ ] },
472
+ defaultParseWidth: "any",
473
+ valueCallback: (e) => e + 1
474
+ }),
475
+ month: buildMatchFn({
476
+ matchPatterns: {
477
+ narrow: /^[jfmasond]/i,
478
+ abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
479
+ wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
480
+ },
481
+ defaultMatchWidth: "wide",
482
+ parsePatterns: {
483
+ narrow: [
484
+ /^j/i,
485
+ /^f/i,
486
+ /^m/i,
487
+ /^a/i,
488
+ /^m/i,
489
+ /^j/i,
490
+ /^j/i,
491
+ /^a/i,
492
+ /^s/i,
493
+ /^o/i,
494
+ /^n/i,
495
+ /^d/i
496
+ ],
497
+ any: [
498
+ /^ja/i,
499
+ /^f/i,
500
+ /^mar/i,
501
+ /^ap/i,
502
+ /^may/i,
503
+ /^jun/i,
504
+ /^jul/i,
505
+ /^au/i,
506
+ /^s/i,
507
+ /^o/i,
508
+ /^n/i,
509
+ /^d/i
510
+ ]
511
+ },
512
+ defaultParseWidth: "any"
513
+ }),
514
+ day: buildMatchFn({
515
+ matchPatterns: {
516
+ narrow: /^[smtwf]/i,
517
+ short: /^(su|mo|tu|we|th|fr|sa)/i,
518
+ abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
519
+ wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
520
+ },
521
+ defaultMatchWidth: "wide",
522
+ parsePatterns: {
523
+ narrow: [
524
+ /^s/i,
525
+ /^m/i,
526
+ /^t/i,
527
+ /^w/i,
528
+ /^t/i,
529
+ /^f/i,
530
+ /^s/i
531
+ ],
532
+ any: [
533
+ /^su/i,
534
+ /^m/i,
535
+ /^tu/i,
536
+ /^w/i,
537
+ /^th/i,
538
+ /^f/i,
539
+ /^sa/i
540
+ ]
541
+ },
542
+ defaultParseWidth: "any"
543
+ }),
544
+ dayPeriod: buildMatchFn({
545
+ matchPatterns: {
546
+ narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
547
+ any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
548
+ },
549
+ defaultMatchWidth: "any",
550
+ parsePatterns: { any: {
551
+ am: /^a/i,
552
+ pm: /^p/i,
553
+ midnight: /^mi/i,
554
+ noon: /^no/i,
555
+ morning: /morning/i,
556
+ afternoon: /afternoon/i,
557
+ evening: /evening/i,
558
+ night: /night/i
559
+ } },
560
+ defaultParseWidth: "any"
561
+ })
562
+ },
563
+ options: {
564
+ weekStartsOn: 0,
565
+ firstWeekContainsDate: 1
566
+ }
567
+ };
568
+ function getDayOfYear(e, D) {
569
+ let O = toDate(e, D?.in);
570
+ return differenceInCalendarDays(O, startOfYear(O)) + 1;
571
+ }
572
+ function getISOWeek(e, D) {
573
+ let O = toDate(e, D?.in), k = startOfISOWeek(O) - +startOfISOWeekYear(O);
574
+ return Math.round(k / millisecondsInWeek) + 1;
575
+ }
576
+ function getWeekYear(e, D) {
577
+ let O = toDate(e, D?.in), k = O.getFullYear(), A = getDefaultOptions(), j = D?.firstWeekContainsDate ?? D?.locale?.options?.firstWeekContainsDate ?? A.firstWeekContainsDate ?? A.locale?.options?.firstWeekContainsDate ?? 1, M = constructFrom(D?.in || e, 0);
578
+ M.setFullYear(k + 1, 0, j), M.setHours(0, 0, 0, 0);
579
+ let N = startOfWeek(M, D), P = constructFrom(D?.in || e, 0);
580
+ P.setFullYear(k, 0, j), P.setHours(0, 0, 0, 0);
581
+ let F = startOfWeek(P, D);
582
+ return +O >= +N ? k + 1 : +O >= +F ? k : k - 1;
583
+ }
584
+ function startOfWeekYear(e, D) {
585
+ let O = getDefaultOptions(), k = D?.firstWeekContainsDate ?? D?.locale?.options?.firstWeekContainsDate ?? O.firstWeekContainsDate ?? O.locale?.options?.firstWeekContainsDate ?? 1, A = getWeekYear(e, D), j = constructFrom(D?.in || e, 0);
586
+ return j.setFullYear(A, 0, k), j.setHours(0, 0, 0, 0), startOfWeek(j, D);
587
+ }
588
+ function getWeek(e, D) {
589
+ let O = toDate(e, D?.in), k = startOfWeek(O, D) - +startOfWeekYear(O, D);
590
+ return Math.round(k / millisecondsInWeek) + 1;
591
+ }
592
+ function addLeadingZeros(e, D) {
593
+ return (e < 0 ? "-" : "") + Math.abs(e).toString().padStart(D, "0");
594
+ }
595
+ const lightFormatters = {
596
+ y(e, D) {
597
+ let O = e.getFullYear(), k = O > 0 ? O : 1 - O;
598
+ return addLeadingZeros(D === "yy" ? k % 100 : k, D.length);
599
+ },
600
+ M(e, D) {
601
+ let O = e.getMonth();
602
+ return D === "M" ? String(O + 1) : addLeadingZeros(O + 1, 2);
603
+ },
604
+ d(e, D) {
605
+ return addLeadingZeros(e.getDate(), D.length);
606
+ },
607
+ a(e, D) {
608
+ let O = e.getHours() / 12 >= 1 ? "pm" : "am";
609
+ switch (D) {
610
+ case "a":
611
+ case "aa": return O.toUpperCase();
612
+ case "aaa": return O;
613
+ case "aaaaa": return O[0];
614
+ case "aaaa":
615
+ default: return O === "am" ? "a.m." : "p.m.";
616
+ }
617
+ },
618
+ h(e, D) {
619
+ return addLeadingZeros(e.getHours() % 12 || 12, D.length);
620
+ },
621
+ H(e, D) {
622
+ return addLeadingZeros(e.getHours(), D.length);
623
+ },
624
+ m(e, D) {
625
+ return addLeadingZeros(e.getMinutes(), D.length);
626
+ },
627
+ s(e, D) {
628
+ return addLeadingZeros(e.getSeconds(), D.length);
629
+ },
630
+ S(e, D) {
631
+ let O = D.length, k = e.getMilliseconds();
632
+ return addLeadingZeros(Math.trunc(k * 10 ** (O - 3)), D.length);
633
+ }
634
+ };
635
+ var dayPeriodEnum = {
636
+ am: "am",
637
+ pm: "pm",
638
+ midnight: "midnight",
639
+ noon: "noon",
640
+ morning: "morning",
641
+ afternoon: "afternoon",
642
+ evening: "evening",
643
+ night: "night"
644
+ };
645
+ const formatters = {
646
+ G: function(e, D, O) {
647
+ let k = e.getFullYear() > 0 ? 1 : 0;
648
+ switch (D) {
649
+ case "G":
650
+ case "GG":
651
+ case "GGG": return O.era(k, { width: "abbreviated" });
652
+ case "GGGGG": return O.era(k, { width: "narrow" });
653
+ case "GGGG":
654
+ default: return O.era(k, { width: "wide" });
655
+ }
656
+ },
657
+ y: function(e, D, O) {
658
+ if (D === "yo") {
659
+ let D = e.getFullYear(), k = D > 0 ? D : 1 - D;
660
+ return O.ordinalNumber(k, { unit: "year" });
661
+ }
662
+ return lightFormatters.y(e, D);
663
+ },
664
+ Y: function(e, D, O, k) {
665
+ let A = getWeekYear(e, k), j = A > 0 ? A : 1 - A;
666
+ return D === "YY" ? addLeadingZeros(j % 100, 2) : D === "Yo" ? O.ordinalNumber(j, { unit: "year" }) : addLeadingZeros(j, D.length);
667
+ },
668
+ R: function(e, D) {
669
+ return addLeadingZeros(getISOWeekYear(e), D.length);
670
+ },
671
+ u: function(e, D) {
672
+ return addLeadingZeros(e.getFullYear(), D.length);
673
+ },
674
+ Q: function(e, D, O) {
675
+ let k = Math.ceil((e.getMonth() + 1) / 3);
676
+ switch (D) {
677
+ case "Q": return String(k);
678
+ case "QQ": return addLeadingZeros(k, 2);
679
+ case "Qo": return O.ordinalNumber(k, { unit: "quarter" });
680
+ case "QQQ": return O.quarter(k, {
681
+ width: "abbreviated",
682
+ context: "formatting"
683
+ });
684
+ case "QQQQQ": return O.quarter(k, {
685
+ width: "narrow",
686
+ context: "formatting"
687
+ });
688
+ case "QQQQ":
689
+ default: return O.quarter(k, {
690
+ width: "wide",
691
+ context: "formatting"
692
+ });
693
+ }
694
+ },
695
+ q: function(e, D, O) {
696
+ let k = Math.ceil((e.getMonth() + 1) / 3);
697
+ switch (D) {
698
+ case "q": return String(k);
699
+ case "qq": return addLeadingZeros(k, 2);
700
+ case "qo": return O.ordinalNumber(k, { unit: "quarter" });
701
+ case "qqq": return O.quarter(k, {
702
+ width: "abbreviated",
703
+ context: "standalone"
704
+ });
705
+ case "qqqqq": return O.quarter(k, {
706
+ width: "narrow",
707
+ context: "standalone"
708
+ });
709
+ case "qqqq":
710
+ default: return O.quarter(k, {
711
+ width: "wide",
712
+ context: "standalone"
713
+ });
714
+ }
715
+ },
716
+ M: function(e, D, O) {
717
+ let k = e.getMonth();
718
+ switch (D) {
719
+ case "M":
720
+ case "MM": return lightFormatters.M(e, D);
721
+ case "Mo": return O.ordinalNumber(k + 1, { unit: "month" });
722
+ case "MMM": return O.month(k, {
723
+ width: "abbreviated",
724
+ context: "formatting"
725
+ });
726
+ case "MMMMM": return O.month(k, {
727
+ width: "narrow",
728
+ context: "formatting"
729
+ });
730
+ case "MMMM":
731
+ default: return O.month(k, {
732
+ width: "wide",
733
+ context: "formatting"
734
+ });
735
+ }
736
+ },
737
+ L: function(e, D, O) {
738
+ let k = e.getMonth();
739
+ switch (D) {
740
+ case "L": return String(k + 1);
741
+ case "LL": return addLeadingZeros(k + 1, 2);
742
+ case "Lo": return O.ordinalNumber(k + 1, { unit: "month" });
743
+ case "LLL": return O.month(k, {
744
+ width: "abbreviated",
745
+ context: "standalone"
746
+ });
747
+ case "LLLLL": return O.month(k, {
748
+ width: "narrow",
749
+ context: "standalone"
750
+ });
751
+ case "LLLL":
752
+ default: return O.month(k, {
753
+ width: "wide",
754
+ context: "standalone"
755
+ });
756
+ }
757
+ },
758
+ w: function(e, D, O, k) {
759
+ let A = getWeek(e, k);
760
+ return D === "wo" ? O.ordinalNumber(A, { unit: "week" }) : addLeadingZeros(A, D.length);
761
+ },
762
+ I: function(e, D, O) {
763
+ let k = getISOWeek(e);
764
+ return D === "Io" ? O.ordinalNumber(k, { unit: "week" }) : addLeadingZeros(k, D.length);
765
+ },
766
+ d: function(e, D, O) {
767
+ return D === "do" ? O.ordinalNumber(e.getDate(), { unit: "date" }) : lightFormatters.d(e, D);
768
+ },
769
+ D: function(e, D, O) {
770
+ let k = getDayOfYear(e);
771
+ return D === "Do" ? O.ordinalNumber(k, { unit: "dayOfYear" }) : addLeadingZeros(k, D.length);
772
+ },
773
+ E: function(e, D, O) {
774
+ let k = e.getDay();
775
+ switch (D) {
776
+ case "E":
777
+ case "EE":
778
+ case "EEE": return O.day(k, {
779
+ width: "abbreviated",
780
+ context: "formatting"
781
+ });
782
+ case "EEEEE": return O.day(k, {
783
+ width: "narrow",
784
+ context: "formatting"
785
+ });
786
+ case "EEEEEE": return O.day(k, {
787
+ width: "short",
788
+ context: "formatting"
789
+ });
790
+ case "EEEE":
791
+ default: return O.day(k, {
792
+ width: "wide",
793
+ context: "formatting"
794
+ });
795
+ }
796
+ },
797
+ e: function(e, D, O, k) {
798
+ let A = e.getDay(), j = (A - k.weekStartsOn + 8) % 7 || 7;
799
+ switch (D) {
800
+ case "e": return String(j);
801
+ case "ee": return addLeadingZeros(j, 2);
802
+ case "eo": return O.ordinalNumber(j, { unit: "day" });
803
+ case "eee": return O.day(A, {
804
+ width: "abbreviated",
805
+ context: "formatting"
806
+ });
807
+ case "eeeee": return O.day(A, {
808
+ width: "narrow",
809
+ context: "formatting"
810
+ });
811
+ case "eeeeee": return O.day(A, {
812
+ width: "short",
813
+ context: "formatting"
814
+ });
815
+ case "eeee":
816
+ default: return O.day(A, {
817
+ width: "wide",
818
+ context: "formatting"
819
+ });
820
+ }
821
+ },
822
+ c: function(e, D, O, k) {
823
+ let A = e.getDay(), j = (A - k.weekStartsOn + 8) % 7 || 7;
824
+ switch (D) {
825
+ case "c": return String(j);
826
+ case "cc": return addLeadingZeros(j, D.length);
827
+ case "co": return O.ordinalNumber(j, { unit: "day" });
828
+ case "ccc": return O.day(A, {
829
+ width: "abbreviated",
830
+ context: "standalone"
831
+ });
832
+ case "ccccc": return O.day(A, {
833
+ width: "narrow",
834
+ context: "standalone"
835
+ });
836
+ case "cccccc": return O.day(A, {
837
+ width: "short",
838
+ context: "standalone"
839
+ });
840
+ case "cccc":
841
+ default: return O.day(A, {
842
+ width: "wide",
843
+ context: "standalone"
844
+ });
845
+ }
846
+ },
847
+ i: function(e, D, O) {
848
+ let k = e.getDay(), A = k === 0 ? 7 : k;
849
+ switch (D) {
850
+ case "i": return String(A);
851
+ case "ii": return addLeadingZeros(A, D.length);
852
+ case "io": return O.ordinalNumber(A, { unit: "day" });
853
+ case "iii": return O.day(k, {
854
+ width: "abbreviated",
855
+ context: "formatting"
856
+ });
857
+ case "iiiii": return O.day(k, {
858
+ width: "narrow",
859
+ context: "formatting"
860
+ });
861
+ case "iiiiii": return O.day(k, {
862
+ width: "short",
863
+ context: "formatting"
864
+ });
865
+ case "iiii":
866
+ default: return O.day(k, {
867
+ width: "wide",
868
+ context: "formatting"
869
+ });
870
+ }
871
+ },
872
+ a: function(e, D, O) {
873
+ let k = e.getHours() / 12 >= 1 ? "pm" : "am";
874
+ switch (D) {
875
+ case "a":
876
+ case "aa": return O.dayPeriod(k, {
877
+ width: "abbreviated",
878
+ context: "formatting"
879
+ });
880
+ case "aaa": return O.dayPeriod(k, {
881
+ width: "abbreviated",
882
+ context: "formatting"
883
+ }).toLowerCase();
884
+ case "aaaaa": return O.dayPeriod(k, {
885
+ width: "narrow",
886
+ context: "formatting"
887
+ });
888
+ case "aaaa":
889
+ default: return O.dayPeriod(k, {
890
+ width: "wide",
891
+ context: "formatting"
892
+ });
893
+ }
894
+ },
895
+ b: function(e, D, O) {
896
+ let k = e.getHours(), A;
897
+ switch (A = k === 12 ? dayPeriodEnum.noon : k === 0 ? dayPeriodEnum.midnight : k / 12 >= 1 ? "pm" : "am", D) {
898
+ case "b":
899
+ case "bb": return O.dayPeriod(A, {
900
+ width: "abbreviated",
901
+ context: "formatting"
902
+ });
903
+ case "bbb": return O.dayPeriod(A, {
904
+ width: "abbreviated",
905
+ context: "formatting"
906
+ }).toLowerCase();
907
+ case "bbbbb": return O.dayPeriod(A, {
908
+ width: "narrow",
909
+ context: "formatting"
910
+ });
911
+ case "bbbb":
912
+ default: return O.dayPeriod(A, {
913
+ width: "wide",
914
+ context: "formatting"
915
+ });
916
+ }
917
+ },
918
+ B: function(e, D, O) {
919
+ let k = e.getHours(), A;
920
+ switch (A = k >= 17 ? dayPeriodEnum.evening : k >= 12 ? dayPeriodEnum.afternoon : k >= 4 ? dayPeriodEnum.morning : dayPeriodEnum.night, D) {
921
+ case "B":
922
+ case "BB":
923
+ case "BBB": return O.dayPeriod(A, {
924
+ width: "abbreviated",
925
+ context: "formatting"
926
+ });
927
+ case "BBBBB": return O.dayPeriod(A, {
928
+ width: "narrow",
929
+ context: "formatting"
930
+ });
931
+ case "BBBB":
932
+ default: return O.dayPeriod(A, {
933
+ width: "wide",
934
+ context: "formatting"
935
+ });
936
+ }
937
+ },
938
+ h: function(e, D, O) {
939
+ if (D === "ho") {
940
+ let D = e.getHours() % 12;
941
+ return D === 0 && (D = 12), O.ordinalNumber(D, { unit: "hour" });
942
+ }
943
+ return lightFormatters.h(e, D);
944
+ },
945
+ H: function(e, D, O) {
946
+ return D === "Ho" ? O.ordinalNumber(e.getHours(), { unit: "hour" }) : lightFormatters.H(e, D);
947
+ },
948
+ K: function(e, D, O) {
949
+ let k = e.getHours() % 12;
950
+ return D === "Ko" ? O.ordinalNumber(k, { unit: "hour" }) : addLeadingZeros(k, D.length);
951
+ },
952
+ k: function(e, D, O) {
953
+ let k = e.getHours();
954
+ return k === 0 && (k = 24), D === "ko" ? O.ordinalNumber(k, { unit: "hour" }) : addLeadingZeros(k, D.length);
955
+ },
956
+ m: function(e, D, O) {
957
+ return D === "mo" ? O.ordinalNumber(e.getMinutes(), { unit: "minute" }) : lightFormatters.m(e, D);
958
+ },
959
+ s: function(e, D, O) {
960
+ return D === "so" ? O.ordinalNumber(e.getSeconds(), { unit: "second" }) : lightFormatters.s(e, D);
961
+ },
962
+ S: function(e, D) {
963
+ return lightFormatters.S(e, D);
964
+ },
965
+ X: function(e, D, O) {
966
+ let k = e.getTimezoneOffset();
967
+ if (k === 0) return "Z";
968
+ switch (D) {
969
+ case "X": return formatTimezoneWithOptionalMinutes(k);
970
+ case "XXXX":
971
+ case "XX": return formatTimezone(k);
972
+ case "XXXXX":
973
+ case "XXX":
974
+ default: return formatTimezone(k, ":");
975
+ }
976
+ },
977
+ x: function(e, D, O) {
978
+ let k = e.getTimezoneOffset();
979
+ switch (D) {
980
+ case "x": return formatTimezoneWithOptionalMinutes(k);
981
+ case "xxxx":
982
+ case "xx": return formatTimezone(k);
983
+ case "xxxxx":
984
+ case "xxx":
985
+ default: return formatTimezone(k, ":");
986
+ }
987
+ },
988
+ O: function(e, D, O) {
989
+ let k = e.getTimezoneOffset();
990
+ switch (D) {
991
+ case "O":
992
+ case "OO":
993
+ case "OOO": return "GMT" + formatTimezoneShort(k, ":");
994
+ case "OOOO":
995
+ default: return "GMT" + formatTimezone(k, ":");
996
+ }
997
+ },
998
+ z: function(e, D, O) {
999
+ let k = e.getTimezoneOffset();
1000
+ switch (D) {
1001
+ case "z":
1002
+ case "zz":
1003
+ case "zzz": return "GMT" + formatTimezoneShort(k, ":");
1004
+ case "zzzz":
1005
+ default: return "GMT" + formatTimezone(k, ":");
1006
+ }
1007
+ },
1008
+ t: function(e, D, O) {
1009
+ return addLeadingZeros(Math.trunc(e / 1e3), D.length);
1010
+ },
1011
+ T: function(e, D, O) {
1012
+ return addLeadingZeros(+e, D.length);
1013
+ }
1014
+ };
1015
+ function formatTimezoneShort(e, D = "") {
1016
+ let O = e > 0 ? "-" : "+", k = Math.abs(e), A = Math.trunc(k / 60), j = k % 60;
1017
+ return j === 0 ? O + String(A) : O + String(A) + D + addLeadingZeros(j, 2);
1018
+ }
1019
+ function formatTimezoneWithOptionalMinutes(e, D) {
1020
+ return e % 60 == 0 ? (e > 0 ? "-" : "+") + addLeadingZeros(Math.abs(e) / 60, 2) : formatTimezone(e, D);
1021
+ }
1022
+ function formatTimezone(e, D = "") {
1023
+ let O = e > 0 ? "-" : "+", k = Math.abs(e), A = addLeadingZeros(Math.trunc(k / 60), 2), j = addLeadingZeros(k % 60, 2);
1024
+ return O + A + D + j;
1025
+ }
1026
+ var dateLongFormatter = (e, D) => {
1027
+ switch (e) {
1028
+ case "P": return D.date({ width: "short" });
1029
+ case "PP": return D.date({ width: "medium" });
1030
+ case "PPP": return D.date({ width: "long" });
1031
+ case "PPPP":
1032
+ default: return D.date({ width: "full" });
1033
+ }
1034
+ }, timeLongFormatter = (e, D) => {
1035
+ switch (e) {
1036
+ case "p": return D.time({ width: "short" });
1037
+ case "pp": return D.time({ width: "medium" });
1038
+ case "ppp": return D.time({ width: "long" });
1039
+ case "pppp":
1040
+ default: return D.time({ width: "full" });
1041
+ }
1042
+ };
1043
+ const longFormatters = {
1044
+ p: timeLongFormatter,
1045
+ P: (e, D) => {
1046
+ let O = e.match(/(P+)(p+)?/) || [], k = O[1], A = O[2];
1047
+ if (!A) return dateLongFormatter(e, D);
1048
+ let j;
1049
+ switch (k) {
1050
+ case "P":
1051
+ j = D.dateTime({ width: "short" });
1052
+ break;
1053
+ case "PP":
1054
+ j = D.dateTime({ width: "medium" });
1055
+ break;
1056
+ case "PPP":
1057
+ j = D.dateTime({ width: "long" });
1058
+ break;
1059
+ case "PPPP":
1060
+ default:
1061
+ j = D.dateTime({ width: "full" });
1062
+ break;
1063
+ }
1064
+ return j.replace("{{date}}", dateLongFormatter(k, D)).replace("{{time}}", timeLongFormatter(A, D));
1065
+ }
1066
+ };
1067
+ var dayOfYearTokenRE = /^D+$/, weekYearTokenRE = /^Y+$/, throwTokens = [
1068
+ "D",
1069
+ "DD",
1070
+ "YY",
1071
+ "YYYY"
1072
+ ];
1073
+ function isProtectedDayOfYearToken(e) {
1074
+ return dayOfYearTokenRE.test(e);
1075
+ }
1076
+ function isProtectedWeekYearToken(e) {
1077
+ return weekYearTokenRE.test(e);
1078
+ }
1079
+ function warnOrThrowProtectedError(e, D, O) {
1080
+ let k = message(e, D, O);
1081
+ if (console.warn(k), throwTokens.includes(e)) throw RangeError(k);
1082
+ }
1083
+ function message(e, D, O) {
1084
+ let k = e[0] === "Y" ? "years" : "days of the month";
1085
+ return `Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${D}\`) for formatting ${k} to the input \`${O}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;
1086
+ }
1087
+ var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g, longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g, escapedStringRegExp = /^'([^]*?)'?$/, doubleQuoteRegExp = /''/g, unescapedLatinCharacterRegExp = /[a-zA-Z]/;
1088
+ function format(e, D, O) {
1089
+ let k = getDefaultOptions(), A = O?.locale ?? k.locale ?? enUS, j = O?.firstWeekContainsDate ?? O?.locale?.options?.firstWeekContainsDate ?? k.firstWeekContainsDate ?? k.locale?.options?.firstWeekContainsDate ?? 1, M = O?.weekStartsOn ?? O?.locale?.options?.weekStartsOn ?? k.weekStartsOn ?? k.locale?.options?.weekStartsOn ?? 0, N = toDate(e, O?.in);
1090
+ if (!isValid(N)) throw RangeError("Invalid time value");
1091
+ let P = D.match(longFormattingTokensRegExp).map((e) => {
1092
+ let D = e[0];
1093
+ if (D === "p" || D === "P") {
1094
+ let O = longFormatters[D];
1095
+ return O(e, A.formatLong);
1096
+ }
1097
+ return e;
1098
+ }).join("").match(formattingTokensRegExp).map((e) => {
1099
+ if (e === "''") return {
1100
+ isToken: !1,
1101
+ value: "'"
1102
+ };
1103
+ let D = e[0];
1104
+ if (D === "'") return {
1105
+ isToken: !1,
1106
+ value: cleanEscapedString(e)
1107
+ };
1108
+ if (formatters[D]) return {
1109
+ isToken: !0,
1110
+ value: e
1111
+ };
1112
+ if (D.match(unescapedLatinCharacterRegExp)) throw RangeError("Format string contains an unescaped latin alphabet character `" + D + "`");
1113
+ return {
1114
+ isToken: !1,
1115
+ value: e
1116
+ };
1117
+ });
1118
+ A.localize.preprocessor && (P = A.localize.preprocessor(N, P));
1119
+ let F = {
1120
+ firstWeekContainsDate: j,
1121
+ weekStartsOn: M,
1122
+ locale: A
1123
+ };
1124
+ return P.map((k) => {
1125
+ if (!k.isToken) return k.value;
1126
+ let j = k.value;
1127
+ (!O?.useAdditionalWeekYearTokens && isProtectedWeekYearToken(j) || !O?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(j)) && warnOrThrowProtectedError(j, D, String(e));
1128
+ let M = formatters[j[0]];
1129
+ return M(N, j, A.localize, F);
1130
+ }).join("");
1131
+ }
1132
+ function cleanEscapedString(e) {
1133
+ let D = e.match(escapedStringRegExp);
1134
+ return D ? D[1].replace(doubleQuoteRegExp, "'") : e;
1135
+ }
1136
+ function parseISO(e, D) {
1137
+ let O = () => constructFrom(D?.in, NaN), k = D?.additionalDigits ?? 2, A = splitDateString(e), j;
1138
+ if (A.date) {
1139
+ let e = parseYear(A.date, k);
1140
+ j = parseDate$1(e.restDateString, e.year);
1141
+ }
1142
+ if (!j || isNaN(+j)) return O();
1143
+ let M = +j, N = 0, P;
1144
+ if (A.time && (N = parseTime(A.time), isNaN(N))) return O();
1145
+ if (A.timezone) {
1146
+ if (P = parseTimezone(A.timezone), isNaN(P)) return O();
1147
+ } else {
1148
+ let e = new Date(M + N), O = toDate(0, D?.in);
1149
+ return O.setFullYear(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()), O.setHours(e.getUTCHours(), e.getUTCMinutes(), e.getUTCSeconds(), e.getUTCMilliseconds()), O;
1150
+ }
1151
+ return toDate(M + N + P, D?.in);
1152
+ }
1153
+ var patterns = {
1154
+ dateTimeDelimiter: /[T ]/,
1155
+ timeZoneDelimiter: /[Z ]/i,
1156
+ timezone: /([Z+-].*)$/
1157
+ }, dateRegex = /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/, timeRegex = /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/, timezoneRegex = /^([+-])(\d{2})(?::?(\d{2}))?$/;
1158
+ function splitDateString(e) {
1159
+ let D = {}, O = e.split(patterns.dateTimeDelimiter), k;
1160
+ if (O.length > 2) return D;
1161
+ if (/:/.test(O[0]) ? k = O[0] : (D.date = O[0], k = O[1], patterns.timeZoneDelimiter.test(D.date) && (D.date = e.split(patterns.timeZoneDelimiter)[0], k = e.substr(D.date.length, e.length))), k) {
1162
+ let e = patterns.timezone.exec(k);
1163
+ e ? (D.time = k.replace(e[1], ""), D.timezone = e[1]) : D.time = k;
1164
+ }
1165
+ return D;
1166
+ }
1167
+ function parseYear(e, D) {
1168
+ let O = /* @__PURE__ */ RegExp("^(?:(\\d{4}|[+-]\\d{" + (4 + D) + "})|(\\d{2}|[+-]\\d{" + (2 + D) + "})$)"), k = e.match(O);
1169
+ if (!k) return {
1170
+ year: NaN,
1171
+ restDateString: ""
1172
+ };
1173
+ let A = k[1] ? parseInt(k[1]) : null, j = k[2] ? parseInt(k[2]) : null;
1174
+ return {
1175
+ year: j === null ? A : j * 100,
1176
+ restDateString: e.slice((k[1] || k[2]).length)
1177
+ };
1178
+ }
1179
+ function parseDate$1(e, D) {
1180
+ if (D === null) return /* @__PURE__ */ new Date(NaN);
1181
+ let O = e.match(dateRegex);
1182
+ if (!O) return /* @__PURE__ */ new Date(NaN);
1183
+ let k = !!O[4], A = parseDateUnit(O[1]), j = parseDateUnit(O[2]) - 1, M = parseDateUnit(O[3]), N = parseDateUnit(O[4]), P = parseDateUnit(O[5]) - 1;
1184
+ if (k) return validateWeekDate(D, N, P) ? dayOfISOWeekYear(D, N, P) : /* @__PURE__ */ new Date(NaN);
1185
+ {
1186
+ let e = /* @__PURE__ */ new Date(0);
1187
+ return !validateDate(D, j, M) || !validateDayOfYearDate(D, A) ? /* @__PURE__ */ new Date(NaN) : (e.setUTCFullYear(D, j, Math.max(A, M)), e);
1188
+ }
1189
+ }
1190
+ function parseDateUnit(e) {
1191
+ return e ? parseInt(e) : 1;
1192
+ }
1193
+ function parseTime(e) {
1194
+ let D = e.match(timeRegex);
1195
+ if (!D) return NaN;
1196
+ let O = parseTimeUnit(D[1]), k = parseTimeUnit(D[2]), A = parseTimeUnit(D[3]);
1197
+ return validateTime(O, k, A) ? O * millisecondsInHour + k * millisecondsInMinute + A * 1e3 : NaN;
1198
+ }
1199
+ function parseTimeUnit(e) {
1200
+ return e && parseFloat(e.replace(",", ".")) || 0;
1201
+ }
1202
+ function parseTimezone(e) {
1203
+ if (e === "Z") return 0;
1204
+ let D = e.match(timezoneRegex);
1205
+ if (!D) return 0;
1206
+ let O = D[1] === "+" ? -1 : 1, k = parseInt(D[2]), A = D[3] && parseInt(D[3]) || 0;
1207
+ return validateTimezone(k, A) ? O * (k * millisecondsInHour + A * millisecondsInMinute) : NaN;
1208
+ }
1209
+ function dayOfISOWeekYear(e, D, O) {
1210
+ let k = /* @__PURE__ */ new Date(0);
1211
+ k.setUTCFullYear(e, 0, 4);
1212
+ let A = k.getUTCDay() || 7, j = (D - 1) * 7 + O + 1 - A;
1213
+ return k.setUTCDate(k.getUTCDate() + j), k;
1214
+ }
1215
+ var daysInMonths = [
1216
+ 31,
1217
+ null,
1218
+ 31,
1219
+ 30,
1220
+ 31,
1221
+ 30,
1222
+ 31,
1223
+ 31,
1224
+ 30,
1225
+ 31,
1226
+ 30,
1227
+ 31
1228
+ ];
1229
+ function isLeapYearIndex(e) {
1230
+ return e % 400 == 0 || e % 4 == 0 && e % 100 != 0;
1231
+ }
1232
+ function validateDate(e, D, O) {
1233
+ return D >= 0 && D <= 11 && O >= 1 && O <= (daysInMonths[D] || (isLeapYearIndex(e) ? 29 : 28));
1234
+ }
1235
+ function validateDayOfYearDate(e, D) {
1236
+ return D >= 1 && D <= (isLeapYearIndex(e) ? 366 : 365);
1237
+ }
1238
+ function validateWeekDate(e, D, O) {
1239
+ return D >= 1 && D <= 53 && O >= 0 && O <= 6;
1240
+ }
1241
+ function validateTime(e, D, O) {
1242
+ return e === 24 ? D === 0 && O === 0 : O >= 0 && O < 60 && D >= 0 && D < 60 && e >= 0 && e < 25;
1243
+ }
1244
+ function validateTimezone(e, D) {
1245
+ return D >= 0 && D <= 59;
1246
+ }
1247
+ var formatDistanceLocale = {
1248
+ lessThanXSeconds: {
1249
+ standalone: {
1250
+ one: "weniger als 1 Sekunde",
1251
+ other: "weniger als {{count}} Sekunden"
1252
+ },
1253
+ withPreposition: {
1254
+ one: "weniger als 1 Sekunde",
1255
+ other: "weniger als {{count}} Sekunden"
1256
+ }
1257
+ },
1258
+ xSeconds: {
1259
+ standalone: {
1260
+ one: "1 Sekunde",
1261
+ other: "{{count}} Sekunden"
1262
+ },
1263
+ withPreposition: {
1264
+ one: "1 Sekunde",
1265
+ other: "{{count}} Sekunden"
1266
+ }
1267
+ },
1268
+ halfAMinute: {
1269
+ standalone: "eine halbe Minute",
1270
+ withPreposition: "einer halben Minute"
1271
+ },
1272
+ lessThanXMinutes: {
1273
+ standalone: {
1274
+ one: "weniger als 1 Minute",
1275
+ other: "weniger als {{count}} Minuten"
1276
+ },
1277
+ withPreposition: {
1278
+ one: "weniger als 1 Minute",
1279
+ other: "weniger als {{count}} Minuten"
1280
+ }
1281
+ },
1282
+ xMinutes: {
1283
+ standalone: {
1284
+ one: "1 Minute",
1285
+ other: "{{count}} Minuten"
1286
+ },
1287
+ withPreposition: {
1288
+ one: "1 Minute",
1289
+ other: "{{count}} Minuten"
1290
+ }
1291
+ },
1292
+ aboutXHours: {
1293
+ standalone: {
1294
+ one: "etwa 1 Stunde",
1295
+ other: "etwa {{count}} Stunden"
1296
+ },
1297
+ withPreposition: {
1298
+ one: "etwa 1 Stunde",
1299
+ other: "etwa {{count}} Stunden"
1300
+ }
1301
+ },
1302
+ xHours: {
1303
+ standalone: {
1304
+ one: "1 Stunde",
1305
+ other: "{{count}} Stunden"
1306
+ },
1307
+ withPreposition: {
1308
+ one: "1 Stunde",
1309
+ other: "{{count}} Stunden"
1310
+ }
1311
+ },
1312
+ xDays: {
1313
+ standalone: {
1314
+ one: "1 Tag",
1315
+ other: "{{count}} Tage"
1316
+ },
1317
+ withPreposition: {
1318
+ one: "1 Tag",
1319
+ other: "{{count}} Tagen"
1320
+ }
1321
+ },
1322
+ aboutXWeeks: {
1323
+ standalone: {
1324
+ one: "etwa 1 Woche",
1325
+ other: "etwa {{count}} Wochen"
1326
+ },
1327
+ withPreposition: {
1328
+ one: "etwa 1 Woche",
1329
+ other: "etwa {{count}} Wochen"
1330
+ }
1331
+ },
1332
+ xWeeks: {
1333
+ standalone: {
1334
+ one: "1 Woche",
1335
+ other: "{{count}} Wochen"
1336
+ },
1337
+ withPreposition: {
1338
+ one: "1 Woche",
1339
+ other: "{{count}} Wochen"
1340
+ }
1341
+ },
1342
+ aboutXMonths: {
1343
+ standalone: {
1344
+ one: "etwa 1 Monat",
1345
+ other: "etwa {{count}} Monate"
1346
+ },
1347
+ withPreposition: {
1348
+ one: "etwa 1 Monat",
1349
+ other: "etwa {{count}} Monaten"
1350
+ }
1351
+ },
1352
+ xMonths: {
1353
+ standalone: {
1354
+ one: "1 Monat",
1355
+ other: "{{count}} Monate"
1356
+ },
1357
+ withPreposition: {
1358
+ one: "1 Monat",
1359
+ other: "{{count}} Monaten"
1360
+ }
1361
+ },
1362
+ aboutXYears: {
1363
+ standalone: {
1364
+ one: "etwa 1 Jahr",
1365
+ other: "etwa {{count}} Jahre"
1366
+ },
1367
+ withPreposition: {
1368
+ one: "etwa 1 Jahr",
1369
+ other: "etwa {{count}} Jahren"
1370
+ }
1371
+ },
1372
+ xYears: {
1373
+ standalone: {
1374
+ one: "1 Jahr",
1375
+ other: "{{count}} Jahre"
1376
+ },
1377
+ withPreposition: {
1378
+ one: "1 Jahr",
1379
+ other: "{{count}} Jahren"
1380
+ }
1381
+ },
1382
+ overXYears: {
1383
+ standalone: {
1384
+ one: "mehr als 1 Jahr",
1385
+ other: "mehr als {{count}} Jahre"
1386
+ },
1387
+ withPreposition: {
1388
+ one: "mehr als 1 Jahr",
1389
+ other: "mehr als {{count}} Jahren"
1390
+ }
1391
+ },
1392
+ almostXYears: {
1393
+ standalone: {
1394
+ one: "fast 1 Jahr",
1395
+ other: "fast {{count}} Jahre"
1396
+ },
1397
+ withPreposition: {
1398
+ one: "fast 1 Jahr",
1399
+ other: "fast {{count}} Jahren"
1400
+ }
1401
+ }
1402
+ };
1403
+ const formatDistance$1 = (e, D, O) => {
1404
+ let k, A = O?.addSuffix ? formatDistanceLocale[e].withPreposition : formatDistanceLocale[e].standalone;
1405
+ return k = typeof A == "string" ? A : D === 1 ? A.one : A.other.replace("{{count}}", String(D)), O?.addSuffix ? O.comparison && O.comparison > 0 ? "in " + k : "vor " + k : k;
1406
+ }, formatLong$1 = {
1407
+ date: buildFormatLongFn({
1408
+ formats: {
1409
+ full: "EEEE, do MMMM y",
1410
+ long: "do MMMM y",
1411
+ medium: "do MMM y",
1412
+ short: "dd.MM.y"
1413
+ },
1414
+ defaultWidth: "full"
1415
+ }),
1416
+ time: buildFormatLongFn({
1417
+ formats: {
1418
+ full: "HH:mm:ss zzzz",
1419
+ long: "HH:mm:ss z",
1420
+ medium: "HH:mm:ss",
1421
+ short: "HH:mm"
1422
+ },
1423
+ defaultWidth: "full"
1424
+ }),
1425
+ dateTime: buildFormatLongFn({
1426
+ formats: {
1427
+ full: "{{date}} 'um' {{time}}",
1428
+ long: "{{date}} 'um' {{time}}",
1429
+ medium: "{{date}} {{time}}",
1430
+ short: "{{date}} {{time}}"
1431
+ },
1432
+ defaultWidth: "full"
1433
+ })
1434
+ };
1435
+ var formatRelativeLocale$1 = {
1436
+ lastWeek: "'letzten' eeee 'um' p",
1437
+ yesterday: "'gestern um' p",
1438
+ today: "'heute um' p",
1439
+ tomorrow: "'morgen um' p",
1440
+ nextWeek: "eeee 'um' p",
1441
+ other: "P"
1442
+ };
1443
+ const formatRelative$1 = (e, D, O, k) => formatRelativeLocale$1[e];
1444
+ var eraValues$1 = {
1445
+ narrow: ["v.Chr.", "n.Chr."],
1446
+ abbreviated: ["v.Chr.", "n.Chr."],
1447
+ wide: ["vor Christus", "nach Christus"]
1448
+ }, quarterValues$1 = {
1449
+ narrow: [
1450
+ "1",
1451
+ "2",
1452
+ "3",
1453
+ "4"
1454
+ ],
1455
+ abbreviated: [
1456
+ "Q1",
1457
+ "Q2",
1458
+ "Q3",
1459
+ "Q4"
1460
+ ],
1461
+ wide: [
1462
+ "1. Quartal",
1463
+ "2. Quartal",
1464
+ "3. Quartal",
1465
+ "4. Quartal"
1466
+ ]
1467
+ }, monthValues$1 = {
1468
+ narrow: [
1469
+ "J",
1470
+ "F",
1471
+ "M",
1472
+ "A",
1473
+ "M",
1474
+ "J",
1475
+ "J",
1476
+ "A",
1477
+ "S",
1478
+ "O",
1479
+ "N",
1480
+ "D"
1481
+ ],
1482
+ abbreviated: [
1483
+ "Jan",
1484
+ "Feb",
1485
+ "Mär",
1486
+ "Apr",
1487
+ "Mai",
1488
+ "Jun",
1489
+ "Jul",
1490
+ "Aug",
1491
+ "Sep",
1492
+ "Okt",
1493
+ "Nov",
1494
+ "Dez"
1495
+ ],
1496
+ wide: [
1497
+ "Januar",
1498
+ "Februar",
1499
+ "März",
1500
+ "April",
1501
+ "Mai",
1502
+ "Juni",
1503
+ "Juli",
1504
+ "August",
1505
+ "September",
1506
+ "Oktober",
1507
+ "November",
1508
+ "Dezember"
1509
+ ]
1510
+ }, formattingMonthValues = {
1511
+ narrow: monthValues$1.narrow,
1512
+ abbreviated: [
1513
+ "Jan.",
1514
+ "Feb.",
1515
+ "März",
1516
+ "Apr.",
1517
+ "Mai",
1518
+ "Juni",
1519
+ "Juli",
1520
+ "Aug.",
1521
+ "Sep.",
1522
+ "Okt.",
1523
+ "Nov.",
1524
+ "Dez."
1525
+ ],
1526
+ wide: monthValues$1.wide
1527
+ };
1528
+ const de = {
1529
+ code: "de",
1530
+ formatDistance: formatDistance$1,
1531
+ formatLong: formatLong$1,
1532
+ formatRelative: formatRelative$1,
1533
+ localize: {
1534
+ ordinalNumber: (e) => Number(e) + ".",
1535
+ era: buildLocalizeFn({
1536
+ values: eraValues$1,
1537
+ defaultWidth: "wide"
1538
+ }),
1539
+ quarter: buildLocalizeFn({
1540
+ values: quarterValues$1,
1541
+ defaultWidth: "wide",
1542
+ argumentCallback: (e) => e - 1
1543
+ }),
1544
+ month: buildLocalizeFn({
1545
+ values: monthValues$1,
1546
+ formattingValues: formattingMonthValues,
1547
+ defaultWidth: "wide"
1548
+ }),
1549
+ day: buildLocalizeFn({
1550
+ values: {
1551
+ narrow: [
1552
+ "S",
1553
+ "M",
1554
+ "D",
1555
+ "M",
1556
+ "D",
1557
+ "F",
1558
+ "S"
1559
+ ],
1560
+ short: [
1561
+ "So",
1562
+ "Mo",
1563
+ "Di",
1564
+ "Mi",
1565
+ "Do",
1566
+ "Fr",
1567
+ "Sa"
1568
+ ],
1569
+ abbreviated: [
1570
+ "So.",
1571
+ "Mo.",
1572
+ "Di.",
1573
+ "Mi.",
1574
+ "Do.",
1575
+ "Fr.",
1576
+ "Sa."
1577
+ ],
1578
+ wide: [
1579
+ "Sonntag",
1580
+ "Montag",
1581
+ "Dienstag",
1582
+ "Mittwoch",
1583
+ "Donnerstag",
1584
+ "Freitag",
1585
+ "Samstag"
1586
+ ]
1587
+ },
1588
+ defaultWidth: "wide"
1589
+ }),
1590
+ dayPeriod: buildLocalizeFn({
1591
+ values: {
1592
+ narrow: {
1593
+ am: "vm.",
1594
+ pm: "nm.",
1595
+ midnight: "Mitternacht",
1596
+ noon: "Mittag",
1597
+ morning: "Morgen",
1598
+ afternoon: "Nachm.",
1599
+ evening: "Abend",
1600
+ night: "Nacht"
1601
+ },
1602
+ abbreviated: {
1603
+ am: "vorm.",
1604
+ pm: "nachm.",
1605
+ midnight: "Mitternacht",
1606
+ noon: "Mittag",
1607
+ morning: "Morgen",
1608
+ afternoon: "Nachmittag",
1609
+ evening: "Abend",
1610
+ night: "Nacht"
1611
+ },
1612
+ wide: {
1613
+ am: "vormittags",
1614
+ pm: "nachmittags",
1615
+ midnight: "Mitternacht",
1616
+ noon: "Mittag",
1617
+ morning: "Morgen",
1618
+ afternoon: "Nachmittag",
1619
+ evening: "Abend",
1620
+ night: "Nacht"
1621
+ }
1622
+ },
1623
+ defaultWidth: "wide",
1624
+ formattingValues: {
1625
+ narrow: {
1626
+ am: "vm.",
1627
+ pm: "nm.",
1628
+ midnight: "Mitternacht",
1629
+ noon: "Mittag",
1630
+ morning: "morgens",
1631
+ afternoon: "nachm.",
1632
+ evening: "abends",
1633
+ night: "nachts"
1634
+ },
1635
+ abbreviated: {
1636
+ am: "vorm.",
1637
+ pm: "nachm.",
1638
+ midnight: "Mitternacht",
1639
+ noon: "Mittag",
1640
+ morning: "morgens",
1641
+ afternoon: "nachmittags",
1642
+ evening: "abends",
1643
+ night: "nachts"
1644
+ },
1645
+ wide: {
1646
+ am: "vormittags",
1647
+ pm: "nachmittags",
1648
+ midnight: "Mitternacht",
1649
+ noon: "Mittag",
1650
+ morning: "morgens",
1651
+ afternoon: "nachmittags",
1652
+ evening: "abends",
1653
+ night: "nachts"
1654
+ }
1655
+ },
1656
+ defaultFormattingWidth: "wide"
1657
+ })
1658
+ },
1659
+ match: {
1660
+ ordinalNumber: buildMatchPatternFn({
1661
+ matchPattern: /^(\d+)(\.)?/i,
1662
+ parsePattern: /\d+/i,
1663
+ valueCallback: (e) => parseInt(e)
1664
+ }),
1665
+ era: buildMatchFn({
1666
+ matchPatterns: {
1667
+ narrow: /^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,
1668
+ abbreviated: /^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,
1669
+ wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i
1670
+ },
1671
+ defaultMatchWidth: "wide",
1672
+ parsePatterns: { any: [/^v/i, /^n/i] },
1673
+ defaultParseWidth: "any"
1674
+ }),
1675
+ quarter: buildMatchFn({
1676
+ matchPatterns: {
1677
+ narrow: /^[1234]/i,
1678
+ abbreviated: /^q[1234]/i,
1679
+ wide: /^[1234](\.)? Quartal/i
1680
+ },
1681
+ defaultMatchWidth: "wide",
1682
+ parsePatterns: { any: [
1683
+ /1/i,
1684
+ /2/i,
1685
+ /3/i,
1686
+ /4/i
1687
+ ] },
1688
+ defaultParseWidth: "any",
1689
+ valueCallback: (e) => e + 1
1690
+ }),
1691
+ month: buildMatchFn({
1692
+ matchPatterns: {
1693
+ narrow: /^[jfmasond]/i,
1694
+ abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\.?/i,
1695
+ wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i
1696
+ },
1697
+ defaultMatchWidth: "wide",
1698
+ parsePatterns: {
1699
+ narrow: [
1700
+ /^j/i,
1701
+ /^f/i,
1702
+ /^m/i,
1703
+ /^a/i,
1704
+ /^m/i,
1705
+ /^j/i,
1706
+ /^j/i,
1707
+ /^a/i,
1708
+ /^s/i,
1709
+ /^o/i,
1710
+ /^n/i,
1711
+ /^d/i
1712
+ ],
1713
+ any: [
1714
+ /^j[aä]/i,
1715
+ /^f/i,
1716
+ /^mär/i,
1717
+ /^ap/i,
1718
+ /^mai/i,
1719
+ /^jun/i,
1720
+ /^jul/i,
1721
+ /^au/i,
1722
+ /^s/i,
1723
+ /^o/i,
1724
+ /^n/i,
1725
+ /^d/i
1726
+ ]
1727
+ },
1728
+ defaultParseWidth: "any"
1729
+ }),
1730
+ day: buildMatchFn({
1731
+ matchPatterns: {
1732
+ narrow: /^[smdmf]/i,
1733
+ short: /^(so|mo|di|mi|do|fr|sa)/i,
1734
+ abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\.?/i,
1735
+ wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i
1736
+ },
1737
+ defaultMatchWidth: "wide",
1738
+ parsePatterns: { any: [
1739
+ /^so/i,
1740
+ /^mo/i,
1741
+ /^di/i,
1742
+ /^mi/i,
1743
+ /^do/i,
1744
+ /^f/i,
1745
+ /^sa/i
1746
+ ] },
1747
+ defaultParseWidth: "any"
1748
+ }),
1749
+ dayPeriod: buildMatchFn({
1750
+ matchPatterns: {
1751
+ narrow: /^(vm\.?|nm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,
1752
+ abbreviated: /^(vorm\.?|nachm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,
1753
+ wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i
1754
+ },
1755
+ defaultMatchWidth: "wide",
1756
+ parsePatterns: { any: {
1757
+ am: /^v/i,
1758
+ pm: /^n/i,
1759
+ midnight: /^Mitte/i,
1760
+ noon: /^Mitta/i,
1761
+ morning: /morgens/i,
1762
+ afternoon: /nachmittags/i,
1763
+ evening: /abends/i,
1764
+ night: /nachts/i
1765
+ } },
1766
+ defaultParseWidth: "any"
1767
+ })
1768
+ },
1769
+ options: {
1770
+ weekStartsOn: 1,
1771
+ firstWeekContainsDate: 4
1772
+ }
1773
+ };
1774
+ var translations = {
1775
+ about: "körülbelül",
1776
+ over: "több mint",
1777
+ almost: "majdnem",
1778
+ lessthan: "kevesebb mint"
1779
+ }, withoutSuffixes = {
1780
+ xseconds: " másodperc",
1781
+ halfaminute: "fél perc",
1782
+ xminutes: " perc",
1783
+ xhours: " óra",
1784
+ xdays: " nap",
1785
+ xweeks: " hét",
1786
+ xmonths: " hónap",
1787
+ xyears: " év"
1788
+ }, withSuffixes = {
1789
+ xseconds: {
1790
+ "-1": " másodperccel ezelőtt",
1791
+ 1: " másodperc múlva",
1792
+ 0: " másodperce"
1793
+ },
1794
+ halfaminute: {
1795
+ "-1": "fél perccel ezelőtt",
1796
+ 1: "fél perc múlva",
1797
+ 0: "fél perce"
1798
+ },
1799
+ xminutes: {
1800
+ "-1": " perccel ezelőtt",
1801
+ 1: " perc múlva",
1802
+ 0: " perce"
1803
+ },
1804
+ xhours: {
1805
+ "-1": " órával ezelőtt",
1806
+ 1: " óra múlva",
1807
+ 0: " órája"
1808
+ },
1809
+ xdays: {
1810
+ "-1": " nappal ezelőtt",
1811
+ 1: " nap múlva",
1812
+ 0: " napja"
1813
+ },
1814
+ xweeks: {
1815
+ "-1": " héttel ezelőtt",
1816
+ 1: " hét múlva",
1817
+ 0: " hete"
1818
+ },
1819
+ xmonths: {
1820
+ "-1": " hónappal ezelőtt",
1821
+ 1: " hónap múlva",
1822
+ 0: " hónapja"
1823
+ },
1824
+ xyears: {
1825
+ "-1": " évvel ezelőtt",
1826
+ 1: " év múlva",
1827
+ 0: " éve"
1828
+ }
1829
+ };
1830
+ const formatDistance = (e, D, O) => {
1831
+ let k = e.match(/about|over|almost|lessthan/i), A = k ? e.replace(k[0], "") : e, j = O?.addSuffix === !0, M = A.toLowerCase(), N = O?.comparison || 0, P = j ? withSuffixes[M][N] : withoutSuffixes[M], F = M === "halfaminute" ? P : D + P;
1832
+ return k && (F = translations[k[0].toLowerCase()] + " " + F), F;
1833
+ }, formatLong = {
1834
+ date: buildFormatLongFn({
1835
+ formats: {
1836
+ full: "y. MMMM d., EEEE",
1837
+ long: "y. MMMM d.",
1838
+ medium: "y. MMM d.",
1839
+ short: "y. MM. dd."
1840
+ },
1841
+ defaultWidth: "full"
1842
+ }),
1843
+ time: buildFormatLongFn({
1844
+ formats: {
1845
+ full: "H:mm:ss zzzz",
1846
+ long: "H:mm:ss z",
1847
+ medium: "H:mm:ss",
1848
+ short: "H:mm"
1849
+ },
1850
+ defaultWidth: "full"
1851
+ }),
1852
+ dateTime: buildFormatLongFn({
1853
+ formats: {
1854
+ full: "{{date}} {{time}}",
1855
+ long: "{{date}} {{time}}",
1856
+ medium: "{{date}} {{time}}",
1857
+ short: "{{date}} {{time}}"
1858
+ },
1859
+ defaultWidth: "full"
1860
+ })
1861
+ };
1862
+ var accusativeWeekdays = [
1863
+ "vasárnap",
1864
+ "hétfőn",
1865
+ "kedden",
1866
+ "szerdán",
1867
+ "csütörtökön",
1868
+ "pénteken",
1869
+ "szombaton"
1870
+ ];
1871
+ function week(e) {
1872
+ return (D) => {
1873
+ let O = accusativeWeekdays[D.getDay()];
1874
+ return `${e ? "" : "'múlt' "}'${O}' p'-kor'`;
1875
+ };
1876
+ }
1877
+ var formatRelativeLocale = {
1878
+ lastWeek: week(!1),
1879
+ yesterday: "'tegnap' p'-kor'",
1880
+ today: "'ma' p'-kor'",
1881
+ tomorrow: "'holnap' p'-kor'",
1882
+ nextWeek: week(!0),
1883
+ other: "P"
1884
+ };
1885
+ const hu = {
1886
+ code: "hu",
1887
+ formatDistance,
1888
+ formatLong,
1889
+ formatRelative: (e, D) => {
1890
+ let O = formatRelativeLocale[e];
1891
+ return typeof O == "function" ? O(D) : O;
1892
+ },
1893
+ localize: {
1894
+ ordinalNumber: (e, D) => Number(e) + ".",
1895
+ era: buildLocalizeFn({
1896
+ values: {
1897
+ narrow: ["ie.", "isz."],
1898
+ abbreviated: ["i. e.", "i. sz."],
1899
+ wide: ["Krisztus előtt", "időszámításunk szerint"]
1900
+ },
1901
+ defaultWidth: "wide"
1902
+ }),
1903
+ quarter: buildLocalizeFn({
1904
+ values: {
1905
+ narrow: [
1906
+ "1.",
1907
+ "2.",
1908
+ "3.",
1909
+ "4."
1910
+ ],
1911
+ abbreviated: [
1912
+ "1. n.év",
1913
+ "2. n.év",
1914
+ "3. n.év",
1915
+ "4. n.év"
1916
+ ],
1917
+ wide: [
1918
+ "1. negyedév",
1919
+ "2. negyedév",
1920
+ "3. negyedév",
1921
+ "4. negyedév"
1922
+ ]
1923
+ },
1924
+ defaultWidth: "wide",
1925
+ argumentCallback: (e) => e - 1,
1926
+ formattingValues: {
1927
+ narrow: [
1928
+ "I.",
1929
+ "II.",
1930
+ "III.",
1931
+ "IV."
1932
+ ],
1933
+ abbreviated: [
1934
+ "I. n.év",
1935
+ "II. n.év",
1936
+ "III. n.év",
1937
+ "IV. n.év"
1938
+ ],
1939
+ wide: [
1940
+ "I. negyedév",
1941
+ "II. negyedév",
1942
+ "III. negyedév",
1943
+ "IV. negyedév"
1944
+ ]
1945
+ },
1946
+ defaultFormattingWidth: "wide"
1947
+ }),
1948
+ month: buildLocalizeFn({
1949
+ values: {
1950
+ narrow: [
1951
+ "J",
1952
+ "F",
1953
+ "M",
1954
+ "Á",
1955
+ "M",
1956
+ "J",
1957
+ "J",
1958
+ "A",
1959
+ "Sz",
1960
+ "O",
1961
+ "N",
1962
+ "D"
1963
+ ],
1964
+ abbreviated: [
1965
+ "jan.",
1966
+ "febr.",
1967
+ "márc.",
1968
+ "ápr.",
1969
+ "máj.",
1970
+ "jún.",
1971
+ "júl.",
1972
+ "aug.",
1973
+ "szept.",
1974
+ "okt.",
1975
+ "nov.",
1976
+ "dec."
1977
+ ],
1978
+ wide: [
1979
+ "január",
1980
+ "február",
1981
+ "március",
1982
+ "április",
1983
+ "május",
1984
+ "június",
1985
+ "július",
1986
+ "augusztus",
1987
+ "szeptember",
1988
+ "október",
1989
+ "november",
1990
+ "december"
1991
+ ]
1992
+ },
1993
+ defaultWidth: "wide"
1994
+ }),
1995
+ day: buildLocalizeFn({
1996
+ values: {
1997
+ narrow: [
1998
+ "V",
1999
+ "H",
2000
+ "K",
2001
+ "Sz",
2002
+ "Cs",
2003
+ "P",
2004
+ "Sz"
2005
+ ],
2006
+ short: [
2007
+ "V",
2008
+ "H",
2009
+ "K",
2010
+ "Sze",
2011
+ "Cs",
2012
+ "P",
2013
+ "Szo"
2014
+ ],
2015
+ abbreviated: [
2016
+ "V",
2017
+ "H",
2018
+ "K",
2019
+ "Sze",
2020
+ "Cs",
2021
+ "P",
2022
+ "Szo"
2023
+ ],
2024
+ wide: [
2025
+ "vasárnap",
2026
+ "hétfő",
2027
+ "kedd",
2028
+ "szerda",
2029
+ "csütörtök",
2030
+ "péntek",
2031
+ "szombat"
2032
+ ]
2033
+ },
2034
+ defaultWidth: "wide"
2035
+ }),
2036
+ dayPeriod: buildLocalizeFn({
2037
+ values: {
2038
+ narrow: {
2039
+ am: "de.",
2040
+ pm: "du.",
2041
+ midnight: "éjfél",
2042
+ noon: "dél",
2043
+ morning: "reggel",
2044
+ afternoon: "du.",
2045
+ evening: "este",
2046
+ night: "éjjel"
2047
+ },
2048
+ abbreviated: {
2049
+ am: "de.",
2050
+ pm: "du.",
2051
+ midnight: "éjfél",
2052
+ noon: "dél",
2053
+ morning: "reggel",
2054
+ afternoon: "du.",
2055
+ evening: "este",
2056
+ night: "éjjel"
2057
+ },
2058
+ wide: {
2059
+ am: "de.",
2060
+ pm: "du.",
2061
+ midnight: "éjfél",
2062
+ noon: "dél",
2063
+ morning: "reggel",
2064
+ afternoon: "délután",
2065
+ evening: "este",
2066
+ night: "éjjel"
2067
+ }
2068
+ },
2069
+ defaultWidth: "wide"
2070
+ })
2071
+ },
2072
+ match: {
2073
+ ordinalNumber: buildMatchPatternFn({
2074
+ matchPattern: /^(\d+)\.?/i,
2075
+ parsePattern: /\d+/i,
2076
+ valueCallback: (e) => parseInt(e, 10)
2077
+ }),
2078
+ era: buildMatchFn({
2079
+ matchPatterns: {
2080
+ narrow: /^(ie\.|isz\.)/i,
2081
+ abbreviated: /^(i\.\s?e\.?|b?\s?c\s?e|i\.\s?sz\.?)/i,
2082
+ wide: /^(Krisztus előtt|időszámításunk előtt|időszámításunk szerint|i\. sz\.)/i
2083
+ },
2084
+ defaultMatchWidth: "wide",
2085
+ parsePatterns: {
2086
+ narrow: [/ie/i, /isz/i],
2087
+ abbreviated: [/^(i\.?\s?e\.?|b\s?ce)/i, /^(i\.?\s?sz\.?|c\s?e)/i],
2088
+ any: [/előtt/i, /(szerint|i. sz.)/i]
2089
+ },
2090
+ defaultParseWidth: "any"
2091
+ }),
2092
+ quarter: buildMatchFn({
2093
+ matchPatterns: {
2094
+ narrow: /^[1234]\.?/i,
2095
+ abbreviated: /^[1234]?\.?\s?n\.év/i,
2096
+ wide: /^([1234]|I|II|III|IV)?\.?\s?negyedév/i
2097
+ },
2098
+ defaultMatchWidth: "wide",
2099
+ parsePatterns: { any: [
2100
+ /1|I$/i,
2101
+ /2|II$/i,
2102
+ /3|III/i,
2103
+ /4|IV/i
2104
+ ] },
2105
+ defaultParseWidth: "any",
2106
+ valueCallback: (e) => e + 1
2107
+ }),
2108
+ month: buildMatchFn({
2109
+ matchPatterns: {
2110
+ narrow: /^[jfmaásond]|sz/i,
2111
+ abbreviated: /^(jan\.?|febr\.?|márc\.?|ápr\.?|máj\.?|jún\.?|júl\.?|aug\.?|szept\.?|okt\.?|nov\.?|dec\.?)/i,
2112
+ wide: /^(január|február|március|április|május|június|július|augusztus|szeptember|október|november|december)/i
2113
+ },
2114
+ defaultMatchWidth: "wide",
2115
+ parsePatterns: {
2116
+ narrow: [
2117
+ /^j/i,
2118
+ /^f/i,
2119
+ /^m/i,
2120
+ /^a|á/i,
2121
+ /^m/i,
2122
+ /^j/i,
2123
+ /^j/i,
2124
+ /^a/i,
2125
+ /^s|sz/i,
2126
+ /^o/i,
2127
+ /^n/i,
2128
+ /^d/i
2129
+ ],
2130
+ any: [
2131
+ /^ja/i,
2132
+ /^f/i,
2133
+ /^már/i,
2134
+ /^áp/i,
2135
+ /^máj/i,
2136
+ /^jún/i,
2137
+ /^júl/i,
2138
+ /^au/i,
2139
+ /^s/i,
2140
+ /^o/i,
2141
+ /^n/i,
2142
+ /^d/i
2143
+ ]
2144
+ },
2145
+ defaultParseWidth: "any"
2146
+ }),
2147
+ day: buildMatchFn({
2148
+ matchPatterns: {
2149
+ narrow: /^([vhkpc]|sz|cs|sz)/i,
2150
+ short: /^([vhkp]|sze|cs|szo)/i,
2151
+ abbreviated: /^([vhkp]|sze|cs|szo)/i,
2152
+ wide: /^(vasárnap|hétfő|kedd|szerda|csütörtök|péntek|szombat)/i
2153
+ },
2154
+ defaultMatchWidth: "wide",
2155
+ parsePatterns: {
2156
+ narrow: [
2157
+ /^v/i,
2158
+ /^h/i,
2159
+ /^k/i,
2160
+ /^sz/i,
2161
+ /^c/i,
2162
+ /^p/i,
2163
+ /^sz/i
2164
+ ],
2165
+ any: [
2166
+ /^v/i,
2167
+ /^h/i,
2168
+ /^k/i,
2169
+ /^sze/i,
2170
+ /^c/i,
2171
+ /^p/i,
2172
+ /^szo/i
2173
+ ]
2174
+ },
2175
+ defaultParseWidth: "any"
2176
+ }),
2177
+ dayPeriod: buildMatchFn({
2178
+ matchPatterns: { any: /^((de|du)\.?|éjfél|délután|dél|reggel|este|éjjel)/i },
2179
+ defaultMatchWidth: "any",
2180
+ parsePatterns: { any: {
2181
+ am: /^de\.?/i,
2182
+ pm: /^du\.?/i,
2183
+ midnight: /^éjf/i,
2184
+ noon: /^dé/i,
2185
+ morning: /reg/i,
2186
+ afternoon: /^délu\.?/i,
2187
+ evening: /es/i,
2188
+ night: /éjj/i
2189
+ } },
2190
+ defaultParseWidth: "any"
2191
+ })
2192
+ },
2193
+ options: {
2194
+ weekStartsOn: 1,
2195
+ firstWeekContainsDate: 4
2196
+ }
2197
+ };
2198
+ var DATE_LOCALES = {
2199
+ "en-US": enUS,
2200
+ "de-DE": de,
2201
+ "hu-HU": hu,
2202
+ en: enUS,
2203
+ de,
2204
+ hu
2205
+ };
2206
+ function parseDate(e) {
2207
+ return e instanceof Date ? e : typeof e == "string" ? parseISO(e) : new Date(e);
2208
+ }
2209
+ function getDateLocale(e) {
2210
+ return DATE_LOCALES[e] || DATE_LOCALES[e.split("-")[0]] || enUS;
2211
+ }
2212
+ function formatDate(e, D, O) {
2213
+ let k = parseDate(e), A = getDateLocale(D);
2214
+ return O?.format ? format(k, O.format, { locale: A }) : O?.dateStyle || O?.timeStyle ? new Intl.DateTimeFormat(D, {
2215
+ dateStyle: O.dateStyle,
2216
+ timeStyle: O.timeStyle
2217
+ }).format(k) : format(k, "PP", { locale: A });
2218
+ }
2219
+ function formatNumber(e, D, O) {
2220
+ return new Intl.NumberFormat(D, O).format(e);
2221
+ }
2222
+ function formatCurrency(e, D, O) {
2223
+ return new Intl.NumberFormat(D, {
2224
+ style: "currency",
2225
+ currency: O
2226
+ }).format(e);
2227
+ }
2228
+ function formatRelativeTime(e, D) {
2229
+ let O = parseDate(e), k = /* @__PURE__ */ new Date(), A = O.getTime() - k.getTime(), j = Math.round(A / 1e3), M = Math.round(j / 60), N = Math.round(M / 60), P = Math.round(N / 24), F = new Intl.RelativeTimeFormat(D, { numeric: "auto" });
2230
+ return Math.abs(P) >= 1 ? F.format(P, "day") : Math.abs(N) >= 1 ? F.format(N, "hour") : Math.abs(M) >= 1 ? F.format(M, "minute") : F.format(j, "second");
2231
+ }
2232
+ function formatPercent(e, D, O = 0) {
2233
+ return new Intl.NumberFormat(D, {
2234
+ style: "percent",
2235
+ minimumFractionDigits: O,
2236
+ maximumFractionDigits: O
2237
+ }).format(e);
2238
+ }
2239
+ const SYSTEM_MESSAGES = {
2240
+ action: {
2241
+ save: {
2242
+ success: "Saved successfully",
2243
+ error: "Failed to save",
2244
+ loading: "Saving..."
2245
+ },
2246
+ delete: {
2247
+ success: "Deleted successfully",
2248
+ error: "Failed to delete",
2249
+ confirm: "Are you sure you want to delete this item?",
2250
+ confirmTitle: "Confirm Delete"
2251
+ },
2252
+ create: {
2253
+ success: "Created successfully",
2254
+ error: "Failed to create"
2255
+ },
2256
+ update: {
2257
+ success: "Updated successfully",
2258
+ error: "Failed to update"
2259
+ },
2260
+ cancel: { label: "Cancel" },
2261
+ confirm: { label: "Confirm" },
2262
+ close: { label: "Close" },
2263
+ back: { label: "Back" },
2264
+ refresh: {
2265
+ label: "Refresh",
2266
+ success: "Refreshed successfully",
2267
+ error: "Failed to refresh"
2268
+ }
2269
+ },
2270
+ validation: {
2271
+ required: "{{field}} is required",
2272
+ minLength: "{{field}} must be at least {{min}} characters",
2273
+ maxLength: "{{field}} must be at most {{max}} characters",
2274
+ min: "{{field}} must be at least {{min}}",
2275
+ max: "{{field}} must be at most {{max}}",
2276
+ email: "Please enter a valid email address",
2277
+ url: "Please enter a valid URL",
2278
+ number: "Please enter a valid number",
2279
+ integer: "Please enter a whole number",
2280
+ pattern: "{{field}} format is invalid",
2281
+ unique: "{{field}} must be unique",
2282
+ date: "Please enter a valid date",
2283
+ dateRange: "End date must be after start date"
2284
+ },
2285
+ nav: {
2286
+ unsavedChanges: {
2287
+ title: "Unsaved Changes",
2288
+ message: "You have unsaved changes. Are you sure you want to leave?",
2289
+ stay: "Stay",
2290
+ leave: "Leave"
2291
+ },
2292
+ breadcrumb: { home: "Home" }
2293
+ },
2294
+ session: {
2295
+ timeout: {
2296
+ title: "Session Expiring",
2297
+ message: "Your session will expire in {{time}}. Would you like to stay logged in?",
2298
+ logout: "Logout",
2299
+ extend: "Stay Logged In"
2300
+ },
2301
+ expired: {
2302
+ title: "Session Expired",
2303
+ message: "Your session has expired. Please log in again."
2304
+ }
2305
+ },
2306
+ loading: {
2307
+ model: "Loading application...",
2308
+ data: "Loading data...",
2309
+ saving: "Saving...",
2310
+ deleting: "Deleting...",
2311
+ processing: "Processing..."
2312
+ },
2313
+ error: {
2314
+ generic: "An error occurred",
2315
+ network: "Network error. Please check your connection.",
2316
+ notFound: "The requested resource was not found",
2317
+ unauthorized: "You are not authorized to perform this action",
2318
+ forbidden: "Access denied",
2319
+ serverError: "Server error. Please try again later.",
2320
+ timeout: "Request timed out. Please try again.",
2321
+ validation: "Please correct the errors and try again"
2322
+ },
2323
+ empty: {
2324
+ noData: "No data available",
2325
+ noResults: "No results found",
2326
+ noItems: "No items to display",
2327
+ noSelection: "No item selected"
2328
+ },
2329
+ pagination: {
2330
+ of: "of",
2331
+ rowsPerPage: "Rows per page",
2332
+ showing: "Showing {{from}}-{{to}} of {{total}}",
2333
+ firstPage: "First page",
2334
+ lastPage: "Last page",
2335
+ previousPage: "Previous page",
2336
+ nextPage: "Next page"
2337
+ },
2338
+ table: {
2339
+ selectAll: "Select all",
2340
+ deselectAll: "Deselect all",
2341
+ selectedCount: "{{count}} selected",
2342
+ sortAscending: "Sort ascending",
2343
+ sortDescending: "Sort descending",
2344
+ filterBy: "Filter by {{column}}",
2345
+ clearFilter: "Clear filter",
2346
+ noRows: "No rows",
2347
+ actions: "Actions"
2348
+ },
2349
+ dialog: {
2350
+ confirm: {
2351
+ title: "Confirm",
2352
+ yes: "Yes",
2353
+ no: "No"
2354
+ },
2355
+ alert: {
2356
+ title: "Alert",
2357
+ ok: "OK"
2358
+ }
2359
+ },
2360
+ auth: {
2361
+ login: "Log In",
2362
+ logout: "Log Out",
2363
+ loggingIn: "Logging in...",
2364
+ loggingOut: "Logging out...",
2365
+ profile: "Profile"
2366
+ },
2367
+ common: {
2368
+ search: "Search",
2369
+ filter: "Filter",
2370
+ clear: "Clear",
2371
+ reset: "Reset",
2372
+ apply: "Apply",
2373
+ select: "Select",
2374
+ selected: "Selected",
2375
+ all: "All",
2376
+ none: "None",
2377
+ yes: "Yes",
2378
+ no: "No",
2379
+ true: "True",
2380
+ false: "False",
2381
+ enabled: "Enabled",
2382
+ disabled: "Disabled",
2383
+ active: "Active",
2384
+ inactive: "Inactive",
2385
+ more: "More",
2386
+ less: "Less",
2387
+ details: "Details",
2388
+ options: "Options",
2389
+ settings: "Settings",
2390
+ help: "Help",
2391
+ about: "About"
2392
+ }
2393
+ };
2394
+ function getSystemMessage(e) {
2395
+ let D = e.split("."), O = SYSTEM_MESSAGES;
2396
+ for (let e of D) {
2397
+ if (O == null || typeof O == "string") return;
2398
+ O = O[e];
2399
+ }
2400
+ return typeof O == "string" ? O : void 0;
2401
+ }
2402
+ function getAllSystemMessageKeys() {
2403
+ let e = [];
2404
+ function D(O, k) {
2405
+ for (let A of Object.keys(O)) {
2406
+ let j = O[A], M = k ? `${k}.${A}` : A;
2407
+ typeof j == "string" ? e.push(M) : typeof j == "object" && j && D(j, M);
2408
+ }
2409
+ }
2410
+ return D(SYSTEM_MESSAGES, ""), e;
2411
+ }
2412
+ function interpolate(e, D) {
2413
+ return e.replace(/\{\{(\w+)\}\}/g, (e, O) => {
2414
+ let k = D[O];
2415
+ return k === void 0 ? `{{${O}}}` : String(k);
2416
+ });
2417
+ }
2418
+ function createI18nService(e) {
2419
+ let D = e.defaultLanguage, O = /* @__PURE__ */ new Set(), k = e.resources || {};
2420
+ return {
2421
+ getLanguage() {
2422
+ return D;
2423
+ },
2424
+ async setLanguage(k) {
2425
+ if (!e.supportedLanguages.includes(k)) throw Error(`Language '${k}' is not supported. Supported: ${e.supportedLanguages.join(", ")}`);
2426
+ D = k;
2427
+ for (let e of O) e(k);
2428
+ },
2429
+ getAvailableLanguages() {
2430
+ return [...e.supportedLanguages];
2431
+ },
2432
+ t(O, A) {
2433
+ let j = (k[D] || {})[O];
2434
+ if (j === void 0 && D !== e.defaultLanguage && (j = (k[e.defaultLanguage] || {})[O]), j === void 0) return A?.defaultValue ?? O;
2435
+ if (A) {
2436
+ let { defaultValue: e, count: D, ...O } = A;
2437
+ Object.keys(O).length > 0 && (j = interpolate(j, O));
2438
+ }
2439
+ return j;
2440
+ },
2441
+ exists(O) {
2442
+ return (k[D] || {})[O] === void 0 ? (k[e.defaultLanguage] || {})[O] !== void 0 : !0;
2443
+ },
2444
+ formatDate(e, O) {
2445
+ return formatDate(e, D, O);
2446
+ },
2447
+ formatNumber(e, O) {
2448
+ return formatNumber(e, D, O);
2449
+ },
2450
+ formatCurrency(e, O) {
2451
+ return formatCurrency(e, D, O);
2452
+ },
2453
+ formatRelativeTime(e) {
2454
+ return formatRelativeTime(e, D);
2455
+ },
2456
+ formatPercent(e, O = 0) {
2457
+ return formatPercent(e, D, O);
2458
+ },
2459
+ onLanguageChange(e) {
2460
+ return O.add(e), () => {
2461
+ O.delete(e);
2462
+ };
2463
+ }
2464
+ };
2465
+ }
2466
+ const LOCALE_STORAGE_KEY = "judo-locale";
2467
+ function readPersistedLocale() {
2468
+ try {
2469
+ return typeof window < "u" ? localStorage.getItem(LOCALE_STORAGE_KEY) : null;
2470
+ } catch {
2471
+ return null;
2472
+ }
2473
+ }
2474
+ function writePersistedLocale(e) {
2475
+ try {
2476
+ typeof window < "u" && localStorage.setItem(LOCALE_STORAGE_KEY, e);
2477
+ } catch {}
2478
+ }
2479
+ var LocaleContext = createContext(null);
2480
+ function I18nProvider({ defaultLocale: D = "en-US", locales: k, localeLoader: I, translationKeyMap: L, persistLocale: R = !1, children: z }) {
2481
+ let B = useMemo(() => k ?? { [D]: D }, [k, D]), V = I != null;
2482
+ function H() {
2483
+ if (R) {
2484
+ let e = readPersistedLocale();
2485
+ if (e && e in B) return e;
2486
+ }
2487
+ return D;
2488
+ }
2489
+ let U = useRef(null), [W, G] = useState(!1), [K, q] = useState(H), J = useRef(null);
2490
+ if (U.current === null) {
2491
+ let D = H(), O = i18next.createInstance();
2492
+ O.use(initReactI18next), U.current = O, J.current = O.init({
2493
+ lng: D,
2494
+ fallbackLng: "en-US",
2495
+ keySeparator: !1,
2496
+ interpolation: { escapeValue: !1 },
2497
+ resources: {},
2498
+ returnNull: !1,
2499
+ showSupportNotice: !1
2500
+ }).then(() => {});
2501
+ }
2502
+ let Y = U.current, X = useRef(I), Z = useRef(K);
2503
+ useEffect(() => {
2504
+ let e = !1, D = X.current, O = Z.current;
2505
+ async function k() {
2506
+ if (J.current && await J.current, !e) {
2507
+ if (D) try {
2508
+ let k = await D(O);
2509
+ if (e) return;
2510
+ Y.addResourceBundle(O, "translation", k, !0, !0);
2511
+ } catch {}
2512
+ e || G(!0);
2513
+ }
2514
+ }
2515
+ return k(), () => {
2516
+ e = !0;
2517
+ };
2518
+ }, []);
2519
+ let Q = useCallback(async (e) => {
2520
+ if (!(e in B)) throw Error(`Locale "${e}" is not supported. Supported: ${Object.keys(B).join(", ")}`);
2521
+ if (I) try {
2522
+ let D = await I(e);
2523
+ Y.addResourceBundle(e, "translation", D, !0, !0);
2524
+ } catch {}
2525
+ await Y.changeLanguage(e), q(e), R && writePersistedLocale(e);
2526
+ }, [
2527
+ Y,
2528
+ I,
2529
+ B,
2530
+ R
2531
+ ]), $ = useMemo(() => ({
2532
+ locale: K,
2533
+ setLocale: Q,
2534
+ locales: B,
2535
+ hasTranslations: V,
2536
+ i18n: Y,
2537
+ translationKeyMap: L
2538
+ }), [
2539
+ K,
2540
+ Q,
2541
+ B,
2542
+ V,
2543
+ Y,
2544
+ L
2545
+ ]);
2546
+ return W ? /* @__PURE__ */ jsx(LocaleContext.Provider, {
2547
+ value: $,
2548
+ children: /* @__PURE__ */ jsx(I18nextProvider, {
2549
+ i18n: Y,
2550
+ children: z
2551
+ })
2552
+ }) : null;
2553
+ }
2554
+ function useLocale() {
2555
+ let e = useContext(LocaleContext);
2556
+ if (!e) throw Error("useLocale must be used within I18nProvider");
2557
+ return e;
2558
+ }
2559
+ function useLocaleOptional() {
2560
+ return useContext(LocaleContext);
2561
+ }
2562
+ function useModelLabel(e, D = "label") {
2563
+ let { t: O } = useTranslation(), k = useLocaleOptional(), A, j = k?.translationKeyMap, M = e["xmi:id"];
2564
+ return A = j && M && j[M] ? j[M] : getTranslationKey(e, D), {
2565
+ label: O(A, { defaultValue: e.label ?? e.name }),
2566
+ translationKey: A
2567
+ };
2568
+ }
2569
+ export { I18nProvider, LOCALE_STORAGE_KEY, SYSTEM_MESSAGES, createI18nService, formatCurrency, formatDate, formatNumber, formatPercent, formatRelativeTime, getAllSystemMessageKeys, getColumnTranslationKey, getDateLocale, getEnumTranslationKey, getNavItemTranslationKey, getSystemMessage, getSystemMessageKey, getTranslationKey, interpolate, parseDate, useLocale, useLocaleOptional, useModelLabel };