diff --git a/App_Resources/Android/app.gradle b/App_Resources/Android/app.gradle index bb48421..d4b9f1a 100644 --- a/App_Resources/Android/app.gradle +++ b/App_Resources/Android/app.gradle @@ -18,3 +18,18 @@ android { additionalParameters "--no-version-vectors" } } + +def settingsGradlePath + +if(project.hasProperty("appResourcesPath")){ + settingsGradlePath = "$project.appResourcesPath/Android/settings.gradle"; +} else { + settingsGradlePath = "$rootDir/../../app/App_Resources/Android/settings.gradle"; +} + +def settingsGradleFile = new File(settingsGradlePath); + +if(settingsGradleFile.exists()) +{ + apply from: settingsGradleFile; +} diff --git a/App_Resources/Android/settings.gradle b/App_Resources/Android/settings.gradle new file mode 100644 index 0000000..93cc6c5 --- /dev/null +++ b/App_Resources/Android/settings.gradle @@ -0,0 +1,51 @@ +import groovy.json.JsonSlurper + +task replaceSettings { + description "Replaces configuration settings." + def jsonSlurper = new JsonSlurper() + def pathToSettingsJson + + if (project.hasProperty("appResourcesPath")) { + pathToSettingsJson = "$project.appResourcesPath/Android/settings.json"; + } else { + pathToSettingsJson = "$rootDir/../../app/App_Resources/Android/settings.json"; + } + + def settingsJsonFile = file(pathToSettingsJson); + def settingsResolvedPath = settingsJsonFile.getAbsolutePath(); + + if(settingsJsonFile.exists()) + { + println "\t Applying settings from $settingsResolvedPath" + String settingsGradleTemplate = """android { + defaultConfig { + applicationId = "__appId__" + + if (__minSdkVersion__) { + minSdkVersion = __minSdkVersion__ + } + + if (__targetSdkVersion__) { + targetSdkVersion = __targetSdkVersion__ + } + } + }""" + + def settingsJsonContent = settingsJsonFile.getText("UTF-8"); + def settingsMap = jsonSlurper.parseText(settingsJsonContent); + + for ( setting in settingsMap ) { + def placeholder = "__${setting.key}__"; + def settingValue = setting.value; + + if (settingValue == null) { + settingValue = false + } + + settingsGradleTemplate = settingsGradleTemplate.replaceAll( placeholder, settingValue as String); + } + + new File( "$rootDir/temp_setting.gradle" ).write( settingsGradleTemplate, 'UTF-8'); + apply from: "$rootDir/temp_setting.gradle"; + } +} diff --git a/App_Resources/Android/settings.json b/App_Resources/Android/settings.json new file mode 100644 index 0000000..717ce33 --- /dev/null +++ b/App_Resources/Android/settings.json @@ -0,0 +1 @@ +{"appId":"org.nativescript.myhomecontrol","minSdkVersion":null,"targetSdkVersion":null} \ No newline at end of file diff --git a/App_Resources/Android/src/main/AndroidManifest.xml b/App_Resources/Android/src/main/AndroidManifest.xml index 1bd256d..6d6e167 100644 --- a/App_Resources/Android/src/main/AndroidManifest.xml +++ b/App_Resources/Android/src/main/AndroidManifest.xml @@ -1,39 +1,18 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/App_Resources/Android/src/main/res/drawable-hdpi/background.png b/App_Resources/Android/src/main/res/drawable-hdpi/background.png index eb381c2..636ae77 100644 Binary files a/App_Resources/Android/src/main/res/drawable-hdpi/background.png and b/App_Resources/Android/src/main/res/drawable-hdpi/background.png differ diff --git a/App_Resources/Android/src/main/res/drawable-hdpi/icon.png b/App_Resources/Android/src/main/res/drawable-hdpi/icon.png index 9cde84c..1c50c56 100644 Binary files a/App_Resources/Android/src/main/res/drawable-hdpi/icon.png and b/App_Resources/Android/src/main/res/drawable-hdpi/icon.png differ diff --git a/App_Resources/Android/src/main/res/drawable-hdpi/logo.png b/App_Resources/Android/src/main/res/drawable-hdpi/logo.png index 5218f4c..fe73675 100644 Binary files a/App_Resources/Android/src/main/res/drawable-hdpi/logo.png and b/App_Resources/Android/src/main/res/drawable-hdpi/logo.png differ diff --git a/App_Resources/Android/src/main/res/drawable-ldpi/background.png b/App_Resources/Android/src/main/res/drawable-ldpi/background.png index 748b2ad..2de3a64 100644 Binary files a/App_Resources/Android/src/main/res/drawable-ldpi/background.png and b/App_Resources/Android/src/main/res/drawable-ldpi/background.png differ diff --git a/App_Resources/Android/src/main/res/drawable-ldpi/icon.png b/App_Resources/Android/src/main/res/drawable-ldpi/icon.png index 4d6a674..2b71372 100644 Binary files a/App_Resources/Android/src/main/res/drawable-ldpi/icon.png and b/App_Resources/Android/src/main/res/drawable-ldpi/icon.png differ diff --git a/App_Resources/Android/src/main/res/drawable-ldpi/logo.png b/App_Resources/Android/src/main/res/drawable-ldpi/logo.png index b9e102a..21908e4 100644 Binary files a/App_Resources/Android/src/main/res/drawable-ldpi/logo.png and b/App_Resources/Android/src/main/res/drawable-ldpi/logo.png differ diff --git a/App_Resources/Android/src/main/res/drawable-mdpi/background.png b/App_Resources/Android/src/main/res/drawable-mdpi/background.png index efeaf29..05ea86c 100644 Binary files a/App_Resources/Android/src/main/res/drawable-mdpi/background.png and b/App_Resources/Android/src/main/res/drawable-mdpi/background.png differ diff --git a/App_Resources/Android/src/main/res/drawable-mdpi/icon.png b/App_Resources/Android/src/main/res/drawable-mdpi/icon.png index 92ccc85..5b2a36d 100644 Binary files a/App_Resources/Android/src/main/res/drawable-mdpi/icon.png and b/App_Resources/Android/src/main/res/drawable-mdpi/icon.png differ diff --git a/App_Resources/Android/src/main/res/drawable-mdpi/logo.png b/App_Resources/Android/src/main/res/drawable-mdpi/logo.png index 6263387..8fe4738 100644 Binary files a/App_Resources/Android/src/main/res/drawable-mdpi/logo.png and b/App_Resources/Android/src/main/res/drawable-mdpi/logo.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xhdpi/background.png b/App_Resources/Android/src/main/res/drawable-xhdpi/background.png index 612bbd0..6dfcbca 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xhdpi/background.png and b/App_Resources/Android/src/main/res/drawable-xhdpi/background.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png b/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png index 8bcde62..26fc04a 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png and b/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png b/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png index ad8ee2f..a3edfcf 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png and b/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png b/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png index 0fa88e2..7709133 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png and b/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png b/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png index 9d81c85..ba618a5 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png and b/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png b/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png index 6683278..a37a4d4 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png and b/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png b/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png index c650f64..627f3da 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png and b/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png b/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png index 9a34d0d..4a2a5e6 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png and b/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png differ diff --git a/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png b/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png index fa6331c..a37a4d4 100644 Binary files a/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png and b/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png differ diff --git a/App_Resources/Android/src/main/res/values-v21/strings.xml b/App_Resources/Android/src/main/res/values-v21/strings.xml new file mode 100644 index 0000000..125f3fc --- /dev/null +++ b/App_Resources/Android/src/main/res/values-v21/strings.xml @@ -0,0 +1,5 @@ + + + My Home Control + My Home Control + diff --git a/App_Resources/Android/src/main/res/values/strings.xml b/App_Resources/Android/src/main/res/values/strings.xml new file mode 100644 index 0000000..125f3fc --- /dev/null +++ b/App_Resources/Android/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ + + + My Home Control + My Home Control + diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png index a1d7eb4..fb47d90 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png index 5797bde..5af63a7 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png index a0bc569..dfbcd4e 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png index 851ac65..904f40f 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png index bb9b9e8..63f231e 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png index ec609dc..ffed2cf 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png index a971808..aeca683 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png index 214800e..dfbcd4e 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png index 8554b88..388a019 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png index a22626b..3e2530b 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png index a22626b..3e2530b 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png index 492c9c8..ae5b8ca 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png index 9208113..4549a55 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png index 24415e5..d37beaf 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png index b3ef1bf..901f4e8 100644 Binary files a/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png and b/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png index 2913f85..7a996f6 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png index d7f17fc..58c9a21 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png index b884154..5279197 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png index faab4b6..06aefaa 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png index cd94a3a..1196462 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XR.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XR.png index 686fda1..751ce30 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XR.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XR.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XS-Max.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XS-Max.png index 415e9c8..6a4bbac 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XS-Max.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-XS-Max.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png index 3365ba3..1f49178 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png index a44945c..b1dc694 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png index e6dca62..86983f9 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XR.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XR.png index b66a4f2..c97123d 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XR.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XR.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XS-Max.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XS-Max.png index e34463d..cf1f7ea 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XS-Max.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait-XS-Max.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png index 1a50079..2fa8ed0 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png index 73d8b92..cb4459f 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png index 9f1f6ce..fbd846d 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png index 514fc5c..ed83287 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png and b/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png b/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png index c293f9c..6dfcbca 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png and b/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png b/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png index 233693a..627f3da 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png and b/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen.AspectFill@3x.png b/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen.AspectFill@3x.png index a954cc8..41ae996 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen.AspectFill@3x.png and b/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen.AspectFill@3x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png b/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png index a5a775a..46f3b8b 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png and b/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png b/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png index 154c193..2fa8ed0 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png and b/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png differ diff --git a/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen.Center@3x.png b/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen.Center@3x.png index b2973b0..5fceb62 100644 Binary files a/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen.Center@3x.png and b/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen.Center@3x.png differ diff --git a/App_Resources/iOS/Info.plist b/App_Resources/iOS/Info.plist index 65b54cd..432ef9f 100644 --- a/App_Resources/iOS/Info.plist +++ b/App_Resources/iOS/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - ${PRODUCT_NAME} + My Home Control CFBundleExecutable ${EXECUTABLE_NAME} CFBundleInfoDictionaryVersion diff --git a/docs/why-dark.md b/docs/why-dark.md new file mode 100644 index 0000000..e44e410 --- /dev/null +++ b/docs/why-dark.md @@ -0,0 +1,5 @@ +# Why dark? + +It looks at least as good as a light theme and in any case it is more battery efficient and eye friendly. + +An optional light theme might follow. diff --git a/misc/fhem-iobroker/README.md b/misc/fhem-iobroker/README.md new file mode 100644 index 0000000..d80f3de --- /dev/null +++ b/misc/fhem-iobroker/README.md @@ -0,0 +1 @@ +# iobroker blockly files diff --git a/package-lock.json b/package-lock.json index 90aafa5..3674b64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,33 +64,33 @@ } }, "@angular/animations": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.13.tgz", - "integrity": "sha512-Z0g0DthJnxTZ0dUc5BlojMq/0XIikhWzTqq0ym8w3G6jqBJD0OJ0jRCIfV0Leqlgzq6Jzvdrx0/JngBiKi5+uA==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.15.tgz", + "integrity": "sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg==", "requires": { "tslib": "^1.9.0" } }, "@angular/common": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.13.tgz", - "integrity": "sha512-NYlzUkFVgjLg9VB6/lkd8ZV0ZezSiv9vlg+26wOyw7x+gahRrm5WMAGF7eBLrXoZPEaoOO0uhKWKo7oiA0aufA==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.15.tgz", + "integrity": "sha512-2b5JY2HWVHCf3D1GZjmde7jdAXSTXkYtmjLtA9tQkjOOTr80eHpNSujQqnzb97dk9VT9OjfjqTQd7K3pxZz8jw==", "requires": { "tslib": "^1.9.0" } }, "@angular/compiler": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.13.tgz", - "integrity": "sha512-k0IvaozNIlrPKUNF3M/NXMb/jfHBCDO9uRYA6h+84FFY4Y9po40c7YXfsfUxGKwouTWyemaxy9iXlLEnd3ELSQ==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.15.tgz", + "integrity": "sha512-5yb4NcLk8GuXkYf7Dcor4XkGueYp4dgihzDmMjYDUrV0NPhubKlr+SwGtLOtzgRBWJ1I2bO0S3zwa0q0OgIPOw==", "requires": { "tslib": "^1.9.0" } }, "@angular/compiler-cli": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.13.tgz", - "integrity": "sha512-UpA6V+GCY9qKj5j6tvzun2DJNjqRKjCrQgJqD5BIf4FTAKjVgqOvh++d23tbdltdjXlbHqUVRgfeXltbO91fWg==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.15.tgz", + "integrity": "sha512-+AsfyKawmj/sa+m4Pz8VSRFbCfx/3IOjAuuEjhopbyr154YpPDSu8NTbcwzq3yfbVcPwK4/4exmbQzpsndaCTg==", "dev": true, "requires": { "canonical-path": "1.0.0", @@ -107,49 +107,49 @@ } }, "@angular/core": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.13.tgz", - "integrity": "sha512-vHD69xxDDSQaE8KfHeY2STJSd3xgfsz3/meBCAnT+Bpq9LqxL8DuPlrkC0kyBa2vyj/BwPR3CJNTaQrZcszJ/w==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.15.tgz", + "integrity": "sha512-XsuYm0jEU/mOqwDOk2utThv8J9kESkAerfuCHClE9rB2TtHUOGCfekF7lJWqjjypu6/J9ygoPFo7hdAE058ZGg==", "requires": { "tslib": "^1.9.0" } }, "@angular/forms": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.13.tgz", - "integrity": "sha512-dBz7kYa8XoCKxZ+3EvYt6CxHZhM9Qbn3uYkLMsPA+NC6GtIt/tmYn1kNn+YWgVWZtWLvYRaOtYiCuMUJaRNQQw==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.15.tgz", + "integrity": "sha512-p0kcIQLtBBC1qeTA6M3nOuXf/k91E80FKquVM9zEsO2kDjI0oZJVfFYL2UMov5samlJOPN+t6lRHEIUa7ApPsw==", "requires": { "tslib": "^1.9.0" } }, "@angular/http": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.2.13.tgz", - "integrity": "sha512-MlaN7ugCLVH4B7hVasucbcdoSm3UzhP5JgGtcd9d9fQW0hzrn3FXQEZ75NJ/F0YYoGkr5ysAjpeknCjq/elTsg==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.2.15.tgz", + "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==", "requires": { "tslib": "^1.9.0" } }, "@angular/platform-browser": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.13.tgz", - "integrity": "sha512-4n9De4sOwVoYHh6IGO2+UQIjABqGAXk4RdrEGpXqPBHCNO4sF43c2JsXbPTU4kjPVwTwposfLlKEOjTXfwxGow==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.15.tgz", + "integrity": "sha512-aYgmPsbC9Tvp9vmKWD8voeAp4crwCay7/D6lM3ClEe2EeK934LuEXq3/uczMrFVbnIX7BBIo8fh03Tl7wbiGPw==", "requires": { "tslib": "^1.9.0" } }, "@angular/platform-browser-dynamic": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.13.tgz", - "integrity": "sha512-3+/BzrNLQ/Tn1hoPal3fvIeB3S/P3e00gHcH3oK+hfACYgWxLE1oIHL+w4NE2eTIJbHfphKhuascMaOH5WNlkg==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.15.tgz", + "integrity": "sha512-UL2PqhzXMD769NQ6Lh6pxlBDKvN9Qol3XLRFil80lwJ1GRW16ITeYbCamcafIH2GOyd88IhmYcbMfUQ/6q4MMQ==", "requires": { "tslib": "^1.9.0" } }, "@angular/router": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.13.tgz", - "integrity": "sha512-pTdJT9TXk1A9YMa6C2zRRqLB4GPGMSik838P7n+yGrzhdybiudZU9T3egcxDRCWQMjsobVBRKLEUn405n3Hjgg==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.15.tgz", + "integrity": "sha512-qAubRJRQanguUqJQ76J9GSZ4JFtoyhJKRmX5P23ANZJXpB6YLzF2fJmOGi+E6cV8F0tKBMEq1pjxFTisx0MXwQ==", "requires": { "tslib": "^1.9.0" } @@ -439,17 +439,33 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + } } }, "acorn": { @@ -515,20 +531,17 @@ "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "anymatch": { "version": "2.0.0", @@ -560,14 +573,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -617,8 +628,7 @@ "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "array-flatten": { "version": "1.1.1", @@ -651,7 +661,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -679,8 +688,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -697,8 +705,7 @@ "async-foreach": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" }, "async-limiter": { "version": "1.0.0", @@ -709,8 +716,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", @@ -721,14 +727,12 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "babel-code-frame": { "version": "6.26.0", @@ -744,8 +748,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -812,7 +815,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -845,7 +847,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, "requires": { "inherits": "~2.0.0" } @@ -884,7 +885,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1093,7 +1093,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, "requires": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" @@ -1102,8 +1101,7 @@ "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" } } }, @@ -1116,14 +1114,12 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -1219,7 +1215,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1", @@ -1230,7 +1225,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -1260,8 +1254,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "codelyzer": { "version": "4.5.0", @@ -1314,7 +1307,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -1349,8 +1341,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -1376,8 +1367,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "constants-browserify": { "version": "1.0.0", @@ -1457,8 +1447,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-ecdh": { "version": "4.0.3", @@ -1589,7 +1578,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, "requires": { "array-find-index": "^1.0.1" } @@ -1613,7 +1601,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -1636,8 +1623,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", @@ -1689,14 +1675,12 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "depd": { "version": "1.1.2", @@ -1797,7 +1781,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -1875,15 +1858,14 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es5-ext": { - "version": "0.10.49", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz", - "integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==", + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", "dev": true, "requires": { "es6-iterator": "~2.0.3", @@ -1921,8 +1903,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint-scope": { "version": "4.0.3", @@ -2074,8 +2055,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", @@ -2166,20 +2146,17 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fastparse": { "version": "1.1.2", @@ -2285,14 +2262,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -2345,8 +2320,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "1.2.8", @@ -2900,7 +2874,6 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -2912,7 +2885,6 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -2928,7 +2900,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2941,7 +2912,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, "requires": { "globule": "^1.0.0" } @@ -2949,14 +2919,12 @@ "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { "version": "3.0.0", @@ -2974,7 +2942,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -2983,7 +2950,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3046,7 +3012,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, "requires": { "glob": "~7.1.1", "lodash": "~4.17.10", @@ -3056,8 +3021,7 @@ "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, "gzip-size": { "version": "5.1.0", @@ -3080,14 +3044,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -3097,7 +3059,6 @@ "version": "6.10.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -3111,7 +3072,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3125,8 +3085,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "has-value": { "version": "1.0.0", @@ -3200,8 +3159,7 @@ "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, "http-errors": { "version": "1.6.3", @@ -3219,7 +3177,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -3347,14 +3304,12 @@ "in-publish": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, "requires": { "repeating": "^2.0.0" } @@ -3369,7 +3324,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -3378,8 +3332,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "interpret": { "version": "1.2.0", @@ -3390,8 +3343,7 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ipaddr.js": { "version": "1.9.0", @@ -3422,8 +3374,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "1.0.1", @@ -3495,7 +3446,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3504,7 +3454,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3556,14 +3505,12 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", @@ -3574,14 +3521,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -3592,14 +3537,12 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "js-base64": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", - "dev": true + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" }, "js-tokens": { "version": "3.0.2", @@ -3620,8 +3563,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsesc": { "version": "0.5.0", @@ -3638,20 +3580,17 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { "version": "1.0.1", @@ -3666,7 +3605,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -3684,7 +3622,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, "requires": { "invert-kv": "^1.0.0" } @@ -3731,20 +3668,7 @@ "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash.debounce": { "version": "4.0.8", @@ -3752,12 +3676,6 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true - }, "lodash.tail": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", @@ -3768,7 +3686,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -3778,7 +3695,6 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -3828,8 +3744,7 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, "map-visit": { "version": "1.0.0", @@ -3880,7 +3795,6 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, "requires": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", @@ -3898,7 +3812,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -3908,7 +3821,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -3921,7 +3833,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, "requires": { "pinkie-promise": "^2.0.0" } @@ -3930,7 +3841,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -3941,7 +3851,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -3952,7 +3861,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -3962,7 +3870,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, "requires": { "is-utf8": "^0.2.0" } @@ -4021,14 +3928,12 @@ "mime-db": { "version": "1.39.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.39.0.tgz", - "integrity": "sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw==", - "dev": true + "integrity": "sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw==" }, "mime-types": { "version": "2.1.23", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.23.tgz", "integrity": "sha512-ROk/m+gMVSrRxTkMlaQOvFmFmYDc7sZgrjjM76abqmd2Cc5fCV7jAMA5XUccEtJ3cYiYdgixUVI+fApc2LkXlw==", - "dev": true, "requires": { "mime-db": "~1.39.0" } @@ -4055,7 +3960,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4063,8 +3967,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mississippi": { "version": "2.0.0", @@ -4127,7 +4030,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" }, @@ -4135,8 +4037,7 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, @@ -4163,8 +4064,7 @@ "nan": { "version": "2.13.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", - "dev": true + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" }, "nanomatch": { "version": "1.2.13", @@ -4258,9 +4158,9 @@ } }, "nativescript-dev-webpack": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/nativescript-dev-webpack/-/nativescript-dev-webpack-0.21.1.tgz", - "integrity": "sha512-1tt/bm5sD7RMdzRFhsIVRQVSy3xQjOd3EOECToIycTjLldV6muG9C2V+Nk6fQmKJ9aJdLNAd40McHP6Y9FX8nQ==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/nativescript-dev-webpack/-/nativescript-dev-webpack-0.21.2.tgz", + "integrity": "sha512-3O/1tbqU+r8q83A5hkBrcB3ubBPExFr0M6X8iV36kYpQOQ8QnujdeoGGlKdXunT/gRXLgL3g/kmp46QhwRHTOA==", "dev": true, "requires": { "@angular-devkit/core": "~7.2.0", @@ -4441,9 +4341,9 @@ "integrity": "sha1-gu6b59N3Fys8QpVzRyMDdijhhqc=" }, "nativescript-theme-core": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nativescript-theme-core/-/nativescript-theme-core-1.0.4.tgz", - "integrity": "sha1-zyiAx/vy/l9D4iNdMJdQeQgD7+E=" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/nativescript-theme-core/-/nativescript-theme-core-1.0.6.tgz", + "integrity": "sha512-p9v8w0xC/WJDJat/HwxJ/u7Xf50i3JiZR0zx0M7445Gi4HaBClFcjfVc+TLOZEARU4RKauBTopYlLN4xke6tYw==" }, "nativescript-ui-autocomplete": { "version": "4.0.0", @@ -4467,6 +4367,14 @@ "nativescript-ui-core": "~2.0.0" } }, + "nativescript-ui-gauge": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nativescript-ui-gauge/-/nativescript-ui-gauge-4.0.0.tgz", + "integrity": "sha512-ohNiffasF+saJaFeMxBTKhjtdvjpfeMbo3ag7Tikau4dYsXYIYdUBFz9LHPpRR8kfjaWdHB2bsBYjshLOyXulQ==", + "requires": { + "nativescript-ui-core": "~2.0.0" + } + }, "nativescript-ui-sidedrawer": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nativescript-ui-sidedrawer/-/nativescript-ui-sidedrawer-6.0.0.tgz", @@ -4521,9 +4429,9 @@ } }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "neo-async": { @@ -4548,7 +4456,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", @@ -4567,8 +4474,7 @@ "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" } } }, @@ -4621,10 +4527,9 @@ } }, "node-sass": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz", - "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", - "dev": true, + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", + "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", "requires": { "async-foreach": "^0.1.3", "chalk": "^1.1.1", @@ -4633,12 +4538,10 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", + "lodash": "^4.17.11", "meow": "^3.7.0", "mkdirp": "^0.5.1", - "nan": "^2.10.0", + "nan": "^2.13.2", "node-gyp": "^3.8.0", "npmlog": "^4.0.0", "request": "^2.88.0", @@ -4651,7 +4554,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" @@ -4663,7 +4565,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, "requires": { "abbrev": "1" } @@ -4672,7 +4573,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -4699,7 +4599,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -4710,20 +4609,17 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -4793,7 +4689,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -4813,8 +4708,7 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", @@ -4830,14 +4724,12 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -4920,7 +4812,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, "requires": { "error-ex": "^1.2.0" } @@ -4958,8 +4849,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", @@ -4970,8 +4860,7 @@ "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-to-regexp": { "version": "0.1.7", @@ -5004,26 +4893,22 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -5139,8 +5024,7 @@ "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "promise-inflight": { "version": "1.0.1", @@ -5188,14 +5072,12 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" }, "public-encrypt": { "version": "4.0.3", @@ -5235,14 +5117,12 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "querystring": { "version": "0.2.0", @@ -5324,7 +5204,6 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -5359,7 +5238,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, "requires": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" @@ -5440,7 +5318,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, "requires": { "is-finite": "^1.0.0" } @@ -5449,7 +5326,6 @@ "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -5476,20 +5352,17 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -5626,7 +5499,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -5661,8 +5533,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -5676,14 +5547,12 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, "requires": { "glob": "^7.0.0", "lodash": "^4.0.0", @@ -5694,14 +5563,12 @@ "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -5711,7 +5578,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -5724,7 +5590,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, "requires": { "lcid": "^1.0.0" } @@ -5733,7 +5598,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, "requires": { "pinkie-promise": "^2.0.0" } @@ -5742,7 +5606,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -5753,7 +5616,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -5764,7 +5626,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -5774,7 +5635,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5785,7 +5645,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, "requires": { "is-utf8": "^0.2.0" } @@ -5793,14 +5652,12 @@ "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" }, "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, "requires": { "camelcase": "^3.0.0", "cliui": "^3.2.0", @@ -5821,7 +5678,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, "requires": { "camelcase": "^3.0.0" } @@ -5864,7 +5720,6 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, "requires": { "js-base64": "^2.1.8", "source-map": "^0.4.2" @@ -5874,7 +5729,6 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, "requires": { "amdefine": ">=0.0.4" } @@ -5884,8 +5738,7 @@ "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "semver-dsl": { "version": "1.0.1", @@ -5938,8 +5791,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.0", @@ -6034,8 +5886,7 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { "version": "1.0.0", @@ -6207,7 +6058,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -6216,14 +6066,12 @@ "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -6232,8 +6080,7 @@ "spdx-license-ids": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" }, "split-string": { "version": "3.1.0", @@ -6254,7 +6101,6 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -6307,7 +6153,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, "requires": { "readable-stream": "^2.0.1" } @@ -6355,7 +6200,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -6364,20 +6208,17 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -6388,7 +6229,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -6397,7 +6237,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -6418,7 +6257,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, "requires": { "get-stdin": "^4.0.1" } @@ -6426,8 +6264,7 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "tapable": { "version": "1.1.3", @@ -6439,7 +6276,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, "requires": { "block-stream": "*", "fstream": "^1.0.2", @@ -6679,9 +6515,9 @@ } }, "tns-core-modules": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/tns-core-modules/-/tns-core-modules-5.3.1.tgz", - "integrity": "sha512-b1zBFr+LTxnUe+jxMqyfjHYXKqbECT/YNqtxmJpbma9P+gqPTfFJ1eFWU+yVNQVDIQhZ/Wy8P56H6cm99nmYoQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/tns-core-modules/-/tns-core-modules-5.3.2.tgz", + "integrity": "sha512-as53Mo8BghhaRXxol+lEpFP1G5E5q/J8rj2f29PbPIa9vI9tn4leZHFqNlofKUYgqQ9P0XLC7hj6gl4WTzsvNw==", "requires": { "tns-core-modules-widgets": "5.3.0", "tslib": "^1.9.3" @@ -6744,7 +6580,6 @@ "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, "requires": { "psl": "^1.1.24", "punycode": "^1.4.1" @@ -6753,8 +6588,7 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, @@ -6767,14 +6601,12 @@ "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, "true-case-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, "requires": { "glob": "^7.1.2" } @@ -6786,9 +6618,9 @@ "dev": true }, "ts-loader": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.3.3.tgz", - "integrity": "sha512-KwF1SplmOJepnoZ4eRIloH/zXL195F51skt7reEsS6jvDqzgc/YSbz9b8E07GxIUwLXdcD4ssrJu6v8CwaTafA==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.4.5.tgz", + "integrity": "sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -6904,7 +6736,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -6912,17 +6743,33 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "~2.1.24" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + } } }, "typedarray": { @@ -7072,7 +6919,6 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -7127,8 +6973,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -7139,8 +6984,7 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "v8-compile-cache": { "version": "2.0.2", @@ -7152,7 +6996,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -7168,7 +7011,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -7560,7 +7402,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -7575,15 +7416,14 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, "requires": { "string-width": "^1.0.2 || 2" } }, "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, "requires": { "errno": "~0.1.7" @@ -7593,7 +7433,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -7603,7 +7442,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7615,8 +7453,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "6.2.1", @@ -7636,14 +7473,12 @@ "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "9.0.1", diff --git a/package.json b/package.json index 5173710..8cf5b09 100644 --- a/package.json +++ b/package.json @@ -15,34 +15,37 @@ "lint": "tslint \"src/**/*.ts\"" }, "dependencies": { - "@angular/animations": "~7.2.0", - "@angular/common": "~7.2.0", - "@angular/compiler": "~7.2.0", - "@angular/core": "~7.2.0", - "@angular/forms": "~7.2.0", - "@angular/http": "~7.2.0", - "@angular/platform-browser": "~7.2.0", - "@angular/platform-browser-dynamic": "~7.2.0", - "@angular/router": "~7.2.0", + "@angular/animations": "^7.2.15", + "@angular/common": "^7.2.15", + "@angular/compiler": "^7.2.15", + "@angular/core": "^7.2.15", + "@angular/forms": "^7.2.15", + "@angular/http": "^7.2.15", + "@angular/platform-browser": "^7.2.15", + "@angular/platform-browser-dynamic": "^7.2.15", + "@angular/router": "^7.2.15", "nativescript-angular": "~7.2.0", - "nativescript-theme-core": "^1.0.4", + "nativescript-theme-core": "^1.0.6", "nativescript-ui-dataform": "^4.0.0", + "nativescript-ui-gauge": "^4.0.0", "nativescript-ui-sidedrawer": "~6.0.0", + "node-sass": "^4.12.0", "reflect-metadata": "~0.1.12", "rxjs": "~6.3.0", - "tns-core-modules": "~5.3.0", + "tns-core-modules": "^5.3.2", "zone.js": "~0.8.26" }, "devDependencies": { - "@angular/compiler-cli": "~7.2.0", + "@angular/compiler-cli": "^7.2.15", "@nativescript/schematics": "~0.5.0", "@ngtools/webpack": "~7.2.0", "codelyzer": "~4.5.0", "nativescript-dev-sass": "~1.7.0", "nativescript-dev-typescript": "~0.9.0", - "nativescript-dev-webpack": "~0.21.0", + "nativescript-dev-webpack": "^0.21.2", "tslint": "~5.11.0" }, "gitHead": "803cec054c44c99eaa59cdc267993e6346f6cb3a", - "readme": "NativeScript Application" + "readme": "NativeScript Application", + "author": "Yannic Labonte " } diff --git a/src/_app-common.scss b/src/_app-common.scss index 53b5f9a..0d02b6e 100644 --- a/src/_app-common.scss +++ b/src/_app-common.scss @@ -46,64 +46,90 @@ ActionBar .action-bar-title { horizontal-align: center; } - // Drawer navigation custom styles -$sidedrawer-header-image-size: 60; -$sidedrawer-header-image-offset-top: 20; -$sidedrawer-header-image-offset-bottom: 5; -$sidedrawer-list-item-offset-left: 15; -$sidedrawer-list-icon-offset: 10; -$sidedrawer-list-icon-size: 25; - .sidedrawer { - &.sidedrawer-left { - background-color: $ab-background; - - .sidedrawer-header-image { - color: $background-dark; - height: $sidedrawer-header-image-size; - width: $sidedrawer-header-image-size; - font-size: $sidedrawer-header-image-size; - padding: 0; - margin-bottom: $sidedrawer-header-image-offset-bottom; - margin-top: $sidedrawer-header-image-offset-top; - } - - .footnote { - color: rgba($ab-color, 0.5); - } - } - .sidedrawer-header { - background-color: $ab-background; - - .sidedrawer-header-brand { - color: $ab-color; - } + margin: 0; + padding: 16 16 16 16; + height: auto; + background-color: rgba(255, 255, 255, 0.3); + color: rgba(255, 255, 255, 0.9); } - .sidedrawer-content { - background-color: $side-drawer-background; - - $sidedrawer-list-item-offset-left: 15; - $sidedrawer-list-icon-offset: 10; - $sidedrawer-list-icon-size: 25; - .sidedrawer-list-item { - padding-left: $sidedrawer-list-item-offset-left; - Label { - vertical-align: center; - color: $blue-dark; - } - .fa, .far, .fas, .fab, .ico { - width: $sidedrawer-list-icon-size; - margin-right: $sidedrawer-list-icon-offset; - } + padding: 12 18 12 18; + &.selected { - background-color: $item-active-background; - Label { - color: $item-active-color; - } + background-color: rgba(255, 255, 255, 0.1); } } } } + +PropertyEditor { + background-color: rgba(0, 0, 0, 0); +} +EntityProperty { + border-width: 0; +} + +// // Drawer navigation custom styles +//$sidedrawer-header-image-size: 60; +//$sidedrawer-header-image-offset-top: 20; +//$sidedrawer-header-image-offset-bottom: 5; +//$sidedrawer-list-item-offset-left: 15; +//$sidedrawer-list-icon-offset: 10; +//$sidedrawer-list-icon-size: 25; +// +//.sidedrawer { +// &.sidedrawer-left { +// background-color: $ab-background; +// +// .sidedrawer-header-image { +// color: $background-dark; +// height: $sidedrawer-header-image-size; +// width: $sidedrawer-header-image-size; +// font-size: $sidedrawer-header-image-size; +// padding: 0; +// margin-bottom: $sidedrawer-header-image-offset-bottom; +// margin-top: $sidedrawer-header-image-offset-top; +// } +// +// .footnote { +// color: rgba($ab-color, 0.5); +// } +// } +// +// .sidedrawer-header { +// background-color: $ab-background; +// +// .sidedrawer-header-brand { +// color: $ab-color; +// } +// } +// +// .sidedrawer-content { +// background-color: $side-drawer-background; +// +// $sidedrawer-list-item-offset-left: 15; +// $sidedrawer-list-icon-offset: 10; +// $sidedrawer-list-icon-size: 25; +// +// .sidedrawer-list-item { +// padding-left: $sidedrawer-list-item-offset-left; +// Label { +// vertical-align: center; +// //color: $blue-dark; +// } +// .fa, .far, .fas, .fab, .ico { +// width: $sidedrawer-list-icon-size; +// margin-right: $sidedrawer-list-icon-offset; +// } +// &.selected { +// background-color: $item-active-background; +// Label { +// //color: $item-active-color; +// } +// } +// } +// } +//} diff --git a/src/_app-variables.scss b/src/_app-variables.scss index 7d2a75e..6c0e65c 100644 --- a/src/_app-variables.scss +++ b/src/_app-variables.scss @@ -2,10 +2,11 @@ // other than “light”, switch the path to the alternative scheme, // for example '~nativescript-theme-core/scss/dark'. @import '~nativescript-theme-core/scss/dark'; +//@import '~nativescript-theme-core/scss/light'; // Custom colors -$background-dark: #F8F8F8 !default; -$background-light: #FFFFFF !default; +//$background-dark: #F8F8F8 !default; +//$background-light: #FFFFFF !default; $blue-dark: #022734 !default; $blue-light: #02556E !default; @@ -40,37 +41,40 @@ $page-content-placeholder-font-size: 20; * Theme variables overrides **/ +$bg-background: rgb(0, 0, 0); +$bg-foreground: rgba(255, 255, 255, 0.1); + // Colors -$background: #fff; -$primary: lighten(#000, 13%); -$secondary: lighten(#000, 46%); -$disabled: lighten(#000, 62%); -$accent: $accent-dark; -$error: $error-light; +//$background: #fff; +//$primary: lighten(#000, 13%); +//$secondary: lighten(#000, 46%); +//$disabled: lighten(#000, 62%); +//$accent: $midnight-dark; +//$error: $error-light; // SideDrawer -$item-color-android : #737373; -$item-active-background: #F8F8F8; -$item-active-color: $accent; -$item-active-icon-color: $item-active-color; -$item-color-ios: $blue-dark; -$item-color-android: $blue-dark; - -$side-drawer-header-background: #fafafa; -$side-drawer-header-brand: #737373; -$side-drawer-background: #FFFFFF; +//$item-color-android : #737373; +//$item-active-background: #F8F8F8; +//$item-active-color: $accent; +//$item-active-icon-color: $item-active-color; +//$item-color-ios: $blue-dark; +//$item-color-android: $blue-dark; +// +//$side-drawer-header-background: #fafafa; +//$side-drawer-header-brand: #737373; +//$side-drawer-background: #FFFFFF; // ActionBar -$ab-background: $accent; -$ab-color: $white; +//$ab-background: $accent; +//$ab-color: $white; // Buttons -$btn-color-inverse: $white; -$btn-color: $accent; -$btn-color-secondary: darken($btn-color, 10%); -$btn-color-outline-highlighted: lighten($btn-color, 10%); +//$btn-color-inverse: $white; +//$btn-color: $accent; +//$btn-color-secondary: darken($btn-color, 10%); +//$btn-color-outline-highlighted: lighten($btn-color, 10%); //Text colors -$headings-color: $blue-dark; -$secondary: $blue-dark; -$text-color: $blue-dark; +//$headings-color: $blue-dark; +//$secondary: $blue-dark; +//$text-color: $blue-dark; diff --git a/src/app.android.scss b/src/app.android.scss index e636f79..8d778fb 100644 --- a/src/app.android.scss +++ b/src/app.android.scss @@ -9,6 +9,17 @@ @import 'app-common'; // Place any CSS rules you want to apply only on Android here -ActionBar .fa { - padding: 40px; -} \ No newline at end of file + +.sidedrawer { + .sidedrawer-header { + padding-top: 40; + } +} + +Switch[checked=true] { + background-color: rgb(0, 255, 0); + color: rgb(0, 153, 0); +} +Switch[checked=false] { + background-color: rgb(255, 0, 0); +} diff --git a/src/app.ios.scss b/src/app.ios.scss index f056cd6..5e7f30f 100644 --- a/src/app.ios.scss +++ b/src/app.ios.scss @@ -9,6 +9,3 @@ @import 'app-common'; // Place any CSS rules you want to apply only on iOS here -ActionBar .fa { - padding: 40px 40px 40px 0; -} \ No newline at end of file diff --git a/src/app/app.component.html b/src/app/app.component.html index eaa32f4..5eff852 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -3,44 +3,24 @@ Learn more about the RadSideDrawer UI component and how it can be customized in this documentation article: https://docs.nativescript.org/angular/ui/professional-ui-components/ng-SideDrawer/getting-started --> - + - - - + - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + - + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 2a756e8..d3d73e5 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -8,8 +8,7 @@ import * as app from "tns-core-modules/application"; @Component({ moduleId: module.id, selector: "ns-app", - templateUrl: "app.component.html", - styles: [".sidedrawer-header { padding-top: 40; }"] + templateUrl: "app.component.html" }) export class AppComponent implements OnInit { private _activatedUrl: string; diff --git a/src/app/procon-ip/get-state-data-sys-info.ts b/src/app/procon-ip/get-state-data-sys-info.ts index 3d25108..1f5af8f 100644 --- a/src/app/procon-ip/get-state-data-sys-info.ts +++ b/src/app/procon-ip/get-state-data-sys-info.ts @@ -1,14 +1,16 @@ +import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; + export class GetStateDataSysInfo { time: string; - uptime: string; + uptime: number; version: string; - resetRootCause: string; - ntpFaultState: string; - configOtherEnable: string; - dosageControl: string; - phPlusDosageRelais: string; - phMinusDosageRelais: string; - phChlorDosageRelais: string; + resetRootCause: number; + ntpFaultState: number; + configOtherEnable: number; + dosageControl: number; + phPlusDosageRelais: number; + phMinusDosageRelais: number; + chlorineDosageRelais: number; constructor(data?: Array>) { if (data) { @@ -18,14 +20,14 @@ export class GetStateDataSysInfo { setValuesFromArray(data: Array>) { this.version = data[0][1]; - this.uptime = Number(data[0][2]).toFixed(2); - this.resetRootCause = Number(data[0][3]).toFixed(2); - this.ntpFaultState = Number(data[0][4]).toFixed(2); - this.configOtherEnable = Number(data[0][5]).toFixed(2); - this.dosageControl = Number(data[0][6]).toFixed(2); - this.phPlusDosageRelais = Number(data[0][7]).toFixed(2); - this.phMinusDosageRelais = Number(data[0][8]).toFixed(2); - this.phChlorDosageRelais = Number(data[0][9]).toFixed(2); + this.uptime = Number(data[0][2]); + this.resetRootCause = Number(data[0][3]); + this.ntpFaultState = Number(data[0][4]); + this.configOtherEnable = Number(data[0][5]); + this.dosageControl = Number(data[0][6]); + this.phPlusDosageRelais = Number(data[0][7]); + this.phMinusDosageRelais = Number(data[0][8]); + this.chlorineDosageRelais = Number(data[0][9]); } toArrayOfObjects(): Array<{key: string, value: string}> { @@ -34,4 +36,32 @@ export class GetStateDataSysInfo { return values; } + + isChlorineDosageEnabled(): boolean { + return (this.dosageControl & 1) === 1; + } + + isPhMinusDosageEnabled(): boolean { + return (this.dosageControl & 256) === 256; + } + + isPhPlusDosageEnabled(): boolean { + return (this.dosageControl & 4096) === 4096; + } + + isDosageEnabled(object: GetStateDataObject): boolean { + switch (object.id) { + case 36: + case 39: + return this.isChlorineDosageEnabled(); + case 37: + case 40: + return this.isPhMinusDosageEnabled(); + case 38: + case 41: + return this.isPhPlusDosageEnabled(); + default: + return false; + } + } } diff --git a/src/app/procon-ip/get-state-data.ts b/src/app/procon-ip/get-state-data.ts index 617cd89..49487cd 100644 --- a/src/app/procon-ip/get-state-data.ts +++ b/src/app/procon-ip/get-state-data.ts @@ -1,5 +1,6 @@ import { GetStateDataObject } from "./get-state-data-object"; import { GetStateDataSysInfo } from "./get-state-data-sys-info"; +import { RelayDataObject } from "~/app/procon-ip/relays/relay/relay-data-object"; export enum GetStateCategory { TIME = "time", @@ -80,11 +81,47 @@ export class GetStateData { this.objects.filter((obj, idx) => indices.indexOf(idx) >= 0); } + getDataObject(id: number) { + return this.objects[id]; + } + getDataObjectsByCategory(category: string, activeOnly = false): Array { return this.categories[category] === undefined ? [] : this.getDataObjects(this.categories[category], activeOnly); } + getChlorineDosageControlId(): number { + return Math.min.apply(Math, this.categories.relays) + Number(this.sysInfo.chlorineDosageRelais); + } + + getPhMinusDosageControlId(): number { + return Math.min.apply(Math, this.categories.relays) + Number(this.sysInfo.phMinusDosageRelais); + } + + getPhPlusDosageControlId(): number { + return Math.min.apply(Math, this.categories.relays) + Number(this.sysInfo.phPlusDosageRelais); + } + + getChlorineDosageControl(): RelayDataObject { + return new RelayDataObject(this.getDataObject(this.getChlorineDosageControlId())); + } + + getPhMinusDosageControl(): RelayDataObject { + return new RelayDataObject(this.getDataObject(this.getPhMinusDosageControlId())); + } + + getPhPlusDosageControl(): RelayDataObject { + return new RelayDataObject(this.getDataObject(this.getPhPlusDosageControlId())); + } + + isDosageControl(id: number) { + return [ + this.getChlorineDosageControlId(), + this.getPhMinusDosageControlId(), + this.getPhPlusDosageControlId() + ].indexOf(id) >= 0; + } + parseCsv(csv: string) { // Save raw input string. this.raw = csv; diff --git a/src/app/procon-ip/get-state.service.ts b/src/app/procon-ip/get-state.service.ts index ee6541b..854dcd0 100644 --- a/src/app/procon-ip/get-state.service.ts +++ b/src/app/procon-ip/get-state.service.ts @@ -65,10 +65,10 @@ export class GetStateService extends AbstractRequestService { update() { this.getData().subscribe((data) => { this.data.parseCsv(data); - - this.data.getDataObjectsByCategory(GetStateCategory.RELAYS).forEach((relay: GetStateDataObject) => { - console.log(`Updated relay no. ${relay.categoryId}: ${relay.displayValue}`); - }); + // + // this.data.getDataObjectsByCategory(GetStateCategory.RELAYS).forEach((relay: GetStateDataObject) => { + // console.log(`Updated relay no. ${relay.categoryId}: ${relay.displayValue}`); + // }); }); } diff --git a/src/app/procon-ip/measures/canister/canister.component.css.map b/src/app/procon-ip/measures/canister/canister.component.css.map new file mode 100644 index 0000000..8ffccc8 --- /dev/null +++ b/src/app/procon-ip/measures/canister/canister.component.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["canister.component.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA","file":"canister.component.css"} \ No newline at end of file diff --git a/src/app/procon-ip/measures/canister/canister.component.html b/src/app/procon-ip/measures/canister/canister.component.html new file mode 100644 index 0000000..ccd8af3 --- /dev/null +++ b/src/app/procon-ip/measures/canister/canister.component.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/procon-ip/measures/canister/canister.component.scss b/src/app/procon-ip/measures/canister/canister.component.scss new file mode 100644 index 0000000..5501930 --- /dev/null +++ b/src/app/procon-ip/measures/canister/canister.component.scss @@ -0,0 +1,12 @@ +.body { + margin-top: -24; + margin-bottom: 16; + color: rgba(0, 0, 0, 0.5); +} + +.canisterScaleWrapper { + height: 120; + width: 120; + border-radius: 60; + background-color: rgba(255, 255, 255, 0.8); +} diff --git a/src/app/procon-ip/measures/canister/canister.component.ts b/src/app/procon-ip/measures/canister/canister.component.ts new file mode 100644 index 0000000..0bd61c5 --- /dev/null +++ b/src/app/procon-ip/measures/canister/canister.component.ts @@ -0,0 +1,17 @@ +import { Component, Input, OnInit } from "@angular/core"; +import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; + +@Component({ + selector: "ns-canister", + templateUrl: "./canister.component.html", + styleUrls: ["./canister.component.scss"], + moduleId: module.id +}) +export class CanisterComponent implements OnInit { + @Input() data: Array; + columnsDef: string; + + ngOnInit() { + this.columnsDef = this.data.map(() => "*").join(","); + } +} diff --git a/src/app/procon-ip/measures/electrodes/electrode-data-object.ts b/src/app/procon-ip/measures/electrodes/electrode-data-object.ts new file mode 100644 index 0000000..1fe5900 --- /dev/null +++ b/src/app/procon-ip/measures/electrodes/electrode-data-object.ts @@ -0,0 +1,11 @@ +import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; +import { ScaleParams } from "~/app/procon-ip/measures/scale-params"; + +export class ElectrodeDataObject extends GetStateDataObject { + scale: ScaleParams; + + constructor(data: GetStateDataObject, params: ScaleParams) { + super(data.id, data.label, data.unit, data.offset.toString(), data.gain.toString(), data.raw.toString()); + this.scale = params; + } +} diff --git a/src/app/procon-ip/measures/electrodes/electrodes.component.css.map b/src/app/procon-ip/measures/electrodes/electrodes.component.css.map new file mode 100644 index 0000000..30f4d41 --- /dev/null +++ b/src/app/procon-ip/measures/electrodes/electrodes.component.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["electrodes.component.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA","file":"electrodes.component.css"} \ No newline at end of file diff --git a/src/app/procon-ip/measures/electrodes/electrodes.component.html b/src/app/procon-ip/measures/electrodes/electrodes.component.html new file mode 100644 index 0000000..370a855 --- /dev/null +++ b/src/app/procon-ip/measures/electrodes/electrodes.component.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/procon-ip/measures/electrodes/electrodes.component.scss b/src/app/procon-ip/measures/electrodes/electrodes.component.scss new file mode 100644 index 0000000..b56f848 --- /dev/null +++ b/src/app/procon-ip/measures/electrodes/electrodes.component.scss @@ -0,0 +1,12 @@ +.body { + margin-top: -28; + margin-bottom: 16; + color: rgba(0, 0, 0, 0.5); +} + +.electrodesScaleWrapper { + height: 150; + width: 150; + border-radius: 75; + background-color: rgba(255, 255, 255, 0.8); +} diff --git a/src/app/procon-ip/measures/electrodes/electrodes.component.ts b/src/app/procon-ip/measures/electrodes/electrodes.component.ts new file mode 100644 index 0000000..c3d9eda --- /dev/null +++ b/src/app/procon-ip/measures/electrodes/electrodes.component.ts @@ -0,0 +1,72 @@ +import { Component, Input, OnInit } from "@angular/core"; +import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; +import { ElectrodeDataObject } from "~/app/procon-ip/measures/electrodes/electrode-data-object"; +import { IScaleParams, ScaleParams } from "~/app/procon-ip/measures/scale-params"; + +@Component({ + selector: "ns-electrodes", + templateUrl: "./electrodes.component.html", + styleUrls: ["./electrodes.component.scss"], + moduleId: module.id +}) +export class ElectrodesComponent implements OnInit { + + @Input() data: Array; + + electrodes: Array; + + ngOnInit() { + this.electrodes = this.data.map((electrode) => + new ElectrodeDataObject(electrode, this.getScale(electrode)) + ); + } + + getScale(electrode: GetStateDataObject): IScaleParams { + switch (electrode.unit) { + case "pH": + return new ScaleParams(6.0, 8.0, 5, 4, 3, 0.9, 225, [{ + min: 6.0, + max: 6.6, + location: 0.97, + color: "#E2443E" + }, { + min: 6.6, + max: 6.8, + location: 0.97, + color: "#E27633" + }, { + min: 6.8, + max: 7.15, + location: 0.97, + color: "#F0C44D" + }, { + min: 7.15, + max: 7.25, + location: 0.97, + color: "#9DCA56" + }, { + min: 7.25, + max: 7.4, + location: 0.97, + color: "#F0C44D" + }, { + min: 7.4, + max: 7.6, + location: 0.97, + color: "#E27633" + }, { + min: 7.6, + max: 8.0, + location: 0.97, + color: "#E2443E" + }]); + break; + case "mV": + return new ScaleParams(0.0, 640.0, 9, 3, 5); + break; + default: + return new ScaleParams(); + break; + } + } +} diff --git a/src/app/procon-ip/measures/measures.component.css.map b/src/app/procon-ip/measures/measures.component.css.map new file mode 100644 index 0000000..c4dd552 --- /dev/null +++ b/src/app/procon-ip/measures/measures.component.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["measures.component.scss"],"names":[],"mappings":"AAME;EACE;EACA;EACA;EACA","file":"measures.component.css"} \ No newline at end of file diff --git a/src/app/procon-ip/measures/measures.component.html b/src/app/procon-ip/measures/measures.component.html new file mode 100644 index 0000000..563b60f --- /dev/null +++ b/src/app/procon-ip/measures/measures.component.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/procon-ip/measures/measures.component.scss b/src/app/procon-ip/measures/measures.component.scss new file mode 100644 index 0000000..4f22c60 --- /dev/null +++ b/src/app/procon-ip/measures/measures.component.scss @@ -0,0 +1,13 @@ +.measuresView { + + >Label { + + } + + >StackLayout { + margin: 6; + padding: 8; + border-radius: 8; + background-color: rgba(255, 255, 255, 0.2); + } +} diff --git a/src/app/procon-ip/measures/measures.component.ts b/src/app/procon-ip/measures/measures.component.ts new file mode 100644 index 0000000..8a3b529 --- /dev/null +++ b/src/app/procon-ip/measures/measures.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit } from "@angular/core"; +import { GetStateService } from "~/app/procon-ip/get-state.service"; +import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; +import { GetStateCategory } from "~/app/procon-ip/get-state-data"; + +@Component({ + selector: "ns-measures", + templateUrl: "./measures.component.html", + styleUrls: ["./measures.component.scss"], + moduleId: module.id +}) +export class MeasuresComponent implements OnInit { + + constructor( + public getStateService: GetStateService + ) {} + + ngOnInit() {} + + get canister(): Array { + const canister = this.getStateService.data.getDataObjectsByCategory(GetStateCategory.CANISTER) + .filter((can) => this.getStateService.data.sysInfo.isDosageEnabled(can)); + + return canister; + } + + get electrodes(): Array { + const electrodes = this.getStateService.data.getDataObjectsByCategory(GetStateCategory.ELECTRODES); + + return electrodes; + } + + get temperatures(): Array { + const temperatures = this.getStateService.data.getDataObjectsByCategory(GetStateCategory.TEMPERATURES, true); + + return temperatures; + } +} diff --git a/src/app/procon-ip/measures/scale-params.ts b/src/app/procon-ip/measures/scale-params.ts new file mode 100644 index 0000000..fa6888b --- /dev/null +++ b/src/app/procon-ip/measures/scale-params.ts @@ -0,0 +1,61 @@ +export interface IScaleParams { + min: number; + max: number; + radius: number; + majorTicks: number; + minorTicks: number; + labels: number; + sweepAngle: number; + startAngle: number; + barIndicators: Array<{ + min: number; + max: number; + color: string; + location: number; + }>; +} + +export class ScaleParams implements IScaleParams { + min = 0; + max = 100; + radius = 0.9; + majorTicks = 11; + minorTicks = 9; + labels = 6; + sweepAngle = 270; + barIndicators = new Array<{ + min: number; + max: number; + color: string; + location: number; + }>(); + + get startAngle(): number { + return 90 + ((360 - this.sweepAngle) / 2); + } + + constructor( + min?: number, + max?: number, + majorTicks?: number, + minorTicks?: number, + labels?: number, + radius?: number, + sweepAngle?: number, + barIndicators?: Array<{ + min: number; + max: number; + color: string; + location: number; + }> + ) { + this.min = min ? min : this.min; + this.max = max ? max : this.max; + this.majorTicks = majorTicks ? majorTicks : this.majorTicks; + this.minorTicks = minorTicks ? minorTicks : this.minorTicks; + this.labels = labels ? labels : this.labels; + this.radius = radius !== undefined ? radius : this.radius; + this.sweepAngle = sweepAngle !== undefined ? sweepAngle : this.sweepAngle; + this.barIndicators = barIndicators !== undefined ? barIndicators : this.barIndicators; + } +} diff --git a/src/app/procon-ip/procon-ip-settings.component.html b/src/app/procon-ip/procon-ip-settings.component.html new file mode 100644 index 0000000..70227c8 --- /dev/null +++ b/src/app/procon-ip/procon-ip-settings.component.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/procon-ip/procon-ip-settings.component.ts b/src/app/procon-ip/procon-ip-settings.component.ts new file mode 100644 index 0000000..a838f90 --- /dev/null +++ b/src/app/procon-ip/procon-ip-settings.component.ts @@ -0,0 +1,36 @@ +import { Component, OnInit, ViewChild } from "@angular/core"; +import { RadSideDrawer } from "nativescript-ui-sidedrawer"; +import * as app from "tns-core-modules/application"; +import { IProconIpSettings, ProconIpSettings } from "../procon-ip/procon-ip-settings"; +import { RadDataFormComponent } from "nativescript-ui-dataform/angular"; +import { DataFormEventData } from "nativescript-ui-dataform"; + +@Component({ + selector: "procon-ip-settings", + moduleId: module.id, + templateUrl: "./procon-ip-settings.component.html" +}) +export class ProconIpSettingsComponent implements OnInit { + + @ViewChild("proconIpSettingsDataForm") proconIpSettings: RadDataFormComponent; + + constructor() { + // Use the component constructor to inject providers. + } + + ngOnInit() {} + + // onDrawerButtonTap(): void { + // const sideDrawer = app.getRootView(); + // sideDrawer.showDrawer(); + // } + + get proconIp(): IProconIpSettings { + return ProconIpSettings.instance().settings; + } + + dfPropertyCommit(event: DataFormEventData) { + ProconIpSettings.instance().setField(event.propertyName, + this.proconIpSettings.dataForm.getPropertyByName(event.propertyName).valueCandidate); + } +} diff --git a/src/app/procon-ip/procon-ip.component.html b/src/app/procon-ip/procon-ip.component.html index 74d3445..6545af1 100644 --- a/src/app/procon-ip/procon-ip.component.html +++ b/src/app/procon-ip/procon-ip.component.html @@ -16,13 +16,12 @@ - + - - - + + diff --git a/src/app/procon-ip/procon-ip.module.ts b/src/app/procon-ip/procon-ip.module.ts index 9505db8..1858ad2 100644 --- a/src/app/procon-ip/procon-ip.module.ts +++ b/src/app/procon-ip/procon-ip.module.ts @@ -8,21 +8,35 @@ import { NativeScriptUISideDrawerModule } from "nativescript-ui-sidedrawer/angul import { SystemInfoComponent } from "./system-info/system-info.component"; import { RelaysComponent } from "./relays/relays.component"; import { RelayComponent } from "./relays/relay/relay.component"; +import { MeasuresComponent } from "~/app/procon-ip/measures/measures.component"; +import { NativeScriptUIGaugeModule } from "nativescript-ui-gauge/angular"; +import { CanisterComponent } from "~/app/procon-ip/measures/canister/canister.component"; +import { ElectrodesComponent } from "~/app/procon-ip/measures/electrodes/electrodes.component"; +import { ProconIpSettingsComponent } from "~/app/procon-ip/procon-ip-settings.component"; +import { NativeScriptUIDataFormModule } from "nativescript-ui-dataform/angular"; @NgModule({ imports: [ NativeScriptCommonModule, NativeScriptUISideDrawerModule, + NativeScriptUIGaugeModule, + NativeScriptUIDataFormModule, HttpClientModule, - ProconIpRoutingModule + ProconIpRoutingModule, ], declarations: [ ProconIpComponent, SystemInfoComponent, RelaysComponent, - RelayComponent + RelayComponent, + MeasuresComponent, + CanisterComponent, + ElectrodesComponent, + ProconIpSettingsComponent, + ], + exports: [ + ProconIpSettingsComponent, ], - exports: [], schemas: [ NO_ERRORS_SCHEMA ], diff --git a/src/app/procon-ip/relays/relay/relay.component.android.css.map b/src/app/procon-ip/relays/relay/relay.component.android.css.map new file mode 100644 index 0000000..3e2a1d4 --- /dev/null +++ b/src/app/procon-ip/relays/relay/relay.component.android.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["relay.component.common.scss","relay.component.android.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAIA;EACE;;AAMF;EACE;;;AC7BN;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE","file":"relay.component.android.css"} \ No newline at end of file diff --git a/src/app/procon-ip/relays/relay/relay.component.android.scss b/src/app/procon-ip/relays/relay/relay.component.android.scss new file mode 100644 index 0000000..1534afd --- /dev/null +++ b/src/app/procon-ip/relays/relay/relay.component.android.scss @@ -0,0 +1,15 @@ +@import "relay.component.common"; + +.relayToggle { + color: rgb(200, 200, 200); +} +.relayToggle.disabled { + color: rgb(153, 153, 153); +} +.relayToggle[checked=true] { + background-color: rgb(0, 255, 0); + color: rgb(0, 153, 0); +} +.relayToggle[checked=false] { + background-color: rgb(200, 0, 0); +} diff --git a/src/app/procon-ip/relays/relay/relay.component.common.css.map b/src/app/procon-ip/relays/relay/relay.component.common.css.map new file mode 100644 index 0000000..2d70ac6 --- /dev/null +++ b/src/app/procon-ip/relays/relay/relay.component.common.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["relay.component.common.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"relay.component.common.css"} \ No newline at end of file diff --git a/src/app/procon-ip/relays/relay/relay.component.common.scss b/src/app/procon-ip/relays/relay/relay.component.common.scss new file mode 100644 index 0000000..21bf8ae --- /dev/null +++ b/src/app/procon-ip/relays/relay/relay.component.common.scss @@ -0,0 +1,53 @@ +.relayView { + margin: 8; + padding: 0 0 0 8; + border-radius: 8; + background-color: rgba(255, 255, 255, 0.2); + + .relay-button { + height: 64; + border-left-width: 1; + border-right-width: 1; + border-color: rgba(255, 255, 255, 0.1); + //background-color: rgba(255, 255, 255, 0.05); + } + .relay-button-label { + width: 64; + text-align: center; + } + + .relayToggle { + color: rgb(200, 200, 200); + } + + &.on { + .relayControls { + background-color: rgba(0, 255, 0, 0.1); + } + + } + + &.off { + .relayControls { + background-color: rgba(255, 0, 0, 0.1); + } + } +} + + +//.toggle-btn { +// padding: 16 14 16 14; +// border-left-color: lightgray; +// border-left-width: 1; +//} +// +//.btn-active { +//} +// +//.on > .btn-active { +// color: rgba(0, 255, 0, 0.6); +//} +// +//.off > .btn-active { +// color: rgba(255, 0, 0, 0.6); +//} diff --git a/src/app/procon-ip/relays/relay/relay.component.css.map b/src/app/procon-ip/relays/relay/relay.component.css.map index 92e2b6d..b028558 100644 --- a/src/app/procon-ip/relays/relay/relay.component.css.map +++ b/src/app/procon-ip/relays/relay/relay.component.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["relay.component.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE","file":"relay.component.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["relay.component.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"relay.component.css"} \ No newline at end of file diff --git a/src/app/procon-ip/relays/relay/relay.component.html b/src/app/procon-ip/relays/relay/relay.component.html index 04041d6..e3796d2 100644 --- a/src/app/procon-ip/relays/relay/relay.component.html +++ b/src/app/procon-ip/relays/relay/relay.component.html @@ -1,6 +1,24 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/procon-ip/relays/relay/relay.component.ios.css.map b/src/app/procon-ip/relays/relay/relay.component.ios.css.map new file mode 100644 index 0000000..3152f6a --- /dev/null +++ b/src/app/procon-ip/relays/relay/relay.component.ios.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["relay.component.common.scss","relay.component.ios.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAIA;EACE;;AAMF;EACE;;;AC7BN;EACE;EACA","file":"relay.component.ios.css"} \ No newline at end of file diff --git a/src/app/procon-ip/relays/relay/relay.component.ios.scss b/src/app/procon-ip/relays/relay/relay.component.ios.scss new file mode 100644 index 0000000..00fdf2e --- /dev/null +++ b/src/app/procon-ip/relays/relay/relay.component.ios.scss @@ -0,0 +1,6 @@ +@import "relay.component.common"; + +.relayToggle { + color: rgb(200, 200, 200); + background-color: rgb(0, 153, 0); +} diff --git a/src/app/procon-ip/relays/relay/relay.component.scss b/src/app/procon-ip/relays/relay/relay.component.scss deleted file mode 100644 index 9a768d0..0000000 --- a/src/app/procon-ip/relays/relay/relay.component.scss +++ /dev/null @@ -1,20 +0,0 @@ -Button { - margin: 5 0 5 5; - border-color: rgba(0, 0, 0, 0.1); - border-width: 1; - border-radius: 5; - color: #000; -} - -.btn-active { - background-color: rgba(0, 0, 0, 0.1); - border-width: 2; -} - -.on > .btn-active { - border-color: rgba(0, 255, 0, 0.3); -} - -.off > .btn-active { - border-color: rgba(255, 0, 0, 0.3); -} diff --git a/src/app/procon-ip/relays/relay/relay.component.ts b/src/app/procon-ip/relays/relay/relay.component.ts index 403e4a8..22ac61e 100644 --- a/src/app/procon-ip/relays/relay/relay.component.ts +++ b/src/app/procon-ip/relays/relay/relay.component.ts @@ -1,8 +1,9 @@ -import { Component, Input, OnInit } from "@angular/core"; +import { Component, Input, OnInit, ViewChild } from "@angular/core"; import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; import { UsrcfgCgiService } from "~/app/procon-ip/usrcfg-cgi.service"; import { RelayDataObject } from "~/app/procon-ip/relays/relay/relay-data-object"; import { RelayDataInterpreter } from "~/app/procon-ip/relays/relay/relay-data-interpreter"; +import { Switch } from "tns-core-modules/ui/switch"; /** * Setting relay state @@ -28,6 +29,7 @@ import { RelayDataInterpreter } from "~/app/procon-ip/relays/relay/relay-data-in export class RelayComponent implements OnInit { @Input() data: RelayDataObject; + @Input() readonly: boolean; constructor( public relayDataInterpreter: RelayDataInterpreter, @@ -71,4 +73,16 @@ export class RelayComponent implements OnInit { get isAuto(): boolean { return this.relayDataInterpreter.isAuto(this.data); } + + toggleAuto() { + if (this.isAuto) { + if (this.isOn) { + this.setOn(); + } else { + this.setOff(); + } + } else { + this.setAuto(); + } + } } diff --git a/src/app/procon-ip/relays/relays.component.css.map b/src/app/procon-ip/relays/relays.component.css.map index d8b224f..f4af149 100644 --- a/src/app/procon-ip/relays/relays.component.css.map +++ b/src/app/procon-ip/relays/relays.component.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["relays.component.scss"],"names":[],"mappings":"AAAA;EACE","file":"relays.component.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["relays.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA","file":"relays.component.css"} \ No newline at end of file diff --git a/src/app/procon-ip/relays/relays.component.html b/src/app/procon-ip/relays/relays.component.html index bcf5ef0..d49af66 100644 --- a/src/app/procon-ip/relays/relays.component.html +++ b/src/app/procon-ip/relays/relays.component.html @@ -1,7 +1,16 @@ - - - - + + + + + + + + + + + + + - - + + diff --git a/src/app/procon-ip/relays/relays.component.scss b/src/app/procon-ip/relays/relays.component.scss index 8a6db83..6b8c49b 100644 --- a/src/app/procon-ip/relays/relays.component.scss +++ b/src/app/procon-ip/relays/relays.component.scss @@ -1,10 +1,15 @@ -.list-group { +.relaysView { height: 100%; } +.relayItem { + margin-top: 4; + margin-bottom: 4; +} + .odd { + //background-color: rgba(255, 255, 255, 0.1); } .even { - //background-color: #cdcdcd; } diff --git a/src/app/procon-ip/relays/relays.component.ts b/src/app/procon-ip/relays/relays.component.ts index 8b9ab76..f7488d8 100644 --- a/src/app/procon-ip/relays/relays.component.ts +++ b/src/app/procon-ip/relays/relays.component.ts @@ -1,7 +1,6 @@ import { Component, OnInit } from "@angular/core"; import { GetStateService } from "~/app/procon-ip/get-state.service"; import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; -import { RelayDataObject } from "~/app/procon-ip/relays/relay/relay-data-object"; @Component({ selector: "ns-relays", @@ -12,12 +11,16 @@ import { RelayDataObject } from "~/app/procon-ip/relays/relay/relay-data-object" export class RelaysComponent implements OnInit { static categoryId = "relays"; relays: Array; + dosageRelays: Array; constructor( public getStateService: GetStateService ) {} ngOnInit() { - this.relays = this.getStateService.data.getDataObjectsByCategory(RelaysComponent.categoryId, true); + this.relays = this.getStateService.data.getDataObjectsByCategory(RelaysComponent.categoryId, true) + .filter((item) => !this.getStateService.data.isDosageControl(item.id)); + this.dosageRelays = this.getStateService.data.getDataObjectsByCategory(RelaysComponent.categoryId, true) + .filter((item) => this.getStateService.data.isDosageControl(item.id)); } } diff --git a/src/app/procon-ip/system-info/system-info.component.css.map b/src/app/procon-ip/system-info/system-info.component.css.map new file mode 100644 index 0000000..ad45210 --- /dev/null +++ b/src/app/procon-ip/system-info/system-info.component.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["system-info.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"system-info.component.css"} \ No newline at end of file diff --git a/src/app/procon-ip/system-info/system-info.component.html b/src/app/procon-ip/system-info/system-info.component.html index 3372dd3..b42278e 100644 --- a/src/app/procon-ip/system-info/system-info.component.html +++ b/src/app/procon-ip/system-info/system-info.component.html @@ -1,8 +1,10 @@ - - - - - - - - + + + + + + + + + + diff --git a/src/app/procon-ip/system-info/system-info.component.scss b/src/app/procon-ip/system-info/system-info.component.scss new file mode 100644 index 0000000..9f65943 --- /dev/null +++ b/src/app/procon-ip/system-info/system-info.component.scss @@ -0,0 +1,13 @@ +@import "../../../app-variables"; + +.list-group { + height: 100%; + background-color: $bg-background; +} + +.list-group-item { + background-color: rgba(255, 255, 255, 0.1); +} +.list-group-item.odd { + background-color: $bg-background; +} diff --git a/src/app/procon-ip/system-info/system-info.component.ts b/src/app/procon-ip/system-info/system-info.component.ts index 674c2a3..7ab155c 100644 --- a/src/app/procon-ip/system-info/system-info.component.ts +++ b/src/app/procon-ip/system-info/system-info.component.ts @@ -5,6 +5,7 @@ import { GetStateDataSysInfo } from "~/app/procon-ip/get-state-data-sys-info"; @Component({ selector: "ns-system-info", templateUrl: "./system-info.component.html", + styleUrls: ["./system-info.component.scss"], moduleId: module.id }) export class SystemInfoComponent implements OnInit { diff --git a/src/app/procon-ip/usrcfg-cgi.service.ts b/src/app/procon-ip/usrcfg-cgi.service.ts index be79f1d..1c95006 100644 --- a/src/app/procon-ip/usrcfg-cgi.service.ts +++ b/src/app/procon-ip/usrcfg-cgi.service.ts @@ -7,11 +7,12 @@ import { GetStateDataObject } from "~/app/procon-ip/get-state-data-object"; import { RelayDataInterpreter, RelayStateBitMask } from "~/app/procon-ip/relays/relay/relay-data-interpreter"; import { Observable, of } from "rxjs"; import { ProconIpSettings } from "~/app/procon-ip/procon-ip-settings"; +import { RelayDataObject } from "~/app/procon-ip/relays/relay/relay-data-object"; export enum SetStateValue { - ON, - OFF, - AUTO + ON = 1, + OFF = 0, + AUTO = 2 } @Injectable({ @@ -44,7 +45,7 @@ export class UsrcfgCgiService extends AbstractRequestService { this.setState(relayData, SetStateValue.AUTO); } - private setState(relay: GetStateDataObject, state: SetStateValue) { + private setState(relay: GetStateDataObject, state: SetStateValue|number) { let data: [number, number]; let desiredValue: number; switch (state) { diff --git a/src/app/settings/settings.component.html b/src/app/settings/settings.component.html index ddaef03..78d7995 100644 --- a/src/app/settings/settings.component.html +++ b/src/app/settings/settings.component.html @@ -15,45 +15,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/settings/settings.component.ts b/src/app/settings/settings.component.ts index 07f9699..3748704 100644 --- a/src/app/settings/settings.component.ts +++ b/src/app/settings/settings.component.ts @@ -1,9 +1,6 @@ import { Component, OnInit, ViewChild } from "@angular/core"; import { RadSideDrawer } from "nativescript-ui-sidedrawer"; import * as app from "tns-core-modules/application"; -import { IProconIpSettings, ProconIpSettings } from "../procon-ip/procon-ip-settings"; -import { RadDataFormComponent } from "nativescript-ui-dataform/angular"; -import { DataFormEventData } from "nativescript-ui-dataform"; @Component({ selector: "Settings", @@ -12,7 +9,7 @@ import { DataFormEventData } from "nativescript-ui-dataform"; }) export class SettingsComponent implements OnInit { - @ViewChild("proconIpSettingsDataForm") proconIpSettings: RadDataFormComponent; + tabSelectedIndex = 1; constructor() { // Use the component constructor to inject providers. @@ -25,12 +22,12 @@ export class SettingsComponent implements OnInit { sideDrawer.showDrawer(); } - get proconIp(): IProconIpSettings { - return ProconIpSettings.instance().settings; - } - - dfPropertyCommit(event: DataFormEventData) { - ProconIpSettings.instance().setField(event.propertyName, - this.proconIpSettings.dataForm.getPropertyByName(event.propertyName).valueCandidate); - } + // get proconIp(): IProconIpSettings { + // return ProconIpSettings.instance().settings; + // } + // + // dfPropertyCommit(event: DataFormEventData) { + // ProconIpSettings.instance().setField(event.propertyName, + // this.proconIpSettings.dataForm.getPropertyByName(event.propertyName).valueCandidate); + // } } diff --git a/src/app/settings/settings.module.ts b/src/app/settings/settings.module.ts index c58dd95..37f3851 100644 --- a/src/app/settings/settings.module.ts +++ b/src/app/settings/settings.module.ts @@ -2,9 +2,10 @@ import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; import { NativeScriptCommonModule } from "nativescript-angular/common"; import { SettingsRoutingModule } from "./settings-routing.module"; -import { SettingsComponent } from "./settings.component"; import { FormsModule } from "@angular/forms"; import { NativeScriptUIDataFormModule } from "nativescript-ui-dataform/angular"; +import { SettingsComponent } from "./settings.component"; +import { ProconIpModule } from "~/app/procon-ip/procon-ip.module"; @NgModule({ imports: [ @@ -12,6 +13,7 @@ import { NativeScriptUIDataFormModule } from "nativescript-ui-dataform/angular"; SettingsRoutingModule, FormsModule, NativeScriptUIDataFormModule, + ProconIpModule, ], declarations: [ SettingsComponent,