@hedia/recommendation-screen 1.8.2 → 2.0.2
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/ci.yml +0 -0
- package/.github/workflows/publish.yml +48 -0
- package/.github/workflows/version-check.yml +45 -0
- package/.linguirc +0 -0
- package/.npmpackagejsonlintrc.json +0 -0
- package/.prettierignore +0 -0
- package/.prettierrc +0 -0
- package/App.d.ts +4 -5
- package/App.jsx +23 -34
- package/App.tsx +36 -41
- package/Changelog.md +0 -0
- package/README.md +0 -0
- package/android/app/BUCK +0 -0
- package/android/app/build.gradle +0 -0
- package/android/app/build_defs.bzl +0 -0
- package/android/app/debug.keystore +0 -0
- package/android/app/proguard-rules.pro +0 -0
- package/android/app/src/debug/AndroidManifest.xml +0 -0
- package/android/app/src/debug/java/com/hediarecommendationscreen/ReactNativeFlipper.java +0 -0
- package/android/app/src/main/AndroidManifest.xml +0 -0
- package/android/app/src/main/assets/fonts/AntDesign.ttf +0 -0
- package/android/app/src/main/assets/fonts/Entypo.ttf +0 -0
- package/android/app/src/main/assets/fonts/EvilIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Feather.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf +0 -0
- package/android/app/src/main/assets/fonts/Foundation.ttf +0 -0
- package/android/app/src/main/assets/fonts/Ionicons.ttf +0 -0
- package/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/MaterialIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Octicons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Black.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-BlackItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Bold.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-BoldItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Italic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Light.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-LightItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Medium.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-MediumItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Regular.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Thin.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-ThinItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/SimpleLineIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Zocial.ttf +0 -0
- package/android/app/src/main/java/com/hediarecommendationscreen/MainActivity.java +0 -0
- package/android/app/src/main/java/com/hediarecommendationscreen/MainApplication.java +0 -0
- package/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/values/color.xml +0 -0
- package/android/app/src/main/res/values/strings.xml +0 -0
- package/android/app/src/main/res/values/styles.xml +0 -0
- package/android/build.gradle +0 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -0
- package/android/gradle.properties +0 -0
- package/android/gradlew.bat +0 -0
- package/android/settings.gradle +0 -0
- package/app.json +0 -0
- package/assets/fonts/Roboto/LICENSE.txt +0 -0
- package/assets/fonts/Roboto/Roboto-Black.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Bold.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Italic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Light.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Thin.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- package/babel.config.js +0 -0
- package/ignore-git.sh +1 -1
- package/ignore-publish.sh +2 -1
- package/index.d.ts +2 -2
- package/index.js +2 -3
- package/index.ts +2 -2
- package/ios/HediaRecommendationScreen/AppDelegate.h +0 -0
- package/ios/HediaRecommendationScreen/AppDelegate.m +0 -0
- package/ios/HediaRecommendationScreen/Base.lproj/LaunchScreen.xib +0 -0
- package/ios/HediaRecommendationScreen/Images.xcassets/AppIcon.appiconset/Contents.json +0 -0
- package/ios/HediaRecommendationScreen/Images.xcassets/Contents.json +0 -0
- package/ios/HediaRecommendationScreen/Info.plist +0 -0
- package/ios/HediaRecommendationScreen/main.m +0 -0
- package/ios/HediaRecommendationScreen-tvOS/Info.plist +0 -0
- package/ios/HediaRecommendationScreen-tvOSTests/Info.plist +0 -0
- package/ios/HediaRecommendationScreen.xcodeproj/project.pbxproj +0 -0
- package/ios/HediaRecommendationScreen.xcodeproj/xcshareddata/xcschemes/HediaRecommendationScreen-tvOS.xcscheme +0 -0
- package/ios/HediaRecommendationScreen.xcodeproj/xcshareddata/xcschemes/HediaRecommendationScreen.xcscheme +0 -0
- package/ios/HediaRecommendationScreen.xcworkspace/contents.xcworkspacedata +0 -0
- package/ios/HediaRecommendationScreen.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- package/ios/HediaRecommendationScreenTests/HediaRecommendationScreenTests.m +0 -0
- package/ios/HediaRecommendationScreenTests/Info.plist +0 -0
- package/ios/Podfile +0 -0
- package/ios/Podfile.lock +0 -0
- package/jest.config.js +0 -0
- package/jest.mock.js +0 -0
- package/metro.config.js +0 -0
- package/package.json +8 -10
- package/react-native.config.js +0 -0
- package/src/RecommendationScreen.d.ts +18 -20
- package/src/RecommendationScreen.jsx +26 -15
- package/src/RecommendationScreen.tsx +60 -37
- package/src/__tests__/RecommendationScreen.test.d.ts +0 -0
- package/src/__tests__/RecommendationScreen.test.jsx +163 -138
- package/src/__tests__/RecommendationScreen.test.tsx +256 -159
- package/src/__tests__/RecommendationUtils.test.d.ts +0 -0
- package/src/__tests__/RecommendationUtils.test.js +30 -39
- package/src/__tests__/RecommendationUtils.test.ts +38 -43
- package/src/__tests__/Translate.test.d.ts +0 -0
- package/src/__tests__/Translate.test.jsx +13 -12
- package/src/__tests__/Translate.test.tsx +15 -14
- package/src/__tests__/Utils.test.d.ts +0 -0
- package/src/__tests__/Utils.test.js +22 -20
- package/src/__tests__/Utils.test.ts +32 -21
- package/src/__tests__/Validations.test.d.ts +0 -0
- package/src/__tests__/Validations.test.js +59 -33
- package/src/__tests__/Validations.test.ts +83 -41
- package/src/__tests__/components/Activity.test.d.ts +0 -0
- package/src/__tests__/components/Activity.test.jsx +39 -18
- package/src/__tests__/components/Activity.test.tsx +99 -45
- package/src/__tests__/components/Emotion.test.d.ts +0 -0
- package/src/__tests__/components/Emotion.test.jsx +34 -25
- package/src/__tests__/components/Emotion.test.tsx +41 -24
- package/src/__tests__/components/Header.test.d.ts +0 -0
- package/src/__tests__/components/Header.test.jsx +10 -9
- package/src/__tests__/components/Header.test.tsx +12 -11
- package/src/__tests__/components/InfoBars.test.d.ts +0 -0
- package/src/__tests__/components/InfoBars.test.jsx +1 -0
- package/src/__tests__/components/InfoBars.test.tsx +7 -6
- package/src/__tests__/components/InvisibleNumberInput.test.d.ts +0 -0
- package/src/__tests__/components/InvisibleNumberInput.test.jsx +40 -24
- package/src/__tests__/components/InvisibleNumberInput.test.tsx +41 -17
- package/src/__tests__/components/LimitationMessage.test.d.ts +0 -0
- package/src/__tests__/components/LimitationMessage.test.jsx +11 -30
- package/src/__tests__/components/LimitationMessage.test.tsx +15 -13
- package/src/__tests__/components/MoodIcon.test.d.ts +0 -0
- package/src/__tests__/components/MoodIcon.test.jsx +12 -8
- package/src/__tests__/components/MoodIcon.test.tsx +13 -5
- package/src/__tests__/components/RecommendationModal.test.d.ts +0 -0
- package/src/__tests__/components/RecommendationModal.test.jsx +22 -21
- package/src/__tests__/components/RecommendationModal.test.tsx +29 -27
- package/src/__tests__/components/RecommendedCarbs.test.d.ts +0 -0
- package/src/__tests__/components/RecommendedCarbs.test.jsx +7 -10
- package/src/__tests__/components/RecommendedCarbs.test.tsx +9 -10
- package/src/__tests__/components/RecommendedInsulin.test.d.ts +0 -0
- package/src/__tests__/components/RecommendedInsulin.test.jsx +57 -41
- package/src/__tests__/components/RecommendedInsulin.test.tsx +57 -31
- package/src/__tests__/components/Remeasure.test.d.ts +0 -0
- package/src/__tests__/components/Remeasure.test.jsx +7 -3
- package/src/__tests__/components/Remeasure.test.tsx +11 -3
- package/src/__tests__/components/TransferToLogbook.test.d.ts +0 -0
- package/src/__tests__/components/TransferToLogbook.test.jsx +2 -2
- package/src/__tests__/components/TransferToLogbook.test.tsx +2 -2
- package/src/__tests__/components/TwoOptionModal.test.d.ts +0 -0
- package/src/__tests__/components/TwoOptionModal.test.jsx +5 -4
- package/src/__tests__/components/TwoOptionModal.test.tsx +6 -4
- package/src/__tests__/utils.d.ts +7 -2
- package/src/__tests__/utils.jsx +59 -15
- package/src/__tests__/utils.tsx +63 -16
- package/src/assets/activity/Cyclist.png +0 -0
- package/src/assets/activity/Other.png +0 -0
- package/src/assets/activity/Runner.png +0 -0
- package/src/assets/activity/Swimmer.png +0 -0
- package/src/assets/activity/Walk.png +0 -0
- package/src/assets/mood/happy.png +0 -0
- package/src/assets/mood/happy_active.png +0 -0
- package/src/assets/mood/neutral.png +0 -0
- package/src/assets/mood/neutral_active.png +0 -0
- package/src/assets/mood/sad.png +0 -0
- package/src/assets/mood/sad_active.png +0 -0
- package/src/assets/mood/semi_happy.png +0 -0
- package/src/assets/mood/semi_happy_active.png +0 -0
- package/src/assets/mood/semi_sad.png +0 -0
- package/src/assets/mood/semi_sad_active.png +0 -0
- package/src/components/Header.d.ts +0 -0
- package/src/components/Header.jsx +2 -1
- package/src/components/Header.tsx +2 -1
- package/src/components/Icon.js +0 -0
- package/src/components/InfoBars.d.ts +1 -1
- package/src/components/InfoBars.jsx +0 -0
- package/src/components/InfoBars.tsx +1 -1
- package/src/components/InvisibleNumberInput.d.ts +2 -1
- package/src/components/InvisibleNumberInput.jsx +7 -2
- package/src/components/InvisibleNumberInput.tsx +10 -3
- package/src/components/LimitationMessage.d.ts +1 -1
- package/src/components/LimitationMessage.jsx +3 -2
- package/src/components/LimitationMessage.tsx +3 -1
- package/src/components/LineSeparator.d.ts +0 -0
- package/src/components/LineSeparator.jsx +0 -0
- package/src/components/LineSeparator.tsx +0 -0
- package/src/components/RecentInsulin.d.ts +0 -0
- package/src/components/RecentInsulin.jsx +3 -2
- package/src/components/RecentInsulin.tsx +3 -0
- package/src/components/RecommendationModal.d.ts +4 -4
- package/src/components/RecommendationModal.jsx +10 -9
- package/src/components/RecommendationModal.tsx +19 -8
- package/src/components/RecommendedCarbs.d.ts +4 -3
- package/src/components/RecommendedCarbs.jsx +12 -9
- package/src/components/RecommendedCarbs.tsx +31 -16
- package/src/components/RecommendedInsulin.d.ts +7 -7
- package/src/components/RecommendedInsulin.jsx +11 -7
- package/src/components/RecommendedInsulin.tsx +24 -12
- package/src/components/Remeasure.d.ts +2 -2
- package/src/components/Remeasure.jsx +7 -2
- package/src/components/Remeasure.tsx +10 -4
- package/src/components/TransferToLogbook.d.ts +0 -0
- package/src/components/TransferToLogbook.jsx +2 -1
- package/src/components/TransferToLogbook.tsx +2 -0
- package/src/components/TwoOptionModal.d.ts +5 -3
- package/src/components/TwoOptionModal.jsx +44 -13
- package/src/components/TwoOptionModal.tsx +50 -14
- package/src/components/activity/Activity.d.ts +2 -3
- package/src/components/activity/Activity.jsx +5 -2
- package/src/components/activity/Activity.tsx +7 -5
- package/src/components/activity/ActivityIcon.d.ts +1 -1
- package/src/components/activity/ActivityIcon.jsx +9 -8
- package/src/components/activity/ActivityIcon.tsx +12 -10
- package/src/components/activity/ActivityIntensity.d.ts +1 -1
- package/src/components/activity/ActivityIntensity.jsx +2 -8
- package/src/components/activity/ActivityIntensity.tsx +3 -12
- package/src/components/mood/Emotion.d.ts +5 -4
- package/src/components/mood/Emotion.jsx +4 -3
- package/src/components/mood/Emotion.tsx +9 -7
- package/src/components/mood/MoodIcon.d.ts +2 -2
- package/src/components/mood/MoodIcon.jsx +3 -2
- package/src/components/mood/MoodIcon.tsx +4 -2
- package/src/locale/CleanLanguage.ts +0 -0
- package/src/locale/da/messages.js +1 -1
- package/src/locale/da/messages.po +115 -107
- package/src/locale/de/messages.js +1 -1
- package/src/locale/de/messages.po +115 -107
- package/src/locale/en/messages.js +1 -1
- package/src/locale/en/messages.po +118 -110
- package/src/locale/es/messages.js +1 -1
- package/src/locale/es/messages.po +112 -104
- package/src/locale/fr/messages.js +1 -1
- package/src/locale/fr/messages.po +111 -103
- package/src/locale/i18nUtils.d.ts +3 -4
- package/src/locale/i18nUtils.js +13 -12
- package/src/locale/i18nUtils.ts +14 -14
- package/src/locale/it/messages.js +1 -1
- package/src/locale/it/messages.po +113 -105
- package/src/types/enum.d.ts +52 -44
- package/src/types/enum.js +67 -56
- package/src/types/enum.ts +58 -34
- package/src/types/types.d.ts +9 -23
- package/src/types/types.js +0 -0
- package/src/types/types.ts +9 -25
- package/src/utils/AttentionMessages.d.ts +1 -4
- package/src/utils/AttentionMessages.jsx +8 -30
- package/src/utils/AttentionMessages.tsx +11 -16
- package/src/utils/Constants.d.ts +0 -0
- package/src/utils/Constants.js +0 -0
- package/src/utils/Constants.ts +0 -0
- package/src/utils/RecommendationError.d.ts +2 -0
- package/src/utils/RecommendationError.jsx +45 -40
- package/src/utils/RecommendationError.tsx +17 -4
- package/src/utils/RecommendationUtils.d.ts +7 -8
- package/src/utils/RecommendationUtils.js +15 -7
- package/src/utils/RecommendationUtils.ts +24 -14
- package/src/utils/Translations.d.ts +2 -0
- package/src/utils/Translations.js +10 -0
- package/src/utils/Translations.ts +9 -0
- package/src/utils/Utils.d.ts +4 -5
- package/src/utils/Utils.js +6 -5
- package/src/utils/Utils.ts +10 -8
- package/src/utils/Validations.d.ts +10 -9
- package/src/utils/Validations.js +61 -65
- package/src/utils/Validations.ts +76 -81
- package/tsconfig.json +2 -2
- package/tslint.json +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { Dimensions, StatusBar, StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
3
|
+
import { TwoOptionModalTestIds } from "../types/enum";
|
|
3
4
|
import { BACKGROUND_COLOUR_PURPLE, BORDER_COLOUR_GREY, BORDER_COLOUR_TEAL } from "../utils/Constants";
|
|
4
5
|
import Icon from "./Icon";
|
|
5
6
|
import { stylesModal } from "./RecommendationModal";
|
|
@@ -28,12 +29,17 @@ export default class TwoOptionModal extends React.Component<ITwoOptionModalProps
|
|
|
28
29
|
<StatusBar backgroundColor={`rgba(0, 0, 0, 1)`} />
|
|
29
30
|
<View style={modalStyle.modalContainer}>
|
|
30
31
|
{isCancelable ? (
|
|
31
|
-
<
|
|
32
|
-
accessibilityLabel="ModalExitIcon"
|
|
33
|
-
iconIdentifier={`Ionicons/ios-close-circle-outline`}
|
|
34
|
-
style={modalStyle.icon}
|
|
32
|
+
<TouchableOpacity
|
|
35
33
|
onPress={this.props.onClose}
|
|
36
|
-
|
|
34
|
+
testID={TwoOptionModalTestIds.ExitButton}
|
|
35
|
+
style={modalStyle.iconWrapper}
|
|
36
|
+
>
|
|
37
|
+
<Icon
|
|
38
|
+
accessibilityLabel="ModalExitIcon"
|
|
39
|
+
iconIdentifier={`Ionicons/ios-close-circle-outline`}
|
|
40
|
+
style={modalStyle.icon}
|
|
41
|
+
/>
|
|
42
|
+
</TouchableOpacity>
|
|
37
43
|
) : null}
|
|
38
44
|
|
|
39
45
|
<View style={isCancelable ? modalStyle.textContainer : modalStyle.textContainerNotCancelable}>
|
|
@@ -44,6 +50,7 @@ export default class TwoOptionModal extends React.Component<ITwoOptionModalProps
|
|
|
44
50
|
</View>
|
|
45
51
|
<View style={rowAsButtonLayout ? modalStyle.buttonContainerRow : modalStyle.buttonContainerColumn}>
|
|
46
52
|
<TouchableOpacity
|
|
53
|
+
testID={TwoOptionModalTestIds.FirstOption}
|
|
47
54
|
accessibilityLabel="firstOptionButton"
|
|
48
55
|
onPress={this.props.firstOption}
|
|
49
56
|
style={rowAsButtonLayout ? modalStyle.buttonRow : modalStyle.firstButtonColumn}
|
|
@@ -55,6 +62,7 @@ export default class TwoOptionModal extends React.Component<ITwoOptionModalProps
|
|
|
55
62
|
</Text>
|
|
56
63
|
</TouchableOpacity>
|
|
57
64
|
<TouchableOpacity
|
|
65
|
+
testID={TwoOptionModalTestIds.SecondOption}
|
|
58
66
|
accessibilityLabel="secondOptionButton"
|
|
59
67
|
onPress={this.props.secondOption}
|
|
60
68
|
style={rowAsButtonLayout ? modalStyle.buttonRow : modalStyle.secondButtonColumn}
|
|
@@ -73,17 +81,36 @@ export default class TwoOptionModal extends React.Component<ITwoOptionModalProps
|
|
|
73
81
|
}
|
|
74
82
|
const { height, width } = Dimensions.get(`screen`);
|
|
75
83
|
export const modalStyle = StyleSheet.create({
|
|
76
|
-
container: {
|
|
77
|
-
|
|
84
|
+
container: {
|
|
85
|
+
...StyleSheet.absoluteFillObject,
|
|
86
|
+
justifyContent: `center`,
|
|
87
|
+
backgroundColor: `rgba(0, 0, 0, 0.9)`,
|
|
88
|
+
},
|
|
89
|
+
modalContainer: {
|
|
90
|
+
margin: `4%`,
|
|
91
|
+
backgroundColor: BACKGROUND_COLOUR_PURPLE,
|
|
92
|
+
borderRadius: width / 25,
|
|
93
|
+
},
|
|
94
|
+
iconWrapper: {
|
|
95
|
+
alignSelf: `flex-end`,
|
|
96
|
+
marginRight: `4%`,
|
|
97
|
+
marginTop: `3%`,
|
|
98
|
+
},
|
|
78
99
|
icon: {
|
|
79
100
|
color: BORDER_COLOUR_GREY,
|
|
80
101
|
fontSize: width / 12,
|
|
81
|
-
textAlign: `right`,
|
|
82
|
-
marginRight: `4%`,
|
|
83
|
-
marginTop: `3%`,
|
|
84
102
|
},
|
|
85
|
-
textContainer: {
|
|
86
|
-
|
|
103
|
+
textContainer: {
|
|
104
|
+
marginHorizontal: `4%`,
|
|
105
|
+
marginBottom: `5%`,
|
|
106
|
+
marginTop: `2%`,
|
|
107
|
+
alignSelf: `flex-start`,
|
|
108
|
+
},
|
|
109
|
+
textContainerNotCancelable: {
|
|
110
|
+
marginHorizontal: `4%`,
|
|
111
|
+
marginVertical: `5%`,
|
|
112
|
+
alignSelf: `flex-start`,
|
|
113
|
+
},
|
|
87
114
|
titleRowLayout: {
|
|
88
115
|
fontFamily: `Roboto-Regular`,
|
|
89
116
|
color: `rgba(139, 144, 196, 1)`,
|
|
@@ -117,7 +144,11 @@ export const modalStyle = StyleSheet.create({
|
|
|
117
144
|
justifyContent: `space-around`,
|
|
118
145
|
margin: `4%`,
|
|
119
146
|
},
|
|
120
|
-
buttonRow: {
|
|
147
|
+
buttonRow: {
|
|
148
|
+
...stylesModal.okButton,
|
|
149
|
+
height: height / 16,
|
|
150
|
+
marginTop: 0,
|
|
151
|
+
},
|
|
121
152
|
firstButtonColumn: {
|
|
122
153
|
...stylesModal.okButton,
|
|
123
154
|
height: height / 18,
|
|
@@ -132,7 +163,12 @@ export const modalStyle = StyleSheet.create({
|
|
|
132
163
|
width: width / 1.5,
|
|
133
164
|
marginTop: `2%`,
|
|
134
165
|
},
|
|
135
|
-
textButtonRow: {
|
|
166
|
+
textButtonRow: {
|
|
167
|
+
fontFamily: `Roboto-Regular`,
|
|
168
|
+
textAlign: `center`,
|
|
169
|
+
fontSize: width / 24,
|
|
170
|
+
color: `white`,
|
|
171
|
+
},
|
|
136
172
|
textFirstButtonColumn: {
|
|
137
173
|
fontFamily: `Roboto-Regular`,
|
|
138
174
|
textAlign: `center`,
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { IActivityParams } from "@hedia/recommendation-calculator/src/RecommendationCalculator";
|
|
2
1
|
import React from "react";
|
|
3
|
-
import { IActivityDisplayProps } from "../../types/types";
|
|
2
|
+
import { IActivityDisplayProps, IActivityParams, ReductionType } from "../../types/types";
|
|
4
3
|
interface IProps extends IActivityDisplayProps {
|
|
5
4
|
activity: IActivityParams;
|
|
6
|
-
activityReduction:
|
|
5
|
+
activityReduction: ReductionType;
|
|
7
6
|
}
|
|
8
7
|
export default class Activity extends React.Component<IProps> {
|
|
9
8
|
render(): JSX.Element;
|
|
@@ -7,13 +7,14 @@ const macro_1 = require("@lingui/macro");
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const react_native_1 = require("react-native");
|
|
9
9
|
const i18nUtils_1 = require("../../locale/i18nUtils");
|
|
10
|
+
const enum_1 = require("../../types/enum");
|
|
10
11
|
const InfoBars_1 = require("../InfoBars");
|
|
11
12
|
const ActivityIcon_1 = __importDefault(require("./ActivityIcon"));
|
|
12
13
|
const ActivityIntensity_1 = __importDefault(require("./ActivityIntensity"));
|
|
13
14
|
class Activity extends react_1.default.Component {
|
|
14
15
|
render() {
|
|
15
16
|
const { activity, activityType, activityReduction, activityTitle } = this.props;
|
|
16
|
-
const reductionPercentage = (activityReduction * 100).toFixed(0);
|
|
17
|
+
const reductionPercentage = ((activityReduction ?? 0) * 100).toFixed(0);
|
|
17
18
|
return (<react_native_1.View style={[InfoBars_1.infoStyles.container, activityStyles.botMargin]}>
|
|
18
19
|
<react_native_1.View style={InfoBars_1.infoStyles.margin}>
|
|
19
20
|
<react_native_1.View style={InfoBars_1.infoStyles.border}>
|
|
@@ -38,7 +39,9 @@ class Activity extends react_1.default.Component {
|
|
|
38
39
|
</react_native_1.Text>
|
|
39
40
|
</react_native_1.View>
|
|
40
41
|
<react_native_1.View style={[InfoBars_1.infoStyles.borderContainer, activityStyles.verticalMargin]}>
|
|
41
|
-
<react_native_1.Text style={activityStyles.reductionPercentage}
|
|
42
|
+
<react_native_1.Text style={activityStyles.reductionPercentage} testID={enum_1.ActivityTestIds.ActivityReduction}>
|
|
43
|
+
{reductionPercentage}%
|
|
44
|
+
</react_native_1.Text>
|
|
42
45
|
</react_native_1.View>
|
|
43
46
|
</react_native_1.View>
|
|
44
47
|
</react_native_1.View>
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { IActivityParams } from "@hedia/recommendation-calculator/src/RecommendationCalculator";
|
|
2
1
|
import { t } from "@lingui/macro";
|
|
3
2
|
import React from "react";
|
|
4
3
|
import { Dimensions, StyleSheet, Text, View } from "react-native";
|
|
5
4
|
import { i18n } from "../../locale/i18nUtils";
|
|
6
|
-
import {
|
|
5
|
+
import { ActivityTestIds } from "../../types/enum";
|
|
6
|
+
import { IActivityDisplayProps, IActivityParams, ReductionType } from "../../types/types";
|
|
7
7
|
import { infoStyles } from "../InfoBars";
|
|
8
8
|
import ActivityIcon from "./ActivityIcon";
|
|
9
9
|
import ActivityIntensity from "./ActivityIntensity";
|
|
10
10
|
|
|
11
11
|
interface IProps extends IActivityDisplayProps {
|
|
12
12
|
activity: IActivityParams;
|
|
13
|
-
activityReduction:
|
|
13
|
+
activityReduction: ReductionType;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export default class Activity extends React.Component<IProps> {
|
|
17
17
|
public render(): JSX.Element {
|
|
18
18
|
const { activity, activityType, activityReduction, activityTitle } = this.props;
|
|
19
|
-
const reductionPercentage = (activityReduction * 100).toFixed(0);
|
|
19
|
+
const reductionPercentage = ((activityReduction ?? 0) * 100).toFixed(0);
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
22
|
<View style={[infoStyles.container, activityStyles.botMargin]}>
|
|
@@ -43,7 +43,9 @@ export default class Activity extends React.Component<IProps> {
|
|
|
43
43
|
</Text>
|
|
44
44
|
</View>
|
|
45
45
|
<View style={[infoStyles.borderContainer, activityStyles.verticalMargin]}>
|
|
46
|
-
<Text style={activityStyles.reductionPercentage}
|
|
46
|
+
<Text style={activityStyles.reductionPercentage} testID={ActivityTestIds.ActivityReduction}>
|
|
47
|
+
{reductionPercentage}%
|
|
48
|
+
</Text>
|
|
47
49
|
</View>
|
|
48
50
|
</View>
|
|
49
51
|
</View>
|
|
@@ -3,5 +3,5 @@ import { ImageURISource } from "react-native";
|
|
|
3
3
|
import { IActivityDisplayProps } from "../../types/types";
|
|
4
4
|
export default class ActivityIcon extends React.Component<IActivityDisplayProps> {
|
|
5
5
|
getActivityIcon: () => ImageURISource;
|
|
6
|
-
render(): JSX.Element;
|
|
6
|
+
render(): JSX.Element | null;
|
|
7
7
|
}
|
|
@@ -3,28 +3,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const types_1 = require("@hedia/types");
|
|
6
7
|
const macro_1 = require("@lingui/macro");
|
|
7
8
|
const react_1 = __importDefault(require("react"));
|
|
8
9
|
const react_native_1 = require("react-native");
|
|
9
10
|
const i18nUtils_1 = require("../../locale/i18nUtils");
|
|
10
|
-
const
|
|
11
|
+
const { Other } = types_1.Activity.Enums.ActivityEnum;
|
|
11
12
|
const ACTIVITY_ICONS = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
Run: require(`../../assets/activity/Runner.png`),
|
|
14
|
+
Walk: require(`../../assets/activity/Walk.png`),
|
|
15
|
+
Cycling: require(`../../assets/activity/Cyclist.png`),
|
|
16
|
+
Swim: require(`../../assets/activity/Swimmer.png`),
|
|
17
|
+
Other: require(`../../assets/activity/Other.png`),
|
|
17
18
|
};
|
|
18
19
|
class ActivityIcon extends react_1.default.Component {
|
|
19
20
|
constructor() {
|
|
20
21
|
super(...arguments);
|
|
21
22
|
this.getActivityIcon = () => {
|
|
22
|
-
return ACTIVITY_ICONS[this.props.activityType];
|
|
23
|
+
return ACTIVITY_ICONS[this.props.activityType ?? Other];
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
render() {
|
|
26
27
|
const { activityType, activityTitle } = this.props;
|
|
27
|
-
const label = `${
|
|
28
|
+
const label = `${types_1.Activity.Enums.ActivityEnum[activityType ?? Other]}_activity`;
|
|
28
29
|
return (<react_native_1.View style={activityIconStyles.container}>
|
|
29
30
|
<react_native_1.Image style={activityIconStyles.activityIcon} source={this.getActivityIcon()} accessibilityLabel={label}/>
|
|
30
31
|
<react_native_1.Text style={activityIconStyles.activityTitle}>{activityTitle || i18nUtils_1.i18n._(macro_1.t `Untitled Activity`)}</react_native_1.Text>
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
+
import { Activity } from "@hedia/types";
|
|
1
2
|
import { t } from "@lingui/macro";
|
|
2
3
|
import React from "react";
|
|
3
4
|
import { Dimensions, Image, ImageURISource, StyleSheet, Text, View } from "react-native";
|
|
4
5
|
import { i18n } from "../../locale/i18nUtils";
|
|
5
|
-
import { ActivityEnum } from "../../types/enum";
|
|
6
6
|
import { IActivityDisplayProps } from "../../types/types";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
const { Other } = Activity.Enums.ActivityEnum;
|
|
9
|
+
|
|
10
|
+
const ACTIVITY_ICONS: Record<Activity.Enums.ActivityEnum, ImageURISource> = {
|
|
11
|
+
Run: require(`../../assets/activity/Runner.png`),
|
|
12
|
+
Walk: require(`../../assets/activity/Walk.png`),
|
|
13
|
+
Cycling: require(`../../assets/activity/Cyclist.png`),
|
|
14
|
+
Swim: require(`../../assets/activity/Swimmer.png`),
|
|
15
|
+
Other: require(`../../assets/activity/Other.png`),
|
|
14
16
|
};
|
|
15
17
|
|
|
16
18
|
export default class ActivityIcon extends React.Component<IActivityDisplayProps> {
|
|
17
19
|
public getActivityIcon = (): ImageURISource => {
|
|
18
|
-
return ACTIVITY_ICONS[this.props.activityType];
|
|
20
|
+
return ACTIVITY_ICONS[this.props.activityType ?? Other];
|
|
19
21
|
};
|
|
20
22
|
|
|
21
|
-
public render(): JSX.Element {
|
|
23
|
+
public render(): JSX.Element | null {
|
|
22
24
|
const { activityType, activityTitle } = this.props;
|
|
23
|
-
const label = `${ActivityEnum[activityType]}_activity`;
|
|
25
|
+
const label = `${Activity.Enums.ActivityEnum[activityType ?? Other]}_activity`;
|
|
24
26
|
return (
|
|
25
27
|
<View style={activityIconStyles.container}>
|
|
26
28
|
<Image
|
|
@@ -3,16 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const macro_1 = require("@lingui/macro");
|
|
7
6
|
const react_1 = __importDefault(require("react"));
|
|
8
7
|
const react_native_1 = require("react-native");
|
|
9
|
-
const
|
|
8
|
+
const Translations_1 = require("../../utils/Translations");
|
|
10
9
|
const InfoBars_1 = require("../InfoBars");
|
|
11
|
-
const Handler = {
|
|
12
|
-
Light: () => i18nUtils_1.i18n._(macro_1.t `Light`),
|
|
13
|
-
Moderate: () => i18nUtils_1.i18n._(macro_1.t `Moderate`),
|
|
14
|
-
Hard: () => i18nUtils_1.i18n._(macro_1.t `Hard`),
|
|
15
|
-
};
|
|
16
10
|
class ActivityIntensity extends react_1.default.Component {
|
|
17
11
|
constructor() {
|
|
18
12
|
super(...arguments);
|
|
@@ -22,7 +16,7 @@ class ActivityIntensity extends react_1.default.Component {
|
|
|
22
16
|
return (<react_native_1.View style={[InfoBars_1.infoStyles.margin, activityIntensityStyles.row]}>
|
|
23
17
|
<react_native_1.View style={activityIntensityStyles.intensityContainer}>
|
|
24
18
|
<react_native_1.View style={[activityIntensityStyles.intensityTextContainer, style]}>
|
|
25
|
-
<react_native_1.Text style={activityIntensityStyles.bold}>{
|
|
19
|
+
<react_native_1.Text style={activityIntensityStyles.bold}>{Translations_1.ActivityIntensityTranslations[intensity]()}</react_native_1.Text>
|
|
26
20
|
</react_native_1.View>
|
|
27
21
|
</react_native_1.View>
|
|
28
22
|
<react_native_1.View style={activityIntensityStyles.intensityContainerOffset}/>
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ActivityIntensity as Intensity,
|
|
3
|
-
IActivityParams,
|
|
4
|
-
} from "@hedia/recommendation-calculator/src/RecommendationCalculator";
|
|
5
|
-
import { t } from "@lingui/macro";
|
|
6
1
|
import React from "react";
|
|
7
2
|
import { Dimensions, StyleSheet, Text, View } from "react-native";
|
|
8
|
-
import {
|
|
3
|
+
import { IActivityParams } from "../../types/types";
|
|
4
|
+
import { ActivityIntensityTranslations } from "../../utils/Translations";
|
|
9
5
|
import { infoStyles } from "../InfoBars";
|
|
10
6
|
|
|
11
|
-
const Handler: Record<Intensity, () => string> = {
|
|
12
|
-
Light: (): string => i18n._(t`Light`),
|
|
13
|
-
Moderate: (): string => i18n._(t`Moderate`),
|
|
14
|
-
Hard: (): string => i18n._(t`Hard`),
|
|
15
|
-
};
|
|
16
7
|
interface IProps {
|
|
17
8
|
activityIntensity: IActivityParams["activityIntensity"];
|
|
18
9
|
}
|
|
@@ -26,7 +17,7 @@ export default class ActivityIntensity extends React.Component<IProps> {
|
|
|
26
17
|
<View style={[infoStyles.margin, activityIntensityStyles.row]}>
|
|
27
18
|
<View style={activityIntensityStyles.intensityContainer}>
|
|
28
19
|
<View style={[activityIntensityStyles.intensityTextContainer, style]}>
|
|
29
|
-
<Text style={activityIntensityStyles.bold}>{
|
|
20
|
+
<Text style={activityIntensityStyles.bold}>{ActivityIntensityTranslations[intensity]()}</Text>
|
|
30
21
|
</View>
|
|
31
22
|
</View>
|
|
32
23
|
<View style={activityIntensityStyles.intensityContainerOffset} />
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { Logbook } from "@hedia/types";
|
|
1
2
|
import React from "react";
|
|
2
|
-
|
|
3
|
+
declare const MoodEnum: typeof Logbook.Enums.MoodEnum;
|
|
3
4
|
interface IProps {
|
|
4
|
-
currentMood
|
|
5
|
-
moodSelected(mood
|
|
5
|
+
currentMood: Logbook.Enums.MoodEnum | null;
|
|
6
|
+
moodSelected(mood: Logbook.Enums.MoodEnum | null): void;
|
|
6
7
|
}
|
|
7
8
|
export default class Emotion extends React.Component<IProps> {
|
|
8
|
-
handleIconPress: (selected:
|
|
9
|
+
handleIconPress: (selected: Logbook.Enums.MoodEnum, toggle: boolean) => void;
|
|
9
10
|
mappedMoods: () => Array<JSX.Element>;
|
|
10
11
|
render(): JSX.Element;
|
|
11
12
|
}
|
|
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const types_1 = require("@hedia/types");
|
|
6
7
|
const macro_1 = require("@lingui/macro");
|
|
7
8
|
const react_1 = __importDefault(require("react"));
|
|
8
9
|
const react_native_1 = require("react-native");
|
|
9
10
|
const i18nUtils_1 = require("../../locale/i18nUtils");
|
|
10
|
-
const enum_1 = require("../../types/enum");
|
|
11
11
|
const MoodIcon_1 = __importDefault(require("./MoodIcon"));
|
|
12
|
+
const MoodEnum = types_1.Logbook.Enums.MoodEnum;
|
|
12
13
|
class Emotion extends react_1.default.Component {
|
|
13
14
|
constructor() {
|
|
14
15
|
super(...arguments);
|
|
@@ -16,9 +17,9 @@ class Emotion extends react_1.default.Component {
|
|
|
16
17
|
this.props.moodSelected(toggle ? selected : null);
|
|
17
18
|
};
|
|
18
19
|
this.mappedMoods = () => {
|
|
19
|
-
const values = Object.values(
|
|
20
|
+
const values = Object.values(MoodEnum).filter((val) => isNaN(Number(val)));
|
|
20
21
|
return values.map((key) => {
|
|
21
|
-
const moodValue =
|
|
22
|
+
const moodValue = MoodEnum[key];
|
|
22
23
|
return (<MoodIcon_1.default onPress={(toggle) => this.handleIconPress(moodValue, toggle)} active={moodValue === this.props.currentMood} mood={moodValue} key={moodValue}/>);
|
|
23
24
|
});
|
|
24
25
|
};
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
+
import { Logbook } from "@hedia/types";
|
|
1
2
|
import { t } from "@lingui/macro";
|
|
2
3
|
import React from "react";
|
|
3
4
|
import { Dimensions, StyleSheet, Text, View } from "react-native";
|
|
4
5
|
import { i18n } from "../../locale/i18nUtils";
|
|
5
|
-
import { MoodEnum } from "../../types/enum";
|
|
6
6
|
import MoodIcon from "./MoodIcon";
|
|
7
7
|
|
|
8
|
+
const MoodEnum = Logbook.Enums.MoodEnum;
|
|
9
|
+
|
|
8
10
|
interface IProps {
|
|
9
|
-
currentMood
|
|
10
|
-
moodSelected(mood
|
|
11
|
+
currentMood: Logbook.Enums.MoodEnum | null;
|
|
12
|
+
moodSelected(mood: Logbook.Enums.MoodEnum | null): void;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
type value = keyof typeof MoodEnum;
|
|
14
|
-
|
|
15
15
|
export default class Emotion extends React.Component<IProps> {
|
|
16
|
-
public handleIconPress = (selected:
|
|
16
|
+
public handleIconPress = (selected: Logbook.Enums.MoodEnum, toggle: boolean): void => {
|
|
17
17
|
this.props.moodSelected(toggle ? selected : null);
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
public mappedMoods = (): Array<JSX.Element> => {
|
|
21
|
-
const values = Object.values(MoodEnum).filter((val): boolean => isNaN(Number(val))) as Array<
|
|
21
|
+
const values = Object.values(MoodEnum).filter((val): boolean => isNaN(Number(val))) as Array<
|
|
22
|
+
keyof typeof MoodEnum
|
|
23
|
+
>;
|
|
22
24
|
|
|
23
25
|
return values.map(
|
|
24
26
|
(key): JSX.Element => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { Logbook } from "@hedia/types";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import { ImageURISource } from "react-native";
|
|
3
|
-
import { MoodEnum } from "../../types/enum";
|
|
4
4
|
interface IProps {
|
|
5
|
-
mood: MoodEnum;
|
|
5
|
+
mood: Logbook.Enums.MoodEnum;
|
|
6
6
|
active: boolean;
|
|
7
7
|
onPress(toggle: boolean): void;
|
|
8
8
|
}
|
|
@@ -3,9 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const types_1 = require("@hedia/types");
|
|
6
7
|
const react_1 = __importDefault(require("react"));
|
|
7
8
|
const react_native_1 = require("react-native");
|
|
8
|
-
const
|
|
9
|
+
const MoodEnum = types_1.Logbook.Enums.MoodEnum;
|
|
9
10
|
const MOODS_INACTIVE = {
|
|
10
11
|
1: require(`../../assets/mood/sad.png`),
|
|
11
12
|
2: require(`../../assets/mood/semi_sad.png`),
|
|
@@ -35,7 +36,7 @@ class MoodIcon extends react_1.default.Component {
|
|
|
35
36
|
}
|
|
36
37
|
render() {
|
|
37
38
|
const { mood, active } = this.props;
|
|
38
|
-
const label = `${
|
|
39
|
+
const label = `${MoodEnum[mood]}_${active}`;
|
|
39
40
|
return (<react_native_1.TouchableOpacity style={moodIconStyles.container} onPress={this.handleOnPress} accessibilityLabel={label}>
|
|
40
41
|
<react_native_1.Image style={moodIconStyles.icon} source={this.getMoodIcon()}/>
|
|
41
42
|
</react_native_1.TouchableOpacity>);
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { Logbook } from "@hedia/types";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import { Dimensions, Image, ImageURISource, StyleSheet, TouchableOpacity } from "react-native";
|
|
3
|
-
|
|
4
|
+
|
|
5
|
+
const MoodEnum = Logbook.Enums.MoodEnum;
|
|
4
6
|
|
|
5
7
|
interface IProps {
|
|
6
|
-
mood: MoodEnum;
|
|
8
|
+
mood: Logbook.Enums.MoodEnum;
|
|
7
9
|
active: boolean;
|
|
8
10
|
onPress(toggle: boolean): void;
|
|
9
11
|
}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/* eslint-disable */module.exports={languageData:{"plurals":function(n,ord){var s=String(n).split("."),i=s[0],t0=Number(s[0])==n;if(ord)return"other";return n==1||!t0&&(i==0||i==1)?"one":"other"}},messages:{"Active Insulin":"Aktiv
|
|
1
|
+
/* eslint-disable */module.exports={languageData:{"plurals":function(n,ord){var s=String(n).split("."),i=s[0],t0=Number(s[0])==n;if(ord)return"other";return n==1||!t0&&(i==0||i==1)?"one":"other"}},messages:{"Active Insulin":"Aktiv Insulin","Activity":"Aktivitet","Additional":"Supplerende","Attention":"OBS","Based on the selected activity your insulin recommendation is reduced by:":"Baseret p\xE5 din valgte aktivitet er din insulin anbefaling reduceret med:","Blood Glucose Level":"Blodsukkerniveau","Blood Ketone Level":"Blodketonniveau","Carbohydrates":"Kulhydrater","Close calculation":"Luk beregning","Consider not to initiate physical activity before your blood glucose level is within the recommended ranges prior to physical activity.":"Dit blodsukkerniveau ligger udenfor de anbefalede gr\xE6nser for blodsukker f\xF8r en aktivitet. Du b\xF8r overveje at udskyde fysisk aktivitet.","Entered":"Indtastet","Error. Hedia Calculator could not find your recent boluses":"Error. Hedia Calculator could not find your recent boluses","Error. Hedia Calculator does not support an insulin dose greater than {SAFETY_INSULIN_LIMIT} units":function(a){return["Ups! Hedia kan ikke anbefale mere end ",a("SAFETY_INSULIN_LIMIT")," enheder hurtigtvirkende insulin i \xE9n dosis"]},"Error. Hedia Calculator does not support insulin recommendations with boluses older than 4 hours":"Ups! Indtast kun de hurtigtvirkende insulindoser der er under 4 timer gamle, s\xE5 tager Hedia h\xF8jde for aktiv insulin","Error. Hedia Calculator does not support the blood glucose level of your latest logbook entry from the last 6 hours.":"Error. Hedia Calculator does not support the blood glucose level of your latest logbook entry from the last 6 hours.","Error. Hedia Calculator does not support your activity intensity value":"Ups! Hedia har lavet en fejl. V\xE6lg venligst intensitet for aktivitet igen","Error. Hedia Calculator does not support your activity type value":"Ups! Der er sket en fejl ved den valgte aktivitetstype. G\xE5 venligst til \u201Caktivitet\u201D og indtast type igen","Error. Hedia Calculator does not support your current blood glucose level.":"Ups! Hedia har lavet en fejl. Indtast venligst en blodsukkerv\xE6rdi indenfor Hedia\u2019s definerede gr\xE6nser for blodsukker","Error. Hedia Calculator does not support your current blood glucose unit.":"Ups! G\xE5 venligst til indstillinger blodsukker og opdater blodsukker enhed til mmol/L eller mg/dL","Error. Hedia Calculator does not support your current blood ketone level.":"Fejl. Hedia beregneren underst\xF8tter ikke dit nuv\xE6rende blodketonniveau.","Error. Hedia Calculator does not support your current blood ketone unit.":"Fejl. Hedia beregneren underst\xF8tter ikke din nuv\xE6rende blodketon enhed.","Error. Hedia Calculator does not support your current language.":"Ups! G\xE5 venligst til indstillinger for sprog og v\xE6lg dansk eller engelsk","Error. Hedia Calculator does not support your injection method.":"Ups! G\xE5 venligst til indstillinger for insulinberegner og v\xE6lg behandlingstype","Error. Hedia Calculator only supports activities with a duration of maximum 60 minutes.":"Ups! Hedia har lavet en fejl. Indtast venligst en aktivitet p\xE5 max 60 minutters varighed","Error. Please verify that your activity settings are set up correctly.":"Ups! G\xE5 venligst til indstillinger for aktivitet og bekr\xE6ft at de er korrekte","Error. Please verify that your activity target blood glucose value is correct.":"Ups! G\xE5 venligst til indstillinger for aktivitet og bekr\xE6ft at aktivitetsm\xE5l er korrekt","Error. Please verify that your insulin sensitivity value is correct.":"Ups! G\xE5 venligst til insulinindstillinger under indstillinger for insulinberegner og bekr\xE6ft at din insulin sensitivitet er korrekt","Error. Please verify that your insulin to carb ratio value is correct.":"Ups! G\xE5 venligst til insulinindstillinger under indstillinger for insulinberegner og bekr\xE6ft at din kulhydrat-insulinratio er korrekt","Error. Please verify that your target blood glucose value is correct.":"Ups! G\xE5 venligst til indstillinger for blodsukker og bekr\xE6ft at blodsukkerniveaur er indstillet efter dine personlige m\xE5l","Error. Please verify your notifications settings.":"Ups! G\xE5 venligst til indstillinger for notifikationer og bekr\xE6ft at notifikationer er indstillet korrekt","Food":"Mad","Hard":"H\xE5rd","Have you taken insulin within the last 4 hours?":"Har du taget insulin inden for de sidste 4 timer?","Hedia Calculator does not support activities that finished more than 4 hours ago.":"Ups! Det lader til at du bruger en gammel version af Hedia. Det er ikke l\xE6ngere muligt at indtaste tidligere aktiviter i Hedia.","Hedia Calculator does not support insulin recommendations with more than 300 grams of carbohydrates present.":"Ups! Hedia har lavet en fejl. Indtast venligst en v\xE6rdi mellem 0 og 300 gram","Hedia does not support more than {SAFETY_INSULIN_LIMIT} units of insulin per calculation.":function(a){return["Hedia underst\xF8tter maksimalt ",a("SAFETY_INSULIN_LIMIT")," units af insulin per beregning"]},"Hedia doesn't support more than {SAFETY_INSULIN_LIMIT} units of insulin per calculation, but because of the physical activity you entered it has been further reduced by {0}% to {1} units for this calculation.":function(a){return["Hedia underst\xF8tter maksimalt ",a("SAFETY_INSULIN_LIMIT")," units af insulin per beregning, men p\xE5 grund af den fysiske aktivitet du har indtastet er gr\xE6nsen reduceret med yderligere ",a("0"),"% til ",a("1")," for denne beregning."]},"How are you feeling?":"Hvordan har du det?","INSULIN{0}RECOMMENDATION":function(a){return["INSULIN",a("0"),"ANBEFALING"]},"If it is possible, postpone your planned exercise.":"Hvis det er muligt, uds\xE6t din planlagte tr\xE6ning.","Instead of taking insulin":"I stedet for at tage insulin","Light":"Let","Moderate":"Moderat","More than 15 minutes has passed since this calculation was started.":"Der er g\xE5et mere end 15 minutter siden udregningen blev startet.","NO":"NEJ","No":"Nej","No, return to dashboard":"Nej, tilbage til dashboard","OFF":"OFF","OK":"OK","Please go through the calculation steps with new measurements to ensure a safe recommendation.":"G\xE5 venligst gennem udregningstrinnene igen med nye m\xE5linger for at sikre en sikker anbefaling.","Recommendation from {day} at {time} was not transfered to your logbook.{0}Did you use the recommendation?":function(a){return["Hedia's anbefaling fra ",a("day")," kl. ",a("time")," blev ikke overf\xF8rt til din logbog.",a("0"),"Brugte du anbefalingen?"]},"Recommended":"Anbefalet","Recommended amount of insulin":"Anbefalet enhed(er) af insulin","Remind me to remeasure in":"P\xE5mind mig at genm\xE5le om","Return to dashboard":"Tilbage til dashboard","Save data before closing?":"Vil du gemme din indtastning?","Save to logbook":"Gem i logbog","Start new calculation":"Start ny beregning","Total":"Sum","Transfer to logbook":"Overf\xF8r til logbog","Transferred to logbook":"Overf\xF8rt til logbog","Units":"Enheder","Untitled Activity":"Unavngivet aktivitet","We recommend eating an additional:":"Vi anbefaler at spise yderligere:","Would you like to add this to your current calculation?":"Vil du gerne tilf\xF8je dette til din nuv\xE6rende beregning?","Yes":"Ja","Yes, save to logbook":"Ja, gem i logbogen","You have a high blood glucose level.":"Du har et h\xF8jt blodsukkerniveau.","You should take rapid-acting insulin and measure ketones.":"Du burde tage hurtigtvirkende insulin og m\xE5le ketoner.","You will be reminded to measure your blood glucose level in 15 min.":"Du vil f\xE5 p\xE5mindelser om at m\xE5le dit blodsukkerniveau om 15 minutter.","Your blood glucose level is very low.":"Dit blodsukkerniveau er meget lavt.","Your blood glucose level is very low. Take glucagon or eat carbohydrates if possible. Seek medical attention.":"Dit blodsukkerniveau er meget lavt. Tag glukagon eller spis kulhydrater, hvis det er muligt. S\xF8g l\xE6gehj\xE6lp.","Your recommendation would have been higher than {0} units of insulin, but it has been limited for safety reasons.{1} Hedia never recommends more than {SAFETY_INSULIN_LIMIT} units of insulin per calculation, but because of the physical activity you entered it has been further reduced by {2}% to {3}.":function(a){return["Din anbefaling ville have v\xE6ret h\xF8jere end ",a("0")," units af insulin, men den er blevet begr\xE6nset af sikkerhedshensyn.",a("1")," Hedia anbefaler aldrig mere end ",a("SAFETY_INSULIN_LIMIT")," units af insulin per beregning, men p\xE5 grund af den fysiske aktivitet du har indtastet er gr\xE6nsen reduceret med yderligere ",a("2"),"% til ",a("3"),"."]},"Your recommendation would have been higher than {SAFETY_INSULIN_LIMIT} units of insulin, but it has been limited for safety reasons. Hedia never recommends more than {SAFETY_INSULIN_LIMIT} units of insulin per calculation.":function(a){return["Din anbefaling ville have v\xE6ret h\xF8jere end ",a("SAFETY_INSULIN_LIMIT")," units af insulin, men den er blevet begr\xE6nset af sikkerhedshensyn. Hedia anbefaler aldrig mere end ",a("SAFETY_INSULIN_LIMIT")," units af insulin per beregning."]},"Your saved data will be used for future calculations.":"Dine gemte indtastninger vil blive brugt til fremtidige beregninger.","grams":"gram","grams of carbohydrates":"gram kulhydrater","hours":"timer","min":"min","units":"enheder"}};
|