@sency/react-native-smkit-ui 2.2.1 → 2.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.
Files changed (30) hide show
  1. package/README.md +218 -65
  2. package/android/build.gradle +3 -1
  3. package/android/src/main/java/com/smkituilibrary/SmkitUiLibraryModule.kt +238 -5
  4. package/android/src/main/java/com/smkituilibrary/mapper/SMMapper.kt +70 -10
  5. package/android/src/main/java/com/smkituilibrary/model/SMKitExercise.kt +40 -0
  6. package/android/src/main/java/com/smkituilibrary/model/SMKitWorkout.kt +8 -0
  7. package/android/src/main/java/com/smkituilibrary/model/SMKitWorkoutConfig.kt +2 -0
  8. package/android/src/main/java/com/smkituilibrary/model/SMUserData.kt +5 -1
  9. package/ios/SMKitUIManager.mm +33 -11
  10. package/ios/SMKitUIManager.swift +237 -36
  11. package/lib/commonjs/SMWorkout.js +239 -177
  12. package/lib/commonjs/SMWorkout.js.map +1 -1
  13. package/lib/commonjs/index.js +187 -5
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/module/SMWorkout.js +232 -181
  16. package/lib/module/SMWorkout.js.map +1 -1
  17. package/lib/module/index.js +165 -5
  18. package/lib/module/index.js.map +1 -1
  19. package/package.json +2 -2
  20. package/react-native-smkit-ui.podspec +2 -2
  21. package/src/SMWorkout.tsx +353 -176
  22. package/src/index.tsx +167 -8
  23. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  24. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  25. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  26. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  27. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  28. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  29. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  30. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
@@ -1,7 +1,24 @@
1
- /**
2
- * Enum representing assessment types.
3
- * @enum {string}
4
- */
1
+ function withoutUndefined(value) {
2
+ return Object.entries(value).reduce((result, [key, item]) => {
3
+ if (item !== undefined) {
4
+ result[key] = item;
5
+ }
6
+ return result;
7
+ }, {});
8
+ }
9
+ function serializeGuidanceVideoSegments(segments) {
10
+ if (segments === undefined) {
11
+ return undefined;
12
+ }
13
+ return Object.entries(segments).reduce((result, [key, segment]) => {
14
+ result[key] = segment instanceof GuidanceVideoSegment ? segment.toJSON() : withoutUndefined({
15
+ kind: segment.kind,
16
+ startSeconds: segment.startSeconds,
17
+ endSeconds: segment.endSeconds ?? undefined
18
+ });
19
+ return result;
20
+ }, {});
21
+ }
5
22
  export let AssessmentTypes = /*#__PURE__*/function (AssessmentTypes) {
6
23
  AssessmentTypes["Fitness"] = "fitness";
7
24
  AssessmentTypes["Custom"] = "custom";
@@ -19,65 +36,39 @@ export let PauseType = /*#__PURE__*/function (PauseType) {
19
36
  PauseType["Switch"] = "switchExercise";
20
37
  return PauseType;
21
38
  }({});
22
-
23
- /**
24
- * Enum representing UI elements that can be displayed during workouts.
25
- * @enum {string}
26
- */
27
39
  export let UIElement = /*#__PURE__*/function (UIElement) {
28
40
  UIElement["RepsCounter"] = "repsCounter";
29
41
  UIElement["Timer"] = "timer";
30
42
  UIElement["GaugeOfMotion"] = "gaugeOfMotion";
43
+ UIElement["Skeleton"] = "skeleton";
44
+ UIElement["HoldingPosition"] = "holdingPosition";
45
+ UIElement["CountdownTimer"] = "countdownTimer";
46
+ UIElement["QuickMotion"] = "quickMotion";
31
47
  return UIElement;
32
48
  }({});
33
-
34
- /**
35
- * Enum representing body zones targeted in workouts.
36
- * @enum {string}
37
- */
38
49
  export let BodyZone = /*#__PURE__*/function (BodyZone) {
39
50
  BodyZone["UpperBody"] = "UpperBody";
40
51
  BodyZone["LowerBody"] = "LowerBody";
41
52
  BodyZone["FullBody"] = "FullBody";
42
53
  return BodyZone;
43
54
  }({});
44
-
45
- /**
46
- * Enum representing workout difficulty levels.
47
- * @enum {string}
48
- */
49
55
  export let WorkoutDifficulty = /*#__PURE__*/function (WorkoutDifficulty) {
50
56
  WorkoutDifficulty["LowDifficulty"] = "LowDifficulty";
51
57
  WorkoutDifficulty["MidDifficulty"] = "MidDifficulty";
52
58
  WorkoutDifficulty["HighDifficulty"] = "HighDifficulty";
53
59
  return WorkoutDifficulty;
54
60
  }({});
55
-
56
- /**
57
- * Enum representing workout durations.
58
- * @enum {string}
59
- */
60
61
  export let WorkoutDuration = /*#__PURE__*/function (WorkoutDuration) {
61
62
  WorkoutDuration["Short"] = "Short";
62
63
  WorkoutDuration["Long"] = "Long";
63
64
  return WorkoutDuration;
64
65
  }({});
65
-
66
- /**
67
- * Enum representing different types of scoring methods.
68
- * @enum {string}
69
- */
70
66
  export let ScoringType = /*#__PURE__*/function (ScoringType) {
71
67
  ScoringType["Rom"] = "rom";
72
68
  ScoringType["Time"] = "time";
73
69
  ScoringType["Reps"] = "reps";
74
70
  return ScoringType;
75
71
  }({});
76
-
77
- /**
78
- * Enum representing gender options for user data.
79
- * @enum {string}
80
- */
81
72
  export let Gender = /*#__PURE__*/function (Gender) {
82
73
  Gender["Female"] = "Female";
83
74
  Gender["Male"] = "Male";
@@ -89,27 +80,51 @@ export let Language = /*#__PURE__*/function (Language) {
89
80
  Language["Hebrew"] = "he";
90
81
  return Language;
91
82
  }({});
92
-
93
- /**
94
- * Enum representing the exercise rep counter prefrence.
95
- * @enum {string}
96
- */
97
83
  export let CounterPreferences = /*#__PURE__*/function (CounterPreferences) {
98
84
  CounterPreferences["Default"] = "Default";
99
85
  CounterPreferences["PerfectOnly"] = "PerfectOnly";
100
86
  return CounterPreferences;
101
87
  }({});
102
-
103
- /**
104
- * Enum representing the workout couser type.
105
- * @enum {string}
106
- */
107
88
  export let EndExercisePreferences = /*#__PURE__*/function (EndExercisePreferences) {
108
89
  EndExercisePreferences["Default"] = "Default";
109
- //on timer end
110
- EndExercisePreferences["TargetBased"] = "TargetBased"; //on target reached
90
+ EndExercisePreferences["TargetBased"] = "TargetBased";
111
91
  return EndExercisePreferences;
112
92
  }({});
93
+ export let ColorTheme = /*#__PURE__*/function (ColorTheme) {
94
+ ColorTheme["Blue"] = "blue";
95
+ ColorTheme["Green"] = "green";
96
+ ColorTheme["Purple"] = "purple";
97
+ ColorTheme["Orange"] = "orange";
98
+ ColorTheme["Silver"] = "silver";
99
+ ColorTheme["Gold"] = "gold";
100
+ ColorTheme["Pink"] = "pink";
101
+ return ColorTheme;
102
+ }({});
103
+ export let PoseModelChoice = /*#__PURE__*/function (PoseModelChoice) {
104
+ PoseModelChoice["AdaptiveChoice"] = "AdaptiveChoice";
105
+ PoseModelChoice["Prime"] = "Prime";
106
+ PoseModelChoice["Pro"] = "Pro";
107
+ PoseModelChoice["Lite"] = "Lite";
108
+ PoseModelChoice["UltraLite"] = "UltraLite";
109
+ PoseModelChoice["Basic"] = "Basic";
110
+ return PoseModelChoice;
111
+ }({});
112
+ export let PhonePosition = /*#__PURE__*/function (PhonePosition) {
113
+ PhonePosition["Floor"] = "floor";
114
+ PhonePosition["Elevated"] = "elevated";
115
+ return PhonePosition;
116
+ }({});
117
+ export let RowingFeedbackLevel = /*#__PURE__*/function (RowingFeedbackLevel) {
118
+ RowingFeedbackLevel["Expert"] = "expert";
119
+ RowingFeedbackLevel["Advanced"] = "advanced";
120
+ RowingFeedbackLevel["Beginner"] = "beginner";
121
+ return RowingFeedbackLevel;
122
+ }({});
123
+ export let GuidanceVideoSegmentKind = /*#__PURE__*/function (GuidanceVideoSegmentKind) {
124
+ GuidanceVideoSegmentKind["Freeze"] = "freeze";
125
+ GuidanceVideoSegmentKind["Play"] = "play";
126
+ return GuidanceVideoSegmentKind;
127
+ }({});
113
128
  export let SkeletonPreset = /*#__PURE__*/function (SkeletonPreset) {
114
129
  SkeletonPreset["Default"] = "defaultPreset";
115
130
  SkeletonPreset["MinimalDots"] = "minimalDots";
@@ -193,180 +208,216 @@ export let SkeletonColorOption = /*#__PURE__*/function (SkeletonColorOption) {
193
208
  return SkeletonColorOption;
194
209
  }({});
195
210
  export class SkeletonConfig {}
196
-
197
- /**
198
- * Class representing a workout.
199
- */
211
+ export class GuidanceVideoSegment {
212
+ constructor(kind, startSeconds, endSeconds = null) {
213
+ this.kind = kind;
214
+ this.startSeconds = startSeconds;
215
+ this.endSeconds = endSeconds;
216
+ }
217
+ static freeze(at) {
218
+ return new GuidanceVideoSegment(GuidanceVideoSegmentKind.Freeze, at, at);
219
+ }
220
+ static play(from, to = null) {
221
+ return new GuidanceVideoSegment(GuidanceVideoSegmentKind.Play, from, to);
222
+ }
223
+ toJSON() {
224
+ return withoutUndefined({
225
+ kind: this.kind,
226
+ startSeconds: this.startSeconds,
227
+ endSeconds: this.endSeconds ?? undefined
228
+ });
229
+ }
230
+ }
231
+ export class StretchSetConfig {
232
+ constructor(repetitions, secondsPerStretch, options = {}) {
233
+ this.enabled = options.enabled ?? true;
234
+ this.repetitions = repetitions;
235
+ this.secondsPerStretch = secondsPerStretch;
236
+ this.restSecondsBetweenStretches = options.restSecondsBetweenStretches ?? 3;
237
+ this.introSoundKey = options.introSoundKey ?? null;
238
+ this.positionDetectors = options.positionDetectors ?? null;
239
+ }
240
+ toJSON() {
241
+ return withoutUndefined({
242
+ enabled: this.enabled,
243
+ repetitions: this.repetitions,
244
+ secondsPerStretch: this.secondsPerStretch,
245
+ restSecondsBetweenStretches: this.restSecondsBetweenStretches,
246
+ introSoundKey: this.introSoundKey,
247
+ positionDetectors: this.positionDetectors
248
+ });
249
+ }
250
+ }
251
+ export class SMExercise {
252
+ constructor(prettyName, totalSeconds, videoInstruction, exerciseIntro, uiElements, detector, exerciseClosure, scoringParams, options = {}) {
253
+ this.prettyName = prettyName ?? null;
254
+ this.totalSeconds = totalSeconds ?? null;
255
+ this.videoInstruction = videoInstruction ?? null;
256
+ this.exerciseIntro = exerciseIntro ?? null;
257
+ this.uiElements = uiElements ?? null;
258
+ this.detector = detector;
259
+ this.exerciseClosure = exerciseClosure ?? null;
260
+ this.scoringParams = scoringParams ?? null;
261
+ this.options = options;
262
+ }
263
+ toJSON() {
264
+ var _this$scoringParams, _this$options$stretch;
265
+ return withoutUndefined({
266
+ name: this.prettyName,
267
+ prettyName: this.prettyName,
268
+ totalSeconds: this.totalSeconds,
269
+ videoInstruction: this.videoInstruction,
270
+ exerciseIntro: this.exerciseIntro,
271
+ uiElements: this.uiElements,
272
+ detector: this.detector,
273
+ exerciseClosure: this.exerciseClosure,
274
+ scoringParams: ((_this$scoringParams = this.scoringParams) === null || _this$scoringParams === void 0 ? void 0 : _this$scoringParams.toJSON()) ?? null,
275
+ shortIntro: this.options.shortIntro,
276
+ quickMotionParams: this.options.quickMotionParams ?? undefined,
277
+ rowingFeedbackLevel: this.options.rowingFeedbackLevel ?? undefined,
278
+ phonePosition: this.options.phonePosition ?? undefined,
279
+ guidanceMode: this.options.guidanceMode ?? undefined,
280
+ useWideAngleCamera: this.options.useWideAngleCamera ?? undefined,
281
+ playPreExerciseCountdown: this.options.playPreExerciseCountdown,
282
+ playRepMilestoneVoice: this.options.playRepMilestoneVoice,
283
+ repMilestoneInterval: this.options.repMilestoneInterval,
284
+ playSoundOnEachRep: this.options.playSoundOnEachRep,
285
+ adaptiveRomFeedbackEnabled: this.options.adaptiveRomFeedbackEnabled,
286
+ adaptiveRomWarmupReps: this.options.adaptiveRomWarmupReps,
287
+ guidanceVideoSegments: this.options.guidanceVideoSegments === null ? null : serializeGuidanceVideoSegments(this.options.guidanceVideoSegments),
288
+ stretchSetConfig: ((_this$options$stretch = this.options.stretchSetConfig) === null || _this$options$stretch === void 0 ? void 0 : _this$options$stretch.toJSON()) ?? (this.options.stretchSetConfig === null ? null : undefined),
289
+ side: this.options.side ?? undefined
290
+ });
291
+ }
292
+ }
293
+ export class SMAssessmentExercise extends SMExercise {
294
+ constructor(prettyName, totalSeconds, videoInstruction, exerciseIntro, uiElements, detector, exerciseClosure, scoringParams, closureFailedSound, summaryTitle, summarySubTitle, summaryMainMetricTitle, summaryMainMetricSubTitle, options = {}) {
295
+ super(prettyName, totalSeconds, videoInstruction, exerciseIntro, uiElements, detector, exerciseClosure, scoringParams, options);
296
+ this.closureFailedSound = closureFailedSound ?? null;
297
+ this.summaryTitle = summaryTitle ?? null;
298
+ this.summarySubTitle = summarySubTitle ?? null;
299
+ this.summaryMainMetricTitle = summaryMainMetricTitle ?? null;
300
+ this.summaryMainMetricSubTitle = summaryMainMetricSubTitle ?? null;
301
+ }
302
+ toJSON() {
303
+ return withoutUndefined({
304
+ ...super.toJSON(),
305
+ closureFailedSound: this.closureFailedSound,
306
+ summaryTitle: this.summaryTitle,
307
+ summarySubTitle: this.summarySubTitle,
308
+ summaryMainMetricTitle: this.summaryMainMetricTitle,
309
+ summaryMainMetricSubTitle: this.summaryMainMetricSubTitle,
310
+ summaryTitleMainMetric: this.summaryMainMetricTitle,
311
+ summarySubTitleMainMetric: this.summaryMainMetricSubTitle
312
+ });
313
+ }
314
+ }
315
+ export class WorkoutContinuation {
316
+ constructor(interactionUnlockSoundKey, exercises, introSoundKey = null) {
317
+ this.introSoundKey = introSoundKey ?? null;
318
+ this.interactionUnlockSoundKey = interactionUnlockSoundKey;
319
+ this.exercises = exercises;
320
+ }
321
+ toJSON() {
322
+ return withoutUndefined({
323
+ introSoundKey: this.introSoundKey,
324
+ interactionUnlockSoundKey: this.interactionUnlockSoundKey,
325
+ exercises: this.exercises.map(exercise => exercise.toJSON())
326
+ });
327
+ }
328
+ }
200
329
  export class SMWorkout {
201
- /**
202
- * @param {string | null} id - Unique identifier for the workout.
203
- * @param {string | null} name - Name of the workout.
204
- * @param {string | null} workoutIntro - URL for workout intro sound.
205
- * @param {string | null} soundtrack - URL for soundtrack.
206
- * @param {SMExercise[]} exercises - List of exercises included in the workout.
207
- * @param {string | null} getInFrame - URL for body cal get in frame sound.
208
- * @param {string | null} bodycalFinished - URL for body cal finished sound.
209
- * @param {string | null} workoutClosure - URL for workout closure sound.
210
- */
211
-
212
- constructor(id, name, workoutIntro, soundtrack, exercises, getInFrame, bodycalFinished, workoutClosure) {
213
- this.id = id || null;
214
- this.name = name || null;
215
- this.workoutIntro = workoutIntro || null;
216
- this.soundtrack = soundtrack || null;
330
+ constructor(id, name, workoutIntro, soundtrack, exercises, getInFrame, bodycalFinished, workoutClosure, continuation = null) {
331
+ this.id = id ?? null;
332
+ this.name = name ?? null;
333
+ this.workoutIntro = workoutIntro ?? null;
334
+ this.soundtrack = soundtrack ?? null;
217
335
  this.exercises = exercises;
218
- this.getInFrame = getInFrame || null;
219
- this.bodycalFinished = bodycalFinished || null;
220
- this.workoutClosure = workoutClosure || null;
336
+ this.getInFrame = getInFrame ?? null;
337
+ this.bodycalFinished = bodycalFinished ?? null;
338
+ this.workoutClosure = workoutClosure ?? null;
339
+ this.continuation = continuation ?? null;
221
340
  }
222
- toJson() {
223
- return JSON.stringify({
341
+ toJSON() {
342
+ var _this$continuation;
343
+ return withoutUndefined({
224
344
  id: this.id,
225
345
  name: this.name,
226
346
  workoutIntro: this.workoutIntro,
227
347
  soundtrack: this.soundtrack,
228
- exercises: this.exercises,
348
+ exercises: this.exercises.map(exercise => exercise.toJSON()),
229
349
  getInFrame: this.getInFrame,
230
350
  bodycalFinished: this.bodycalFinished,
231
- workoutClosure: this.workoutClosure
351
+ workoutClosure: this.workoutClosure,
352
+ continuation: ((_this$continuation = this.continuation) === null || _this$continuation === void 0 ? void 0 : _this$continuation.toJSON()) ?? (this.continuation === null ? null : undefined)
232
353
  });
233
354
  }
234
- }
235
-
236
- /**
237
- * Class representing an exercise in a workout.
238
- */
239
- export class SMExercise {
240
- /**
241
- * @param {string | null} prettyName - Name of the exercise.
242
- * @param {number | null} totalSeconds - Duration of the exercise in seconds.
243
- * @param {string | null} videoInstruction - Video instruction URL.
244
- * @param {string | null} exerciseIntro - URL for exercise intro sound.
245
- * @param {UIElement[] | null} uiElements - List of UI elements for this exercise.
246
- * @param {string} detector - Name of the detector for tracking exercise movement.
247
- * @param {string | null} exerciseClosure - URL for exercise closer sound.
248
- * @param {SMScoringParams | null} scoringParams - Parameters for exercise scoring.
249
- */
250
-
251
- constructor(prettyName, totalSeconds, videoInstruction, exerciseIntro, uiElements, detector, exerciseClosure, scoringParams) {
252
- this.prettyName = prettyName || null;
253
- this.totalSeconds = totalSeconds || null;
254
- this.videoInstruction = videoInstruction || null;
255
- this.exerciseIntro = exerciseIntro || null;
256
- this.uiElements = uiElements || null;
257
- this.detector = detector;
258
- this.exerciseClosure = exerciseClosure || null;
259
- this.scoringParams = scoringParams || null;
260
- }
261
- }
262
-
263
- /**
264
- * Class representing an exercise in an assessment.
265
- */
266
- export class SMAssessmentExercise extends SMExercise {
267
- /**
268
- * @param {string | null} prettyName - Name of the exercise.
269
- * @param {number | null} totalSeconds - Duration of the exercise in seconds.
270
- * @param {string | null} videoInstruction - Video instruction URL.
271
- * @param {string | null} exerciseIntro - URL for exercise intro sound.
272
- * @param {UIElement[] | null} uiElements - List of UI elements for this exercise.
273
- * @param {string} detector - Name of the detector for tracking exercise movement.
274
- * @param {string | null} exerciseClosure - URL for exercise closer sound.
275
- * @param {SMScoringParams | null} scoringParams - Parameters for exercise scoring.
276
- * @param {string | null} closureFailedSound - Applicable only for ClouserTarget.TargetBased, URL for exercise closure sound If you did not reach clouser target.
277
- * @param {string | null} summaryTitle - Title for the exercise summary.
278
- * @param {string | null} summarySubTitle - Subtitle for the exercise summary.
279
- * @param {string | null} summaryMainMetricTitle - Main metric title in the summary.
280
- * @param {string | null} summaryMainMetricSubTitle - Main metric subtitle in the summary.
281
- */
282
-
283
- constructor(prettyName, totalSeconds, videoInstruction, exerciseIntro, uiElements, detector, exerciseClosure, scoringParams, closureFailedSound, summaryTitle, summarySubTitle, summaryMainMetricTitle, summaryMainMetricSubTitle) {
284
- // Call the constructor of the parent class (SMExercise)
285
- super(prettyName, totalSeconds, videoInstruction, exerciseIntro, uiElements, detector, exerciseClosure, scoringParams);
286
-
287
- // Set additional properties specific to SMAssessmentExercise
288
- this.closureFailedSound = closureFailedSound || null;
289
- this.summaryTitle = summaryTitle || null;
290
- this.summarySubTitle = summarySubTitle || null;
291
- this.summaryMainMetricTitle = summaryMainMetricTitle || null;
292
- this.summaryMainMetricSubTitle = summaryMainMetricSubTitle || null;
355
+ toJson() {
356
+ return JSON.stringify(this.toJSON());
293
357
  }
294
358
  }
295
-
296
- /**
297
- * Class representing scoring parameters for an exercise.
298
- */
299
359
  export class SMScoringParams {
300
- /**
301
- * @param {ScoringType | null} type - Type of scoring (e.g., ROM, time, reps).
302
- * @param {number | null} scoreFactor - Factor to adjust the score.
303
- * @param {number | null} targetTime - Target time for time-based scoring.
304
- * @param {number | null} targetReps - Target reps for rep-based scoring.
305
- * @param {string | null} targetRom - Range of motion target for ROM-based scoring.
306
- * @param {string[] | null} passCriteria - List of criteria required to pass.
307
- */
308
-
309
360
  constructor(type, scoreFactor, targetTime, targetReps, targetRom, passCriteria) {
310
- this.type = type || null;
311
- this.scoreFactor = scoreFactor || null;
312
- this.targetTime = targetTime || null;
313
- this.targetReps = targetReps || null;
314
- this.targetRom = targetRom || null;
315
- this.passCriteria = passCriteria || null;
361
+ this.type = type ?? null;
362
+ this.scoreFactor = scoreFactor ?? null;
363
+ this.targetTime = targetTime ?? null;
364
+ this.targetReps = targetReps ?? null;
365
+ this.targetRom = targetRom ?? null;
366
+ this.passCriteria = passCriteria ?? null;
367
+ }
368
+ toJSON() {
369
+ return withoutUndefined({
370
+ type: this.type,
371
+ scoreFactor: this.scoreFactor,
372
+ targetTime: this.targetTime,
373
+ targetReps: this.targetReps,
374
+ targetRom: this.targetRom,
375
+ passCriteria: this.passCriteria
376
+ });
316
377
  }
317
378
  }
318
-
319
- /**
320
- * Class representing the configuration for a workout program.
321
- */
322
379
  export class WorkoutConfig {
323
- /**
324
- * @param {number} week - Week number in the program.
325
- * @param {BodyZone} bodyZone - Targeted body zone for the workout.
326
- * @param {WorkoutDifficulty} difficultyLevel - Difficulty level of the workout.
327
- * @param {WorkoutDuration} workoutDuration - Duration of the workout.
328
- * @param {Language} language - The session language
329
- * @param {string} programID - Unique identifier for the workout program.
330
- */
331
-
332
- constructor(week, bodyZone, difficultyLevel, workoutDuration, language, programID) {
380
+ constructor(week, bodyZone, difficultyLevel, workoutDuration, language, programID, options = {}) {
333
381
  this.week = week;
334
382
  this.bodyZone = bodyZone;
335
383
  this.difficultyLevel = difficultyLevel;
336
384
  this.workoutDuration = workoutDuration;
337
385
  this.language = language;
338
386
  this.programID = programID;
387
+ this.phonePosition = options.phonePosition ?? PhonePosition.Floor;
388
+ this.shortIntro = options.shortIntro ?? false;
339
389
  }
340
- toJson() {
341
- return JSON.stringify({
390
+ toJSON() {
391
+ return withoutUndefined({
342
392
  week: this.week,
343
393
  bodyZone: this.bodyZone,
344
394
  difficultyLevel: this.difficultyLevel,
345
395
  workoutDuration: this.workoutDuration,
346
396
  language: this.language,
347
- programID: this.programID
397
+ programID: this.programID,
398
+ phonePosition: this.phonePosition,
399
+ shortIntro: this.shortIntro
348
400
  });
349
401
  }
402
+ toJson() {
403
+ return JSON.stringify(this.toJSON());
404
+ }
350
405
  }
351
-
352
- /**
353
- * Class representing user data.
354
- */
355
406
  export class UserData {
356
- /**
357
- * @param {Gender} gender - User's gender.
358
- * @param {number} age - User's age.
359
- */
360
-
361
- constructor(gender, age) {
407
+ constructor(gender, age, email = null) {
362
408
  this.gender = gender;
363
409
  this.age = age;
410
+ this.email = email ?? null;
364
411
  }
365
- toJson() {
366
- return JSON.stringify({
412
+ toJSON() {
413
+ return withoutUndefined({
367
414
  gender: this.gender,
368
- age: this.age
415
+ age: this.age,
416
+ email: this.email
369
417
  });
370
418
  }
419
+ toJson() {
420
+ return JSON.stringify(this.toJSON());
421
+ }
371
422
  }
372
423
  //# sourceMappingURL=SMWorkout.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AssessmentTypes","PauseType","UIElement","BodyZone","WorkoutDifficulty","WorkoutDuration","ScoringType","Gender","Language","CounterPreferences","EndExercisePreferences","SkeletonPreset","SkeletonConnectionStyle","SkeletonJointShape","SkeletonColorOption","SkeletonConfig","SMWorkout","constructor","id","name","workoutIntro","soundtrack","exercises","getInFrame","bodycalFinished","workoutClosure","toJson","JSON","stringify","SMExercise","prettyName","totalSeconds","videoInstruction","exerciseIntro","uiElements","detector","exerciseClosure","scoringParams","SMAssessmentExercise","closureFailedSound","summaryTitle","summarySubTitle","summaryMainMetricTitle","summaryMainMetricSubTitle","SMScoringParams","type","scoreFactor","targetTime","targetReps","targetRom","passCriteria","WorkoutConfig","week","bodyZone","difficultyLevel","workoutDuration","language","programID","UserData","gender","age"],"sourceRoot":"../../src","sources":["SMWorkout.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["withoutUndefined","value","Object","entries","reduce","result","key","item","undefined","serializeGuidanceVideoSegments","segments","segment","GuidanceVideoSegment","toJSON","kind","startSeconds","endSeconds","AssessmentTypes","PauseType","UIElement","BodyZone","WorkoutDifficulty","WorkoutDuration","ScoringType","Gender","Language","CounterPreferences","EndExercisePreferences","ColorTheme","PoseModelChoice","PhonePosition","RowingFeedbackLevel","GuidanceVideoSegmentKind","SkeletonPreset","SkeletonConnectionStyle","SkeletonJointShape","SkeletonColorOption","SkeletonConfig","constructor","freeze","at","Freeze","play","from","to","Play","StretchSetConfig","repetitions","secondsPerStretch","options","enabled","restSecondsBetweenStretches","introSoundKey","positionDetectors","SMExercise","prettyName","totalSeconds","videoInstruction","exerciseIntro","uiElements","detector","exerciseClosure","scoringParams","_this$scoringParams","_this$options$stretch","name","shortIntro","quickMotionParams","rowingFeedbackLevel","phonePosition","guidanceMode","useWideAngleCamera","playPreExerciseCountdown","playRepMilestoneVoice","repMilestoneInterval","playSoundOnEachRep","adaptiveRomFeedbackEnabled","adaptiveRomWarmupReps","guidanceVideoSegments","stretchSetConfig","side","SMAssessmentExercise","closureFailedSound","summaryTitle","summarySubTitle","summaryMainMetricTitle","summaryMainMetricSubTitle","summaryTitleMainMetric","summarySubTitleMainMetric","WorkoutContinuation","interactionUnlockSoundKey","exercises","map","exercise","SMWorkout","id","workoutIntro","soundtrack","getInFrame","bodycalFinished","workoutClosure","continuation","_this$continuation","toJson","JSON","stringify","SMScoringParams","type","scoreFactor","targetTime","targetReps","targetRom","passCriteria","WorkoutConfig","week","bodyZone","difficultyLevel","workoutDuration","language","programID","Floor","UserData","gender","age","email"],"sourceRoot":"../../src","sources":["SMWorkout.tsx"],"mappings":"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","ignoreList":[]}