@hedia/recommendation-screen 2.1.15 → 2.1.16

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 (102) hide show
  1. package/coverage/clover.xml +586 -588
  2. package/coverage/coverage-final.json +27 -27
  3. package/coverage/lcov-report/index.html +7 -7
  4. package/coverage/lcov-report/src/RecommendationScreen.tsx.html +979 -10
  5. package/coverage/lcov-report/src/__tests__/index.html +1 -1
  6. package/coverage/lcov-report/src/__tests__/utils.tsx.html +29 -8
  7. package/coverage/lcov-report/src/components/Header.tsx.html +13 -4
  8. package/coverage/lcov-report/src/components/InfoBars.tsx.html +86 -2
  9. package/coverage/lcov-report/src/components/InvisibleNumberInput.tsx.html +196 -4
  10. package/coverage/lcov-report/src/components/LimitationMessage.tsx.html +20 -2
  11. package/coverage/lcov-report/src/components/LineSeparator.tsx.html +12 -3
  12. package/coverage/lcov-report/src/components/RecentInsulin.tsx.html +30 -3
  13. package/coverage/lcov-report/src/components/RecommendationModal.tsx.html +184 -4
  14. package/coverage/lcov-report/src/components/RecommendedCarbs.tsx.html +205 -7
  15. package/coverage/lcov-report/src/components/RecommendedInsulin.tsx.html +187 -19
  16. package/coverage/lcov-report/src/components/Remeasure.tsx.html +114 -3
  17. package/coverage/lcov-report/src/components/TransferToLogbook.tsx.html +67 -4
  18. package/coverage/lcov-report/src/components/TwoOptionModal.tsx.html +34 -10
  19. package/coverage/lcov-report/src/components/activity/Activity.tsx.html +58 -7
  20. package/coverage/lcov-report/src/components/activity/ActivityIcon.tsx.html +42 -3
  21. package/coverage/lcov-report/src/components/activity/ActivityIntensity.tsx.html +30 -6
  22. package/coverage/lcov-report/src/components/activity/index.html +1 -1
  23. package/coverage/lcov-report/src/components/index.html +10 -10
  24. package/coverage/lcov-report/src/components/mood/Emotion.tsx.html +78 -3
  25. package/coverage/lcov-report/src/components/mood/MoodIcon.tsx.html +80 -5
  26. package/coverage/lcov-report/src/components/mood/index.html +1 -1
  27. package/coverage/lcov-report/src/index.html +1 -1
  28. package/coverage/lcov-report/src/locale/i18nUtils.ts.html +41 -2
  29. package/coverage/lcov-report/src/locale/index.html +1 -1
  30. package/coverage/lcov-report/src/utils/AttentionMessages.tsx.html +231 -3
  31. package/coverage/lcov-report/src/utils/Constants.ts.html +71 -2
  32. package/coverage/lcov-report/src/utils/RecommendationError.tsx.html +89 -2
  33. package/coverage/lcov-report/src/utils/RecommendationUtils.ts.html +306 -9
  34. package/coverage/lcov-report/src/utils/Translations.ts.html +27 -3
  35. package/coverage/lcov-report/src/utils/Utils.ts.html +278 -2
  36. package/coverage/lcov-report/src/utils/Validations.ts.html +716 -14
  37. package/coverage/lcov-report/src/utils/index.html +1 -1
  38. package/coverage/lcov.info +1158 -1164
  39. package/ignore-git.sh +1 -0
  40. package/ignore-publish.sh +1 -0
  41. package/package.json +5 -3
  42. package/src/RecommendationScreen.d.ts +323 -6
  43. package/src/RecommendationScreen.js +234 -1
  44. package/src/__tests__/RecommendationScreen.test.js +1 -1
  45. package/src/__tests__/utils.d.ts +5 -5
  46. package/src/__tests__/utils.js +1 -1
  47. package/src/components/Header.d.ts +4 -43
  48. package/src/components/Header.js +3 -1
  49. package/src/components/Icon.d.ts +9 -2
  50. package/src/components/Icon.js +6 -1
  51. package/src/components/InfoBars.d.ts +28 -0
  52. package/src/components/InfoBars.js +23 -0
  53. package/src/components/InvisibleNumberInput.d.ts +66 -3
  54. package/src/components/InvisibleNumberInput.js +53 -0
  55. package/src/components/LimitationMessage.d.ts +6 -0
  56. package/src/components/LimitationMessage.js +4 -0
  57. package/src/components/LineSeparator.d.ts +4 -2
  58. package/src/components/LineSeparator.js +2 -0
  59. package/src/components/RecentInsulin.d.ts +10 -2
  60. package/src/components/RecentInsulin.js +7 -0
  61. package/src/components/RecommendationModal.d.ts +61 -3
  62. package/src/components/RecommendationModal.js +45 -0
  63. package/src/components/RecommendedCarbs.d.ts +71 -4
  64. package/src/components/RecommendedCarbs.js +56 -0
  65. package/src/components/RecommendedInsulin.d.ts +66 -4
  66. package/src/components/RecommendedInsulin.js +51 -5
  67. package/src/components/Remeasure.d.ts +38 -2
  68. package/src/components/Remeasure.js +31 -0
  69. package/src/components/TransferToLogbook.d.ts +23 -3
  70. package/src/components/TransferToLogbook.js +18 -0
  71. package/src/components/TwoOptionModal.d.ts +12 -1
  72. package/src/components/TwoOptionModal.js +3 -3
  73. package/src/components/activity/Activity.d.ts +21 -5
  74. package/src/components/activity/Activity.js +14 -0
  75. package/src/components/activity/ActivityIcon.d.ts +15 -0
  76. package/src/components/activity/ActivityIcon.js +14 -1
  77. package/src/components/activity/ActivityIntensity.d.ts +11 -4
  78. package/src/components/activity/ActivityIntensity.js +7 -0
  79. package/src/components/mood/Emotion.d.ts +26 -1
  80. package/src/components/mood/Emotion.js +20 -0
  81. package/src/components/mood/MoodIcon.d.ts +28 -2
  82. package/src/components/mood/MoodIcon.js +20 -2
  83. package/src/locale/i18nUtils.d.ts +13 -0
  84. package/src/locale/i18nUtils.js +13 -0
  85. package/src/types/enum.d.ts +10 -0
  86. package/src/types/enum.js +9 -0
  87. package/src/types/types.d.ts +9 -7
  88. package/src/utils/AttentionMessages.d.ts +65 -0
  89. package/src/utils/AttentionMessages.js +65 -1
  90. package/src/utils/Constants.d.ts +23 -0
  91. package/src/utils/Constants.js +23 -0
  92. package/src/utils/RecommendationError.d.ts +29 -0
  93. package/src/utils/RecommendationError.js +29 -0
  94. package/src/utils/RecommendationUtils.d.ts +98 -6
  95. package/src/utils/RecommendationUtils.js +92 -0
  96. package/src/utils/Translations.d.ts +7 -0
  97. package/src/utils/Translations.js +7 -0
  98. package/src/utils/Utils.d.ts +92 -0
  99. package/src/utils/Utils.js +92 -0
  100. package/src/utils/Validations.d.ts +232 -9
  101. package/src/utils/Validations.js +225 -2
  102. package/typedoc.json +13 -0
@@ -117,7 +117,32 @@
117
117
  <a name='L58'></a><a href='#L58'>58</a>
118
118
  <a name='L59'></a><a href='#L59'>59</a>
119
119
  <a name='L60'></a><a href='#L60'>60</a>
120
- <a name='L61'></a><a href='#L61'>61</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a>
127
+ <a name='L68'></a><a href='#L68'>68</a>
128
+ <a name='L69'></a><a href='#L69'>69</a>
129
+ <a name='L70'></a><a href='#L70'>70</a>
130
+ <a name='L71'></a><a href='#L71'>71</a>
131
+ <a name='L72'></a><a href='#L72'>72</a>
132
+ <a name='L73'></a><a href='#L73'>73</a>
133
+ <a name='L74'></a><a href='#L74'>74</a>
134
+ <a name='L75'></a><a href='#L75'>75</a>
135
+ <a name='L76'></a><a href='#L76'>76</a>
136
+ <a name='L77'></a><a href='#L77'>77</a>
137
+ <a name='L78'></a><a href='#L78'>78</a>
138
+ <a name='L79'></a><a href='#L79'>79</a>
139
+ <a name='L80'></a><a href='#L80'>80</a>
140
+ <a name='L81'></a><a href='#L81'>81</a>
141
+ <a name='L82'></a><a href='#L82'>82</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
121
146
  <span class="cline-any cline-neutral">&nbsp;</span>
122
147
  <span class="cline-any cline-neutral">&nbsp;</span>
123
148
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -129,6 +154,14 @@
129
154
  <span class="cline-any cline-neutral">&nbsp;</span>
130
155
  <span class="cline-any cline-neutral">&nbsp;</span>
131
156
  <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
165
  <span class="cline-any cline-yes">3x</span>
133
166
  <span class="cline-any cline-neutral">&nbsp;</span>
134
167
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -137,6 +170,7 @@
137
170
  <span class="cline-any cline-neutral">&nbsp;</span>
138
171
  <span class="cline-any cline-neutral">&nbsp;</span>
139
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
174
  <span class="cline-any cline-yes">3x</span>
141
175
  <span class="cline-any cline-neutral">&nbsp;</span>
142
176
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -146,6 +180,15 @@
146
180
  <span class="cline-any cline-neutral">&nbsp;</span>
147
181
  <span class="cline-any cline-neutral">&nbsp;</span>
148
182
  <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
192
  <span class="cline-any cline-yes">350x</span>
150
193
  <span class="cline-any cline-yes">730x</span>
151
194
  <span class="cline-any cline-yes">19x</span>
@@ -153,11 +196,18 @@
153
196
  <span class="cline-any cline-yes">711x</span>
154
197
  <span class="cline-any cline-neutral">&nbsp;</span>
155
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
205
  <span class="cline-any cline-yes">350x</span>
157
206
  <span class="cline-any cline-yes">13x</span>
158
207
  <span class="cline-any cline-neutral">&nbsp;</span>
159
208
  <span class="cline-any cline-neutral">&nbsp;</span>
160
209
  <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
211
  <span class="cline-any cline-yes">730x</span>
162
212
  <span class="cline-any cline-yes">730x</span>
163
213
  <span class="cline-any cline-yes">730x</span>
@@ -183,13 +233,21 @@ import { Dimensions, Image, ImageURISource, StyleSheet, TouchableOpacity } from
183
233
  &nbsp;
184
234
  const MoodEnum = Logbook.Enums.MoodEnum;
185
235
  &nbsp;
186
- interface IProps {
236
+ export interface IProps {
237
+ /** Which mood the mood component should represent. */
187
238
  mood: Logbook.Enums.MoodEnum;
239
+ /** Boolean indicating whether the mood component represents the currently active mood. */
188
240
  active: boolean;
241
+ /**
242
+ * Callback function to be called when the mood icon is pressed.
243
+ * The function has no return value.
244
+ * @param toggle Boolean value to indicate whether the icon should be turned on (if true) or off (if false).
245
+ */
189
246
  onPress(toggle: boolean): void;
190
247
  }
191
248
  &nbsp;
192
- const MOODS_INACTIVE: Record&lt;number, ImageURISource&gt; = {
249
+ /** Mapping from {@link Logbook.Enums.MoodEnum} to corresponding image resources */
250
+ export const MOODS_INACTIVE: Record&lt;number, ImageURISource&gt; = {
193
251
  1: require(`../../assets/mood/sad.png`),
194
252
  2: require(`../../assets/mood/semi_sad.png`),
195
253
  3: require(`../../assets/mood/neutral.png`),
@@ -197,7 +255,8 @@ const MOODS_INACTIVE: Record&lt;number, ImageURISource&gt; = {
197
255
  5: require(`../../assets/mood/happy.png`),
198
256
  };
199
257
  &nbsp;
200
- const MOODS_ACTIVE: Record&lt;number, ImageURISource&gt; = {
258
+ /** Mapping from {@link Logbook.Enums.MoodEnum} to corresponding image resources */
259
+ export const MOODS_ACTIVE: Record&lt;number, ImageURISource&gt; = {
201
260
  1: require(`../../assets/mood/sad_active.png`),
202
261
  2: require(`../../assets/mood/semi_sad_active.png`),
203
262
  3: require(`../../assets/mood/neutral_active.png`),
@@ -205,7 +264,16 @@ const MOODS_ACTIVE: Record&lt;number, ImageURISource&gt; = {
205
264
  5: require(`../../assets/mood/happy_active.png`),
206
265
  };
207
266
  &nbsp;
267
+ /** Component to display a mood icon base on its props. */
208
268
  export default class MoodIcon extends React.Component&lt;IProps&gt; {
269
+ /**
270
+ * Get the icon image resource that should be displayed for the mood icon.
271
+ *
272
+ * Steps:
273
+ * 1. If the active prop is true, return the value from the MOODS_ACTIVE constant that corresponds to the value of the mood prop.
274
+ * 2. (Only reached if the active prop is false) Return the value from the MOODS_INACTIVE constant that corresponds to the value of the mood prop.
275
+ * @returns Image resource that should be displayed for the mood icon.
276
+ */
209
277
  public getMoodIcon = (): ImageURISource =&gt; {
210
278
  if (this.props.active) {
211
279
  return MOODS_ACTIVE[this.props.mood];
@@ -213,10 +281,17 @@ export default class MoodIcon extends React.Component&lt;IProps&gt; {
213
281
  return MOODS_INACTIVE[this.props.mood];
214
282
  };
215
283
  &nbsp;
284
+ /**
285
+ * Handle what happens when the mood icon is pressed.
286
+ *
287
+ * Steps:
288
+ * 1. Call the onPress prop callback function with the toggle argument set to the inverse value of the active prop.
289
+ */
216
290
  public handleOnPress = (): void =&gt; {
217
291
  this.props.onPress(!this.props.active);
218
292
  };
219
293
  &nbsp;
294
+ /** JSX element to display the mood icon retrieved using the getMoodIcon() method. */
220
295
  public render(): JSX.Element {
221
296
  const { mood, active } = this.props;
222
297
  const label = `${MoodEnum[mood]}_${active}`;
@@ -244,7 +319,7 @@ const moodIconStyles = StyleSheet.create({
244
319
  <div class='footer quiet pad2 space-top1 center small'>
245
320
  Code coverage generated by
246
321
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
247
- at Fri Jul 09 2021 12:31:53 GMT+0000 (Coordinated Universal Time)
322
+ at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
248
323
  </div>
249
324
  </div>
250
325
  <script src="../../../prettify.js"></script>
@@ -110,7 +110,7 @@
110
110
  <div class='footer quiet pad2 space-top1 center small'>
111
111
  Code coverage generated by
112
112
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
113
- at Fri Jul 09 2021 12:31:53 GMT+0000 (Coordinated Universal Time)
113
+ at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
114
114
  </div>
115
115
  </div>
116
116
  <script src="../../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Fri Jul 09 2021 12:31:53 GMT+0000 (Coordinated Universal Time)
98
+ at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../prettify.js"></script>
@@ -86,7 +86,20 @@
86
86
  <a name='L27'></a><a href='#L27'>27</a>
87
87
  <a name='L28'></a><a href='#L28'>28</a>
88
88
  <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a>
92
+ <a name='L33'></a><a href='#L33'>33</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
90
103
  <span class="cline-any cline-neutral">&nbsp;</span>
91
104
  <span class="cline-any cline-neutral">&nbsp;</span>
92
105
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -101,12 +114,25 @@
101
114
  <span class="cline-any cline-neutral">&nbsp;</span>
102
115
  <span class="cline-any cline-neutral">&nbsp;</span>
103
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
118
  <span class="cline-any cline-yes">15x</span>
105
119
  <span class="cline-any cline-neutral">&nbsp;</span>
106
120
  <span class="cline-any cline-neutral">&nbsp;</span>
107
121
  <span class="cline-any cline-neutral">&nbsp;</span>
108
122
  <span class="cline-any cline-neutral">&nbsp;</span>
109
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
136
  <span class="cline-any cline-yes">72x</span>
111
137
  <span class="cline-any cline-neutral">&nbsp;</span>
112
138
  <span class="cline-any cline-yes">72x</span>
@@ -130,11 +156,24 @@ const languageMap: Record&lt;Languages, Catalog&gt; = {
130
156
  [Languages.it]: require(`./it/messages.js`),
131
157
  };
132
158
  &nbsp;
159
+ /** Internalisation object containing the translations. Call changeLanguage in order to change the language. */
133
160
  export const i18n = setupI18n({
134
161
  language: Languages.en,
135
162
  catalogs: languageMap,
136
163
  });
137
164
  &nbsp;
165
+ /**
166
+ * Change the language that is used to display text on the recommendation screen.
167
+ *
168
+ * Steps:
169
+ * 1. If the given language is in the language catalog:
170
+ * - Call the i18n package’s activate function with language as argument.
171
+ * 2. Else:
172
+ * - Call the i18n activate function with "English" as argument.
173
+ * 3. Return the i18n object.
174
+ * @param language The language to switch to.
175
+ * @returns Object that represents a i18n configuration for the given language.
176
+ */
138
177
  export function changeLanguage(language: Languages): I18n {
139
178
  languageMap[language] ? i18n.activate(language) : i18n.activate(Languages.en);
140
179
  // Temporary way of setting the moment locale to en-gb since we currently identify GB English with "en".
@@ -151,7 +190,7 @@ export function changeLanguage(language: Languages): I18n {
151
190
  <div class='footer quiet pad2 space-top1 center small'>
152
191
  Code coverage generated by
153
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
154
- at Fri Jul 09 2021 12:31:53 GMT+0000 (Coordinated Universal Time)
193
+ at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
155
194
  </div>
156
195
  </div>
157
196
  <script src="../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Fri Jul 09 2021 12:31:53 GMT+0000 (Coordinated Universal Time)
98
+ at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>