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