@hedia/recommendation-screen 2.1.15 → 2.1.17-alpha

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 (105) hide show
  1. package/.github/workflows/publish-alpha.yaml +58 -0
  2. package/.github/workflows/publish.yml +3 -0
  3. package/coverage/clover.xml +586 -588
  4. package/coverage/coverage-final.json +27 -27
  5. package/coverage/lcov-report/index.html +7 -7
  6. package/coverage/lcov-report/src/RecommendationScreen.tsx.html +979 -10
  7. package/coverage/lcov-report/src/__tests__/index.html +1 -1
  8. package/coverage/lcov-report/src/__tests__/utils.tsx.html +29 -8
  9. package/coverage/lcov-report/src/components/Header.tsx.html +13 -4
  10. package/coverage/lcov-report/src/components/InfoBars.tsx.html +86 -2
  11. package/coverage/lcov-report/src/components/InvisibleNumberInput.tsx.html +196 -4
  12. package/coverage/lcov-report/src/components/LimitationMessage.tsx.html +20 -2
  13. package/coverage/lcov-report/src/components/LineSeparator.tsx.html +12 -3
  14. package/coverage/lcov-report/src/components/RecentInsulin.tsx.html +30 -3
  15. package/coverage/lcov-report/src/components/RecommendationModal.tsx.html +184 -4
  16. package/coverage/lcov-report/src/components/RecommendedCarbs.tsx.html +205 -7
  17. package/coverage/lcov-report/src/components/RecommendedInsulin.tsx.html +187 -19
  18. package/coverage/lcov-report/src/components/Remeasure.tsx.html +114 -3
  19. package/coverage/lcov-report/src/components/TransferToLogbook.tsx.html +67 -4
  20. package/coverage/lcov-report/src/components/TwoOptionModal.tsx.html +34 -10
  21. package/coverage/lcov-report/src/components/activity/Activity.tsx.html +58 -7
  22. package/coverage/lcov-report/src/components/activity/ActivityIcon.tsx.html +42 -3
  23. package/coverage/lcov-report/src/components/activity/ActivityIntensity.tsx.html +30 -6
  24. package/coverage/lcov-report/src/components/activity/index.html +1 -1
  25. package/coverage/lcov-report/src/components/index.html +10 -10
  26. package/coverage/lcov-report/src/components/mood/Emotion.tsx.html +78 -3
  27. package/coverage/lcov-report/src/components/mood/MoodIcon.tsx.html +80 -5
  28. package/coverage/lcov-report/src/components/mood/index.html +1 -1
  29. package/coverage/lcov-report/src/index.html +1 -1
  30. package/coverage/lcov-report/src/locale/i18nUtils.ts.html +41 -2
  31. package/coverage/lcov-report/src/locale/index.html +1 -1
  32. package/coverage/lcov-report/src/utils/AttentionMessages.tsx.html +231 -3
  33. package/coverage/lcov-report/src/utils/Constants.ts.html +71 -2
  34. package/coverage/lcov-report/src/utils/RecommendationError.tsx.html +89 -2
  35. package/coverage/lcov-report/src/utils/RecommendationUtils.ts.html +306 -9
  36. package/coverage/lcov-report/src/utils/Translations.ts.html +27 -3
  37. package/coverage/lcov-report/src/utils/Utils.ts.html +278 -2
  38. package/coverage/lcov-report/src/utils/Validations.ts.html +716 -14
  39. package/coverage/lcov-report/src/utils/index.html +1 -1
  40. package/coverage/lcov.info +1158 -1164
  41. package/ignore-git.sh +1 -0
  42. package/ignore-publish.sh +1 -0
  43. package/package.json +5 -3
  44. package/pre-release.sh +5 -0
  45. package/src/RecommendationScreen.d.ts +323 -6
  46. package/src/RecommendationScreen.js +234 -1
  47. package/src/__tests__/RecommendationScreen.test.js +1 -1
  48. package/src/__tests__/utils.d.ts +5 -5
  49. package/src/__tests__/utils.js +1 -1
  50. package/src/components/Header.d.ts +4 -43
  51. package/src/components/Header.js +3 -1
  52. package/src/components/Icon.d.ts +9 -2
  53. package/src/components/Icon.js +6 -1
  54. package/src/components/InfoBars.d.ts +28 -0
  55. package/src/components/InfoBars.js +23 -0
  56. package/src/components/InvisibleNumberInput.d.ts +66 -3
  57. package/src/components/InvisibleNumberInput.js +53 -0
  58. package/src/components/LimitationMessage.d.ts +6 -0
  59. package/src/components/LimitationMessage.js +4 -0
  60. package/src/components/LineSeparator.d.ts +4 -2
  61. package/src/components/LineSeparator.js +2 -0
  62. package/src/components/RecentInsulin.d.ts +10 -2
  63. package/src/components/RecentInsulin.js +7 -0
  64. package/src/components/RecommendationModal.d.ts +61 -3
  65. package/src/components/RecommendationModal.js +45 -0
  66. package/src/components/RecommendedCarbs.d.ts +71 -4
  67. package/src/components/RecommendedCarbs.js +56 -0
  68. package/src/components/RecommendedInsulin.d.ts +66 -4
  69. package/src/components/RecommendedInsulin.js +51 -5
  70. package/src/components/Remeasure.d.ts +38 -2
  71. package/src/components/Remeasure.js +31 -0
  72. package/src/components/TransferToLogbook.d.ts +23 -3
  73. package/src/components/TransferToLogbook.js +18 -0
  74. package/src/components/TwoOptionModal.d.ts +12 -1
  75. package/src/components/TwoOptionModal.js +3 -3
  76. package/src/components/activity/Activity.d.ts +21 -5
  77. package/src/components/activity/Activity.js +14 -0
  78. package/src/components/activity/ActivityIcon.d.ts +15 -0
  79. package/src/components/activity/ActivityIcon.js +14 -1
  80. package/src/components/activity/ActivityIntensity.d.ts +11 -4
  81. package/src/components/activity/ActivityIntensity.js +7 -0
  82. package/src/components/mood/Emotion.d.ts +26 -1
  83. package/src/components/mood/Emotion.js +20 -0
  84. package/src/components/mood/MoodIcon.d.ts +28 -2
  85. package/src/components/mood/MoodIcon.js +20 -2
  86. package/src/locale/i18nUtils.d.ts +13 -0
  87. package/src/locale/i18nUtils.js +13 -0
  88. package/src/types/enum.d.ts +10 -0
  89. package/src/types/enum.js +9 -0
  90. package/src/types/types.d.ts +9 -7
  91. package/src/utils/AttentionMessages.d.ts +65 -0
  92. package/src/utils/AttentionMessages.js +65 -1
  93. package/src/utils/Constants.d.ts +23 -0
  94. package/src/utils/Constants.js +23 -0
  95. package/src/utils/RecommendationError.d.ts +29 -0
  96. package/src/utils/RecommendationError.js +29 -0
  97. package/src/utils/RecommendationUtils.d.ts +98 -6
  98. package/src/utils/RecommendationUtils.js +92 -0
  99. package/src/utils/Translations.d.ts +7 -0
  100. package/src/utils/Translations.js +7 -0
  101. package/src/utils/Utils.d.ts +92 -0
  102. package/src/utils/Utils.js +92 -0
  103. package/src/utils/Validations.d.ts +232 -9
  104. package/src/utils/Validations.js +225 -2
  105. package/typedoc.json +13 -0
@@ -139,20 +139,134 @@
139
139
  <a name='L80'></a><a href='#L80'>80</a>
140
140
  <a name='L81'></a><a href='#L81'>81</a>
141
141
  <a name='L82'></a><a href='#L82'>82</a>
142
- <a name='L83'></a><a href='#L83'>83</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
142
+ <a name='L83'></a><a href='#L83'>83</a>
143
+ <a name='L84'></a><a href='#L84'>84</a>
144
+ <a name='L85'></a><a href='#L85'>85</a>
145
+ <a name='L86'></a><a href='#L86'>86</a>
146
+ <a name='L87'></a><a href='#L87'>87</a>
147
+ <a name='L88'></a><a href='#L88'>88</a>
148
+ <a name='L89'></a><a href='#L89'>89</a>
149
+ <a name='L90'></a><a href='#L90'>90</a>
150
+ <a name='L91'></a><a href='#L91'>91</a>
151
+ <a name='L92'></a><a href='#L92'>92</a>
152
+ <a name='L93'></a><a href='#L93'>93</a>
153
+ <a name='L94'></a><a href='#L94'>94</a>
154
+ <a name='L95'></a><a href='#L95'>95</a>
155
+ <a name='L96'></a><a href='#L96'>96</a>
156
+ <a name='L97'></a><a href='#L97'>97</a>
157
+ <a name='L98'></a><a href='#L98'>98</a>
158
+ <a name='L99'></a><a href='#L99'>99</a>
159
+ <a name='L100'></a><a href='#L100'>100</a>
160
+ <a name='L101'></a><a href='#L101'>101</a>
161
+ <a name='L102'></a><a href='#L102'>102</a>
162
+ <a name='L103'></a><a href='#L103'>103</a>
163
+ <a name='L104'></a><a href='#L104'>104</a>
164
+ <a name='L105'></a><a href='#L105'>105</a>
165
+ <a name='L106'></a><a href='#L106'>106</a>
166
+ <a name='L107'></a><a href='#L107'>107</a>
167
+ <a name='L108'></a><a href='#L108'>108</a>
168
+ <a name='L109'></a><a href='#L109'>109</a>
169
+ <a name='L110'></a><a href='#L110'>110</a>
170
+ <a name='L111'></a><a href='#L111'>111</a>
171
+ <a name='L112'></a><a href='#L112'>112</a>
172
+ <a name='L113'></a><a href='#L113'>113</a>
173
+ <a name='L114'></a><a href='#L114'>114</a>
174
+ <a name='L115'></a><a href='#L115'>115</a>
175
+ <a name='L116'></a><a href='#L116'>116</a>
176
+ <a name='L117'></a><a href='#L117'>117</a>
177
+ <a name='L118'></a><a href='#L118'>118</a>
178
+ <a name='L119'></a><a href='#L119'>119</a>
179
+ <a name='L120'></a><a href='#L120'>120</a>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a>
182
+ <a name='L123'></a><a href='#L123'>123</a>
183
+ <a name='L124'></a><a href='#L124'>124</a>
184
+ <a name='L125'></a><a href='#L125'>125</a>
185
+ <a name='L126'></a><a href='#L126'>126</a>
186
+ <a name='L127'></a><a href='#L127'>127</a>
187
+ <a name='L128'></a><a href='#L128'>128</a>
188
+ <a name='L129'></a><a href='#L129'>129</a>
189
+ <a name='L130'></a><a href='#L130'>130</a>
190
+ <a name='L131'></a><a href='#L131'>131</a>
191
+ <a name='L132'></a><a href='#L132'>132</a>
192
+ <a name='L133'></a><a href='#L133'>133</a>
193
+ <a name='L134'></a><a href='#L134'>134</a>
194
+ <a name='L135'></a><a href='#L135'>135</a>
195
+ <a name='L136'></a><a href='#L136'>136</a>
196
+ <a name='L137'></a><a href='#L137'>137</a>
197
+ <a name='L138'></a><a href='#L138'>138</a>
198
+ <a name='L139'></a><a href='#L139'>139</a>
199
+ <a name='L140'></a><a href='#L140'>140</a>
200
+ <a name='L141'></a><a href='#L141'>141</a>
201
+ <a name='L142'></a><a href='#L142'>142</a>
202
+ <a name='L143'></a><a href='#L143'>143</a>
203
+ <a name='L144'></a><a href='#L144'>144</a>
204
+ <a name='L145'></a><a href='#L145'>145</a>
205
+ <a name='L146'></a><a href='#L146'>146</a>
206
+ <a name='L147'></a><a href='#L147'>147</a>
207
+ <a name='L148'></a><a href='#L148'>148</a>
208
+ <a name='L149'></a><a href='#L149'>149</a>
209
+ <a name='L150'></a><a href='#L150'>150</a>
210
+ <a name='L151'></a><a href='#L151'>151</a>
211
+ <a name='L152'></a><a href='#L152'>152</a>
212
+ <a name='L153'></a><a href='#L153'>153</a>
213
+ <a name='L154'></a><a href='#L154'>154</a>
214
+ <a name='L155'></a><a href='#L155'>155</a>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
220
  <span class="cline-any cline-neutral">&nbsp;</span>
144
221
  <span class="cline-any cline-neutral">&nbsp;</span>
145
222
  <span class="cline-any cline-neutral">&nbsp;</span>
146
223
  <span class="cline-any cline-neutral">&nbsp;</span>
147
224
  <span class="cline-any cline-yes">5x</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
230
  <span class="cline-any cline-yes">25x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
237
  <span class="cline-any cline-yes">7x</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
240
  <span class="cline-any cline-yes">4x</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
243
  <span class="cline-any cline-yes">2x</span>
152
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
253
  <span class="cline-any cline-yes">4x</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
260
  <span class="cline-any cline-yes">2x</span>
155
261
  <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
270
  <span class="cline-any cline-yes">2x</span>
157
271
  <span class="cline-any cline-neutral">&nbsp;</span>
158
272
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -163,36 +277,67 @@
163
277
  <span class="cline-any cline-neutral">&nbsp;</span>
164
278
  <span class="cline-any cline-neutral">&nbsp;</span>
165
279
  <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
296
  <span class="cline-any cline-yes">6x</span>
167
297
  <span class="cline-any cline-neutral">&nbsp;</span>
168
298
  <span class="cline-any cline-neutral">&nbsp;</span>
169
299
  <span class="cline-any cline-yes">5x</span>
170
300
  <span class="cline-any cline-neutral">&nbsp;</span>
171
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
307
  <span class="cline-any cline-yes">27x</span>
173
308
  <span class="cline-any cline-neutral">&nbsp;</span>
174
309
  <span class="cline-any cline-neutral">&nbsp;</span>
175
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
313
  <span class="cline-any cline-yes">5x</span>
177
314
  <span class="cline-any cline-yes">26x</span>
178
315
  <span class="cline-any cline-neutral">&nbsp;</span>
179
316
  <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
318
  <span class="cline-any cline-yes">7x</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
320
  <span class="cline-any cline-yes">5x</span>
182
321
  <span class="cline-any cline-yes">42x</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
323
  <span class="cline-any cline-yes">5x</span>
184
324
  <span class="cline-any cline-yes">6x</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
326
  <span class="cline-any cline-yes">5x</span>
186
327
  <span class="cline-any cline-yes">8x</span>
187
328
  <span class="cline-any cline-neutral">&nbsp;</span>
188
329
  <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
331
  <span class="cline-any cline-yes">8x</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
333
  <span class="cline-any cline-yes">8x</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
335
  <span class="cline-any cline-yes">5x</span>
192
336
  <span class="cline-any cline-yes">138x</span>
193
337
  <span class="cline-any cline-neutral">&nbsp;</span>
194
338
  <span class="cline-any cline-neutral">&nbsp;</span>
195
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
341
  <span class="cline-any cline-yes">5x</span>
197
342
  <span class="cline-any cline-yes">10x</span>
198
343
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -202,6 +347,7 @@
202
347
  <span class="cline-any cline-neutral">&nbsp;</span>
203
348
  <span class="cline-any cline-neutral">&nbsp;</span>
204
349
  <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
351
  <span class="cline-any cline-yes">5x</span>
206
352
  <span class="cline-any cline-yes">12x</span>
207
353
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -209,10 +355,16 @@
209
355
  <span class="cline-any cline-neutral">&nbsp;</span>
210
356
  <span class="cline-any cline-neutral">&nbsp;</span>
211
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
359
  <span class="cline-any cline-yes">5x</span>
213
360
  <span class="cline-any cline-yes">9x</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
365
  <span class="cline-any cline-yes">5x</span>
215
366
  <span class="cline-any cline-yes">3x</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
368
  <span class="cline-any cline-yes">5x</span>
217
369
  <span class="cline-any cline-yes">6x</span>
218
370
  <span class="cline-any cline-yes">6x</span>
@@ -226,55 +378,124 @@ import { t } from "@lingui/macro";
226
378
  import moment from "moment";
227
379
  import { i18n } from "../locale/i18nUtils";
228
380
  &nbsp;
381
+ /** Provides methods for getting variants of attention messages */
229
382
  export const AttentionMessage = {
383
+ /**
384
+ * @return Concatenation of:
385
+ * {@link Messages.VeryLowBGL} +
386
+ * {@link Messages.Reminder15Minutes}
387
+ */
230
388
  SevereHypoglycemia: (): string =&gt; `${Messages.VeryLowBGL()}${`\n`}${Messages.Reminder15Minutes()}`,
389
+ &nbsp;
390
+ /**
391
+ * @return Concatenation of:
392
+ * {@link Messages.LowBGL} +
393
+ * {@link Messages.Reminder15Minutes}
394
+ */
231
395
  Hypoglycemia: (): string =&gt; `${Messages.LowBGL()}${`\n`}${Messages.Reminder15Minutes()}`,
396
+ &nbsp;
397
+ /** @return The value of: {@link Messages.Reminder15Minutes} */
232
398
  MildHypoglycemia: (): string =&gt; Messages.Reminder15Minutes(),
399
+ &nbsp;
400
+ /** @return The value of: {@link Messages.PostponePhysicalActivityUnder5MMOL} */
233
401
  NormoglycemiaActivityUnder5MMOL: (): string =&gt; Messages.PostponePhysicalActivityUnder5MMOL(),
402
+ &nbsp;
403
+ /**
404
+ * @return Concatenation of:
405
+ * {@link Messages.HighBGL} +
406
+ * {@link Messages.InsulinKetones} +
407
+ * {@link Messages.Reminder15Minutes} +
408
+ * {@link Messages.PostponePhysicalActivity}
409
+ */
234
410
  HyperglycemiaActivity: (): string =&gt;
235
411
  `${Messages.HighBGL()}${`\n`}${Messages.InsulinKetones()}${`\n`}${Messages.Reminder15Minutes()}${`\n`}${Messages.PostponePhysicalActivity()}`,
412
+ &nbsp;
413
+ /**
414
+ * @return Concatenation of:
415
+ * {@link Messages.HighBGL} +
416
+ * {@link Messages.InsulinKetones}
417
+ */
236
418
  SevereHyperglycemia: (): string =&gt; `${Messages.HighBGL()}${`\n`}${Messages.InsulinKetones()}${`\n`}`,
419
+ &nbsp;
420
+ /**
421
+ * @return Concatenation of:
422
+ * {@link Messages.HighBGL} +
423
+ * {@link Messages.InsulinKetones} +
424
+ * {@link Messages.Reminder15Minutes} +
425
+ * {@link Messages.PostponePhysicalActivity}
426
+ */
237
427
  SevereHyperglycemiaActivity: (): string =&gt;
238
428
  `${Messages.HighBGL()}${`\n`}${Messages.InsulinKetones()}${`\n`}${Messages.Reminder15Minutes()}${`\n`}${Messages.PostponePhysicalActivity()}`,
429
+ &nbsp;
430
+ /** no message provided for this level */
239
431
  BGLevelNotProvided: null,
432
+ &nbsp;
433
+ /** no message provided for this level*/
240
434
  Hyperglycemia: null,
435
+ &nbsp;
436
+ /** no message provided for this level */
241
437
  MildHyperglycemia: null,
438
+ &nbsp;
439
+ /** no message provided for this level */
242
440
  Normoglycemia: null,
441
+ &nbsp;
442
+ /** no message provided for this level */
243
443
  NormoglycemiaUnder5MMOL: null,
444
+ &nbsp;
445
+ /** no message provided for this level */
244
446
  UnsupportedBGLevel: null,
245
447
  };
246
448
  &nbsp;
449
+ /**
450
+ * @param message The message to append the {@link Messages.PostponePhysicalActivityUnder5MMOL} to
451
+ * @returns The initial messaged concatenated with the {@link Messages.PostponePhysicalActivityUnder5MMOL}
452
+ */
247
453
  export function addPostponeActivityMessageUnder5MMOL(message: string): string {
248
454
  return `${message}${`\n`}${Messages.PostponePhysicalActivityUnder5MMOL()}`;
249
455
  }
250
456
  &nbsp;
251
457
  const SAFETY_INSULIN_LIMIT = BolusCalculator.Constants.SAFETY_INSULIN_LIMIT;
252
458
  &nbsp;
253
- function getLimitedValue(reduction: number): number {
459
+ /**
460
+ * Calculate the limited insulin value based on the physical activity reduction value
461
+ * @param reduction The reduction percentage an activity reduce the total insulin intake
462
+ * @returns The limited insulin value.
463
+ */
464
+ export function getLimitedValue(reduction: number): number {
254
465
  return SAFETY_INSULIN_LIMIT - SAFETY_INSULIN_LIMIT * reduction;
255
466
  }
256
467
  &nbsp;
468
+ /** Provides methods for getting strings for composing attention messages and other important communications to the user. */
257
469
  export class Messages {
470
+ /** Inform the user that their BGL is very low and what they should do about it. */
258
471
  public static VeryLowBGL = (): string =&gt;
259
472
  i18n._(
260
473
  t`Your blood glucose level is very low. Take glucagon or eat carbohydrates if possible. Seek medical attention.`,
261
474
  );
475
+ /** Inform the user that their BGL is very low. */
262
476
  public static LowBGL = (): string =&gt; i18n._(t`Your blood glucose level is very low.`);
477
+ /** Inform the user that they will be reminded to remeasure their BGL soon. */
263
478
  public static Reminder15Minutes = (): string =&gt;
264
479
  i18n._(t`You will be reminded to measure your blood glucose level in 15 min.`);
480
+ /** Encourages the user to postpone exercise. Specifically when their BGL is high. */
265
481
  public static PostponePhysicalActivity = (): string =&gt;
266
482
  i18n._(t`If it is possible, postpone your planned exercise.`);
483
+ /** Encourages the user to postpone exercise. Specifically when their BGL is low. */
267
484
  public static PostponePhysicalActivityUnder5MMOL = (): string =&gt;
268
485
  i18n._(
269
486
  t`Consider not to initiate physical activity before your blood glucose level is within the recommended ranges prior to physical activity.`,
270
487
  );
488
+ /** Inform about high BGL. */
271
489
  public static HighBGL = (): string =&gt; i18n._(t`You have a high blood glucose level.`);
490
+ /** Encourage user to measure ketones. */
272
491
  public static InsulinKetones = (): string =&gt; i18n._(t`You should take rapid-acting insulin and measure ketones.`);
492
+ /** Inform the user that their insulin recommendation was limited for safety. */
273
493
  public static RecommendationWasLimited = (): string =&gt;
274
494
  i18n._(
275
495
  t`Your recommendation would have been higher than ${SAFETY_INSULIN_LIMIT} units of insulin, but it has been limited for safety reasons.
276
496
  Hedia never recommends more than ${SAFETY_INSULIN_LIMIT} units of insulin per calculation.`,
277
497
  );
498
+ /** Inform the user that their insulin recommendation was limited for safety in combination with an activity. */
278
499
  public static RecommendationWasLimitedActivity = (activityReduction: number): string =&gt;
279
500
  i18n._(
280
501
  t`Your recommendation would have been higher than ${getLimitedValue(activityReduction)}
@@ -284,6 +505,7 @@ export class Messages {
284
505
  you entered it has been further reduced by ${(activityReduction * 100).toFixed(0)}% to
285
506
  ${getLimitedValue(activityReduction)}.`,
286
507
  );
508
+ /** Inform the user that the insulin amount they entered is above HDA’s safety limit. */
287
509
  public static InsulinInputWasLimited = (activityReduction: number | null): string =&gt;
288
510
  activityReduction
289
511
  ? i18n._(
@@ -291,10 +513,16 @@ export class Messages {
291
513
  ${(activityReduction * 100).toFixed(0)}% to ${getLimitedValue(activityReduction)} units for this calculation.`,
292
514
  )
293
515
  : i18n._(t`Hedia does not support more than ${SAFETY_INSULIN_LIMIT} units of insulin per calculation.`);
516
+ /** Title for the modal that informs the user that their calculation is too old. */
294
517
  public static TimeoutPrompTitle = (): string =&gt;
295
518
  i18n._(t`More than 15 minutes has passed since this calculation was started.`);
519
+ /**
520
+ * Inform the user that their recommendation calculation is too old.
521
+ * Variant to show when they didn’t see the actual insulin recommendation because they didn’t tell whether they injected insulin recently.
522
+ */
296
523
  public static TimeoutRecommendationNotVisible = (): string =&gt;
297
524
  i18n._(t`Please go through the calculation steps with new measurements to ensure a safe recommendation.`);
525
+ /** Inform the user that their recommendation calculation is too old. */
298
526
  public static TimeoutRecommendationVisible = (date: Date): string =&gt; {
299
527
  const day = moment(date).format(`LL`);
300
528
  const time = moment(date).format(`HH:mm`);
@@ -310,7 +538,7 @@ export class Messages {
310
538
  <div class='footer quiet pad2 space-top1 center small'>
311
539
  Code coverage generated by
312
540
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
313
- at Fri Jul 09 2021 12:31:53 GMT+0000 (Coordinated Universal Time)
541
+ at Mon Aug 16 2021 10:59:26 GMT+0000 (Coordinated Universal Time)
314
542
  </div>
315
543
  </div>
316
544
  <script src="../../prettify.js"></script>
@@ -90,71 +90,140 @@
90
90
  <a name='L31'></a><a href='#L31'>31</a>
91
91
  <a name='L32'></a><a href='#L32'>32</a>
92
92
  <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
93
+ <a name='L34'></a><a href='#L34'>34</a>
94
+ <a name='L35'></a><a href='#L35'>35</a>
95
+ <a name='L36'></a><a href='#L36'>36</a>
96
+ <a name='L37'></a><a href='#L37'>37</a>
97
+ <a name='L38'></a><a href='#L38'>38</a>
98
+ <a name='L39'></a><a href='#L39'>39</a>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a>
111
+ <a name='L52'></a><a href='#L52'>52</a>
112
+ <a name='L53'></a><a href='#L53'>53</a>
113
+ <a name='L54'></a><a href='#L54'>54</a>
114
+ <a name='L55'></a><a href='#L55'>55</a>
115
+ <a name='L56'></a><a href='#L56'>56</a>
116
+ <a name='L57'></a><a href='#L57'>57</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
94
118
  <span class="cline-any cline-neutral">&nbsp;</span>
95
119
  <span class="cline-any cline-neutral">&nbsp;</span>
96
120
  <span class="cline-any cline-yes">13x</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
97
122
  <span class="cline-any cline-yes">13x</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
98
124
  <span class="cline-any cline-yes">13x</span>
99
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
127
  <span class="cline-any cline-yes">13x</span>
101
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
130
  <span class="cline-any cline-yes">13x</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
132
  <span class="cline-any cline-yes">13x</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
134
  <span class="cline-any cline-yes">13x</span>
105
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
137
  <span class="cline-any cline-yes">13x</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
139
  <span class="cline-any cline-yes">13x</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
141
  <span class="cline-any cline-yes">13x</span>
109
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
144
  <span class="cline-any cline-yes">13x</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
111
146
  <span class="cline-any cline-yes">13x</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
148
  <span class="cline-any cline-yes">13x</span>
113
149
  <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
151
  <span class="cline-any cline-yes">13x</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
153
  <span class="cline-any cline-yes">13x</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
155
  <span class="cline-any cline-yes">13x</span>
117
156
  <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
158
  <span class="cline-any cline-yes">13x</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
160
  <span class="cline-any cline-yes">13x</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
162
  <span class="cline-any cline-yes">13x</span>
121
163
  <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
165
  <span class="cline-any cline-yes">13x</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
167
  <span class="cline-any cline-yes">13x</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
169
  <span class="cline-any cline-yes">13x</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
171
  <span class="cline-any cline-yes">13x</span>
126
172
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { BolusCalculator } from "@hedia/types";
127
173
  import { IInterval } from "../types/types";
128
174
  &nbsp;
175
+ /** Reusable color definition. */
129
176
  export const BACKGROUND_COLOUR_PURPLE = `rgba(27, 31, 72, 1)`;
177
+ /** Reusable color definition. */
130
178
  export const BORDER_COLOUR_GREY = `rgba(74, 91, 134, 1)`;
179
+ /** Reusable color definition. */
131
180
  export const BORDER_COLOUR_TEAL = `rgba(1, 255, 252, 0.8)`;
132
181
  &nbsp;
182
+ /** The threshold above which hyperglycemia is considered to be severe in mmol/L */
133
183
  export const SEVERE_HYPERGLYCEMIA_START_MMOL = 15;
134
184
  &nbsp;
185
+ /** The number of seconds in four hours. */
135
186
  export const FOUR_HOURS_SECONDS = 14400;
187
+ /** The number of minutes in one hour. */
136
188
  export const ONE_HOUR_MINUTES = 60;
189
+ /** Extra time before an activity starts or stops. */
137
190
  export const ACTIVITY_BUFFER_MINUTES = 10;
138
191
  &nbsp;
192
+ /** The lower and upper limits for the amount of carbohydrates in grams. */
139
193
  export const CARBOHYDRATES_LIMTS: IInterval = { min: 0, max: 300 };
194
+ /** The lower and upper limits for the insulin dose in units. The upper limit is represented by the SAFETY_INSULIN_LIMIT constant while the lower limit is 0. */
140
195
  export const INSULIN_DOSE_LIMITS: IInterval = { min: 0, max: BolusCalculator.Constants.SAFETY_INSULIN_LIMIT };
196
+ /** The lower and upper limits for the age of boluses that gets taken into account for calculating insulin on board. */
141
197
  export const BOLUS_SECONDS_PASSED_LIMITS: IInterval = { min: 0, max: FOUR_HOURS_SECONDS };
142
198
  &nbsp;
199
+ /** The lower and upper limits for the duration of an activity in minutes. */
143
200
  export const ACTIVITY_DURATION_MINUTES_LIMITS: IInterval = { min: 1, max: ONE_HOUR_MINUTES };
201
+ /** The lower and upper limits of insulin sensitivity settings. */
144
202
  export const INSULIN_SENSITIVITY_MMOL_LIMITS: IInterval = { min: 0.3, max: 10 };
203
+ /** The lower and upper limits of insulin-to-carbs ratio settings. */
145
204
  export const INSULIN_TO_CARBS_RATIO_LIMITS: IInterval = { min: 1, max: 50 };
146
205
  &nbsp;
206
+ /** The lower and upper limits of the entered blood glucose level value in mmol/L. */
147
207
  export const CURRENT_BGL_MMOL_LIMITS: IInterval = { min: 1.1, max: 33.3 };
208
+ /** The conversion factor to multiply a blood glucose value with to go from mmol/L to mg/dL. */
148
209
  export const MMOLL_PER_MGDL_BGL: number = 0.0555;
210
+ /** The conversion factor to multiply a blood glucose value with to go from mg/dL to mmol/L. */
149
211
  export const MGDL_PER_MMOLL_BGL: number = 1 / MMOLL_PER_MGDL_BGL;
150
212
  &nbsp;
213
+ /** The lower and upper limits of the entered blood ketones value in mmol/L. */
151
214
  export const CURRENT_BKL_MMOL_LIMITS: IInterval = { min: 0, max: 8 };
215
+ /** The conversion factor to multiply a blood ketones value with to go from mmol/L to mg/dL. */
152
216
  export const MMOLL_PER_MGDL_BKL: number = 0.096;
217
+ /** The conversion factor to multiply a blood ketones value with to go from mg/dL to mmol/L. */
153
218
  export const MGDL_PER_MMOLL_BKL: number = 1 / MMOLL_PER_MGDL_BKL;
154
219
  &nbsp;
220
+ /** The lower and upper limits for a valid BGL target in mmol/L. */
155
221
  export const TARGET_BGL_MMOL_LIMITS: IInterval = { min: 5, max: 13.9 };
222
+ /** The lower and upper limits for a valid activity BGL target in mmol/L. */
156
223
  export const ACTIVITY_TARGET_BGL_MMOL_LIMITS: IInterval = { min: 5, max: 13.9 };
224
+ /** The lower and upper limits for how long the reminder notification timer may be. */
157
225
  export const REMINDER_HOURS_LIMITS: IInterval = { min: 0, max: 6 };
226
+ /** The lower and upper limits for activity reduction. */
158
227
  export const ACTIVITY_SETTINGS_INTERVAL_LIMITS: IInterval = { min: 0, max: 1 };
159
228
  &nbsp;</pre></td></tr></table></pre>
160
229
 
@@ -163,7 +232,7 @@ export const ACTIVITY_SETTINGS_INTERVAL_LIMITS: IInterval = { min: 0, max: 1 };
163
232
  <div class='footer quiet pad2 space-top1 center small'>
164
233
  Code coverage generated by
165
234
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
166
- at Fri Jul 09 2021 12:31:53 GMT+0000 (Coordinated Universal Time)
235
+ at Mon Aug 16 2021 10:59:26 GMT+0000 (Coordinated Universal Time)
167
236
  </div>
168
237
  </div>
169
238
  <script src="../../prettify.js"></script>