@dofek/training 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -2
- package/dist/activity-heatmap.d.ts +19 -0
- package/dist/activity-heatmap.d.ts.map +1 -0
- package/dist/activity-heatmap.js +74 -0
- package/dist/activity-heatmap.js.map +1 -0
- package/dist/activity-icons.d.ts.map +1 -1
- package/dist/activity-icons.js +2 -1
- package/dist/activity-icons.js.map +1 -1
- package/dist/activity-types.d.ts +524 -0
- package/dist/activity-types.d.ts.map +1 -0
- package/dist/activity-types.js +399 -0
- package/dist/activity-types.js.map +1 -0
- package/dist/derived-cardio.d.ts.map +1 -1
- package/dist/derived-cardio.js +1 -6
- package/dist/derived-cardio.js.map +1 -1
- package/dist/endurance-types.d.ts +5 -5
- package/dist/endurance-types.d.ts.map +1 -1
- package/dist/endurance-types.js +4 -14
- package/dist/endurance-types.js.map +1 -1
- package/dist/terminology.d.ts +70 -0
- package/dist/terminology.d.ts.map +1 -0
- package/dist/terminology.js +64 -0
- package/dist/terminology.js.map +1 -0
- package/dist/training-distribution.d.ts +1 -0
- package/dist/training-distribution.d.ts.map +1 -1
- package/dist/training-distribution.js +11 -7
- package/dist/training-distribution.js.map +1 -1
- package/dist/training.d.ts +13 -17
- package/dist/training.d.ts.map +1 -1
- package/dist/training.js +17 -162
- package/dist/training.js.map +1 -1
- package/dist/workout-recommendation.d.ts +0 -1
- package/dist/workout-recommendation.d.ts.map +1 -1
- package/dist/workout-recommendation.js +2 -7
- package/dist/workout-recommendation.js.map +1 -1
- package/package.json +5 -7
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
export const CANONICAL_ACTIVITY_TYPES = [
|
|
2
|
+
"cycling",
|
|
3
|
+
"running",
|
|
4
|
+
"swimming",
|
|
5
|
+
"walking",
|
|
6
|
+
"hiking",
|
|
7
|
+
"strength",
|
|
8
|
+
"yoga",
|
|
9
|
+
"pilates",
|
|
10
|
+
"tai_chi",
|
|
11
|
+
"mind_and_body",
|
|
12
|
+
"meditation",
|
|
13
|
+
"breathwork",
|
|
14
|
+
"stretching",
|
|
15
|
+
"barre",
|
|
16
|
+
"elliptical",
|
|
17
|
+
"rowing",
|
|
18
|
+
"cardio",
|
|
19
|
+
"hiit",
|
|
20
|
+
"stair_climbing",
|
|
21
|
+
"step_training",
|
|
22
|
+
"jump_rope",
|
|
23
|
+
"fitness_gaming",
|
|
24
|
+
"cross_training",
|
|
25
|
+
"bootcamp",
|
|
26
|
+
"circuit_training",
|
|
27
|
+
"core",
|
|
28
|
+
"boxing",
|
|
29
|
+
"kickboxing",
|
|
30
|
+
"martial_arts",
|
|
31
|
+
"group_exercise",
|
|
32
|
+
"skiing",
|
|
33
|
+
"snowboarding",
|
|
34
|
+
"snow_sports",
|
|
35
|
+
"snowshoeing",
|
|
36
|
+
"skating",
|
|
37
|
+
"surfing",
|
|
38
|
+
"kayaking",
|
|
39
|
+
"sailing",
|
|
40
|
+
"paddling",
|
|
41
|
+
"water_fitness",
|
|
42
|
+
"water_polo",
|
|
43
|
+
"water_sports",
|
|
44
|
+
"diving",
|
|
45
|
+
"snorkeling",
|
|
46
|
+
"tennis",
|
|
47
|
+
"table_tennis",
|
|
48
|
+
"squash",
|
|
49
|
+
"racquetball",
|
|
50
|
+
"badminton",
|
|
51
|
+
"pickleball",
|
|
52
|
+
"padel",
|
|
53
|
+
"basketball",
|
|
54
|
+
"soccer",
|
|
55
|
+
"american_football",
|
|
56
|
+
"australian_football",
|
|
57
|
+
"gaelic_football",
|
|
58
|
+
"rugby",
|
|
59
|
+
"hockey",
|
|
60
|
+
"lacrosse",
|
|
61
|
+
"baseball",
|
|
62
|
+
"softball",
|
|
63
|
+
"volleyball",
|
|
64
|
+
"cricket",
|
|
65
|
+
"handball",
|
|
66
|
+
"golf",
|
|
67
|
+
"disc_golf",
|
|
68
|
+
"climbing",
|
|
69
|
+
"hangboard",
|
|
70
|
+
"dance",
|
|
71
|
+
"triathlon",
|
|
72
|
+
"multisport",
|
|
73
|
+
"disc_sports",
|
|
74
|
+
"equestrian",
|
|
75
|
+
"fencing",
|
|
76
|
+
"fishing",
|
|
77
|
+
"hunting",
|
|
78
|
+
"gymnastics",
|
|
79
|
+
"archery",
|
|
80
|
+
"bowling",
|
|
81
|
+
"curling",
|
|
82
|
+
"wrestling",
|
|
83
|
+
"track_and_field",
|
|
84
|
+
"play",
|
|
85
|
+
"navigation",
|
|
86
|
+
"geocaching",
|
|
87
|
+
"skydiving",
|
|
88
|
+
"paragliding",
|
|
89
|
+
"preparation_and_recovery",
|
|
90
|
+
"transition",
|
|
91
|
+
"other",
|
|
92
|
+
];
|
|
93
|
+
export const ACTIVITY_MODALITIES = [
|
|
94
|
+
"road",
|
|
95
|
+
"mountain",
|
|
96
|
+
"gravel",
|
|
97
|
+
"indoor",
|
|
98
|
+
"virtual",
|
|
99
|
+
"electric",
|
|
100
|
+
"cyclocross",
|
|
101
|
+
"track",
|
|
102
|
+
"bmx",
|
|
103
|
+
"trail",
|
|
104
|
+
"open_water",
|
|
105
|
+
"functional",
|
|
106
|
+
"mixed",
|
|
107
|
+
"mixed_metabolic",
|
|
108
|
+
"cross_country",
|
|
109
|
+
"downhill",
|
|
110
|
+
"paddleboard",
|
|
111
|
+
"ice",
|
|
112
|
+
"cardio",
|
|
113
|
+
"social",
|
|
114
|
+
"hand_cycle",
|
|
115
|
+
"wheelchair",
|
|
116
|
+
"cooldown",
|
|
117
|
+
];
|
|
118
|
+
export const LEGACY_ACTIVITY_TYPES = [
|
|
119
|
+
"cycling",
|
|
120
|
+
"road_cycling",
|
|
121
|
+
"mountain_biking",
|
|
122
|
+
"gravel_cycling",
|
|
123
|
+
"indoor_cycling",
|
|
124
|
+
"virtual_cycling",
|
|
125
|
+
"e_bike_cycling",
|
|
126
|
+
"cyclocross",
|
|
127
|
+
"track_cycling",
|
|
128
|
+
"bmx",
|
|
129
|
+
"running",
|
|
130
|
+
"trail_running",
|
|
131
|
+
"swimming",
|
|
132
|
+
"open_water_swimming",
|
|
133
|
+
"walking",
|
|
134
|
+
"hiking",
|
|
135
|
+
"strength",
|
|
136
|
+
"strength_training",
|
|
137
|
+
"functional_strength",
|
|
138
|
+
"gym",
|
|
139
|
+
"yoga",
|
|
140
|
+
"pilates",
|
|
141
|
+
"tai_chi",
|
|
142
|
+
"mind_and_body",
|
|
143
|
+
"meditation",
|
|
144
|
+
"breathwork",
|
|
145
|
+
"stretching",
|
|
146
|
+
"flexibility",
|
|
147
|
+
"barre",
|
|
148
|
+
"elliptical",
|
|
149
|
+
"rowing",
|
|
150
|
+
"cardio",
|
|
151
|
+
"hiit",
|
|
152
|
+
"mixed_cardio",
|
|
153
|
+
"mixed_metabolic_cardio",
|
|
154
|
+
"stair_climbing",
|
|
155
|
+
"stairmaster",
|
|
156
|
+
"stairs",
|
|
157
|
+
"step_training",
|
|
158
|
+
"jump_rope",
|
|
159
|
+
"fitness_gaming",
|
|
160
|
+
"cross_training",
|
|
161
|
+
"bootcamp",
|
|
162
|
+
"circuit_training",
|
|
163
|
+
"functional_fitness",
|
|
164
|
+
"core",
|
|
165
|
+
"core_training",
|
|
166
|
+
"boxing",
|
|
167
|
+
"kickboxing",
|
|
168
|
+
"martial_arts",
|
|
169
|
+
"group_exercise",
|
|
170
|
+
"skiing",
|
|
171
|
+
"cross_country_skiing",
|
|
172
|
+
"downhill_skiing",
|
|
173
|
+
"snowboarding",
|
|
174
|
+
"snow_sports",
|
|
175
|
+
"snowshoeing",
|
|
176
|
+
"skating",
|
|
177
|
+
"surfing",
|
|
178
|
+
"kayaking",
|
|
179
|
+
"sailing",
|
|
180
|
+
"paddle_sports",
|
|
181
|
+
"paddleboarding",
|
|
182
|
+
"paddling",
|
|
183
|
+
"water_fitness",
|
|
184
|
+
"water_polo",
|
|
185
|
+
"water_sports",
|
|
186
|
+
"aqua_fitness",
|
|
187
|
+
"underwater_diving",
|
|
188
|
+
"diving",
|
|
189
|
+
"snorkeling",
|
|
190
|
+
"tennis",
|
|
191
|
+
"table_tennis",
|
|
192
|
+
"squash",
|
|
193
|
+
"racquetball",
|
|
194
|
+
"badminton",
|
|
195
|
+
"pickleball",
|
|
196
|
+
"padel",
|
|
197
|
+
"paddle_racquet",
|
|
198
|
+
"basketball",
|
|
199
|
+
"soccer",
|
|
200
|
+
"football",
|
|
201
|
+
"american_football",
|
|
202
|
+
"australian_football",
|
|
203
|
+
"rugby",
|
|
204
|
+
"hockey",
|
|
205
|
+
"ice_hockey",
|
|
206
|
+
"lacrosse",
|
|
207
|
+
"baseball",
|
|
208
|
+
"softball",
|
|
209
|
+
"volleyball",
|
|
210
|
+
"cricket",
|
|
211
|
+
"handball",
|
|
212
|
+
"golf",
|
|
213
|
+
"disc_golf",
|
|
214
|
+
"climbing",
|
|
215
|
+
"rock_climbing",
|
|
216
|
+
"dance",
|
|
217
|
+
"dancing",
|
|
218
|
+
"cardio_dance",
|
|
219
|
+
"social_dance",
|
|
220
|
+
"triathlon",
|
|
221
|
+
"multisport",
|
|
222
|
+
"hand_cycling",
|
|
223
|
+
"wheelchair_walk",
|
|
224
|
+
"wheelchair_run",
|
|
225
|
+
"disc_sports",
|
|
226
|
+
"equestrian",
|
|
227
|
+
"fencing",
|
|
228
|
+
"fishing",
|
|
229
|
+
"hunting",
|
|
230
|
+
"gymnastics",
|
|
231
|
+
"archery",
|
|
232
|
+
"bowling",
|
|
233
|
+
"curling",
|
|
234
|
+
"wrestling",
|
|
235
|
+
"track_and_field",
|
|
236
|
+
"play",
|
|
237
|
+
"navigation",
|
|
238
|
+
"geocaching",
|
|
239
|
+
"skydiving",
|
|
240
|
+
"paragliding",
|
|
241
|
+
"preparation_and_recovery",
|
|
242
|
+
"cooldown",
|
|
243
|
+
"transition",
|
|
244
|
+
"other",
|
|
245
|
+
];
|
|
246
|
+
export const LEGACY_ACTIVITY_TYPE_CLASSIFICATIONS = {
|
|
247
|
+
cycling: { canonicalType: "cycling", modality: null },
|
|
248
|
+
road_cycling: { canonicalType: "cycling", modality: "road" },
|
|
249
|
+
mountain_biking: { canonicalType: "cycling", modality: "mountain" },
|
|
250
|
+
gravel_cycling: { canonicalType: "cycling", modality: "gravel" },
|
|
251
|
+
indoor_cycling: { canonicalType: "cycling", modality: "indoor" },
|
|
252
|
+
virtual_cycling: { canonicalType: "cycling", modality: "virtual" },
|
|
253
|
+
e_bike_cycling: { canonicalType: "cycling", modality: "electric" },
|
|
254
|
+
cyclocross: { canonicalType: "cycling", modality: "cyclocross" },
|
|
255
|
+
track_cycling: { canonicalType: "cycling", modality: "track" },
|
|
256
|
+
bmx: { canonicalType: "cycling", modality: "bmx" },
|
|
257
|
+
running: { canonicalType: "running", modality: null },
|
|
258
|
+
trail_running: { canonicalType: "running", modality: "trail" },
|
|
259
|
+
swimming: { canonicalType: "swimming", modality: null },
|
|
260
|
+
open_water_swimming: { canonicalType: "swimming", modality: "open_water" },
|
|
261
|
+
walking: { canonicalType: "walking", modality: null },
|
|
262
|
+
hiking: { canonicalType: "hiking", modality: null },
|
|
263
|
+
strength: { canonicalType: "strength", modality: null },
|
|
264
|
+
strength_training: { canonicalType: "strength", modality: null },
|
|
265
|
+
functional_strength: { canonicalType: "strength", modality: "functional" },
|
|
266
|
+
gym: { canonicalType: "strength", modality: null },
|
|
267
|
+
yoga: { canonicalType: "yoga", modality: null },
|
|
268
|
+
pilates: { canonicalType: "pilates", modality: null },
|
|
269
|
+
tai_chi: { canonicalType: "tai_chi", modality: null },
|
|
270
|
+
mind_and_body: { canonicalType: "mind_and_body", modality: null },
|
|
271
|
+
meditation: { canonicalType: "meditation", modality: null },
|
|
272
|
+
breathwork: { canonicalType: "breathwork", modality: null },
|
|
273
|
+
stretching: { canonicalType: "stretching", modality: null },
|
|
274
|
+
flexibility: { canonicalType: "stretching", modality: null },
|
|
275
|
+
barre: { canonicalType: "barre", modality: null },
|
|
276
|
+
elliptical: { canonicalType: "elliptical", modality: null },
|
|
277
|
+
rowing: { canonicalType: "rowing", modality: null },
|
|
278
|
+
cardio: { canonicalType: "cardio", modality: null },
|
|
279
|
+
hiit: { canonicalType: "hiit", modality: null },
|
|
280
|
+
mixed_cardio: { canonicalType: "cardio", modality: "mixed" },
|
|
281
|
+
mixed_metabolic_cardio: { canonicalType: "cardio", modality: "mixed_metabolic" },
|
|
282
|
+
stair_climbing: { canonicalType: "stair_climbing", modality: null },
|
|
283
|
+
stairmaster: { canonicalType: "stair_climbing", modality: null },
|
|
284
|
+
stairs: { canonicalType: "stair_climbing", modality: null },
|
|
285
|
+
step_training: { canonicalType: "step_training", modality: null },
|
|
286
|
+
jump_rope: { canonicalType: "jump_rope", modality: null },
|
|
287
|
+
fitness_gaming: { canonicalType: "fitness_gaming", modality: null },
|
|
288
|
+
cross_training: { canonicalType: "cross_training", modality: null },
|
|
289
|
+
bootcamp: { canonicalType: "bootcamp", modality: null },
|
|
290
|
+
circuit_training: { canonicalType: "circuit_training", modality: null },
|
|
291
|
+
functional_fitness: { canonicalType: "strength", modality: "functional" },
|
|
292
|
+
core: { canonicalType: "core", modality: null },
|
|
293
|
+
core_training: { canonicalType: "core", modality: null },
|
|
294
|
+
boxing: { canonicalType: "boxing", modality: null },
|
|
295
|
+
kickboxing: { canonicalType: "kickboxing", modality: null },
|
|
296
|
+
martial_arts: { canonicalType: "martial_arts", modality: null },
|
|
297
|
+
group_exercise: { canonicalType: "group_exercise", modality: null },
|
|
298
|
+
skiing: { canonicalType: "skiing", modality: null },
|
|
299
|
+
cross_country_skiing: { canonicalType: "skiing", modality: "cross_country" },
|
|
300
|
+
downhill_skiing: { canonicalType: "skiing", modality: "downhill" },
|
|
301
|
+
snowboarding: { canonicalType: "snowboarding", modality: null },
|
|
302
|
+
snow_sports: { canonicalType: "snow_sports", modality: null },
|
|
303
|
+
snowshoeing: { canonicalType: "snowshoeing", modality: null },
|
|
304
|
+
skating: { canonicalType: "skating", modality: null },
|
|
305
|
+
surfing: { canonicalType: "surfing", modality: null },
|
|
306
|
+
kayaking: { canonicalType: "kayaking", modality: null },
|
|
307
|
+
sailing: { canonicalType: "sailing", modality: null },
|
|
308
|
+
paddle_sports: { canonicalType: "paddling", modality: null },
|
|
309
|
+
paddleboarding: { canonicalType: "paddling", modality: "paddleboard" },
|
|
310
|
+
paddling: { canonicalType: "paddling", modality: null },
|
|
311
|
+
water_fitness: { canonicalType: "water_fitness", modality: null },
|
|
312
|
+
water_polo: { canonicalType: "water_polo", modality: null },
|
|
313
|
+
water_sports: { canonicalType: "water_sports", modality: null },
|
|
314
|
+
aqua_fitness: { canonicalType: "water_fitness", modality: null },
|
|
315
|
+
underwater_diving: { canonicalType: "diving", modality: null },
|
|
316
|
+
diving: { canonicalType: "diving", modality: null },
|
|
317
|
+
snorkeling: { canonicalType: "snorkeling", modality: null },
|
|
318
|
+
tennis: { canonicalType: "tennis", modality: null },
|
|
319
|
+
table_tennis: { canonicalType: "table_tennis", modality: null },
|
|
320
|
+
squash: { canonicalType: "squash", modality: null },
|
|
321
|
+
racquetball: { canonicalType: "racquetball", modality: null },
|
|
322
|
+
badminton: { canonicalType: "badminton", modality: null },
|
|
323
|
+
pickleball: { canonicalType: "pickleball", modality: null },
|
|
324
|
+
padel: { canonicalType: "padel", modality: null },
|
|
325
|
+
paddle_racquet: { canonicalType: "pickleball", modality: null },
|
|
326
|
+
basketball: { canonicalType: "basketball", modality: null },
|
|
327
|
+
soccer: { canonicalType: "soccer", modality: null },
|
|
328
|
+
football: { canonicalType: "american_football", modality: null },
|
|
329
|
+
american_football: { canonicalType: "american_football", modality: null },
|
|
330
|
+
australian_football: { canonicalType: "australian_football", modality: null },
|
|
331
|
+
rugby: { canonicalType: "rugby", modality: null },
|
|
332
|
+
hockey: { canonicalType: "hockey", modality: null },
|
|
333
|
+
ice_hockey: { canonicalType: "hockey", modality: "ice" },
|
|
334
|
+
lacrosse: { canonicalType: "lacrosse", modality: null },
|
|
335
|
+
baseball: { canonicalType: "baseball", modality: null },
|
|
336
|
+
softball: { canonicalType: "softball", modality: null },
|
|
337
|
+
volleyball: { canonicalType: "volleyball", modality: null },
|
|
338
|
+
cricket: { canonicalType: "cricket", modality: null },
|
|
339
|
+
handball: { canonicalType: "handball", modality: null },
|
|
340
|
+
golf: { canonicalType: "golf", modality: null },
|
|
341
|
+
disc_golf: { canonicalType: "disc_golf", modality: null },
|
|
342
|
+
climbing: { canonicalType: "climbing", modality: null },
|
|
343
|
+
rock_climbing: { canonicalType: "climbing", modality: null },
|
|
344
|
+
dance: { canonicalType: "dance", modality: null },
|
|
345
|
+
dancing: { canonicalType: "dance", modality: null },
|
|
346
|
+
cardio_dance: { canonicalType: "dance", modality: "cardio" },
|
|
347
|
+
social_dance: { canonicalType: "dance", modality: "social" },
|
|
348
|
+
triathlon: { canonicalType: "triathlon", modality: null },
|
|
349
|
+
multisport: { canonicalType: "multisport", modality: null },
|
|
350
|
+
hand_cycling: { canonicalType: "cycling", modality: "hand_cycle" },
|
|
351
|
+
wheelchair_walk: { canonicalType: "walking", modality: "wheelchair" },
|
|
352
|
+
wheelchair_run: { canonicalType: "running", modality: "wheelchair" },
|
|
353
|
+
disc_sports: { canonicalType: "disc_sports", modality: null },
|
|
354
|
+
equestrian: { canonicalType: "equestrian", modality: null },
|
|
355
|
+
fencing: { canonicalType: "fencing", modality: null },
|
|
356
|
+
fishing: { canonicalType: "fishing", modality: null },
|
|
357
|
+
hunting: { canonicalType: "hunting", modality: null },
|
|
358
|
+
gymnastics: { canonicalType: "gymnastics", modality: null },
|
|
359
|
+
archery: { canonicalType: "archery", modality: null },
|
|
360
|
+
bowling: { canonicalType: "bowling", modality: null },
|
|
361
|
+
curling: { canonicalType: "curling", modality: null },
|
|
362
|
+
wrestling: { canonicalType: "wrestling", modality: null },
|
|
363
|
+
track_and_field: { canonicalType: "track_and_field", modality: null },
|
|
364
|
+
play: { canonicalType: "play", modality: null },
|
|
365
|
+
navigation: { canonicalType: "navigation", modality: null },
|
|
366
|
+
geocaching: { canonicalType: "geocaching", modality: null },
|
|
367
|
+
skydiving: { canonicalType: "skydiving", modality: null },
|
|
368
|
+
paragliding: { canonicalType: "paragliding", modality: null },
|
|
369
|
+
preparation_and_recovery: { canonicalType: "preparation_and_recovery", modality: null },
|
|
370
|
+
cooldown: { canonicalType: "preparation_and_recovery", modality: "cooldown" },
|
|
371
|
+
transition: { canonicalType: "transition", modality: null },
|
|
372
|
+
other: { canonicalType: "other", modality: null },
|
|
373
|
+
};
|
|
374
|
+
const LEGACY_ACTIVITY_TYPE_SET = new Set(LEGACY_ACTIVITY_TYPES);
|
|
375
|
+
function isLegacyActivityType(activityType) {
|
|
376
|
+
return LEGACY_ACTIVITY_TYPE_SET.has(activityType);
|
|
377
|
+
}
|
|
378
|
+
export function classifyLegacyActivityType(legacyType) {
|
|
379
|
+
return LEGACY_ACTIVITY_TYPE_CLASSIFICATIONS[legacyType];
|
|
380
|
+
}
|
|
381
|
+
export function resolveProviderActivityType(providerType, normalizedType = "other") {
|
|
382
|
+
const rawProviderType = String(providerType);
|
|
383
|
+
if (rawProviderType.trim().length === 0) {
|
|
384
|
+
throw new Error("Provider activity type must be non-empty");
|
|
385
|
+
}
|
|
386
|
+
const classification = isLegacyActivityType(normalizedType)
|
|
387
|
+
? classifyLegacyActivityType(normalizedType)
|
|
388
|
+
: { canonicalType: normalizedType, modality: null };
|
|
389
|
+
return {
|
|
390
|
+
...classification,
|
|
391
|
+
providerType: rawProviderType,
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
export function resolveRawProviderActivityType(providerType) {
|
|
395
|
+
const rawProviderType = String(providerType);
|
|
396
|
+
const normalizedType = isLegacyActivityType(rawProviderType) ? rawProviderType : "other";
|
|
397
|
+
return resolveProviderActivityType(rawProviderType, normalizedType);
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=activity-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-types.js","sourceRoot":"","sources":["../src/activity-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,SAAS;IACT,SAAS;IACT,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,kBAAkB;IAClB,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,cAAc;IACd,aAAa;IACb,aAAa;IACb,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,eAAe;IACf,YAAY;IACZ,cAAc;IACd,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,aAAa;IACb,WAAW;IACX,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,mBAAmB;IACnB,qBAAqB;IACrB,iBAAiB;IACjB,OAAO;IACP,QAAQ;IACR,UAAU;IACV,UAAU;IACV,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;IACV,MAAM;IACN,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,WAAW;IACX,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,SAAS;IACT,SAAS;IACT,SAAS;IACT,YAAY;IACZ,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,iBAAiB;IACjB,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,aAAa;IACb,0BAA0B;IAC1B,YAAY;IACZ,OAAO;CACC,CAAC;AAIX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM;IACN,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;IACZ,OAAO;IACP,KAAK;IACL,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,iBAAiB;IACjB,eAAe;IACf,UAAU;IACV,aAAa;IACb,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,UAAU;CACF,CAAC;AAaX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS;IACT,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,YAAY;IACZ,eAAe;IACf,KAAK;IACL,SAAS;IACT,eAAe;IACf,UAAU;IACV,qBAAqB;IACrB,SAAS;IACT,QAAQ;IACR,UAAU;IACV,mBAAmB;IACnB,qBAAqB;IACrB,KAAK;IACL,MAAM;IACN,SAAS;IACT,SAAS;IACT,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,cAAc;IACd,wBAAwB;IACxB,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,kBAAkB;IAClB,oBAAoB;IACpB,MAAM;IACN,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,aAAa;IACb,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,UAAU;IACV,eAAe;IACf,YAAY;IACZ,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,aAAa;IACb,WAAW;IACX,YAAY;IACZ,OAAO;IACP,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,mBAAmB;IACnB,qBAAqB;IACrB,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;IACV,MAAM;IACN,WAAW;IACX,UAAU;IACV,eAAe;IACf,OAAO;IACP,SAAS;IACT,cAAc;IACd,cAAc;IACd,WAAW;IACX,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,SAAS;IACT,SAAS;IACT,SAAS;IACT,YAAY;IACZ,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,iBAAiB;IACjB,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,aAAa;IACb,0BAA0B;IAC1B,UAAU;IACV,YAAY;IACZ,OAAO;CACC,CAAC;AAKX,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,YAAY,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC5D,eAAe,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;IACnE,cAAc,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAChE,cAAc,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAChE,eAAe,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;IAClE,cAAc,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;IAClE,UAAU,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;IAChE,aAAa,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE;IAC9D,GAAG,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;IAClD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,aAAa,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE;IAC9D,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,mBAAmB,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE;IAC1E,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,iBAAiB,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChE,mBAAmB,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE;IAC1E,GAAG,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClD,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,aAAa,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjE,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,WAAW,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5D,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,YAAY,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;IAC5D,sBAAsB,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IAChF,cAAc,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnE,WAAW,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChE,MAAM,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,aAAa,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjE,SAAS,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,cAAc,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnE,cAAc,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnE,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,gBAAgB,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvE,kBAAkB,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE;IACzE,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxD,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,YAAY,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/D,cAAc,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnE,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,oBAAoB,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;IAC5E,eAAe,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE;IAClE,YAAY,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/D,WAAW,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7D,WAAW,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,aAAa,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5D,cAAc,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE;IACtE,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,aAAa,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjE,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,YAAY,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/D,YAAY,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChE,iBAAiB,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9D,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,YAAY,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/D,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,WAAW,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7D,SAAS,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,cAAc,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/D,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,QAAQ,EAAE,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChE,iBAAiB,EAAE,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzE,mBAAmB,EAAE,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7E,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,UAAU,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxD,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,SAAS,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,aAAa,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5D,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,YAAY,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC5D,YAAY,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC5D,SAAS,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,YAAY,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;IAClE,eAAe,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;IACrE,cAAc,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;IACpE,WAAW,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7D,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,SAAS,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,eAAe,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrE,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,SAAS,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,WAAW,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7D,wBAAwB,EAAE,EAAE,aAAa,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvF,QAAQ,EAAE,EAAE,aAAa,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC7E,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3D,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;CACoB,CAAC;AAExE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;AAExE,SAAS,oBAAoB,CAAC,YAAoB;IAChD,OAAO,wBAAwB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAA8B;IACvE,OAAO,oCAAoC,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,YAA6B,EAC7B,iBAAyC,OAAO;IAEhD,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,cAAc,GAAG,oBAAoB,CAAC,cAAc,CAAC;QACzD,CAAC,CAAC,0BAA0B,CAAC,cAAc,CAAC;QAC5C,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEtD,OAAO;QACL,GAAG,cAAc;QACjB,YAAY,EAAE,eAAe;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,YAA6B;IAE7B,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;IACzF,OAAO,2BAA2B,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-cardio.d.ts","sourceRoot":"","sources":["../src/derived-cardio.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"derived-cardio.d.ts","sourceRoot":"","sources":["../src/derived-cardio.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAiBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAoB9E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CA+ClF;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,CAa3F;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,IAAI,MAAM,CAEjF;AAED,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAIlF"}
|
package/dist/derived-cardio.js
CHANGED
|
@@ -9,12 +9,7 @@ const MAX_ACSM_GRADE = 0.15;
|
|
|
9
9
|
const RUNNING_SPEED_THRESHOLD_METERS_PER_MINUTE = 134;
|
|
10
10
|
const MIN_HEART_RATE_RESERVE_FRACTION = 0.6;
|
|
11
11
|
const MAX_HEART_RATE_RESERVE_FRACTION = 1;
|
|
12
|
-
const SUPPORTED_OUTDOOR_VO2_MAX_ACTIVITY_TYPES = [
|
|
13
|
-
"running",
|
|
14
|
-
"trail_running",
|
|
15
|
-
"walking",
|
|
16
|
-
"hiking",
|
|
17
|
-
];
|
|
12
|
+
const SUPPORTED_OUTDOOR_VO2_MAX_ACTIVITY_TYPES = ["running", "walking", "hiking"];
|
|
18
13
|
export function estimateCyclingVo2Max(input) {
|
|
19
14
|
if (!Number.isFinite(input.fiveMinutePowerWatts)) {
|
|
20
15
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-cardio.js","sourceRoot":"","sources":["../src/derived-cardio.ts"],"names":[],"mappings":"AAaA,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAC5C,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAEtC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAC5C,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAC7C,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,yCAAyC,GAAG,GAAG,CAAC;AACtD,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAC5C,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAE1C,MAAM,wCAAwC,GAAG
|
|
1
|
+
{"version":3,"file":"derived-cardio.js","sourceRoot":"","sources":["../src/derived-cardio.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Used to filter training queries (HR zones, polarization, ramp rate, etc.)
|
|
6
6
|
* so that strength training, yoga, etc. don't skew intensity metrics.
|
|
7
7
|
*/
|
|
8
|
-
export declare const ENDURANCE_ACTIVITY_TYPES: readonly ["cycling", "
|
|
8
|
+
export declare const ENDURANCE_ACTIVITY_TYPES: readonly ["cycling", "running", "swimming", "walking", "hiking"];
|
|
9
9
|
export type EnduranceActivityType = (typeof ENDURANCE_ACTIVITY_TYPES)[number];
|
|
10
10
|
/** Check whether an activity type is endurance (cardio). */
|
|
11
11
|
export declare function isEnduranceActivity(activityType: string): activityType is EnduranceActivityType;
|
|
@@ -14,8 +14,8 @@ export declare function isEnduranceActivity(activityType: string): activityType
|
|
|
14
14
|
* Speed and distance are not physically meaningful for these — the values
|
|
15
15
|
* are simulated by the device or platform.
|
|
16
16
|
*/
|
|
17
|
-
export declare const
|
|
18
|
-
export type
|
|
19
|
-
/** Check whether an activity
|
|
20
|
-
export declare function
|
|
17
|
+
export declare const INDOOR_CYCLING_MODALITIES: readonly ["indoor", "virtual"];
|
|
18
|
+
export type IndoorCyclingModality = (typeof INDOOR_CYCLING_MODALITIES)[number];
|
|
19
|
+
/** Check whether an activity modality is stationary trainer or virtual riding. */
|
|
20
|
+
export declare function isIndoorCyclingModality(modality: string | null): modality is IndoorCyclingModality;
|
|
21
21
|
//# sourceMappingURL=endurance-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endurance-types.d.ts","sourceRoot":"","sources":["../src/endurance-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"endurance-types.d.ts","sourceRoot":"","sources":["../src/endurance-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,wBAAwB,kEAM3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,qBAAqB,CAE/F;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,gCAAiC,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,kFAAkF;AAClF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,QAAQ,IAAI,qBAAqB,CAEnC"}
|
package/dist/endurance-types.js
CHANGED
|
@@ -7,16 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export const ENDURANCE_ACTIVITY_TYPES = [
|
|
9
9
|
"cycling",
|
|
10
|
-
"road_cycling",
|
|
11
|
-
"mountain_biking",
|
|
12
|
-
"gravel_cycling",
|
|
13
|
-
"indoor_cycling",
|
|
14
|
-
"virtual_cycling",
|
|
15
|
-
"e_bike_cycling",
|
|
16
|
-
"cyclocross",
|
|
17
|
-
"track_cycling",
|
|
18
|
-
"bmx",
|
|
19
|
-
"hand_cycling",
|
|
20
10
|
"running",
|
|
21
11
|
"swimming",
|
|
22
12
|
"walking",
|
|
@@ -31,9 +21,9 @@ export function isEnduranceActivity(activityType) {
|
|
|
31
21
|
* Speed and distance are not physically meaningful for these — the values
|
|
32
22
|
* are simulated by the device or platform.
|
|
33
23
|
*/
|
|
34
|
-
export const
|
|
35
|
-
/** Check whether an activity
|
|
36
|
-
export function
|
|
37
|
-
return
|
|
24
|
+
export const INDOOR_CYCLING_MODALITIES = ["indoor", "virtual"];
|
|
25
|
+
/** Check whether an activity modality is stationary trainer or virtual riding. */
|
|
26
|
+
export function isIndoorCyclingModality(modality) {
|
|
27
|
+
return INDOOR_CYCLING_MODALITIES.some((value) => value === modality);
|
|
38
28
|
}
|
|
39
29
|
//# sourceMappingURL=endurance-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endurance-types.js","sourceRoot":"","sources":["../src/endurance-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,
|
|
1
|
+
{"version":3,"file":"endurance-types.js","sourceRoot":"","sources":["../src/endurance-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;CACA,CAAC;AAIX,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAU,CAAC;AAIxE,kFAAkF;AAClF,MAAM,UAAU,uBAAuB,CACrC,QAAuB;IAEvB,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export interface TrainingTerminologyEntry {
|
|
2
|
+
readonly plainLabel: string;
|
|
3
|
+
readonly plainDescription: string;
|
|
4
|
+
readonly technicalName: string;
|
|
5
|
+
readonly details: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* User-facing names for training metrics. Plain labels belong in headings and
|
|
9
|
+
* chart series; technical names and calculation descriptions belong in details.
|
|
10
|
+
*/
|
|
11
|
+
export declare const TRAINING_TERMINOLOGY: {
|
|
12
|
+
readonly intensityDistribution: {
|
|
13
|
+
readonly plainLabel: "Heart-rate zone distribution";
|
|
14
|
+
readonly plainDescription: "Shows how recorded heart-rate time is distributed across effort zones.";
|
|
15
|
+
readonly technicalName: "Karvonen five-zone model";
|
|
16
|
+
readonly details: "Heart-rate time is grouped into five intensity zones using heart-rate reserve.";
|
|
17
|
+
};
|
|
18
|
+
readonly workloadRatio: {
|
|
19
|
+
readonly plainLabel: "Recent-to-baseline workload ratio";
|
|
20
|
+
readonly plainDescription: "Compares recent training load with the latest baseline period.";
|
|
21
|
+
readonly technicalName: "Acute-to-chronic workload ratio (ACWR)";
|
|
22
|
+
readonly details: "Compares load from the latest 7 days with an equivalent 7-day baseline from the latest 28 days. This is descriptive context, not a safe range or an injury prediction.";
|
|
23
|
+
};
|
|
24
|
+
readonly normalizedPower: {
|
|
25
|
+
readonly plainLabel: "Effort-adjusted power";
|
|
26
|
+
readonly plainDescription: "Power adjusted to reflect the extra effort of variable cycling.";
|
|
27
|
+
readonly technicalName: "Normalized Power";
|
|
28
|
+
readonly details: "Uses 30-second rolling average power and fourth-power weighting to represent variable cycling effort.";
|
|
29
|
+
};
|
|
30
|
+
readonly criticalPower: {
|
|
31
|
+
readonly plainLabel: "Sustainable cycling power";
|
|
32
|
+
readonly plainDescription: "Shows the cycling power estimated for longer efforts.";
|
|
33
|
+
readonly technicalName: "Critical Power";
|
|
34
|
+
readonly details: "A power-duration model estimates the longer-effort power level and the finite work available above it.";
|
|
35
|
+
};
|
|
36
|
+
readonly anaerobicWorkCapacity: {
|
|
37
|
+
readonly plainLabel: "Short-burst power reserve";
|
|
38
|
+
readonly plainDescription: "Shows the estimated power reserve available for short bursts.";
|
|
39
|
+
readonly technicalName: "W′ (anaerobic work capacity)";
|
|
40
|
+
readonly details: "The model's finite work term represents the estimated power reserve above sustainable power.";
|
|
41
|
+
};
|
|
42
|
+
readonly polarization: {
|
|
43
|
+
readonly plainLabel: "Easy-to-hard training balance";
|
|
44
|
+
readonly plainDescription: "Shows the balance of easy, threshold, and high-intensity cycling.";
|
|
45
|
+
readonly valueLabel: "Easy-to-hard balance";
|
|
46
|
+
readonly technicalName: "Polarization Index (Treff three-zone model)";
|
|
47
|
+
readonly details: "Summarizes the recorded distribution of easy, threshold, and high-intensity cycling.";
|
|
48
|
+
};
|
|
49
|
+
readonly monotony: {
|
|
50
|
+
readonly plainLabel: "Training variety and total load";
|
|
51
|
+
readonly plainDescription: "Shows how varied your weekly training load is.";
|
|
52
|
+
readonly valueLabel: "Training variety";
|
|
53
|
+
readonly strainLabel: "Weekly load strain";
|
|
54
|
+
readonly technicalName: "Training Monotony (Foster method)";
|
|
55
|
+
readonly details: "Describes how evenly cycling training load is distributed across each calendar week.";
|
|
56
|
+
};
|
|
57
|
+
readonly gradeAdjustedPace: {
|
|
58
|
+
readonly plainLabel: "Effort-adjusted pace for grade";
|
|
59
|
+
readonly plainDescription: "Shows walking or hiking pace adjusted for slopes.";
|
|
60
|
+
readonly technicalName: "Grade-adjusted pace (Minetti slope-cost model)";
|
|
61
|
+
readonly details: "Adjusts walking or hiking pace for the estimated energy cost of the recorded slope.";
|
|
62
|
+
};
|
|
63
|
+
readonly estimatedOneRepMax: {
|
|
64
|
+
readonly plainLabel: "Estimated single-rep strength";
|
|
65
|
+
readonly plainDescription: "Shows the estimated maximum weight for one repetition.";
|
|
66
|
+
readonly technicalName: "Estimated 1-Rep Max (e1RM)";
|
|
67
|
+
readonly details: "Uses the Epley formula: estimated max = weight × (1 + repetitions ÷ 30).";
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=terminology.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminology.d.ts","sourceRoot":"","sources":["../src/terminology.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DqD,CAAC"}
|