@sports-alliance/sports-lib 7.0.7 → 7.0.9

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 (336) hide show
  1. package/.editorconfig +14 -0
  2. package/.eslintignore +4 -0
  3. package/.eslintrc.js +9 -0
  4. package/.prettierignore +25 -0
  5. package/.prettierrc.json +12 -0
  6. package/CODE_OF_CONDUCT.md +76 -0
  7. package/jest.config.js +23 -0
  8. package/lib/esm/index.js +12034 -152
  9. package/package.json +3 -2
  10. package/tsconfig.cjs.json +7 -0
  11. package/tsconfig.esm.json +8 -0
  12. package/tsconfig.lib.json +8 -0
  13. package/lib/esm/activities/activity-parsing-options.js +0 -19
  14. package/lib/esm/activities/activity.interface.js +0 -1
  15. package/lib/esm/activities/activity.js +0 -281
  16. package/lib/esm/activities/activity.json.interface.js +0 -1
  17. package/lib/esm/activities/activity.spec.js +0 -348
  18. package/lib/esm/activities/activity.types.js +0 -1046
  19. package/lib/esm/activities/activityt-types.spec.js +0 -16
  20. package/lib/esm/activities/devices/device.interface.js +0 -1
  21. package/lib/esm/activities/devices/device.js +0 -26
  22. package/lib/esm/activities/devices/device.json.interface.js +0 -1
  23. package/lib/esm/constants/constants.js +0 -8
  24. package/lib/esm/creators/creator.interface.js +0 -1
  25. package/lib/esm/creators/creator.js +0 -37
  26. package/lib/esm/creators/creator.json.interface.js +0 -1
  27. package/lib/esm/creators/creator.spec.js +0 -25
  28. package/lib/esm/data/data-active-lap.js +0 -4
  29. package/lib/esm/data/data-active-lengths.js +0 -4
  30. package/lib/esm/data/data-aerobic-training-effect.js +0 -8
  31. package/lib/esm/data/data-anaerobic-training-effect.js +0 -8
  32. package/lib/esm/data/data-stance-time-balance-left.js +0 -4
  33. package/lib/esm/data/data-stance-time-balance-right.js +0 -4
  34. package/lib/esm/data/data-stance-time-balance.js +0 -3
  35. package/lib/esm/data/data-store.spec.js +0 -78
  36. package/lib/esm/data/data-total-cycles.js +0 -4
  37. package/lib/esm/data/data.absolute-pressure.js +0 -5
  38. package/lib/esm/data/data.accumulated-power.js +0 -8
  39. package/lib/esm/data/data.activity-types.js +0 -7
  40. package/lib/esm/data/data.air-power-avg.js +0 -4
  41. package/lib/esm/data/data.air-power-max.js +0 -4
  42. package/lib/esm/data/data.air-power-min.js +0 -4
  43. package/lib/esm/data/data.air-power.js +0 -8
  44. package/lib/esm/data/data.alti-baro-profile.js +0 -4
  45. package/lib/esm/data/data.altitude-avg.js +0 -4
  46. package/lib/esm/data/data.altitude-gps.js +0 -5
  47. package/lib/esm/data/data.altitude-max.js +0 -4
  48. package/lib/esm/data/data.altitude-min.js +0 -4
  49. package/lib/esm/data/data.altitude-smooth.js +0 -4
  50. package/lib/esm/data/data.altitude.js +0 -8
  51. package/lib/esm/data/data.array.js +0 -13
  52. package/lib/esm/data/data.ascent-time.js +0 -4
  53. package/lib/esm/data/data.ascent.js +0 -4
  54. package/lib/esm/data/data.auto-lap-distance.js +0 -5
  55. package/lib/esm/data/data.auto-lap-duration.js +0 -4
  56. package/lib/esm/data/data.auto-lap-used.js +0 -7
  57. package/lib/esm/data/data.auto-pause-used.js +0 -7
  58. package/lib/esm/data/data.avg-stride-length.js +0 -4
  59. package/lib/esm/data/data.balance.js +0 -6
  60. package/lib/esm/data/data.bare.js +0 -4
  61. package/lib/esm/data/data.battery-charge.js +0 -8
  62. package/lib/esm/data/data.battery-consumption.js +0 -8
  63. package/lib/esm/data/data.battery-current.js +0 -8
  64. package/lib/esm/data/data.battery-life-estimation.js +0 -4
  65. package/lib/esm/data/data.battery-voltage.js +0 -8
  66. package/lib/esm/data/data.bike-pod-used.js +0 -7
  67. package/lib/esm/data/data.boolean.js +0 -9
  68. package/lib/esm/data/data.cadence-avg.js +0 -4
  69. package/lib/esm/data/data.cadence-max.js +0 -4
  70. package/lib/esm/data/data.cadence-min.js +0 -4
  71. package/lib/esm/data/data.cadence.js +0 -8
  72. package/lib/esm/data/data.cycling-dynamics.js +0 -3
  73. package/lib/esm/data/data.cycling-position.js +0 -37
  74. package/lib/esm/data/data.cycling-seated-time.js +0 -5
  75. package/lib/esm/data/data.cycling-standing-time.js +0 -5
  76. package/lib/esm/data/data.descent-time.js +0 -4
  77. package/lib/esm/data/data.descent.js +0 -4
  78. package/lib/esm/data/data.description.js +0 -4
  79. package/lib/esm/data/data.device-location.js +0 -4
  80. package/lib/esm/data/data.device-names.js +0 -7
  81. package/lib/esm/data/data.distance.js +0 -15
  82. package/lib/esm/data/data.duration.js +0 -56
  83. package/lib/esm/data/data.ehpe.js +0 -5
  84. package/lib/esm/data/data.enabled-navigation-systems.js +0 -4
  85. package/lib/esm/data/data.end-altitude.js +0 -4
  86. package/lib/esm/data/data.end-position.js +0 -4
  87. package/lib/esm/data/data.energy.js +0 -8
  88. package/lib/esm/data/data.epoc.js +0 -5
  89. package/lib/esm/data/data.event.js +0 -3
  90. package/lib/esm/data/data.evpe.js +0 -4
  91. package/lib/esm/data/data.feeling.js +0 -15
  92. package/lib/esm/data/data.foot-pod-used.js +0 -7
  93. package/lib/esm/data/data.form-power.js +0 -4
  94. package/lib/esm/data/data.fused-altitude.js +0 -7
  95. package/lib/esm/data/data.fused-location.js +0 -7
  96. package/lib/esm/data/data.gnss-distance.js +0 -4
  97. package/lib/esm/data/data.grade-adjusted-pace-avg.js +0 -15
  98. package/lib/esm/data/data.grade-adjusted-pace-max.js +0 -15
  99. package/lib/esm/data/data.grade-adjusted-pace-min.js +0 -15
  100. package/lib/esm/data/data.grade-adjusted-pace.js +0 -25
  101. package/lib/esm/data/data.grade-adjusted-speed-avg.js +0 -46
  102. package/lib/esm/data/data.grade-adjusted-speed-max.js +0 -46
  103. package/lib/esm/data/data.grade-adjusted-speed-min.js +0 -46
  104. package/lib/esm/data/data.grade-adjusted-speed.js +0 -78
  105. package/lib/esm/data/data.grade-smooth.js +0 -7
  106. package/lib/esm/data/data.grade.js +0 -7
  107. package/lib/esm/data/data.ground-time.js +0 -8
  108. package/lib/esm/data/data.heart-rate-avg.js +0 -4
  109. package/lib/esm/data/data.heart-rate-max.js +0 -4
  110. package/lib/esm/data/data.heart-rate-min.js +0 -4
  111. package/lib/esm/data/data.heart-rate-used.js +0 -7
  112. package/lib/esm/data/data.heart-rate-zone-five-duration.js +0 -4
  113. package/lib/esm/data/data.heart-rate-zone-four-duration.js +0 -4
  114. package/lib/esm/data/data.heart-rate-zone-one-duration.js +0 -4
  115. package/lib/esm/data/data.heart-rate-zone-three-duration.js +0 -4
  116. package/lib/esm/data/data.heart-rate-zone-two-duration.js +0 -4
  117. package/lib/esm/data/data.heart-rate.js +0 -8
  118. package/lib/esm/data/data.ibi.js +0 -8
  119. package/lib/esm/data/data.interface.js +0 -5
  120. package/lib/esm/data/data.js +0 -62
  121. package/lib/esm/data/data.json.interface.js +0 -1
  122. package/lib/esm/data/data.latitude-degrees.js +0 -5
  123. package/lib/esm/data/data.left-balance.js +0 -4
  124. package/lib/esm/data/data.leg-stiffness.js +0 -16
  125. package/lib/esm/data/data.longitude-degrees.js +0 -5
  126. package/lib/esm/data/data.moving-time.js +0 -4
  127. package/lib/esm/data/data.number-of-satellites.js +0 -7
  128. package/lib/esm/data/data.number-of.samples.js +0 -4
  129. package/lib/esm/data/data.number.js +0 -13
  130. package/lib/esm/data/data.pace-avg.js +0 -8
  131. package/lib/esm/data/data.pace-max.js +0 -8
  132. package/lib/esm/data/data.pace-min.js +0 -8
  133. package/lib/esm/data/data.pace.js +0 -46
  134. package/lib/esm/data/data.pause.js +0 -4
  135. package/lib/esm/data/data.peak-epoc.js +0 -7
  136. package/lib/esm/data/data.peak-training-effect.js +0 -4
  137. package/lib/esm/data/data.percent.js +0 -4
  138. package/lib/esm/data/data.pool-length.js +0 -5
  139. package/lib/esm/data/data.position.interface.js +0 -1
  140. package/lib/esm/data/data.position.js +0 -18
  141. package/lib/esm/data/data.power-avg.js +0 -4
  142. package/lib/esm/data/data.power-down.js +0 -4
  143. package/lib/esm/data/data.power-intensity-factor.js +0 -5
  144. package/lib/esm/data/data.power-left.js +0 -4
  145. package/lib/esm/data/data.power-max.js +0 -4
  146. package/lib/esm/data/data.power-min.js +0 -4
  147. package/lib/esm/data/data.power-normalized.js +0 -4
  148. package/lib/esm/data/data.power-pedal-smoothness-left.js +0 -4
  149. package/lib/esm/data/data.power-pedal-smoothness-right.js +0 -4
  150. package/lib/esm/data/data.power-pod-used.js +0 -7
  151. package/lib/esm/data/data.power-right.js +0 -4
  152. package/lib/esm/data/data.power-torque-effectiveness-left.js +0 -4
  153. package/lib/esm/data/data.power-torque-effectiveness-right.js +0 -4
  154. package/lib/esm/data/data.power-training-stress-score.js +0 -5
  155. package/lib/esm/data/data.power-up.js +0 -4
  156. package/lib/esm/data/data.power-work.js +0 -5
  157. package/lib/esm/data/data.power-zone-five-duration.js +0 -4
  158. package/lib/esm/data/data.power-zone-four-duration.js +0 -4
  159. package/lib/esm/data/data.power-zone-one-duration.js +0 -4
  160. package/lib/esm/data/data.power-zone-three-duration.js +0 -4
  161. package/lib/esm/data/data.power-zone-two-duration.js +0 -4
  162. package/lib/esm/data/data.power.js +0 -8
  163. package/lib/esm/data/data.recovery-time.js +0 -7
  164. package/lib/esm/data/data.rider-position-change-event.js +0 -8
  165. package/lib/esm/data/data.right-balance.js +0 -4
  166. package/lib/esm/data/data.rpe.js +0 -23
  167. package/lib/esm/data/data.satellite-5-best-snr.js +0 -4
  168. package/lib/esm/data/data.sea-level-pressure.js +0 -5
  169. package/lib/esm/data/data.spec.js +0 -25
  170. package/lib/esm/data/data.speed-avg.js +0 -46
  171. package/lib/esm/data/data.speed-max.js +0 -46
  172. package/lib/esm/data/data.speed-min.js +0 -46
  173. package/lib/esm/data/data.speed-zone-five-duration.js +0 -4
  174. package/lib/esm/data/data.speed-zone-four-duration.js +0 -4
  175. package/lib/esm/data/data.speed-zone-one-duration.js +0 -4
  176. package/lib/esm/data/data.speed-zone-three-duration.js +0 -4
  177. package/lib/esm/data/data.speed-zone-two-duration.js +0 -4
  178. package/lib/esm/data/data.speed.js +0 -88
  179. package/lib/esm/data/data.sport-profile-name.js +0 -4
  180. package/lib/esm/data/data.stance-time.js +0 -5
  181. package/lib/esm/data/data.start-altitude.js +0 -4
  182. package/lib/esm/data/data.start-event.js +0 -4
  183. package/lib/esm/data/data.start-position.js +0 -4
  184. package/lib/esm/data/data.step-length.js +0 -4
  185. package/lib/esm/data/data.steps-old.js +0 -4
  186. package/lib/esm/data/data.steps.js +0 -4
  187. package/lib/esm/data/data.stop-all-event.js +0 -4
  188. package/lib/esm/data/data.stop-event.js +0 -4
  189. package/lib/esm/data/data.store.export.spec.js +0 -66
  190. package/lib/esm/data/data.store.js +0 -1213
  191. package/lib/esm/data/data.string.js +0 -13
  192. package/lib/esm/data/data.stryd-altitude.js +0 -4
  193. package/lib/esm/data/data.stryd-distance.js +0 -4
  194. package/lib/esm/data/data.stryd-speed.js +0 -4
  195. package/lib/esm/data/data.swim-pace-avg.js +0 -8
  196. package/lib/esm/data/data.swim-pace-max.js +0 -8
  197. package/lib/esm/data/data.swim-pace-min.js +0 -8
  198. package/lib/esm/data/data.swim-pace.js +0 -19
  199. package/lib/esm/data/data.swolf-25m.js +0 -4
  200. package/lib/esm/data/data.swolf-50m.js +0 -4
  201. package/lib/esm/data/data.target-distance.js +0 -4
  202. package/lib/esm/data/data.target-heart-rate-zone.js +0 -4
  203. package/lib/esm/data/data.target-power-zone.js +0 -4
  204. package/lib/esm/data/data.target-speed-zone.js +0 -4
  205. package/lib/esm/data/data.target-time.js +0 -4
  206. package/lib/esm/data/data.temperature-avg.js +0 -4
  207. package/lib/esm/data/data.temperature-max.js +0 -4
  208. package/lib/esm/data/data.temperature-min.js +0 -4
  209. package/lib/esm/data/data.temperature.js +0 -8
  210. package/lib/esm/data/data.time.js +0 -6
  211. package/lib/esm/data/data.timer-time.js +0 -4
  212. package/lib/esm/data/data.vertical-oscillation.js +0 -5
  213. package/lib/esm/data/data.vertical-ratio.js +0 -5
  214. package/lib/esm/data/data.vertical-speed-avg.js +0 -53
  215. package/lib/esm/data/data.vertical-speed-max.js +0 -53
  216. package/lib/esm/data/data.vertical-speed-min.js +0 -53
  217. package/lib/esm/data/data.vertical-speed.js +0 -103
  218. package/lib/esm/data/data.vo2-max.js +0 -7
  219. package/lib/esm/data/ibi/data.ibi.filters.js +0 -52
  220. package/lib/esm/data/ibi/data.ibi.js +0 -98
  221. package/lib/esm/data/ibi/data.ibi.spec.js +0 -66
  222. package/lib/esm/duration/duration.class.abstract.js +0 -36
  223. package/lib/esm/duration/duration.class.interface.js +0 -1
  224. package/lib/esm/errors/duration-exceeded-event-lib.error.js +0 -9
  225. package/lib/esm/errors/empty-event-sports-libs.error.js +0 -9
  226. package/lib/esm/errors/event-lib.error.js +0 -8
  227. package/lib/esm/errors/lib.error.js +0 -6
  228. package/lib/esm/errors/parsing-event-lib.error.js +0 -9
  229. package/lib/esm/events/adapters/exporters/exporter.gpx.js +0 -75
  230. package/lib/esm/events/adapters/exporters/exporter.interface.js +0 -1
  231. package/lib/esm/events/adapters/exporters/exporter.json.js +0 -20
  232. package/lib/esm/events/adapters/file-type.enum.js +0 -7
  233. package/lib/esm/events/adapters/importers/fit/importer.fit.ant-plus.device.names.js +0 -25
  234. package/lib/esm/events/adapters/importers/fit/importer.fit.coros.device.names.js +0 -5
  235. package/lib/esm/events/adapters/importers/fit/importer.fit.development.device.names.js +0 -4
  236. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.device.names.js +0 -462
  237. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.data.js +0 -877
  238. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.js +0 -106
  239. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.spec.js +0 -32
  240. package/lib/esm/events/adapters/importers/fit/importer.fit.hammerhead.device.names.js +0 -4
  241. package/lib/esm/events/adapters/importers/fit/importer.fit.integration.spec.js +0 -44
  242. package/lib/esm/events/adapters/importers/fit/importer.fit.js +0 -978
  243. package/lib/esm/events/adapters/importers/fit/importer.fit.lezyne.device.names.js +0 -3
  244. package/lib/esm/events/adapters/importers/fit/importer.fit.magellan.device.names.js +0 -5
  245. package/lib/esm/events/adapters/importers/fit/importer.fit.mapper.js +0 -231
  246. package/lib/esm/events/adapters/importers/fit/importer.fit.saris.device.names.js +0 -3
  247. package/lib/esm/events/adapters/importers/fit/importer.fit.spec.js +0 -326
  248. package/lib/esm/events/adapters/importers/fit/importer.fit.srm.device.names.js +0 -7
  249. package/lib/esm/events/adapters/importers/fit/importer.fit.suunto.device.names.js +0 -16
  250. package/lib/esm/events/adapters/importers/fit/importer.fit.wahoo.device.names.js +0 -10
  251. package/lib/esm/events/adapters/importers/gpx/gx-parser.js +0 -36
  252. package/lib/esm/events/adapters/importers/gpx/importer.gpx.integration.spec.js +0 -44
  253. package/lib/esm/events/adapters/importers/gpx/importer.gpx.js +0 -102
  254. package/lib/esm/events/adapters/importers/gpx/importer.gpx.mapper.js +0 -142
  255. package/lib/esm/events/adapters/importers/gpx/importer.gpx.spec.js +0 -71
  256. package/lib/esm/events/adapters/importers/json/importer.json.js +0 -160
  257. package/lib/esm/events/adapters/importers/sample-info.interface.js +0 -1
  258. package/lib/esm/events/adapters/importers/suunto/importer.suunto.activity.ids.js +0 -85
  259. package/lib/esm/events/adapters/importers/suunto/importer.suunto.device.names.js +0 -26
  260. package/lib/esm/events/adapters/importers/suunto/importer.suunto.integration.spec.js +0 -44
  261. package/lib/esm/events/adapters/importers/suunto/importer.suunto.json.js +0 -717
  262. package/lib/esm/events/adapters/importers/suunto/importer.suunto.sml.js +0 -125
  263. package/lib/esm/events/adapters/importers/tcx/importer.tcx.integration.spec.js +0 -46
  264. package/lib/esm/events/adapters/importers/tcx/importer.tcx.js +0 -442
  265. package/lib/esm/events/adapters/importers/tcx/importer.tcx.mapper.js +0 -91
  266. package/lib/esm/events/adapters/importers/tcx/utils.tcx.js +0 -36
  267. package/lib/esm/events/event.interface.js +0 -1
  268. package/lib/esm/events/event.js +0 -123
  269. package/lib/esm/events/event.json.interface.js +0 -1
  270. package/lib/esm/events/event.spec.js +0 -51
  271. package/lib/esm/events/utilities/activity.utilities.js +0 -1841
  272. package/lib/esm/events/utilities/activity.utilities.spec.js +0 -373
  273. package/lib/esm/events/utilities/event.utilities.js +0 -57
  274. package/lib/esm/events/utilities/grade-calculator/grade-calculator.js +0 -121
  275. package/lib/esm/events/utilities/grade-calculator/grade-calculator.spec.js +0 -93
  276. package/lib/esm/events/utilities/grade-calculator/low-pass-filter.js +0 -86
  277. package/lib/esm/events/utilities/helpers.js +0 -162
  278. package/lib/esm/geodesy/adapters/adapter.interface.js +0 -1
  279. package/lib/esm/geodesy/adapters/geolib.adapter.js +0 -28
  280. package/lib/esm/id/id.abstract.class.js +0 -9
  281. package/lib/esm/id/id.class.interface.js +0 -1
  282. package/lib/esm/id/id.class.spec.js +0 -13
  283. package/lib/esm/intensity-zones/intensity-zones.interface.js +0 -1
  284. package/lib/esm/intensity-zones/intensity-zones.js +0 -29
  285. package/lib/esm/intensity-zones/intensity-zones.json.interface.js +0 -1
  286. package/lib/esm/intensity-zones/intensity-zones.spec.js +0 -30
  287. package/lib/esm/laps/lap.interface.js +0 -1
  288. package/lib/esm/laps/lap.js +0 -29
  289. package/lib/esm/laps/lap.json.interface.js +0 -1
  290. package/lib/esm/laps/lap.types.js +0 -52
  291. package/lib/esm/meta-data/event-meta-data.interface.js +0 -6
  292. package/lib/esm/meta-data/meta-data.js +0 -57
  293. package/lib/esm/meta-data/meta-data.json.interface.js +0 -1
  294. package/lib/esm/privacy/privacy.class.interface.js +0 -5
  295. package/lib/esm/serializable/serializable.class.interface.js +0 -1
  296. package/lib/esm/service-tokens/oauth1-service-token.interface.js +0 -1
  297. package/lib/esm/service-tokens/oauth2-service-token.interface.js +0 -1
  298. package/lib/esm/specs/activities-parsing.integration.spec.js +0 -1847
  299. package/lib/esm/specs/activity-duration-stream.integration.spec.js +0 -57
  300. package/lib/esm/specs/fixtures/streams/strava/rides/3171472783.json +0 -52534
  301. package/lib/esm/specs/fixtures/streams/strava/rides/3171487458.json +0 -78818
  302. package/lib/esm/specs/fixtures/streams/strava/rides/343080886.json +0 -105090
  303. package/lib/esm/specs/fixtures/streams/strava/rides/5910143591.json +0 -110711
  304. package/lib/esm/specs/fixtures/streams/strava/runs/2451375851.json +0 -74846
  305. package/lib/esm/specs/fixtures/streams/strava/runs/2709634581.json +0 -66817
  306. package/lib/esm/specs/fixtures/streams/strava/runs/3156040843.json +0 -17594
  307. package/lib/esm/specs/fixtures/streams/strava/runs/3182900697.json +0 -17322
  308. package/lib/esm/specs/fixtures/streams/strava/runs/3183465494.json +0 -20463
  309. package/lib/esm/specs/fixtures/streams/strava/runs/3183490558.json +0 -58202
  310. package/lib/esm/specs/spec-utils.js +0 -159
  311. package/lib/esm/specs/strava-streams-compliance.spec.js +0 -951
  312. package/lib/esm/stats/stats.class.abstract.js +0 -32
  313. package/lib/esm/stats/stats.class.interface.js +0 -1
  314. package/lib/esm/stats/stats.json.interface.js +0 -1
  315. package/lib/esm/streams/compressed.stream.interface.js +0 -12
  316. package/lib/esm/streams/ibi-stream.js +0 -43
  317. package/lib/esm/streams/low-pass.stream.filter.js +0 -9
  318. package/lib/esm/streams/stream.filter.interface.js +0 -1
  319. package/lib/esm/streams/stream.interface.js +0 -1
  320. package/lib/esm/streams/stream.js +0 -72
  321. package/lib/esm/streams/stream.spec.js +0 -168
  322. package/lib/esm/tiles/tile.settings.interface.js +0 -41
  323. package/lib/esm/users/settings/dashboard/user.dashboard.settings.interface.js +0 -13
  324. package/lib/esm/users/settings/user.app.settings.interface.js +0 -5
  325. package/lib/esm/users/settings/user.chart.settings.interface.js +0 -23
  326. package/lib/esm/users/settings/user.map.settings.interface.js +0 -22
  327. package/lib/esm/users/settings/user.my-tracks.settings.interface.js +0 -1
  328. package/lib/esm/users/settings/user.settings.interface.js +0 -1
  329. package/lib/esm/users/settings/user.stats-settings.interface.js +0 -1
  330. package/lib/esm/users/settings/user.summaries.settings.interface.js +0 -1
  331. package/lib/esm/users/settings/user.unit.settings.interface.js +0 -73
  332. package/lib/esm/users/user.account.privileges.interface.js +0 -1
  333. package/lib/esm/users/user.export-to-csv.settings.interface.js +0 -1
  334. package/lib/esm/users/user.interface.js +0 -1
  335. package/lib/esm/users/user.js +0 -38
  336. package/lib/esm/users/user.service.meta.interface.js +0 -1
@@ -1,13 +0,0 @@
1
- import { DataBare } from './data.bare';
2
- export class DataString extends DataBare {
3
- constructor(value) {
4
- super(value);
5
- this.value = value;
6
- }
7
- getValue() {
8
- return this.value;
9
- }
10
- isValueTypeValid(value) {
11
- return typeof value === 'string';
12
- }
13
- }
@@ -1,4 +0,0 @@
1
- import { DataAltitude } from './data.altitude';
2
- export class DataStrydAltitude extends DataAltitude {
3
- }
4
- DataStrydAltitude.type = 'Altitude (Stryd)';
@@ -1,4 +0,0 @@
1
- import { DataDistance } from './data.distance';
2
- export class DataStrydDistance extends DataDistance {
3
- }
4
- DataStrydDistance.type = 'Distance (Stryd)';
@@ -1,4 +0,0 @@
1
- import { DataSpeed } from './data.speed';
2
- export class DataStrydSpeed extends DataSpeed {
3
- }
4
- DataStrydSpeed.type = 'Speed (Stryd)';
@@ -1,8 +0,0 @@
1
- import { DataSwimPace, DataSwimPaceMinutesPer100Yard } from './data.swim-pace';
2
- export class DataSwimPaceAvg extends DataSwimPace {
3
- }
4
- DataSwimPaceAvg.type = 'Average Swim Pace';
5
- export class DataSwimPaceAvgMinutesPer100Yard extends DataSwimPaceMinutesPer100Yard {
6
- }
7
- DataSwimPaceAvgMinutesPer100Yard.type = 'Average swim pace in minutes per 100 yard';
8
- DataSwimPaceAvgMinutesPer100Yard.displayType = DataSwimPaceAvg.type;
@@ -1,8 +0,0 @@
1
- import { DataSwimPace, DataSwimPaceMinutesPer100Yard } from './data.swim-pace';
2
- export class DataSwimPaceMax extends DataSwimPace {
3
- }
4
- DataSwimPaceMax.type = 'Maximum Swim Pace';
5
- export class DataSwimPaceMaxMinutesPer100Yard extends DataSwimPaceMinutesPer100Yard {
6
- }
7
- DataSwimPaceMaxMinutesPer100Yard.type = 'Maximum swim pace in minutes per 100 yard';
8
- DataSwimPaceMaxMinutesPer100Yard.displayType = DataSwimPaceMax.type;
@@ -1,8 +0,0 @@
1
- import { DataSwimPace, DataSwimPaceMinutesPer100Yard } from './data.swim-pace';
2
- export class DataSwimPaceMin extends DataSwimPace {
3
- }
4
- DataSwimPaceMin.type = 'Minimum Swim Pace';
5
- export class DataSwimPaceMinMinutesPer100Yard extends DataSwimPaceMinutesPer100Yard {
6
- }
7
- DataSwimPaceMinMinutesPer100Yard.type = 'Minimum swim pace in minutes per 100 yard';
8
- DataSwimPaceMinMinutesPer100Yard.displayType = DataSwimPaceMin.type;
@@ -1,19 +0,0 @@
1
- import { convertSwimPaceToSwimPacePer100Yard } from '../events/utilities/helpers';
2
- import { DataPace } from './data.pace';
3
- export class DataSwimPace extends DataPace {
4
- getValue(formatForDataType) {
5
- switch (formatForDataType) {
6
- case DataSwimPaceMinutesPer100Yard.type:
7
- return convertSwimPaceToSwimPacePer100Yard(this.value);
8
- default:
9
- return super.getValue(formatForDataType);
10
- }
11
- }
12
- }
13
- DataSwimPace.type = 'Swim Pace';
14
- DataSwimPace.unit = 'min/100m';
15
- export class DataSwimPaceMinutesPer100Yard extends DataSwimPace {
16
- }
17
- DataSwimPaceMinutesPer100Yard.type = 'Swim Pace in minutes per 100 yard';
18
- DataSwimPaceMinutesPer100Yard.displayType = DataSwimPace.type;
19
- DataSwimPaceMinutesPer100Yard.unit = 'min/100yrd';
@@ -1,4 +0,0 @@
1
- import { DataNumber } from './data.number';
2
- export class DataSWOLF25m extends DataNumber {
3
- }
4
- DataSWOLF25m.type = 'Average SWOLF 25m';
@@ -1,4 +0,0 @@
1
- import { DataNumber } from './data.number';
2
- export class DataSWOLF50m extends DataNumber {
3
- }
4
- DataSWOLF50m.type = 'Average SWOLF 50m';
@@ -1,4 +0,0 @@
1
- import { DataDistance } from './data.distance';
2
- export class DataTargetDistance extends DataDistance {
3
- }
4
- DataTargetDistance.type = 'Distance Target';
@@ -1,4 +0,0 @@
1
- import { DataString } from './data.string';
2
- export class DataTargetHeartRateZone extends DataString {
3
- }
4
- DataTargetHeartRateZone.type = 'Heart Rate Zone Target';
@@ -1,4 +0,0 @@
1
- import { DataString } from './data.string';
2
- export class DataTargetPowerZone extends DataString {
3
- }
4
- DataTargetPowerZone.type = 'Power Zone Target';
@@ -1,4 +0,0 @@
1
- import { DataString } from './data.string';
2
- export class DataTargetSpeedZone extends DataString {
3
- }
4
- DataTargetSpeedZone.type = 'Speed Zone Target';
@@ -1,4 +0,0 @@
1
- import { DataDuration } from './data.duration';
2
- export class DataTargetTime extends DataDuration {
3
- }
4
- DataTargetTime.type = 'Time Target';
@@ -1,4 +0,0 @@
1
- import { DataTemperature } from './data.temperature';
2
- export class DataTemperatureAvg extends DataTemperature {
3
- }
4
- DataTemperatureAvg.type = 'Average Temperature';
@@ -1,4 +0,0 @@
1
- import { DataTemperature } from './data.temperature';
2
- export class DataTemperatureMax extends DataTemperature {
3
- }
4
- DataTemperatureMax.type = 'Maximum Temperature';
@@ -1,4 +0,0 @@
1
- import { DataTemperature } from './data.temperature';
2
- export class DataTemperatureMin extends DataTemperature {
3
- }
4
- DataTemperatureMin.type = 'Minimum Temperature';
@@ -1,8 +0,0 @@
1
- import { DataNumber } from './data.number';
2
- export class DataTemperature extends DataNumber {
3
- getDisplayValue() {
4
- return Math.round(this.getValue());
5
- }
6
- }
7
- DataTemperature.type = 'Temperature';
8
- DataTemperature.unit = '°C';
@@ -1,6 +0,0 @@
1
- import { DataDuration } from './data.duration';
2
- // @todo perhaps this class is not needed.
3
- // @todo thomas advice.....
4
- export class DataTime extends DataDuration {
5
- }
6
- DataTime.type = 'Time';
@@ -1,4 +0,0 @@
1
- import { DataDuration } from './data.duration';
2
- export class DataTimerTime extends DataDuration {
3
- }
4
- DataTimerTime.type = 'Timer time';
@@ -1,5 +0,0 @@
1
- import { DataNumber } from './data.number';
2
- export class DataVerticalOscillation extends DataNumber {
3
- }
4
- DataVerticalOscillation.type = 'Vertical Oscillation';
5
- DataVerticalOscillation.unit = 'mm';
@@ -1,5 +0,0 @@
1
- import { DataNumber } from './data.number';
2
- export class DataVerticalRatio extends DataNumber {
3
- }
4
- DataVerticalRatio.type = 'Vertical Ratio';
5
- DataVerticalRatio.unit = '%';
@@ -1,53 +0,0 @@
1
- import { DataVerticalSpeed, DataVerticalSpeedFeetPerHour, DataVerticalSpeedFeetPerMinute, DataVerticalSpeedFeetPerSecond, DataVerticalSpeedKilometerPerHour, DataVerticalSpeedMetersPerHour, DataVerticalSpeedMetersPerMinute, DataVerticalSpeedMilesPerHour } from './data.vertical-speed';
2
- export class DataVerticalSpeedAvg extends DataVerticalSpeed {
3
- }
4
- DataVerticalSpeedAvg.type = 'Average Vertical Speed';
5
- export class DataVerticalSpeedAvgFeetPerSecond extends DataVerticalSpeedFeetPerSecond {
6
- getDisplayType() {
7
- return super.getDisplayType();
8
- }
9
- }
10
- DataVerticalSpeedAvgFeetPerSecond.type = 'Average vertical speed in feet per second';
11
- DataVerticalSpeedAvgFeetPerSecond.displayType = DataVerticalSpeedAvg.type;
12
- export class DataVerticalSpeedAvgMetersPerMinute extends DataVerticalSpeedMetersPerMinute {
13
- getDisplayType() {
14
- return super.getDisplayType();
15
- }
16
- }
17
- DataVerticalSpeedAvgMetersPerMinute.type = 'Average vertical speed in meters per minute';
18
- DataVerticalSpeedAvgMetersPerMinute.displayType = DataVerticalSpeedAvg.type;
19
- export class DataVerticalSpeedAvgFeetPerMinute extends DataVerticalSpeedFeetPerMinute {
20
- getDisplayType() {
21
- return super.getDisplayType();
22
- }
23
- }
24
- DataVerticalSpeedAvgFeetPerMinute.type = 'Average vertical speed in feet per minute';
25
- DataVerticalSpeedAvgFeetPerMinute.displayType = DataVerticalSpeedAvg.type;
26
- export class DataVerticalSpeedAvgMetersPerHour extends DataVerticalSpeedMetersPerHour {
27
- getDisplayType() {
28
- return super.getDisplayType();
29
- }
30
- }
31
- DataVerticalSpeedAvgMetersPerHour.type = 'Average vertical speed in meters per hour';
32
- DataVerticalSpeedAvgMetersPerHour.displayType = DataVerticalSpeedAvg.type;
33
- export class DataVerticalSpeedAvgFeetPerHour extends DataVerticalSpeedFeetPerHour {
34
- getDisplayType() {
35
- return super.getDisplayType();
36
- }
37
- }
38
- DataVerticalSpeedAvgFeetPerHour.type = 'Average vertical speed in feet per hour';
39
- DataVerticalSpeedAvgFeetPerHour.displayType = DataVerticalSpeedAvg.type;
40
- export class DataVerticalSpeedAvgKilometerPerHour extends DataVerticalSpeedKilometerPerHour {
41
- getDisplayType() {
42
- return super.getDisplayType();
43
- }
44
- }
45
- DataVerticalSpeedAvgKilometerPerHour.type = 'Average vertical speed in kilometers per hour';
46
- DataVerticalSpeedAvgKilometerPerHour.displayType = DataVerticalSpeedAvg.type;
47
- export class DataVerticalSpeedAvgMilesPerHour extends DataVerticalSpeedMilesPerHour {
48
- getDisplayType() {
49
- return super.getDisplayType();
50
- }
51
- }
52
- DataVerticalSpeedAvgMilesPerHour.type = 'Average vertical speed in miles per hour';
53
- DataVerticalSpeedAvgMilesPerHour.displayType = DataVerticalSpeedAvg.type;
@@ -1,53 +0,0 @@
1
- import { DataVerticalSpeed, DataVerticalSpeedFeetPerHour, DataVerticalSpeedFeetPerMinute, DataVerticalSpeedFeetPerSecond, DataVerticalSpeedKilometerPerHour, DataVerticalSpeedMetersPerHour, DataVerticalSpeedMetersPerMinute, DataVerticalSpeedMilesPerHour } from './data.vertical-speed';
2
- export class DataVerticalSpeedMax extends DataVerticalSpeed {
3
- }
4
- DataVerticalSpeedMax.type = 'Maximum Vertical Speed';
5
- export class DataVerticalSpeedMaxFeetPerSecond extends DataVerticalSpeedFeetPerSecond {
6
- getDisplayType() {
7
- return super.getDisplayType();
8
- }
9
- }
10
- DataVerticalSpeedMaxFeetPerSecond.type = 'Maximum vertical speed in feet per second';
11
- DataVerticalSpeedMaxFeetPerSecond.displayType = DataVerticalSpeedMax.type;
12
- export class DataVerticalSpeedMaxMetersPerMinute extends DataVerticalSpeedMetersPerMinute {
13
- getDisplayType() {
14
- return super.getDisplayType();
15
- }
16
- }
17
- DataVerticalSpeedMaxMetersPerMinute.type = 'Maximum vertical speed in meters per minute';
18
- DataVerticalSpeedMaxMetersPerMinute.displayType = DataVerticalSpeedMax.type;
19
- export class DataVerticalSpeedMaxFeetPerMinute extends DataVerticalSpeedFeetPerMinute {
20
- getDisplayType() {
21
- return super.getDisplayType();
22
- }
23
- }
24
- DataVerticalSpeedMaxFeetPerMinute.type = 'Maximum vertical speed in feet per minute';
25
- DataVerticalSpeedMaxFeetPerMinute.displayType = DataVerticalSpeedMax.type;
26
- export class DataVerticalSpeedMaxMetersPerHour extends DataVerticalSpeedMetersPerHour {
27
- getDisplayType() {
28
- return super.getDisplayType();
29
- }
30
- }
31
- DataVerticalSpeedMaxMetersPerHour.type = 'Maximum vertical speed in meters per hour';
32
- DataVerticalSpeedMaxMetersPerHour.displayType = DataVerticalSpeedMax.type;
33
- export class DataVerticalSpeedMaxFeetPerHour extends DataVerticalSpeedFeetPerHour {
34
- getDisplayType() {
35
- return super.getDisplayType();
36
- }
37
- }
38
- DataVerticalSpeedMaxFeetPerHour.type = 'Maximum vertical speed in feet per hour';
39
- DataVerticalSpeedMaxFeetPerHour.displayType = DataVerticalSpeedMax.type;
40
- export class DataVerticalSpeedMaxKilometerPerHour extends DataVerticalSpeedKilometerPerHour {
41
- getDisplayType() {
42
- return super.getDisplayType();
43
- }
44
- }
45
- DataVerticalSpeedMaxKilometerPerHour.type = 'Maximum vertical speed in kilometers per hour';
46
- DataVerticalSpeedMaxKilometerPerHour.displayType = DataVerticalSpeedMax.type;
47
- export class DataVerticalSpeedMaxMilesPerHour extends DataVerticalSpeedMilesPerHour {
48
- getDisplayType() {
49
- return super.getDisplayType();
50
- }
51
- }
52
- DataVerticalSpeedMaxMilesPerHour.type = 'Maximum vertical speed in miles per hour';
53
- DataVerticalSpeedMaxMilesPerHour.displayType = DataVerticalSpeedMax.type;
@@ -1,53 +0,0 @@
1
- import { DataVerticalSpeed, DataVerticalSpeedFeetPerHour, DataVerticalSpeedFeetPerMinute, DataVerticalSpeedFeetPerSecond, DataVerticalSpeedKilometerPerHour, DataVerticalSpeedMetersPerHour, DataVerticalSpeedMetersPerMinute, DataVerticalSpeedMilesPerHour } from './data.vertical-speed';
2
- export class DataVerticalSpeedMin extends DataVerticalSpeed {
3
- }
4
- DataVerticalSpeedMin.type = 'Minimum Vertical Speed';
5
- export class DataVerticalSpeedMinFeetPerSecond extends DataVerticalSpeedFeetPerSecond {
6
- getDisplayType() {
7
- return super.getDisplayType();
8
- }
9
- }
10
- DataVerticalSpeedMinFeetPerSecond.type = 'Minimum vertical speed in feet per second';
11
- DataVerticalSpeedMinFeetPerSecond.displayType = DataVerticalSpeedMin.type;
12
- export class DataVerticalSpeedMinMetersPerMinute extends DataVerticalSpeedMetersPerMinute {
13
- getDisplayType() {
14
- return super.getDisplayType();
15
- }
16
- }
17
- DataVerticalSpeedMinMetersPerMinute.type = 'Minimum vertical speed in meters per minute';
18
- DataVerticalSpeedMinMetersPerMinute.displayType = DataVerticalSpeedMin.type;
19
- export class DataVerticalSpeedMinFeetPerMinute extends DataVerticalSpeedFeetPerMinute {
20
- getDisplayType() {
21
- return super.getDisplayType();
22
- }
23
- }
24
- DataVerticalSpeedMinFeetPerMinute.type = 'Minimum vertical speed in feet per minute';
25
- DataVerticalSpeedMinFeetPerMinute.displayType = DataVerticalSpeedMin.type;
26
- export class DataVerticalSpeedMinMetersPerHour extends DataVerticalSpeedMetersPerHour {
27
- getDisplayType() {
28
- return super.getDisplayType();
29
- }
30
- }
31
- DataVerticalSpeedMinMetersPerHour.type = 'Minimum vertical speed in meters per hour';
32
- DataVerticalSpeedMinMetersPerHour.displayType = DataVerticalSpeedMin.type;
33
- export class DataVerticalSpeedMinFeetPerHour extends DataVerticalSpeedFeetPerHour {
34
- getDisplayType() {
35
- return super.getDisplayType();
36
- }
37
- }
38
- DataVerticalSpeedMinFeetPerHour.type = 'Minimum vertical speed in feet per hour';
39
- DataVerticalSpeedMinFeetPerHour.displayType = DataVerticalSpeedMin.type;
40
- export class DataVerticalSpeedMinKilometerPerHour extends DataVerticalSpeedKilometerPerHour {
41
- getDisplayType() {
42
- return super.getDisplayType();
43
- }
44
- }
45
- DataVerticalSpeedMinKilometerPerHour.type = 'Minimum vertical speed in kilometers per hour';
46
- DataVerticalSpeedMinKilometerPerHour.displayType = DataVerticalSpeedMin.type;
47
- export class DataVerticalSpeedMinMilesPerHour extends DataVerticalSpeedMilesPerHour {
48
- getDisplayType() {
49
- return super.getDisplayType();
50
- }
51
- }
52
- DataVerticalSpeedMinMilesPerHour.type = 'Minimum vertical speed in miles per hour';
53
- DataVerticalSpeedMinMilesPerHour.displayType = DataVerticalSpeedMin.type;
@@ -1,103 +0,0 @@
1
- import { DataNumber } from './data.number';
2
- import { convertSpeedToSpeedInFeetPerHour, convertSpeedToSpeedInFeetPerMinute, convertSpeedToSpeedInFeetPerSecond, convertSpeedToSpeedInKilometersPerHour, convertSpeedToSpeedInMetersPerHour, convertSpeedToSpeedInMetersPerMinute, convertSpeedToSpeedInMilesPerHour } from '../events/utilities/helpers';
3
- export class DataVerticalSpeed extends DataNumber {
4
- getValue(formatForDataType) {
5
- switch (formatForDataType) {
6
- case DataVerticalSpeedKilometerPerHour.type:
7
- return convertSpeedToSpeedInKilometersPerHour(this.value);
8
- case DataVerticalSpeedMilesPerHour.type:
9
- return convertSpeedToSpeedInMilesPerHour(this.value);
10
- case DataVerticalSpeedFeetPerSecond.type:
11
- return convertSpeedToSpeedInFeetPerSecond(this.value);
12
- case DataVerticalSpeedMetersPerMinute.type:
13
- return convertSpeedToSpeedInMetersPerMinute(this.value);
14
- case DataVerticalSpeedFeetPerMinute.type:
15
- return convertSpeedToSpeedInFeetPerMinute(this.value);
16
- case DataVerticalSpeedFeetPerHour.type:
17
- return convertSpeedToSpeedInFeetPerHour(this.value);
18
- case DataVerticalSpeedMetersPerHour.type:
19
- return convertSpeedToSpeedInMetersPerHour(this.value);
20
- default:
21
- return super.getValue(formatForDataType);
22
- }
23
- }
24
- getDisplayValue() {
25
- return this.getValue().toFixed(2);
26
- }
27
- }
28
- DataVerticalSpeed.type = 'Vertical Speed';
29
- DataVerticalSpeed.unit = 'm/s';
30
- export class DataVerticalSpeedFeetPerSecond extends DataVerticalSpeed {
31
- getDisplayType() {
32
- return super.getDisplayType();
33
- }
34
- }
35
- DataVerticalSpeedFeetPerSecond.type = 'Vertical speed in feet per second';
36
- DataVerticalSpeedFeetPerSecond.displayType = DataVerticalSpeed.type;
37
- DataVerticalSpeedFeetPerSecond.unit = 'ft/s';
38
- export class DataVerticalSpeedMetersPerMinute extends DataVerticalSpeed {
39
- getDisplayType() {
40
- return super.getDisplayType();
41
- }
42
- getDisplayValue() {
43
- return this.getValue().toFixed(1);
44
- }
45
- }
46
- DataVerticalSpeedMetersPerMinute.type = 'Vertical speed in meters per minute';
47
- DataVerticalSpeedMetersPerMinute.displayType = DataVerticalSpeed.type;
48
- DataVerticalSpeedMetersPerMinute.unit = 'm/min';
49
- export class DataVerticalSpeedFeetPerMinute extends DataVerticalSpeed {
50
- getDisplayType() {
51
- return super.getDisplayType();
52
- }
53
- getDisplayValue() {
54
- return this.getValue().toFixed(1);
55
- }
56
- }
57
- DataVerticalSpeedFeetPerMinute.type = 'Vertical speed in feet per minute';
58
- DataVerticalSpeedFeetPerMinute.displayType = DataVerticalSpeed.type;
59
- DataVerticalSpeedFeetPerMinute.unit = 'ft/min';
60
- export class DataVerticalSpeedMetersPerHour extends DataVerticalSpeed {
61
- getDisplayType() {
62
- return super.getDisplayType();
63
- }
64
- getDisplayValue() {
65
- return this.getValue().toFixed(0);
66
- }
67
- }
68
- DataVerticalSpeedMetersPerHour.type = 'Vertical speed in meters per hour';
69
- DataVerticalSpeedMetersPerHour.displayType = DataVerticalSpeed.type;
70
- DataVerticalSpeedMetersPerHour.unit = 'm/h';
71
- export class DataVerticalSpeedFeetPerHour extends DataVerticalSpeed {
72
- getDisplayType() {
73
- return super.getDisplayType();
74
- }
75
- getDisplayValue() {
76
- return this.getValue().toFixed(0);
77
- }
78
- }
79
- DataVerticalSpeedFeetPerHour.type = 'Vertical speed in feet per hour';
80
- DataVerticalSpeedFeetPerHour.displayType = DataVerticalSpeed.type;
81
- DataVerticalSpeedFeetPerHour.unit = 'ft/h';
82
- export class DataVerticalSpeedKilometerPerHour extends DataVerticalSpeed {
83
- getDisplayType() {
84
- return super.getDisplayType();
85
- }
86
- getDisplayValue() {
87
- return this.getValue().toFixed(2);
88
- }
89
- }
90
- DataVerticalSpeedKilometerPerHour.type = 'Vertical speed in kilometers per hour';
91
- DataVerticalSpeedKilometerPerHour.displayType = DataVerticalSpeed.type;
92
- DataVerticalSpeedKilometerPerHour.unit = 'km/h';
93
- export class DataVerticalSpeedMilesPerHour extends DataVerticalSpeed {
94
- getDisplayType() {
95
- return super.getDisplayType();
96
- }
97
- getDisplayValue() {
98
- return this.getValue().toFixed(2);
99
- }
100
- }
101
- DataVerticalSpeedMilesPerHour.type = 'Vertical speed in miles per hour';
102
- DataVerticalSpeedMilesPerHour.displayType = DataVerticalSpeed.type;
103
- DataVerticalSpeedMilesPerHour.unit = 'mph';
@@ -1,7 +0,0 @@
1
- import { DataNumber } from './data.number';
2
- export class DataVO2Max extends DataNumber {
3
- getDisplayValue() {
4
- return this.getValue().toFixed(2);
5
- }
6
- }
7
- DataVO2Max.type = 'VO2 Max';
@@ -1,52 +0,0 @@
1
- const CreateMedianFilter = require('moving-median');
2
- const LowPassFilter = require('lowpassf');
3
- /**
4
- * Collection of filters parsers and converters for IBI (R-R) data
5
- */
6
- export class IBIFilters {
7
- /**
8
- * A limit filter. It removes all values outside the limit
9
- * @param {IBIData} ibiData
10
- * @param {number} limit
11
- * @param {boolean} lowLimit
12
- */
13
- static limitFilter(ibiData, limit, lowLimit) {
14
- ibiData.getIBIDataMap().forEach((value, key, map) => {
15
- if (value < limit && lowLimit) {
16
- map.delete(key);
17
- }
18
- else if (value > limit && !lowLimit) {
19
- map.delete(key);
20
- }
21
- });
22
- }
23
- /**
24
- * Running median filter
25
- * @param {IBIData} ibiData
26
- * @param {number} windowSize
27
- */
28
- static movingMedianFilter(ibiData, windowSize) {
29
- windowSize = windowSize || 5;
30
- const medianFilter = CreateMedianFilter(windowSize);
31
- ibiData.getIBIDataMap().forEach((ibi, elapsedTime) => {
32
- ibiData.setIBI(elapsedTime, Math.round(medianFilter(ibi)));
33
- });
34
- }
35
- /**
36
- * Low pass filter
37
- * @param {IBIData} ibiData
38
- * @param {number} windowSize
39
- * @param linearWeight
40
- */
41
- static lowPassFilter(ibiData, windowSize, linearWeight) {
42
- const lowPassFilter = new LowPassFilter();
43
- windowSize = windowSize || 5;
44
- linearWeight = linearWeight ? lowPassFilter.LinearWeightAverage : lowPassFilter.SimpleAverage;
45
- lowPassFilter.setLogic(linearWeight);
46
- lowPassFilter.setSamplingRange(windowSize);
47
- ibiData.getIBIDataMap().forEach((ibi, elapsedTime) => {
48
- lowPassFilter.putValue(ibi);
49
- ibiData.setIBI(elapsedTime, Math.round(lowPassFilter.getFilteredValue()));
50
- });
51
- }
52
- }
@@ -1,98 +0,0 @@
1
- import { IBIFilters } from './data.ibi.filters';
2
- export class IBIData {
3
- constructor(ibiDataArray) {
4
- /**
5
- * Key is time time since start of the array
6
- * value is the ibi
7
- * @type {Map<number, number>}
8
- */
9
- this.ibiDataMap = new Map();
10
- if (ibiDataArray) {
11
- this.parseIBIArray(ibiDataArray);
12
- }
13
- }
14
- /**
15
- * Parses an IBI data array
16
- * eg: [600, 600, 100] becomes a map of {600:600, 1200: 600, 1300:100}
17
- * @param {Array<number>} ibiArray
18
- */
19
- parseIBIArray(ibiArray) {
20
- ibiArray.reduce((totalTime, ibiData) => {
21
- if (ibiData > 0) {
22
- totalTime += ibiData;
23
- this.ibiDataMap.set(totalTime, ibiData);
24
- }
25
- return totalTime;
26
- }, 0);
27
- }
28
- /**
29
- * Sets the ibi for the specific time
30
- * @param time
31
- * @param ibi
32
- */
33
- setIBI(time, ibi) {
34
- this.ibiDataMap.set(time, ibi);
35
- }
36
- /**
37
- * Gets the IBI data map
38
- * @return {Map<number, number>}
39
- */
40
- getIBIDataMap() {
41
- return this.ibiDataMap;
42
- }
43
- /**
44
- * Gets the IBI data map but uses BPM units instead of IBI
45
- * @return {Map<number, number>}
46
- */
47
- getAsBPM() {
48
- const hrDataMap = new Map();
49
- this.ibiDataMap.forEach((value, key, map) => {
50
- hrDataMap.set(key, Math.round(60000 / value));
51
- });
52
- return hrDataMap;
53
- }
54
- getAsArray() {
55
- const ibi = [];
56
- this.ibiDataMap.forEach((value, key, map) => {
57
- ibi.push(value);
58
- });
59
- return ibi;
60
- }
61
- /**
62
- * Low Limit filter. Removes all hr values above limit
63
- * @param {number} bpmLowLimit in BPM
64
- */
65
- lowLimitBPMFilter(bpmLowLimit) {
66
- IBIFilters.limitFilter(this, 60000 / (bpmLowLimit || 40), false); // Lower bpm higher IBI limit!
67
- return this;
68
- }
69
- /**
70
- * High limit filter. Removes all hr values above limit
71
- * @param bpmHighLimit
72
- */
73
- highLimitBPMFilter(bpmHighLimit) {
74
- IBIFilters.limitFilter(this, 60000 / (bpmHighLimit || 220), true); // Higher bpm lower IBI limit!
75
- return this;
76
- }
77
- /**
78
- * Low pass filter
79
- * @param windowSize
80
- */
81
- lowPassFilter(windowSize) {
82
- IBIFilters.lowPassFilter(this, windowSize);
83
- return this;
84
- }
85
- /**
86
- * Moving median filter
87
- * @param {number} windowSize
88
- * @return {this}
89
- */
90
- movingMedianFilter(windowSize) {
91
- IBIFilters.movingMedianFilter(this, windowSize);
92
- return this;
93
- }
94
- toJSON() {
95
- return Array.from(this.ibiDataMap.values());
96
- }
97
- }
98
- IBIData.type = 'IBI'; // @todo hcakc fix