@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.
- package/.github/workflows/publish-alpha.yaml +58 -0
- package/.github/workflows/publish.yml +3 -0
- package/coverage/clover.xml +586 -588
- package/coverage/coverage-final.json +27 -27
- package/coverage/lcov-report/index.html +7 -7
- package/coverage/lcov-report/src/RecommendationScreen.tsx.html +979 -10
- package/coverage/lcov-report/src/__tests__/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/utils.tsx.html +29 -8
- package/coverage/lcov-report/src/components/Header.tsx.html +13 -4
- package/coverage/lcov-report/src/components/InfoBars.tsx.html +86 -2
- package/coverage/lcov-report/src/components/InvisibleNumberInput.tsx.html +196 -4
- package/coverage/lcov-report/src/components/LimitationMessage.tsx.html +20 -2
- package/coverage/lcov-report/src/components/LineSeparator.tsx.html +12 -3
- package/coverage/lcov-report/src/components/RecentInsulin.tsx.html +30 -3
- package/coverage/lcov-report/src/components/RecommendationModal.tsx.html +184 -4
- package/coverage/lcov-report/src/components/RecommendedCarbs.tsx.html +205 -7
- package/coverage/lcov-report/src/components/RecommendedInsulin.tsx.html +187 -19
- package/coverage/lcov-report/src/components/Remeasure.tsx.html +114 -3
- package/coverage/lcov-report/src/components/TransferToLogbook.tsx.html +67 -4
- package/coverage/lcov-report/src/components/TwoOptionModal.tsx.html +34 -10
- package/coverage/lcov-report/src/components/activity/Activity.tsx.html +58 -7
- package/coverage/lcov-report/src/components/activity/ActivityIcon.tsx.html +42 -3
- package/coverage/lcov-report/src/components/activity/ActivityIntensity.tsx.html +30 -6
- package/coverage/lcov-report/src/components/activity/index.html +1 -1
- package/coverage/lcov-report/src/components/index.html +10 -10
- package/coverage/lcov-report/src/components/mood/Emotion.tsx.html +78 -3
- package/coverage/lcov-report/src/components/mood/MoodIcon.tsx.html +80 -5
- package/coverage/lcov-report/src/components/mood/index.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/locale/i18nUtils.ts.html +41 -2
- package/coverage/lcov-report/src/locale/index.html +1 -1
- package/coverage/lcov-report/src/utils/AttentionMessages.tsx.html +231 -3
- package/coverage/lcov-report/src/utils/Constants.ts.html +71 -2
- package/coverage/lcov-report/src/utils/RecommendationError.tsx.html +89 -2
- package/coverage/lcov-report/src/utils/RecommendationUtils.ts.html +306 -9
- package/coverage/lcov-report/src/utils/Translations.ts.html +27 -3
- package/coverage/lcov-report/src/utils/Utils.ts.html +278 -2
- package/coverage/lcov-report/src/utils/Validations.ts.html +716 -14
- package/coverage/lcov-report/src/utils/index.html +1 -1
- package/coverage/lcov.info +1158 -1164
- package/ignore-git.sh +1 -0
- package/ignore-publish.sh +1 -0
- package/package.json +5 -3
- package/pre-release.sh +5 -0
- package/src/RecommendationScreen.d.ts +323 -6
- package/src/RecommendationScreen.js +234 -1
- package/src/__tests__/RecommendationScreen.test.js +1 -1
- package/src/__tests__/utils.d.ts +5 -5
- package/src/__tests__/utils.js +1 -1
- package/src/components/Header.d.ts +4 -43
- package/src/components/Header.js +3 -1
- package/src/components/Icon.d.ts +9 -2
- package/src/components/Icon.js +6 -1
- package/src/components/InfoBars.d.ts +28 -0
- package/src/components/InfoBars.js +23 -0
- package/src/components/InvisibleNumberInput.d.ts +66 -3
- package/src/components/InvisibleNumberInput.js +53 -0
- package/src/components/LimitationMessage.d.ts +6 -0
- package/src/components/LimitationMessage.js +4 -0
- package/src/components/LineSeparator.d.ts +4 -2
- package/src/components/LineSeparator.js +2 -0
- package/src/components/RecentInsulin.d.ts +10 -2
- package/src/components/RecentInsulin.js +7 -0
- package/src/components/RecommendationModal.d.ts +61 -3
- package/src/components/RecommendationModal.js +45 -0
- package/src/components/RecommendedCarbs.d.ts +71 -4
- package/src/components/RecommendedCarbs.js +56 -0
- package/src/components/RecommendedInsulin.d.ts +66 -4
- package/src/components/RecommendedInsulin.js +51 -5
- package/src/components/Remeasure.d.ts +38 -2
- package/src/components/Remeasure.js +31 -0
- package/src/components/TransferToLogbook.d.ts +23 -3
- package/src/components/TransferToLogbook.js +18 -0
- package/src/components/TwoOptionModal.d.ts +12 -1
- package/src/components/TwoOptionModal.js +3 -3
- package/src/components/activity/Activity.d.ts +21 -5
- package/src/components/activity/Activity.js +14 -0
- package/src/components/activity/ActivityIcon.d.ts +15 -0
- package/src/components/activity/ActivityIcon.js +14 -1
- package/src/components/activity/ActivityIntensity.d.ts +11 -4
- package/src/components/activity/ActivityIntensity.js +7 -0
- package/src/components/mood/Emotion.d.ts +26 -1
- package/src/components/mood/Emotion.js +20 -0
- package/src/components/mood/MoodIcon.d.ts +28 -2
- package/src/components/mood/MoodIcon.js +20 -2
- package/src/locale/i18nUtils.d.ts +13 -0
- package/src/locale/i18nUtils.js +13 -0
- package/src/types/enum.d.ts +10 -0
- package/src/types/enum.js +9 -0
- package/src/types/types.d.ts +9 -7
- package/src/utils/AttentionMessages.d.ts +65 -0
- package/src/utils/AttentionMessages.js +65 -1
- package/src/utils/Constants.d.ts +23 -0
- package/src/utils/Constants.js +23 -0
- package/src/utils/RecommendationError.d.ts +29 -0
- package/src/utils/RecommendationError.js +29 -0
- package/src/utils/RecommendationUtils.d.ts +98 -6
- package/src/utils/RecommendationUtils.js +92 -0
- package/src/utils/Translations.d.ts +7 -0
- package/src/utils/Translations.js +7 -0
- package/src/utils/Utils.d.ts +92 -0
- package/src/utils/Utils.js +92 -0
- package/src/utils/Validations.d.ts +232 -9
- package/src/utils/Validations.js +225 -2
- 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
|
|
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"> </span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
143
220
|
<span class="cline-any cline-neutral"> </span>
|
|
144
221
|
<span class="cline-any cline-neutral"> </span>
|
|
145
222
|
<span class="cline-any cline-neutral"> </span>
|
|
146
223
|
<span class="cline-any cline-neutral"> </span>
|
|
147
224
|
<span class="cline-any cline-yes">5x</span>
|
|
225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-neutral"> </span>
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
148
230
|
<span class="cline-any cline-yes">25x</span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
149
237
|
<span class="cline-any cline-yes">7x</span>
|
|
238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
150
240
|
<span class="cline-any cline-yes">4x</span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
151
243
|
<span class="cline-any cline-yes">2x</span>
|
|
152
244
|
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
153
253
|
<span class="cline-any cline-yes">4x</span>
|
|
254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
154
260
|
<span class="cline-any cline-yes">2x</span>
|
|
155
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
156
270
|
<span class="cline-any cline-yes">2x</span>
|
|
157
271
|
<span class="cline-any cline-neutral"> </span>
|
|
158
272
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -163,36 +277,67 @@
|
|
|
163
277
|
<span class="cline-any cline-neutral"> </span>
|
|
164
278
|
<span class="cline-any cline-neutral"> </span>
|
|
165
279
|
<span class="cline-any cline-neutral"> </span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
166
296
|
<span class="cline-any cline-yes">6x</span>
|
|
167
297
|
<span class="cline-any cline-neutral"> </span>
|
|
168
298
|
<span class="cline-any cline-neutral"> </span>
|
|
169
299
|
<span class="cline-any cline-yes">5x</span>
|
|
170
300
|
<span class="cline-any cline-neutral"> </span>
|
|
171
301
|
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
307
|
<span class="cline-any cline-yes">27x</span>
|
|
173
308
|
<span class="cline-any cline-neutral"> </span>
|
|
174
309
|
<span class="cline-any cline-neutral"> </span>
|
|
175
310
|
<span class="cline-any cline-neutral"> </span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
179
316
|
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
180
318
|
<span class="cline-any cline-yes">7x</span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </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"> </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"> </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"> </span>
|
|
188
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
189
331
|
<span class="cline-any cline-yes">8x</span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
333
|
<span class="cline-any cline-yes">8x</span>
|
|
334
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
194
338
|
<span class="cline-any cline-neutral"> </span>
|
|
195
339
|
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
@@ -202,6 +347,7 @@
|
|
|
202
347
|
<span class="cline-any cline-neutral"> </span>
|
|
203
348
|
<span class="cline-any cline-neutral"> </span>
|
|
204
349
|
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
@@ -209,10 +355,16 @@
|
|
|
209
355
|
<span class="cline-any cline-neutral"> </span>
|
|
210
356
|
<span class="cline-any cline-neutral"> </span>
|
|
211
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-neutral"> </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"> </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
|
|
|
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 => `${Messages.VeryLowBGL()}${`\n`}${Messages.Reminder15Minutes()}`,
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* @return Concatenation of:
|
|
392
|
+
* {@link Messages.LowBGL} +
|
|
393
|
+
* {@link Messages.Reminder15Minutes}
|
|
394
|
+
*/
|
|
231
395
|
Hypoglycemia: (): string => `${Messages.LowBGL()}${`\n`}${Messages.Reminder15Minutes()}`,
|
|
396
|
+
|
|
397
|
+
/** @return The value of: {@link Messages.Reminder15Minutes} */
|
|
232
398
|
MildHypoglycemia: (): string => Messages.Reminder15Minutes(),
|
|
399
|
+
|
|
400
|
+
/** @return The value of: {@link Messages.PostponePhysicalActivityUnder5MMOL} */
|
|
233
401
|
NormoglycemiaActivityUnder5MMOL: (): string => Messages.PostponePhysicalActivityUnder5MMOL(),
|
|
402
|
+
|
|
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 =>
|
|
235
411
|
`${Messages.HighBGL()}${`\n`}${Messages.InsulinKetones()}${`\n`}${Messages.Reminder15Minutes()}${`\n`}${Messages.PostponePhysicalActivity()}`,
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* @return Concatenation of:
|
|
415
|
+
* {@link Messages.HighBGL} +
|
|
416
|
+
* {@link Messages.InsulinKetones}
|
|
417
|
+
*/
|
|
236
418
|
SevereHyperglycemia: (): string => `${Messages.HighBGL()}${`\n`}${Messages.InsulinKetones()}${`\n`}`,
|
|
419
|
+
|
|
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 =>
|
|
238
428
|
`${Messages.HighBGL()}${`\n`}${Messages.InsulinKetones()}${`\n`}${Messages.Reminder15Minutes()}${`\n`}${Messages.PostponePhysicalActivity()}`,
|
|
429
|
+
|
|
430
|
+
/** no message provided for this level */
|
|
239
431
|
BGLevelNotProvided: null,
|
|
432
|
+
|
|
433
|
+
/** no message provided for this level*/
|
|
240
434
|
Hyperglycemia: null,
|
|
435
|
+
|
|
436
|
+
/** no message provided for this level */
|
|
241
437
|
MildHyperglycemia: null,
|
|
438
|
+
|
|
439
|
+
/** no message provided for this level */
|
|
242
440
|
Normoglycemia: null,
|
|
441
|
+
|
|
442
|
+
/** no message provided for this level */
|
|
243
443
|
NormoglycemiaUnder5MMOL: null,
|
|
444
|
+
|
|
445
|
+
/** no message provided for this level */
|
|
244
446
|
UnsupportedBGLevel: null,
|
|
245
447
|
};
|
|
246
448
|
|
|
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
|
|
|
251
457
|
const SAFETY_INSULIN_LIMIT = BolusCalculator.Constants.SAFETY_INSULIN_LIMIT;
|
|
252
458
|
|
|
253
|
-
|
|
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
|
|
|
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 =>
|
|
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 => 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 =>
|
|
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 =>
|
|
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 =>
|
|
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 => i18n._(t`You have a high blood glucose level.`);
|
|
490
|
+
/** Encourage user to measure ketones. */
|
|
272
491
|
public static InsulinKetones = (): string => 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 =>
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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 => {
|
|
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
|
|
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
|
|
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"> </span>
|
|
117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
118
|
<span class="cline-any cline-neutral"> </span>
|
|
95
119
|
<span class="cline-any cline-neutral"> </span>
|
|
96
120
|
<span class="cline-any cline-yes">13x</span>
|
|
121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
97
122
|
<span class="cline-any cline-yes">13x</span>
|
|
123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
98
124
|
<span class="cline-any cline-yes">13x</span>
|
|
99
125
|
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
100
127
|
<span class="cline-any cline-yes">13x</span>
|
|
101
128
|
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
102
130
|
<span class="cline-any cline-yes">13x</span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
103
132
|
<span class="cline-any cline-yes">13x</span>
|
|
133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
104
134
|
<span class="cline-any cline-yes">13x</span>
|
|
105
135
|
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
106
137
|
<span class="cline-any cline-yes">13x</span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
107
139
|
<span class="cline-any cline-yes">13x</span>
|
|
140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
108
141
|
<span class="cline-any cline-yes">13x</span>
|
|
109
142
|
<span class="cline-any cline-neutral"> </span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
110
144
|
<span class="cline-any cline-yes">13x</span>
|
|
145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
146
|
<span class="cline-any cline-yes">13x</span>
|
|
147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
112
148
|
<span class="cline-any cline-yes">13x</span>
|
|
113
149
|
<span class="cline-any cline-neutral"> </span>
|
|
150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
114
151
|
<span class="cline-any cline-yes">13x</span>
|
|
152
|
+
<span class="cline-any cline-neutral"> </span>
|
|
115
153
|
<span class="cline-any cline-yes">13x</span>
|
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
116
155
|
<span class="cline-any cline-yes">13x</span>
|
|
117
156
|
<span class="cline-any cline-neutral"> </span>
|
|
157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
118
158
|
<span class="cline-any cline-yes">13x</span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
119
160
|
<span class="cline-any cline-yes">13x</span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
120
162
|
<span class="cline-any cline-yes">13x</span>
|
|
121
163
|
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
122
165
|
<span class="cline-any cline-yes">13x</span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
123
167
|
<span class="cline-any cline-yes">13x</span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
124
169
|
<span class="cline-any cline-yes">13x</span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
125
171
|
<span class="cline-any cline-yes">13x</span>
|
|
126
172
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { BolusCalculator } from "@hedia/types";
|
|
127
173
|
import { IInterval } from "../types/types";
|
|
128
174
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
</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
|
|
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>
|