rrule-temporal-polyfill 1.3.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/totext.js ADDED
@@ -0,0 +1,712 @@
1
+ import {
2
+ RRuleTemporal
3
+ } from "./chunk-XKNVKDJ3.js";
4
+
5
+ // src/totext.ts
6
+ var en = {
7
+ weekdayNames: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
8
+ monthNames: [
9
+ "January",
10
+ "February",
11
+ "March",
12
+ "April",
13
+ "May",
14
+ "June",
15
+ "July",
16
+ "August",
17
+ "September",
18
+ "October",
19
+ "November",
20
+ "December"
21
+ ],
22
+ units: {
23
+ year: { singular: "year", plural: "years" },
24
+ month: { singular: "month", plural: "months" },
25
+ week: { singular: "week", plural: "weeks" },
26
+ day: { singular: "day", plural: "days" },
27
+ hour: { singular: "hour", plural: "hours" },
28
+ minute: { singular: "minute", plural: "minutes" },
29
+ second: { singular: "second", plural: "seconds" }
30
+ },
31
+ words: {
32
+ every: "every",
33
+ weekday: "weekday",
34
+ on: "on",
35
+ in: "in",
36
+ on_the: "on the",
37
+ day_of_month: "day of the month",
38
+ day_of_year: "day of the year",
39
+ in_week: "in week",
40
+ at: "at",
41
+ at_minute: "at minute",
42
+ at_second: "at second",
43
+ until: "until",
44
+ for: "for",
45
+ time: "time",
46
+ times: "times",
47
+ instance: "instance",
48
+ week_starts_on: "week starts on",
49
+ with: "with",
50
+ additional_date: "additional date",
51
+ additional_dates: "additional dates",
52
+ excluding: "excluding",
53
+ date: "date",
54
+ dates: "dates",
55
+ and: "and",
56
+ last: "last"
57
+ },
58
+ ordinal: (n) => {
59
+ const abs = Math.abs(n);
60
+ const suffix = abs % 10 === 1 && abs % 100 !== 11 ? "st" : abs % 10 === 2 && abs % 100 !== 12 ? "nd" : abs % 10 === 3 && abs % 100 !== 13 ? "rd" : "th";
61
+ return n < 0 ? `last` : `${abs}${suffix}`;
62
+ }
63
+ };
64
+ var de = {
65
+ weekdayNames: ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"],
66
+ monthNames: [
67
+ "Januar",
68
+ "Februar",
69
+ "M\xE4rz",
70
+ "April",
71
+ "Mai",
72
+ "Juni",
73
+ "Juli",
74
+ "August",
75
+ "September",
76
+ "Oktober",
77
+ "November",
78
+ "Dezember"
79
+ ],
80
+ units: {
81
+ year: { singular: "Jahr", plural: "Jahre" },
82
+ month: { singular: "Monat", plural: "Monate" },
83
+ week: { singular: "Woche", plural: "Wochen" },
84
+ day: { singular: "Tag", plural: "Tage" },
85
+ hour: { singular: "Stunde", plural: "Stunden" },
86
+ minute: { singular: "Minute", plural: "Minuten" },
87
+ second: { singular: "Sekunde", plural: "Sekunden" }
88
+ },
89
+ words: {
90
+ every: "jede/n/s",
91
+ weekday: "Werktag",
92
+ on: "am",
93
+ in: "im",
94
+ on_the: "am",
95
+ day_of_month: "Tag des Monats",
96
+ day_of_year: "Tag des Jahres",
97
+ in_week: "in Kalenderwoche",
98
+ at: "um",
99
+ at_minute: "in Minute",
100
+ at_second: "in Sekunde",
101
+ until: "bis",
102
+ for: "f\xFCr",
103
+ time: "Mal",
104
+ times: "Mal",
105
+ instance: "Vorkommen",
106
+ week_starts_on: "Woche beginnt am",
107
+ with: "mit",
108
+ additional_date: "zus\xE4tzlichem Datum",
109
+ additional_dates: "zus\xE4tzlichen Daten",
110
+ excluding: "ohne",
111
+ date: "Datum",
112
+ dates: "Daten",
113
+ and: "und",
114
+ last: "letzter"
115
+ },
116
+ ordinal: (n) => {
117
+ if (n < 0) return "letzten";
118
+ return `${Math.abs(n)}.`;
119
+ }
120
+ };
121
+ var es = {
122
+ weekdayNames: ["lunes", "martes", "mi\xE9rcoles", "jueves", "viernes", "s\xE1bado", "domingo"],
123
+ monthNames: [
124
+ "enero",
125
+ "febrero",
126
+ "marzo",
127
+ "abril",
128
+ "mayo",
129
+ "junio",
130
+ "julio",
131
+ "agosto",
132
+ "septiembre",
133
+ "octubre",
134
+ "noviembre",
135
+ "diciembre"
136
+ ],
137
+ units: {
138
+ year: { singular: "a\xF1o", plural: "a\xF1os" },
139
+ month: { singular: "mes", plural: "meses" },
140
+ week: { singular: "semana", plural: "semanas" },
141
+ day: { singular: "d\xEDa", plural: "d\xEDas" },
142
+ hour: { singular: "hora", plural: "horas" },
143
+ minute: { singular: "minuto", plural: "minutos" },
144
+ second: { singular: "segundo", plural: "segundos" }
145
+ },
146
+ words: {
147
+ every: "cada",
148
+ weekday: "d\xEDa de la semana",
149
+ on: "en",
150
+ in: "en",
151
+ on_the: "el",
152
+ day_of_month: "d\xEDa del mes",
153
+ day_of_year: "d\xEDa del a\xF1o",
154
+ in_week: "en la semana",
155
+ at: "a las",
156
+ at_minute: "en el minuto",
157
+ at_second: "en el segundo",
158
+ until: "hasta",
159
+ for: "durante",
160
+ time: "vez",
161
+ times: "veces",
162
+ instance: "ocasi\xF3n",
163
+ week_starts_on: "la semana comienza el",
164
+ with: "con",
165
+ additional_date: "fecha adicional",
166
+ additional_dates: "fechas adicionales",
167
+ excluding: "excluyendo",
168
+ date: "fecha",
169
+ dates: "fechas",
170
+ and: "y",
171
+ last: "\xFAltimo"
172
+ },
173
+ ordinal: (n) => n < 0 ? "\xFAltimo" : `${Math.abs(n)}\xBA`
174
+ };
175
+ var hi = {
176
+ weekdayNames: ["\u0938\u094B\u092E\u0935\u093E\u0930", "\u092E\u0902\u0917\u0932\u0935\u093E\u0930", "\u092C\u0941\u0927\u0935\u093E\u0930", "\u0917\u0941\u0930\u0941\u0935\u093E\u0930", "\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930", "\u0936\u0928\u093F\u0935\u093E\u0930", "\u0930\u0935\u093F\u0935\u093E\u0930"],
177
+ monthNames: [
178
+ "\u091C\u0928\u0935\u0930\u0940",
179
+ "\u092B\u0930\u0935\u0930\u0940",
180
+ "\u092E\u093E\u0930\u094D\u091A",
181
+ "\u0905\u092A\u094D\u0930\u0948\u0932",
182
+ "\u092E\u0908",
183
+ "\u091C\u0942\u0928",
184
+ "\u091C\u0941\u0932\u093E\u0908",
185
+ "\u0905\u0917\u0938\u094D\u0924",
186
+ "\u0938\u093F\u0924\u0902\u092C\u0930",
187
+ "\u0905\u0915\u094D\u091F\u0942\u092C\u0930",
188
+ "\u0928\u0935\u0902\u092C\u0930",
189
+ "\u0926\u093F\u0938\u0902\u092C\u0930"
190
+ ],
191
+ units: {
192
+ year: { singular: "\u0938\u093E\u0932", plural: "\u0938\u093E\u0932" },
193
+ month: { singular: "\u092E\u0939\u0940\u0928\u093E", plural: "\u092E\u0939\u0940\u0928\u0947" },
194
+ week: { singular: "\u0938\u092A\u094D\u0924\u093E\u0939", plural: "\u0938\u092A\u094D\u0924\u093E\u0939" },
195
+ day: { singular: "\u0926\u093F\u0928", plural: "\u0926\u093F\u0928" },
196
+ hour: { singular: "\u0918\u0902\u091F\u093E", plural: "\u0918\u0902\u091F\u0947" },
197
+ minute: { singular: "\u092E\u093F\u0928\u091F", plural: "\u092E\u093F\u0928\u091F" },
198
+ second: { singular: "\u0938\u0947\u0915\u0902\u0921", plural: "\u0938\u0947\u0915\u0902\u0921" }
199
+ },
200
+ words: {
201
+ every: "\u0939\u0930",
202
+ weekday: "\u0938\u092A\u094D\u0924\u093E\u0939 \u0915\u093E \u0926\u093F\u0928",
203
+ on: "\u0915\u094B",
204
+ in: "\u092E\u0947\u0902",
205
+ on_the: "\u0915\u094B",
206
+ day_of_month: "\u092E\u0939\u0940\u0928\u0947 \u0915\u093E \u0926\u093F\u0928",
207
+ day_of_year: "\u0938\u093E\u0932 \u0915\u093E \u0926\u093F\u0928",
208
+ in_week: "\u0938\u092A\u094D\u0924\u093E\u0939",
209
+ at: "\u092A\u0930",
210
+ at_minute: "\u092E\u093F\u0928\u091F \u092A\u0930",
211
+ at_second: "\u0938\u0947\u0915\u0902\u0921 \u092A\u0930",
212
+ until: "\u0924\u0915",
213
+ for: "\u0915\u0947 \u0932\u093F\u090F",
214
+ time: "\u092C\u093E\u0930",
215
+ times: "\u092C\u093E\u0930",
216
+ instance: "\u092C\u093E\u0930",
217
+ week_starts_on: "\u0938\u092A\u094D\u0924\u093E\u0939 \u0936\u0941\u0930\u0942 \u0939\u094B\u0924\u093E \u0939\u0948",
218
+ with: "\u0938\u093E\u0925",
219
+ additional_date: "\u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924 \u0924\u093E\u0930\u0940\u0916",
220
+ additional_dates: "\u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924 \u0924\u093E\u0930\u0940\u0916\u0947\u0902",
221
+ excluding: "\u0915\u094B \u091B\u094B\u0921\u093C\u0915\u0930",
222
+ date: "\u0924\u093E\u0930\u0940\u0916",
223
+ dates: "\u0924\u093E\u0930\u0940\u0916\u0947\u0902",
224
+ and: "\u0914\u0930",
225
+ last: "\u0906\u0916\u093F\u0930\u0940"
226
+ },
227
+ ordinal: (n) => n < 0 ? "\u0906\u0916\u093F\u0930\u0940" : `${Math.abs(n)}\u0935\u093E\u0902`
228
+ };
229
+ var yue = {
230
+ weekdayNames: ["\u661F\u671F\u4E00", "\u661F\u671F\u4E8C", "\u661F\u671F\u4E09", "\u661F\u671F\u56DB", "\u661F\u671F\u4E94", "\u661F\u671F\u516D", "\u661F\u671F\u65E5"],
231
+ monthNames: ["\u4E00\u6708", "\u4E8C\u6708", "\u4E09\u6708", "\u56DB\u6708", "\u4E94\u6708", "\u516D\u6708", "\u4E03\u6708", "\u516B\u6708", "\u4E5D\u6708", "\u5341\u6708", "\u5341\u4E00\u6708", "\u5341\u4E8C\u6708"],
232
+ units: {
233
+ year: { singular: "\u5E74", plural: "\u5E74" },
234
+ month: { singular: "\u6708", plural: "\u6708" },
235
+ week: { singular: "\u9031", plural: "\u9031" },
236
+ day: { singular: "\u65E5", plural: "\u65E5" },
237
+ hour: { singular: "\u5C0F\u6642", plural: "\u5C0F\u6642" },
238
+ minute: { singular: "\u5206\u9418", plural: "\u5206\u9418" },
239
+ second: { singular: "\u79D2", plural: "\u79D2" }
240
+ },
241
+ words: {
242
+ every: "\u6BCF",
243
+ weekday: "\u5E73\u65E5",
244
+ on: "\u5728",
245
+ in: "\u65BC",
246
+ on_the: "\u5728",
247
+ day_of_month: "\u6708\u7684\u65E5\u5B50",
248
+ day_of_year: "\u5E74\u7684\u65E5\u5B50",
249
+ in_week: "\u7B2C",
250
+ at: "\u5728",
251
+ at_minute: "\u5728\u7B2C",
252
+ at_second: "\u5728\u7B2C",
253
+ until: "\u76F4\u5230",
254
+ for: "\u5171",
255
+ time: "\u6B21",
256
+ times: "\u6B21",
257
+ instance: "\u6B21",
258
+ week_starts_on: "\u661F\u671F\u958B\u59CB\u65BC",
259
+ with: "\u5E36\u6709",
260
+ additional_date: "\u984D\u5916\u65E5\u671F",
261
+ additional_dates: "\u984D\u5916\u65E5\u671F",
262
+ excluding: "\u6392\u9664",
263
+ date: "\u65E5\u671F",
264
+ dates: "\u65E5\u671F",
265
+ and: "\u548C",
266
+ last: "\u6700\u5F8C"
267
+ },
268
+ ordinal: (n) => n < 0 ? "\u6700\u5F8C" : `\u7B2C${Math.abs(n)}`
269
+ };
270
+ var ar = {
271
+ weekdayNames: ["\u0627\u0644\u0627\u062B\u0646\u064A\u0646", "\u0627\u0644\u062B\u0644\u0627\u062B\u0627\u0621", "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621", "\u0627\u0644\u062E\u0645\u064A\u0633", "\u0627\u0644\u062C\u0645\u0639\u0629", "\u0627\u0644\u0633\u0628\u062A", "\u0627\u0644\u0623\u062D\u062F"],
272
+ monthNames: [
273
+ "\u064A\u0646\u0627\u064A\u0631",
274
+ "\u0641\u0628\u0631\u0627\u064A\u0631",
275
+ "\u0645\u0627\u0631\u0633",
276
+ "\u0623\u0628\u0631\u064A\u0644",
277
+ "\u0645\u0627\u064A\u0648",
278
+ "\u064A\u0648\u0646\u064A\u0648",
279
+ "\u064A\u0648\u0644\u064A\u0648",
280
+ "\u0623\u063A\u0633\u0637\u0633",
281
+ "\u0633\u0628\u062A\u0645\u0628\u0631",
282
+ "\u0623\u0643\u062A\u0648\u0628\u0631",
283
+ "\u0646\u0648\u0641\u0645\u0628\u0631",
284
+ "\u062F\u064A\u0633\u0645\u0628\u0631"
285
+ ],
286
+ units: {
287
+ year: { singular: "\u0633\u0646\u0629", plural: "\u0633\u0646\u0648\u0627\u062A" },
288
+ month: { singular: "\u0634\u0647\u0631", plural: "\u0623\u0634\u0647\u0631" },
289
+ week: { singular: "\u0623\u0633\u0628\u0648\u0639", plural: "\u0623\u0633\u0627\u0628\u064A\u0639" },
290
+ day: { singular: "\u064A\u0648\u0645", plural: "\u0623\u064A\u0627\u0645" },
291
+ hour: { singular: "\u0633\u0627\u0639\u0629", plural: "\u0633\u0627\u0639\u0627\u062A" },
292
+ minute: { singular: "\u062F\u0642\u064A\u0642\u0629", plural: "\u062F\u0642\u0627\u0626\u0642" },
293
+ second: { singular: "\u062B\u0627\u0646\u064A\u0629", plural: "\u062B\u0648\u0627\u0646\u064A" }
294
+ },
295
+ words: {
296
+ every: "\u0643\u0644",
297
+ weekday: "\u064A\u0648\u0645 \u0645\u0646 \u0623\u064A\u0627\u0645 \u0627\u0644\u0623\u0633\u0628\u0648\u0639",
298
+ on: "\u0641\u064A",
299
+ in: "\u0641\u064A",
300
+ on_the: "\u0641\u064A \u0627\u0644\u0640",
301
+ day_of_month: "\u064A\u0648\u0645 \u0645\u0646 \u0627\u0644\u0634\u0647\u0631",
302
+ day_of_year: "\u064A\u0648\u0645 \u0645\u0646 \u0627\u0644\u0633\u0646\u0629",
303
+ in_week: "\u0641\u064A \u0627\u0644\u0623\u0633\u0628\u0648\u0639",
304
+ at: "\u0639\u0646\u062F",
305
+ at_minute: "\u0641\u064A \u0627\u0644\u062F\u0642\u064A\u0642\u0629",
306
+ at_second: "\u0641\u064A \u0627\u0644\u062B\u0627\u0646\u064A\u0629",
307
+ until: "\u062D\u062A\u0649",
308
+ for: "\u0644\u0645\u062F\u0629",
309
+ time: "\u0645\u0631\u0629",
310
+ times: "\u0645\u0631\u0627\u062A",
311
+ instance: "\u0645\u0631\u0629",
312
+ week_starts_on: "\u064A\u0628\u062F\u0623 \u0627\u0644\u0623\u0633\u0628\u0648\u0639 \u064A\u0648\u0645",
313
+ with: "\u0645\u0639",
314
+ additional_date: "\u062A\u0627\u0631\u064A\u062E \u0625\u0636\u0627\u0641\u064A",
315
+ additional_dates: "\u062A\u0648\u0627\u0631\u064A\u062E \u0625\u0636\u0627\u0641\u064A\u0629",
316
+ excluding: "\u0628\u0627\u0633\u062A\u062B\u0646\u0627\u0621",
317
+ date: "\u062A\u0627\u0631\u064A\u062E",
318
+ dates: "\u062A\u0648\u0627\u0631\u064A\u062E",
319
+ and: "\u0648",
320
+ last: "\u0627\u0644\u0623\u062E\u064A\u0631"
321
+ },
322
+ ordinal: (n) => {
323
+ if (n < 0) return "\u0627\u0644\u0623\u062E\u064A\u0631";
324
+ const abs = Math.abs(n);
325
+ const map = {
326
+ 1: "\u0627\u0644\u0623\u0648\u0644",
327
+ 2: "\u0627\u0644\u062B\u0627\u0646\u064A",
328
+ 3: "\u0627\u0644\u062B\u0627\u0644\u062B",
329
+ 4: "\u0627\u0644\u0631\u0627\u0628\u0639",
330
+ 5: "\u0627\u0644\u062E\u0627\u0645\u0633",
331
+ 6: "\u0627\u0644\u0633\u0627\u062F\u0633",
332
+ 7: "\u0627\u0644\u0633\u0627\u0628\u0639",
333
+ 8: "\u0627\u0644\u062B\u0627\u0645\u0646",
334
+ 9: "\u0627\u0644\u062A\u0627\u0633\u0639",
335
+ 10: "\u0627\u0644\u0639\u0627\u0634\u0631",
336
+ 11: "\u0627\u0644\u062D\u0627\u062F\u064A \u0639\u0634\u0631",
337
+ 12: "\u0627\u0644\u062B\u0627\u0646\u064A \u0639\u0634\u0631",
338
+ 13: "\u0627\u0644\u062B\u0627\u0644\u062B \u0639\u0634\u0631"
339
+ };
340
+ return map[abs] || abs.toString();
341
+ }
342
+ };
343
+ var he = {
344
+ weekdayNames: ["\u05D9\u05D5\u05DD \u05E9\u05E0\u05D9", "\u05D9\u05D5\u05DD \u05E9\u05DC\u05D9\u05E9\u05D9", "\u05D9\u05D5\u05DD \u05E8\u05D1\u05D9\u05E2\u05D9", "\u05D9\u05D5\u05DD \u05D7\u05DE\u05D9\u05E9\u05D9", "\u05D9\u05D5\u05DD \u05E9\u05D9\u05E9\u05D9", "\u05D9\u05D5\u05DD \u05E9\u05D1\u05EA", "\u05D9\u05D5\u05DD \u05E8\u05D0\u05E9\u05D5\u05DF"],
345
+ monthNames: [
346
+ "\u05D9\u05E0\u05D5\u05D0\u05E8",
347
+ "\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8",
348
+ "\u05DE\u05E8\u05E5",
349
+ "\u05D0\u05E4\u05E8\u05D9\u05DC",
350
+ "\u05DE\u05D0\u05D9",
351
+ "\u05D9\u05D5\u05E0\u05D9",
352
+ "\u05D9\u05D5\u05DC\u05D9",
353
+ "\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8",
354
+ "\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8",
355
+ "\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8",
356
+ "\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8",
357
+ "\u05D3\u05E6\u05DE\u05D1\u05E8"
358
+ ],
359
+ units: {
360
+ year: { singular: "\u05E9\u05E0\u05D4", plural: "\u05E9\u05E0\u05D9\u05DD" },
361
+ month: { singular: "\u05D7\u05D5\u05D3\u05E9", plural: "\u05D7\u05D5\u05D3\u05E9\u05D9\u05DD" },
362
+ week: { singular: "\u05E9\u05D1\u05D5\u05E2", plural: "\u05E9\u05D1\u05D5\u05E2\u05D5\u05EA" },
363
+ day: { singular: "\u05D9\u05D5\u05DD", plural: "\u05D9\u05DE\u05D9\u05DD" },
364
+ hour: { singular: "\u05E9\u05E2\u05D4", plural: "\u05E9\u05E2\u05D5\u05EA" },
365
+ minute: { singular: "\u05D3\u05E7\u05D4", plural: "\u05D3\u05E7\u05D5\u05EA" },
366
+ second: { singular: "\u05E9\u05E0\u05D9\u05D4", plural: "\u05E9\u05E0\u05D9\u05D5\u05EA" }
367
+ },
368
+ words: {
369
+ every: "\u05DB\u05DC",
370
+ weekday: "\u05D9\u05D5\u05DD \u05D7\u05D5\u05DC",
371
+ on: "\u05D1",
372
+ in: "\u05D1",
373
+ on_the: "\u05D1",
374
+ day_of_month: "\u05D9\u05D5\u05DD \u05D1\u05D7\u05D5\u05D3\u05E9",
375
+ day_of_year: "\u05D9\u05D5\u05DD \u05D1\u05E9\u05E0\u05D4",
376
+ in_week: "\u05D1\u05E9\u05D1\u05D5\u05E2",
377
+ at: "\u05D1\u05E9\u05E2\u05D4",
378
+ at_minute: "\u05D1\u05D3\u05E7\u05D4",
379
+ at_second: "\u05D1\u05E9\u05E0\u05D9\u05D4",
380
+ until: "\u05E2\u05D3",
381
+ for: "\u05D1\u05DE\u05E9\u05DA",
382
+ time: "\u05E4\u05E2\u05DD",
383
+ times: "\u05E4\u05E2\u05DE\u05D9\u05DD",
384
+ instance: "\u05E4\u05E2\u05DD",
385
+ week_starts_on: "\u05E9\u05D1\u05D5\u05E2 \u05DE\u05EA\u05D7\u05D9\u05DC \u05D1",
386
+ with: "\u05E2\u05DD",
387
+ additional_date: "\u05EA\u05D0\u05E8\u05D9\u05DA \u05E0\u05D5\u05E1\u05E3",
388
+ additional_dates: "\u05EA\u05D0\u05E8\u05D9\u05DB\u05D9\u05DD \u05E0\u05D5\u05E1\u05E4\u05D9\u05DD",
389
+ excluding: "\u05DC\u05DE\u05E2\u05D8",
390
+ date: "\u05EA\u05D0\u05E8\u05D9\u05DA",
391
+ dates: "\u05EA\u05D0\u05E8\u05D9\u05DB\u05D9\u05DD",
392
+ and: "\u05D5",
393
+ last: "\u05D0\u05D7\u05E8\u05D5\u05DF"
394
+ },
395
+ ordinal: (n) => {
396
+ if (n < 0) return "\u05D0\u05D7\u05E8\u05D5\u05DF";
397
+ const abs = Math.abs(n);
398
+ const map = {
399
+ 1: "\u05E8\u05D0\u05E9\u05D5\u05DF",
400
+ 2: "\u05E9\u05E0\u05D9",
401
+ 3: "\u05E9\u05DC\u05D9\u05E9\u05D9",
402
+ 4: "\u05E8\u05D1\u05D9\u05E2\u05D9",
403
+ 5: "\u05D7\u05DE\u05D9\u05E9\u05D9",
404
+ 6: "\u05E9\u05D9\u05E9\u05D9",
405
+ 7: "\u05E9\u05D1\u05D9\u05E2\u05D9",
406
+ 8: "\u05E9\u05DE\u05D9\u05E0\u05D9",
407
+ 9: "\u05EA\u05E9\u05D9\u05E2\u05D9",
408
+ 10: "\u05E2\u05E9\u05D9\u05E8\u05D9",
409
+ 11: "\u05D0\u05D7\u05D3 \u05E2\u05E9\u05E8",
410
+ 12: "\u05E9\u05E0\u05D9\u05DD \u05E2\u05E9\u05E8",
411
+ 13: "\u05E9\u05DC\u05D5\u05E9\u05D4 \u05E2\u05E9\u05E8"
412
+ };
413
+ return map[abs] || abs.toString();
414
+ }
415
+ };
416
+ var zh = {
417
+ weekdayNames: ["\u661F\u671F\u4E00", "\u661F\u671F\u4E8C", "\u661F\u671F\u4E09", "\u661F\u671F\u56DB", "\u661F\u671F\u4E94", "\u661F\u671F\u516D", "\u661F\u671F\u65E5"],
418
+ monthNames: ["\u4E00\u6708", "\u4E8C\u6708", "\u4E09\u6708", "\u56DB\u6708", "\u4E94\u6708", "\u516D\u6708", "\u4E03\u6708", "\u516B\u6708", "\u4E5D\u6708", "\u5341\u6708", "\u5341\u4E00\u6708", "\u5341\u4E8C\u6708"],
419
+ units: {
420
+ year: { singular: "\u5E74", plural: "\u5E74" },
421
+ month: { singular: "\u6708", plural: "\u6708" },
422
+ week: { singular: "\u5468", plural: "\u5468" },
423
+ day: { singular: "\u65E5", plural: "\u65E5" },
424
+ hour: { singular: "\u5C0F\u65F6", plural: "\u5C0F\u65F6" },
425
+ minute: { singular: "\u5206\u949F", plural: "\u5206\u949F" },
426
+ second: { singular: "\u79D2", plural: "\u79D2" }
427
+ },
428
+ words: {
429
+ every: "\u6BCF",
430
+ weekday: "\u5DE5\u4F5C\u65E5",
431
+ on: "\u5728",
432
+ in: "\u5728",
433
+ on_the: "\u5728",
434
+ day_of_month: "\u6708\u7684\u65E5\u5B50",
435
+ day_of_year: "\u5E74\u7684\u65E5\u5B50",
436
+ in_week: "\u7B2C",
437
+ at: "\u5728",
438
+ at_minute: "\u5728\u7B2C",
439
+ at_second: "\u5728\u7B2C",
440
+ until: "\u76F4\u5230",
441
+ for: "\u5171",
442
+ time: "\u6B21",
443
+ times: "\u6B21",
444
+ instance: "\u6B21",
445
+ week_starts_on: "\u661F\u671F\u5F00\u59CB\u4E8E",
446
+ with: "\u5E26\u6709",
447
+ additional_date: "\u989D\u5916\u65E5\u671F",
448
+ additional_dates: "\u989D\u5916\u65E5\u671F",
449
+ excluding: "\u6392\u9664",
450
+ date: "\u65E5\u671F",
451
+ dates: "\u65E5\u671F",
452
+ and: "\u548C",
453
+ last: "\u6700\u540E"
454
+ },
455
+ ordinal: (n) => n < 0 ? "\u6700\u540E" : `\u7B2C${Math.abs(n)}`
456
+ };
457
+ var fr = {
458
+ weekdayNames: ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"],
459
+ monthNames: [
460
+ "Janvier",
461
+ "F\xE9vrier",
462
+ "Mars",
463
+ "Avril",
464
+ "Mai",
465
+ "Juin",
466
+ "Juillet",
467
+ "Ao\xFBt",
468
+ "Septembre",
469
+ "Octobre",
470
+ "Novembre",
471
+ "D\xE9cembre"
472
+ ],
473
+ units: {
474
+ year: { singular: "ann\xE9e", plural: "ans" },
475
+ month: { singular: "mois", plural: "mois" },
476
+ week: { singular: "semaine", plural: "semaines" },
477
+ day: { singular: "jour", plural: "jours" },
478
+ hour: { singular: "heure", plural: "heures" },
479
+ minute: { singular: "minute", plural: "minutes" },
480
+ second: { singular: "seconde", plural: "secondes" }
481
+ },
482
+ words: {
483
+ every: "chaque",
484
+ weekday: "jour de semaine",
485
+ on: "le",
486
+ in: "dans",
487
+ on_the: "le",
488
+ day_of_month: "jour du mois",
489
+ day_of_year: "jour de l'ann\xE9e",
490
+ in_week: "dans la semaine",
491
+ at: "\xE0",
492
+ at_minute: "\xE0 la minute",
493
+ at_second: "\xE0 la seconde",
494
+ until: "jusqu'\xE0",
495
+ for: "pendant",
496
+ time: "fois",
497
+ times: "fois",
498
+ instance: "occurrence",
499
+ week_starts_on: "la semaine commence le",
500
+ with: "avec",
501
+ additional_date: "date suppl\xE9mentaire",
502
+ additional_dates: "dates suppl\xE9mentaires",
503
+ excluding: "en excluant",
504
+ date: "date",
505
+ dates: "dates",
506
+ and: "et",
507
+ last: "dernier"
508
+ },
509
+ ordinal: (n) => {
510
+ const abs = Math.abs(n);
511
+ if (n < 0) return "dernier";
512
+ if (abs === 1) return "1er";
513
+ return `${abs}e`;
514
+ }
515
+ };
516
+ var ALL_LOCALES = { en, de, es, hi, yue, ar, he, zh, fr };
517
+ var env = typeof process !== "undefined" && process.env ? process.env.TOTEXT_LANGS : void 0;
518
+ var active = env ? env.split(",").map((s) => s.trim()).filter(Boolean) : Object.keys(ALL_LOCALES);
519
+ var LOCALES = {};
520
+ for (const l of active) {
521
+ if (ALL_LOCALES[l]) LOCALES[l] = ALL_LOCALES[l];
522
+ }
523
+ function defaultOrdinal(n) {
524
+ const abs = Math.abs(n);
525
+ const suffix = abs % 10 === 1 && abs % 100 !== 11 ? "st" : abs % 10 === 2 && abs % 100 !== 12 ? "nd" : abs % 10 === 3 && abs % 100 !== 13 ? "rd" : "th";
526
+ return n < 0 ? `last` : `${abs}${suffix}`;
527
+ }
528
+ function ordinal(n, locale) {
529
+ return locale.ordinal ? locale.ordinal(n) : defaultOrdinal(n);
530
+ }
531
+ function list(arr, mapFn = (x) => `${x}`, final) {
532
+ const mapped = arr.map(mapFn);
533
+ if (mapped.length === 1) return mapped[0];
534
+ return mapped.slice(0, -1).join(", ") + ` ${final} ` + mapped[mapped.length - 1];
535
+ }
536
+ function formatByDayToken(tok, locale) {
537
+ if (typeof tok === "number") return tok.toString();
538
+ const m = tok.match(/^([+-]?\d+)?(MO|TU|WE|TH|FR|SA|SU)$/);
539
+ if (!m) return tok;
540
+ const ord = m[1] ? parseInt(m[1], 10) : 0;
541
+ const weekdayMap = {
542
+ MO: 0,
543
+ TU: 1,
544
+ WE: 2,
545
+ TH: 3,
546
+ FR: 4,
547
+ SA: 5,
548
+ SU: 6
549
+ };
550
+ const idx = weekdayMap[m[2]];
551
+ const name = locale.weekdayNames[idx];
552
+ if (ord === 0) return name;
553
+ if (ord === -1) return `${locale.words.last} ${name}`;
554
+ return `${ordinal(ord, locale)} ${name}`;
555
+ }
556
+ function formatTime(hour, minute = 0, second = 0) {
557
+ const hr12 = (hour + 11) % 12 + 1;
558
+ const ampm = hour < 12 ? "AM" : "PM";
559
+ const mm = String(minute).padStart(2, "0");
560
+ const ss = String(second).padStart(2, "0");
561
+ if (second) {
562
+ return `${hr12}:${mm}:${ss} ${ampm}`;
563
+ }
564
+ if (minute) {
565
+ return `${hr12}:${mm} ${ampm}`;
566
+ }
567
+ return `${hr12} ${ampm}`;
568
+ }
569
+ function tzAbbreviation(zdt) {
570
+ const parts = new Intl.DateTimeFormat("en-US", {
571
+ timeZone: zdt.timeZoneId,
572
+ timeZoneName: "short",
573
+ hour: "numeric"
574
+ }).formatToParts(new Date(zdt.epochMilliseconds));
575
+ const tzPart = parts.find((p) => p.type === "timeZoneName");
576
+ return (tzPart == null ? void 0 : tzPart.value) || zdt.timeZoneId;
577
+ }
578
+ function toText(input, locale) {
579
+ const rule = typeof input === "string" ? new RRuleTemporal({ rruleString: input }) : input;
580
+ const opts = rule.options();
581
+ const lang = (locale != null ? locale : Intl.DateTimeFormat().resolvedOptions().locale).split("-")[0];
582
+ const data = LOCALES[lang] || en;
583
+ const {
584
+ freq,
585
+ interval = 1,
586
+ count,
587
+ until,
588
+ byDay,
589
+ byHour,
590
+ byMinute,
591
+ bySecond,
592
+ byMonth,
593
+ byMonthDay,
594
+ byYearDay,
595
+ byWeekNo,
596
+ bySetPos,
597
+ wkst,
598
+ rDate,
599
+ exDate
600
+ } = opts;
601
+ const parts = [data.words.every];
602
+ const baseKey = {
603
+ YEARLY: "year",
604
+ MONTHLY: "month",
605
+ WEEKLY: "week",
606
+ DAILY: "day",
607
+ HOURLY: "hour",
608
+ MINUTELY: "minute",
609
+ SECONDLY: "second"
610
+ }[freq];
611
+ const base = data.units[baseKey];
612
+ const daysNormalized = byDay == null ? void 0 : byDay.map((d) => d.toUpperCase());
613
+ const isWeekdays = daysNormalized && daysNormalized.length === 5 && ["MO", "TU", "WE", "TH", "FR"].every((d) => daysNormalized.includes(d));
614
+ const isEveryday = daysNormalized && daysNormalized.length === 7 && ["MO", "TU", "WE", "TH", "FR", "SA", "SU"].every((d) => daysNormalized.includes(d));
615
+ if (freq === "WEEKLY" && interval === 1 && isWeekdays) {
616
+ parts.push(data.words.weekday);
617
+ } else if (freq === "WEEKLY" && interval === 1 && isEveryday) {
618
+ parts.push(data.units.day.singular);
619
+ } else {
620
+ if (interval !== 1) {
621
+ parts.push(interval.toString(), base.plural);
622
+ } else {
623
+ parts.push(base.singular);
624
+ }
625
+ }
626
+ if (freq === "WEEKLY" && byDay && !isWeekdays && !isEveryday) {
627
+ parts.push(
628
+ data.words.on,
629
+ list(byDay, (t) => formatByDayToken(t, data), data.words.and)
630
+ );
631
+ } else if (byDay && freq !== "WEEKLY") {
632
+ parts.push(
633
+ data.words.on,
634
+ list(byDay, (t) => formatByDayToken(t, data), data.words.and)
635
+ );
636
+ }
637
+ if (byMonth) {
638
+ parts.push(
639
+ data.words.in,
640
+ list(byMonth, (m) => data.monthNames[m - 1], data.words.and)
641
+ );
642
+ }
643
+ if (byMonthDay) {
644
+ parts.push(
645
+ data.words.on_the,
646
+ list(byMonthDay, (d) => ordinal(d, data), data.words.and),
647
+ data.words.day_of_month
648
+ );
649
+ }
650
+ if (byYearDay) {
651
+ parts.push(
652
+ data.words.on_the,
653
+ list(byYearDay, (d) => ordinal(d, data), data.words.and),
654
+ data.words.day_of_year
655
+ );
656
+ }
657
+ if (byWeekNo) {
658
+ parts.push(
659
+ data.words.in_week,
660
+ list(byWeekNo, (n) => n.toString(), data.words.and)
661
+ );
662
+ }
663
+ if (byHour) {
664
+ const minutes = byMinute != null ? byMinute : [0];
665
+ const seconds = bySecond != null ? bySecond : [0];
666
+ const times = byHour.flatMap((h) => minutes.flatMap((m) => seconds.map((s) => formatTime(h, m, s))));
667
+ parts.push(data.words.at, list(times, void 0, data.words.and));
668
+ parts.push(tzAbbreviation(opts.dtstart));
669
+ }
670
+ if (!byHour && byMinute) {
671
+ parts.push(data.words.at_minute, list(byMinute, void 0, data.words.and));
672
+ }
673
+ if (!byHour && !byMinute && bySecond) {
674
+ parts.push(data.words.at_second, list(bySecond, void 0, data.words.and));
675
+ }
676
+ if (until) {
677
+ const monthName = data.monthNames[until.month - 1];
678
+ parts.push(data.words.until, `${monthName} ${until.day}, ${until.year}`);
679
+ } else if (count !== void 0) {
680
+ parts.push(data.words.for, count.toString(), count === 1 ? data.words.time : data.words.times);
681
+ }
682
+ if (bySetPos) {
683
+ parts.push(
684
+ data.words.on_the,
685
+ list(bySetPos, (n) => ordinal(n, data), data.words.and),
686
+ data.words.instance
687
+ );
688
+ }
689
+ if (wkst) {
690
+ const wkName = formatByDayToken(wkst, data);
691
+ parts.push(data.words.week_starts_on, wkName);
692
+ }
693
+ if (rDate && rDate.length) {
694
+ parts.push(
695
+ data.words.with,
696
+ `${rDate.length}`,
697
+ rDate.length === 1 ? data.words.additional_date : data.words.additional_dates
698
+ );
699
+ }
700
+ if (exDate && exDate.length) {
701
+ parts.push(data.words.excluding, `${exDate.length}`, exDate.length === 1 ? data.words.date : data.words.dates);
702
+ }
703
+ if (opts.rscale) {
704
+ const rscale = opts.rscale;
705
+ const skip = opts.skip;
706
+ parts.push(`(RSCALE=${rscale}${skip ? `;SKIP=${skip}` : ""})`);
707
+ }
708
+ return parts.join(" ");
709
+ }
710
+ export {
711
+ toText
712
+ };